From 208f30ac48aebb87dbe5ef3195130647b249f4f9 Mon Sep 17 00:00:00 2001
From: omicron <omicron.me@protonmail.com>
Date: Tue, 1 Apr 2025 19:26:54 +0200
Subject: [PATCH] Expand AST node ids to support the lexer tokens and grammar
 rules

---
 src/ast.h | 34 ++++++++++++++++++++++++++++++++--
 1 file changed, 32 insertions(+), 2 deletions(-)

diff --git a/src/ast.h b/src/ast.h
index 8aceecf..e64fb0e 100644
--- a/src/ast.h
+++ b/src/ast.h
@@ -11,9 +11,39 @@ typedef enum node_id {
     NODE_INVALID,
 
     NODE_PROGRAM,
-    NODE_DIRECTIVE,
+    NODE_STATEMENT,
     NODE_LABEL,
-    NODE_INSTRUCTION
+    NODE_DIRECTIVE,
+    NODE_INSTRUCTION,
+    NODE_OPERANDS,
+    NODE_OPERAND,
+    NODE_REGISTER,
+    NODE_IMMEDIATE,
+    NODE_MEMORY,
+    NODE_NUMBER,
+    NODE_LABEL_REFERENCE,
+    NODE_MEMORY_EXPRESSION,
+    NODE_REGISTER_EXPRESSION,
+    NODE_REGISTER_INDEX,
+    NODE_REGISTER_OFFSET,
+    NODE_PLUS_OR_MINUS,
+
+    // Primitive nodes
+    NODE_IDENTIFIER,
+    NODE_DECIMAL,
+    NODE_HEXADECIMAL,
+    NODE_OCTAL,
+    NODE_BINARY,
+    NODE_CHAR,
+    NODE_STRING,
+    NODE_COLON,
+    NODE_COMMA,
+    NODE_LBRACKET,
+    NODE_RBRACKET,
+    NODE_PLUS,
+    NODE_MINUS,
+    NODE_ASTERISK,
+    NODE_DOT,
 } node_id_t;
 
 typedef struct ast_node ast_node_t;