diff options
author | Johnny Richard <johnny@johnnyrichard.com> | 2023-04-30 03:11:00 -0300 |
---|---|---|
committer | Johnny Richard <johnny@johnnyrichard.com> | 2023-04-30 17:40:01 +0200 |
commit | b1f7b0cccc6986ca107d9eeb1c7d5e5e5a32dc49 (patch) | |
tree | fb1eb8192c3f6da14796d59831030dd23935edcd /src/ast.c | |
parent | 090da456910429708ef7ee202b627e3dbce17819 (diff) |
gas: Compile variable expression with scope support
This patch adds the variable compilation and uses a scope (a stack of
map) to lookup for identities.
Today we use a vector + ref_entry structs in order to achieve the scope
implementation. The ref_entry lacks memory management, we are still no
sure who will be the owner of the pointer.
We also want to replace the scope a hashtable_t type as soon as we get
one.
Signed-off-by: Johnny Richard <johnny@johnnyrichard.com>
Co-authored-by: Carlos Maniero <carlosmaniero@gmail.com>
Diffstat (limited to 'src/ast.c')
-rw-r--r-- | src/ast.c | 7 |
1 files changed, 2 insertions, 5 deletions
@@ -54,17 +54,14 @@ ast_node_destroy(ast_node_t *node) case AST_VARIABLE_DECLARATION: ast_node_destroy(node->data.variable_declaration.value); break; - case AST_LITERAL: - break; case AST_RETURN_STMT: ast_node_destroy(node->data.return_stmt.argument); break; + case AST_LITERAL: case AST_IDENTIFIER: - break; case AST_UNKOWN_NODE: + case AST_VARIABLE: break; - default: - assert(false && "unmapped free strategy"); } free(node); } |