aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/elna/boot/ast.h10
-rw-r--r--include/elna/boot/semantic.h4
-rw-r--r--include/elna/gcc/elna-generic.h1
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;
};
}