Commit Graph

217 Commits

Author SHA1 Message Date
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
Akim Demaille 3d38c03a86 * src/parse-gram.y: Associate a human readable string to each
token type.
* tests/regression.at (Invalid inputs): Adjust.
2002-09-10 13:52:33 +00:00
Paul Eggert 04b6e11ebb Regenerate. 2002-08-12 15:25:59 +00:00
Akim Demaille fc5734fe23 * src/reader.h, src/reader.c (gram_error): ... can't get
yycontrol without making too strong assumptions on the parser
itself.
* src/output.c (prepare_tokens): Use the real 0th value of
token_translations instead of `0'.
* src/parse-gram.y (yyerror): Don't rely on yycontrol being
visible here.
* data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
for the time being: %locations ought to provide it to yyerror.
2002-07-26 06:25:35 +00:00
Akim Demaille a945ec3929 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
Adjust all former `associativity' dependencies.
* src/symtab.c (symbol_new): Default associativity is `undef', not
`right'.
(symbol_check_alias_consistence): Adjust.
2002-07-16 14:04:06 +00:00
Akim Demaille a5d5099417 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
* src/reader.c (lineno): Remove.
Adjust all dependencies.
(get_merge_function): Take a location and use complain_at.
* src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
* tests/regression.at (Invalid inputs, Mixing %token styles):
Adjust.
2002-07-09 15:54:39 +00:00
Akim Demaille b275314e2d * src/parse-gram.y (rules_or_grammar_declaration): Add an error
recovery rule, and forbid extensions when --yacc.
(gram_error): Use complain_at.
* src/reader.c (reader): Exit if there were parse errors.
2002-07-09 14:48:01 +00:00
Akim Demaille c76e14da4b * data/yacc.c: Output the copyright notive in the header. 2002-07-09 09:43:22 +00:00
Akim Demaille 39f4191608 * src/reader.c (gensym): Rename as...
* src/symtab.h, src/symtab.c (dummy_symbol_get): this.
(getsym): Rename as...
(symbol_get): this.
2002-06-30 17:27:57 +00:00
Akim Demaille 4144248075 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
unused variables.
* src/output.c (merger_output): static.
2002-06-28 09:05:11 +00:00