Index: data/push.c =================================================================== RCS file: /sources/bison/bison/data/push.c,v retrieving revision 1.10 diff -u -r1.10 push.c --- data/push.c 8 Dec 2006 01:04:39 -0000 1.10 +++ data/push.c 8 Dec 2006 22:10:38 -0000 @@ -152,9 +152,9 @@ m4_if(b4_prefix, [yy], [], [/* Substitute the variable and function names. */ #define yyparse b4_prefix[]parse -]b4_push_if([#define yypushparse b4_prefix[]pushparse -#define yypvarsinit b4_prefix[]pvarsinit -#define yypvars b4_prefix[]pvars])[ +]b4_push_if([#define yypush_parse b4_prefix[]push_parse +#define yypstate_init b4_prefix[]pstate_init +#define yypstate b4_prefix[]pstate])[ #define yylex b4_prefix[]lex #define yyerror b4_prefix[]error #define yylval b4_prefix[]lval @@ -968,11 +968,11 @@ #endif /* ! YYPARSE_PARAM */ ]b4_push_if([ -struct yypvars; +struct yypstate; enum { YYPUSH_MORE = 4 }; -]b4_c_function_decl([yypvarsinit], [struct yypvars *], [[void], []])[ -]b4_c_function_decl([yypushparse], [int], - [[struct yypvars *yypvars], [yypvars]], +]b4_c_function_decl([yypstate_init], [struct yypstate *], [[void], []])[ +]b4_c_function_decl([yypush_parse], [int], + [[struct yypstate *yyps], [yyps]], [[int yynchar], [yynchar]], [[YYSTYPE *yynlval], [yynlval]] b4_locations_if([,[[YYLTYPE *yynlloc], [yynlloc]]]))[ @@ -997,14 +997,14 @@ YYLTYPE yylloc;]) ]) -m4_define([b4_yyssa],b4_push_if([pv->yyssa],[yyssa])) -m4_define([b4_yyerror_range],b4_push_if([pv->yyerror_range],[yyerror_range])) +m4_define([b4_yyssa],b4_push_if([yyps->yyssa],[yyssa])) +m4_define([b4_yyerror_range],b4_push_if([yyps->yyerror_range],[yyerror_range])) # b4_declare_yyparse_variables # ---------------------------- # Declare all the variables that are needed local to YYPARSE m4_define([b4_declare_yyparse_variables], -[[struct yypvars +[[struct yypstate { int yystate; int yyn; @@ -1047,30 +1047,30 @@ }; /* Initialize the parser data structure. */ -struct yypvars* -yypvarsinit (void) +struct yypstate* +yypstate_init (void) { - struct yypvars *pv = (struct yypvars *) malloc (sizeof *pv); - pv->yystate = 0; - pv->yyresult = -1; - pv->yyerrstatus = 0; - pv->yytoken = 0; + struct yypstate *yyps = (struct yypstate *) malloc (sizeof *yyps); + yyps->yystate = 0; + yyps->yyresult = -1; + yyps->yyerrstatus = 0; + yyps->yytoken = 0; - pv->yyss = pv->yyssa; - pv->yyvs = pv->yyvsa; + yyps->yyss = yyps->yyssa; + yyps->yyvs = yyps->yyvsa; ]b4_locations_if([ - pv->yyls = pv->yylsa;])[ - pv->yystacksize = YYINITDEPTH; + yyps->yyls = yyps->yylsa;])[ + yyps->yystacksize = YYINITDEPTH; - pv->yyssp = pv->yyss; - pv->yyvsp = pv->yyvs; + yyps->yyssp = yyps->yyss; + yyps->yyvsp = yyps->yyvs; - pv->yynew = 1; + yyps->yynew = 1; -]b4_locations_if([ pv->yylsp = pv->yyls;])[ +]b4_locations_if([ yyps->yylsp = yyps->yyls;])[ - return pv; + return yyps; }]) m4_divert_pop([KILL])dnl# ====================== End of M4 code. @@ -1080,11 +1080,11 @@ b4_push_if([b4_declare_yyparse_variables]) /*-------------------------. -| yyparse or yypushparse. | +| yyparse or yypush_parse. | `-------------------------*/ b4_push_if([ -b4_c_function_def([yypushparse], [int], [[struct yypvars *yypvars], [yypvars]], +b4_c_function_def([yypush_parse], [int], [[struct yypstate *yyps], [yyps]], [[int yynchar], [yynchar]], [[YYSTYPE *yynlval], [yynlval]] b4_locations_if([,[[YYLTYPE *yynlloc], [yynlloc]]]))],[ #ifdef YYPARSE_PARAM @@ -1095,7 +1095,6 @@ {[ ]b4_pure_if([b4_declare_parser_variables])[ ]b4_push_if([b4_declare_parser_variables])[ - ]b4_push_if([struct yypvars *pv;])[ int yystate; int yyn; int yyresult; @@ -1155,7 +1154,6 @@ yystate = 0; yyerrstatus = 0; ]b4_push_if([ yychar = yynchar; - pv = yypvars; if (yynlval) yylval = *yynlval; ]b4_locations_if([ if (yynlloc) @@ -1190,30 +1188,30 @@ ]])dnl [ ]b4_push_if([ /* Initialize the locals to the current context. */ - yystate = pv->yystate; - yyn = pv->yyn; - yyresult = pv->yyresult; - yyerrstatus = pv->yyerrstatus; - yytoken = pv->yytoken; + yystate = yyps->yystate; + yyn = yyps->yyn; + yyresult = yyps->yyresult; + yyerrstatus = yyps->yyerrstatus; + yytoken = yyps->yytoken; - yyss = pv->yyss; - yyssp = pv->yyssp; + yyss = yyps->yyss; + yyssp = yyps->yyssp; - yyvs = pv->yyvs; - yyvsp = pv->yyvsp; + yyvs = yyps->yyvs; + yyvsp = yyps->yyvsp; ]b4_locations_if([[ /* The location stack. */ - yyls = pv->yyls; - yylsp = pv->yylsp;]])[ + yyls = yyps->yyls; + yylsp = yyps->yylsp;]])[ - yystacksize = pv->yystacksize; - yyval = pv->yyval; - ]b4_locations_if([yyloc = pv->yyloc;])[ - if (pv->yynew == 0) + yystacksize = yyps->yystacksize; + yyval = yyps->yyval; + ]b4_locations_if([yyloc = yyps->yyloc;])[ + if (yyps->yynew == 0) { goto gottoken; } - pv->yynew= 0;])[ + yyps->yynew= 0;])[ goto yysetstate; /*------------------------------------------------------------. @@ -1321,24 +1319,24 @@ YYDPRINTF ((stderr, "Return for a new token:\n")); yyresult = YYPUSH_MORE; /* Initialize the locals to the current context. */ - pv->yystate = yystate; - pv->yyn = yyn; - pv->yyerrstatus = yyerrstatus; - pv->yytoken = yytoken; + yyps->yystate = yystate; + yyps->yyn = yyn; + yyps->yyerrstatus = yyerrstatus; + yyps->yytoken = yytoken; - pv->yyss = yyss; - pv->yyssp = yyssp; + yyps->yyss = yyss; + yyps->yyssp = yyssp; - pv->yyvs = yyvs; - pv->yyvsp = yyvsp; + yyps->yyvs = yyvs; + yyps->yyvsp = yyvsp; ]b4_locations_if([[ /* The location stack. */ - pv->yyls = yyls; - pv->yylsp = yylsp;]])[ + yyps->yyls = yyls; + yyps->yylsp = yylsp;]])[ - pv->yystacksize = yystacksize; - pv->yyval = yyval; - ]b4_locations_if([pv->yyloc = yyloc;])[ + yyps->yystacksize = yystacksize; + yyps->yyval = yyval; + ]b4_locations_if([yyps->yyloc = yyloc;])[ goto yypushreturn; gottoken:])[ YYDPRINTF ((stderr, "Reading a token: ")); @@ -1633,7 +1631,7 @@ if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - ]b4_push_if([pv->yyresult = YYID (yyresult);])[ + ]b4_push_if([yyps->yyresult = YYID (yyresult);])[ /* Make sure YYID is used. */ return YYID (yyresult); ]} @@ -1680,7 +1678,13 @@ # define YYLTYPE_IS_TRIVIAL 1 #endif -]b4_push_if([struct ]b4_prefix[pvars; +]b4_push_if([struct ]b4_prefix[pstate; +]b4_c_function_decl([]b4_prefix[pstate_init], [struct ]b4_prefix[pstate *], [[void], []])[ +]b4_c_function_decl([]b4_prefix[push_parse], [int], + [[struct ]b4_prefix[pstate *]b4_prefix[pstate], []b4_prefix[pstate]], + [[int yynchar], [yynchar]], + [[YYSTYPE *yynlval], [yynlval]] + b4_locations_if([,[[YYLTYPE *yynlloc], [yynlloc]]]))[ enum { YYPUSH_MORE = 4 };])[ ]b4_pure_if([], [extern YYLTYPE b4_prefix[]lloc;]) Index: tests/calc.at =================================================================== RCS file: /sources/bison/bison/tests/calc.at,v retrieving revision 1.95 diff -u -r1.95 calc.at --- tests/calc.at 7 Dec 2006 02:21:13 -0000 1.95 +++ tests/calc.at 8 Dec 2006 22:10:38 -0000 @@ -338,13 +338,13 @@ [ yydebug = 1;])])[ ]AT_PUSH_IF([ { - struct yypvars *ctx = yypvarsinit (); + struct yypstate *pstate = yypstate_init (); YYSTYPE my_lval; ]AT_LOCATION_IF([YYLTYPE my_lloc;])[ do { - status = yypushparse (ctx, yylex (&my_lval]AT_LOCATION_IF([[, &my_lloc]])[), &my_lval]AT_LOCATION_IF([[, &my_lloc]])[); + status = yypush_parse (pstate, yylex (&my_lval]AT_LOCATION_IF([[, &my_lloc]])[), &my_lval]AT_LOCATION_IF([[, &my_lloc]])[); } while (status == YYPUSH_MORE); - free (ctx); + free (pstate); }],[ status = yyparse (]AT_PARAM_IF([[&result, &count]])[);])[ fclose (input);