[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: %token-table doesn't seem to be working for C++?
From: |
Derek Clegg |
Subject: |
Re: %token-table doesn't seem to be working for C++? |
Date: |
Sat, 2 Mar 2019 13:41:41 -0800 |
Thanks for your response. I suggest you read through the bison manual,
particularly the section on token type names, in order to better understand my
question.
Derek
> On Mar 2, 2019, at 12:26 PM, John P. Hartmann <address@hidden> wrote:
>
> 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
>
> _______________________________________________
> address@hidden https://lists.gnu.org/mailman/listinfo/help-bison