Yacc Embedded Actions |
Rules in yacc may contain embedded actions:
list: item1 { do_item1($1); } item2 { do_item2($3); } item3
Note that the actions take a slot in the stack. As a result do_item2
must use $3
to reference item2
. Internally this grammar is transformed by yacc into
the following:
list: item1 _rule01 item2 _rule02 item3 _rule01: { do_item1($0); } _rule02: { do_item2($0); }