]> git.saurik.com Git - bison.git/blame - ChangeLog
* src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
[bison.git] / ChangeLog
CommitLineData
8b3df748
AD
12002-04-07 Akim Demaille <akim@epita.fr>
2
3 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
4 Properly escape the symbols' TAG when outputting them.
5
e601aa1d
AD
62002-04-07 Akim Demaille <akim@epita.fr>
7
8 * src/lalr.h (LA): Is a bitsetv, not bitset*.
9
10
b0299a2e
AD
112002-04-07 Akim Demaille <akim@epita.fr>
12
13 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
14 (LArule): this, which is an array to rule_t*.
15 * src/print.c, src/conflicts.c: Adjust.
16
17
d7e1f00c
AD
182002-04-07 Akim Demaille <akim@epita.fr>
19
20 * src/gram.h (rule_t): Rename `number' as `user_number'.
21 `number' is a new member.
22 Adjust dependencies.
23 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
24
cc9305dd
AD
252002-04-07 Akim Demaille <akim@epita.fr>
26
27 As a result of the previous patch, it is no longer needed
28 to reorder ritem itself.
29
30 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
31
b0940840
AD
322002-04-07 Akim Demaille <akim@epita.fr>
33
34 Be sure never to walk through RITEMS, but use only data related to
35 the rules themselves. RITEMS should be banished.
36
37 * src/output.c (output_token_translations): Rename as...
38 (prepare_tokens): this.
39 In addition to `translate', prepare the muscles `tname' and
40 `toknum', which were handled by...
41 (output_rule_data): this.
42 Remove, and move the remainder of its outputs into...
43 (prepare_rules): this new routines, which also merges content from
44 (output_gram): this.
45 (prepare_rules): Be sure never to walk through RITEMS.
46 (output_stos): Rename as...
47 (prepare_stos): this.
48 (output): Always invoke prepare_states, after all, just don't use it
49 in the output if you don't need it.
50
643a5994
AD
512002-04-07 Akim Demaille <akim@epita.fr>
52
53 * src/LR0.c (new_state): Display `nstates' as the name of the
54 newly created state.
55 Adjust to initialize first_state and last_state if needed.
56 Be sure to distinguish the initial from the final state.
57 (new_states): Create the itemset of the initial state, and use
58 new_state.
59 * src/closure.c (closure): Now that the initial state has its
60 items properly set, there is no need for a special case when
61 creating `ruleset'.
62
63 As a result, now the rule 0, reducing to $axiom, is visible in the
64 outputs. Adjust the test suite.
65
66 * tests/conflicts.at (Solved SR Conflicts)
67 (Unresolved SR Conflicts): Adjust.
68 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
69 * tests/conflicts.at (S/R in initial): New.
70
b4c4ccc2
AD
712002-04-07 Akim Demaille <akim@epita.fr>
72
73 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
74 the RHS of the rules.
75 * src/output.c (output_gram): Likewise.
76
bba97eb2
AD
772002-04-07 Akim Demaille <akim@epita.fr>
78
79 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
80 bucket.
81 Adjust all dependencies.
82 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
83 `number' of the buckets too.
84 * src/gram.h: Include `symtab.h'.
85 (associativity): Move to...
86 * src/symtab.h: here.
87 No longer include `gram.h'.
88
89
c3b407f4
AD
902002-04-07 Akim Demaille <akim@epita.fr>
91
92 * src/gram.h, src/gram.c (rules_rhs_length): New.
93 (ritem_longest_rhs): Use it.
94 * src/gram.h (rule_t): `number' is a new member.
95 * src/reader.c (packgram): Set it.
96 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
97 the end of `rules', and count them out of `nrules'.
98 (reduce_output, dump_grammar): Adjust.
99 * src/print.c (print_grammar): It is no longer needed to check for
100 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
101 * tests/reduce.at (Reduced Automaton): New test.
102
11652ab3
AD
1032002-04-07 Akim Demaille <akim@epita.fr>
104
105 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
106 lacking `+ 1' to nrules, Bison reported as useless a token if it
107 was used solely to set the precedence of the last rule...
108
26b23c1a
AD
1092002-04-07 Akim Demaille <akim@epita.fr>
110
111 * data/bison.c++, data/bison.simple: Don't output the current file
112 name in #line, to avoid useless diffs between two identical
113 outputs under different names.
114
18bcecb0
AD
1152002-04-07 Akim Demaille <akim@epita.fr>
116
117 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
118 Normalize loops to using `< nrules + 1', not `<= nrules'.
119
fa770c86
AD
1202002-04-07 Akim Demaille <akim@epita.fr>
121
122 * TODO: Update.
123
d9b739c3
AD
1242002-04-07 Akim Demaille <akim@epita.fr>
125
126 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
127 bucket.value as bucket.number.
128
99013900
AD
1292002-04-07 Akim Demaille <akim@epita.fr>
130
131 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
132 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
133 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
134 RHS, instead of being an index in RITEMS.
135
e966383b
PE
1362002-04-04 Paul Eggert <eggert@twinsun.com>
137
138 * doc/bison.texinfo: Update copyright date.
139 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
140 (Symbols): Warn about running Bison in one character set,
141 but compiling and/or running in an incompatible one.
142 Warn about character code 256, too.
143
1442002-04-03 Paul Eggert <eggert@twinsun.com>
145
146 * src/bison.data (YYSTACK_ALLOC): Depend on whether
147 YYERROR_VERBOSE is nonzero, not whether it is defined.
148
149 Merge changes from bison-1_29-branch.
c307773e 150
8d6c48b9
PE
1512002-03-20 Paul Eggert <eggert@twinsun.com>
152
153 Merge fixes from Debian bison_1.34-1.diff.
154
155 * configure.in (AC_PREREQ): 2.53.
156
e53c6322
AD
1572002-03-20 Akim Demaille <akim@epita.fr>
158
159 * src/conflicts.c (log_resolution): Argument `resolution' is const.
160
9ffbeca7
PE
1612002-03-19 Paul Eggert <eggert@twinsun.com>
162
21db0b2a
PE
163 * src/bison.simple (YYCOPY): New macro.
164 (YYSTACK_RELOCATE): Use it.
165 Remove Type arg; no longer needed. All callers changed.
166 (yymemcpy): Remove; no longer needed.
167
9ffbeca7
PE
168 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
169 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
170
642cb8f8
AD
1712002-03-19 Akim Demaille <akim@epita.fr>
172
173 Test and fix the #line outputs.
174
175 * tests/atlocal.at (GCC): New.
176 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
177 (Prologue synch line, ,%union synch line, Postprologue synch line)
178 (Action synch line, Epilogue synch line): New tests.
179 * src/reader.c (parse_union_decl): Define the muscle stype_line.
180 * data/bison.simple, data/bison.c++: Use it.
181
3c31a486
AD
1822002-03-19 Akim Demaille <akim@epita.fr>
183
184 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
185 (Solved SR Conflicts, %expect not enough, %expect right)
186 (%expect too much): Move to...
187 * tests/conflicts.at: this new file.
188
0d8bed56
AD
1892002-03-19 Akim Demaille <akim@epita.fr>
190
191 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
192 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
193 that we can move to enums for instance.
194 * src/output.c (token_definitions_output): Output a list of
195 `token-name, token-number' instead of the #define.
196 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
197
9208d17f
AD
1982002-03-14 Akim Demaille <akim@epita.fr>
199
200 Use Gettext 0.11.1.
201
af27eacb
RA
2022002-03-09 Robert Anisko <robert@lrde.epita.fr>
203
204 * data/bison.c++: Make the user able to add members to the generated
205 parser by subclassing.
206
9101a310
RA
2072002-03-05 Robert Anisko <robert@lrde.epita.fr>
208
209 * src/reader.c (read_additionnal_code): `c' should be an integer, not
210 a character.
211 Reported by Nicolas Tisserand and Nicolas Burrus.
212
fff9bf0b
RA
2132002-03-04 Robert Anisko <robert@lrde.epita.fr>
214
215 * src/reader.c: Warn about lacking semi-colons, do not complain.
216
64dba31e
RA
2172002-03-04 Robert Anisko <robert@lrde.epita.fr>
218
219 * data/bison.c++: Remove a debug line.
220
374f5a14
RA
2212002-03-04 Robert Anisko <robert@lrde.epita.fr>
222
223 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
224 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
225 provide a default implementation.
226
bfcf1f3a
AD
2272002-03-04 Akim Demaille <akim@epita.fr>
228
229 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
230 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
231 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
232 * tests/semantic.at (Parsing Guards): Similarly.
233 * src/reader.at (readgram): Complain if the last rule is not ended
234 with a semi-colon.
235
65ccf9fc
AD
2362002-03-04 Akim Demaille <akim@epita.fr>
237
238 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
239 * src/closure.c: here.
240 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
241 RTC.
242 * src/warshall.h, src/warshall.c: Remove.
243 * tests/sets.at (Broken Closure): Adjust.
244
d0039cbc
AD
2452002-03-04 Akim Demaille <akim@epita.fr>
246
247 * src/output.c (output_skeleton): tempdir is const.
248 bytes_read is unused.
249
345cea78
AD
2502002-03-04 Akim Demaille <akim@epita.fr>
251
252 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
253 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
254 Update.
255 From Michael Hayes.
256
564801f7
AD
2572002-03-04 Akim Demaille <akim@epita.fr>
258
259 * src/closure.c (closure): `r' is unused.
260
e5352bc7
AD
2612002-03-04 Akim Demaille <akim@epita.fr>
262
263 * tests/sets.at (Broken Closure): Add the ending `;'.
264 * src/reader.at (readgram): Complain if a rule is not ended with a
265 semi-colon.
266
914feea9
AD
2672002-03-04 Akim Demaille <akim@epita.fr>
268
269 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
270 (count_sr_conflicts): Use bitset_count.
271 * src/reduce.c (inaccessable_symbols): Ditto.
272 (bits_size): Remove.
273 * src/warshall.h, src/warshall.c: Convert to bitsetv.
274
f0250de6
AD
2752002-03-04 Akim Demaille <akim@epita.fr>
276
277 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
278 * src/reduce.c: Remove the `bitset_zero's following the
279 `bitset_create's, as now it is performed by the latter.
280
ef017502
AD
2812002-03-04 Akim Demaille <akim@epita.fr>
282
283 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
284 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
285 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
286 latest sources from Michael.
287
76514394
AD
2882002-03-04 Akim Demaille <akim@epita.fr>
289
290 * src/output.c (output): Don't free the grammar.
291 * src/reader.c (grammar_free): New.
292 * src/main.c (main): Call it and don't free symtab here.
293
55024580
AD
2942002-03-04 Akim Demaille <akim@epita.fr>
295
296 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
297 before returning.
298 Reported by Benoit Perrot.
299
f9abaa2c
AD
3002002-03-04 Akim Demaille <akim@epita.fr>
301
302 Use bitset operations when possible, not loops over bits.
303
304 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
305 bitset_or.
306 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
307 * src/reduce.c (useless_nonterminals): Formatting changes.
308 * src/warshall.c (TC): Use bitset_or.
309
0e721e75
AD
3102002-03-04 Akim Demaille <akim@epita.fr>
311
312 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
313 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
314 Ditto.
315
0fb1ffb1
AD
3162002-03-04 Akim Demaille <akim@epita.fr>
317
318 * src/lalr.c (F): Now a bitset*.
319 Adjust all dependencies.
320
b86796bf
AD
3212002-03-04 Akim Demaille <akim@epita.fr>
322
323 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
324 Adjust all dependencies.
325
602bbf31
AD
3262002-03-04 Akim Demaille <akim@epita.fr>
327
328 * src/L0.c, src/LR0.h (nstates): Be size_t.
329 Adjust comparisons (signed vs unsigned).
330 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
331 bitset*.
332 Adjust all dependencies.
333
d8a0245c
AD
3342002-03-04 Akim Demaille <akim@epita.fr>
335
336 * src/closure.c (firsts): Now, also a bitset.
337 Adjust all dependencies.
338 (varsetsize): Remove, now unused.
339 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
340
34ba9743
AD
3412002-03-04 Akim Demaille <akim@epita.fr>
342
343 * src/print.c: Convert to use bitset.h, not hand coded iterations
344 over ints.
345
ed86e78c
AD
3462002-03-04 Akim Demaille <akim@epita.fr>
347
348 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
349
dfdb1797
AD
3502002-03-04 Akim Demaille <akim@epita.fr>
351
352 * src/closure.c (ruleset): Be a bitset.
353 (rulesetsize): Remove.
354
7086e707
AD
3552002-03-04 Akim Demaille <akim@epita.fr>
356
357 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
358 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
359 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
360 * src/closure.c (fderives): Be an array of bitsets.
361
98254360
RA
3622002-02-28 Robert Anisko <robert@lrde.epita.fr>
363
364 * data/bison.c++: Merge the two generated headers. Insert a copyright
365 notice in each output file.
366
a75c057f
AD
3672002-02-28 Akim Demaille <akim@epita.fr>
368
369 * data/bison.c++: Copy the prologue of bison.simple to fetch
370 useful M4 definitions, such as b4_header_guard.
371
06b00abc
AD
3722002-02-25 Akim Demaille <akim@epita.fr>
373
374 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
375 translator friendly scheme for the bgr
376 copyright notice.
06b00abc 377
70e7d534
AD
3782002-02-25 Akim Demaille <akim@epita.fr>
379
380 * src/output.c (header_output): Remove, now handled completely via
381 M4.
382
abe017f6
AD
3832002-02-25 Akim Demaille <akim@epita.fr>
384
385 * m4/m4.m4: New, from CVS Autoconf.
386 * configure.in: Invoke it.
387 * src/output.c (output_skeleton): Use its result instead of the
388 hard coded name.
389
381fb12e
AD
3902002-02-25 Akim Demaille <akim@epita.fr>
391
392 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
393 Fileutils 4.1.5.
394 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
395 * src/output.c (output_skeleton): Use mkstemp to create a real
396 temporary file.
397 Move the filling of `skeleton' and its muscle to...
398 (prepare): here.
399 (output): Move the definition of the prologue muscle to...
400 (prepare): here.
401 * src/system.h (DEFAULT_TMPDIR): New.
402
6f38107f
PE
4032002-02-14 Paul Eggert <eggert@twinsun.com>
404
405 Remove the support for C++ namespace cleanliness; it was
406 causing more problems than it was curing, since it didn't work
407 properly on some nonstandard C++ compilers. This can wait
408 for a proper C++ parser.
409
410 * NEWS: Document this.
411 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
412 of C++, as it's treated like C now.
413 * src/bison.simple (YYSTD): Remove.
414 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
415 Treat C++ just like Standard C instead of trying to support
416 namespace cleanliness.
417
80cce3da
AD
4182002-02-14 Akim Demaille <akim@epita.fr>
419
420 * tests/regression.at (else): Adjust to Andreas' change.
421
842e8679
AD
4222002-02-14 Akim Demaille <akim@epita.fr>
423
424 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
425
4bda3f10
AD
4262002-02-13 Andreas Schwab <schwab@suse.de>
427
428 * src/output.c (output_rule_data): Don't output NULL, it might
429 not be defined yet.
430
4162fa07 4312002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 432
4162fa07
RA
433 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
434 (Copyright notice): Update.
b418ecd8 435
bd16a5dc
AD
4362002-02-11 Akim Demaille <akim@epita.fr>
437
438 * tests/regression.at (%nonassoc and eof): Don't include
439 nonportable headers.
440
8d69a1a3
RA
4412002-02-08 Robert Anisko <robert@lrde.epita.fr>
442
443 * data/bison.c++: Correct error recovery. Make the user able to
444 initialize the starting location.
445
9b2d0677
AD
4462002-02-07 Akim Demaille <akim@epita.fr>
447
448 * tests/input.at: New.
449
69e2658b
RA
4502002-02-07 Robert Anisko <robert@lrde.epita.fr>
451
452 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 453 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
454 directives around tables only needed for debugging.
455
4aacc3a7
RA
4562002-02-07 Robert Anisko <robert@lrde.epita.fr>
457
458 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
459 C++ parsers.
460 (yy::b4_name::parse): Use print_.
461
762a801e
RA
4622002-02-07 Robert Anisko <robert@lrde.epita.fr>
463
464 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
465
4bb2bc3f
RA
4662002-02-07 Robert Anisko <robert@lrde.epita.fr>
467
468 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
469 C++ parsers.
470 (yy::b4_name::parse): Build verbose error messages, and use error_.
471
6b45a3ca
RA
4722002-02-06 Robert Anisko <robert@lrde.epita.fr>
473
474 * data/bison.c++: Fix m4 quoting in comments.
475
50997c6e
RA
4762002-02-06 Robert Anisko <robert@lrde.epita.fr>
477
478 * data/bison.c++: Adjust the parser code. Fix some muscles that were
479 not expanded by m4.
480
3f3eed27
AD
4812002-02-05 Akim Demaille <akim@epita.fr>
482
483 * data/bison.c++: Adjust to the M4 back end.
484 More is certainly needed.
485
be2a1a68
AD
4862002-02-05 Akim Demaille <akim@epita.fr>
487
488 Give a try to M4 as a back end.
489
490 * lib/readpipe.c: New, from wdiff.
491 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
492 BISON_HAIRY.
493 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
494 specific values. Now it is m4 that performs the lookup.
495 * src/parse-skel.y: Remove.
496 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
497 * src/output.c (actions_output, guards_output)
498 (token_definitions_output): No longer keeps track of the output
499 line number, hence remove the second argument.
500 (guards_output): Check against the guard member of a rule, not the
501 action member.
502 Adjust callers.
503 (output_skeleton): Don't look for the skeleton location, let m4 do
504 that.
505 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
506 file will be used.
507 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
508 (prepare): Given that for the time being changesyntax is not
509 usable in M4, rename the muscles using `-' to `_'.
510 Define `defines_flag', `output_parser_name' and `output_header_name'.
511 * src/output.h (actions_output, guards_output)
512 (token_definitions_output): Adjust prototypes.
513 * src/scan-skel.l: Instead of scanning the skeletons, it now
514 processes the output of m4: `__oline__' and `#output'.
515 * data/bison.simple: Adjust to be used by M4(sugar).
516 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
517 to date.
518 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
519 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
520 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
521 shamelessly stolen from CVS Autoconf.
522
beda758b
AD
5232002-02-05 Akim Demaille <akim@epita.fr>
524
525 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
526 * configure.in: Check for the declarations of free and malloc.
527 * src/muscle_tab.c: Adjust.
528
5ece6d43
AD
5292002-02-05 Akim Demaille <akim@epita.fr>
530
531 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
532 which have no values.
533
5bb18f9a
AD
5342002-02-05 Akim Demaille <akim@epita.fr>
535
536 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
537 * data/: here.
538
894dd62e
PE
5392002-01-29 Paul Eggert <eggert@twinsun.com>
540
541 * src/bison.simple (YYSIZE_T): Do not define merely because
542 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
543 On some platforms, <alloca.h> does not declare YYSTD (size_t).
544
82841af7
AD
5452002-01-27 Akim Demaille <akim@epita.fr>
546
547 Fix `%nonassoc and eof'.
548
549 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
550 which were not properly copied! Replace
551 memcpy (res->errs, src->errs, src->nerrs);
552 with
553 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
554 !!!
555 * tests/regression.at (%nonassoc and eof): Adjust to newest
556 Autotest: `.' is not in the PATH.
557
318b76e9
AD
5582002-01-27 Akim Demaille <akim@epita.fr>
559
560 * tests/sets.at (AT_EXTRACT_SETS): New.
561 (Nullable): Use it.
562 (Firsts): New.
563
30d2f3d5
AD
5642002-01-26 Akim Demaille <akim@epita.fr>
565
566 * tests/actions.at, tests/calc.at, tests/headers.at,
567 * tests/torture.at: Adjust to the newest Autotest which no longer
568 forces `.' in the PATH.
569
30f8c395
AD
5702002-01-25 Akim Demaille <akim@epita.fr>
571
572 * tests/regression.at (%nonassoc and eof): New.
573 Suggested by Robert Anisko.
574
29ae55f1
AD
5752002-01-24 Akim Demaille <akim@epita.fr>
576
577 Bison dumps core when trying to complain about broken input files.
578 Reported by Cris van Pelt.
579
580 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
581 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
582 into...
583 (Invalid inputs): Strengthen: exercise parse_percent_token.
584
2b548aa6
RA
5852002-01-24 Robert Anisko <robert.anisko@epita.fr>
586
587 * src/Makefile.am: Add bison.c++.
588 * src/bison.c++: New skeleton.
589
bb0146c2
AD
5902002-01-21 Paolo Bonzini <bonzini@gnu.org>
591
592 * po/it.po: New.
593
bec30531
AD
5942002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
595
596 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
597
fc6edc45
MA
5982002-01-20 Marc Autret <marc@gnu.org>
599
600 * src/files.c (compute_output_file_names): Fix
601
5e5d5415
MA
6022002-01-20 Marc Autret <marc@gnu.org>
603
604 * tests/output.at: New test.
605 * src/files.c (compute_base_names): Don't map extensions when
606 the YACC flag is set, use defaults.
607 Reported by Evgeny Stambulchik.
608
44ea3fbd
MA
6092002-01-20 Marc Autret <marc@gnu.org>
610
bb0146c2 611 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
612 compilers as well (i.e. the vendor C compiler).
613 Suggested by Albert Chin-A-Young.
614
338963d1
TVH
6152002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
616
617 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
618 canonical definition.
619 * src/system.h: Use the canonical definition for PARAMS (avoids
620 a conflict with the macro from lib/hash.h).
621
c57b2479
AD
6222002-01-11 Akim Demaille <akim@epita.fr>
623
624 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 625 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 626
b85810ae
AD
6272002-01-09 Akim Demaille <akim@epita.fr>
628
629 * src/files.c, src/files.h (output_infix): New.
630 (tab_extension): Remove.
631 (compute_base_names): Compute the former, drop the latter.
632 * src/output.c (prepare): Insert the muscles `output-infix', and
633 `output-suffix'.
634 * src/parse-skel.y (string, string.1): New.
635 (section.header): Use it.
636 (section.yacc): Remove.
637 (prefix): Remove too.
638 * src/scan-skel.l: Adjust.
639 * src/bison.simple, src/bison.hairy: Adjust.
640
cae60122
AD
6412002-01-09 Akim Demaille <akim@epita.fr>
642
643 * configure.in (WERROR_CFLAGS): Compute it.
644 * src/Makefile.am (CFLAGS): Pass it.
645 * tests/atlocal.in (CFLAGS): Idem.
646 * src/files.c: Fix a few warnings.
647 (get_extension_index): Remove, unused.
648
ae404801
AD
6492002-01-08 Akim Demaille <akim@epita.fr>
650
651 * src/getargs.c (AS_FILE_NAME): New.
652 (getargs): Use it to convert DOSish file names.
653 * src/files.c (base_name): Rename as full_base_name to avoid
654 clashes with `base_name ()'.
655 (filename_split): New.
656 (compute_base_names): N-th rewrite, using filename_split.
657
22312b71
AD
6582002-01-08 Akim Demaille <akim@epita.fr>
659
660 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
661 New, stolen from the Fileutils 4.1.
662 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
663 * configure.in: Check for the presence of memrchr, and of its
664 prototype.
665
a67cef01
TVH
6662002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
667
668 * lib/hash.h (__P): Added definition for this macro.
669 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
670 BUILT_SOURCES, to ensure they are generated first.
671 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
672 %error-verbose to allow bootstrapping with bison 1.30x.
673
2b25d624
AD
6742002-01-06 Akim Demaille <akim@epita.fr>
675
676 * src/reader.c (parse_braces): Don't fetch the next char, the
677 convention is to fetch on entry.
678 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
679 'switch' without a following semicolon.
680 * tests/regression.at (braces parsing): New.
681
3460813b
AD
6822002-01-06 Akim Demaille <akim@epita.fr>
683
684 Bison is dead wrong in its RR conflict reports.
685
686 * tests/torture.at (GNU Cim Grammar): New.
687 * src/conflicts.c (count_rr_conflicts): Fix.
688
73784c64
AD
6892002-01-06 Akim Demaille <akim@epita.fr>
690
691 Creating package.m4 from configure.ac causes too many problems.
692
693 * tests/Makefile.am (package.m4): Create it by hand,
694 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
695
25d81090
AD
6962002-01-06 Akim Demaille <akim@epita.fr>
697
698 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
699 skeleton.h.
700
a9b8959e
PE
7012002-01-04 Paul Eggert <eggert@twinsun.com>
702
703 * doc/bison.texinfo (Debugging):
704 Remove YYSTDERR; it's no longer defined or used.
705 Also, s/cstdio.h/cstdio/.
706
25d81090
AD
7072002-01-03 Akim Demaille <akim@epita.fr>
708
709 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
710
1109455c
AD
7112002-01-03 Akim Demaille <akim@epita.fr>
712
713 * src/parse-skel.y (process_skeleton): Don't bind the parser's
714 tracing code to --trace, wait for a better --trace option, with
715 args.
716
7ea5e977
AD
7172002-01-03 Akim Demaille <akim@epita.fr>
718
719 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
720 The ISO C++ standard is extremely clear about it: stderr is
721 considered a macro, not a regular symbol (see table 94 `Header
722 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
723 Therefore std:: does not apply to it. It still does with fprintf.
724 Also, s/cstdio.h/cstdio/.
725
fab5b110
AD
7262002-01-03 Akim Demaille <akim@epita.fr>
727
728 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
729 for non system headers.
730
aed7fd9b
AD
7312002-01-02 Akim Demaille <akim@epita.fr>
732
733 Equip the skeleton chain with location tracking, runtime trace,
734 pure parser and scanner.
735
736 * src/parse-skel.y: Request a pure parser, locations, and prefix
737 renaming.
738 (%union): Having several members with the same type does not help
739 type mismatches, simplify.
740 (YYPRINT, yyprint): New.
741 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
742 (skel_error): this.
743 Handle locations.
744 * src/scan-skel.l: Adjust to these changes.
745 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
746 (LOCATION_PRINT, skel_control_t): New.
747
24fad99e
AD
7482001-12-30 Akim Demaille <akim@epita.fr>
749
750 * src/parse-skel.y: Get rid of the shift/reduce conflict:
751 replace `gb' with BLANKS.
752 * src/scan-skel.l: Adjust.
753
a4b36db4
AD
7542001-12-30 Akim Demaille <akim@epita.fr>
755
756 * src/system.h: We don't need nor want bcopy.
757 Throw away MS-DOS crap: we don't need getpid.
758 * configure.in: We don't need strndup. It was even causing
759 problems: because Flex includes the headers *before* us,
760 _GNU_SOURCE is not defined by config.h, and therefore strndup was
761 not visible.
762 * lib/xstrndup.c: New.
763 * src/scan-skel.l: Use it.
764 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
765 * src/parse-skel.y: Use %directives instead of #defines.
766
1239777d
AD
7672001-12-30 Akim Demaille <akim@epita.fr>
768
769 * src/skeleton.h: New.
770 * src/output.c (output_parser, output_master_parser): Remove, dead
771 code.
772 * src/output.h (get_lines_number, actions_output, guards_output)
773 (token_definitions_output): Prototype them.
774 * src/parse-skel.y: Add the license notice.
775 Include output.h and skeleton.h.
776 (process_skeleton): Returns void, and takes a single parameter.
777 * src/scan-skel.l: Add the license notice.
778 Include skeleton.h.
779 Don't use %option yylineno: it seems that then Flex imagines
780 REJECT has been used, and therefore it won't reallocate its
781 buffers (which makes no other sense to me than a bug). It results
782 in warnings for `unused: yy_flex_realloc'.
783
9b3add5b
RA
7842001-12-30 Robert Anisko <robert.anisko@epita.fr>
785
786 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
787 (MUSCLE_INSERT_PREFIX): ...to there.
788 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
789 (MUSCLE_INSERT_PREFIX): Move from here...
790
791 * src/bison.hairy: Add a section directive. Put braces around muscle
792 names. This parser skeleton is still broken, but Bison should not
793 choke on a bad muscle 'syntax'.
794 * src/bison.simple: Add a section directive. Put braces around muscle
795 names.
796
797 * src/files.h (strsuffix, stringappend): Add declarations.
798 (tab_extension): Add declaration.
799 (short_base_name): Add declaration.
800
801 * src/files.c (strsuffix, stringappend): No longer static. These
802 functions are used in the skeleton parser.
803 (tab_extension): New.
804 (compute_base_names): Use the computations done in this function
fab5b110 805 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
806 names.
807 (short_base_name): No longer static.
808
809 * src/output.c (output_skeleton): New.
810 (output): Disable call to output_master_parser, and give a try to
811 a new skeleton handling system.
812 (guards_output, actions_output): No longer static.
813 (token_definitions_output, get_lines_number): No longer static.
814
815 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
816
fab5b110 817 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
818 parse-skel.y.
819
820 * src/parse-skel.y: New file.
821 * src/scan-skel.l: New file.
822
b5b61c61
AD
8232001-12-29 Akim Demaille <akim@epita.fr>
824
825 %name-prefix is broken.
826
827 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
828 Adjust all dependencies.
829 * tests/headers.at (export YYLTYPE): Strengthen this test: use
830 %name-prefix.
831
832 Renaming yylval but not yylloc is not consistent. Now we do.
833
834 * src/bison.simple: Prefix yylloc if used.
835 * doc/bison.texinfo (Decl Summary): Document that.
836
8c9a50be
AD
8372001-12-29 Akim Demaille <akim@epita.fr>
838
839 * doc/bison.texinfo: Promote `%long-directive' over
840 `%long_directive'.
841 Remove all references to fixed-output-files, yacc is enough.
842
d99361e6
AD
8432001-12-29 Akim Demaille <akim@epita.fr>
844
845 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
846 user prologue. These are defaults.
847 * tests/actions.at (Mid-rule actions): Make sure the user can
848 define YYDEBUG and YYERROR_VERBOSE.
849
b9cecb91
AD
8502001-12-29 Akim Demaille <akim@epita.fr>
851
852 * src/output.c (header_output): Don't forget to export YYLTYPE and
853 yylloc.
854 * tests/headers.at (export YYLTYPE): New, make sure it does.
855 * tests/regression.at (%union and --defines, Invalid CPP headers):
856 Move to...
857 * tests/headers.at: here.
858
aea13e97
AD
8592001-12-29 Akim Demaille <akim@epita.fr>
860
861 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
862
931394cb
AD
8632001-12-29 Akim Demaille <akim@epita.fr>
864
865 * tests/actions.at (Mid-rule actions): Output on a single line
866 instead of several.
867
704a47c4
AD
8682001-12-29 Akim Demaille <akim@epita.fr>
869
870 * doc/bison.texinfo: Formatting changes.
871
091e20bb
AD
8722001-12-29 Akim Demaille <akim@epita.fr>
873
874 Don't store the token defs in a muscle, just be ready to output it
875 on command. Now possible via `symbols'. Fixes a memory leak.
876
877 * src/output.c (token_definitions_output): New.
878 (output_parser, header_output): Use it.
879 * src/reader.c (symbols_save): Remove.
880
cce71710
AD
8812001-12-29 Akim Demaille <akim@epita.fr>
882
883 * src/bison.simple: Do not provide a default for YYSTYPE and
884 YYLTYPE before the user's prologue. Otherwise it's hardly... a
885 default.
886
82c035a8
AD
8872001-12-29 Akim Demaille <akim@epita.fr>
888
889 Mid-rule actions are simply... ignored!
890
891 * src/reader.c (readgram): Be sure to attach mid-rule actions to
892 the empty-rule associated to the dummy symbol, not to the host
893 rule.
894 * tests/actions.at (Mid-rule actions): New.
895
8419d367
AD
8962001-12-29 Akim Demaille <akim@epita.fr>
897
898 Memory leak.
899
900 * src/reader.c (reader): Free grammar.
901
375d5806
AD
9022001-12-29 Akim Demaille <akim@epita.fr>
903
904 Memory leak.
905
906 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
907 since it allocates it for each state, although only one is needed.
908 (allocate_storage): Do it here.
909
f51cb8ff
AD
9102001-12-29 Akim Demaille <akim@epita.fr>
911
912 * src/options.h, src/options.c (create_long_option_table): Rename
913 as...
914 (long_option_table_new): this, with a clearer prototype.
915 (percent_table): Remove, unused,
916 * src/getargs.c (getargs): Adjust.
917
29e88316
AD
9182001-12-29 Akim Demaille <akim@epita.fr>
919
920 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
921 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
922 as states.
923
b9f71f19
AD
9242001-12-29 Akim Demaille <akim@epita.fr>
925
926 * src/lalr.c (build_relations): Rename `states' as `states1'.
927 Sorry, I don't understand exactly what it is, no better name...
928
1a2b5d37
AD
9292001-12-29 Akim Demaille <akim@epita.fr>
930
931 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
932 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
933 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
934 as rules.
935
1cca533e
AD
9362001-12-29 Akim Demaille <akim@epita.fr>
937
938 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
939 ago.
940
c03ae966
AD
9412001-12-29 Akim Demaille <akim@epita.fr>
942
943 * src/reader.c, src/reader.h (user_toknums): Remove.
944 Adjust all users to use symbols[i]->user_token_number.
945
5a670b1e
AD
9462001-12-29 Akim Demaille <akim@epita.fr>
947
948 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
949 Adjust all users to use symbols[i]->prec or ->assoc.
950
ad949da9
AD
9512001-12-29 Akim Demaille <akim@epita.fr>
952
953 * src/reader.c, src/reader.h (tags): Remove.
954 Adjust all users to use symbols[i]->tag.
955
0e78e603
AD
9562001-12-29 Akim Demaille <akim@epita.fr>
957
958 * src/gram.h, src/gram.c (symbols): New, similar to state_table
959 and rule_table.
960 * src/reader.c (packsymbols): Fill this table.
961 Drop sprec.
962 * src/conflicts.c (resolve_sr_conflict): Adjust.
963 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
964 single table.
965 Use symbols[i]->tag instead of tags[i].
966
213e640e
AD
9672001-12-29 Akim Demaille <akim@epita.fr>
968
969 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
970 In addition, put a comment in there, to replace...
971 * tests/regression.at (%union and C comments): Remove.
972
e7b8bef1
AD
9732001-12-29 Akim Demaille <akim@epita.fr>
974
975 * tests/regression.at (Web2c Actions): Blindly move the actual
976 output as expected output. The contents *seem* right to me, but I
977 can't pretend reading perfectly parser tables... Nonetheless, all
978 the other tests pass correctly, the table look OK, even though the
979 presence of `$axiom' is to be noted: AFAICS it is useless (but
980 harmless).
981
b68e7744
AD
9822001-12-29 Akim Demaille <akim@epita.fr>
983
984 * src/reader.c (readgram): Don't add the rule 0 if there were no
985 rules read. In other words, add it _after_ having performed
986 grammar sanity checks.
987 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
988
78d5bae9
AD
9892001-12-29 Akim Demaille <akim@epita.fr>
990
991 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
992 visible, and some states have now a different number.
993
ff442794
AD
9942001-12-29 Akim Demaille <akim@epita.fr>
995
996 * src/reader.c (readgram): Bind the initial rule's lineno to that
997 of the first rule.
998 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
999 (Solved SR Conflicts): Adjust rule 0's line number.
1000
610ab194
AD
10012001-12-29 Akim Demaille <akim@epita.fr>
1002
1003 Fix the `GAWK Grammar' failure.
1004
1005 * src/LR0.c (final_state): Initialize to -1 so that we do compute
1006 the reductions of the first state which was mistakenly confused
1007 with the final state because precisely final_state was initialized
1008 to 0.
1009 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
1010 now noticed by Bison.
1011 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
1012 have a reduction on $default.
1013
29d29c8f
AD
10142001-12-29 Akim Demaille <akim@epita.fr>
1015
1016 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
1017 rule line numbers.
1018 * src/closure.c (print_closure): Likewise.
1019 * src/derives.c (print_derives): Likewise.
1020 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
1021 now.
1022
7c6b64d0
AD
10232001-12-29 Akim Demaille <akim@epita.fr>
1024
1025 * src/lalr.c (lookaheads_print): New.
1026 (lalr): Call it when --trace-flag.
1027 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
1028 are dumped.
1029
3d4daee3
AD
10302001-12-29 Akim Demaille <akim@epita.fr>
1031
1032 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
1033 when walking through ritem, even via rule->rhs.
1034 * src/reduce.c (dump_grammar, useful_production, reduce_output)
1035 (useful_production, useless_nonterminals): Likewise.
1036 (reduce_grammar_tables): Likewise, plus update nritems.
1037 * src/nullable.c (set_nullable): Likewise.
1038 * src/lalr.c (build_relations): Likewise.
1039 * tests/sets.at (Nullable): Adjust.
1040 Fortunately, now, the $axiom is no longer nullable.
1041
9e7f6bbd
AD
10422001-12-29 Akim Demaille <akim@epita.fr>
1043
1044 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
1045 the 0-sentinel.
1046 * src/gram.c (ritem_longest_rhs): Likewise.
1047 * src/reduce.c (nonterminals_reduce): Likewise.
1048 * src/print_graph.c (print_graph): Likewise.
1049 * src/output.c (output_rule_data): Likewise.
1050 * src/nullable.c (set_nullable): Likewise.
1051
255ef638
AD
10522001-12-29 Akim Demaille <akim@epita.fr>
1053
1054 * src/output.c: Comment changes.
1055
0d8a7363
AD
10562001-12-27 Paul Eggert <eggert@twinsun.com>
1057
1058 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
1059 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
1060 Sparc, as they were causing more porting problems than the
1061 (minor) performance improvement was worth.
1062
1063 Also, catch up with 1.31's YYSTD.
1064
3db472b9
AD
10652001-12-27 Akim Demaille <akim@epita.fr>
1066
1067 * src/output.c (output_gram): Rely on nritems, not the
1068 0-sentinel. See below.
1069 Use -1 as separator, not 0.
1070 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
1071 Rely on -1 as separator in yyrhs, instead of 0.
1072 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
1073 twice `Now at end of input', therefore there are two lines less to
1074 expect.
1075
b365aa05
AD
10762001-12-27 Akim Demaille <akim@epita.fr>
1077
1078 * tests/regression.at (Unresolved SR Conflicts):
1079 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
1080 below.
1081
30171f79
AD
10822001-12-27 Akim Demaille <akim@epita.fr>
1083
1084 * src/LR0.c (new_state): Recognize the final state by the fact it
1085 is reached by eoftoken.
1086 (insert_start_shifting_state, insert_eof_shifting_state)
1087 (insert_accepting_state, augment_automaton): Remove, since now
1088 these states are automatically computed from the initial state.
1089 (generate_states): Adjust.
1090 * src/print.c: When reporting a rule number to the user, substract
1091 1, so that the axiom rule is rule 0, and the first user rule is 1.
1092 * src/reduce.c: Likewise.
1093 * src/print_graph.c (print_core): For the time being, just as for
1094 the report, depend upon --trace-flags to dump the full set of
1095 items.
1096 * src/reader.c (readgram): Once the grammar read, insert the rule
1097 0: `$axiom: START-SYMBOL $'.
1098 * tests/set.at: Adjust: rule 0 is now displayed, and since the
1099 number of the states has changed (the final state is no longer
1100 necessarily the last), catch up.
1101
75142d45
AD
11022001-12-27 Akim Demaille <akim@epita.fr>
1103
1104 Try to make the use of the eoftoken valid. Given that its value
1105 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
1106 is used instead of > 0 where appropriate, (ii), depend upon nritems
1107 instead of the 0-sentinel.
1108
1109 * src/gram.h, src/gram.c (nritems): New.
1110 Expected to be duplication of nitems, but for the time being...
1111 * src/reader.c (packgram): Assert nritems and nitems are equal.
1112 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
1113 * src/closure.c (print_closure, print_fderives): Likewise.
1114 * src/gram.c (ritem_print): Likewise.
1115 * src/print.c (print_core, print_grammar): Likewise.
1116 * src/print_graph.c: Likewise.
1117
b7c49edf
AD
11182001-12-27 Akim Demaille <akim@epita.fr>
1119
1120 * src/main.c (main): If there are complains after grammar
1121 reductions, then output the report anyway if requested, then die.
1122 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
1123 * src/reader.c (eoftoken): New.
1124 (parse_token_decl): If the token being defined has value `0', it
1125 is the eoftoken.
1126 (packsymbols): No longer hack `tags' to insert `$' by hand.
1127 Be sure to preserve the value of the eoftoken.
1128 (reader): Make sure eoftoken is defined.
1129 Initialize nsyms to 0: now eoftoken is created just like the others.
1130 * src/print.c (print_grammar): Don't special case the eof token.
1131 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
1132 lie anyway, albeit pleasant.
1133 * tests/calc.at: Exercise error messages with eoftoken.
1134 Change the grammar so that empty input is invalid.
1135 Adjust expectations.
1136 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
1137
ec2da99f
AD
11382001-12-27 Akim Demaille <akim@epita.fr>
1139
1140 * configure.in: Check the protos of strchr ans strspn.
1141 Replace strchr if needed.
1142 * src/system.h: Provide the protos of strchr, strspn and memchr if
1143 missing.
1144 * lib/strchr.c: New.
1145 * src/reader.c (symbols_save): Use strchr.
1146
8adfa272
AD
11472001-12-27 Akim Demaille <akim@epita.fr>
1148
1149 * src/print.c, src/print_graph.c (escape): New.
1150 Use it to quote the TAGS outputs.
1151 * src/print_graph.c (print_state): Now errors are in red, and
1152 reductions in green.
1153 Prefer high to wide: output the state number on a line of its own.
1154
80dac38c
AD
11552001-12-27 Akim Demaille <akim@epita.fr>
1156
1157 * src/state.h, src/state.c (reductions_new): New.
1158 * src/LR0.c (set_state_table): Let all the states have a
1159 `reductions', even if reduced to 0.
1160 (save_reductions): Adjust.
1161 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
1162 * src/print.c (print_reductions, print_actions): Adjust.
1163 * src/output.c (action_row): Adjust.
1164
2cec70b9
AD
11652001-12-27 Akim Demaille <akim@epita.fr>
1166
1167 * src/state.h, src/state.c (errs_new, errs_dup): New.
1168 * src/LR0.c (set_state_table): Let all the states have an errs,
1169 even if reduced to 0.
1170 * src/print.c (print_errs, print_reductions): Adjust.
1171 * src/output.c (output_actions, action_row): Adjust.
1172 * src/conflicts.c (resolve_sr_conflict): Adjust.
1173
13ca549a
AD
11742001-12-27 Akim Demaille <akim@epita.fr>
1175
1176 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
1177
5092aba5
AD
11782001-12-27 Akim Demaille <akim@epita.fr>
1179
1180 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
1181 * src/print.c: here.
1182 (lookaheadset, shiftset): New, used as additional storage by
1183 print_reductions.
1184 (print_results): Adjust.
1185 (print_shifts, print_gotos, print_errs): New, extracted from...
1186 (print_actions): here.
1187 * src/print_graph.c (print_actions): Remove dead code.
1188
11e2beca
AD
11892001-12-27 Akim Demaille <akim@epita.fr>
1190
1191 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
1192 `$n' and `@n'.
1193
dac3c910
AD
11942001-12-27 Akim Demaille <akim@epita.fr>
1195
1196 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
1197 (build_relations): Adjust.
1198
d0b0fefa
AD
11992001-12-27 Akim Demaille <akim@epita.fr>
1200
1201 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
1202 duplication.
1203
adc8c848
AD
12042001-12-27 Akim Demaille <akim@epita.fr>
1205
1206 * src/reader.c (packgram): Catch nitems overflows.
1207
14d293ac
AD
12082001-12-27 Akim Demaille <akim@epita.fr>
1209
1210 * src/files.c, src/files.h (guard_obstack): Remove.
1211 * src/output.c (output): Adjust.
1212 * src/reader.c (parse_braces): New, factoring...
1213 (copy_action, copy_guard): these two which are renamed as...
1214 (parse_action, parse_guard): these.
1215 As a voluntary consequence, using braces around guards is now
1216 mandatory.
1217
f499b062
AD
12182001-12-27 Akim Demaille <akim@epita.fr>
1219
1220 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
1221 * src/reader.c (symbol_list): `guard' and `guard_line' are new
1222 members.
1223 (symbol_list_new): Adjust.
1224 (copy_action): action_line is the first line, not the last.
1225 (copy_guard): Just as for actions, store the `action' only, not
1226 the switch/case/break flesh.
1227 Don't parse the user action that might follow the guard, let...
1228 (readgram): do it, i.e., now, there can be an action after a
1229 guard.
1230 In other words the guard is just explicitly optional.
1231 (packgram): Adjust.
1232 * src/output.c (guards_output): New.
1233 (output_parser): Call it when needed.
1234 (output): Also free the guard and attrs obstacks.
1235 * src/files.c, src/files.h (obstack_save): Remove.
1236 (output_files): Remove.
1237 As a result, if one needs the former `.act' file, using an
1238 appropriate skeleton which requires actions and guards is now
1239 required.
1240 * src/main.c (main): Adjust.
1241 * tests/semantic.at: New.
1242 * tests/regression.at: Use `input.y' as input file name.
1243 Avoid 8+3 problems by requiring input.c when the test needs the
1244 parser.
1245
d945f5cd
AD
12462001-12-27 Akim Demaille <akim@epita.fr>
1247
1248 * src/reader.c (symbol_list_new): Be sure to initialize all the
1249 fields.
1250
d200e455
AD
12512001-12-27 Akim Demaille <akim@epita.fr>
1252
1253 All the hacks using a final pseudo state are now useless.
1254
1255 * src/LR0.c (set_state_table): state_table holds exactly nstates.
1256 * src/lalr.c (nLA): New.
1257 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
1258 instead of lookaheadsp from the pseudo state (nstate + 1).
1259
f9507c28
AD
12602001-12-27 Akim Demaille <akim@epita.fr>
1261
1262 * src/output.c (action_row, token_actions): Use a state_t instead
1263 of a integer, and nlookaheads instead of the following state's
1264 lookaheadsp.
1265
065fbd27
AD
12662001-12-27 Akim Demaille <akim@epita.fr>
1267
1268 * src/conflicts.c (log_resolution, flush_shift)
1269 (resolve_sr_conflict, set_conflicts, solve_conflicts)
1270 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
1271 (conflicts_print, print_reductions): Use a state_t instead of an
1272 integer when referring to a state.
1273 As much as possible, depend upon nlookaheads, instead of the
1274 `lookaheadsp' member of the following state (since lookaheads of
1275 successive states are successive, the difference between state n + 1
1276 and n served as the number of lookaheads for state n).
1277 * src/lalr.c (add_lookback_edge): Likewise.
1278 * src/print.c (print_core, print_actions, print_state)
1279 (print_results): Likewise.
1280 * src/print_graph.c (print_core, print_actions, print_state)
1281 (print_graph): Likewise.
1282 * src/conflicts.h: Adjust.
1283
1b177bd7
AD
12842001-12-27 Akim Demaille <akim@epita.fr>
1285
1286 * src/bison.hairy: Formatting/comment changes.
1287 ANSIfy.
1288 Remove `register' indications.
1289 Add plenty of `static'.
1290
7742ddeb
AD
12912001-12-27 Akim Demaille <akim@epita.fr>
1292
1293 * src/output.c (prepare): Drop the muscle `ntbase' which
1294 duplicates ntokens.
1295 * src/bison.simple: Formatting/comment changes.
1296 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
1297 is an undocumented synonym.
1298
1fa14068
AD
12992001-12-22 Akim Demaille <akim@epita.fr>
1300
1301 * src/output.c (output_table_data): Change the prototype to use
1302 `int' for array ranges: some invocations do pass an int, not a
1303 short.
1304 Reported by Wayne Green.
1305
b9752825
AD
13062001-12-22 Akim Demaille <akim@epita.fr>
1307
1308 Some actions of web2c.y are improperly triggered.
1309 Reported by Mike Castle.
1310
1311 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
1312 * tests/regression.at (Web2c): Rename as...
1313 (Web2c Report): this.
1314 (Web2c Actions): New.
1315
776209d6
AD
13162001-12-22 Akim Demaille <akim@epita.fr>
1317
1318 Reductions in web2c.y are improperly reported.
1319 Reported by Mike Castle.
1320
1321 * src/conflicts.c (print_reductions): Fix.
1322 * tests/regression.at (Web2c): New.
1323
275fc3ad
AD
13242001-12-18 Akim Demaille <akim@epita.fr>
1325
1326 Some host fail on `assert (!"foo")', which expands to
1327 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
1328 Reported by Nelson Beebee.
1329
1330 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
1331 `#define it_succeeded 0' and `assert (it_succeeded)'.
1332
897668ee
MA
13332001-12-17 Marc Autret <autret_m@epita.fr>
1334
1335 * src/bison.simple: Don't hard code the skeleton line and filename.
1336 * src/output.c (output_parser): Rename 'line' as 'output_line'.
1337 New line counter 'skeleton_line' (skeleton-line muscle).
1338
ab3399e0
PE
13392001-12-17 Paul Eggert <eggert@twinsun.com>
1340
1341 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
1342 YYDEBUG must be defined to a nonzero value.
1343
1344 * src/bison.simple (yytname): Do not assume that the user defines
1345 YYDEBUG to a properly parenthesized expression.
1346
3877f72b
AD
13472001-12-17 Akim Demaille <akim@epita.fr>
1348
1349 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
1350 nlookaheads is a new member.
1351 Adjust all users.
1352 * src/lalr.h (nlookaheads): Remove this orphan declaration.
1353 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
1354 state.
776209d6 1355
331dbc1b
AD
13562001-12-17 Akim Demaille <akim@epita.fr>
1357
1358 * src/files.h, src/files.c (open_files, close_files): Remove.
1359 * src/main.c (main): Don't open/close files, nor invoke lex_free,
1360 let...
1361 * src/reader.c (reader): Do it.
776209d6 1362
be750e4c
AD
13632001-12-17 Akim Demaille <akim@epita.fr>
1364
1365 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 1366
709ae8c6
AD
13672001-12-17 Akim Demaille <akim@epita.fr>
1368
1369 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
1370 (flush_reduce): New.
1371 (resolve_sr_conflict): Adjust.
776209d6 1372
f87685c3
AD
13732001-12-17 Akim Demaille <akim@epita.fr>
1374
1375 * src/output.c (output_obstack): Be static and rename as...
1376 (format_obstack): this, to avoid any confusion with files.c's
1377 output_obstack.
1378 * src/reader.h (muscle_obstack): Move to...
1379 * src/output.h: here, since it's defined in output.c.
1380
837491d8
AD
13812001-12-17 Akim Demaille <akim@epita.fr>
1382
1383 * src/output.c (action_row, save_column, default_goto)
1384 (sort_actions, matching_state, pack_vector): Better variable
1385 locality.
1386
796d61fb
AD
13872001-12-17 Akim Demaille <akim@epita.fr>
1388
1389 * src/output.c: Various formatting changes.
776209d6 1390
64d15509
AD
13912001-12-17 Akim Demaille <akim@epita.fr>
1392
1393 * src/files.c (output_files): Free the output_obstack.
1394 * src/main.c (main): Call print and print_graph conditionally.
1395 * src/print.c (print): Work unconditionally.
1396 * src/print_graph.c (print_graph): Work unconditionally.
1397 * src/conflicts.c (log_resolution): Output only if verbose_flag.
1398
fbc8ecb7
MA
13992001-12-16 Marc Autret <autret_m@epita.fr>
1400
1401 * src/output.c (actions_output): Fix. When we use %no-lines,
1402 there is one less line per action.
1403
f0440388
MA
14042001-12-16 Marc Autret <autret_m@epita.fr>
1405
1406 * src/bison.simple: Remove a useless #line directive.
1407 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
1408 * src/output.c (get_lines_number): New.
776209d6 1409 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
1410 output muscles.
1411 Fix line numbering.
1412 (actions_output): Computes the number of lines taken by actions.
1413 (output_master_parser): Insert new skeleton which is the name of
1414 the output parser file name.
1415
a79986b8
MA
14162001-12-15 Marc Autret <autret_m@epita.fr>
1417
1418 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
1419
4ec8e00f
MA
14202001-12-15 Marc Autret <autret_m@epita.fr>
1421
1422 * src/output.c (output_gram): Keep track of the hairy one.
1423
1a4648ff
AD
14242001-12-15 Akim Demaille <akim@epita.fr>
1425
1426 Make `make distcheck' work.
1427
1428 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
1429 system.h which uses libgettext.h.
1430
9c2c67e6
AD
14312001-12-15 Akim Demaille <akim@epita.fr>
1432
1433 * src/nullable.c (set_nullable): Useless rules must be skipped,
1434 otherwise, since we range over their symbols, we might look at a
1435 nonterminal which no longer ``exists'', i.e., it is not counted in
1436 `nvars', hence we overflow our arrays.
1437
93ede233
AD
14382001-12-15 Akim Demaille <akim@epita.fr>
1439
1440 The header can also be produced directly, without any obstack!
1441 Yahoo!
1442
1443 * src/files.c, src/files.h (defines_obstack): Remove.
1444 (compute_header_macro): Global.
1445 (defines_obstack_save): Remove.
1446 * src/reader.c (parse_union_decl): No longer output to
1447 defines_obstack: its content can be found in the `stype' muscle
1448 anyway.
1449 (output_token_translations): Merge into...
1450 (symbols_output): this.
1451 Rename as...
1452 (symbols_save): this.
1453 (reader): Adjust.
1454 * src/output.c (header_output): New.
1455 (output): Call it.
1456
2666f928
AD
14572001-12-15 Akim Demaille <akim@epita.fr>
1458
1459 * src/reader.c (parse_union_decl): Instead of handling two obstack
1460 simultaneously, use one to define the `stype' muscle, and use the
1461 value of the latter to fill defines_obstack.
1462 (copy_comment): Remove.
1463 (copy_comment2): Work for a single obstack.
1464 Rename as...
1465 (copy_comment): this.
1466
428046f8
AD
14672001-12-15 Akim Demaille <akim@epita.fr>
1468
1469 * src/lex.c, src/lex.h (xgetc): No longer static.
1470 * src/reader.c (parse_union_decl): Revamp.
1471
ea52d706
AD
14722001-12-15 Akim Demaille <akim@epita.fr>
1473
1474 Still making progress in separating Bison into (i) input, (ii)
1475 process, (iii) output: now we can directly output the parser file
1476 without using table_obstack at all.
1477
1478 * src/files.c, src/files.h (table_obstack): Bye bye.
1479 (parser_file_name): New.
1480 * src/files.c (compute_output_file_names): Compute it.
1481 * src/output.c (actions_output, output_parser)
1482 (output_master_parser): To a file instead of an obstack.
1483
3f96f4dc
AD
14842001-12-15 Akim Demaille <akim@epita.fr>
1485
1486 Attach actions to rules, instead of pre-outputting them to
1487 actions_obstack.
1488
1489 * src/gram.h (rule_t): action and action_line are new members.
1490 * src/reader.c (symbol_list): Likewise.
1491 (copy_action): Save the actions within the rule.
1492 (packgram): Save them in rule_table.
1493 * src/output.c (actions_output): New.
1494 (output_parser): Use it on `%%actions'.
1495 (output_rule_data): Don't free rule_table.
1496 (output): Do it.
1497 (prepare): Don't save the `action' muscle.
1498 * src/bison.simple: s/%%action/%%actions/.
1499
51576fb3
AD
15002001-12-15 Akim Demaille <akim@epita.fr>
1501
1502 * src/reader.c (copy_action): When --yacc, don't append a `;'
1503 to the user action: let it fail if lacking.
dee049eb 1504 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 1505
2648a72d
AD
15062001-12-14 Akim Demaille <akim@epita.fr>
1507
1508 * src/lex.c (literalchar): Simply return the char you decoded, non
1509 longer mess around with obstacks and int pointers.
1510 Adjust all callers.
1511
92790e5b
AD
15122001-12-14 Akim Demaille <akim@epita.fr>
1513
1514 * src/lex.c (literalchar): Don't escape the special characters,
1515 just decode them, and keep them as char (before, eol was output as
1516 the 2 char string `\n' etc.).
1517 * src/output.c (output_rule_data): Use quotearg to output the
1518 token strings.
1519
927c1557
PE
15202001-12-13 Paul Eggert <eggert@twinsun.com>
1521
1522 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
1523 Do not infringe on the global user namespace when using C++.
1524 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
1525 All uses of `fprintf' and `stderr' changed.
1526
1527 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
1528
ed8e1f68
AD
15292001-12-13 Akim Demaille <akim@epita.fr>
1530
1531 The computation of nullable is broken: it doesn't handle empty
1532 RHS's properly.
1533
1534 * tests/torture.at (GNU AWK Grammar): New.
1535 * tests/sets.at (Nullable): New.
1536 * src/nullable.c (set_nullable): Instead of blindly looping over
1537 `ritems', loop over the rules, and then over their rhs's.
1538
1539 Work around Autotest bugs.
1540
1541 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
1542 frame, because Autotest understand lines starting with a `+' as
1543 traces from the shell. Then, they are not processed properly.
1544 Admittedly an Autotest bug, but we don't have time to wait for
1545 Autotest to catch up.
1546 * tests/regression.at (Broken Closure): Adjust to the new table
1547 frames.
1548 Move to...
1549 * tests/sets.at: here.
1550
cb581495
AD
15512001-12-13 Akim Demaille <akim@epita.fr>
1552
1553 * src/closure.c (closure): Use nrules instead of playing tricks
1554 with BITS_PER_WORD.
1555
2e729273
AD
15562001-12-13 Akim Demaille <akim@epita.fr>
1557
1558 * src/print.c (print_actions): Output the handling of `$' as the
1559 traces do: shifting the token EOF. Before EOF was treated as a
1560 nonterminal.
1561 * tests/regression.at: Adjust some tests.
1562 * src/print_graph.c (print_core): Complete the set of items via
1563 closure. The next-to-final and final states are still unsatisfying,
1564 but that's to be addressed elsewhere.
1565 No longer output the rule numbers, but do output the state number.
1566 A single loop for the shifts + gotos is enough, but picked a
1567 distinct color for each.
1568 (print_graph): Initialize and finalize closure.
1569
107f7dfb
AD
15702001-12-13 Akim Demaille <akim@epita.fr>
1571
1572 * src/reader.c (readgram): Remove dead code, an strip useless
1573 braces.
1574 (get_type): Remove, unused.
1575
9b53a24f
AD
15762001-12-12 Akim Demaille <akim@epita.fr>
1577
1578 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
1579 on that of lib/error.c.
1580
dbfb6dcd
AD
15812001-12-12 Akim Demaille <akim@epita.fr>
1582
1583 Some hosts don't like `/' in includes.
1584
1585 * src/system.h: Include libgettext.h without qualifying the path.
1586 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
1587 $(top_srcdir).
1588
c25fb648
MA
15892001-12-11 Marc Autret <autret_m@epita.fr>
1590
1591 * src/output.c (output_parser): Remove useless muscle.
1592
710ddc4f
MA
15932001-12-11 Marc Autret <autret_m@epita.fr>
1594
1595 * src/bison.simple: Remove #line just before %%epilogue. It
1596 is now handled in ...
1597 * src/reader.c (read_additionnal_code): Add the output of a
1598 #line for the epilogue.
1599
e83d80b8
MA
16002001-12-10 Marc Autret <autret_m@epita.fr>
1601
927c1557 1602 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
1603 replace precedent remove.
1604 * src/bison.simple: Remove #line before %%prologue because
1605 %%input-line is wrong at this time.
1606
971d5158
MA
16072001-12-10 Marc Autret <autret_m@epita.fr>
1608
1609 * src/reader.c (symbols_output): Clean up.
927c1557 1610 * src/output.c (output_gram, output): Clean up.
971d5158 1611
5edafffd
AD
16122001-12-10 Akim Demaille <akim@epita.fr>
1613
1614 * src/lalr.c (initialize_lookaheads): New. Extracted from...
1615 * src/LR0.c (set_state_table): here.
1616 * src/lalr.c (lalr): Call it.
1617
0279f8e9
AD
16182001-12-10 Akim Demaille <akim@epita.fr>
1619
1620 * src/state.h (shifts): Remove the `number' member: shifts are
1621 attached to state, hence no longer need to be labelled with a
1622 state number.
1623
190c4f5f
AD
16242001-12-10 Akim Demaille <akim@epita.fr>
1625
1626 Now that states have a complete set of members, the linked list of
1627 shifts is useless: just fill directly the state's shifts member.
1628
1629 * src/state.h (shifts): Remove the `next' member.
1630 * src/LR0.c (first_state, last_state): Remove.
1631 Adjust the callers.
1632 (augment_automaton): Don't look for the shifts that must be added
1633 a shift on EOF: it is those of the state we looked for! But now,
1634 since shifts are attached, it is no longer needed to looking
1635 merely by its id: its number.
1636
2a73b93d
AD
16372001-12-10 Akim Demaille <akim@epita.fr>
1638
1639 * src/LR0.c (augment_automaton): Better variable locality.
1640 Remove an impossible branch: if there is a state corresponding to
1641 the start symbol being shifted, then there is shift for the start
1642 symbol from the initial state.
1643
74392f6a
AD
16442001-12-10 Akim Demaille <akim@epita.fr>
1645
1646 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
1647 only when appropriate: when insert_start_shifting_state' is not
1648 invoked.
1649 * tests/regression.at (Rule Line Numbers): Adjust.
1650
37c82725
AD
16512001-12-10 Akim Demaille <akim@epita.fr>
1652
1653 * src/LR0.c (augment_automaton): Now that all states have shifts,
1654 merge the two cases addition shifts to the initial state.
1655
6a164e0c
AD
16562001-12-10 Akim Demaille <akim@epita.fr>
1657
1658 * src/lalr.c (set_state_table): Move to...
1659 * src/LR0.c: here.
1660 * src/lalr.c (lalr): Don't call it...
1661 * src/LR0.c (generate_states): do it.
1662 * src/LR0.h (first_state): Remove, only the table is used.
1663
7215de24
AD
16642001-12-10 Akim Demaille <akim@epita.fr>
1665
1666 * src/LR0.h (first_shift, first_reduction): Remove.
1667 * src/lalr.c: Don't use first_shift: find shifts through the
1668 states.
1669
80e25d4d
AD
16702001-12-10 Akim Demaille <akim@epita.fr>
1671
1672 * src/LR0.c: Attach shifts to states as soon as they are
1673 computed.
1674 * src/lalr.c (set_state_table): Instead of assigning shifts to
1675 state, just assert that the mapping was properly done.
1676
0ab3728b
AD
16772001-12-10 Akim Demaille <akim@epita.fr>
1678
1679 * src/LR0.c (insert_start_shift): Rename as...
1680 (insert_start_shifting_state): this.
1681 (insert_eof_shifting_state, insert_accepting_state): New.
1682 (augment_automaton): Adjust.
1683 Better locality of the variables.
1684 When looking if the start_symbol is shifted from the initial
1685 state, using `while (... symbol != start_symbol ...)' sounds
1686 better than `while (... symbol < start_symbol ...)': If fail
1687 to see how the order between symbols could be relevant!
1688
78af9bbc
AD
16892001-12-10 Akim Demaille <akim@epita.fr>
1690
1691 * src/getargs.h: Don't declare `spec_name_prefix' and
1692 `spec_file_prefix', declared by src/files.h.
1693 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
1694 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
1695 * src/output.c (prepare): Adjust.
1696 * src/reader.c (symbols_output): Likewise.
1697 * src/vmsgetargs.c: Vaguely adjust, but who cares?
1698
bdef2a41
AD
16992001-12-10 Akim Demaille <akim@epita.fr>
1700
1701 * src/muscle_tab.c (muscle_init): NULL is a better default than
1702 `"0"'.
1703
3735969c
AD
17042001-12-10 Akim Demaille <akim@epita.fr>
1705
1706 * src/reader.c (reader): Calling symbols_output once is enough.
1707
49701457
AD
17082001-12-10 Akim Demaille <akim@epita.fr>
1709
1710 Now that states have a complete set of members, the linked list of
1711 reductions is useless: just fill directly the state's reductions
1712 member.
1713
1714 * src/state.h (struct reductions): Remove member `number' and
1715 `next'.
1716 * src/LR0.c (first_reduction, last_reduction): Remove.
1717 (save_reductions): Don't link the new reductions, store them in
1718 this_state.
1719 * src/lalr.c (set_state_table): No need to attach reductions to
1720 states, it's already done.
1721 * src/output.c (output_actions): No longer free the shifts, then
1722 the reductions, then the states: free all the states and their
1723 members.
1724
0edad749
AD
17252001-12-10 Akim Demaille <akim@epita.fr>
1726
1727 * src/options.c (OPTN, DRTV, BOTH): New.
1728 (option_table): Use them.
1729
0edad749
AD
1730 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
1731 the job of system.h.
1732 * src/options.c: Don't include stdio.h and xalloc.h for the same
1733 reasons.
1734
5449dd0f
AD
17352001-12-10 Akim Demaille <akim@epita.fr>
1736
1737 * src/output.c (output, prepare): Make sure the values of the
1738 muscles `action' and `prologue' are 0-terminated.
1739
a870c567
AD
17402001-12-10 Akim Demaille <akim@epita.fr>
1741
1742 Clean up GCC warnings.
1743
1744 * src/reader.c (copy_action): `buf' is not used.
1745 (parse_skel_decl): Be static.
1746 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
1747 * src/options.h (create_long_option_table): Have a real prototype.
1748 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
1749 (hash_delete_at): Return const void *.
1750 Adjust casts to preserve the const.
1751
80df8768
AD
17522001-12-10 Akim Demaille <akim@epita.fr>
1753
1754 * configure.in: Require 2.52g.
1755 M4 is not needed, but AUTOM4TE is.
1756 * m4/m4.m4: Remove.
1757 * tests/Makefile.am: Adjust.
1758
f693ad14
AD
17592001-12-10 Akim Demaille <akim@epita.fr>
1760
1761 One structure for states is enough, even though theoretically
1762 there are LR(0) states and LALR(1) states.
1763
1764 * src/lalr.h (state_t): Remove.
1765 (state_table): Be state_t **, not state_t *.
1766 * src/state.h (core, CORE_ALLOC): Rename as...
1767 (state_t, STATE_ALLOC): this.
1768 Add the LALR(1) members: shifts, reductions, errs.
1769 * src/LR0.c (state_table): Rename as...
1770 (state_hash): this, to avoid name clashes with the global
1771 `state_table'.
1772 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
1773 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
1774
74ffbcb6
AD
17752001-12-10 Akim Demaille <akim@epita.fr>
1776
1777 Bison dumps core on bash.y.
1778 Reported by Pascal Bart.
1779
1780 * src/warshall.c (bitmatrix_print): New.
1781 (TC): Use it.
1782 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
1783 j must be the outer loop.
1784 * tests/regression.at (Broken Closure): New.
1785
07708e19
AD
17862001-12-05 Akim Demaille <akim@epita.fr>
1787
1788 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
1789 its argument.
1790