]> git.saurik.com Git - bison.git/blame - ChangeLog
Display items as we display rules.
[bison.git] / ChangeLog
CommitLineData
ce4ccb4b
AD
12002-06-30 Akim Demaille <akim@epita.fr>
2
3 Display items as we display rules.
4
5 * src/gram.h, src/gram.c (rule_lhs_print): New.
6 * src/gram.c (grammar_rules_partial_print): Use it.
7 * src/print.c (print_core): Likewise.
8 * tests/conflicts.at (Defaulted Conflicted Reduction),
9 (Unresolved SR Conflicts): Adjust.
10 (Unresolved SR Conflicts): Adjust and rename as...
11 (Resolved SR Conflicts): this, as was meant.
12 * tests/regression.at (Web2c Report): Adjust.
13
bc933ef1
AD
142002-06-30 Akim Demaille <akim@epita.fr>
15
16 * src/print.c (state_default_rule_compute): New, extracted from...
17 (print_reductions): here.
18 Pessimize, but clarify the code.
19 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
20
53d4308d
AD
212002-06-30 Akim Demaille <akim@epita.fr>
22
23 * src/output.c (action_row): Let default_rule be always a rule
24 number.
25
26
574fb2d5
AD
272002-06-30 Akim Demaille <akim@epita.fr>
28
29 * src/closure.c (print_firsts, print_fderives, closure):
30 Use BITSET_EXECUTE.
31 * src/lalr.c (lookaheads_print): Likewise.
32 * src/state.c (state_rule_lookaheads_print): Likewise.
33 * src/print_graph.c (print_core): Likewise.
34 * src/print.c (print_reductions): Likewise.
35 * src/output.c (action_row): Likewise.
36 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
37
38
05811fd7
AD
392002-06-30 Akim Demaille <akim@epita.fr>
40
41 * src/print_graph.c: Use report_flag.
42
43
0e4d5753
AD
442002-06-30 Akim Demaille <akim@epita.fr>
45
46 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
47 to...
48 * src/relation.h, src/relation.c (traverse, relation_digraph)
49 (relation_print, relation_transpose): New.
50
51
24c7d800
AD
522002-06-30 Akim Demaille <akim@epita.fr>
53
54 * src/state.h, src/state.c (shifts_to): New.
55 * src/lalr.c (build_relations): Use it.
56
57
9222837b
AD
582002-06-30 Akim Demaille <akim@epita.fr>
59
60 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
61 (item_number_of_rule_number, rule_number_of_item_number): New.
62 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
63 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
64 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
65 Propagate their use.
66 Much remains to be done, in particular wrt `shorts' from types.h.
67
68
260008e5
AD
692002-06-30 Akim Demaille <akim@epita.fr>
70
71 * src/symtab.c (symbol_new): Initialize the `printer' member.
72
73
8a731ca8
AD
742002-06-30 Akim Demaille <akim@epita.fr>
75
76 * src/LR0.c (save_reductions): Remove, replaced by...
77 * src/state.h, src/state.c (state_reductions_set): New.
78 (reductions, errs): Rename as...
79 (reductions_t, errs_t): these.
80 Adjust all dependencies.
81
82
32e1e0a4
AD
832002-06-30 Akim Demaille <akim@epita.fr>
84
85 * src/LR0.c (state_list_t, state_list_append): New.
86 (first_state, last_state): Now symbol_list_t.
87 (this_state): Remove.
88 (new_itemsets, append_states, save_reductions): Take a state_t as
89 argument.
90 (set_states, generate_states): Adjust.
91 (save_shifts): Remove, replaced by...
92 * src/state.h, src/state.c (state_shifts_set): New.
93 (shifts): Rename as...
94 (shifts_t): this.
95 Adjust all dependencies.
96 * src/state.h (state_t): Remove the `next' member.
97
98
e5fb6710
AD
992002-06-30 Akim Demaille <akim@epita.fr>
100
101 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
102 escaped in slot 0.
103
104
1052002-06-30 Akim Demaille <akim@epita.fr>
106
107 Use hash.h for the state hash table.
108
109 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
110 (allocate_storage): Use state_hash_new.
111 (free_storage): Use state_hash_free.
112 (new_state, get_state): Adjust.
113 * src/lalr.h, src/lalr.c (states): Move to...
114 * src/states.h (state_t): Remove the `link' member, no longer
115 used.
116 * src/states.h, src/states.c: here.
117 (state_hash_new, state_hash_free, state_hash_lookup)
118 (state_hash_insert, states_free): New.
119 * src/states.c (state_table, state_compare, state_hash): New.
120 * src/output.c (output_actions): Do not free states now, since we
121 still need to know the final_state number in `prepare', called
122 afterwards. Do it...
123 * src/main.c (main): here: call states_free after `output'.
124
125
c7ca99d4
AD
1262002-06-30 Akim Demaille <akim@epita.fr>
127
128 Use hash.h for the state hash table.
129
130 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
131 (allocate_storage): Use state_hash_new.
132 (free_storage): Use state_hash_free.
133 (new_state, get_state): Adjust.
134 * src/lalr.h, src/lalr.c (states): Move to...
135 * src/states.h (state_t): Remove the `link' member, no longer
136 used.
137 * src/states.h, src/states.c: here.
138 (state_hash_new, state_hash_free, state_hash_lookup)
139 (state_hash_insert, states_free): New.
140 * src/states.c (state_table, state_compare, state_hash): New.
141 * src/output.c (output_actions): Do not free states now, since we
142 still need to know the final_state number in `prepare', called
143 afterwards. Do it...
144 * src/main.c (main): here: call states_free after `output'.
145
146
df0e7316
AD
1472002-06-30 Akim Demaille <akim@epita.fr>
148
149 * src/state.h, src/state.c (state_new): New, extracted from...
150 * src/LR0.c (new_state): here.
151 * src/state.h (STATE_ALLOC): Move to...
152 * src/state.c: here.
153 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
154 * src/state.h, src/state.c: here.
155
156
39f41916
AD
1572002-06-30 Akim Demaille <akim@epita.fr>
158
159 * src/reader.c (gensym): Rename as...
160 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
161 (getsym): Rename as...
162 (symbol_get): this.
163
164
d57650a5
AD
1652002-06-30 Akim Demaille <akim@epita.fr>
166
167 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
168 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
169 * src/output.c, src/print.c, src/print_graph.c: Propagate.
170 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
171
5a08f1ce
AD
1722002-06-30 Akim Demaille <akim@epita.fr>
173
174 Make the test suite pass with warnings checked.
175
176 * tests/actions.at (Printers and Destructors): Improve.
177 Avoid unsigned vs. signed issues.
178 * tests/calc.at: Don't exercise the scanner here, do it...
179 * tests/input.at (Torturing the Scanner): here.
180
181
720623af
PH
1822002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
183
184 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
185 reorganize first lines parallel to yacc.c.
186
fb8135fa
AD
1872002-06-28 Akim Demaille <akim@epita.fr>
188
189 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
190 (b4_token_enum, b4_token_defines): New, factored from...
191 * data/lalr1.cc, data/yacc.c, glr.c: here.
192
41442480
AD
1932002-06-28 Akim Demaille <akim@epita.fr>
194
195 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
196 unused variables.
197 * src/output.c (merger_output): static.
198
e0e5bf84
AD
1992002-06-28 Akim Demaille <akim@epita.fr>
200
201 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
202 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
203 pacify GCC.
204 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 205
676385e2
PH
2062002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
207
208 Accumulated changelog for new GLR parsing features.
209
e0e5bf84 210 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
211 conflicts_total_count.
212 * src/conflicts.h: Ditto.
213 * src/output.c (token_actions): Use the new name.
214 (output_conflicts): Change conflp => conflict_list_heads, and
215 confl => conflict_list for better readability.
216 * data/glr.c: Use the new names.
217 * NEWS: Add self to GLR announcement.
e0e5bf84 218
676385e2
PH
219 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
220
221 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
222 Akim Demaille.
223
224 * data/bison.glr: Change name to glr.c
225 * data/glr.c: Renamed from bison.glr.
226 * data/Makefile.am: Add glr.c
e0e5bf84
AD
227
228 * src/getargs.c:
229
676385e2
PH
230 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
231 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 232
676385e2
PH
233 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
234
235 * data/bison.glr: Be sure to restore the
236 current #line when returning to the skeleton contents after having
237 exposed the input file's #line.
238
239 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
240
241 * data/bison.glr: Bring up to date with changes to bison.simple.
242
243 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
244
245 * data/bison.glr: Correct definitions that use b4_prefix.
246 Various reformatting.
247 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
248 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
249 yytokenp argument; now part of stack.
250 (yychar): Define to behave as documented.
251 (yyclearin): Ditto.
e0e5bf84 252
676385e2
PH
253 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
254
255 * src/reader.h: Add declaration for free_merger_functions.
256
257 * src/reader.c (merge_functions): New variable.
258 (get_merge_function): New function.
259 (free_merger_functions): New function.
260 (readgram): Check for %prec that is not followed by a symbol.
261 Handle %dprec and %merge declarations.
262 (packgram): Initialize dprec and merger fields in rules array.
263
264 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
265 conflict_list_cnt, conflict_list_free): New variables.
266 (table_grow): Also grow conflict_table.
e0e5bf84 267 (prepare_rules): Output dprec and merger tables.
676385e2 268 (conflict_row): New function.
e0e5bf84 269 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
270 default reduction in conflicted states for GLR parser so that there
271 are spaces for the conflict lists.
272 (save_row): Also save conflict information.
273 (token_actions): Allocate conflict list.
274 (merger_output): New function.
275 (pack_vector): Pack conflict table, too.
276 (output_conflicts): New function to output yyconflp and yyconfl.
277 (output_check): Allocate conflict_tos.
278 (output_actions): Output conflict tables, also.
279 (output_skeleton): Output b4_mergers definition.
280 (prepare): Output b4_max_rhs_length definition.
281 Use 'bison.glr' as default skeleton for GLR parsers.
282
283 * src/gram.c (glr_parser): New flag.
284 (grammar_free): Call free_merger_functions.
285
286 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
287 all pairs of conflicting reductions, rather than just all tokens
288 causing conflicts. Needed to size conflict tables.
e0e5bf84 289 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
290 interface.
291 (conflicts_print): Ditto.
292 (count_total_conflicts): New function.
293
294 * src/reader.h (merger_list): New type.
295 (merge_functions): New variable.
296
297 * src/lex.h (tok_dprec, tok_merge): New token types.
298
299 * src/gram.h (rule_s): Add dprec and merger fields.
300 (glr_parser): New flag.
301
302 * src/conflicts.h (count_total_conflicts): New function.
303
304 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
305
306 * doc/bison.texinfo (Generalized LR Parsing): New section.
307 (GLR Parsers): New section.
308 (Language and Grammar): Mention GLR parsing.
309 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
310 Correct typo ("tge" -> "the").
311
312 * data/bison.glr: New skeleton for GLR parsing.
313
314 * tests/cxx-gram.at: New tests for GLR parsing.
315
316 * tests/testsuite.at: Include cxx-gram.at.
317
318 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 319
676385e2
PH
320 * src/parse-gram.y:
321
322 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
323
324 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 325
b5480d74 3262002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
327
328 * src/options.h, src/options.c: Remove.
329 * src/getargs.c (short_options, long_options): New.
330
60491a94
AD
3312002-06-27 Akim Demaille <akim@epita.fr>
332
333 * data/bison.simple, data/bison.c++: Rename as...
334 * data/yacc.c, data/lalr1.cc: these.
335 * doc/bison.texinfo (Environment Variables): Remove.
336
9be0c25b
AD
3372002-06-25 Raja R Harinath <harinath@cs.umn.edu>
338
339 * src/getargs.c (report_argmatch): Initialize strtok().
340
1ae72863
AD
3412002-06-20 Akim Demaille <akim@epita.fr>
342
343 * data/bison.simple (b4_symbol_actions): New, replaces...
344 (b4_symbol_destructor, b4_symbol_printer): these.
345 (yysymprint): Be sure to call YYPRINT only for tokens, and using
346 user token numbers.
347
87542d29
AD
3482002-06-20 Akim Demaille <akim@epita.fr>
349
350 * data/bison.simple (yydestructor): Rename as...
351 (yydestruct): this.
352
1a31ed21
AD
3532002-06-20 Akim Demaille <akim@epita.fr>
354
355 * src/symtab.h, src/symtab.c (symbol_type_set)
356 (symbol_destructor_set, symbol_precedence_set): The location is
357 the last argument.
358 Adjust all callers.
359
e776192e
AD
3602002-06-20 Akim Demaille <akim@epita.fr>
361
362 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
363 internals.
364 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
365 Takes a location.
366 * src/symtab.h, src/symtab.c (symbol_class_set)
367 (symbol_user_token_number_set): Likewise.
368 Adjust all callers.
369 Promote complain_at.
370 * tests/input.at (Type Clashes): Adjust.
371
5c1180b3
AD
3722002-06-20 Akim Demaille <akim@epita.fr>
373
374 * data/bison.simple (YYLEX): Fix the declaration when
375 %pure-parser.
376
e3170060
AD
3772002-06-20 Akim Demaille <akim@epita.fr>
378
379 * data/bison.simple (yysymprint): Don't print the token number,
380 just its name.
381 * tests/actions.at (Destructors): Rename as...
382 (Printers and Destructors): this.
383 Also exercise %printer.
384
253862fd
AD
3852002-06-20 Akim Demaille <akim@epita.fr>
386
387 * data/bison.simple (YYDSYMPRINT): New.
388 Use it to remove many of the #if YYDEBUG/if (yydebug).
389
366eea36
AD
3902002-06-20 Akim Demaille <akim@epita.fr>
391
392 * src/symtab.h, src/symtab.c (symbol_t): printer and
393 printer_location are new members.
394 (symbol_printer_set): New.
395 * src/parse-gram.y (PERCENT_PRINTER): New token.
396 Handle its associated rule.
397 * src/scan-gram.l: Adjust.
398 (handle_destructor_at, handle_destructor_dollar): Rename as...
399 (handle_symbol_code_at, handle_symbol_code_dollar): these.
400 * src/output.c (symbol_printers_output): New.
401 (output_skeleton): Call it.
402 * data/bison.simple (yysymprint): New. Cannot be named yyprint
403 since there are already many grammar files with a user `yyprint'.
404 Replace the calls to YYPRINT to calls to yysymprint.
405 * tests/calc.at: Adjust.
406 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
407 taking advantage of parser very internal details (stack size!).
408
4f25ebb0
AD
4092002-06-20 Akim Demaille <akim@epita.fr>
410
411 * src/scan-gram.l: Complete the scanner with the missing patterns
412 to pacify Flex.
413 Use `quote' and `symbol_tag_get' where appropriate.
414
93b68a0e
AD
4152002-06-19 Akim Demaille <akim@epita.fr>
416
417 * tests/actions.at (Destructors): Augment to test locations.
418 * data/bison.simple (yydestructor): Pass it the current location
419 if locations are enabled.
420 Prototype only when __STDC__ or C++.
421 Change the argument names to move into the yy name space: there is
422 user code here.
423
58612f1d
AD
4242002-06-19 Akim Demaille <akim@epita.fr>
425
74310291
AD
426 * data/bison.simple (b4_pure_if): New.
427 Use it instead of #ifdef YYPURE.
428
4292002-06-19 Akim Demaille <akim@epita.fr>
430
431 * data/bison.simple (b4_location_if): New.
58612f1d
AD
432 Use it instead of #ifdef YYLSP_NEEDED.
433
f25bfb75
AD
4342002-06-19 Akim Demaille <akim@epita.fr>
435
436 Prepare @$ in %destructor, but currently don't bind it in the
437 skeleton, as %location use is not cleaned up yet.
438
439 * src/scan-gram.l (handle_dollar, handle_destructor_at)
440 (handle_action_at): New.
441 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
442 a braced_code_t and a location as additional arguments.
443 (handle_destructor_dollar): Instead of requiring `b4_eval', just
444 unquote one when outputting `b4_dollar_dollar'.
445 Adjust callers.
446 * data/bison.simple (b4_eval): Remove.
447 (b4_symbol_destructor): Adjust.
448 * tests/input.at (Invalid @n): Adjust.
449
c732d2c6
AD
4502002-06-19 Zack Weinberg <zack@codesourcery.com>
451
452 * doc/bison.texinfo: Document ability to have multiple
453 prologue sections.
454
8c165d89
AD
4552002-06-18 Akim Demaille <akim@epita.fr>
456
457 * src/files.c (compute_base_names): When computing the output file
458 names from the input file name, strip the directory part.
459
ca98bf57
AD
4602002-06-18 Akim Demaille <akim@epita.fr>
461
462 * data/bison.simple.new: Comment changes.
463 Reported by Andreas Schwab.
464
0bfb02ff
AD
4652002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
466
467 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
468 there are no `label `yyoverflowlab' defined but not used' warnings
469 when yyoverflow is defined.
470
24c0aad7
AD
4712002-06-18 Akim Demaille <akim@epita.fr>
472
473 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
474 new member.
475 (symbol_destructor_set): Adjust.
476 * src/output.c (symbol_destructors_output): Output the destructor
477 locations.
478 Output the symbol name.
479 * data/bison.simple (b4_symbol_destructor): Adjust.
480
5719c109
AD
4812002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
482 and Akim Demaille <akim@epita.fr>
483
484 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
485 what's left on the stack when the error recovery hits EOF.
486 * tests/actions.at (Destructors): Complete to exercise this case.
487
9280d3ef
AD
4882002-06-17 Akim Demaille <akim@epita.fr>
489
490 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
491 arguments is really empty, not only equal to `[]'.
492 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
493 member.
494 (symbol_destructor_set): New.
495 * src/output.c (symbol_destructors_output): New.
496 * src/reader.h (brace_code_t, current_braced_code): New.
497 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
498 (handle_dollar): Rename as...
499 (handle_action_dollar): this.
500 (handle_destructor_dollar): New.
501 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
502 (grammar_declaration): Use it.
503 * data/bison.simple (yystos): Is always defined.
504 (yydestructor): New.
505 * tests/actions.at (Destructors): New.
506 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
507
dafdc66f
AD
5082002-06-17 Akim Demaille <akim@epita.fr>
509
510 * src/symlist.h, src/symlist.c (symbol_list_length): New.
511 * src/scan-gram.l (handle_dollar, handle_at): Compute the
512 rule_length only when needed.
513 * src/output.c (actions_output, token_definitions_output): Output
514 the full M4 block.
515 * src/symtab.c: Don't access directly to the symbol tag, use
516 symbol_tag_get.
517 * src/parse-gram.y: Use symbol_list_free.
518
56c47203
AD
5192002-06-17 Akim Demaille <akim@epita.fr>
520
521 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
522 (symbol_list_prepend, get_type_name): Move to...
523 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
524 (symbol_list_prepend, symbol_list_n_type_name_get): here.
525 Adjust all callers.
526 (symbol_list_free): New.
527 * src/scan-gram.l (handle_dollar): Takes a location.
528 * tests/input.at (Invalid $n): Adjust.
529
1e0bab92
AD
5302002-06-17 Akim Demaille <akim@epita.fr>
531
532 * src/reader.h, src/reader.c (symbol_list_new): Export it.
533 (symbol_list_prepend): New.
534 * src/parse-gram.y (%union): `list' is a new member.
535 (symbols.1): New, replaces...
536 (terms_to_prec.1, nterms_to_type.1): these.
537 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
538 Take a location as additional argument.
539 Adjust all callers.
540
04e60654
AD
5412002-06-15 Akim Demaille <akim@epita.fr>
542
543 * src/parse-gram.y: Move %token in the declaration section so that
544 we don't depend upon CVS Bison.
545
10e5b8bd
AD
5462002-06-15 Akim Demaille <akim@epita.fr>
547
548 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
549 * src/print.c (print_core): Use it.
550
9801d40c
AD
5512002-06-15 Akim Demaille <akim@epita.fr>
552
553 * src/conflicts.c (log_resolution): Accept the rule involved in
554 the sr conflicts instead of the lookahead number that points to
555 that rule.
556 (flush_reduce): Accept the current lookahead vector as argument,
557 instead of the index in LA.
558 (resolve_sr_conflict): Accept the current number of lookahead
559 bitset to consider for the STATE, instead of the index in LA.
560 (set_conflicts): Adjust.
561 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
562
c0263492
AD
5632002-06-15 Akim Demaille <akim@epita.fr>
564
565 * src/state.h (state_t): Replace the `lookaheadsp' member, a
566 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
567 Adjust all dependencies.
568 * src/lalr.c (initialize_lookaheads): Split into...
569 (states_lookaheads_count, states_lookaheads_initialize): these.
570 (lalr): Adjust.
571
9757c359
AD
5722002-06-15 Akim Demaille <akim@epita.fr>
573
574 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
575 out of...
576 (grammar_rules_print): here.
577 * src/reduce.c (reduce_output): Use it.
578 * tests/reduce.at (Useless Rules, Reduced Automaton)
579 (Underivable Rules): Adjust.
580
6b98e4b5
AD
5812002-06-15 Akim Demaille <akim@epita.fr>
582
583 Copy BYacc's nice way to report the grammar.
584
585 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
586 New.
587 Don't print the rules' location, it is confusing and useless.
588 (rule_print): Use grammar_rhs_print.
589 * src/print.c (print_grammar): Use grammar_rules_print.
590
6b98e4b5
AD
5912002-06-15 Akim Demaille <akim@epita.fr>
592
593 Complete and rationalize `useless thing' warnings.
594
595 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
596 (symbol_tag_print): New.
597 Use them everywhere in place of accessing directly the tag member.
598 * src/gram.h, src/gram.c (rule_print): New.
599 Use it where a rule used to be printed `by hand'.
600 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
601 (reduce_grammar_tables): Report the useless rules.
602 (reduce_print): Useless things are a warning, not an error.
603 Report it as such.
604 * tests/reduce.at (Useless Nonterminals, Useless Rules):
605 (Reduced Automaton, Underivable Rules): Adjust.
606 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
607 * tests/conflicts.at (Unresolved SR Conflicts)
608 (Solved SR Conflicts): Adjust.
609
ee000ba4
AD
6102002-06-15 Akim Demaille <akim@epita.fr>
611
612 Let symbols have a location.
613
614 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
615 (getsym): Adjust.
616 Adjust all callers.
617 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
618 Use location_t, not int.
619 * src/symtab.c (symbol_check_defined): Take advantage of the
620 location.
621 * tests/regression.at (Invalid inputs): Adjust.
622
8efe435c
AD
6232002-06-15 Akim Demaille <akim@epita.fr>
624
625 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
626 (input): Don't try to initialize yylloc here, do it in the
627 scanner.
628 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
629 * src/gram.h (rule_t): Change line and action_line into location
630 and action_location, of location_t type.
631 Adjust all dependencies.
632 * src/location.h, src/location.c (empty_location): New.
633 * src/reader.h, src/reader.c (grammar_start_symbol_set)
634 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
635 (grammar_current_rule_symbol_append)
636 (grammar_current_rule_action_append): Expect a location as argument.
637 * src/reader.c (grammar_midrule_action): Adjust to attach an
638 action's location as dummy symbol location.
639 * src/symtab.h, src/symtab.c (startsymbol_location): New.
640 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
641 the line numbers.
642
1921f1d7
AD
6432002-06-14 Akim Demaille <akim@epita.fr>
644
645 Grammar declarations may be found in the grammar section.
646
647 * src/parse-gram.y (rules_or_grammar_declaration): New.
648 (declarations): Each declaration may end with a semicolon, not
649 just...
650 (grammar_declaration): `"%union"'.
651 (grammar): Branch to rules_or_grammar_declaration.
652
4515534c
AD
6532002-06-14 Akim Demaille <akim@epita.fr>
654
655 * src/main.c (main): Invoke scanner_free.
656
f958596b
AD
6572002-06-14 Akim Demaille <akim@epita.fr>
658
659 * src/output.c (m4_invoke): Extracted from...
660 (output_skeleton): here.
661 Free tempfile.
662
2c569025
AD
6632002-06-14 Akim Demaille <akim@epita.fr>
664
665 * src/parse-gram.y (directives, directive, gram)
666 (grammar_directives, precedence_directives, precedence_directive):
667 Rename as...
668 (declarations, declaration, grammar, grammar_declaration)
669 (precedence_declaration, precedence_declarator): these.
670 (symbol_declaration): New.
671
592e8d4d
AD
6722002-06-14 Akim Demaille <akim@epita.fr>
673
674 * src/files.c (action_obstack): Remove, unused.
675 (output_obstack): Remove it, and all its dependencies, as it is no
676 longer needed.
677 * src/reader.c (epilogue_set): Build the epilogue in the
678 muscle_obstack.
679 * src/output.h, src/output.c (muscle_obstack): Move to...
680 * src/muscle_tab.h, src/muscle_tab.h: here.
681 (muscle_init): Initialize muscle_obstack.
682 (muscle_free): New.
683 * src/main.c (main): Call it.
684
0c15323d
AD
6852002-06-14 Akim Demaille <akim@epita.fr>
686
687 * src/location.h: New, extracted from...
688 * src/reader.h: here.
689 * src/Makefile.am (noinst_HEADERS): Merge into
690 (bison_SOURCES): this.
691 Add location.h.
692 * src/parse-gram.y: Use location_t instead of Bison's.
693 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
694 Use location_t instead of ints.
695
e96c9728
AD
6962002-06-14 Akim Demaille <akim@epita.fr>
697
698 * data/bison.simple, data/bison.c++: Be sure to restore the
699 current #line when returning to the skeleton contents after having
700 exposed the input file's #line.
701
75d1fe16
AD
7022002-06-12 Akim Demaille <akim@epita.fr>
703
704 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
705 eager.
706 * tests/actions.at (Exotic Dollars): New.
707
6c35d22c
AD
7082002-06-12 Akim Demaille <akim@epita.fr>
709
710 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
711 ['"/] too eagerly.
712 * tests/input.at (Torturing the Scanner): New.
713
1d6412ad
AD
7142002-06-11 Akim Demaille <akim@epita.fr>
715
716 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
717 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
718 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
719 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
720 * src/reader.c (reader): Use it.
721
4cdb01db
AD
7222002-06-11 Akim Demaille <akim@epita.fr>
723
724 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
725 Adjust all callers.
726 (scanner_last_string_free): New.
727
44995b2e
AD
7282002-06-11 Akim Demaille <akim@epita.fr>
729
730 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
731 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
732 (last_string, YY_OBS_FREE): New.
733 Use them when returning an ID.
734
e9955c83
AD
7352002-06-11 Akim Demaille <akim@epita.fr>
736
737 Have Bison grammars parsed by a Bison grammar.
738
739 * src/reader.c, src/reader.h (prologue_augment): New.
740 * src/reader.c (copy_definition): Remove.
741
742 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
743 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
744 (grammar_current_rule_prec_set, grammar_current_rule_check)
745 (grammar_current_rule_symbol_append)
746 (grammar_current_rule_action_append): Export.
747 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
748 (symbol_list_action_append): Remove.
749 Hook the routines from reader.
750 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
751 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
752
753 * src/reader.c (read_declarations): Remove, unused.
754
755 * src/parse-gram.y: Handle the epilogue.
756 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
757 (grammar_start_symbol_set): this.
758 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
759 * src/reader.c (readgram): Remove, unused.
760 (reader): Adjust to insert eoftoken and axiom where appropriate.
761
762 * src/reader.c (copy_dollar): Replace with...
763 * src/scan-gram.h (handle_dollar): this.
764 * src/parse-gram.y: Remove `%thong'.
765
766 * src/reader.c (copy_at): Replace with...
767 * src/scan-gram.h (handle_at): this.
768
769 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
770 New.
771
772 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
773 time being.
774
775 * src/reader.h, src/reader.c (grammar_rule_end): New.
776
777 * src/parse.y (current_type, current_class): New.
778 Implement `%nterm', `%token' support.
779 Merge `%term' into `%token'.
780 (string_as_id): New.
781 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
782 type name.
783
784 * src/parse-gram.y: Be sure to handle properly the beginning of
785 rules.
786
787 * src/parse-gram.y: Handle %type.
788 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
789
790 * src/parse-gram.y: More directives support.
791 * src/options.c: No longer handle source directives.
792
793 * src/parse-gram.y: Fix %output.
794
795 * src/parse-gram.y: Handle %union.
796 Use the prologue locations.
797 * src/reader.c (parse_union_decl): Remove.
798
799 * src/reader.h, src/reader.c (epilogue_set): New.
800 * src/parse-gram.y: Use it.
801
802 * data/bison.simple, data/bison.c++: b4_stype is now either not
803 defined, then default to int, or to the contents of %union,
804 without `union' itself.
805 Adjust.
806 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
807
808 * src/output.c (actions_output): Don't output braces, as they are
809 already handled by the scanner.
810
811 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
812 characters to themselves.
813
814 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
815 that the epilogue has a proper #line.
816
817 * src/parse-gram.y: Handle precedence/associativity.
818
819 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
820 a terminal.
821 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
822 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
823 at all to define terminals that cannot be emitted.
824
825 * src/scan-gram.l: Escape M4 characters.
826
827 * src/scan-gram.l: Working properly with escapes in user
828 strings/characters.
829
830 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
831 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
832 grammar.
833 Use more modest sizes, as for the time being the parser does not
834 release memory, and therefore the process swallows a huge amount
835 of memory.
836
837 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
838 stricter %token grammar.
839
840 * src/symtab.h (associativity): Add `undef_assoc'.
841 (symbol_precedence_set): Do nothing when passed an undef_assoc.
842 * src/symtab.c (symbol_check_alias_consistence): Adjust.
843
844 * tests/regression.at (Invalid %directive): Remove, as it is now
845 meaningless.
846 (Invalid inputs): Adjust to the new error messages.
847 (Token definitions): The new grammar doesn't allow too many
848 eccentricities.
849
850 * src/lex.h, src/lex.c: Remove.
851 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
852 (copy_character, copy_string2, copy_string, copy_identifier)
853 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
854 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
855 (parse_action): Remove.
856 * po/POTFILES.in: Adjust.
857
2e047461
AD
8582002-06-11 Akim Demaille <akim@epita.fr>
859
860 * src/reader.c (parse_action): Don't store directly into the
861 rule's action member: return the action as a string.
862 Don't require `rule_length' as an argument: compute it.
863 (grammar_current_rule_symbol_append)
864 (grammar_current_rule_action_append): New, eved out from
865 (readgram): here.
866 Remove `action_flag', `rulelength', unused now.
867
9af3fbce
AD
8682002-06-11 Akim Demaille <akim@epita.fr>
869
870 * src/reader.c (grammar_current_rule_prec_set).
871 (grammar_current_rule_check): New, eved out from...
872 (readgram): here.
873 Remove `xaction', `first_rhs': useless.
874 * tests/input.at (Type clashes): New.
875 * tests/existing.at (GNU Cim Grammar): Adjust.
876
1485e106
AD
8772002-06-11 Akim Demaille <akim@epita.fr>
878
879 * src/reader.c (grammar_midrule_action): New, Eved out from
880 (readgram): here.
881
da4160c3
AD
8822002-06-11 Akim Demaille <akim@epita.fr>
883
884 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
885 New.
886 (readgram): Use them as replacement of inlined code, crule and
887 crule1.
888
f6d0f937
AD
8892002-06-11 Akim Demaille <akim@epita.fr>
890
891 * src/reader.c (grammar_end, grammar_symbol_append): New.
892 (readgram): Use them.
893 Make the use of `p' as local as possible.
894
69078d4b
AD
8952002-06-10 Akim Demaille <akim@epita.fr>
896
897 GCJ's parser requires the tokens to be defined before the prologue.
898
899 * data/bison.simple: Output the token definition before the user's
900 prologue.
901 * tests/regression.at (Braces parsing, Duplicate string)
902 (Mixing %token styles): Check the output from bison.
903 (Early token definitions): New.
904
5e424082
AD
9052002-06-10 Akim Demaille <akim@epita.fr>
906
907 * src/symtab.c (symbol_user_token_number_set): Don't complain when
908 assigning twice the same user number to a token, so that we can
909 use it in...
910 * src/lex.c (lex): here.
911 Also use `symbol_class_set' instead of hand written code.
912 * src/reader.c (parse_assoc_decl): Likewise.
913
44536b35
AD
9142002-06-10 Akim Demaille <akim@epita.fr>
915
916 * src/symtab.c, src/symtab.c (symbol_class_set)
917 (symbol_user_token_number_set): New.
918 * src/reader.c (parse_token_decl): Use them.
919 Use a switch instead of ifs.
920 Use a single argument.
921
8b9f2372
AD
9222002-06-10 Akim Demaille <akim@epita.fr>
923
924 Remove `%thong' support as it is undocumented, unused, duplicates
925 `%token's job, and creates useless e-mail traffic with people who
926 want to know what it is, why it is undocumented, unused, and
927 duplicates `%token's job.
928
929 * src/reader.c (parse_thong_decl): Remove.
930 * src/options.c (option_table): Remove "thong".
931 * src/lex.h (tok_thong): Remove.
932
3ae2b51f
AD
9332002-06-10 Akim Demaille <akim@epita.fr>
934
935 * src/symtab.c, src/symtab.c (symbol_type_set)
936 (symbol_precedence_set): New.
937 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
938 (value_components_used): Remove, unused.
939
2f1afb73
AD
9402002-06-09 Akim Demaille <akim@epita.fr>
941
942 Move symbols handling code out of the reader.
943
944 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
945 (axiom): Move to...
946 * src/symtab.h, src/symtab.c: here.
947
948 * src/gram.c (start_symbol): Remove: use startsymbol->number.
949 * src/reader.c (startval): Rename as...
950 * src/symtab.h, src/symtab.c (startsymbol): this.
951 * src/reader.c: Adjust.
952
953 * src/reader.c (symbol_check_defined, symbol_make_alias)
954 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
955 (token_translations_init)
956 Move to...
957 * src/symtab.c: here.
958 * src/reader.c (packsymbols): Move to...
959 * src/symtab.h, src/symtab.c (symbols_pack): here.
960 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
961 argument.
962
e9bca3ad
AD
9632002-06-03 Akim Demaille <akim@epita.fr>
964
965 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
966 then statements.
967
86eff183
AD
9682002-06-03 Akim Demaille <akim@epita.fr>
969
970 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
971 structs with non literals.
972 * src/scan-skel.l: never-interactive.
973 * src/conflicts.c (enum conflict_resolution_e): No trailing
974 comma.
975 * src/getargs.c (usage): Split long literal strings.
976 Reported by Hans Aberg.
977
717be197
AD
9782002-05-28 Akim Demaille <akim@epita.fr>
979
980 * data/bison.c++: Use C++ ostreams.
981 (cdebug_): New member.
982
670ddffd
AD
9832002-05-28 Akim Demaille <akim@epita.fr>
984
985 * src/output.c (output_skeleton): Be sure to allocate enough room
986 for `/' _and_ for `\0' in full_skeleton.
987
769b430f
AD
9882002-05-28 Akim Demaille <akim@epita.fr>
989
990 * data/bison.c++: Catch up with bison.simple:
991 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
992 and Paul Eggert <eggert@twinsun.com>: `error' handing.
993 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
994 and popping traces.
995
7067cb36
PH
9962002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
997
998 * src/output.c (output_skeleton): Put an explicit path in front of
999 the skeleton file name, rather than relying on the -I directory,
1000 to partially alleviate effects of having a skeleton file lying around
1001 in the current directory.
769b430f 1002
4a713ec2
PH
10032002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1004
769b430f 1005 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
1006 obstack_printf should be obstack_fgrow1.
1007
b408954b
AD
10082002-05-26 Akim Demaille <akim@epita.fr>
1009
1010 * src/state.h (state_t): `solved_conflicts' is a new member.
1011 * src/LR0.c (new_state): Set it to 0.
1012 * src/conflicts.h, src/conflicts.c (print_conflicts)
1013 (free_conflicts, solve_conflicts): Rename as...
1014 (conflicts_print, conflicts_free, conflicts_solve): these.
1015 Adjust callers.
1016 * src/conflicts.c (enum conflict_resolution_e)
1017 (solved_conflicts_obstack): New, used by...
1018 (log_resolution): this.
1019 Adjust to attach the conflict resolution to each state.
1020 Complete the description with the precedence/associativity
1021 information.
1022 (resolve_sr_conflict): Adjust.
1023 * src/print.c (print_state): Output its solved_conflicts.
1024 * tests/conflicts.at (Unresolved SR Conflicts)
1025 (Solved SR Conflicts): Exercise --report=all.
1026
a49aecd5
AD
10272002-05-26 Akim Demaille <akim@epita.fr>
1028
1029 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
1030 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
1031 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
1032 (token_number_t, item_number_as_token_number)
1033 (token_number_as_item_number, muscle_insert_token_number_table):
1034 Rename as...
1035 (symbol_number_t, item_number_as_symbol_number)
1036 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
1037 these, since it is more appropriate.
1038
5504898e
AD
10392002-05-26 Akim Demaille <akim@epita.fr>
1040
1041 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
1042 `Error:' lines.
1043 * data/bison.simple (yystos) [YYDEBUG]: New.
1044 (yyparse) [YYDEBUG]: Display the symbols which are popped during
1045 error recovery.
1046 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
1047
ec3bc396
AD
10482002-05-25 Akim Demaille <akim@epita.fr>
1049
1050 * doc/bison.texinfo (Debugging): Split into...
1051 (Tracing): this new section, its former contents, and...
1052 (Understanding): this new section.
1053 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
1054 by...
1055 (report_flag): this.
1056 Adjust all dependencies.
1057 (report_args, report_types, report_argmatch): New.
1058 (usage, getargs): Report/support -r, --report.
1059 * src/options.h
1060 (struct option_table_struct): Rename as..,
1061 (struct option_table_s): this.
1062 Rename the `set_flag' member to `flag' to match with getopt_long's
1063 struct.
1064 * src/options.c (option_table): Split verbose into an entry for
1065 %verbose, and another for --verbose.
1066 Support --report/-r, so remove -r from the obsolete --raw.
1067 * src/print.c: Attach full item sets and lookaheads reports to
1068 report_flag instead of trace_flag.
1069 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
1070
78df8250
PE
10712002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1072 and Paul Eggert <eggert@twinsun.com>
769b430f 1073
78df8250
PE
1074 * data/bison.simple (yyparse): Correct error handling to conform to
1075 POSIX and yacc. Specifically, after syntax error is discovered,
1076 do not reduce further before shifting the error token.
1077 Clean up the code a bit by removing the labels yyerrdefault,
1078 yyerrhandle, yyerrpop.
1079 * NEWS: Document the above.
1080
c0c9ea05
PH
10812002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1082
1083 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
1084 type; it isn't always big enough, since it doesn't necessarily
1085 include non-terminals.
769b430f 1086 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
1087 the latter can be removed.
1088 (yy_token_number_type): Remove, only one use.
1089 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
1090 don't use TokenNumberType as element type.
769b430f 1091
c0c9ea05
PH
1092 * tests/regression.at: Modify expected output to agree with change
1093 to yyr1 and yytranslate.
769b430f 1094
6390a83f
FK
10952002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
1096
1097 * src/reader.c (parse_action): Use copy_character instead of
1098 obstack_1grow.
1099
db7c8e9a
AD
11002002-05-13 Akim Demaille <akim@epita.fr>
1101
1102 * tests/regression.at (Token definitions): Prototype yylex and
1103 yyerror.
1104
fcc61800
PH
11052002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1106
158c687b 1107 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
1108 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
1109 32-bit arithmetic.
1110 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
1111
5683e9b2
AD
11122002-05-07 Akim Demaille <akim@epita.fr>
1113
1114 * tests/synclines.at: Be sure to prototype yylex and yyerror to
1115 avoid GCC warnings.
1116
0c2d3f4c
AD
11172002-05-07 Akim Demaille <akim@epita.fr>
1118
1119 Kill GCC warnings.
1120
1121 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
1122 over the RHS of each rule.
1123 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
1124 * src/state.h (state_t): Member `nitems' is unsigned short.
1125 * src/LR0.c (get_state): Adjust.
1126 * src/reader.c (packgram): Likewise.
1127 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
1128 `Type'.
1129 (muscle_insert_int_table): Remove, unused.
1130 (prepare_rules): Remove `max'.
1131
1565b720
AD
11322002-05-06 Akim Demaille <akim@epita.fr>
1133
1134 * src/closure.c (print_firsts): Display of the symbol tags.
1135 (bitmatrix_print): Move to...
1136 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
1137 here.
1138 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
1139
cfaee611
AD
11402002-05-06 Akim Demaille <akim@epita.fr>
1141
1142 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
1143 hash_do_for_each.
1144
458be8e0
AD
11452002-05-06 Akim Demaille <akim@epita.fr>
1146
1147 * src/LR0.c (new_state, get_state): Instead of using the global
1148 `kernel_size' and `kernel_base', have two new arguments:
1149 `core_size' and `core'.
1150 Adjust callers.
1151
a900a624
AD
11522002-05-06 Akim Demaille <akim@epita.fr>
1153
1154 * src/reader.c (packgram): No longer end `ritem' with a 0
1155 sentinel: it is not used.
1156
d4e7d3a1
AD
11572002-05-05 Akim Demaille <akim@epita.fr>
1158
1159 New experimental feature: display the lookaheads in the report and
1160 graph.
1161
1162 * src/print (print_core): When --trace-flag, display the rules
1163 lookaheads.
1164 * src/print_graph.c (print_core): Likewise.
1165 Swap the arguments.
1166 Adjust caller.
1167
39ceb25b
AD
11682002-05-05 Akim Demaille <akim@epita.fr>
1169
1170 * tests/torture.at (Many lookaheads): New test.
1171
5372019f
AD
11722002-05-05 Akim Demaille <akim@epita.fr>
1173
1174 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
1175 (GENERATE_MUSCLE_INSERT_TABLE): this.
1176 (output_int_table, output_unsigned_int_table, output_short_table)
1177 (output_token_number_table, output_item_number_table): Replace with...
1178 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
1179 (muscle_insert_short_table, muscle_insert_token_number_table)
1180 (muscle_insert_item_number_table): these.
1181 Adjust all callers.
1182 (prepare_tokens): Don't free `translations', since...
1183 * src/reader.h, src/reader.c (grammar_free): do it.
1184 Move to...
1185 * src/gram.h, src/gram.c (grammar_free): here.
1186 * data/bison.simple, data/bison.c++: b4_token_number_max is now
1187 b4_translate_max.
1188
5df5f6d5
AD
11892002-05-05 Akim Demaille <akim@epita.fr>
1190
1191 * src/output.c (output_unsigned_int_table): New.
1192 (prepare_rules): `i' is unsigned.
1193 `prhs', `rline', `r2' are unsigned int.
1194 Rename muscle `rhs_number_max' as `rhs_max'.
1195 Output muscles `prhs_max', `rline_max', and `r2_max'.
1196 Free rline and r1.
1197 * data/bison.simple, data/bison.c++: Adjust to use these muscles
1198 to compute types instead of constant types.
1199 * tests/regression.at (Web2c Actions): Adjust.
1200
b87f8b21
AD
12012002-05-04 Akim Demaille <akim@epita.fr>
1202
1203 * src/symtab.h (SALIAS, SUNDEF): Rename as...
1204 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
1205 Adjust dependencies.
1206 * src/output.c (token_definitions_output): Be sure not to output a
1207 `#define 'a'' when fed with `%token 'a' "a"'.
1208 * tests/regression.at (Token definitions): New.
1209
8bb936e4
PE
12102002-05-03 Paul Eggert <eggert@twinsun.com>
1211
1212 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
1213 for K&R C.
1214
12152002-05-03 gettextize <bug-gnu-gettext@gnu.org>
1216
1217 * Makefile.am (SUBDIRS): Remove intl.
1218 (EXTRA_DIST): Add config/config.rpath.
1219
53c71a12
AD
12202002-05-03 Akim Demaille <akim@epita.fr>
1221
1222 * data/bison.simple (m4_if): Don't output empty enums.
1223 And actually, output valid enum definitions :(.
1224
289dd0cf
AD
12252002-05-03 Akim Demaille <akim@epita.fr>
1226
1227 * configure.bat: Remove, completely obsolete.
1228 * Makefile.am (EXTRA_DIST): Adjust.
1229 Don't distribute config.rpath...
1230 * config/Makefile.am (EXTRA_DIST): Do it.
1231
db85e524
AD
12322002-05-03 Akim Demaille <akim@epita.fr>
1233
1234 * configure.in (GETTEXT_VERSION): New.
1235 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
1236
83ccf991
AD
12372002-05-03 Akim Demaille <akim@epita.fr>
1238
1239 * data/bison.simple (b4_token_enum): New.
1240 (b4_token_defines): Use it to output tokens both as #define and
1241 enums.
1242 Suggested by Paul Eggert.
1243 * src/output.c (token_definitions_output): Don't output spurious
1244 white spaces.
1245
1f418995
AD
12462002-05-03 Akim Demaille <akim@epita.fr>
1247
1248 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
1249
45119f04
RA
12502002-05-02 Robert Anisko <robert@lrde.epita.fr>
1251
1252 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
1253 Update the stack class, give a try to deque as the default container.
1254
b2d52318
AD
12552002-05-02 Akim Demaille <akim@epita.fr>
1256
1257 * data/bison.simple (yyparse): Do not implement @$ = @1.
1258 (YYLLOC_DEFAULT): Adjust to do it.
1259 * doc/bison.texinfo (Location Default Action): Fix.
1260
3a8b4109
AD
12612002-05-02 Akim Demaille <akim@epita.fr>
1262
1263 * src/reader.c (parse_braces): Merge into...
1264 (parse_action): this.
1265
84614e13
AD
12662002-05-02 Akim Demaille <akim@epita.fr>
1267
1268 * configure.in (ALL_LINGUAS): Remove.
1269 * po/LINGUAS, hr.po: New.
1270
fdbcd8e2
AD
12712002-05-02 Akim Demaille <akim@epita.fr>
1272
1273 Remove the so called hairy (semantic) parsers.
1274
1275 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
1276 * src/gram.h, src/gram.c (semantic_parser): Remove.
1277 (rule_t): Remove the guard and guard_line members.
1278 * src/lex.h (token_t): remove tok_guard.
1279 * src/options.c (option_table): Remove %guard and %semantic_parser
1280 support.
1281 * src/output.c, src/output.h (guards_output): Remove.
1282 (prepare): Adjust.
1283 (token_definitions_output): Don't output the `T'
1284 tokens (???).
1285 (output_skeleton): Don't output the guards.
1286 * src/files.c, src/files.c (attrsfile): Remove.
1287 * src/reader.c (symbol_list): Remove the guard and guard_line
1288 members.
1289 Adjust dependencies.
1290 (parse_guard): Remove.
1291 * data/bison.hairy: Remove.
1292 * doc/bison.texinfo (Environment Variables): Remove occurrences of
1293 BISON_HAIRY.
1294
82b6cb3f
AD
12952002-05-02 Akim Demaille <akim@epita.fr>
1296
1297 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
1298 (parse_guard): Rename the formal argument `stack_offset' as
1299 `rule_length', which is more readable.
1300 Adjust callers.
1301 (copy_at, copy_dollar): Instead of outputting the hard coded
1302 values of $$, $n and so forth, output invocation to b4_lhs_value,
1303 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
1304 Note: this patch partially drops `semantic-parser' support: it
1305 always does `rule_length - n', where semantic parsers ought to
1306 always use `-n'.
82b6cb3f
AD
1307 * data/bison.simple, data/bison.c++ (b4_lhs_value)
1308 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
1309
6cbfbcc5
AD
13102002-05-02 Akim Demaille <akim@epita.fr>
1311
1312 * configure.in (AC_INIT): Bump to 1.49b.
1313 (AM_INIT_AUTOMAKE): Short invocation.
1314
b8548114
AD
13152002-05-02 Akim Demaille <akim@epita.fr>
1316
1317 Version 1.49a.
1318
c20cd1fa
AD
13192002-05-01 Akim Demaille <akim@epita.fr>
1320
1321 * src/skeleton.h: Remove.
1322
8a9566d4
AD
13232002-05-01 Akim Demaille <akim@epita.fr>
1324
1325 * src/skeleton.h: Fix the #endif.
1326 Reported by Magnus Fromreide.
1327
8c6d399a
PE
13282002-04-26 Paul Eggert <eggert@twinsun.com>
1329
1330 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
1331 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 1332 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 1333
2b7ed18a
RA
13342002-04-25 Robert Anisko <robert@lrde.epita.fr>
1335
1336 * src/scan-skel.l: Postprocess quadrigraphs.
1337
1338 * src/reader.c (copy_character): New function, used to output
1339 single characters while replacing `[' and `]' with quadrigraphs, to
1340 avoid troubles with M4 quotes.
1341 (copy_comment): Output characters with copy_character.
1342 (read_additionnal_code): Likewise.
1343 (copy_string2): Likewise.
1344 (copy_definition): Likewise.
1345
1346 * tests/calc.at: Exercise M4 quoting.
1347
34a89c50
AD
13482002-04-25 Akim Demaille <akim@epita.fr>
1349
1350 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
1351 between `!' and the command.
1352 Reported by Paul Eggert.
1353
0dd1580a
RA
13542002-04-24 Robert Anisko <robert@lrde.epita.fr>
1355
1356 * tests/calc.at: Exercise prologue splitting.
1357
1358 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
1359 `b4_post_prologue' instead of `b4_prologue'.
1360
1361 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
1362 muscles.
1363 (output): Free pre_prologue_obstack and post_prologue_obstack.
1364 * src/files.h, src/files.c (attrs_obstack): Remove.
1365 (pre_prologue_obstack, post_prologue_obstack): New.
1366 * src/reader.c (copy_definition): Add a parameter to specify the
1367 obstack to fill, instead of using attrs_obstack unconditionally.
1368 (read_declarations): Pass pre_prologue_obstack to copy_definition if
1369 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
1370
83c1796f
PE
13712002-04-23 Paul Eggert <eggert@twinsun.com>
1372
1373 * data/bison.simple: Remove unnecessary commentary and white
1374 space differences from 1_29-branch.
1375 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
1376
1377 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
1378 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
1379 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
1380 constructors or destructors.
1381
1382 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
1383
1207eeac
AD
13842002-04-23 Akim Demaille <akim@epita.fr>
1385
1386 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
1387 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
1388 location with columns.
1389 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
1390 All reported by Paul Eggert.
1391
78ab8f67
AD
13922002-04-22 Akim Demaille <akim@epita.fr>
1393
1394 * src/reduce.c (dump_grammar): Move to...
1395 * src/gram.h, src/gram.c (grammar_dump): here.
1396 Be sure to separate long item numbers.
1397 Don't read the members of a rule's prec if its nil.
1398
133c20e2
AD
13992002-04-22 Akim Demaille <akim@epita.fr>
1400
1401 * src/output.c (table_size, table_grow): New.
1402 (MAXTABLE): Remove, replace uses with table_size.
1403 (pack_vector): Instead of dying when the table is too big, grow it.
1404
9515e8a7
AD
14052002-04-22 Akim Demaille <akim@epita.fr>
1406
1407 * data/bison.simple (yyr1): Its type is that of a token number.
1408 * data/bison.c++ (r1_): Likewise.
1409 * tests/regression.at (Web2c Actions): Adjust.
1410
23c5a174
AD
14112002-04-22 Akim Demaille <akim@epita.fr>
1412
1413 * src/reader.c (token_translations_init): 256 is now the default
1414 value for the error token, i.e., it will be assigned another
1415 number if the user assigned 256 to one of her tokens.
1416 (reader): Don't force 256 to error.
1417 * doc/bison.texinfo (Symbols): Adjust.
1418 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
1419 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
1420 etc. instead of 10, 20, 30 (which was used to `jump' over error
1421 (256) and undefined (2)).
1422
5fbb0954
AD
14232002-04-22 Akim Demaille <akim@epita.fr>
1424
1425 Propagate more token_number_t.
1426
1427 * src/gram.h (token_number_as_item_number)
1428 (item_number_as_token_number): New.
1429 * src/output.c (GENERATE_OUTPUT_TABLE): New.
1430 Use it to create output_item_number_table and
1431 output_token_number_table.
1432 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
1433 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
1434 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
1435 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
1436
4f940944
AD
14372002-04-22 Akim Demaille <akim@epita.fr>
1438
1439 * src/output.h, src/output.c (get_lines_number): Remove.
1440
3ded9a63
AD
14412002-04-19 Akim Demaille <akim@epita.fr>
1442
1443 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
1444 as Lex/Flex'.
1445 (Debugging): More details about enabling the debugging features.
1446 (Table of Symbols): Describe $$, $n, @$, and @n.
1447 Suggested by Tim Josling.
1448
e0c471a9
AD
14492002-04-19 Akim Demaille <akim@epita.fr>
1450
1451 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
1452
fecc10cd
AD
14532002-04-10 Akim Demaille <akim@epita.fr>
1454
1455 * src/system.h: Rely on HAVE_LIMITS_H.
1456 Suggested by Paul Eggert.
1457
51dec47b
AD
14582002-04-09 Akim Demaille <akim@epita.fr>
1459
1460 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
1461 full stderr, and strip it according to the bison options, instead
1462 of composing the error message from different bits.
1463 This makes it easier to check for several error messages.
1464 Adjust all the invocations.
1465 Add an invocation exercising the error token.
1466 Add an invocation demonstrating a stupid error message.
1467 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
1468 Adjust the tests.
1469 Error message are for stderr, not stdout.
1470
007a50a4
AD
14712002-04-09 Akim Demaille <akim@epita.fr>
1472
1473 * src/gram.h, src/gram.c (error_token_number): Remove, use
1474 errtoken->number.
1475 * src/reader.c (reader): Don't specify the user token number (2)
1476 for $undefined, as it uselessly prevents using it.
1477 * src/gram.h (token_number_t): Move to...
1478 * src/symtab.h: here.
1479 (state_t.number): Is a token_number_t.
1480 * src/print.c, src/reader.c: Use undeftoken->number instead of
1481 hard coded 2.
1482 (Even though this 2 is not the same as above: the number of the
1483 undeftoken remains being 2, it is its user token number which
1484 might not be 2).
1485 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
1486 `user_token_number_max'.
1487 Output `undef_token_number'.
1488 * data/bison.simple, data/bison.c++: Use them.
1489 Be sure to map invalid yylex return values to
1490 `undef_token_number'. This saves us from gratuitous SEGV.
1491
1492 * tests/conflicts.at (Solved SR Conflicts)
1493 (Unresolved SR Conflicts): Adjust.
1494 * tests/regression.at (Web2c Actions): Adjust.
1495
06446ccf
AD
14962002-04-08 Akim Demaille <akim@epita.fr>
1497
1498 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
1499 Adding #line.
1500 Remove the duplicate `typedefs'.
1501 (RhsNumberType): Fix the declaration and various other typos.
1502 Use __ofile__.
1503 * data/bison.simple: Use __ofile__.
1504 * src/scan-skel.l: Handle __ofile__.
1505
62a3e4f0
AD
15062002-04-08 Akim Demaille <akim@epita.fr>
1507
1508 * src/gram.h (item_number_t): New, the type of item numbers in
1509 RITEM. Note that it must be able to code symbol numbers as
1510 positive number, and the negation of rule numbers as negative
1511 numbers.
1512 Adjust all dependencies (pretty many).
1513 * src/reduce.c (rule): Remove this `short *' pointer: use
1514 item_number_t.
1515 * src/system.h (MINSHORT, MAXSHORT): Remove.
1516 Include `limits.h'.
1517 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
1518 (shortcpy): Remove.
1519 (MAXTABLE): Move to...
1520 * src/output.c (MAXTABLE): here.
1521 (prepare_rules): Use output_int_table to output rhs.
1522 * data/bison.simple, data/bison.c++: Adjust.
1523 * tests/torture.at (Big triangle): Move the limit from 254 to
1524 500.
1525 * tests/regression.at (Web2c Actions): Ajust.
1526
1527 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
1528 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
1529 passes, but produces negative #line number, once fixed, GCC is
1530 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
1531 C), it passes.
1532 * src/state.h (state_h): Code input lines on ints, not shorts.
1533
bb88b0fc
AD
15342002-04-08 Akim Demaille <akim@epita.fr>
1535
1536 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
1537 and then the grammar.
1538
9a636f47
AD
15392002-04-08 Akim Demaille <akim@epita.fr>
1540
1541 * src/system.h: No longer using strndup.
1542
680e8701
AD
15432002-04-07 Akim Demaille <akim@epita.fr>
1544
1545 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
1546 * src/output.c (output_table_data): Return the longest number.
1547 (prepare_tokens): Output `token_number_max').
1548 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
1549 New.
1550 Use them to define yy_token_number_type/TokenNumberType.
1551 Use this type for yytranslate.
1552 * tests/torture.at (Big triangle): Push the limit from 124 to
1553 253.
1554 * tests/regression.at (Web2c Actions): Adjust.
1555
817e9f41
AD
15562002-04-07 Akim Demaille <akim@epita.fr>
1557
1558 * tests/torture.at (Big triangle): New.
1559 (GNU AWK Grammar, GNU Cim Grammar): Move to...
1560 * tests/existing.at: here.
1561
5123689b
AD
15622002-04-07 Akim Demaille <akim@epita.fr>
1563
1564 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
1565 nritems.
1566 Adjust dependencies.
1567
f3849179
AD
15682002-04-07 Akim Demaille <akim@epita.fr>
1569
1570 * src/reader.c: Normalize increments to prefix form.
1571
bd02036a
AD
15722002-04-07 Akim Demaille <akim@epita.fr>
1573
1574 * src/reader.c, symtab.c: Remove debugging code.
1575
db8837cb
AD
15762002-04-07 Akim Demaille <akim@epita.fr>
1577
1578 Rename all the `bucket's as `symbol_t'.
1579
1580 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
1581 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
1582 * src/symtab.c, src/symtab.h (bucket): Rename as...
1583 (symbol_t): this.
1584 (symbol_list_new, bucket_check_defined, bucket_make_alias)
1585 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
1586 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
1587 (buckets_new, buckets_free, buckets_do): Rename as...
1588 (symbol_list_new, symbol_check_defined, symbol_make_alias)
1589 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
1590 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
1591 (symbols_new, symbols_free, symbols_do): these.
1592
72a23c97
AD
15932002-04-07 Akim Demaille <akim@epita.fr>
1594
1595 Use lib/hash for the symbol table.
1596
1597 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
1598 EOF.
1599 * src/lex.c (lex): Set the `number' member of new terminals.
1600 * src/reader.c (bucket_check_defined, bucket_make_alias)
1601 (bucket_check_alias_consistence, bucket_translation): New.
1602 (reader, grammar_free, readgram, token_translations_init)
1603 (packsymbols): Adjust.
1604 (reader): Number the predefined tokens.
1605 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
1606 for predefined tokens.
1607 * src/symtab.h (bucket): Remove all the hash table related
1608 members.
1609 * src/symtab.c (symtab): Replace by...
1610 (bucket_table): this.
1611 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
1612 (buckets_new, buckets_do): New.
1613
280a38c3
AD
16142002-04-07 Akim Demaille <akim@epita.fr>
1615
1616 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
1617 (start_symbol, max_user_token_number, semantic_parser)
1618 (error_token_number): Initialize.
1619 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
1620 Initialize.
1621 (reader): Don't.
1622 (errtoken, eoftoken, undeftoken, axiom): Extern.
1623
03b31c0c
AD
16242002-04-07 Akim Demaille <akim@epita.fr>
1625
1626 * src/gram.h (rule_s): prec and precsym are now pointers
1627 to the bucket giving the priority/associativity.
1628 Member `associativity' removed: useless.
1629 * src/reduce.c, src/conflicts.c: Adjust.
1630
8b3df748
AD
16312002-04-07 Akim Demaille <akim@epita.fr>
1632
1633 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
1634 Properly escape the symbols' TAG when outputting them.
1635
e601aa1d
AD
16362002-04-07 Akim Demaille <akim@epita.fr>
1637
1638 * src/lalr.h (LA): Is a bitsetv, not bitset*.
1639
b0299a2e
AD
16402002-04-07 Akim Demaille <akim@epita.fr>
1641
1642 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
1643 (LArule): this, which is an array to rule_t*.
1644 * src/print.c, src/conflicts.c: Adjust.
1645
d7e1f00c
AD
16462002-04-07 Akim Demaille <akim@epita.fr>
1647
1648 * src/gram.h (rule_t): Rename `number' as `user_number'.
1649 `number' is a new member.
1650 Adjust dependencies.
1651 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
1652
cc9305dd
AD
16532002-04-07 Akim Demaille <akim@epita.fr>
1654
1655 As a result of the previous patch, it is no longer needed
1656 to reorder ritem itself.
1657
1658 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
1659
b0940840
AD
16602002-04-07 Akim Demaille <akim@epita.fr>
1661
1662 Be sure never to walk through RITEMS, but use only data related to
1663 the rules themselves. RITEMS should be banished.
1664
1665 * src/output.c (output_token_translations): Rename as...
1666 (prepare_tokens): this.
1667 In addition to `translate', prepare the muscles `tname' and
1668 `toknum', which were handled by...
1669 (output_rule_data): this.
1670 Remove, and move the remainder of its outputs into...
1671 (prepare_rules): this new routines, which also merges content from
1672 (output_gram): this.
1673 (prepare_rules): Be sure never to walk through RITEMS.
1674 (output_stos): Rename as...
1675 (prepare_stos): this.
1676 (output): Always invoke prepare_states, after all, just don't use it
1677 in the output if you don't need it.
1678
643a5994
AD
16792002-04-07 Akim Demaille <akim@epita.fr>
1680
1681 * src/LR0.c (new_state): Display `nstates' as the name of the
1682 newly created state.
1683 Adjust to initialize first_state and last_state if needed.
1684 Be sure to distinguish the initial from the final state.
1685 (new_states): Create the itemset of the initial state, and use
1686 new_state.
1687 * src/closure.c (closure): Now that the initial state has its
1688 items properly set, there is no need for a special case when
1689 creating `ruleset'.
1690
1691 As a result, now the rule 0, reducing to $axiom, is visible in the
1692 outputs. Adjust the test suite.
1693
1694 * tests/conflicts.at (Solved SR Conflicts)
1695 (Unresolved SR Conflicts): Adjust.
1696 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
1697 * tests/conflicts.at (S/R in initial): New.
1698
b4c4ccc2
AD
16992002-04-07 Akim Demaille <akim@epita.fr>
1700
1701 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
1702 the RHS of the rules.
1703 * src/output.c (output_gram): Likewise.
1704
bba97eb2
AD
17052002-04-07 Akim Demaille <akim@epita.fr>
1706
1707 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
1708 bucket.
1709 Adjust all dependencies.
1710 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
1711 `number' of the buckets too.
1712 * src/gram.h: Include `symtab.h'.
1713 (associativity): Move to...
1714 * src/symtab.h: here.
1715 No longer include `gram.h'.
1716
c3b407f4
AD
17172002-04-07 Akim Demaille <akim@epita.fr>
1718
1719 * src/gram.h, src/gram.c (rules_rhs_length): New.
1720 (ritem_longest_rhs): Use it.
1721 * src/gram.h (rule_t): `number' is a new member.
1722 * src/reader.c (packgram): Set it.
1723 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
1724 the end of `rules', and count them out of `nrules'.
1725 (reduce_output, dump_grammar): Adjust.
1726 * src/print.c (print_grammar): It is no longer needed to check for
1727 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
1728 * tests/reduce.at (Reduced Automaton): New test.
1729
11652ab3
AD
17302002-04-07 Akim Demaille <akim@epita.fr>
1731
1732 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
1733 lacking `+ 1' to nrules, Bison reported as useless a token if it
1734 was used solely to set the precedence of the last rule...
1735
26b23c1a
AD
17362002-04-07 Akim Demaille <akim@epita.fr>
1737
1738 * data/bison.c++, data/bison.simple: Don't output the current file
1739 name in #line, to avoid useless diffs between two identical
1740 outputs under different names.
1741
18bcecb0
AD
17422002-04-07 Akim Demaille <akim@epita.fr>
1743
1744 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
1745 Normalize loops to using `< nrules + 1', not `<= nrules'.
1746
fa770c86
AD
17472002-04-07 Akim Demaille <akim@epita.fr>
1748
1749 * TODO: Update.
1750
d9b739c3
AD
17512002-04-07 Akim Demaille <akim@epita.fr>
1752
1753 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
1754 bucket.value as bucket.number.
1755
99013900
AD
17562002-04-07 Akim Demaille <akim@epita.fr>
1757
1758 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
1759 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
1760 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
1761 RHS, instead of being an index in RITEMS.
1762
e966383b
PE
17632002-04-04 Paul Eggert <eggert@twinsun.com>
1764
1765 * doc/bison.texinfo: Update copyright date.
1766 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
1767 (Symbols): Warn about running Bison in one character set,
1768 but compiling and/or running in an incompatible one.
1769 Warn about character code 256, too.
1770
17712002-04-03 Paul Eggert <eggert@twinsun.com>
1772
1773 * src/bison.data (YYSTACK_ALLOC): Depend on whether
1774 YYERROR_VERBOSE is nonzero, not whether it is defined.
1775
1776 Merge changes from bison-1_29-branch.
c307773e 1777
8d6c48b9
PE
17782002-03-20 Paul Eggert <eggert@twinsun.com>
1779
1780 Merge fixes from Debian bison_1.34-1.diff.
1781
1782 * configure.in (AC_PREREQ): 2.53.
1783
e53c6322
AD
17842002-03-20 Akim Demaille <akim@epita.fr>
1785
1786 * src/conflicts.c (log_resolution): Argument `resolution' is const.
1787
9ffbeca7
PE
17882002-03-19 Paul Eggert <eggert@twinsun.com>
1789
21db0b2a
PE
1790 * src/bison.simple (YYCOPY): New macro.
1791 (YYSTACK_RELOCATE): Use it.
1792 Remove Type arg; no longer needed. All callers changed.
1793 (yymemcpy): Remove; no longer needed.
1794
9ffbeca7
PE
1795 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
1796 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
1797
642cb8f8
AD
17982002-03-19 Akim Demaille <akim@epita.fr>
1799
1800 Test and fix the #line outputs.
1801
1802 * tests/atlocal.at (GCC): New.
1803 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
1804 (Prologue synch line, ,%union synch line, Postprologue synch line)
1805 (Action synch line, Epilogue synch line): New tests.
1806 * src/reader.c (parse_union_decl): Define the muscle stype_line.
1807 * data/bison.simple, data/bison.c++: Use it.
1808
3c31a486
AD
18092002-03-19 Akim Demaille <akim@epita.fr>
1810
1811 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
1812 (Solved SR Conflicts, %expect not enough, %expect right)
1813 (%expect too much): Move to...
1814 * tests/conflicts.at: this new file.
1815
0d8bed56
AD
18162002-03-19 Akim Demaille <akim@epita.fr>
1817
1818 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
1819 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
1820 that we can move to enums for instance.
1821 * src/output.c (token_definitions_output): Output a list of
1822 `token-name, token-number' instead of the #define.
1823 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
1824
9208d17f
AD
18252002-03-14 Akim Demaille <akim@epita.fr>
1826
1827 Use Gettext 0.11.1.
1828
af27eacb
RA
18292002-03-09 Robert Anisko <robert@lrde.epita.fr>
1830
1831 * data/bison.c++: Make the user able to add members to the generated
1832 parser by subclassing.
1833
9101a310
RA
18342002-03-05 Robert Anisko <robert@lrde.epita.fr>
1835
1836 * src/reader.c (read_additionnal_code): `c' should be an integer, not
1837 a character.
1838 Reported by Nicolas Tisserand and Nicolas Burrus.
1839
fff9bf0b
RA
18402002-03-04 Robert Anisko <robert@lrde.epita.fr>
1841
1842 * src/reader.c: Warn about lacking semi-colons, do not complain.
1843
64dba31e
RA
18442002-03-04 Robert Anisko <robert@lrde.epita.fr>
1845
1846 * data/bison.c++: Remove a debug line.
1847
374f5a14
RA
18482002-03-04 Robert Anisko <robert@lrde.epita.fr>
1849
1850 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
1851 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
1852 provide a default implementation.
1853
bfcf1f3a
AD
18542002-03-04 Akim Demaille <akim@epita.fr>
1855
1856 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
1857 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
1858 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
1859 * tests/semantic.at (Parsing Guards): Similarly.
1860 * src/reader.at (readgram): Complain if the last rule is not ended
1861 with a semi-colon.
1862
65ccf9fc
AD
18632002-03-04 Akim Demaille <akim@epita.fr>
1864
1865 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
1866 * src/closure.c: here.
1867 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
1868 RTC.
1869 * src/warshall.h, src/warshall.c: Remove.
1870 * tests/sets.at (Broken Closure): Adjust.
1871
d0039cbc
AD
18722002-03-04 Akim Demaille <akim@epita.fr>
1873
1874 * src/output.c (output_skeleton): tempdir is const.
1875 bytes_read is unused.
1876
345cea78
AD
18772002-03-04 Akim Demaille <akim@epita.fr>
1878
1879 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
1880 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
1881 Update.
1882 From Michael Hayes.
1883
564801f7
AD
18842002-03-04 Akim Demaille <akim@epita.fr>
1885
1886 * src/closure.c (closure): `r' is unused.
1887
e5352bc7
AD
18882002-03-04 Akim Demaille <akim@epita.fr>
1889
1890 * tests/sets.at (Broken Closure): Add the ending `;'.
1891 * src/reader.at (readgram): Complain if a rule is not ended with a
1892 semi-colon.
1893
914feea9
AD
18942002-03-04 Akim Demaille <akim@epita.fr>
1895
1896 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
1897 (count_sr_conflicts): Use bitset_count.
1898 * src/reduce.c (inaccessable_symbols): Ditto.
1899 (bits_size): Remove.
1900 * src/warshall.h, src/warshall.c: Convert to bitsetv.
1901
f0250de6
AD
19022002-03-04 Akim Demaille <akim@epita.fr>
1903
1904 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
1905 * src/reduce.c: Remove the `bitset_zero's following the
1906 `bitset_create's, as now it is performed by the latter.
1907
ef017502
AD
19082002-03-04 Akim Demaille <akim@epita.fr>
1909
1910 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
1911 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
1912 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
1913 latest sources from Michael.
1914
76514394
AD
19152002-03-04 Akim Demaille <akim@epita.fr>
1916
1917 * src/output.c (output): Don't free the grammar.
1918 * src/reader.c (grammar_free): New.
1919 * src/main.c (main): Call it and don't free symtab here.
1920
55024580
AD
19212002-03-04 Akim Demaille <akim@epita.fr>
1922
1923 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
1924 before returning.
1925 Reported by Benoit Perrot.
1926
f9abaa2c
AD
19272002-03-04 Akim Demaille <akim@epita.fr>
1928
1929 Use bitset operations when possible, not loops over bits.
1930
1931 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
1932 bitset_or.
1933 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
1934 * src/reduce.c (useless_nonterminals): Formatting changes.
1935 * src/warshall.c (TC): Use bitset_or.
1936
0e721e75
AD
19372002-03-04 Akim Demaille <akim@epita.fr>
1938
1939 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
1940 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
1941 Ditto.
1942
0fb1ffb1
AD
19432002-03-04 Akim Demaille <akim@epita.fr>
1944
1945 * src/lalr.c (F): Now a bitset*.
1946 Adjust all dependencies.
1947
b86796bf
AD
19482002-03-04 Akim Demaille <akim@epita.fr>
1949
1950 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
1951 Adjust all dependencies.
1952
602bbf31
AD
19532002-03-04 Akim Demaille <akim@epita.fr>
1954
1955 * src/L0.c, src/LR0.h (nstates): Be size_t.
1956 Adjust comparisons (signed vs unsigned).
1957 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
1958 bitset*.
1959 Adjust all dependencies.
1960
d8a0245c
AD
19612002-03-04 Akim Demaille <akim@epita.fr>
1962
1963 * src/closure.c (firsts): Now, also a bitset.
1964 Adjust all dependencies.
1965 (varsetsize): Remove, now unused.
1966 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
1967
34ba9743
AD
19682002-03-04 Akim Demaille <akim@epita.fr>
1969
1970 * src/print.c: Convert to use bitset.h, not hand coded iterations
1971 over ints.
1972
ed86e78c
AD
19732002-03-04 Akim Demaille <akim@epita.fr>
1974
1975 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
1976
dfdb1797
AD
19772002-03-04 Akim Demaille <akim@epita.fr>
1978
1979 * src/closure.c (ruleset): Be a bitset.
1980 (rulesetsize): Remove.
1981
7086e707
AD
19822002-03-04 Akim Demaille <akim@epita.fr>
1983
1984 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
1985 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
1986 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
1987 * src/closure.c (fderives): Be an array of bitsets.
1988
98254360
RA
19892002-02-28 Robert Anisko <robert@lrde.epita.fr>
1990
1991 * data/bison.c++: Merge the two generated headers. Insert a copyright
1992 notice in each output file.
1993
a75c057f
AD
19942002-02-28 Akim Demaille <akim@epita.fr>
1995
1996 * data/bison.c++: Copy the prologue of bison.simple to fetch
1997 useful M4 definitions, such as b4_header_guard.
1998
06b00abc
AD
19992002-02-25 Akim Demaille <akim@epita.fr>
2000
2001 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
2002 translator friendly scheme for the bgr
2003 copyright notice.
06b00abc 2004
70e7d534
AD
20052002-02-25 Akim Demaille <akim@epita.fr>
2006
2007 * src/output.c (header_output): Remove, now handled completely via
2008 M4.
2009
abe017f6
AD
20102002-02-25 Akim Demaille <akim@epita.fr>
2011
2012 * m4/m4.m4: New, from CVS Autoconf.
2013 * configure.in: Invoke it.
2014 * src/output.c (output_skeleton): Use its result instead of the
2015 hard coded name.
2016
381fb12e
AD
20172002-02-25 Akim Demaille <akim@epita.fr>
2018
2019 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
2020 Fileutils 4.1.5.
2021 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
2022 * src/output.c (output_skeleton): Use mkstemp to create a real
2023 temporary file.
2024 Move the filling of `skeleton' and its muscle to...
2025 (prepare): here.
2026 (output): Move the definition of the prologue muscle to...
2027 (prepare): here.
2028 * src/system.h (DEFAULT_TMPDIR): New.
2029
6f38107f
PE
20302002-02-14 Paul Eggert <eggert@twinsun.com>
2031
2032 Remove the support for C++ namespace cleanliness; it was
2033 causing more problems than it was curing, since it didn't work
2034 properly on some nonstandard C++ compilers. This can wait
2035 for a proper C++ parser.
2036
2037 * NEWS: Document this.
2038 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
2039 of C++, as it's treated like C now.
2040 * src/bison.simple (YYSTD): Remove.
2041 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
2042 Treat C++ just like Standard C instead of trying to support
2043 namespace cleanliness.
2044
80cce3da
AD
20452002-02-14 Akim Demaille <akim@epita.fr>
2046
2047 * tests/regression.at (else): Adjust to Andreas' change.
2048
842e8679
AD
20492002-02-14 Akim Demaille <akim@epita.fr>
2050
2051 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
2052
4bda3f10
AD
20532002-02-13 Andreas Schwab <schwab@suse.de>
2054
2055 * src/output.c (output_rule_data): Don't output NULL, it might
2056 not be defined yet.
2057
4162fa07 20582002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 2059
4162fa07
RA
2060 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
2061 (Copyright notice): Update.
b418ecd8 2062
bd16a5dc
AD
20632002-02-11 Akim Demaille <akim@epita.fr>
2064
2065 * tests/regression.at (%nonassoc and eof): Don't include
2066 nonportable headers.
2067
8d69a1a3
RA
20682002-02-08 Robert Anisko <robert@lrde.epita.fr>
2069
2070 * data/bison.c++: Correct error recovery. Make the user able to
2071 initialize the starting location.
2072
9b2d0677
AD
20732002-02-07 Akim Demaille <akim@epita.fr>
2074
2075 * tests/input.at: New.
2076
69e2658b
RA
20772002-02-07 Robert Anisko <robert@lrde.epita.fr>
2078
2079 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 2080 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
2081 directives around tables only needed for debugging.
2082
4aacc3a7
RA
20832002-02-07 Robert Anisko <robert@lrde.epita.fr>
2084
2085 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
2086 C++ parsers.
2087 (yy::b4_name::parse): Use print_.
2088
762a801e
RA
20892002-02-07 Robert Anisko <robert@lrde.epita.fr>
2090
2091 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
2092
4bb2bc3f
RA
20932002-02-07 Robert Anisko <robert@lrde.epita.fr>
2094
2095 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
2096 C++ parsers.
2097 (yy::b4_name::parse): Build verbose error messages, and use error_.
2098
6b45a3ca
RA
20992002-02-06 Robert Anisko <robert@lrde.epita.fr>
2100
2101 * data/bison.c++: Fix m4 quoting in comments.
2102
50997c6e
RA
21032002-02-06 Robert Anisko <robert@lrde.epita.fr>
2104
2105 * data/bison.c++: Adjust the parser code. Fix some muscles that were
2106 not expanded by m4.
2107
3f3eed27
AD
21082002-02-05 Akim Demaille <akim@epita.fr>
2109
2110 * data/bison.c++: Adjust to the M4 back end.
2111 More is certainly needed.
2112
be2a1a68
AD
21132002-02-05 Akim Demaille <akim@epita.fr>
2114
2115 Give a try to M4 as a back end.
2116
2117 * lib/readpipe.c: New, from wdiff.
2118 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
2119 BISON_HAIRY.
2120 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
2121 specific values. Now it is m4 that performs the lookup.
2122 * src/parse-skel.y: Remove.
2123 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
2124 * src/output.c (actions_output, guards_output)
2125 (token_definitions_output): No longer keeps track of the output
2126 line number, hence remove the second argument.
2127 (guards_output): Check against the guard member of a rule, not the
2128 action member.
2129 Adjust callers.
2130 (output_skeleton): Don't look for the skeleton location, let m4 do
2131 that.
2132 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
2133 file will be used.
2134 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
2135 (prepare): Given that for the time being changesyntax is not
2136 usable in M4, rename the muscles using `-' to `_'.
2137 Define `defines_flag', `output_parser_name' and `output_header_name'.
2138 * src/output.h (actions_output, guards_output)
2139 (token_definitions_output): Adjust prototypes.
2140 * src/scan-skel.l: Instead of scanning the skeletons, it now
2141 processes the output of m4: `__oline__' and `#output'.
2142 * data/bison.simple: Adjust to be used by M4(sugar).
2143 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
2144 to date.
2145 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
2146 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
2147 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
2148 shamelessly stolen from CVS Autoconf.
2149
beda758b
AD
21502002-02-05 Akim Demaille <akim@epita.fr>
2151
2152 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
2153 * configure.in: Check for the declarations of free and malloc.
2154 * src/muscle_tab.c: Adjust.
2155
5ece6d43
AD
21562002-02-05 Akim Demaille <akim@epita.fr>
2157
2158 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
2159 which have no values.
2160
5bb18f9a
AD
21612002-02-05 Akim Demaille <akim@epita.fr>
2162
2163 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
2164 * data/: here.
2165
894dd62e
PE
21662002-01-29 Paul Eggert <eggert@twinsun.com>
2167
2168 * src/bison.simple (YYSIZE_T): Do not define merely because
2169 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
2170 On some platforms, <alloca.h> does not declare YYSTD (size_t).
2171
82841af7
AD
21722002-01-27 Akim Demaille <akim@epita.fr>
2173
2174 Fix `%nonassoc and eof'.
2175
2176 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
2177 which were not properly copied! Replace
2178 memcpy (res->errs, src->errs, src->nerrs);
2179 with
2180 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
2181 !!!
2182 * tests/regression.at (%nonassoc and eof): Adjust to newest
2183 Autotest: `.' is not in the PATH.
2184
318b76e9
AD
21852002-01-27 Akim Demaille <akim@epita.fr>
2186
2187 * tests/sets.at (AT_EXTRACT_SETS): New.
2188 (Nullable): Use it.
2189 (Firsts): New.
2190
30d2f3d5
AD
21912002-01-26 Akim Demaille <akim@epita.fr>
2192
2193 * tests/actions.at, tests/calc.at, tests/headers.at,
2194 * tests/torture.at: Adjust to the newest Autotest which no longer
2195 forces `.' in the PATH.
2196
30f8c395
AD
21972002-01-25 Akim Demaille <akim@epita.fr>
2198
2199 * tests/regression.at (%nonassoc and eof): New.
2200 Suggested by Robert Anisko.
2201
29ae55f1
AD
22022002-01-24 Akim Demaille <akim@epita.fr>
2203
2204 Bison dumps core when trying to complain about broken input files.
2205 Reported by Cris van Pelt.
2206
2207 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
2208 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
2209 into...
2210 (Invalid inputs): Strengthen: exercise parse_percent_token.
2211
2b548aa6
RA
22122002-01-24 Robert Anisko <robert.anisko@epita.fr>
2213
2214 * src/Makefile.am: Add bison.c++.
2215 * src/bison.c++: New skeleton.
2216
bb0146c2
AD
22172002-01-21 Paolo Bonzini <bonzini@gnu.org>
2218
2219 * po/it.po: New.
2220
bec30531
AD
22212002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
2222
2223 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
2224
fc6edc45
MA
22252002-01-20 Marc Autret <marc@gnu.org>
2226
2227 * src/files.c (compute_output_file_names): Fix
2228
5e5d5415
MA
22292002-01-20 Marc Autret <marc@gnu.org>
2230
2231 * tests/output.at: New test.
2232 * src/files.c (compute_base_names): Don't map extensions when
2233 the YACC flag is set, use defaults.
2234 Reported by Evgeny Stambulchik.
2235
44ea3fbd
MA
22362002-01-20 Marc Autret <marc@gnu.org>
2237
bb0146c2 2238 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
2239 compilers as well (i.e. the vendor C compiler).
2240 Suggested by Albert Chin-A-Young.
2241
338963d1
TVH
22422002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
2243
2244 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
2245 canonical definition.
2246 * src/system.h: Use the canonical definition for PARAMS (avoids
2247 a conflict with the macro from lib/hash.h).
2248
c57b2479
AD
22492002-01-11 Akim Demaille <akim@epita.fr>
2250
2251 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 2252 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 2253
b85810ae
AD
22542002-01-09 Akim Demaille <akim@epita.fr>
2255
2256 * src/files.c, src/files.h (output_infix): New.
2257 (tab_extension): Remove.
2258 (compute_base_names): Compute the former, drop the latter.
2259 * src/output.c (prepare): Insert the muscles `output-infix', and
2260 `output-suffix'.
2261 * src/parse-skel.y (string, string.1): New.
2262 (section.header): Use it.
2263 (section.yacc): Remove.
2264 (prefix): Remove too.
2265 * src/scan-skel.l: Adjust.
2266 * src/bison.simple, src/bison.hairy: Adjust.
2267
cae60122
AD
22682002-01-09 Akim Demaille <akim@epita.fr>
2269
2270 * configure.in (WERROR_CFLAGS): Compute it.
2271 * src/Makefile.am (CFLAGS): Pass it.
2272 * tests/atlocal.in (CFLAGS): Idem.
2273 * src/files.c: Fix a few warnings.
2274 (get_extension_index): Remove, unused.
2275
ae404801
AD
22762002-01-08 Akim Demaille <akim@epita.fr>
2277
2278 * src/getargs.c (AS_FILE_NAME): New.
2279 (getargs): Use it to convert DOSish file names.
2280 * src/files.c (base_name): Rename as full_base_name to avoid
2281 clashes with `base_name ()'.
2282 (filename_split): New.
2283 (compute_base_names): N-th rewrite, using filename_split.
2284
22312b71
AD
22852002-01-08 Akim Demaille <akim@epita.fr>
2286
2287 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
2288 New, stolen from the Fileutils 4.1.
2289 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
2290 * configure.in: Check for the presence of memrchr, and of its
2291 prototype.
2292
a67cef01
TVH
22932002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
2294
2295 * lib/hash.h (__P): Added definition for this macro.
2296 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
2297 BUILT_SOURCES, to ensure they are generated first.
2298 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
2299 %error-verbose to allow bootstrapping with bison 1.30x.
2300
2b25d624
AD
23012002-01-06 Akim Demaille <akim@epita.fr>
2302
2303 * src/reader.c (parse_braces): Don't fetch the next char, the
2304 convention is to fetch on entry.
2305 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
2306 'switch' without a following semicolon.
2307 * tests/regression.at (braces parsing): New.
2308
3460813b
AD
23092002-01-06 Akim Demaille <akim@epita.fr>
2310
2311 Bison is dead wrong in its RR conflict reports.
2312
2313 * tests/torture.at (GNU Cim Grammar): New.
2314 * src/conflicts.c (count_rr_conflicts): Fix.
2315
73784c64
AD
23162002-01-06 Akim Demaille <akim@epita.fr>
2317
2318 Creating package.m4 from configure.ac causes too many problems.
2319
2320 * tests/Makefile.am (package.m4): Create it by hand,
2321 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
2322
25d81090
AD
23232002-01-06 Akim Demaille <akim@epita.fr>
2324
2325 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
2326 skeleton.h.
2327
a9b8959e
PE
23282002-01-04 Paul Eggert <eggert@twinsun.com>
2329
2330 * doc/bison.texinfo (Debugging):
2331 Remove YYSTDERR; it's no longer defined or used.
2332 Also, s/cstdio.h/cstdio/.
2333
25d81090
AD
23342002-01-03 Akim Demaille <akim@epita.fr>
2335
2336 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
2337
1109455c
AD
23382002-01-03 Akim Demaille <akim@epita.fr>
2339
2340 * src/parse-skel.y (process_skeleton): Don't bind the parser's
2341 tracing code to --trace, wait for a better --trace option, with
2342 args.
2343
7ea5e977
AD
23442002-01-03 Akim Demaille <akim@epita.fr>
2345
2346 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
2347 The ISO C++ standard is extremely clear about it: stderr is
2348 considered a macro, not a regular symbol (see table 94 `Header
2349 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
2350 Therefore std:: does not apply to it. It still does with fprintf.
2351 Also, s/cstdio.h/cstdio/.
2352
fab5b110
AD
23532002-01-03 Akim Demaille <akim@epita.fr>
2354
2355 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
2356 for non system headers.
2357
aed7fd9b
AD
23582002-01-02 Akim Demaille <akim@epita.fr>
2359
2360 Equip the skeleton chain with location tracking, runtime trace,
2361 pure parser and scanner.
2362
2363 * src/parse-skel.y: Request a pure parser, locations, and prefix
2364 renaming.
2365 (%union): Having several members with the same type does not help
2366 type mismatches, simplify.
2367 (YYPRINT, yyprint): New.
2368 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
2369 (skel_error): this.
2370 Handle locations.
2371 * src/scan-skel.l: Adjust to these changes.
2372 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
2373 (LOCATION_PRINT, skel_control_t): New.
2374
24fad99e
AD
23752001-12-30 Akim Demaille <akim@epita.fr>
2376
2377 * src/parse-skel.y: Get rid of the shift/reduce conflict:
2378 replace `gb' with BLANKS.
2379 * src/scan-skel.l: Adjust.
2380
a4b36db4
AD
23812001-12-30 Akim Demaille <akim@epita.fr>
2382
2383 * src/system.h: We don't need nor want bcopy.
2384 Throw away MS-DOS crap: we don't need getpid.
2385 * configure.in: We don't need strndup. It was even causing
2386 problems: because Flex includes the headers *before* us,
2387 _GNU_SOURCE is not defined by config.h, and therefore strndup was
2388 not visible.
2389 * lib/xstrndup.c: New.
2390 * src/scan-skel.l: Use it.
2391 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
2392 * src/parse-skel.y: Use %directives instead of #defines.
2393
1239777d
AD
23942001-12-30 Akim Demaille <akim@epita.fr>
2395
2396 * src/skeleton.h: New.
2397 * src/output.c (output_parser, output_master_parser): Remove, dead
2398 code.
2399 * src/output.h (get_lines_number, actions_output, guards_output)
2400 (token_definitions_output): Prototype them.
2401 * src/parse-skel.y: Add the license notice.
2402 Include output.h and skeleton.h.
2403 (process_skeleton): Returns void, and takes a single parameter.
2404 * src/scan-skel.l: Add the license notice.
2405 Include skeleton.h.
2406 Don't use %option yylineno: it seems that then Flex imagines
2407 REJECT has been used, and therefore it won't reallocate its
2408 buffers (which makes no other sense to me than a bug). It results
2409 in warnings for `unused: yy_flex_realloc'.
2410
9b3add5b
RA
24112001-12-30 Robert Anisko <robert.anisko@epita.fr>
2412
2413 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
2414 (MUSCLE_INSERT_PREFIX): ...to there.
2415 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
2416 (MUSCLE_INSERT_PREFIX): Move from here...
2417
2418 * src/bison.hairy: Add a section directive. Put braces around muscle
2419 names. This parser skeleton is still broken, but Bison should not
2420 choke on a bad muscle 'syntax'.
2421 * src/bison.simple: Add a section directive. Put braces around muscle
2422 names.
2423
2424 * src/files.h (strsuffix, stringappend): Add declarations.
2425 (tab_extension): Add declaration.
2426 (short_base_name): Add declaration.
2427
2428 * src/files.c (strsuffix, stringappend): No longer static. These
2429 functions are used in the skeleton parser.
2430 (tab_extension): New.
2431 (compute_base_names): Use the computations done in this function
fab5b110 2432 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
2433 names.
2434 (short_base_name): No longer static.
2435
2436 * src/output.c (output_skeleton): New.
2437 (output): Disable call to output_master_parser, and give a try to
2438 a new skeleton handling system.
2439 (guards_output, actions_output): No longer static.
2440 (token_definitions_output, get_lines_number): No longer static.
2441
2442 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
2443
fab5b110 2444 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
2445 parse-skel.y.
2446
2447 * src/parse-skel.y: New file.
2448 * src/scan-skel.l: New file.
2449
b5b61c61
AD
24502001-12-29 Akim Demaille <akim@epita.fr>
2451
2452 %name-prefix is broken.
2453
2454 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
2455 Adjust all dependencies.
2456 * tests/headers.at (export YYLTYPE): Strengthen this test: use
2457 %name-prefix.
2458
2459 Renaming yylval but not yylloc is not consistent. Now we do.
2460
2461 * src/bison.simple: Prefix yylloc if used.
2462 * doc/bison.texinfo (Decl Summary): Document that.
2463
8c9a50be
AD
24642001-12-29 Akim Demaille <akim@epita.fr>
2465
2466 * doc/bison.texinfo: Promote `%long-directive' over
2467 `%long_directive'.
2468 Remove all references to fixed-output-files, yacc is enough.
2469
d99361e6
AD
24702001-12-29 Akim Demaille <akim@epita.fr>
2471
2472 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
2473 user prologue. These are defaults.
2474 * tests/actions.at (Mid-rule actions): Make sure the user can
2475 define YYDEBUG and YYERROR_VERBOSE.
2476
b9cecb91
AD
24772001-12-29 Akim Demaille <akim@epita.fr>
2478
2479 * src/output.c (header_output): Don't forget to export YYLTYPE and
2480 yylloc.
2481 * tests/headers.at (export YYLTYPE): New, make sure it does.
2482 * tests/regression.at (%union and --defines, Invalid CPP headers):
2483 Move to...
2484 * tests/headers.at: here.
2485
aea13e97
AD
24862001-12-29 Akim Demaille <akim@epita.fr>
2487
2488 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
2489
931394cb
AD
24902001-12-29 Akim Demaille <akim@epita.fr>
2491
2492 * tests/actions.at (Mid-rule actions): Output on a single line
2493 instead of several.
2494
704a47c4
AD
24952001-12-29 Akim Demaille <akim@epita.fr>
2496
2497 * doc/bison.texinfo: Formatting changes.
2498
091e20bb
AD
24992001-12-29 Akim Demaille <akim@epita.fr>
2500
2501 Don't store the token defs in a muscle, just be ready to output it
2502 on command. Now possible via `symbols'. Fixes a memory leak.
2503
2504 * src/output.c (token_definitions_output): New.
2505 (output_parser, header_output): Use it.
2506 * src/reader.c (symbols_save): Remove.
2507
cce71710
AD
25082001-12-29 Akim Demaille <akim@epita.fr>
2509
2510 * src/bison.simple: Do not provide a default for YYSTYPE and
2511 YYLTYPE before the user's prologue. Otherwise it's hardly... a
2512 default.
2513
82c035a8
AD
25142001-12-29 Akim Demaille <akim@epita.fr>
2515
2516 Mid-rule actions are simply... ignored!
2517
2518 * src/reader.c (readgram): Be sure to attach mid-rule actions to
2519 the empty-rule associated to the dummy symbol, not to the host
2520 rule.
2521 * tests/actions.at (Mid-rule actions): New.
2522
8419d367
AD
25232001-12-29 Akim Demaille <akim@epita.fr>
2524
2525 Memory leak.
2526
2527 * src/reader.c (reader): Free grammar.
2528
375d5806
AD
25292001-12-29 Akim Demaille <akim@epita.fr>
2530
2531 Memory leak.
2532
2533 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
2534 since it allocates it for each state, although only one is needed.
2535 (allocate_storage): Do it here.
2536
f51cb8ff
AD
25372001-12-29 Akim Demaille <akim@epita.fr>
2538
2539 * src/options.h, src/options.c (create_long_option_table): Rename
2540 as...
2541 (long_option_table_new): this, with a clearer prototype.
2542 (percent_table): Remove, unused,
2543 * src/getargs.c (getargs): Adjust.
2544
29e88316
AD
25452001-12-29 Akim Demaille <akim@epita.fr>
2546
2547 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
2548 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
2549 as states.
2550
b9f71f19
AD
25512001-12-29 Akim Demaille <akim@epita.fr>
2552
2553 * src/lalr.c (build_relations): Rename `states' as `states1'.
2554 Sorry, I don't understand exactly what it is, no better name...
2555
1a2b5d37
AD
25562001-12-29 Akim Demaille <akim@epita.fr>
2557
2558 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
2559 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
2560 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
2561 as rules.
2562
1cca533e
AD
25632001-12-29 Akim Demaille <akim@epita.fr>
2564
2565 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
2566 ago.
2567
c03ae966
AD
25682001-12-29 Akim Demaille <akim@epita.fr>
2569
2570 * src/reader.c, src/reader.h (user_toknums): Remove.
2571 Adjust all users to use symbols[i]->user_token_number.
2572
5a670b1e
AD
25732001-12-29 Akim Demaille <akim@epita.fr>
2574
2575 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
2576 Adjust all users to use symbols[i]->prec or ->assoc.
2577
ad949da9
AD
25782001-12-29 Akim Demaille <akim@epita.fr>
2579
2580 * src/reader.c, src/reader.h (tags): Remove.
2581 Adjust all users to use symbols[i]->tag.
2582
0e78e603
AD
25832001-12-29 Akim Demaille <akim@epita.fr>
2584
2585 * src/gram.h, src/gram.c (symbols): New, similar to state_table
2586 and rule_table.
2587 * src/reader.c (packsymbols): Fill this table.
2588 Drop sprec.
2589 * src/conflicts.c (resolve_sr_conflict): Adjust.
2590 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
2591 single table.
2592 Use symbols[i]->tag instead of tags[i].
2593
213e640e
AD
25942001-12-29 Akim Demaille <akim@epita.fr>
2595
2596 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
2597 In addition, put a comment in there, to replace...
2598 * tests/regression.at (%union and C comments): Remove.
2599
e7b8bef1
AD
26002001-12-29 Akim Demaille <akim@epita.fr>
2601
2602 * tests/regression.at (Web2c Actions): Blindly move the actual
2603 output as expected output. The contents *seem* right to me, but I
2604 can't pretend reading perfectly parser tables... Nonetheless, all
2605 the other tests pass correctly, the table look OK, even though the
2606 presence of `$axiom' is to be noted: AFAICS it is useless (but
2607 harmless).
2608
b68e7744
AD
26092001-12-29 Akim Demaille <akim@epita.fr>
2610
2611 * src/reader.c (readgram): Don't add the rule 0 if there were no
2612 rules read. In other words, add it _after_ having performed
2613 grammar sanity checks.
2614 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
2615
78d5bae9
AD
26162001-12-29 Akim Demaille <akim@epita.fr>
2617
2618 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
2619 visible, and some states have now a different number.
2620
ff442794
AD
26212001-12-29 Akim Demaille <akim@epita.fr>
2622
2623 * src/reader.c (readgram): Bind the initial rule's lineno to that
2624 of the first rule.
2625 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
2626 (Solved SR Conflicts): Adjust rule 0's line number.
2627
610ab194
AD
26282001-12-29 Akim Demaille <akim@epita.fr>
2629
2630 Fix the `GAWK Grammar' failure.
2631
2632 * src/LR0.c (final_state): Initialize to -1 so that we do compute
2633 the reductions of the first state which was mistakenly confused
2634 with the final state because precisely final_state was initialized
2635 to 0.
2636 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
2637 now noticed by Bison.
2638 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
2639 have a reduction on $default.
2640
29d29c8f
AD
26412001-12-29 Akim Demaille <akim@epita.fr>
2642
2643 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
2644 rule line numbers.
2645 * src/closure.c (print_closure): Likewise.
2646 * src/derives.c (print_derives): Likewise.
2647 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
2648 now.
2649
7c6b64d0
AD
26502001-12-29 Akim Demaille <akim@epita.fr>
2651
2652 * src/lalr.c (lookaheads_print): New.
2653 (lalr): Call it when --trace-flag.
2654 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
2655 are dumped.
2656
3d4daee3
AD
26572001-12-29 Akim Demaille <akim@epita.fr>
2658
2659 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
2660 when walking through ritem, even via rule->rhs.
2661 * src/reduce.c (dump_grammar, useful_production, reduce_output)
2662 (useful_production, useless_nonterminals): Likewise.
2663 (reduce_grammar_tables): Likewise, plus update nritems.
2664 * src/nullable.c (set_nullable): Likewise.
2665 * src/lalr.c (build_relations): Likewise.
2666 * tests/sets.at (Nullable): Adjust.
2667 Fortunately, now, the $axiom is no longer nullable.
2668
9e7f6bbd
AD
26692001-12-29 Akim Demaille <akim@epita.fr>
2670
2671 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
2672 the 0-sentinel.
2673 * src/gram.c (ritem_longest_rhs): Likewise.
2674 * src/reduce.c (nonterminals_reduce): Likewise.
2675 * src/print_graph.c (print_graph): Likewise.
2676 * src/output.c (output_rule_data): Likewise.
2677 * src/nullable.c (set_nullable): Likewise.
2678
255ef638
AD
26792001-12-29 Akim Demaille <akim@epita.fr>
2680
2681 * src/output.c: Comment changes.
2682
0d8a7363
AD
26832001-12-27 Paul Eggert <eggert@twinsun.com>
2684
2685 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
2686 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
2687 Sparc, as they were causing more porting problems than the
2688 (minor) performance improvement was worth.
2689
2690 Also, catch up with 1.31's YYSTD.
2691
3db472b9
AD
26922001-12-27 Akim Demaille <akim@epita.fr>
2693
2694 * src/output.c (output_gram): Rely on nritems, not the
2695 0-sentinel. See below.
2696 Use -1 as separator, not 0.
2697 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
2698 Rely on -1 as separator in yyrhs, instead of 0.
2699 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
2700 twice `Now at end of input', therefore there are two lines less to
2701 expect.
2702
b365aa05
AD
27032001-12-27 Akim Demaille <akim@epita.fr>
2704
2705 * tests/regression.at (Unresolved SR Conflicts):
2706 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
2707 below.
2708
30171f79
AD
27092001-12-27 Akim Demaille <akim@epita.fr>
2710
2711 * src/LR0.c (new_state): Recognize the final state by the fact it
2712 is reached by eoftoken.
2713 (insert_start_shifting_state, insert_eof_shifting_state)
2714 (insert_accepting_state, augment_automaton): Remove, since now
2715 these states are automatically computed from the initial state.
2716 (generate_states): Adjust.
2717 * src/print.c: When reporting a rule number to the user, substract
2718 1, so that the axiom rule is rule 0, and the first user rule is 1.
2719 * src/reduce.c: Likewise.
2720 * src/print_graph.c (print_core): For the time being, just as for
2721 the report, depend upon --trace-flags to dump the full set of
2722 items.
2723 * src/reader.c (readgram): Once the grammar read, insert the rule
2724 0: `$axiom: START-SYMBOL $'.
2725 * tests/set.at: Adjust: rule 0 is now displayed, and since the
2726 number of the states has changed (the final state is no longer
2727 necessarily the last), catch up.
2728
75142d45
AD
27292001-12-27 Akim Demaille <akim@epita.fr>
2730
2731 Try to make the use of the eoftoken valid. Given that its value
2732 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
2733 is used instead of > 0 where appropriate, (ii), depend upon nritems
2734 instead of the 0-sentinel.
2735
2736 * src/gram.h, src/gram.c (nritems): New.
2737 Expected to be duplication of nitems, but for the time being...
2738 * src/reader.c (packgram): Assert nritems and nitems are equal.
2739 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
2740 * src/closure.c (print_closure, print_fderives): Likewise.
2741 * src/gram.c (ritem_print): Likewise.
2742 * src/print.c (print_core, print_grammar): Likewise.
2743 * src/print_graph.c: Likewise.
2744
b7c49edf
AD
27452001-12-27 Akim Demaille <akim@epita.fr>
2746
2747 * src/main.c (main): If there are complains after grammar
2748 reductions, then output the report anyway if requested, then die.
2749 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
2750 * src/reader.c (eoftoken): New.
2751 (parse_token_decl): If the token being defined has value `0', it
2752 is the eoftoken.
2753 (packsymbols): No longer hack `tags' to insert `$' by hand.
2754 Be sure to preserve the value of the eoftoken.
2755 (reader): Make sure eoftoken is defined.
2756 Initialize nsyms to 0: now eoftoken is created just like the others.
2757 * src/print.c (print_grammar): Don't special case the eof token.
2758 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
2759 lie anyway, albeit pleasant.
2760 * tests/calc.at: Exercise error messages with eoftoken.
2761 Change the grammar so that empty input is invalid.
2762 Adjust expectations.
2763 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
2764
ec2da99f
AD
27652001-12-27 Akim Demaille <akim@epita.fr>
2766
2767 * configure.in: Check the protos of strchr ans strspn.
2768 Replace strchr if needed.
2769 * src/system.h: Provide the protos of strchr, strspn and memchr if
2770 missing.
2771 * lib/strchr.c: New.
2772 * src/reader.c (symbols_save): Use strchr.
2773
8adfa272
AD
27742001-12-27 Akim Demaille <akim@epita.fr>
2775
2776 * src/print.c, src/print_graph.c (escape): New.
2777 Use it to quote the TAGS outputs.
2778 * src/print_graph.c (print_state): Now errors are in red, and
2779 reductions in green.
2780 Prefer high to wide: output the state number on a line of its own.
2781
80dac38c
AD
27822001-12-27 Akim Demaille <akim@epita.fr>
2783
2784 * src/state.h, src/state.c (reductions_new): New.
2785 * src/LR0.c (set_state_table): Let all the states have a
2786 `reductions', even if reduced to 0.
2787 (save_reductions): Adjust.
2788 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
2789 * src/print.c (print_reductions, print_actions): Adjust.
2790 * src/output.c (action_row): Adjust.
2791
2cec70b9
AD
27922001-12-27 Akim Demaille <akim@epita.fr>
2793
2794 * src/state.h, src/state.c (errs_new, errs_dup): New.
2795 * src/LR0.c (set_state_table): Let all the states have an errs,
2796 even if reduced to 0.
2797 * src/print.c (print_errs, print_reductions): Adjust.
2798 * src/output.c (output_actions, action_row): Adjust.
2799 * src/conflicts.c (resolve_sr_conflict): Adjust.
2800
13ca549a
AD
28012001-12-27 Akim Demaille <akim@epita.fr>
2802
2803 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
2804
5092aba5
AD
28052001-12-27 Akim Demaille <akim@epita.fr>
2806
2807 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
2808 * src/print.c: here.
2809 (lookaheadset, shiftset): New, used as additional storage by
2810 print_reductions.
2811 (print_results): Adjust.
2812 (print_shifts, print_gotos, print_errs): New, extracted from...
2813 (print_actions): here.
2814 * src/print_graph.c (print_actions): Remove dead code.
2815
11e2beca
AD
28162001-12-27 Akim Demaille <akim@epita.fr>
2817
2818 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
2819 `$n' and `@n'.
2820
dac3c910
AD
28212001-12-27 Akim Demaille <akim@epita.fr>
2822
2823 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
2824 (build_relations): Adjust.
2825
d0b0fefa
AD
28262001-12-27 Akim Demaille <akim@epita.fr>
2827
2828 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
2829 duplication.
2830
adc8c848
AD
28312001-12-27 Akim Demaille <akim@epita.fr>
2832
2833 * src/reader.c (packgram): Catch nitems overflows.
2834
14d293ac
AD
28352001-12-27 Akim Demaille <akim@epita.fr>
2836
2837 * src/files.c, src/files.h (guard_obstack): Remove.
2838 * src/output.c (output): Adjust.
2839 * src/reader.c (parse_braces): New, factoring...
2840 (copy_action, copy_guard): these two which are renamed as...
2841 (parse_action, parse_guard): these.
2842 As a voluntary consequence, using braces around guards is now
2843 mandatory.
2844
f499b062
AD
28452001-12-27 Akim Demaille <akim@epita.fr>
2846
2847 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
2848 * src/reader.c (symbol_list): `guard' and `guard_line' are new
2849 members.
2850 (symbol_list_new): Adjust.
2851 (copy_action): action_line is the first line, not the last.
2852 (copy_guard): Just as for actions, store the `action' only, not
2853 the switch/case/break flesh.
2854 Don't parse the user action that might follow the guard, let...
2855 (readgram): do it, i.e., now, there can be an action after a
2856 guard.
2857 In other words the guard is just explicitly optional.
2858 (packgram): Adjust.
2859 * src/output.c (guards_output): New.
2860 (output_parser): Call it when needed.
2861 (output): Also free the guard and attrs obstacks.
2862 * src/files.c, src/files.h (obstack_save): Remove.
2863 (output_files): Remove.
2864 As a result, if one needs the former `.act' file, using an
2865 appropriate skeleton which requires actions and guards is now
2866 required.
2867 * src/main.c (main): Adjust.
2868 * tests/semantic.at: New.
2869 * tests/regression.at: Use `input.y' as input file name.
2870 Avoid 8+3 problems by requiring input.c when the test needs the
2871 parser.
2872
d945f5cd
AD
28732001-12-27 Akim Demaille <akim@epita.fr>
2874
2875 * src/reader.c (symbol_list_new): Be sure to initialize all the
2876 fields.
2877
d200e455
AD
28782001-12-27 Akim Demaille <akim@epita.fr>
2879
2880 All the hacks using a final pseudo state are now useless.
2881
2882 * src/LR0.c (set_state_table): state_table holds exactly nstates.
2883 * src/lalr.c (nLA): New.
2884 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
2885 instead of lookaheadsp from the pseudo state (nstate + 1).
2886
f9507c28
AD
28872001-12-27 Akim Demaille <akim@epita.fr>
2888
2889 * src/output.c (action_row, token_actions): Use a state_t instead
2890 of a integer, and nlookaheads instead of the following state's
2891 lookaheadsp.
2892
065fbd27
AD
28932001-12-27 Akim Demaille <akim@epita.fr>
2894
2895 * src/conflicts.c (log_resolution, flush_shift)
2896 (resolve_sr_conflict, set_conflicts, solve_conflicts)
2897 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
2898 (conflicts_print, print_reductions): Use a state_t instead of an
2899 integer when referring to a state.
2900 As much as possible, depend upon nlookaheads, instead of the
2901 `lookaheadsp' member of the following state (since lookaheads of
2902 successive states are successive, the difference between state n + 1
2903 and n served as the number of lookaheads for state n).
2904 * src/lalr.c (add_lookback_edge): Likewise.
2905 * src/print.c (print_core, print_actions, print_state)
2906 (print_results): Likewise.
2907 * src/print_graph.c (print_core, print_actions, print_state)
2908 (print_graph): Likewise.
2909 * src/conflicts.h: Adjust.
2910
1b177bd7
AD
29112001-12-27 Akim Demaille <akim@epita.fr>
2912
2913 * src/bison.hairy: Formatting/comment changes.
2914 ANSIfy.
2915 Remove `register' indications.
2916 Add plenty of `static'.
2917
7742ddeb
AD
29182001-12-27 Akim Demaille <akim@epita.fr>
2919
2920 * src/output.c (prepare): Drop the muscle `ntbase' which
2921 duplicates ntokens.
2922 * src/bison.simple: Formatting/comment changes.
2923 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
2924 is an undocumented synonym.
2925
1fa14068
AD
29262001-12-22 Akim Demaille <akim@epita.fr>
2927
2928 * src/output.c (output_table_data): Change the prototype to use
2929 `int' for array ranges: some invocations do pass an int, not a
2930 short.
2931 Reported by Wayne Green.
2932
b9752825
AD
29332001-12-22 Akim Demaille <akim@epita.fr>
2934
2935 Some actions of web2c.y are improperly triggered.
2936 Reported by Mike Castle.
2937
2938 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
2939 * tests/regression.at (Web2c): Rename as...
2940 (Web2c Report): this.
2941 (Web2c Actions): New.
2942
776209d6
AD
29432001-12-22 Akim Demaille <akim@epita.fr>
2944
2945 Reductions in web2c.y are improperly reported.
2946 Reported by Mike Castle.
2947
2948 * src/conflicts.c (print_reductions): Fix.
2949 * tests/regression.at (Web2c): New.
2950
275fc3ad
AD
29512001-12-18 Akim Demaille <akim@epita.fr>
2952
2953 Some host fail on `assert (!"foo")', which expands to
2954 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
2955 Reported by Nelson Beebee.
2956
2957 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
2958 `#define it_succeeded 0' and `assert (it_succeeded)'.
2959
897668ee
MA
29602001-12-17 Marc Autret <autret_m@epita.fr>
2961
2962 * src/bison.simple: Don't hard code the skeleton line and filename.
2963 * src/output.c (output_parser): Rename 'line' as 'output_line'.
2964 New line counter 'skeleton_line' (skeleton-line muscle).
2965
ab3399e0
PE
29662001-12-17 Paul Eggert <eggert@twinsun.com>
2967
2968 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
2969 YYDEBUG must be defined to a nonzero value.
2970
2971 * src/bison.simple (yytname): Do not assume that the user defines
2972 YYDEBUG to a properly parenthesized expression.
2973
3877f72b
AD
29742001-12-17 Akim Demaille <akim@epita.fr>
2975
2976 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
2977 nlookaheads is a new member.
2978 Adjust all users.
2979 * src/lalr.h (nlookaheads): Remove this orphan declaration.
2980 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
2981 state.
776209d6 2982
331dbc1b
AD
29832001-12-17 Akim Demaille <akim@epita.fr>
2984
2985 * src/files.h, src/files.c (open_files, close_files): Remove.
2986 * src/main.c (main): Don't open/close files, nor invoke lex_free,
2987 let...
2988 * src/reader.c (reader): Do it.
776209d6 2989
be750e4c
AD
29902001-12-17 Akim Demaille <akim@epita.fr>
2991
2992 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 2993
709ae8c6
AD
29942001-12-17 Akim Demaille <akim@epita.fr>
2995
2996 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
2997 (flush_reduce): New.
2998 (resolve_sr_conflict): Adjust.
776209d6 2999
f87685c3
AD
30002001-12-17 Akim Demaille <akim@epita.fr>
3001
3002 * src/output.c (output_obstack): Be static and rename as...
3003 (format_obstack): this, to avoid any confusion with files.c's
3004 output_obstack.
3005 * src/reader.h (muscle_obstack): Move to...
3006 * src/output.h: here, since it's defined in output.c.
3007
837491d8
AD
30082001-12-17 Akim Demaille <akim@epita.fr>
3009
3010 * src/output.c (action_row, save_column, default_goto)
3011 (sort_actions, matching_state, pack_vector): Better variable
3012 locality.
3013
796d61fb
AD
30142001-12-17 Akim Demaille <akim@epita.fr>
3015
3016 * src/output.c: Various formatting changes.
776209d6 3017
64d15509
AD
30182001-12-17 Akim Demaille <akim@epita.fr>
3019
3020 * src/files.c (output_files): Free the output_obstack.
3021 * src/main.c (main): Call print and print_graph conditionally.
3022 * src/print.c (print): Work unconditionally.
3023 * src/print_graph.c (print_graph): Work unconditionally.
3024 * src/conflicts.c (log_resolution): Output only if verbose_flag.
3025
fbc8ecb7
MA
30262001-12-16 Marc Autret <autret_m@epita.fr>
3027
3028 * src/output.c (actions_output): Fix. When we use %no-lines,
3029 there is one less line per action.
3030
f0440388
MA
30312001-12-16 Marc Autret <autret_m@epita.fr>
3032
3033 * src/bison.simple: Remove a useless #line directive.
3034 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
3035 * src/output.c (get_lines_number): New.
776209d6 3036 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
3037 output muscles.
3038 Fix line numbering.
3039 (actions_output): Computes the number of lines taken by actions.
3040 (output_master_parser): Insert new skeleton which is the name of
3041 the output parser file name.
3042
a79986b8
MA
30432001-12-15 Marc Autret <autret_m@epita.fr>
3044
3045 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
3046
4ec8e00f
MA
30472001-12-15 Marc Autret <autret_m@epita.fr>
3048
3049 * src/output.c (output_gram): Keep track of the hairy one.
3050
1a4648ff
AD
30512001-12-15 Akim Demaille <akim@epita.fr>
3052
3053 Make `make distcheck' work.
3054
3055 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
3056 system.h which uses libgettext.h.
3057
9c2c67e6
AD
30582001-12-15 Akim Demaille <akim@epita.fr>
3059
3060 * src/nullable.c (set_nullable): Useless rules must be skipped,
3061 otherwise, since we range over their symbols, we might look at a
3062 nonterminal which no longer ``exists'', i.e., it is not counted in
3063 `nvars', hence we overflow our arrays.
3064
93ede233
AD
30652001-12-15 Akim Demaille <akim@epita.fr>
3066
3067 The header can also be produced directly, without any obstack!
3068 Yahoo!
3069
3070 * src/files.c, src/files.h (defines_obstack): Remove.
3071 (compute_header_macro): Global.
3072 (defines_obstack_save): Remove.
3073 * src/reader.c (parse_union_decl): No longer output to
3074 defines_obstack: its content can be found in the `stype' muscle
3075 anyway.
3076 (output_token_translations): Merge into...
3077 (symbols_output): this.
3078 Rename as...
3079 (symbols_save): this.
3080 (reader): Adjust.
3081 * src/output.c (header_output): New.
3082 (output): Call it.
3083
2666f928
AD
30842001-12-15 Akim Demaille <akim@epita.fr>
3085
3086 * src/reader.c (parse_union_decl): Instead of handling two obstack
3087 simultaneously, use one to define the `stype' muscle, and use the
3088 value of the latter to fill defines_obstack.
3089 (copy_comment): Remove.
3090 (copy_comment2): Work for a single obstack.
3091 Rename as...
3092 (copy_comment): this.
3093
428046f8
AD
30942001-12-15 Akim Demaille <akim@epita.fr>
3095
3096 * src/lex.c, src/lex.h (xgetc): No longer static.
3097 * src/reader.c (parse_union_decl): Revamp.
3098
ea52d706
AD
30992001-12-15 Akim Demaille <akim@epita.fr>
3100
3101 Still making progress in separating Bison into (i) input, (ii)
3102 process, (iii) output: now we can directly output the parser file
3103 without using table_obstack at all.
3104
3105 * src/files.c, src/files.h (table_obstack): Bye bye.
3106 (parser_file_name): New.
3107 * src/files.c (compute_output_file_names): Compute it.
3108 * src/output.c (actions_output, output_parser)
3109 (output_master_parser): To a file instead of an obstack.
3110
3f96f4dc
AD
31112001-12-15 Akim Demaille <akim@epita.fr>
3112
3113 Attach actions to rules, instead of pre-outputting them to
3114 actions_obstack.
3115
3116 * src/gram.h (rule_t): action and action_line are new members.
3117 * src/reader.c (symbol_list): Likewise.
3118 (copy_action): Save the actions within the rule.
3119 (packgram): Save them in rule_table.
3120 * src/output.c (actions_output): New.
3121 (output_parser): Use it on `%%actions'.
3122 (output_rule_data): Don't free rule_table.
3123 (output): Do it.
3124 (prepare): Don't save the `action' muscle.
3125 * src/bison.simple: s/%%action/%%actions/.
3126
51576fb3
AD
31272001-12-15 Akim Demaille <akim@epita.fr>
3128
3129 * src/reader.c (copy_action): When --yacc, don't append a `;'
3130 to the user action: let it fail if lacking.
dee049eb 3131 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 3132
2648a72d
AD
31332001-12-14 Akim Demaille <akim@epita.fr>
3134
3135 * src/lex.c (literalchar): Simply return the char you decoded, non
3136 longer mess around with obstacks and int pointers.
3137 Adjust all callers.
3138
92790e5b
AD
31392001-12-14 Akim Demaille <akim@epita.fr>
3140
3141 * src/lex.c (literalchar): Don't escape the special characters,
3142 just decode them, and keep them as char (before, eol was output as
3143 the 2 char string `\n' etc.).
3144 * src/output.c (output_rule_data): Use quotearg to output the
3145 token strings.
3146
927c1557
PE
31472001-12-13 Paul Eggert <eggert@twinsun.com>
3148
3149 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
3150 Do not infringe on the global user namespace when using C++.
3151 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
3152 All uses of `fprintf' and `stderr' changed.
3153
3154 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
3155
ed8e1f68
AD
31562001-12-13 Akim Demaille <akim@epita.fr>
3157
3158 The computation of nullable is broken: it doesn't handle empty
3159 RHS's properly.
3160
3161 * tests/torture.at (GNU AWK Grammar): New.
3162 * tests/sets.at (Nullable): New.
3163 * src/nullable.c (set_nullable): Instead of blindly looping over
3164 `ritems', loop over the rules, and then over their rhs's.
3165
3166 Work around Autotest bugs.
3167
3168 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
3169 frame, because Autotest understand lines starting with a `+' as
3170 traces from the shell. Then, they are not processed properly.
3171 Admittedly an Autotest bug, but we don't have time to wait for
3172 Autotest to catch up.
3173 * tests/regression.at (Broken Closure): Adjust to the new table
3174 frames.
3175 Move to...
3176 * tests/sets.at: here.
3177
cb581495
AD
31782001-12-13 Akim Demaille <akim@epita.fr>
3179
3180 * src/closure.c (closure): Use nrules instead of playing tricks
3181 with BITS_PER_WORD.
3182
2e729273
AD
31832001-12-13 Akim Demaille <akim@epita.fr>
3184
3185 * src/print.c (print_actions): Output the handling of `$' as the
3186 traces do: shifting the token EOF. Before EOF was treated as a
3187 nonterminal.
3188 * tests/regression.at: Adjust some tests.
3189 * src/print_graph.c (print_core): Complete the set of items via
3190 closure. The next-to-final and final states are still unsatisfying,
3191 but that's to be addressed elsewhere.
3192 No longer output the rule numbers, but do output the state number.
3193 A single loop for the shifts + gotos is enough, but picked a
3194 distinct color for each.
3195 (print_graph): Initialize and finalize closure.
3196
107f7dfb
AD
31972001-12-13 Akim Demaille <akim@epita.fr>
3198
3199 * src/reader.c (readgram): Remove dead code, an strip useless
3200 braces.
3201 (get_type): Remove, unused.
3202
9b53a24f
AD
32032001-12-12 Akim Demaille <akim@epita.fr>
3204
3205 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
3206 on that of lib/error.c.
3207
dbfb6dcd
AD
32082001-12-12 Akim Demaille <akim@epita.fr>
3209
3210 Some hosts don't like `/' in includes.
3211
3212 * src/system.h: Include libgettext.h without qualifying the path.
3213 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
3214 $(top_srcdir).
3215
c25fb648
MA
32162001-12-11 Marc Autret <autret_m@epita.fr>
3217
3218 * src/output.c (output_parser): Remove useless muscle.
3219
710ddc4f
MA
32202001-12-11 Marc Autret <autret_m@epita.fr>
3221
3222 * src/bison.simple: Remove #line just before %%epilogue. It
3223 is now handled in ...
3224 * src/reader.c (read_additionnal_code): Add the output of a
3225 #line for the epilogue.
3226
e83d80b8
MA
32272001-12-10 Marc Autret <autret_m@epita.fr>
3228
927c1557 3229 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
3230 replace precedent remove.
3231 * src/bison.simple: Remove #line before %%prologue because
3232 %%input-line is wrong at this time.
3233
971d5158
MA
32342001-12-10 Marc Autret <autret_m@epita.fr>
3235
3236 * src/reader.c (symbols_output): Clean up.
927c1557 3237 * src/output.c (output_gram, output): Clean up.
971d5158 3238
5edafffd
AD
32392001-12-10 Akim Demaille <akim@epita.fr>
3240
3241 * src/lalr.c (initialize_lookaheads): New. Extracted from...
3242 * src/LR0.c (set_state_table): here.
3243 * src/lalr.c (lalr): Call it.
3244
0279f8e9
AD
32452001-12-10 Akim Demaille <akim@epita.fr>
3246
3247 * src/state.h (shifts): Remove the `number' member: shifts are
3248 attached to state, hence no longer need to be labelled with a
3249 state number.
3250
190c4f5f
AD
32512001-12-10 Akim Demaille <akim@epita.fr>
3252
3253 Now that states have a complete set of members, the linked list of
3254 shifts is useless: just fill directly the state's shifts member.
3255
3256 * src/state.h (shifts): Remove the `next' member.
3257 * src/LR0.c (first_state, last_state): Remove.
3258 Adjust the callers.
3259 (augment_automaton): Don't look for the shifts that must be added
3260 a shift on EOF: it is those of the state we looked for! But now,
3261 since shifts are attached, it is no longer needed to looking
3262 merely by its id: its number.
3263
2a73b93d
AD
32642001-12-10 Akim Demaille <akim@epita.fr>
3265
3266 * src/LR0.c (augment_automaton): Better variable locality.
3267 Remove an impossible branch: if there is a state corresponding to
3268 the start symbol being shifted, then there is shift for the start
3269 symbol from the initial state.
3270
74392f6a
AD
32712001-12-10 Akim Demaille <akim@epita.fr>
3272
3273 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
3274 only when appropriate: when insert_start_shifting_state' is not
3275 invoked.
3276 * tests/regression.at (Rule Line Numbers): Adjust.
3277
37c82725
AD
32782001-12-10 Akim Demaille <akim@epita.fr>
3279
3280 * src/LR0.c (augment_automaton): Now that all states have shifts,
3281 merge the two cases addition shifts to the initial state.
3282
6a164e0c
AD
32832001-12-10 Akim Demaille <akim@epita.fr>
3284
3285 * src/lalr.c (set_state_table): Move to...
3286 * src/LR0.c: here.
3287 * src/lalr.c (lalr): Don't call it...
3288 * src/LR0.c (generate_states): do it.
3289 * src/LR0.h (first_state): Remove, only the table is used.
3290
7215de24
AD
32912001-12-10 Akim Demaille <akim@epita.fr>
3292
3293 * src/LR0.h (first_shift, first_reduction): Remove.
3294 * src/lalr.c: Don't use first_shift: find shifts through the
3295 states.
3296
80e25d4d
AD
32972001-12-10 Akim Demaille <akim@epita.fr>
3298
3299 * src/LR0.c: Attach shifts to states as soon as they are
3300 computed.
3301 * src/lalr.c (set_state_table): Instead of assigning shifts to
3302 state, just assert that the mapping was properly done.
3303
0ab3728b
AD
33042001-12-10 Akim Demaille <akim@epita.fr>
3305
3306 * src/LR0.c (insert_start_shift): Rename as...
3307 (insert_start_shifting_state): this.
3308 (insert_eof_shifting_state, insert_accepting_state): New.
3309 (augment_automaton): Adjust.
3310 Better locality of the variables.
3311 When looking if the start_symbol is shifted from the initial
3312 state, using `while (... symbol != start_symbol ...)' sounds
3313 better than `while (... symbol < start_symbol ...)': If fail
3314 to see how the order between symbols could be relevant!
3315
78af9bbc
AD
33162001-12-10 Akim Demaille <akim@epita.fr>
3317
3318 * src/getargs.h: Don't declare `spec_name_prefix' and
3319 `spec_file_prefix', declared by src/files.h.
3320 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
3321 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
3322 * src/output.c (prepare): Adjust.
3323 * src/reader.c (symbols_output): Likewise.
3324 * src/vmsgetargs.c: Vaguely adjust, but who cares?
3325
bdef2a41
AD
33262001-12-10 Akim Demaille <akim@epita.fr>
3327
3328 * src/muscle_tab.c (muscle_init): NULL is a better default than
3329 `"0"'.
3330
3735969c
AD
33312001-12-10 Akim Demaille <akim@epita.fr>
3332
3333 * src/reader.c (reader): Calling symbols_output once is enough.
3334
49701457
AD
33352001-12-10 Akim Demaille <akim@epita.fr>
3336
3337 Now that states have a complete set of members, the linked list of
3338 reductions is useless: just fill directly the state's reductions
3339 member.
3340
3341 * src/state.h (struct reductions): Remove member `number' and
3342 `next'.
3343 * src/LR0.c (first_reduction, last_reduction): Remove.
3344 (save_reductions): Don't link the new reductions, store them in
3345 this_state.
3346 * src/lalr.c (set_state_table): No need to attach reductions to
3347 states, it's already done.
3348 * src/output.c (output_actions): No longer free the shifts, then
3349 the reductions, then the states: free all the states and their
3350 members.
3351
0edad749
AD
33522001-12-10 Akim Demaille <akim@epita.fr>
3353
3354 * src/options.c (OPTN, DRTV, BOTH): New.
3355 (option_table): Use them.
3356
0edad749
AD
3357 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
3358 the job of system.h.
3359 * src/options.c: Don't include stdio.h and xalloc.h for the same
3360 reasons.
3361
5449dd0f
AD
33622001-12-10 Akim Demaille <akim@epita.fr>
3363
3364 * src/output.c (output, prepare): Make sure the values of the
3365 muscles `action' and `prologue' are 0-terminated.
3366
a870c567
AD
33672001-12-10 Akim Demaille <akim@epita.fr>
3368
3369 Clean up GCC warnings.
3370
3371 * src/reader.c (copy_action): `buf' is not used.
3372 (parse_skel_decl): Be static.
3373 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
3374 * src/options.h (create_long_option_table): Have a real prototype.
3375 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
3376 (hash_delete_at): Return const void *.
3377 Adjust casts to preserve the const.
3378
80df8768
AD
33792001-12-10 Akim Demaille <akim@epita.fr>
3380
3381 * configure.in: Require 2.52g.
3382 M4 is not needed, but AUTOM4TE is.
3383 * m4/m4.m4: Remove.
3384 * tests/Makefile.am: Adjust.
3385
f693ad14
AD
33862001-12-10 Akim Demaille <akim@epita.fr>
3387
3388 One structure for states is enough, even though theoretically
3389 there are LR(0) states and LALR(1) states.
3390
3391 * src/lalr.h (state_t): Remove.
3392 (state_table): Be state_t **, not state_t *.
3393 * src/state.h (core, CORE_ALLOC): Rename as...
3394 (state_t, STATE_ALLOC): this.
3395 Add the LALR(1) members: shifts, reductions, errs.
3396 * src/LR0.c (state_table): Rename as...
3397 (state_hash): this, to avoid name clashes with the global
3398 `state_table'.
3399 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
3400 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
3401
74ffbcb6
AD
34022001-12-10 Akim Demaille <akim@epita.fr>
3403
3404 Bison dumps core on bash.y.
3405 Reported by Pascal Bart.
3406
3407 * src/warshall.c (bitmatrix_print): New.
3408 (TC): Use it.
3409 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
3410 j must be the outer loop.
3411 * tests/regression.at (Broken Closure): New.
3412
07708e19
AD
34132001-12-05 Akim Demaille <akim@epita.fr>
3414
3415 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
3416 its argument.
3417