diff options
author | Carlos Maniero <carlosmaniero@gmail.com> | 2023-04-25 03:52:59 -0300 |
---|---|---|
committer | Johnny Richard <johnny@johnnyrichard.com> | 2023-04-25 22:54:22 +0200 |
commit | c1a1bd2320b4c1508c4ab20d23b7c193a94d8026 (patch) | |
tree | ea54aa17ba0223b9ff58087bdcb6af778186702e /src/gas_assembly_generator.c | |
parent | cca2c345f9b16b88e1fc4e9ea598cf2f7ed8653a (diff) |
parser: Add support for variables and identifiers in function body
This commit adds support for variables and identifiers in the function
body of the parser, stored as a vector.
However, at this point, identifier resolution is not fully implemented,
and we currently accept identifiers without checking if they can be
resolved. This is a known limitation that will be addressed in a future
commit once hash-tables are added to the parser.
Signed-off-by: Carlos Maniero <carlosmaniero@gmail.com>
Reviewed-by: Johnny Richard <johnny@johnnyrichard.com>
Diffstat (limited to 'src/gas_assembly_generator.c')
-rw-r--r-- | src/gas_assembly_generator.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gas_assembly_generator.c b/src/gas_assembly_generator.c index 10a67f3..5572cb7 100644 --- a/src/gas_assembly_generator.c +++ b/src/gas_assembly_generator.c @@ -54,7 +54,9 @@ gas_assembly_generator_visit_function(ast_visitor_t *visitor, ast_function_decla fprintf(gen->out,".text\n"); fprintf(gen->out,"_start:\n"); - ast_visitor_visit(visitor, func->body); + for (size_t i=0; i < func->body->size; i++) { + ast_visitor_visit(visitor, vector_at(func->body, i)); + } } static void |