mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-17 00:03:03 +00:00
tests: factor the access to token kinds
* tests/local.at (AT_BISON_OPTION_PUSHDEFS): Define AT_TOKEN. (AT_BISON_OPTION_POPDEFS): Undefine it. * tests/actions.at, tests/c++.at, tests/calc.at: Use AT_TOKEN.
This commit is contained in:
@@ -1827,10 +1827,7 @@ float: UNTYPED INT
|
|||||||
};
|
};
|
||||||
%%
|
%%
|
||||||
]AT_YYERROR_DEFINE[
|
]AT_YYERROR_DEFINE[
|
||||||
]AT_YYLEX_DEFINE(AT_CXX_IF([[{yy::parser::token::UNTYPED,
|
]AT_YYLEX_DEFINE([[{]AT_TOKEN([UNTYPED])[, ]AT_TOKEN([INT])[, EOF}]],
|
||||||
yy::parser::token::INT,
|
|
||||||
EOF}]],
|
|
||||||
[[{UNTYPED, INT, EOF}]]),
|
|
||||||
[AT_VAL.ival = toknum * 10;
|
[AT_VAL.ival = toknum * 10;
|
||||||
AT_VAL.fval = YY_CAST (float, toknum) / 10.0f;])[
|
AT_VAL.fval = YY_CAST (float, toknum) / 10.0f;])[
|
||||||
]AT_MAIN_DEFINE[
|
]AT_MAIN_DEFINE[
|
||||||
|
|||||||
12
tests/c++.at
12
tests/c++.at
@@ -445,13 +445,13 @@ namespace yy
|
|||||||
return parser::make_END_OF_FILE (]AT_LOCATION_IF([location ()])[);]],
|
return parser::make_END_OF_FILE (]AT_LOCATION_IF([location ()])[);]],
|
||||||
[AT_LOCATION_IF([
|
[AT_LOCATION_IF([
|
||||||
*llocp = location ();])[
|
*llocp = location ();])[
|
||||||
return parser::token::END_OF_FILE;]])[
|
return ]AT_TOKEN([END_OF_FILE])[;]])[
|
||||||
|
|
||||||
case ',':]AT_TOKEN_CTOR_IF([[
|
case ',':]AT_TOKEN_CTOR_IF([[
|
||||||
return parser::make_COMMA (]AT_LOCATION_IF([location ()])[);]],
|
return parser::make_COMMA (]AT_LOCATION_IF([location ()])[);]],
|
||||||
[AT_LOCATION_IF([
|
[AT_LOCATION_IF([
|
||||||
*llocp = location ();])[
|
*llocp = location ();])[
|
||||||
return parser::token::COMMA;]])[
|
return ]AT_TOKEN([COMMA])[;]])[
|
||||||
|
|
||||||
default:
|
default:
|
||||||
stage = stage - '0';
|
stage = stage - '0';
|
||||||
@@ -460,14 +460,14 @@ namespace yy
|
|||||||
return parser::make_NUMBER (stage]AT_LOCATION_IF([, location ()])[);]], [[
|
return parser::make_NUMBER (stage]AT_LOCATION_IF([, location ()])[);]], [[
|
||||||
lvalp->BUILD (int, stage);]AT_LOCATION_IF([
|
lvalp->BUILD (int, stage);]AT_LOCATION_IF([
|
||||||
*llocp = location ();])[
|
*llocp = location ();])[
|
||||||
return parser::token::NUMBER;]])[
|
return ]AT_TOKEN(NUMBER)[;]])[
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{]AT_TOKEN_CTOR_IF([[
|
{]AT_TOKEN_CTOR_IF([[
|
||||||
return parser::make_TEXT (to_string (stage)]AT_LOCATION_IF([, location ()])[);]], [[
|
return parser::make_TEXT (to_string (stage)]AT_LOCATION_IF([, location ()])[);]], [[
|
||||||
lvalp->BUILD (string, to_string (stage));]AT_LOCATION_IF([
|
lvalp->BUILD (string, to_string (stage));]AT_LOCATION_IF([
|
||||||
*llocp = location ();])[
|
*llocp = location ();])[
|
||||||
return parser::token::TEXT;]])[
|
return ]AT_TOKEN([TEXT])[;]])[
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1369,7 +1369,7 @@ m4_popdef([AT_TEST])
|
|||||||
|
|
||||||
AT_SETUP([[C++ GLR parser identifier shadowing]])
|
AT_SETUP([[C++ GLR parser identifier shadowing]])
|
||||||
|
|
||||||
AT_BISON_OPTION_PUSHDEFS
|
AT_BISON_OPTION_PUSHDEFS([%skeleton "glr.cc"])
|
||||||
AT_DATA_GRAMMAR([input.yy], [
|
AT_DATA_GRAMMAR([input.yy], [
|
||||||
%skeleton "glr.cc"
|
%skeleton "glr.cc"
|
||||||
|
|
||||||
@@ -1396,7 +1396,7 @@ int yylex (yy::parser::semantic_type *lvalp)
|
|||||||
// bug with a macro that erroneously expanded this identifier to
|
// bug with a macro that erroneously expanded this identifier to
|
||||||
// yystackp->yyval.
|
// yystackp->yyval.
|
||||||
YYUSE (lvalp);
|
YYUSE (lvalp);
|
||||||
return yy::parser::token::ZERO;
|
return ]AT_TOKEN([ZERO])[;
|
||||||
}
|
}
|
||||||
|
|
||||||
void yy::parser::error (std::string const&)
|
void yy::parser::error (std::string const&)
|
||||||
|
|||||||
@@ -241,12 +241,12 @@ read_integer (]AT_YYLEX_FORMALS[)
|
|||||||
{
|
{
|
||||||
unget_char (]AT_YYLEX_PRE_ARGS[ c);
|
unget_char (]AT_YYLEX_PRE_ARGS[ c);
|
||||||
]AT_VAL[.]AT_VALUE_UNION_IF([NUM], [ival])[ = read_integer (]AT_YYLEX_ARGS[);
|
]AT_VAL[.]AT_VALUE_UNION_IF([NUM], [ival])[ = read_integer (]AT_YYLEX_ARGS[);
|
||||||
return ]AT_CXX_IF([AT_NAMESPACE::parser::token::])[]AT_TOKEN_PREFIX[NUM;
|
return ]AT_TOKEN([NUM])[;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return end-of-file. */
|
/* Return end-of-file. */
|
||||||
if (c == EOF)
|
if (c == EOF)
|
||||||
return ]AT_CXX_IF([AT_NAMESPACE::parser::token::])[]AT_TOKEN_PREFIX[CALC_EOF;
|
return ]AT_TOKEN([CALC_EOF])[;
|
||||||
|
|
||||||
/* An explicit error raised by the scanner. */
|
/* An explicit error raised by the scanner. */
|
||||||
if (c == '#')
|
if (c == '#')
|
||||||
@@ -254,7 +254,7 @@ read_integer (]AT_YYLEX_FORMALS[)
|
|||||||
fprintf (stderr, "%d.%d: ",
|
fprintf (stderr, "%d.%d: ",
|
||||||
AT_LOC_FIRST_LINE, AT_LOC_FIRST_COLUMN);])[
|
AT_LOC_FIRST_LINE, AT_LOC_FIRST_COLUMN);])[
|
||||||
fputs ("syntax error: invalid character: '#'\n", stderr);
|
fputs ("syntax error: invalid character: '#'\n", stderr);
|
||||||
return ]AT_CXX_IF([AT_NAMESPACE::parser::token::])[]AT_TOKEN_PREFIX[]AT_API_PREFIX[error;
|
return ]AT_TOKEN(AT_API_PREFIX[][error])[;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return single chars. */
|
/* Return single chars. */
|
||||||
|
|||||||
@@ -355,6 +355,11 @@ m4_pushdef([AT_PURE_LEX_IF],
|
|||||||
m4_pushdef([AT_TOKEN_TRANSLATE_IF],
|
m4_pushdef([AT_TOKEN_TRANSLATE_IF],
|
||||||
[AT_ERROR_CUSTOM_IF([$1], [AT_ERROR_DETAILED_IF([$1], [$2])])])
|
[AT_ERROR_CUSTOM_IF([$1], [AT_ERROR_DETAILED_IF([$1], [$2])])])
|
||||||
|
|
||||||
|
m4_pushdef([AT_TOKEN],
|
||||||
|
[AT_CXX_IF([AT_CXX_IF([AT_NAMESPACE::parser::token::])[]AT_TOKEN_PREFIX[$1]],
|
||||||
|
[AT_TOKEN_PREFIX[$1]])])
|
||||||
|
|
||||||
|
|
||||||
m4_pushdef([AT_YYSTYPE],
|
m4_pushdef([AT_YYSTYPE],
|
||||||
[AT_CXX_IF([AT_NAMESPACE[::parser::semantic_type]],
|
[AT_CXX_IF([AT_NAMESPACE[::parser::semantic_type]],
|
||||||
[AT_API_PREFIX[STYPE]])])
|
[AT_API_PREFIX[STYPE]])])
|
||||||
@@ -425,6 +430,7 @@ m4_popdef([AT_YYLTYPE])
|
|||||||
m4_popdef([AT_YYSTYPE])
|
m4_popdef([AT_YYSTYPE])
|
||||||
m4_popdef([AT_VAL])
|
m4_popdef([AT_VAL])
|
||||||
m4_popdef([AT_LOC])
|
m4_popdef([AT_LOC])
|
||||||
|
m4_popdef([AT_TOKEN])
|
||||||
m4_popdef([AT_TOKEN_TRANSLATE_IF])
|
m4_popdef([AT_TOKEN_TRANSLATE_IF])
|
||||||
m4_popdef([AT_PURE_LEX_IF])
|
m4_popdef([AT_PURE_LEX_IF])
|
||||||
m4_popdef([AT_YYERROR_SEES_LOC_IF])
|
m4_popdef([AT_YYERROR_SEES_LOC_IF])
|
||||||
|
|||||||
Reference in New Issue
Block a user