> Le 6 mai 2019 à 22:45, Hans Åberg <haber...@telia.com> a écrit : > >> >> On 6 May 2019, at 18:09, Akim Demaille <a...@lrde.epita.fr> wrote: >> >>> Le 6 mai 2019 à 14:50, Hans Åberg <haber...@telia.com> a écrit : >>> >>> >>>> On 6 May 2019, at 11:28, r0ller <r0l...@freemail.hu> wrote: >>>> >>>> Hi All, >>>> >>>> Is it possible in *any* way to get the left hand side symbol in an action >>>> of a rule? Say, I have: >>>> >>>> A : B C >>>> {<!-- --> >>>> std:cout<<"left hand side symbol is:"<<??? >>>> }; >>>> >>>> I tried to find it out myself and googled a lot but didn't find anything:( >>> >>> In the C++ parser, one can write: >>> std::cout << “LHS: " << yytname_[yylhs.type_get()] << std::endl; >> >> But it's an internal detail, there is no guarantee it won't change. > > Right, so it might be a feature request for the longer term.
I'm trying to see what would make sense. > Perhaps a variation of $ and @ that gives access to the name, I am very uncomfortable with this. Symbol names are technical details, most of the time they are irrelevant to the end user, just like the the user of a piece of software does not care about the names of the functions: that's a implementation detail. In addition, tokens have several names: the identifier, and the string name, like %token <string> ID "identifier" Not to mention that I also want to provide support for internationalization. So what name should that be? ID? identifier? or identifiant in French? Of course when you debug a grammar, the names of the symbols are very important, and that's why the debug traces need the symbol names. Again, like when you debug a program: then function names matter. In the present case, I believe that the names that r0ller want should really be part of *his* specification, they should not come from internal details such as the symbol name. So I do think it is saner that the names are explicitly put in the action. > or the raw stack value in case there are more stuff to access. Which only exists in lalr1.cc. And I think r0ller is using glr.cc. Maybe once Valentin is done there will be symbols. _______________________________________________ help-bison@gnu.org https://lists.gnu.org/mailman/listinfo/help-bison