Copyright (C) 2000-2012 |
GNU Info (bison.info)Token ValuesSemantic Values of Tokens ------------------------- In an ordinary (non-reentrant) 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 (Note: The Collection of Value Types.). 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. */ ... automatically generated by info2www version 1.2.2.9 |