diff --git a/src/grammar.y b/src/grammar.y index b20c09e..946c9ad 100644 --- a/src/grammar.y +++ b/src/grammar.y @@ -624,10 +624,9 @@ assignable: //char *funtype = getType(look_up(cur, $1)); printdebug("%s", getType(look_up(cur, getName((TableNode*)$1)))); - // Something fishy is going on here....... - TableNode *param = getParameter(look_up(getParent(cur), getName((TableNode*)$1))); - printTableNode(table_lookup(getAncestor(cur), getName((TableNode*)$1))); - + TableNode * typeNode = table_lookup(getAncestor(cur), getType((TableNode*)$1)); + TableNode *param = getParameter(typeNode); + printTableNode(param); SymbolTable *recList = getRecList(param); TableNode *lastCheckedRef = getFirstEntry(recList); diff --git a/src/symbol_table.c b/src/symbol_table.c index 3e67b95..cec150c 100644 --- a/src/symbol_table.c +++ b/src/symbol_table.c @@ -1150,6 +1150,11 @@ TableNode *printTableNode(TableNode *tn) { printdebug("%s[PrintTN] Passed a NULL tablenode!", COLOR_RED); return undefined; } + if (tn == undefined) { + printdebug("%s[PrintTN] Passed an undefined tablenode!", + COLOR_RED); + return undefined; + } if (tn->theName == NULL) { printdebug("%s[PrintTN] Passed a tablenode with NULL name!", COLOR_RED); @@ -1160,11 +1165,6 @@ TableNode *printTableNode(TableNode *tn) { COLOR_RED); return undefined; } - if (tn == undefined) { - printdebug("%s[PrintTN] Passed an undefined tablenode!", - COLOR_RED); - return undefined; - } if (tn->additionalinfo == NULL) { printdebug( "%s[PrintTN] Passed a tablenode with NULL additional info!", diff --git a/tests/sprint2/test/sp2_llnode.alpha b/tests/sprint2/test/sp2_llnode.alpha index 2011a83..08048a7 100644 --- a/tests/sprint2/test/sp2_llnode.alpha +++ b/tests/sprint2/test/sp2_llnode.alpha @@ -78,4 +78,4 @@ entry (arg) := { result := bar2(5,7); return 0; -} +} \ No newline at end of file