For push mode, add pull wrappers around yypush_parse.

* data/push.c: (b4_generate_macro_args, b4_parenthesize): New macros.
(yypull_parse): New function wrapping yypush_parse.
(yyparse): New #define wrapping yypull_parse.
* tests/calc.at (_AT_DATA_CALC_Y): Call yyparse even when %push-parser
is declared.
* tests/headers.at (export YYLTYPE): Make yylex global.  For push mode,
prototype yylex in the module that calls yyparse, and don't prototype
yyparse there.  Otherwise, the yyparse expansion won't compile.
* tests/input.at (Torturing the Scanner): Likewise.
This commit is contained in:
Joel E. Denny
2006-12-25 18:21:52 +00:00
parent 94ebeba53f
commit c3d503425f
5 changed files with 88 additions and 14 deletions

View File

@@ -1,3 +1,16 @@
2006-12-25 Joel E. Denny <jdenny@ces.clemson.edu>
For push mode, add pull wrappers around yypush_parse.
* data/push.c: (b4_generate_macro_args, b4_parenthesize): New macros.
(yypull_parse): New function wrapping yypush_parse.
(yyparse): New #define wrapping yypull_parse.
* tests/calc.at (_AT_DATA_CALC_Y): Call yyparse even when %push-parser
is declared.
* tests/headers.at (export YYLTYPE): Make yylex global. For push mode,
prototype yylex in the module that calls yyparse, and don't prototype
yyparse there. Otherwise, the yyparse expansion won't compile.
* tests/input.at (Torturing the Scanner): Likewise.
2006-12-25 Joel E. Denny <jdenny@ces.clemson.edu>
Enable push parsers to operate in impure mode. Thus, %push-parser no