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.