(yypstate_new): ... this and use b4_c_function_def.
(yypstate_delete): New.
(yypush_parse): Change parameters yynval and yynlloc to be const.
* tests/calc.at (_AT_DATA_CALC_Y): Use new yypstate_new and
yypstate_delete functions.
+2006-12-13 Bob Rossi <bob@brasko.net>
+
+ * data/push.c (yypstate_init): Rename to...
+ (yypstate_new): ... this and use b4_c_function_def.
+ (yypstate_delete): New.
+ (yypush_parse): Change parameters yynval and yynlloc to be const.
+ * tests/calc.at (_AT_DATA_CALC_Y): Use new yypstate_new and
+ yypstate_delete functions.
+
2006-12-13 Joel E. Denny <jdenny@ces.clemson.edu>
* configure.ac (AC_PREREQ): Require Autoconf 2.61 because of our
2006-12-13 Joel E. Denny <jdenny@ces.clemson.edu>
* configure.ac (AC_PREREQ): Require Autoconf 2.61 because of our
[/* Substitute the variable and function names. */
#define yyparse b4_prefix[]parse
]b4_push_if([#define yypush_parse b4_prefix[]push_parse
[/* Substitute the variable and function names. */
#define yyparse b4_prefix[]parse
]b4_push_if([#define yypush_parse b4_prefix[]push_parse
-#define yypstate_init b4_prefix[]pstate_init
+#define yypstate_new b4_prefix[]pstate_new
+#define yypstate_delete b4_prefix[]pstate_delete
#define yypstate b4_prefix[]pstate])[
#define yylex b4_prefix[]lex
#define yyerror b4_prefix[]error
#define yypstate b4_prefix[]pstate])[
#define yylex b4_prefix[]lex
#define yyerror b4_prefix[]error
]b4_push_if([
struct yypstate;
enum { YYPUSH_MORE = 4 };
]b4_push_if([
struct yypstate;
enum { YYPUSH_MORE = 4 };
-]b4_c_function_decl([yypstate_init], [struct yypstate *], [[void], []])[
+]b4_c_function_decl([yypstate_new], [struct yypstate *], [[void], []])[
+]b4_c_function_decl([yypstate_delete], [void], [[struct yypstate *yyps], [yyps]])[
]b4_c_function_decl([yypush_parse], [int],
[[struct yypstate *yyps], [yyps]],
[[int yynchar], [yynchar]],
]b4_c_function_decl([yypush_parse], [int],
[[struct yypstate *yyps], [yyps]],
[[int yynchar], [yynchar]],
- [[YYSTYPE *yynlval], [yynlval]]
- b4_locations_if([,[[YYLTYPE *yynlloc], [yynlloc]]]))[
+ [[YYSTYPE const *yynlval], [yynlval]]
+ b4_locations_if([,[[YYLTYPE const *yynlloc], [yynlloc]]]))[
])[
]m4_divert_push([KILL])# ======================== M4 code.
])[
]m4_divert_push([KILL])# ======================== M4 code.
};
/* Initialize the parser data structure. */
};
/* Initialize the parser data structure. */
-struct yypstate*
-yypstate_init (void)
+]b4_c_function_def([yypstate_new], [struct yypstate *])[
{
struct yypstate *yyps = (struct yypstate *) malloc (sizeof *yyps);
yyps->yystate = 0;
{
struct yypstate *yyps = (struct yypstate *) malloc (sizeof *yyps);
yyps->yystate = 0;
]b4_locations_if([ yyps->yylsp = yyps->yyls;])[
return yyps;
]b4_locations_if([ yyps->yylsp = yyps->yyls;])[
return yyps;
+}
+
+]b4_c_function_def([yypstate_delete], [void],
+ [[struct yypstate *yyps], [yyps]])[
+{
+ free (yyps);
+}
+])
m4_divert_pop([KILL])dnl# ====================== End of M4 code.
b4_push_if([],[b4_pure_if([],
m4_divert_pop([KILL])dnl# ====================== End of M4 code.
b4_push_if([],[b4_pure_if([],
b4_push_if([
b4_c_function_def([yypush_parse], [int], [[struct yypstate *yyps], [yyps]],
b4_push_if([
b4_c_function_def([yypush_parse], [int], [[struct yypstate *yyps], [yyps]],
- [[int yynchar], [yynchar]], [[YYSTYPE *yynlval], [yynlval]]
- b4_locations_if([,[[YYLTYPE *yynlloc], [yynlloc]]]))],[
+ [[int yynchar], [yynchar]],
+ [[YYSTYPE const *yynlval], [yynlval]]
+ b4_locations_if([,[[YYLTYPE const *yynlloc], [yynlloc]]]))],[
#ifdef YYPARSE_PARAM
b4_c_function_def([yyparse], [int], [[void *YYPARSE_PARAM], [YYPARSE_PARAM]])
#else /* ! YYPARSE_PARAM */
#ifdef YYPARSE_PARAM
b4_c_function_def([yyparse], [int], [[void *YYPARSE_PARAM], [YYPARSE_PARAM]])
#else /* ! YYPARSE_PARAM */
#endif
]b4_push_if([struct ]b4_prefix[pstate;
#endif
]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[pstate_new], [struct ]b4_prefix[pstate *],
+ [[void], []])[
+]b4_c_function_decl([]b4_prefix[pstate_delete], [void],
+ [[struct ]b4_prefix[pstate *yyps],[yyps]])[
]b4_c_function_decl([]b4_prefix[push_parse], [int],
[[struct ]b4_prefix[pstate *]b4_prefix[pstate], []b4_prefix[pstate]],
[[int yynchar], [yynchar]],
]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]]]))[
+ [[YYSTYPE const *yynlval], [yynlval]]
+ b4_locations_if([,[[YYLTYPE const *yynlloc], [yynlloc]]]))[
enum { YYPUSH_MORE = 4 };])[
]b4_pure_if([],
[extern YYLTYPE b4_prefix[]lloc;])
enum { YYPUSH_MORE = 4 };])[
]b4_pure_if([],
[extern YYLTYPE b4_prefix[]lloc;])
[ yydebug = 1;])])[
]AT_PUSH_IF([
{
[ yydebug = 1;])])[
]AT_PUSH_IF([
{
- struct yypstate *pstate = yypstate_init ();
+ struct yypstate *pstate = yypstate_new ();
YYSTYPE my_lval;
]AT_LOCATION_IF([YYLTYPE my_lloc;])[
do {
status = yypush_parse (pstate, yylex (&my_lval]AT_LOCATION_IF([[, &my_lloc]])[), &my_lval]AT_LOCATION_IF([[, &my_lloc]])[);
} while (status == YYPUSH_MORE);
YYSTYPE my_lval;
]AT_LOCATION_IF([YYLTYPE my_lloc;])[
do {
status = yypush_parse (pstate, yylex (&my_lval]AT_LOCATION_IF([[, &my_lloc]])[), &my_lval]AT_LOCATION_IF([[, &my_lloc]])[);
} while (status == YYPUSH_MORE);
+ yypstate_delete (pstate);
}],[
status = yyparse (]AT_PARAM_IF([[&result, &count]])[);])[
fclose (input);
}],[
status = yyparse (]AT_PARAM_IF([[&result, &count]])[);])[
fclose (input);