diff --git a/TODO b/TODO index 1f9aacf6..cc463db3 100644 --- a/TODO +++ b/TODO @@ -41,9 +41,6 @@ Use "•" instead of ".". Not all the conflicts have counterexamples generated. See the "break"s in counterexample_report_state. -** glr.cc -Get rid of global_tokens_and_yystype. - ** Bistromathic - Hitting tab on a line with a syntax error is ugly diff --git a/data/skeletons/glr.cc b/data/skeletons/glr.cc index 1c75b27e..56279f42 100644 --- a/data/skeletons/glr.cc +++ b/data/skeletons/glr.cc @@ -252,14 +252,9 @@ m4_define([b4_undef_symbol_kind], # ----------------- # Remove redirections for glr.c. m4_define([b4_glr_cc_cleanup], -[b4_percent_define_flag_if([[global_tokens_and_yystype]], [], [[#undef ]b4_symbol(-2, [id])[ #undef ]b4_symbol(0, [id])[ #undef ]b4_symbol(1, [id])[ -]])[ - -#undef ]b4_api_PREFIX[STYPE -#undef ]b4_api_PREFIX[LTYPE ]b4_undef_symbol_kind(-2)dnl b4_symbol_foreach([b4_undef_symbol_kind])dnl @@ -377,10 +372,6 @@ b4_percent_code_get([[requires]])[ ]b4_parse_param_vars[ }; -]dnl Redirections for glr.c. -b4_percent_define_flag_if([[global_tokens_and_yystype]], -[b4_token_defines -])[ ]b4_namespace_close[ ]b4_percent_code_get([[provides]])[ diff --git a/data/skeletons/lalr1.cc b/data/skeletons/lalr1.cc index 45d0626b..b95f9aa9 100644 --- a/data/skeletons/lalr1.cc +++ b/data/skeletons/lalr1.cc @@ -493,14 +493,6 @@ m4_define([b4_shared_declarations], ]b4_public_types_define([$1])])[ ]b4_namespace_close[ -]b4_percent_define_flag_if([[global_tokens_and_yystype]], -[b4_token_defines - -#ifndef ]b4_api_PREFIX[STYPE - // Redirection for backward compatibility. -# define ]b4_api_PREFIX[STYPE b4_namespace_ref::b4_parser_class::semantic_type -#endif -])[ ]b4_percent_code_get([[provides]])[ ]]) 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 {