mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
examples: don't use yysyntax_error_arguments
Suggested by Adrian Vogelsgesang. https://lists.gnu.org/archive/html/bison-patches/2020-02/msg00069.html * data/skeletons/lalr1.java (Context.EMPTY, Context.getToken): New. (Context.yyntokens): Rename as... (Context.NTOKENS): this. Because (i) all the Java coding styles recommend upper case for constants, and (ii) the Java Skeleton exposes Lexer.EOF, not Lexer.YYEOF. * data/skeletons/yacc.c (yyparse_context_token): New. * examples/c/bistromathic/parse.y (yyreport_syntax_error): Don't use yysyntax_error_arguments. * examples/java/calc/Calc.y (yyreportSyntaxError): Likewise.
This commit is contained in:
@@ -867,19 +867,37 @@ b4_dollar_popdef[]dnl
|
||||
yytoken = token;]b4_locations_if([[
|
||||
yylocation = loc;]])[
|
||||
}
|
||||
|
||||
private YYStack yystack;
|
||||
|
||||
public int getToken ()
|
||||
{
|
||||
return yytoken;
|
||||
}
|
||||
|
||||
/**
|
||||
* Value returned by getToken when there is no token.
|
||||
*/
|
||||
public static final int EMPTY = ]b4_parser_class[.yyempty_;
|
||||
|
||||
private int yytoken;]b4_locations_if([[
|
||||
public ]b4_location_type[ getLocation ()
|
||||
{
|
||||
return yylocation;
|
||||
}
|
||||
|
||||
private ]b4_location_type[ yylocation;]])[
|
||||
static final int yyntokens = ]b4_parser_class[.yyntokens_;
|
||||
static final int NTOKENS = ]b4_parser_class[.yyntokens_;
|
||||
|
||||
/* Put in YYARG at most YYARGN of the expected tokens given the
|
||||
current YYCTX, and return the number of tokens stored in YYARG. If
|
||||
YYARG is null, return the number of expected tokens (guaranteed to
|
||||
be less than YYNTOKENS). */
|
||||
int yyexpectedTokens (int yyarg[], int yyargn)
|
||||
{
|
||||
return yyexpectedTokens (yyarg, 0, yyargn);
|
||||
}
|
||||
|
||||
int yyexpectedTokens (int yyarg[], int yyoffset, int yyargn)
|
||||
{
|
||||
int yycount = yyoffset;
|
||||
@@ -893,7 +911,7 @@ b4_dollar_popdef[]dnl
|
||||
int yyxbegin = yyn < 0 ? -yyn : 0;
|
||||
/* Stay within bounds of both yycheck and yytname. */
|
||||
int yychecklim = yylast_ - yyn + 1;
|
||||
int yyxend = yychecklim < yyntokens ? yychecklim : yyntokens;
|
||||
int yyxend = yychecklim < NTOKENS ? yychecklim : NTOKENS;
|
||||
for (int x = yyxbegin; x < yyxend; ++x)
|
||||
if (yycheck_[x + yyn] == x && x != yy_error_token_
|
||||
&& !yyTableValueIsError (yytable_[x + yyn]))
|
||||
|
||||
@@ -1198,6 +1198,10 @@ yyexpected_tokens (const yyparse_context_t *yyctx,
|
||||
return yypstate_expected_tokens (yyctx->yyps, yyarg, yyargn);
|
||||
}]])[
|
||||
|
||||
static int
|
||||
yysyntax_error_arguments (const yyparse_context_t *yyctx,
|
||||
int yyarg[], int yyargn) YY_ATTRIBUTE_UNUSED;
|
||||
|
||||
static int
|
||||
yysyntax_error_arguments (const yyparse_context_t *yyctx,
|
||||
int yyarg[], int yyargn)
|
||||
@@ -1251,7 +1255,17 @@ yysyntax_error_arguments (const yyparse_context_t *yyctx,
|
||||
|
||||
]b4_parse_error_case(
|
||||
[custom],
|
||||
[b4_locations_if([[/* The location of this context. */
|
||||
[[/* The token type of the lookahead of this context. */
|
||||
static int
|
||||
yyparse_context_token (const yyparse_context_t *yyctx) YY_ATTRIBUTE_UNUSED;
|
||||
|
||||
static int
|
||||
yyparse_context_token (const yyparse_context_t *yyctx)
|
||||
{
|
||||
return yyctx->yytoken;
|
||||
}
|
||||
|
||||
]b4_locations_if([[/* The location of the lookahead of this context. */
|
||||
static YYLTYPE *
|
||||
yyparse_context_location (const yyparse_context_t *yyctx) YY_ATTRIBUTE_UNUSED;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user