Node:Action Features, Previous:Error Reporting, Up:Interface



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. See Actions.
$n
Acts like a variable that contains the semantic value for the nth component of the current rule. See Actions.
$<typealt>$
Like $$ but specifies alternative typealt in the union specified by the %union declaration. See Data Types of Values in Actions.
$<typealt>n
Like $n but specifies alternative typealt in the union specified by the %union declaration. See Data Types of Values in Actions.
YYABORT;
Return immediately from yyparse, indicating failure. See The Parser Function yyparse.
YYACCEPT;
Return immediately from yyparse, indicating success. See 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. See 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. See 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. See Look-Ahead Tokens.
yyclearin;
Discard the current look-ahead token. This is useful primarily in error rules. See Error Recovery.
yyerrok;
Resume generating error messages immediately for subsequent syntax errors. This is useful primarily in error rules. See Error Recovery.
@$
Acts like a structure variable containing information on the textual position of the grouping made by the current rule. See Tracking Locations.
@n
Acts like a structure variable containing information on the textual position of the nth component of the current rule. See Tracking Locations.