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