yacc: rename types for states

* data/skeletons/yacc.c (yy_state_num): Rename as...
(yy_state_t): this.
(yy_state_fast_t): New.
Use it.
This commit is contained in:
Akim Demaille
2019-10-12 11:00:05 +02:00
parent d563a01709
commit e5cbac98b6
2 changed files with 37 additions and 34 deletions

View File

@@ -182,7 +182,7 @@ m4_define([b4_declare_parser_state_variables], [b4_pure_if([[
/* Number of syntax errors so far. */ /* Number of syntax errors so far. */
int yynerrs; int yynerrs;
]])[ ]])[
int yystate; yy_state_fast_t yystate;
/* Number of tokens to shift before error messages enabled. */ /* Number of tokens to shift before error messages enabled. */
int yyerrstatus; int yyerrstatus;
@@ -195,9 +195,9 @@ m4_define([b4_declare_parser_state_variables], [b4_pure_if([[
to reallocate them elsewhere. */ to reallocate them elsewhere. */
/* The state stack. */ /* The state stack. */
yy_state_num yyssa[YYINITDEPTH]; yy_state_t yyssa[YYINITDEPTH];
yy_state_num *yyss; yy_state_t *yyss;
yy_state_num *yyssp; yy_state_t *yyssp;
/* The semantic value stack. */ /* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE yyvsa[YYINITDEPTH];
@@ -214,8 +214,8 @@ m4_define([b4_declare_parser_state_variables], [b4_pure_if([[
YYPTRDIFF_T yystacksize;]b4_lac_if([[ YYPTRDIFF_T yystacksize;]b4_lac_if([[
yy_state_num yyesa@{]b4_percent_define_get([[parse.lac.es-capacity-initial]])[@}; yy_state_t yyesa@{]b4_percent_define_get([[parse.lac.es-capacity-initial]])[@};
yy_state_num *yyes; yy_state_t *yyes;
YYPTRDIFF_T yyes_capacity;]])]) YYPTRDIFF_T yyes_capacity;]])])
@@ -405,10 +405,11 @@ m4_if(b4_api_prefix, [yy], [],
#define YYSIZEOF(X) ((YYPTRDIFF_T) sizeof (X)) #define YYSIZEOF(X) ((YYPTRDIFF_T) sizeof (X))
/* Stored state numbers (used for stacks). */
typedef ]b4_int_type(0, m4_eval(b4_states_number - 1))[ yy_state_t;
/* State numbers. */ /* State numbers in computations. */
typedef ]b4_int_type(0, m4_eval(b4_states_number - 1))[ yy_state_num; typedef int yy_state_fast_t;
#ifndef YY_ #ifndef YY_
# if defined YYENABLE_NLS && YYENABLE_NLS # if defined YYENABLE_NLS && YYENABLE_NLS
@@ -511,7 +512,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
/* A type that is properly aligned for any stack member. */ /* A type that is properly aligned for any stack member. */
union yyalloc union yyalloc
{ {
yy_state_num yyss_alloc; yy_state_t yyss_alloc;
YYSTYPE yyvs_alloc;]b4_locations_if([ YYSTYPE yyvs_alloc;]b4_locations_if([
YYLTYPE yyls_alloc;])[ YYLTYPE yyls_alloc;])[
}; };
@@ -523,11 +524,11 @@ union yyalloc
N elements. */ N elements. */
]b4_locations_if( ]b4_locations_if(
[# define YYSTACK_BYTES(N) \ [# define YYSTACK_BYTES(N) \
((N) * (YYSIZEOF (yy_state_num) + YYSIZEOF (YYSTYPE) \ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
+ YYSIZEOF (YYLTYPE)) \ + YYSIZEOF (YYLTYPE)) \
+ 2 * YYSTACK_GAP_MAXIMUM)], + 2 * YYSTACK_GAP_MAXIMUM)],
[# define YYSTACK_BYTES(N) \ [# define YYSTACK_BYTES(N) \
((N) * (YYSIZEOF (yy_state_num) + YYSIZEOF (YYSTYPE)) \ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)])[ + YYSTACK_GAP_MAXIMUM)])[
# define YYCOPY_NEEDED 1 # define YYCOPY_NEEDED 1
@@ -711,8 +712,8 @@ do { \
`------------------------------------------------------------------*/ `------------------------------------------------------------------*/
]b4_function_define([yy_stack_print], [static void], ]b4_function_define([yy_stack_print], [static void],
[[yy_state_num *yybottom], [yybottom]], [[yy_state_t *yybottom], [yybottom]],
[[yy_state_num *yytop], [yytop]])[ [[yy_state_t *yytop], [yytop]])[
{ {
YYFPRINTF (stderr, "Stack now"); YYFPRINTF (stderr, "Stack now");
for (; yybottom <= yytop; yybottom++) for (; yybottom <= yytop; yybottom++)
@@ -735,7 +736,7 @@ do { \
`------------------------------------------------*/ `------------------------------------------------*/
]b4_function_define([yy_reduce_print], [static void], ]b4_function_define([yy_reduce_print], [static void],
[[yy_state_num *yyssp], [yyssp]], [[yy_state_t *yyssp], [yyssp]],
[[YYSTYPE *yyvsp], [yyvsp]], [[YYSTYPE *yyvsp], [yyvsp]],
b4_locations_if([[[YYLTYPE *yylsp], [yylsp]], b4_locations_if([[[YYLTYPE *yylsp], [yylsp]],
])[[int yyrule], [yyrule]]m4_ifset([b4_parse_param], [, ])[[int yyrule], [yyrule]]m4_ifset([b4_parse_param], [,
@@ -808,9 +809,9 @@ yy_lac_stack_realloc (YYPTRDIFF_T *yycapacity, YYPTRDIFF_T yyadd,
char const *yydebug_prefix, char const *yydebug_prefix,
char const *yydebug_suffix, char const *yydebug_suffix,
#endif #endif
yy_state_num **yybottom, yy_state_t **yybottom,
yy_state_num *yybottom_no_free, yy_state_t *yybottom_no_free,
yy_state_num **yytop, yy_state_num *yytop_empty) yy_state_t **yytop, yy_state_t *yytop_empty)
{ {
YYPTRDIFF_T yysize_old = YYPTRDIFF_T yysize_old =
*yytop == yytop_empty ? 0 : *yytop - *yybottom + 1; *yytop == yytop_empty ? 0 : *yytop - *yybottom + 1;
@@ -818,7 +819,7 @@ yy_lac_stack_realloc (YYPTRDIFF_T *yycapacity, YYPTRDIFF_T yyadd,
if (*yycapacity < yysize_new) if (*yycapacity < yysize_new)
{ {
YYPTRDIFF_T yyalloc = 2 * yysize_new; YYPTRDIFF_T yyalloc = 2 * yysize_new;
yy_state_num *yybottom_new; yy_state_t *yybottom_new;
/* Use YYMAXDEPTH for maximum stack size given that the stack /* Use YYMAXDEPTH for maximum stack size given that the stack
should never need to grow larger than the main state stack should never need to grow larger than the main state stack
needs to grow without LAC. */ needs to grow without LAC. */
@@ -831,7 +832,7 @@ yy_lac_stack_realloc (YYPTRDIFF_T *yycapacity, YYPTRDIFF_T yyadd,
if (YYMAXDEPTH < yyalloc) if (YYMAXDEPTH < yyalloc)
yyalloc = YYMAXDEPTH; yyalloc = YYMAXDEPTH;
yybottom_new = yybottom_new =
(yy_state_num *) YYSTACK_ALLOC ((YYSIZE_T) (yy_state_t *) YYSTACK_ALLOC ((YYSIZE_T)
(yyalloc * YYSIZEOF (*yybottom_new))); (yyalloc * YYSIZEOF (*yybottom_new)));
if (!yybottom_new) if (!yybottom_new)
{ {
@@ -935,11 +936,11 @@ do { \
contents of either array, alter *YYES and *YYES_CAPACITY, and free contents of either array, alter *YYES and *YYES_CAPACITY, and free
any old *YYES other than YYESA. */ any old *YYES other than YYESA. */
static int static int
yy_lac (yy_state_num *yyesa, yy_state_num **yyes, yy_lac (yy_state_t *yyesa, yy_state_t **yyes,
YYPTRDIFF_T *yyes_capacity, yy_state_num *yyssp, int yytoken) YYPTRDIFF_T *yyes_capacity, yy_state_t *yyssp, int yytoken)
{ {
yy_state_num *yyes_prev = yyssp; yy_state_t *yyes_prev = yyssp;
yy_state_num *yyesp = yyes_prev; yy_state_t *yyesp = yyes_prev;
YYDPRINTF ((stderr, "LAC: checking lookahead %s:", yytname[yytoken])); YYDPRINTF ((stderr, "LAC: checking lookahead %s:", yytname[yytoken]));
if (yytoken == YYUNDEFTOK) if (yytoken == YYUNDEFTOK)
{ {
@@ -996,7 +997,7 @@ yy_lac (yy_state_num *yyesa, yy_state_num **yyes,
yyesp = yyes_prev -= yylen; yyesp = yyes_prev -= yylen;
} }
{ {
int yystate; yy_state_fast_t yystate;
{ {
const int yylhs = yyr1[yyrule] - YYNTOKENS; const int yylhs = yyr1[yyrule] - YYNTOKENS;
const int yyi = yypgoto[yylhs] + *yyesp; const int yyi = yypgoto[yylhs] + *yyesp;
@@ -1007,7 +1008,7 @@ yy_lac (yy_state_num *yyesa, yy_state_num **yyes,
if (yyesp == yyes_prev) if (yyesp == yyes_prev)
{ {
yyesp = *yyes; yyesp = *yyes;
*yyesp = (yy_state_num) yystate; *yyesp = (yy_state_t) yystate;
} }
else else
{ {
@@ -1020,7 +1021,7 @@ yy_lac (yy_state_num *yyesa, yy_state_num **yyes,
YYDPRINTF ((stderr, "\n")); YYDPRINTF ((stderr, "\n"));
return 2; return 2;
} }
*++yyesp = (yy_state_num) yystate; *++yyesp = (yy_state_t) yystate;
} }
YYDPRINTF ((stderr, " G%d", yystate)); YYDPRINTF ((stderr, " G%d", yystate));
} }
@@ -1129,8 +1130,8 @@ yytnamerr (char *yyres, const char *yystr)
yy_lac returned 2]])[. */ yy_lac returned 2]])[. */
static int static int
yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
]b4_lac_if([[yy_state_num *yyesa, yy_state_num **yyes, ]b4_lac_if([[yy_state_t *yyesa, yy_state_t **yyes,
YYPTRDIFF_T *yyes_capacity, ]])[yy_state_num *yyssp, int yytoken) YYPTRDIFF_T *yyes_capacity, ]])[yy_state_t *yyssp, int yytoken)
{ {
YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
YYPTRDIFF_T yysize = yysize0; YYPTRDIFF_T yysize = yysize0;
@@ -1483,7 +1484,7 @@ yynewstate:
yysetstate: yysetstate:
YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YYDPRINTF ((stderr, "Entering state %d\n", yystate));
YY_ASSERT (0 <= yystate && yystate < YYNSTATES); YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
*yyssp = (yy_state_num) yystate; *yyssp = (yy_state_t) yystate;
if (yyss + yystacksize - 1 <= yyssp) if (yyss + yystacksize - 1 <= yyssp)
#if !defined yyoverflow && !defined YYSTACK_RELOCATE #if !defined yyoverflow && !defined YYSTACK_RELOCATE
@@ -1498,7 +1499,7 @@ yysetstate:
/* Give user a chance to reallocate the stack. Use copies of /* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into these so that the &'s don't force the real ones into
memory. */ memory. */
yy_state_num *yyss1 = yyss; yy_state_t *yyss1 = yyss;
YYSTYPE *yyvs1 = yyvs;]b4_locations_if([ YYSTYPE *yyvs1 = yyvs;]b4_locations_if([
YYLTYPE *yyls1 = yyls;])[ YYLTYPE *yyls1 = yyls;])[
@@ -1524,7 +1525,7 @@ yysetstate:
yystacksize = YYMAXDEPTH; yystacksize = YYMAXDEPTH;
{ {
yy_state_num *yyss1 = yyss; yy_state_t *yyss1 = yyss;
union yyalloc *yyptr = union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC ((YYSIZE_T) (union yyalloc *) YYSTACK_ALLOC ((YYSIZE_T)
YYSTACK_BYTES (yystacksize)); YYSTACK_BYTES (yystacksize));

View File

@@ -258,8 +258,10 @@ AT_BISON_OPTION_PUSHDEFS
AT_REQUIRE([ruby $abs_top_srcdir/tests/linear $1 >input.y]) AT_REQUIRE([ruby $abs_top_srcdir/tests/linear $1 >input.y])
# Old versions of GCC reject large values given to #line. # Old versions of GCC reject large values given to #line.
AT_FULL_COMPILE([input], [], [], [], [--no-line]) AT_FULL_COMPILE([input], [], [], [], [--no-line])
AT_CHECK([grep 'define YYNSTATES *$1' input.c], [], [ignore]) AT_CHECK([[sed -ne 's/#define YYNSTATES *\([0-9]*\)/\1/p' input.c]], [], [$1
AT_CHECK([grep 'typedef $2 yy_state_num' input.c], [], [ignore]) ])
AT_CHECK([[sed -ne 's/typedef \(.*\) yy_state_t;/\1/p' input.c]], [], [$2
])
AT_PARSER_CHECK([input]) AT_PARSER_CHECK([input])
AT_BISON_OPTION_POPDEFS AT_BISON_OPTION_POPDEFS