| [ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
4.6.2 Semantic Values of Tokens
In an ordinary (nonreentrant) parser, the semantic value of the token must
be stored into the global variable yylval. When you are using
just one data type for semantic values, yylval has that type.
Thus, if the type is int (the default), you might write this in
yylex:
… yylval = value; /* Put value onto Bison stack. */ return INT; /* Return the type of the token. */ …
When you are using multiple data types, yylval’s type is a union
made from the %union declaration (see section The Union Declaration). So when you store a token’s value, you
must use the proper member of the union. If the %union
declaration looks like this:
%union {
int intval;
double val;
symrec *tptr;
}
then the code in yylex might look like this:
… yylval.intval = value; /* Put value onto Bison stack. */ return INT; /* Return the type of the token. */ …
This document was generated on December 1, 2013 using texi2html 5.0.
