]> git.saurik.com Git - bison.git/blame_incremental - ChangeLog
* src/reader.h, src/reader.c (symbol_list_new): Export it.
[bison.git] / ChangeLog
... / ...
CommitLineData
12002-06-17 Akim Demaille <akim@epita.fr>
2
3 * src/reader.h, src/reader.c (symbol_list_new): Export it.
4 (symbol_list_prepend): New.
5 * src/parse-gram.y (%union): `list' is a new member.
6 (symbols.1): New, replaces...
7 (terms_to_prec.1, nterms_to_type.1): these.
8 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
9 Take a location as additional argument.
10 Adjust all callers.
11
122002-06-15 Akim Demaille <akim@epita.fr>
13
14 * src/parse-gram.y: Move %token in the declaration section so that
15 we don't depend upon CVS Bison.
16
172002-06-15 Akim Demaille <akim@epita.fr>
18
19 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
20 * src/print.c (print_core): Use it.
21
222002-06-15 Akim Demaille <akim@epita.fr>
23
24 * src/conflicts.c (log_resolution): Accept the rule involved in
25 the sr conflicts instead of the lookahead number that points to
26 that rule.
27 (flush_reduce): Accept the current lookahead vector as argument,
28 instead of the index in LA.
29 (resolve_sr_conflict): Accept the current number of lookahead
30 bitset to consider for the STATE, instead of the index in LA.
31 (set_conflicts): Adjust.
32 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
33
342002-06-15 Akim Demaille <akim@epita.fr>
35
36 * src/state.h (state_t): Replace the `lookaheadsp' member, a
37 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
38 Adjust all dependencies.
39 * src/lalr.c (initialize_lookaheads): Split into...
40 (states_lookaheads_count, states_lookaheads_initialize): these.
41 (lalr): Adjust.
42
432002-06-15 Akim Demaille <akim@epita.fr>
44
45 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
46 out of...
47 (grammar_rules_print): here.
48 * src/reduce.c (reduce_output): Use it.
49 * tests/reduce.at (Useless Rules, Reduced Automaton)
50 (Underivable Rules): Adjust.
51
522002-06-15 Akim Demaille <akim@epita.fr>
53
54 Copy BYacc's nice way to report the grammar.
55
56 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
57 New.
58 Don't print the rules' location, it is confusing and useless.
59 (rule_print): Use grammar_rhs_print.
60 * src/print.c (print_grammar): Use grammar_rules_print.
61
622002-06-15 Akim Demaille <akim@epita.fr>
63
64 Complete and rationalize `useless thing' warnings.
65
66 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
67 (symbol_tag_print): New.
68 Use them everywhere in place of accessing directly the tag member.
69 * src/gram.h, src/gram.c (rule_print): New.
70 Use it where a rule used to be printed `by hand'.
71 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
72 (reduce_grammar_tables): Report the useless rules.
73 (reduce_print): Useless things are a warning, not an error.
74 Report it as such.
75 * tests/reduce.at (Useless Nonterminals, Useless Rules):
76 (Reduced Automaton, Underivable Rules): Adjust.
77 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
78 * tests/conflicts.at (Unresolved SR Conflicts)
79 (Solved SR Conflicts): Adjust.
80
812002-06-15 Akim Demaille <akim@epita.fr>
82
83 Let symbols have a location.
84
85 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
86 (getsym): Adjust.
87 Adjust all callers.
88 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
89 Use location_t, not int.
90 * src/symtab.c (symbol_check_defined): Take advantage of the
91 location.
92 * tests/regression.at (Invalid inputs): Adjust.
93
942002-06-15 Akim Demaille <akim@epita.fr>
95
96 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
97 (input): Don't try to initialize yylloc here, do it in the
98 scanner.
99 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
100 * src/gram.h (rule_t): Change line and action_line into location
101 and action_location, of location_t type.
102 Adjust all dependencies.
103 * src/location.h, src/location.c (empty_location): New.
104 * src/reader.h, src/reader.c (grammar_start_symbol_set)
105 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
106 (grammar_current_rule_symbol_append)
107 (grammar_current_rule_action_append): Expect a location as argument.
108 * src/reader.c (grammar_midrule_action): Adjust to attach an
109 action's location as dummy symbol location.
110 * src/symtab.h, src/symtab.c (startsymbol_location): New.
111 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
112 the line numbers.
113
1142002-06-14 Akim Demaille <akim@epita.fr>
115
116 Grammar declarations may be found in the grammar section.
117
118 * src/parse-gram.y (rules_or_grammar_declaration): New.
119 (declarations): Each declaration may end with a semicolon, not
120 just...
121 (grammar_declaration): `"%union"'.
122 (grammar): Branch to rules_or_grammar_declaration.
123
1242002-06-14 Akim Demaille <akim@epita.fr>
125
126 * src/main.c (main): Invoke scanner_free.
127
1282002-06-14 Akim Demaille <akim@epita.fr>
129
130 * src/output.c (m4_invoke): Extracted from...
131 (output_skeleton): here.
132 Free tempfile.
133
1342002-06-14 Akim Demaille <akim@epita.fr>
135
136 * src/parse-gram.y (directives, directive, gram)
137 (grammar_directives, precedence_directives, precedence_directive):
138 Rename as...
139 (declarations, declaration, grammar, grammar_declaration)
140 (precedence_declaration, precedence_declarator): these.
141 (symbol_declaration): New.
142
1432002-06-14 Akim Demaille <akim@epita.fr>
144
145 * src/files.c (action_obstack): Remove, unused.
146 (output_obstack): Remove it, and all its dependencies, as it is no
147 longer needed.
148 * src/reader.c (epilogue_set): Build the epilogue in the
149 muscle_obstack.
150 * src/output.h, src/output.c (muscle_obstack): Move to...
151 * src/muscle_tab.h, src/muscle_tab.h: here.
152 (muscle_init): Initialize muscle_obstack.
153 (muscle_free): New.
154 * src/main.c (main): Call it.
155
1562002-06-14 Akim Demaille <akim@epita.fr>
157
158 * src/location.h: New, extracted from...
159 * src/reader.h: here.
160 * src/Makefile.am (noinst_HEADERS): Merge into
161 (bison_SOURCES): this.
162 Add location.h.
163 * src/parse-gram.y: Use location_t instead of Bison's.
164 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
165 Use location_t instead of ints.
166
1672002-06-14 Akim Demaille <akim@epita.fr>
168
169 * data/bison.simple, data/bison.c++: Be sure to restore the
170 current #line when returning to the skeleton contents after having
171 exposed the input file's #line.
172
1732002-06-12 Akim Demaille <akim@epita.fr>
174
175 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
176 eager.
177 * tests/actions.at (Exotic Dollars): New.
178
1792002-06-12 Akim Demaille <akim@epita.fr>
180
181 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
182 ['"/] too eagerly.
183 * tests/input.at (Torturing the Scanner): New.
184
1852002-06-11 Akim Demaille <akim@epita.fr>
186
187 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
188 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
189 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
190 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
191 * src/reader.c (reader): Use it.
192
1932002-06-11 Akim Demaille <akim@epita.fr>
194
195 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
196 Adjust all callers.
197 (scanner_last_string_free): New.
198
1992002-06-11 Akim Demaille <akim@epita.fr>
200
201 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
202 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
203 (last_string, YY_OBS_FREE): New.
204 Use them when returning an ID.
205
2062002-06-11 Akim Demaille <akim@epita.fr>
207
208 Have Bison grammars parsed by a Bison grammar.
209
210 * src/reader.c, src/reader.h (prologue_augment): New.
211 * src/reader.c (copy_definition): Remove.
212
213 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
214 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
215 (grammar_current_rule_prec_set, grammar_current_rule_check)
216 (grammar_current_rule_symbol_append)
217 (grammar_current_rule_action_append): Export.
218 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
219 (symbol_list_action_append): Remove.
220 Hook the routines from reader.
221 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
222 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
223
224 * src/reader.c (read_declarations): Remove, unused.
225
226 * src/parse-gram.y: Handle the epilogue.
227 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
228 (grammar_start_symbol_set): this.
229 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
230 * src/reader.c (readgram): Remove, unused.
231 (reader): Adjust to insert eoftoken and axiom where appropriate.
232
233 * src/reader.c (copy_dollar): Replace with...
234 * src/scan-gram.h (handle_dollar): this.
235 * src/parse-gram.y: Remove `%thong'.
236
237 * src/reader.c (copy_at): Replace with...
238 * src/scan-gram.h (handle_at): this.
239
240 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
241 New.
242
243 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
244 time being.
245
246 * src/reader.h, src/reader.c (grammar_rule_end): New.
247
248 * src/parse.y (current_type, current_class): New.
249 Implement `%nterm', `%token' support.
250 Merge `%term' into `%token'.
251 (string_as_id): New.
252 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
253 type name.
254
255 * src/parse-gram.y: Be sure to handle properly the beginning of
256 rules.
257
258 * src/parse-gram.y: Handle %type.
259 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
260
261 * src/parse-gram.y: More directives support.
262 * src/options.c: No longer handle source directives.
263
264 * src/parse-gram.y: Fix %output.
265
266 * src/parse-gram.y: Handle %union.
267 Use the prologue locations.
268 * src/reader.c (parse_union_decl): Remove.
269
270 * src/reader.h, src/reader.c (epilogue_set): New.
271 * src/parse-gram.y: Use it.
272
273 * data/bison.simple, data/bison.c++: b4_stype is now either not
274 defined, then default to int, or to the contents of %union,
275 without `union' itself.
276 Adjust.
277 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
278
279 * src/output.c (actions_output): Don't output braces, as they are
280 already handled by the scanner.
281
282 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
283 characters to themselves.
284
285 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
286 that the epilogue has a proper #line.
287
288 * src/parse-gram.y: Handle precedence/associativity.
289
290 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
291 a terminal.
292 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
293 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
294 at all to define terminals that cannot be emitted.
295
296 * src/scan-gram.l: Escape M4 characters.
297
298 * src/scan-gram.l: Working properly with escapes in user
299 strings/characters.
300
301 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
302 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
303 grammar.
304 Use more modest sizes, as for the time being the parser does not
305 release memory, and therefore the process swallows a huge amount
306 of memory.
307
308 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
309 stricter %token grammar.
310
311 * src/symtab.h (associativity): Add `undef_assoc'.
312 (symbol_precedence_set): Do nothing when passed an undef_assoc.
313 * src/symtab.c (symbol_check_alias_consistence): Adjust.
314
315 * tests/regression.at (Invalid %directive): Remove, as it is now
316 meaningless.
317 (Invalid inputs): Adjust to the new error messages.
318 (Token definitions): The new grammar doesn't allow too many
319 eccentricities.
320
321 * src/lex.h, src/lex.c: Remove.
322 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
323 (copy_character, copy_string2, copy_string, copy_identifier)
324 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
325 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
326 (parse_action): Remove.
327 * po/POTFILES.in: Adjust.
328
3292002-06-11 Akim Demaille <akim@epita.fr>
330
331 * src/reader.c (parse_action): Don't store directly into the
332 rule's action member: return the action as a string.
333 Don't require `rule_length' as an argument: compute it.
334 (grammar_current_rule_symbol_append)
335 (grammar_current_rule_action_append): New, eved out from
336 (readgram): here.
337 Remove `action_flag', `rulelength', unused now.
338
3392002-06-11 Akim Demaille <akim@epita.fr>
340
341 * src/reader.c (grammar_current_rule_prec_set).
342 (grammar_current_rule_check): New, eved out from...
343 (readgram): here.
344 Remove `xaction', `first_rhs': useless.
345 * tests/input.at (Type clashes): New.
346 * tests/existing.at (GNU Cim Grammar): Adjust.
347
3482002-06-11 Akim Demaille <akim@epita.fr>
349
350 * src/reader.c (grammar_midrule_action): New, Eved out from
351 (readgram): here.
352
3532002-06-11 Akim Demaille <akim@epita.fr>
354
355 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
356 New.
357 (readgram): Use them as replacement of inlined code, crule and
358 crule1.
359
3602002-06-11 Akim Demaille <akim@epita.fr>
361
362 * src/reader.c (grammar_end, grammar_symbol_append): New.
363 (readgram): Use them.
364 Make the use of `p' as local as possible.
365
3662002-06-10 Akim Demaille <akim@epita.fr>
367
368 GCJ's parser requires the tokens to be defined before the prologue.
369
370 * data/bison.simple: Output the token definition before the user's
371 prologue.
372 * tests/regression.at (Braces parsing, Duplicate string)
373 (Mixing %token styles): Check the output from bison.
374 (Early token definitions): New.
375
3762002-06-10 Akim Demaille <akim@epita.fr>
377
378 * src/symtab.c (symbol_user_token_number_set): Don't complain when
379 assigning twice the same user number to a token, so that we can
380 use it in...
381 * src/lex.c (lex): here.
382 Also use `symbol_class_set' instead of hand written code.
383 * src/reader.c (parse_assoc_decl): Likewise.
384
3852002-06-10 Akim Demaille <akim@epita.fr>
386
387 * src/symtab.c, src/symtab.c (symbol_class_set)
388 (symbol_user_token_number_set): New.
389 * src/reader.c (parse_token_decl): Use them.
390 Use a switch instead of ifs.
391 Use a single argument.
392
3932002-06-10 Akim Demaille <akim@epita.fr>
394
395 Remove `%thong' support as it is undocumented, unused, duplicates
396 `%token's job, and creates useless e-mail traffic with people who
397 want to know what it is, why it is undocumented, unused, and
398 duplicates `%token's job.
399
400 * src/reader.c (parse_thong_decl): Remove.
401 * src/options.c (option_table): Remove "thong".
402 * src/lex.h (tok_thong): Remove.
403
4042002-06-10 Akim Demaille <akim@epita.fr>
405
406 * src/symtab.c, src/symtab.c (symbol_type_set)
407 (symbol_precedence_set): New.
408 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
409 (value_components_used): Remove, unused.
410
4112002-06-09 Akim Demaille <akim@epita.fr>
412
413 Move symbols handling code out of the reader.
414
415 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
416 (axiom): Move to...
417 * src/symtab.h, src/symtab.c: here.
418
419 * src/gram.c (start_symbol): Remove: use startsymbol->number.
420 * src/reader.c (startval): Rename as...
421 * src/symtab.h, src/symtab.c (startsymbol): this.
422 * src/reader.c: Adjust.
423
424 * src/reader.c (symbol_check_defined, symbol_make_alias)
425 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
426 (token_translations_init)
427 Move to...
428 * src/symtab.c: here.
429 * src/reader.c (packsymbols): Move to...
430 * src/symtab.h, src/symtab.c (symbols_pack): here.
431 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
432 argument.
433
4342002-06-03 Akim Demaille <akim@epita.fr>
435
436 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
437 then statements.
438
4392002-06-03 Akim Demaille <akim@epita.fr>
440
441 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
442 structs with non literals.
443 * src/scan-skel.l: never-interactive.
444 * src/conflicts.c (enum conflict_resolution_e): No trailing
445 comma.
446 * src/getargs.c (usage): Split long literal strings.
447 Reported by Hans Aberg.
448
4492002-05-28 Akim Demaille <akim@epita.fr>
450
451 * data/bison.c++: Use C++ ostreams.
452 (cdebug_): New member.
453
4542002-05-28 Akim Demaille <akim@epita.fr>
455
456 * src/output.c (output_skeleton): Be sure to allocate enough room
457 for `/' _and_ for `\0' in full_skeleton.
458
4592002-05-28 Akim Demaille <akim@epita.fr>
460
461 * data/bison.c++: Catch up with bison.simple:
462 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
463 and Paul Eggert <eggert@twinsun.com>: `error' handing.
464 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
465 and popping traces.
466
4672002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
468
469 * src/output.c (output_skeleton): Put an explicit path in front of
470 the skeleton file name, rather than relying on the -I directory,
471 to partially alleviate effects of having a skeleton file lying around
472 in the current directory.
473
4742002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
475
476 * src/conflicts.c (log_resolution): Correct typo:
477 obstack_printf should be obstack_fgrow1.
478
4792002-05-26 Akim Demaille <akim@epita.fr>
480
481 * src/state.h (state_t): `solved_conflicts' is a new member.
482 * src/LR0.c (new_state): Set it to 0.
483 * src/conflicts.h, src/conflicts.c (print_conflicts)
484 (free_conflicts, solve_conflicts): Rename as...
485 (conflicts_print, conflicts_free, conflicts_solve): these.
486 Adjust callers.
487 * src/conflicts.c (enum conflict_resolution_e)
488 (solved_conflicts_obstack): New, used by...
489 (log_resolution): this.
490 Adjust to attach the conflict resolution to each state.
491 Complete the description with the precedence/associativity
492 information.
493 (resolve_sr_conflict): Adjust.
494 * src/print.c (print_state): Output its solved_conflicts.
495 * tests/conflicts.at (Unresolved SR Conflicts)
496 (Solved SR Conflicts): Exercise --report=all.
497
4982002-05-26 Akim Demaille <akim@epita.fr>
499
500 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
501 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
502 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
503 (token_number_t, item_number_as_token_number)
504 (token_number_as_item_number, muscle_insert_token_number_table):
505 Rename as...
506 (symbol_number_t, item_number_as_symbol_number)
507 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
508 these, since it is more appropriate.
509
5102002-05-26 Akim Demaille <akim@epita.fr>
511
512 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
513 `Error:' lines.
514 * data/bison.simple (yystos) [YYDEBUG]: New.
515 (yyparse) [YYDEBUG]: Display the symbols which are popped during
516 error recovery.
517 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
518
5192002-05-25 Akim Demaille <akim@epita.fr>
520
521 * doc/bison.texinfo (Debugging): Split into...
522 (Tracing): this new section, its former contents, and...
523 (Understanding): this new section.
524 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
525 by...
526 (report_flag): this.
527 Adjust all dependencies.
528 (report_args, report_types, report_argmatch): New.
529 (usage, getargs): Report/support -r, --report.
530 * src/options.h
531 (struct option_table_struct): Rename as..,
532 (struct option_table_s): this.
533 Rename the `set_flag' member to `flag' to match with getopt_long's
534 struct.
535 * src/options.c (option_table): Split verbose into an entry for
536 %verbose, and another for --verbose.
537 Support --report/-r, so remove -r from the obsolete --raw.
538 * src/print.c: Attach full item sets and lookaheads reports to
539 report_flag instead of trace_flag.
540 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
541
5422002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
543 and Paul Eggert <eggert@twinsun.com>
544
545 * data/bison.simple (yyparse): Correct error handling to conform to
546 POSIX and yacc. Specifically, after syntax error is discovered,
547 do not reduce further before shifting the error token.
548 Clean up the code a bit by removing the labels yyerrdefault,
549 yyerrhandle, yyerrpop.
550 * NEWS: Document the above.
551
5522002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
553
554 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
555 type; it isn't always big enough, since it doesn't necessarily
556 include non-terminals.
557 (yytranslate): Expand definition of yy_token_number_type, so that
558 the latter can be removed.
559 (yy_token_number_type): Remove, only one use.
560 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
561 don't use TokenNumberType as element type.
562
563 * tests/regression.at: Modify expected output to agree with change
564 to yyr1 and yytranslate.
565
5662002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
567
568 * src/reader.c (parse_action): Use copy_character instead of
569 obstack_1grow.
570
5712002-05-13 Akim Demaille <akim@epita.fr>
572
573 * tests/regression.at (Token definitions): Prototype yylex and
574 yyerror.
575
5762002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
577
578 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
579 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
580 32-bit arithmetic.
581 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
582
5832002-05-07 Akim Demaille <akim@epita.fr>
584
585 * tests/synclines.at: Be sure to prototype yylex and yyerror to
586 avoid GCC warnings.
587
5882002-05-07 Akim Demaille <akim@epita.fr>
589
590 Kill GCC warnings.
591
592 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
593 over the RHS of each rule.
594 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
595 * src/state.h (state_t): Member `nitems' is unsigned short.
596 * src/LR0.c (get_state): Adjust.
597 * src/reader.c (packgram): Likewise.
598 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
599 `Type'.
600 (muscle_insert_int_table): Remove, unused.
601 (prepare_rules): Remove `max'.
602
6032002-05-06 Akim Demaille <akim@epita.fr>
604
605 * src/closure.c (print_firsts): Display of the symbol tags.
606 (bitmatrix_print): Move to...
607 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
608 here.
609 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
610
6112002-05-06 Akim Demaille <akim@epita.fr>
612
613 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
614 hash_do_for_each.
615
6162002-05-06 Akim Demaille <akim@epita.fr>
617
618 * src/LR0.c (new_state, get_state): Instead of using the global
619 `kernel_size' and `kernel_base', have two new arguments:
620 `core_size' and `core'.
621 Adjust callers.
622
6232002-05-06 Akim Demaille <akim@epita.fr>
624
625 * src/reader.c (packgram): No longer end `ritem' with a 0
626 sentinel: it is not used.
627
6282002-05-05 Akim Demaille <akim@epita.fr>
629
630 New experimental feature: display the lookaheads in the report and
631 graph.
632
633 * src/print (print_core): When --trace-flag, display the rules
634 lookaheads.
635 * src/print_graph.c (print_core): Likewise.
636 Swap the arguments.
637 Adjust caller.
638
6392002-05-05 Akim Demaille <akim@epita.fr>
640
641 * tests/torture.at (Many lookaheads): New test.
642
6432002-05-05 Akim Demaille <akim@epita.fr>
644
645 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
646 (GENERATE_MUSCLE_INSERT_TABLE): this.
647 (output_int_table, output_unsigned_int_table, output_short_table)
648 (output_token_number_table, output_item_number_table): Replace with...
649 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
650 (muscle_insert_short_table, muscle_insert_token_number_table)
651 (muscle_insert_item_number_table): these.
652 Adjust all callers.
653 (prepare_tokens): Don't free `translations', since...
654 * src/reader.h, src/reader.c (grammar_free): do it.
655 Move to...
656 * src/gram.h, src/gram.c (grammar_free): here.
657 * data/bison.simple, data/bison.c++: b4_token_number_max is now
658 b4_translate_max.
659
6602002-05-05 Akim Demaille <akim@epita.fr>
661
662 * src/output.c (output_unsigned_int_table): New.
663 (prepare_rules): `i' is unsigned.
664 `prhs', `rline', `r2' are unsigned int.
665 Rename muscle `rhs_number_max' as `rhs_max'.
666 Output muscles `prhs_max', `rline_max', and `r2_max'.
667 Free rline and r1.
668 * data/bison.simple, data/bison.c++: Adjust to use these muscles
669 to compute types instead of constant types.
670 * tests/regression.at (Web2c Actions): Adjust.
671
6722002-05-04 Akim Demaille <akim@epita.fr>
673
674 * src/symtab.h (SALIAS, SUNDEF): Rename as...
675 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
676 Adjust dependencies.
677 * src/output.c (token_definitions_output): Be sure not to output a
678 `#define 'a'' when fed with `%token 'a' "a"'.
679 * tests/regression.at (Token definitions): New.
680
6812002-05-03 Paul Eggert <eggert@twinsun.com>
682
683 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
684 for K&R C.
685
6862002-05-03 gettextize <bug-gnu-gettext@gnu.org>
687
688 * Makefile.am (SUBDIRS): Remove intl.
689 (EXTRA_DIST): Add config/config.rpath.
690
6912002-05-03 Akim Demaille <akim@epita.fr>
692
693 * data/bison.simple (m4_if): Don't output empty enums.
694 And actually, output valid enum definitions :(.
695
6962002-05-03 Akim Demaille <akim@epita.fr>
697
698 * configure.bat: Remove, completely obsolete.
699 * Makefile.am (EXTRA_DIST): Adjust.
700 Don't distribute config.rpath...
701 * config/Makefile.am (EXTRA_DIST): Do it.
702
7032002-05-03 Akim Demaille <akim@epita.fr>
704
705 * configure.in (GETTEXT_VERSION): New.
706 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
707
7082002-05-03 Akim Demaille <akim@epita.fr>
709
710 * data/bison.simple (b4_token_enum): New.
711 (b4_token_defines): Use it to output tokens both as #define and
712 enums.
713 Suggested by Paul Eggert.
714 * src/output.c (token_definitions_output): Don't output spurious
715 white spaces.
716
7172002-05-03 Akim Demaille <akim@epita.fr>
718
719 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
720
7212002-05-02 Robert Anisko <robert@lrde.epita.fr>
722
723 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
724 Update the stack class, give a try to deque as the default container.
725
7262002-05-02 Akim Demaille <akim@epita.fr>
727
728 * data/bison.simple (yyparse): Do not implement @$ = @1.
729 (YYLLOC_DEFAULT): Adjust to do it.
730 * doc/bison.texinfo (Location Default Action): Fix.
731
7322002-05-02 Akim Demaille <akim@epita.fr>
733
734 * src/reader.c (parse_braces): Merge into...
735 (parse_action): this.
736
7372002-05-02 Akim Demaille <akim@epita.fr>
738
739 * configure.in (ALL_LINGUAS): Remove.
740 * po/LINGUAS, hr.po: New.
741
7422002-05-02 Akim Demaille <akim@epita.fr>
743
744 Remove the so called hairy (semantic) parsers.
745
746 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
747 * src/gram.h, src/gram.c (semantic_parser): Remove.
748 (rule_t): Remove the guard and guard_line members.
749 * src/lex.h (token_t): remove tok_guard.
750 * src/options.c (option_table): Remove %guard and %semantic_parser
751 support.
752 * src/output.c, src/output.h (guards_output): Remove.
753 (prepare): Adjust.
754 (token_definitions_output): Don't output the `T'
755 tokens (???).
756 (output_skeleton): Don't output the guards.
757 * src/files.c, src/files.c (attrsfile): Remove.
758 * src/reader.c (symbol_list): Remove the guard and guard_line
759 members.
760 Adjust dependencies.
761 (parse_guard): Remove.
762 * data/bison.hairy: Remove.
763 * doc/bison.texinfo (Environment Variables): Remove occurrences of
764 BISON_HAIRY.
765
7662002-05-02 Akim Demaille <akim@epita.fr>
767
768 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
769 (parse_guard): Rename the formal argument `stack_offset' as
770 `rule_length', which is more readable.
771 Adjust callers.
772 (copy_at, copy_dollar): Instead of outputting the hard coded
773 values of $$, $n and so forth, output invocation to b4_lhs_value,
774 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
775 Note: this patch partially drops `semantic-parser' support: it
776 always does `rule_length - n', where semantic parsers ought to
777 always use `-n'.
778 * data/bison.simple, data/bison.c++ (b4_lhs_value)
779 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
780
7812002-05-02 Akim Demaille <akim@epita.fr>
782
783 * configure.in (AC_INIT): Bump to 1.49b.
784 (AM_INIT_AUTOMAKE): Short invocation.
785
7862002-05-02 Akim Demaille <akim@epita.fr>
787
788 Version 1.49a.
789
7902002-05-01 Akim Demaille <akim@epita.fr>
791
792 * src/skeleton.h: Remove.
793
7942002-05-01 Akim Demaille <akim@epita.fr>
795
796 * src/skeleton.h: Fix the #endif.
797 Reported by Magnus Fromreide.
798
7992002-04-26 Paul Eggert <eggert@twinsun.com>
800
801 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
802 Define if we define YYSTYPE and YYLTYPE, respectively.
803 (YYCOPY): Fix [] quoting problem in the non-GCC case.
804
8052002-04-25 Robert Anisko <robert@lrde.epita.fr>
806
807 * src/scan-skel.l: Postprocess quadrigraphs.
808
809 * src/reader.c (copy_character): New function, used to output
810 single characters while replacing `[' and `]' with quadrigraphs, to
811 avoid troubles with M4 quotes.
812 (copy_comment): Output characters with copy_character.
813 (read_additionnal_code): Likewise.
814 (copy_string2): Likewise.
815 (copy_definition): Likewise.
816
817 * tests/calc.at: Exercise M4 quoting.
818
8192002-04-25 Akim Demaille <akim@epita.fr>
820
821 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
822 between `!' and the command.
823 Reported by Paul Eggert.
824
8252002-04-24 Robert Anisko <robert@lrde.epita.fr>
826
827 * tests/calc.at: Exercise prologue splitting.
828
829 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
830 `b4_post_prologue' instead of `b4_prologue'.
831
832 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
833 muscles.
834 (output): Free pre_prologue_obstack and post_prologue_obstack.
835 * src/files.h, src/files.c (attrs_obstack): Remove.
836 (pre_prologue_obstack, post_prologue_obstack): New.
837 * src/reader.c (copy_definition): Add a parameter to specify the
838 obstack to fill, instead of using attrs_obstack unconditionally.
839 (read_declarations): Pass pre_prologue_obstack to copy_definition if
840 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
841
8422002-04-23 Paul Eggert <eggert@twinsun.com>
843
844 * data/bison.simple: Remove unnecessary commentary and white
845 space differences from 1_29-branch.
846 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
847
848 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
849 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
850 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
851 constructors or destructors.
852
853 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
854
8552002-04-23 Akim Demaille <akim@epita.fr>
856
857 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
858 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
859 location with columns.
860 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
861 All reported by Paul Eggert.
862
8632002-04-22 Akim Demaille <akim@epita.fr>
864
865 * src/reduce.c (dump_grammar): Move to...
866 * src/gram.h, src/gram.c (grammar_dump): here.
867 Be sure to separate long item numbers.
868 Don't read the members of a rule's prec if its nil.
869
8702002-04-22 Akim Demaille <akim@epita.fr>
871
872 * src/output.c (table_size, table_grow): New.
873 (MAXTABLE): Remove, replace uses with table_size.
874 (pack_vector): Instead of dying when the table is too big, grow it.
875
8762002-04-22 Akim Demaille <akim@epita.fr>
877
878 * data/bison.simple (yyr1): Its type is that of a token number.
879 * data/bison.c++ (r1_): Likewise.
880 * tests/regression.at (Web2c Actions): Adjust.
881
8822002-04-22 Akim Demaille <akim@epita.fr>
883
884 * src/reader.c (token_translations_init): 256 is now the default
885 value for the error token, i.e., it will be assigned another
886 number if the user assigned 256 to one of her tokens.
887 (reader): Don't force 256 to error.
888 * doc/bison.texinfo (Symbols): Adjust.
889 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
890 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
891 etc. instead of 10, 20, 30 (which was used to `jump' over error
892 (256) and undefined (2)).
893
8942002-04-22 Akim Demaille <akim@epita.fr>
895
896 Propagate more token_number_t.
897
898 * src/gram.h (token_number_as_item_number)
899 (item_number_as_token_number): New.
900 * src/output.c (GENERATE_OUTPUT_TABLE): New.
901 Use it to create output_item_number_table and
902 output_token_number_table.
903 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
904 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
905 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
906 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
907
9082002-04-22 Akim Demaille <akim@epita.fr>
909
910 * src/output.h, src/output.c (get_lines_number): Remove.
911
9122002-04-19 Akim Demaille <akim@epita.fr>
913
914 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
915 as Lex/Flex'.
916 (Debugging): More details about enabling the debugging features.
917 (Table of Symbols): Describe $$, $n, @$, and @n.
918 Suggested by Tim Josling.
919
9202002-04-19 Akim Demaille <akim@epita.fr>
921
922 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
923
9242002-04-10 Akim Demaille <akim@epita.fr>
925
926 * src/system.h: Rely on HAVE_LIMITS_H.
927 Suggested by Paul Eggert.
928
9292002-04-09 Akim Demaille <akim@epita.fr>
930
931 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
932 full stderr, and strip it according to the bison options, instead
933 of composing the error message from different bits.
934 This makes it easier to check for several error messages.
935 Adjust all the invocations.
936 Add an invocation exercising the error token.
937 Add an invocation demonstrating a stupid error message.
938 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
939 Adjust the tests.
940 Error message are for stderr, not stdout.
941
9422002-04-09 Akim Demaille <akim@epita.fr>
943
944 * src/gram.h, src/gram.c (error_token_number): Remove, use
945 errtoken->number.
946 * src/reader.c (reader): Don't specify the user token number (2)
947 for $undefined, as it uselessly prevents using it.
948 * src/gram.h (token_number_t): Move to...
949 * src/symtab.h: here.
950 (state_t.number): Is a token_number_t.
951 * src/print.c, src/reader.c: Use undeftoken->number instead of
952 hard coded 2.
953 (Even though this 2 is not the same as above: the number of the
954 undeftoken remains being 2, it is its user token number which
955 might not be 2).
956 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
957 `user_token_number_max'.
958 Output `undef_token_number'.
959 * data/bison.simple, data/bison.c++: Use them.
960 Be sure to map invalid yylex return values to
961 `undef_token_number'. This saves us from gratuitous SEGV.
962
963 * tests/conflicts.at (Solved SR Conflicts)
964 (Unresolved SR Conflicts): Adjust.
965 * tests/regression.at (Web2c Actions): Adjust.
966
9672002-04-08 Akim Demaille <akim@epita.fr>
968
969 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
970 Adding #line.
971 Remove the duplicate `typedefs'.
972 (RhsNumberType): Fix the declaration and various other typos.
973 Use __ofile__.
974 * data/bison.simple: Use __ofile__.
975 * src/scan-skel.l: Handle __ofile__.
976
9772002-04-08 Akim Demaille <akim@epita.fr>
978
979 * src/gram.h (item_number_t): New, the type of item numbers in
980 RITEM. Note that it must be able to code symbol numbers as
981 positive number, and the negation of rule numbers as negative
982 numbers.
983 Adjust all dependencies (pretty many).
984 * src/reduce.c (rule): Remove this `short *' pointer: use
985 item_number_t.
986 * src/system.h (MINSHORT, MAXSHORT): Remove.
987 Include `limits.h'.
988 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
989 (shortcpy): Remove.
990 (MAXTABLE): Move to...
991 * src/output.c (MAXTABLE): here.
992 (prepare_rules): Use output_int_table to output rhs.
993 * data/bison.simple, data/bison.c++: Adjust.
994 * tests/torture.at (Big triangle): Move the limit from 254 to
995 500.
996 * tests/regression.at (Web2c Actions): Ajust.
997
998 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
999 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
1000 passes, but produces negative #line number, once fixed, GCC is
1001 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
1002 C), it passes.
1003 * src/state.h (state_h): Code input lines on ints, not shorts.
1004
10052002-04-08 Akim Demaille <akim@epita.fr>
1006
1007 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
1008 and then the grammar.
1009
10102002-04-08 Akim Demaille <akim@epita.fr>
1011
1012 * src/system.h: No longer using strndup.
1013
10142002-04-07 Akim Demaille <akim@epita.fr>
1015
1016 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
1017 * src/output.c (output_table_data): Return the longest number.
1018 (prepare_tokens): Output `token_number_max').
1019 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
1020 New.
1021 Use them to define yy_token_number_type/TokenNumberType.
1022 Use this type for yytranslate.
1023 * tests/torture.at (Big triangle): Push the limit from 124 to
1024 253.
1025 * tests/regression.at (Web2c Actions): Adjust.
1026
10272002-04-07 Akim Demaille <akim@epita.fr>
1028
1029 * tests/torture.at (Big triangle): New.
1030 (GNU AWK Grammar, GNU Cim Grammar): Move to...
1031 * tests/existing.at: here.
1032
10332002-04-07 Akim Demaille <akim@epita.fr>
1034
1035 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
1036 nritems.
1037 Adjust dependencies.
1038
10392002-04-07 Akim Demaille <akim@epita.fr>
1040
1041 * src/reader.c: Normalize increments to prefix form.
1042
10432002-04-07 Akim Demaille <akim@epita.fr>
1044
1045 * src/reader.c, symtab.c: Remove debugging code.
1046
10472002-04-07 Akim Demaille <akim@epita.fr>
1048
1049 Rename all the `bucket's as `symbol_t'.
1050
1051 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
1052 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
1053 * src/symtab.c, src/symtab.h (bucket): Rename as...
1054 (symbol_t): this.
1055 (symbol_list_new, bucket_check_defined, bucket_make_alias)
1056 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
1057 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
1058 (buckets_new, buckets_free, buckets_do): Rename as...
1059 (symbol_list_new, symbol_check_defined, symbol_make_alias)
1060 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
1061 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
1062 (symbols_new, symbols_free, symbols_do): these.
1063
10642002-04-07 Akim Demaille <akim@epita.fr>
1065
1066 Use lib/hash for the symbol table.
1067
1068 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
1069 EOF.
1070 * src/lex.c (lex): Set the `number' member of new terminals.
1071 * src/reader.c (bucket_check_defined, bucket_make_alias)
1072 (bucket_check_alias_consistence, bucket_translation): New.
1073 (reader, grammar_free, readgram, token_translations_init)
1074 (packsymbols): Adjust.
1075 (reader): Number the predefined tokens.
1076 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
1077 for predefined tokens.
1078 * src/symtab.h (bucket): Remove all the hash table related
1079 members.
1080 * src/symtab.c (symtab): Replace by...
1081 (bucket_table): this.
1082 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
1083 (buckets_new, buckets_do): New.
1084
10852002-04-07 Akim Demaille <akim@epita.fr>
1086
1087 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
1088 (start_symbol, max_user_token_number, semantic_parser)
1089 (error_token_number): Initialize.
1090 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
1091 Initialize.
1092 (reader): Don't.
1093 (errtoken, eoftoken, undeftoken, axiom): Extern.
1094
10952002-04-07 Akim Demaille <akim@epita.fr>
1096
1097 * src/gram.h (rule_s): prec and precsym are now pointers
1098 to the bucket giving the priority/associativity.
1099 Member `associativity' removed: useless.
1100 * src/reduce.c, src/conflicts.c: Adjust.
1101
11022002-04-07 Akim Demaille <akim@epita.fr>
1103
1104 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
1105 Properly escape the symbols' TAG when outputting them.
1106
11072002-04-07 Akim Demaille <akim@epita.fr>
1108
1109 * src/lalr.h (LA): Is a bitsetv, not bitset*.
1110
11112002-04-07 Akim Demaille <akim@epita.fr>
1112
1113 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
1114 (LArule): this, which is an array to rule_t*.
1115 * src/print.c, src/conflicts.c: Adjust.
1116
11172002-04-07 Akim Demaille <akim@epita.fr>
1118
1119 * src/gram.h (rule_t): Rename `number' as `user_number'.
1120 `number' is a new member.
1121 Adjust dependencies.
1122 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
1123
11242002-04-07 Akim Demaille <akim@epita.fr>
1125
1126 As a result of the previous patch, it is no longer needed
1127 to reorder ritem itself.
1128
1129 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
1130
11312002-04-07 Akim Demaille <akim@epita.fr>
1132
1133 Be sure never to walk through RITEMS, but use only data related to
1134 the rules themselves. RITEMS should be banished.
1135
1136 * src/output.c (output_token_translations): Rename as...
1137 (prepare_tokens): this.
1138 In addition to `translate', prepare the muscles `tname' and
1139 `toknum', which were handled by...
1140 (output_rule_data): this.
1141 Remove, and move the remainder of its outputs into...
1142 (prepare_rules): this new routines, which also merges content from
1143 (output_gram): this.
1144 (prepare_rules): Be sure never to walk through RITEMS.
1145 (output_stos): Rename as...
1146 (prepare_stos): this.
1147 (output): Always invoke prepare_states, after all, just don't use it
1148 in the output if you don't need it.
1149
11502002-04-07 Akim Demaille <akim@epita.fr>
1151
1152 * src/LR0.c (new_state): Display `nstates' as the name of the
1153 newly created state.
1154 Adjust to initialize first_state and last_state if needed.
1155 Be sure to distinguish the initial from the final state.
1156 (new_states): Create the itemset of the initial state, and use
1157 new_state.
1158 * src/closure.c (closure): Now that the initial state has its
1159 items properly set, there is no need for a special case when
1160 creating `ruleset'.
1161
1162 As a result, now the rule 0, reducing to $axiom, is visible in the
1163 outputs. Adjust the test suite.
1164
1165 * tests/conflicts.at (Solved SR Conflicts)
1166 (Unresolved SR Conflicts): Adjust.
1167 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
1168 * tests/conflicts.at (S/R in initial): New.
1169
11702002-04-07 Akim Demaille <akim@epita.fr>
1171
1172 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
1173 the RHS of the rules.
1174 * src/output.c (output_gram): Likewise.
1175
11762002-04-07 Akim Demaille <akim@epita.fr>
1177
1178 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
1179 bucket.
1180 Adjust all dependencies.
1181 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
1182 `number' of the buckets too.
1183 * src/gram.h: Include `symtab.h'.
1184 (associativity): Move to...
1185 * src/symtab.h: here.
1186 No longer include `gram.h'.
1187
11882002-04-07 Akim Demaille <akim@epita.fr>
1189
1190 * src/gram.h, src/gram.c (rules_rhs_length): New.
1191 (ritem_longest_rhs): Use it.
1192 * src/gram.h (rule_t): `number' is a new member.
1193 * src/reader.c (packgram): Set it.
1194 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
1195 the end of `rules', and count them out of `nrules'.
1196 (reduce_output, dump_grammar): Adjust.
1197 * src/print.c (print_grammar): It is no longer needed to check for
1198 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
1199 * tests/reduce.at (Reduced Automaton): New test.
1200
12012002-04-07 Akim Demaille <akim@epita.fr>
1202
1203 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
1204 lacking `+ 1' to nrules, Bison reported as useless a token if it
1205 was used solely to set the precedence of the last rule...
1206
12072002-04-07 Akim Demaille <akim@epita.fr>
1208
1209 * data/bison.c++, data/bison.simple: Don't output the current file
1210 name in #line, to avoid useless diffs between two identical
1211 outputs under different names.
1212
12132002-04-07 Akim Demaille <akim@epita.fr>
1214
1215 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
1216 Normalize loops to using `< nrules + 1', not `<= nrules'.
1217
12182002-04-07 Akim Demaille <akim@epita.fr>
1219
1220 * TODO: Update.
1221
12222002-04-07 Akim Demaille <akim@epita.fr>
1223
1224 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
1225 bucket.value as bucket.number.
1226
12272002-04-07 Akim Demaille <akim@epita.fr>
1228
1229 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
1230 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
1231 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
1232 RHS, instead of being an index in RITEMS.
1233
12342002-04-04 Paul Eggert <eggert@twinsun.com>
1235
1236 * doc/bison.texinfo: Update copyright date.
1237 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
1238 (Symbols): Warn about running Bison in one character set,
1239 but compiling and/or running in an incompatible one.
1240 Warn about character code 256, too.
1241
12422002-04-03 Paul Eggert <eggert@twinsun.com>
1243
1244 * src/bison.data (YYSTACK_ALLOC): Depend on whether
1245 YYERROR_VERBOSE is nonzero, not whether it is defined.
1246
1247 Merge changes from bison-1_29-branch.
1248
12492002-03-20 Paul Eggert <eggert@twinsun.com>
1250
1251 Merge fixes from Debian bison_1.34-1.diff.
1252
1253 * configure.in (AC_PREREQ): 2.53.
1254
12552002-03-20 Akim Demaille <akim@epita.fr>
1256
1257 * src/conflicts.c (log_resolution): Argument `resolution' is const.
1258
12592002-03-19 Paul Eggert <eggert@twinsun.com>
1260
1261 * src/bison.simple (YYCOPY): New macro.
1262 (YYSTACK_RELOCATE): Use it.
1263 Remove Type arg; no longer needed. All callers changed.
1264 (yymemcpy): Remove; no longer needed.
1265
1266 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
1267 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
1268
12692002-03-19 Akim Demaille <akim@epita.fr>
1270
1271 Test and fix the #line outputs.
1272
1273 * tests/atlocal.at (GCC): New.
1274 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
1275 (Prologue synch line, ,%union synch line, Postprologue synch line)
1276 (Action synch line, Epilogue synch line): New tests.
1277 * src/reader.c (parse_union_decl): Define the muscle stype_line.
1278 * data/bison.simple, data/bison.c++: Use it.
1279
12802002-03-19 Akim Demaille <akim@epita.fr>
1281
1282 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
1283 (Solved SR Conflicts, %expect not enough, %expect right)
1284 (%expect too much): Move to...
1285 * tests/conflicts.at: this new file.
1286
12872002-03-19 Akim Demaille <akim@epita.fr>
1288
1289 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
1290 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
1291 that we can move to enums for instance.
1292 * src/output.c (token_definitions_output): Output a list of
1293 `token-name, token-number' instead of the #define.
1294 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
1295
12962002-03-14 Akim Demaille <akim@epita.fr>
1297
1298 Use Gettext 0.11.1.
1299
13002002-03-09 Robert Anisko <robert@lrde.epita.fr>
1301
1302 * data/bison.c++: Make the user able to add members to the generated
1303 parser by subclassing.
1304
13052002-03-05 Robert Anisko <robert@lrde.epita.fr>
1306
1307 * src/reader.c (read_additionnal_code): `c' should be an integer, not
1308 a character.
1309 Reported by Nicolas Tisserand and Nicolas Burrus.
1310
13112002-03-04 Robert Anisko <robert@lrde.epita.fr>
1312
1313 * src/reader.c: Warn about lacking semi-colons, do not complain.
1314
13152002-03-04 Robert Anisko <robert@lrde.epita.fr>
1316
1317 * data/bison.c++: Remove a debug line.
1318
13192002-03-04 Robert Anisko <robert@lrde.epita.fr>
1320
1321 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
1322 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
1323 provide a default implementation.
1324
13252002-03-04 Akim Demaille <akim@epita.fr>
1326
1327 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
1328 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
1329 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
1330 * tests/semantic.at (Parsing Guards): Similarly.
1331 * src/reader.at (readgram): Complain if the last rule is not ended
1332 with a semi-colon.
1333
13342002-03-04 Akim Demaille <akim@epita.fr>
1335
1336 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
1337 * src/closure.c: here.
1338 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
1339 RTC.
1340 * src/warshall.h, src/warshall.c: Remove.
1341 * tests/sets.at (Broken Closure): Adjust.
1342
13432002-03-04 Akim Demaille <akim@epita.fr>
1344
1345 * src/output.c (output_skeleton): tempdir is const.
1346 bytes_read is unused.
1347
13482002-03-04 Akim Demaille <akim@epita.fr>
1349
1350 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
1351 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
1352 Update.
1353 From Michael Hayes.
1354
13552002-03-04 Akim Demaille <akim@epita.fr>
1356
1357 * src/closure.c (closure): `r' is unused.
1358
13592002-03-04 Akim Demaille <akim@epita.fr>
1360
1361 * tests/sets.at (Broken Closure): Add the ending `;'.
1362 * src/reader.at (readgram): Complain if a rule is not ended with a
1363 semi-colon.
1364
13652002-03-04 Akim Demaille <akim@epita.fr>
1366
1367 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
1368 (count_sr_conflicts): Use bitset_count.
1369 * src/reduce.c (inaccessable_symbols): Ditto.
1370 (bits_size): Remove.
1371 * src/warshall.h, src/warshall.c: Convert to bitsetv.
1372
13732002-03-04 Akim Demaille <akim@epita.fr>
1374
1375 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
1376 * src/reduce.c: Remove the `bitset_zero's following the
1377 `bitset_create's, as now it is performed by the latter.
1378
13792002-03-04 Akim Demaille <akim@epita.fr>
1380
1381 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
1382 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
1383 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
1384 latest sources from Michael.
1385
13862002-03-04 Akim Demaille <akim@epita.fr>
1387
1388 * src/output.c (output): Don't free the grammar.
1389 * src/reader.c (grammar_free): New.
1390 * src/main.c (main): Call it and don't free symtab here.
1391
13922002-03-04 Akim Demaille <akim@epita.fr>
1393
1394 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
1395 before returning.
1396 Reported by Benoit Perrot.
1397
13982002-03-04 Akim Demaille <akim@epita.fr>
1399
1400 Use bitset operations when possible, not loops over bits.
1401
1402 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
1403 bitset_or.
1404 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
1405 * src/reduce.c (useless_nonterminals): Formatting changes.
1406 * src/warshall.c (TC): Use bitset_or.
1407
14082002-03-04 Akim Demaille <akim@epita.fr>
1409
1410 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
1411 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
1412 Ditto.
1413
14142002-03-04 Akim Demaille <akim@epita.fr>
1415
1416 * src/lalr.c (F): Now a bitset*.
1417 Adjust all dependencies.
1418
14192002-03-04 Akim Demaille <akim@epita.fr>
1420
1421 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
1422 Adjust all dependencies.
1423
14242002-03-04 Akim Demaille <akim@epita.fr>
1425
1426 * src/L0.c, src/LR0.h (nstates): Be size_t.
1427 Adjust comparisons (signed vs unsigned).
1428 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
1429 bitset*.
1430 Adjust all dependencies.
1431
14322002-03-04 Akim Demaille <akim@epita.fr>
1433
1434 * src/closure.c (firsts): Now, also a bitset.
1435 Adjust all dependencies.
1436 (varsetsize): Remove, now unused.
1437 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
1438
14392002-03-04 Akim Demaille <akim@epita.fr>
1440
1441 * src/print.c: Convert to use bitset.h, not hand coded iterations
1442 over ints.
1443
14442002-03-04 Akim Demaille <akim@epita.fr>
1445
1446 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
1447
14482002-03-04 Akim Demaille <akim@epita.fr>
1449
1450 * src/closure.c (ruleset): Be a bitset.
1451 (rulesetsize): Remove.
1452
14532002-03-04 Akim Demaille <akim@epita.fr>
1454
1455 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
1456 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
1457 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
1458 * src/closure.c (fderives): Be an array of bitsets.
1459
14602002-02-28 Robert Anisko <robert@lrde.epita.fr>
1461
1462 * data/bison.c++: Merge the two generated headers. Insert a copyright
1463 notice in each output file.
1464
14652002-02-28 Akim Demaille <akim@epita.fr>
1466
1467 * data/bison.c++: Copy the prologue of bison.simple to fetch
1468 useful M4 definitions, such as b4_header_guard.
1469
14702002-02-25 Akim Demaille <akim@epita.fr>
1471
1472 * src/getargs.c (version): Give the name of the authors, and use a
1473 translator friendly scheme for the bgr
1474 copyright notice.
1475
14762002-02-25 Akim Demaille <akim@epita.fr>
1477
1478 * src/output.c (header_output): Remove, now handled completely via
1479 M4.
1480
14812002-02-25 Akim Demaille <akim@epita.fr>
1482
1483 * m4/m4.m4: New, from CVS Autoconf.
1484 * configure.in: Invoke it.
1485 * src/output.c (output_skeleton): Use its result instead of the
1486 hard coded name.
1487
14882002-02-25 Akim Demaille <akim@epita.fr>
1489
1490 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
1491 Fileutils 4.1.5.
1492 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
1493 * src/output.c (output_skeleton): Use mkstemp to create a real
1494 temporary file.
1495 Move the filling of `skeleton' and its muscle to...
1496 (prepare): here.
1497 (output): Move the definition of the prologue muscle to...
1498 (prepare): here.
1499 * src/system.h (DEFAULT_TMPDIR): New.
1500
15012002-02-14 Paul Eggert <eggert@twinsun.com>
1502
1503 Remove the support for C++ namespace cleanliness; it was
1504 causing more problems than it was curing, since it didn't work
1505 properly on some nonstandard C++ compilers. This can wait
1506 for a proper C++ parser.
1507
1508 * NEWS: Document this.
1509 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
1510 of C++, as it's treated like C now.
1511 * src/bison.simple (YYSTD): Remove.
1512 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
1513 Treat C++ just like Standard C instead of trying to support
1514 namespace cleanliness.
1515
15162002-02-14 Akim Demaille <akim@epita.fr>
1517
1518 * tests/regression.at (else): Adjust to Andreas' change.
1519
15202002-02-14 Akim Demaille <akim@epita.fr>
1521
1522 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
1523
15242002-02-13 Andreas Schwab <schwab@suse.de>
1525
1526 * src/output.c (output_rule_data): Don't output NULL, it might
1527 not be defined yet.
1528
15292002-02-11 Robert Anisko <robert@lrde.epita.fr>
1530
1531 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
1532 (Copyright notice): Update.
1533
15342002-02-11 Akim Demaille <akim@epita.fr>
1535
1536 * tests/regression.at (%nonassoc and eof): Don't include
1537 nonportable headers.
1538
15392002-02-08 Robert Anisko <robert@lrde.epita.fr>
1540
1541 * data/bison.c++: Correct error recovery. Make the user able to
1542 initialize the starting location.
1543
15442002-02-07 Akim Demaille <akim@epita.fr>
1545
1546 * tests/input.at: New.
1547
15482002-02-07 Robert Anisko <robert@lrde.epita.fr>
1549
1550 * data/bison.c++: Replace some direct m4 expansions by constants. Be
1551 more consistent when naming methods and variables. Put preprocessor
1552 directives around tables only needed for debugging.
1553
15542002-02-07 Robert Anisko <robert@lrde.epita.fr>
1555
1556 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
1557 C++ parsers.
1558 (yy::b4_name::parse): Use print_.
1559
15602002-02-07 Robert Anisko <robert@lrde.epita.fr>
1561
1562 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
1563
15642002-02-07 Robert Anisko <robert@lrde.epita.fr>
1565
1566 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
1567 C++ parsers.
1568 (yy::b4_name::parse): Build verbose error messages, and use error_.
1569
15702002-02-06 Robert Anisko <robert@lrde.epita.fr>
1571
1572 * data/bison.c++: Fix m4 quoting in comments.
1573
15742002-02-06 Robert Anisko <robert@lrde.epita.fr>
1575
1576 * data/bison.c++: Adjust the parser code. Fix some muscles that were
1577 not expanded by m4.
1578
15792002-02-05 Akim Demaille <akim@epita.fr>
1580
1581 * data/bison.c++: Adjust to the M4 back end.
1582 More is certainly needed.
1583
15842002-02-05 Akim Demaille <akim@epita.fr>
1585
1586 Give a try to M4 as a back end.
1587
1588 * lib/readpipe.c: New, from wdiff.
1589 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
1590 BISON_HAIRY.
1591 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
1592 specific values. Now it is m4 that performs the lookup.
1593 * src/parse-skel.y: Remove.
1594 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
1595 * src/output.c (actions_output, guards_output)
1596 (token_definitions_output): No longer keeps track of the output
1597 line number, hence remove the second argument.
1598 (guards_output): Check against the guard member of a rule, not the
1599 action member.
1600 Adjust callers.
1601 (output_skeleton): Don't look for the skeleton location, let m4 do
1602 that.
1603 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
1604 file will be used.
1605 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
1606 (prepare): Given that for the time being changesyntax is not
1607 usable in M4, rename the muscles using `-' to `_'.
1608 Define `defines_flag', `output_parser_name' and `output_header_name'.
1609 * src/output.h (actions_output, guards_output)
1610 (token_definitions_output): Adjust prototypes.
1611 * src/scan-skel.l: Instead of scanning the skeletons, it now
1612 processes the output of m4: `__oline__' and `#output'.
1613 * data/bison.simple: Adjust to be used by M4(sugar).
1614 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
1615 to date.
1616 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
1617 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
1618 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
1619 shamelessly stolen from CVS Autoconf.
1620
16212002-02-05 Akim Demaille <akim@epita.fr>
1622
1623 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
1624 * configure.in: Check for the declarations of free and malloc.
1625 * src/muscle_tab.c: Adjust.
1626
16272002-02-05 Akim Demaille <akim@epita.fr>
1628
1629 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
1630 which have no values.
1631
16322002-02-05 Akim Demaille <akim@epita.fr>
1633
1634 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
1635 * data/: here.
1636
16372002-01-29 Paul Eggert <eggert@twinsun.com>
1638
1639 * src/bison.simple (YYSIZE_T): Do not define merely because
1640 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
1641 On some platforms, <alloca.h> does not declare YYSTD (size_t).
1642
16432002-01-27 Akim Demaille <akim@epita.fr>
1644
1645 Fix `%nonassoc and eof'.
1646
1647 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
1648 which were not properly copied! Replace
1649 memcpy (res->errs, src->errs, src->nerrs);
1650 with
1651 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
1652 !!!
1653 * tests/regression.at (%nonassoc and eof): Adjust to newest
1654 Autotest: `.' is not in the PATH.
1655
16562002-01-27 Akim Demaille <akim@epita.fr>
1657
1658 * tests/sets.at (AT_EXTRACT_SETS): New.
1659 (Nullable): Use it.
1660 (Firsts): New.
1661
16622002-01-26 Akim Demaille <akim@epita.fr>
1663
1664 * tests/actions.at, tests/calc.at, tests/headers.at,
1665 * tests/torture.at: Adjust to the newest Autotest which no longer
1666 forces `.' in the PATH.
1667
16682002-01-25 Akim Demaille <akim@epita.fr>
1669
1670 * tests/regression.at (%nonassoc and eof): New.
1671 Suggested by Robert Anisko.
1672
16732002-01-24 Akim Demaille <akim@epita.fr>
1674
1675 Bison dumps core when trying to complain about broken input files.
1676 Reported by Cris van Pelt.
1677
1678 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
1679 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
1680 into...
1681 (Invalid inputs): Strengthen: exercise parse_percent_token.
1682
16832002-01-24 Robert Anisko <robert.anisko@epita.fr>
1684
1685 * src/Makefile.am: Add bison.c++.
1686 * src/bison.c++: New skeleton.
1687
16882002-01-21 Paolo Bonzini <bonzini@gnu.org>
1689
1690 * po/it.po: New.
1691
16922002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
1693
1694 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
1695
16962002-01-20 Marc Autret <marc@gnu.org>
1697
1698 * src/files.c (compute_output_file_names): Fix
1699
17002002-01-20 Marc Autret <marc@gnu.org>
1701
1702 * tests/output.at: New test.
1703 * src/files.c (compute_base_names): Don't map extensions when
1704 the YACC flag is set, use defaults.
1705 Reported by Evgeny Stambulchik.
1706
17072002-01-20 Marc Autret <marc@gnu.org>
1708
1709 * src/system.h: Need to define __attribute__ away for non-GCC
1710 compilers as well (i.e. the vendor C compiler).
1711 Suggested by Albert Chin-A-Young.
1712
17132002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
1714
1715 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
1716 canonical definition.
1717 * src/system.h: Use the canonical definition for PARAMS (avoids
1718 a conflict with the macro from lib/hash.h).
1719
17202002-01-11 Akim Demaille <akim@epita.fr>
1721
1722 * configure.in: Use AC_FUNC_STRNLEN.
1723 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
1724
17252002-01-09 Akim Demaille <akim@epita.fr>
1726
1727 * src/files.c, src/files.h (output_infix): New.
1728 (tab_extension): Remove.
1729 (compute_base_names): Compute the former, drop the latter.
1730 * src/output.c (prepare): Insert the muscles `output-infix', and
1731 `output-suffix'.
1732 * src/parse-skel.y (string, string.1): New.
1733 (section.header): Use it.
1734 (section.yacc): Remove.
1735 (prefix): Remove too.
1736 * src/scan-skel.l: Adjust.
1737 * src/bison.simple, src/bison.hairy: Adjust.
1738
17392002-01-09 Akim Demaille <akim@epita.fr>
1740
1741 * configure.in (WERROR_CFLAGS): Compute it.
1742 * src/Makefile.am (CFLAGS): Pass it.
1743 * tests/atlocal.in (CFLAGS): Idem.
1744 * src/files.c: Fix a few warnings.
1745 (get_extension_index): Remove, unused.
1746
17472002-01-08 Akim Demaille <akim@epita.fr>
1748
1749 * src/getargs.c (AS_FILE_NAME): New.
1750 (getargs): Use it to convert DOSish file names.
1751 * src/files.c (base_name): Rename as full_base_name to avoid
1752 clashes with `base_name ()'.
1753 (filename_split): New.
1754 (compute_base_names): N-th rewrite, using filename_split.
1755
17562002-01-08 Akim Demaille <akim@epita.fr>
1757
1758 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
1759 New, stolen from the Fileutils 4.1.
1760 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
1761 * configure.in: Check for the presence of memrchr, and of its
1762 prototype.
1763
17642002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
1765
1766 * lib/hash.h (__P): Added definition for this macro.
1767 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
1768 BUILT_SOURCES, to ensure they are generated first.
1769 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
1770 %error-verbose to allow bootstrapping with bison 1.30x.
1771
17722002-01-06 Akim Demaille <akim@epita.fr>
1773
1774 * src/reader.c (parse_braces): Don't fetch the next char, the
1775 convention is to fetch on entry.
1776 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
1777 'switch' without a following semicolon.
1778 * tests/regression.at (braces parsing): New.
1779
17802002-01-06 Akim Demaille <akim@epita.fr>
1781
1782 Bison is dead wrong in its RR conflict reports.
1783
1784 * tests/torture.at (GNU Cim Grammar): New.
1785 * src/conflicts.c (count_rr_conflicts): Fix.
1786
17872002-01-06 Akim Demaille <akim@epita.fr>
1788
1789 Creating package.m4 from configure.ac causes too many problems.
1790
1791 * tests/Makefile.am (package.m4): Create it by hand,
1792 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
1793
17942002-01-06 Akim Demaille <akim@epita.fr>
1795
1796 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
1797 skeleton.h.
1798
17992002-01-04 Paul Eggert <eggert@twinsun.com>
1800
1801 * doc/bison.texinfo (Debugging):
1802 Remove YYSTDERR; it's no longer defined or used.
1803 Also, s/cstdio.h/cstdio/.
1804
18052002-01-03 Akim Demaille <akim@epita.fr>
1806
1807 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
1808
18092002-01-03 Akim Demaille <akim@epita.fr>
1810
1811 * src/parse-skel.y (process_skeleton): Don't bind the parser's
1812 tracing code to --trace, wait for a better --trace option, with
1813 args.
1814
18152002-01-03 Akim Demaille <akim@epita.fr>
1816
1817 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
1818 The ISO C++ standard is extremely clear about it: stderr is
1819 considered a macro, not a regular symbol (see table 94 `Header
1820 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
1821 Therefore std:: does not apply to it. It still does with fprintf.
1822 Also, s/cstdio.h/cstdio/.
1823
18242002-01-03 Akim Demaille <akim@epita.fr>
1825
1826 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
1827 for non system headers.
1828
18292002-01-02 Akim Demaille <akim@epita.fr>
1830
1831 Equip the skeleton chain with location tracking, runtime trace,
1832 pure parser and scanner.
1833
1834 * src/parse-skel.y: Request a pure parser, locations, and prefix
1835 renaming.
1836 (%union): Having several members with the same type does not help
1837 type mismatches, simplify.
1838 (YYPRINT, yyprint): New.
1839 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
1840 (skel_error): this.
1841 Handle locations.
1842 * src/scan-skel.l: Adjust to these changes.
1843 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
1844 (LOCATION_PRINT, skel_control_t): New.
1845
18462001-12-30 Akim Demaille <akim@epita.fr>
1847
1848 * src/parse-skel.y: Get rid of the shift/reduce conflict:
1849 replace `gb' with BLANKS.
1850 * src/scan-skel.l: Adjust.
1851
18522001-12-30 Akim Demaille <akim@epita.fr>
1853
1854 * src/system.h: We don't need nor want bcopy.
1855 Throw away MS-DOS crap: we don't need getpid.
1856 * configure.in: We don't need strndup. It was even causing
1857 problems: because Flex includes the headers *before* us,
1858 _GNU_SOURCE is not defined by config.h, and therefore strndup was
1859 not visible.
1860 * lib/xstrndup.c: New.
1861 * src/scan-skel.l: Use it.
1862 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
1863 * src/parse-skel.y: Use %directives instead of #defines.
1864
18652001-12-30 Akim Demaille <akim@epita.fr>
1866
1867 * src/skeleton.h: New.
1868 * src/output.c (output_parser, output_master_parser): Remove, dead
1869 code.
1870 * src/output.h (get_lines_number, actions_output, guards_output)
1871 (token_definitions_output): Prototype them.
1872 * src/parse-skel.y: Add the license notice.
1873 Include output.h and skeleton.h.
1874 (process_skeleton): Returns void, and takes a single parameter.
1875 * src/scan-skel.l: Add the license notice.
1876 Include skeleton.h.
1877 Don't use %option yylineno: it seems that then Flex imagines
1878 REJECT has been used, and therefore it won't reallocate its
1879 buffers (which makes no other sense to me than a bug). It results
1880 in warnings for `unused: yy_flex_realloc'.
1881
18822001-12-30 Robert Anisko <robert.anisko@epita.fr>
1883
1884 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
1885 (MUSCLE_INSERT_PREFIX): ...to there.
1886 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
1887 (MUSCLE_INSERT_PREFIX): Move from here...
1888
1889 * src/bison.hairy: Add a section directive. Put braces around muscle
1890 names. This parser skeleton is still broken, but Bison should not
1891 choke on a bad muscle 'syntax'.
1892 * src/bison.simple: Add a section directive. Put braces around muscle
1893 names.
1894
1895 * src/files.h (strsuffix, stringappend): Add declarations.
1896 (tab_extension): Add declaration.
1897 (short_base_name): Add declaration.
1898
1899 * src/files.c (strsuffix, stringappend): No longer static. These
1900 functions are used in the skeleton parser.
1901 (tab_extension): New.
1902 (compute_base_names): Use the computations done in this function
1903 to guess if the generated parsers should have '.tab' in their
1904 names.
1905 (short_base_name): No longer static.
1906
1907 * src/output.c (output_skeleton): New.
1908 (output): Disable call to output_master_parser, and give a try to
1909 a new skeleton handling system.
1910 (guards_output, actions_output): No longer static.
1911 (token_definitions_output, get_lines_number): No longer static.
1912
1913 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
1914
1915 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
1916 parse-skel.y.
1917
1918 * src/parse-skel.y: New file.
1919 * src/scan-skel.l: New file.
1920
19212001-12-29 Akim Demaille <akim@epita.fr>
1922
1923 %name-prefix is broken.
1924
1925 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
1926 Adjust all dependencies.
1927 * tests/headers.at (export YYLTYPE): Strengthen this test: use
1928 %name-prefix.
1929
1930 Renaming yylval but not yylloc is not consistent. Now we do.
1931
1932 * src/bison.simple: Prefix yylloc if used.
1933 * doc/bison.texinfo (Decl Summary): Document that.
1934
19352001-12-29 Akim Demaille <akim@epita.fr>
1936
1937 * doc/bison.texinfo: Promote `%long-directive' over
1938 `%long_directive'.
1939 Remove all references to fixed-output-files, yacc is enough.
1940
19412001-12-29 Akim Demaille <akim@epita.fr>
1942
1943 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
1944 user prologue. These are defaults.
1945 * tests/actions.at (Mid-rule actions): Make sure the user can
1946 define YYDEBUG and YYERROR_VERBOSE.
1947
19482001-12-29 Akim Demaille <akim@epita.fr>
1949
1950 * src/output.c (header_output): Don't forget to export YYLTYPE and
1951 yylloc.
1952 * tests/headers.at (export YYLTYPE): New, make sure it does.
1953 * tests/regression.at (%union and --defines, Invalid CPP headers):
1954 Move to...
1955 * tests/headers.at: here.
1956
19572001-12-29 Akim Demaille <akim@epita.fr>
1958
1959 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
1960
19612001-12-29 Akim Demaille <akim@epita.fr>
1962
1963 * tests/actions.at (Mid-rule actions): Output on a single line
1964 instead of several.
1965
19662001-12-29 Akim Demaille <akim@epita.fr>
1967
1968 * doc/bison.texinfo: Formatting changes.
1969
19702001-12-29 Akim Demaille <akim@epita.fr>
1971
1972 Don't store the token defs in a muscle, just be ready to output it
1973 on command. Now possible via `symbols'. Fixes a memory leak.
1974
1975 * src/output.c (token_definitions_output): New.
1976 (output_parser, header_output): Use it.
1977 * src/reader.c (symbols_save): Remove.
1978
19792001-12-29 Akim Demaille <akim@epita.fr>
1980
1981 * src/bison.simple: Do not provide a default for YYSTYPE and
1982 YYLTYPE before the user's prologue. Otherwise it's hardly... a
1983 default.
1984
19852001-12-29 Akim Demaille <akim@epita.fr>
1986
1987 Mid-rule actions are simply... ignored!
1988
1989 * src/reader.c (readgram): Be sure to attach mid-rule actions to
1990 the empty-rule associated to the dummy symbol, not to the host
1991 rule.
1992 * tests/actions.at (Mid-rule actions): New.
1993
19942001-12-29 Akim Demaille <akim@epita.fr>
1995
1996 Memory leak.
1997
1998 * src/reader.c (reader): Free grammar.
1999
20002001-12-29 Akim Demaille <akim@epita.fr>
2001
2002 Memory leak.
2003
2004 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
2005 since it allocates it for each state, although only one is needed.
2006 (allocate_storage): Do it here.
2007
20082001-12-29 Akim Demaille <akim@epita.fr>
2009
2010 * src/options.h, src/options.c (create_long_option_table): Rename
2011 as...
2012 (long_option_table_new): this, with a clearer prototype.
2013 (percent_table): Remove, unused,
2014 * src/getargs.c (getargs): Adjust.
2015
20162001-12-29 Akim Demaille <akim@epita.fr>
2017
2018 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
2019 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
2020 as states.
2021
20222001-12-29 Akim Demaille <akim@epita.fr>
2023
2024 * src/lalr.c (build_relations): Rename `states' as `states1'.
2025 Sorry, I don't understand exactly what it is, no better name...
2026
20272001-12-29 Akim Demaille <akim@epita.fr>
2028
2029 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
2030 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
2031 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
2032 as rules.
2033
20342001-12-29 Akim Demaille <akim@epita.fr>
2035
2036 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
2037 ago.
2038
20392001-12-29 Akim Demaille <akim@epita.fr>
2040
2041 * src/reader.c, src/reader.h (user_toknums): Remove.
2042 Adjust all users to use symbols[i]->user_token_number.
2043
20442001-12-29 Akim Demaille <akim@epita.fr>
2045
2046 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
2047 Adjust all users to use symbols[i]->prec or ->assoc.
2048
20492001-12-29 Akim Demaille <akim@epita.fr>
2050
2051 * src/reader.c, src/reader.h (tags): Remove.
2052 Adjust all users to use symbols[i]->tag.
2053
20542001-12-29 Akim Demaille <akim@epita.fr>
2055
2056 * src/gram.h, src/gram.c (symbols): New, similar to state_table
2057 and rule_table.
2058 * src/reader.c (packsymbols): Fill this table.
2059 Drop sprec.
2060 * src/conflicts.c (resolve_sr_conflict): Adjust.
2061 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
2062 single table.
2063 Use symbols[i]->tag instead of tags[i].
2064
20652001-12-29 Akim Demaille <akim@epita.fr>
2066
2067 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
2068 In addition, put a comment in there, to replace...
2069 * tests/regression.at (%union and C comments): Remove.
2070
20712001-12-29 Akim Demaille <akim@epita.fr>
2072
2073 * tests/regression.at (Web2c Actions): Blindly move the actual
2074 output as expected output. The contents *seem* right to me, but I
2075 can't pretend reading perfectly parser tables... Nonetheless, all
2076 the other tests pass correctly, the table look OK, even though the
2077 presence of `$axiom' is to be noted: AFAICS it is useless (but
2078 harmless).
2079
20802001-12-29 Akim Demaille <akim@epita.fr>
2081
2082 * src/reader.c (readgram): Don't add the rule 0 if there were no
2083 rules read. In other words, add it _after_ having performed
2084 grammar sanity checks.
2085 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
2086
20872001-12-29 Akim Demaille <akim@epita.fr>
2088
2089 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
2090 visible, and some states have now a different number.
2091
20922001-12-29 Akim Demaille <akim@epita.fr>
2093
2094 * src/reader.c (readgram): Bind the initial rule's lineno to that
2095 of the first rule.
2096 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
2097 (Solved SR Conflicts): Adjust rule 0's line number.
2098
20992001-12-29 Akim Demaille <akim@epita.fr>
2100
2101 Fix the `GAWK Grammar' failure.
2102
2103 * src/LR0.c (final_state): Initialize to -1 so that we do compute
2104 the reductions of the first state which was mistakenly confused
2105 with the final state because precisely final_state was initialized
2106 to 0.
2107 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
2108 now noticed by Bison.
2109 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
2110 have a reduction on $default.
2111
21122001-12-29 Akim Demaille <akim@epita.fr>
2113
2114 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
2115 rule line numbers.
2116 * src/closure.c (print_closure): Likewise.
2117 * src/derives.c (print_derives): Likewise.
2118 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
2119 now.
2120
21212001-12-29 Akim Demaille <akim@epita.fr>
2122
2123 * src/lalr.c (lookaheads_print): New.
2124 (lalr): Call it when --trace-flag.
2125 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
2126 are dumped.
2127
21282001-12-29 Akim Demaille <akim@epita.fr>
2129
2130 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
2131 when walking through ritem, even via rule->rhs.
2132 * src/reduce.c (dump_grammar, useful_production, reduce_output)
2133 (useful_production, useless_nonterminals): Likewise.
2134 (reduce_grammar_tables): Likewise, plus update nritems.
2135 * src/nullable.c (set_nullable): Likewise.
2136 * src/lalr.c (build_relations): Likewise.
2137 * tests/sets.at (Nullable): Adjust.
2138 Fortunately, now, the $axiom is no longer nullable.
2139
21402001-12-29 Akim Demaille <akim@epita.fr>
2141
2142 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
2143 the 0-sentinel.
2144 * src/gram.c (ritem_longest_rhs): Likewise.
2145 * src/reduce.c (nonterminals_reduce): Likewise.
2146 * src/print_graph.c (print_graph): Likewise.
2147 * src/output.c (output_rule_data): Likewise.
2148 * src/nullable.c (set_nullable): Likewise.
2149
21502001-12-29 Akim Demaille <akim@epita.fr>
2151
2152 * src/output.c: Comment changes.
2153
21542001-12-27 Paul Eggert <eggert@twinsun.com>
2155
2156 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
2157 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
2158 Sparc, as they were causing more porting problems than the
2159 (minor) performance improvement was worth.
2160
2161 Also, catch up with 1.31's YYSTD.
2162
21632001-12-27 Akim Demaille <akim@epita.fr>
2164
2165 * src/output.c (output_gram): Rely on nritems, not the
2166 0-sentinel. See below.
2167 Use -1 as separator, not 0.
2168 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
2169 Rely on -1 as separator in yyrhs, instead of 0.
2170 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
2171 twice `Now at end of input', therefore there are two lines less to
2172 expect.
2173
21742001-12-27 Akim Demaille <akim@epita.fr>
2175
2176 * tests/regression.at (Unresolved SR Conflicts):
2177 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
2178 below.
2179
21802001-12-27 Akim Demaille <akim@epita.fr>
2181
2182 * src/LR0.c (new_state): Recognize the final state by the fact it
2183 is reached by eoftoken.
2184 (insert_start_shifting_state, insert_eof_shifting_state)
2185 (insert_accepting_state, augment_automaton): Remove, since now
2186 these states are automatically computed from the initial state.
2187 (generate_states): Adjust.
2188 * src/print.c: When reporting a rule number to the user, substract
2189 1, so that the axiom rule is rule 0, and the first user rule is 1.
2190 * src/reduce.c: Likewise.
2191 * src/print_graph.c (print_core): For the time being, just as for
2192 the report, depend upon --trace-flags to dump the full set of
2193 items.
2194 * src/reader.c (readgram): Once the grammar read, insert the rule
2195 0: `$axiom: START-SYMBOL $'.
2196 * tests/set.at: Adjust: rule 0 is now displayed, and since the
2197 number of the states has changed (the final state is no longer
2198 necessarily the last), catch up.
2199
22002001-12-27 Akim Demaille <akim@epita.fr>
2201
2202 Try to make the use of the eoftoken valid. Given that its value
2203 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
2204 is used instead of > 0 where appropriate, (ii), depend upon nritems
2205 instead of the 0-sentinel.
2206
2207 * src/gram.h, src/gram.c (nritems): New.
2208 Expected to be duplication of nitems, but for the time being...
2209 * src/reader.c (packgram): Assert nritems and nitems are equal.
2210 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
2211 * src/closure.c (print_closure, print_fderives): Likewise.
2212 * src/gram.c (ritem_print): Likewise.
2213 * src/print.c (print_core, print_grammar): Likewise.
2214 * src/print_graph.c: Likewise.
2215
22162001-12-27 Akim Demaille <akim@epita.fr>
2217
2218 * src/main.c (main): If there are complains after grammar
2219 reductions, then output the report anyway if requested, then die.
2220 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
2221 * src/reader.c (eoftoken): New.
2222 (parse_token_decl): If the token being defined has value `0', it
2223 is the eoftoken.
2224 (packsymbols): No longer hack `tags' to insert `$' by hand.
2225 Be sure to preserve the value of the eoftoken.
2226 (reader): Make sure eoftoken is defined.
2227 Initialize nsyms to 0: now eoftoken is created just like the others.
2228 * src/print.c (print_grammar): Don't special case the eof token.
2229 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
2230 lie anyway, albeit pleasant.
2231 * tests/calc.at: Exercise error messages with eoftoken.
2232 Change the grammar so that empty input is invalid.
2233 Adjust expectations.
2234 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
2235
22362001-12-27 Akim Demaille <akim@epita.fr>
2237
2238 * configure.in: Check the protos of strchr ans strspn.
2239 Replace strchr if needed.
2240 * src/system.h: Provide the protos of strchr, strspn and memchr if
2241 missing.
2242 * lib/strchr.c: New.
2243 * src/reader.c (symbols_save): Use strchr.
2244
22452001-12-27 Akim Demaille <akim@epita.fr>
2246
2247 * src/print.c, src/print_graph.c (escape): New.
2248 Use it to quote the TAGS outputs.
2249 * src/print_graph.c (print_state): Now errors are in red, and
2250 reductions in green.
2251 Prefer high to wide: output the state number on a line of its own.
2252
22532001-12-27 Akim Demaille <akim@epita.fr>
2254
2255 * src/state.h, src/state.c (reductions_new): New.
2256 * src/LR0.c (set_state_table): Let all the states have a
2257 `reductions', even if reduced to 0.
2258 (save_reductions): Adjust.
2259 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
2260 * src/print.c (print_reductions, print_actions): Adjust.
2261 * src/output.c (action_row): Adjust.
2262
22632001-12-27 Akim Demaille <akim@epita.fr>
2264
2265 * src/state.h, src/state.c (errs_new, errs_dup): New.
2266 * src/LR0.c (set_state_table): Let all the states have an errs,
2267 even if reduced to 0.
2268 * src/print.c (print_errs, print_reductions): Adjust.
2269 * src/output.c (output_actions, action_row): Adjust.
2270 * src/conflicts.c (resolve_sr_conflict): Adjust.
2271
22722001-12-27 Akim Demaille <akim@epita.fr>
2273
2274 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
2275
22762001-12-27 Akim Demaille <akim@epita.fr>
2277
2278 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
2279 * src/print.c: here.
2280 (lookaheadset, shiftset): New, used as additional storage by
2281 print_reductions.
2282 (print_results): Adjust.
2283 (print_shifts, print_gotos, print_errs): New, extracted from...
2284 (print_actions): here.
2285 * src/print_graph.c (print_actions): Remove dead code.
2286
22872001-12-27 Akim Demaille <akim@epita.fr>
2288
2289 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
2290 `$n' and `@n'.
2291
22922001-12-27 Akim Demaille <akim@epita.fr>
2293
2294 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
2295 (build_relations): Adjust.
2296
22972001-12-27 Akim Demaille <akim@epita.fr>
2298
2299 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
2300 duplication.
2301
23022001-12-27 Akim Demaille <akim@epita.fr>
2303
2304 * src/reader.c (packgram): Catch nitems overflows.
2305
23062001-12-27 Akim Demaille <akim@epita.fr>
2307
2308 * src/files.c, src/files.h (guard_obstack): Remove.
2309 * src/output.c (output): Adjust.
2310 * src/reader.c (parse_braces): New, factoring...
2311 (copy_action, copy_guard): these two which are renamed as...
2312 (parse_action, parse_guard): these.
2313 As a voluntary consequence, using braces around guards is now
2314 mandatory.
2315
23162001-12-27 Akim Demaille <akim@epita.fr>
2317
2318 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
2319 * src/reader.c (symbol_list): `guard' and `guard_line' are new
2320 members.
2321 (symbol_list_new): Adjust.
2322 (copy_action): action_line is the first line, not the last.
2323 (copy_guard): Just as for actions, store the `action' only, not
2324 the switch/case/break flesh.
2325 Don't parse the user action that might follow the guard, let...
2326 (readgram): do it, i.e., now, there can be an action after a
2327 guard.
2328 In other words the guard is just explicitly optional.
2329 (packgram): Adjust.
2330 * src/output.c (guards_output): New.
2331 (output_parser): Call it when needed.
2332 (output): Also free the guard and attrs obstacks.
2333 * src/files.c, src/files.h (obstack_save): Remove.
2334 (output_files): Remove.
2335 As a result, if one needs the former `.act' file, using an
2336 appropriate skeleton which requires actions and guards is now
2337 required.
2338 * src/main.c (main): Adjust.
2339 * tests/semantic.at: New.
2340 * tests/regression.at: Use `input.y' as input file name.
2341 Avoid 8+3 problems by requiring input.c when the test needs the
2342 parser.
2343
23442001-12-27 Akim Demaille <akim@epita.fr>
2345
2346 * src/reader.c (symbol_list_new): Be sure to initialize all the
2347 fields.
2348
23492001-12-27 Akim Demaille <akim@epita.fr>
2350
2351 All the hacks using a final pseudo state are now useless.
2352
2353 * src/LR0.c (set_state_table): state_table holds exactly nstates.
2354 * src/lalr.c (nLA): New.
2355 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
2356 instead of lookaheadsp from the pseudo state (nstate + 1).
2357
23582001-12-27 Akim Demaille <akim@epita.fr>
2359
2360 * src/output.c (action_row, token_actions): Use a state_t instead
2361 of a integer, and nlookaheads instead of the following state's
2362 lookaheadsp.
2363
23642001-12-27 Akim Demaille <akim@epita.fr>
2365
2366 * src/conflicts.c (log_resolution, flush_shift)
2367 (resolve_sr_conflict, set_conflicts, solve_conflicts)
2368 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
2369 (conflicts_print, print_reductions): Use a state_t instead of an
2370 integer when referring to a state.
2371 As much as possible, depend upon nlookaheads, instead of the
2372 `lookaheadsp' member of the following state (since lookaheads of
2373 successive states are successive, the difference between state n + 1
2374 and n served as the number of lookaheads for state n).
2375 * src/lalr.c (add_lookback_edge): Likewise.
2376 * src/print.c (print_core, print_actions, print_state)
2377 (print_results): Likewise.
2378 * src/print_graph.c (print_core, print_actions, print_state)
2379 (print_graph): Likewise.
2380 * src/conflicts.h: Adjust.
2381
23822001-12-27 Akim Demaille <akim@epita.fr>
2383
2384 * src/bison.hairy: Formatting/comment changes.
2385 ANSIfy.
2386 Remove `register' indications.
2387 Add plenty of `static'.
2388
23892001-12-27 Akim Demaille <akim@epita.fr>
2390
2391 * src/output.c (prepare): Drop the muscle `ntbase' which
2392 duplicates ntokens.
2393 * src/bison.simple: Formatting/comment changes.
2394 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
2395 is an undocumented synonym.
2396
23972001-12-22 Akim Demaille <akim@epita.fr>
2398
2399 * src/output.c (output_table_data): Change the prototype to use
2400 `int' for array ranges: some invocations do pass an int, not a
2401 short.
2402 Reported by Wayne Green.
2403
24042001-12-22 Akim Demaille <akim@epita.fr>
2405
2406 Some actions of web2c.y are improperly triggered.
2407 Reported by Mike Castle.
2408
2409 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
2410 * tests/regression.at (Web2c): Rename as...
2411 (Web2c Report): this.
2412 (Web2c Actions): New.
2413
24142001-12-22 Akim Demaille <akim@epita.fr>
2415
2416 Reductions in web2c.y are improperly reported.
2417 Reported by Mike Castle.
2418
2419 * src/conflicts.c (print_reductions): Fix.
2420 * tests/regression.at (Web2c): New.
2421
24222001-12-18 Akim Demaille <akim@epita.fr>
2423
2424 Some host fail on `assert (!"foo")', which expands to
2425 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
2426 Reported by Nelson Beebee.
2427
2428 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
2429 `#define it_succeeded 0' and `assert (it_succeeded)'.
2430
24312001-12-17 Marc Autret <autret_m@epita.fr>
2432
2433 * src/bison.simple: Don't hard code the skeleton line and filename.
2434 * src/output.c (output_parser): Rename 'line' as 'output_line'.
2435 New line counter 'skeleton_line' (skeleton-line muscle).
2436
24372001-12-17 Paul Eggert <eggert@twinsun.com>
2438
2439 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
2440 YYDEBUG must be defined to a nonzero value.
2441
2442 * src/bison.simple (yytname): Do not assume that the user defines
2443 YYDEBUG to a properly parenthesized expression.
2444
24452001-12-17 Akim Demaille <akim@epita.fr>
2446
2447 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
2448 nlookaheads is a new member.
2449 Adjust all users.
2450 * src/lalr.h (nlookaheads): Remove this orphan declaration.
2451 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
2452 state.
2453
24542001-12-17 Akim Demaille <akim@epita.fr>
2455
2456 * src/files.h, src/files.c (open_files, close_files): Remove.
2457 * src/main.c (main): Don't open/close files, nor invoke lex_free,
2458 let...
2459 * src/reader.c (reader): Do it.
2460
24612001-12-17 Akim Demaille <akim@epita.fr>
2462
2463 * src/conflicts.c (print_reductions): Formatting changes.
2464
24652001-12-17 Akim Demaille <akim@epita.fr>
2466
2467 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
2468 (flush_reduce): New.
2469 (resolve_sr_conflict): Adjust.
2470
24712001-12-17 Akim Demaille <akim@epita.fr>
2472
2473 * src/output.c (output_obstack): Be static and rename as...
2474 (format_obstack): this, to avoid any confusion with files.c's
2475 output_obstack.
2476 * src/reader.h (muscle_obstack): Move to...
2477 * src/output.h: here, since it's defined in output.c.
2478
24792001-12-17 Akim Demaille <akim@epita.fr>
2480
2481 * src/output.c (action_row, save_column, default_goto)
2482 (sort_actions, matching_state, pack_vector): Better variable
2483 locality.
2484
24852001-12-17 Akim Demaille <akim@epita.fr>
2486
2487 * src/output.c: Various formatting changes.
2488
24892001-12-17 Akim Demaille <akim@epita.fr>
2490
2491 * src/files.c (output_files): Free the output_obstack.
2492 * src/main.c (main): Call print and print_graph conditionally.
2493 * src/print.c (print): Work unconditionally.
2494 * src/print_graph.c (print_graph): Work unconditionally.
2495 * src/conflicts.c (log_resolution): Output only if verbose_flag.
2496
24972001-12-16 Marc Autret <autret_m@epita.fr>
2498
2499 * src/output.c (actions_output): Fix. When we use %no-lines,
2500 there is one less line per action.
2501
25022001-12-16 Marc Autret <autret_m@epita.fr>
2503
2504 * src/bison.simple: Remove a useless #line directive.
2505 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
2506 * src/output.c (get_lines_number): New.
2507 (output_parser): Adjust, now takes care about the lines of a
2508 output muscles.
2509 Fix line numbering.
2510 (actions_output): Computes the number of lines taken by actions.
2511 (output_master_parser): Insert new skeleton which is the name of
2512 the output parser file name.
2513
25142001-12-15 Marc Autret <autret_m@epita.fr>
2515
2516 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
2517
25182001-12-15 Marc Autret <autret_m@epita.fr>
2519
2520 * src/output.c (output_gram): Keep track of the hairy one.
2521
25222001-12-15 Akim Demaille <akim@epita.fr>
2523
2524 Make `make distcheck' work.
2525
2526 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
2527 system.h which uses libgettext.h.
2528
25292001-12-15 Akim Demaille <akim@epita.fr>
2530
2531 * src/nullable.c (set_nullable): Useless rules must be skipped,
2532 otherwise, since we range over their symbols, we might look at a
2533 nonterminal which no longer ``exists'', i.e., it is not counted in
2534 `nvars', hence we overflow our arrays.
2535
25362001-12-15 Akim Demaille <akim@epita.fr>
2537
2538 The header can also be produced directly, without any obstack!
2539 Yahoo!
2540
2541 * src/files.c, src/files.h (defines_obstack): Remove.
2542 (compute_header_macro): Global.
2543 (defines_obstack_save): Remove.
2544 * src/reader.c (parse_union_decl): No longer output to
2545 defines_obstack: its content can be found in the `stype' muscle
2546 anyway.
2547 (output_token_translations): Merge into...
2548 (symbols_output): this.
2549 Rename as...
2550 (symbols_save): this.
2551 (reader): Adjust.
2552 * src/output.c (header_output): New.
2553 (output): Call it.
2554
25552001-12-15 Akim Demaille <akim@epita.fr>
2556
2557 * src/reader.c (parse_union_decl): Instead of handling two obstack
2558 simultaneously, use one to define the `stype' muscle, and use the
2559 value of the latter to fill defines_obstack.
2560 (copy_comment): Remove.
2561 (copy_comment2): Work for a single obstack.
2562 Rename as...
2563 (copy_comment): this.
2564
25652001-12-15 Akim Demaille <akim@epita.fr>
2566
2567 * src/lex.c, src/lex.h (xgetc): No longer static.
2568 * src/reader.c (parse_union_decl): Revamp.
2569
25702001-12-15 Akim Demaille <akim@epita.fr>
2571
2572 Still making progress in separating Bison into (i) input, (ii)
2573 process, (iii) output: now we can directly output the parser file
2574 without using table_obstack at all.
2575
2576 * src/files.c, src/files.h (table_obstack): Bye bye.
2577 (parser_file_name): New.
2578 * src/files.c (compute_output_file_names): Compute it.
2579 * src/output.c (actions_output, output_parser)
2580 (output_master_parser): To a file instead of an obstack.
2581
25822001-12-15 Akim Demaille <akim@epita.fr>
2583
2584 Attach actions to rules, instead of pre-outputting them to
2585 actions_obstack.
2586
2587 * src/gram.h (rule_t): action and action_line are new members.
2588 * src/reader.c (symbol_list): Likewise.
2589 (copy_action): Save the actions within the rule.
2590 (packgram): Save them in rule_table.
2591 * src/output.c (actions_output): New.
2592 (output_parser): Use it on `%%actions'.
2593 (output_rule_data): Don't free rule_table.
2594 (output): Do it.
2595 (prepare): Don't save the `action' muscle.
2596 * src/bison.simple: s/%%action/%%actions/.
2597
25982001-12-15 Akim Demaille <akim@epita.fr>
2599
2600 * src/reader.c (copy_action): When --yacc, don't append a `;'
2601 to the user action: let it fail if lacking.
2602 Suggested by Arnold Robbins and Tom Tromey.
2603
26042001-12-14 Akim Demaille <akim@epita.fr>
2605
2606 * src/lex.c (literalchar): Simply return the char you decoded, non
2607 longer mess around with obstacks and int pointers.
2608 Adjust all callers.
2609
26102001-12-14 Akim Demaille <akim@epita.fr>
2611
2612 * src/lex.c (literalchar): Don't escape the special characters,
2613 just decode them, and keep them as char (before, eol was output as
2614 the 2 char string `\n' etc.).
2615 * src/output.c (output_rule_data): Use quotearg to output the
2616 token strings.
2617
26182001-12-13 Paul Eggert <eggert@twinsun.com>
2619
2620 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
2621 Do not infringe on the global user namespace when using C++.
2622 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
2623 All uses of `fprintf' and `stderr' changed.
2624
2625 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
2626
26272001-12-13 Akim Demaille <akim@epita.fr>
2628
2629 The computation of nullable is broken: it doesn't handle empty
2630 RHS's properly.
2631
2632 * tests/torture.at (GNU AWK Grammar): New.
2633 * tests/sets.at (Nullable): New.
2634 * src/nullable.c (set_nullable): Instead of blindly looping over
2635 `ritems', loop over the rules, and then over their rhs's.
2636
2637 Work around Autotest bugs.
2638
2639 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
2640 frame, because Autotest understand lines starting with a `+' as
2641 traces from the shell. Then, they are not processed properly.
2642 Admittedly an Autotest bug, but we don't have time to wait for
2643 Autotest to catch up.
2644 * tests/regression.at (Broken Closure): Adjust to the new table
2645 frames.
2646 Move to...
2647 * tests/sets.at: here.
2648
26492001-12-13 Akim Demaille <akim@epita.fr>
2650
2651 * src/closure.c (closure): Use nrules instead of playing tricks
2652 with BITS_PER_WORD.
2653
26542001-12-13 Akim Demaille <akim@epita.fr>
2655
2656 * src/print.c (print_actions): Output the handling of `$' as the
2657 traces do: shifting the token EOF. Before EOF was treated as a
2658 nonterminal.
2659 * tests/regression.at: Adjust some tests.
2660 * src/print_graph.c (print_core): Complete the set of items via
2661 closure. The next-to-final and final states are still unsatisfying,
2662 but that's to be addressed elsewhere.
2663 No longer output the rule numbers, but do output the state number.
2664 A single loop for the shifts + gotos is enough, but picked a
2665 distinct color for each.
2666 (print_graph): Initialize and finalize closure.
2667
26682001-12-13 Akim Demaille <akim@epita.fr>
2669
2670 * src/reader.c (readgram): Remove dead code, an strip useless
2671 braces.
2672 (get_type): Remove, unused.
2673
26742001-12-12 Akim Demaille <akim@epita.fr>
2675
2676 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
2677 on that of lib/error.c.
2678
26792001-12-12 Akim Demaille <akim@epita.fr>
2680
2681 Some hosts don't like `/' in includes.
2682
2683 * src/system.h: Include libgettext.h without qualifying the path.
2684 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
2685 $(top_srcdir).
2686
26872001-12-11 Marc Autret <autret_m@epita.fr>
2688
2689 * src/output.c (output_parser): Remove useless muscle.
2690
26912001-12-11 Marc Autret <autret_m@epita.fr>
2692
2693 * src/bison.simple: Remove #line just before %%epilogue. It
2694 is now handled in ...
2695 * src/reader.c (read_additionnal_code): Add the output of a
2696 #line for the epilogue.
2697
26982001-12-10 Marc Autret <autret_m@epita.fr>
2699
2700 * src/reader.c (copy_definition): Re-use CPP-outed code which
2701 replace precedent remove.
2702 * src/bison.simple: Remove #line before %%prologue because
2703 %%input-line is wrong at this time.
2704
27052001-12-10 Marc Autret <autret_m@epita.fr>
2706
2707 * src/reader.c (symbols_output): Clean up.
2708 * src/output.c (output_gram, output): Clean up.
2709
27102001-12-10 Akim Demaille <akim@epita.fr>
2711
2712 * src/lalr.c (initialize_lookaheads): New. Extracted from...
2713 * src/LR0.c (set_state_table): here.
2714 * src/lalr.c (lalr): Call it.
2715
27162001-12-10 Akim Demaille <akim@epita.fr>
2717
2718 * src/state.h (shifts): Remove the `number' member: shifts are
2719 attached to state, hence no longer need to be labelled with a
2720 state number.
2721
27222001-12-10 Akim Demaille <akim@epita.fr>
2723
2724 Now that states have a complete set of members, the linked list of
2725 shifts is useless: just fill directly the state's shifts member.
2726
2727 * src/state.h (shifts): Remove the `next' member.
2728 * src/LR0.c (first_state, last_state): Remove.
2729 Adjust the callers.
2730 (augment_automaton): Don't look for the shifts that must be added
2731 a shift on EOF: it is those of the state we looked for! But now,
2732 since shifts are attached, it is no longer needed to looking
2733 merely by its id: its number.
2734
27352001-12-10 Akim Demaille <akim@epita.fr>
2736
2737 * src/LR0.c (augment_automaton): Better variable locality.
2738 Remove an impossible branch: if there is a state corresponding to
2739 the start symbol being shifted, then there is shift for the start
2740 symbol from the initial state.
2741
27422001-12-10 Akim Demaille <akim@epita.fr>
2743
2744 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
2745 only when appropriate: when insert_start_shifting_state' is not
2746 invoked.
2747 * tests/regression.at (Rule Line Numbers): Adjust.
2748
27492001-12-10 Akim Demaille <akim@epita.fr>
2750
2751 * src/LR0.c (augment_automaton): Now that all states have shifts,
2752 merge the two cases addition shifts to the initial state.
2753
27542001-12-10 Akim Demaille <akim@epita.fr>
2755
2756 * src/lalr.c (set_state_table): Move to...
2757 * src/LR0.c: here.
2758 * src/lalr.c (lalr): Don't call it...
2759 * src/LR0.c (generate_states): do it.
2760 * src/LR0.h (first_state): Remove, only the table is used.
2761
27622001-12-10 Akim Demaille <akim@epita.fr>
2763
2764 * src/LR0.h (first_shift, first_reduction): Remove.
2765 * src/lalr.c: Don't use first_shift: find shifts through the
2766 states.
2767
27682001-12-10 Akim Demaille <akim@epita.fr>
2769
2770 * src/LR0.c: Attach shifts to states as soon as they are
2771 computed.
2772 * src/lalr.c (set_state_table): Instead of assigning shifts to
2773 state, just assert that the mapping was properly done.
2774
27752001-12-10 Akim Demaille <akim@epita.fr>
2776
2777 * src/LR0.c (insert_start_shift): Rename as...
2778 (insert_start_shifting_state): this.
2779 (insert_eof_shifting_state, insert_accepting_state): New.
2780 (augment_automaton): Adjust.
2781 Better locality of the variables.
2782 When looking if the start_symbol is shifted from the initial
2783 state, using `while (... symbol != start_symbol ...)' sounds
2784 better than `while (... symbol < start_symbol ...)': If fail
2785 to see how the order between symbols could be relevant!
2786
27872001-12-10 Akim Demaille <akim@epita.fr>
2788
2789 * src/getargs.h: Don't declare `spec_name_prefix' and
2790 `spec_file_prefix', declared by src/files.h.
2791 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
2792 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
2793 * src/output.c (prepare): Adjust.
2794 * src/reader.c (symbols_output): Likewise.
2795 * src/vmsgetargs.c: Vaguely adjust, but who cares?
2796
27972001-12-10 Akim Demaille <akim@epita.fr>
2798
2799 * src/muscle_tab.c (muscle_init): NULL is a better default than
2800 `"0"'.
2801
28022001-12-10 Akim Demaille <akim@epita.fr>
2803
2804 * src/reader.c (reader): Calling symbols_output once is enough.
2805
28062001-12-10 Akim Demaille <akim@epita.fr>
2807
2808 Now that states have a complete set of members, the linked list of
2809 reductions is useless: just fill directly the state's reductions
2810 member.
2811
2812 * src/state.h (struct reductions): Remove member `number' and
2813 `next'.
2814 * src/LR0.c (first_reduction, last_reduction): Remove.
2815 (save_reductions): Don't link the new reductions, store them in
2816 this_state.
2817 * src/lalr.c (set_state_table): No need to attach reductions to
2818 states, it's already done.
2819 * src/output.c (output_actions): No longer free the shifts, then
2820 the reductions, then the states: free all the states and their
2821 members.
2822
28232001-12-10 Akim Demaille <akim@epita.fr>
2824
2825 * src/options.c (OPTN, DRTV, BOTH): New.
2826 (option_table): Use them.
2827
2828 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
2829 the job of system.h.
2830 * src/options.c: Don't include stdio.h and xalloc.h for the same
2831 reasons.
2832
28332001-12-10 Akim Demaille <akim@epita.fr>
2834
2835 * src/output.c (output, prepare): Make sure the values of the
2836 muscles `action' and `prologue' are 0-terminated.
2837
28382001-12-10 Akim Demaille <akim@epita.fr>
2839
2840 Clean up GCC warnings.
2841
2842 * src/reader.c (copy_action): `buf' is not used.
2843 (parse_skel_decl): Be static.
2844 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
2845 * src/options.h (create_long_option_table): Have a real prototype.
2846 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
2847 (hash_delete_at): Return const void *.
2848 Adjust casts to preserve the const.
2849
28502001-12-10 Akim Demaille <akim@epita.fr>
2851
2852 * configure.in: Require 2.52g.
2853 M4 is not needed, but AUTOM4TE is.
2854 * m4/m4.m4: Remove.
2855 * tests/Makefile.am: Adjust.
2856
28572001-12-10 Akim Demaille <akim@epita.fr>
2858
2859 One structure for states is enough, even though theoretically
2860 there are LR(0) states and LALR(1) states.
2861
2862 * src/lalr.h (state_t): Remove.
2863 (state_table): Be state_t **, not state_t *.
2864 * src/state.h (core, CORE_ALLOC): Rename as...
2865 (state_t, STATE_ALLOC): this.
2866 Add the LALR(1) members: shifts, reductions, errs.
2867 * src/LR0.c (state_table): Rename as...
2868 (state_hash): this, to avoid name clashes with the global
2869 `state_table'.
2870 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
2871 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
2872
28732001-12-10 Akim Demaille <akim@epita.fr>
2874
2875 Bison dumps core on bash.y.
2876 Reported by Pascal Bart.
2877
2878 * src/warshall.c (bitmatrix_print): New.
2879 (TC): Use it.
2880 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
2881 j must be the outer loop.
2882 * tests/regression.at (Broken Closure): New.
2883
28842001-12-05 Akim Demaille <akim@epita.fr>
2885
2886 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
2887 its argument.
2888