]> git.saurik.com Git - bison.git/blob - ChangeLog
* src/closure.c (print_firsts, print_fderives, closure):
[bison.git] / ChangeLog
1 2002-06-30 Akim Demaille <akim@epita.fr>
2
3 * src/closure.c (print_firsts, print_fderives, closure):
4 Use BITSET_EXECUTE.
5 * src/lalr.c (lookaheads_print): Likewise.
6 * src/state.c (state_rule_lookaheads_print): Likewise.
7 * src/print_graph.c (print_core): Likewise.
8 * src/print.c (print_reductions): Likewise.
9 * src/output.c (action_row): Likewise.
10 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
11
12
13 2002-06-30 Akim Demaille <akim@epita.fr>
14
15 * src/print_graph.c: Use report_flag.
16
17
18 2002-06-30 Akim Demaille <akim@epita.fr>
19
20 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
21 to...
22 * src/relation.h, src/relation.c (traverse, relation_digraph)
23 (relation_print, relation_transpose): New.
24
25
26 2002-06-30 Akim Demaille <akim@epita.fr>
27
28 * src/state.h, src/state.c (shifts_to): New.
29 * src/lalr.c (build_relations): Use it.
30
31
32 2002-06-30 Akim Demaille <akim@epita.fr>
33
34 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
35 (item_number_of_rule_number, rule_number_of_item_number): New.
36 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
37 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
38 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
39 Propagate their use.
40 Much remains to be done, in particular wrt `shorts' from types.h.
41
42
43 2002-06-30 Akim Demaille <akim@epita.fr>
44
45 * src/symtab.c (symbol_new): Initialize the `printer' member.
46
47
48 2002-06-30 Akim Demaille <akim@epita.fr>
49
50 * src/LR0.c (save_reductions): Remove, replaced by...
51 * src/state.h, src/state.c (state_reductions_set): New.
52 (reductions, errs): Rename as...
53 (reductions_t, errs_t): these.
54 Adjust all dependencies.
55
56
57 2002-06-30 Akim Demaille <akim@epita.fr>
58
59 * src/LR0.c (state_list_t, state_list_append): New.
60 (first_state, last_state): Now symbol_list_t.
61 (this_state): Remove.
62 (new_itemsets, append_states, save_reductions): Take a state_t as
63 argument.
64 (set_states, generate_states): Adjust.
65 (save_shifts): Remove, replaced by...
66 * src/state.h, src/state.c (state_shifts_set): New.
67 (shifts): Rename as...
68 (shifts_t): this.
69 Adjust all dependencies.
70 * src/state.h (state_t): Remove the `next' member.
71
72
73 2002-06-30 Akim Demaille <akim@epita.fr>
74
75 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
76 escaped in slot 0.
77
78
79 2002-06-30 Akim Demaille <akim@epita.fr>
80
81 Use hash.h for the state hash table.
82
83 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
84 (allocate_storage): Use state_hash_new.
85 (free_storage): Use state_hash_free.
86 (new_state, get_state): Adjust.
87 * src/lalr.h, src/lalr.c (states): Move to...
88 * src/states.h (state_t): Remove the `link' member, no longer
89 used.
90 * src/states.h, src/states.c: here.
91 (state_hash_new, state_hash_free, state_hash_lookup)
92 (state_hash_insert, states_free): New.
93 * src/states.c (state_table, state_compare, state_hash): New.
94 * src/output.c (output_actions): Do not free states now, since we
95 still need to know the final_state number in `prepare', called
96 afterwards. Do it...
97 * src/main.c (main): here: call states_free after `output'.
98
99
100 2002-06-30 Akim Demaille <akim@epita.fr>
101
102 Use hash.h for the state hash table.
103
104 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
105 (allocate_storage): Use state_hash_new.
106 (free_storage): Use state_hash_free.
107 (new_state, get_state): Adjust.
108 * src/lalr.h, src/lalr.c (states): Move to...
109 * src/states.h (state_t): Remove the `link' member, no longer
110 used.
111 * src/states.h, src/states.c: here.
112 (state_hash_new, state_hash_free, state_hash_lookup)
113 (state_hash_insert, states_free): New.
114 * src/states.c (state_table, state_compare, state_hash): New.
115 * src/output.c (output_actions): Do not free states now, since we
116 still need to know the final_state number in `prepare', called
117 afterwards. Do it...
118 * src/main.c (main): here: call states_free after `output'.
119
120
121 2002-06-30 Akim Demaille <akim@epita.fr>
122
123 * src/state.h, src/state.c (state_new): New, extracted from...
124 * src/LR0.c (new_state): here.
125 * src/state.h (STATE_ALLOC): Move to...
126 * src/state.c: here.
127 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
128 * src/state.h, src/state.c: here.
129
130
131 2002-06-30 Akim Demaille <akim@epita.fr>
132
133 * src/reader.c (gensym): Rename as...
134 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
135 (getsym): Rename as...
136 (symbol_get): this.
137
138
139 2002-06-30 Akim Demaille <akim@epita.fr>
140
141 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
142 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
143 * src/output.c, src/print.c, src/print_graph.c: Propagate.
144 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
145
146 2002-06-30 Akim Demaille <akim@epita.fr>
147
148 Make the test suite pass with warnings checked.
149
150 * tests/actions.at (Printers and Destructors): Improve.
151 Avoid unsigned vs. signed issues.
152 * tests/calc.at: Don't exercise the scanner here, do it...
153 * tests/input.at (Torturing the Scanner): here.
154
155
156 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
157
158 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
159 reorganize first lines parallel to yacc.c.
160
161 2002-06-28 Akim Demaille <akim@epita.fr>
162
163 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
164 (b4_token_enum, b4_token_defines): New, factored from...
165 * data/lalr1.cc, data/yacc.c, glr.c: here.
166
167 2002-06-28 Akim Demaille <akim@epita.fr>
168
169 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
170 unused variables.
171 * src/output.c (merger_output): static.
172
173 2002-06-28 Akim Demaille <akim@epita.fr>
174
175 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
176 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
177 pacify GCC.
178 * src/output.c (save_row): Initialize all the variables to pacify GCC.
179
180 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
181
182 Accumulated changelog for new GLR parsing features.
183
184 * src/conflicts.c (count_total_conflicts): Change name to
185 conflicts_total_count.
186 * src/conflicts.h: Ditto.
187 * src/output.c (token_actions): Use the new name.
188 (output_conflicts): Change conflp => conflict_list_heads, and
189 confl => conflict_list for better readability.
190 * data/glr.c: Use the new names.
191 * NEWS: Add self to GLR announcement.
192
193 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
194
195 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
196 Akim Demaille.
197
198 * data/bison.glr: Change name to glr.c
199 * data/glr.c: Renamed from bison.glr.
200 * data/Makefile.am: Add glr.c
201
202 * src/getargs.c:
203
204 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
205 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
206
207 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
208
209 * data/bison.glr: Be sure to restore the
210 current #line when returning to the skeleton contents after having
211 exposed the input file's #line.
212
213 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
214
215 * data/bison.glr: Bring up to date with changes to bison.simple.
216
217 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
218
219 * data/bison.glr: Correct definitions that use b4_prefix.
220 Various reformatting.
221 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
222 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
223 yytokenp argument; now part of stack.
224 (yychar): Define to behave as documented.
225 (yyclearin): Ditto.
226
227 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
228
229 * src/reader.h: Add declaration for free_merger_functions.
230
231 * src/reader.c (merge_functions): New variable.
232 (get_merge_function): New function.
233 (free_merger_functions): New function.
234 (readgram): Check for %prec that is not followed by a symbol.
235 Handle %dprec and %merge declarations.
236 (packgram): Initialize dprec and merger fields in rules array.
237
238 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
239 conflict_list_cnt, conflict_list_free): New variables.
240 (table_grow): Also grow conflict_table.
241 (prepare_rules): Output dprec and merger tables.
242 (conflict_row): New function.
243 (action_row): Output conflict lists for GLR parser. Don't use
244 default reduction in conflicted states for GLR parser so that there
245 are spaces for the conflict lists.
246 (save_row): Also save conflict information.
247 (token_actions): Allocate conflict list.
248 (merger_output): New function.
249 (pack_vector): Pack conflict table, too.
250 (output_conflicts): New function to output yyconflp and yyconfl.
251 (output_check): Allocate conflict_tos.
252 (output_actions): Output conflict tables, also.
253 (output_skeleton): Output b4_mergers definition.
254 (prepare): Output b4_max_rhs_length definition.
255 Use 'bison.glr' as default skeleton for GLR parsers.
256
257 * src/gram.c (glr_parser): New flag.
258 (grammar_free): Call free_merger_functions.
259
260 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
261 all pairs of conflicting reductions, rather than just all tokens
262 causing conflicts. Needed to size conflict tables.
263 (conflicts_output): Modify call to count_rr_conflicts for new
264 interface.
265 (conflicts_print): Ditto.
266 (count_total_conflicts): New function.
267
268 * src/reader.h (merger_list): New type.
269 (merge_functions): New variable.
270
271 * src/lex.h (tok_dprec, tok_merge): New token types.
272
273 * src/gram.h (rule_s): Add dprec and merger fields.
274 (glr_parser): New flag.
275
276 * src/conflicts.h (count_total_conflicts): New function.
277
278 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
279
280 * doc/bison.texinfo (Generalized LR Parsing): New section.
281 (GLR Parsers): New section.
282 (Language and Grammar): Mention GLR parsing.
283 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
284 Correct typo ("tge" -> "the").
285
286 * data/bison.glr: New skeleton for GLR parsing.
287
288 * tests/cxx-gram.at: New tests for GLR parsing.
289
290 * tests/testsuite.at: Include cxx-gram.at.
291
292 * tests/Makefile.am: Add cxx-gram.at.
293
294 * src/parse-gram.y:
295
296 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
297
298 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
299
300 2002-06-27 Akim Demaille <akim@epita.fr>
301
302 * src/options.h, src/options.c: Remove.
303 * src/getargs.c (short_options, long_options): New.
304
305 2002-06-27 Akim Demaille <akim@epita.fr>
306
307 * data/bison.simple, data/bison.c++: Rename as...
308 * data/yacc.c, data/lalr1.cc: these.
309 * doc/bison.texinfo (Environment Variables): Remove.
310
311 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
312
313 * src/getargs.c (report_argmatch): Initialize strtok().
314
315 2002-06-20 Akim Demaille <akim@epita.fr>
316
317 * data/bison.simple (b4_symbol_actions): New, replaces...
318 (b4_symbol_destructor, b4_symbol_printer): these.
319 (yysymprint): Be sure to call YYPRINT only for tokens, and using
320 user token numbers.
321
322 2002-06-20 Akim Demaille <akim@epita.fr>
323
324 * data/bison.simple (yydestructor): Rename as...
325 (yydestruct): this.
326
327 2002-06-20 Akim Demaille <akim@epita.fr>
328
329 * src/symtab.h, src/symtab.c (symbol_type_set)
330 (symbol_destructor_set, symbol_precedence_set): The location is
331 the last argument.
332 Adjust all callers.
333
334 2002-06-20 Akim Demaille <akim@epita.fr>
335
336 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
337 internals.
338 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
339 Takes a location.
340 * src/symtab.h, src/symtab.c (symbol_class_set)
341 (symbol_user_token_number_set): Likewise.
342 Adjust all callers.
343 Promote complain_at.
344 * tests/input.at (Type Clashes): Adjust.
345
346 2002-06-20 Akim Demaille <akim@epita.fr>
347
348 * data/bison.simple (YYLEX): Fix the declaration when
349 %pure-parser.
350
351 2002-06-20 Akim Demaille <akim@epita.fr>
352
353 * data/bison.simple (yysymprint): Don't print the token number,
354 just its name.
355 * tests/actions.at (Destructors): Rename as...
356 (Printers and Destructors): this.
357 Also exercise %printer.
358
359 2002-06-20 Akim Demaille <akim@epita.fr>
360
361 * data/bison.simple (YYDSYMPRINT): New.
362 Use it to remove many of the #if YYDEBUG/if (yydebug).
363
364 2002-06-20 Akim Demaille <akim@epita.fr>
365
366 * src/symtab.h, src/symtab.c (symbol_t): printer and
367 printer_location are new members.
368 (symbol_printer_set): New.
369 * src/parse-gram.y (PERCENT_PRINTER): New token.
370 Handle its associated rule.
371 * src/scan-gram.l: Adjust.
372 (handle_destructor_at, handle_destructor_dollar): Rename as...
373 (handle_symbol_code_at, handle_symbol_code_dollar): these.
374 * src/output.c (symbol_printers_output): New.
375 (output_skeleton): Call it.
376 * data/bison.simple (yysymprint): New. Cannot be named yyprint
377 since there are already many grammar files with a user `yyprint'.
378 Replace the calls to YYPRINT to calls to yysymprint.
379 * tests/calc.at: Adjust.
380 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
381 taking advantage of parser very internal details (stack size!).
382
383 2002-06-20 Akim Demaille <akim@epita.fr>
384
385 * src/scan-gram.l: Complete the scanner with the missing patterns
386 to pacify Flex.
387 Use `quote' and `symbol_tag_get' where appropriate.
388
389 2002-06-19 Akim Demaille <akim@epita.fr>
390
391 * tests/actions.at (Destructors): Augment to test locations.
392 * data/bison.simple (yydestructor): Pass it the current location
393 if locations are enabled.
394 Prototype only when __STDC__ or C++.
395 Change the argument names to move into the yy name space: there is
396 user code here.
397
398 2002-06-19 Akim Demaille <akim@epita.fr>
399
400 * data/bison.simple (b4_pure_if): New.
401 Use it instead of #ifdef YYPURE.
402
403 2002-06-19 Akim Demaille <akim@epita.fr>
404
405 * data/bison.simple (b4_location_if): New.
406 Use it instead of #ifdef YYLSP_NEEDED.
407
408 2002-06-19 Akim Demaille <akim@epita.fr>
409
410 Prepare @$ in %destructor, but currently don't bind it in the
411 skeleton, as %location use is not cleaned up yet.
412
413 * src/scan-gram.l (handle_dollar, handle_destructor_at)
414 (handle_action_at): New.
415 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
416 a braced_code_t and a location as additional arguments.
417 (handle_destructor_dollar): Instead of requiring `b4_eval', just
418 unquote one when outputting `b4_dollar_dollar'.
419 Adjust callers.
420 * data/bison.simple (b4_eval): Remove.
421 (b4_symbol_destructor): Adjust.
422 * tests/input.at (Invalid @n): Adjust.
423
424 2002-06-19 Zack Weinberg <zack@codesourcery.com>
425
426 * doc/bison.texinfo: Document ability to have multiple
427 prologue sections.
428
429 2002-06-18 Akim Demaille <akim@epita.fr>
430
431 * src/files.c (compute_base_names): When computing the output file
432 names from the input file name, strip the directory part.
433
434 2002-06-18 Akim Demaille <akim@epita.fr>
435
436 * data/bison.simple.new: Comment changes.
437 Reported by Andreas Schwab.
438
439 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
440
441 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
442 there are no `label `yyoverflowlab' defined but not used' warnings
443 when yyoverflow is defined.
444
445 2002-06-18 Akim Demaille <akim@epita.fr>
446
447 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
448 new member.
449 (symbol_destructor_set): Adjust.
450 * src/output.c (symbol_destructors_output): Output the destructor
451 locations.
452 Output the symbol name.
453 * data/bison.simple (b4_symbol_destructor): Adjust.
454
455 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
456 and Akim Demaille <akim@epita.fr>
457
458 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
459 what's left on the stack when the error recovery hits EOF.
460 * tests/actions.at (Destructors): Complete to exercise this case.
461
462 2002-06-17 Akim Demaille <akim@epita.fr>
463
464 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
465 arguments is really empty, not only equal to `[]'.
466 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
467 member.
468 (symbol_destructor_set): New.
469 * src/output.c (symbol_destructors_output): New.
470 * src/reader.h (brace_code_t, current_braced_code): New.
471 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
472 (handle_dollar): Rename as...
473 (handle_action_dollar): this.
474 (handle_destructor_dollar): New.
475 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
476 (grammar_declaration): Use it.
477 * data/bison.simple (yystos): Is always defined.
478 (yydestructor): New.
479 * tests/actions.at (Destructors): New.
480 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
481
482 2002-06-17 Akim Demaille <akim@epita.fr>
483
484 * src/symlist.h, src/symlist.c (symbol_list_length): New.
485 * src/scan-gram.l (handle_dollar, handle_at): Compute the
486 rule_length only when needed.
487 * src/output.c (actions_output, token_definitions_output): Output
488 the full M4 block.
489 * src/symtab.c: Don't access directly to the symbol tag, use
490 symbol_tag_get.
491 * src/parse-gram.y: Use symbol_list_free.
492
493 2002-06-17 Akim Demaille <akim@epita.fr>
494
495 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
496 (symbol_list_prepend, get_type_name): Move to...
497 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
498 (symbol_list_prepend, symbol_list_n_type_name_get): here.
499 Adjust all callers.
500 (symbol_list_free): New.
501 * src/scan-gram.l (handle_dollar): Takes a location.
502 * tests/input.at (Invalid $n): Adjust.
503
504 2002-06-17 Akim Demaille <akim@epita.fr>
505
506 * src/reader.h, src/reader.c (symbol_list_new): Export it.
507 (symbol_list_prepend): New.
508 * src/parse-gram.y (%union): `list' is a new member.
509 (symbols.1): New, replaces...
510 (terms_to_prec.1, nterms_to_type.1): these.
511 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
512 Take a location as additional argument.
513 Adjust all callers.
514
515 2002-06-15 Akim Demaille <akim@epita.fr>
516
517 * src/parse-gram.y: Move %token in the declaration section so that
518 we don't depend upon CVS Bison.
519
520 2002-06-15 Akim Demaille <akim@epita.fr>
521
522 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
523 * src/print.c (print_core): Use it.
524
525 2002-06-15 Akim Demaille <akim@epita.fr>
526
527 * src/conflicts.c (log_resolution): Accept the rule involved in
528 the sr conflicts instead of the lookahead number that points to
529 that rule.
530 (flush_reduce): Accept the current lookahead vector as argument,
531 instead of the index in LA.
532 (resolve_sr_conflict): Accept the current number of lookahead
533 bitset to consider for the STATE, instead of the index in LA.
534 (set_conflicts): Adjust.
535 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
536
537 2002-06-15 Akim Demaille <akim@epita.fr>
538
539 * src/state.h (state_t): Replace the `lookaheadsp' member, a
540 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
541 Adjust all dependencies.
542 * src/lalr.c (initialize_lookaheads): Split into...
543 (states_lookaheads_count, states_lookaheads_initialize): these.
544 (lalr): Adjust.
545
546 2002-06-15 Akim Demaille <akim@epita.fr>
547
548 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
549 out of...
550 (grammar_rules_print): here.
551 * src/reduce.c (reduce_output): Use it.
552 * tests/reduce.at (Useless Rules, Reduced Automaton)
553 (Underivable Rules): Adjust.
554
555 2002-06-15 Akim Demaille <akim@epita.fr>
556
557 Copy BYacc's nice way to report the grammar.
558
559 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
560 New.
561 Don't print the rules' location, it is confusing and useless.
562 (rule_print): Use grammar_rhs_print.
563 * src/print.c (print_grammar): Use grammar_rules_print.
564
565 2002-06-15 Akim Demaille <akim@epita.fr>
566
567 Complete and rationalize `useless thing' warnings.
568
569 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
570 (symbol_tag_print): New.
571 Use them everywhere in place of accessing directly the tag member.
572 * src/gram.h, src/gram.c (rule_print): New.
573 Use it where a rule used to be printed `by hand'.
574 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
575 (reduce_grammar_tables): Report the useless rules.
576 (reduce_print): Useless things are a warning, not an error.
577 Report it as such.
578 * tests/reduce.at (Useless Nonterminals, Useless Rules):
579 (Reduced Automaton, Underivable Rules): Adjust.
580 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
581 * tests/conflicts.at (Unresolved SR Conflicts)
582 (Solved SR Conflicts): Adjust.
583
584 2002-06-15 Akim Demaille <akim@epita.fr>
585
586 Let symbols have a location.
587
588 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
589 (getsym): Adjust.
590 Adjust all callers.
591 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
592 Use location_t, not int.
593 * src/symtab.c (symbol_check_defined): Take advantage of the
594 location.
595 * tests/regression.at (Invalid inputs): Adjust.
596
597 2002-06-15 Akim Demaille <akim@epita.fr>
598
599 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
600 (input): Don't try to initialize yylloc here, do it in the
601 scanner.
602 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
603 * src/gram.h (rule_t): Change line and action_line into location
604 and action_location, of location_t type.
605 Adjust all dependencies.
606 * src/location.h, src/location.c (empty_location): New.
607 * src/reader.h, src/reader.c (grammar_start_symbol_set)
608 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
609 (grammar_current_rule_symbol_append)
610 (grammar_current_rule_action_append): Expect a location as argument.
611 * src/reader.c (grammar_midrule_action): Adjust to attach an
612 action's location as dummy symbol location.
613 * src/symtab.h, src/symtab.c (startsymbol_location): New.
614 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
615 the line numbers.
616
617 2002-06-14 Akim Demaille <akim@epita.fr>
618
619 Grammar declarations may be found in the grammar section.
620
621 * src/parse-gram.y (rules_or_grammar_declaration): New.
622 (declarations): Each declaration may end with a semicolon, not
623 just...
624 (grammar_declaration): `"%union"'.
625 (grammar): Branch to rules_or_grammar_declaration.
626
627 2002-06-14 Akim Demaille <akim@epita.fr>
628
629 * src/main.c (main): Invoke scanner_free.
630
631 2002-06-14 Akim Demaille <akim@epita.fr>
632
633 * src/output.c (m4_invoke): Extracted from...
634 (output_skeleton): here.
635 Free tempfile.
636
637 2002-06-14 Akim Demaille <akim@epita.fr>
638
639 * src/parse-gram.y (directives, directive, gram)
640 (grammar_directives, precedence_directives, precedence_directive):
641 Rename as...
642 (declarations, declaration, grammar, grammar_declaration)
643 (precedence_declaration, precedence_declarator): these.
644 (symbol_declaration): New.
645
646 2002-06-14 Akim Demaille <akim@epita.fr>
647
648 * src/files.c (action_obstack): Remove, unused.
649 (output_obstack): Remove it, and all its dependencies, as it is no
650 longer needed.
651 * src/reader.c (epilogue_set): Build the epilogue in the
652 muscle_obstack.
653 * src/output.h, src/output.c (muscle_obstack): Move to...
654 * src/muscle_tab.h, src/muscle_tab.h: here.
655 (muscle_init): Initialize muscle_obstack.
656 (muscle_free): New.
657 * src/main.c (main): Call it.
658
659 2002-06-14 Akim Demaille <akim@epita.fr>
660
661 * src/location.h: New, extracted from...
662 * src/reader.h: here.
663 * src/Makefile.am (noinst_HEADERS): Merge into
664 (bison_SOURCES): this.
665 Add location.h.
666 * src/parse-gram.y: Use location_t instead of Bison's.
667 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
668 Use location_t instead of ints.
669
670 2002-06-14 Akim Demaille <akim@epita.fr>
671
672 * data/bison.simple, data/bison.c++: Be sure to restore the
673 current #line when returning to the skeleton contents after having
674 exposed the input file's #line.
675
676 2002-06-12 Akim Demaille <akim@epita.fr>
677
678 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
679 eager.
680 * tests/actions.at (Exotic Dollars): New.
681
682 2002-06-12 Akim Demaille <akim@epita.fr>
683
684 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
685 ['"/] too eagerly.
686 * tests/input.at (Torturing the Scanner): New.
687
688 2002-06-11 Akim Demaille <akim@epita.fr>
689
690 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
691 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
692 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
693 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
694 * src/reader.c (reader): Use it.
695
696 2002-06-11 Akim Demaille <akim@epita.fr>
697
698 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
699 Adjust all callers.
700 (scanner_last_string_free): New.
701
702 2002-06-11 Akim Demaille <akim@epita.fr>
703
704 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
705 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
706 (last_string, YY_OBS_FREE): New.
707 Use them when returning an ID.
708
709 2002-06-11 Akim Demaille <akim@epita.fr>
710
711 Have Bison grammars parsed by a Bison grammar.
712
713 * src/reader.c, src/reader.h (prologue_augment): New.
714 * src/reader.c (copy_definition): Remove.
715
716 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
717 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
718 (grammar_current_rule_prec_set, grammar_current_rule_check)
719 (grammar_current_rule_symbol_append)
720 (grammar_current_rule_action_append): Export.
721 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
722 (symbol_list_action_append): Remove.
723 Hook the routines from reader.
724 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
725 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
726
727 * src/reader.c (read_declarations): Remove, unused.
728
729 * src/parse-gram.y: Handle the epilogue.
730 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
731 (grammar_start_symbol_set): this.
732 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
733 * src/reader.c (readgram): Remove, unused.
734 (reader): Adjust to insert eoftoken and axiom where appropriate.
735
736 * src/reader.c (copy_dollar): Replace with...
737 * src/scan-gram.h (handle_dollar): this.
738 * src/parse-gram.y: Remove `%thong'.
739
740 * src/reader.c (copy_at): Replace with...
741 * src/scan-gram.h (handle_at): this.
742
743 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
744 New.
745
746 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
747 time being.
748
749 * src/reader.h, src/reader.c (grammar_rule_end): New.
750
751 * src/parse.y (current_type, current_class): New.
752 Implement `%nterm', `%token' support.
753 Merge `%term' into `%token'.
754 (string_as_id): New.
755 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
756 type name.
757
758 * src/parse-gram.y: Be sure to handle properly the beginning of
759 rules.
760
761 * src/parse-gram.y: Handle %type.
762 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
763
764 * src/parse-gram.y: More directives support.
765 * src/options.c: No longer handle source directives.
766
767 * src/parse-gram.y: Fix %output.
768
769 * src/parse-gram.y: Handle %union.
770 Use the prologue locations.
771 * src/reader.c (parse_union_decl): Remove.
772
773 * src/reader.h, src/reader.c (epilogue_set): New.
774 * src/parse-gram.y: Use it.
775
776 * data/bison.simple, data/bison.c++: b4_stype is now either not
777 defined, then default to int, or to the contents of %union,
778 without `union' itself.
779 Adjust.
780 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
781
782 * src/output.c (actions_output): Don't output braces, as they are
783 already handled by the scanner.
784
785 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
786 characters to themselves.
787
788 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
789 that the epilogue has a proper #line.
790
791 * src/parse-gram.y: Handle precedence/associativity.
792
793 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
794 a terminal.
795 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
796 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
797 at all to define terminals that cannot be emitted.
798
799 * src/scan-gram.l: Escape M4 characters.
800
801 * src/scan-gram.l: Working properly with escapes in user
802 strings/characters.
803
804 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
805 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
806 grammar.
807 Use more modest sizes, as for the time being the parser does not
808 release memory, and therefore the process swallows a huge amount
809 of memory.
810
811 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
812 stricter %token grammar.
813
814 * src/symtab.h (associativity): Add `undef_assoc'.
815 (symbol_precedence_set): Do nothing when passed an undef_assoc.
816 * src/symtab.c (symbol_check_alias_consistence): Adjust.
817
818 * tests/regression.at (Invalid %directive): Remove, as it is now
819 meaningless.
820 (Invalid inputs): Adjust to the new error messages.
821 (Token definitions): The new grammar doesn't allow too many
822 eccentricities.
823
824 * src/lex.h, src/lex.c: Remove.
825 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
826 (copy_character, copy_string2, copy_string, copy_identifier)
827 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
828 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
829 (parse_action): Remove.
830 * po/POTFILES.in: Adjust.
831
832 2002-06-11 Akim Demaille <akim@epita.fr>
833
834 * src/reader.c (parse_action): Don't store directly into the
835 rule's action member: return the action as a string.
836 Don't require `rule_length' as an argument: compute it.
837 (grammar_current_rule_symbol_append)
838 (grammar_current_rule_action_append): New, eved out from
839 (readgram): here.
840 Remove `action_flag', `rulelength', unused now.
841
842 2002-06-11 Akim Demaille <akim@epita.fr>
843
844 * src/reader.c (grammar_current_rule_prec_set).
845 (grammar_current_rule_check): New, eved out from...
846 (readgram): here.
847 Remove `xaction', `first_rhs': useless.
848 * tests/input.at (Type clashes): New.
849 * tests/existing.at (GNU Cim Grammar): Adjust.
850
851 2002-06-11 Akim Demaille <akim@epita.fr>
852
853 * src/reader.c (grammar_midrule_action): New, Eved out from
854 (readgram): here.
855
856 2002-06-11 Akim Demaille <akim@epita.fr>
857
858 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
859 New.
860 (readgram): Use them as replacement of inlined code, crule and
861 crule1.
862
863 2002-06-11 Akim Demaille <akim@epita.fr>
864
865 * src/reader.c (grammar_end, grammar_symbol_append): New.
866 (readgram): Use them.
867 Make the use of `p' as local as possible.
868
869 2002-06-10 Akim Demaille <akim@epita.fr>
870
871 GCJ's parser requires the tokens to be defined before the prologue.
872
873 * data/bison.simple: Output the token definition before the user's
874 prologue.
875 * tests/regression.at (Braces parsing, Duplicate string)
876 (Mixing %token styles): Check the output from bison.
877 (Early token definitions): New.
878
879 2002-06-10 Akim Demaille <akim@epita.fr>
880
881 * src/symtab.c (symbol_user_token_number_set): Don't complain when
882 assigning twice the same user number to a token, so that we can
883 use it in...
884 * src/lex.c (lex): here.
885 Also use `symbol_class_set' instead of hand written code.
886 * src/reader.c (parse_assoc_decl): Likewise.
887
888 2002-06-10 Akim Demaille <akim@epita.fr>
889
890 * src/symtab.c, src/symtab.c (symbol_class_set)
891 (symbol_user_token_number_set): New.
892 * src/reader.c (parse_token_decl): Use them.
893 Use a switch instead of ifs.
894 Use a single argument.
895
896 2002-06-10 Akim Demaille <akim@epita.fr>
897
898 Remove `%thong' support as it is undocumented, unused, duplicates
899 `%token's job, and creates useless e-mail traffic with people who
900 want to know what it is, why it is undocumented, unused, and
901 duplicates `%token's job.
902
903 * src/reader.c (parse_thong_decl): Remove.
904 * src/options.c (option_table): Remove "thong".
905 * src/lex.h (tok_thong): Remove.
906
907 2002-06-10 Akim Demaille <akim@epita.fr>
908
909 * src/symtab.c, src/symtab.c (symbol_type_set)
910 (symbol_precedence_set): New.
911 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
912 (value_components_used): Remove, unused.
913
914 2002-06-09 Akim Demaille <akim@epita.fr>
915
916 Move symbols handling code out of the reader.
917
918 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
919 (axiom): Move to...
920 * src/symtab.h, src/symtab.c: here.
921
922 * src/gram.c (start_symbol): Remove: use startsymbol->number.
923 * src/reader.c (startval): Rename as...
924 * src/symtab.h, src/symtab.c (startsymbol): this.
925 * src/reader.c: Adjust.
926
927 * src/reader.c (symbol_check_defined, symbol_make_alias)
928 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
929 (token_translations_init)
930 Move to...
931 * src/symtab.c: here.
932 * src/reader.c (packsymbols): Move to...
933 * src/symtab.h, src/symtab.c (symbols_pack): here.
934 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
935 argument.
936
937 2002-06-03 Akim Demaille <akim@epita.fr>
938
939 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
940 then statements.
941
942 2002-06-03 Akim Demaille <akim@epita.fr>
943
944 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
945 structs with non literals.
946 * src/scan-skel.l: never-interactive.
947 * src/conflicts.c (enum conflict_resolution_e): No trailing
948 comma.
949 * src/getargs.c (usage): Split long literal strings.
950 Reported by Hans Aberg.
951
952 2002-05-28 Akim Demaille <akim@epita.fr>
953
954 * data/bison.c++: Use C++ ostreams.
955 (cdebug_): New member.
956
957 2002-05-28 Akim Demaille <akim@epita.fr>
958
959 * src/output.c (output_skeleton): Be sure to allocate enough room
960 for `/' _and_ for `\0' in full_skeleton.
961
962 2002-05-28 Akim Demaille <akim@epita.fr>
963
964 * data/bison.c++: Catch up with bison.simple:
965 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
966 and Paul Eggert <eggert@twinsun.com>: `error' handing.
967 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
968 and popping traces.
969
970 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
971
972 * src/output.c (output_skeleton): Put an explicit path in front of
973 the skeleton file name, rather than relying on the -I directory,
974 to partially alleviate effects of having a skeleton file lying around
975 in the current directory.
976
977 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
978
979 * src/conflicts.c (log_resolution): Correct typo:
980 obstack_printf should be obstack_fgrow1.
981
982 2002-05-26 Akim Demaille <akim@epita.fr>
983
984 * src/state.h (state_t): `solved_conflicts' is a new member.
985 * src/LR0.c (new_state): Set it to 0.
986 * src/conflicts.h, src/conflicts.c (print_conflicts)
987 (free_conflicts, solve_conflicts): Rename as...
988 (conflicts_print, conflicts_free, conflicts_solve): these.
989 Adjust callers.
990 * src/conflicts.c (enum conflict_resolution_e)
991 (solved_conflicts_obstack): New, used by...
992 (log_resolution): this.
993 Adjust to attach the conflict resolution to each state.
994 Complete the description with the precedence/associativity
995 information.
996 (resolve_sr_conflict): Adjust.
997 * src/print.c (print_state): Output its solved_conflicts.
998 * tests/conflicts.at (Unresolved SR Conflicts)
999 (Solved SR Conflicts): Exercise --report=all.
1000
1001 2002-05-26 Akim Demaille <akim@epita.fr>
1002
1003 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
1004 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
1005 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
1006 (token_number_t, item_number_as_token_number)
1007 (token_number_as_item_number, muscle_insert_token_number_table):
1008 Rename as...
1009 (symbol_number_t, item_number_as_symbol_number)
1010 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
1011 these, since it is more appropriate.
1012
1013 2002-05-26 Akim Demaille <akim@epita.fr>
1014
1015 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
1016 `Error:' lines.
1017 * data/bison.simple (yystos) [YYDEBUG]: New.
1018 (yyparse) [YYDEBUG]: Display the symbols which are popped during
1019 error recovery.
1020 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
1021
1022 2002-05-25 Akim Demaille <akim@epita.fr>
1023
1024 * doc/bison.texinfo (Debugging): Split into...
1025 (Tracing): this new section, its former contents, and...
1026 (Understanding): this new section.
1027 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
1028 by...
1029 (report_flag): this.
1030 Adjust all dependencies.
1031 (report_args, report_types, report_argmatch): New.
1032 (usage, getargs): Report/support -r, --report.
1033 * src/options.h
1034 (struct option_table_struct): Rename as..,
1035 (struct option_table_s): this.
1036 Rename the `set_flag' member to `flag' to match with getopt_long's
1037 struct.
1038 * src/options.c (option_table): Split verbose into an entry for
1039 %verbose, and another for --verbose.
1040 Support --report/-r, so remove -r from the obsolete --raw.
1041 * src/print.c: Attach full item sets and lookaheads reports to
1042 report_flag instead of trace_flag.
1043 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
1044
1045 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1046 and Paul Eggert <eggert@twinsun.com>
1047
1048 * data/bison.simple (yyparse): Correct error handling to conform to
1049 POSIX and yacc. Specifically, after syntax error is discovered,
1050 do not reduce further before shifting the error token.
1051 Clean up the code a bit by removing the labels yyerrdefault,
1052 yyerrhandle, yyerrpop.
1053 * NEWS: Document the above.
1054
1055 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1056
1057 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
1058 type; it isn't always big enough, since it doesn't necessarily
1059 include non-terminals.
1060 (yytranslate): Expand definition of yy_token_number_type, so that
1061 the latter can be removed.
1062 (yy_token_number_type): Remove, only one use.
1063 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
1064 don't use TokenNumberType as element type.
1065
1066 * tests/regression.at: Modify expected output to agree with change
1067 to yyr1 and yytranslate.
1068
1069 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
1070
1071 * src/reader.c (parse_action): Use copy_character instead of
1072 obstack_1grow.
1073
1074 2002-05-13 Akim Demaille <akim@epita.fr>
1075
1076 * tests/regression.at (Token definitions): Prototype yylex and
1077 yyerror.
1078
1079 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1080
1081 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
1082 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
1083 32-bit arithmetic.
1084 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
1085
1086 2002-05-07 Akim Demaille <akim@epita.fr>
1087
1088 * tests/synclines.at: Be sure to prototype yylex and yyerror to
1089 avoid GCC warnings.
1090
1091 2002-05-07 Akim Demaille <akim@epita.fr>
1092
1093 Kill GCC warnings.
1094
1095 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
1096 over the RHS of each rule.
1097 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
1098 * src/state.h (state_t): Member `nitems' is unsigned short.
1099 * src/LR0.c (get_state): Adjust.
1100 * src/reader.c (packgram): Likewise.
1101 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
1102 `Type'.
1103 (muscle_insert_int_table): Remove, unused.
1104 (prepare_rules): Remove `max'.
1105
1106 2002-05-06 Akim Demaille <akim@epita.fr>
1107
1108 * src/closure.c (print_firsts): Display of the symbol tags.
1109 (bitmatrix_print): Move to...
1110 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
1111 here.
1112 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
1113
1114 2002-05-06 Akim Demaille <akim@epita.fr>
1115
1116 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
1117 hash_do_for_each.
1118
1119 2002-05-06 Akim Demaille <akim@epita.fr>
1120
1121 * src/LR0.c (new_state, get_state): Instead of using the global
1122 `kernel_size' and `kernel_base', have two new arguments:
1123 `core_size' and `core'.
1124 Adjust callers.
1125
1126 2002-05-06 Akim Demaille <akim@epita.fr>
1127
1128 * src/reader.c (packgram): No longer end `ritem' with a 0
1129 sentinel: it is not used.
1130
1131 2002-05-05 Akim Demaille <akim@epita.fr>
1132
1133 New experimental feature: display the lookaheads in the report and
1134 graph.
1135
1136 * src/print (print_core): When --trace-flag, display the rules
1137 lookaheads.
1138 * src/print_graph.c (print_core): Likewise.
1139 Swap the arguments.
1140 Adjust caller.
1141
1142 2002-05-05 Akim Demaille <akim@epita.fr>
1143
1144 * tests/torture.at (Many lookaheads): New test.
1145
1146 2002-05-05 Akim Demaille <akim@epita.fr>
1147
1148 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
1149 (GENERATE_MUSCLE_INSERT_TABLE): this.
1150 (output_int_table, output_unsigned_int_table, output_short_table)
1151 (output_token_number_table, output_item_number_table): Replace with...
1152 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
1153 (muscle_insert_short_table, muscle_insert_token_number_table)
1154 (muscle_insert_item_number_table): these.
1155 Adjust all callers.
1156 (prepare_tokens): Don't free `translations', since...
1157 * src/reader.h, src/reader.c (grammar_free): do it.
1158 Move to...
1159 * src/gram.h, src/gram.c (grammar_free): here.
1160 * data/bison.simple, data/bison.c++: b4_token_number_max is now
1161 b4_translate_max.
1162
1163 2002-05-05 Akim Demaille <akim@epita.fr>
1164
1165 * src/output.c (output_unsigned_int_table): New.
1166 (prepare_rules): `i' is unsigned.
1167 `prhs', `rline', `r2' are unsigned int.
1168 Rename muscle `rhs_number_max' as `rhs_max'.
1169 Output muscles `prhs_max', `rline_max', and `r2_max'.
1170 Free rline and r1.
1171 * data/bison.simple, data/bison.c++: Adjust to use these muscles
1172 to compute types instead of constant types.
1173 * tests/regression.at (Web2c Actions): Adjust.
1174
1175 2002-05-04 Akim Demaille <akim@epita.fr>
1176
1177 * src/symtab.h (SALIAS, SUNDEF): Rename as...
1178 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
1179 Adjust dependencies.
1180 * src/output.c (token_definitions_output): Be sure not to output a
1181 `#define 'a'' when fed with `%token 'a' "a"'.
1182 * tests/regression.at (Token definitions): New.
1183
1184 2002-05-03 Paul Eggert <eggert@twinsun.com>
1185
1186 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
1187 for K&R C.
1188
1189 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
1190
1191 * Makefile.am (SUBDIRS): Remove intl.
1192 (EXTRA_DIST): Add config/config.rpath.
1193
1194 2002-05-03 Akim Demaille <akim@epita.fr>
1195
1196 * data/bison.simple (m4_if): Don't output empty enums.
1197 And actually, output valid enum definitions :(.
1198
1199 2002-05-03 Akim Demaille <akim@epita.fr>
1200
1201 * configure.bat: Remove, completely obsolete.
1202 * Makefile.am (EXTRA_DIST): Adjust.
1203 Don't distribute config.rpath...
1204 * config/Makefile.am (EXTRA_DIST): Do it.
1205
1206 2002-05-03 Akim Demaille <akim@epita.fr>
1207
1208 * configure.in (GETTEXT_VERSION): New.
1209 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
1210
1211 2002-05-03 Akim Demaille <akim@epita.fr>
1212
1213 * data/bison.simple (b4_token_enum): New.
1214 (b4_token_defines): Use it to output tokens both as #define and
1215 enums.
1216 Suggested by Paul Eggert.
1217 * src/output.c (token_definitions_output): Don't output spurious
1218 white spaces.
1219
1220 2002-05-03 Akim Demaille <akim@epita.fr>
1221
1222 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
1223
1224 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
1225
1226 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
1227 Update the stack class, give a try to deque as the default container.
1228
1229 2002-05-02 Akim Demaille <akim@epita.fr>
1230
1231 * data/bison.simple (yyparse): Do not implement @$ = @1.
1232 (YYLLOC_DEFAULT): Adjust to do it.
1233 * doc/bison.texinfo (Location Default Action): Fix.
1234
1235 2002-05-02 Akim Demaille <akim@epita.fr>
1236
1237 * src/reader.c (parse_braces): Merge into...
1238 (parse_action): this.
1239
1240 2002-05-02 Akim Demaille <akim@epita.fr>
1241
1242 * configure.in (ALL_LINGUAS): Remove.
1243 * po/LINGUAS, hr.po: New.
1244
1245 2002-05-02 Akim Demaille <akim@epita.fr>
1246
1247 Remove the so called hairy (semantic) parsers.
1248
1249 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
1250 * src/gram.h, src/gram.c (semantic_parser): Remove.
1251 (rule_t): Remove the guard and guard_line members.
1252 * src/lex.h (token_t): remove tok_guard.
1253 * src/options.c (option_table): Remove %guard and %semantic_parser
1254 support.
1255 * src/output.c, src/output.h (guards_output): Remove.
1256 (prepare): Adjust.
1257 (token_definitions_output): Don't output the `T'
1258 tokens (???).
1259 (output_skeleton): Don't output the guards.
1260 * src/files.c, src/files.c (attrsfile): Remove.
1261 * src/reader.c (symbol_list): Remove the guard and guard_line
1262 members.
1263 Adjust dependencies.
1264 (parse_guard): Remove.
1265 * data/bison.hairy: Remove.
1266 * doc/bison.texinfo (Environment Variables): Remove occurrences of
1267 BISON_HAIRY.
1268
1269 2002-05-02 Akim Demaille <akim@epita.fr>
1270
1271 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
1272 (parse_guard): Rename the formal argument `stack_offset' as
1273 `rule_length', which is more readable.
1274 Adjust callers.
1275 (copy_at, copy_dollar): Instead of outputting the hard coded
1276 values of $$, $n and so forth, output invocation to b4_lhs_value,
1277 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
1278 Note: this patch partially drops `semantic-parser' support: it
1279 always does `rule_length - n', where semantic parsers ought to
1280 always use `-n'.
1281 * data/bison.simple, data/bison.c++ (b4_lhs_value)
1282 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
1283
1284 2002-05-02 Akim Demaille <akim@epita.fr>
1285
1286 * configure.in (AC_INIT): Bump to 1.49b.
1287 (AM_INIT_AUTOMAKE): Short invocation.
1288
1289 2002-05-02 Akim Demaille <akim@epita.fr>
1290
1291 Version 1.49a.
1292
1293 2002-05-01 Akim Demaille <akim@epita.fr>
1294
1295 * src/skeleton.h: Remove.
1296
1297 2002-05-01 Akim Demaille <akim@epita.fr>
1298
1299 * src/skeleton.h: Fix the #endif.
1300 Reported by Magnus Fromreide.
1301
1302 2002-04-26 Paul Eggert <eggert@twinsun.com>
1303
1304 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
1305 Define if we define YYSTYPE and YYLTYPE, respectively.
1306 (YYCOPY): Fix [] quoting problem in the non-GCC case.
1307
1308 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
1309
1310 * src/scan-skel.l: Postprocess quadrigraphs.
1311
1312 * src/reader.c (copy_character): New function, used to output
1313 single characters while replacing `[' and `]' with quadrigraphs, to
1314 avoid troubles with M4 quotes.
1315 (copy_comment): Output characters with copy_character.
1316 (read_additionnal_code): Likewise.
1317 (copy_string2): Likewise.
1318 (copy_definition): Likewise.
1319
1320 * tests/calc.at: Exercise M4 quoting.
1321
1322 2002-04-25 Akim Demaille <akim@epita.fr>
1323
1324 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
1325 between `!' and the command.
1326 Reported by Paul Eggert.
1327
1328 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
1329
1330 * tests/calc.at: Exercise prologue splitting.
1331
1332 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
1333 `b4_post_prologue' instead of `b4_prologue'.
1334
1335 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
1336 muscles.
1337 (output): Free pre_prologue_obstack and post_prologue_obstack.
1338 * src/files.h, src/files.c (attrs_obstack): Remove.
1339 (pre_prologue_obstack, post_prologue_obstack): New.
1340 * src/reader.c (copy_definition): Add a parameter to specify the
1341 obstack to fill, instead of using attrs_obstack unconditionally.
1342 (read_declarations): Pass pre_prologue_obstack to copy_definition if
1343 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
1344
1345 2002-04-23 Paul Eggert <eggert@twinsun.com>
1346
1347 * data/bison.simple: Remove unnecessary commentary and white
1348 space differences from 1_29-branch.
1349 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
1350
1351 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
1352 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
1353 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
1354 constructors or destructors.
1355
1356 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
1357
1358 2002-04-23 Akim Demaille <akim@epita.fr>
1359
1360 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
1361 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
1362 location with columns.
1363 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
1364 All reported by Paul Eggert.
1365
1366 2002-04-22 Akim Demaille <akim@epita.fr>
1367
1368 * src/reduce.c (dump_grammar): Move to...
1369 * src/gram.h, src/gram.c (grammar_dump): here.
1370 Be sure to separate long item numbers.
1371 Don't read the members of a rule's prec if its nil.
1372
1373 2002-04-22 Akim Demaille <akim@epita.fr>
1374
1375 * src/output.c (table_size, table_grow): New.
1376 (MAXTABLE): Remove, replace uses with table_size.
1377 (pack_vector): Instead of dying when the table is too big, grow it.
1378
1379 2002-04-22 Akim Demaille <akim@epita.fr>
1380
1381 * data/bison.simple (yyr1): Its type is that of a token number.
1382 * data/bison.c++ (r1_): Likewise.
1383 * tests/regression.at (Web2c Actions): Adjust.
1384
1385 2002-04-22 Akim Demaille <akim@epita.fr>
1386
1387 * src/reader.c (token_translations_init): 256 is now the default
1388 value for the error token, i.e., it will be assigned another
1389 number if the user assigned 256 to one of her tokens.
1390 (reader): Don't force 256 to error.
1391 * doc/bison.texinfo (Symbols): Adjust.
1392 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
1393 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
1394 etc. instead of 10, 20, 30 (which was used to `jump' over error
1395 (256) and undefined (2)).
1396
1397 2002-04-22 Akim Demaille <akim@epita.fr>
1398
1399 Propagate more token_number_t.
1400
1401 * src/gram.h (token_number_as_item_number)
1402 (item_number_as_token_number): New.
1403 * src/output.c (GENERATE_OUTPUT_TABLE): New.
1404 Use it to create output_item_number_table and
1405 output_token_number_table.
1406 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
1407 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
1408 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
1409 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
1410
1411 2002-04-22 Akim Demaille <akim@epita.fr>
1412
1413 * src/output.h, src/output.c (get_lines_number): Remove.
1414
1415 2002-04-19 Akim Demaille <akim@epita.fr>
1416
1417 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
1418 as Lex/Flex'.
1419 (Debugging): More details about enabling the debugging features.
1420 (Table of Symbols): Describe $$, $n, @$, and @n.
1421 Suggested by Tim Josling.
1422
1423 2002-04-19 Akim Demaille <akim@epita.fr>
1424
1425 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
1426
1427 2002-04-10 Akim Demaille <akim@epita.fr>
1428
1429 * src/system.h: Rely on HAVE_LIMITS_H.
1430 Suggested by Paul Eggert.
1431
1432 2002-04-09 Akim Demaille <akim@epita.fr>
1433
1434 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
1435 full stderr, and strip it according to the bison options, instead
1436 of composing the error message from different bits.
1437 This makes it easier to check for several error messages.
1438 Adjust all the invocations.
1439 Add an invocation exercising the error token.
1440 Add an invocation demonstrating a stupid error message.
1441 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
1442 Adjust the tests.
1443 Error message are for stderr, not stdout.
1444
1445 2002-04-09 Akim Demaille <akim@epita.fr>
1446
1447 * src/gram.h, src/gram.c (error_token_number): Remove, use
1448 errtoken->number.
1449 * src/reader.c (reader): Don't specify the user token number (2)
1450 for $undefined, as it uselessly prevents using it.
1451 * src/gram.h (token_number_t): Move to...
1452 * src/symtab.h: here.
1453 (state_t.number): Is a token_number_t.
1454 * src/print.c, src/reader.c: Use undeftoken->number instead of
1455 hard coded 2.
1456 (Even though this 2 is not the same as above: the number of the
1457 undeftoken remains being 2, it is its user token number which
1458 might not be 2).
1459 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
1460 `user_token_number_max'.
1461 Output `undef_token_number'.
1462 * data/bison.simple, data/bison.c++: Use them.
1463 Be sure to map invalid yylex return values to
1464 `undef_token_number'. This saves us from gratuitous SEGV.
1465
1466 * tests/conflicts.at (Solved SR Conflicts)
1467 (Unresolved SR Conflicts): Adjust.
1468 * tests/regression.at (Web2c Actions): Adjust.
1469
1470 2002-04-08 Akim Demaille <akim@epita.fr>
1471
1472 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
1473 Adding #line.
1474 Remove the duplicate `typedefs'.
1475 (RhsNumberType): Fix the declaration and various other typos.
1476 Use __ofile__.
1477 * data/bison.simple: Use __ofile__.
1478 * src/scan-skel.l: Handle __ofile__.
1479
1480 2002-04-08 Akim Demaille <akim@epita.fr>
1481
1482 * src/gram.h (item_number_t): New, the type of item numbers in
1483 RITEM. Note that it must be able to code symbol numbers as
1484 positive number, and the negation of rule numbers as negative
1485 numbers.
1486 Adjust all dependencies (pretty many).
1487 * src/reduce.c (rule): Remove this `short *' pointer: use
1488 item_number_t.
1489 * src/system.h (MINSHORT, MAXSHORT): Remove.
1490 Include `limits.h'.
1491 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
1492 (shortcpy): Remove.
1493 (MAXTABLE): Move to...
1494 * src/output.c (MAXTABLE): here.
1495 (prepare_rules): Use output_int_table to output rhs.
1496 * data/bison.simple, data/bison.c++: Adjust.
1497 * tests/torture.at (Big triangle): Move the limit from 254 to
1498 500.
1499 * tests/regression.at (Web2c Actions): Ajust.
1500
1501 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
1502 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
1503 passes, but produces negative #line number, once fixed, GCC is
1504 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
1505 C), it passes.
1506 * src/state.h (state_h): Code input lines on ints, not shorts.
1507
1508 2002-04-08 Akim Demaille <akim@epita.fr>
1509
1510 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
1511 and then the grammar.
1512
1513 2002-04-08 Akim Demaille <akim@epita.fr>
1514
1515 * src/system.h: No longer using strndup.
1516
1517 2002-04-07 Akim Demaille <akim@epita.fr>
1518
1519 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
1520 * src/output.c (output_table_data): Return the longest number.
1521 (prepare_tokens): Output `token_number_max').
1522 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
1523 New.
1524 Use them to define yy_token_number_type/TokenNumberType.
1525 Use this type for yytranslate.
1526 * tests/torture.at (Big triangle): Push the limit from 124 to
1527 253.
1528 * tests/regression.at (Web2c Actions): Adjust.
1529
1530 2002-04-07 Akim Demaille <akim@epita.fr>
1531
1532 * tests/torture.at (Big triangle): New.
1533 (GNU AWK Grammar, GNU Cim Grammar): Move to...
1534 * tests/existing.at: here.
1535
1536 2002-04-07 Akim Demaille <akim@epita.fr>
1537
1538 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
1539 nritems.
1540 Adjust dependencies.
1541
1542 2002-04-07 Akim Demaille <akim@epita.fr>
1543
1544 * src/reader.c: Normalize increments to prefix form.
1545
1546 2002-04-07 Akim Demaille <akim@epita.fr>
1547
1548 * src/reader.c, symtab.c: Remove debugging code.
1549
1550 2002-04-07 Akim Demaille <akim@epita.fr>
1551
1552 Rename all the `bucket's as `symbol_t'.
1553
1554 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
1555 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
1556 * src/symtab.c, src/symtab.h (bucket): Rename as...
1557 (symbol_t): this.
1558 (symbol_list_new, bucket_check_defined, bucket_make_alias)
1559 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
1560 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
1561 (buckets_new, buckets_free, buckets_do): Rename as...
1562 (symbol_list_new, symbol_check_defined, symbol_make_alias)
1563 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
1564 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
1565 (symbols_new, symbols_free, symbols_do): these.
1566
1567 2002-04-07 Akim Demaille <akim@epita.fr>
1568
1569 Use lib/hash for the symbol table.
1570
1571 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
1572 EOF.
1573 * src/lex.c (lex): Set the `number' member of new terminals.
1574 * src/reader.c (bucket_check_defined, bucket_make_alias)
1575 (bucket_check_alias_consistence, bucket_translation): New.
1576 (reader, grammar_free, readgram, token_translations_init)
1577 (packsymbols): Adjust.
1578 (reader): Number the predefined tokens.
1579 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
1580 for predefined tokens.
1581 * src/symtab.h (bucket): Remove all the hash table related
1582 members.
1583 * src/symtab.c (symtab): Replace by...
1584 (bucket_table): this.
1585 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
1586 (buckets_new, buckets_do): New.
1587
1588 2002-04-07 Akim Demaille <akim@epita.fr>
1589
1590 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
1591 (start_symbol, max_user_token_number, semantic_parser)
1592 (error_token_number): Initialize.
1593 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
1594 Initialize.
1595 (reader): Don't.
1596 (errtoken, eoftoken, undeftoken, axiom): Extern.
1597
1598 2002-04-07 Akim Demaille <akim@epita.fr>
1599
1600 * src/gram.h (rule_s): prec and precsym are now pointers
1601 to the bucket giving the priority/associativity.
1602 Member `associativity' removed: useless.
1603 * src/reduce.c, src/conflicts.c: Adjust.
1604
1605 2002-04-07 Akim Demaille <akim@epita.fr>
1606
1607 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
1608 Properly escape the symbols' TAG when outputting them.
1609
1610 2002-04-07 Akim Demaille <akim@epita.fr>
1611
1612 * src/lalr.h (LA): Is a bitsetv, not bitset*.
1613
1614 2002-04-07 Akim Demaille <akim@epita.fr>
1615
1616 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
1617 (LArule): this, which is an array to rule_t*.
1618 * src/print.c, src/conflicts.c: Adjust.
1619
1620 2002-04-07 Akim Demaille <akim@epita.fr>
1621
1622 * src/gram.h (rule_t): Rename `number' as `user_number'.
1623 `number' is a new member.
1624 Adjust dependencies.
1625 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
1626
1627 2002-04-07 Akim Demaille <akim@epita.fr>
1628
1629 As a result of the previous patch, it is no longer needed
1630 to reorder ritem itself.
1631
1632 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
1633
1634 2002-04-07 Akim Demaille <akim@epita.fr>
1635
1636 Be sure never to walk through RITEMS, but use only data related to
1637 the rules themselves. RITEMS should be banished.
1638
1639 * src/output.c (output_token_translations): Rename as...
1640 (prepare_tokens): this.
1641 In addition to `translate', prepare the muscles `tname' and
1642 `toknum', which were handled by...
1643 (output_rule_data): this.
1644 Remove, and move the remainder of its outputs into...
1645 (prepare_rules): this new routines, which also merges content from
1646 (output_gram): this.
1647 (prepare_rules): Be sure never to walk through RITEMS.
1648 (output_stos): Rename as...
1649 (prepare_stos): this.
1650 (output): Always invoke prepare_states, after all, just don't use it
1651 in the output if you don't need it.
1652
1653 2002-04-07 Akim Demaille <akim@epita.fr>
1654
1655 * src/LR0.c (new_state): Display `nstates' as the name of the
1656 newly created state.
1657 Adjust to initialize first_state and last_state if needed.
1658 Be sure to distinguish the initial from the final state.
1659 (new_states): Create the itemset of the initial state, and use
1660 new_state.
1661 * src/closure.c (closure): Now that the initial state has its
1662 items properly set, there is no need for a special case when
1663 creating `ruleset'.
1664
1665 As a result, now the rule 0, reducing to $axiom, is visible in the
1666 outputs. Adjust the test suite.
1667
1668 * tests/conflicts.at (Solved SR Conflicts)
1669 (Unresolved SR Conflicts): Adjust.
1670 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
1671 * tests/conflicts.at (S/R in initial): New.
1672
1673 2002-04-07 Akim Demaille <akim@epita.fr>
1674
1675 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
1676 the RHS of the rules.
1677 * src/output.c (output_gram): Likewise.
1678
1679 2002-04-07 Akim Demaille <akim@epita.fr>
1680
1681 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
1682 bucket.
1683 Adjust all dependencies.
1684 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
1685 `number' of the buckets too.
1686 * src/gram.h: Include `symtab.h'.
1687 (associativity): Move to...
1688 * src/symtab.h: here.
1689 No longer include `gram.h'.
1690
1691 2002-04-07 Akim Demaille <akim@epita.fr>
1692
1693 * src/gram.h, src/gram.c (rules_rhs_length): New.
1694 (ritem_longest_rhs): Use it.
1695 * src/gram.h (rule_t): `number' is a new member.
1696 * src/reader.c (packgram): Set it.
1697 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
1698 the end of `rules', and count them out of `nrules'.
1699 (reduce_output, dump_grammar): Adjust.
1700 * src/print.c (print_grammar): It is no longer needed to check for
1701 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
1702 * tests/reduce.at (Reduced Automaton): New test.
1703
1704 2002-04-07 Akim Demaille <akim@epita.fr>
1705
1706 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
1707 lacking `+ 1' to nrules, Bison reported as useless a token if it
1708 was used solely to set the precedence of the last rule...
1709
1710 2002-04-07 Akim Demaille <akim@epita.fr>
1711
1712 * data/bison.c++, data/bison.simple: Don't output the current file
1713 name in #line, to avoid useless diffs between two identical
1714 outputs under different names.
1715
1716 2002-04-07 Akim Demaille <akim@epita.fr>
1717
1718 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
1719 Normalize loops to using `< nrules + 1', not `<= nrules'.
1720
1721 2002-04-07 Akim Demaille <akim@epita.fr>
1722
1723 * TODO: Update.
1724
1725 2002-04-07 Akim Demaille <akim@epita.fr>
1726
1727 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
1728 bucket.value as bucket.number.
1729
1730 2002-04-07 Akim Demaille <akim@epita.fr>
1731
1732 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
1733 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
1734 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
1735 RHS, instead of being an index in RITEMS.
1736
1737 2002-04-04 Paul Eggert <eggert@twinsun.com>
1738
1739 * doc/bison.texinfo: Update copyright date.
1740 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
1741 (Symbols): Warn about running Bison in one character set,
1742 but compiling and/or running in an incompatible one.
1743 Warn about character code 256, too.
1744
1745 2002-04-03 Paul Eggert <eggert@twinsun.com>
1746
1747 * src/bison.data (YYSTACK_ALLOC): Depend on whether
1748 YYERROR_VERBOSE is nonzero, not whether it is defined.
1749
1750 Merge changes from bison-1_29-branch.
1751
1752 2002-03-20 Paul Eggert <eggert@twinsun.com>
1753
1754 Merge fixes from Debian bison_1.34-1.diff.
1755
1756 * configure.in (AC_PREREQ): 2.53.
1757
1758 2002-03-20 Akim Demaille <akim@epita.fr>
1759
1760 * src/conflicts.c (log_resolution): Argument `resolution' is const.
1761
1762 2002-03-19 Paul Eggert <eggert@twinsun.com>
1763
1764 * src/bison.simple (YYCOPY): New macro.
1765 (YYSTACK_RELOCATE): Use it.
1766 Remove Type arg; no longer needed. All callers changed.
1767 (yymemcpy): Remove; no longer needed.
1768
1769 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
1770 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
1771
1772 2002-03-19 Akim Demaille <akim@epita.fr>
1773
1774 Test and fix the #line outputs.
1775
1776 * tests/atlocal.at (GCC): New.
1777 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
1778 (Prologue synch line, ,%union synch line, Postprologue synch line)
1779 (Action synch line, Epilogue synch line): New tests.
1780 * src/reader.c (parse_union_decl): Define the muscle stype_line.
1781 * data/bison.simple, data/bison.c++: Use it.
1782
1783 2002-03-19 Akim Demaille <akim@epita.fr>
1784
1785 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
1786 (Solved SR Conflicts, %expect not enough, %expect right)
1787 (%expect too much): Move to...
1788 * tests/conflicts.at: this new file.
1789
1790 2002-03-19 Akim Demaille <akim@epita.fr>
1791
1792 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
1793 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
1794 that we can move to enums for instance.
1795 * src/output.c (token_definitions_output): Output a list of
1796 `token-name, token-number' instead of the #define.
1797 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
1798
1799 2002-03-14 Akim Demaille <akim@epita.fr>
1800
1801 Use Gettext 0.11.1.
1802
1803 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
1804
1805 * data/bison.c++: Make the user able to add members to the generated
1806 parser by subclassing.
1807
1808 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
1809
1810 * src/reader.c (read_additionnal_code): `c' should be an integer, not
1811 a character.
1812 Reported by Nicolas Tisserand and Nicolas Burrus.
1813
1814 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
1815
1816 * src/reader.c: Warn about lacking semi-colons, do not complain.
1817
1818 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
1819
1820 * data/bison.c++: Remove a debug line.
1821
1822 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
1823
1824 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
1825 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
1826 provide a default implementation.
1827
1828 2002-03-04 Akim Demaille <akim@epita.fr>
1829
1830 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
1831 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
1832 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
1833 * tests/semantic.at (Parsing Guards): Similarly.
1834 * src/reader.at (readgram): Complain if the last rule is not ended
1835 with a semi-colon.
1836
1837 2002-03-04 Akim Demaille <akim@epita.fr>
1838
1839 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
1840 * src/closure.c: here.
1841 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
1842 RTC.
1843 * src/warshall.h, src/warshall.c: Remove.
1844 * tests/sets.at (Broken Closure): Adjust.
1845
1846 2002-03-04 Akim Demaille <akim@epita.fr>
1847
1848 * src/output.c (output_skeleton): tempdir is const.
1849 bytes_read is unused.
1850
1851 2002-03-04 Akim Demaille <akim@epita.fr>
1852
1853 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
1854 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
1855 Update.
1856 From Michael Hayes.
1857
1858 2002-03-04 Akim Demaille <akim@epita.fr>
1859
1860 * src/closure.c (closure): `r' is unused.
1861
1862 2002-03-04 Akim Demaille <akim@epita.fr>
1863
1864 * tests/sets.at (Broken Closure): Add the ending `;'.
1865 * src/reader.at (readgram): Complain if a rule is not ended with a
1866 semi-colon.
1867
1868 2002-03-04 Akim Demaille <akim@epita.fr>
1869
1870 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
1871 (count_sr_conflicts): Use bitset_count.
1872 * src/reduce.c (inaccessable_symbols): Ditto.
1873 (bits_size): Remove.
1874 * src/warshall.h, src/warshall.c: Convert to bitsetv.
1875
1876 2002-03-04 Akim Demaille <akim@epita.fr>
1877
1878 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
1879 * src/reduce.c: Remove the `bitset_zero's following the
1880 `bitset_create's, as now it is performed by the latter.
1881
1882 2002-03-04 Akim Demaille <akim@epita.fr>
1883
1884 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
1885 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
1886 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
1887 latest sources from Michael.
1888
1889 2002-03-04 Akim Demaille <akim@epita.fr>
1890
1891 * src/output.c (output): Don't free the grammar.
1892 * src/reader.c (grammar_free): New.
1893 * src/main.c (main): Call it and don't free symtab here.
1894
1895 2002-03-04 Akim Demaille <akim@epita.fr>
1896
1897 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
1898 before returning.
1899 Reported by Benoit Perrot.
1900
1901 2002-03-04 Akim Demaille <akim@epita.fr>
1902
1903 Use bitset operations when possible, not loops over bits.
1904
1905 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
1906 bitset_or.
1907 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
1908 * src/reduce.c (useless_nonterminals): Formatting changes.
1909 * src/warshall.c (TC): Use bitset_or.
1910
1911 2002-03-04 Akim Demaille <akim@epita.fr>
1912
1913 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
1914 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
1915 Ditto.
1916
1917 2002-03-04 Akim Demaille <akim@epita.fr>
1918
1919 * src/lalr.c (F): Now a bitset*.
1920 Adjust all dependencies.
1921
1922 2002-03-04 Akim Demaille <akim@epita.fr>
1923
1924 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
1925 Adjust all dependencies.
1926
1927 2002-03-04 Akim Demaille <akim@epita.fr>
1928
1929 * src/L0.c, src/LR0.h (nstates): Be size_t.
1930 Adjust comparisons (signed vs unsigned).
1931 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
1932 bitset*.
1933 Adjust all dependencies.
1934
1935 2002-03-04 Akim Demaille <akim@epita.fr>
1936
1937 * src/closure.c (firsts): Now, also a bitset.
1938 Adjust all dependencies.
1939 (varsetsize): Remove, now unused.
1940 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
1941
1942 2002-03-04 Akim Demaille <akim@epita.fr>
1943
1944 * src/print.c: Convert to use bitset.h, not hand coded iterations
1945 over ints.
1946
1947 2002-03-04 Akim Demaille <akim@epita.fr>
1948
1949 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
1950
1951 2002-03-04 Akim Demaille <akim@epita.fr>
1952
1953 * src/closure.c (ruleset): Be a bitset.
1954 (rulesetsize): Remove.
1955
1956 2002-03-04 Akim Demaille <akim@epita.fr>
1957
1958 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
1959 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
1960 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
1961 * src/closure.c (fderives): Be an array of bitsets.
1962
1963 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
1964
1965 * data/bison.c++: Merge the two generated headers. Insert a copyright
1966 notice in each output file.
1967
1968 2002-02-28 Akim Demaille <akim@epita.fr>
1969
1970 * data/bison.c++: Copy the prologue of bison.simple to fetch
1971 useful M4 definitions, such as b4_header_guard.
1972
1973 2002-02-25 Akim Demaille <akim@epita.fr>
1974
1975 * src/getargs.c (version): Give the name of the authors, and use a
1976 translator friendly scheme for the bgr
1977 copyright notice.
1978
1979 2002-02-25 Akim Demaille <akim@epita.fr>
1980
1981 * src/output.c (header_output): Remove, now handled completely via
1982 M4.
1983
1984 2002-02-25 Akim Demaille <akim@epita.fr>
1985
1986 * m4/m4.m4: New, from CVS Autoconf.
1987 * configure.in: Invoke it.
1988 * src/output.c (output_skeleton): Use its result instead of the
1989 hard coded name.
1990
1991 2002-02-25 Akim Demaille <akim@epita.fr>
1992
1993 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
1994 Fileutils 4.1.5.
1995 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
1996 * src/output.c (output_skeleton): Use mkstemp to create a real
1997 temporary file.
1998 Move the filling of `skeleton' and its muscle to...
1999 (prepare): here.
2000 (output): Move the definition of the prologue muscle to...
2001 (prepare): here.
2002 * src/system.h (DEFAULT_TMPDIR): New.
2003
2004 2002-02-14 Paul Eggert <eggert@twinsun.com>
2005
2006 Remove the support for C++ namespace cleanliness; it was
2007 causing more problems than it was curing, since it didn't work
2008 properly on some nonstandard C++ compilers. This can wait
2009 for a proper C++ parser.
2010
2011 * NEWS: Document this.
2012 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
2013 of C++, as it's treated like C now.
2014 * src/bison.simple (YYSTD): Remove.
2015 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
2016 Treat C++ just like Standard C instead of trying to support
2017 namespace cleanliness.
2018
2019 2002-02-14 Akim Demaille <akim@epita.fr>
2020
2021 * tests/regression.at (else): Adjust to Andreas' change.
2022
2023 2002-02-14 Akim Demaille <akim@epita.fr>
2024
2025 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
2026
2027 2002-02-13 Andreas Schwab <schwab@suse.de>
2028
2029 * src/output.c (output_rule_data): Don't output NULL, it might
2030 not be defined yet.
2031
2032 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
2033
2034 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
2035 (Copyright notice): Update.
2036
2037 2002-02-11 Akim Demaille <akim@epita.fr>
2038
2039 * tests/regression.at (%nonassoc and eof): Don't include
2040 nonportable headers.
2041
2042 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
2043
2044 * data/bison.c++: Correct error recovery. Make the user able to
2045 initialize the starting location.
2046
2047 2002-02-07 Akim Demaille <akim@epita.fr>
2048
2049 * tests/input.at: New.
2050
2051 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2052
2053 * data/bison.c++: Replace some direct m4 expansions by constants. Be
2054 more consistent when naming methods and variables. Put preprocessor
2055 directives around tables only needed for debugging.
2056
2057 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2058
2059 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
2060 C++ parsers.
2061 (yy::b4_name::parse): Use print_.
2062
2063 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2064
2065 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
2066
2067 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
2068
2069 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
2070 C++ parsers.
2071 (yy::b4_name::parse): Build verbose error messages, and use error_.
2072
2073 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
2074
2075 * data/bison.c++: Fix m4 quoting in comments.
2076
2077 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
2078
2079 * data/bison.c++: Adjust the parser code. Fix some muscles that were
2080 not expanded by m4.
2081
2082 2002-02-05 Akim Demaille <akim@epita.fr>
2083
2084 * data/bison.c++: Adjust to the M4 back end.
2085 More is certainly needed.
2086
2087 2002-02-05 Akim Demaille <akim@epita.fr>
2088
2089 Give a try to M4 as a back end.
2090
2091 * lib/readpipe.c: New, from wdiff.
2092 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
2093 BISON_HAIRY.
2094 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
2095 specific values. Now it is m4 that performs the lookup.
2096 * src/parse-skel.y: Remove.
2097 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
2098 * src/output.c (actions_output, guards_output)
2099 (token_definitions_output): No longer keeps track of the output
2100 line number, hence remove the second argument.
2101 (guards_output): Check against the guard member of a rule, not the
2102 action member.
2103 Adjust callers.
2104 (output_skeleton): Don't look for the skeleton location, let m4 do
2105 that.
2106 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
2107 file will be used.
2108 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
2109 (prepare): Given that for the time being changesyntax is not
2110 usable in M4, rename the muscles using `-' to `_'.
2111 Define `defines_flag', `output_parser_name' and `output_header_name'.
2112 * src/output.h (actions_output, guards_output)
2113 (token_definitions_output): Adjust prototypes.
2114 * src/scan-skel.l: Instead of scanning the skeletons, it now
2115 processes the output of m4: `__oline__' and `#output'.
2116 * data/bison.simple: Adjust to be used by M4(sugar).
2117 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
2118 to date.
2119 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
2120 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
2121 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
2122 shamelessly stolen from CVS Autoconf.
2123
2124 2002-02-05 Akim Demaille <akim@epita.fr>
2125
2126 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
2127 * configure.in: Check for the declarations of free and malloc.
2128 * src/muscle_tab.c: Adjust.
2129
2130 2002-02-05 Akim Demaille <akim@epita.fr>
2131
2132 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
2133 which have no values.
2134
2135 2002-02-05 Akim Demaille <akim@epita.fr>
2136
2137 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
2138 * data/: here.
2139
2140 2002-01-29 Paul Eggert <eggert@twinsun.com>
2141
2142 * src/bison.simple (YYSIZE_T): Do not define merely because
2143 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
2144 On some platforms, <alloca.h> does not declare YYSTD (size_t).
2145
2146 2002-01-27 Akim Demaille <akim@epita.fr>
2147
2148 Fix `%nonassoc and eof'.
2149
2150 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
2151 which were not properly copied! Replace
2152 memcpy (res->errs, src->errs, src->nerrs);
2153 with
2154 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
2155 !!!
2156 * tests/regression.at (%nonassoc and eof): Adjust to newest
2157 Autotest: `.' is not in the PATH.
2158
2159 2002-01-27 Akim Demaille <akim@epita.fr>
2160
2161 * tests/sets.at (AT_EXTRACT_SETS): New.
2162 (Nullable): Use it.
2163 (Firsts): New.
2164
2165 2002-01-26 Akim Demaille <akim@epita.fr>
2166
2167 * tests/actions.at, tests/calc.at, tests/headers.at,
2168 * tests/torture.at: Adjust to the newest Autotest which no longer
2169 forces `.' in the PATH.
2170
2171 2002-01-25 Akim Demaille <akim@epita.fr>
2172
2173 * tests/regression.at (%nonassoc and eof): New.
2174 Suggested by Robert Anisko.
2175
2176 2002-01-24 Akim Demaille <akim@epita.fr>
2177
2178 Bison dumps core when trying to complain about broken input files.
2179 Reported by Cris van Pelt.
2180
2181 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
2182 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
2183 into...
2184 (Invalid inputs): Strengthen: exercise parse_percent_token.
2185
2186 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
2187
2188 * src/Makefile.am: Add bison.c++.
2189 * src/bison.c++: New skeleton.
2190
2191 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
2192
2193 * po/it.po: New.
2194
2195 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
2196
2197 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
2198
2199 2002-01-20 Marc Autret <marc@gnu.org>
2200
2201 * src/files.c (compute_output_file_names): Fix
2202
2203 2002-01-20 Marc Autret <marc@gnu.org>
2204
2205 * tests/output.at: New test.
2206 * src/files.c (compute_base_names): Don't map extensions when
2207 the YACC flag is set, use defaults.
2208 Reported by Evgeny Stambulchik.
2209
2210 2002-01-20 Marc Autret <marc@gnu.org>
2211
2212 * src/system.h: Need to define __attribute__ away for non-GCC
2213 compilers as well (i.e. the vendor C compiler).
2214 Suggested by Albert Chin-A-Young.
2215
2216 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
2217
2218 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
2219 canonical definition.
2220 * src/system.h: Use the canonical definition for PARAMS (avoids
2221 a conflict with the macro from lib/hash.h).
2222
2223 2002-01-11 Akim Demaille <akim@epita.fr>
2224
2225 * configure.in: Use AC_FUNC_STRNLEN.
2226 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
2227
2228 2002-01-09 Akim Demaille <akim@epita.fr>
2229
2230 * src/files.c, src/files.h (output_infix): New.
2231 (tab_extension): Remove.
2232 (compute_base_names): Compute the former, drop the latter.
2233 * src/output.c (prepare): Insert the muscles `output-infix', and
2234 `output-suffix'.
2235 * src/parse-skel.y (string, string.1): New.
2236 (section.header): Use it.
2237 (section.yacc): Remove.
2238 (prefix): Remove too.
2239 * src/scan-skel.l: Adjust.
2240 * src/bison.simple, src/bison.hairy: Adjust.
2241
2242 2002-01-09 Akim Demaille <akim@epita.fr>
2243
2244 * configure.in (WERROR_CFLAGS): Compute it.
2245 * src/Makefile.am (CFLAGS): Pass it.
2246 * tests/atlocal.in (CFLAGS): Idem.
2247 * src/files.c: Fix a few warnings.
2248 (get_extension_index): Remove, unused.
2249
2250 2002-01-08 Akim Demaille <akim@epita.fr>
2251
2252 * src/getargs.c (AS_FILE_NAME): New.
2253 (getargs): Use it to convert DOSish file names.
2254 * src/files.c (base_name): Rename as full_base_name to avoid
2255 clashes with `base_name ()'.
2256 (filename_split): New.
2257 (compute_base_names): N-th rewrite, using filename_split.
2258
2259 2002-01-08 Akim Demaille <akim@epita.fr>
2260
2261 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
2262 New, stolen from the Fileutils 4.1.
2263 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
2264 * configure.in: Check for the presence of memrchr, and of its
2265 prototype.
2266
2267 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
2268
2269 * lib/hash.h (__P): Added definition for this macro.
2270 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
2271 BUILT_SOURCES, to ensure they are generated first.
2272 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
2273 %error-verbose to allow bootstrapping with bison 1.30x.
2274
2275 2002-01-06 Akim Demaille <akim@epita.fr>
2276
2277 * src/reader.c (parse_braces): Don't fetch the next char, the
2278 convention is to fetch on entry.
2279 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
2280 'switch' without a following semicolon.
2281 * tests/regression.at (braces parsing): New.
2282
2283 2002-01-06 Akim Demaille <akim@epita.fr>
2284
2285 Bison is dead wrong in its RR conflict reports.
2286
2287 * tests/torture.at (GNU Cim Grammar): New.
2288 * src/conflicts.c (count_rr_conflicts): Fix.
2289
2290 2002-01-06 Akim Demaille <akim@epita.fr>
2291
2292 Creating package.m4 from configure.ac causes too many problems.
2293
2294 * tests/Makefile.am (package.m4): Create it by hand,
2295 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
2296
2297 2002-01-06 Akim Demaille <akim@epita.fr>
2298
2299 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
2300 skeleton.h.
2301
2302 2002-01-04 Paul Eggert <eggert@twinsun.com>
2303
2304 * doc/bison.texinfo (Debugging):
2305 Remove YYSTDERR; it's no longer defined or used.
2306 Also, s/cstdio.h/cstdio/.
2307
2308 2002-01-03 Akim Demaille <akim@epita.fr>
2309
2310 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
2311
2312 2002-01-03 Akim Demaille <akim@epita.fr>
2313
2314 * src/parse-skel.y (process_skeleton): Don't bind the parser's
2315 tracing code to --trace, wait for a better --trace option, with
2316 args.
2317
2318 2002-01-03 Akim Demaille <akim@epita.fr>
2319
2320 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
2321 The ISO C++ standard is extremely clear about it: stderr is
2322 considered a macro, not a regular symbol (see table 94 `Header
2323 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
2324 Therefore std:: does not apply to it. It still does with fprintf.
2325 Also, s/cstdio.h/cstdio/.
2326
2327 2002-01-03 Akim Demaille <akim@epita.fr>
2328
2329 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
2330 for non system headers.
2331
2332 2002-01-02 Akim Demaille <akim@epita.fr>
2333
2334 Equip the skeleton chain with location tracking, runtime trace,
2335 pure parser and scanner.
2336
2337 * src/parse-skel.y: Request a pure parser, locations, and prefix
2338 renaming.
2339 (%union): Having several members with the same type does not help
2340 type mismatches, simplify.
2341 (YYPRINT, yyprint): New.
2342 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
2343 (skel_error): this.
2344 Handle locations.
2345 * src/scan-skel.l: Adjust to these changes.
2346 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
2347 (LOCATION_PRINT, skel_control_t): New.
2348
2349 2001-12-30 Akim Demaille <akim@epita.fr>
2350
2351 * src/parse-skel.y: Get rid of the shift/reduce conflict:
2352 replace `gb' with BLANKS.
2353 * src/scan-skel.l: Adjust.
2354
2355 2001-12-30 Akim Demaille <akim@epita.fr>
2356
2357 * src/system.h: We don't need nor want bcopy.
2358 Throw away MS-DOS crap: we don't need getpid.
2359 * configure.in: We don't need strndup. It was even causing
2360 problems: because Flex includes the headers *before* us,
2361 _GNU_SOURCE is not defined by config.h, and therefore strndup was
2362 not visible.
2363 * lib/xstrndup.c: New.
2364 * src/scan-skel.l: Use it.
2365 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
2366 * src/parse-skel.y: Use %directives instead of #defines.
2367
2368 2001-12-30 Akim Demaille <akim@epita.fr>
2369
2370 * src/skeleton.h: New.
2371 * src/output.c (output_parser, output_master_parser): Remove, dead
2372 code.
2373 * src/output.h (get_lines_number, actions_output, guards_output)
2374 (token_definitions_output): Prototype them.
2375 * src/parse-skel.y: Add the license notice.
2376 Include output.h and skeleton.h.
2377 (process_skeleton): Returns void, and takes a single parameter.
2378 * src/scan-skel.l: Add the license notice.
2379 Include skeleton.h.
2380 Don't use %option yylineno: it seems that then Flex imagines
2381 REJECT has been used, and therefore it won't reallocate its
2382 buffers (which makes no other sense to me than a bug). It results
2383 in warnings for `unused: yy_flex_realloc'.
2384
2385 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
2386
2387 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
2388 (MUSCLE_INSERT_PREFIX): ...to there.
2389 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
2390 (MUSCLE_INSERT_PREFIX): Move from here...
2391
2392 * src/bison.hairy: Add a section directive. Put braces around muscle
2393 names. This parser skeleton is still broken, but Bison should not
2394 choke on a bad muscle 'syntax'.
2395 * src/bison.simple: Add a section directive. Put braces around muscle
2396 names.
2397
2398 * src/files.h (strsuffix, stringappend): Add declarations.
2399 (tab_extension): Add declaration.
2400 (short_base_name): Add declaration.
2401
2402 * src/files.c (strsuffix, stringappend): No longer static. These
2403 functions are used in the skeleton parser.
2404 (tab_extension): New.
2405 (compute_base_names): Use the computations done in this function
2406 to guess if the generated parsers should have '.tab' in their
2407 names.
2408 (short_base_name): No longer static.
2409
2410 * src/output.c (output_skeleton): New.
2411 (output): Disable call to output_master_parser, and give a try to
2412 a new skeleton handling system.
2413 (guards_output, actions_output): No longer static.
2414 (token_definitions_output, get_lines_number): No longer static.
2415
2416 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
2417
2418 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
2419 parse-skel.y.
2420
2421 * src/parse-skel.y: New file.
2422 * src/scan-skel.l: New file.
2423
2424 2001-12-29 Akim Demaille <akim@epita.fr>
2425
2426 %name-prefix is broken.
2427
2428 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
2429 Adjust all dependencies.
2430 * tests/headers.at (export YYLTYPE): Strengthen this test: use
2431 %name-prefix.
2432
2433 Renaming yylval but not yylloc is not consistent. Now we do.
2434
2435 * src/bison.simple: Prefix yylloc if used.
2436 * doc/bison.texinfo (Decl Summary): Document that.
2437
2438 2001-12-29 Akim Demaille <akim@epita.fr>
2439
2440 * doc/bison.texinfo: Promote `%long-directive' over
2441 `%long_directive'.
2442 Remove all references to fixed-output-files, yacc is enough.
2443
2444 2001-12-29 Akim Demaille <akim@epita.fr>
2445
2446 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
2447 user prologue. These are defaults.
2448 * tests/actions.at (Mid-rule actions): Make sure the user can
2449 define YYDEBUG and YYERROR_VERBOSE.
2450
2451 2001-12-29 Akim Demaille <akim@epita.fr>
2452
2453 * src/output.c (header_output): Don't forget to export YYLTYPE and
2454 yylloc.
2455 * tests/headers.at (export YYLTYPE): New, make sure it does.
2456 * tests/regression.at (%union and --defines, Invalid CPP headers):
2457 Move to...
2458 * tests/headers.at: here.
2459
2460 2001-12-29 Akim Demaille <akim@epita.fr>
2461
2462 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
2463
2464 2001-12-29 Akim Demaille <akim@epita.fr>
2465
2466 * tests/actions.at (Mid-rule actions): Output on a single line
2467 instead of several.
2468
2469 2001-12-29 Akim Demaille <akim@epita.fr>
2470
2471 * doc/bison.texinfo: Formatting changes.
2472
2473 2001-12-29 Akim Demaille <akim@epita.fr>
2474
2475 Don't store the token defs in a muscle, just be ready to output it
2476 on command. Now possible via `symbols'. Fixes a memory leak.
2477
2478 * src/output.c (token_definitions_output): New.
2479 (output_parser, header_output): Use it.
2480 * src/reader.c (symbols_save): Remove.
2481
2482 2001-12-29 Akim Demaille <akim@epita.fr>
2483
2484 * src/bison.simple: Do not provide a default for YYSTYPE and
2485 YYLTYPE before the user's prologue. Otherwise it's hardly... a
2486 default.
2487
2488 2001-12-29 Akim Demaille <akim@epita.fr>
2489
2490 Mid-rule actions are simply... ignored!
2491
2492 * src/reader.c (readgram): Be sure to attach mid-rule actions to
2493 the empty-rule associated to the dummy symbol, not to the host
2494 rule.
2495 * tests/actions.at (Mid-rule actions): New.
2496
2497 2001-12-29 Akim Demaille <akim@epita.fr>
2498
2499 Memory leak.
2500
2501 * src/reader.c (reader): Free grammar.
2502
2503 2001-12-29 Akim Demaille <akim@epita.fr>
2504
2505 Memory leak.
2506
2507 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
2508 since it allocates it for each state, although only one is needed.
2509 (allocate_storage): Do it here.
2510
2511 2001-12-29 Akim Demaille <akim@epita.fr>
2512
2513 * src/options.h, src/options.c (create_long_option_table): Rename
2514 as...
2515 (long_option_table_new): this, with a clearer prototype.
2516 (percent_table): Remove, unused,
2517 * src/getargs.c (getargs): Adjust.
2518
2519 2001-12-29 Akim Demaille <akim@epita.fr>
2520
2521 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
2522 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
2523 as states.
2524
2525 2001-12-29 Akim Demaille <akim@epita.fr>
2526
2527 * src/lalr.c (build_relations): Rename `states' as `states1'.
2528 Sorry, I don't understand exactly what it is, no better name...
2529
2530 2001-12-29 Akim Demaille <akim@epita.fr>
2531
2532 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
2533 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
2534 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
2535 as rules.
2536
2537 2001-12-29 Akim Demaille <akim@epita.fr>
2538
2539 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
2540 ago.
2541
2542 2001-12-29 Akim Demaille <akim@epita.fr>
2543
2544 * src/reader.c, src/reader.h (user_toknums): Remove.
2545 Adjust all users to use symbols[i]->user_token_number.
2546
2547 2001-12-29 Akim Demaille <akim@epita.fr>
2548
2549 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
2550 Adjust all users to use symbols[i]->prec or ->assoc.
2551
2552 2001-12-29 Akim Demaille <akim@epita.fr>
2553
2554 * src/reader.c, src/reader.h (tags): Remove.
2555 Adjust all users to use symbols[i]->tag.
2556
2557 2001-12-29 Akim Demaille <akim@epita.fr>
2558
2559 * src/gram.h, src/gram.c (symbols): New, similar to state_table
2560 and rule_table.
2561 * src/reader.c (packsymbols): Fill this table.
2562 Drop sprec.
2563 * src/conflicts.c (resolve_sr_conflict): Adjust.
2564 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
2565 single table.
2566 Use symbols[i]->tag instead of tags[i].
2567
2568 2001-12-29 Akim Demaille <akim@epita.fr>
2569
2570 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
2571 In addition, put a comment in there, to replace...
2572 * tests/regression.at (%union and C comments): Remove.
2573
2574 2001-12-29 Akim Demaille <akim@epita.fr>
2575
2576 * tests/regression.at (Web2c Actions): Blindly move the actual
2577 output as expected output. The contents *seem* right to me, but I
2578 can't pretend reading perfectly parser tables... Nonetheless, all
2579 the other tests pass correctly, the table look OK, even though the
2580 presence of `$axiom' is to be noted: AFAICS it is useless (but
2581 harmless).
2582
2583 2001-12-29 Akim Demaille <akim@epita.fr>
2584
2585 * src/reader.c (readgram): Don't add the rule 0 if there were no
2586 rules read. In other words, add it _after_ having performed
2587 grammar sanity checks.
2588 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
2589
2590 2001-12-29 Akim Demaille <akim@epita.fr>
2591
2592 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
2593 visible, and some states have now a different number.
2594
2595 2001-12-29 Akim Demaille <akim@epita.fr>
2596
2597 * src/reader.c (readgram): Bind the initial rule's lineno to that
2598 of the first rule.
2599 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
2600 (Solved SR Conflicts): Adjust rule 0's line number.
2601
2602 2001-12-29 Akim Demaille <akim@epita.fr>
2603
2604 Fix the `GAWK Grammar' failure.
2605
2606 * src/LR0.c (final_state): Initialize to -1 so that we do compute
2607 the reductions of the first state which was mistakenly confused
2608 with the final state because precisely final_state was initialized
2609 to 0.
2610 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
2611 now noticed by Bison.
2612 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
2613 have a reduction on $default.
2614
2615 2001-12-29 Akim Demaille <akim@epita.fr>
2616
2617 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
2618 rule line numbers.
2619 * src/closure.c (print_closure): Likewise.
2620 * src/derives.c (print_derives): Likewise.
2621 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
2622 now.
2623
2624 2001-12-29 Akim Demaille <akim@epita.fr>
2625
2626 * src/lalr.c (lookaheads_print): New.
2627 (lalr): Call it when --trace-flag.
2628 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
2629 are dumped.
2630
2631 2001-12-29 Akim Demaille <akim@epita.fr>
2632
2633 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
2634 when walking through ritem, even via rule->rhs.
2635 * src/reduce.c (dump_grammar, useful_production, reduce_output)
2636 (useful_production, useless_nonterminals): Likewise.
2637 (reduce_grammar_tables): Likewise, plus update nritems.
2638 * src/nullable.c (set_nullable): Likewise.
2639 * src/lalr.c (build_relations): Likewise.
2640 * tests/sets.at (Nullable): Adjust.
2641 Fortunately, now, the $axiom is no longer nullable.
2642
2643 2001-12-29 Akim Demaille <akim@epita.fr>
2644
2645 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
2646 the 0-sentinel.
2647 * src/gram.c (ritem_longest_rhs): Likewise.
2648 * src/reduce.c (nonterminals_reduce): Likewise.
2649 * src/print_graph.c (print_graph): Likewise.
2650 * src/output.c (output_rule_data): Likewise.
2651 * src/nullable.c (set_nullable): Likewise.
2652
2653 2001-12-29 Akim Demaille <akim@epita.fr>
2654
2655 * src/output.c: Comment changes.
2656
2657 2001-12-27 Paul Eggert <eggert@twinsun.com>
2658
2659 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
2660 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
2661 Sparc, as they were causing more porting problems than the
2662 (minor) performance improvement was worth.
2663
2664 Also, catch up with 1.31's YYSTD.
2665
2666 2001-12-27 Akim Demaille <akim@epita.fr>
2667
2668 * src/output.c (output_gram): Rely on nritems, not the
2669 0-sentinel. See below.
2670 Use -1 as separator, not 0.
2671 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
2672 Rely on -1 as separator in yyrhs, instead of 0.
2673 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
2674 twice `Now at end of input', therefore there are two lines less to
2675 expect.
2676
2677 2001-12-27 Akim Demaille <akim@epita.fr>
2678
2679 * tests/regression.at (Unresolved SR Conflicts):
2680 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
2681 below.
2682
2683 2001-12-27 Akim Demaille <akim@epita.fr>
2684
2685 * src/LR0.c (new_state): Recognize the final state by the fact it
2686 is reached by eoftoken.
2687 (insert_start_shifting_state, insert_eof_shifting_state)
2688 (insert_accepting_state, augment_automaton): Remove, since now
2689 these states are automatically computed from the initial state.
2690 (generate_states): Adjust.
2691 * src/print.c: When reporting a rule number to the user, substract
2692 1, so that the axiom rule is rule 0, and the first user rule is 1.
2693 * src/reduce.c: Likewise.
2694 * src/print_graph.c (print_core): For the time being, just as for
2695 the report, depend upon --trace-flags to dump the full set of
2696 items.
2697 * src/reader.c (readgram): Once the grammar read, insert the rule
2698 0: `$axiom: START-SYMBOL $'.
2699 * tests/set.at: Adjust: rule 0 is now displayed, and since the
2700 number of the states has changed (the final state is no longer
2701 necessarily the last), catch up.
2702
2703 2001-12-27 Akim Demaille <akim@epita.fr>
2704
2705 Try to make the use of the eoftoken valid. Given that its value
2706 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
2707 is used instead of > 0 where appropriate, (ii), depend upon nritems
2708 instead of the 0-sentinel.
2709
2710 * src/gram.h, src/gram.c (nritems): New.
2711 Expected to be duplication of nitems, but for the time being...
2712 * src/reader.c (packgram): Assert nritems and nitems are equal.
2713 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
2714 * src/closure.c (print_closure, print_fderives): Likewise.
2715 * src/gram.c (ritem_print): Likewise.
2716 * src/print.c (print_core, print_grammar): Likewise.
2717 * src/print_graph.c: Likewise.
2718
2719 2001-12-27 Akim Demaille <akim@epita.fr>
2720
2721 * src/main.c (main): If there are complains after grammar
2722 reductions, then output the report anyway if requested, then die.
2723 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
2724 * src/reader.c (eoftoken): New.
2725 (parse_token_decl): If the token being defined has value `0', it
2726 is the eoftoken.
2727 (packsymbols): No longer hack `tags' to insert `$' by hand.
2728 Be sure to preserve the value of the eoftoken.
2729 (reader): Make sure eoftoken is defined.
2730 Initialize nsyms to 0: now eoftoken is created just like the others.
2731 * src/print.c (print_grammar): Don't special case the eof token.
2732 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
2733 lie anyway, albeit pleasant.
2734 * tests/calc.at: Exercise error messages with eoftoken.
2735 Change the grammar so that empty input is invalid.
2736 Adjust expectations.
2737 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
2738
2739 2001-12-27 Akim Demaille <akim@epita.fr>
2740
2741 * configure.in: Check the protos of strchr ans strspn.
2742 Replace strchr if needed.
2743 * src/system.h: Provide the protos of strchr, strspn and memchr if
2744 missing.
2745 * lib/strchr.c: New.
2746 * src/reader.c (symbols_save): Use strchr.
2747
2748 2001-12-27 Akim Demaille <akim@epita.fr>
2749
2750 * src/print.c, src/print_graph.c (escape): New.
2751 Use it to quote the TAGS outputs.
2752 * src/print_graph.c (print_state): Now errors are in red, and
2753 reductions in green.
2754 Prefer high to wide: output the state number on a line of its own.
2755
2756 2001-12-27 Akim Demaille <akim@epita.fr>
2757
2758 * src/state.h, src/state.c (reductions_new): New.
2759 * src/LR0.c (set_state_table): Let all the states have a
2760 `reductions', even if reduced to 0.
2761 (save_reductions): Adjust.
2762 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
2763 * src/print.c (print_reductions, print_actions): Adjust.
2764 * src/output.c (action_row): Adjust.
2765
2766 2001-12-27 Akim Demaille <akim@epita.fr>
2767
2768 * src/state.h, src/state.c (errs_new, errs_dup): New.
2769 * src/LR0.c (set_state_table): Let all the states have an errs,
2770 even if reduced to 0.
2771 * src/print.c (print_errs, print_reductions): Adjust.
2772 * src/output.c (output_actions, action_row): Adjust.
2773 * src/conflicts.c (resolve_sr_conflict): Adjust.
2774
2775 2001-12-27 Akim Demaille <akim@epita.fr>
2776
2777 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
2778
2779 2001-12-27 Akim Demaille <akim@epita.fr>
2780
2781 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
2782 * src/print.c: here.
2783 (lookaheadset, shiftset): New, used as additional storage by
2784 print_reductions.
2785 (print_results): Adjust.
2786 (print_shifts, print_gotos, print_errs): New, extracted from...
2787 (print_actions): here.
2788 * src/print_graph.c (print_actions): Remove dead code.
2789
2790 2001-12-27 Akim Demaille <akim@epita.fr>
2791
2792 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
2793 `$n' and `@n'.
2794
2795 2001-12-27 Akim Demaille <akim@epita.fr>
2796
2797 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
2798 (build_relations): Adjust.
2799
2800 2001-12-27 Akim Demaille <akim@epita.fr>
2801
2802 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
2803 duplication.
2804
2805 2001-12-27 Akim Demaille <akim@epita.fr>
2806
2807 * src/reader.c (packgram): Catch nitems overflows.
2808
2809 2001-12-27 Akim Demaille <akim@epita.fr>
2810
2811 * src/files.c, src/files.h (guard_obstack): Remove.
2812 * src/output.c (output): Adjust.
2813 * src/reader.c (parse_braces): New, factoring...
2814 (copy_action, copy_guard): these two which are renamed as...
2815 (parse_action, parse_guard): these.
2816 As a voluntary consequence, using braces around guards is now
2817 mandatory.
2818
2819 2001-12-27 Akim Demaille <akim@epita.fr>
2820
2821 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
2822 * src/reader.c (symbol_list): `guard' and `guard_line' are new
2823 members.
2824 (symbol_list_new): Adjust.
2825 (copy_action): action_line is the first line, not the last.
2826 (copy_guard): Just as for actions, store the `action' only, not
2827 the switch/case/break flesh.
2828 Don't parse the user action that might follow the guard, let...
2829 (readgram): do it, i.e., now, there can be an action after a
2830 guard.
2831 In other words the guard is just explicitly optional.
2832 (packgram): Adjust.
2833 * src/output.c (guards_output): New.
2834 (output_parser): Call it when needed.
2835 (output): Also free the guard and attrs obstacks.
2836 * src/files.c, src/files.h (obstack_save): Remove.
2837 (output_files): Remove.
2838 As a result, if one needs the former `.act' file, using an
2839 appropriate skeleton which requires actions and guards is now
2840 required.
2841 * src/main.c (main): Adjust.
2842 * tests/semantic.at: New.
2843 * tests/regression.at: Use `input.y' as input file name.
2844 Avoid 8+3 problems by requiring input.c when the test needs the
2845 parser.
2846
2847 2001-12-27 Akim Demaille <akim@epita.fr>
2848
2849 * src/reader.c (symbol_list_new): Be sure to initialize all the
2850 fields.
2851
2852 2001-12-27 Akim Demaille <akim@epita.fr>
2853
2854 All the hacks using a final pseudo state are now useless.
2855
2856 * src/LR0.c (set_state_table): state_table holds exactly nstates.
2857 * src/lalr.c (nLA): New.
2858 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
2859 instead of lookaheadsp from the pseudo state (nstate + 1).
2860
2861 2001-12-27 Akim Demaille <akim@epita.fr>
2862
2863 * src/output.c (action_row, token_actions): Use a state_t instead
2864 of a integer, and nlookaheads instead of the following state's
2865 lookaheadsp.
2866
2867 2001-12-27 Akim Demaille <akim@epita.fr>
2868
2869 * src/conflicts.c (log_resolution, flush_shift)
2870 (resolve_sr_conflict, set_conflicts, solve_conflicts)
2871 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
2872 (conflicts_print, print_reductions): Use a state_t instead of an
2873 integer when referring to a state.
2874 As much as possible, depend upon nlookaheads, instead of the
2875 `lookaheadsp' member of the following state (since lookaheads of
2876 successive states are successive, the difference between state n + 1
2877 and n served as the number of lookaheads for state n).
2878 * src/lalr.c (add_lookback_edge): Likewise.
2879 * src/print.c (print_core, print_actions, print_state)
2880 (print_results): Likewise.
2881 * src/print_graph.c (print_core, print_actions, print_state)
2882 (print_graph): Likewise.
2883 * src/conflicts.h: Adjust.
2884
2885 2001-12-27 Akim Demaille <akim@epita.fr>
2886
2887 * src/bison.hairy: Formatting/comment changes.
2888 ANSIfy.
2889 Remove `register' indications.
2890 Add plenty of `static'.
2891
2892 2001-12-27 Akim Demaille <akim@epita.fr>
2893
2894 * src/output.c (prepare): Drop the muscle `ntbase' which
2895 duplicates ntokens.
2896 * src/bison.simple: Formatting/comment changes.
2897 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
2898 is an undocumented synonym.
2899
2900 2001-12-22 Akim Demaille <akim@epita.fr>
2901
2902 * src/output.c (output_table_data): Change the prototype to use
2903 `int' for array ranges: some invocations do pass an int, not a
2904 short.
2905 Reported by Wayne Green.
2906
2907 2001-12-22 Akim Demaille <akim@epita.fr>
2908
2909 Some actions of web2c.y are improperly triggered.
2910 Reported by Mike Castle.
2911
2912 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
2913 * tests/regression.at (Web2c): Rename as...
2914 (Web2c Report): this.
2915 (Web2c Actions): New.
2916
2917 2001-12-22 Akim Demaille <akim@epita.fr>
2918
2919 Reductions in web2c.y are improperly reported.
2920 Reported by Mike Castle.
2921
2922 * src/conflicts.c (print_reductions): Fix.
2923 * tests/regression.at (Web2c): New.
2924
2925 2001-12-18 Akim Demaille <akim@epita.fr>
2926
2927 Some host fail on `assert (!"foo")', which expands to
2928 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
2929 Reported by Nelson Beebee.
2930
2931 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
2932 `#define it_succeeded 0' and `assert (it_succeeded)'.
2933
2934 2001-12-17 Marc Autret <autret_m@epita.fr>
2935
2936 * src/bison.simple: Don't hard code the skeleton line and filename.
2937 * src/output.c (output_parser): Rename 'line' as 'output_line'.
2938 New line counter 'skeleton_line' (skeleton-line muscle).
2939
2940 2001-12-17 Paul Eggert <eggert@twinsun.com>
2941
2942 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
2943 YYDEBUG must be defined to a nonzero value.
2944
2945 * src/bison.simple (yytname): Do not assume that the user defines
2946 YYDEBUG to a properly parenthesized expression.
2947
2948 2001-12-17 Akim Demaille <akim@epita.fr>
2949
2950 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
2951 nlookaheads is a new member.
2952 Adjust all users.
2953 * src/lalr.h (nlookaheads): Remove this orphan declaration.
2954 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
2955 state.
2956
2957 2001-12-17 Akim Demaille <akim@epita.fr>
2958
2959 * src/files.h, src/files.c (open_files, close_files): Remove.
2960 * src/main.c (main): Don't open/close files, nor invoke lex_free,
2961 let...
2962 * src/reader.c (reader): Do it.
2963
2964 2001-12-17 Akim Demaille <akim@epita.fr>
2965
2966 * src/conflicts.c (print_reductions): Formatting changes.
2967
2968 2001-12-17 Akim Demaille <akim@epita.fr>
2969
2970 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
2971 (flush_reduce): New.
2972 (resolve_sr_conflict): Adjust.
2973
2974 2001-12-17 Akim Demaille <akim@epita.fr>
2975
2976 * src/output.c (output_obstack): Be static and rename as...
2977 (format_obstack): this, to avoid any confusion with files.c's
2978 output_obstack.
2979 * src/reader.h (muscle_obstack): Move to...
2980 * src/output.h: here, since it's defined in output.c.
2981
2982 2001-12-17 Akim Demaille <akim@epita.fr>
2983
2984 * src/output.c (action_row, save_column, default_goto)
2985 (sort_actions, matching_state, pack_vector): Better variable
2986 locality.
2987
2988 2001-12-17 Akim Demaille <akim@epita.fr>
2989
2990 * src/output.c: Various formatting changes.
2991
2992 2001-12-17 Akim Demaille <akim@epita.fr>
2993
2994 * src/files.c (output_files): Free the output_obstack.
2995 * src/main.c (main): Call print and print_graph conditionally.
2996 * src/print.c (print): Work unconditionally.
2997 * src/print_graph.c (print_graph): Work unconditionally.
2998 * src/conflicts.c (log_resolution): Output only if verbose_flag.
2999
3000 2001-12-16 Marc Autret <autret_m@epita.fr>
3001
3002 * src/output.c (actions_output): Fix. When we use %no-lines,
3003 there is one less line per action.
3004
3005 2001-12-16 Marc Autret <autret_m@epita.fr>
3006
3007 * src/bison.simple: Remove a useless #line directive.
3008 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
3009 * src/output.c (get_lines_number): New.
3010 (output_parser): Adjust, now takes care about the lines of a
3011 output muscles.
3012 Fix line numbering.
3013 (actions_output): Computes the number of lines taken by actions.
3014 (output_master_parser): Insert new skeleton which is the name of
3015 the output parser file name.
3016
3017 2001-12-15 Marc Autret <autret_m@epita.fr>
3018
3019 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
3020
3021 2001-12-15 Marc Autret <autret_m@epita.fr>
3022
3023 * src/output.c (output_gram): Keep track of the hairy one.
3024
3025 2001-12-15 Akim Demaille <akim@epita.fr>
3026
3027 Make `make distcheck' work.
3028
3029 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
3030 system.h which uses libgettext.h.
3031
3032 2001-12-15 Akim Demaille <akim@epita.fr>
3033
3034 * src/nullable.c (set_nullable): Useless rules must be skipped,
3035 otherwise, since we range over their symbols, we might look at a
3036 nonterminal which no longer ``exists'', i.e., it is not counted in
3037 `nvars', hence we overflow our arrays.
3038
3039 2001-12-15 Akim Demaille <akim@epita.fr>
3040
3041 The header can also be produced directly, without any obstack!
3042 Yahoo!
3043
3044 * src/files.c, src/files.h (defines_obstack): Remove.
3045 (compute_header_macro): Global.
3046 (defines_obstack_save): Remove.
3047 * src/reader.c (parse_union_decl): No longer output to
3048 defines_obstack: its content can be found in the `stype' muscle
3049 anyway.
3050 (output_token_translations): Merge into...
3051 (symbols_output): this.
3052 Rename as...
3053 (symbols_save): this.
3054 (reader): Adjust.
3055 * src/output.c (header_output): New.
3056 (output): Call it.
3057
3058 2001-12-15 Akim Demaille <akim@epita.fr>
3059
3060 * src/reader.c (parse_union_decl): Instead of handling two obstack
3061 simultaneously, use one to define the `stype' muscle, and use the
3062 value of the latter to fill defines_obstack.
3063 (copy_comment): Remove.
3064 (copy_comment2): Work for a single obstack.
3065 Rename as...
3066 (copy_comment): this.
3067
3068 2001-12-15 Akim Demaille <akim@epita.fr>
3069
3070 * src/lex.c, src/lex.h (xgetc): No longer static.
3071 * src/reader.c (parse_union_decl): Revamp.
3072
3073 2001-12-15 Akim Demaille <akim@epita.fr>
3074
3075 Still making progress in separating Bison into (i) input, (ii)
3076 process, (iii) output: now we can directly output the parser file
3077 without using table_obstack at all.
3078
3079 * src/files.c, src/files.h (table_obstack): Bye bye.
3080 (parser_file_name): New.
3081 * src/files.c (compute_output_file_names): Compute it.
3082 * src/output.c (actions_output, output_parser)
3083 (output_master_parser): To a file instead of an obstack.
3084
3085 2001-12-15 Akim Demaille <akim@epita.fr>
3086
3087 Attach actions to rules, instead of pre-outputting them to
3088 actions_obstack.
3089
3090 * src/gram.h (rule_t): action and action_line are new members.
3091 * src/reader.c (symbol_list): Likewise.
3092 (copy_action): Save the actions within the rule.
3093 (packgram): Save them in rule_table.
3094 * src/output.c (actions_output): New.
3095 (output_parser): Use it on `%%actions'.
3096 (output_rule_data): Don't free rule_table.
3097 (output): Do it.
3098 (prepare): Don't save the `action' muscle.
3099 * src/bison.simple: s/%%action/%%actions/.
3100
3101 2001-12-15 Akim Demaille <akim@epita.fr>
3102
3103 * src/reader.c (copy_action): When --yacc, don't append a `;'
3104 to the user action: let it fail if lacking.
3105 Suggested by Arnold Robbins and Tom Tromey.
3106
3107 2001-12-14 Akim Demaille <akim@epita.fr>
3108
3109 * src/lex.c (literalchar): Simply return the char you decoded, non
3110 longer mess around with obstacks and int pointers.
3111 Adjust all callers.
3112
3113 2001-12-14 Akim Demaille <akim@epita.fr>
3114
3115 * src/lex.c (literalchar): Don't escape the special characters,
3116 just decode them, and keep them as char (before, eol was output as
3117 the 2 char string `\n' etc.).
3118 * src/output.c (output_rule_data): Use quotearg to output the
3119 token strings.
3120
3121 2001-12-13 Paul Eggert <eggert@twinsun.com>
3122
3123 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
3124 Do not infringe on the global user namespace when using C++.
3125 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
3126 All uses of `fprintf' and `stderr' changed.
3127
3128 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
3129
3130 2001-12-13 Akim Demaille <akim@epita.fr>
3131
3132 The computation of nullable is broken: it doesn't handle empty
3133 RHS's properly.
3134
3135 * tests/torture.at (GNU AWK Grammar): New.
3136 * tests/sets.at (Nullable): New.
3137 * src/nullable.c (set_nullable): Instead of blindly looping over
3138 `ritems', loop over the rules, and then over their rhs's.
3139
3140 Work around Autotest bugs.
3141
3142 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
3143 frame, because Autotest understand lines starting with a `+' as
3144 traces from the shell. Then, they are not processed properly.
3145 Admittedly an Autotest bug, but we don't have time to wait for
3146 Autotest to catch up.
3147 * tests/regression.at (Broken Closure): Adjust to the new table
3148 frames.
3149 Move to...
3150 * tests/sets.at: here.
3151
3152 2001-12-13 Akim Demaille <akim@epita.fr>
3153
3154 * src/closure.c (closure): Use nrules instead of playing tricks
3155 with BITS_PER_WORD.
3156
3157 2001-12-13 Akim Demaille <akim@epita.fr>
3158
3159 * src/print.c (print_actions): Output the handling of `$' as the
3160 traces do: shifting the token EOF. Before EOF was treated as a
3161 nonterminal.
3162 * tests/regression.at: Adjust some tests.
3163 * src/print_graph.c (print_core): Complete the set of items via
3164 closure. The next-to-final and final states are still unsatisfying,
3165 but that's to be addressed elsewhere.
3166 No longer output the rule numbers, but do output the state number.
3167 A single loop for the shifts + gotos is enough, but picked a
3168 distinct color for each.
3169 (print_graph): Initialize and finalize closure.
3170
3171 2001-12-13 Akim Demaille <akim@epita.fr>
3172
3173 * src/reader.c (readgram): Remove dead code, an strip useless
3174 braces.
3175 (get_type): Remove, unused.
3176
3177 2001-12-12 Akim Demaille <akim@epita.fr>
3178
3179 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
3180 on that of lib/error.c.
3181
3182 2001-12-12 Akim Demaille <akim@epita.fr>
3183
3184 Some hosts don't like `/' in includes.
3185
3186 * src/system.h: Include libgettext.h without qualifying the path.
3187 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
3188 $(top_srcdir).
3189
3190 2001-12-11 Marc Autret <autret_m@epita.fr>
3191
3192 * src/output.c (output_parser): Remove useless muscle.
3193
3194 2001-12-11 Marc Autret <autret_m@epita.fr>
3195
3196 * src/bison.simple: Remove #line just before %%epilogue. It
3197 is now handled in ...
3198 * src/reader.c (read_additionnal_code): Add the output of a
3199 #line for the epilogue.
3200
3201 2001-12-10 Marc Autret <autret_m@epita.fr>
3202
3203 * src/reader.c (copy_definition): Re-use CPP-outed code which
3204 replace precedent remove.
3205 * src/bison.simple: Remove #line before %%prologue because
3206 %%input-line is wrong at this time.
3207
3208 2001-12-10 Marc Autret <autret_m@epita.fr>
3209
3210 * src/reader.c (symbols_output): Clean up.
3211 * src/output.c (output_gram, output): Clean up.
3212
3213 2001-12-10 Akim Demaille <akim@epita.fr>
3214
3215 * src/lalr.c (initialize_lookaheads): New. Extracted from...
3216 * src/LR0.c (set_state_table): here.
3217 * src/lalr.c (lalr): Call it.
3218
3219 2001-12-10 Akim Demaille <akim@epita.fr>
3220
3221 * src/state.h (shifts): Remove the `number' member: shifts are
3222 attached to state, hence no longer need to be labelled with a
3223 state number.
3224
3225 2001-12-10 Akim Demaille <akim@epita.fr>
3226
3227 Now that states have a complete set of members, the linked list of
3228 shifts is useless: just fill directly the state's shifts member.
3229
3230 * src/state.h (shifts): Remove the `next' member.
3231 * src/LR0.c (first_state, last_state): Remove.
3232 Adjust the callers.
3233 (augment_automaton): Don't look for the shifts that must be added
3234 a shift on EOF: it is those of the state we looked for! But now,
3235 since shifts are attached, it is no longer needed to looking
3236 merely by its id: its number.
3237
3238 2001-12-10 Akim Demaille <akim@epita.fr>
3239
3240 * src/LR0.c (augment_automaton): Better variable locality.
3241 Remove an impossible branch: if there is a state corresponding to
3242 the start symbol being shifted, then there is shift for the start
3243 symbol from the initial state.
3244
3245 2001-12-10 Akim Demaille <akim@epita.fr>
3246
3247 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
3248 only when appropriate: when insert_start_shifting_state' is not
3249 invoked.
3250 * tests/regression.at (Rule Line Numbers): Adjust.
3251
3252 2001-12-10 Akim Demaille <akim@epita.fr>
3253
3254 * src/LR0.c (augment_automaton): Now that all states have shifts,
3255 merge the two cases addition shifts to the initial state.
3256
3257 2001-12-10 Akim Demaille <akim@epita.fr>
3258
3259 * src/lalr.c (set_state_table): Move to...
3260 * src/LR0.c: here.
3261 * src/lalr.c (lalr): Don't call it...
3262 * src/LR0.c (generate_states): do it.
3263 * src/LR0.h (first_state): Remove, only the table is used.
3264
3265 2001-12-10 Akim Demaille <akim@epita.fr>
3266
3267 * src/LR0.h (first_shift, first_reduction): Remove.
3268 * src/lalr.c: Don't use first_shift: find shifts through the
3269 states.
3270
3271 2001-12-10 Akim Demaille <akim@epita.fr>
3272
3273 * src/LR0.c: Attach shifts to states as soon as they are
3274 computed.
3275 * src/lalr.c (set_state_table): Instead of assigning shifts to
3276 state, just assert that the mapping was properly done.
3277
3278 2001-12-10 Akim Demaille <akim@epita.fr>
3279
3280 * src/LR0.c (insert_start_shift): Rename as...
3281 (insert_start_shifting_state): this.
3282 (insert_eof_shifting_state, insert_accepting_state): New.
3283 (augment_automaton): Adjust.
3284 Better locality of the variables.
3285 When looking if the start_symbol is shifted from the initial
3286 state, using `while (... symbol != start_symbol ...)' sounds
3287 better than `while (... symbol < start_symbol ...)': If fail
3288 to see how the order between symbols could be relevant!
3289
3290 2001-12-10 Akim Demaille <akim@epita.fr>
3291
3292 * src/getargs.h: Don't declare `spec_name_prefix' and
3293 `spec_file_prefix', declared by src/files.h.
3294 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
3295 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
3296 * src/output.c (prepare): Adjust.
3297 * src/reader.c (symbols_output): Likewise.
3298 * src/vmsgetargs.c: Vaguely adjust, but who cares?
3299
3300 2001-12-10 Akim Demaille <akim@epita.fr>
3301
3302 * src/muscle_tab.c (muscle_init): NULL is a better default than
3303 `"0"'.
3304
3305 2001-12-10 Akim Demaille <akim@epita.fr>
3306
3307 * src/reader.c (reader): Calling symbols_output once is enough.
3308
3309 2001-12-10 Akim Demaille <akim@epita.fr>
3310
3311 Now that states have a complete set of members, the linked list of
3312 reductions is useless: just fill directly the state's reductions
3313 member.
3314
3315 * src/state.h (struct reductions): Remove member `number' and
3316 `next'.
3317 * src/LR0.c (first_reduction, last_reduction): Remove.
3318 (save_reductions): Don't link the new reductions, store them in
3319 this_state.
3320 * src/lalr.c (set_state_table): No need to attach reductions to
3321 states, it's already done.
3322 * src/output.c (output_actions): No longer free the shifts, then
3323 the reductions, then the states: free all the states and their
3324 members.
3325
3326 2001-12-10 Akim Demaille <akim@epita.fr>
3327
3328 * src/options.c (OPTN, DRTV, BOTH): New.
3329 (option_table): Use them.
3330
3331 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
3332 the job of system.h.
3333 * src/options.c: Don't include stdio.h and xalloc.h for the same
3334 reasons.
3335
3336 2001-12-10 Akim Demaille <akim@epita.fr>
3337
3338 * src/output.c (output, prepare): Make sure the values of the
3339 muscles `action' and `prologue' are 0-terminated.
3340
3341 2001-12-10 Akim Demaille <akim@epita.fr>
3342
3343 Clean up GCC warnings.
3344
3345 * src/reader.c (copy_action): `buf' is not used.
3346 (parse_skel_decl): Be static.
3347 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
3348 * src/options.h (create_long_option_table): Have a real prototype.
3349 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
3350 (hash_delete_at): Return const void *.
3351 Adjust casts to preserve the const.
3352
3353 2001-12-10 Akim Demaille <akim@epita.fr>
3354
3355 * configure.in: Require 2.52g.
3356 M4 is not needed, but AUTOM4TE is.
3357 * m4/m4.m4: Remove.
3358 * tests/Makefile.am: Adjust.
3359
3360 2001-12-10 Akim Demaille <akim@epita.fr>
3361
3362 One structure for states is enough, even though theoretically
3363 there are LR(0) states and LALR(1) states.
3364
3365 * src/lalr.h (state_t): Remove.
3366 (state_table): Be state_t **, not state_t *.
3367 * src/state.h (core, CORE_ALLOC): Rename as...
3368 (state_t, STATE_ALLOC): this.
3369 Add the LALR(1) members: shifts, reductions, errs.
3370 * src/LR0.c (state_table): Rename as...
3371 (state_hash): this, to avoid name clashes with the global
3372 `state_table'.
3373 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
3374 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
3375
3376 2001-12-10 Akim Demaille <akim@epita.fr>
3377
3378 Bison dumps core on bash.y.
3379 Reported by Pascal Bart.
3380
3381 * src/warshall.c (bitmatrix_print): New.
3382 (TC): Use it.
3383 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
3384 j must be the outer loop.
3385 * tests/regression.at (Broken Closure): New.
3386
3387 2001-12-05 Akim Demaille <akim@epita.fr>
3388
3389 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
3390 its argument.
3391 Reported by Peter Hámorský.
3392
3393 2001-12-05 Akim Demaille <akim@epita.fr>
3394
3395 * src/conflicts.c (err_table): Remove.
3396 (resolve_sr_conflict): Adjust.
3397 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
3398 Rename as...
3399 (state_t.reductions, state_t.shifts): this.
3400
3401 2001-12-05 Akim Demaille <akim@epita.fr>
3402
3403 * src/reduce.c (reduce_grammar_tables): No longer disable the
3404 removal of useless rules via CPP but via `if (0)', so that the
3405 compiler still check the code is valid.
3406 For instance, it should have noticed `rline' no longer exists: use
3407 the `line' member of rule_t.
3408 * src/gram.c (dummy, rline): Remove, unused.
3409
3410 2001-12-05 Akim Demaille <akim@epita.fr>
3411
3412 * src/output.c (pack_vector): Use assert, not berror.
3413 * src/main.c (berror): Remove, unused.
3414
3415 2001-12-05 Akim Demaille <akim@epita.fr>
3416
3417 New experimental feature: if --verbose --trace output all the
3418 items of a state, not only its kernel.
3419
3420 * src/print.c (print_core): If `trace_flag', then invoke closure
3421 before outputting the items of the state (print_core is no longer
3422 a correct name them).
3423 (print_results): Invoke new_closure/free_closure if needed.
3424
3425 2001-12-05 Akim Demaille <akim@epita.fr>
3426
3427 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
3428 * src/closure.c, src/closure.h (itemsetsize): Rename as...
3429 (nitemset): for consistency with the rest of the project.
3430
3431 2001-12-05 Akim Demaille <akim@epita.fr>
3432
3433 * src/closure.c (print_closure): Improve.
3434 (closure): Use it for printing input and output.
3435
3436 2001-12-05 Akim Demaille <akim@epita.fr>
3437
3438 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
3439 indexed by nonterminals.
3440
3441 2001-12-05 Akim Demaille <akim@epita.fr>
3442
3443 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
3444 what it was!).
3445 * src/warshall.h: Remove accidental duplication of the content.
3446
3447 2001-12-05 Akim Demaille <akim@epita.fr>
3448
3449 * src/closure.c (set_fderives): De-obfuscate.
3450
3451 2001-12-05 Akim Demaille <akim@epita.fr>
3452
3453 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
3454
3455 2001-12-05 Akim Demaille <akim@epita.fr>
3456
3457 * src/closure.c (set_firsts): De-obfuscate.
3458
3459 2001-12-05 Akim Demaille <akim@epita.fr>
3460
3461 * src/output.c (action_row): De-obfuscate
3462 using the good o' techniques: arrays not pointers, variable
3463 locality, BITISSET, RESETBIT etc.
3464
3465 2001-12-05 Akim Demaille <akim@epita.fr>
3466
3467 Pessimize the code to simplify it: from now on, all the states
3468 have a valid SHIFTS, which NSHIFTS is possibly 0.
3469
3470 * src/LR0.c (shifts_new): Be global and move to..
3471 * src/state.c, src/state.h: here.
3472 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
3473 * src/print_graph: Adjust.
3474
3475 2001-12-05 Akim Demaille <akim@epita.fr>
3476
3477 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
3478 * src/conflicts.c: Use it.
3479 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
3480 incorrectly ``simplified''.
3481
3482 2001-12-05 Akim Demaille <akim@epita.fr>
3483
3484 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
3485 using the good o' techniques: arrays not pointers, variable
3486 locality, BITISSET, RESETBIT etc.
3487
3488 2001-12-05 Akim Demaille <akim@epita.fr>
3489
3490 * src/state.h (SHIFT_SYMBOL): New.
3491 * src/conflicts.c: Use it to deobfuscate.
3492
3493 2001-12-05 Akim Demaille <akim@epita.fr>
3494
3495 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
3496 (print_reductions): De-obfuscate using the good o' techniques:
3497 arrays not pointers, variable locality, BITISSET.
3498
3499 2001-12-05 Akim Demaille <akim@epita.fr>
3500
3501 * src/conflicts.c (print_reductions): Arrays, not pointers.
3502 Use BITISSET.
3503
3504 2001-12-05 Akim Demaille <akim@epita.fr>
3505
3506 * src/conflicts.c (print_reductions): Pessimize, but clarify.
3507
3508 2001-12-05 Akim Demaille <akim@epita.fr>
3509
3510 * src/conflicts.c (print_reductions): Improve variable locality.
3511
3512 2001-12-05 Akim Demaille <akim@epita.fr>
3513
3514 * src/conflicts.c (print_reductions): Pessimize, but clarify.
3515
3516 2001-12-05 Akim Demaille <akim@epita.fr>
3517
3518 * src/conflicts.c (print_reductions): Improve variable locality.
3519
3520 2001-12-05 Akim Demaille <akim@epita.fr>
3521
3522 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
3523 * src/lalr.c: Use them.
3524
3525 2001-12-05 Akim Demaille <akim@epita.fr>
3526
3527 * src/LR0.c (augment_automaton): Formatting changes.
3528 Better variable locality.
3529
3530 2001-12-05 Akim Demaille <akim@epita.fr>
3531
3532 * src/lalr.c (matrix_print): New.
3533 (transpose): Use it.
3534 Use arrays instead of pointers.
3535
3536 2001-12-05 Akim Demaille <akim@epita.fr>
3537
3538 * src/lalr.c (maxrhs): Move to...
3539 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
3540 * src/lalr.c (build_relations): Adjust.
3541
3542 2001-12-05 Akim Demaille <akim@epita.fr>
3543
3544 * src/lalr.c (transpose): Free the memory allocated to the
3545 argument, as it is replaced by the results by the unique caller.
3546 (build_relations): Merely invoke transpose: it handles the memory
3547 deallocation.
3548 Improve variable locality.
3549 Avoid variables used as mere abbreviations.
3550 (compute_lookaheads): Use arrays instead of pointers.
3551
3552 2001-12-05 Akim Demaille <akim@epita.fr>
3553
3554 * src/lalr.c (initialize_F): Improve variable locality.
3555 Avoid variables used as mere abbreviations.
3556
3557 2001-12-05 Akim Demaille <akim@epita.fr>
3558
3559 * src/derives.c (print_derives): Display the ruleno.
3560 * src/lalr.c (initialize_F, transpose): Better variable locality
3561 to improve readability.
3562 Avoid variables used as mere abbreviations.
3563
3564 2001-12-05 Akim Demaille <akim@epita.fr>
3565
3566 * src/lalr.c (traverse): Use arrays instead of pointers.
3567
3568 2001-12-05 Akim Demaille <akim@epita.fr>
3569
3570 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
3571 the handling of squeue.
3572 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
3573
3574 2001-12-05 Akim Demaille <akim@epita.fr>
3575
3576 Because useless nonterminals are now kept alive (instead of being
3577 `destroyed'), we now sometimes examine them, and store information
3578 related to them. Hence we need to know their number, and adjust
3579 memory allocations.
3580
3581 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
3582 static.
3583 * src/LR0.c (allocate_itemsets): The memory allocated to
3584 `symbol_count' was used for two different purpose: once to count
3585 the number of occurrences of each symbol, and later reassigned to
3586 `shift_symbol', containing the symbol that can be shifted from a
3587 given state.
3588 Deobfuscate, i.e., allocate, use and free `symbol_count' here
3589 only, and...
3590 (new_itemsets): Allocate `shift_symbol' here.
3591 (allocate_itemsets): symbol_count includes useless nonterminals.
3592 Make room for them.
3593 (free_storage): Use `free', not `XFREE', for pointers that cannot
3594 be null.
3595
3596 2001-12-05 Akim Demaille <akim@epita.fr>
3597
3598 * src/nullable.c (set_nullable): Deobfuscate the handling of
3599 ritem.
3600 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
3601
3602 2001-12-05 Akim Demaille <akim@epita.fr>
3603
3604 * src/gram.c, src/gram.h (ritem_print): New.
3605 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
3606 (This useless function was defined only to work around VMS linkers
3607 that can't handle compilation units with variables only).
3608 * src/reduce.c (dump_grammar): Use it to trace the construction of
3609 ritem.
3610
3611 2001-12-04 Paul Eggert <eggert@twinsun.com>
3612
3613 * src/bison.simple (union yyalloc): Change member names
3614 to be the same as the stack names.
3615 (yyparse): yyptr is now union yyalloc *, not char *.
3616 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
3617 and may generate better code on some machines.
3618 (yystpcpy): Use prototype if __STDC__ is defined, not just
3619 if __cplusplus is defined.
3620
3621 2001-11-30 Akim Demaille <akim@epita.fr>
3622
3623 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
3624 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
3625 Gettext doesn't compile cleanly, and dies with -Werror.
3626 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
3627 Include WARNING_CFLAGS here.
3628 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
3629 before being defined.
3630
3631 2001-11-27 Paul Eggert <eggert@twinsun.com>
3632
3633 * lib/quotearg.h (quotearg_n, quotearg_n_style):
3634 First arg is int, not unsigned.
3635 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
3636 (SIZE_MAX, UINT_MAX): New macros.
3637 (quotearg_n_options): Abort if N is negative.
3638 Avoid overflow check on hosts where size_t is 64 bits and int
3639 is 32 bits, as overflow is impossible there.
3640 Fix off-by-one typo that caused unnecessary reallocation.
3641
3642 2001-11-29 Paul Eggert <eggert@twinsun.com>
3643
3644 Name space cleanup in generated parser.
3645
3646 * doc/bison.texinfo (Bison Parser): Discuss system headers
3647 and their effect on the user name space.
3648
3649 * src/bison.simple:
3650 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
3651 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
3652 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
3653
3654 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
3655 on user names when possible.
3656
3657 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
3658 Simplify test for whather <alloca.h> exists.
3659
3660 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
3661
3662 (<stdio.h>): Include if YYDEBUG.
3663
3664 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
3665 ! defined (yyoverflow) && ! defined (yymemcpy).
3666
3667 (yymemcpy, yyparse): Rename local variables as needed so that
3668 they all begin with 'yy'.
3669
3670 (yystrlen, yystpcpy): New functions.
3671
3672 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
3673 All uses changed.
3674
3675 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
3676 instead of relying on string.h functions. Use YYSTACK_ALLOC
3677 and YYSTACK_FREE instead of malloc and free.
3678
3679 2001-11-30 Akim Demaille <akim@epita.fr>
3680
3681 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
3682 before their first uses.
3683 (YYBISON, YYPURE): Move to the top of the output.
3684
3685 2001-11-30 Akim Demaille <akim@epita.fr>
3686
3687 * tests/reduce.at (Useless Nonterminals): Fix.
3688
3689 2001-11-30 Akim Demaille <akim@epita.fr>
3690
3691 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
3692 if body instead of `;' to pacify GCC's warnings.
3693
3694 2001-11-30 Akim Demaille <akim@epita.fr>
3695
3696 Instead of mapping the LHS of unused rules to -1, keep the LHS
3697 valid, but flag the rules as invalid.
3698
3699 * src/gram.h (rule_t): `useful' is a new member.
3700 * src/print.c (print_grammar): Adjust.
3701 * src/derives.c (set_derives): Likewise.
3702 * src/reader.c (packgram, reduce_output): Likewise.
3703 * src/reduce.c (reduce_grammar_tables): Likewise.
3704 * tests/reduce.at (Underivable Rules, Useless Rules): New.
3705
3706 2001-11-30 Akim Demaille <akim@epita.fr>
3707
3708 * src/reduce.c (reduce_output): Formatting changes.
3709 * src/print.c (print_results, print_grammar): Likewise.
3710 * tests/regression.at (Rule Line Numbers)
3711 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
3712
3713 2001-11-30 Akim Demaille <akim@epita.fr>
3714
3715 * src/reduce.c (nonterminals_reduce): Instead of throwing away
3716 useless nonterminals, move them at the end of the symbol arrays.
3717 (reduce_output): Adjust.
3718 * tests/reduce.at (Useless Nonterminals): Adjust.
3719
3720 2001-11-30 Akim Demaille <akim@epita.fr>
3721
3722 * src/reduce.c: Various comment/formatting changes.
3723 (nonterminals_reduce): New, extracted from...
3724 (reduce_grammar_tables): here.
3725 (reduce_grammar): Call nonterminals_reduce.
3726
3727 2001-11-29 Paul Eggert <eggert@twinsun.com>
3728
3729 * src/bison.simple (YYSTACK_REALLOC): Remove.
3730 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
3731 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
3732 New macros.
3733 (union yyalloc): New type.
3734 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
3735 an arbitrary restriction on hosts where size_t is wider than int.
3736
3737 (yyparse): Don't dump core if alloca or malloc fails; instead, report
3738 a parser stack overflow. Allocate just one block of memory for all
3739 three stacks, instead of allocating three blocks; this typically is
3740 faster and reduces fragmentation.
3741
3742 Do not limit the number of items in the stack to a value that fits
3743 in 'int', as this is an arbitrary limit on hosts with 64-bit
3744 size_t and 32-bit int.
3745
3746 2001-11-29 Marc Autret <autret_m@epita.fr>
3747
3748 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
3749 of defining YYERROR_VERBOSE.
3750 [AT_DATA]: $4 is now out of C declarations in the prologue.
3751
3752 2001-11-28 Marc Autret <autret_m@epita.fr>
3753
3754 * src/reader.c (parse_dquoted_param): New.
3755 (parse_skel_decl): Use it.
3756 * src/lex.h: Add its prototype.
3757 * src/lex.c (literalchar): Become not static.
3758
3759 2001-11-28 Marc Autret <autret_m@epita.fr>
3760
3761 * src/output.h: And put its extern declaration here.
3762 * src/output.c (error_verbose): Define here.
3763 (prepare): Echo name modification.
3764 * src/getargs.h: Clean its extern declaration.
3765 * src/getargs.c (error_verbose_flag): Remove.
3766 (getargs): Remove case 'e'.
3767 * src/options.c (option_table): 'error-verbose' is now seen as simple
3768 percent option.
3769 Include output.h.
3770
3771 * src/reader.c (read_declarations): Remove case tok_include.
3772 (parse_include_decl): Remove.
3773 * src/lex.h (token_t): Remove tok_include.
3774 * src/options.c (option_table): 'include' is now a simple command line
3775 option.
3776
3777 2001-11-28 Marc Autret <autret_m@epita.fr>
3778
3779 * src/bison.simple: Adjust muscle names.
3780 * src/muscle_tab.c (muscle_init): Also rename the muscles.
3781 * src/output.c (prepare): s/_/-/ for the muscles names.
3782 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
3783
3784 2001-11-28 Marc Autret <autret_m@epita.fr>
3785
3786 * src/bison.simple: Fix debug.
3787 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
3788
3789 2001-11-28 Akim Demaille <akim@epita.fr>
3790
3791 * src/LR0.c (shifts_new): New.
3792 (save_shifts, insert_start_shift, augment_automaton): Use it.
3793
3794 2001-11-28 Akim Demaille <akim@epita.fr>
3795
3796 * src/closure.c (closure): `b' and `ruleno' denote the same value:
3797 keep ruleno only.
3798
3799 2001-11-28 Akim Demaille <akim@epita.fr>
3800
3801 * src/closure.c (closure): Instead of looping over word in array
3802 then bits in words, loop over bits in array.
3803
3804 2001-11-28 Akim Demaille <akim@epita.fr>
3805
3806 * src/closure.c (closure): No longer optimize the special case
3807 where all the bits of `ruleset[r]' are set to 0, to make the code
3808 clearer.
3809
3810 2001-11-28 Akim Demaille <akim@epita.fr>
3811
3812 * src/closure.c (closure): `r' and `c' are new variables, used to
3813 de-obfuscate accesses to RULESET and CORE.
3814
3815 2001-11-28 Akim Demaille <akim@epita.fr>
3816
3817 * src/reduce.c (reduce_print): Use ngettext.
3818 (dump_grammar): Improve the trace accuracy.
3819
3820 2001-11-28 Akim Demaille <akim@epita.fr>
3821
3822 * src/reduce.c (dump_grammar): Don't translate trace messages.
3823
3824 2001-11-28 Akim Demaille <akim@epita.fr>
3825
3826 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
3827 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
3828 as all tags are free'ed afterwards.
3829 From Enrico Scholz.
3830
3831 2001-11-27 Paul Eggert <eggert@twinsun.com>
3832
3833 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
3834 use alloca when we didn't want to, and vice versa.
3835
3836 2001-11-27 Marc Autret <autret_m@epita.fr>
3837
3838 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
3839 initialization.
3840 * src/output.c (prepare): Remove its update.
3841
3842 2001-11-27 Marc Autret <autret_m@epita.fr>
3843
3844 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
3845 Use %error-verbose.
3846
3847 2001-11-27 Marc Autret <autret_m@epita.fr>
3848
3849 * src/bison.simple: Remove YYERROR_VERBOSE using.
3850 Use %%error_verbose.
3851 (yyparse): Likewise.
3852 * src/output.c (prepare): Give its final value.
3853 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
3854 * src/getargs.h: Add its extern declaration.
3855 * src/getargs.c (error_verbose_flag): New int.
3856 (getargs): Update to catch new case.
3857 * src/options.c (option_table): 'error-verbose' is a new option.
3858 (shortopts): Update.
3859
3860 2001-11-27 Akim Demaille <akim@epita.fr>
3861
3862 * src/system.h: Use intl/libgettext.h.
3863 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
3864
3865 2001-11-27 Akim Demaille <akim@epita.fr>
3866
3867 * tests/torture.at (Exploding the Stack Size with Malloc):
3868 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
3869
3870 2001-11-27 Akim Demaille <akim@epita.fr>
3871
3872 * src/files.c: Include error.h.
3873 Reported by Hans Aberg.
3874
3875 2001-11-26 Marc Autret <autret_m@epita.fr>
3876
3877 * src/reader.c (parse_include_decl): New, not yet implemented.
3878 (read_declarations): Add case tok_include.
3879 * src/getargs.h (include): Add its extern definition.
3880 * src/getargs.c (include): New const char *.
3881 (getargs): Add case '-I'.
3882 * src/options.c (option_table): Add include as command line and
3883 percent option.
3884 * src/lex.h (token_t): Add tok_include.
3885
3886 2001-11-26 Akim Demaille <akim@epita.fr>
3887
3888 * src/reader.c (readgram): Make sure rules for mid-rule actions
3889 have a lineno equal to that of their host rule.
3890 Reported by Hans Aberg.
3891 * tests/regression.at (Rule Line Numbers): New.
3892
3893 2001-11-26 Akim Demaille <akim@epita.fr>
3894
3895 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
3896 size_ts.
3897
3898 2001-11-26 Akim Demaille <akim@epita.fr>
3899
3900 * src/complain.c, src/complain.h (error): Remove, provided by
3901 lib/error.[ch].
3902
3903 2001-11-26 Akim Demaille <akim@epita.fr>
3904
3905 * src/reader.c (read_declarations): Don't abort on tok_illegal,
3906 issue an error message.
3907 * tests/regression.at (Invalid %directive): New.
3908 Reported by Hans Aberg.
3909
3910 2001-11-26 Akim Demaille <akim@epita.fr>
3911
3912 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
3913 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
3914
3915 2001-11-26 Akim Demaille <akim@epita.fr>
3916
3917 * src/conflicts.c (conflicts_print): Don't complain at all when
3918 there are no reduce/reduce conflicts, and as many shift/reduce
3919 conflicts as expected.
3920 * tests/regression.at (%expect right): Adjust.
3921
3922 2001-11-23 Akim Demaille <akim@epita.fr>
3923
3924 * lib/alloca.c: Update, from fileutils.
3925
3926 2001-11-23 Akim Demaille <akim@epita.fr>
3927
3928 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
3929
3930 2001-11-23 Akim Demaille <akim@epita.fr>
3931
3932 * src/system.h: Include alloca.h.
3933 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
3934
3935 2001-11-23 Akim Demaille <akim@epita.fr>
3936
3937 * src/print_graph.c (print_actions): Remove `rule', unused.
3938 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
3939 pacify GCC's signed < unsigned warnings.
3940 * src/closure.c (itemsetsize): Likewise.
3941 * src/reader.c (symbol_list_new): Static.
3942
3943 2001-11-23 Akim Demaille <akim@epita.fr>
3944
3945 Attaching lineno to buckets is stupid, since only one copy of each
3946 symbol is kept, only the line of the first occurrence is kept too.
3947
3948 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
3949 * src/reader.c (rline_allocated): Remove, unused.
3950 (symbol_list): Have a `line' member.
3951 (symbol_list_new): New.
3952 (readgram): Use it.
3953 * src/print.c (print_grammar): Output the rule line numbers.
3954 * tests/regression.at (Solved SR Conflicts)
3955 (Unresolved SR Conflicts): Adjust.
3956 Reported by Hans Aberg.
3957
3958 2001-11-22 Marc Autret <autret_m@epita.fr>
3959
3960 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
3961
3962 2001-11-22 Marc Autret <autret_m@epita.fr>
3963
3964 * src/muscle_tab.c (muscle_init): Remove initialization of
3965 skeleton muscle.
3966 * src/output.c (output_master_parser): Do it here.
3967
3968 2001-11-20 Akim Demaille <akim@epita.fr>
3969
3970 * po/sv.po: New.
3971 * configure.in (ALL_LINGUAS): Adjust.
3972 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
3973 longer contains strings to translate.
3974
3975 2001-11-19 Akim Demaille <akim@epita.fr>
3976
3977 * src/conflicts.c (conflicts_print): Add a missing \n.
3978
3979 2001-11-19 Akim Demaille <akim@epita.fr>
3980
3981 * src/nullable.c (nullable_print): New.
3982 (set_nullable): Call it when tracing.
3983 Better locality of variables.
3984
3985 2001-11-19 Akim Demaille <akim@epita.fr>
3986
3987 * src/print.c (print_actions): Better locality of variables.
3988
3989 2001-11-19 Akim Demaille <akim@epita.fr>
3990
3991 * src/derives.c (print_derives): Fix and enrich.
3992 * src/closure.c (print_fderives): Likewise.
3993
3994 2001-11-19 Akim Demaille <akim@epita.fr>
3995
3996 * src/closure.c (itemsetend): Remove, replaced with...
3997 (itemsetsize): new.
3998
3999 2001-11-19 Akim Demaille <akim@epita.fr>
4000
4001 * src/LR0.c (kernel_end): Remove, replaced with...
4002 (kernel_size): new.
4003
4004 2001-11-19 Akim Demaille <akim@epita.fr>
4005
4006 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
4007 to clarify.
4008
4009 2001-11-19 Akim Demaille <akim@epita.fr>
4010
4011 * src/closure.c (closure): Use arrays instead of pointers to clarify.
4012
4013 2001-11-19 Akim Demaille <akim@epita.fr>
4014
4015 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
4016 trace messages.
4017 * src/LR0.c: Likewise.
4018 (allocate_itemsets): Use arrays instead of pointers to clarify.
4019
4020 2001-11-19 Akim Demaille <akim@epita.fr>
4021
4022 * src/getargs.c (statistics_flag): Replace with...
4023 (trace_flag): New.
4024 (longopts): Accept --trace instead of --statistics.
4025 * src/getargs.h, src/options.c: Adjust.
4026 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
4027 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
4028
4029 2001-11-19 Akim Demaille <akim@epita.fr>
4030
4031 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
4032 pointers to clarify the code.
4033 (save_reductions, save_shifts): Factor common parts of alternatives.
4034
4035 2001-11-19 Akim Demaille <akim@epita.fr>
4036
4037 * src/LR0.c (new_state, get_state): Complete TRACE code.
4038 * src/closure.c: Include `reader.h' to get `tags', needed by the
4039 trace code.
4040 Rename the conditional DEBUG as TRACE.
4041 Output consistently TRACEs to stderr, not stdout.
4042 * src/derives.c: Likewise.
4043 * src/reduce.c: (inaccessable_symbols): Using if is better style
4044 than goto.
4045 Use `#if TRACE' instead of `#if 0' for tracing code.
4046
4047 2001-11-19 Akim Demaille <akim@epita.fr>
4048
4049 * src/system.h (LIST_FREE, shortcpy): New.
4050 * src/LR0.c: Use them.
4051 * src/output.c (free_itemsets, free_reductions, free_shifts):
4052 Remove, replaced by LIST_FREE.
4053
4054 2001-11-19 Akim Demaille <akim@epita.fr>
4055
4056 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
4057 (REDUCTIONS_ALLOC): New.
4058 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
4059 allocation.
4060
4061 2001-11-19 Akim Demaille <akim@epita.fr>
4062
4063 * src/LR0.c (new_state): Complete trace code.
4064 * src/nullable.c (set_nullable): Don't translate traces.
4065
4066 2001-11-19 Akim Demaille <akim@epita.fr>
4067
4068 * src/print_graph.c (print_core): Better locality of variables.
4069 * src/print.c (print_core): Likewise.
4070
4071 2001-11-19 Akim Demaille <akim@epita.fr>
4072
4073 * src/vcg.c: You do the output, so you are responsible of the
4074 handling of VCG syntax, in particular: use quotearg.
4075 * src/print_graph.c: Don't.
4076 (print_actions): Don't output the actions as part of the nodes,
4077 since that's the job of the edges.
4078 (print_state): Don't output by hand: fill the node description,
4079 and ask for its output.
4080
4081 2001-11-19 Akim Demaille <akim@epita.fr>
4082
4083 * src/bison.simple (yyparse): When verbosely reporting an error,
4084 no longer put additional quotes around token names.
4085 * tests/calc.at: Adjust.
4086
4087 2001-11-19 Akim Demaille <akim@epita.fr>
4088
4089 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
4090 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
4091 * src/output.c: Adjust.
4092
4093 2001-11-19 Akim Demaille <akim@epita.fr>
4094
4095 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
4096 (rule_t): this.
4097 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
4098
4099 2001-11-19 Akim Demaille <akim@epita.fr>
4100
4101 * src/gram.h (rule_t): New.
4102 (rule_table): New.
4103 (rrhs, rlhs): Remove, part of state_t.
4104 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
4105 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
4106 * src/reader.c, src/reduce.c: Adjust.
4107
4108 2001-11-19 Akim Demaille <akim@epita.fr>
4109
4110 * src/reader.c (symbols_output): New, extracted from...
4111 (packsymbols): Here.
4112 (reader): Call it.
4113
4114 2001-11-19 Akim Demaille <akim@epita.fr>
4115
4116 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
4117 (maxrhs): this new function.
4118
4119 2001-11-19 Akim Demaille <akim@epita.fr>
4120
4121 * src/lalr.c (F): New macro to access the variable F.
4122 Adjust.
4123
4124 2001-11-19 Akim Demaille <akim@epita.fr>
4125
4126 * src/lalr.h (LA): New macro to access the variable LA.
4127 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4128 * src/lalr.c: Adjust.
4129
4130 2001-11-19 Akim Demaille <akim@epita.fr>
4131
4132 * src/lalr.c (initialize_LA): Only initialize LA. Let...
4133 (set_state_table): handle the `lookaheads' members.
4134
4135 2001-11-19 Akim Demaille <akim@epita.fr>
4136
4137 * src/lalr.h (lookaheads): Removed array, whose contents is now
4138 a member of...
4139 (state_t): this structure.
4140 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4141 Adjust.
4142
4143 2001-11-19 Akim Demaille <akim@epita.fr>
4144
4145 * src/lalr.h (consistent): Removed array, whose contents is now
4146 a member of...
4147 (state_t): this structure.
4148 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4149 Adjust.
4150
4151 2001-11-19 Akim Demaille <akim@epita.fr>
4152
4153 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
4154 contents are now members of...
4155 (state_t): this structure.
4156 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
4157 Adjust.
4158
4159 2001-11-19 Akim Demaille <akim@epita.fr>
4160
4161 * src/lalr.h (state_t): New.
4162 (state_table): Be a state_t * instead of a core **.
4163 (accessing_symbol): Remove, part of state_t.
4164 * src/lalr.c: Adjust.
4165 (set_accessing_symbol): Merge into...
4166 (set_state_table): this.
4167 * src/print_graph.c, src/conflicts.c: Adjust.
4168
4169 2001-11-14 Akim Demaille <akim@epita.fr>
4170
4171 * tests/calc.at, tests/output.at, tests/regression.at,
4172 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
4173 now the tests are run in private dirs, therefore AC_CLEANUP and
4174 family can be simplified to 0-ary.
4175 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
4176 use abs. path to find config.h.
4177 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
4178 stderr, there can be way too much random noise.
4179 Instead pass -Werror to GCC and rely on the exit status.
4180 Reported by Wolfram Wagner.
4181
4182 2001-11-14 Akim Demaille <akim@epita.fr>
4183
4184 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
4185 defined only if yyoverflow is defined, to avoid `warning: unused
4186 variable `yyvs1''.
4187 Reported by The Test Suite.
4188
4189 2001-11-14 Akim Demaille <akim@epita.fr>
4190
4191 * src/print.c: Include reduce.h.
4192 Reported by Hans Aberg.
4193
4194 2001-11-14 Akim Demaille <akim@epita.fr>
4195
4196 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
4197 Revert a previous patch: these are really const.
4198 * src/conflicts.c (conflict_report): Additional useless pair of
4199 braces to pacify GCC's warnings for `if () if () {} else {}'.
4200 * src/lex.c (parse_percent_token): Replace equal_offset with
4201 arg_offset.
4202 arg is const.
4203 Be sure to strdup `arg' when used, since there is no reason for
4204 token_buffer not to change.
4205
4206 2001-11-14 Akim Demaille <akim@epita.fr>
4207
4208 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
4209 definition.
4210 * src/main.c (main): Use them.
4211 Suggested by Hans Aberg.
4212
4213 2001-11-12 Akim Demaille <akim@epita.fr>
4214
4215 * src/system.h (ngettext): Now that we use ngettext, be sure to
4216 provide a default definition when NLS are not used.
4217
4218 2001-11-12 Akim Demaille <akim@epita.fr>
4219
4220 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
4221 Use @kbd to denote user input.
4222 (Language and Grammar): ANSIfy the example.
4223 Adjust its layout for info/notinfo.
4224 (Location Tracking Calc): Output error messages to stderr.
4225 Output locations in a more GNUtically correct way.
4226 Fix a couple of Englishos.
4227 Adjust @group/@end group pairs.
4228
4229 2001-11-12 Akim Demaille <akim@epita.fr>
4230
4231 %expext was not functioning at all.
4232
4233 * src/conflicts.c (expected_conflicts): Set to -1.
4234 (conflict_report): Use ngettext.
4235 (conflicts_print): Check %expect and make its violation an error.
4236 * doc/bison.texinfo (Expect Decl): Adjust.
4237 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
4238 * tests/regression.at (%expect not enough, %expect right)
4239 (%expect too much): New.
4240
4241 2001-11-12 Akim Demaille <akim@epita.fr>
4242
4243 * tests/regression.at (Conflicts): Rename as...
4244 (Unresolved SR Conflicts): this.
4245 (Solved SR Conflicts): New.
4246
4247 2001-11-12 Akim Demaille <akim@epita.fr>
4248
4249 * src/reduce.c (print_results): Rename as...
4250 (reduce_output): This.
4251 Output to OUT, passed as argument, instead of output_obstack.
4252 (dump_grammar): Likewise.
4253 (reduce_free): New.
4254 Also free V1.
4255 (reduce_grammar): No longer call reduce_output, since...
4256 * src/print.c (print_results): do it.
4257 * src/main.c (main): Call reduce_free;
4258
4259 2001-11-12 Akim Demaille <akim@epita.fr>
4260
4261 * src/conflicts.c (print_reductions): Accept OUT as argument.
4262 Output to it, not to output_obstack.
4263 * src/print.c (print_actions): Adjust.
4264
4265 2001-11-12 Akim Demaille <akim@epita.fr>
4266
4267 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
4268 the result instead of using...
4269 (src_total, rrc_total, src_count, rrc_count): Remove.
4270 (any_conflicts): Remove.
4271 (print_conflicts): Split into...
4272 (conflicts_print, conflicts_output): New.
4273 * src/conflicts.h: Adjust.
4274 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
4275 * src/print.c (print_grammar): Issue `\n' between two rules.
4276 * tests/regression.at (Conflicts): New.
4277 Reported by Tom Lane.
4278
4279 2001-11-12 Akim Demaille <akim@epita.fr>
4280
4281 * tests/regression.at (Invalid input): Remove, duplicate with
4282 ``Invalid input: 1''.
4283
4284 2001-11-12 Akim Demaille <akim@epita.fr>
4285
4286 * tests/torture.at (AT_DATA_STACK_TORTURE)
4287 (Exploding the Stack Size with Alloca)
4288 (Exploding the Stack Size with Malloc): New.
4289
4290 2001-11-12 Akim Demaille <akim@epita.fr>
4291
4292 * src/bison.simple (YYSTACK_REALLOC): New.
4293 (yyparse) [!yyoverflow]: Use it and free the old stack.
4294 Reported by Per Allansson.
4295
4296 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
4297
4298 * src/bison.simple: Define type yystype instead of YYSTYPE, and
4299 define CPP macro, which substitute YYSTYPE by yystype.
4300 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
4301 with yyltype/YYLTYPE. This allows inclusion of the generated
4302 header within the parser if the compiler, such as GGC, accepts
4303 multiple equivalent #defines.
4304 From Akim.
4305
4306 2001-11-05 Akim Demaille <akim@epita.fr>
4307
4308 * src/reader.c (symbols_output): New, extracted from...
4309 (packsymbols): here.
4310 (reader): Adjust.
4311
4312 2001-11-05 Akim Demaille <akim@epita.fr>
4313
4314 * src/lex.c (parse_percent_token): s/quotearg/quote/.
4315
4316 2001-11-05 Akim Demaille <akim@epita.fr>
4317
4318 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
4319 pattern.
4320
4321 2001-11-05 Akim Demaille <akim@epita.fr>
4322
4323 * src/options.h (struct option_table_struct): set_flags is void*.
4324 * src/options.c (longopts): Support `--output' and `%output'.
4325 (usage): Adjust.
4326 * src/lex.h (tok_setopt): Remove, replaced with...
4327 (tok_intopt, tok_stropt): these new guys.
4328 * src/lex.c (getopt.h): Not needed.
4329 (token_buffer, unlexed_token_buffer): Not const.
4330 (percent_table): Promote `-' over `_' in directive names.
4331 Active `%name-prefix', `file-prefix', and `output'.
4332 (parse_percent_token): Accept possible arguments to directives.
4333 Promote `-' over `_' in directive names.
4334
4335 2001-11-04 Akim Demaille <akim@epita.fr>
4336
4337 * doc/bison.texinfo (Decl Summary): Split the list into
4338 `directives for grammars' and `directives for bison'.
4339 Sort'em.
4340 Add description of `%name-prefix', `file-prefix', and `output'.
4341 Promote `-' over `_' in directive names.
4342 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
4343 Simplify the description of `--name-prefix'.
4344 Promote `-' over `_' in directive names.
4345 Promote `--output' over `--output-file'.
4346 Fix the description of `--defines'.
4347 * tests/output.at: Exercise %file-prefix and %output.
4348
4349 2001-11-02 Akim Demaille <akim@epita.fr>
4350
4351 * doc/refcard.tex: Update.
4352
4353 2001-11-02 Akim Demaille <akim@epita.fr>
4354
4355 * src/symtab.h (SUNDEF): New.
4356 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
4357 stand for `uninitialized', instead of 0.
4358 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
4359 * src/lex.c (lex): Adjust.
4360
4361 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
4362 Number it 0.
4363 Let yylex return it instead of a plain 0.
4364 Reported by Dick Streefland.
4365
4366 2001-11-02 Akim Demaille <akim@epita.fr>
4367
4368 * tests/regression.at (Mixing %token styles): New test.
4369
4370 2001-11-02 Akim Demaille <akim@epita.fr>
4371
4372 * src/reader.c (parse_thong_decl): Formatting changes.
4373 (token_translations_init): New, extracted from...
4374 (packsymbols): Here.
4375 Adjust.
4376
4377 2001-11-01 Akim Demaille <akim@epita.fr>
4378
4379 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
4380 Check that `9foo.y' produces correct cpp guards.
4381 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
4382 guards.
4383 Reported by Wwp.
4384
4385 2001-11-01 Akim Demaille <akim@epita.fr>
4386
4387 * tests/regression.at (Invalid input: 2): New.
4388 * src/lex.c (unlexed_token_buffer): New.
4389 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
4390 too.
4391 Reported by Wwp.
4392
4393 2001-11-01 Akim Demaille <akim@epita.fr>
4394
4395 * tests/calc.at: Catch up with 1.30.
4396 * configure.in: Bump to 1.49a.
4397 Adjust to newer Autotest.
4398
4399 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
4400
4401 * src/conflicts.c: Move global variables rrc_total and src_total ...
4402 (print_conflicts): here.
4403 * src/output.c (output): Free global variable user_toknums.
4404 * src/lex.c (token_obstack): Become static.
4405
4406 2001-10-18 Akim Demaille <akim@epita.fr>
4407
4408 * tests/atlocal.in (GCC): Add.
4409 * tests/calc.at: s/m4_match/m4_bmatch/.
4410 s/m4_patsubst/m4_bpatsubst/.
4411 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
4412 * configure.in: AC_SUBST(GCC).
4413
4414 2001-10-14 Marc Autret <autret_m@epita.fr>
4415
4416 * src/options.c (create_long_option_table): Fix.
4417
4418 2001-10-10 Akim Demaille <akim@epita.fr>
4419
4420 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
4421
4422 2001-10-04 Akim Demaille <akim@epita.fr>
4423
4424 * src/reader.c (parse_union_decl): Push the caracters in
4425 union_obstack, not attrs_obstack.
4426
4427 2001-10-04 Akim Demaille <akim@epita.fr>
4428
4429 Merge in the branch 1.29.
4430
4431 * src/reader.c (packsymbols): Use a temporary obstack for
4432 `%%tokendef', since output_stack is already used elsewhere.
4433
4434 2001-10-02 Akim Demaille <akim@epita.fr>
4435
4436 Bump 1.29d.
4437
4438 2001-10-02 Akim Demaille <akim@epita.fr>
4439
4440 Version 1.29c.
4441
4442 2001-10-02 Akim Demaille <akim@epita.fr>
4443
4444 * tests/regression.at (Invalid CPP headers): New.
4445 From Alexander Belopolsky.
4446 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
4447
4448 2001-10-02 Akim Demaille <akim@epita.fr>
4449
4450 * tests/regression.at (Invalid input): New.
4451 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
4452 Reported by Shura.
4453
4454 2001-10-02 Akim Demaille <akim@epita.fr>
4455
4456 * tests/calc.at: Now that --debug works, the tests must be adjusted.
4457
4458 2001-10-02 Akim Demaille <akim@epita.fr>
4459
4460 * src/output.c (output_parser): Assert `skeleton'.
4461 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
4462 systems.
4463 From Shura.
4464
4465 2001-10-01 Marc Autret <autret_m@epita.fr>
4466
4467 * src/lex.h: Echo modifications.
4468 * src/lex.c (unlex): Parameter is now token_t.
4469 From Hans Aberg.
4470
4471 2001-10-01 Marc Autret <autret_m@epita.fr>
4472
4473 * src/main.c: Include lex.h.
4474 From Hans Aberg.
4475
4476 2001-09-29 Akim Demaille <akim@epita.fr>
4477
4478 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
4479
4480 2001-09-28 Akim Demaille <akim@epita.fr>
4481
4482 * tests/testsuite.at: Update to newer Autotest.
4483 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
4484
4485 2001-09-27 Akim Demaille <akim@epita.fr>
4486
4487 Position independent wrapper.
4488
4489 * tests/bison: Remove.
4490 * tests/bison.in: New.
4491 * configure.in: Adjust.
4492
4493 2001-09-27 Paul Eggert <eggert@twinsun.com>
4494
4495 Port quotearg fixes from tar 1.13.24.
4496
4497 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
4498 tm to be declared.
4499 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
4500 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
4501
4502 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
4503 * m4/mbrtowc.m4: New file.
4504 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
4505 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
4506
4507 2001-09-27 Akim Demaille <akim@epita.fr>
4508
4509 Bump to 1.29c.
4510
4511 2001-09-27 Akim Demaille <akim@epita.fr>
4512
4513 Version 1.29b.
4514
4515 2001-09-25 Akim Demaille <akim@epita.fr>
4516
4517 * src/system.h: Include `xalloc.h'.
4518 Remove it from the C files.
4519 * src/files.c (output_files): Free the obstacks.
4520 * src/lex.c (init_lex): Rename as...
4521 (lex_init): this.
4522 (lex_free): New.
4523 * src/main.c (main): Use it.
4524
4525 2001-09-24 Marc Autret <autret_m@epita.fr>
4526
4527 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
4528 to output informations in fout (FILE*).
4529 (open_graph, close_graph): Likewise.
4530 (output_graph, output_edge, output_node): Likewise.
4531 * src/vcg.h: Update function prototypes.
4532 * src/print_graph.c (print_graph): Open output graph file.
4533 (print_actions): Adjust.
4534 * src/files.h: Remove extern declaration.
4535 * src/files.c: Remove graph_obstack declaration.
4536 (open_files): Remove graph_obstack initialization.
4537 (output_files): Remove graph_obstack saving.
4538
4539 2001-09-24 Marc Autret <autret_m@epita.fr>
4540
4541 * src/files.c (compute_output_file_names): Fix.
4542
4543 2001-09-24 Marc Autret <autret_m@epita.fr>,
4544 Akim Demaille <akim@epita.fr>
4545
4546 * src/reader.c (reader): Remove call to free_symtab ().
4547 * src/main.c (main): Call it here.
4548 Include symtab.h.
4549 * src/conflicts.c (initialize_conflicts): Rename as...
4550 (solve_conflicts): this.
4551 * src/print.c (print_core, print_actions, print_state)
4552 (print_grammar): Dump to a file instead a `output_obstack'.
4553 (print_results): Dump `output_obstack', and then proceed with the
4554 FILE *.
4555 * src/files.c (compute_output_file_names, close_files): New.
4556 (output_files): Adjust.
4557 * src/main.c (main): Adjust.
4558
4559 2001-09-23 Marc Autret <autret_m@epita.fr>
4560
4561 * src/files.c (compute_header_macro): Computes header macro name
4562 from spec_defines_file when given.
4563
4564 2001-09-23 Marc Autret <autret_m@epita.fr>
4565
4566 * src/files.c (output_files): Add default extensions.
4567
4568 2001-09-22 Akim Demaille <akim@epita.fr>
4569
4570 * src/conflicts.c (finalize_conflicts): Rename as...
4571 (free_conflicts): this.
4572
4573 2001-09-22 Akim Demaille <akim@epita.fr>
4574
4575 * src/gram.c (gram_free): Rename back as...
4576 (dummy): this.
4577 (output_token_translations): Free `token_translations'.
4578 * src/symtab.c (free_symtab): Free the tag field.
4579
4580 2001-09-22 Akim Demaille <akim@epita.fr>
4581
4582 Remove `translations' as it is always set to true.
4583
4584 * src/gram.h: Adjust.
4585 * src/reader.c (packsymbols, parse_token_decl): Adjust
4586 * src/print.c (print_grammar): Adjust.
4587 * src/output.c (output_token_translations): Adjust.
4588 * src/lex.c (lex): Adjust.
4589 * src/gram.c: Be sure the set pointers to NULL.
4590 (dummy): Rename as...
4591 (gram_free): this.
4592
4593 2001-09-22 Akim Demaille <akim@epita.fr>
4594
4595 * configure.in: Invoke AM_LIB_DMALLOC.
4596 * src/system.h: Use dmalloc.
4597 * src/LR0.c: Be sure to have pointers initialized to NULL.
4598 (allocate_itemsets): Allocate kernel_items only if needed.
4599
4600 2001-09-22 Akim Demaille <akim@epita.fr>
4601
4602 * configure.in: Bump to 1.29b.
4603 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
4604 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
4605 need xmalloc.c in calc.y.
4606 From Pascal Bart.
4607
4608 2001-09-21 Akim Demaille <akim@epita.fr>
4609
4610 Version 1.29a.
4611 * Makefile.maint, config/config.guess, config/config.sub,
4612 * config/missing: Update from masters.
4613 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
4614 upon package.m4.
4615 * configure.in (ALL_LINGUAS): Add `tr'.
4616
4617 2001-09-21 Akim Demaille <akim@epita.fr>
4618
4619 * tests/Makefile.am (package.m4): Move to...
4620 ($(srcdir)/$(TESTSUITE)): here.
4621
4622 2001-09-20 Akim Demaille <akim@epita.fr>
4623
4624 * src/complain.c: No longer try to be standalone: use system.h.
4625 Don't assume __STDC__ is defined to 1. Just test if it is defined.
4626 * src/complain.h: Likewise.
4627 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
4628 Remove the unused variable `n'.
4629 From Albert Chin-A-Young.
4630
4631 2001-09-18 Marc Autret <autret_m@epita.fr>
4632
4633 * doc/bison.1: Update.
4634 * doc/bison.texinfo (Bison Options): Update --defines and --graph
4635 descriptions.
4636 (Option Cross Key): Update.
4637 Add --graph.
4638
4639 2001-09-18 Marc Autret <autret_m@epita.fr>
4640
4641 * tests/regression.at: New test (comment in %union).
4642
4643 2001-09-18 Marc Autret <autret_m@epita.fr>
4644
4645 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
4646 do that.
4647 Reported by Keith Browne.
4648
4649 2001-09-18 Marc Autret <autret_m@epita.fr>
4650
4651 * tests/output.at: Add tests for --defines and --graph.
4652
4653 2001-09-18 Marc Autret <autret_m@epita.fr>
4654
4655 * tests/output.at: Removes tests of %{header,src}_extension features.
4656
4657 2001-09-18 Akim Demaille <akim@epita.fr>
4658
4659 * tests/Makefile.am (package.m4): New.
4660 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
4661 (_AT_CHECK_CALC_ERROR): Likewise.
4662 Factor the `, ' part of verbose error messages.
4663
4664 2001-09-18 Marc Autret <autret_m@epita.fr>
4665
4666 * src/getargs.c (longopts): Declare --defines and --graph as options
4667 with optional arguments.
4668 * src/files.h: Add extern declarations.
4669 * src/files.c (spec_graph_file, spec_defines_file): New.
4670 (output_files): Update.
4671 Remove CPP-outed code.
4672
4673 2001-09-18 Marc Autret <autret_m@epita.fr>
4674
4675 Turn off %{source,header}_extension feature.
4676
4677 * src/files.c (compute_exts_from_gf): Update.
4678 (compute_exts_from_src): Update.
4679 (output_files): CPP-out useless code.
4680 * src/files.h: Remove {header,source}_extension extern declarations.
4681 * src/reader.c (parse_dquoted_param): CPP-out.
4682 (parse_header_extension_decl): Remove.
4683 (parse_source_extension_decl): Remove.
4684 (read_declarations): Remove cases tok_{hdrext,srcext}.
4685 * src/lex.c (percent_table): Remove {header,source}_extension entries.
4686 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
4687
4688 2001-09-10 Akim Demaille <akim@epita.fr>
4689
4690 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
4691 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
4692 (AT_CHECK_OUTPUT): this.
4693 Merely check ls' exit status, its output is useless.
4694
4695 2001-09-10 Akim Demaille <akim@epita.fr>
4696
4697 * tests/calc.at: Use m4_match.
4698 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
4699
4700 2001-09-10 Marc Autret <autret_m@epita.fr>,
4701 Akim Demaille <akim@epita.fr>
4702
4703 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
4704 enum color_e.
4705 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
4706 to `normal'.
4707 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
4708 * src/lex.h: Adjust prototype.
4709 (token_t): Add `tok_undef'.
4710 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
4711 (parse_percent_token): Now returns token_t.
4712 Add default statement in switch.
4713 (lex): Separate `c' as an input variable, from the token_t result
4714 part.
4715 (unlexed): Is a token_t.
4716
4717 2001-09-10 Akim Demaille <akim@epita.fr>
4718
4719 * configure.in: Bump to 1.29a.
4720
4721 2001-09-07 Akim Demaille <akim@epita.fr>
4722
4723 Version 1.29.
4724
4725 2001-08-30 Akim Demaille <akim@epita.fr>
4726
4727 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
4728 * m4/atconfig.m4: Remove.
4729 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
4730 * tests/bison: New.
4731 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
4732 m4_if, m4_patsubst, and m4_regexp.
4733 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
4734 `input' file instead of echo.
4735
4736 2001-08-29 Akim Demaille <akim@epita.fr>
4737
4738 Bump to 1.28e.
4739
4740 2001-08-29 Akim Demaille <akim@epita.fr>
4741
4742 Version 1.28d.
4743
4744 2001-08-29 Paul Eggert <eggert@twinsun.com>
4745
4746 * src/bison.simple (yyparse): Don't take the address of an
4747 item before the start of an array, as that doesn't conform to
4748 the C Standard.
4749
4750 2001-08-29 Robert Anisko <anisko_r@epita.fr>
4751
4752 * doc/bison.texinfo (Location Tracking Calc): New node.
4753
4754 2001-08-29 Paul Eggert <eggert@twinsun.com>
4755
4756 * src/output.c (output): Do not define const, as this now
4757 causes more problems than it cures.
4758
4759 2001-08-29 Akim Demaille <akim@epita.fr>
4760
4761 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
4762 the nodes.
4763 Be sure to tag the `detailmenu'.
4764
4765 2001-08-29 Akim Demaille <akim@epita.fr>
4766
4767 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
4768 download in a tmp dir.
4769
4770 2001-08-28 Marc Autret <autret_m@epita.fr>
4771
4772 * config/depcomp: New file.
4773
4774 2001-08-28 Marc Autret <autret_m@epita.fr>
4775
4776 * doc/bison.1 (mandoc): Adjust.
4777 From Juan Manuel Guerrero.
4778
4779 2001-08-28 Marc Autret <autret_m@epita.fr>
4780
4781 * src/print_graph.c (print_state): Fix.
4782
4783 2001-08-27 Marc Autret <autret_m@epita.fr>
4784
4785 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
4786 char * members.
4787 Echo modifications to the functions prototypes.
4788 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
4789
4790 2001-08-27 Marc Autret <autret_m@epita.fr>
4791
4792 * src/vcg.c: Include `xalloc.h'.
4793 (add_colorentry): New.
4794 (add_classname): New.
4795 (add_infoname): New.
4796 * src/vcg.h: Add new prototypes.
4797
4798 2001-08-27 Akim Demaille <akim@epita.fr>
4799
4800 * Makefile.maint: Sync. again with CVS Autoconf.
4801
4802 2001-08-27 Akim Demaille <akim@epita.fr>
4803
4804 * Makefile.maint: Formatting changes.
4805 (po-update, cvs-update, update): New targets.
4806 (AMTAR): Remove.
4807
4808 2001-08-27 Akim Demaille <akim@epita.fr>
4809
4810 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
4811 * Makefile.maint: Sync. with CVS Autoconf.
4812
4813 2001-08-27 Marc Autret <autret_m@epita.fr>
4814
4815 * src/vcg.h (struct infoname_s): New.
4816 (struct colorentry_s): New.
4817 (graph_s): New fields {vertical,horizontal}_order in structure.
4818 Add `infoname' field.
4819 Add `colorentry' field;
4820 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
4821 (G_HORIZONTAL_ORDER): New.
4822 (G_INFONAME): New.
4823 (G_COLORENTRY): New.
4824 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
4825 Add output of `infoname'.
4826 Add output of `colorentry'.
4827
4828 2001-08-27 Marc Autret <autret_m@epita.fr>
4829
4830 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
4831 This one shadowed a global parameter.
4832
4833 2001-08-24 Marc Autret <autret_m@epita.fr>
4834
4835 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
4836 instead of `unsigned'.
4837 (print_state): Do not call obstack_object_size () in obstack_grow ()
4838 to avoid macro variables shadowing.
4839
4840 2001-08-23 Marc Autret <autret_m@epita.fr>
4841
4842 * src/lex.c (percent_table): Typo: s/naem/name/.
4843 Add graph option.
4844 Normalize new options declarations.
4845
4846 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
4847
4848 * tests/suite.at: Exercise %header_extension and %source_extension.
4849
4850 2001-08-16 Marc Autret <autret_m@epita.fr>
4851
4852 * src/reader.c (parse_dquoted_param): New.
4853 (parse_header_extension_decl): Use it.
4854 (parse_source_extension_decl): Likewise.
4855
4856 2001-08-16 Marc Autret <autret_m@epita.fr>
4857
4858 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
4859 (get_xxxx_str): Use assert () instead of complain ().
4860 Remove return invokations in default cases.
4861 (get_decision_str): Modify default behaviour. Remove second argument.
4862 Echo modifications on calls.
4863 (output_graph): Fix.
4864
4865 2001-08-16 Marc Autret <autret_m@epita.fr>
4866
4867 * src/getargs.c (usage): Update with ``-g, --graph''.
4868
4869 2001-08-16 Marc Autret <autret_m@epita.fr>
4870
4871 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
4872 (Option Cross Key): Likewise.
4873 * doc/bison.1: Update.
4874
4875 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
4876
4877 * src/output.c (output_master_parser): Don't finish action_obstack.
4878 (output_parser): Don't care about the muscle action, here.
4879 (prepare): Copy the action_obstack in the action muscle.
4880 (output): Free action_obstack.
4881
4882 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
4883
4884 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
4885 will contain `%union' declaration.
4886 (parse_union_decl): Delete #line directive output.
4887 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
4888 informations about %union.
4889 (parse_union_decl): Copy the union_obstack in the muscle stype.
4890 * src/bison.simple: Add new #line directive.
4891 Add typdef %%stype YYSTYPE.
4892
4893 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
4894
4895 * src/bison.simple: Add new `#line' directive.
4896
4897 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
4898
4899 * src/bison.simple: New `#line' directive.
4900 * src/output.c (output_parser): Support new dynamic muscle input_line.
4901
4902 2001-09-22 Marc Autret <autret_m@epita.fr>
4903
4904 * src/output.c (output_master_parser): New.
4905 (output_parser): Be more re-entrant.
4906
4907 2001-09-21 Marc Autret <autret_m@epita.fr>
4908
4909 * src/reader.c (copy_definition, parse_union_decl): Update and use
4910 `linef' muscle.
4911 (copy_action): Likewise.
4912 Use obstack_1grow ().
4913 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
4914
4915 2001-09-21 Marc Autret <autret_m@epita.fr>
4916
4917 * src/options.c (option_table): Adjust.
4918 * src/lex.c (parse_percent_token): Fix.
4919
4920 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
4921
4922 * src/options.c (symtab.h): Include it, need by lex.h.
4923
4924 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
4925
4926 * src/lex.c (parse_percent_token): Change type of variable `tx', which
4927 is now an option_table_struct*.
4928 (option_strcmp): New function option_strcmp.
4929 (parse_percent_token): Call option_strcmp.
4930 * src/getargs.c (xalloc.h, options.h): Include it.
4931 (getargs): Call create_long_option_table.
4932 (getargs): Free longopts at the end of the function.
4933 (shortopts): Move in options.c.
4934 * src/options.c (create_long_option_table): New function. Convert
4935 information from option_table to option structure.
4936 * src/reader.c (options.h): Include it.
4937
4938 * src/Makefile.am: Adjust.
4939 * src/options.c (option_table): Create from longopts and percent_table.
4940 * src/getargs.c (longopts): Delete.
4941 * src/lex.c (struct percent_table_struct): Delete.
4942 (percent_table): Delete.
4943 (options.h): Include it.
4944 * src/options.c: Create.
4945 * src/options.h: Create.
4946 Declare enum opt_access_e.
4947 Define struct option_table_struct.
4948
4949 2001-09-20 Marc Autret <autret_m@epita.fr>
4950
4951 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
4952 sections of Bison.
4953
4954 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
4955
4956 * src/bison.simple: s/%%filename/%%skeleton.
4957 * src/muscle_tab.c (getargs.h): Include it.
4958 (muscle_init): Insert new muscle skeleton.
4959
4960 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
4961
4962 * src/output.c (output_parser): Delete unused variable actions_dumped.
4963
4964 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
4965
4966 * src/output.c (output): Delete call to reader_output_yylsp.
4967 * src/reader.c (reader): Likewise.
4968 * src/reader.h: Delete declaration of reader_output_yylsp.
4969
4970 2001-09-02 Marc Autret <autret_m@epita.fr>
4971
4972 * src/reader.c: Include muscle_tab.h.
4973 (parse_union_decl): Update.
4974 (parse_macro_decl): Rename parse_muscle_decl.
4975 Update to use renamed functions and variable.
4976 (read_declarations, copy_action, read_additionnal_code, : Updated
4977 with correct variables and functions names.
4978 (packsymbols, reader): Likewise.
4979
4980 * src/reader.h (muscle_obstack): Extern declaration update.
4981
4982 * src/output.c: Include muscle_tab.h
4983 In all functions using macro_insert, change by using muscle_insert ().
4984 (macro_obstack): Rename muscle_obstack.
4985 Echo modifications in the whole file.
4986 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
4987 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
4988 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
4989
4990 * src/muscle_tab.h: Update double inclusion macros.
4991 (macro_entry_s): Rename muscle_entry_s.
4992 Update prototypes.
4993
4994 * src/muscle_tab.c: Include muscle_tab.h.
4995 Rename macro_tabble to muscle_table.
4996 (mhash1, mhash2, mcmp): Use muscle_entry.
4997 (macro_init): Rename muscle_init. Update.
4998 (macro_insert): Rename muscle_insert. Update.
4999 (macro_find): Rename muscle_find. Update.
5000
5001 * src/main.c: Include muscle_tab.h.
5002 (main): Call muscle_init ().
5003 * src/Makefile.am (bison_SOURCES): Echo modifications.
5004
5005 2001-09-02 Marc Autret <autret_m@epita.fr>
5006
5007 Now the files macro_tab.[ch] are named muscle_tab.[ch].
5008
5009 * src/muscle_tab.c, src/muscle_tab.h: Add files.
5010
5011 2001-09-02 Marc Autret <autret_m@epita.fr>
5012
5013 * src/macrotab.c, src/macrotab.h: Remove.
5014
5015 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
5016
5017 * src/reader.c (copy_guard): Use muscle to specify the `#line'
5018 filename.
5019
5020 2001-09-01 Marc Autret <autret_m@epita.fr>
5021
5022 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
5023 to an explicit value to activate the feature. We do it here.
5024
5025 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5026
5027 * src/output.c (prepare): Delete the `filename' muscule insertion.
5028 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
5029 (parse_union_decl): Likewise.
5030 * src/macrotab.c (macro_init): Initialize filename by infile.
5031
5032 2001-08-31 Marc Autret <autret_m@epita.fr>
5033
5034 * src/bison.simple (YYLSP_NEEDED): New definition.
5035 * src/output.c (prepare): Add macro insertion of `locations_flag'
5036
5037 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5038
5039 * src/output.c (prepare): Delete insertion of previous muscles,
5040 and insert the `prefix' muscles.
5041 * src/macrotab.c (macro_init): Likewise.
5042 (macro_init): Initialization prefix directive by `yy'.
5043 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
5044 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
5045 yylval, yydebug, yyerror, yynerrs and yyparse.
5046 New directive `#define' to substitute yydebug, ... with option
5047 name_prefix.
5048
5049 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5050
5051 * src/main.c (main): Standardize.
5052 * src/output.c (output_table_data, output_parser): Likewise.
5053 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
5054
5055 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
5056
5057 * src/reader.c (read_additionnal_code): Rename %%user_code to
5058 %%epilogue.
5059 * src/output.c (output): Rename %%declarations to %%prologue.
5060 * src/bison.simple: Echo modifications.
5061
5062 2001-08-31 Marc Autret <autret_m@epita.fr>
5063
5064 * src/reader.c (readgram): CleanUp.
5065 (output_token_defines): Likewise.
5066 (packsymbols): Likewise.
5067 (reader): Likewise.
5068 * src/output.c (output): CPP-out useless code.
5069
5070 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
5071
5072 * src/reader.c (reader): Delete obsolete call to function
5073 output_trailers and output_headers.
5074 * src/output.h: Remove obsolete functions prototypes of output_headers
5075 and output_trailers.
5076
5077 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
5078
5079 * src/main.c: Include macrotab.h.
5080 * src/macrotab.h (macro_entry_s): Constify fields.
5081 Adjust functions prototypes.
5082 * src/macrotab.c (macro_insert): Constify key and value.
5083 (macro_find): Constify key.
5084 (macro_insert): Include 'xalloc.h'
5085 (macro_insert): Use XMALLOC.
5086 (macro_find): Constify return value.
5087 * src/output.c (output_table_data): Rename table to table_data.
5088 (output_parser): Constify macro_key, macro_value.
5089
5090 2001-08-30 Marc Autret <autret_m@epita.fr>
5091
5092 * src/reader.c (parse_skel_decl): New.
5093 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
5094 * src/lex.h (token_t): New token `tok_skel'.
5095 * src/lex.c (percent_table): Add skeleton option entry.
5096 Standardize.
5097
5098 2001-08-29 Marc Autret <autret_m@epita.fr>
5099
5100 * src/bison.simple: Add %%user_code directive at the end.
5101 * src/reader.c (read_additionnal_code): New.
5102 (reader): Use it.
5103 * src/output.c (output_program): Remove.
5104 (output): Update.
5105
5106 2001-08-28 Marc Autret <autret_m@epita.fr>
5107
5108 * src/output.c (output_actions): Clean up.
5109 (output_gram): CPP-out useless code.
5110 * src/reader.c (reader): Clean up, CPP-out useless code.
5111
5112 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
5113
5114 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
5115 directive.
5116 * src/bison.simple: Add `%%definitions'.
5117
5118 2001-08-28 Marc Autret <autret_m@epita.fr>
5119
5120 * config/depcomp: New file.
5121
5122 2001-08-27 Paul Eggert <eggert@twinsun.com>
5123
5124 * src/bison.simple (yyparse): Don't take the address of an
5125 item before the start of an array, as that doesn't conform to
5126 the C Standard.
5127
5128 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
5129
5130 * src/output.c (output): Remove the initialization of the macro
5131 obstack. It was done too late here.
5132
5133 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
5134 completely wrong.
5135 (reader): Initialize the macro obstack here, since we need it to grow
5136 '%define' directives.
5137
5138 * src/reader.h: Declare the macro obstack as extern.
5139
5140 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
5141
5142 * src/output.c (output_parser): Fix. Store single '%' characters in
5143 the output obstack instead of throwing them away.
5144
5145 2001-08-27 Akim Demaille <akim@epita.fr>
5146
5147 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
5148
5149 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5150
5151 * lib/Makefile.am: Adjust.
5152
5153 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5154
5155 * src/bison.simple: Update and add '%%' directives.
5156
5157 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5158
5159 * src/reader.c (reader): Remove calls to 'output_headers' and
5160 'output_trailers'. Remove some C output.
5161 (readgram): Disable a piece of code that was writing a default
5162 definition for 'YYSTYPE'.
5163 (reader_output_yylsp): Remove.
5164 (packsymbols): Output token defintions to a macro.
5165 (copy_definition): Disable C output.
5166
5167 * src/reader.c (parse_macro_decl): New function used to parse macro
5168 declarations.
5169 (copy_string2): Put the body of copy_string into this new function.
5170 Add a parameter to let the caller choose whether he wants to copy the
5171 string delimiters or not.
5172 (copy_string): Be a simple call to copy_string2 with the last argument
5173 bound to true.
5174 (read_declarations): Add case for macro definition.
5175 (copy_identifier): New.
5176 (parse_macro_decl): Read macro identifiers using copy_identifier
5177 rather than lex.
5178
5179 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5180
5181 * src/output.c (prepare): Add prefixed names.
5182 (output_parser): Output semantic actions.
5183 (output_parser): Fix bug on '%%line' directives.
5184
5185 * src/output.c (output_headers): Remove. The C code printed by this
5186 function should now be in the skeletons.
5187 (output_trailers): Remove.
5188 (output): Disable call to 'reader_output_yylsp'.
5189 (output_rule_data): Do not output tables to the table obstack.
5190
5191 * src/output.c: Remove some C dedicated output.
5192 Improve the use of macro and output obstacks.
5193 (output_defines): Remove.
5194
5195 * src/output.c (output_token_translations): Associate 'translate'
5196 table with a macro. No output to the table obstack.
5197 (output_gram): Same for 'rhs' and 'prhs'.
5198 (output_stos): Same for 'stos'.
5199 (output_rule_data): Same for 'r1' and 'r2'.
5200 (token_actions): Same for 'defact'.
5201 (goto_actions): Same for 'defgoto'.
5202 (output_base): Same for 'pact' and 'pgoto'.
5203 (output_table): Same for 'table'.
5204 (output_check): Same for 'check'.
5205
5206 * src/output.c (output_table_data): New function.
5207 (output_short_table): Remove.
5208 (output_short_or_char_table): Remove.
5209
5210 * src/output.c (output_parser): Replace most of the skeleton copy code
5211 with something new. Skeletons are now processed character by character
5212 rather than line by line, and Bison looks for '%%' macros. This is the
5213 first step in making Bison's output process (a lot) more flexible.
5214 (output_parser): Use the macro table.
5215
5216 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5217
5218 * src/main.c (main): Initialize the macro table.
5219
5220 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5221
5222 * src/lex.c (percent_table): Add tok_define.
5223 * src/lex.h: Add tok_define.
5224
5225 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5226
5227 * src/macrotab.c: New file.
5228 * src/macrotab.h: New file.
5229 * src/Makefile.am: Update.
5230
5231 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
5232
5233 * lib/hash.c: New file.
5234 * lib/hash.h: New file.
5235 * lib/Makefile.am: Update.
5236
5237 2001-08-15 Akim Demaille <akim@epita.fr>
5238
5239 Version 1.28c.
5240
5241 2001-08-15 Marc Autret <autret_m@epita.fr>
5242
5243 * src/reader.c (readgram): Indent output macro YYSTYPE.
5244 (packsymbols): Likewise.
5245 (output_token_defines): Likewise.
5246 * src/files.c: Standardize.
5247 (compute_header_macro): New.
5248 (defines_obstack_save): New. Use compute_header_macro.
5249 (output_files): Update. Use defines_obstack_save.
5250
5251 2001-08-15 Akim Demaille <akim@epita.fr>
5252
5253 * doc/bison.texinfo (Table of Symbols): Document
5254 YYSTACK_USE_ALLOCA.
5255
5256 2001-08-15 Akim Demaille <akim@epita.fr>
5257
5258 * missing: Update from CVS Automake.
5259 * config/config.guess, config/config.sub, config/texinfo.tex:
5260 Update from gnu.org.
5261
5262 2001-08-15 Akim Demaille <akim@epita.fr>
5263
5264 * Makefile.maint: Sync with CVS Autoconf.
5265
5266 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
5267
5268 * doc/bison.texinfo: Include GNU Free Documentation License from
5269 `fdl.texi'.
5270 * doc/fdl.texi: Add to package.
5271
5272 2001-08-14 Marc Autret <autret_m@epita.fr>
5273
5274 Turn on %{source,header}_extension features.
5275
5276 * src/lex.c (percent_table): Un-CPP out header_extension and
5277 source_extension.
5278 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
5279 (compute_exts_from_src): Remove conditions. It restores priorities
5280 between options.
5281
5282 2001-08-14 Marc Autret <autret_m@epita.fr>
5283
5284 * src/files.c (compute_base_names): Add extensions computing when
5285 `--file-prefix' used.
5286 Standardize function calls.
5287
5288 2001-08-13 Marc Autret <autret_m@epita.fr>
5289
5290 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
5291 defining it (defined but null disables alloca).
5292
5293 2001-08-13 Marc Autret <autret_m@epita.fr>
5294
5295 * src/bison.simple (_yy_memcpy): CPP reformat.
5296
5297 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
5298
5299 * tests/atconfig.in (CPPFLAGS): Fix.
5300
5301 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
5302
5303 * doc/bison.texinfo: Include GNU General Public License from
5304 `gpl.texi'.
5305 * doc/gpl.texi: Add to package.
5306
5307 2001-08-10 Marc Autret <autret_m@epita.fr>
5308
5309 * src/print_graph.h: Fix.
5310 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
5311
5312 2001-08-10 Akim Demaille <akim@epita.fr>
5313
5314 * src/system.h: Provide default declarations for stpcpy, strndup,
5315 and strnlen.
5316
5317 2001-08-10 Robert Anisko <anisko_r@epita.fr>
5318
5319 * doc/bison.texinfo (Locations): Update @$ stuff.
5320
5321 2001-08-09 Robert Anisko <anisko_r@epita.fr>
5322
5323 * src/bison.simple (YYLLOC_DEFAULT): Update.
5324 (yyparse): Adjust.
5325
5326 2001-08-08 Marc Autret <autret_m@epita.fr>
5327
5328 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
5329 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
5330 Reported by Fabrice Bauzac.
5331
5332 2001-08-08 Marc Autret <autret_m@epita.fr>
5333
5334 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
5335 * src/vcg.c (output_node): Fix.
5336 * src/vcg.h: Cleanup.
5337 * src/print_graph.c: Add comments.
5338 (node_output_size): New global variable. Simplify the formatting of
5339 the VCG graph output.
5340 (print_actions): Unused code is now used. It notifies the final state
5341 and no action states in the VCG graph. It also give the reduce actions.
5342 The `shift and goto' edges are red and the `go to state' edges are
5343 blue.
5344 Get the current node name and node_obstack by argument.
5345 (node_obstack): New variable.
5346 (print_state): Manage node_obstack.
5347 (print_core): Use node_obstack given by argument.
5348 A node is not only computed here but in print_actions also.
5349 (print_graph): CPP out useless code instead of commenting it.
5350
5351 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
5352
5353 * tests/atconfig.in (CPPFLAGS): Fix.
5354
5355 2001-08-07 Akim Demaille <akim@epita.fr>
5356
5357 * src/print_graph.c (quote): New.
5358 (print_core): Use it.
5359
5360 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
5361
5362 * src/vcg.c (complain.h): Include it.
5363 Unepitaize `return' invocations.
5364 [NDEBUG] (main): Remove.
5365 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
5366 * src/files.c (open_files): Initialize graph_obstack.
5367 * src/print_graph.c (print_actions): CPP out useless code.
5368 (print_core): Don't output the last `\n' in labels.
5369 Use `quote'.
5370 * src/files.c (output_files): Output the VCG file.
5371 * src/main.c (main): Invoke print_graph ();
5372
5373 2001-08-06 Marc Autret <autret_m@epita.fr>
5374
5375 Automaton VCG graph output.
5376 Using option ``-g'' or long option ``--graph'', you can generate
5377 a gram_filename.vcg file containing a VCG description of the LALR (1)
5378 automaton of your grammar.
5379
5380 * src/main.c: Call to print_graph() function.
5381 * src/getargs.h: Update.
5382 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
5383 (graph_flag): New flag.
5384 (longopts): Update.
5385 (getargs): Add case `g'.
5386 * src/files.c (graph_obstack): New obstack struct.
5387 (open_files): Initialize new obstack.
5388 (output_files): Saves graph_obstack if required.
5389 * src/files.h (graph_obstack): New extern declaration.
5390 * src/Makefile.am: Add new source files.
5391
5392 2001-08-06 Marc Autret <autret_m@epita.fr>
5393
5394 * src/print_graph.c, src/print_graph.h (graph): New.
5395 * src/vcg.h: New file.
5396 * src/vcg.c: New file, VCG graph handling.
5397
5398 2001-08-06 Marc Autret <autret_m@epita.fr>
5399
5400 Add of %source_extension and %header_extension which specify
5401 the source or/and the header output file extension.
5402
5403 * src/files.c (compute_base_names): Remove initialisation of
5404 src_extension and header_extension.
5405 (compute_exts_from_gf): Update.
5406 (compute_exts_from_src): Update.
5407 (output_files): Update.
5408 * src/reader.c (parse_header_extension_decl): New.
5409 (parse_source_extension_decl): New.
5410 (read_declarations): New case statements for the new tokens.
5411 * src/lex.c (percent_table): Add entries for %source_extension
5412 and %header_extension.
5413 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
5414
5415 2001-08-06 Marc Autret <autret_m@epita.fr>
5416
5417 * configure.in: Bump to 1.28c.
5418 * doc/bison.texinfo: Texinfo thingies.
5419
5420 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
5421
5422 * tests/atconfig.in (CPPFLAGS): Add.
5423 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
5424
5425 2001-08-03 Akim Demaille <akim@epita.fr>
5426
5427 Version 1.28b.
5428
5429 2001-08-03 Akim Demaille <akim@epita.fr>
5430
5431 * tests/Makefile.am (check-local): Ship testsuite.
5432 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
5433 Include `string.h'.
5434
5435 2001-08-03 Akim Demaille <akim@epita.fr>
5436
5437 * configure.in: Try using -Wformat when compiling.
5438
5439 2001-08-03 Akim Demaille <akim@epita.fr>
5440
5441 * configure.in: Bump to 1.28b.
5442
5443 2001-08-03 Akim Demaille <akim@epita.fr>
5444
5445 * src/complain.c: Adjust strerror_r portability issues.
5446
5447 2001-08-03 Akim Demaille <akim@epita.fr>
5448
5449 Version 1.28a.
5450
5451 2001-08-03 Akim Demaille <akim@epita.fr>
5452
5453 * src/getargs.c, src/getarg.h (skeleton)): Constify.
5454 * src/lex.c (literalchar): Avoid name clashes on `buf'.
5455 * src/getargs.c: Include complain.h.
5456 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
5457 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
5458
5459 2001-08-03 Akim Demaille <akim@epita.fr>
5460
5461 * src/reader.c (readgram): Display hidden chars in error messages.
5462
5463 2001-08-03 Akim Demaille <akim@epita.fr>
5464
5465 Update to gettext 0.10.39.
5466
5467 2001-08-03 Akim Demaille <akim@epita.fr>
5468
5469 * lib/strspn.c: New.
5470
5471 2001-08-01 Marc Autret <autret_m@epita.fr>
5472
5473 * doc/bison.texinfo: Update.
5474 * doc/bison.1 (mandoc): Update.
5475 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
5476 * src/files.c: Support output files extensions computing.
5477 (src_extension): New static variable.
5478 (header_extension): New static variable.
5479 (tr): New function.
5480 (get_extension_index): New function, gets the index of an extension
5481 filename in a string.
5482 (compute_exts_from_gf): New function, computes extensions from the
5483 grammar file extension.
5484 (compute_exts_from_src): New functions, computes extensions from the
5485 C source file extension, file given by ``-o'' option.
5486 (compute_base_names): Update.
5487 (output_files): Update.
5488
5489 2001-08-01 Robert Anisko <anisko_r@epita.fr>
5490
5491 * doc/bison.texi: Document @$.
5492 (Locations): New section.
5493
5494 2001-07-18 Akim Demaille <akim@epita.fr>
5495
5496 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
5497 * config/prev-version.txt, config/move-if-change: New.
5498 * Makefile.am: Adjust.
5499
5500 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
5501
5502 * src/bison.simple (yyparse): Suppress warning `comparaison
5503 between signed and unsigned'.
5504
5505 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
5506
5507 * src/getargs.h (raw_flag): Remove.
5508 * src/getargs.c: Die on `-r'/`--raw'.
5509 * src/lex.c (parse_percent_token): Die on `%raw'.
5510 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
5511 * tests/calc.at: Suppress test with option `--raw'.
5512
5513 2001-07-14 Akim Demaille <akim@epita.fr>
5514
5515 * config/: New.
5516 * configure.in: Require Autoconf 2.50.
5517 Update to gettext 0.10.38.
5518
5519 2001-03-16 Akim Demaille <akim@epita.fr>
5520
5521 * doc/bison.texinfo: ANSIfy the examples.
5522
5523 2001-03-16 Akim Demaille <akim@epita.fr>
5524
5525 * getargs.c (skeleton): New variable.
5526 (longopts): --skeleton is a new option.
5527 (shortopts, getargs): -S is a new option.
5528 * getargs.h: Declare skeleton.
5529 * output.c (output_parser): Use it.
5530
5531 2001-03-16 Akim Demaille <akim@epita.fr>
5532
5533 * m4/strerror_r.m4: New.
5534 * m4/error.m4: Run AC_FUNC_STRERROR_R.
5535 * lib/error.h, lib/error.c: Update.
5536
5537 2001-03-16 Akim Demaille <akim@epita.fr>
5538
5539 * src/getargs.c (longopts): Clean up.
5540
5541 2001-02-21 Akim Demaille <akim@epita.fr>
5542
5543 * src/reader.c (gensym): `gensym_count' is your own.
5544 Use a static buf to create the symbol name, as token_buffer is no
5545 longer a buffer.
5546
5547 2001-02-08 Akim Demaille <akim@epita.fr>
5548
5549 * src/conflicts.c (conflict_report): Be sure not to append to res
5550 between two calls, which could happen if both first sprintf were
5551 skipped, but not the first cp += strlen.
5552
5553 2001-02-08 Akim Demaille <akim@epita.fr>
5554
5555 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
5556 New, from fileutils 4.0.37.
5557 * configure.in: Require Autoconf 2.49c. I took some time before
5558 making this decision. This is the only way out for portability
5559 issues in Bison, it would mean way too much duplicate effort to
5560 import in Bison features implemented in 2.49c since 2.13.
5561 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
5562
5563 2001-02-02 Akim Demaille <akim@epita.fr>
5564
5565 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
5566 * lib/xalloc.h, lib/xmalloc.c: Update.
5567
5568 2001-01-19 Akim Demaille <akim@epita.fr>
5569
5570 Get rid of the ad hoc handling of token_buffer in the scanner: use
5571 the obstacks.
5572
5573 * src/lex.c (token_obstack): New.
5574 (init_lex): Initialize it. No longer call...
5575 (grow_token_buffer): this. Remove it.
5576 Adjust all the places which used it to use the obstack.
5577
5578 2001-01-19 Akim Demaille <akim@epita.fr>
5579
5580 * src/lex.h: Rename all the tokens:
5581 s/\bENDFILE\b/tok_eof/g;
5582 s/\bIDENTIFIER\b/tok_identifier/g;
5583 etc.
5584 Let them be enums, not #define, to ease debugging.
5585 Adjust all the code.
5586
5587 2001-01-18 Akim Demaille <akim@epita.fr>
5588
5589 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
5590 * src/lex.c (maxtoken, grow_token_buffer): Static.
5591
5592 2001-01-18 Akim Demaille <akim@epita.fr>
5593
5594 Since we now use obstacks, more % directives can be enabled.
5595
5596 * src/lex.c (percent_table): Also accept `%yacc',
5597 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
5598 `%debug'.
5599 Handle the actions for `%semantic_parser' and `%pure_parser' here,
5600 instead of returning a token.
5601 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
5602 * src/reader.c (read_declarations): Adjust.
5603 * src/files.c (open_files): Don't call `compute_base_names', don't
5604 compute `attrsfile' since they depend upon data which might be
5605 *in* the input file now.
5606 (output_files): Do it here.
5607 * src/output.c (output_headers): Document the fact that this patch
5608 introduces a guaranteed SEGV for semantic parsers.
5609 * doc/bison.texinfo: Document them.
5610 * tests/suite.at: Exercise these %options.
5611
5612 2000-12-20 Akim Demaille <akim@epita.fr>
5613
5614 Also handle the output file (--verbose) with obstacks.
5615
5616 * files.c (foutput): Remove.
5617 (output_obstack): New.
5618 Adjust all dependencies.
5619 * src/conflicts.c: Return a string.
5620 * src/system.h (obstack_grow_string): Rename as...
5621 (obstack_sgrow): this. Be ready to work with non literals.
5622 (obstack_fgrow4): New.
5623
5624 2000-12-20 Akim Demaille <akim@epita.fr>
5625
5626 * src/files.c (open_files): Fix the computation of short_base_name
5627 in the case of `-o foo.tab.c'.
5628
5629 2000-12-20 Akim Demaille <akim@epita.fr>
5630
5631 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
5632 (copy_dollar): Now that everything uses obstacks, get rid of the
5633 FILE * parameters.
5634
5635 2000-12-20 Akim Demaille <akim@epita.fr>
5636
5637 * src/files.c (open_files): Actually the `.output' file is based
5638 on the short_base_name, not base_name.
5639 * tests/suite.at (Checking output file names): Adjust.
5640
5641 2000-12-20 Akim Demaille <akim@epita.fr>
5642
5643 * src/bison.s1: Remove, we now use directly...
5644 * src/bison.simple: this.
5645 * src/Makefile.am: Use pkgdata instead of data.
5646
5647 2000-12-20 Akim Demaille <akim@epita.fr>
5648
5649 * src/files.c (guard_obstack): New.
5650 (open_files): Initialize it.
5651 (output_files): Dump it...
5652 * src/files.h: Export it.
5653 * src/reader.c (copy_guard): Use it.
5654
5655 2000-12-19 Akim Demaille <akim@epita.fr>
5656
5657 * src/files.c (outfile, defsfile, actfile): Removed as global
5658 vars.
5659 (open_files): Don't compute them.
5660 (output_files): Adjust.
5661 (base_name, short_base_name): Be global.
5662 Adjust dependencies.
5663
5664 2000-12-19 Akim Demaille <akim@epita.fr>
5665
5666 * src/files.c (strsuffix): New.
5667 (stringappend): Be just like strcat but allocate.
5668 (base_names): Eve out from open_files.
5669 Try to simplify the rather hairy computation of base_name and
5670 short_base_name.
5671 (open_files): Use it.
5672 * tests/suite.at (Checking output file names): New test.
5673
5674 2000-12-19 Akim Demaille <akim@epita.fr>
5675
5676 * src/system.h (obstack_grow_literal_string): Rename as...
5677 (obstack_grow_string): this.
5678 * src/output.c (output_parser): Recognize `%% actions' instead of
5679 `$'.
5680 * src/bison.s1: s/$/%% actions/.
5681 * src/bison.hairy: Likewise.
5682
5683 2000-12-19 Akim Demaille <akim@epita.fr>
5684
5685 * src/output.c (output_parser): Compute the `#line' lines when
5686 there are.
5687 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
5688 Suggested by Hans Aberg.
5689
5690 2000-12-19 Akim Demaille <akim@epita.fr>
5691
5692 Let the handling of the skeleton files be local to the procedures
5693 that use it.
5694
5695 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
5696 longer static.
5697 (fparser, open_extra_files): Remove.
5698 (open_files, output_files): Don't take care of fparser.
5699 * src/files.h: Adjust.
5700 * src/output.c (output_parser): Open and close the file to the
5701 skeleton.
5702 * src/reader.c (read_declarations): When %semantic_parser, open
5703 fguard.
5704
5705 2000-12-19 Akim Demaille <akim@epita.fr>
5706
5707 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
5708 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
5709
5710 2000-12-19 Akim Demaille <akim@epita.fr>
5711
5712 * src/files.c (open_files): Yipee! We no longer need all the code
5713 looking for `/tmp' since we have no tmp file.
5714
5715 2000-12-19 Akim Demaille <akim@epita.fr>
5716
5717 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
5718 New macros.
5719 * src/files.c (open_files): Less dependency on MSDOS etc.
5720
5721 2000-12-14 Akim Demaille <akim@epita.fr>
5722
5723 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
5724 Provide a default definition.
5725 Use it when executing the default @ action.
5726 * src/reader.c (reader_output_yylsp): No longer include
5727 `timestamp' and `text' in the default YYLTYPE.
5728
5729 2000-12-12 Akim Demaille <akim@epita.fr>
5730
5731 * src/reader.c (copy_definition, parse_union_decl, copy_action)
5732 (copy_guard): Quote the file names.
5733 Reported by Laurent Mascherpa.
5734
5735 2000-12-12 Akim Demaille <akim@epita.fr>
5736
5737 * src/output.c (output_headers, output_program, output): Be sure
5738 to escape special characters when outputting filenames.
5739 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
5740 (output_headers): Don't depend on them, Use ACTSTR.
5741
5742 2000-11-17 Akim Demaille <akim@epita.fr>
5743
5744 * lib/obstack.h: Formatting changes.
5745 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
5746 prevents type checking.
5747 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
5748 cast the value to (void *): assigning a `foo *' to a `void *'
5749 variable is valid.
5750 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
5751 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
5752 append characters.
5753
5754 2000-11-17 Akim Demaille <akim@epita.fr>
5755
5756 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
5757 as...
5758 (suite.m4, regression.m4, calc.m4): these.
5759 * tests/atgeneral.m4: Update from CVS Autoconf.
5760
5761 2000-11-17 Akim Demaille <akim@epita.fr>
5762
5763 * tests/regression.m4 (%union and --defines): New test,
5764 demonstrating a current bug in the obstack implementation.
5765
5766 2000-11-17 Akim Demaille <akim@epita.fr>
5767
5768 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
5769 macros.
5770 Use them to declare the variables which are global or local to
5771 `yyparse'.
5772
5773 2000-11-17 Akim Demaille <akim@epita.fr>
5774
5775 * acconfig.h: Remove, no longer used.
5776
5777 2000-11-07 Akim Demaille <akim@epita.fr>
5778
5779 * src: s/Copyright (C)/Copyright/g.
5780
5781 2000-11-07 Akim Demaille <akim@epita.fr>
5782
5783 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
5784 defining.
5785 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
5786
5787 2000-11-07 Akim Demaille <akim@epita.fr>
5788
5789 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
5790 Merge in a single CPP if/else.
5791
5792 2000-11-07 Akim Demaille <akim@epita.fr>
5793
5794 * src/output.c (output): Remove useless variables.
5795 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
5796 argument `data' for consistency with the prototypes.
5797 Qualify it `const'.
5798 (obstack_copy, obstack_copy0): Rename the second argument as
5799 `address' for consistency. Qualify it `const'.
5800 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
5801 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
5802 `const' their input argument (`data' or `address').
5803 Adjust the corresponding macros to include `const' in casts.
5804
5805 2000-11-03 Akim Demaille <akim@epita.fr>
5806
5807 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
5808 s/PFILE1/BISON_HAIRY/.
5809 Adjust dependencies.
5810
5811 2000-11-03 Akim Demaille <akim@epita.fr>
5812
5813 For some reason, this was not applied.
5814
5815 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
5816 `unlink': it's no longer used.
5817
5818 2000-11-03 Akim Demaille <akim@epita.fr>
5819
5820 * src/files.c (skeleton_find): New function, eved out of...
5821 (open_files, open_extra_files): here.
5822
5823 2000-11-03 Akim Demaille <akim@epita.fr>
5824
5825 Don't use `atexit'.
5826
5827 * src/files.c (obstack_save): New function.
5828 (done): Rename as...
5829 (output_files): this.
5830 Use `obstack_save'.
5831 * src/main.c (main): Don't use `atexit' to register `done', since
5832 it no longer has to remove tmp files, just call `output_files'
5833 when there are no errors.
5834
5835 2000-11-02 Akim Demaille <akim@epita.fr>
5836
5837 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
5838 `unlink': it's no longer used.
5839 * src/files.h: Formatting changes.
5840
5841 2000-11-02 Akim Demaille <akim@epita.fr>
5842
5843 Remove the last uses of mktemp and unlink/delete.
5844
5845 * src/files.c (fdefines, ftable): Removed.
5846 (defines_ostack, table_obstack): New.
5847 Adjust dependencies of the former into uses of the latter.
5848 * src/output.c (output_short_or_char_table, output_short_table):
5849 Convert to using obstacks.
5850 * src/reader.c (copy_comment2): Accept one FILE * and two
5851 obstacks.
5852 (output_token_defines, reader_output_yylsp): Use obstacks.
5853 * src/system.h (obstack_fgrow3): New.
5854
5855 2000-11-01 Akim Demaille <akim@epita.fr>
5856
5857 Change each use of `fattrs' into a use of `attrs_obstack'.
5858
5859 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
5860 * src/files.c (fattrs): Remove.
5861 (attrs_obstack): New.
5862 Adjust all dependencies.
5863 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
5864
5865 2000-11-01 Akim Demaille <akim@epita.fr>
5866
5867 Introduce obstacks.
5868 Change each use of `faction' into a use of `action_obstack'.
5869
5870 * lib/obstack.h, lib/obstack.c: New files.
5871 * src/files.c (faction): Remove.
5872 (action_obstack): New.
5873 Adjust all dependencies.
5874
5875 2000-10-20 Akim Demaille <akim@epita.fr>
5876
5877 * lib/quote.h (PARAMS): New macro. Use it.
5878
5879 2000-10-16 Akim Demaille <akim@epita.fr>
5880
5881 * src/output.c (output_short_or_char_table): New function.
5882 (output_short_table, output_token_translations): Use it.
5883 (goto_actions): Use output_short_table.
5884
5885 2000-10-16 Akim Demaille <akim@epita.fr>
5886
5887 * src/symtab.c (bucket_new): New function.
5888 (getsym): Use it.
5889
5890 * src/output.c (output_short_table): New argument to display the
5891 comment associated with the table.
5892 Adjust dependencies.
5893 (output_gram): Use it.
5894 (output_rule_data): Nicer output layout for YYTNAME.
5895
5896 2000-10-16 Akim Demaille <akim@epita.fr>
5897
5898 * src/lex.c (read_typename): New function.
5899 (lex): Use it.
5900 * src/reader.c (copy_dollar): Likewise.
5901
5902 2000-10-16 Akim Demaille <akim@epita.fr>
5903
5904 * src/reader.c (copy_comment2): Expect the input stream to be on
5905 the `/' which is suspected to open a comment, instead of being
5906 called after `//' or `/*' was read.
5907 (copy_comment, copy_definition, parse_union_decl, copy_action)
5908 (copy_guard): Adjust.
5909
5910 2000-10-16 Akim Demaille <akim@epita.fr>
5911
5912 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
5913 `read_signed_integer'.
5914
5915 2000-10-16 Akim Demaille <akim@epita.fr>
5916
5917 * src/reader.c (copy_dollar): New function.
5918 (copy_guard, copy_action): Use it.
5919
5920 2000-10-16 Akim Demaille <akim@epita.fr>
5921
5922 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
5923 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
5924 New files, from Fileutils 4.0.27.
5925 * src/main.c (printable_version): Remove.
5926 * src/lex.c, src/reader.c: Use `quote'.
5927
5928 2000-10-04 Akim Demaille <akim@epita.fr>
5929
5930 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
5931
5932 2000-10-04 Akim Demaille <akim@epita.fr>
5933
5934 * doc/bison.texinfo: Various typos spotted by Neil Booth.
5935
5936 2000-10-04 Akim Demaille <akim@epita.fr>
5937
5938 When a literal string is used to define two different tokens,
5939 `bison -v' segfaults.
5940 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
5941
5942 * tests/regression.m4: New file.
5943 Include the core of the sample provided by Piotr Gackiewicz.
5944 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
5945 properly.
5946
5947 2000-10-04 Akim Demaille <akim@epita.fr>
5948
5949 * src/reader.c (parse_expect_decl): Keep `count' within the size
5950 of `buffer'.
5951 From Neil Booth.
5952
5953 2000-10-02 Paul Eggert <eggert@twinsun.com>
5954
5955 * bison.s1 (yyparse): Assign the default value
5956 unconditionally, to avoid a GCC warning and make the parser a
5957 tad smaller.
5958
5959 2000-10-02 Akim Demaille <akim@epita.fr>
5960
5961 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
5962 options.
5963
5964 2000-10-02 Akim Demaille <akim@epita.fr>
5965
5966 * src/derives.c, src/print.c, src/reduce.c: To ease the
5967 translation, move some `\n' out of the translated strings.
5968
5969 2000-10-02 Akim Demaille <akim@epita.fr>
5970
5971 The location tracking mechanism is precious for parse error
5972 messages. Nevertheless, it is enabled only when `@n' is used in
5973 the grammar, which is a different issue (you can use it in error
5974 message, but not in the grammar per se). Therefore, there should
5975 be another means to enable it.
5976
5977 * src/getargs.c (getargs): Support `--locations'.
5978 (usage): Report it.
5979 * src/getargs.h (locationsflag): Export it.
5980 * src/lex.c (percent_table): Support `%locations'.
5981 * src/reader.c (yylsp_needed): Remove this variable, now replaced
5982 with `locationsflag'.
5983 * doc/bison.texinfo: Document `--locations' and `%locations'.
5984 Sort the options.
5985 * tests/calc.m4: Test it.
5986
5987 For regularity of the names, replace each
5988 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
5989 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
5990 In addition replace each `flag' with `_flag'.
5991
5992 2000-10-02 Akim Demaille <akim@epita.fr>
5993
5994 Also test parse error messages, including with YYERROR_VERBOSE.
5995
5996 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
5997 associative).
5998 Use it to check the computations.
5999 Use it to check `nonassoc' is honored.
6000 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
6001 `--yyerror-verbose'.
6002 (_AT_CHECK_CALC): Adjust to this option.
6003 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
6004
6005 2000-10-02 Akim Demaille <akim@epita.fr>
6006
6007 Test also `--verbose', `--defines' and `--name-prefix'. Testing
6008 the latter demonstrates a flaw in the handling of non debugging
6009 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
6010 was used in order to simplify:
6011
6012 #if YYDEBUG
6013 if (yydebug)
6014 {
6015 ...
6016 }
6017 #endif
6018
6019 into
6020
6021 if (yydebug)
6022 {
6023 ...
6024 }
6025
6026 unfortunately this leads to a CPP conflict when
6027 `--name-prefix=foo' is used since it produces `#define yydebug
6028 foodebug'.
6029
6030 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
6031 (YYDPRINTF): New macro.
6032 Spread its use.
6033 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
6034 the bison options.
6035 Also test `--verbose', `--defines' and `--name-prefix'.
6036
6037 2000-10-02 Akim Demaille <akim@epita.fr>
6038
6039 Improve the readability of the produced parsers.
6040
6041 * src/bison.s1: Formatting changes.
6042 Improve the comment related to the `$' mark.
6043 (yydefault): Don't fall through to `yyresume': `goto' there.
6044 * src/output.c (output_parser): When the `$' is met, skip the end
6045 of its line.
6046 New variable, `number_of_dollar_signs', to check there's exactly
6047 one `$' in the parser skeleton.
6048
6049 2000-10-02 Akim Demaille <akim@epita.fr>
6050
6051 * lib/xstrdup.c: New file, from the fileutils.
6052 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
6053 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
6054 instead of strlen + xmalloc + strcpy.
6055 * src/symtab.c (copys): Remove, use xstrdup instead.
6056
6057 2000-10-02 Akim Demaille <akim@epita.fr>
6058
6059 * src/gram.h (associativity): New enum type which replaces the
6060 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
6061 `right_assoc', `left_assoc' and `non_assoc'.
6062 Adjust all dependencies.
6063 * src/reader.c: Formatting changes.
6064 (LTYPESTR): Don't define it, use it as a literal in
6065 `reader_output_yylsp'.
6066 * src/symtab.h (symbol_class): New enum type which replaces the
6067 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
6068 `sunknown', `stoken and `snterm'.
6069
6070 2000-10-02 Akim Demaille <akim@epita.fr>
6071
6072 * src/getargs.c (fixed_outfiles): Rename as...
6073 (yaccflag): for consistency and accuracy.
6074 Adjust dependencies.
6075
6076 2000-10-02 Akim Demaille <akim@epita.fr>
6077
6078 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
6079 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
6080 difficult and introduced a lot of core dump. It turns out that
6081 Bison used an implementation of `xmalloc' based on `calloc', and
6082 at various places it does depend upon the initialization to 0. I
6083 have not tried to isolate the pertinent places, and all the former
6084 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
6085 someone should address this issue.
6086
6087 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
6088 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
6089 files.
6090 Adjust dependencies.
6091 * src/warshall.h: New file.
6092 Propagate.
6093
6094 2000-10-02 Akim Demaille <akim@epita.fr>
6095
6096 Various anti-`extern in *.c' changes.
6097
6098 * src/system.h: Include `assert.h'.
6099
6100 2000-10-02 Akim Demaille <akim@epita.fr>
6101
6102 * src/state.h (nstates, final_state, first_state, first_shift)
6103 (first_reduction): Move their exportation from here...
6104 * src/LR0.h: to here.
6105 Adjust dependencies.
6106 * src/getargs.c (statisticsflag): New variable.
6107 Add support for `--statistics'.
6108 Adjust dependencies.
6109
6110 Remove a lot of now useless `extern' statements in most files.
6111
6112 2000-10-02 Akim Demaille <akim@epita.fr>
6113
6114 * src/LR0.h: New file.
6115 Propagate its use.
6116
6117 2000-10-02 Akim Demaille <akim@epita.fr>
6118
6119 * src/print.h: New file.
6120 Propagate its use.
6121 * src/print.c: Formatting and ordering changes.
6122 (verbose, terse): Replace with...
6123 (print_results): this new function.
6124 Adjust dependencies.
6125
6126 2000-10-02 Akim Demaille <akim@epita.fr>
6127
6128 * src/conflicts.c (conflict_report): New function.
6129 (conflict_log, verbose_conflict_log): Replace with...
6130 (print_conflicts): this function.
6131 Adjust dependencies.
6132 * src/conflicts.h: New file.
6133 Propagate its inclusion.
6134
6135 2000-10-02 Akim Demaille <akim@epita.fr>
6136
6137 * src/nullable.h: New file.
6138 Propagate its inclusion.
6139 * src/nullable.c: Formatting changes.
6140
6141 2000-10-02 Akim Demaille <akim@epita.fr>
6142
6143 * src/reduce.h: New file.
6144 Propagate its inclusion.
6145 * src/reduce.c: Topological sort and other formatting changes.
6146 (bool, TRUE, FALSE): Move their definition to...
6147 * src/system.h: here.
6148
6149 2000-10-02 Akim Demaille <akim@epita.fr>
6150
6151 * src/files.c: Formatting changes.
6152 (tryopen, tryclose, openfiles): Rename as...
6153 (xfopen, xfclose, open_files): this.
6154 (stringappend): static.
6155 * src/files.h: Complete the list of exported symbols.
6156 Propagate its use.
6157
6158 2000-10-02 Akim Demaille <akim@epita.fr>
6159
6160 * src/reader.h: New file.
6161 Propagate its use instead of tedious list of `extern' and
6162 prototypes.
6163 * src/reader.c: Formatting changes, topological sort,
6164 s/register//.
6165
6166 2000-10-02 Akim Demaille <akim@epita.fr>
6167
6168 * src/lex.h: Prototype `lex.c' exported functions.
6169 * src/reader.c: Adjust.
6170 * src/lex.c: Formatting changes.
6171 (safegetc): Rename as...
6172 (xgetc): this.
6173
6174 2000-10-02 Akim Demaille <akim@epita.fr>
6175
6176 * src/lalr.h: New file.
6177 Propagate its inclusion instead of prototypes and `extern'.
6178 * src/lalr.c: Formatting changes, topological sorting etc.
6179
6180 2000-10-02 Akim Demaille <akim@epita.fr>
6181
6182 * src/output.c (token_actions): Introduce a temporary array,
6183 YYDEFACT, that makes it possible for this function to use
6184 output_short_table.
6185
6186 2000-10-02 Akim Demaille <akim@epita.fr>
6187
6188 `user_toknums' is output as a `short[]' in `output.c', while it is
6189 defined as a `int[]' in `reader.c'. For consistency with the
6190 other output tables, `user_toknums' is now defined as a table of
6191 shorts.
6192
6193 * src/reader.c (user_toknums): Be a short table instead of an int
6194 table.
6195 Adjust dependencies.
6196
6197 Factor the short table outputs.
6198
6199 * src/output.c (output_short_table): New function.
6200 * src/output.c (output_gram, output_stos, output_rule_data)
6201 (output_base, output_table, output_check): Use it.
6202
6203 2000-10-02 Akim Demaille <akim@epita.fr>
6204
6205 * src/output.c (output): Topological sort of the functions, in
6206 order to get rid of the `static' prototypes.
6207 No longer use `register'.
6208 * src/output.h: New file.
6209 Propagate its inclusion in files explicitly prototyping functions
6210 from output.c.
6211
6212 2000-09-21 Akim Demaille <akim@epita.fr>
6213
6214 * src/atgeneral.m4: Update from Autoconf.
6215
6216 2000-09-21 Akim Demaille <akim@epita.fr>
6217
6218 * src/closure.h: New file.
6219 * src/closure.c: Formatting changes, topological sort over the
6220 functions, use of closure.h.
6221 (initialize_closure, finalize_closure): Rename as...
6222 (new_closure, free_closure): these. Adjust dependencies.
6223 * src/LR0.c: Formatting changes, topological sort, use of
6224 cloture.h.
6225 (initialize_states): Rename as...
6226 (new_states): this.
6227 * src/Makefile.am (noinst_HEADERS): Adjust.
6228
6229 2000-09-20 Akim Demaille <akim@epita.fr>
6230
6231 * src/acconfig.h: Don't protect config.h against multiple
6232 inclusion.
6233 Don't define PARAMS.
6234 * src/system.h: Define PARAMS.
6235 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
6236 purpose of config.h. system.h must not try to fix wrong
6237 definitions in config.h.
6238
6239 2000-09-20 Akim Demaille <akim@epita.fr>
6240
6241 * src/derives.h: New file.
6242 * src/main.c, src/derives.h: Use it.
6243 Formatting changes.
6244 * src/Makefile.am (noinst_HEADERS): Adjust.
6245
6246 2000-09-20 Akim Demaille <akim@epita.fr>
6247
6248 * tests/atgeneral.m4: Update from Autoconf.
6249 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
6250 (AT_CHECK_CALC): New macros.
6251 Use these macros to test bison with options `', `--raw',
6252 `--debug', `--yacc', `--yacc --debug'.
6253
6254 2000-09-19 Akim Demaille <akim@epita.fr>
6255
6256 * src/output.c: Formatting changes.
6257 * src/machine.h: Remove, leaving its contents in...
6258 * src/system.h: here.
6259 Include stdio.h.
6260 Adjust all dependencies on stdio.h and machine.h.
6261 * src/getargs.h: New file.
6262 Let all `extern' declarations about getargs.c be replaced with
6263 inclusion of `getargs.h'.
6264 * src/Makefile.am (noinst_HEADERS): Adjust.
6265
6266 * tests/calc.m4 (yyin): Be initialized in main, not on the global
6267 scope.
6268 (yyerror): Returns void, not int.
6269 * doc/bison.texinfo: Formatting changes.
6270
6271 2000-09-19 Akim Demaille <akim@epita.fr>
6272
6273 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
6274 portable.
6275
6276 2000-09-18 Akim Demaille <akim@epita.fr>
6277
6278 * configure.in: Append WARNING_CFLAGS to CFLAGS.
6279 * src/Makefile.am (INCLUDES): Don't.
6280 Be ready to fetch headers in lib/.
6281
6282 2000-09-18 Akim Demaille <akim@epita.fr>
6283
6284 * doc/bison.texinfo: Update the copyright.
6285 ANSIfy and GNUify the examples.
6286 Remove the old menu.
6287
6288 2000-09-18 Akim Demaille <akim@epita.fr>
6289
6290 First set of tests: use the `calc' example from the documentation.
6291
6292 * src/bison.s1 (yyparse): Condition the code using `yytname' which
6293 is defined only when YYDEBUG is.
6294 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
6295 * src/files.c (tryopen, tryclose): Formatting changes.
6296 Move to the top and be static.
6297 * src/reader.c (read_signed_integer): Likewise.
6298 * tests/calc.m4: New file.
6299 * Makefile.am, suite.m4: Adjust.
6300 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
6301
6302 2000-09-18 Akim Demaille <akim@epita.fr>
6303
6304 Add support for an Autotest test suite for Bison.
6305
6306 * m4/m4.m4, m4/atconfig.m4: New files.
6307 * m4/Makefile.am (EXTRA_DIST): Adjust.
6308 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
6309 files.
6310 * src/getargs.c: Display a more standard --version message.
6311 * src/reader.c (reader): Formatting changes.
6312 No longer depend upon VERSION_STRING.
6313 * configure.in: No longer use `dnl'.
6314 Set up the test suite and the new directory `tests/.
6315 (VERSION_STRING): Remove.
6316
6317 2000-04-14 Akim Demaille <akim@epita.fr>
6318
6319 * src/reader.c (copy_comment2): New function, same as former
6320 `copy_comment', but outputs into two FILE *.
6321 (copy_comment): Use it.
6322 (parse_union_decl): Use it.
6323 (get_type, parse_start_decl): Use the same `invalid' message.
6324 (parse_start_decl, parse_union_decl): Use the same `multiple'
6325 message.
6326 (parse_union_decl, copy_guard, copy_action): Use the same
6327 `unmatched' message.
6328 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
6329
6330 2000-03-31 Akim Demaille <akim@epita.fr>
6331
6332 * src/files.c (tryopen, tryclose): Move to the top.
6333 Be static.
6334
6335 2000-03-31 Akim Demaille <akim@epita.fr>
6336
6337 * src/main.c (main): Don't call `done', exit does it.
6338
6339 2000-03-31 Akim Demaille <akim@epita.fr>
6340
6341 * allocate.c: s/return (foo)/return foo/.
6342 * lalr.c: Likewise.
6343 * LR0.c: Likewise.
6344 * output.c: Likewise.
6345 * reader.c: Likewise.
6346 * symtab.c: Likewise.
6347 * vmsgetargs.c: Likewise.
6348
6349 2000-03-31 Akim Demaille <akim@epita.fr>
6350
6351 Clean up the error reporting functions.
6352
6353 * src/report.c: New file.
6354 * src/report.h: Likewise.
6355 * src/Makefile.am: Adjust.
6356 * m4/error.m4: New file.
6357 * m4/Makefile.am: Adjust.
6358 * configure.in (jm_PREREQ_ERROR): Call it.
6359 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
6360 Remove.
6361 (fatal, fatals): Remove. All callers use complain.c::fatal.
6362 (warn, warni, warns, warnss, warnss): Remove. All callers use
6363 complain.c::complain.
6364 (toomany): Remove, use fatal instead.
6365 * src/files.c (done): No argument, use complain_message_count.
6366 * src/main.c (main): Register `done' to `atexit'.
6367
6368 * src/getargs.c (usage): More `fputs', less `fprintf'.
6369
6370 2000-03-28 Akim Demaille <akim@epita.fr>
6371
6372 * lib/: New directory.
6373 * Makefile.am (SUBDIRS): Adjust.
6374 * configure.in: Adjust.
6375 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
6376 useless.
6377 * src/alloca.c: Moved to lib/.
6378 * src/getopt.c: Likewise.
6379 * src/getopt1.c: Likewise.
6380 * src/getopt.h: Likewise.
6381 * src/ansi2knr.c: Likewise.
6382 * src/ansi2knr.1: Likewise.
6383 * src/Makefile.am: Adjust.
6384 * lib/Makefile.am: New file.
6385
6386 2000-03-28 Akim Demaille <akim@epita.fr>
6387
6388 * src/getargs.c (usage): Refresh the help message.
6389
6390 2000-03-17 Akim Demaille <akim@epita.fr>
6391
6392 * src/getopt1.c: Updated from textutils 2.0e
6393 * src/getopt.c: Likewise.
6394 * src/getopt.h: Likewise.
6395
6396 2000-03-17 Akim Demaille <akim@epita.fr>
6397
6398 * src/Makefile.am (bison.simple): Fix the awk program: quote only
6399 the file name, not the whole `#line LINE FILE'.
6400
6401 2000-03-17 Akim Demaille <akim@epita.fr>
6402
6403 On syntax errors, report the token on which we choked.
6404
6405 * src/bison.s1 (yyparse): In the label yyerrlab, when
6406 YYERROR_VERBOSE, add yychar in msg.
6407
6408 2000-03-17 Akim Demaille <akim@epita.fr>
6409
6410 * src/reader.c (copy_at): New function.
6411 (copy_guard): Use it.
6412 (copy_action): Use it.
6413
6414 2000-03-17 Akim Demaille <akim@epita.fr>
6415
6416 Be kind to translators, save some useless translations.
6417
6418 * src/main.c (banner): New function.
6419 (fatal_banner): Use it.
6420 (warn_banner): Use it.
6421
6422 2000-03-17 Akim Demaille <akim@epita.fr>
6423
6424 * src/reader.c (copy_definition): Use copy_string and
6425 copy_comment. Removed now unused `match', `ended',
6426 `cplus_comment'.
6427 (copy_comment, copy_string): Moved, to be visible from
6428 copy_definition.
6429
6430 2000-03-17 Akim Demaille <akim@epita.fr>
6431
6432 * src/reader.c (copy_string): Declare `static inline'. No
6433 problems with inline, since it is checked by configure.
6434 (copy_comment): Likewise.
6435
6436 2000-03-17 Akim Demaille <akim@epita.fr>
6437
6438 * src/reader.c (packsymbols): Formatting changes.
6439
6440 2000-03-17 Akim Demaille <akim@epita.fr>
6441
6442 * src/reader.c (copy_comment): New function, factored out from:
6443 (copy_action): Use it. Removed now unused `match', `ended',
6444 `cplus_comment'.
6445 (copy_guard): Likewise.
6446
6447 2000-03-17 Akim Demaille <akim@epita.fr>
6448
6449 * src/reader.c (copy_string): New function, factored out from:
6450 (copy_action): Use it.
6451 (copy_guard): Likewise.
6452
6453 2000-03-17 Akim Demaille <akim@epita.fr>
6454
6455 Change the handling of @s so that they behave exactly like $s.
6456 There is now a pseudo variable @$ (readble and writable), location
6457 of the lhs of the rule (by default ranging from the location of
6458 the first symbol of the rhs, to the location of the last symbol,
6459 or, if the rhs is empty, YYLLOC).
6460
6461 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
6462 yyval.
6463 (yyparse): When providing a default semantic action, provide a
6464 default location action.
6465 (after the $): No longer change `*YYLSP', just stack YYLOC the
6466 same way you stack YYVAL.
6467 * src/reader.c (read_declarations): Use warns.
6468 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
6469 (copy_action, case '@'): Likewise.
6470 Use a standard error message, to save useless work from
6471 translators.
6472
6473 2000-03-17 Akim Demaille <akim@epita.fr>
6474
6475 * src/bison.s1: Formatting and cosmetics changes.
6476 * src/reader.c: Likewise.
6477 Update the Copyright notice.
6478
6479 2000-03-17 Akim Demaille <akim@epita.fr>
6480
6481 * src/bison.s1 (#line): All set to `#line' only, since the
6482 Makefile now handles them.
6483
6484 2000-03-16 Akim Demaille <akim@epita.fr>
6485
6486 * src/output.c (output_rule_data): Output the documentation of
6487 some of the tables.
6488 (Copyright notice): Update.
6489 Formatting changes.
6490
6491 2000-03-16 Akim Demaille <akim@epita.fr>
6492
6493 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
6494 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
6495 One `#if YYDEBUG' remains, since it uses variables which are
6496 defined only if `YYDEBUG != 0'.
6497
6498 2000-03-16 Akim Demaille <akim@epita.fr>
6499
6500 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
6501 and related variables so that the similarities are highlighted.
6502
6503 2000-03-16 Akim Demaille <akim@epita.fr>
6504
6505 * src/bison.s1: Properly indent CPP directives.
6506
6507 2000-03-16 Akim Demaille <akim@epita.fr>
6508
6509 * src/bison.s1: Properly indent the `alloca' CPP section.
6510
6511 2000-03-16 Akim Demaille <akim@epita.fr>
6512
6513 Do not hard code values of directories in `configure.in'.
6514 Update the `configure' tool chain.
6515
6516 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
6517 src/makefile.am.
6518 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
6519 (AC_OUTPUT): Add m4/Makefile.
6520 Bump to bison 1.28a, 1.29 has never been released.
6521 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
6522 handled via src/Makefile.am.
6523 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
6524 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
6525 autoheader.
6526 * Makefile.am (SUBDIRS): Add m4.
6527 (ACLOCAL_AM_FLAGS): New variable.
6528 (AUTOMAKE_OPTIONS): Add check-news.
6529 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
6530 the proper line number and file name.
6531 (DEFS): Propagate the location of bison library files and of the
6532 locale files.
6533 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
6534 builddir.
6535 * acinclude.m4: Remove, replaced by the directory m4.
6536 * m4/Makefile.am (EXTRA_DIST): New variable.
6537 * m4/gettext.m4: New file, from the fileutils.
6538 * m4/lcmessage.m4: Likewise
6539 * m4/progtest.m4: Likewise.
6540 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
6541
6542 2000-03-10 Akim Demaille <akim@epita.fr>
6543
6544 * src/closure.c:
6545 Formatting changes of various comments.
6546 Respect the GNU coding standards at various places.
6547 Don't use `_()' when no translation is needed.
6548
6549 1999-12-13 Jesse Thilo <jthilo@gnu.org>
6550
6551 * src/files.c:
6552 OS/2 honors TMPDIR environment variable.
6553
6554 1999-12-13 Jesse Thilo <jthilo@gnu.org>
6555
6556 * doc/bison.texinfo: Tweaked spelling and grammar.
6557 Updated ISBN.
6558 Removed reference to price of printed copy.
6559 Mention BISON_SIMPLE and BISON_HAIRY.
6560
6561 1999-12-13 Jesse Thilo <jthilo@gnu.org>
6562
6563 * configure.in, NEWS:
6564 Bison 1.29 released.
6565
6566 1999-10-27 Jesse Thilo <jthilo@gnu.org>
6567
6568 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
6569 Added reference card.
6570
6571 1999-07-26 Jesse Thilo <jthilo@gnu.org>
6572
6573 * po/ru.po: Added Russian translation.
6574
6575 1999-07-26 Jesse Thilo <jthilo@gnu.org>
6576
6577 * configure.in: Added Russian translation.
6578
6579 1999-07-06 Jesse Thilo <jthilo@gnu.org>
6580
6581 * configure.in, NEWS, README:
6582 Released version 1.28.
6583
6584 1999-06-14 Jesse Thilo <jthilo@gnu.org>
6585
6586 * src/system.h:
6587 Squashed redefinition warning on some systems.
6588
6589 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
6590 Have configure build version string instead of relying on ANSI string
6591 concatentation.
6592
6593 1999-06-14 Jesse Thilo <jthilo@gnu.org>
6594
6595 * po/POTFILES.in: Got rid of version.c.
6596
6597 1999-06-14 Jesse Thilo <jthilo@gnu.org>
6598
6599 * acconfig.h, configure.in:
6600 Have configure build version string instead of relying on ANSI string
6601 concatentation.
6602
6603 1999-06-08 Jesse Thilo <jthilo@gnu.org>
6604
6605 * doc/bison.1:
6606 Dropped mention of `+' for long-named options.
6607
6608 1999-05-30 Jesse Thilo <jthilo@gnu.org>
6609
6610 * src/files.c: Added <unistd.h> for unlink().
6611
6612 * src/Makefile.am, src/system.h:
6613 I18n fixes.
6614
6615 1999-05-30 Jesse Thilo <jthilo@gnu.org>
6616
6617 * README: Added a FAQ list.
6618
6619 * configure.in, acconfig.h:
6620 I18n fixes.
6621
6622 1999-05-30 Jesse Thilo <jthilo@gnu.org>
6623
6624 * doc/FAQ, doc/Makefile.am:
6625 Added a FAQ list.
6626
6627 1999-05-19 Jesse Thilo <jthilo@gnu.org>
6628
6629 * src/alloc.h, src/symtab.h, src/version.c:
6630 Protected inclusion of "config.h" with HAVE_CONFIG_H.
6631
6632 1999-04-18 Jesse Thilo <jthilo@gnu.org>
6633
6634 * src/.cvsignore, src/Makefile.am:
6635 Reorganized: sources in `src', documentation in `doc'.
6636
6637 * src/lex.c (literalchar):
6638 fixed the code for escaping double quotes (thanks
6639 Jonathan Czisny.)
6640
6641 1999-04-18 Jesse Thilo <jthilo@gnu.org>
6642
6643 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
6644 Adjusted paths to reflect directory reorganization.
6645
6646 1999-04-18 Jesse Thilo <jthilo@gnu.org>
6647
6648 * doc/.cvsignore, doc/Makefile.am:
6649 Reorganized: sources in `src', documentation in `doc'.
6650
6651 1999-04-18 Jesse Thilo <jthilo@gnu.org>
6652
6653 * configure.in:
6654 Updated AC_INIT file to reflect directory reorganization.
6655
6656 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
6657 Reorganized: sources in `src', documentation in `doc'.
6658
6659 1999-04-13 Jesse Thilo <jthilo@gnu.org>
6660
6661 * src/allocate.c:
6662 Don't declare calloc() and realloc() if not necessary.
6663
6664 1999-04-13 Jesse Thilo <jthilo@gnu.org>
6665
6666 * configure.in, acconfig.h, acinclude.m4:
6667 Don't declare calloc() and realloc() if not necessary.
6668
6669 1999-03-23 Jesse Thilo <jthilo@gnu.org>
6670
6671 * po/.cvsignore: Added i18n support.
6672
6673 1999-03-23 Jesse Thilo <jthilo@gnu.org>
6674
6675 * acconfig.h, configure.in, Makefile.am:
6676 Added i18n support.
6677
6678 1999-03-22 Jesse Thilo <jthilo@gnu.org>
6679
6680 * src/bison.s1: Fixed #line numbers.
6681
6682 1999-03-15 Jesse Thilo <jthilo@gnu.org>
6683
6684 * po/es.po, po/fr.po, po/nl.po, po/de.po:
6685 Added PO files from Translation Project.
6686
6687 1999-03-03 Jesse Thilo <jthilo@gnu.org>
6688
6689 * Makefile.am:
6690 Added support for non-ANSI compilers (ansi2knr).
6691
6692 1999-02-16 Jesse Thilo <jthilo@gnu.org>
6693
6694 * configure.in: Bumped version number to 1.27.
6695
6696 * Makefile.am:
6697 Added `bison.simple' to list of files removed by `make distclean'.
6698
6699 1999-02-12 Jesse Thilo <jthilo@gnu.org>
6700
6701 * src/files.c, src/files.h:
6702 Defined locations of parser files in config.h instead of Makefile.
6703
6704 1999-02-12 Jesse Thilo <jthilo@gnu.org>
6705
6706 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
6707 Defined locations of parser files in config.h instead of Makefile.
6708
6709 1999-02-09 Jesse Thilo <jthilo@gnu.org>
6710
6711 * Makefile.am:
6712 Removed inappropriate use of $< macro.
6713
6714 1999-02-05 Jesse Thilo <jthilo@gnu.org>
6715
6716 * po/Makefile.in.in, po/POTFILES.in:
6717 Add `po' directory skeleton.
6718
6719 1999-01-27 Jesse Thilo <jthilo@gnu.org>
6720
6721 * README: Document help-bison list.
6722
6723 * configure.in: Add check for mkstemp().
6724
6725 1999-01-20 Jesse Thilo <jthilo@gnu.org>
6726
6727 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
6728 Hush a few compiler warnings.
6729
6730 * src/files.c:
6731 Add tryclose(), which verifies that fclose was successful.
6732 Hush a couple of compiler warnings.
6733
6734 1999-01-20 Jesse Thilo <jthilo@gnu.org>
6735
6736 * Makefile.am, OChangeLog:
6737 ChangeLog is now automatically generated. Include the old version as
6738 OChangeLog.
6739
6740 1999-01-14 Jesse Thilo <jthilo@gnu.org>
6741
6742 * src/gram.h, src/lalr.c, src/lex.c, src/lex.h, src/machine.h, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/state.h, src/symtab.c, src/symtab.h, src/types.h, src/vmsgetargs.c, src/warshall.c, src/allocate.c, src/alloc.h, src/bison.s1, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/files.h, src/getargs.c, src/gram.c, src/LR0.c:
6743 Update FSF address.
6744
6745 1999-01-14 Jesse Thilo <jthilo@gnu.org>
6746
6747 * doc/bison.texinfo: Fix formatting glitch.
6748
6749 * doc/bison.texinfo: Update FSF address.
6750
6751 1999-01-14 Jesse Thilo <jthilo@gnu.org>
6752
6753 * acconfig.h: Update FSF address.
6754
6755 1999-01-08 Jesse Thilo <jthilo@gnu.org>
6756
6757 * src/system.h:
6758 Don't define PACKAGE here, since config.h defines it.
6759
6760 1998-12-30 Jesse Thilo <jthilo@gnu.org>
6761
6762 * src/reader.c: Update copyright date.
6763
6764 * src/main.c:
6765 Ditch sprintf to statically-sized buffers in fatal/warn functions in
6766 favor of output directly to stderr (avoids buffer overruns).
6767
6768 * src/reader.c: Some checks for premature EOF.
6769
6770 * src/allocate.c, src/alloc.h, src/closure.c, src/conflicts.c, src/derives.c, src/getargs.c, src/gram.c, src/lalr.c, src/lex.c, src/LR0.c, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reduce.c, src/symtab.c, src/symtab.h, src/warshall.c:
6771 Use prototypes if the compiler understands them.
6772
6773 * src/files.c: Honor TMPDIR on Unix hosts.
6774 Use prototypes if the compiler understands them.
6775
6776 * src/reader.c:
6777 Fix a couple of buffer overrun bugs.
6778 Use prototypes if the compiler understands them.
6779
6780 * src/system.h: Include unistd.h and ctype.h.
6781 Use #ifdef instead of #if for NLS symbols.
6782
6783 1998-12-30 Jesse Thilo <jthilo@gnu.org>
6784
6785 * doc/bison.texinfo:
6786 Delete comment "consider using @set for edition number, etc..." since
6787 we now are doing so.
6788
6789 1998-12-30 Jesse Thilo <jthilo@gnu.org>
6790
6791 * configure.in:
6792 Use prototypes if the compiler understands them.
6793
6794 * NEWS: Document 1.26 highlights.
6795
6796 * Makefile.am: Require Automake 1.3 or later.
6797
6798 * acconfig.h:
6799 Use prototypes if the compiler understands them.
6800
6801 1998-12-29 Jesse Thilo <jthilo@gnu.org>
6802
6803 * src/version.c:
6804 Use VERSION symbol from automake for version number.
6805
6806 1998-12-29 Jesse Thilo <jthilo@gnu.org>
6807
6808 * acconfig.h, configure.in, version.cin:
6809 Use VERSION symbol from automake for version number.
6810
6811 1998-11-28 Jesse Thilo <jthilo@gnu.org>
6812
6813 * Makefile.am:
6814 Distribute original version of simple parser (bison.s1), not built
6815 version (bison.simple).
6816
6817 1998-11-28 Jesse Thilo <jthilo@gnu.org>
6818
6819 * doc/bison.texinfo: Add info dir entry.
6820
6821 * doc/bison.texinfo:
6822 Let automake put version number into documentation.
6823
6824 1998-11-26 Jesse Thilo <jthilo@gnu.org>
6825
6826 * src/bison.cld, src/build.com, src/vmshlp.mar:
6827 Add non-RCS files from /gd/gnu/bison.
6828
6829 1998-11-26 Jesse Thilo <jthilo@gnu.org>
6830
6831 * doc/bison.1:
6832 Document the BISON_HAIRY and BISON_SIMPLE variables.
6833
6834 1998-11-25 Jesse Thilo <jthilo@gnu.org>
6835
6836 * src/version.c: Build version.c automatically.
6837
6838 * src/reader.c:
6839 Fix token numbering (used to start at 258, not 257).
6840
6841 * src/system.h: Include config.h.
6842
6843 * src/getargs.c: Update bug report address.
6844
6845 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
6846 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
6847
6848 1998-11-25 Jesse Thilo <jthilo@gnu.org>
6849
6850 * Makefile.am:
6851 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
6852
6853 * configure.in, version.cin:
6854 Build version.c automatically.
6855
6856 * AUTHORS: Add AUTHORS file.
6857
6858 * README: Update bug report address.
6859
6860 * bison.simple:
6861 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
6862
6863 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
6864 Add automake stuff.
6865
6866 1998-11-25 Jesse Thilo <jthilo@gnu.org>
6867
6868 * doc/bison.texinfo: Clean up some formatting.
6869
6870 1998-05-05 Richard Stallman <rms@gnu.org>
6871
6872 * doc/bison.texinfo:
6873 Explain better why to make a pure parser.
6874
6875 1998-01-05 Richard Stallman <rms@gnu.org>
6876
6877 * src/files.c (openfiles):
6878 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
6879 find a temporary directory, if possible. Do not unlink files while
6880 they are open.
6881
6882 1997-08-25 Richard Stallman <rms@gnu.org>
6883
6884 * src/reader.c (stack_offset;):
6885 Change some warni to warns.
6886
6887 * src/lex.c (literalchar): Use warns, not warni.
6888
6889 1997-06-28 Richard Stallman <rms@gnu.org>
6890
6891 * src/bison.s1: Add a Bison version comment.
6892
6893 * src/main.c (fatal, warn, berror):
6894 Use program_name.
6895
6896 1997-06-28 Richard Stallman <rms@gnu.org>
6897
6898 * Makefile.in (bison_version): New variable.
6899 (dist): Use that variable.
6900 (bison.s1): Substitute the Bison version into bison.simple.
6901
6902 * bison.simple: Add a Bison version comment.
6903
6904 1997-06-18 Richard Stallman <rms@gnu.org>
6905
6906 * src/main.c (fatal, warn, berror):
6907 Make error messages standard.
6908 (toomany): Improve error message text.
6909
6910 * src/LR0.c, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/lalr.c, src/lex.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/symtab.c:
6911 new.h renamed to alloc.h.
6912
6913 1997-06-18 Richard Stallman <rms@gnu.org>
6914
6915 * Makefile.in: new.h renamed to alloc.h.
6916
6917 1997-05-24 Richard Stallman <rms@gnu.org>
6918
6919 * src/lex.c (literalchar):
6920 Fix the code for escaping \, " and '.
6921
6922 (lex): Avoid trouble when there are many chars
6923 to discard in a char literal with just several chars in it.
6924
6925 1997-05-17 Richard Stallman <rms@gnu.org>
6926
6927 * src/bison.s1:
6928 Use malloc, if using alloca is troublesome.
6929 (YYSTACK_USE_ALLOCA): New flag macro.
6930 Define it for some systems and compilers.
6931 (YYSTACK_ALLOC): New macro.
6932 (yyparse): Use YYSTACK_ALLOC to allocate stack.
6933 If it was malloc'd, free it.
6934
6935 1997-05-17 Richard Stallman <rms@gnu.org>
6936
6937 * bison.simple:
6938 Use malloc, if using alloca is troublesome.
6939 (YYSTACK_USE_ALLOCA): New flag macro.
6940 Define it for some systems and compilers.
6941 (YYSTACK_ALLOC): New macro.
6942 (yyparse): Use YYSTACK_ALLOC to allocate stack.
6943 If it was malloc'd, free it.
6944
6945 1997-04-23 Richard Stallman <rms@gnu.org>
6946
6947 * src/bison.s1:
6948 (alloca) [__hpux]: Always define as __builtin_alloca.
6949
6950 1997-04-23 Richard Stallman <rms@gnu.org>
6951
6952 * bison.simple:
6953 (alloca) [__hpux]: Always define as __builtin_alloca.
6954
6955 1997-04-22 Richard Stallman <rms@gnu.org>
6956
6957 * src/bison.s1:
6958 [__hpux]: Include alloca.h (right for HPUX 10)
6959 instead of declaring alloca (right for HPUX 9).
6960
6961 * src/bison.s1 (__yy_memcpy):
6962 Declare arg `count' as unsigned int.
6963 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
6964
6965 1997-04-22 Richard Stallman <rms@gnu.org>
6966
6967 * bison.simple:
6968 [__hpux]: Include alloca.h (right for HPUX 10)
6969 instead of declaring alloca (right for HPUX 9).
6970
6971 * bison.simple (__yy_memcpy):
6972 Declare arg `count' as unsigned int.
6973 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
6974
6975 1997-01-03 Richard Stallman <rms@gnu.org>
6976
6977 * src/allocate.c: [__STDC__ or _MSC_VER]:
6978 Declare calloc and realloc to return void *.
6979
6980 1997-01-02 Richard Stallman <rms@gnu.org>
6981
6982 * src/system.h:
6983 [_MSC_VER]: Include stdlib.h and process.h.
6984 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
6985
6986 * src/main.c (main): Return FAILURE as a value.
6987 (printable_version): Declare arg as int, not char.
6988
6989 1997-01-02 Richard Stallman <rms@gnu.org>
6990
6991 * Makefile.in (dist):
6992 Explicitly check for symlinks, and copy them.
6993
6994 1996-12-19 Richard Stallman <rms@gnu.org>
6995
6996 * src/files.c:
6997 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
6998
6999 1996-12-18 Paul Eggert <eggert@gnu.org>
7000
7001 * src/bison.s1 (yyparse):
7002 If __GNUC__ and YYPARSE_PARAM are both defined,
7003 declare yyparse to have a void * argument.
7004
7005 1996-12-18 Paul Eggert <eggert@gnu.org>
7006
7007 * bison.simple (yyparse):
7008 If __GNUC__ and YYPARSE_PARAM are both defined,
7009 declare yyparse to have a void * argument.
7010
7011 1996-12-17 Richard Stallman <rms@gnu.org>
7012
7013 * src/reduce.c (nbits): Add some casts.
7014
7015 1996-08-12 Richard Stallman <rms@gnu.org>
7016
7017 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
7018
7019 1996-08-12 Richard Stallman <rms@gnu.org>
7020
7021 * bison.simple: Test _MSDOS as well as _MSDOS_.
7022
7023 1996-07-31 Richard Stallman <rms@gnu.org>
7024
7025 * src/bison.s1:
7026 [__sun && __i386]: Include alloca.h.
7027
7028 1996-07-31 Richard Stallman <rms@gnu.org>
7029
7030 * bison.simple:
7031 [__sun && __i386]: Include alloca.h.
7032
7033 1996-07-30 Richard Stallman <rms@gnu.org>
7034
7035 * src/bison.s1: Comment change.
7036
7037 * src/bison.s1: Test _MSDOS_, not MSDOS.
7038
7039 1996-07-30 Richard Stallman <rms@gnu.org>
7040
7041 * bison.simple: Comment change.
7042
7043 * bison.simple: Test _MSDOS_, not MSDOS.
7044
7045 1996-06-01 Richard Stallman <rms@gnu.org>
7046
7047 * src/reduce.c, src/reader.c, src/print.c, src/output.c, src/nullable.c, src/lex.c, src/lalr.c, src/getargs.c, src/derives.c, src/conflicts.c, src/closure.c, src/allocate.c:
7048 Insert `_' macro around many string constants.
7049
7050 * src/main.c:
7051 Insert `_' macro around many string constants.
7052
7053 (main): Call setlocale, bindtextdomain and textdomain.
7054
7055 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
7056 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
7057 [ENABLE_NLS]: Include libintl.h.
7058 [ENABLE_NLS] (gettext): Define.
7059 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
7060 (N_, PACKAGE, LOCALEDIR): New macros.
7061
7062 1996-06-01 Richard Stallman <rms@gnu.org>
7063
7064 * POTFILES.in: New file.
7065
7066 * Makefile.in (allocate.o):
7067 Define target explicitly.
7068
7069 * Makefile.in (CFLAGS): Set to @CFLAGS@.
7070 (LDFLAGS): Set to @LDFLAGS@.
7071 (configure): Run autoconf only if preceding `cd' succeeds.
7072 (bison.s1): Redirect output to temporary file then move the
7073 temporary to the target, rather than redirecting directly to bison.s1.
7074 (clean): Remove config.status and config.log.
7075 (distclean): Don't remove config.status here.
7076
7077 1996-05-12 Richard Stallman <rms@gnu.org>
7078
7079 * src/bison.s1:
7080 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
7081
7082 1996-05-12 Richard Stallman <rms@gnu.org>
7083
7084 * bison.simple:
7085 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
7086
7087 1996-05-11 Richard Stallman <rms@gnu.org>
7088
7089 * src/bison.s1 (__yy_memcpy):
7090 Really reorder the args, as was supposedly done on Feb 14 1995.
7091 (yyparse): Calls changed accordingly.
7092
7093 1996-05-11 Richard Stallman <rms@gnu.org>
7094
7095 * Makefile.in (dist): Don't use $(srcdir).
7096
7097 * bison.simple (__yy_memcpy):
7098 Really reorder the args, as was supposedly done on Feb 14 1995.
7099 (yyparse): Calls changed accordingly.
7100
7101 1996-01-27 Richard Stallman <rms@gnu.org>
7102
7103 * src/output.c (output_rule_data):
7104 Test YYERROR_VERBOSE in the conditional
7105 around the definition of ttyname.
7106
7107 1995-12-29 Richard Stallman <rms@gnu.org>
7108
7109 * src/bison.s1:
7110 Fix line numbers in #line commands.
7111
7112 1995-12-29 Richard Stallman <rms@gnu.org>
7113
7114 * bison.simple:
7115 Fix line numbers in #line commands.
7116
7117 1995-12-27 Richard Stallman <rms@gnu.org>
7118
7119 * src/bison.s1 (YYPARSE_PARAM_DECL):
7120 In C++, make it always null.
7121 (YYPARSE_PARAM_ARG): New macro.
7122 (yyparse): Use YYPARSE_PARAM_ARG.
7123
7124 1995-12-27 Richard Stallman <rms@gnu.org>
7125
7126 * bison.simple (YYPARSE_PARAM_DECL):
7127 In C++, make it always null.
7128 (YYPARSE_PARAM_ARG): New macro.
7129 (yyparse): Use YYPARSE_PARAM_ARG.
7130
7131 1995-11-29 Richard Stallman <rms@gnu.org>
7132
7133 * doc/bison.texinfo:
7134 Describe literal string tokens, %raw, %no_lines, %token_table.
7135
7136 1995-11-29 Daniel Hagerty <hag@gnu.org>
7137
7138 * doc/bison.texinfo: Fixed update date
7139
7140 1995-10-16 Richard Stallman <rms@gnu.org>
7141
7142 * src/version.c: Version 1.25.
7143
7144 1995-10-16 Richard Stallman <rms@gnu.org>
7145
7146 * NEWS: *** empty log message ***
7147
7148 1995-10-16 Richard Stallman <rms@gnu.org>
7149
7150 * doc/bison.1, doc/bison.rnh:
7151 Add new options.
7152
7153 1995-10-15 Richard Stallman <rms@gnu.org>
7154
7155 * src/vmsgetargs.c, src/getargs.c:
7156 Added -n, -k, and -raw switches.
7157 (noparserflag, toknumflag, rawtoknumflag): New variables.
7158
7159 * src/symtab.h (SALIAS):
7160 New #define for adding aliases to %token.
7161 (struct bucket): Added `alias' field.
7162
7163 * src/reduce.c (reduce_grammar):
7164 Revise error message.
7165 (print_notices): Remove final `.' from error message.
7166
7167 * src/reader.c (reader_output_yylsp):
7168 New function.
7169 (readgram): Use `#if 0' around code that accepted %command
7170 inside grammar rules: The documentation doesn't allow it,
7171 and it will fail since the %command processors scan for the next %.
7172 (parse_token_decl): Extended the %token
7173 declaration to allow a multi-character symbol as an alias.
7174 (parse_thong_decl): New function.
7175 (read_declarations): Added %thong declarations.
7176 (read_declarations): Handle NOOP to deal with allowing
7177 % declarations as another means to specify the flags.
7178 (readgram): Allow %prec prior to semantics embedded in a rule.
7179 (skip_to_char, read_declarations, copy_definition)
7180 (parse_token_decl, parse_start_decl, parse_type_decl)
7181 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
7182 (get_type_name, copy_guard, copy_action, readgram)
7183 (get_type, packsymbols): Revised most error messages.
7184 Changed `fatal' to `warnxxx' to avoid aborting for error.
7185 Revised and use multiple warnxxx functions to avoid using VARARGS1.
7186 (read_declarations): Improve the error message for
7187 an invalid character. Do not abort.
7188 (read_declarations, copy_guard, copy_action): Use
7189 printable_version to avoid unprintable characters in printed output.
7190 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
7191 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
7192 Allow the type of a non-terminal can be given
7193 more than once, as long as all specifications give the same type.
7194
7195 * src/output.c:
7196 (output_headers, output_trailers, output, output_gram)
7197 (output_rule_data): Implement noparserflag variable.
7198 Implement toknumflag variable.
7199 (output): Call reader_output_yylsp to output LTYPESTR.
7200
7201 * src/main.c (main):
7202 If reader sees an error, don't process the grammar.
7203 (fatals): Updated to not use VARARGS1.
7204 (printable_version, int_to_string, warn, warni, warns, warnss)
7205 (warnsss): New error reporting functions. Avoid abort for error.
7206
7207 * src/lex.h:
7208 Added THONG and NOOP for alias processing.
7209 Added SETOPT for the new code that allows setting options with %flags.
7210
7211 * src/lex.c:
7212 Include getopt.h. Add some extern decls.
7213 (safegetc): New function to deal with EOF gracefully.
7214 (literalchar); new function to deal with reading \ escapes.
7215 (lex): Use literalchar.
7216 (lex): Implemented "..." tokens.
7217 (literalchar, lex, parse_percent_token): Made tokenbuffer
7218 always contain the token. This includes growing the token
7219 buffer while reading an integer.
7220 (parse_percent_token): Replaced if-else statement with percent_table.
7221 (parse_percent_token): Added % declarations as another
7222 way to specify the flags -n, -l, and -r. Also added hooks for
7223 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
7224 major changes to files.c.
7225 (lex) Retain in the incoming stream a character following
7226 an incorrect '/'.
7227 (skip_white_space, lex): Revised most error messages
7228 and changed fatal to warn to avoid aborting.
7229 (percent_table): Added %thong declarations.
7230
7231 * src/gram.h: Comment changes.
7232
7233 * src/files.c (openfiles, open_extra_files, done):
7234 Add faction flag
7235 and actfile file. Handle noparserflag. Both for -n switch.
7236
7237 * src/conflicts.c (resolve_sr_conflict):
7238 Remove use of alloca.
7239
7240 1995-06-01 Jim Meyering <meyering@gnu.org>
7241
7242 * doc/bison.texinfo: *** empty log message ***
7243
7244 1995-05-06 Richard Stallman <rms@gnu.org>
7245
7246 * src/bison.s1: Comment change.
7247
7248 1995-05-06 Richard Stallman <rms@gnu.org>
7249
7250 * bison.simple: Comment change.
7251
7252 1995-05-03 Richard Stallman <rms@gnu.org>
7253
7254 * src/version.c: Version now 1.24.
7255
7256 * src/bison.s1: Change distribution terms.
7257
7258 * src/version.c: Version now 1.23.
7259
7260 1995-05-03 Richard Stallman <rms@gnu.org>
7261
7262 * doc/bison.texinfo:
7263 Rewrite "Conditions for Using Bison".
7264 Update version to 1.24.
7265
7266 1995-05-03 Richard Stallman <rms@gnu.org>
7267
7268 * bison.simple: Change distribution terms.
7269
7270 1995-02-23 Richard Stallman <rms@gnu.org>
7271
7272 * src/files.c: Test __VMS_POSIX as well as VMS.
7273
7274 1995-02-14 Jim Meyering <meyering@gnu.org>
7275
7276 * src/bison.s1 (__yy_memcpy):
7277 Renamed from __yy_bcopy to avoid
7278 confusion. Reverse FROM and TO arguments to be consistent with
7279 those of memcpy.
7280
7281 1995-02-14 Jim Meyering <meyering@gnu.org>
7282
7283 * bison.simple (__yy_memcpy):
7284 Renamed from __yy_bcopy to avoid
7285 confusion. Reverse FROM and TO arguments to be consistent with
7286 those of memcpy.
7287
7288 1994-11-10 David J. MacKenzie <djm@gnu.org>
7289
7290 * NEWS: reformat
7291
7292 * NEWS: New file.
7293
7294 * Makefile.in (DISTFILES): Include NEWS.
7295
7296 * Makefile.in (DISTFILES):
7297 Include install-sh, not install.sh.
7298
7299 * configure.in: Update to Autoconf v2 macro names.
7300
7301 1994-10-05 David J. MacKenzie <djm@gnu.org>
7302
7303 * Makefile.in: fix typo
7304
7305 * Makefile.in (prefix, exec_prefix):
7306 Let configure set them.
7307
7308 1994-09-28 David J. MacKenzie <djm@gnu.org>
7309
7310 * Makefile.in: Set datadir to $(prefix)/share.
7311
7312 1994-09-15 Richard Stallman <rms@gnu.org>
7313
7314 * src/bison.s1:
7315 Update copyright notice and GPL version.
7316
7317 1994-09-15 Richard Stallman <rms@gnu.org>
7318
7319 * bison.simple:
7320 Update copyright notice and GPL version.
7321
7322 1994-07-12 Richard Stallman <rms@gnu.org>
7323
7324 * src/reduce.c, src/reader.c:
7325 entered into RCS
7326
7327 1994-05-05 David J. MacKenzie <djm@gnu.org>
7328
7329 * Makefile.in: entered into RCS
7330
7331 1994-03-26 Richard Stallman <rms@gnu.org>
7332
7333 * src/bison.s1: entered into RCS
7334
7335 1994-03-26 Richard Stallman <rms@gnu.org>
7336
7337 * bison.simple: entered into RCS
7338
7339 1994-03-25 Richard Stallman <rms@gnu.org>
7340
7341 * src/main.c: entered into RCS
7342
7343 1994-03-24 Richard Stallman <rms@gnu.org>
7344
7345 * src/conflicts.c: entered into RCS
7346
7347 1994-01-02 Richard Stallman <rms@gnu.org>
7348
7349 * Makefile.in: *** empty log message ***
7350
7351 1993-11-21 Richard Stallman <rms@gnu.org>
7352
7353 * src/bison.s1: *** empty log message ***
7354
7355 1993-11-21 Richard Stallman <rms@gnu.org>
7356
7357 * doc/bison.texinfo: entered into RCS
7358
7359 * doc/bison.texinfo: *** empty log message ***
7360
7361 1993-11-21 Richard Stallman <rms@gnu.org>
7362
7363 * bison.simple: *** empty log message ***
7364
7365 1993-10-25 David J. MacKenzie <djm@gnu.org>
7366
7367 * doc/bison.texinfo: *** empty log message ***
7368
7369 1993-10-19 Richard Stallman <rms@gnu.org>
7370
7371 * src/bison.s1: *** empty log message ***
7372
7373 1993-10-19 Richard Stallman <rms@gnu.org>
7374
7375 * bison.simple: *** empty log message ***
7376
7377 1993-10-14 Richard Stallman <rms@gnu.org>
7378
7379 * src/bison.s1: *** empty log message ***
7380
7381 1993-10-14 Richard Stallman <rms@gnu.org>
7382
7383 * bison.simple: *** empty log message ***
7384
7385 1993-09-14 David J. MacKenzie <djm@gnu.org>
7386
7387 * doc/bison.texinfo: *** empty log message ***
7388
7389 1993-09-13 Noah Friedman <friedman@gnu.org>
7390
7391 * Makefile.in: *** empty log message ***
7392
7393 1993-09-10 Richard Stallman <rms@gnu.org>
7394
7395 * src/conflicts.c: *** empty log message ***
7396
7397 * src/system.h: entered into RCS
7398
7399 1993-09-10 Richard Stallman <rms@gnu.org>
7400
7401 * doc/bison.1: entered into RCS
7402
7403 1993-09-06 Noah Friedman <friedman@gnu.org>
7404
7405 * src/version.c: entered into RCS
7406
7407 1993-09-06 Noah Friedman <friedman@gnu.org>
7408
7409 * Makefile.in: *** empty log message ***
7410
7411 1993-07-30 David J. MacKenzie <djm@gnu.org>
7412
7413 * Makefile.in: *** empty log message ***
7414
7415 1993-07-24 Richard Stallman <rms@gnu.org>
7416
7417 * src/bison.s1: *** empty log message ***
7418
7419 1993-07-24 Richard Stallman <rms@gnu.org>
7420
7421 * bison.simple: *** empty log message ***
7422
7423 1993-07-08 David J. MacKenzie <djm@gnu.org>
7424
7425 * Makefile.in: *** empty log message ***
7426
7427 1993-07-04 Richard Stallman <rms@gnu.org>
7428
7429 * src/bison.s1: *** empty log message ***
7430
7431 1993-07-04 Richard Stallman <rms@gnu.org>
7432
7433 * bison.simple: *** empty log message ***
7434
7435 1993-06-26 David J. MacKenzie <djm@gnu.org>
7436
7437 * src/getargs.c: entered into RCS
7438
7439 1993-06-26 David J. MacKenzie <djm@gnu.org>
7440
7441 * doc/bison.texinfo: *** empty log message ***
7442
7443 * doc/bison.1: New file.
7444
7445 1993-06-25 Richard Stallman <rms@gnu.org>
7446
7447 * src/getargs.c: New file.
7448
7449 1993-06-16 Richard Stallman <rms@gnu.org>
7450
7451 * src/bison.s1: *** empty log message ***
7452
7453 1993-06-16 Richard Stallman <rms@gnu.org>
7454
7455 * bison.simple: *** empty log message ***
7456
7457 1993-06-03 Richard Stallman <rms@gnu.org>
7458
7459 * src/bison.s1: New file.
7460
7461 1993-06-03 Richard Stallman <rms@gnu.org>
7462
7463 * doc/bison.texinfo: *** empty log message ***
7464
7465 1993-06-03 Richard Stallman <rms@gnu.org>
7466
7467 * bison.simple: New file.
7468
7469 1993-05-19 Richard Stallman <rms@gnu.org>
7470
7471 * doc/bison.texinfo: New file.
7472
7473 1993-05-07 Noah Friedman <friedman@gnu.org>
7474
7475 * Makefile.in: *** empty log message ***
7476
7477 1993-04-28 Noah Friedman <friedman@gnu.org>
7478
7479 * src/reader.c: *** empty log message ***
7480
7481 1993-04-23 Noah Friedman <friedman@gnu.org>
7482
7483 * src/alloc.h: entered into RCS
7484
7485 1993-04-20 David J. MacKenzie <djm@gnu.org>
7486
7487 * src/version.c: *** empty log message ***
7488
7489 * src/files.c, src/allocate.c:
7490 entered into RCS
7491
7492 * src/reader.c: *** empty log message ***
7493
7494 * src/lex.c: entered into RCS
7495
7496 * src/conflicts.c: New file.
7497
7498 * src/symtab.c: entered into RCS
7499
7500 * src/alloc.h: New file.
7501
7502 * src/LR0.c: entered into RCS
7503
7504 1993-04-18 Noah Friedman <friedman@gnu.org>
7505
7506 * src/reader.c: New file.
7507
7508 * src/version.c: *** empty log message ***
7509
7510 1993-04-18 Noah Friedman <friedman@gnu.org>
7511
7512 * Makefile.in: *** empty log message ***
7513
7514 1993-04-17 Noah Friedman <friedman@gnu.org>
7515
7516 * Makefile.in: *** empty log message ***
7517
7518 1993-04-15 Richard Stallman <rms@gnu.org>
7519
7520 * src/main.c, src/files.c:
7521 New file.
7522
7523 1993-04-15 Noah Friedman <friedman@gnu.org>
7524
7525 * configure.in: entered into RCS
7526
7527 * configure.in: *** empty log message ***
7528
7529 * configure.in: New file.
7530
7531 1993-04-14 Richard Stallman <rms@gnu.org>
7532
7533 * Makefile.in: New file.
7534
7535 1993-04-13 Richard Stallman <rms@gnu.org>
7536
7537 * src/version.c: New file.
7538
7539 1993-03-25 Richard Stallman <rms@gnu.org>
7540
7541 * src/output.c: entered into RCS
7542
7543 1992-09-25 Richard Stallman <rms@gnu.org>
7544
7545 * configure.bat: entered into RCS
7546
7547 1992-06-22 Richard Stallman <rms@gnu.org>
7548
7549 * src/vmsgetargs.c: entered into RCS
7550
7551 1992-06-22 Richard Stallman <rms@gnu.org>
7552
7553 * doc/bison.rnh: entered into RCS
7554
7555 1992-04-20 David J. MacKenzie <djm@gnu.org>
7556
7557 * README: entered into RCS
7558
7559 1992-01-22 Richard Stallman <rms@gnu.org>
7560
7561 * src/machine.h: entered into RCS
7562
7563 1991-12-21 Richard Stallman <rms@gnu.org>
7564
7565 * src/lalr.c, src/closure.c:
7566 entered into RCS
7567
7568 1991-12-20 Richard Stallman <rms@gnu.org>
7569
7570 * src/state.h: entered into RCS
7571
7572 1991-12-18 Richard Stallman <rms@gnu.org>
7573
7574 * src/print.c, src/nullable.c, src/derives.c:
7575 entered into RCS
7576
7577 1991-11-03 David J. MacKenzie <djm@gnu.org>
7578
7579 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
7580 entered into RCS
7581
7582 1988-09-09 Richard Stallman <rms@gnu.org>
7583
7584 * src/bison.hairy: entered into RCS
7585
7586 1987-12-16 Richard Stallman <rms@gnu.org>
7587
7588 * REFERENCES: entered into RCS
7589 -----
7590
7591 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
7592
7593 This file is part of GNU Autoconf.
7594
7595 GNU Autoconf is free software; you can redistribute it and/or modify
7596 it under the terms of the GNU General Public License as published by
7597 the Free Software Foundation; either version 2, or (at your option)
7598 any later version.
7599
7600 GNU Autoconf is distributed in the hope that it will be useful,
7601 but WITHOUT ANY WARRANTY; without even the implied warranty of
7602 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7603 GNU General Public License for more details.
7604
7605 You should have received a copy of the GNU General Public License
7606 along with autoconf; see the file COPYING. If not, write to
7607 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
7608 Boston, MA 02111-1307, USA.