[ << ] | [ < ] | [ 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.