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