www.delorie.com/gnu/docs/bison/bison_77.html   search  
 
Buy the book!


Bison 1.875

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.4 Special Features for Use in Actions

Here is a table of Bison constructs, variables and macros that are useful in actions.

Variable: $$
Acts like a variable that contains the semantic value for the grouping made by the current rule. See section 3.5.3 Actions.

Variable: $n
Acts like a variable that contains the semantic value for the nth component of the current rule. See section 3.5.3 Actions.

Variable: $<typealt>$
Like $$ but specifies alternative typealt in the union specified by the %union declaration. See section Data Types of Values in Actions.

Variable: $<typealt>n
Like $n but specifies alternative typealt in the union specified by the %union declaration. See section Data Types of Values in Actions.

Macro: YYABORT;
Return immediately from yyparse, indicating failure. See section The Parser Function yyparse.

Macro: YYACCEPT;
Return immediately from yyparse, indicating success. See section The Parser Function yyparse.

Macro: 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 is also disallowed in GLR parsers. 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.

Macro: YYEMPTY
Value stored in yychar when there is no look-ahead token.

Macro: 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 section 6. Error Recovery.

Macro: 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 section 6. Error Recovery.

Variable: 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 section Look-Ahead Tokens.

Macro: yyclearin;
Discard the current look-ahead token. This is useful primarily in error rules. See section 6. Error Recovery.

Macro: yyerrok;
Resume generating error messages immediately for subsequent syntax errors. This is useful primarily in error rules. See section 6. Error Recovery.

Value: @$
Acts like a structure variable containing information on the textual position of the grouping made by the current rule. See section Tracking Locations.

Value: @n
Acts like a structure variable containing information on the textual position of the nth component of the current rule. See section Tracking Locations.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003