mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-15 15:23:02 +00:00
instead of passing a yylexp argument to yypull_parse, and don't generate yypull_parse or yyparse unless %push-pull-parser is declared. Discussed starting at <http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00163.html>. * data/bison.m4 (b4_pull_if): New. * data/c.m4 (b4_identification): Define YYPULL similar to YYPUSH. * data/push.c: Improve M4 quoting a little. (b4_generate_macro_args, b4_parenthesize): Remove. (yyparse): If there's a b4_prefix, #define this to b4_prefix[parse] any time a pull parser is requested. Don't #define this as a wrapper around yypull_parse. Instead, when both push and pull are requested, make it a function that does that same thing. (yypull_parse): If there's a b4_prefix, #define this to b4_prefix[pull_parse] when both push and pull are requested. Don't define this as a function unless both push and pull are requested. Remove the yylexp argument and hard-code yylex invocation instead. * etc/bench.pl.in (bench_grammar): Use %push-pull-parser instead of %push-parser. * src/getargs.c (pull_parser): New global initialized to true. * getargs.h (pull_parser): extern it. * src/output.c (prepare): Insert pull_flag muscle. * src/parse-gram.y (PERCENT_PUSH_PULL_PARSER): New token. (prologue_declaration): Set both push_parser and pull_parser = true for %push-pull-parser. Set push_parser = true and pull_parser = false for %push-parser. * src/scan-gram.l: Don't accept %push_parser as an alternative to %push-parser since there's no backward-compatibility concern here. Scan %push-pull-parser. * tests/calc.at (Simple LALR(1) Calculator): Use %push-pull-parser instead of %push-parser. * tests/headers.at (export YYLTYPE): Make yylex static, and don't prototype it in the module that calls yyparse. * tests/input.at (Torturing the Scanner): Likewise. * tests/local.at (AT_PUSH_IF): Check for %push-pull-parser as well.
54 lines
628 B
Plaintext
54 lines
628 B
Plaintext
absolute-header.m4
|
|
argmatch.m4
|
|
config-h.m4
|
|
dirname.m4
|
|
dos.m4
|
|
double-slash-root.m4
|
|
error.m4
|
|
exitfail.m4
|
|
extensions.m4
|
|
getopt.m4
|
|
gettext.m4
|
|
gnulib-cache.m4
|
|
gnulib-comp.m4
|
|
gnulib-tool.m4
|
|
hash.m4
|
|
iconv.m4
|
|
inline.m4
|
|
inttypes-h.m4
|
|
inttypes-pri.m4
|
|
inttypes.m4
|
|
lib-ld.m4
|
|
lib-link.m4
|
|
lib-prefix.m4
|
|
longlong.m4
|
|
mbrtowc.m4
|
|
mbstate_t.m4
|
|
mbswidth.m4
|
|
nls.m4
|
|
po.m4
|
|
progtest.m4
|
|
quote.m4
|
|
quotearg.m4
|
|
stdbool.m4
|
|
stdint.m4
|
|
stdint_h.m4
|
|
stdio-safer.m4
|
|
stpcpy.m4
|
|
strerror.m4
|
|
strndup.m4
|
|
strnlen.m4
|
|
strtol.m4
|
|
strtoul.m4
|
|
strverscmp.m4
|
|
unistd-safer.m4
|
|
unistd_h.m4
|
|
unlocked-io.m4
|
|
warning.m4
|
|
wchar_t.m4
|
|
wctype.m4
|
|
wcwidth.m4
|
|
wint_t.m4
|
|
xalloc.m4
|
|
xstrndup.m4
|