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? 

Reply via email to