Re: %token-table doesn't seem to be working for C++?
"John P. Hartmann" <[email protected]>
| Newsgroups | gmane.comp.parsers.bison.general |
|---|---|
| Message-ID | <[email protected]> |
Alas, the scanner is allowed to return an integer only. It cannot return a string. Anyhow, your sample %token statement declares two tokens, not one; the last being meaningless. On 3/2/19 21:13, Derek Clegg wrote: > On Feb 18, 2019, at 9:59 PM, Akim Demaille <[email protected]> wrote: >> >> Hi Derek, >> >>> Le 18 févr. 2019 à 21:07, Derek Clegg <[email protected]> a écrit : >>> >>> Perhaps I’m doing something wrong, but it appears that, in C++, %token-table doesn’t work: instead of yytname, I only see yytname_. It also appears that YYNTOKENS, YYNNTS, YYNRULES, and YYNSTATES are not defined, contrary to the documentation. Am I missing something, or is this broken? >> >> Let me answer with a question: what are you trying to achieve? >> What do you need these for? > > What I’d actually like to do is get the string name associated with a symbol. > > For example, if I had > > %token PLUS_ASSIGN "+=" > %token MINUS_ASSIGN "-=" > ... > > then I could write something akin to > > assignment-expression: > name assignment-op expression > { > std::cout << "Assignment: " << get_name_of_op($2) << "\n"; > $$ = build_assignment(get_name_of_op($2), $name, $expression); > } > ; > > assignment-op: "+=" | "-=" | ... ; > > Derek > > > _______________________________________________ > [email protected] https://lists.gnu.org/mailman/listinfo/help-bison > _______________________________________________ [email protected] https://lists.gnu.org/mailman/listinfo/help-bison