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