34cdeddfa5
* src/print-xml.c (escape_bufs): New static global variable replacing... (xml_escape_n): ... the static local variable buf here. (print_xml): Free memory for escape_bufs. * src/reduce.c (reduce_xml): XML-escape terminal symbol tags.
Joel E. Denny2007-09-29 22:36:38 +00:00
d782395d52
Replace %push-parser' and %push-pull-parser' with %define push_pull "push"' and %define push_pull "both"'. `%define push_pull "pull"' is the default. * doc/bison.texinfo (Push Decl, Push Parser Function, Pull Parser Function, Parser Create Function, Parser Delete Function): Update declarations. (Decl Summary, Table of Symbols): Replace %push-parser and %push-pull-parser entries with a %define push_pull entry. * data/bison.m4 (b4_percent_define_check_values): New macro. (b4_pull_if, b4_push_if, b4_use_push_for_pull_if): Move these definitions... * data/c.m4 (b4_identification): ... and the YYPUSH and YYPULL cpp definitions... * data/push.c: ... to here and compute them from the value of the %define variable push_pull. * data/c-skel.m4: Instead of choosing the push.c skeleton for push parsing requests here... * data/yacc.c: ... hack this to switch to push.c any time b4_use_push_pull_flag or the %define variable push_pull is set. This will go away when we mv push.c yacc.c. * data/c++-skel.m4, data/glr.c, data/java-skel.m4: Don't report that push parsing is not supported since unused %define variables are reported anyway. * src/getargs.c, src/getargs.h (pull_parser, push_parser): Remove. * src/muscle_tab.h (muscle_percent_define_check_values): Update comments for consistency with b4_percent_define_check_values. * src/output.c (prepare): Don't insert b4_pull_flag and b4_push_flag muscles. * src/parse-gram.y (PERCENT_PUSH_PARSER, PERCENT_PUSH_PULL_PARSER): Remove. (prologue_declaration): Remove %push-parser and %push-pull-parser rules. * src/scan-gram.l (%push-parser, %push-pull-parser): Remove rules. * tests/calc.at: Update declarations. * tests/input.at (%define enum variables): New test case. * tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update declaration. (Push Parsing: Multiple impure instances): Update declaration. (Push Parsing: Unsupported Skeletons): New test case. * tests/torture.at (Exploding the Stack Size with Alloca): Update declaration. (Exploding the Stack Size with Malloc): Update declaration.
Joel E. Denny2007-09-25 05:47:27 +00:00
a4f75309f2
* src/conflicts.c (log_resolution): Fix indenting bugs I introduced. Problem reported by Wojciech Polak. * src/print-xml.c (xml_puts): Work even if LEVEL exceeds INT_MAX/2. (xml_printf): Undo change I made on 21 September; that is, indent 2 spaces, not 1.
Paul Eggert2007-09-24 06:34:44 +00:00
ad5feac4e2
Pacify ./configure --enable-gcc-warnings. * src/print-xml.c, src/print-xml.h (xml_puts): Make third argument char const *' instead of char *'. * src/state.c (state_rule_lookahead_tokens_print_xml): Remove unused local variable `sep'.
Joel E. Denny2007-09-24 01:41:35 +00:00
41d7a5f24d
* src/gram.c (rule_rhs_print_xml): Now static, since it isn't used elsewhere. * src/print-xml.c: Prefer "const" after types; that's more consistent. (xml_printf): Indent just 1 space for level. (e_char, xlate_char): Remove. (xml_escape_string): Rewrite to avoid undefined behavior (used storage that was freed from the stack). (xml_escape_n): Don't bother checking for subscript error.
Paul Eggert2007-09-21 22:53:58 +00:00
6d8e724de2
* GNUmakefile: Switch to coreutils's version. * bootstrap: Likewise. * Makefile.cfg: Adjust to new GNUmakefile. * README-hacking: Likewise.
Paul Eggert2007-09-21 21:26:14 +00:00
922bdd7ffa
Spell "boolean" as "Boolean". Reported by Akim Demaille. * data/bison.m4 (b4_percent_define_flag_if): Fix complaint. * doc/bison.texinfo (Decl Summary): Fix. * src/muscle_tab.c (muscle_percent_define_flag_if): Fix complaint. * tests/input.at (Boolean %define variables): Update output. * tests/skeletons.at (%define boolean variables: invalid skeleton defaults): Rename to... (%define Boolean variables: invalid skeleton defaults): ... this and update output.
Joel E. Denny2007-08-28 07:14:11 +00:00
1b17b01d0f
In impure push mode, don't allow more than one yypstate to be allocated since multiple impure parsers would corrupt yynerrs. * data/push.c (yypstate_allocated): New static global variable initialized to 0. (yypull_parse): If yypstate_new returns 0, don't report it as memory exhaustion if yypstate_allocated is 1, but still return 2. (yypstate_new): Invoke yyerror and return 0 if yypstate_allocated is already 1. Otherwise, set it to 1. (yypstate_delete): Set it to 0. * tests/push.at (Push Parsing: Multiple impure instances): New test case.
Joel E. Denny2007-08-18 00:45:52 +00:00
9987d1b3cc
* doc/bison.texinfo (Push Decl): Document the push parser. (Table of Symbols): Ditto. (Pure Decl): Ditto. (Decl Summary): Ditto. (Multiple Parsers, Push Parser Function, Pull Parser Function, Parser Create Function, Parser Delete Function): Add new push parser symbols. (Table of Symbols): Document push-parser, push-pull-parser, yypush_parse, yypull_parse, yypstate_new and yypstate_delete.
Joel E. Denny2007-08-18 00:07:01 +00:00
728c4be290
Get rid of broken %no-parser, -n, and --no-parser implementation and documentation. * TODO: Don't mention them. * doc/bison.1: Likewise. * doc/bison.texinfo (Decl Summary): Likewise. (Bison Options): Likewise. (Option Cross Key): Likewise. * src/getargs.c (no_parser_flag): Remove global variable. (usage): Don't print description of -n and --no-parser. (long_options): Remove --no-parser entry here. (getargs): Remove -n case in the switch here. * src/getargs.h (no_parser_flag): Remove extern. * tests/regression.at (Web2c Actions): Remove comment that mentions --no-parser.
Joel E. Denny2007-08-12 02:12:30 +00:00
5d31a2162d
* tests/push.at (Push Parsing: Memory Leak for Early Deletion): Do not name user variables starting with yy'. Just pass NULL instead of a dummy local &yylval to yypush_parse. * tests/torture.at (AT_DATA_STACK_TORTURE): Do not name user variables starting with yy'.
Joel E. Denny2007-08-11 23:08:04 +00:00
91661ebbe3
* ChangeLog: For changes in doc/bison.texinfo, consistently reference node names: say "Decl Summary" not "Bison Declaration Summary".
Joel E. Denny2007-08-03 23:24:25 +00:00
cbd5054909
* src/muscle_tab.c (muscle_percent_define_flag_if): In order to determine whether this function has already complained about an invalid value for a %define boolean variable, don't check whether Bison has ever examined the value. As written, the check was a tautology. Instead, record and check for this complaint using a separate muscle.
Joel E. Denny2007-07-29 01:17:40 +00:00
eb1b07409f
Fix push parsing memory leak reported by Brandon Lucia at <http://lists.gnu.org/archive/html/bug-bison/2007-07/msg00032.html>. * THANKS: Add Brandon Lucia. * data/push.c (yypstate_delete): Free the stack if it was reallocated but the parse never completed and thus freed it. * tests/Makefile.am (TESTSUITE_AT): Add push.at. * tests/testsuite.at: Include push.at. * test/push.at: New. (Push Parsing: Memory Leak for Early Deletion): New test case.
Joel E. Denny2007-07-28 04:27:32 +00:00
9d774affba
Improve handling of multiple S/R conflicts in the same state and of S/R conflicts involving multiple reductions. * src/conflicts.c (resolve_sr_conflict): Don't assign the error action set for a state here or Bison will abort if it is reassigned on a later conflicted reduction in the same state. Similarly, don't finalize and assign the solved conflicts report here or it will be lost if it is reassigned on a later conflicted reduction in the same state. (set_conflicts): Instead, assign them both here after all S/R conflicts in the state have been fully examined. * src/print.c (shift_set): Rename to... (no_reduce_set): ... this. (print_reductions): Update for rename, and add %nonassoc error action tokens to no_reduce_set so that, when printing the first remaining reduction on an error action token, the reduction is enclosed in brackets. (print_results): Update for rename. * tests/conflicts.at (Solved conflicts report for multiple reductions in a state): New test case. (%nonassoc error actions for multiple reductions in a state): New test case.
Joel E. Denny2007-07-17 06:56:36 +00:00
10159d2a67
* build-aux/.cvsignore: Add compile. * lib/.cvsignore: Add ref-add.sed, ref-del.sed, and uniwidth.
Joel E. Denny2007-07-17 03:19:37 +00:00
953b39351a
* bootstrap (slurp): Create target directories that don't exist. Specifically, we need lib/uniwidth/ because of recent Gnulib changes.
Joel E. Denny2007-07-17 02:28:28 +00:00
6ce2d93a9b
* LR0.c (new_itemsets): Fix wording in comments: say item index rather than item number. * closure.c (closure): Likewise. * state.h (reductions): Comment sorting of rules. (state): Comment sorting of items.
Joel E. Denny2007-07-10 02:57:31 +00:00
ce3448d5b9
Fix C++ test cases after recent Gnulib changes. Discussed starting at <http://lists.gnu.org/archive/html/bug-bison/2007-07/msg00000.html>. * examples/calc++/Makefile.am (DEFAULT_INCLUDES): Override Automake's definition in order to avoid Gnulib headers since we don't use config.h here. * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Use AT_DATA_GRAMMAR rather than AT_DATA so that config.h is included.
Joel E. Denny2007-07-03 14:08:29 +00:00
8a86eef0fa
* data/glr.c (yy_yypstack, yypstates, yypdumpstack): Use YYFPRINTF instead of fprintf. Guard these functions with #if YYDEBUG instead of #ifdef YYDEBUG for consistency with all other uses of YYDEBUG in Bison and so that YYFPRINTF is guaranteed to be defined here.
Joel E. Denny2007-07-02 02:07:20 +00:00
71b61d4db5
Improve some comments in parser table construction. * src/LR0.c (new_itemsets): Explain sorting of itemset and kernel_base. (generate_states): Don't mention ruleset, which is internal to closure. * src/closure.c (closure): Explain sorting of core and itemset, which is required for this function to behave correctly. * src/closure.h (closure): Mention sorting.
Joel E. Denny2007-05-29 04:24:17 +00:00
b1a8161341
* src/muscle_tab.c (muscle_percent_define_invalid_value): Replace with... (muscle_percent_define_check_values): ... this more helpful function. Again, it's not used yet, but it will be. * src/muscle_tab.h: Likewise.
Joel E. Denny2007-05-29 03:06:34 +00:00
2a6b783def
* src/lalr.c (state_lookahead_tokens_count): For code readability, move the check for disabled transitions to an aver since conflict resolution hasn't happened yet.
Joel E. Denny2007-05-28 04:14:18 +00:00
61fee93ecb
* NEWS (2.3a+): In the %code entry, reference section `Bison Declaration Summary' from the manual now since the %code summary has moved there. * doc/bison.texinfo (Prologue Alternatives): Mention that directives in the rules section must be terminated by semicolons.
Joel E. Denny2007-05-26 20:08:18 +00:00
f124d4233f
Extend the front-end API for %define variables to more completely mirror the back-end. This will be useful in the future. * data/bison.m4 (b4_percent_define_get, b4_percent_define_ifdef): Update comments to mention the new front-end counterparts of these macros. * src/muscle_tab.c (MUSCLE_COMMON_DECODE): New macro with common code for muscle_string_decode and muscle_location_decode. (muscle_string_decode): New static function. (muscle_location_decode): Use MUSCLE_COMMON_DECODE. (muscle_percent_define_get, muscle_percent_define_ifdef): New functions. (muscle_percent_define_flag_if): Use muscle_percent_define_ifdef and muscle_percent_define_get to mimic the b4_percent_define_flag_if implementation more closely. (muscle_percent_define_invalid_value): New function. * src/muscle_tab.h (muscle_percent_define_get, muscle_percent_define_ifdef, muscle_percent_define_invalid_value): Prototype.
Joel E. Denny2007-05-20 05:01:53 +00:00
75ad86eebd
* NEWS (2.3a+): Mention yesterday's state-removal change. (2.3a): Remove the %language entry, which was added after 2.3a. * src/LR0.c, src/closure.c, src/closure.h, src/conflicts.c, src/conflicts.h, src/lalr.c, src/lalr.h, src/print.c, src/print_graph.c, src/state.c, src/state.h, tests/conflicts.at, tests/existing.at: Update copyright date.
Joel E. Denny2007-05-08 05:03:53 +00:00
5967f0cf59
If conflict resolution makes states unreachable, remove those states, report rules that are then unused, and don't report conflicts in those states. * src/conflicts.c, src/conflicts.h (conflicts_update_state_numbers): New global function. * src/lalr.c, src/lalr.h (lalr_update_state_numbers): New global function. * src/main.c (main): After conflict resolution, remove the unreachable states and update all data structures that reference states by number. * src/state.c (state_new): Initialize each state's reachable member to false. (state_mark_reachable_states): New static function. (state_remove_unreachable_states): New global function. * src/state.h (struct state): Add member bool reachable. (state_remove_unreachable_states): Prototype. * tests/conflicts.at (Unreachable States After Conflict Resolution): New test case. * tests/existing.at (GNU pic Grammar): Update test case output now that an unused rule is discovered.
Joel E. Denny2007-05-07 02:56:56 +00:00
b09f4f4851
Minor code cleanup in parser table construction. * src/LR0.c (new_itemsets): Use item_number_is_symbol_number. (new_itemsets, save_reductions): Update for rename to nitemset. * src/closure.c (nritemset): Rename to... (nitemset): ... this since the "r" appears to meaningless and isn't used in the comments. (closure): Update for rename. * src/closure.h (nritemset): Update extern to... (nitemset): ... this. * src/lalr.c (LA): Fix a typo in comments. * src/print.c (print_core): Update for rename to nitemset. * src/print_graph.c (print_graph): Likewise. * src/state.h: Fix some typos in header comments.
Joel E. Denny2007-05-07 02:28:42 +00:00
9b33de72cd
Use ASCII for Sebastien Fricker's name.
Paul Eggert2007-04-04 22:41:58 +00:00
bbb44d83f8
* README-hacking: New file, taken mostly from coreutils, with changes for Bison. Contains much of the contents of: * README-cvs: Remove. * bootstrap: Sync from gnulib. * build-aux/.cvsignore: Remove *.t, mkinstalldirs. * lib/.cvsignore: Add wchar.h, wctype.h. Remove exit.h.
Paul Eggert2007-04-04 22:36:54 +00:00
2955354793
* doc/bison.texinfo (Destructor Decl): Fix typo reported by Sebastian Setzer. (Java Differences): Fix some typos. * THANKS: Add Sebastian Setzer.
Joel E. Denny2007-03-10 21:05:24 +00:00
122bea3ab9
DJGPP spefic issue. Inhibit the use of disallowed characters for file name genertion on Win98, WinXP, etc. These are |<>":?*and concern testsuite case 46. * Makefile.am: djgpp/testsuite.sed added to EXTRA_DIST * djgpp/testsuite.sed: Inhibit the use of disallowed characters. * djgpp/config.bat: Inhibit the use of disallowed characters.
Juan Manuel Guerrero2007-03-07 21:57:35 +00:00
c4d505179a
* djgpp/config.bat: Rename arguments to args. Avoids 8.3 alias difficulty.
Juan Manuel Guerrero2007-03-07 07:24:23 +00:00
50a843778a
* djgpp/config.sed: Fix that inttypes.h and inttypes_.h map on the same 8.3 alias.
Juan Manuel Guerrero2007-03-07 06:33:37 +00:00
7b30971d7b
* djgpp/config.bat: Fix that inttypes.h and inttypes_.h map on the same 8.3 alias.
Juan Manuel Guerrero2007-03-07 06:33:27 +00:00
9611cfa20b
Miscellaneous %define and %code cleanup. * data/bison.m4 (b4_percent_define_flag_if): Correct comments on how values are interpreted. * doc/bison.texinfo (Decl Summary): Clean up and extend %define documentation a little more. * src/muscle_tab.c (MUSCLE_USER_NAME_CONVERT, muscle_percent_define_insert, muscle_percent_code_grow): New functions/macros. * src/muscle_tab.h (muscle_percent_define_insert, muscle_percent_code_grow): Prototype. * src/parse-gram.y (prologue_declaration): Use muscle_percent_define_insert and muscle_percent_code_grow when parsing %define and %code directives.
Joel E. Denny2007-03-02 06:26:28 +00:00
0bf9249152
* src/print.c (lookahead_set, state_default_rule): Remove. (print_reductions): Replace state_default_rule invocation with equivalent use of yydefact, which was computed in token_actions in tables.c. (print_results): Don't allocate lookahead_set.
Joel E. Denny2007-03-01 03:40:18 +00:00
f57a753663
Use YYFPRINTF instead of fprintf where appropriate. Reported by S�bastien Fricker at <http://lists.gnu.org/archive/html/bug-bison/2007-02/msg00035.html>. * THANKS: Add S�bastien Fricker. * data/glr.c, data/push.c, data/yacc.c (yy_reduce_print): Implement. * doc/bison.texinfo (Tracing): Make it clearer that YYFPRINTF must accept a variable number of arguments.
Joel E. Denny2007-02-24 05:43:35 +00:00
6404a5bf3f
* bootstrap: Remove occurrences of .#bootmp from lib/Makefile.
Joel E. Denny2007-02-19 06:06:55 +00:00
1ab41b2a2e
* djgpp/README.in: More generic description of required packages for compiling the sources.
Juan Manuel Guerrero2007-02-16 10:48:21 +00:00
c7c8ecd1df
* djgpp/config.site: Adjustments concerning the use of autoconf 2.61.
Juan Manuel Guerrero2007-02-14 01:20:37 +00:00
2c061cb015
* djgpp/config.sed: Adjustments concerning the use of autoconf 2.61.
Juan Manuel Guerrero2007-02-14 01:20:26 +00:00
12ab1c9dd1
* djgpp/config.bat: Adjustments concerning the use of autoconf 2.61.
Juan Manuel Guerrero2007-02-14 01:20:06 +00:00
e4e0963996
* DJGPP specific adjustments concerning the use of autoconf 2.61.
Juan Manuel Guerrero2007-02-14 01:19:42 +00:00
d7e0a1a776
Undo my 2007-02-07 change, switching back to the c-strcase module introduced in the 2007-02-03 change. Bruno Haible reported that the 2007-02-07 change would be dangerous in Turkish if we add a language whose name contains "i", since "i" is not lowercase "I" in Turkish. * bootstrap.conf (gnulib_modules): Add c-strcase. Remove strcase. * lib/.cvsignore: Add c-ctype.c, c-ctype.h, c-strcase.h, c-strcasecomp.c, c-strncasecmp.c. Remove strcasecmp.c, strncasecmp.c. * m4/.cvsignore: Remove strcase.m4. * src/getargs.c: Revert 2007-02-07 change, as follows. Include c-strcase.h. (language_argmatch): Use c_strcasecmp rather than strcasecmp.
Paul Eggert2007-02-12 06:11:39 +00:00
574add857a
* data/Makefile.am: Update copyright date. * data/push.c (yypull_parse): Report memory exhaustion and return 2 if yypstate_new returns NULL. (yypstate_new): Return NULL if malloc does. * src/reader.c (packgram): Move translation of rule actions from the beginning of packgram to... (check_and_convert_grammar): ... here right before packgram is invoked so it's easier to write more complete comments, and remove redundant code.
Joel E. Denny2007-02-11 07:34:26 +00:00
e785ccf715
As in semantic actions, make @$ in %initial-action, %destructor, and %printer imply %locations. * src/scan-code.l (SC_SYMBOL_ACTION): Set locations_flag = true when scanning @$. * tests/actions.at (AT_CHECK_ACTION_LOCATIONS): New macro supporting... (@$ in %initial-action implies %locations, @$ in %destructor implies %locations, @$ in %printer implies %locations): ... these new test cases.
Joel E. Denny2007-02-10 22:28:23 +00:00
1cfe1ed7c8
Undo most of the 2007-02-03 change, switching to the strcase module now that gnulib strcase has been fixed. * bootstrap.conf (gnulib_modules): Remove c-strcase. Add strcase. * lib/.cvsignore: Remove c-ctype.c, c-ctype.h, c-strcase.h, c-strcasecomp.c, c-strncasecmp.c. Add strcasecmp.c, strncasecmp.c * m4/.cvsignore: Add strcase.m4. * src/getargs.c: Revert 2007-02-03 change, as follows. Don't include c-strcase.h. (language_argmatch): Use strcasecmp rather than c_strcasecmp. strcasecmp has "unspecified behavior" outside the POSIX locale, but it works fine in practice if at least one argument is ASCII, as is the case in Bison.
Paul Eggert2007-02-07 20:37:29 +00:00
2c2b72205a
* .cvsignore: Add javacomp.sh, javaexec.sh. Is this really the right spot for these files? * bootstrap.conf (gnulib_modules): Add c-strcase. * lib/.cvsignore: Add c-ctype.c c-ctype.h, c-strcasecomp.c, c-strncasecmp.c. * src/getargs.c: Include c-strcase.h. (language_argmatch): Use c_strcasecmp rather than strcasecmp, to avoid unspecified behavior.
Paul Eggert2007-02-04 07:19:10 +00:00
b2b81dae23
* doc/bison.texinfo (Decl Summary): Correct typo.
Joel E. Denny2007-02-01 06:39:43 +00:00
87b0a37597
* src/scan-skel.l (at_directive_perform): Fix switch statements for last patch.
Joel E. Denny2007-01-28 15:10:56 +00:00
3eb82471fa
Clean up. * src/scan-skel.l (at_directive_perform): Add at_directive_argc and at_directive_argv arguments so these no longer have to be global variables. Also, update the implementation for the following changes. (fail_for_at_directive_too_many_args, fail_for_at_directive_too_few_args): Add at_directive_name argument. (at_directive_name): Remove as at_directive_argv[0] will be used for this now. (AT_DIRECTIVE_ARGC_MAX): Increment to make space in at_directive_argv for the directive name. (at_directive_argc, at_directive_argv): Make these local within skel_lex instead of global. (INITIAL): Update directive start action for above changes. (SC_AT_DIRECTIVE_ARG): Rename to... (SC_AT_DIRECTIVE_ARGS): ... this, and update for above changes. (SC_AT_DIRECTIVE_SKIP_WS): Update. (scan_skel): Move yylex_destroy to... (skel_scanner_free): ... here. * tests/skeletons.at (installed skeleton file name): Rename to... (installed skeleton file names): ... this.
Joel E. Denny2007-01-28 14:31:56 +00:00
148d66d861
* ChangeLog: For changes in doc/bison.texinfo, consistently reference node names: say "Table of Symbols" not "Bison Symbols", and say "Decl Summary" not "Directives". * doc/bison.texinfo (Decl Summary, Calc++ Parser): Cross-reference the %code entry in "Decl Summary" rather than the one in "Table of Symbols" since the former is now the more complete one. (Prologue Alternatives): Likewise and do the same for %defines. (Table of Symbols): Add summary of %code, add summary of %define, and move full %code documentation to... (Decl Summary): ... here for consistency with other entries in these sections. Move %define entry in order to keep this list alphabetized. Reword %define entry a little to put less emphasis on the skeleton concept, which most users shouldn't have to think about.
Joel E. Denny2007-01-27 23:34:16 +00:00
665f0c2454
Adjust to recent gnulib changes. * lib/.cvsignore: Remove stpcpy.h, strndup.h, strnlen.h. Add string.h, string_.h, unistd_.h, wchar_.h. * m4/.cvsignore: Add gnulib-common.m4, string_h.m4, wchar.m4. * src/system.h: Don't include <stpcpy.h>; this is now done by <string.h>.
Paul Eggert2007-01-26 23:11:59 +00:00
d4bdb91677
Implement @gettext<...@> directive to call gettext from skeletons. It can be used anywhere including inside arguments of directives of the form @foo(...@). Eventually, it should be possible to write an xgettext-like utility to extract @gettext<...@> text from skeletons. * data/bison.m4 (b4_check_user_names): Use @gettext<...@> when invoking b4_warn_at since b4_warn_at doesn't invoke gettext anymore. * data/glr.cc, data/lalr1.cc: Likewise but for b4_fatal and b4_complain reporting a push-parsing request or a missing %defines. * src/scan-skel.l (INITIAL): Recognize @gettext<' to start... (SC_AT_GETTEXT_ARG): ... this new start condition where gettext is invoked. (SC_AT_DIRECTIVE_ARG): Rename to... (SC_AT_DIRECTIVE_ARGS): ... this, and recognize @gettext<' to start SC_AT_GETTEXT_ARG. (at_directive_perform): Don't invoke gettext for @warn(...@), @warn_at(...@), etc. Instead, let the skeletons decide what should be passed to @gettext<...@>. * tests/skeletons.at (@gettext<...@>): New test case.
Joel E. Denny2007-01-18 05:14:59 +00:00
a7867f53b3
Implement support for relative and absolute skeleton file names. Discussed starting at <http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00071.html>. * doc/bison.texinfo (Decl Summary): Document in %skeleton entry. (Bison Options): Document in --skeleton entry. * src/output.c (output_skeleton): Use strncpy rather than strcpy since full_skeleton can't necessarily hold all of pkgdatadir. If the specified skeleton file name contains a /', don't prepend pkgdatadir. * src/parse-gram.y (prologue_declaration): If the specified skeleton file name contains a /', prepend the grammar file directory. * tests/Makefile.am (TESTSUITE_AT): Add skeletons.at. * skeletons.at: New file. (relative skeleton file names): New test case. (installed skeleton file names): New test case. * tests/testsuite.at: Include skeletons.at.
Joel E. Denny2007-01-18 02:18:17 +00:00
bb32f4f284
* doc/bison.texinfo (Calc++ Parsing Driver): Let "parse" return an error code. (Calc++ Scanner): Exit with failure if we can't open the input file. Accept "-" standing for stdin. (Calc++ Top Level): Print the result only if the parsing was successful.
Akim Demaille2007-01-16 13:11:30 +00:00
a4e25e1dec
Clean up %define and %code implementation in M4 some. Most importantly, rename all related macros to be in the b4_percent_define and b4_percent_code namespaces. Also, complete support for .' in %define variable names and %code qualifiers. * data/bison.m4 (b4_check_user_names): Check for special "SKELETON-NAMESPACE(name)" macros instead of using two nested m4_foreach loops. (b4_get_percent_define, b4_get_percent_code): Rename to... (b4_percent_define_get, b4_percent_code_get): ... these. Extend documentation with examples. For SKELETON-NAMESPACE (as documented for b4_check_user_names), use b4_percent_define_skeleton_variables and b4_percent_code_skeleton_qualifiers. Expect any value for the %define variable foo' to be stored in the macro named b4_percent_define(foo)'; expect any %code blocks for the qualifier foo' to be stored in a macro named b4_percent_code(foo)'; expect any unqualified %code blocks to be stored in a macro named b4_percent_code_unqualified'. Use m4_indir so that %define variable names and %code qualifiers can contain `.', which is allowed by the grammar parser. (b4_percent_define_default): New macro to set a default value for a %define variable. (m4_wrap): Update wrapped code, and fix some underquoting. (b4_check_user_names_wrap): Update and define outside the m4_wrap. Expect grammar uses of %define variables and %code qualifiers to be defined in b4_percent_define_user_variables and b4_percent_code_user_qualifiers. * data/c++.m4: Use b4_percent_define_default rather than m4_define_default. Fix some underquoting. Skeleton usage of %define variable define_location_comparison now implies skeleton usage of %define variable filename_type. * data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc, data/push.c, data/yacc.c: Update macro names. * src/parse-gram.y (prologue_declaration, grammar_declaration): Update muscle names.
Joel E. Denny2007-01-16 06:16:04 +00:00
e37c665c41
* djgpp/config.site: Set ac_cv_path_mkdir to a sane DJGPP specific default. Set gl_cv_absolute_wctype_h to a sane DJGPP specific default.
Juan Manuel Guerrero2007-01-14 22:22:26 +00:00
7d2d521fb8
* tests/glr-regression.at: Use AT_PARSER_CHECK rather than AT_CHECK to run parsers in all tests so that Valgrind is invoked during maintainer-check-valgrind. (Duplicate representation of merged trees): Free all semantic values. (Duplicated user destructor for lookahead): Likewise.
Joel E. Denny2007-01-10 03:47:50 +00:00
e0ac9b4bb0
* tests/local.at (AT_PARSER_CHECK): Add a PRE argument to specify a command-line prefix. * tests/torture.at (Exploding the Stack Size with Alloca): Stderr is ignored, so use that PRE to set --log-fd=1 in VALGRIND_OPTS so we don't miss Valgrind messages. (Exploding the Stack Size with Malloc): Likewise.
Joel E. Denny2007-01-10 02:55:19 +00:00
78143faa16
Ignore YYSTACK_USE_ALLOCA for push parsers since the stacks can't be locals. Reported by Juan Manuel Guerrero at <http://lists.gnu.org/archive/html/bug-bison/2007-01/msg00000.html>. * data/push.c: Enclose the #ifdef YYSTACK_USE_ALLOCA in b4_push_if. Fix some indentation also. * tests/torture.at (Exploding the Stack Size with Alloca): Add comment explaining this issue.
Joel E. Denny2007-01-10 00:50:55 +00:00
7ecec4ddf9
Simplify union and prologue handling, and escape union and lex/parse params with digraphs. * data/bison.m4 (b4_pre_prologue, b4_post_prologue): Set their default values to the empty string since these are no longer guaranteed initialized by the front-end. * data/glr.c, data/glr.cc, data/lalr1.cc, data/push.c, data/yacc.c: Add braces around b4_user_stype since this is no longer done by the front-end. * src/files.c, src/files.h (pre_prologue_obstack, post_prologue_obstack): Remove. * src/muscle_tab.c (muscle_pair_list_grow): Don't duplicate header comments here. Use MUSCLE_OBSTACK_SGROW so that values are escaped with digraphs. This fixes lex params and parse params. * src/muscle_tab.h (muscle_pair_list_grow): Update comments. * src/output.c (prepare): Remove muscle insertion of the prologues. (output): Remove freeing of pre_prologue_obstack and post_prologue_obstack. * src/parse-gram.y (prologue_declaration): Use muscle_code_grow rather than prologue_augment for prologue parsing so you don't need prologue obstacks. (grammar_declaration): Use `braceless' instead of "{...}" so that braces are already stripped and code is escaped with digraphs. * src/reader.c (prologue_augment): Remove. (reader): Remove initialization of pre_prologue_obstack and post_prologue_obstack. * src/reader.h (prologue_augment): Remove.
Joel E. Denny2007-01-09 05:24:11 +00:00
16dc6a9ebf
Remove quotes from variables names in %define directives and from qualifiers in %code directives, and restrict the characters that are allowed in them to M4-friendly ones. For %define, continue to support the quoted form as a deprecated feature. Discussed starting at <http://lists.gnu.org/archive/html/bison-patches/2007-01/msg00023.html>. * NEWS (2.3a+): Add entry for the change to %define. Update entry for %code. * doc/bison.texinfo (Prologue Alternatives): Update. (Bison Declaration Summary): In %defines entry, update mention of %code requires' and %code provides'. (C++ Location Values): Update %define uses. (Calc++ Parser Interface): Likewise. (Calc++ Parser): Likewise, and update %code requires' uses. (Bison Symbols): Update %code documentation. * src/parse-gram.y (prologue_declaration): For %define variables, use variable' instead of STRING'. (grammar_declaration): For %code qualifiers, use ID' instead of STRING'. (variable): New nonterminal that takes an ID' or a `STRING'. * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Update %code and %define uses. * tests/calc.at (_AT_DATA_CALC_Y): Update %define use. * tests/input.at (Reject unused %code qualifiers): Update %code uses. (%define errors): Update %define uses.
Joel E. Denny2007-01-09 01:17:51 +00:00
e9813cd4f8
* src/parse-gram.y (prologue_declaration): Use MUSCLE_INSERT_STRING instead of muscle_insert for %define values so that M4-special characters are replaced with digraphs. * tests/input.at (%define errors): Extend to check weird values.
Joel E. Denny2007-01-08 22:06:55 +00:00