Commit Graph

476 Commits

Author SHA1 Message Date
Akim Demaille 82b248ada6 * src/parse-gram.y: Use %printer instead of YYPRINT. 2005-07-12 13:54:41 +00:00
Paul Eggert 5f6da1c0f8 Regenerate. 2005-07-09 08:27:02 +00:00
Paul Eggert 0925ebb4fa * data/yacc.c (malloc, free) [defined __cplusplus]: Wrap inside extern "C" {}. 2005-06-09 20:44:28 +00:00
Paul Eggert 73e561d51a Regenerate. 2005-05-30 17:25:18 +00:00
Paul Eggert 4b43d40257 Regenerate. 2005-05-27 23:22:19 +00:00
Paul Eggert bd134904da Regenerate. 2005-05-22 05:20:48 +00:00
Paul Eggert 0fb669f9d6 Update FSF postal mail address. 2005-05-14 06:49:48 +00:00
Paul Eggert 7768896a25 Regenerate. 2005-05-02 04:56:45 +00:00
Paul Eggert 9f666b5106 Regenerate. 2005-04-17 08:14:52 +00:00
Paul Eggert 2ce37586de Regenerate. 2005-04-16 06:34:20 +00:00
Paul Eggert ffc9da3a52 Regenerate. 2005-04-14 00:09:11 +00:00
Paul Eggert 4b3017faf2 Regenerate. 2005-03-17 19:22:00 +00:00
Paul Eggert b4fb989f02 Regenerate. 2005-01-21 19:29:25 +00:00
Paul Eggert e105489549 Regenerate. 2005-01-17 09:35:41 +00:00
Paul Eggert da436e4383 Regenerate. 2004-12-26 05:51:10 +00:00
Paul Eggert 76dcf299b7 Regenerate. 2004-12-16 20:42:40 +00:00
Paul Eggert bbd3fa0c61 Regenerate. 2004-12-12 09:29:18 +00:00
Paul Eggert 2ed24dd8c7 Regenerate. 2004-10-09 18:08:21 +00:00
Akim Demaille e503aa60d5 * src/parse-gram.y (add_param): Fix the truncation of trailing
spaces.
2004-10-06 15:52:24 +00:00
Akim Demaille 8a8dc872fa Regen. 2004-10-05 08:41:44 +00:00
Paul Eggert 85f23fae45 Regenerate. 2004-06-21 20:51:32 +00:00
Paul Eggert 329d23c5d6 Regenerate. 2004-05-27 07:40:12 +00:00
Paul Eggert e476c87d93 Version 1.875d. 2004-05-21 21:03:41 +00:00
Paul Eggert a76ca26309 Regenerate. 2004-05-03 07:58:53 +00:00
Paul Eggert 584bbcd839 Regenerate. 2004-03-31 00:41:30 +00:00
Paul Hilfinger d63282419d * src/parse-gram.y: Define PERCENT_EXPECT_RR.
(declaration): Replace expected_conflicts with expected_sr_conflicts.
Add %expect-rr rule.

* src/scan-gram.l: Recognize %expect-rr.

* src/conflicts.h (expected_sr_conflicts): Rename from
expected_conflicts.
(expected_rr_conflicts): Declare.

* src/conflicts.c (expected_sr_conflicts): Rename from
expected_conflicts.
(expected_rr_conflicts): Define.
(conflicts_print): Check r/r conflicts against expected_rr_conflicts
for GLR parsers.
Use expected_sr_conflicts in place of expected_conflicts.
Warn if expected_rr_conflicts used in non-GLR parser.

* doc/bison.texinfo: Add documentation for %expect-rr.
2004-03-26 22:41:16 +00:00
Paul Eggert 66ef8b9d65 Regenerate. 2003-10-01 22:00:13 +00:00
Akim Demaille 92f5e991da Update. 2003-10-01 07:46:02 +00:00
Akim Demaille cd3684cfa8 When reducing initial empty rules, Bison parser read an initial
location that is not defined.  This results in garbage, and that
affects Bison's own parser.  Therefore we need (i) to extend Bison
to support a means to initialize this location, and (ii) to use
this CVS Bison to fix CVS Bison's parser.
* src/reader.h, reader.c (epilogue_augment): Remove, replace
with...
* src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
* src/parse-gram.y: Adjust.
(%initial-action): New.
(%error-verbose): Since we require CVS Bison, there is no reason
not to use it.
* src/scan-gram.l: Adjust.
* src/Makefile.am (YACC): New, to make sure we use our own parser.
* data/yacc.c (yyparse): Use b4_initial_action.
2003-08-25 15:16:25 +00:00
Paul Eggert 465b4444e8 Regenerate. 2003-06-17 08:34:53 +00:00
Paul Eggert 83a457be99 Regenerate. 2003-05-24 19:26:35 +00:00
Paul Eggert eae34f44e6 Regenerate. 2003-05-14 19:28:04 +00:00
Akim Demaille 916708d59e * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
* src/getargs.c, src/getargs.h: here, as bool, not int.
(nondeterministic_parser): New.
* src/parse-gram.y, src/scan-gram.l: Support
%nondeterministic-parser.
* src/output.c (prepare): Use nondeterministic_parser instead
of glr_parser where appropriate.
* src/tables.c (conflict_row, action_row, save_row)
(token_actions, token_actions, pack_vector): Ditto.
2003-04-29 12:57:36 +00:00
Akim Demaille 650aa2cfbf Regen. 2003-03-03 09:00:12 +00:00
Akim Demaille 6d5aa694aa Regen. 2003-03-01 08:31:06 +00:00
Akim Demaille 1d64f0bab6 Regen. 2003-02-05 09:57:02 +00:00
Paul Eggert 8e4900ef40 Regenerate. 2003-01-01 10:09:55 +00:00
Paul Eggert 78a00b7d7f Regenerate. 2002-12-29 03:17:45 +00:00
Paul Eggert 73521d9ff8 Regenerate. 2002-12-24 08:33:38 +00:00
Paul Eggert 05d18c2493 Regenerate. 2002-12-13 12:20:19 +00:00
Paul Eggert f0616f0b5c Regenerate. 2002-11-15 20:58:07 +00:00
Akim Demaille 0f39aab92a * src/parse-gram.y (declaration): Have %parse-param and %lex-param
take two BRACED_CODE, not two string_content.
Free the scanner's obstack when we are done.
(code_content): New.
* tests/calc.at: Adjust.
* doc/bison.texinfo: Adjust.
Also, make sure to include the `,' for these declarations.
2002-11-15 16:42:16 +00:00
Akim Demaille 886b69d197 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
not yyvalue.
2002-11-12 09:44:41 +00:00
Akim Demaille 7ec2d4cd39 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
Restore.
* src/scan-gram.l (last_string): Is global to the file, not to
yylex.
* src/parse-gram.y (input): Don't append the epilogue here,
(epilogue.opt): do it here, and free the scanner's obstack.
* src/reader.c (epilogue_set): Rename as...
(epilogue_augment): this.
* data/c.m4 (b4_epilogue): Defaults to empty.
2002-11-12 08:26:38 +00:00
Akim Demaille 95612cfa60 * src/struniq.h, src/struniq.c (struniq_t): Is const.
(STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
Use struniq for symbols.
* src/symtab.h (symbol_t): The tag member is a struniq.
(symbol_type_set): Adjust.
* src/symtab.c (symbol_new): Takes a struniq.
(symbol_free): Don't free the tag member.
(hash_compare_symbol_t, hash_symbol_t): Rename as...
(hash_compare_symbol, hash_symbol): these.
Use the fact that tags as struniqs.
(symbol_get): Use struniq_new.
* src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
Returns a strniq.
* src/reader.h (merger_list, grammar_currentmerge_set): The name
and type members are struniqs.
* src/reader.c (get_merge_function)
(grammar_current_rule_merge_set): Adjust.
(TYPE, current_type): Are struniq.
Use struniq for file names.
* src/files.h, src/files.c (infile): Split into...
(grammar_file, current_file): these.
* src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
* src/reduce.c (reduce_print): Likewise.
* src/getargs.c (getargs): Likewise.
* src/complain.h, src/complain.c: Likewise.
* src/main.c (main): Call struniqs_new early enough to use it for
file names.
Don't free the input file name.
2002-11-12 08:05:59 +00:00
Akim Demaille 3e6656f9ab * src/symtab.c (symbol_free): Remove dead deactivated code:
type_name are properly removed.
Don't use XFREE to free items that cannot be NULL.
* src/struniq.h, src/struniq.c: New.
* src/main.c (main): Initialize/free struniqs.
* src/parse-gram.y (%union): Add astruniq member.
(yyprint): Adjust.
* src/scan-gram.l (<{tag}>): Return a struniq.
Free the obstack bit that used to store it.
* src/symtab.h (symbol_t): The 'type_name' member is a struniq.
2002-11-12 07:55:55 +00:00
Paul Eggert 62ddaef6a7 Regenerate. 2002-11-12 07:44:22 +00:00
Paul Eggert 5c16c6b13a Version 1.75a. 2002-10-25 06:05:50 +00:00
Paul Eggert d33cb3ae09 Remove all uses of PARAMS, since we now assume C89 or better. 2002-10-21 05:30:50 +00:00
Akim Demaille ae7453f2ba Prototype support of %lex-param and %parse-param.
* src/parse-gram.y: Add the definition of the %lex-param and
%parse-param tokens, plus their rules.
Drop the `_' version of %glr-parser.
Add the "," token.
* src/scan-gram.l (INITIAL): Scan them.
* src/muscle_tab.c: Comment changes.
(muscle_insert, muscle_find): Rename `pair' as `probe'.
* src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
(muscle_entry_s): The `value' member is no longer const.
Adjust all dependencies.
* src/muscle_tab.c (muscle_init): Adjust: use
MUSCLE_INSERT_STRING.
Initialize the obstack earlier.
* src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
(muscle_pair_list_grow): New.
* data/c.m4 (b4_c_function_call, b4_c_args): New.
* data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
* tests/calc.at: Use %locations, not --locations.
(AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
2002-10-19 14:38:06 +00:00