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