aboutsummaryrefslogtreecommitdiff
path: root/src/parser/ast.h
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-08-30 12:14:04 +0200
committerhachem <im@hachem.wtf>2026-08-30 12:14:04 +0200
commit53946c982cb3290a25f7c8529ef1399f0635ef37 (patch)
tree969bc78c304e13d733b794ffc98d44bf44b53621 /src/parser/ast.h
parent6532b074e5c1db4a1c32298cc338a1a533208641 (diff)
add: parse labels and syscalls
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;
};
};