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.