On Fri, 28 Nov 2008, sgaurelius wrote: > Flex scanner has previously analyzed the string and extracted the tokens. > However, if I want the text that corresponds to this expression, for example > the "(1+2)" and not just the tokens, what should I do ? Is there some > solution ?
Save `yytext' somewhere "persistent". `yytext' is available in the actions of your scanner. You can save it in a data member of an object that you pass as a parameter to `yylex'. If you use Flex, you can pass a parameter of a certain type (I'd have to look up what it's called) and declare an object of a type of your choice to be a data member of this object. I use this to carry around information that needs to be available within my scanner and parser rules, and outside them. This is a thread-safe approach. Alternatively, you could pass the strings back to `yyparse' as the semantic values of the tokens, _unless_ you need the semantic values to be numeric values or something else. This might be easier, because you wouldn't have to keep track of which string is associated with a given token. If you chose this approach, you might have to convert strings to numbers in your parser rules, which isn't very difficult. There are probably other approaches, but these are the ones that occur to me off the top of my head. However, I can't think of any reason why I would want to keep the strings. Laurence Finston _______________________________________________ help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison