|
|
%%
expression
: IDENTIFIER
{ $$ = parse_expression_identifier($1); }
| expression PLUS expression
{ $$ = parse_expression_addition($1, $3); }
| expression ASSIGN expression
{ $$ = parse_expression_assignment($1, $3); }
| etc etc
; | %{ translator *context;
%}
%%
expression
: IDENTIFIER
{ $$ = context->expression_identifier($1); }
| expression PLUS expression
{ $$ = context->expression_addition($1, $3); }
| expression ASSIGN expression
{ $$ = context->expression_assignment($1, $3); }
| etc etc
; |
Aha! What if the methods were virtual?