Noob Q here. I have these rules in my BASIC.y:
statements:
statement
{
$$ = g_list_prepend(NULL, $1);
}
|
statement ':' statements
{
$$ = g_list_prepend($3, $1);
}
;
statement:
(among others...)
IF expression THEN statements
{
statement_t *new = make_statement(IF);
new->parms._if.condition = $2;
new->parms._if.then_expression = $4;
new->parms._if.then_linenumber = 0;
$$ = new;
}
There is a single routine that runs the statements. When I feed it this:
100 PRINT "1":PRINT"2"
I get 1\n2 as expected. However, when I tell it to run then_expression with
statements
200 IF 1=1 THEN PRINT"3":PRINT"4"
I get only 3. I *believe* that $4 is a correctly formatted g_list of
statements, but how do I test that assumption? How does one print out the value
of $4 in the debugger?