diff --git a/src/symbol_table.c b/src/symbol_table.c index 1dc6e31..1a879cd 100644 --- a/src/symbol_table.c +++ b/src/symbol_table.c @@ -1139,7 +1139,15 @@ void print_symbol_table(SymbolTable *table, FILE *file_ptr) { if (getChildren(table) != NULL) { ListOfTable *node = getChildren(table); for (; node != NULL; node = node->next) { + if((node->table) == NULL){ print_symbol_table(node->table, file_ptr); + }else{ + if ((node->table)->Line_Number == -1){ + continue; + }else{ + print_symbol_table(node->table, file_ptr); + } + } } } if (getParent(table) == NULL) { diff --git a/test b/test new file mode 100644 index 0000000..e69de29 diff --git a/tests/sprint2/test/sp2_carls_mistake.alpha b/tests/sprint2/test/sp2_carls_mistake.alpha index 75fa12f..2f4c1ef 100644 --- a/tests/sprint2/test/sp2_carls_mistake.alpha +++ b/tests/sprint2/test/sp2_carls_mistake.alpha @@ -24,6 +24,5 @@ entry(arg) := { w.y := 7; result := bar1(w); (* pass w (a rec type value) to bar1 *) result := bar2(5,7); (* implicitly build a rec type value, assign 5 and 7 to fields x and y, but call them r and s *) - arr(3); return 0; }