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;