mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
c++: get rid of global_tokens_and_yystype
This was a hack to make it easier for people to migrate from yacc.c to lalr1.cc and from glr.c to glr.cc: when set, YYSTYPE and YYLTYPE were `#defined`. It was never documented (just mentioned in NEWS for Bison 2.2, 2006-05-19), but was used to simplify the test suite. Stop that: adjust the test suite to the skeletons, not the converse. In C++ use yy::parser::semantic_type, yy::parser::location_type, and yy::parser::token::MY_TOKEN, instead of YYSTYPE, YYLTYPE and MY_TOKEN. * data/skeletons/glr.cc, data/skeletons/lalr1.cc: Remove its support. * tests/actions.at, tests/c++.at, tests/calc.at: Adjust.
This commit is contained in:
@@ -803,12 +803,10 @@ AT_DATA_GRAMMAR([[input.yy]],
|
||||
[[%language "C++"
|
||||
%define api.namespace {]$1[}
|
||||
%union { int i; }
|
||||
%define global_tokens_and_yystype
|
||||
%locations
|
||||
|
||||
%code {
|
||||
// YYSTYPE contains a namespace reference.
|
||||
int yylex (YYSTYPE *lval, const ]$1[::parser::location_type*) {
|
||||
int yylex (]$1[::parser::semantic_type *lval, const ]$1[::parser::location_type*) {
|
||||
lval->i = 3;
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user