help-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: %token-table doesn't seem to be working for C++?


From: John P. Hartmann
Subject: Re: %token-table doesn't seem to be working for C++?
Date: Sat, 2 Mar 2019 21:26:48 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1

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 <address@hidden> wrote:

Hi Derek,

Le 18 févr. 2019 à 21:07, Derek Clegg <address@hidden> 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


_______________________________________________
address@hidden https://lists.gnu.org/mailman/listinfo/help-bison




reply via email to

[Prev in Thread] Current Thread [Next in Thread]