From ea5df2d129a20d0ec04e246e7d8a41508a599730 Mon Sep 17 00:00:00 2001 From: omicron 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;