From 0c15e23a123785819b576ea1a0a37c27d15fa331 Mon Sep 17 00:00:00 2001 From: Fredrik Robertsen Date: Thu, 26 Mar 2026 21:17:27 +0100 Subject: [PATCH] ps4: fix 2 --- ps4/src.tar.gz | Bin 0 -> 12212 bytes ps4/src/symbols.c | 48 +++++++++--------- ps4/vsl_programs/ps3-simplify/var-convert.vsl | 4 +- 3 files changed, 26 insertions(+), 26 deletions(-) create mode 100644 ps4/src.tar.gz diff --git a/ps4/src.tar.gz b/ps4/src.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..3ac6eda56093ad2410e30986d9a2ab8e0f6cbf7c GIT binary patch literal 12212 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 Ujq|*3-hXD@uV=X#J}@u<0I;sSH~;_u literal 0 HcmV?d00001 diff --git a/ps4/src/symbols.c b/ps4/src/symbols.c index 289ee0b..51d6c11 100644 --- a/ps4/src/symbols.c +++ b/ps4/src/symbols.c @@ -26,7 +26,7 @@ void create_tables(void) symbol_t *symbol = global_symbols->symbols[i]; if (symbol->type == SYMBOL_FUNCTION) { node_t *block = symbol->node->children[2]; - bind_names(symbol->function_symtable, block->children[0]); + bind_names(symbol->function_symtable, block); } } } @@ -146,38 +146,38 @@ static void bind_names(symbol_table_t* local_symbols, node_t* node) local_symbols->hashmap = inner->backup; symbol_hashmap_destroy(inner); return; - case LOCAL_VARIABLE_DECLARATION: - node_t *local_variables = node->children[0]; - for (int j = 0; j < local_variables->n_children; j++) { - node_t *var = local_variables->children[j]; - assert(var->type == LOCAL_VARIABLE); - symbol_t *sym = create_symbol(var->children[0]->data.identifier, SYMBOL_LOCAL_VAR, var, NULL); - if (symbol_table_insert(local_symbols, sym) != INSERT_OK) { - fprintf(stderr, "bind_names: failed to insert local variable"); - exit(EXIT_FAILURE); - } + case LOCAL_VARIABLE: + symbol_t *s = create_symbol(node->children[0]->data.identifier, SYMBOL_LOCAL_VAR, node, NULL); + if (symbol_table_insert(local_symbols, s) != INSERT_OK) { + fprintf(stderr, "bind_names: failed to insert local variable\n"); + exit(EXIT_FAILURE); } + for (int k = 1; k < node->n_children; k++) + bind_names(local_symbols, node->children[k]); break; + case PRINTLN_STATEMENT: case PRINT_STATEMENT: node_t *print_list = node->children[0]; for (int j = 0; j < print_list->n_children; j++) { node_t *print_item = print_list->children[j]; - if (print_item->type != STRING_LITERAL) continue; - size_t pos = add_string(print_item->data.string_literal); - node_t *new = node_create(STRING_LIST_REFERENCE, 0); - new->data.string_list_index = pos; - free(print_item->children); - free(print_item); - print_list->children[j] = new; + if (print_item->type == STRING_LITERAL) { + size_t pos = add_string(print_item->data.string_literal); + node_t *new = node_create(STRING_LIST_REFERENCE, 0); + new->data.string_list_index = pos; + free(print_item->children); + free(print_item); + print_list->children[j] = new; + } else { + bind_names(local_symbols, print_item); + } } break; - case PRINTLN_STATEMENT: - fprintf(stderr, "println encountered: this should've been handled last time..."); - exit(EXIT_FAILURE); - break; case IDENTIFIER: - symbol_t *sym = symbol_hashmap_lookup(local_symbols->hashmap, node->data.identifier); - if (!sym) sym = symbol_hashmap_lookup(global_symbols->hashmap, node->data.identifier); + symbol_t *sym = NULL; + for (symbol_hashmap_t *scope = local_symbols->hashmap; scope && !sym; scope = scope->backup) + sym = symbol_hashmap_lookup(scope, node->data.identifier); + if (!sym) + sym = symbol_hashmap_lookup(global_symbols->hashmap, node->data.identifier); node->symbol = sym; return; default: diff --git a/ps4/vsl_programs/ps3-simplify/var-convert.vsl b/ps4/vsl_programs/ps3-simplify/var-convert.vsl index 7d29d26..3fc80cf 100644 --- a/ps4/vsl_programs/ps3-simplify/var-convert.vsl +++ b/ps4/vsl_programs/ps3-simplify/var-convert.vsl @@ -3,8 +3,8 @@ func main() { print(b) - var c - c = 10 + var d + d = 10 print(c) }