Special Features for Use in Actions
===================================
Here is a table of Bison constructs, variables and macros that are
useful in actions.
`$$'
Acts like a variable that contains the semantic value for the
grouping made by the current rule. Note:Actions.
`$N'
Acts like a variable that contains the semantic value for the Nth
component of the current rule. Note:Actions.
`$<TYPEALT>$'
Like `$$' but specifies alternative TYPEALT in the union specified
by the `%union' declaration. Note:Data Types of Values in
Actions.
`$<TYPEALT>N'
Like `$N' but specifies alternative TYPEALT in the union specified
by the `%union' declaration. Note:Data Types of Values in
Actions.
`YYABORT;'
Return immediately from `yyparse', indicating failure. Note:The
Parser Function `yyparse'.
`YYACCEPT;'
Return immediately from `yyparse', indicating success. Note:The
Parser Function `yyparse'.
`YYBACKUP (TOKEN, VALUE);'
Unshift a token. This macro is allowed only for rules that reduce
a single value, and only when there is no look-ahead token. It
installs a look-ahead token with token type TOKEN and semantic
value VALUE; then it discards the value that was going to be
reduced by this rule.
If the macro is used when it is not valid, such as when there is a
look-ahead token already, then it reports a syntax error with a
message `cannot back up' and performs ordinary error recovery.
In either case, the rest of the action is not executed.
`YYEMPTY'
Value stored in `yychar' when there is no look-ahead token.
`YYERROR;'
Cause an immediate syntax error. This statement initiates error
recovery just as if the parser itself had detected an error;
however, it does not call `yyerror', and does not print any
message. If you want to print an error message, call `yyerror'
explicitly before the `YYERROR;' statement. Note:Error
Recovery.
`YYRECOVERING'
This macro stands for an expression that has the value 1 when the
parser is recovering from a syntax error, and 0 the rest of the
time. Note:Error Recovery.
`yychar'
Variable containing the current look-ahead token. (In a pure
parser, this is actually a local variable within `yyparse'.) When
there is no look-ahead token, the value `YYEMPTY' is stored in the
variable. Note:Look-Ahead Tokens.
`yyclearin;'
Discard the current look-ahead token. This is useful primarily in
error rules. Note:Error Recovery.
`yyerrok;'
Resume generating error messages immediately for subsequent syntax
errors. This is useful primarily in error rules. Note:Error
Recovery.
`@$'
Acts like a structure variable containing information on the
textual position of the grouping made by the current rule. Note:Tracking Locations.
`@N'
Acts like a structure variable containing information on the
textual position of the Nth component of the current rule. Note:Tracking Locations.