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