]> git.saurik.com Git - bison.git/blame - ChangeLog
* src/gram.h (item_number_t): New, the type of item numbers in
[bison.git] / ChangeLog
CommitLineData
62a3e4f0
AD
12002-04-08 Akim Demaille <akim@epita.fr>
2
3 * src/gram.h (item_number_t): New, the type of item numbers in
4 RITEM. Note that it must be able to code symbol numbers as
5 positive number, and the negation of rule numbers as negative
6 numbers.
7 Adjust all dependencies (pretty many).
8 * src/reduce.c (rule): Remove this `short *' pointer: use
9 item_number_t.
10 * src/system.h (MINSHORT, MAXSHORT): Remove.
11 Include `limits.h'.
12 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
13 (shortcpy): Remove.
14 (MAXTABLE): Move to...
15 * src/output.c (MAXTABLE): here.
16 (prepare_rules): Use output_int_table to output rhs.
17 * data/bison.simple, data/bison.c++: Adjust.
18 * tests/torture.at (Big triangle): Move the limit from 254 to
19 500.
20 * tests/regression.at (Web2c Actions): Ajust.
21
22 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
23 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
24 passes, but produces negative #line number, once fixed, GCC is
25 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
26 C), it passes.
27 * src/state.h (state_h): Code input lines on ints, not shorts.
28
bb88b0fc
AD
292002-04-08 Akim Demaille <akim@epita.fr>
30
31 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
32 and then the grammar.
33
34
9a636f47
AD
352002-04-08 Akim Demaille <akim@epita.fr>
36
37 * src/system.h: No longer using strndup.
38
39
680e8701
AD
402002-04-07 Akim Demaille <akim@epita.fr>
41
42 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
43 * src/output.c (output_table_data): Return the longest number.
44 (prepare_tokens): Output `token_number_max').
45 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
46 New.
47 Use them to define yy_token_number_type/TokenNumberType.
48 Use this type for yytranslate.
49 * tests/torture.at (Big triangle): Push the limit from 124 to
50 253.
51 * tests/regression.at (Web2c Actions): Adjust.
52
817e9f41
AD
532002-04-07 Akim Demaille <akim@epita.fr>
54
55 * tests/torture.at (Big triangle): New.
56 (GNU AWK Grammar, GNU Cim Grammar): Move to...
57 * tests/existing.at: here.
58
5123689b
AD
592002-04-07 Akim Demaille <akim@epita.fr>
60
61 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
62 nritems.
63 Adjust dependencies.
64
f3849179
AD
652002-04-07 Akim Demaille <akim@epita.fr>
66
67 * src/reader.c: Normalize increments to prefix form.
68
bd02036a
AD
692002-04-07 Akim Demaille <akim@epita.fr>
70
71 * src/reader.c, symtab.c: Remove debugging code.
72
db8837cb
AD
732002-04-07 Akim Demaille <akim@epita.fr>
74
75 Rename all the `bucket's as `symbol_t'.
76
77 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
78 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
79 * src/symtab.c, src/symtab.h (bucket): Rename as...
80 (symbol_t): this.
81 (symbol_list_new, bucket_check_defined, bucket_make_alias)
82 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
83 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
84 (buckets_new, buckets_free, buckets_do): Rename as...
85 (symbol_list_new, symbol_check_defined, symbol_make_alias)
86 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
87 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
88 (symbols_new, symbols_free, symbols_do): these.
89
72a23c97
AD
902002-04-07 Akim Demaille <akim@epita.fr>
91
92 Use lib/hash for the symbol table.
93
94 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
95 EOF.
96 * src/lex.c (lex): Set the `number' member of new terminals.
97 * src/reader.c (bucket_check_defined, bucket_make_alias)
98 (bucket_check_alias_consistence, bucket_translation): New.
99 (reader, grammar_free, readgram, token_translations_init)
100 (packsymbols): Adjust.
101 (reader): Number the predefined tokens.
102 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
103 for predefined tokens.
104 * src/symtab.h (bucket): Remove all the hash table related
105 members.
106 * src/symtab.c (symtab): Replace by...
107 (bucket_table): this.
108 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
109 (buckets_new, buckets_do): New.
110
280a38c3
AD
1112002-04-07 Akim Demaille <akim@epita.fr>
112
113 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
114 (start_symbol, max_user_token_number, semantic_parser)
115 (error_token_number): Initialize.
116 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
117 Initialize.
118 (reader): Don't.
119 (errtoken, eoftoken, undeftoken, axiom): Extern.
120
03b31c0c
AD
1212002-04-07 Akim Demaille <akim@epita.fr>
122
123 * src/gram.h (rule_s): prec and precsym are now pointers
124 to the bucket giving the priority/associativity.
125 Member `associativity' removed: useless.
126 * src/reduce.c, src/conflicts.c: Adjust.
127
8b3df748
AD
1282002-04-07 Akim Demaille <akim@epita.fr>
129
130 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
131 Properly escape the symbols' TAG when outputting them.
132
e601aa1d
AD
1332002-04-07 Akim Demaille <akim@epita.fr>
134
135 * src/lalr.h (LA): Is a bitsetv, not bitset*.
136
b0299a2e
AD
1372002-04-07 Akim Demaille <akim@epita.fr>
138
139 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
140 (LArule): this, which is an array to rule_t*.
141 * src/print.c, src/conflicts.c: Adjust.
142
d7e1f00c
AD
1432002-04-07 Akim Demaille <akim@epita.fr>
144
145 * src/gram.h (rule_t): Rename `number' as `user_number'.
146 `number' is a new member.
147 Adjust dependencies.
148 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
149
cc9305dd
AD
1502002-04-07 Akim Demaille <akim@epita.fr>
151
152 As a result of the previous patch, it is no longer needed
153 to reorder ritem itself.
154
155 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
156
b0940840
AD
1572002-04-07 Akim Demaille <akim@epita.fr>
158
159 Be sure never to walk through RITEMS, but use only data related to
160 the rules themselves. RITEMS should be banished.
161
162 * src/output.c (output_token_translations): Rename as...
163 (prepare_tokens): this.
164 In addition to `translate', prepare the muscles `tname' and
165 `toknum', which were handled by...
166 (output_rule_data): this.
167 Remove, and move the remainder of its outputs into...
168 (prepare_rules): this new routines, which also merges content from
169 (output_gram): this.
170 (prepare_rules): Be sure never to walk through RITEMS.
171 (output_stos): Rename as...
172 (prepare_stos): this.
173 (output): Always invoke prepare_states, after all, just don't use it
174 in the output if you don't need it.
175
643a5994
AD
1762002-04-07 Akim Demaille <akim@epita.fr>
177
178 * src/LR0.c (new_state): Display `nstates' as the name of the
179 newly created state.
180 Adjust to initialize first_state and last_state if needed.
181 Be sure to distinguish the initial from the final state.
182 (new_states): Create the itemset of the initial state, and use
183 new_state.
184 * src/closure.c (closure): Now that the initial state has its
185 items properly set, there is no need for a special case when
186 creating `ruleset'.
187
188 As a result, now the rule 0, reducing to $axiom, is visible in the
189 outputs. Adjust the test suite.
190
191 * tests/conflicts.at (Solved SR Conflicts)
192 (Unresolved SR Conflicts): Adjust.
193 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
194 * tests/conflicts.at (S/R in initial): New.
195
b4c4ccc2
AD
1962002-04-07 Akim Demaille <akim@epita.fr>
197
198 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
199 the RHS of the rules.
200 * src/output.c (output_gram): Likewise.
201
bba97eb2
AD
2022002-04-07 Akim Demaille <akim@epita.fr>
203
204 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
205 bucket.
206 Adjust all dependencies.
207 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
208 `number' of the buckets too.
209 * src/gram.h: Include `symtab.h'.
210 (associativity): Move to...
211 * src/symtab.h: here.
212 No longer include `gram.h'.
213
c3b407f4
AD
2142002-04-07 Akim Demaille <akim@epita.fr>
215
216 * src/gram.h, src/gram.c (rules_rhs_length): New.
217 (ritem_longest_rhs): Use it.
218 * src/gram.h (rule_t): `number' is a new member.
219 * src/reader.c (packgram): Set it.
220 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
221 the end of `rules', and count them out of `nrules'.
222 (reduce_output, dump_grammar): Adjust.
223 * src/print.c (print_grammar): It is no longer needed to check for
224 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
225 * tests/reduce.at (Reduced Automaton): New test.
226
11652ab3
AD
2272002-04-07 Akim Demaille <akim@epita.fr>
228
229 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
230 lacking `+ 1' to nrules, Bison reported as useless a token if it
231 was used solely to set the precedence of the last rule...
232
26b23c1a
AD
2332002-04-07 Akim Demaille <akim@epita.fr>
234
235 * data/bison.c++, data/bison.simple: Don't output the current file
236 name in #line, to avoid useless diffs between two identical
237 outputs under different names.
238
18bcecb0
AD
2392002-04-07 Akim Demaille <akim@epita.fr>
240
241 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
242 Normalize loops to using `< nrules + 1', not `<= nrules'.
243
fa770c86
AD
2442002-04-07 Akim Demaille <akim@epita.fr>
245
246 * TODO: Update.
247
d9b739c3
AD
2482002-04-07 Akim Demaille <akim@epita.fr>
249
250 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
251 bucket.value as bucket.number.
252
99013900
AD
2532002-04-07 Akim Demaille <akim@epita.fr>
254
255 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
256 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
257 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
258 RHS, instead of being an index in RITEMS.
259
e966383b
PE
2602002-04-04 Paul Eggert <eggert@twinsun.com>
261
262 * doc/bison.texinfo: Update copyright date.
263 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
264 (Symbols): Warn about running Bison in one character set,
265 but compiling and/or running in an incompatible one.
266 Warn about character code 256, too.
267
2682002-04-03 Paul Eggert <eggert@twinsun.com>
269
270 * src/bison.data (YYSTACK_ALLOC): Depend on whether
271 YYERROR_VERBOSE is nonzero, not whether it is defined.
272
273 Merge changes from bison-1_29-branch.
c307773e 274
8d6c48b9
PE
2752002-03-20 Paul Eggert <eggert@twinsun.com>
276
277 Merge fixes from Debian bison_1.34-1.diff.
278
279 * configure.in (AC_PREREQ): 2.53.
280
e53c6322
AD
2812002-03-20 Akim Demaille <akim@epita.fr>
282
283 * src/conflicts.c (log_resolution): Argument `resolution' is const.
284
9ffbeca7
PE
2852002-03-19 Paul Eggert <eggert@twinsun.com>
286
21db0b2a
PE
287 * src/bison.simple (YYCOPY): New macro.
288 (YYSTACK_RELOCATE): Use it.
289 Remove Type arg; no longer needed. All callers changed.
290 (yymemcpy): Remove; no longer needed.
291
9ffbeca7
PE
292 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
293 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
294
642cb8f8
AD
2952002-03-19 Akim Demaille <akim@epita.fr>
296
297 Test and fix the #line outputs.
298
299 * tests/atlocal.at (GCC): New.
300 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
301 (Prologue synch line, ,%union synch line, Postprologue synch line)
302 (Action synch line, Epilogue synch line): New tests.
303 * src/reader.c (parse_union_decl): Define the muscle stype_line.
304 * data/bison.simple, data/bison.c++: Use it.
305
3c31a486
AD
3062002-03-19 Akim Demaille <akim@epita.fr>
307
308 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
309 (Solved SR Conflicts, %expect not enough, %expect right)
310 (%expect too much): Move to...
311 * tests/conflicts.at: this new file.
312
0d8bed56
AD
3132002-03-19 Akim Demaille <akim@epita.fr>
314
315 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
316 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
317 that we can move to enums for instance.
318 * src/output.c (token_definitions_output): Output a list of
319 `token-name, token-number' instead of the #define.
320 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
321
9208d17f
AD
3222002-03-14 Akim Demaille <akim@epita.fr>
323
324 Use Gettext 0.11.1.
325
af27eacb
RA
3262002-03-09 Robert Anisko <robert@lrde.epita.fr>
327
328 * data/bison.c++: Make the user able to add members to the generated
329 parser by subclassing.
330
9101a310
RA
3312002-03-05 Robert Anisko <robert@lrde.epita.fr>
332
333 * src/reader.c (read_additionnal_code): `c' should be an integer, not
334 a character.
335 Reported by Nicolas Tisserand and Nicolas Burrus.
336
fff9bf0b
RA
3372002-03-04 Robert Anisko <robert@lrde.epita.fr>
338
339 * src/reader.c: Warn about lacking semi-colons, do not complain.
340
64dba31e
RA
3412002-03-04 Robert Anisko <robert@lrde.epita.fr>
342
343 * data/bison.c++: Remove a debug line.
344
374f5a14
RA
3452002-03-04 Robert Anisko <robert@lrde.epita.fr>
346
347 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
348 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
349 provide a default implementation.
350
bfcf1f3a
AD
3512002-03-04 Akim Demaille <akim@epita.fr>
352
353 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
354 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
355 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
356 * tests/semantic.at (Parsing Guards): Similarly.
357 * src/reader.at (readgram): Complain if the last rule is not ended
358 with a semi-colon.
359
65ccf9fc
AD
3602002-03-04 Akim Demaille <akim@epita.fr>
361
362 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
363 * src/closure.c: here.
364 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
365 RTC.
366 * src/warshall.h, src/warshall.c: Remove.
367 * tests/sets.at (Broken Closure): Adjust.
368
d0039cbc
AD
3692002-03-04 Akim Demaille <akim@epita.fr>
370
371 * src/output.c (output_skeleton): tempdir is const.
372 bytes_read is unused.
373
345cea78
AD
3742002-03-04 Akim Demaille <akim@epita.fr>
375
376 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
377 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
378 Update.
379 From Michael Hayes.
380
564801f7
AD
3812002-03-04 Akim Demaille <akim@epita.fr>
382
383 * src/closure.c (closure): `r' is unused.
384
e5352bc7
AD
3852002-03-04 Akim Demaille <akim@epita.fr>
386
387 * tests/sets.at (Broken Closure): Add the ending `;'.
388 * src/reader.at (readgram): Complain if a rule is not ended with a
389 semi-colon.
390
914feea9
AD
3912002-03-04 Akim Demaille <akim@epita.fr>
392
393 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
394 (count_sr_conflicts): Use bitset_count.
395 * src/reduce.c (inaccessable_symbols): Ditto.
396 (bits_size): Remove.
397 * src/warshall.h, src/warshall.c: Convert to bitsetv.
398
f0250de6
AD
3992002-03-04 Akim Demaille <akim@epita.fr>
400
401 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
402 * src/reduce.c: Remove the `bitset_zero's following the
403 `bitset_create's, as now it is performed by the latter.
404
ef017502
AD
4052002-03-04 Akim Demaille <akim@epita.fr>
406
407 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
408 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
409 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
410 latest sources from Michael.
411
76514394
AD
4122002-03-04 Akim Demaille <akim@epita.fr>
413
414 * src/output.c (output): Don't free the grammar.
415 * src/reader.c (grammar_free): New.
416 * src/main.c (main): Call it and don't free symtab here.
417
55024580
AD
4182002-03-04 Akim Demaille <akim@epita.fr>
419
420 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
421 before returning.
422 Reported by Benoit Perrot.
423
f9abaa2c
AD
4242002-03-04 Akim Demaille <akim@epita.fr>
425
426 Use bitset operations when possible, not loops over bits.
427
428 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
429 bitset_or.
430 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
431 * src/reduce.c (useless_nonterminals): Formatting changes.
432 * src/warshall.c (TC): Use bitset_or.
433
0e721e75
AD
4342002-03-04 Akim Demaille <akim@epita.fr>
435
436 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
437 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
438 Ditto.
439
0fb1ffb1
AD
4402002-03-04 Akim Demaille <akim@epita.fr>
441
442 * src/lalr.c (F): Now a bitset*.
443 Adjust all dependencies.
444
b86796bf
AD
4452002-03-04 Akim Demaille <akim@epita.fr>
446
447 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
448 Adjust all dependencies.
449
602bbf31
AD
4502002-03-04 Akim Demaille <akim@epita.fr>
451
452 * src/L0.c, src/LR0.h (nstates): Be size_t.
453 Adjust comparisons (signed vs unsigned).
454 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
455 bitset*.
456 Adjust all dependencies.
457
d8a0245c
AD
4582002-03-04 Akim Demaille <akim@epita.fr>
459
460 * src/closure.c (firsts): Now, also a bitset.
461 Adjust all dependencies.
462 (varsetsize): Remove, now unused.
463 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
464
34ba9743
AD
4652002-03-04 Akim Demaille <akim@epita.fr>
466
467 * src/print.c: Convert to use bitset.h, not hand coded iterations
468 over ints.
469
ed86e78c
AD
4702002-03-04 Akim Demaille <akim@epita.fr>
471
472 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
473
dfdb1797
AD
4742002-03-04 Akim Demaille <akim@epita.fr>
475
476 * src/closure.c (ruleset): Be a bitset.
477 (rulesetsize): Remove.
478
7086e707
AD
4792002-03-04 Akim Demaille <akim@epita.fr>
480
481 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
482 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
483 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
484 * src/closure.c (fderives): Be an array of bitsets.
485
98254360
RA
4862002-02-28 Robert Anisko <robert@lrde.epita.fr>
487
488 * data/bison.c++: Merge the two generated headers. Insert a copyright
489 notice in each output file.
490
a75c057f
AD
4912002-02-28 Akim Demaille <akim@epita.fr>
492
493 * data/bison.c++: Copy the prologue of bison.simple to fetch
494 useful M4 definitions, such as b4_header_guard.
495
06b00abc
AD
4962002-02-25 Akim Demaille <akim@epita.fr>
497
498 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
499 translator friendly scheme for the bgr
500 copyright notice.
06b00abc 501
70e7d534
AD
5022002-02-25 Akim Demaille <akim@epita.fr>
503
504 * src/output.c (header_output): Remove, now handled completely via
505 M4.
506
abe017f6
AD
5072002-02-25 Akim Demaille <akim@epita.fr>
508
509 * m4/m4.m4: New, from CVS Autoconf.
510 * configure.in: Invoke it.
511 * src/output.c (output_skeleton): Use its result instead of the
512 hard coded name.
513
381fb12e
AD
5142002-02-25 Akim Demaille <akim@epita.fr>
515
516 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
517 Fileutils 4.1.5.
518 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
519 * src/output.c (output_skeleton): Use mkstemp to create a real
520 temporary file.
521 Move the filling of `skeleton' and its muscle to...
522 (prepare): here.
523 (output): Move the definition of the prologue muscle to...
524 (prepare): here.
525 * src/system.h (DEFAULT_TMPDIR): New.
526
6f38107f
PE
5272002-02-14 Paul Eggert <eggert@twinsun.com>
528
529 Remove the support for C++ namespace cleanliness; it was
530 causing more problems than it was curing, since it didn't work
531 properly on some nonstandard C++ compilers. This can wait
532 for a proper C++ parser.
533
534 * NEWS: Document this.
535 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
536 of C++, as it's treated like C now.
537 * src/bison.simple (YYSTD): Remove.
538 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
539 Treat C++ just like Standard C instead of trying to support
540 namespace cleanliness.
541
80cce3da
AD
5422002-02-14 Akim Demaille <akim@epita.fr>
543
544 * tests/regression.at (else): Adjust to Andreas' change.
545
842e8679
AD
5462002-02-14 Akim Demaille <akim@epita.fr>
547
548 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
549
4bda3f10
AD
5502002-02-13 Andreas Schwab <schwab@suse.de>
551
552 * src/output.c (output_rule_data): Don't output NULL, it might
553 not be defined yet.
554
4162fa07 5552002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 556
4162fa07
RA
557 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
558 (Copyright notice): Update.
b418ecd8 559
bd16a5dc
AD
5602002-02-11 Akim Demaille <akim@epita.fr>
561
562 * tests/regression.at (%nonassoc and eof): Don't include
563 nonportable headers.
564
8d69a1a3
RA
5652002-02-08 Robert Anisko <robert@lrde.epita.fr>
566
567 * data/bison.c++: Correct error recovery. Make the user able to
568 initialize the starting location.
569
9b2d0677
AD
5702002-02-07 Akim Demaille <akim@epita.fr>
571
572 * tests/input.at: New.
573
69e2658b
RA
5742002-02-07 Robert Anisko <robert@lrde.epita.fr>
575
576 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 577 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
578 directives around tables only needed for debugging.
579
4aacc3a7
RA
5802002-02-07 Robert Anisko <robert@lrde.epita.fr>
581
582 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
583 C++ parsers.
584 (yy::b4_name::parse): Use print_.
585
762a801e
RA
5862002-02-07 Robert Anisko <robert@lrde.epita.fr>
587
588 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
589
4bb2bc3f
RA
5902002-02-07 Robert Anisko <robert@lrde.epita.fr>
591
592 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
593 C++ parsers.
594 (yy::b4_name::parse): Build verbose error messages, and use error_.
595
6b45a3ca
RA
5962002-02-06 Robert Anisko <robert@lrde.epita.fr>
597
598 * data/bison.c++: Fix m4 quoting in comments.
599
50997c6e
RA
6002002-02-06 Robert Anisko <robert@lrde.epita.fr>
601
602 * data/bison.c++: Adjust the parser code. Fix some muscles that were
603 not expanded by m4.
604
3f3eed27
AD
6052002-02-05 Akim Demaille <akim@epita.fr>
606
607 * data/bison.c++: Adjust to the M4 back end.
608 More is certainly needed.
609
be2a1a68
AD
6102002-02-05 Akim Demaille <akim@epita.fr>
611
612 Give a try to M4 as a back end.
613
614 * lib/readpipe.c: New, from wdiff.
615 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
616 BISON_HAIRY.
617 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
618 specific values. Now it is m4 that performs the lookup.
619 * src/parse-skel.y: Remove.
620 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
621 * src/output.c (actions_output, guards_output)
622 (token_definitions_output): No longer keeps track of the output
623 line number, hence remove the second argument.
624 (guards_output): Check against the guard member of a rule, not the
625 action member.
626 Adjust callers.
627 (output_skeleton): Don't look for the skeleton location, let m4 do
628 that.
629 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
630 file will be used.
631 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
632 (prepare): Given that for the time being changesyntax is not
633 usable in M4, rename the muscles using `-' to `_'.
634 Define `defines_flag', `output_parser_name' and `output_header_name'.
635 * src/output.h (actions_output, guards_output)
636 (token_definitions_output): Adjust prototypes.
637 * src/scan-skel.l: Instead of scanning the skeletons, it now
638 processes the output of m4: `__oline__' and `#output'.
639 * data/bison.simple: Adjust to be used by M4(sugar).
640 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
641 to date.
642 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
643 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
644 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
645 shamelessly stolen from CVS Autoconf.
646
beda758b
AD
6472002-02-05 Akim Demaille <akim@epita.fr>
648
649 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
650 * configure.in: Check for the declarations of free and malloc.
651 * src/muscle_tab.c: Adjust.
652
5ece6d43
AD
6532002-02-05 Akim Demaille <akim@epita.fr>
654
655 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
656 which have no values.
657
5bb18f9a
AD
6582002-02-05 Akim Demaille <akim@epita.fr>
659
660 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
661 * data/: here.
662
894dd62e
PE
6632002-01-29 Paul Eggert <eggert@twinsun.com>
664
665 * src/bison.simple (YYSIZE_T): Do not define merely because
666 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
667 On some platforms, <alloca.h> does not declare YYSTD (size_t).
668
82841af7
AD
6692002-01-27 Akim Demaille <akim@epita.fr>
670
671 Fix `%nonassoc and eof'.
672
673 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
674 which were not properly copied! Replace
675 memcpy (res->errs, src->errs, src->nerrs);
676 with
677 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
678 !!!
679 * tests/regression.at (%nonassoc and eof): Adjust to newest
680 Autotest: `.' is not in the PATH.
681
318b76e9
AD
6822002-01-27 Akim Demaille <akim@epita.fr>
683
684 * tests/sets.at (AT_EXTRACT_SETS): New.
685 (Nullable): Use it.
686 (Firsts): New.
687
30d2f3d5
AD
6882002-01-26 Akim Demaille <akim@epita.fr>
689
690 * tests/actions.at, tests/calc.at, tests/headers.at,
691 * tests/torture.at: Adjust to the newest Autotest which no longer
692 forces `.' in the PATH.
693
30f8c395
AD
6942002-01-25 Akim Demaille <akim@epita.fr>
695
696 * tests/regression.at (%nonassoc and eof): New.
697 Suggested by Robert Anisko.
698
29ae55f1
AD
6992002-01-24 Akim Demaille <akim@epita.fr>
700
701 Bison dumps core when trying to complain about broken input files.
702 Reported by Cris van Pelt.
703
704 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
705 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
706 into...
707 (Invalid inputs): Strengthen: exercise parse_percent_token.
708
2b548aa6
RA
7092002-01-24 Robert Anisko <robert.anisko@epita.fr>
710
711 * src/Makefile.am: Add bison.c++.
712 * src/bison.c++: New skeleton.
713
bb0146c2
AD
7142002-01-21 Paolo Bonzini <bonzini@gnu.org>
715
716 * po/it.po: New.
717
bec30531
AD
7182002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
719
720 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
721
fc6edc45
MA
7222002-01-20 Marc Autret <marc@gnu.org>
723
724 * src/files.c (compute_output_file_names): Fix
725
5e5d5415
MA
7262002-01-20 Marc Autret <marc@gnu.org>
727
728 * tests/output.at: New test.
729 * src/files.c (compute_base_names): Don't map extensions when
730 the YACC flag is set, use defaults.
731 Reported by Evgeny Stambulchik.
732
44ea3fbd
MA
7332002-01-20 Marc Autret <marc@gnu.org>
734
bb0146c2 735 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
736 compilers as well (i.e. the vendor C compiler).
737 Suggested by Albert Chin-A-Young.
738
338963d1
TVH
7392002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
740
741 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
742 canonical definition.
743 * src/system.h: Use the canonical definition for PARAMS (avoids
744 a conflict with the macro from lib/hash.h).
745
c57b2479
AD
7462002-01-11 Akim Demaille <akim@epita.fr>
747
748 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 749 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 750
b85810ae
AD
7512002-01-09 Akim Demaille <akim@epita.fr>
752
753 * src/files.c, src/files.h (output_infix): New.
754 (tab_extension): Remove.
755 (compute_base_names): Compute the former, drop the latter.
756 * src/output.c (prepare): Insert the muscles `output-infix', and
757 `output-suffix'.
758 * src/parse-skel.y (string, string.1): New.
759 (section.header): Use it.
760 (section.yacc): Remove.
761 (prefix): Remove too.
762 * src/scan-skel.l: Adjust.
763 * src/bison.simple, src/bison.hairy: Adjust.
764
cae60122
AD
7652002-01-09 Akim Demaille <akim@epita.fr>
766
767 * configure.in (WERROR_CFLAGS): Compute it.
768 * src/Makefile.am (CFLAGS): Pass it.
769 * tests/atlocal.in (CFLAGS): Idem.
770 * src/files.c: Fix a few warnings.
771 (get_extension_index): Remove, unused.
772
ae404801
AD
7732002-01-08 Akim Demaille <akim@epita.fr>
774
775 * src/getargs.c (AS_FILE_NAME): New.
776 (getargs): Use it to convert DOSish file names.
777 * src/files.c (base_name): Rename as full_base_name to avoid
778 clashes with `base_name ()'.
779 (filename_split): New.
780 (compute_base_names): N-th rewrite, using filename_split.
781
22312b71
AD
7822002-01-08 Akim Demaille <akim@epita.fr>
783
784 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
785 New, stolen from the Fileutils 4.1.
786 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
787 * configure.in: Check for the presence of memrchr, and of its
788 prototype.
789
a67cef01
TVH
7902002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
791
792 * lib/hash.h (__P): Added definition for this macro.
793 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
794 BUILT_SOURCES, to ensure they are generated first.
795 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
796 %error-verbose to allow bootstrapping with bison 1.30x.
797
2b25d624
AD
7982002-01-06 Akim Demaille <akim@epita.fr>
799
800 * src/reader.c (parse_braces): Don't fetch the next char, the
801 convention is to fetch on entry.
802 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
803 'switch' without a following semicolon.
804 * tests/regression.at (braces parsing): New.
805
3460813b
AD
8062002-01-06 Akim Demaille <akim@epita.fr>
807
808 Bison is dead wrong in its RR conflict reports.
809
810 * tests/torture.at (GNU Cim Grammar): New.
811 * src/conflicts.c (count_rr_conflicts): Fix.
812
73784c64
AD
8132002-01-06 Akim Demaille <akim@epita.fr>
814
815 Creating package.m4 from configure.ac causes too many problems.
816
817 * tests/Makefile.am (package.m4): Create it by hand,
818 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
819
25d81090
AD
8202002-01-06 Akim Demaille <akim@epita.fr>
821
822 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
823 skeleton.h.
824
a9b8959e
PE
8252002-01-04 Paul Eggert <eggert@twinsun.com>
826
827 * doc/bison.texinfo (Debugging):
828 Remove YYSTDERR; it's no longer defined or used.
829 Also, s/cstdio.h/cstdio/.
830
25d81090
AD
8312002-01-03 Akim Demaille <akim@epita.fr>
832
833 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
834
1109455c
AD
8352002-01-03 Akim Demaille <akim@epita.fr>
836
837 * src/parse-skel.y (process_skeleton): Don't bind the parser's
838 tracing code to --trace, wait for a better --trace option, with
839 args.
840
7ea5e977
AD
8412002-01-03 Akim Demaille <akim@epita.fr>
842
843 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
844 The ISO C++ standard is extremely clear about it: stderr is
845 considered a macro, not a regular symbol (see table 94 `Header
846 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
847 Therefore std:: does not apply to it. It still does with fprintf.
848 Also, s/cstdio.h/cstdio/.
849
fab5b110
AD
8502002-01-03 Akim Demaille <akim@epita.fr>
851
852 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
853 for non system headers.
854
aed7fd9b
AD
8552002-01-02 Akim Demaille <akim@epita.fr>
856
857 Equip the skeleton chain with location tracking, runtime trace,
858 pure parser and scanner.
859
860 * src/parse-skel.y: Request a pure parser, locations, and prefix
861 renaming.
862 (%union): Having several members with the same type does not help
863 type mismatches, simplify.
864 (YYPRINT, yyprint): New.
865 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
866 (skel_error): this.
867 Handle locations.
868 * src/scan-skel.l: Adjust to these changes.
869 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
870 (LOCATION_PRINT, skel_control_t): New.
871
24fad99e
AD
8722001-12-30 Akim Demaille <akim@epita.fr>
873
874 * src/parse-skel.y: Get rid of the shift/reduce conflict:
875 replace `gb' with BLANKS.
876 * src/scan-skel.l: Adjust.
877
a4b36db4
AD
8782001-12-30 Akim Demaille <akim@epita.fr>
879
880 * src/system.h: We don't need nor want bcopy.
881 Throw away MS-DOS crap: we don't need getpid.
882 * configure.in: We don't need strndup. It was even causing
883 problems: because Flex includes the headers *before* us,
884 _GNU_SOURCE is not defined by config.h, and therefore strndup was
885 not visible.
886 * lib/xstrndup.c: New.
887 * src/scan-skel.l: Use it.
888 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
889 * src/parse-skel.y: Use %directives instead of #defines.
890
1239777d
AD
8912001-12-30 Akim Demaille <akim@epita.fr>
892
893 * src/skeleton.h: New.
894 * src/output.c (output_parser, output_master_parser): Remove, dead
895 code.
896 * src/output.h (get_lines_number, actions_output, guards_output)
897 (token_definitions_output): Prototype them.
898 * src/parse-skel.y: Add the license notice.
899 Include output.h and skeleton.h.
900 (process_skeleton): Returns void, and takes a single parameter.
901 * src/scan-skel.l: Add the license notice.
902 Include skeleton.h.
903 Don't use %option yylineno: it seems that then Flex imagines
904 REJECT has been used, and therefore it won't reallocate its
905 buffers (which makes no other sense to me than a bug). It results
906 in warnings for `unused: yy_flex_realloc'.
907
9b3add5b
RA
9082001-12-30 Robert Anisko <robert.anisko@epita.fr>
909
910 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
911 (MUSCLE_INSERT_PREFIX): ...to there.
912 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
913 (MUSCLE_INSERT_PREFIX): Move from here...
914
915 * src/bison.hairy: Add a section directive. Put braces around muscle
916 names. This parser skeleton is still broken, but Bison should not
917 choke on a bad muscle 'syntax'.
918 * src/bison.simple: Add a section directive. Put braces around muscle
919 names.
920
921 * src/files.h (strsuffix, stringappend): Add declarations.
922 (tab_extension): Add declaration.
923 (short_base_name): Add declaration.
924
925 * src/files.c (strsuffix, stringappend): No longer static. These
926 functions are used in the skeleton parser.
927 (tab_extension): New.
928 (compute_base_names): Use the computations done in this function
fab5b110 929 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
930 names.
931 (short_base_name): No longer static.
932
933 * src/output.c (output_skeleton): New.
934 (output): Disable call to output_master_parser, and give a try to
935 a new skeleton handling system.
936 (guards_output, actions_output): No longer static.
937 (token_definitions_output, get_lines_number): No longer static.
938
939 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
940
fab5b110 941 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
942 parse-skel.y.
943
944 * src/parse-skel.y: New file.
945 * src/scan-skel.l: New file.
946
b5b61c61
AD
9472001-12-29 Akim Demaille <akim@epita.fr>
948
949 %name-prefix is broken.
950
951 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
952 Adjust all dependencies.
953 * tests/headers.at (export YYLTYPE): Strengthen this test: use
954 %name-prefix.
955
956 Renaming yylval but not yylloc is not consistent. Now we do.
957
958 * src/bison.simple: Prefix yylloc if used.
959 * doc/bison.texinfo (Decl Summary): Document that.
960
8c9a50be
AD
9612001-12-29 Akim Demaille <akim@epita.fr>
962
963 * doc/bison.texinfo: Promote `%long-directive' over
964 `%long_directive'.
965 Remove all references to fixed-output-files, yacc is enough.
966
d99361e6
AD
9672001-12-29 Akim Demaille <akim@epita.fr>
968
969 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
970 user prologue. These are defaults.
971 * tests/actions.at (Mid-rule actions): Make sure the user can
972 define YYDEBUG and YYERROR_VERBOSE.
973
b9cecb91
AD
9742001-12-29 Akim Demaille <akim@epita.fr>
975
976 * src/output.c (header_output): Don't forget to export YYLTYPE and
977 yylloc.
978 * tests/headers.at (export YYLTYPE): New, make sure it does.
979 * tests/regression.at (%union and --defines, Invalid CPP headers):
980 Move to...
981 * tests/headers.at: here.
982
aea13e97
AD
9832001-12-29 Akim Demaille <akim@epita.fr>
984
985 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
986
931394cb
AD
9872001-12-29 Akim Demaille <akim@epita.fr>
988
989 * tests/actions.at (Mid-rule actions): Output on a single line
990 instead of several.
991
704a47c4
AD
9922001-12-29 Akim Demaille <akim@epita.fr>
993
994 * doc/bison.texinfo: Formatting changes.
995
091e20bb
AD
9962001-12-29 Akim Demaille <akim@epita.fr>
997
998 Don't store the token defs in a muscle, just be ready to output it
999 on command. Now possible via `symbols'. Fixes a memory leak.
1000
1001 * src/output.c (token_definitions_output): New.
1002 (output_parser, header_output): Use it.
1003 * src/reader.c (symbols_save): Remove.
1004
cce71710
AD
10052001-12-29 Akim Demaille <akim@epita.fr>
1006
1007 * src/bison.simple: Do not provide a default for YYSTYPE and
1008 YYLTYPE before the user's prologue. Otherwise it's hardly... a
1009 default.
1010
82c035a8
AD
10112001-12-29 Akim Demaille <akim@epita.fr>
1012
1013 Mid-rule actions are simply... ignored!
1014
1015 * src/reader.c (readgram): Be sure to attach mid-rule actions to
1016 the empty-rule associated to the dummy symbol, not to the host
1017 rule.
1018 * tests/actions.at (Mid-rule actions): New.
1019
8419d367
AD
10202001-12-29 Akim Demaille <akim@epita.fr>
1021
1022 Memory leak.
1023
1024 * src/reader.c (reader): Free grammar.
1025
375d5806
AD
10262001-12-29 Akim Demaille <akim@epita.fr>
1027
1028 Memory leak.
1029
1030 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
1031 since it allocates it for each state, although only one is needed.
1032 (allocate_storage): Do it here.
1033
f51cb8ff
AD
10342001-12-29 Akim Demaille <akim@epita.fr>
1035
1036 * src/options.h, src/options.c (create_long_option_table): Rename
1037 as...
1038 (long_option_table_new): this, with a clearer prototype.
1039 (percent_table): Remove, unused,
1040 * src/getargs.c (getargs): Adjust.
1041
29e88316
AD
10422001-12-29 Akim Demaille <akim@epita.fr>
1043
1044 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
1045 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
1046 as states.
1047
b9f71f19
AD
10482001-12-29 Akim Demaille <akim@epita.fr>
1049
1050 * src/lalr.c (build_relations): Rename `states' as `states1'.
1051 Sorry, I don't understand exactly what it is, no better name...
1052
1a2b5d37
AD
10532001-12-29 Akim Demaille <akim@epita.fr>
1054
1055 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
1056 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
1057 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
1058 as rules.
1059
1cca533e
AD
10602001-12-29 Akim Demaille <akim@epita.fr>
1061
1062 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
1063 ago.
1064
c03ae966
AD
10652001-12-29 Akim Demaille <akim@epita.fr>
1066
1067 * src/reader.c, src/reader.h (user_toknums): Remove.
1068 Adjust all users to use symbols[i]->user_token_number.
1069
5a670b1e
AD
10702001-12-29 Akim Demaille <akim@epita.fr>
1071
1072 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
1073 Adjust all users to use symbols[i]->prec or ->assoc.
1074
ad949da9
AD
10752001-12-29 Akim Demaille <akim@epita.fr>
1076
1077 * src/reader.c, src/reader.h (tags): Remove.
1078 Adjust all users to use symbols[i]->tag.
1079
0e78e603
AD
10802001-12-29 Akim Demaille <akim@epita.fr>
1081
1082 * src/gram.h, src/gram.c (symbols): New, similar to state_table
1083 and rule_table.
1084 * src/reader.c (packsymbols): Fill this table.
1085 Drop sprec.
1086 * src/conflicts.c (resolve_sr_conflict): Adjust.
1087 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
1088 single table.
1089 Use symbols[i]->tag instead of tags[i].
1090
213e640e
AD
10912001-12-29 Akim Demaille <akim@epita.fr>
1092
1093 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
1094 In addition, put a comment in there, to replace...
1095 * tests/regression.at (%union and C comments): Remove.
1096
e7b8bef1
AD
10972001-12-29 Akim Demaille <akim@epita.fr>
1098
1099 * tests/regression.at (Web2c Actions): Blindly move the actual
1100 output as expected output. The contents *seem* right to me, but I
1101 can't pretend reading perfectly parser tables... Nonetheless, all
1102 the other tests pass correctly, the table look OK, even though the
1103 presence of `$axiom' is to be noted: AFAICS it is useless (but
1104 harmless).
1105
b68e7744
AD
11062001-12-29 Akim Demaille <akim@epita.fr>
1107
1108 * src/reader.c (readgram): Don't add the rule 0 if there were no
1109 rules read. In other words, add it _after_ having performed
1110 grammar sanity checks.
1111 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
1112
78d5bae9
AD
11132001-12-29 Akim Demaille <akim@epita.fr>
1114
1115 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
1116 visible, and some states have now a different number.
1117
ff442794
AD
11182001-12-29 Akim Demaille <akim@epita.fr>
1119
1120 * src/reader.c (readgram): Bind the initial rule's lineno to that
1121 of the first rule.
1122 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
1123 (Solved SR Conflicts): Adjust rule 0's line number.
1124
610ab194
AD
11252001-12-29 Akim Demaille <akim@epita.fr>
1126
1127 Fix the `GAWK Grammar' failure.
1128
1129 * src/LR0.c (final_state): Initialize to -1 so that we do compute
1130 the reductions of the first state which was mistakenly confused
1131 with the final state because precisely final_state was initialized
1132 to 0.
1133 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
1134 now noticed by Bison.
1135 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
1136 have a reduction on $default.
1137
29d29c8f
AD
11382001-12-29 Akim Demaille <akim@epita.fr>
1139
1140 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
1141 rule line numbers.
1142 * src/closure.c (print_closure): Likewise.
1143 * src/derives.c (print_derives): Likewise.
1144 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
1145 now.
1146
7c6b64d0
AD
11472001-12-29 Akim Demaille <akim@epita.fr>
1148
1149 * src/lalr.c (lookaheads_print): New.
1150 (lalr): Call it when --trace-flag.
1151 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
1152 are dumped.
1153
3d4daee3
AD
11542001-12-29 Akim Demaille <akim@epita.fr>
1155
1156 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
1157 when walking through ritem, even via rule->rhs.
1158 * src/reduce.c (dump_grammar, useful_production, reduce_output)
1159 (useful_production, useless_nonterminals): Likewise.
1160 (reduce_grammar_tables): Likewise, plus update nritems.
1161 * src/nullable.c (set_nullable): Likewise.
1162 * src/lalr.c (build_relations): Likewise.
1163 * tests/sets.at (Nullable): Adjust.
1164 Fortunately, now, the $axiom is no longer nullable.
1165
9e7f6bbd
AD
11662001-12-29 Akim Demaille <akim@epita.fr>
1167
1168 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
1169 the 0-sentinel.
1170 * src/gram.c (ritem_longest_rhs): Likewise.
1171 * src/reduce.c (nonterminals_reduce): Likewise.
1172 * src/print_graph.c (print_graph): Likewise.
1173 * src/output.c (output_rule_data): Likewise.
1174 * src/nullable.c (set_nullable): Likewise.
1175
255ef638
AD
11762001-12-29 Akim Demaille <akim@epita.fr>
1177
1178 * src/output.c: Comment changes.
1179
0d8a7363
AD
11802001-12-27 Paul Eggert <eggert@twinsun.com>
1181
1182 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
1183 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
1184 Sparc, as they were causing more porting problems than the
1185 (minor) performance improvement was worth.
1186
1187 Also, catch up with 1.31's YYSTD.
1188
3db472b9
AD
11892001-12-27 Akim Demaille <akim@epita.fr>
1190
1191 * src/output.c (output_gram): Rely on nritems, not the
1192 0-sentinel. See below.
1193 Use -1 as separator, not 0.
1194 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
1195 Rely on -1 as separator in yyrhs, instead of 0.
1196 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
1197 twice `Now at end of input', therefore there are two lines less to
1198 expect.
1199
b365aa05
AD
12002001-12-27 Akim Demaille <akim@epita.fr>
1201
1202 * tests/regression.at (Unresolved SR Conflicts):
1203 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
1204 below.
1205
30171f79
AD
12062001-12-27 Akim Demaille <akim@epita.fr>
1207
1208 * src/LR0.c (new_state): Recognize the final state by the fact it
1209 is reached by eoftoken.
1210 (insert_start_shifting_state, insert_eof_shifting_state)
1211 (insert_accepting_state, augment_automaton): Remove, since now
1212 these states are automatically computed from the initial state.
1213 (generate_states): Adjust.
1214 * src/print.c: When reporting a rule number to the user, substract
1215 1, so that the axiom rule is rule 0, and the first user rule is 1.
1216 * src/reduce.c: Likewise.
1217 * src/print_graph.c (print_core): For the time being, just as for
1218 the report, depend upon --trace-flags to dump the full set of
1219 items.
1220 * src/reader.c (readgram): Once the grammar read, insert the rule
1221 0: `$axiom: START-SYMBOL $'.
1222 * tests/set.at: Adjust: rule 0 is now displayed, and since the
1223 number of the states has changed (the final state is no longer
1224 necessarily the last), catch up.
1225
75142d45
AD
12262001-12-27 Akim Demaille <akim@epita.fr>
1227
1228 Try to make the use of the eoftoken valid. Given that its value
1229 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
1230 is used instead of > 0 where appropriate, (ii), depend upon nritems
1231 instead of the 0-sentinel.
1232
1233 * src/gram.h, src/gram.c (nritems): New.
1234 Expected to be duplication of nitems, but for the time being...
1235 * src/reader.c (packgram): Assert nritems and nitems are equal.
1236 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
1237 * src/closure.c (print_closure, print_fderives): Likewise.
1238 * src/gram.c (ritem_print): Likewise.
1239 * src/print.c (print_core, print_grammar): Likewise.
1240 * src/print_graph.c: Likewise.
1241
b7c49edf
AD
12422001-12-27 Akim Demaille <akim@epita.fr>
1243
1244 * src/main.c (main): If there are complains after grammar
1245 reductions, then output the report anyway if requested, then die.
1246 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
1247 * src/reader.c (eoftoken): New.
1248 (parse_token_decl): If the token being defined has value `0', it
1249 is the eoftoken.
1250 (packsymbols): No longer hack `tags' to insert `$' by hand.
1251 Be sure to preserve the value of the eoftoken.
1252 (reader): Make sure eoftoken is defined.
1253 Initialize nsyms to 0: now eoftoken is created just like the others.
1254 * src/print.c (print_grammar): Don't special case the eof token.
1255 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
1256 lie anyway, albeit pleasant.
1257 * tests/calc.at: Exercise error messages with eoftoken.
1258 Change the grammar so that empty input is invalid.
1259 Adjust expectations.
1260 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
1261
ec2da99f
AD
12622001-12-27 Akim Demaille <akim@epita.fr>
1263
1264 * configure.in: Check the protos of strchr ans strspn.
1265 Replace strchr if needed.
1266 * src/system.h: Provide the protos of strchr, strspn and memchr if
1267 missing.
1268 * lib/strchr.c: New.
1269 * src/reader.c (symbols_save): Use strchr.
1270
8adfa272
AD
12712001-12-27 Akim Demaille <akim@epita.fr>
1272
1273 * src/print.c, src/print_graph.c (escape): New.
1274 Use it to quote the TAGS outputs.
1275 * src/print_graph.c (print_state): Now errors are in red, and
1276 reductions in green.
1277 Prefer high to wide: output the state number on a line of its own.
1278
80dac38c
AD
12792001-12-27 Akim Demaille <akim@epita.fr>
1280
1281 * src/state.h, src/state.c (reductions_new): New.
1282 * src/LR0.c (set_state_table): Let all the states have a
1283 `reductions', even if reduced to 0.
1284 (save_reductions): Adjust.
1285 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
1286 * src/print.c (print_reductions, print_actions): Adjust.
1287 * src/output.c (action_row): Adjust.
1288
2cec70b9
AD
12892001-12-27 Akim Demaille <akim@epita.fr>
1290
1291 * src/state.h, src/state.c (errs_new, errs_dup): New.
1292 * src/LR0.c (set_state_table): Let all the states have an errs,
1293 even if reduced to 0.
1294 * src/print.c (print_errs, print_reductions): Adjust.
1295 * src/output.c (output_actions, action_row): Adjust.
1296 * src/conflicts.c (resolve_sr_conflict): Adjust.
1297
13ca549a
AD
12982001-12-27 Akim Demaille <akim@epita.fr>
1299
1300 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
1301
5092aba5
AD
13022001-12-27 Akim Demaille <akim@epita.fr>
1303
1304 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
1305 * src/print.c: here.
1306 (lookaheadset, shiftset): New, used as additional storage by
1307 print_reductions.
1308 (print_results): Adjust.
1309 (print_shifts, print_gotos, print_errs): New, extracted from...
1310 (print_actions): here.
1311 * src/print_graph.c (print_actions): Remove dead code.
1312
11e2beca
AD
13132001-12-27 Akim Demaille <akim@epita.fr>
1314
1315 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
1316 `$n' and `@n'.
1317
dac3c910
AD
13182001-12-27 Akim Demaille <akim@epita.fr>
1319
1320 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
1321 (build_relations): Adjust.
1322
d0b0fefa
AD
13232001-12-27 Akim Demaille <akim@epita.fr>
1324
1325 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
1326 duplication.
1327
adc8c848
AD
13282001-12-27 Akim Demaille <akim@epita.fr>
1329
1330 * src/reader.c (packgram): Catch nitems overflows.
1331
14d293ac
AD
13322001-12-27 Akim Demaille <akim@epita.fr>
1333
1334 * src/files.c, src/files.h (guard_obstack): Remove.
1335 * src/output.c (output): Adjust.
1336 * src/reader.c (parse_braces): New, factoring...
1337 (copy_action, copy_guard): these two which are renamed as...
1338 (parse_action, parse_guard): these.
1339 As a voluntary consequence, using braces around guards is now
1340 mandatory.
1341
f499b062
AD
13422001-12-27 Akim Demaille <akim@epita.fr>
1343
1344 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
1345 * src/reader.c (symbol_list): `guard' and `guard_line' are new
1346 members.
1347 (symbol_list_new): Adjust.
1348 (copy_action): action_line is the first line, not the last.
1349 (copy_guard): Just as for actions, store the `action' only, not
1350 the switch/case/break flesh.
1351 Don't parse the user action that might follow the guard, let...
1352 (readgram): do it, i.e., now, there can be an action after a
1353 guard.
1354 In other words the guard is just explicitly optional.
1355 (packgram): Adjust.
1356 * src/output.c (guards_output): New.
1357 (output_parser): Call it when needed.
1358 (output): Also free the guard and attrs obstacks.
1359 * src/files.c, src/files.h (obstack_save): Remove.
1360 (output_files): Remove.
1361 As a result, if one needs the former `.act' file, using an
1362 appropriate skeleton which requires actions and guards is now
1363 required.
1364 * src/main.c (main): Adjust.
1365 * tests/semantic.at: New.
1366 * tests/regression.at: Use `input.y' as input file name.
1367 Avoid 8+3 problems by requiring input.c when the test needs the
1368 parser.
1369
d945f5cd
AD
13702001-12-27 Akim Demaille <akim@epita.fr>
1371
1372 * src/reader.c (symbol_list_new): Be sure to initialize all the
1373 fields.
1374
d200e455
AD
13752001-12-27 Akim Demaille <akim@epita.fr>
1376
1377 All the hacks using a final pseudo state are now useless.
1378
1379 * src/LR0.c (set_state_table): state_table holds exactly nstates.
1380 * src/lalr.c (nLA): New.
1381 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
1382 instead of lookaheadsp from the pseudo state (nstate + 1).
1383
f9507c28
AD
13842001-12-27 Akim Demaille <akim@epita.fr>
1385
1386 * src/output.c (action_row, token_actions): Use a state_t instead
1387 of a integer, and nlookaheads instead of the following state's
1388 lookaheadsp.
1389
065fbd27
AD
13902001-12-27 Akim Demaille <akim@epita.fr>
1391
1392 * src/conflicts.c (log_resolution, flush_shift)
1393 (resolve_sr_conflict, set_conflicts, solve_conflicts)
1394 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
1395 (conflicts_print, print_reductions): Use a state_t instead of an
1396 integer when referring to a state.
1397 As much as possible, depend upon nlookaheads, instead of the
1398 `lookaheadsp' member of the following state (since lookaheads of
1399 successive states are successive, the difference between state n + 1
1400 and n served as the number of lookaheads for state n).
1401 * src/lalr.c (add_lookback_edge): Likewise.
1402 * src/print.c (print_core, print_actions, print_state)
1403 (print_results): Likewise.
1404 * src/print_graph.c (print_core, print_actions, print_state)
1405 (print_graph): Likewise.
1406 * src/conflicts.h: Adjust.
1407
1b177bd7
AD
14082001-12-27 Akim Demaille <akim@epita.fr>
1409
1410 * src/bison.hairy: Formatting/comment changes.
1411 ANSIfy.
1412 Remove `register' indications.
1413 Add plenty of `static'.
1414
7742ddeb
AD
14152001-12-27 Akim Demaille <akim@epita.fr>
1416
1417 * src/output.c (prepare): Drop the muscle `ntbase' which
1418 duplicates ntokens.
1419 * src/bison.simple: Formatting/comment changes.
1420 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
1421 is an undocumented synonym.
1422
1fa14068
AD
14232001-12-22 Akim Demaille <akim@epita.fr>
1424
1425 * src/output.c (output_table_data): Change the prototype to use
1426 `int' for array ranges: some invocations do pass an int, not a
1427 short.
1428 Reported by Wayne Green.
1429
b9752825
AD
14302001-12-22 Akim Demaille <akim@epita.fr>
1431
1432 Some actions of web2c.y are improperly triggered.
1433 Reported by Mike Castle.
1434
1435 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
1436 * tests/regression.at (Web2c): Rename as...
1437 (Web2c Report): this.
1438 (Web2c Actions): New.
1439
776209d6
AD
14402001-12-22 Akim Demaille <akim@epita.fr>
1441
1442 Reductions in web2c.y are improperly reported.
1443 Reported by Mike Castle.
1444
1445 * src/conflicts.c (print_reductions): Fix.
1446 * tests/regression.at (Web2c): New.
1447
275fc3ad
AD
14482001-12-18 Akim Demaille <akim@epita.fr>
1449
1450 Some host fail on `assert (!"foo")', which expands to
1451 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
1452 Reported by Nelson Beebee.
1453
1454 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
1455 `#define it_succeeded 0' and `assert (it_succeeded)'.
1456
897668ee
MA
14572001-12-17 Marc Autret <autret_m@epita.fr>
1458
1459 * src/bison.simple: Don't hard code the skeleton line and filename.
1460 * src/output.c (output_parser): Rename 'line' as 'output_line'.
1461 New line counter 'skeleton_line' (skeleton-line muscle).
1462
ab3399e0
PE
14632001-12-17 Paul Eggert <eggert@twinsun.com>
1464
1465 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
1466 YYDEBUG must be defined to a nonzero value.
1467
1468 * src/bison.simple (yytname): Do not assume that the user defines
1469 YYDEBUG to a properly parenthesized expression.
1470
3877f72b
AD
14712001-12-17 Akim Demaille <akim@epita.fr>
1472
1473 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
1474 nlookaheads is a new member.
1475 Adjust all users.
1476 * src/lalr.h (nlookaheads): Remove this orphan declaration.
1477 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
1478 state.
776209d6 1479
331dbc1b
AD
14802001-12-17 Akim Demaille <akim@epita.fr>
1481
1482 * src/files.h, src/files.c (open_files, close_files): Remove.
1483 * src/main.c (main): Don't open/close files, nor invoke lex_free,
1484 let...
1485 * src/reader.c (reader): Do it.
776209d6 1486
be750e4c
AD
14872001-12-17 Akim Demaille <akim@epita.fr>
1488
1489 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 1490
709ae8c6
AD
14912001-12-17 Akim Demaille <akim@epita.fr>
1492
1493 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
1494 (flush_reduce): New.
1495 (resolve_sr_conflict): Adjust.
776209d6 1496
f87685c3
AD
14972001-12-17 Akim Demaille <akim@epita.fr>
1498
1499 * src/output.c (output_obstack): Be static and rename as...
1500 (format_obstack): this, to avoid any confusion with files.c's
1501 output_obstack.
1502 * src/reader.h (muscle_obstack): Move to...
1503 * src/output.h: here, since it's defined in output.c.
1504
837491d8
AD
15052001-12-17 Akim Demaille <akim@epita.fr>
1506
1507 * src/output.c (action_row, save_column, default_goto)
1508 (sort_actions, matching_state, pack_vector): Better variable
1509 locality.
1510
796d61fb
AD
15112001-12-17 Akim Demaille <akim@epita.fr>
1512
1513 * src/output.c: Various formatting changes.
776209d6 1514
64d15509
AD
15152001-12-17 Akim Demaille <akim@epita.fr>
1516
1517 * src/files.c (output_files): Free the output_obstack.
1518 * src/main.c (main): Call print and print_graph conditionally.
1519 * src/print.c (print): Work unconditionally.
1520 * src/print_graph.c (print_graph): Work unconditionally.
1521 * src/conflicts.c (log_resolution): Output only if verbose_flag.
1522
fbc8ecb7
MA
15232001-12-16 Marc Autret <autret_m@epita.fr>
1524
1525 * src/output.c (actions_output): Fix. When we use %no-lines,
1526 there is one less line per action.
1527
f0440388
MA
15282001-12-16 Marc Autret <autret_m@epita.fr>
1529
1530 * src/bison.simple: Remove a useless #line directive.
1531 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
1532 * src/output.c (get_lines_number): New.
776209d6 1533 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
1534 output muscles.
1535 Fix line numbering.
1536 (actions_output): Computes the number of lines taken by actions.
1537 (output_master_parser): Insert new skeleton which is the name of
1538 the output parser file name.
1539
a79986b8
MA
15402001-12-15 Marc Autret <autret_m@epita.fr>
1541
1542 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
1543
4ec8e00f
MA
15442001-12-15 Marc Autret <autret_m@epita.fr>
1545
1546 * src/output.c (output_gram): Keep track of the hairy one.
1547
1a4648ff
AD
15482001-12-15 Akim Demaille <akim@epita.fr>
1549
1550 Make `make distcheck' work.
1551
1552 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
1553 system.h which uses libgettext.h.
1554
9c2c67e6
AD
15552001-12-15 Akim Demaille <akim@epita.fr>
1556
1557 * src/nullable.c (set_nullable): Useless rules must be skipped,
1558 otherwise, since we range over their symbols, we might look at a
1559 nonterminal which no longer ``exists'', i.e., it is not counted in
1560 `nvars', hence we overflow our arrays.
1561
93ede233
AD
15622001-12-15 Akim Demaille <akim@epita.fr>
1563
1564 The header can also be produced directly, without any obstack!
1565 Yahoo!
1566
1567 * src/files.c, src/files.h (defines_obstack): Remove.
1568 (compute_header_macro): Global.
1569 (defines_obstack_save): Remove.
1570 * src/reader.c (parse_union_decl): No longer output to
1571 defines_obstack: its content can be found in the `stype' muscle
1572 anyway.
1573 (output_token_translations): Merge into...
1574 (symbols_output): this.
1575 Rename as...
1576 (symbols_save): this.
1577 (reader): Adjust.
1578 * src/output.c (header_output): New.
1579 (output): Call it.
1580
2666f928
AD
15812001-12-15 Akim Demaille <akim@epita.fr>
1582
1583 * src/reader.c (parse_union_decl): Instead of handling two obstack
1584 simultaneously, use one to define the `stype' muscle, and use the
1585 value of the latter to fill defines_obstack.
1586 (copy_comment): Remove.
1587 (copy_comment2): Work for a single obstack.
1588 Rename as...
1589 (copy_comment): this.
1590
428046f8
AD
15912001-12-15 Akim Demaille <akim@epita.fr>
1592
1593 * src/lex.c, src/lex.h (xgetc): No longer static.
1594 * src/reader.c (parse_union_decl): Revamp.
1595
ea52d706
AD
15962001-12-15 Akim Demaille <akim@epita.fr>
1597
1598 Still making progress in separating Bison into (i) input, (ii)
1599 process, (iii) output: now we can directly output the parser file
1600 without using table_obstack at all.
1601
1602 * src/files.c, src/files.h (table_obstack): Bye bye.
1603 (parser_file_name): New.
1604 * src/files.c (compute_output_file_names): Compute it.
1605 * src/output.c (actions_output, output_parser)
1606 (output_master_parser): To a file instead of an obstack.
1607
3f96f4dc
AD
16082001-12-15 Akim Demaille <akim@epita.fr>
1609
1610 Attach actions to rules, instead of pre-outputting them to
1611 actions_obstack.
1612
1613 * src/gram.h (rule_t): action and action_line are new members.
1614 * src/reader.c (symbol_list): Likewise.
1615 (copy_action): Save the actions within the rule.
1616 (packgram): Save them in rule_table.
1617 * src/output.c (actions_output): New.
1618 (output_parser): Use it on `%%actions'.
1619 (output_rule_data): Don't free rule_table.
1620 (output): Do it.
1621 (prepare): Don't save the `action' muscle.
1622 * src/bison.simple: s/%%action/%%actions/.
1623
51576fb3
AD
16242001-12-15 Akim Demaille <akim@epita.fr>
1625
1626 * src/reader.c (copy_action): When --yacc, don't append a `;'
1627 to the user action: let it fail if lacking.
dee049eb 1628 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 1629
2648a72d
AD
16302001-12-14 Akim Demaille <akim@epita.fr>
1631
1632 * src/lex.c (literalchar): Simply return the char you decoded, non
1633 longer mess around with obstacks and int pointers.
1634 Adjust all callers.
1635
92790e5b
AD
16362001-12-14 Akim Demaille <akim@epita.fr>
1637
1638 * src/lex.c (literalchar): Don't escape the special characters,
1639 just decode them, and keep them as char (before, eol was output as
1640 the 2 char string `\n' etc.).
1641 * src/output.c (output_rule_data): Use quotearg to output the
1642 token strings.
1643
927c1557
PE
16442001-12-13 Paul Eggert <eggert@twinsun.com>
1645
1646 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
1647 Do not infringe on the global user namespace when using C++.
1648 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
1649 All uses of `fprintf' and `stderr' changed.
1650
1651 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
1652
ed8e1f68
AD
16532001-12-13 Akim Demaille <akim@epita.fr>
1654
1655 The computation of nullable is broken: it doesn't handle empty
1656 RHS's properly.
1657
1658 * tests/torture.at (GNU AWK Grammar): New.
1659 * tests/sets.at (Nullable): New.
1660 * src/nullable.c (set_nullable): Instead of blindly looping over
1661 `ritems', loop over the rules, and then over their rhs's.
1662
1663 Work around Autotest bugs.
1664
1665 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
1666 frame, because Autotest understand lines starting with a `+' as
1667 traces from the shell. Then, they are not processed properly.
1668 Admittedly an Autotest bug, but we don't have time to wait for
1669 Autotest to catch up.
1670 * tests/regression.at (Broken Closure): Adjust to the new table
1671 frames.
1672 Move to...
1673 * tests/sets.at: here.
1674
cb581495
AD
16752001-12-13 Akim Demaille <akim@epita.fr>
1676
1677 * src/closure.c (closure): Use nrules instead of playing tricks
1678 with BITS_PER_WORD.
1679
2e729273
AD
16802001-12-13 Akim Demaille <akim@epita.fr>
1681
1682 * src/print.c (print_actions): Output the handling of `$' as the
1683 traces do: shifting the token EOF. Before EOF was treated as a
1684 nonterminal.
1685 * tests/regression.at: Adjust some tests.
1686 * src/print_graph.c (print_core): Complete the set of items via
1687 closure. The next-to-final and final states are still unsatisfying,
1688 but that's to be addressed elsewhere.
1689 No longer output the rule numbers, but do output the state number.
1690 A single loop for the shifts + gotos is enough, but picked a
1691 distinct color for each.
1692 (print_graph): Initialize and finalize closure.
1693
107f7dfb
AD
16942001-12-13 Akim Demaille <akim@epita.fr>
1695
1696 * src/reader.c (readgram): Remove dead code, an strip useless
1697 braces.
1698 (get_type): Remove, unused.
1699
9b53a24f
AD
17002001-12-12 Akim Demaille <akim@epita.fr>
1701
1702 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
1703 on that of lib/error.c.
1704
dbfb6dcd
AD
17052001-12-12 Akim Demaille <akim@epita.fr>
1706
1707 Some hosts don't like `/' in includes.
1708
1709 * src/system.h: Include libgettext.h without qualifying the path.
1710 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
1711 $(top_srcdir).
1712
c25fb648
MA
17132001-12-11 Marc Autret <autret_m@epita.fr>
1714
1715 * src/output.c (output_parser): Remove useless muscle.
1716
710ddc4f
MA
17172001-12-11 Marc Autret <autret_m@epita.fr>
1718
1719 * src/bison.simple: Remove #line just before %%epilogue. It
1720 is now handled in ...
1721 * src/reader.c (read_additionnal_code): Add the output of a
1722 #line for the epilogue.
1723
e83d80b8
MA
17242001-12-10 Marc Autret <autret_m@epita.fr>
1725
927c1557 1726 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
1727 replace precedent remove.
1728 * src/bison.simple: Remove #line before %%prologue because
1729 %%input-line is wrong at this time.
1730
971d5158
MA
17312001-12-10 Marc Autret <autret_m@epita.fr>
1732
1733 * src/reader.c (symbols_output): Clean up.
927c1557 1734 * src/output.c (output_gram, output): Clean up.
971d5158 1735
5edafffd
AD
17362001-12-10 Akim Demaille <akim@epita.fr>
1737
1738 * src/lalr.c (initialize_lookaheads): New. Extracted from...
1739 * src/LR0.c (set_state_table): here.
1740 * src/lalr.c (lalr): Call it.
1741
0279f8e9
AD
17422001-12-10 Akim Demaille <akim@epita.fr>
1743
1744 * src/state.h (shifts): Remove the `number' member: shifts are
1745 attached to state, hence no longer need to be labelled with a
1746 state number.
1747
190c4f5f
AD
17482001-12-10 Akim Demaille <akim@epita.fr>
1749
1750 Now that states have a complete set of members, the linked list of
1751 shifts is useless: just fill directly the state's shifts member.
1752
1753 * src/state.h (shifts): Remove the `next' member.
1754 * src/LR0.c (first_state, last_state): Remove.
1755 Adjust the callers.
1756 (augment_automaton): Don't look for the shifts that must be added
1757 a shift on EOF: it is those of the state we looked for! But now,
1758 since shifts are attached, it is no longer needed to looking
1759 merely by its id: its number.
1760
2a73b93d
AD
17612001-12-10 Akim Demaille <akim@epita.fr>
1762
1763 * src/LR0.c (augment_automaton): Better variable locality.
1764 Remove an impossible branch: if there is a state corresponding to
1765 the start symbol being shifted, then there is shift for the start
1766 symbol from the initial state.
1767
74392f6a
AD
17682001-12-10 Akim Demaille <akim@epita.fr>
1769
1770 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
1771 only when appropriate: when insert_start_shifting_state' is not
1772 invoked.
1773 * tests/regression.at (Rule Line Numbers): Adjust.
1774
37c82725
AD
17752001-12-10 Akim Demaille <akim@epita.fr>
1776
1777 * src/LR0.c (augment_automaton): Now that all states have shifts,
1778 merge the two cases addition shifts to the initial state.
1779
6a164e0c
AD
17802001-12-10 Akim Demaille <akim@epita.fr>
1781
1782 * src/lalr.c (set_state_table): Move to...
1783 * src/LR0.c: here.
1784 * src/lalr.c (lalr): Don't call it...
1785 * src/LR0.c (generate_states): do it.
1786 * src/LR0.h (first_state): Remove, only the table is used.
1787
7215de24
AD
17882001-12-10 Akim Demaille <akim@epita.fr>
1789
1790 * src/LR0.h (first_shift, first_reduction): Remove.
1791 * src/lalr.c: Don't use first_shift: find shifts through the
1792 states.
1793
80e25d4d
AD
17942001-12-10 Akim Demaille <akim@epita.fr>
1795
1796 * src/LR0.c: Attach shifts to states as soon as they are
1797 computed.
1798 * src/lalr.c (set_state_table): Instead of assigning shifts to
1799 state, just assert that the mapping was properly done.
1800
0ab3728b
AD
18012001-12-10 Akim Demaille <akim@epita.fr>
1802
1803 * src/LR0.c (insert_start_shift): Rename as...
1804 (insert_start_shifting_state): this.
1805 (insert_eof_shifting_state, insert_accepting_state): New.
1806 (augment_automaton): Adjust.
1807 Better locality of the variables.
1808 When looking if the start_symbol is shifted from the initial
1809 state, using `while (... symbol != start_symbol ...)' sounds
1810 better than `while (... symbol < start_symbol ...)': If fail
1811 to see how the order between symbols could be relevant!
1812
78af9bbc
AD
18132001-12-10 Akim Demaille <akim@epita.fr>
1814
1815 * src/getargs.h: Don't declare `spec_name_prefix' and
1816 `spec_file_prefix', declared by src/files.h.
1817 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
1818 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
1819 * src/output.c (prepare): Adjust.
1820 * src/reader.c (symbols_output): Likewise.
1821 * src/vmsgetargs.c: Vaguely adjust, but who cares?
1822
bdef2a41
AD
18232001-12-10 Akim Demaille <akim@epita.fr>
1824
1825 * src/muscle_tab.c (muscle_init): NULL is a better default than
1826 `"0"'.
1827
3735969c
AD
18282001-12-10 Akim Demaille <akim@epita.fr>
1829
1830 * src/reader.c (reader): Calling symbols_output once is enough.
1831
49701457
AD
18322001-12-10 Akim Demaille <akim@epita.fr>
1833
1834 Now that states have a complete set of members, the linked list of
1835 reductions is useless: just fill directly the state's reductions
1836 member.
1837
1838 * src/state.h (struct reductions): Remove member `number' and
1839 `next'.
1840 * src/LR0.c (first_reduction, last_reduction): Remove.
1841 (save_reductions): Don't link the new reductions, store them in
1842 this_state.
1843 * src/lalr.c (set_state_table): No need to attach reductions to
1844 states, it's already done.
1845 * src/output.c (output_actions): No longer free the shifts, then
1846 the reductions, then the states: free all the states and their
1847 members.
1848
0edad749
AD
18492001-12-10 Akim Demaille <akim@epita.fr>
1850
1851 * src/options.c (OPTN, DRTV, BOTH): New.
1852 (option_table): Use them.
1853
0edad749
AD
1854 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
1855 the job of system.h.
1856 * src/options.c: Don't include stdio.h and xalloc.h for the same
1857 reasons.
1858
5449dd0f
AD
18592001-12-10 Akim Demaille <akim@epita.fr>
1860
1861 * src/output.c (output, prepare): Make sure the values of the
1862 muscles `action' and `prologue' are 0-terminated.
1863
a870c567
AD
18642001-12-10 Akim Demaille <akim@epita.fr>
1865
1866 Clean up GCC warnings.
1867
1868 * src/reader.c (copy_action): `buf' is not used.
1869 (parse_skel_decl): Be static.
1870 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
1871 * src/options.h (create_long_option_table): Have a real prototype.
1872 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
1873 (hash_delete_at): Return const void *.
1874 Adjust casts to preserve the const.
1875
80df8768
AD
18762001-12-10 Akim Demaille <akim@epita.fr>
1877
1878 * configure.in: Require 2.52g.
1879 M4 is not needed, but AUTOM4TE is.
1880 * m4/m4.m4: Remove.
1881 * tests/Makefile.am: Adjust.
1882
f693ad14
AD
18832001-12-10 Akim Demaille <akim@epita.fr>
1884
1885 One structure for states is enough, even though theoretically
1886 there are LR(0) states and LALR(1) states.
1887
1888 * src/lalr.h (state_t): Remove.
1889 (state_table): Be state_t **, not state_t *.
1890 * src/state.h (core, CORE_ALLOC): Rename as...
1891 (state_t, STATE_ALLOC): this.
1892 Add the LALR(1) members: shifts, reductions, errs.
1893 * src/LR0.c (state_table): Rename as...
1894 (state_hash): this, to avoid name clashes with the global
1895 `state_table'.
1896 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
1897 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
1898
74ffbcb6
AD
18992001-12-10 Akim Demaille <akim@epita.fr>
1900
1901 Bison dumps core on bash.y.
1902 Reported by Pascal Bart.
1903
1904 * src/warshall.c (bitmatrix_print): New.
1905 (TC): Use it.
1906 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
1907 j must be the outer loop.
1908 * tests/regression.at (Broken Closure): New.
1909
07708e19
AD
19102001-12-05 Akim Demaille <akim@epita.fr>
1911
1912 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
1913 its argument.
1914