aboutsummaryrefslogtreecommitdiff
path: root/src/parser/ast.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/ast.h')
-rw-r--r--src/parser/ast.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/parser/ast.h b/src/parser/ast.h
index 83483e9..4604e1a 100644
--- a/src/parser/ast.h
+++ b/src/parser/ast.h
@@ -26,6 +26,9 @@ struct Param
enum StatementKind
{
STATEMENT_ASSIGN,
+ STATEMENT_LABEL,
+ STATEMENT_GOTO,
+ STATEMENT_SYSCALL,
};
struct AssignStatement
@@ -36,12 +39,24 @@ struct AssignStatement
struct Token value;
};
+struct LabelStatement
+{
+ struct Token name;
+};
+
+struct GotoStatement
+{
+ struct Token label;
+};
+
struct Statement
{
enum StatementKind kind;
union
{
struct AssignStatement assign;
+ struct LabelStatement label;
+ struct GotoStatement jump;
};
};