Paul Eggert
1ccbf4bb8b
(YYPOINTER): New macro.
...
(YYSTACK_RELOCATE): Use it to avoid a GCC warning.
(yystpcpy): Use prototype if __STDC__ is defined, not just
if __cplusplus is defined.
2001-12-04 13:28:18 +00:00
Akim Demaille
a69f6fa569
* configure.in (WARNING_CFLAGS): Add -Werror when possible.
...
(CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
Gettext doesn't compile cleanly, and dies with -Werror.
* src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
Include WARNING_CFLAGS here.
* lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
before being defined.
2001-11-30 14:23:47 +00:00
Akim Demaille
fc7ddd2818
* src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
...
if body instead of `;' to pacify GCC's warnings.
2001-11-30 13:14:10 +00:00
Akim Demaille
9e55edfc29
* src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
...
if body instead of `;' to pacify GCC's warnings.
2001-11-30 11:11:08 +00:00
Akim Demaille
d39a6b7ca9
Instead of mapping the LHS of unused rules to -1, keep the LHS
...
valid, but flag the rules as invalid.
* src/gram.h (rule_t): `useful' is a new member.
* src/print.c (print_grammar): Adjust.
* src/derives.c (set_derives): Likewise.
* src/reader.c (packgram, reduce_output): Likewise.
* src/reduce.c (reduce_grammar_tables): Likewise.
* tests/reduce.at (Underivable Rules, Useless Rules): New.
2001-11-30 10:46:08 +00:00
Akim Demaille
d287d66a69
* src/reduce.c (reduce_output): Formatting changes.
...
* src/print.c (print_results, print_grammar): Likewise.
* tests/regression.at (Rule Line Numbers)
(Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
2001-11-30 10:45:45 +00:00
Akim Demaille
ea451a17d7
* src/reduce.c (nonterminals_reduce): Instead of throwing away
...
useless nonterminals, move them at the end of the symbol arrays.
(reduce_output): Adjust.
* tests/reduce.at (Useless Nonterminals): Adjust.
2001-11-30 10:45:28 +00:00
Akim Demaille
24b1e65f04
* src/reduce.c: Various comment/formatting changes.
...
(nonterminals_reduce): New, extracted from...
(reduce_grammar_tables): here.
(reduce_grammar): Call nonterminals_reduce.
2001-11-30 10:45:14 +00:00
Paul Eggert
7ad28769d6
(YYSTACK_REALLOC): Remove.
...
(YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
(YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
New macros.
(union yyalloc): New type.
(__yy_memcpy): Last arg is size_t, not unsigned int, to remove
an arbitrary restriction on hosts where size_t is wider than int.
(yyparse): Don't dump core if alloca or malloc fails; instead, report
a parser stack overflow. Allocate just one block of memory for all
three stacks, instead of allocating three blocks; this typically is
faster and reduces fragmentation.
Do not limit the number of items in the stack to a value that fits
in 'int', as this is an arbitrary limit on hosts with 64-bit
size_t and 32-bit int.
2001-11-30 02:47:56 +00:00
Akim Demaille
ad4c2c7a57
* src/LR0.c (shifts_new): New.
...
(save_shifts, insert_start_shift, augment_automaton): Use it.
2001-11-28 14:57:44 +00:00
Akim Demaille
0785dec2c8
* src/closure.c (closure): b' and ruleno' denote the same value:
...
keep ruleno only.
2001-11-28 14:57:30 +00:00
Akim Demaille
e1828f4f07
* src/closure.c (closure): Instead of looping over word in array
...
then bits in words, loop over bits in array.
2001-11-28 14:57:16 +00:00
Akim Demaille
a816bf3eac
* src/closure.c (closure): No longer optimize the special case
...
where all the bits of `ruleset[r]' are set to 0, to make the code
clearer.
2001-11-28 14:57:02 +00:00
Akim Demaille
2ce6476804
* src/closure.c (closure): r' and c' are new variables, used to
...
de-obfuscate accesses to RULESET and CORE.
2001-11-28 14:55:38 +00:00
Akim Demaille
457b6d1e72
* src/reduce.c (reduce_print): Use ngettext.
...
(dump_grammar): Improve the trace accuracy.
2001-11-28 13:38:15 +00:00
Akim Demaille
79ebbdb36a
* src/reduce.c (dump_grammar): Don't translate trace messages.
2001-11-28 11:58:00 +00:00
Akim Demaille
0aa2ac9063
* tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
...
* src/reduce.c (reduce_grammar_tables): Do not free useless tags,
as all tags are free'ed afterwards.
From Enrico Scholz.
2001-11-28 11:42:56 +00:00
Akim Demaille
e7d79012ae
* src/system.h: Use intl/libgettext.h.
...
* src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
2001-11-28 10:32:48 +00:00
Paul Eggert
eb4a4d73bc
* src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
...
use alloca when we didn't want to, and vice versa.
2001-11-27 23:31:47 +00:00
Akim Demaille
4bfeeafb00
* src/files.c: Include error.h.
...
From Hans Aberg.
2001-11-27 18:42:32 +00:00
Akim Demaille
674fd9acbc
* src/reader.c (readgram): Make sure rules for mid-rule actions
...
have a lineno equal to that of their host rule.
Reported by Hans Aberg.
* tests/regression.at (Rule Line Numbers): New.
2001-11-26 15:24:06 +00:00
Akim Demaille
6fedd4d1d6
* src/LR0.c (allocate_itemsets): kernel_size contains ints, not
...
size_ts.
Reported by Hans Aberg.
2001-11-26 13:01:10 +00:00
Akim Demaille
abe1baa044
* src/complain.c, src/complain.h (error): Remove, provided by
...
lib/error.[ch].
2001-11-26 11:26:35 +00:00
Akim Demaille
33285af04d
* src/reader.c (read_declarations): Don't abort on tok_illegal,
...
issue an error message.
* tests/regression.at (Invalid %directive): New.
Reported by Hans Aberg.
2001-11-26 09:49:58 +00:00
Akim Demaille
cd7f95831e
* configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
...
* lib/Makefile.am (libbison_a_SOURCES): Adjust.
2001-11-26 09:19:56 +00:00
Akim Demaille
1b9a8440cd
* src/conflicts.c (conflicts_print): Don't complain at all when
...
there are no reduce/reduce conflicts, and as many shift/reduce
conflicts as expected.
* tests/regression.at (%expect right): Adjust.
2001-11-26 09:18:40 +00:00
Akim Demaille
16c4a35041
* src/system.h: Include alloca.h.
...
* src/main.c (main) [C_ALLOCA]: Call alloca (0).
2001-11-23 14:13:19 +00:00
Akim Demaille
f0451dba71
* src/print_graph.c (print_actions): Remove `rule', unused.
...
* src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
pacify GCC's signed < unsigned warnings.
* src/closure.c (itemsetsize): Likewise.
* src/reader.c (symbol_list_new): Static.
2001-11-23 14:04:08 +00:00
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