diff --git a/src/grammar.y b/src/grammar.y index 2ee09e4..e4e2162 100644 --- a/src/grammar.y +++ b/src/grammar.y @@ -657,18 +657,27 @@ ablock: argument_list: //NEED TO EMIT PARAMETERS HERE. MAYBE USE STACK STRUCTURE - expression COMMA argument_list + expression{ + TableNode* arg = CreateEntry(cur, getAdInfoType((TableNode*)$1), getTypeEntry((TableNode*)$1), arg_var_gen(), NULL); + emit_parameter(tn_or_const(NODE,arg)); + //S_Push(stack,current); + //emit_detach(); + //printdebug("[ARGUMENT_LIST] argument list is %d", $$); + } + COMMA argument_list + {$$ = $4 + 1;} + + | expression + { - CreateEntry(cur, getAdInfoType((TableNode*)$1), getTypeEntry((TableNode*)$1), arg_var_gen(), NULL); - $$ = $3 + 1; + TableNode* arg = CreateEntry(cur, getAdInfoType((TableNode*)$1), getTypeEntry((TableNode*)$1), arg_var_gen(), NULL); + emit_parameter(tn_or_const(NODE,arg)); + //S_Push(stack,current); + //emit_detach(); + $$ = 1; printdebug("[ARGUMENT_LIST] argument list is %d", $$); } - | expression - { - CreateEntry(cur, getAdInfoType((TableNode*)$1), getTypeEntry((TableNode*)$1), getName((TableNode*)$1), NULL); - $$ = 1; printdebug("[ARGUMENT_LIST] argument list is %d", $$); - } ;