summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2020-06-16 08:01:48 +0200
committerAkim Demaille <akim.demaille@gmail.com>2020-06-16 08:14:42 +0200
commitefb65daa36db3e918ace73c8a500373340867fbe (patch)
tree454070b09a3231a0f838c03b819a22bddce00704 /tests
parente077bf1ebcdcd91de5de8944be3bf3c35a00b1fe (diff)
downloadbison-efb65daa36db3e918ace73c8a500373340867fbe.tar.gz
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.
Diffstat (limited to 'tests')
-rw-r--r--tests/actions.at1
-rw-r--r--tests/c++.at4
-rw-r--r--tests/calc.at7
3 files changed, 4 insertions, 8 deletions
diff --git a/tests/actions.at b/tests/actions.at
index 46761c25..d90851de 100644
--- a/tests/actions.at
+++ b/tests/actions.at
@@ -607,7 +607,6 @@ $5
{
int ival;
}])
-AT_LALR1_CC_IF([%define global_tokens_and_yystype])
m4_ifval([$6], [[%code provides {]], [[%code {]])
AT_LALR1_CC_IF([typedef yy::location YYLTYPE;])[
]AT_YYLEX_DECLARE[
diff --git a/tests/c++.at b/tests/c++.at
index e3a13224..adc41f31 100644
--- a/tests/c++.at
+++ b/tests/c++.at
@@ -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;
}
diff --git a/tests/calc.at b/tests/calc.at
index 34fa9bab..ee75bf27 100644
--- a/tests/calc.at
+++ b/tests/calc.at
@@ -213,12 +213,12 @@ read_integer (]AT_YYLEX_FORMALS[)
{
unget_char (]AT_YYLEX_PRE_ARGS[ c);
]AT_VAL[.ival = read_integer (]AT_YYLEX_ARGS[);
- return ]AT_TOKEN_PREFIX[NUM;
+ return ]AT_CXX_IF([AT_NAMESPACE::parser::token::])[]AT_TOKEN_PREFIX[NUM;
}
/* Return end-of-file. */
if (c == EOF)
- return ]AT_TOKEN_PREFIX[CALC_EOF;
+ return ]AT_CXX_IF([AT_NAMESPACE::parser::token::])[]AT_TOKEN_PREFIX[CALC_EOF;
/* An explicit error raised by the scanner. */
if (c == '#')
@@ -226,7 +226,7 @@ read_integer (]AT_YYLEX_FORMALS[)
fprintf (stderr, "%d.%d: ",
AT_LOC_FIRST_LINE, AT_LOC_FIRST_COLUMN);])[
fputs ("syntax error: invalid character: '#'\n", stderr);
- return ]AT_TOKEN_PREFIX[]AT_API_PREFIX[error;
+ return ]AT_CXX_IF([AT_NAMESPACE::parser::token::])[]AT_TOKEN_PREFIX[]AT_API_PREFIX[error;
}
/* Return single chars. */
@@ -444,7 +444,6 @@ m4_define([_AT_DATA_CALC_Y(c)],
[AT_DATA_GRAMMAR([calc.y],
[[/* Infix notation calculator--calc */
]$4[
-]AT_CXX_IF([%define global_tokens_and_yystype])[
]AT_LANG_MATCH(
[d], [[
%code imports {