12b0043a6d
* src/gram.h (TIEM_NUMBER_MAX): New. (item_number_of_rule_number, rule_number_of_item_number): Rename as... (rule_number_as_item_number, item_number_as_rule_number): these. Adjust dependencies. * src/output.c (vector_number_t, VECTOR_NUMBER_MAX) (VECTOR_NUMBER_MIN, state_number_to_vector_number) (symbol_number_to_vector_number): New. (order): Of vector_number_t* type. (base_t, BASE_MAX, BASE_MIN): New. (froms, tos, width, pos, check): Of base_t type. (action_number_t, ACTION_MIN, ACTION_MAX): New. (actrow): Of action_number_t type. (conflrow): Of unsigned int type. (table_ninf, base_ninf): New. (GENERATE_MUSCLE_INSERT_TABLE): Also output the *_min' value. (muscle_insert_int_table, muscle_insert_base_table) (muscle_insert_rule_number_table): New. (prepare_tokens): Output toknum' as int_table. (action_row): Returns a rule_number_t. Use ACTION_MIN, not SHRT_MIN. (token_actions): yydefact is rule_number_t*. (table_ninf_remap): New. (pack_table): Use it for base' and table'. * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove, replaced with... (YYPACT_NINF, YYTABLE_NINF): these. (yypact, yytable): Compute their types instead of hard-coded `short'. * tests/regression.at (Web2c Actions): Adjust.
Akim Demaille
2002-07-25 17:30:44 +00:00
5dde258a9e
* src/scan-gram.l (id): Can start with an underscore.
Akim Demaille
2002-07-19 08:31:32 +00:00
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.
Akim Demaille
2002-07-16 14:04:06 +00:00
7601152fab
Fix dates in copyright notice.
Paul Eggert
2002-07-10 06:24:51 +00:00
fae437e835
* doc/bison.texinfo: Properly set the `header'' part. Use @dircategory `GNU programming tools'' as per Texinfo's documentation. Use @copying.
Akim Demaille
2002-07-09 17:01:42 +00:00
1a715ef2fc
* lib/quotearg.h: Protect against multiple inclusions. * src/location.h (location_t): Add a file' member. (LOCATION_RESET, LOCATION_PRINT): Adjust. * src/complain.c (warn_at, complain_at, fatal_at): Drop error_one_per_line' support.
Akim Demaille
2002-07-09 16:24:57 +00:00
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.
Akim Demaille
2002-07-09 15:54:39 +00:00
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.
Akim Demaille
2002-07-09 14:48:01 +00:00
536545f3a4
* src/output.c (prepare_actions): Free tally' and width'. (prepare_actions): Allocate and free order'. * src/symtab.c (symbols_free): Free symbols'. * src/scan-gram.l (scanner_free): Clear Flex's scanners memory. * src/output.c (m4_invoke): Move to... * src/scan-skel.l: here. (<<EOF>>): Close yyout, and free its name.
Akim Demaille
2002-07-03 06:52:02 +00:00
8b752b00fd
Fix some memory leaks, and fix a bug: state 0 was examined twice. * src/LR0.c (new_state): Merge into... (state_list_append): this. (new_states): Merge into... (generate_states): here. (set_states): Don't ensure a proper errs' state member here, do it... * src/conflicts.c (conflicts_solve): here. * src/state.h, src/state.c: Comment changes. (state_t): Rename member shifts' as transitions'. Adjust all dependencies. (errs_new): For consistency, also take the values as argument. (errs_dup): Remove. (state_errs_set): New. (state_reductions_set, state_transitions_set): Assert that no previous value was assigned. (state_free): New. (states_free): Use it. * src/conflicts.c (resolve_sr_conflict): Don't use an errs_t' as temporary storage: use errs' and nerrs' as elsewhere. (set_conflicts): Allocate and free this `errs'.
Akim Demaille
2002-07-03 06:51:43 +00:00
613f5e1a89
* lib/libiberty.h: New. * lib: Update the bitset implementation from upstream. * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c, * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE. * src/main.c: Adjust bitset stats calls.
Akim Demaille
2002-07-02 13:51:27 +00:00
26e0cadc37
* src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned char, so that negative chars don't collide with $.
Paul Eggert
2002-07-01 08:37:14 +00:00
e68d4575b3
(<SC_ESCAPED_CHARACTER>): Convert to unsigned char, so that negative chars don't collide with $.
Paul Eggert
2002-07-01 08:36:37 +00:00
1154ccedaf
Have the GLR tests be warning' checked, and fix the warnings. * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG (yyuserAction, yyreportAmbiguity): Use' all the arguments. (yyremoveDeletes): yyi' and yyj' are size_t. Use YYFPRINTF when under if (YYDEBUG) to avoid empty if' bodies. (yyaddDeferredAction): static. (yyglrReduce): yyi, yyk, amd yyposn are size_t. (yyreportParseError): yyprefix is const. yytokenp is used only when verbose. (yy__GNUC__): Replace with __GNUC__. (yypdumpstack): yyi is size_t. (yypreference): Un-yy local variables and arguments, to avoid clashes with yyr1'. Anyway, we are not in the user name space. (yytname_size): be an int, as is compared with ints. * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New. Use them. * tests/cxx-gram.at: Use quotation to protect $1. Use AT_COMPILE to enable warnings hunts. Prototype yylex and yyerror. Use' argc. Include string.h', not `strings.h'. Produce and prototype stmtMerge only when used. yylex takes a location.
Akim Demaille
2002-06-30 17:35:06 +00:00
97650f4efc
We spend a lot of time in quotearg, in particular when --verbose. * src/symtab.c (symbol_get): Store a quoted version of the key. (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove. Adjust all callers.
Akim Demaille
2002-06-30 17:34:52 +00:00
d257636504
* src/state.h (reductions_t): Rename member nreds' as num. (errs_t): Rename members nerrs' and errs' as num' and `symbols'. * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
Akim Demaille
2002-06-30 17:34:31 +00:00
32e1e0a486
* src/LR0.c (state_list_t, state_list_append): New. (first_state, last_state): Now symbol_list_t. (this_state): Remove. (new_itemsets, append_states, save_reductions): Take a state_t as argument. (set_states, generate_states): Adjust. (save_shifts): Remove, replaced by... * src/state.h, src/state.c (state_shifts_set): New. (shifts): Rename as... (shifts_t): this. Adjust all dependencies. * src/state.h (state_t): Remove the `next' member.
Akim Demaille
2002-06-30 17:30:29 +00:00
e5fb671032
* src/vcg.c (quote): Use slot 2, since we often pass symbol tag escaped in slot 0.
Akim Demaille
2002-06-30 17:30:09 +00:00
c7ca99d4b0
Use hash.h for the state hash table. * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove. (allocate_storage): Use state_hash_new. (free_storage): Use state_hash_free. (new_state, get_state): Adjust. * src/lalr.h, src/lalr.c (states): Move to... * src/states.h (state_t): Remove the link' member, no longer used. * src/states.h, src/states.c: here. (state_hash_new, state_hash_free, state_hash_lookup) (state_hash_insert, states_free): New. * src/states.c (state_table, state_compare, state_hash): New. * src/output.c (output_actions): Do not free states now, since we still need to know the final_state number in prepare', called afterwards. Do it... * src/main.c (main): here: call states_free after `output'.
Akim Demaille
2002-06-30 17:29:36 +00:00
5a08f1ce21
Make the test suite pass with warnings checked. * tests/actions.at (Printers and Destructors): Improve. Avoid unsigned vs. signed issues. * tests/calc.at: Don't exercise the scanner here, do it... * tests/input.at (Torturing the Scanner): here.
Akim Demaille
2002-06-30 17:27:14 +00:00
720623af84
* data/glr.c: Correct typo in Emacs-mode directive. Slightly reorganize first lines parallel to yacc.c.
Paul Hilfinger
2002-06-28 22:42:58 +00:00
e0e5bf84b0
* src/reader.h: s/grammer_current_rule_merge_set/grammar_.../. * src/conflicts.c (conflicts_total_count): `i' is unsigned, to pacify GCC. * src/output.c (save_row): Initialize all the variables to pacify GCC. (merger_output): static.
Akim Demaille
2002-06-28 08:41:45 +00:00
b5480d74b8
Fix small formatting glitch.
Paul Hilfinger
2002-06-28 02:47:14 +00:00
676385e29c
Initial check-in introducing experimental GLR parsing. See entry in ChangeLog dated 2002-06-27 from Paul Hilfinger for details.
Paul Hilfinger
2002-06-28 02:26:44 +00:00
01241d47b4
Renamed file from bison.glr.
Paul Hilfinger
2002-06-28 01:51:33 +00:00
ba29c4ec25
Renaming file to glr.c.
Paul Hilfinger
2002-06-28 01:50:29 +00:00
1ae7286376
* data/bison.simple (b4_symbol_actions): New, replaces... (b4_symbol_destructor, b4_symbol_printer): these. (yysymprint): Be sure to call YYPRINT only for tokens, and using user token numbers.
Akim Demaille
2002-06-20 11:46:59 +00:00
1a31ed21b1
* src/symtab.h, src/symtab.c (symbol_type_set) (symbol_destructor_set, symbol_precedence_set): The location is the last argument. Adjust all callers.
Akim Demaille
2002-06-20 11:20:25 +00:00
e776192e4f
* src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser internals. * src/reader.h, src/reader.c (grammar_current_rule_prec_set): Takes a location. * src/symtab.h, src/symtab.c (symbol_class_set) (symbol_user_token_number_set): Likewise. Adjust all callers. Promote complain_at. * tests/input.at (Type Clashes): Adjust.
Akim Demaille
2002-06-20 11:10:56 +00:00
5c1180b3c4
* data/bison.simple (YYLEX): Fix the declaration when %pure-parser.
Akim Demaille
2002-06-20 10:29:27 +00:00
e317006080
* data/bison.simple (yysymprint): Don't print the token number, just its name. * tests/actions.at (Destructors): Rename as... (Printers and Destructors): this. Also exercise %printer.
Akim Demaille
2002-06-20 09:47:44 +00:00
253862fd4c
* data/bison.simple (YYDSYMPRINT): New. Use it to remove many of the #if YYDEBUG/if (yydebug).
Akim Demaille
2002-06-20 09:22:56 +00:00
366eea36d3
* src/symtab.h, src/symtab.c (symbol_t): printer and printer_location are new members. (symbol_printer_set): New. * src/parse-gram.y (PERCENT_PRINTER): New token. Handle its associated rule. * src/scan-gram.l: Adjust. (handle_destructor_at, handle_destructor_dollar): Rename as... (handle_symbol_code_at, handle_symbol_code_dollar): these. * src/output.c (symbol_printers_output): New. (output_skeleton): Call it. * data/bison.simple (yysymprint): New. Cannot be named yyprint since there are already many grammar files with a user `yyprint'. Replace the calls to YYPRINT to calls to yysymprint. * tests/calc.at: Adjust. * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was taking advantage of parser very internal details (stack size!).
Akim Demaille
2002-06-20 09:08:37 +00:00
4f25ebb043
* src/scan-gram.l: Complete the scanner with the missing patterns to pacify Flex. Use quote' and symbol_tag_get' where appropriate.
Akim Demaille
2002-06-20 07:19:13 +00:00
93b68a0e09
* tests/actions.at (Destructors): Augment to test locations. * data/bison.simple (yydestructor): Pass it the current location if locations are enabled. Prototype only when __STDC__ or C++. Change the argument names to move into the yy name space: there is user code here.
Akim Demaille
2002-06-19 12:03:22 +00:00
7431029172
* data/bison.simple (b4_pure_if): New. Use it instead of #ifdef YYPURE.
Akim Demaille
2002-06-19 10:00:24 +00:00
58612f1de0
* data/bison.simple (m4_location_if): New. Use it instead of #ifdef YYLSP_NEEDED.
Akim Demaille
2002-06-19 09:07:36 +00:00
f25bfb75aa
Prepare @$ in %destructor, but currently don't bind it in the skeleton, as %location use is not cleaned up yet. * src/scan-gram.l (handle_dollar, handle_destructor_at) (handle_action_at): New. (handle_at, handle_action_dollar, handle_destructor_dollar): Take a braced_code_t and a location as additional arguments. (handle_destructor_dollar): Instead of requiring b4_eval', just unquote one when outputting b4_dollar_dollar'. Adjust callers. * data/bison.simple (b4_eval): Remove. (b4_symbol_destructor): Adjust. * tests/input.at (Invalid @n): Adjust.
Akim Demaille
2002-06-19 08:22:49 +00:00
c732d2c6dc
* doc/bison.texinfo: Document ability to have multiple prologue sections.
Akim Demaille
2002-06-19 07:46:11 +00:00
8c165d891d
* src/files.c (compute_base_names): When computing the output file names from the input file name, strip the directory part.
Akim Demaille
2002-06-18 12:39:54 +00:00
ca98bf5758
* data/bison.simple.new: Comment changes. Reported by Andreas Schwab.
Akim Demaille
2002-06-18 11:37:20 +00:00
0bfb02fff7
* data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that there are no label yyoverflowlab' defined but not used' warnings when yyoverflow is defined.
Akim Demaille
2002-06-18 10:00:36 +00:00
24c0aad7e7
* src/symtab.h, src/symtab.c (symbol_t): destructor_location is a new member. (symbol_destructor_set): Adjust. * src/output.c (symbol_destructors_output): Output the destructor locations. Output the symbol name. * data/bison.simple (b4_symbol_destructor): Adjust.
Akim Demaille
2002-06-18 09:55:35 +00:00
5719c1092f
and Akim Demaille <akim@epita.fr> * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy what's left on the stack when the error recovery hits EOF. * tests/actions.at (Destructors): Complete to exercise this case.
Akim Demaille
2002-06-18 09:12:58 +00:00
9280d3ef89
* data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of arguments is really empty, not only equal to []'. * src/symtab.h, src/symtab.c (symbol_t): destructor' is a new member. (symbol_destructor_set): New. * src/output.c (symbol_destructors_output): New. * src/reader.h (brace_code_t, current_braced_code): New. * src/scan-gram.l (BRACED_CODE): Use it to branch on... (handle_dollar): Rename as... (handle_action_dollar): this. (handle_destructor_dollar): New. * src/parse-gram.y (PERCENT_DESTRUCTOR): New. (grammar_declaration): Use it. * data/bison.simple (yystos): Is always defined. (yydestructor): New. * tests/actions.at (Destructors): New. * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
Akim Demaille
2002-06-17 08:43:12 +00:00
dafdc66ff0
* src/symlist.h, src/symlist.c (symbol_list_length): New. * src/scan-gram.l (handle_dollar, handle_at): Compute the rule_length only when needed. * src/output.c (actions_output, token_definitions_output): Output the full M4 block. * src/symtab.c: Don't access directly to the symbol tag, use symbol_tag_get. * src/parse-gram.y: Use symbol_list_free.
Akim Demaille
2002-06-17 07:05:12 +00:00
04e6065479
* src/parse-gram.y: Move %token in the declaration section so that we don't depend upon CVS Bison.
Akim Demaille
2002-06-15 18:26:45 +00:00
10e5b8bd0a
* src/state.h, src/state.c (state_rule_lookaheads_print): New. * src/print.c (print_core): Use it.
Akim Demaille
2002-06-15 18:24:25 +00:00
9801d40c50
* src/conflicts.c (log_resolution): Accept the rule involved in the sr conflicts instead of the lookahead number that points to that rule. (flush_reduce): Accept the current lookahead vector as argument, instead of the index in LA. (resolve_sr_conflict): Accept the current number of lookahead bitset to consider for the STATE, instead of the index in LA. (set_conflicts): Adjust. * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
Akim Demaille
2002-06-15 18:24:08 +00:00
c026349221
* src/state.h (state_t): Replace the lookaheadsp' member, a short, with lookaheads' (bitsetv), `lookaheads_rule' (rule_t**). Adjust all dependencies. * src/lalr.c (initialize_lookaheads): Split into... (states_lookaheads_count, states_lookaheads_initialize): these. (lalr): Adjust.
Akim Demaille
2002-06-15 18:23:50 +00:00
9757c359ef
* src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved out of... (grammar_rules_print): here. * src/reduce.c (reduce_output): Use it. * tests/reduce.at (Useless Rules, Reduced Automaton) (Underivable Rules): Adjust.
Akim Demaille
2002-06-15 18:23:33 +00:00
6b98e4b563
Copy BYacc's nice way to report the grammar. * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print): New. Don't print the rules' location, it is confusing and useless. (rule_print): Use grammar_rhs_print. * src/print.c (print_grammar): Use grammar_rules_print.
Akim Demaille
2002-06-15 18:23:12 +00:00