Implement external functions

This commit is contained in:
2025-01-16 15:09:58 +01:00
parent 1e45d66359
commit ef667e3ace
7 changed files with 98 additions and 73 deletions

View File

@ -386,21 +386,21 @@ namespace source
*/
class procedure_definition : public definition
{
block *m_body;
std::vector<variable_declaration *> m_parameters;
block *m_body{ nullptr };
public:
std::vector<variable_declaration *> parameters;
/**
* \param position Source code position.
* \param identifier Procedure name.
* \param body Procedure body.
*/
procedure_definition(const struct position position, const std::string& identifier,
block *body);
block *body = nullptr);
virtual void accept(parser_visitor *visitor) override;
block& body();
std::vector<variable_declaration *>& parameters();
block *body();
virtual ~procedure_definition() override;
};
@ -603,17 +603,14 @@ namespace source
class block : public node
{
statement *m_body;
public:
std::vector<definition *> value_definitions;
std::vector<statement *> body;
block(const struct position position, std::vector<definition *>&& value_definitions,
statement *body);
std::vector<statement *>&& body);
virtual void accept(parser_visitor *visitor) override;
statement& body();
virtual ~block() override;
};
@ -623,7 +620,7 @@ namespace source
std::vector<definition *> type_definitions;
program(const struct position position, std::vector<definition *>&& type_definitions,
std::vector<definition *>&& value_definitions, statement *body);
std::vector<definition *>&& value_definitions, std::vector<statement *>&& body);
virtual void accept(parser_visitor *visitor) override;
virtual ~program() override;