diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/elna/boot/ast.h | 10 | ||||
| -rw-r--r-- | include/elna/boot/semantic.h | 4 | ||||
| -rw-r--r-- | include/elna/gcc/elna-generic.h | 1 |
3 files changed, 14 insertions, 1 deletions
diff --git a/include/elna/boot/ast.h b/include/elna/boot/ast.h index 7d94e84..03d3e27 100644 --- a/include/elna/boot/ast.h +++ b/include/elna/boot/ast.h @@ -87,6 +87,7 @@ namespace elna::boot template<typename T> class literal; class defer_statement; + class empty_statement; /** * Interface for AST visitors. @@ -107,6 +108,7 @@ namespace elna::boot virtual void visit(return_statement *) = 0; virtual void visit(defer_statement *) = 0; virtual void visit(case_statement *) = 0; + virtual void visit(empty_statement *) = 0; virtual void visit(unit *) = 0; virtual void visit(program *) = 0; virtual void visit(binary_expression *) = 0; @@ -158,6 +160,7 @@ namespace elna::boot [[noreturn]] virtual void visit(while_statement *) override; [[noreturn]] virtual void visit(return_statement *) override; [[noreturn]] virtual void visit(defer_statement *) override; + [[noreturn]] virtual void visit(empty_statement *) override; [[noreturn]] virtual void visit(case_statement *) override; [[noreturn]] virtual void visit(procedure_call *) override; [[noreturn]] virtual void visit(unit *) override; @@ -758,6 +761,13 @@ namespace elna::boot virtual ~defer_statement() override; }; + class empty_statement : public statement + { + public: + empty_statement(const struct position); + void accept(parser_visitor *visitor) override; + }; + class binary_expression : public expression { expression *m_lhs; diff --git a/include/elna/boot/semantic.h b/include/elna/boot/semantic.h index 66eb0a7..7094ee9 100644 --- a/include/elna/boot/semantic.h +++ b/include/elna/boot/semantic.h @@ -109,6 +109,7 @@ namespace elna::boot void visit(while_statement *) override; void visit(return_statement *) override; void visit(defer_statement *) override; + void visit(empty_statement *) override; void visit(case_statement *) override; void visit(procedure_call *) override; void visit(unit *unit) override; @@ -151,7 +152,8 @@ namespace elna::boot void visit(import_declaration *) override; void visit(while_statement *statement) override; void visit(return_statement *statement) override; - void visit(defer_statement *statement) override; + void visit(defer_statement *) override; + void visit(empty_statement *statement) override; void visit(case_statement *statement) override; void visit(procedure_call *call) override; void visit(unit *unit) override; diff --git a/include/elna/gcc/elna-generic.h b/include/elna/gcc/elna-generic.h index 7490e92..9e148e6 100644 --- a/include/elna/gcc/elna-generic.h +++ b/include/elna/gcc/elna-generic.h @@ -92,6 +92,7 @@ namespace elna::gcc void visit(boot::while_statement *statement) override; void visit(boot::return_statement *statement) override; void visit(boot::defer_statement *statement) override; + void visit(boot::empty_statement *) override; void visit(boot::case_statement *statement) override; }; } |
