Commit Graph

351 Commits

Author SHA1 Message Date
Akim Demaille
a9f37dee0c Attaching lineno to buckets is stupid, since only one copy of each
symbol is kept, only the line of the first occurrence is kept too.
* src/symtab.h, src/symtab.c (bucket): Remove the line member.
* src/reader.c (rline_allocated): Remove, unused.
(symbol_list): Have a `line' member.
(symbol_list_new): New.
(readgram): Use it.
* src/print.c (print_grammar): Output the rule line numbers.
* tests/regression.at (Solved SR Conflicts)
(Unresolved SR Conflicts): Adjust.
Reported by Hans Aberg.
2001-11-23 14:03:43 +00:00
Akim Demaille
2b7c2ef124 * src/conflicts.c (conflicts_print): Add a missing n. 2001-11-19 11:07:50 +00:00
Akim Demaille
560757768c * src/nullable.c (nullable_print): New.
(set_nullable): Call it when tracing.
Better locality of variables.
2001-11-19 09:27:37 +00:00
Akim Demaille
238b8134ec * src/print.c (print_actions): Better locality of variables. 2001-11-19 09:27:24 +00:00
Akim Demaille
483642486d * src/derives.c (print_derives): Fix and enrich.
* src/closure.c (print_fderives): Likewise.
2001-11-19 09:27:11 +00:00
Akim Demaille
146ad4c8d0 * src/closure.c (itemsetend): Remove, replaced with...
(itemsetsize): new.
2001-11-19 09:26:57 +00:00
Akim Demaille
f2a4c94506 * src/LR0.c (kernel_end): Remove, replaced with...
(kernel_size): new.
2001-11-19 09:26:43 +00:00
Akim Demaille
65fae038b9 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
to clarify.
2001-11-19 09:26:30 +00:00
Akim Demaille
e1cb5fb523 * src/closure.c (closure): Use arrays instead of pointers to clarify. 2001-11-19 09:26:17 +00:00
Akim Demaille
64fabbb49f * src/closure.c, src/derives.c, src/nullable.c: Adjust various
trace messages.
* src/LR0.c: Likewise.
(allocate_itemsets): Use arrays instead of pointers to clarify.
2001-11-19 09:25:36 +00:00
Akim Demaille
3b2925a060 * src/getargs.c (statistics_flag): Replace with...
(trace_flag): New.
(longopts): Accept --trace instead of --statistics.
* src/getargs.h: Adjust.
* src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
* src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
2001-11-19 09:21:26 +00:00
Akim Demaille
83bcf86639 * src/LR0.c (new_itemsets, get_state): Use more arrays and less
pointers to clarify the code.
(save_reductions, save_shifts): Factor common parts of alternatives.
2001-11-19 09:17:53 +00:00
Akim Demaille
8639df64a6 * src/LR0.c (new_state, get_state): Complete TRACE code.
* src/closure.c: Include `reader.h' to get `tags', needed by the
trace code.
Rename the conditional DEBUG as TRACE.
Output consistently TRACEs to stderr, not stdout.
* src/derives.c: Likewise.
* src/reduce.c: (inaccessable_symbols): Using if is better style
than goto.
Use `#if TRACE' instead of `#if 0' for tracing code.
2001-11-19 09:16:24 +00:00
Akim Demaille
377bd7c9a2 * src/system.h (LIST_FREE, shortcpy): New.
* src/LR0.c: Use them.
* src/output.c (free_itemsets, free_reductions, free_shifts):
Remove, replaced by LIST_FREE.
2001-11-19 09:14:54 +00:00
Akim Demaille
b4a7a230f1 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
(REDUCTIONS_ALLOC):  New.
* src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
allocation.
2001-11-19 09:14:26 +00:00
Akim Demaille
c1586e58fe * src/LR0.c (new_state): Complete trace code.
* src/nullable.c (set_nullable): Don't translate traces.
2001-11-19 09:14:07 +00:00
Akim Demaille
50766eee39 * src/print_graph.c (print_core): Better locality of variables.
* src/print.c (print_core): Likewise.
2001-11-19 09:13:53 +00:00
Akim Demaille
dc3b81cd67 * src/vcg.c: You do the output, so you are responsible of the
handling of VCG syntax, in particular: use quotearg.
* src/print_graph.c: Don't.
(print_actions): Don't output the actions as part of the nodes,
since that's the job of the edges.
(print_state): Don't output by hand: fill the node description,
and ask for its output.
2001-11-19 09:13:40 +00:00
Akim Demaille
c555896775 * src/bison.simple (yyparse): When reporting verbosely an error,
no longer issue additional quotes around token names.
* tests/calc.at: Adjust.
2001-11-19 09:13:26 +00:00
Akim Demaille
35f61cb998 * src/symtab.h, src/symtab.c: line' is a new member of bucket'.
* src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
* src/output.c: Adjust.
2001-11-19 09:13:12 +00:00
Akim Demaille
9291f914de * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
(rule_t): this.
* src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
2001-11-19 09:12:49 +00:00
Akim Demaille
ff1581dddb * src/gram.h (rule_t): New.
(rule_table): New.
(rrhs, rlhs): Remove, part of state_t.
* src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
* src/lalr.c, src/nullable.c, src/output.c, src/print.c,
* src/reader.c, src/reduce.c: Adjust.
2001-11-19 09:12:25 +00:00
Akim Demaille
4b9170b2c0 * src/reader.c (symbols_output): New, extracted from...
(packsymbols): Here.
(reader): Call it.
2001-11-19 09:12:02 +00:00
Akim Demaille
523a9eafdc * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
(maxrhs): this new function.
2001-11-19 09:11:47 +00:00
Akim Demaille
bcdf932ed9 * src/lalr.c (F): New macro to access to the variable F.
Adjust.
2001-11-19 09:11:34 +00:00
Akim Demaille
e2aabb3dc6 * src/lalr.h (LA): New macro to access to the variable LA.
* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
* src/lalr.c: Adjust.
2001-11-19 09:11:21 +00:00
Akim Demaille
e8ebe4b0c7 * src/lalr.c (initialize_LA): Only initialize LA. Let...
(set_state_table): handle the `lookaheads' members.
2001-11-19 09:11:03 +00:00
Akim Demaille
9043475828 * src/lalr.h (lookaheads): Removed array, which contents is now
member of...
(state_t): this structure.
* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
Adjust.
2001-11-19 09:10:47 +00:00
Akim Demaille
d80a86e0b5 * src/lalr.h (consistent): Removed array, which contents is now
member of...
(state_t): this structure.
* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
Adjust.
2001-11-19 09:10:30 +00:00
Akim Demaille
cfc3acf242 * src/lalr.h (reduction_table, shift_table): Removed arrays, which
contents is now members of...
(state_t): this structure.
* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
Adjust.
2001-11-19 09:10:12 +00:00
Akim Demaille
93337ac41c * src/lalr.h (state_t): New.
(state_table): Be a state_t * instead of a core **.
(accessing_symbol): Remove, part of state_t.
* src/lalr.c: Adjust.
(set_accessing_symbol): Merge into...
(set_state_table): this.
* src/print_graph.c, src/conflicts.c: Adjust.
2001-11-19 09:08:44 +00:00
Akim Demaille
3e85a00236 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
defined only if yyoverflow is defined, to avoid `warning: unused
variable `yyvs1''.
Reported by The Test Suite.
2001-11-14 14:57:06 +00:00
Akim Demaille
f85c981ac1 * src/print.c: Include reduce.h.
Reported by Hans Aberg.
2001-11-14 14:43:29 +00:00
Akim Demaille
5cb10dae3c * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
Revert a previous patch:  these are really const.
* src/conflicts.c (conflict_report): Additional useless pair of
braces to pacify GCC's warnings for `if () if () {} else {}'.
* src/lex.c (parse_percent_token): Replace equal_offset with
arg_offset.
arg is const.
Be sure to strdup `arg' when used, since there is no reason for
token_buffer not to change.
2001-11-14 14:42:14 +00:00
Akim Demaille
26e1ca45ba * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
definition.
* src/main.c (main): Use them.
Suggested by Hans Aberg.
2001-11-14 14:14:48 +00:00
Akim Demaille
76e734e5ed Adjust ngettext default. 2001-11-12 10:11:49 +00:00
Akim Demaille
b8b4a730a0 Typo. 2001-11-12 09:58:30 +00:00
Akim Demaille
b9d2d2a881 Version 1.30b.
* config/config.guess, config/config.sub, po/*.po: Update.
* src/system.h (ngettext): Now that we use ngettext, be sure to
provide a default definition when NLS are not used.
2001-11-12 09:56:20 +00:00
Akim Demaille
badfc69c26 %expext was not functioning at all.
* src/conflicts.c (expected_conflicts): Set to -1.
(conflict_report): Use ngettext.
(conflicts_print): Check %expect and make its violation an error.
* doc/bison.texinfo (Expect Decl): Adjust.
* configure.in (AM_GNU_GETTEXT): Ask for ngettext.
* tests/regression.at (%expect not enough, %expect right)
(%expect too much): New.
2001-11-12 09:19:48 +00:00
Akim Demaille
6b307af66c * src/reduce.c (print_results): Rename as...
(reduce_output): This.
Output to OUT, passed as argument, instead of output_obstack.
(dump_grammar): Likewise.
(reduce_free): New.
Also free V1.
(reduce_grammar): No longer call reduce_output, since...
* src/print.c (print_results): do it.
* src/main.c (main): Call reduce_free;
2001-11-12 09:15:57 +00:00
Akim Demaille
dad56b10d3 * src/conflicts.c (print_reductions): Accept OUT as argument.
Output to it, not to output_obstack.
* src/print.c (print_actions): Adjust.
2001-11-12 09:15:43 +00:00
Akim Demaille
5f1ff7cd74 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
the result instead of using...
(src_total, rrc_total, src_count, rrc_count): Remove.
(any_conflicts): Remove.
(print_conflicts): Split into...
(conflicts_print, conflicts_output): New.
* src/conflicts.h: Adjust.
* src/main.c (main): Invoke both conflicts_output and conflicts_print.
* src/print.c (print_grammar): Issue `n' between to rule outputs.
* tests/regression.at (Conflicts): New.
Reported by Tom Lane.
2001-11-12 09:15:25 +00:00
Akim Demaille
97e9ee3ad5 * src/bison.simple (YYSTACK_REALLOC): New.
(yyparse) [!yyoverflow]: Use it and free the old stack.
Reported by FIXME: Who.
2001-11-12 09:14:35 +00:00
Akim Demaille
d54387b4bc Version 1.30a.
* src/lex.c (parse_percent_token): s/quotearg/quote/.
2001-11-05 10:06:27 +00:00
Akim Demaille
d61c57b70c * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
with yyltype/YYLTYPE.  This allows inclusion of the generated
header within the parser if the compiler, such as GGC, accepts
multiple equivalent #defines.
2001-11-05 09:12:38 +00:00
Akim Demaille
ea57e0a3c4 * src/getargs.c (longopts): Support `--output'. getopt is now
able to understand that `--out' is OK: the two racing long options
are aliases.
(usage): Adjust.
* src/lex.h (tok_setopt): Remove, replaced with...
(tok_intopt, tok_stropt): these new guys.
* src/lex.c (getopt.h): Not needed.
(token_buffer, unlexed_token_buffer): Not const.
(percent_table): Promote `-' over `_' in directive names.
Active `%name-prefix', `file-prefix', and `output'.
(parse_percent_token): Accept possible arguments to directives.
Promote `-' over `_' in directive names.
* doc/bison.texinfo (Decl Summary): Split the list into
`directives for grammars' and `directives for bison'.
Sort'em.
Add description of `%name-prefix', `file-prefix', and `output'.
Promote `-' over `_' in directive names.
(Bison Options): s/%locactions/%locations/.  Nice Freudian slip.
Simplify the description of `--name-prefix'.
Promote `-' over `_' in directive names.
Promote `--output' over `--output-file'.
Fix the description of `--defines'.
* tests/output.at: Exercise %file-prefix and %output.
2001-11-04 16:26:59 +00:00
Akim Demaille
239e5c1a9a * src/symtab.h (SUNDEF): New.
* src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
stand for `uninitialized', instead of 0.
* src/reader.c (packsymbols, parse_thong_decl): Adjust.
* src/lex.c (lex): Adjust.
* tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
Number it 0.
Let yylex return it instead of a plain 0.
Reported by Dick Streefland.
2001-11-02 15:26:33 +00:00
Akim Demaille
7ae1c5929e * src/reader.c (parse_thong_decl): Formatting changes.
(token_translations_init): New, extracted from...
(packsymbols): Here.
Adjust.
2001-11-02 14:02:31 +00:00
Akim Demaille
1d708336d4 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
Check that `9foo.y' produces correct cpp guards.
* src/files.c (compute_header_macro): Prepend `BISON_' to CPP
guards.
Reported by Wwp.
2001-11-01 18:29:36 +00:00
Akim Demaille
705131d1de * tests/regression.at (Invalid input: 2): New.
* src/lex.c (unlexed_token_buffer): New.
(lex, unlex): Adjust: when unlexing, be sure to save token_buffer
too.
Reported by Wwp.
2001-11-01 18:03:46 +00:00