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

Reply via email to