]> git.saurik.com Git - bison.git/blob - ChangeLog
* lib/hash.h (__P): Added definition for this macro.
[bison.git] / ChangeLog
1 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
2
3 * lib/hash.h (__P): Added definition for this macro.
4 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
5 BUILT_SOURCES, to ensure they are generated first.
6 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
7 %error-verbose to allow bootstrapping with bison 1.30x.
8
9 2002-01-06 Akim Demaille <akim@epita.fr>
10
11 * src/reader.c (parse_braces): Don't fetch the next char, the
12 convention is to fetch on entry.
13 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
14 'switch' without a following semicolon.
15 * tests/regression.at (braces parsing): New.
16
17 2002-01-06 Akim Demaille <akim@epita.fr>
18
19 Bison is dead wrong in its RR conflict reports.
20
21 * tests/torture.at (GNU Cim Grammar): New.
22 * src/conflicts.c (count_rr_conflicts): Fix.
23
24 2002-01-06 Akim Demaille <akim@epita.fr>
25
26 Creating package.m4 from configure.ac causes too many problems.
27
28 * tests/Makefile.am (package.m4): Create it by hand,
29 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
30
31 2002-01-06 Akim Demaille <akim@epita.fr>
32
33 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
34 skeleton.h.
35
36 2002-01-04 Paul Eggert <eggert@twinsun.com>
37
38 * doc/bison.texinfo (Debugging):
39 Remove YYSTDERR; it's no longer defined or used.
40 Also, s/cstdio.h/cstdio/.
41
42 2002-01-03 Akim Demaille <akim@epita.fr>
43
44 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
45
46 2002-01-03 Akim Demaille <akim@epita.fr>
47
48 * src/parse-skel.y (process_skeleton): Don't bind the parser's
49 tracing code to --trace, wait for a better --trace option, with
50 args.
51
52 2002-01-03 Akim Demaille <akim@epita.fr>
53
54 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
55 The ISO C++ standard is extremely clear about it: stderr is
56 considered a macro, not a regular symbol (see table 94 `Header
57 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
58 Therefore std:: does not apply to it. It still does with fprintf.
59 Also, s/cstdio.h/cstdio/.
60
61 2002-01-03 Akim Demaille <akim@epita.fr>
62
63 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
64 for non system headers.
65
66 2002-01-02 Akim Demaille <akim@epita.fr>
67
68 Equip the skeleton chain with location tracking, runtime trace,
69 pure parser and scanner.
70
71 * src/parse-skel.y: Request a pure parser, locations, and prefix
72 renaming.
73 (%union): Having several members with the same type does not help
74 type mismatches, simplify.
75 (YYPRINT, yyprint): New.
76 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
77 (skel_error): this.
78 Handle locations.
79 * src/scan-skel.l: Adjust to these changes.
80 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
81 (LOCATION_PRINT, skel_control_t): New.
82
83 2001-12-30 Akim Demaille <akim@epita.fr>
84
85 * src/parse-skel.y: Get rid of the shift/reduce conflict:
86 replace `gb' with BLANKS.
87 * src/scan-skel.l: Adjust.
88
89 2001-12-30 Akim Demaille <akim@epita.fr>
90
91 * src/system.h: We don't need nor want bcopy.
92 Throw away MS-DOS crap: we don't need getpid.
93 * configure.in: We don't need strndup. It was even causing
94 problems: because Flex includes the headers *before* us,
95 _GNU_SOURCE is not defined by config.h, and therefore strndup was
96 not visible.
97 * lib/xstrndup.c: New.
98 * src/scan-skel.l: Use it.
99 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
100 * src/parse-skel.y: Use %directives instead of #defines.
101
102 2001-12-30 Akim Demaille <akim@epita.fr>
103
104 * src/skeleton.h: New.
105 * src/output.c (output_parser, output_master_parser): Remove, dead
106 code.
107 * src/output.h (get_lines_number, actions_output, guards_output)
108 (token_definitions_output): Prototype them.
109 * src/parse-skel.y: Add the license notice.
110 Include output.h and skeleton.h.
111 (process_skeleton): Returns void, and takes a single parameter.
112 * src/scan-skel.l: Add the license notice.
113 Include skeleton.h.
114 Don't use %option yylineno: it seems that then Flex imagines
115 REJECT has been used, and therefore it won't reallocate its
116 buffers (which makes no other sense to me than a bug). It results
117 in warnings for `unused: yy_flex_realloc'.
118
119 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
120
121 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
122 (MUSCLE_INSERT_PREFIX): ...to there.
123 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
124 (MUSCLE_INSERT_PREFIX): Move from here...
125
126 * src/bison.hairy: Add a section directive. Put braces around muscle
127 names. This parser skeleton is still broken, but Bison should not
128 choke on a bad muscle 'syntax'.
129 * src/bison.simple: Add a section directive. Put braces around muscle
130 names.
131
132 * src/files.h (strsuffix, stringappend): Add declarations.
133 (tab_extension): Add declaration.
134 (short_base_name): Add declaration.
135
136 * src/files.c (strsuffix, stringappend): No longer static. These
137 functions are used in the skeleton parser.
138 (tab_extension): New.
139 (compute_base_names): Use the computations done in this function
140 to guess if the generated parsers should have '.tab' in their
141 names.
142 (short_base_name): No longer static.
143
144 * src/output.c (output_skeleton): New.
145 (output): Disable call to output_master_parser, and give a try to
146 a new skeleton handling system.
147 (guards_output, actions_output): No longer static.
148 (token_definitions_output, get_lines_number): No longer static.
149
150 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
151
152 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
153 parse-skel.y.
154
155 * src/parse-skel.y: New file.
156 * src/scan-skel.l: New file.
157
158 2001-12-29 Akim Demaille <akim@epita.fr>
159
160 %name-prefix is broken.
161
162 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
163 Adjust all dependencies.
164 * tests/headers.at (export YYLTYPE): Strengthen this test: use
165 %name-prefix.
166
167 Renaming yylval but not yylloc is not consistent. Now we do.
168
169 * src/bison.simple: Prefix yylloc if used.
170 * doc/bison.texinfo (Decl Summary): Document that.
171
172 2001-12-29 Akim Demaille <akim@epita.fr>
173
174 * doc/bison.texinfo: Promote `%long-directive' over
175 `%long_directive'.
176 Remove all references to fixed-output-files, yacc is enough.
177
178 2001-12-29 Akim Demaille <akim@epita.fr>
179
180 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
181 user prologue. These are defaults.
182 * tests/actions.at (Mid-rule actions): Make sure the user can
183 define YYDEBUG and YYERROR_VERBOSE.
184
185 2001-12-29 Akim Demaille <akim@epita.fr>
186
187 * src/output.c (header_output): Don't forget to export YYLTYPE and
188 yylloc.
189 * tests/headers.at (export YYLTYPE): New, make sure it does.
190 * tests/regression.at (%union and --defines, Invalid CPP headers):
191 Move to...
192 * tests/headers.at: here.
193
194 2001-12-29 Akim Demaille <akim@epita.fr>
195
196 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
197
198 2001-12-29 Akim Demaille <akim@epita.fr>
199
200 * tests/actions.at (Mid-rule actions): Output on a single line
201 instead of several.
202
203 2001-12-29 Akim Demaille <akim@epita.fr>
204
205 * doc/bison.texinfo: Formatting changes.
206
207 2001-12-29 Akim Demaille <akim@epita.fr>
208
209 Don't store the token defs in a muscle, just be ready to output it
210 on command. Now possible via `symbols'. Fixes a memory leak.
211
212 * src/output.c (token_definitions_output): New.
213 (output_parser, header_output): Use it.
214 * src/reader.c (symbols_save): Remove.
215
216 2001-12-29 Akim Demaille <akim@epita.fr>
217
218 * src/bison.simple: Do not provide a default for YYSTYPE and
219 YYLTYPE before the user's prologue. Otherwise it's hardly... a
220 default.
221
222 2001-12-29 Akim Demaille <akim@epita.fr>
223
224 Mid-rule actions are simply... ignored!
225
226 * src/reader.c (readgram): Be sure to attach mid-rule actions to
227 the empty-rule associated to the dummy symbol, not to the host
228 rule.
229 * tests/actions.at (Mid-rule actions): New.
230
231 2001-12-29 Akim Demaille <akim@epita.fr>
232
233 Memory leak.
234
235 * src/reader.c (reader): Free grammar.
236
237 2001-12-29 Akim Demaille <akim@epita.fr>
238
239 Memory leak.
240
241 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
242 since it allocates it for each state, although only one is needed.
243 (allocate_storage): Do it here.
244
245 2001-12-29 Akim Demaille <akim@epita.fr>
246
247 * src/options.h, src/options.c (create_long_option_table): Rename
248 as...
249 (long_option_table_new): this, with a clearer prototype.
250 (percent_table): Remove, unused,
251 * src/getargs.c (getargs): Adjust.
252
253 2001-12-29 Akim Demaille <akim@epita.fr>
254
255 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
256 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
257 as states.
258
259 2001-12-29 Akim Demaille <akim@epita.fr>
260
261 * src/lalr.c (build_relations): Rename `states' as `states1'.
262 Sorry, I don't understand exactly what it is, no better name...
263
264 2001-12-29 Akim Demaille <akim@epita.fr>
265
266 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
267 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
268 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
269 as rules.
270
271 2001-12-29 Akim Demaille <akim@epita.fr>
272
273 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
274 ago.
275
276 2001-12-29 Akim Demaille <akim@epita.fr>
277
278 * src/reader.c, src/reader.h (user_toknums): Remove.
279 Adjust all users to use symbols[i]->user_token_number.
280
281 2001-12-29 Akim Demaille <akim@epita.fr>
282
283 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
284 Adjust all users to use symbols[i]->prec or ->assoc.
285
286 2001-12-29 Akim Demaille <akim@epita.fr>
287
288 * src/reader.c, src/reader.h (tags): Remove.
289 Adjust all users to use symbols[i]->tag.
290
291 2001-12-29 Akim Demaille <akim@epita.fr>
292
293 * src/gram.h, src/gram.c (symbols): New, similar to state_table
294 and rule_table.
295 * src/reader.c (packsymbols): Fill this table.
296 Drop sprec.
297 * src/conflicts.c (resolve_sr_conflict): Adjust.
298 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
299 single table.
300 Use symbols[i]->tag instead of tags[i].
301
302 2001-12-29 Akim Demaille <akim@epita.fr>
303
304 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
305 In addition, put a comment in there, to replace...
306 * tests/regression.at (%union and C comments): Remove.
307
308 2001-12-29 Akim Demaille <akim@epita.fr>
309
310 * tests/regression.at (Web2c Actions): Blindly move the actual
311 output as expected output. The contents *seem* right to me, but I
312 can't pretend reading perfectly parser tables... Nonetheless, all
313 the other tests pass correctly, the table look OK, even though the
314 presence of `$axiom' is to be noted: AFAICS it is useless (but
315 harmless).
316
317 2001-12-29 Akim Demaille <akim@epita.fr>
318
319 * src/reader.c (readgram): Don't add the rule 0 if there were no
320 rules read. In other words, add it _after_ having performed
321 grammar sanity checks.
322 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
323
324 2001-12-29 Akim Demaille <akim@epita.fr>
325
326 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
327 visible, and some states have now a different number.
328
329 2001-12-29 Akim Demaille <akim@epita.fr>
330
331 * src/reader.c (readgram): Bind the initial rule's lineno to that
332 of the first rule.
333 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
334 (Solved SR Conflicts): Adjust rule 0's line number.
335
336 2001-12-29 Akim Demaille <akim@epita.fr>
337
338 Fix the `GAWK Grammar' failure.
339
340 * src/LR0.c (final_state): Initialize to -1 so that we do compute
341 the reductions of the first state which was mistakenly confused
342 with the final state because precisely final_state was initialized
343 to 0.
344 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
345 now noticed by Bison.
346 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
347 have a reduction on $default.
348
349 2001-12-29 Akim Demaille <akim@epita.fr>
350
351 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
352 rule line numbers.
353 * src/closure.c (print_closure): Likewise.
354 * src/derives.c (print_derives): Likewise.
355 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
356 now.
357
358 2001-12-29 Akim Demaille <akim@epita.fr>
359
360 * src/lalr.c (lookaheads_print): New.
361 (lalr): Call it when --trace-flag.
362 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
363 are dumped.
364
365 2001-12-29 Akim Demaille <akim@epita.fr>
366
367 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
368 when walking through ritem, even via rule->rhs.
369 * src/reduce.c (dump_grammar, useful_production, reduce_output)
370 (useful_production, useless_nonterminals): Likewise.
371 (reduce_grammar_tables): Likewise, plus update nritems.
372 * src/nullable.c (set_nullable): Likewise.
373 * src/lalr.c (build_relations): Likewise.
374 * tests/sets.at (Nullable): Adjust.
375 Fortunately, now, the $axiom is no longer nullable.
376
377 2001-12-29 Akim Demaille <akim@epita.fr>
378
379 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
380 the 0-sentinel.
381 * src/gram.c (ritem_longest_rhs): Likewise.
382 * src/reduce.c (nonterminals_reduce): Likewise.
383 * src/print_graph.c (print_graph): Likewise.
384 * src/output.c (output_rule_data): Likewise.
385 * src/nullable.c (set_nullable): Likewise.
386
387 2001-12-29 Akim Demaille <akim@epita.fr>
388
389 * src/output.c: Comment changes.
390
391 2001-12-27 Paul Eggert <eggert@twinsun.com>
392
393 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
394 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
395 Sparc, as they were causing more porting problems than the
396 (minor) performance improvement was worth.
397
398 Also, catch up with 1.31's YYSTD.
399
400 2001-12-27 Akim Demaille <akim@epita.fr>
401
402 * src/output.c (output_gram): Rely on nritems, not the
403 0-sentinel. See below.
404 Use -1 as separator, not 0.
405 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
406 Rely on -1 as separator in yyrhs, instead of 0.
407 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
408 twice `Now at end of input', therefore there are two lines less to
409 expect.
410
411 2001-12-27 Akim Demaille <akim@epita.fr>
412
413 * tests/regression.at (Unresolved SR Conflicts):
414 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
415 below.
416
417 2001-12-27 Akim Demaille <akim@epita.fr>
418
419 * src/LR0.c (new_state): Recognize the final state by the fact it
420 is reached by eoftoken.
421 (insert_start_shifting_state, insert_eof_shifting_state)
422 (insert_accepting_state, augment_automaton): Remove, since now
423 these states are automatically computed from the initial state.
424 (generate_states): Adjust.
425 * src/print.c: When reporting a rule number to the user, substract
426 1, so that the axiom rule is rule 0, and the first user rule is 1.
427 * src/reduce.c: Likewise.
428 * src/print_graph.c (print_core): For the time being, just as for
429 the report, depend upon --trace-flags to dump the full set of
430 items.
431 * src/reader.c (readgram): Once the grammar read, insert the rule
432 0: `$axiom: START-SYMBOL $'.
433 * tests/set.at: Adjust: rule 0 is now displayed, and since the
434 number of the states has changed (the final state is no longer
435 necessarily the last), catch up.
436
437 2001-12-27 Akim Demaille <akim@epita.fr>
438
439 Try to make the use of the eoftoken valid. Given that its value
440 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
441 is used instead of > 0 where appropriate, (ii), depend upon nritems
442 instead of the 0-sentinel.
443
444 * src/gram.h, src/gram.c (nritems): New.
445 Expected to be duplication of nitems, but for the time being...
446 * src/reader.c (packgram): Assert nritems and nitems are equal.
447 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
448 * src/closure.c (print_closure, print_fderives): Likewise.
449 * src/gram.c (ritem_print): Likewise.
450 * src/print.c (print_core, print_grammar): Likewise.
451 * src/print_graph.c: Likewise.
452
453 2001-12-27 Akim Demaille <akim@epita.fr>
454
455 * src/main.c (main): If there are complains after grammar
456 reductions, then output the report anyway if requested, then die.
457 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
458 * src/reader.c (eoftoken): New.
459 (parse_token_decl): If the token being defined has value `0', it
460 is the eoftoken.
461 (packsymbols): No longer hack `tags' to insert `$' by hand.
462 Be sure to preserve the value of the eoftoken.
463 (reader): Make sure eoftoken is defined.
464 Initialize nsyms to 0: now eoftoken is created just like the others.
465 * src/print.c (print_grammar): Don't special case the eof token.
466 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
467 lie anyway, albeit pleasant.
468 * tests/calc.at: Exercise error messages with eoftoken.
469 Change the grammar so that empty input is invalid.
470 Adjust expectations.
471 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
472
473 2001-12-27 Akim Demaille <akim@epita.fr>
474
475 * configure.in: Check the protos of strchr ans strspn.
476 Replace strchr if needed.
477 * src/system.h: Provide the protos of strchr, strspn and memchr if
478 missing.
479 * lib/strchr.c: New.
480 * src/reader.c (symbols_save): Use strchr.
481
482 2001-12-27 Akim Demaille <akim@epita.fr>
483
484 * src/print.c, src/print_graph.c (escape): New.
485 Use it to quote the TAGS outputs.
486 * src/print_graph.c (print_state): Now errors are in red, and
487 reductions in green.
488 Prefer high to wide: output the state number on a line of its own.
489
490 2001-12-27 Akim Demaille <akim@epita.fr>
491
492 * src/state.h, src/state.c (reductions_new): New.
493 * src/LR0.c (set_state_table): Let all the states have a
494 `reductions', even if reduced to 0.
495 (save_reductions): Adjust.
496 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
497 * src/print.c (print_reductions, print_actions): Adjust.
498 * src/output.c (action_row): Adjust.
499
500 2001-12-27 Akim Demaille <akim@epita.fr>
501
502 * src/state.h, src/state.c (errs_new, errs_dup): New.
503 * src/LR0.c (set_state_table): Let all the states have an errs,
504 even if reduced to 0.
505 * src/print.c (print_errs, print_reductions): Adjust.
506 * src/output.c (output_actions, action_row): Adjust.
507 * src/conflicts.c (resolve_sr_conflict): Adjust.
508
509 2001-12-27 Akim Demaille <akim@epita.fr>
510
511 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
512
513 2001-12-27 Akim Demaille <akim@epita.fr>
514
515 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
516 * src/print.c: here.
517 (lookaheadset, shiftset): New, used as additional storage by
518 print_reductions.
519 (print_results): Adjust.
520 (print_shifts, print_gotos, print_errs): New, extracted from...
521 (print_actions): here.
522 * src/print_graph.c (print_actions): Remove dead code.
523
524 2001-12-27 Akim Demaille <akim@epita.fr>
525
526 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
527 `$n' and `@n'.
528
529 2001-12-27 Akim Demaille <akim@epita.fr>
530
531 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
532 (build_relations): Adjust.
533
534 2001-12-27 Akim Demaille <akim@epita.fr>
535
536 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
537 duplication.
538
539 2001-12-27 Akim Demaille <akim@epita.fr>
540
541 * src/reader.c (packgram): Catch nitems overflows.
542
543 2001-12-27 Akim Demaille <akim@epita.fr>
544
545 * src/files.c, src/files.h (guard_obstack): Remove.
546 * src/output.c (output): Adjust.
547 * src/reader.c (parse_braces): New, factoring...
548 (copy_action, copy_guard): these two which are renamed as...
549 (parse_action, parse_guard): these.
550 As a voluntary consequence, using braces around guards is now
551 mandatory.
552
553 2001-12-27 Akim Demaille <akim@epita.fr>
554
555 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
556 * src/reader.c (symbol_list): `guard' and `guard_line' are new
557 members.
558 (symbol_list_new): Adjust.
559 (copy_action): action_line is the first line, not the last.
560 (copy_guard): Just as for actions, store the `action' only, not
561 the switch/case/break flesh.
562 Don't parse the user action that might follow the guard, let...
563 (readgram): do it, i.e., now, there can be an action after a
564 guard.
565 In other words the guard is just explicitly optional.
566 (packgram): Adjust.
567 * src/output.c (guards_output): New.
568 (output_parser): Call it when needed.
569 (output): Also free the guard and attrs obstacks.
570 * src/files.c, src/files.h (obstack_save): Remove.
571 (output_files): Remove.
572 As a result, if one needs the former `.act' file, using an
573 appropriate skeleton which requires actions and guards is now
574 required.
575 * src/main.c (main): Adjust.
576 * tests/semantic.at: New.
577 * tests/regression.at: Use `input.y' as input file name.
578 Avoid 8+3 problems by requiring input.c when the test needs the
579 parser.
580
581 2001-12-27 Akim Demaille <akim@epita.fr>
582
583 * src/reader.c (symbol_list_new): Be sure to initialize all the
584 fields.
585
586 2001-12-27 Akim Demaille <akim@epita.fr>
587
588 All the hacks using a final pseudo state are now useless.
589
590 * src/LR0.c (set_state_table): state_table holds exactly nstates.
591 * src/lalr.c (nLA): New.
592 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
593 instead of lookaheadsp from the pseudo state (nstate + 1).
594
595 2001-12-27 Akim Demaille <akim@epita.fr>
596
597 * src/output.c (action_row, token_actions): Use a state_t instead
598 of a integer, and nlookaheads instead of the following state's
599 lookaheadsp.
600
601 2001-12-27 Akim Demaille <akim@epita.fr>
602
603 * src/conflicts.c (log_resolution, flush_shift)
604 (resolve_sr_conflict, set_conflicts, solve_conflicts)
605 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
606 (conflicts_print, print_reductions): Use a state_t instead of an
607 integer when referring to a state.
608 As much as possible, depend upon nlookaheads, instead of the
609 `lookaheadsp' member of the following state (since lookaheads of
610 successive states are successive, the difference between state n + 1
611 and n served as the number of lookaheads for state n).
612 * src/lalr.c (add_lookback_edge): Likewise.
613 * src/print.c (print_core, print_actions, print_state)
614 (print_results): Likewise.
615 * src/print_graph.c (print_core, print_actions, print_state)
616 (print_graph): Likewise.
617 * src/conflicts.h: Adjust.
618
619 2001-12-27 Akim Demaille <akim@epita.fr>
620
621 * src/bison.hairy: Formatting/comment changes.
622 ANSIfy.
623 Remove `register' indications.
624 Add plenty of `static'.
625
626 2001-12-27 Akim Demaille <akim@epita.fr>
627
628 * src/output.c (prepare): Drop the muscle `ntbase' which
629 duplicates ntokens.
630 * src/bison.simple: Formatting/comment changes.
631 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
632 is an undocumented synonym.
633
634 2001-12-22 Akim Demaille <akim@epita.fr>
635
636 * src/output.c (output_table_data): Change the prototype to use
637 `int' for array ranges: some invocations do pass an int, not a
638 short.
639 Reported by Wayne Green.
640
641 2001-12-22 Akim Demaille <akim@epita.fr>
642
643 Some actions of web2c.y are improperly triggered.
644 Reported by Mike Castle.
645
646 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
647 * tests/regression.at (Web2c): Rename as...
648 (Web2c Report): this.
649 (Web2c Actions): New.
650
651 2001-12-22 Akim Demaille <akim@epita.fr>
652
653 Reductions in web2c.y are improperly reported.
654 Reported by Mike Castle.
655
656 * src/conflicts.c (print_reductions): Fix.
657 * tests/regression.at (Web2c): New.
658
659 2001-12-18 Akim Demaille <akim@epita.fr>
660
661 Some host fail on `assert (!"foo")', which expands to
662 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
663 Reported by Nelson Beebee.
664
665 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
666 `#define it_succeeded 0' and `assert (it_succeeded)'.
667
668 2001-12-17 Marc Autret <autret_m@epita.fr>
669
670 * src/bison.simple: Don't hard code the skeleton line and filename.
671 * src/output.c (output_parser): Rename 'line' as 'output_line'.
672 New line counter 'skeleton_line' (skeleton-line muscle).
673
674 2001-12-17 Paul Eggert <eggert@twinsun.com>
675
676 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
677 YYDEBUG must be defined to a nonzero value.
678
679 * src/bison.simple (yytname): Do not assume that the user defines
680 YYDEBUG to a properly parenthesized expression.
681
682 2001-12-17 Akim Demaille <akim@epita.fr>
683
684 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
685 nlookaheads is a new member.
686 Adjust all users.
687 * src/lalr.h (nlookaheads): Remove this orphan declaration.
688 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
689 state.
690
691 2001-12-17 Akim Demaille <akim@epita.fr>
692
693 * src/files.h, src/files.c (open_files, close_files): Remove.
694 * src/main.c (main): Don't open/close files, nor invoke lex_free,
695 let...
696 * src/reader.c (reader): Do it.
697
698 2001-12-17 Akim Demaille <akim@epita.fr>
699
700 * src/conflicts.c (print_reductions): Formatting changes.
701
702 2001-12-17 Akim Demaille <akim@epita.fr>
703
704 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
705 (flush_reduce): New.
706 (resolve_sr_conflict): Adjust.
707
708 2001-12-17 Akim Demaille <akim@epita.fr>
709
710 * src/output.c (output_obstack): Be static and rename as...
711 (format_obstack): this, to avoid any confusion with files.c's
712 output_obstack.
713 * src/reader.h (muscle_obstack): Move to...
714 * src/output.h: here, since it's defined in output.c.
715
716 2001-12-17 Akim Demaille <akim@epita.fr>
717
718 * src/output.c (action_row, save_column, default_goto)
719 (sort_actions, matching_state, pack_vector): Better variable
720 locality.
721
722 2001-12-17 Akim Demaille <akim@epita.fr>
723
724 * src/output.c: Various formatting changes.
725
726 2001-12-17 Akim Demaille <akim@epita.fr>
727
728 * src/files.c (output_files): Free the output_obstack.
729 * src/main.c (main): Call print and print_graph conditionally.
730 * src/print.c (print): Work unconditionally.
731 * src/print_graph.c (print_graph): Work unconditionally.
732 * src/conflicts.c (log_resolution): Output only if verbose_flag.
733
734 2001-12-16 Marc Autret <autret_m@epita.fr>
735
736 * src/output.c (actions_output): Fix. When we use %no-lines,
737 there is one less line per action.
738
739 2001-12-16 Marc Autret <autret_m@epita.fr>
740
741 * src/bison.simple: Remove a useless #line directive.
742 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
743 * src/output.c (get_lines_number): New.
744 (output_parser): Adjust, now takes care about the lines of a
745 output muscles.
746 Fix line numbering.
747 (actions_output): Computes the number of lines taken by actions.
748 (output_master_parser): Insert new skeleton which is the name of
749 the output parser file name.
750
751 2001-12-15 Marc Autret <autret_m@epita.fr>
752
753 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
754
755 2001-12-15 Marc Autret <autret_m@epita.fr>
756
757 * src/output.c (output_gram): Keep track of the hairy one.
758
759 2001-12-15 Akim Demaille <akim@epita.fr>
760
761 Make `make distcheck' work.
762
763 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
764 system.h which uses libgettext.h.
765
766 2001-12-15 Akim Demaille <akim@epita.fr>
767
768 * src/nullable.c (set_nullable): Useless rules must be skipped,
769 otherwise, since we range over their symbols, we might look at a
770 nonterminal which no longer ``exists'', i.e., it is not counted in
771 `nvars', hence we overflow our arrays.
772
773 2001-12-15 Akim Demaille <akim@epita.fr>
774
775 The header can also be produced directly, without any obstack!
776 Yahoo!
777
778 * src/files.c, src/files.h (defines_obstack): Remove.
779 (compute_header_macro): Global.
780 (defines_obstack_save): Remove.
781 * src/reader.c (parse_union_decl): No longer output to
782 defines_obstack: its content can be found in the `stype' muscle
783 anyway.
784 (output_token_translations): Merge into...
785 (symbols_output): this.
786 Rename as...
787 (symbols_save): this.
788 (reader): Adjust.
789 * src/output.c (header_output): New.
790 (output): Call it.
791
792 2001-12-15 Akim Demaille <akim@epita.fr>
793
794 * src/reader.c (parse_union_decl): Instead of handling two obstack
795 simultaneously, use one to define the `stype' muscle, and use the
796 value of the latter to fill defines_obstack.
797 (copy_comment): Remove.
798 (copy_comment2): Work for a single obstack.
799 Rename as...
800 (copy_comment): this.
801
802 2001-12-15 Akim Demaille <akim@epita.fr>
803
804 * src/lex.c, src/lex.h (xgetc): No longer static.
805 * src/reader.c (parse_union_decl): Revamp.
806
807 2001-12-15 Akim Demaille <akim@epita.fr>
808
809 Still making progress in separating Bison into (i) input, (ii)
810 process, (iii) output: now we can directly output the parser file
811 without using table_obstack at all.
812
813 * src/files.c, src/files.h (table_obstack): Bye bye.
814 (parser_file_name): New.
815 * src/files.c (compute_output_file_names): Compute it.
816 * src/output.c (actions_output, output_parser)
817 (output_master_parser): To a file instead of an obstack.
818
819 2001-12-15 Akim Demaille <akim@epita.fr>
820
821 Attach actions to rules, instead of pre-outputting them to
822 actions_obstack.
823
824 * src/gram.h (rule_t): action and action_line are new members.
825 * src/reader.c (symbol_list): Likewise.
826 (copy_action): Save the actions within the rule.
827 (packgram): Save them in rule_table.
828 * src/output.c (actions_output): New.
829 (output_parser): Use it on `%%actions'.
830 (output_rule_data): Don't free rule_table.
831 (output): Do it.
832 (prepare): Don't save the `action' muscle.
833 * src/bison.simple: s/%%action/%%actions/.
834
835 2001-12-15 Akim Demaille <akim@epita.fr>
836
837 * src/reader.c (copy_action): When --yacc, don't append a `;'
838 to the user action: let it fail if lacking.
839 Suggested by Arnold Robbins and Tom Tromey.
840
841 2001-12-14 Akim Demaille <akim@epita.fr>
842
843 * src/lex.c (literalchar): Simply return the char you decoded, non
844 longer mess around with obstacks and int pointers.
845 Adjust all callers.
846
847 2001-12-14 Akim Demaille <akim@epita.fr>
848
849 * src/lex.c (literalchar): Don't escape the special characters,
850 just decode them, and keep them as char (before, eol was output as
851 the 2 char string `\n' etc.).
852 * src/output.c (output_rule_data): Use quotearg to output the
853 token strings.
854
855 2001-12-13 Paul Eggert <eggert@twinsun.com>
856
857 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
858 Do not infringe on the global user namespace when using C++.
859 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
860 All uses of `fprintf' and `stderr' changed.
861
862 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
863
864 2001-12-13 Akim Demaille <akim@epita.fr>
865
866 The computation of nullable is broken: it doesn't handle empty
867 RHS's properly.
868
869 * tests/torture.at (GNU AWK Grammar): New.
870 * tests/sets.at (Nullable): New.
871 * src/nullable.c (set_nullable): Instead of blindly looping over
872 `ritems', loop over the rules, and then over their rhs's.
873
874 Work around Autotest bugs.
875
876 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
877 frame, because Autotest understand lines starting with a `+' as
878 traces from the shell. Then, they are not processed properly.
879 Admittedly an Autotest bug, but we don't have time to wait for
880 Autotest to catch up.
881 * tests/regression.at (Broken Closure): Adjust to the new table
882 frames.
883 Move to...
884 * tests/sets.at: here.
885
886 2001-12-13 Akim Demaille <akim@epita.fr>
887
888 * src/closure.c (closure): Use nrules instead of playing tricks
889 with BITS_PER_WORD.
890
891 2001-12-13 Akim Demaille <akim@epita.fr>
892
893 * src/print.c (print_actions): Output the handling of `$' as the
894 traces do: shifting the token EOF. Before EOF was treated as a
895 nonterminal.
896 * tests/regression.at: Adjust some tests.
897 * src/print_graph.c (print_core): Complete the set of items via
898 closure. The next-to-final and final states are still unsatisfying,
899 but that's to be addressed elsewhere.
900 No longer output the rule numbers, but do output the state number.
901 A single loop for the shifts + gotos is enough, but picked a
902 distinct color for each.
903 (print_graph): Initialize and finalize closure.
904
905 2001-12-13 Akim Demaille <akim@epita.fr>
906
907 * src/reader.c (readgram): Remove dead code, an strip useless
908 braces.
909 (get_type): Remove, unused.
910
911 2001-12-12 Akim Demaille <akim@epita.fr>
912
913 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
914 on that of lib/error.c.
915
916 2001-12-12 Akim Demaille <akim@epita.fr>
917
918 Some hosts don't like `/' in includes.
919
920 * src/system.h: Include libgettext.h without qualifying the path.
921 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
922 $(top_srcdir).
923
924 2001-12-11 Marc Autret <autret_m@epita.fr>
925
926 * src/output.c (output_parser): Remove useless muscle.
927
928 2001-12-11 Marc Autret <autret_m@epita.fr>
929
930 * src/bison.simple: Remove #line just before %%epilogue. It
931 is now handled in ...
932 * src/reader.c (read_additionnal_code): Add the output of a
933 #line for the epilogue.
934
935 2001-12-10 Marc Autret <autret_m@epita.fr>
936
937 * src/reader.c (copy_definition): Re-use CPP-outed code which
938 replace precedent remove.
939 * src/bison.simple: Remove #line before %%prologue because
940 %%input-line is wrong at this time.
941
942 2001-12-10 Marc Autret <autret_m@epita.fr>
943
944 * src/reader.c (symbols_output): Clean up.
945 * src/output.c (output_gram, output): Clean up.
946
947 2001-12-10 Akim Demaille <akim@epita.fr>
948
949 * src/lalr.c (initialize_lookaheads): New. Extracted from...
950 * src/LR0.c (set_state_table): here.
951 * src/lalr.c (lalr): Call it.
952
953 2001-12-10 Akim Demaille <akim@epita.fr>
954
955 * src/state.h (shifts): Remove the `number' member: shifts are
956 attached to state, hence no longer need to be labelled with a
957 state number.
958
959 2001-12-10 Akim Demaille <akim@epita.fr>
960
961 Now that states have a complete set of members, the linked list of
962 shifts is useless: just fill directly the state's shifts member.
963
964 * src/state.h (shifts): Remove the `next' member.
965 * src/LR0.c (first_state, last_state): Remove.
966 Adjust the callers.
967 (augment_automaton): Don't look for the shifts that must be added
968 a shift on EOF: it is those of the state we looked for! But now,
969 since shifts are attached, it is no longer needed to looking
970 merely by its id: its number.
971
972 2001-12-10 Akim Demaille <akim@epita.fr>
973
974 * src/LR0.c (augment_automaton): Better variable locality.
975 Remove an impossible branch: if there is a state corresponding to
976 the start symbol being shifted, then there is shift for the start
977 symbol from the initial state.
978
979 2001-12-10 Akim Demaille <akim@epita.fr>
980
981 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
982 only when appropriate: when insert_start_shifting_state' is not
983 invoked.
984 * tests/regression.at (Rule Line Numbers): Adjust.
985
986 2001-12-10 Akim Demaille <akim@epita.fr>
987
988 * src/LR0.c (augment_automaton): Now that all states have shifts,
989 merge the two cases addition shifts to the initial state.
990
991 2001-12-10 Akim Demaille <akim@epita.fr>
992
993 * src/lalr.c (set_state_table): Move to...
994 * src/LR0.c: here.
995 * src/lalr.c (lalr): Don't call it...
996 * src/LR0.c (generate_states): do it.
997 * src/LR0.h (first_state): Remove, only the table is used.
998
999 2001-12-10 Akim Demaille <akim@epita.fr>
1000
1001 * src/LR0.h (first_shift, first_reduction): Remove.
1002 * src/lalr.c: Don't use first_shift: find shifts through the
1003 states.
1004
1005 2001-12-10 Akim Demaille <akim@epita.fr>
1006
1007 * src/LR0.c: Attach shifts to states as soon as they are
1008 computed.
1009 * src/lalr.c (set_state_table): Instead of assigning shifts to
1010 state, just assert that the mapping was properly done.
1011
1012 2001-12-10 Akim Demaille <akim@epita.fr>
1013
1014 * src/LR0.c (insert_start_shift): Rename as...
1015 (insert_start_shifting_state): this.
1016 (insert_eof_shifting_state, insert_accepting_state): New.
1017 (augment_automaton): Adjust.
1018 Better locality of the variables.
1019 When looking if the start_symbol is shifted from the initial
1020 state, using `while (... symbol != start_symbol ...)' sounds
1021 better than `while (... symbol < start_symbol ...)': If fail
1022 to see how the order between symbols could be relevant!
1023
1024 2001-12-10 Akim Demaille <akim@epita.fr>
1025
1026 * src/getargs.h: Don't declare `spec_name_prefix' and
1027 `spec_file_prefix', declared by src/files.h.
1028 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
1029 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
1030 * src/output.c (prepare): Adjust.
1031 * src/reader.c (symbols_output): Likewise.
1032 * src/vmsgetargs.c: Vaguely adjust, but who cares?
1033
1034 2001-12-10 Akim Demaille <akim@epita.fr>
1035
1036 * src/muscle_tab.c (muscle_init): NULL is a better default than
1037 `"0"'.
1038
1039 2001-12-10 Akim Demaille <akim@epita.fr>
1040
1041 * src/reader.c (reader): Calling symbols_output once is enough.
1042
1043 2001-12-10 Akim Demaille <akim@epita.fr>
1044
1045 Now that states have a complete set of members, the linked list of
1046 reductions is useless: just fill directly the state's reductions
1047 member.
1048
1049 * src/state.h (struct reductions): Remove member `number' and
1050 `next'.
1051 * src/LR0.c (first_reduction, last_reduction): Remove.
1052 (save_reductions): Don't link the new reductions, store them in
1053 this_state.
1054 * src/lalr.c (set_state_table): No need to attach reductions to
1055 states, it's already done.
1056 * src/output.c (output_actions): No longer free the shifts, then
1057 the reductions, then the states: free all the states and their
1058 members.
1059
1060 2001-12-10 Akim Demaille <akim@epita.fr>
1061
1062 * src/options.c (OPTN, DRTV, BOTH): New.
1063 (option_table): Use them.
1064
1065 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
1066 the job of system.h.
1067 * src/options.c: Don't include stdio.h and xalloc.h for the same
1068 reasons.
1069
1070 2001-12-10 Akim Demaille <akim@epita.fr>
1071
1072 * src/output.c (output, prepare): Make sure the values of the
1073 muscles `action' and `prologue' are 0-terminated.
1074
1075 2001-12-10 Akim Demaille <akim@epita.fr>
1076
1077 Clean up GCC warnings.
1078
1079 * src/reader.c (copy_action): `buf' is not used.
1080 (parse_skel_decl): Be static.
1081 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
1082 * src/options.h (create_long_option_table): Have a real prototype.
1083 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
1084 (hash_delete_at): Return const void *.
1085 Adjust casts to preserve the const.
1086
1087 2001-12-10 Akim Demaille <akim@epita.fr>
1088
1089 * configure.in: Require 2.52g.
1090 M4 is not needed, but AUTOM4TE is.
1091 * m4/m4.m4: Remove.
1092 * tests/Makefile.am: Adjust.
1093
1094 2001-12-10 Akim Demaille <akim@epita.fr>
1095
1096 One structure for states is enough, even though theoretically
1097 there are LR(0) states and LALR(1) states.
1098
1099 * src/lalr.h (state_t): Remove.
1100 (state_table): Be state_t **, not state_t *.
1101 * src/state.h (core, CORE_ALLOC): Rename as...
1102 (state_t, STATE_ALLOC): this.
1103 Add the LALR(1) members: shifts, reductions, errs.
1104 * src/LR0.c (state_table): Rename as...
1105 (state_hash): this, to avoid name clashes with the global
1106 `state_table'.
1107 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
1108 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
1109
1110 2001-12-10 Akim Demaille <akim@epita.fr>
1111
1112 Bison dumps core on bash.y.
1113 Reported by Pascal Bart.
1114
1115 * src/warshall.c (bitmatrix_print): New.
1116 (TC): Use it.
1117 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
1118 j must be the outer loop.
1119 * tests/regression.at (Broken Closure): New.
1120
1121 2001-12-05 Akim Demaille <akim@epita.fr>
1122
1123 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
1124 its argument.
1125 Reported by Peter Hámorský.
1126
1127 2001-12-05 Akim Demaille <akim@epita.fr>
1128
1129 * src/conflicts.c (err_table): Remove.
1130 (resolve_sr_conflict): Adjust.
1131 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
1132 Rename as...
1133 (state_t.reductions, state_t.shifts): this.
1134
1135 2001-12-05 Akim Demaille <akim@epita.fr>
1136
1137 * src/reduce.c (reduce_grammar_tables): No longer disable the
1138 removal of useless rules via CPP but via `if (0)', so that the
1139 compiler still check the code is valid.
1140 For instance, it should have noticed `rline' no longer exists: use
1141 the `line' member of rule_t.
1142 * src/gram.c (dummy, rline): Remove, unused.
1143
1144 2001-12-05 Akim Demaille <akim@epita.fr>
1145
1146 * src/output.c (pack_vector): Use assert, not berror.
1147 * src/main.c (berror): Remove, unused.
1148
1149 2001-12-05 Akim Demaille <akim@epita.fr>
1150
1151 New experimental feature: if --verbose --trace output all the
1152 items of a state, not only its kernel.
1153
1154 * src/print.c (print_core): If `trace_flag', then invoke closure
1155 before outputting the items of the state (print_core is no longer
1156 a correct name them).
1157 (print_results): Invoke new_closure/free_closure if needed.
1158
1159 2001-12-05 Akim Demaille <akim@epita.fr>
1160
1161 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
1162 * src/closure.c, src/closure.h (itemsetsize): Rename as...
1163 (nitemset): for consistency with the rest of the project.
1164
1165 2001-12-05 Akim Demaille <akim@epita.fr>
1166
1167 * src/closure.c (print_closure): Improve.
1168 (closure): Use it for printing input and output.
1169
1170 2001-12-05 Akim Demaille <akim@epita.fr>
1171
1172 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
1173 indexed by nonterminals.
1174
1175 2001-12-05 Akim Demaille <akim@epita.fr>
1176
1177 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
1178 what it was!).
1179 * src/warshall.h: Remove accidental duplication of the content.
1180
1181 2001-12-05 Akim Demaille <akim@epita.fr>
1182
1183 * src/closure.c (set_fderives): De-obfuscate.
1184
1185 2001-12-05 Akim Demaille <akim@epita.fr>
1186
1187 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
1188
1189 2001-12-05 Akim Demaille <akim@epita.fr>
1190
1191 * src/closure.c (set_firsts): De-obfuscate.
1192
1193 2001-12-05 Akim Demaille <akim@epita.fr>
1194
1195 * src/output.c (action_row): De-obfuscate
1196 using the good o' techniques: arrays not pointers, variable
1197 locality, BITISSET, RESETBIT etc.
1198
1199 2001-12-05 Akim Demaille <akim@epita.fr>
1200
1201 Pessimize the code to simplify it: from now on, all the states
1202 have a valid SHIFTS, which NSHIFTS is possibly 0.
1203
1204 * src/LR0.c (shifts_new): Be global and move to..
1205 * src/state.c, src/state.h: here.
1206 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
1207 * src/print_graph: Adjust.
1208
1209 2001-12-05 Akim Demaille <akim@epita.fr>
1210
1211 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
1212 * src/conflicts.c: Use it.
1213 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
1214 incorrectly ``simplified''.
1215
1216 2001-12-05 Akim Demaille <akim@epita.fr>
1217
1218 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
1219 using the good o' techniques: arrays not pointers, variable
1220 locality, BITISSET, RESETBIT etc.
1221
1222 2001-12-05 Akim Demaille <akim@epita.fr>
1223
1224 * src/state.h (SHIFT_SYMBOL): New.
1225 * src/conflicts.c: Use it to deobfuscate.
1226
1227 2001-12-05 Akim Demaille <akim@epita.fr>
1228
1229 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
1230 (print_reductions): De-obfuscate using the good o' techniques:
1231 arrays not pointers, variable locality, BITISSET.
1232
1233 2001-12-05 Akim Demaille <akim@epita.fr>
1234
1235 * src/conflicts.c (print_reductions): Arrays, not pointers.
1236 Use BITISSET.
1237
1238 2001-12-05 Akim Demaille <akim@epita.fr>
1239
1240 * src/conflicts.c (print_reductions): Pessimize, but clarify.
1241
1242 2001-12-05 Akim Demaille <akim@epita.fr>
1243
1244 * src/conflicts.c (print_reductions): Improve variable locality.
1245
1246 2001-12-05 Akim Demaille <akim@epita.fr>
1247
1248 * src/conflicts.c (print_reductions): Pessimize, but clarify.
1249
1250 2001-12-05 Akim Demaille <akim@epita.fr>
1251
1252 * src/conflicts.c (print_reductions): Improve variable locality.
1253
1254 2001-12-05 Akim Demaille <akim@epita.fr>
1255
1256 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
1257 * src/lalr.c: Use them.
1258
1259 2001-12-05 Akim Demaille <akim@epita.fr>
1260
1261 * src/LR0.c (augment_automaton): Formatting changes.
1262 Better variable locality.
1263
1264 2001-12-05 Akim Demaille <akim@epita.fr>
1265
1266 * src/lalr.c (matrix_print): New.
1267 (transpose): Use it.
1268 Use arrays instead of pointers.
1269
1270 2001-12-05 Akim Demaille <akim@epita.fr>
1271
1272 * src/lalr.c (maxrhs): Move to...
1273 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
1274 * src/lalr.c (build_relations): Adjust.
1275
1276 2001-12-05 Akim Demaille <akim@epita.fr>
1277
1278 * src/lalr.c (transpose): Free the memory allocated to the
1279 argument, as it is replaced by the results by the unique caller.
1280 (build_relations): Merely invoke transpose: it handles the memory
1281 deallocation.
1282 Improve variable locality.
1283 Avoid variables used as mere abbreviations.
1284 (compute_lookaheads): Use arrays instead of pointers.
1285
1286 2001-12-05 Akim Demaille <akim@epita.fr>
1287
1288 * src/lalr.c (initialize_F): Improve variable locality.
1289 Avoid variables used as mere abbreviations.
1290
1291 2001-12-05 Akim Demaille <akim@epita.fr>
1292
1293 * src/derives.c (print_derives): Display the ruleno.
1294 * src/lalr.c (initialize_F, transpose): Better variable locality
1295 to improve readability.
1296 Avoid variables used as mere abbreviations.
1297
1298 2001-12-05 Akim Demaille <akim@epita.fr>
1299
1300 * src/lalr.c (traverse): Use arrays instead of pointers.
1301
1302 2001-12-05 Akim Demaille <akim@epita.fr>
1303
1304 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
1305 the handling of squeue.
1306 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
1307
1308 2001-12-05 Akim Demaille <akim@epita.fr>
1309
1310 Because useless nonterminals are now kept alive (instead of being
1311 `destroyed'), we now sometimes examine them, and store information
1312 related to them. Hence we need to know their number, and adjust
1313 memory allocations.
1314
1315 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
1316 static.
1317 * src/LR0.c (allocate_itemsets): The memory allocated to
1318 `symbol_count' was used for two different purpose: once to count
1319 the number of occurrences of each symbol, and later reassigned to
1320 `shift_symbol', containing the symbol that can be shifted from a
1321 given state.
1322 Deobfuscate, i.e., allocate, use and free `symbol_count' here
1323 only, and...
1324 (new_itemsets): Allocate `shift_symbol' here.
1325 (allocate_itemsets): symbol_count includes useless nonterminals.
1326 Make room for them.
1327 (free_storage): Use `free', not `XFREE', for pointers that cannot
1328 be null.
1329
1330 2001-12-05 Akim Demaille <akim@epita.fr>
1331
1332 * src/nullable.c (set_nullable): Deobfuscate the handling of
1333 ritem.
1334 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
1335
1336 2001-12-05 Akim Demaille <akim@epita.fr>
1337
1338 * src/gram.c, src/gram.h (ritem_print): New.
1339 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
1340 (This useless function was defined only to work around VMS linkers
1341 that can't handle compilation units with variables only).
1342 * src/reduce.c (dump_grammar): Use it to trace the construction of
1343 ritem.
1344
1345 2001-12-04 Paul Eggert <eggert@twinsun.com>
1346
1347 * src/bison.simple (union yyalloc): Change member names
1348 to be the same as the stack names.
1349 (yyparse): yyptr is now union yyalloc *, not char *.
1350 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
1351 and may generate better code on some machines.
1352 (yystpcpy): Use prototype if __STDC__ is defined, not just
1353 if __cplusplus is defined.
1354
1355 2001-11-30 Akim Demaille <akim@epita.fr>
1356
1357 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
1358 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
1359 Gettext doesn't compile cleanly, and dies with -Werror.
1360 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
1361 Include WARNING_CFLAGS here.
1362 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
1363 before being defined.
1364
1365 2001-11-27 Paul Eggert <eggert@twinsun.com>
1366
1367 * lib/quotearg.h (quotearg_n, quotearg_n_style):
1368 First arg is int, not unsigned.
1369 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
1370 (SIZE_MAX, UINT_MAX): New macros.
1371 (quotearg_n_options): Abort if N is negative.
1372 Avoid overflow check on hosts where size_t is 64 bits and int
1373 is 32 bits, as overflow is impossible there.
1374 Fix off-by-one typo that caused unnecessary reallocation.
1375
1376 2001-11-29 Paul Eggert <eggert@twinsun.com>
1377
1378 Name space cleanup in generated parser.
1379
1380 * doc/bison.texinfo (Bison Parser): Discuss system headers
1381 and their effect on the user name space.
1382
1383 * src/bison.simple:
1384 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
1385 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
1386 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
1387
1388 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
1389 on user names when possible.
1390
1391 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
1392 Simplify test for whather <alloca.h> exists.
1393
1394 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
1395
1396 (<stdio.h>): Include if YYDEBUG.
1397
1398 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
1399 ! defined (yyoverflow) && ! defined (yymemcpy).
1400
1401 (yymemcpy, yyparse): Rename local variables as needed so that
1402 they all begin with 'yy'.
1403
1404 (yystrlen, yystpcpy): New functions.
1405
1406 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
1407 All uses changed.
1408
1409 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
1410 instead of relying on string.h functions. Use YYSTACK_ALLOC
1411 and YYSTACK_FREE instead of malloc and free.
1412
1413 2001-11-30 Akim Demaille <akim@epita.fr>
1414
1415 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
1416 before their first uses.
1417 (YYBISON, YYPURE): Move to the top of the output.
1418
1419 2001-11-30 Akim Demaille <akim@epita.fr>
1420
1421 * tests/reduce.at (Useless Nonterminals): Fix.
1422
1423 2001-11-30 Akim Demaille <akim@epita.fr>
1424
1425 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
1426 if body instead of `;' to pacify GCC's warnings.
1427
1428 2001-11-30 Akim Demaille <akim@epita.fr>
1429
1430 Instead of mapping the LHS of unused rules to -1, keep the LHS
1431 valid, but flag the rules as invalid.
1432
1433 * src/gram.h (rule_t): `useful' is a new member.
1434 * src/print.c (print_grammar): Adjust.
1435 * src/derives.c (set_derives): Likewise.
1436 * src/reader.c (packgram, reduce_output): Likewise.
1437 * src/reduce.c (reduce_grammar_tables): Likewise.
1438 * tests/reduce.at (Underivable Rules, Useless Rules): New.
1439
1440 2001-11-30 Akim Demaille <akim@epita.fr>
1441
1442 * src/reduce.c (reduce_output): Formatting changes.
1443 * src/print.c (print_results, print_grammar): Likewise.
1444 * tests/regression.at (Rule Line Numbers)
1445 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
1446
1447 2001-11-30 Akim Demaille <akim@epita.fr>
1448
1449 * src/reduce.c (nonterminals_reduce): Instead of throwing away
1450 useless nonterminals, move them at the end of the symbol arrays.
1451 (reduce_output): Adjust.
1452 * tests/reduce.at (Useless Nonterminals): Adjust.
1453
1454 2001-11-30 Akim Demaille <akim@epita.fr>
1455
1456 * src/reduce.c: Various comment/formatting changes.
1457 (nonterminals_reduce): New, extracted from...
1458 (reduce_grammar_tables): here.
1459 (reduce_grammar): Call nonterminals_reduce.
1460
1461 2001-11-29 Paul Eggert <eggert@twinsun.com>
1462
1463 * src/bison.simple (YYSTACK_REALLOC): Remove.
1464 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
1465 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
1466 New macros.
1467 (union yyalloc): New type.
1468 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
1469 an arbitrary restriction on hosts where size_t is wider than int.
1470
1471 (yyparse): Don't dump core if alloca or malloc fails; instead, report
1472 a parser stack overflow. Allocate just one block of memory for all
1473 three stacks, instead of allocating three blocks; this typically is
1474 faster and reduces fragmentation.
1475
1476 Do not limit the number of items in the stack to a value that fits
1477 in 'int', as this is an arbitrary limit on hosts with 64-bit
1478 size_t and 32-bit int.
1479
1480 2001-11-29 Marc Autret <autret_m@epita.fr>
1481
1482 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
1483 of defining YYERROR_VERBOSE.
1484 [AT_DATA]: $4 is now out of C declarations in the prologue.
1485
1486 2001-11-28 Marc Autret <autret_m@epita.fr>
1487
1488 * src/reader.c (parse_dquoted_param): New.
1489 (parse_skel_decl): Use it.
1490 * src/lex.h: Add its prototype.
1491 * src/lex.c (literalchar): Become not static.
1492
1493 2001-11-28 Marc Autret <autret_m@epita.fr>
1494
1495 * src/output.h: And put its extern declaration here.
1496 * src/output.c (error_verbose): Define here.
1497 (prepare): Echo name modification.
1498 * src/getargs.h: Clean its extern declaration.
1499 * src/getargs.c (error_verbose_flag): Remove.
1500 (getargs): Remove case 'e'.
1501 * src/options.c (option_table): 'error-verbose' is now seen as simple
1502 percent option.
1503 Include output.h.
1504
1505 * src/reader.c (read_declarations): Remove case tok_include.
1506 (parse_include_decl): Remove.
1507 * src/lex.h (token_t): Remove tok_include.
1508 * src/options.c (option_table): 'include' is now a simple command line
1509 option.
1510
1511 2001-11-28 Marc Autret <autret_m@epita.fr>
1512
1513 * src/bison.simple: Adjust muscle names.
1514 * src/muscle_tab.c (muscle_init): Also rename the muscles.
1515 * src/output.c (prepare): s/_/-/ for the muscles names.
1516 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
1517
1518 2001-11-28 Marc Autret <autret_m@epita.fr>
1519
1520 * src/bison.simple: Fix debug.
1521 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
1522
1523 2001-11-28 Akim Demaille <akim@epita.fr>
1524
1525 * src/LR0.c (shifts_new): New.
1526 (save_shifts, insert_start_shift, augment_automaton): Use it.
1527
1528 2001-11-28 Akim Demaille <akim@epita.fr>
1529
1530 * src/closure.c (closure): `b' and `ruleno' denote the same value:
1531 keep ruleno only.
1532
1533 2001-11-28 Akim Demaille <akim@epita.fr>
1534
1535 * src/closure.c (closure): Instead of looping over word in array
1536 then bits in words, loop over bits in array.
1537
1538 2001-11-28 Akim Demaille <akim@epita.fr>
1539
1540 * src/closure.c (closure): No longer optimize the special case
1541 where all the bits of `ruleset[r]' are set to 0, to make the code
1542 clearer.
1543
1544 2001-11-28 Akim Demaille <akim@epita.fr>
1545
1546 * src/closure.c (closure): `r' and `c' are new variables, used to
1547 de-obfuscate accesses to RULESET and CORE.
1548
1549 2001-11-28 Akim Demaille <akim@epita.fr>
1550
1551 * src/reduce.c (reduce_print): Use ngettext.
1552 (dump_grammar): Improve the trace accuracy.
1553
1554 2001-11-28 Akim Demaille <akim@epita.fr>
1555
1556 * src/reduce.c (dump_grammar): Don't translate trace messages.
1557
1558 2001-11-28 Akim Demaille <akim@epita.fr>
1559
1560 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
1561 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
1562 as all tags are free'ed afterwards.
1563 From Enrico Scholz.
1564
1565 2001-11-27 Paul Eggert <eggert@twinsun.com>
1566
1567 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
1568 use alloca when we didn't want to, and vice versa.
1569
1570 2001-11-27 Marc Autret <autret_m@epita.fr>
1571
1572 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
1573 initialization.
1574 * src/output.c (prepare): Remove its update.
1575
1576 2001-11-27 Marc Autret <autret_m@epita.fr>
1577
1578 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
1579 Use %error-verbose.
1580
1581 2001-11-27 Marc Autret <autret_m@epita.fr>
1582
1583 * src/bison.simple: Remove YYERROR_VERBOSE using.
1584 Use %%error_verbose.
1585 (yyparse): Likewise.
1586 * src/output.c (prepare): Give its final value.
1587 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
1588 * src/getargs.h: Add its extern declaration.
1589 * src/getargs.c (error_verbose_flag): New int.
1590 (getargs): Update to catch new case.
1591 * src/options.c (option_table): 'error-verbose' is a new option.
1592 (shortopts): Update.
1593
1594 2001-11-27 Akim Demaille <akim@epita.fr>
1595
1596 * src/system.h: Use intl/libgettext.h.
1597 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
1598
1599 2001-11-27 Akim Demaille <akim@epita.fr>
1600
1601 * tests/torture.at (Exploding the Stack Size with Malloc):
1602 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
1603
1604 2001-11-27 Akim Demaille <akim@epita.fr>
1605
1606 * src/files.c: Include error.h.
1607 Reported by Hans Aberg.
1608
1609 2001-11-26 Marc Autret <autret_m@epita.fr>
1610
1611 * src/reader.c (parse_include_decl): New, not yet implemented.
1612 (read_declarations): Add case tok_include.
1613 * src/getargs.h (include): Add its extern definition.
1614 * src/getargs.c (include): New const char *.
1615 (getargs): Add case '-I'.
1616 * src/options.c (option_table): Add include as command line and
1617 percent option.
1618 * src/lex.h (token_t): Add tok_include.
1619
1620 2001-11-26 Akim Demaille <akim@epita.fr>
1621
1622 * src/reader.c (readgram): Make sure rules for mid-rule actions
1623 have a lineno equal to that of their host rule.
1624 Reported by Hans Aberg.
1625 * tests/regression.at (Rule Line Numbers): New.
1626
1627 2001-11-26 Akim Demaille <akim@epita.fr>
1628
1629 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
1630 size_ts.
1631
1632 2001-11-26 Akim Demaille <akim@epita.fr>
1633
1634 * src/complain.c, src/complain.h (error): Remove, provided by
1635 lib/error.[ch].
1636
1637 2001-11-26 Akim Demaille <akim@epita.fr>
1638
1639 * src/reader.c (read_declarations): Don't abort on tok_illegal,
1640 issue an error message.
1641 * tests/regression.at (Invalid %directive): New.
1642 Reported by Hans Aberg.
1643
1644 2001-11-26 Akim Demaille <akim@epita.fr>
1645
1646 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
1647 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
1648
1649 2001-11-26 Akim Demaille <akim@epita.fr>
1650
1651 * src/conflicts.c (conflicts_print): Don't complain at all when
1652 there are no reduce/reduce conflicts, and as many shift/reduce
1653 conflicts as expected.
1654 * tests/regression.at (%expect right): Adjust.
1655
1656 2001-11-23 Akim Demaille <akim@epita.fr>
1657
1658 * lib/alloca.c: Update, from fileutils.
1659
1660 2001-11-23 Akim Demaille <akim@epita.fr>
1661
1662 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
1663
1664 2001-11-23 Akim Demaille <akim@epita.fr>
1665
1666 * src/system.h: Include alloca.h.
1667 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
1668
1669 2001-11-23 Akim Demaille <akim@epita.fr>
1670
1671 * src/print_graph.c (print_actions): Remove `rule', unused.
1672 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
1673 pacify GCC's signed < unsigned warnings.
1674 * src/closure.c (itemsetsize): Likewise.
1675 * src/reader.c (symbol_list_new): Static.
1676
1677 2001-11-23 Akim Demaille <akim@epita.fr>
1678
1679 Attaching lineno to buckets is stupid, since only one copy of each
1680 symbol is kept, only the line of the first occurrence is kept too.
1681
1682 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
1683 * src/reader.c (rline_allocated): Remove, unused.
1684 (symbol_list): Have a `line' member.
1685 (symbol_list_new): New.
1686 (readgram): Use it.
1687 * src/print.c (print_grammar): Output the rule line numbers.
1688 * tests/regression.at (Solved SR Conflicts)
1689 (Unresolved SR Conflicts): Adjust.
1690 Reported by Hans Aberg.
1691
1692 2001-11-22 Marc Autret <autret_m@epita.fr>
1693
1694 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
1695
1696 2001-11-22 Marc Autret <autret_m@epita.fr>
1697
1698 * src/muscle_tab.c (muscle_init): Remove initialization of
1699 skeleton muscle.
1700 * src/output.c (output_master_parser): Do it here.
1701
1702 2001-11-20 Akim Demaille <akim@epita.fr>
1703
1704 * po/sv.po: New.
1705 * configure.in (ALL_LINGUAS): Adjust.
1706 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
1707 longer contains strings to translate.
1708
1709 2001-11-19 Akim Demaille <akim@epita.fr>
1710
1711 * src/conflicts.c (conflicts_print): Add a missing \n.
1712
1713 2001-11-19 Akim Demaille <akim@epita.fr>
1714
1715 * src/nullable.c (nullable_print): New.
1716 (set_nullable): Call it when tracing.
1717 Better locality of variables.
1718
1719 2001-11-19 Akim Demaille <akim@epita.fr>
1720
1721 * src/print.c (print_actions): Better locality of variables.
1722
1723 2001-11-19 Akim Demaille <akim@epita.fr>
1724
1725 * src/derives.c (print_derives): Fix and enrich.
1726 * src/closure.c (print_fderives): Likewise.
1727
1728 2001-11-19 Akim Demaille <akim@epita.fr>
1729
1730 * src/closure.c (itemsetend): Remove, replaced with...
1731 (itemsetsize): new.
1732
1733 2001-11-19 Akim Demaille <akim@epita.fr>
1734
1735 * src/LR0.c (kernel_end): Remove, replaced with...
1736 (kernel_size): new.
1737
1738 2001-11-19 Akim Demaille <akim@epita.fr>
1739
1740 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
1741 to clarify.
1742
1743 2001-11-19 Akim Demaille <akim@epita.fr>
1744
1745 * src/closure.c (closure): Use arrays instead of pointers to clarify.
1746
1747 2001-11-19 Akim Demaille <akim@epita.fr>
1748
1749 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
1750 trace messages.
1751 * src/LR0.c: Likewise.
1752 (allocate_itemsets): Use arrays instead of pointers to clarify.
1753
1754 2001-11-19 Akim Demaille <akim@epita.fr>
1755
1756 * src/getargs.c (statistics_flag): Replace with...
1757 (trace_flag): New.
1758 (longopts): Accept --trace instead of --statistics.
1759 * src/getargs.h, src/options.c: Adjust.
1760 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
1761 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
1762
1763 2001-11-19 Akim Demaille <akim@epita.fr>
1764
1765 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
1766 pointers to clarify the code.
1767 (save_reductions, save_shifts): Factor common parts of alternatives.
1768
1769 2001-11-19 Akim Demaille <akim@epita.fr>
1770
1771 * src/LR0.c (new_state, get_state): Complete TRACE code.
1772 * src/closure.c: Include `reader.h' to get `tags', needed by the
1773 trace code.
1774 Rename the conditional DEBUG as TRACE.
1775 Output consistently TRACEs to stderr, not stdout.
1776 * src/derives.c: Likewise.
1777 * src/reduce.c: (inaccessable_symbols): Using if is better style
1778 than goto.
1779 Use `#if TRACE' instead of `#if 0' for tracing code.
1780
1781 2001-11-19 Akim Demaille <akim@epita.fr>
1782
1783 * src/system.h (LIST_FREE, shortcpy): New.
1784 * src/LR0.c: Use them.
1785 * src/output.c (free_itemsets, free_reductions, free_shifts):
1786 Remove, replaced by LIST_FREE.
1787
1788 2001-11-19 Akim Demaille <akim@epita.fr>
1789
1790 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
1791 (REDUCTIONS_ALLOC): New.
1792 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
1793 allocation.
1794
1795 2001-11-19 Akim Demaille <akim@epita.fr>
1796
1797 * src/LR0.c (new_state): Complete trace code.
1798 * src/nullable.c (set_nullable): Don't translate traces.
1799
1800 2001-11-19 Akim Demaille <akim@epita.fr>
1801
1802 * src/print_graph.c (print_core): Better locality of variables.
1803 * src/print.c (print_core): Likewise.
1804
1805 2001-11-19 Akim Demaille <akim@epita.fr>
1806
1807 * src/vcg.c: You do the output, so you are responsible of the
1808 handling of VCG syntax, in particular: use quotearg.
1809 * src/print_graph.c: Don't.
1810 (print_actions): Don't output the actions as part of the nodes,
1811 since that's the job of the edges.
1812 (print_state): Don't output by hand: fill the node description,
1813 and ask for its output.
1814
1815 2001-11-19 Akim Demaille <akim@epita.fr>
1816
1817 * src/bison.simple (yyparse): When verbosely reporting an error,
1818 no longer put additional quotes around token names.
1819 * tests/calc.at: Adjust.
1820
1821 2001-11-19 Akim Demaille <akim@epita.fr>
1822
1823 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
1824 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
1825 * src/output.c: Adjust.
1826
1827 2001-11-19 Akim Demaille <akim@epita.fr>
1828
1829 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
1830 (rule_t): this.
1831 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
1832
1833 2001-11-19 Akim Demaille <akim@epita.fr>
1834
1835 * src/gram.h (rule_t): New.
1836 (rule_table): New.
1837 (rrhs, rlhs): Remove, part of state_t.
1838 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
1839 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
1840 * src/reader.c, src/reduce.c: Adjust.
1841
1842 2001-11-19 Akim Demaille <akim@epita.fr>
1843
1844 * src/reader.c (symbols_output): New, extracted from...
1845 (packsymbols): Here.
1846 (reader): Call it.
1847
1848 2001-11-19 Akim Demaille <akim@epita.fr>
1849
1850 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
1851 (maxrhs): this new function.
1852
1853 2001-11-19 Akim Demaille <akim@epita.fr>
1854
1855 * src/lalr.c (F): New macro to access the variable F.
1856 Adjust.
1857
1858 2001-11-19 Akim Demaille <akim@epita.fr>
1859
1860 * src/lalr.h (LA): New macro to access the variable LA.
1861 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
1862 * src/lalr.c: Adjust.
1863
1864 2001-11-19 Akim Demaille <akim@epita.fr>
1865
1866 * src/lalr.c (initialize_LA): Only initialize LA. Let...
1867 (set_state_table): handle the `lookaheads' members.
1868
1869 2001-11-19 Akim Demaille <akim@epita.fr>
1870
1871 * src/lalr.h (lookaheads): Removed array, whose contents is now
1872 a member of...
1873 (state_t): this structure.
1874 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
1875 Adjust.
1876
1877 2001-11-19 Akim Demaille <akim@epita.fr>
1878
1879 * src/lalr.h (consistent): Removed array, whose contents is now
1880 a member of...
1881 (state_t): this structure.
1882 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
1883 Adjust.
1884
1885 2001-11-19 Akim Demaille <akim@epita.fr>
1886
1887 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
1888 contents are now members of...
1889 (state_t): this structure.
1890 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
1891 Adjust.
1892
1893 2001-11-19 Akim Demaille <akim@epita.fr>
1894
1895 * src/lalr.h (state_t): New.
1896 (state_table): Be a state_t * instead of a core **.
1897 (accessing_symbol): Remove, part of state_t.
1898 * src/lalr.c: Adjust.
1899 (set_accessing_symbol): Merge into...
1900 (set_state_table): this.
1901 * src/print_graph.c, src/conflicts.c: Adjust.
1902
1903 2001-11-14 Akim Demaille <akim@epita.fr>
1904
1905 * tests/calc.at, tests/output.at, tests/regression.at,
1906 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
1907 now the tests are run in private dirs, therefore AC_CLEANUP and
1908 family can be simplified to 0-ary.
1909 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
1910 use abs. path to find config.h.
1911 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
1912 stderr, there can be way too much random noise.
1913 Instead pass -Werror to GCC and rely on the exit status.
1914 Reported by Wolfram Wagner.
1915
1916 2001-11-14 Akim Demaille <akim@epita.fr>
1917
1918 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
1919 defined only if yyoverflow is defined, to avoid `warning: unused
1920 variable `yyvs1''.
1921 Reported by The Test Suite.
1922
1923 2001-11-14 Akim Demaille <akim@epita.fr>
1924
1925 * src/print.c: Include reduce.h.
1926 Reported by Hans Aberg.
1927
1928 2001-11-14 Akim Demaille <akim@epita.fr>
1929
1930 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
1931 Revert a previous patch: these are really const.
1932 * src/conflicts.c (conflict_report): Additional useless pair of
1933 braces to pacify GCC's warnings for `if () if () {} else {}'.
1934 * src/lex.c (parse_percent_token): Replace equal_offset with
1935 arg_offset.
1936 arg is const.
1937 Be sure to strdup `arg' when used, since there is no reason for
1938 token_buffer not to change.
1939
1940 2001-11-14 Akim Demaille <akim@epita.fr>
1941
1942 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
1943 definition.
1944 * src/main.c (main): Use them.
1945 Suggested by Hans Aberg.
1946
1947 2001-11-12 Akim Demaille <akim@epita.fr>
1948
1949 * src/system.h (ngettext): Now that we use ngettext, be sure to
1950 provide a default definition when NLS are not used.
1951
1952 2001-11-12 Akim Demaille <akim@epita.fr>
1953
1954 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
1955 Use @kbd to denote user input.
1956 (Language and Grammar): ANSIfy the example.
1957 Adjust its layout for info/notinfo.
1958 (Location Tracking Calc): Output error messages to stderr.
1959 Output locations in a more GNUtically correct way.
1960 Fix a couple of Englishos.
1961 Adjust @group/@end group pairs.
1962
1963 2001-11-12 Akim Demaille <akim@epita.fr>
1964
1965 %expext was not functioning at all.
1966
1967 * src/conflicts.c (expected_conflicts): Set to -1.
1968 (conflict_report): Use ngettext.
1969 (conflicts_print): Check %expect and make its violation an error.
1970 * doc/bison.texinfo (Expect Decl): Adjust.
1971 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
1972 * tests/regression.at (%expect not enough, %expect right)
1973 (%expect too much): New.
1974
1975 2001-11-12 Akim Demaille <akim@epita.fr>
1976
1977 * tests/regression.at (Conflicts): Rename as...
1978 (Unresolved SR Conflicts): this.
1979 (Solved SR Conflicts): New.
1980
1981 2001-11-12 Akim Demaille <akim@epita.fr>
1982
1983 * src/reduce.c (print_results): Rename as...
1984 (reduce_output): This.
1985 Output to OUT, passed as argument, instead of output_obstack.
1986 (dump_grammar): Likewise.
1987 (reduce_free): New.
1988 Also free V1.
1989 (reduce_grammar): No longer call reduce_output, since...
1990 * src/print.c (print_results): do it.
1991 * src/main.c (main): Call reduce_free;
1992
1993 2001-11-12 Akim Demaille <akim@epita.fr>
1994
1995 * src/conflicts.c (print_reductions): Accept OUT as argument.
1996 Output to it, not to output_obstack.
1997 * src/print.c (print_actions): Adjust.
1998
1999 2001-11-12 Akim Demaille <akim@epita.fr>
2000
2001 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
2002 the result instead of using...
2003 (src_total, rrc_total, src_count, rrc_count): Remove.
2004 (any_conflicts): Remove.
2005 (print_conflicts): Split into...
2006 (conflicts_print, conflicts_output): New.
2007 * src/conflicts.h: Adjust.
2008 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
2009 * src/print.c (print_grammar): Issue `\n' between two rules.
2010 * tests/regression.at (Conflicts): New.
2011 Reported by Tom Lane.
2012
2013 2001-11-12 Akim Demaille <akim@epita.fr>
2014
2015 * tests/regression.at (Invalid input): Remove, duplicate with
2016 ``Invalid input: 1''.
2017
2018 2001-11-12 Akim Demaille <akim@epita.fr>
2019
2020 * tests/torture.at (AT_DATA_STACK_TORTURE)
2021 (Exploding the Stack Size with Alloca)
2022 (Exploding the Stack Size with Malloc): New.
2023
2024 2001-11-12 Akim Demaille <akim@epita.fr>
2025
2026 * src/bison.simple (YYSTACK_REALLOC): New.
2027 (yyparse) [!yyoverflow]: Use it and free the old stack.
2028 Reported by Per Allansson.
2029
2030 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
2031
2032 * src/bison.simple: Define type yystype instead of YYSTYPE, and
2033 define CPP macro, which substitute YYSTYPE by yystype.
2034 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
2035 with yyltype/YYLTYPE. This allows inclusion of the generated
2036 header within the parser if the compiler, such as GGC, accepts
2037 multiple equivalent #defines.
2038 From Akim.
2039
2040 2001-11-05 Akim Demaille <akim@epita.fr>
2041
2042 * src/reader.c (symbols_output): New, extracted from...
2043 (packsymbols): here.
2044 (reader): Adjust.
2045
2046 2001-11-05 Akim Demaille <akim@epita.fr>
2047
2048 * src/lex.c (parse_percent_token): s/quotearg/quote/.
2049
2050 2001-11-05 Akim Demaille <akim@epita.fr>
2051
2052 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
2053 pattern.
2054
2055 2001-11-05 Akim Demaille <akim@epita.fr>
2056
2057 * src/options.h (struct option_table_struct): set_flags is void*.
2058 * src/options.c (longopts): Support `--output' and `%output'.
2059 (usage): Adjust.
2060 * src/lex.h (tok_setopt): Remove, replaced with...
2061 (tok_intopt, tok_stropt): these new guys.
2062 * src/lex.c (getopt.h): Not needed.
2063 (token_buffer, unlexed_token_buffer): Not const.
2064 (percent_table): Promote `-' over `_' in directive names.
2065 Active `%name-prefix', `file-prefix', and `output'.
2066 (parse_percent_token): Accept possible arguments to directives.
2067 Promote `-' over `_' in directive names.
2068
2069 2001-11-04 Akim Demaille <akim@epita.fr>
2070
2071 * doc/bison.texinfo (Decl Summary): Split the list into
2072 `directives for grammars' and `directives for bison'.
2073 Sort'em.
2074 Add description of `%name-prefix', `file-prefix', and `output'.
2075 Promote `-' over `_' in directive names.
2076 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
2077 Simplify the description of `--name-prefix'.
2078 Promote `-' over `_' in directive names.
2079 Promote `--output' over `--output-file'.
2080 Fix the description of `--defines'.
2081 * tests/output.at: Exercise %file-prefix and %output.
2082
2083 2001-11-02 Akim Demaille <akim@epita.fr>
2084
2085 * doc/refcard.tex: Update.
2086
2087 2001-11-02 Akim Demaille <akim@epita.fr>
2088
2089 * src/symtab.h (SUNDEF): New.
2090 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
2091 stand for `uninitialized', instead of 0.
2092 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
2093 * src/lex.c (lex): Adjust.
2094
2095 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
2096 Number it 0.
2097 Let yylex return it instead of a plain 0.
2098 Reported by Dick Streefland.
2099
2100 2001-11-02 Akim Demaille <akim@epita.fr>
2101
2102 * tests/regression.at (Mixing %token styles): New test.
2103
2104 2001-11-02 Akim Demaille <akim@epita.fr>
2105
2106 * src/reader.c (parse_thong_decl): Formatting changes.
2107 (token_translations_init): New, extracted from...
2108 (packsymbols): Here.
2109 Adjust.
2110
2111 2001-11-01 Akim Demaille <akim@epita.fr>
2112
2113 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
2114 Check that `9foo.y' produces correct cpp guards.
2115 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
2116 guards.
2117 Reported by Wwp.
2118
2119 2001-11-01 Akim Demaille <akim@epita.fr>
2120
2121 * tests/regression.at (Invalid input: 2): New.
2122 * src/lex.c (unlexed_token_buffer): New.
2123 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
2124 too.
2125 Reported by Wwp.
2126
2127 2001-11-01 Akim Demaille <akim@epita.fr>
2128
2129 * tests/calc.at: Catch up with 1.30.
2130 * configure.in: Bump to 1.49a.
2131 Adjust to newer Autotest.
2132
2133 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
2134
2135 * src/conflicts.c: Move global variables rrc_total and src_total ...
2136 (print_conflicts): here.
2137 * src/output.c (output): Free global variable user_toknums.
2138 * src/lex.c (token_obstack): Become static.
2139
2140 2001-10-18 Akim Demaille <akim@epita.fr>
2141
2142 * tests/atlocal.in (GCC): Add.
2143 * tests/calc.at: s/m4_match/m4_bmatch/.
2144 s/m4_patsubst/m4_bpatsubst/.
2145 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
2146 * configure.in: AC_SUBST(GCC).
2147
2148 2001-10-14 Marc Autret <autret_m@epita.fr>
2149
2150 * src/options.c (create_long_option_table): Fix.
2151
2152 2001-10-10 Akim Demaille <akim@epita.fr>
2153
2154 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
2155
2156 2001-10-04 Akim Demaille <akim@epita.fr>
2157
2158 * src/reader.c (parse_union_decl): Push the caracters in
2159 union_obstack, not attrs_obstack.
2160
2161 2001-10-04 Akim Demaille <akim@epita.fr>
2162
2163 Merge in the branch 1.29.
2164
2165 * src/reader.c (packsymbols): Use a temporary obstack for
2166 `%%tokendef', since output_stack is already used elsewhere.
2167
2168 2001-10-02 Akim Demaille <akim@epita.fr>
2169
2170 Bump 1.29d.
2171
2172 2001-10-02 Akim Demaille <akim@epita.fr>
2173
2174 Version 1.29c.
2175
2176 2001-10-02 Akim Demaille <akim@epita.fr>
2177
2178 * tests/regression.at (Invalid CPP headers): New.
2179 From Alexander Belopolsky.
2180 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
2181
2182 2001-10-02 Akim Demaille <akim@epita.fr>
2183
2184 * tests/regression.at (Invalid input): New.
2185 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
2186 Reported by Shura.
2187
2188 2001-10-02 Akim Demaille <akim@epita.fr>
2189
2190 * tests/calc.at: Now that --debug works, the tests must be adjusted.
2191
2192 2001-10-02 Akim Demaille <akim@epita.fr>
2193
2194 * src/output.c (output_parser): Assert `skeleton'.
2195 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
2196 systems.
2197 From Shura.
2198
2199 2001-10-01 Marc Autret <autret_m@epita.fr>
2200
2201 * src/lex.h: Echo modifications.
2202 * src/lex.c (unlex): Parameter is now token_t.
2203 From Hans Aberg.
2204
2205 2001-10-01 Marc Autret <autret_m@epita.fr>
2206
2207 * src/main.c: Include lex.h.
2208 From Hans Aberg.
2209
2210 2001-09-29 Akim Demaille <akim@epita.fr>
2211
2212 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
2213
2214 2001-09-28 Akim Demaille <akim@epita.fr>
2215
2216 * tests/testsuite.at: Update to newer Autotest.
2217 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
2218
2219 2001-09-27 Akim Demaille <akim@epita.fr>
2220
2221 Position independent wrapper.
2222
2223 * tests/bison: Remove.
2224 * tests/bison.in: New.
2225 * configure.in: Adjust.
2226
2227 2001-09-27 Paul Eggert <eggert@twinsun.com>
2228
2229 Port quotearg fixes from tar 1.13.24.
2230
2231 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
2232 tm to be declared.
2233 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
2234 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
2235
2236 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
2237 * m4/mbrtowc.m4: New file.
2238 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
2239 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
2240
2241 2001-09-27 Akim Demaille <akim@epita.fr>
2242
2243 Bump to 1.29c.
2244
2245 2001-09-27 Akim Demaille <akim@epita.fr>
2246
2247 Version 1.29b.
2248
2249 2001-09-25 Akim Demaille <akim@epita.fr>
2250
2251 * src/system.h: Include `xalloc.h'.
2252 Remove it from the C files.
2253 * src/files.c (output_files): Free the obstacks.
2254 * src/lex.c (init_lex): Rename as...
2255 (lex_init): this.
2256 (lex_free): New.
2257 * src/main.c (main): Use it.
2258
2259 2001-09-24 Marc Autret <autret_m@epita.fr>
2260
2261 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
2262 to output informations in fout (FILE*).
2263 (open_graph, close_graph): Likewise.
2264 (output_graph, output_edge, output_node): Likewise.
2265 * src/vcg.h: Update function prototypes.
2266 * src/print_graph.c (print_graph): Open output graph file.
2267 (print_actions): Adjust.
2268 * src/files.h: Remove extern declaration.
2269 * src/files.c: Remove graph_obstack declaration.
2270 (open_files): Remove graph_obstack initialization.
2271 (output_files): Remove graph_obstack saving.
2272
2273 2001-09-24 Marc Autret <autret_m@epita.fr>
2274
2275 * src/files.c (compute_output_file_names): Fix.
2276
2277 2001-09-24 Marc Autret <autret_m@epita.fr>,
2278 Akim Demaille <akim@epita.fr>
2279
2280 * src/reader.c (reader): Remove call to free_symtab ().
2281 * src/main.c (main): Call it here.
2282 Include symtab.h.
2283 * src/conflicts.c (initialize_conflicts): Rename as...
2284 (solve_conflicts): this.
2285 * src/print.c (print_core, print_actions, print_state)
2286 (print_grammar): Dump to a file instead a `output_obstack'.
2287 (print_results): Dump `output_obstack', and then proceed with the
2288 FILE *.
2289 * src/files.c (compute_output_file_names, close_files): New.
2290 (output_files): Adjust.
2291 * src/main.c (main): Adjust.
2292
2293 2001-09-23 Marc Autret <autret_m@epita.fr>
2294
2295 * src/files.c (compute_header_macro): Computes header macro name
2296 from spec_defines_file when given.
2297
2298 2001-09-23 Marc Autret <autret_m@epita.fr>
2299
2300 * src/files.c (output_files): Add default extensions.
2301
2302 2001-09-22 Akim Demaille <akim@epita.fr>
2303
2304 * src/conflicts.c (finalize_conflicts): Rename as...
2305 (free_conflicts): this.
2306
2307 2001-09-22 Akim Demaille <akim@epita.fr>
2308
2309 * src/gram.c (gram_free): Rename back as...
2310 (dummy): this.
2311 (output_token_translations): Free `token_translations'.
2312 * src/symtab.c (free_symtab): Free the tag field.
2313
2314 2001-09-22 Akim Demaille <akim@epita.fr>
2315
2316 Remove `translations' as it is always set to true.
2317
2318 * src/gram.h: Adjust.
2319 * src/reader.c (packsymbols, parse_token_decl): Adjust
2320 * src/print.c (print_grammar): Adjust.
2321 * src/output.c (output_token_translations): Adjust.
2322 * src/lex.c (lex): Adjust.
2323 * src/gram.c: Be sure the set pointers to NULL.
2324 (dummy): Rename as...
2325 (gram_free): this.
2326
2327 2001-09-22 Akim Demaille <akim@epita.fr>
2328
2329 * configure.in: Invoke AM_LIB_DMALLOC.
2330 * src/system.h: Use dmalloc.
2331 * src/LR0.c: Be sure to have pointers initialized to NULL.
2332 (allocate_itemsets): Allocate kernel_items only if needed.
2333
2334 2001-09-22 Akim Demaille <akim@epita.fr>
2335
2336 * configure.in: Bump to 1.29b.
2337 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
2338 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
2339 need xmalloc.c in calc.y.
2340 From Pascal Bart.
2341
2342 2001-09-21 Akim Demaille <akim@epita.fr>
2343
2344 Version 1.29a.
2345 * Makefile.maint, config/config.guess, config/config.sub,
2346 * config/missing: Update from masters.
2347 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
2348 upon package.m4.
2349 * configure.in (ALL_LINGUAS): Add `tr'.
2350
2351 2001-09-21 Akim Demaille <akim@epita.fr>
2352
2353 * tests/Makefile.am (package.m4): Move to...
2354 ($(srcdir)/$(TESTSUITE)): here.
2355
2356 2001-09-20 Akim Demaille <akim@epita.fr>
2357
2358 * src/complain.c: No longer try to be standalone: use system.h.
2359 Don't assume __STDC__ is defined to 1. Just test if it is defined.
2360 * src/complain.h: Likewise.
2361 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
2362 Remove the unused variable `n'.
2363 From Albert Chin-A-Young.
2364
2365 2001-09-18 Marc Autret <autret_m@epita.fr>
2366
2367 * doc/bison.1: Update.
2368 * doc/bison.texinfo (Bison Options): Update --defines and --graph
2369 descriptions.
2370 (Option Cross Key): Update.
2371 Add --graph.
2372
2373 2001-09-18 Marc Autret <autret_m@epita.fr>
2374
2375 * tests/regression.at: New test (comment in %union).
2376
2377 2001-09-18 Marc Autret <autret_m@epita.fr>
2378
2379 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
2380 do that.
2381 Reported by Keith Browne.
2382
2383 2001-09-18 Marc Autret <autret_m@epita.fr>
2384
2385 * tests/output.at: Add tests for --defines and --graph.
2386
2387 2001-09-18 Marc Autret <autret_m@epita.fr>
2388
2389 * tests/output.at: Removes tests of %{header,src}_extension features.
2390
2391 2001-09-18 Akim Demaille <akim@epita.fr>
2392
2393 * tests/Makefile.am (package.m4): New.
2394 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
2395 (_AT_CHECK_CALC_ERROR): Likewise.
2396 Factor the `, ' part of verbose error messages.
2397
2398 2001-09-18 Marc Autret <autret_m@epita.fr>
2399
2400 * src/getargs.c (longopts): Declare --defines and --graph as options
2401 with optional arguments.
2402 * src/files.h: Add extern declarations.
2403 * src/files.c (spec_graph_file, spec_defines_file): New.
2404 (output_files): Update.
2405 Remove CPP-outed code.
2406
2407 2001-09-18 Marc Autret <autret_m@epita.fr>
2408
2409 Turn off %{source,header}_extension feature.
2410
2411 * src/files.c (compute_exts_from_gf): Update.
2412 (compute_exts_from_src): Update.
2413 (output_files): CPP-out useless code.
2414 * src/files.h: Remove {header,source}_extension extern declarations.
2415 * src/reader.c (parse_dquoted_param): CPP-out.
2416 (parse_header_extension_decl): Remove.
2417 (parse_source_extension_decl): Remove.
2418 (read_declarations): Remove cases tok_{hdrext,srcext}.
2419 * src/lex.c (percent_table): Remove {header,source}_extension entries.
2420 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
2421
2422 2001-09-10 Akim Demaille <akim@epita.fr>
2423
2424 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
2425 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
2426 (AT_CHECK_OUTPUT): this.
2427 Merely check ls' exit status, its output is useless.
2428
2429 2001-09-10 Akim Demaille <akim@epita.fr>
2430
2431 * tests/calc.at: Use m4_match.
2432 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
2433
2434 2001-09-10 Marc Autret <autret_m@epita.fr>,
2435 Akim Demaille <akim@epita.fr>
2436
2437 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
2438 enum color_e.
2439 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
2440 to `normal'.
2441 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
2442 * src/lex.h: Adjust prototype.
2443 (token_t): Add `tok_undef'.
2444 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
2445 (parse_percent_token): Now returns token_t.
2446 Add default statement in switch.
2447 (lex): Separate `c' as an input variable, from the token_t result
2448 part.
2449 (unlexed): Is a token_t.
2450
2451 2001-09-10 Akim Demaille <akim@epita.fr>
2452
2453 * configure.in: Bump to 1.29a.
2454
2455 2001-09-07 Akim Demaille <akim@epita.fr>
2456
2457 Version 1.29.
2458
2459 2001-08-30 Akim Demaille <akim@epita.fr>
2460
2461 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
2462 * m4/atconfig.m4: Remove.
2463 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
2464 * tests/bison: New.
2465 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
2466 m4_if, m4_patsubst, and m4_regexp.
2467 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
2468 `input' file instead of echo.
2469
2470 2001-08-29 Akim Demaille <akim@epita.fr>
2471
2472 Bump to 1.28e.
2473
2474 2001-08-29 Akim Demaille <akim@epita.fr>
2475
2476 Version 1.28d.
2477
2478 2001-08-29 Paul Eggert <eggert@twinsun.com>
2479
2480 * src/bison.simple (yyparse): Don't take the address of an
2481 item before the start of an array, as that doesn't conform to
2482 the C Standard.
2483
2484 2001-08-29 Robert Anisko <anisko_r@epita.fr>
2485
2486 * doc/bison.texinfo (Location Tracking Calc): New node.
2487
2488 2001-08-29 Paul Eggert <eggert@twinsun.com>
2489
2490 * src/output.c (output): Do not define const, as this now
2491 causes more problems than it cures.
2492
2493 2001-08-29 Akim Demaille <akim@epita.fr>
2494
2495 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
2496 the nodes.
2497 Be sure to tag the `detailmenu'.
2498
2499 2001-08-29 Akim Demaille <akim@epita.fr>
2500
2501 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
2502 download in a tmp dir.
2503
2504 2001-08-28 Marc Autret <autret_m@epita.fr>
2505
2506 * config/depcomp: New file.
2507
2508 2001-08-28 Marc Autret <autret_m@epita.fr>
2509
2510 * doc/bison.1 (mandoc): Adjust.
2511 From Juan Manuel Guerrero.
2512
2513 2001-08-28 Marc Autret <autret_m@epita.fr>
2514
2515 * src/print_graph.c (print_state): Fix.
2516
2517 2001-08-27 Marc Autret <autret_m@epita.fr>
2518
2519 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
2520 char * members.
2521 Echo modifications to the functions prototypes.
2522 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
2523
2524 2001-08-27 Marc Autret <autret_m@epita.fr>
2525
2526 * src/vcg.c: Include `xalloc.h'.
2527 (add_colorentry): New.
2528 (add_classname): New.
2529 (add_infoname): New.
2530 * src/vcg.h: Add new prototypes.
2531
2532 2001-08-27 Akim Demaille <akim@epita.fr>
2533
2534 * Makefile.maint: Sync. again with CVS Autoconf.
2535
2536 2001-08-27 Akim Demaille <akim@epita.fr>
2537
2538 * Makefile.maint: Formatting changes.
2539 (po-update, cvs-update, update): New targets.
2540 (AMTAR): Remove.
2541
2542 2001-08-27 Akim Demaille <akim@epita.fr>
2543
2544 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
2545 * Makefile.maint: Sync. with CVS Autoconf.
2546
2547 2001-08-27 Marc Autret <autret_m@epita.fr>
2548
2549 * src/vcg.h (struct infoname_s): New.
2550 (struct colorentry_s): New.
2551 (graph_s): New fields {vertical,horizontal}_order in structure.
2552 Add `infoname' field.
2553 Add `colorentry' field;
2554 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
2555 (G_HORIZONTAL_ORDER): New.
2556 (G_INFONAME): New.
2557 (G_COLORENTRY): New.
2558 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
2559 Add output of `infoname'.
2560 Add output of `colorentry'.
2561
2562 2001-08-27 Marc Autret <autret_m@epita.fr>
2563
2564 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
2565 This one shadowed a global parameter.
2566
2567 2001-08-24 Marc Autret <autret_m@epita.fr>
2568
2569 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
2570 instead of `unsigned'.
2571 (print_state): Do not call obstack_object_size () in obstack_grow ()
2572 to avoid macro variables shadowing.
2573
2574 2001-08-23 Marc Autret <autret_m@epita.fr>
2575
2576 * src/lex.c (percent_table): Typo: s/naem/name/.
2577 Add graph option.
2578 Normalize new options declarations.
2579
2580 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
2581
2582 * tests/suite.at: Exercise %header_extension and %source_extension.
2583
2584 2001-08-16 Marc Autret <autret_m@epita.fr>
2585
2586 * src/reader.c (parse_dquoted_param): New.
2587 (parse_header_extension_decl): Use it.
2588 (parse_source_extension_decl): Likewise.
2589
2590 2001-08-16 Marc Autret <autret_m@epita.fr>
2591
2592 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
2593 (get_xxxx_str): Use assert () instead of complain ().
2594 Remove return invokations in default cases.
2595 (get_decision_str): Modify default behaviour. Remove second argument.
2596 Echo modifications on calls.
2597 (output_graph): Fix.
2598
2599 2001-08-16 Marc Autret <autret_m@epita.fr>
2600
2601 * src/getargs.c (usage): Update with ``-g, --graph''.
2602
2603 2001-08-16 Marc Autret <autret_m@epita.fr>
2604
2605 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
2606 (Option Cross Key): Likewise.
2607 * doc/bison.1: Update.
2608
2609 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
2610
2611 * src/output.c (output_master_parser): Don't finish action_obstack.
2612 (output_parser): Don't care about the muscle action, here.
2613 (prepare): Copy the action_obstack in the action muscle.
2614 (output): Free action_obstack.
2615
2616 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
2617
2618 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
2619 will contain `%union' declaration.
2620 (parse_union_decl): Delete #line directive output.
2621 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
2622 informations about %union.
2623 (parse_union_decl): Copy the union_obstack in the muscle stype.
2624 * src/bison.simple: Add new #line directive.
2625 Add typdef %%stype YYSTYPE.
2626
2627 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
2628
2629 * src/bison.simple: Add new `#line' directive.
2630
2631 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
2632
2633 * src/bison.simple: New `#line' directive.
2634 * src/output.c (output_parser): Support new dynamic muscle input_line.
2635
2636 2001-09-22 Marc Autret <autret_m@epita.fr>
2637
2638 * src/output.c (output_master_parser): New.
2639 (output_parser): Be more re-entrant.
2640
2641 2001-09-21 Marc Autret <autret_m@epita.fr>
2642
2643 * src/reader.c (copy_definition, parse_union_decl): Update and use
2644 `linef' muscle.
2645 (copy_action): Likewise.
2646 Use obstack_1grow ().
2647 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
2648
2649 2001-09-21 Marc Autret <autret_m@epita.fr>
2650
2651 * src/options.c (option_table): Adjust.
2652 * src/lex.c (parse_percent_token): Fix.
2653
2654 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
2655
2656 * src/options.c (symtab.h): Include it, need by lex.h.
2657
2658 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
2659
2660 * src/lex.c (parse_percent_token): Change type of variable `tx', which
2661 is now an option_table_struct*.
2662 (option_strcmp): New function option_strcmp.
2663 (parse_percent_token): Call option_strcmp.
2664 * src/getargs.c (xalloc.h, options.h): Include it.
2665 (getargs): Call create_long_option_table.
2666 (getargs): Free longopts at the end of the function.
2667 (shortopts): Move in options.c.
2668 * src/options.c (create_long_option_table): New function. Convert
2669 information from option_table to option structure.
2670 * src/reader.c (options.h): Include it.
2671
2672 * src/Makefile.am: Adjust.
2673 * src/options.c (option_table): Create from longopts and percent_table.
2674 * src/getargs.c (longopts): Delete.
2675 * src/lex.c (struct percent_table_struct): Delete.
2676 (percent_table): Delete.
2677 (options.h): Include it.
2678 * src/options.c: Create.
2679 * src/options.h: Create.
2680 Declare enum opt_access_e.
2681 Define struct option_table_struct.
2682
2683 2001-09-20 Marc Autret <autret_m@epita.fr>
2684
2685 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
2686 sections of Bison.
2687
2688 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
2689
2690 * src/bison.simple: s/%%filename/%%skeleton.
2691 * src/muscle_tab.c (getargs.h): Include it.
2692 (muscle_init): Insert new muscle skeleton.
2693
2694 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
2695
2696 * src/output.c (output_parser): Delete unused variable actions_dumped.
2697
2698 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
2699
2700 * src/output.c (output): Delete call to reader_output_yylsp.
2701 * src/reader.c (reader): Likewise.
2702 * src/reader.h: Delete declaration of reader_output_yylsp.
2703
2704 2001-09-02 Marc Autret <autret_m@epita.fr>
2705
2706 * src/reader.c: Include muscle_tab.h.
2707 (parse_union_decl): Update.
2708 (parse_macro_decl): Rename parse_muscle_decl.
2709 Update to use renamed functions and variable.
2710 (read_declarations, copy_action, read_additionnal_code, : Updated
2711 with correct variables and functions names.
2712 (packsymbols, reader): Likewise.
2713
2714 * src/reader.h (muscle_obstack): Extern declaration update.
2715
2716 * src/output.c: Include muscle_tab.h
2717 In all functions using macro_insert, change by using muscle_insert ().
2718 (macro_obstack): Rename muscle_obstack.
2719 Echo modifications in the whole file.
2720 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
2721 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
2722 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
2723
2724 * src/muscle_tab.h: Update double inclusion macros.
2725 (macro_entry_s): Rename muscle_entry_s.
2726 Update prototypes.
2727
2728 * src/muscle_tab.c: Include muscle_tab.h.
2729 Rename macro_tabble to muscle_table.
2730 (mhash1, mhash2, mcmp): Use muscle_entry.
2731 (macro_init): Rename muscle_init. Update.
2732 (macro_insert): Rename muscle_insert. Update.
2733 (macro_find): Rename muscle_find. Update.
2734
2735 * src/main.c: Include muscle_tab.h.
2736 (main): Call muscle_init ().
2737 * src/Makefile.am (bison_SOURCES): Echo modifications.
2738
2739 2001-09-02 Marc Autret <autret_m@epita.fr>
2740
2741 Now the files macro_tab.[ch] are named muscle_tab.[ch].
2742
2743 * src/muscle_tab.c, src/muscle_tab.h: Add files.
2744
2745 2001-09-02 Marc Autret <autret_m@epita.fr>
2746
2747 * src/macrotab.c, src/macrotab.h: Remove.
2748
2749 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
2750
2751 * src/reader.c (copy_guard): Use muscle to specify the `#line'
2752 filename.
2753
2754 2001-09-01 Marc Autret <autret_m@epita.fr>
2755
2756 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
2757 to an explicit value to activate the feature. We do it here.
2758
2759 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
2760
2761 * src/output.c (prepare): Delete the `filename' muscule insertion.
2762 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
2763 (parse_union_decl): Likewise.
2764 * src/macrotab.c (macro_init): Initialize filename by infile.
2765
2766 2001-08-31 Marc Autret <autret_m@epita.fr>
2767
2768 * src/bison.simple (YYLSP_NEEDED): New definition.
2769 * src/output.c (prepare): Add macro insertion of `locations_flag'
2770
2771 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
2772
2773 * src/output.c (prepare): Delete insertion of previous muscles,
2774 and insert the `prefix' muscles.
2775 * src/macrotab.c (macro_init): Likewise.
2776 (macro_init): Initialization prefix directive by `yy'.
2777 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
2778 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
2779 yylval, yydebug, yyerror, yynerrs and yyparse.
2780 New directive `#define' to substitute yydebug, ... with option
2781 name_prefix.
2782
2783 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
2784
2785 * src/main.c (main): Standardize.
2786 * src/output.c (output_table_data, output_parser): Likewise.
2787 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
2788
2789 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
2790
2791 * src/reader.c (read_additionnal_code): Rename %%user_code to
2792 %%epilogue.
2793 * src/output.c (output): Rename %%declarations to %%prologue.
2794 * src/bison.simple: Echo modifications.
2795
2796 2001-08-31 Marc Autret <autret_m@epita.fr>
2797
2798 * src/reader.c (readgram): CleanUp.
2799 (output_token_defines): Likewise.
2800 (packsymbols): Likewise.
2801 (reader): Likewise.
2802 * src/output.c (output): CPP-out useless code.
2803
2804 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
2805
2806 * src/reader.c (reader): Delete obsolete call to function
2807 output_trailers and output_headers.
2808 * src/output.h: Remove obsolete functions prototypes of output_headers
2809 and output_trailers.
2810
2811 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
2812
2813 * src/main.c: Include macrotab.h.
2814 * src/macrotab.h (macro_entry_s): Constify fields.
2815 Adjust functions prototypes.
2816 * src/macrotab.c (macro_insert): Constify key and value.
2817 (macro_find): Constify key.
2818 (macro_insert): Include 'xalloc.h'
2819 (macro_insert): Use XMALLOC.
2820 (macro_find): Constify return value.
2821 * src/output.c (output_table_data): Rename table to table_data.
2822 (output_parser): Constify macro_key, macro_value.
2823
2824 2001-08-30 Marc Autret <autret_m@epita.fr>
2825
2826 * src/reader.c (parse_skel_decl): New.
2827 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2828 * src/lex.h (token_t): New token `tok_skel'.
2829 * src/lex.c (percent_table): Add skeleton option entry.
2830 Standardize.
2831
2832 2001-08-29 Marc Autret <autret_m@epita.fr>
2833
2834 * src/bison.simple: Add %%user_code directive at the end.
2835 * src/reader.c (read_additionnal_code): New.
2836 (reader): Use it.
2837 * src/output.c (output_program): Remove.
2838 (output): Update.
2839
2840 2001-08-28 Marc Autret <autret_m@epita.fr>
2841
2842 * src/output.c (output_actions): Clean up.
2843 (output_gram): CPP-out useless code.
2844 * src/reader.c (reader): Clean up, CPP-out useless code.
2845
2846 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
2847
2848 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
2849 directive.
2850 * src/bison.simple: Add `%%definitions'.
2851
2852 2001-08-28 Marc Autret <autret_m@epita.fr>
2853
2854 * config/depcomp: New file.
2855
2856 2001-08-27 Paul Eggert <eggert@twinsun.com>
2857
2858 * src/bison.simple (yyparse): Don't take the address of an
2859 item before the start of an array, as that doesn't conform to
2860 the C Standard.
2861
2862 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
2863
2864 * src/output.c (output): Remove the initialization of the macro
2865 obstack. It was done too late here.
2866
2867 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
2868 completely wrong.
2869 (reader): Initialize the macro obstack here, since we need it to grow
2870 '%define' directives.
2871
2872 * src/reader.h: Declare the macro obstack as extern.
2873
2874 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
2875
2876 * src/output.c (output_parser): Fix. Store single '%' characters in
2877 the output obstack instead of throwing them away.
2878
2879 2001-08-27 Akim Demaille <akim@epita.fr>
2880
2881 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
2882
2883 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2884
2885 * lib/Makefile.am: Adjust.
2886
2887 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2888
2889 * src/bison.simple: Update and add '%%' directives.
2890
2891 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2892
2893 * src/reader.c (reader): Remove calls to 'output_headers' and
2894 'output_trailers'. Remove some C output.
2895 (readgram): Disable a piece of code that was writing a default
2896 definition for 'YYSTYPE'.
2897 (reader_output_yylsp): Remove.
2898 (packsymbols): Output token defintions to a macro.
2899 (copy_definition): Disable C output.
2900
2901 * src/reader.c (parse_macro_decl): New function used to parse macro
2902 declarations.
2903 (copy_string2): Put the body of copy_string into this new function.
2904 Add a parameter to let the caller choose whether he wants to copy the
2905 string delimiters or not.
2906 (copy_string): Be a simple call to copy_string2 with the last argument
2907 bound to true.
2908 (read_declarations): Add case for macro definition.
2909 (copy_identifier): New.
2910 (parse_macro_decl): Read macro identifiers using copy_identifier
2911 rather than lex.
2912
2913 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2914
2915 * src/output.c (prepare): Add prefixed names.
2916 (output_parser): Output semantic actions.
2917 (output_parser): Fix bug on '%%line' directives.
2918
2919 * src/output.c (output_headers): Remove. The C code printed by this
2920 function should now be in the skeletons.
2921 (output_trailers): Remove.
2922 (output): Disable call to 'reader_output_yylsp'.
2923 (output_rule_data): Do not output tables to the table obstack.
2924
2925 * src/output.c: Remove some C dedicated output.
2926 Improve the use of macro and output obstacks.
2927 (output_defines): Remove.
2928
2929 * src/output.c (output_token_translations): Associate 'translate'
2930 table with a macro. No output to the table obstack.
2931 (output_gram): Same for 'rhs' and 'prhs'.
2932 (output_stos): Same for 'stos'.
2933 (output_rule_data): Same for 'r1' and 'r2'.
2934 (token_actions): Same for 'defact'.
2935 (goto_actions): Same for 'defgoto'.
2936 (output_base): Same for 'pact' and 'pgoto'.
2937 (output_table): Same for 'table'.
2938 (output_check): Same for 'check'.
2939
2940 * src/output.c (output_table_data): New function.
2941 (output_short_table): Remove.
2942 (output_short_or_char_table): Remove.
2943
2944 * src/output.c (output_parser): Replace most of the skeleton copy code
2945 with something new. Skeletons are now processed character by character
2946 rather than line by line, and Bison looks for '%%' macros. This is the
2947 first step in making Bison's output process (a lot) more flexible.
2948 (output_parser): Use the macro table.
2949
2950 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2951
2952 * src/main.c (main): Initialize the macro table.
2953
2954 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2955
2956 * src/lex.c (percent_table): Add tok_define.
2957 * src/lex.h: Add tok_define.
2958
2959 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2960
2961 * src/macrotab.c: New file.
2962 * src/macrotab.h: New file.
2963 * src/Makefile.am: Update.
2964
2965 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
2966
2967 * lib/hash.c: New file.
2968 * lib/hash.h: New file.
2969 * lib/Makefile.am: Update.
2970
2971 2001-08-15 Akim Demaille <akim@epita.fr>
2972
2973 Version 1.28c.
2974
2975 2001-08-15 Marc Autret <autret_m@epita.fr>
2976
2977 * src/reader.c (readgram): Indent output macro YYSTYPE.
2978 (packsymbols): Likewise.
2979 (output_token_defines): Likewise.
2980 * src/files.c: Standardize.
2981 (compute_header_macro): New.
2982 (defines_obstack_save): New. Use compute_header_macro.
2983 (output_files): Update. Use defines_obstack_save.
2984
2985 2001-08-15 Akim Demaille <akim@epita.fr>
2986
2987 * doc/bison.texinfo (Table of Symbols): Document
2988 YYSTACK_USE_ALLOCA.
2989
2990 2001-08-15 Akim Demaille <akim@epita.fr>
2991
2992 * missing: Update from CVS Automake.
2993 * config/config.guess, config/config.sub, config/texinfo.tex:
2994 Update from gnu.org.
2995
2996 2001-08-15 Akim Demaille <akim@epita.fr>
2997
2998 * Makefile.maint: Sync with CVS Autoconf.
2999
3000 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
3001
3002 * doc/bison.texinfo: Include GNU Free Documentation License from
3003 `fdl.texi'.
3004 * doc/fdl.texi: Add to package.
3005
3006 2001-08-14 Marc Autret <autret_m@epita.fr>
3007
3008 Turn on %{source,header}_extension features.
3009
3010 * src/lex.c (percent_table): Un-CPP out header_extension and
3011 source_extension.
3012 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
3013 (compute_exts_from_src): Remove conditions. It restores priorities
3014 between options.
3015
3016 2001-08-14 Marc Autret <autret_m@epita.fr>
3017
3018 * src/files.c (compute_base_names): Add extensions computing when
3019 `--file-prefix' used.
3020 Standardize function calls.
3021
3022 2001-08-13 Marc Autret <autret_m@epita.fr>
3023
3024 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
3025 defining it (defined but null disables alloca).
3026
3027 2001-08-13 Marc Autret <autret_m@epita.fr>
3028
3029 * src/bison.simple (_yy_memcpy): CPP reformat.
3030
3031 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
3032
3033 * tests/atconfig.in (CPPFLAGS): Fix.
3034
3035 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
3036
3037 * doc/bison.texinfo: Include GNU General Public License from
3038 `gpl.texi'.
3039 * doc/gpl.texi: Add to package.
3040
3041 2001-08-10 Marc Autret <autret_m@epita.fr>
3042
3043 * src/print_graph.h: Fix.
3044 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
3045
3046 2001-08-10 Akim Demaille <akim@epita.fr>
3047
3048 * src/system.h: Provide default declarations for stpcpy, strndup,
3049 and strnlen.
3050
3051 2001-08-10 Robert Anisko <anisko_r@epita.fr>
3052
3053 * doc/bison.texinfo (Locations): Update @$ stuff.
3054
3055 2001-08-09 Robert Anisko <anisko_r@epita.fr>
3056
3057 * src/bison.simple (YYLLOC_DEFAULT): Update.
3058 (yyparse): Adjust.
3059
3060 2001-08-08 Marc Autret <autret_m@epita.fr>
3061
3062 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
3063 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
3064 Reported by Fabrice Bauzac.
3065
3066 2001-08-08 Marc Autret <autret_m@epita.fr>
3067
3068 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
3069 * src/vcg.c (output_node): Fix.
3070 * src/vcg.h: Cleanup.
3071 * src/print_graph.c: Add comments.
3072 (node_output_size): New global variable. Simplify the formatting of
3073 the VCG graph output.
3074 (print_actions): Unused code is now used. It notifies the final state
3075 and no action states in the VCG graph. It also give the reduce actions.
3076 The `shift and goto' edges are red and the `go to state' edges are
3077 blue.
3078 Get the current node name and node_obstack by argument.
3079 (node_obstack): New variable.
3080 (print_state): Manage node_obstack.
3081 (print_core): Use node_obstack given by argument.
3082 A node is not only computed here but in print_actions also.
3083 (print_graph): CPP out useless code instead of commenting it.
3084
3085 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
3086
3087 * tests/atconfig.in (CPPFLAGS): Fix.
3088
3089 2001-08-07 Akim Demaille <akim@epita.fr>
3090
3091 * src/print_graph.c (quote): New.
3092 (print_core): Use it.
3093
3094 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3095
3096 * src/vcg.c (complain.h): Include it.
3097 Unepitaize `return' invocations.
3098 [NDEBUG] (main): Remove.
3099 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
3100 * src/files.c (open_files): Initialize graph_obstack.
3101 * src/print_graph.c (print_actions): CPP out useless code.
3102 (print_core): Don't output the last `\n' in labels.
3103 Use `quote'.
3104 * src/files.c (output_files): Output the VCG file.
3105 * src/main.c (main): Invoke print_graph ();
3106
3107 2001-08-06 Marc Autret <autret_m@epita.fr>
3108
3109 Automaton VCG graph output.
3110 Using option ``-g'' or long option ``--graph'', you can generate
3111 a gram_filename.vcg file containing a VCG description of the LALR (1)
3112 automaton of your grammar.
3113
3114 * src/main.c: Call to print_graph() function.
3115 * src/getargs.h: Update.
3116 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
3117 (graph_flag): New flag.
3118 (longopts): Update.
3119 (getargs): Add case `g'.
3120 * src/files.c (graph_obstack): New obstack struct.
3121 (open_files): Initialize new obstack.
3122 (output_files): Saves graph_obstack if required.
3123 * src/files.h (graph_obstack): New extern declaration.
3124 * src/Makefile.am: Add new source files.
3125
3126 2001-08-06 Marc Autret <autret_m@epita.fr>
3127
3128 * src/print_graph.c, src/print_graph.h (graph): New.
3129 * src/vcg.h: New file.
3130 * src/vcg.c: New file, VCG graph handling.
3131
3132 2001-08-06 Marc Autret <autret_m@epita.fr>
3133
3134 Add of %source_extension and %header_extension which specify
3135 the source or/and the header output file extension.
3136
3137 * src/files.c (compute_base_names): Remove initialisation of
3138 src_extension and header_extension.
3139 (compute_exts_from_gf): Update.
3140 (compute_exts_from_src): Update.
3141 (output_files): Update.
3142 * src/reader.c (parse_header_extension_decl): New.
3143 (parse_source_extension_decl): New.
3144 (read_declarations): New case statements for the new tokens.
3145 * src/lex.c (percent_table): Add entries for %source_extension
3146 and %header_extension.
3147 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
3148
3149 2001-08-06 Marc Autret <autret_m@epita.fr>
3150
3151 * configure.in: Bump to 1.28c.
3152 * doc/bison.texinfo: Texinfo thingies.
3153
3154 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
3155
3156 * tests/atconfig.in (CPPFLAGS): Add.
3157 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
3158
3159 2001-08-03 Akim Demaille <akim@epita.fr>
3160
3161 Version 1.28b.
3162
3163 2001-08-03 Akim Demaille <akim@epita.fr>
3164
3165 * tests/Makefile.am (check-local): Ship testsuite.
3166 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
3167 Include `string.h'.
3168
3169 2001-08-03 Akim Demaille <akim@epita.fr>
3170
3171 * configure.in: Try using -Wformat when compiling.
3172
3173 2001-08-03 Akim Demaille <akim@epita.fr>
3174
3175 * configure.in: Bump to 1.28b.
3176
3177 2001-08-03 Akim Demaille <akim@epita.fr>
3178
3179 * src/complain.c: Adjust strerror_r portability issues.
3180
3181 2001-08-03 Akim Demaille <akim@epita.fr>
3182
3183 Version 1.28a.
3184
3185 2001-08-03 Akim Demaille <akim@epita.fr>
3186
3187 * src/getargs.c, src/getarg.h (skeleton)): Constify.
3188 * src/lex.c (literalchar): Avoid name clashes on `buf'.
3189 * src/getargs.c: Include complain.h.
3190 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
3191 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
3192
3193 2001-08-03 Akim Demaille <akim@epita.fr>
3194
3195 * src/reader.c (readgram): Display hidden chars in error messages.
3196
3197 2001-08-03 Akim Demaille <akim@epita.fr>
3198
3199 Update to gettext 0.10.39.
3200
3201 2001-08-03 Akim Demaille <akim@epita.fr>
3202
3203 * lib/strspn.c: New.
3204
3205 2001-08-01 Marc Autret <autret_m@epita.fr>
3206
3207 * doc/bison.texinfo: Update.
3208 * doc/bison.1 (mandoc): Update.
3209 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
3210 * src/files.c: Support output files extensions computing.
3211 (src_extension): New static variable.
3212 (header_extension): New static variable.
3213 (tr): New function.
3214 (get_extension_index): New function, gets the index of an extension
3215 filename in a string.
3216 (compute_exts_from_gf): New function, computes extensions from the
3217 grammar file extension.
3218 (compute_exts_from_src): New functions, computes extensions from the
3219 C source file extension, file given by ``-o'' option.
3220 (compute_base_names): Update.
3221 (output_files): Update.
3222
3223 2001-08-01 Robert Anisko <anisko_r@epita.fr>
3224
3225 * doc/bison.texi: Document @$.
3226 (Locations): New section.
3227
3228 2001-07-18 Akim Demaille <akim@epita.fr>
3229
3230 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
3231 * config/prev-version.txt, config/move-if-change: New.
3232 * Makefile.am: Adjust.
3233
3234 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
3235
3236 * src/bison.simple (yyparse): Suppress warning `comparaison
3237 between signed and unsigned'.
3238
3239 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
3240
3241 * src/getargs.h (raw_flag): Remove.
3242 * src/getargs.c: Die on `-r'/`--raw'.
3243 * src/lex.c (parse_percent_token): Die on `%raw'.
3244 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
3245 * tests/calc.at: Suppress test with option `--raw'.
3246
3247 2001-07-14 Akim Demaille <akim@epita.fr>
3248
3249 * config/: New.
3250 * configure.in: Require Autoconf 2.50.
3251 Update to gettext 0.10.38.
3252
3253 2001-03-16 Akim Demaille <akim@epita.fr>
3254
3255 * doc/bison.texinfo: ANSIfy the examples.
3256
3257 2001-03-16 Akim Demaille <akim@epita.fr>
3258
3259 * getargs.c (skeleton): New variable.
3260 (longopts): --skeleton is a new option.
3261 (shortopts, getargs): -S is a new option.
3262 * getargs.h: Declare skeleton.
3263 * output.c (output_parser): Use it.
3264
3265 2001-03-16 Akim Demaille <akim@epita.fr>
3266
3267 * m4/strerror_r.m4: New.
3268 * m4/error.m4: Run AC_FUNC_STRERROR_R.
3269 * lib/error.h, lib/error.c: Update.
3270
3271 2001-03-16 Akim Demaille <akim@epita.fr>
3272
3273 * src/getargs.c (longopts): Clean up.
3274
3275 2001-02-21 Akim Demaille <akim@epita.fr>
3276
3277 * src/reader.c (gensym): `gensym_count' is your own.
3278 Use a static buf to create the symbol name, as token_buffer is no
3279 longer a buffer.
3280
3281 2001-02-08 Akim Demaille <akim@epita.fr>
3282
3283 * src/conflicts.c (conflict_report): Be sure not to append to res
3284 between two calls, which could happen if both first sprintf were
3285 skipped, but not the first cp += strlen.
3286
3287 2001-02-08 Akim Demaille <akim@epita.fr>
3288
3289 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
3290 New, from fileutils 4.0.37.
3291 * configure.in: Require Autoconf 2.49c. I took some time before
3292 making this decision. This is the only way out for portability
3293 issues in Bison, it would mean way too much duplicate effort to
3294 import in Bison features implemented in 2.49c since 2.13.
3295 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
3296
3297 2001-02-02 Akim Demaille <akim@epita.fr>
3298
3299 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
3300 * lib/xalloc.h, lib/xmalloc.c: Update.
3301
3302 2001-01-19 Akim Demaille <akim@epita.fr>
3303
3304 Get rid of the ad hoc handling of token_buffer in the scanner: use
3305 the obstacks.
3306
3307 * src/lex.c (token_obstack): New.
3308 (init_lex): Initialize it. No longer call...
3309 (grow_token_buffer): this. Remove it.
3310 Adjust all the places which used it to use the obstack.
3311
3312 2001-01-19 Akim Demaille <akim@epita.fr>
3313
3314 * src/lex.h: Rename all the tokens:
3315 s/\bENDFILE\b/tok_eof/g;
3316 s/\bIDENTIFIER\b/tok_identifier/g;
3317 etc.
3318 Let them be enums, not #define, to ease debugging.
3319 Adjust all the code.
3320
3321 2001-01-18 Akim Demaille <akim@epita.fr>
3322
3323 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
3324 * src/lex.c (maxtoken, grow_token_buffer): Static.
3325
3326 2001-01-18 Akim Demaille <akim@epita.fr>
3327
3328 Since we now use obstacks, more % directives can be enabled.
3329
3330 * src/lex.c (percent_table): Also accept `%yacc',
3331 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
3332 `%debug'.
3333 Handle the actions for `%semantic_parser' and `%pure_parser' here,
3334 instead of returning a token.
3335 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
3336 * src/reader.c (read_declarations): Adjust.
3337 * src/files.c (open_files): Don't call `compute_base_names', don't
3338 compute `attrsfile' since they depend upon data which might be
3339 *in* the input file now.
3340 (output_files): Do it here.
3341 * src/output.c (output_headers): Document the fact that this patch
3342 introduces a guaranteed SEGV for semantic parsers.
3343 * doc/bison.texinfo: Document them.
3344 * tests/suite.at: Exercise these %options.
3345
3346 2000-12-20 Akim Demaille <akim@epita.fr>
3347
3348 Also handle the output file (--verbose) with obstacks.
3349
3350 * files.c (foutput): Remove.
3351 (output_obstack): New.
3352 Adjust all dependencies.
3353 * src/conflicts.c: Return a string.
3354 * src/system.h (obstack_grow_string): Rename as...
3355 (obstack_sgrow): this. Be ready to work with non literals.
3356 (obstack_fgrow4): New.
3357
3358 2000-12-20 Akim Demaille <akim@epita.fr>
3359
3360 * src/files.c (open_files): Fix the computation of short_base_name
3361 in the case of `-o foo.tab.c'.
3362
3363 2000-12-20 Akim Demaille <akim@epita.fr>
3364
3365 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
3366 (copy_dollar): Now that everything uses obstacks, get rid of the
3367 FILE * parameters.
3368
3369 2000-12-20 Akim Demaille <akim@epita.fr>
3370
3371 * src/files.c (open_files): Actually the `.output' file is based
3372 on the short_base_name, not base_name.
3373 * tests/suite.at (Checking output file names): Adjust.
3374
3375 2000-12-20 Akim Demaille <akim@epita.fr>
3376
3377 * src/bison.s1: Remove, we now use directly...
3378 * src/bison.simple: this.
3379 * src/Makefile.am: Use pkgdata instead of data.
3380
3381 2000-12-20 Akim Demaille <akim@epita.fr>
3382
3383 * src/files.c (guard_obstack): New.
3384 (open_files): Initialize it.
3385 (output_files): Dump it...
3386 * src/files.h: Export it.
3387 * src/reader.c (copy_guard): Use it.
3388
3389 2000-12-19 Akim Demaille <akim@epita.fr>
3390
3391 * src/files.c (outfile, defsfile, actfile): Removed as global
3392 vars.
3393 (open_files): Don't compute them.
3394 (output_files): Adjust.
3395 (base_name, short_base_name): Be global.
3396 Adjust dependencies.
3397
3398 2000-12-19 Akim Demaille <akim@epita.fr>
3399
3400 * src/files.c (strsuffix): New.
3401 (stringappend): Be just like strcat but allocate.
3402 (base_names): Eve out from open_files.
3403 Try to simplify the rather hairy computation of base_name and
3404 short_base_name.
3405 (open_files): Use it.
3406 * tests/suite.at (Checking output file names): New test.
3407
3408 2000-12-19 Akim Demaille <akim@epita.fr>
3409
3410 * src/system.h (obstack_grow_literal_string): Rename as...
3411 (obstack_grow_string): this.
3412 * src/output.c (output_parser): Recognize `%% actions' instead of
3413 `$'.
3414 * src/bison.s1: s/$/%% actions/.
3415 * src/bison.hairy: Likewise.
3416
3417 2000-12-19 Akim Demaille <akim@epita.fr>
3418
3419 * src/output.c (output_parser): Compute the `#line' lines when
3420 there are.
3421 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
3422 Suggested by Hans Aberg.
3423
3424 2000-12-19 Akim Demaille <akim@epita.fr>
3425
3426 Let the handling of the skeleton files be local to the procedures
3427 that use it.
3428
3429 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
3430 longer static.
3431 (fparser, open_extra_files): Remove.
3432 (open_files, output_files): Don't take care of fparser.
3433 * src/files.h: Adjust.
3434 * src/output.c (output_parser): Open and close the file to the
3435 skeleton.
3436 * src/reader.c (read_declarations): When %semantic_parser, open
3437 fguard.
3438
3439 2000-12-19 Akim Demaille <akim@epita.fr>
3440
3441 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
3442 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
3443
3444 2000-12-19 Akim Demaille <akim@epita.fr>
3445
3446 * src/files.c (open_files): Yipee! We no longer need all the code
3447 looking for `/tmp' since we have no tmp file.
3448
3449 2000-12-19 Akim Demaille <akim@epita.fr>
3450
3451 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
3452 New macros.
3453 * src/files.c (open_files): Less dependency on MSDOS etc.
3454
3455 2000-12-14 Akim Demaille <akim@epita.fr>
3456
3457 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
3458 Provide a default definition.
3459 Use it when executing the default @ action.
3460 * src/reader.c (reader_output_yylsp): No longer include
3461 `timestamp' and `text' in the default YYLTYPE.
3462
3463 2000-12-12 Akim Demaille <akim@epita.fr>
3464
3465 * src/reader.c (copy_definition, parse_union_decl, copy_action)
3466 (copy_guard): Quote the file names.
3467 Reported by Laurent Mascherpa.
3468
3469 2000-12-12 Akim Demaille <akim@epita.fr>
3470
3471 * src/output.c (output_headers, output_program, output): Be sure
3472 to escape special characters when outputting filenames.
3473 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
3474 (output_headers): Don't depend on them, Use ACTSTR.
3475
3476 2000-11-17 Akim Demaille <akim@epita.fr>
3477
3478 * lib/obstack.h: Formatting changes.
3479 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
3480 prevents type checking.
3481 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
3482 cast the value to (void *): assigning a `foo *' to a `void *'
3483 variable is valid.
3484 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
3485 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
3486 append characters.
3487
3488 2000-11-17 Akim Demaille <akim@epita.fr>
3489
3490 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
3491 as...
3492 (suite.m4, regression.m4, calc.m4): these.
3493 * tests/atgeneral.m4: Update from CVS Autoconf.
3494
3495 2000-11-17 Akim Demaille <akim@epita.fr>
3496
3497 * tests/regression.m4 (%union and --defines): New test,
3498 demonstrating a current bug in the obstack implementation.
3499
3500 2000-11-17 Akim Demaille <akim@epita.fr>
3501
3502 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
3503 macros.
3504 Use them to declare the variables which are global or local to
3505 `yyparse'.
3506
3507 2000-11-17 Akim Demaille <akim@epita.fr>
3508
3509 * acconfig.h: Remove, no longer used.
3510
3511 2000-11-07 Akim Demaille <akim@epita.fr>
3512
3513 * src: s/Copyright (C)/Copyright/g.
3514
3515 2000-11-07 Akim Demaille <akim@epita.fr>
3516
3517 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
3518 defining.
3519 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
3520
3521 2000-11-07 Akim Demaille <akim@epita.fr>
3522
3523 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
3524 Merge in a single CPP if/else.
3525
3526 2000-11-07 Akim Demaille <akim@epita.fr>
3527
3528 * src/output.c (output): Remove useless variables.
3529 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
3530 argument `data' for consistency with the prototypes.
3531 Qualify it `const'.
3532 (obstack_copy, obstack_copy0): Rename the second argument as
3533 `address' for consistency. Qualify it `const'.
3534 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
3535 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
3536 `const' their input argument (`data' or `address').
3537 Adjust the corresponding macros to include `const' in casts.
3538
3539 2000-11-03 Akim Demaille <akim@epita.fr>
3540
3541 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
3542 s/PFILE1/BISON_HAIRY/.
3543 Adjust dependencies.
3544
3545 2000-11-03 Akim Demaille <akim@epita.fr>
3546
3547 For some reason, this was not applied.
3548
3549 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
3550 `unlink': it's no longer used.
3551
3552 2000-11-03 Akim Demaille <akim@epita.fr>
3553
3554 * src/files.c (skeleton_find): New function, eved out of...
3555 (open_files, open_extra_files): here.
3556
3557 2000-11-03 Akim Demaille <akim@epita.fr>
3558
3559 Don't use `atexit'.
3560
3561 * src/files.c (obstack_save): New function.
3562 (done): Rename as...
3563 (output_files): this.
3564 Use `obstack_save'.
3565 * src/main.c (main): Don't use `atexit' to register `done', since
3566 it no longer has to remove tmp files, just call `output_files'
3567 when there are no errors.
3568
3569 2000-11-02 Akim Demaille <akim@epita.fr>
3570
3571 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
3572 `unlink': it's no longer used.
3573 * src/files.h: Formatting changes.
3574
3575 2000-11-02 Akim Demaille <akim@epita.fr>
3576
3577 Remove the last uses of mktemp and unlink/delete.
3578
3579 * src/files.c (fdefines, ftable): Removed.
3580 (defines_ostack, table_obstack): New.
3581 Adjust dependencies of the former into uses of the latter.
3582 * src/output.c (output_short_or_char_table, output_short_table):
3583 Convert to using obstacks.
3584 * src/reader.c (copy_comment2): Accept one FILE * and two
3585 obstacks.
3586 (output_token_defines, reader_output_yylsp): Use obstacks.
3587 * src/system.h (obstack_fgrow3): New.
3588
3589 2000-11-01 Akim Demaille <akim@epita.fr>
3590
3591 Change each use of `fattrs' into a use of `attrs_obstack'.
3592
3593 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
3594 * src/files.c (fattrs): Remove.
3595 (attrs_obstack): New.
3596 Adjust all dependencies.
3597 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
3598
3599 2000-11-01 Akim Demaille <akim@epita.fr>
3600
3601 Introduce obstacks.
3602 Change each use of `faction' into a use of `action_obstack'.
3603
3604 * lib/obstack.h, lib/obstack.c: New files.
3605 * src/files.c (faction): Remove.
3606 (action_obstack): New.
3607 Adjust all dependencies.
3608
3609 2000-10-20 Akim Demaille <akim@epita.fr>
3610
3611 * lib/quote.h (PARAMS): New macro. Use it.
3612
3613 2000-10-16 Akim Demaille <akim@epita.fr>
3614
3615 * src/output.c (output_short_or_char_table): New function.
3616 (output_short_table, output_token_translations): Use it.
3617 (goto_actions): Use output_short_table.
3618
3619 2000-10-16 Akim Demaille <akim@epita.fr>
3620
3621 * src/symtab.c (bucket_new): New function.
3622 (getsym): Use it.
3623
3624 * src/output.c (output_short_table): New argument to display the
3625 comment associated with the table.
3626 Adjust dependencies.
3627 (output_gram): Use it.
3628 (output_rule_data): Nicer output layout for YYTNAME.
3629
3630 2000-10-16 Akim Demaille <akim@epita.fr>
3631
3632 * src/lex.c (read_typename): New function.
3633 (lex): Use it.
3634 * src/reader.c (copy_dollar): Likewise.
3635
3636 2000-10-16 Akim Demaille <akim@epita.fr>
3637
3638 * src/reader.c (copy_comment2): Expect the input stream to be on
3639 the `/' which is suspected to open a comment, instead of being
3640 called after `//' or `/*' was read.
3641 (copy_comment, copy_definition, parse_union_decl, copy_action)
3642 (copy_guard): Adjust.
3643
3644 2000-10-16 Akim Demaille <akim@epita.fr>
3645
3646 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
3647 `read_signed_integer'.
3648
3649 2000-10-16 Akim Demaille <akim@epita.fr>
3650
3651 * src/reader.c (copy_dollar): New function.
3652 (copy_guard, copy_action): Use it.
3653
3654 2000-10-16 Akim Demaille <akim@epita.fr>
3655
3656 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
3657 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
3658 New files, from Fileutils 4.0.27.
3659 * src/main.c (printable_version): Remove.
3660 * src/lex.c, src/reader.c: Use `quote'.
3661
3662 2000-10-04 Akim Demaille <akim@epita.fr>
3663
3664 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
3665
3666 2000-10-04 Akim Demaille <akim@epita.fr>
3667
3668 * doc/bison.texinfo: Various typos spotted by Neil Booth.
3669
3670 2000-10-04 Akim Demaille <akim@epita.fr>
3671
3672 When a literal string is used to define two different tokens,
3673 `bison -v' segfaults.
3674 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
3675
3676 * tests/regression.m4: New file.
3677 Include the core of the sample provided by Piotr Gackiewicz.
3678 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
3679 properly.
3680
3681 2000-10-04 Akim Demaille <akim@epita.fr>
3682
3683 * src/reader.c (parse_expect_decl): Keep `count' within the size
3684 of `buffer'.
3685 From Neil Booth.
3686
3687 2000-10-02 Paul Eggert <eggert@twinsun.com>
3688
3689 * bison.s1 (yyparse): Assign the default value
3690 unconditionally, to avoid a GCC warning and make the parser a
3691 tad smaller.
3692
3693 2000-10-02 Akim Demaille <akim@epita.fr>
3694
3695 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
3696 options.
3697
3698 2000-10-02 Akim Demaille <akim@epita.fr>
3699
3700 * src/derives.c, src/print.c, src/reduce.c: To ease the
3701 translation, move some `\n' out of the translated strings.
3702
3703 2000-10-02 Akim Demaille <akim@epita.fr>
3704
3705 The location tracking mechanism is precious for parse error
3706 messages. Nevertheless, it is enabled only when `@n' is used in
3707 the grammar, which is a different issue (you can use it in error
3708 message, but not in the grammar per se). Therefore, there should
3709 be another means to enable it.
3710
3711 * src/getargs.c (getargs): Support `--locations'.
3712 (usage): Report it.
3713 * src/getargs.h (locationsflag): Export it.
3714 * src/lex.c (percent_table): Support `%locations'.
3715 * src/reader.c (yylsp_needed): Remove this variable, now replaced
3716 with `locationsflag'.
3717 * doc/bison.texinfo: Document `--locations' and `%locations'.
3718 Sort the options.
3719 * tests/calc.m4: Test it.
3720
3721 For regularity of the names, replace each
3722 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
3723 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
3724 In addition replace each `flag' with `_flag'.
3725
3726 2000-10-02 Akim Demaille <akim@epita.fr>
3727
3728 Also test parse error messages, including with YYERROR_VERBOSE.
3729
3730 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
3731 associative).
3732 Use it to check the computations.
3733 Use it to check `nonassoc' is honored.
3734 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
3735 `--yyerror-verbose'.
3736 (_AT_CHECK_CALC): Adjust to this option.
3737 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
3738
3739 2000-10-02 Akim Demaille <akim@epita.fr>
3740
3741 Test also `--verbose', `--defines' and `--name-prefix'. Testing
3742 the latter demonstrates a flaw in the handling of non debugging
3743 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
3744 was used in order to simplify:
3745
3746 #if YYDEBUG
3747 if (yydebug)
3748 {
3749 ...
3750 }
3751 #endif
3752
3753 into
3754
3755 if (yydebug)
3756 {
3757 ...
3758 }
3759
3760 unfortunately this leads to a CPP conflict when
3761 `--name-prefix=foo' is used since it produces `#define yydebug
3762 foodebug'.
3763
3764 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
3765 (YYDPRINTF): New macro.
3766 Spread its use.
3767 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
3768 the bison options.
3769 Also test `--verbose', `--defines' and `--name-prefix'.
3770
3771 2000-10-02 Akim Demaille <akim@epita.fr>
3772
3773 Improve the readability of the produced parsers.
3774
3775 * src/bison.s1: Formatting changes.
3776 Improve the comment related to the `$' mark.
3777 (yydefault): Don't fall through to `yyresume': `goto' there.
3778 * src/output.c (output_parser): When the `$' is met, skip the end
3779 of its line.
3780 New variable, `number_of_dollar_signs', to check there's exactly
3781 one `$' in the parser skeleton.
3782
3783 2000-10-02 Akim Demaille <akim@epita.fr>
3784
3785 * lib/xstrdup.c: New file, from the fileutils.
3786 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
3787 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
3788 instead of strlen + xmalloc + strcpy.
3789 * src/symtab.c (copys): Remove, use xstrdup instead.
3790
3791 2000-10-02 Akim Demaille <akim@epita.fr>
3792
3793 * src/gram.h (associativity): New enum type which replaces the
3794 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
3795 `right_assoc', `left_assoc' and `non_assoc'.
3796 Adjust all dependencies.
3797 * src/reader.c: Formatting changes.
3798 (LTYPESTR): Don't define it, use it as a literal in
3799 `reader_output_yylsp'.
3800 * src/symtab.h (symbol_class): New enum type which replaces the
3801 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
3802 `sunknown', `stoken and `snterm'.
3803
3804 2000-10-02 Akim Demaille <akim@epita.fr>
3805
3806 * src/getargs.c (fixed_outfiles): Rename as...
3807 (yaccflag): for consistency and accuracy.
3808 Adjust dependencies.
3809
3810 2000-10-02 Akim Demaille <akim@epita.fr>
3811
3812 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
3813 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
3814 difficult and introduced a lot of core dump. It turns out that
3815 Bison used an implementation of `xmalloc' based on `calloc', and
3816 at various places it does depend upon the initialization to 0. I
3817 have not tried to isolate the pertinent places, and all the former
3818 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
3819 someone should address this issue.
3820
3821 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
3822 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
3823 files.
3824 Adjust dependencies.
3825 * src/warshall.h: New file.
3826 Propagate.
3827
3828 2000-10-02 Akim Demaille <akim@epita.fr>
3829
3830 Various anti-`extern in *.c' changes.
3831
3832 * src/system.h: Include `assert.h'.
3833
3834 2000-10-02 Akim Demaille <akim@epita.fr>
3835
3836 * src/state.h (nstates, final_state, first_state, first_shift)
3837 (first_reduction): Move their exportation from here...
3838 * src/LR0.h: to here.
3839 Adjust dependencies.
3840 * src/getargs.c (statisticsflag): New variable.
3841 Add support for `--statistics'.
3842 Adjust dependencies.
3843
3844 Remove a lot of now useless `extern' statements in most files.
3845
3846 2000-10-02 Akim Demaille <akim@epita.fr>
3847
3848 * src/LR0.h: New file.
3849 Propagate its use.
3850
3851 2000-10-02 Akim Demaille <akim@epita.fr>
3852
3853 * src/print.h: New file.
3854 Propagate its use.
3855 * src/print.c: Formatting and ordering changes.
3856 (verbose, terse): Replace with...
3857 (print_results): this new function.
3858 Adjust dependencies.
3859
3860 2000-10-02 Akim Demaille <akim@epita.fr>
3861
3862 * src/conflicts.c (conflict_report): New function.
3863 (conflict_log, verbose_conflict_log): Replace with...
3864 (print_conflicts): this function.
3865 Adjust dependencies.
3866 * src/conflicts.h: New file.
3867 Propagate its inclusion.
3868
3869 2000-10-02 Akim Demaille <akim@epita.fr>
3870
3871 * src/nullable.h: New file.
3872 Propagate its inclusion.
3873 * src/nullable.c: Formatting changes.
3874
3875 2000-10-02 Akim Demaille <akim@epita.fr>
3876
3877 * src/reduce.h: New file.
3878 Propagate its inclusion.
3879 * src/reduce.c: Topological sort and other formatting changes.
3880 (bool, TRUE, FALSE): Move their definition to...
3881 * src/system.h: here.
3882
3883 2000-10-02 Akim Demaille <akim@epita.fr>
3884
3885 * src/files.c: Formatting changes.
3886 (tryopen, tryclose, openfiles): Rename as...
3887 (xfopen, xfclose, open_files): this.
3888 (stringappend): static.
3889 * src/files.h: Complete the list of exported symbols.
3890 Propagate its use.
3891
3892 2000-10-02 Akim Demaille <akim@epita.fr>
3893
3894 * src/reader.h: New file.
3895 Propagate its use instead of tedious list of `extern' and
3896 prototypes.
3897 * src/reader.c: Formatting changes, topological sort,
3898 s/register//.
3899
3900 2000-10-02 Akim Demaille <akim@epita.fr>
3901
3902 * src/lex.h: Prototype `lex.c' exported functions.
3903 * src/reader.c: Adjust.
3904 * src/lex.c: Formatting changes.
3905 (safegetc): Rename as...
3906 (xgetc): this.
3907
3908 2000-10-02 Akim Demaille <akim@epita.fr>
3909
3910 * src/lalr.h: New file.
3911 Propagate its inclusion instead of prototypes and `extern'.
3912 * src/lalr.c: Formatting changes, topological sorting etc.
3913
3914 2000-10-02 Akim Demaille <akim@epita.fr>
3915
3916 * src/output.c (token_actions): Introduce a temporary array,
3917 YYDEFACT, that makes it possible for this function to use
3918 output_short_table.
3919
3920 2000-10-02 Akim Demaille <akim@epita.fr>
3921
3922 `user_toknums' is output as a `short[]' in `output.c', while it is
3923 defined as a `int[]' in `reader.c'. For consistency with the
3924 other output tables, `user_toknums' is now defined as a table of
3925 shorts.
3926
3927 * src/reader.c (user_toknums): Be a short table instead of an int
3928 table.
3929 Adjust dependencies.
3930
3931 Factor the short table outputs.
3932
3933 * src/output.c (output_short_table): New function.
3934 * src/output.c (output_gram, output_stos, output_rule_data)
3935 (output_base, output_table, output_check): Use it.
3936
3937 2000-10-02 Akim Demaille <akim@epita.fr>
3938
3939 * src/output.c (output): Topological sort of the functions, in
3940 order to get rid of the `static' prototypes.
3941 No longer use `register'.
3942 * src/output.h: New file.
3943 Propagate its inclusion in files explicitly prototyping functions
3944 from output.c.
3945
3946 2000-09-21 Akim Demaille <akim@epita.fr>
3947
3948 * src/atgeneral.m4: Update from Autoconf.
3949
3950 2000-09-21 Akim Demaille <akim@epita.fr>
3951
3952 * src/closure.h: New file.
3953 * src/closure.c: Formatting changes, topological sort over the
3954 functions, use of closure.h.
3955 (initialize_closure, finalize_closure): Rename as...
3956 (new_closure, free_closure): these. Adjust dependencies.
3957 * src/LR0.c: Formatting changes, topological sort, use of
3958 cloture.h.
3959 (initialize_states): Rename as...
3960 (new_states): this.
3961 * src/Makefile.am (noinst_HEADERS): Adjust.
3962
3963 2000-09-20 Akim Demaille <akim@epita.fr>
3964
3965 * src/acconfig.h: Don't protect config.h against multiple
3966 inclusion.
3967 Don't define PARAMS.
3968 * src/system.h: Define PARAMS.
3969 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
3970 purpose of config.h. system.h must not try to fix wrong
3971 definitions in config.h.
3972
3973 2000-09-20 Akim Demaille <akim@epita.fr>
3974
3975 * src/derives.h: New file.
3976 * src/main.c, src/derives.h: Use it.
3977 Formatting changes.
3978 * src/Makefile.am (noinst_HEADERS): Adjust.
3979
3980 2000-09-20 Akim Demaille <akim@epita.fr>
3981
3982 * tests/atgeneral.m4: Update from Autoconf.
3983 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
3984 (AT_CHECK_CALC): New macros.
3985 Use these macros to test bison with options `', `--raw',
3986 `--debug', `--yacc', `--yacc --debug'.
3987
3988 2000-09-19 Akim Demaille <akim@epita.fr>
3989
3990 * src/output.c: Formatting changes.
3991 * src/machine.h: Remove, leaving its contents in...
3992 * src/system.h: here.
3993 Include stdio.h.
3994 Adjust all dependencies on stdio.h and machine.h.
3995 * src/getargs.h: New file.
3996 Let all `extern' declarations about getargs.c be replaced with
3997 inclusion of `getargs.h'.
3998 * src/Makefile.am (noinst_HEADERS): Adjust.
3999
4000 * tests/calc.m4 (yyin): Be initialized in main, not on the global
4001 scope.
4002 (yyerror): Returns void, not int.
4003 * doc/bison.texinfo: Formatting changes.
4004
4005 2000-09-19 Akim Demaille <akim@epita.fr>
4006
4007 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
4008 portable.
4009
4010 2000-09-18 Akim Demaille <akim@epita.fr>
4011
4012 * configure.in: Append WARNING_CFLAGS to CFLAGS.
4013 * src/Makefile.am (INCLUDES): Don't.
4014 Be ready to fetch headers in lib/.
4015
4016 2000-09-18 Akim Demaille <akim@epita.fr>
4017
4018 * doc/bison.texinfo: Update the copyright.
4019 ANSIfy and GNUify the examples.
4020 Remove the old menu.
4021
4022 2000-09-18 Akim Demaille <akim@epita.fr>
4023
4024 First set of tests: use the `calc' example from the documentation.
4025
4026 * src/bison.s1 (yyparse): Condition the code using `yytname' which
4027 is defined only when YYDEBUG is.
4028 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
4029 * src/files.c (tryopen, tryclose): Formatting changes.
4030 Move to the top and be static.
4031 * src/reader.c (read_signed_integer): Likewise.
4032 * tests/calc.m4: New file.
4033 * Makefile.am, suite.m4: Adjust.
4034 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
4035
4036 2000-09-18 Akim Demaille <akim@epita.fr>
4037
4038 Add support for an Autotest test suite for Bison.
4039
4040 * m4/m4.m4, m4/atconfig.m4: New files.
4041 * m4/Makefile.am (EXTRA_DIST): Adjust.
4042 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
4043 files.
4044 * src/getargs.c: Display a more standard --version message.
4045 * src/reader.c (reader): Formatting changes.
4046 No longer depend upon VERSION_STRING.
4047 * configure.in: No longer use `dnl'.
4048 Set up the test suite and the new directory `tests/.
4049 (VERSION_STRING): Remove.
4050
4051 2000-04-14 Akim Demaille <akim@epita.fr>
4052
4053 * src/reader.c (copy_comment2): New function, same as former
4054 `copy_comment', but outputs into two FILE *.
4055 (copy_comment): Use it.
4056 (parse_union_decl): Use it.
4057 (get_type, parse_start_decl): Use the same `invalid' message.
4058 (parse_start_decl, parse_union_decl): Use the same `multiple'
4059 message.
4060 (parse_union_decl, copy_guard, copy_action): Use the same
4061 `unmatched' message.
4062 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
4063
4064 2000-03-31 Akim Demaille <akim@epita.fr>
4065
4066 * src/files.c (tryopen, tryclose): Move to the top.
4067 Be static.
4068
4069 2000-03-31 Akim Demaille <akim@epita.fr>
4070
4071 * src/main.c (main): Don't call `done', exit does it.
4072
4073 2000-03-31 Akim Demaille <akim@epita.fr>
4074
4075 * allocate.c: s/return (foo)/return foo/.
4076 * lalr.c: Likewise.
4077 * LR0.c: Likewise.
4078 * output.c: Likewise.
4079 * reader.c: Likewise.
4080 * symtab.c: Likewise.
4081 * vmsgetargs.c: Likewise.
4082
4083 2000-03-31 Akim Demaille <akim@epita.fr>
4084
4085 Clean up the error reporting functions.
4086
4087 * src/report.c: New file.
4088 * src/report.h: Likewise.
4089 * src/Makefile.am: Adjust.
4090 * m4/error.m4: New file.
4091 * m4/Makefile.am: Adjust.
4092 * configure.in (jm_PREREQ_ERROR): Call it.
4093 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
4094 Remove.
4095 (fatal, fatals): Remove. All callers use complain.c::fatal.
4096 (warn, warni, warns, warnss, warnss): Remove. All callers use
4097 complain.c::complain.
4098 (toomany): Remove, use fatal instead.
4099 * src/files.c (done): No argument, use complain_message_count.
4100 * src/main.c (main): Register `done' to `atexit'.
4101
4102 * src/getargs.c (usage): More `fputs', less `fprintf'.
4103
4104 2000-03-28 Akim Demaille <akim@epita.fr>
4105
4106 * lib/: New directory.
4107 * Makefile.am (SUBDIRS): Adjust.
4108 * configure.in: Adjust.
4109 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
4110 useless.
4111 * src/alloca.c: Moved to lib/.
4112 * src/getopt.c: Likewise.
4113 * src/getopt1.c: Likewise.
4114 * src/getopt.h: Likewise.
4115 * src/ansi2knr.c: Likewise.
4116 * src/ansi2knr.1: Likewise.
4117 * src/Makefile.am: Adjust.
4118 * lib/Makefile.am: New file.
4119
4120 2000-03-28 Akim Demaille <akim@epita.fr>
4121
4122 * src/getargs.c (usage): Refresh the help message.
4123
4124 2000-03-17 Akim Demaille <akim@epita.fr>
4125
4126 * src/getopt1.c: Updated from textutils 2.0e
4127 * src/getopt.c: Likewise.
4128 * src/getopt.h: Likewise.
4129
4130 2000-03-17 Akim Demaille <akim@epita.fr>
4131
4132 * src/Makefile.am (bison.simple): Fix the awk program: quote only
4133 the file name, not the whole `#line LINE FILE'.
4134
4135 2000-03-17 Akim Demaille <akim@epita.fr>
4136
4137 On syntax errors, report the token on which we choked.
4138
4139 * src/bison.s1 (yyparse): In the label yyerrlab, when
4140 YYERROR_VERBOSE, add yychar in msg.
4141
4142 2000-03-17 Akim Demaille <akim@epita.fr>
4143
4144 * src/reader.c (copy_at): New function.
4145 (copy_guard): Use it.
4146 (copy_action): Use it.
4147
4148 2000-03-17 Akim Demaille <akim@epita.fr>
4149
4150 Be kind to translators, save some useless translations.
4151
4152 * src/main.c (banner): New function.
4153 (fatal_banner): Use it.
4154 (warn_banner): Use it.
4155
4156 2000-03-17 Akim Demaille <akim@epita.fr>
4157
4158 * src/reader.c (copy_definition): Use copy_string and
4159 copy_comment. Removed now unused `match', `ended',
4160 `cplus_comment'.
4161 (copy_comment, copy_string): Moved, to be visible from
4162 copy_definition.
4163
4164 2000-03-17 Akim Demaille <akim@epita.fr>
4165
4166 * src/reader.c (copy_string): Declare `static inline'. No
4167 problems with inline, since it is checked by configure.
4168 (copy_comment): Likewise.
4169
4170 2000-03-17 Akim Demaille <akim@epita.fr>
4171
4172 * src/reader.c (packsymbols): Formatting changes.
4173
4174 2000-03-17 Akim Demaille <akim@epita.fr>
4175
4176 * src/reader.c (copy_comment): New function, factored out from:
4177 (copy_action): Use it. Removed now unused `match', `ended',
4178 `cplus_comment'.
4179 (copy_guard): Likewise.
4180
4181 2000-03-17 Akim Demaille <akim@epita.fr>
4182
4183 * src/reader.c (copy_string): New function, factored out from:
4184 (copy_action): Use it.
4185 (copy_guard): Likewise.
4186
4187 2000-03-17 Akim Demaille <akim@epita.fr>
4188
4189 Change the handling of @s so that they behave exactly like $s.
4190 There is now a pseudo variable @$ (readble and writable), location
4191 of the lhs of the rule (by default ranging from the location of
4192 the first symbol of the rhs, to the location of the last symbol,
4193 or, if the rhs is empty, YYLLOC).
4194
4195 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
4196 yyval.
4197 (yyparse): When providing a default semantic action, provide a
4198 default location action.
4199 (after the $): No longer change `*YYLSP', just stack YYLOC the
4200 same way you stack YYVAL.
4201 * src/reader.c (read_declarations): Use warns.
4202 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
4203 (copy_action, case '@'): Likewise.
4204 Use a standard error message, to save useless work from
4205 translators.
4206
4207 2000-03-17 Akim Demaille <akim@epita.fr>
4208
4209 * src/bison.s1: Formatting and cosmetics changes.
4210 * src/reader.c: Likewise.
4211 Update the Copyright notice.
4212
4213 2000-03-17 Akim Demaille <akim@epita.fr>
4214
4215 * src/bison.s1 (#line): All set to `#line' only, since the
4216 Makefile now handles them.
4217
4218 2000-03-16 Akim Demaille <akim@epita.fr>
4219
4220 * src/output.c (output_rule_data): Output the documentation of
4221 some of the tables.
4222 (Copyright notice): Update.
4223 Formatting changes.
4224
4225 2000-03-16 Akim Demaille <akim@epita.fr>
4226
4227 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
4228 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
4229 One `#if YYDEBUG' remains, since it uses variables which are
4230 defined only if `YYDEBUG != 0'.
4231
4232 2000-03-16 Akim Demaille <akim@epita.fr>
4233
4234 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
4235 and related variables so that the similarities are highlighted.
4236
4237 2000-03-16 Akim Demaille <akim@epita.fr>
4238
4239 * src/bison.s1: Properly indent CPP directives.
4240
4241 2000-03-16 Akim Demaille <akim@epita.fr>
4242
4243 * src/bison.s1: Properly indent the `alloca' CPP section.
4244
4245 2000-03-16 Akim Demaille <akim@epita.fr>
4246
4247 Do not hard code values of directories in `configure.in'.
4248 Update the `configure' tool chain.
4249
4250 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
4251 src/makefile.am.
4252 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
4253 (AC_OUTPUT): Add m4/Makefile.
4254 Bump to bison 1.28a, 1.29 has never been released.
4255 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
4256 handled via src/Makefile.am.
4257 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
4258 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
4259 autoheader.
4260 * Makefile.am (SUBDIRS): Add m4.
4261 (ACLOCAL_AM_FLAGS): New variable.
4262 (AUTOMAKE_OPTIONS): Add check-news.
4263 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
4264 the proper line number and file name.
4265 (DEFS): Propagate the location of bison library files and of the
4266 locale files.
4267 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
4268 builddir.
4269 * acinclude.m4: Remove, replaced by the directory m4.
4270 * m4/Makefile.am (EXTRA_DIST): New variable.
4271 * m4/gettext.m4: New file, from the fileutils.
4272 * m4/lcmessage.m4: Likewise
4273 * m4/progtest.m4: Likewise.
4274 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
4275
4276 2000-03-10 Akim Demaille <akim@epita.fr>
4277
4278 * src/closure.c:
4279 Formatting changes of various comments.
4280 Respect the GNU coding standards at various places.
4281 Don't use `_()' when no translation is needed.
4282
4283 1999-12-13 Jesse Thilo <jthilo@gnu.org>
4284
4285 * src/files.c:
4286 OS/2 honors TMPDIR environment variable.
4287
4288 1999-12-13 Jesse Thilo <jthilo@gnu.org>
4289
4290 * doc/bison.texinfo: Tweaked spelling and grammar.
4291 Updated ISBN.
4292 Removed reference to price of printed copy.
4293 Mention BISON_SIMPLE and BISON_HAIRY.
4294
4295 1999-12-13 Jesse Thilo <jthilo@gnu.org>
4296
4297 * configure.in, NEWS:
4298 Bison 1.29 released.
4299
4300 1999-10-27 Jesse Thilo <jthilo@gnu.org>
4301
4302 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
4303 Added reference card.
4304
4305 1999-07-26 Jesse Thilo <jthilo@gnu.org>
4306
4307 * po/ru.po: Added Russian translation.
4308
4309 1999-07-26 Jesse Thilo <jthilo@gnu.org>
4310
4311 * configure.in: Added Russian translation.
4312
4313 1999-07-06 Jesse Thilo <jthilo@gnu.org>
4314
4315 * configure.in, NEWS, README:
4316 Released version 1.28.
4317
4318 1999-06-14 Jesse Thilo <jthilo@gnu.org>
4319
4320 * src/system.h:
4321 Squashed redefinition warning on some systems.
4322
4323 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
4324 Have configure build version string instead of relying on ANSI string
4325 concatentation.
4326
4327 1999-06-14 Jesse Thilo <jthilo@gnu.org>
4328
4329 * po/POTFILES.in: Got rid of version.c.
4330
4331 1999-06-14 Jesse Thilo <jthilo@gnu.org>
4332
4333 * acconfig.h, configure.in:
4334 Have configure build version string instead of relying on ANSI string
4335 concatentation.
4336
4337 1999-06-08 Jesse Thilo <jthilo@gnu.org>
4338
4339 * doc/bison.1:
4340 Dropped mention of `+' for long-named options.
4341
4342 1999-05-30 Jesse Thilo <jthilo@gnu.org>
4343
4344 * src/files.c: Added <unistd.h> for unlink().
4345
4346 * src/Makefile.am, src/system.h:
4347 I18n fixes.
4348
4349 1999-05-30 Jesse Thilo <jthilo@gnu.org>
4350
4351 * README: Added a FAQ list.
4352
4353 * configure.in, acconfig.h:
4354 I18n fixes.
4355
4356 1999-05-30 Jesse Thilo <jthilo@gnu.org>
4357
4358 * doc/FAQ, doc/Makefile.am:
4359 Added a FAQ list.
4360
4361 1999-05-19 Jesse Thilo <jthilo@gnu.org>
4362
4363 * src/alloc.h, src/symtab.h, src/version.c:
4364 Protected inclusion of "config.h" with HAVE_CONFIG_H.
4365
4366 1999-04-18 Jesse Thilo <jthilo@gnu.org>
4367
4368 * src/.cvsignore, src/Makefile.am:
4369 Reorganized: sources in `src', documentation in `doc'.
4370
4371 * src/lex.c (literalchar):
4372 fixed the code for escaping double quotes (thanks
4373 Jonathan Czisny.)
4374
4375 1999-04-18 Jesse Thilo <jthilo@gnu.org>
4376
4377 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
4378 Adjusted paths to reflect directory reorganization.
4379
4380 1999-04-18 Jesse Thilo <jthilo@gnu.org>
4381
4382 * doc/.cvsignore, doc/Makefile.am:
4383 Reorganized: sources in `src', documentation in `doc'.
4384
4385 1999-04-18 Jesse Thilo <jthilo@gnu.org>
4386
4387 * configure.in:
4388 Updated AC_INIT file to reflect directory reorganization.
4389
4390 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
4391 Reorganized: sources in `src', documentation in `doc'.
4392
4393 1999-04-13 Jesse Thilo <jthilo@gnu.org>
4394
4395 * src/allocate.c:
4396 Don't declare calloc() and realloc() if not necessary.
4397
4398 1999-04-13 Jesse Thilo <jthilo@gnu.org>
4399
4400 * configure.in, acconfig.h, acinclude.m4:
4401 Don't declare calloc() and realloc() if not necessary.
4402
4403 1999-03-23 Jesse Thilo <jthilo@gnu.org>
4404
4405 * po/.cvsignore: Added i18n support.
4406
4407 1999-03-23 Jesse Thilo <jthilo@gnu.org>
4408
4409 * acconfig.h, configure.in, Makefile.am:
4410 Added i18n support.
4411
4412 1999-03-22 Jesse Thilo <jthilo@gnu.org>
4413
4414 * src/bison.s1: Fixed #line numbers.
4415
4416 1999-03-15 Jesse Thilo <jthilo@gnu.org>
4417
4418 * po/es.po, po/fr.po, po/nl.po, po/de.po:
4419 Added PO files from Translation Project.
4420
4421 1999-03-03 Jesse Thilo <jthilo@gnu.org>
4422
4423 * Makefile.am:
4424 Added support for non-ANSI compilers (ansi2knr).
4425
4426 1999-02-16 Jesse Thilo <jthilo@gnu.org>
4427
4428 * configure.in: Bumped version number to 1.27.
4429
4430 * Makefile.am:
4431 Added `bison.simple' to list of files removed by `make distclean'.
4432
4433 1999-02-12 Jesse Thilo <jthilo@gnu.org>
4434
4435 * src/files.c, src/files.h:
4436 Defined locations of parser files in config.h instead of Makefile.
4437
4438 1999-02-12 Jesse Thilo <jthilo@gnu.org>
4439
4440 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
4441 Defined locations of parser files in config.h instead of Makefile.
4442
4443 1999-02-09 Jesse Thilo <jthilo@gnu.org>
4444
4445 * Makefile.am:
4446 Removed inappropriate use of $< macro.
4447
4448 1999-02-05 Jesse Thilo <jthilo@gnu.org>
4449
4450 * po/Makefile.in.in, po/POTFILES.in:
4451 Add `po' directory skeleton.
4452
4453 1999-01-27 Jesse Thilo <jthilo@gnu.org>
4454
4455 * README: Document help-bison list.
4456
4457 * configure.in: Add check for mkstemp().
4458
4459 1999-01-20 Jesse Thilo <jthilo@gnu.org>
4460
4461 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
4462 Hush a few compiler warnings.
4463
4464 * src/files.c:
4465 Add tryclose(), which verifies that fclose was successful.
4466 Hush a couple of compiler warnings.
4467
4468 1999-01-20 Jesse Thilo <jthilo@gnu.org>
4469
4470 * Makefile.am, OChangeLog:
4471 ChangeLog is now automatically generated. Include the old version as
4472 OChangeLog.
4473
4474 1999-01-14 Jesse Thilo <jthilo@gnu.org>
4475
4476 * 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:
4477 Update FSF address.
4478
4479 1999-01-14 Jesse Thilo <jthilo@gnu.org>
4480
4481 * doc/bison.texinfo: Fix formatting glitch.
4482
4483 * doc/bison.texinfo: Update FSF address.
4484
4485 1999-01-14 Jesse Thilo <jthilo@gnu.org>
4486
4487 * acconfig.h: Update FSF address.
4488
4489 1999-01-08 Jesse Thilo <jthilo@gnu.org>
4490
4491 * src/system.h:
4492 Don't define PACKAGE here, since config.h defines it.
4493
4494 1998-12-30 Jesse Thilo <jthilo@gnu.org>
4495
4496 * src/reader.c: Update copyright date.
4497
4498 * src/main.c:
4499 Ditch sprintf to statically-sized buffers in fatal/warn functions in
4500 favor of output directly to stderr (avoids buffer overruns).
4501
4502 * src/reader.c: Some checks for premature EOF.
4503
4504 * 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:
4505 Use prototypes if the compiler understands them.
4506
4507 * src/files.c: Honor TMPDIR on Unix hosts.
4508 Use prototypes if the compiler understands them.
4509
4510 * src/reader.c:
4511 Fix a couple of buffer overrun bugs.
4512 Use prototypes if the compiler understands them.
4513
4514 * src/system.h: Include unistd.h and ctype.h.
4515 Use #ifdef instead of #if for NLS symbols.
4516
4517 1998-12-30 Jesse Thilo <jthilo@gnu.org>
4518
4519 * doc/bison.texinfo:
4520 Delete comment "consider using @set for edition number, etc..." since
4521 we now are doing so.
4522
4523 1998-12-30 Jesse Thilo <jthilo@gnu.org>
4524
4525 * configure.in:
4526 Use prototypes if the compiler understands them.
4527
4528 * NEWS: Document 1.26 highlights.
4529
4530 * Makefile.am: Require Automake 1.3 or later.
4531
4532 * acconfig.h:
4533 Use prototypes if the compiler understands them.
4534
4535 1998-12-29 Jesse Thilo <jthilo@gnu.org>
4536
4537 * src/version.c:
4538 Use VERSION symbol from automake for version number.
4539
4540 1998-12-29 Jesse Thilo <jthilo@gnu.org>
4541
4542 * acconfig.h, configure.in, version.cin:
4543 Use VERSION symbol from automake for version number.
4544
4545 1998-11-28 Jesse Thilo <jthilo@gnu.org>
4546
4547 * Makefile.am:
4548 Distribute original version of simple parser (bison.s1), not built
4549 version (bison.simple).
4550
4551 1998-11-28 Jesse Thilo <jthilo@gnu.org>
4552
4553 * doc/bison.texinfo: Add info dir entry.
4554
4555 * doc/bison.texinfo:
4556 Let automake put version number into documentation.
4557
4558 1998-11-26 Jesse Thilo <jthilo@gnu.org>
4559
4560 * src/bison.cld, src/build.com, src/vmshlp.mar:
4561 Add non-RCS files from /gd/gnu/bison.
4562
4563 1998-11-26 Jesse Thilo <jthilo@gnu.org>
4564
4565 * doc/bison.1:
4566 Document the BISON_HAIRY and BISON_SIMPLE variables.
4567
4568 1998-11-25 Jesse Thilo <jthilo@gnu.org>
4569
4570 * src/version.c: Build version.c automatically.
4571
4572 * src/reader.c:
4573 Fix token numbering (used to start at 258, not 257).
4574
4575 * src/system.h: Include config.h.
4576
4577 * src/getargs.c: Update bug report address.
4578
4579 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
4580 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
4581
4582 1998-11-25 Jesse Thilo <jthilo@gnu.org>
4583
4584 * Makefile.am:
4585 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
4586
4587 * configure.in, version.cin:
4588 Build version.c automatically.
4589
4590 * AUTHORS: Add AUTHORS file.
4591
4592 * README: Update bug report address.
4593
4594 * bison.simple:
4595 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
4596
4597 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
4598 Add automake stuff.
4599
4600 1998-11-25 Jesse Thilo <jthilo@gnu.org>
4601
4602 * doc/bison.texinfo: Clean up some formatting.
4603
4604 1998-05-05 Richard Stallman <rms@gnu.org>
4605
4606 * doc/bison.texinfo:
4607 Explain better why to make a pure parser.
4608
4609 1998-01-05 Richard Stallman <rms@gnu.org>
4610
4611 * src/files.c (openfiles):
4612 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
4613 find a temporary directory, if possible. Do not unlink files while
4614 they are open.
4615
4616 1997-08-25 Richard Stallman <rms@gnu.org>
4617
4618 * src/reader.c (stack_offset;):
4619 Change some warni to warns.
4620
4621 * src/lex.c (literalchar): Use warns, not warni.
4622
4623 1997-06-28 Richard Stallman <rms@gnu.org>
4624
4625 * src/bison.s1: Add a Bison version comment.
4626
4627 * src/main.c (fatal, warn, berror):
4628 Use program_name.
4629
4630 1997-06-28 Richard Stallman <rms@gnu.org>
4631
4632 * Makefile.in (bison_version): New variable.
4633 (dist): Use that variable.
4634 (bison.s1): Substitute the Bison version into bison.simple.
4635
4636 * bison.simple: Add a Bison version comment.
4637
4638 1997-06-18 Richard Stallman <rms@gnu.org>
4639
4640 * src/main.c (fatal, warn, berror):
4641 Make error messages standard.
4642 (toomany): Improve error message text.
4643
4644 * 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:
4645 new.h renamed to alloc.h.
4646
4647 1997-06-18 Richard Stallman <rms@gnu.org>
4648
4649 * Makefile.in: new.h renamed to alloc.h.
4650
4651 1997-05-24 Richard Stallman <rms@gnu.org>
4652
4653 * src/lex.c (literalchar):
4654 Fix the code for escaping \, " and '.
4655
4656 (lex): Avoid trouble when there are many chars
4657 to discard in a char literal with just several chars in it.
4658
4659 1997-05-17 Richard Stallman <rms@gnu.org>
4660
4661 * src/bison.s1:
4662 Use malloc, if using alloca is troublesome.
4663 (YYSTACK_USE_ALLOCA): New flag macro.
4664 Define it for some systems and compilers.
4665 (YYSTACK_ALLOC): New macro.
4666 (yyparse): Use YYSTACK_ALLOC to allocate stack.
4667 If it was malloc'd, free it.
4668
4669 1997-05-17 Richard Stallman <rms@gnu.org>
4670
4671 * bison.simple:
4672 Use malloc, if using alloca is troublesome.
4673 (YYSTACK_USE_ALLOCA): New flag macro.
4674 Define it for some systems and compilers.
4675 (YYSTACK_ALLOC): New macro.
4676 (yyparse): Use YYSTACK_ALLOC to allocate stack.
4677 If it was malloc'd, free it.
4678
4679 1997-04-23 Richard Stallman <rms@gnu.org>
4680
4681 * src/bison.s1:
4682 (alloca) [__hpux]: Always define as __builtin_alloca.
4683
4684 1997-04-23 Richard Stallman <rms@gnu.org>
4685
4686 * bison.simple:
4687 (alloca) [__hpux]: Always define as __builtin_alloca.
4688
4689 1997-04-22 Richard Stallman <rms@gnu.org>
4690
4691 * src/bison.s1:
4692 [__hpux]: Include alloca.h (right for HPUX 10)
4693 instead of declaring alloca (right for HPUX 9).
4694
4695 * src/bison.s1 (__yy_memcpy):
4696 Declare arg `count' as unsigned int.
4697 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
4698
4699 1997-04-22 Richard Stallman <rms@gnu.org>
4700
4701 * bison.simple:
4702 [__hpux]: Include alloca.h (right for HPUX 10)
4703 instead of declaring alloca (right for HPUX 9).
4704
4705 * bison.simple (__yy_memcpy):
4706 Declare arg `count' as unsigned int.
4707 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
4708
4709 1997-01-03 Richard Stallman <rms@gnu.org>
4710
4711 * src/allocate.c: [__STDC__ or _MSC_VER]:
4712 Declare calloc and realloc to return void *.
4713
4714 1997-01-02 Richard Stallman <rms@gnu.org>
4715
4716 * src/system.h:
4717 [_MSC_VER]: Include stdlib.h and process.h.
4718 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
4719
4720 * src/main.c (main): Return FAILURE as a value.
4721 (printable_version): Declare arg as int, not char.
4722
4723 1997-01-02 Richard Stallman <rms@gnu.org>
4724
4725 * Makefile.in (dist):
4726 Explicitly check for symlinks, and copy them.
4727
4728 1996-12-19 Richard Stallman <rms@gnu.org>
4729
4730 * src/files.c:
4731 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
4732
4733 1996-12-18 Paul Eggert <eggert@gnu.org>
4734
4735 * src/bison.s1 (yyparse):
4736 If __GNUC__ and YYPARSE_PARAM are both defined,
4737 declare yyparse to have a void * argument.
4738
4739 1996-12-18 Paul Eggert <eggert@gnu.org>
4740
4741 * bison.simple (yyparse):
4742 If __GNUC__ and YYPARSE_PARAM are both defined,
4743 declare yyparse to have a void * argument.
4744
4745 1996-12-17 Richard Stallman <rms@gnu.org>
4746
4747 * src/reduce.c (nbits): Add some casts.
4748
4749 1996-08-12 Richard Stallman <rms@gnu.org>
4750
4751 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
4752
4753 1996-08-12 Richard Stallman <rms@gnu.org>
4754
4755 * bison.simple: Test _MSDOS as well as _MSDOS_.
4756
4757 1996-07-31 Richard Stallman <rms@gnu.org>
4758
4759 * src/bison.s1:
4760 [__sun && __i386]: Include alloca.h.
4761
4762 1996-07-31 Richard Stallman <rms@gnu.org>
4763
4764 * bison.simple:
4765 [__sun && __i386]: Include alloca.h.
4766
4767 1996-07-30 Richard Stallman <rms@gnu.org>
4768
4769 * src/bison.s1: Comment change.
4770
4771 * src/bison.s1: Test _MSDOS_, not MSDOS.
4772
4773 1996-07-30 Richard Stallman <rms@gnu.org>
4774
4775 * bison.simple: Comment change.
4776
4777 * bison.simple: Test _MSDOS_, not MSDOS.
4778
4779 1996-06-01 Richard Stallman <rms@gnu.org>
4780
4781 * 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:
4782 Insert `_' macro around many string constants.
4783
4784 * src/main.c:
4785 Insert `_' macro around many string constants.
4786
4787 (main): Call setlocale, bindtextdomain and textdomain.
4788
4789 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
4790 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
4791 [ENABLE_NLS]: Include libintl.h.
4792 [ENABLE_NLS] (gettext): Define.
4793 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
4794 (N_, PACKAGE, LOCALEDIR): New macros.
4795
4796 1996-06-01 Richard Stallman <rms@gnu.org>
4797
4798 * POTFILES.in: New file.
4799
4800 * Makefile.in (allocate.o):
4801 Define target explicitly.
4802
4803 * Makefile.in (CFLAGS): Set to @CFLAGS@.
4804 (LDFLAGS): Set to @LDFLAGS@.
4805 (configure): Run autoconf only if preceding `cd' succeeds.
4806 (bison.s1): Redirect output to temporary file then move the
4807 temporary to the target, rather than redirecting directly to bison.s1.
4808 (clean): Remove config.status and config.log.
4809 (distclean): Don't remove config.status here.
4810
4811 1996-05-12 Richard Stallman <rms@gnu.org>
4812
4813 * src/bison.s1:
4814 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
4815
4816 1996-05-12 Richard Stallman <rms@gnu.org>
4817
4818 * bison.simple:
4819 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
4820
4821 1996-05-11 Richard Stallman <rms@gnu.org>
4822
4823 * src/bison.s1 (__yy_memcpy):
4824 Really reorder the args, as was supposedly done on Feb 14 1995.
4825 (yyparse): Calls changed accordingly.
4826
4827 1996-05-11 Richard Stallman <rms@gnu.org>
4828
4829 * Makefile.in (dist): Don't use $(srcdir).
4830
4831 * bison.simple (__yy_memcpy):
4832 Really reorder the args, as was supposedly done on Feb 14 1995.
4833 (yyparse): Calls changed accordingly.
4834
4835 1996-01-27 Richard Stallman <rms@gnu.org>
4836
4837 * src/output.c (output_rule_data):
4838 Test YYERROR_VERBOSE in the conditional
4839 around the definition of ttyname.
4840
4841 1995-12-29 Richard Stallman <rms@gnu.org>
4842
4843 * src/bison.s1:
4844 Fix line numbers in #line commands.
4845
4846 1995-12-29 Richard Stallman <rms@gnu.org>
4847
4848 * bison.simple:
4849 Fix line numbers in #line commands.
4850
4851 1995-12-27 Richard Stallman <rms@gnu.org>
4852
4853 * src/bison.s1 (YYPARSE_PARAM_DECL):
4854 In C++, make it always null.
4855 (YYPARSE_PARAM_ARG): New macro.
4856 (yyparse): Use YYPARSE_PARAM_ARG.
4857
4858 1995-12-27 Richard Stallman <rms@gnu.org>
4859
4860 * bison.simple (YYPARSE_PARAM_DECL):
4861 In C++, make it always null.
4862 (YYPARSE_PARAM_ARG): New macro.
4863 (yyparse): Use YYPARSE_PARAM_ARG.
4864
4865 1995-11-29 Richard Stallman <rms@gnu.org>
4866
4867 * doc/bison.texinfo:
4868 Describe literal string tokens, %raw, %no_lines, %token_table.
4869
4870 1995-11-29 Daniel Hagerty <hag@gnu.org>
4871
4872 * doc/bison.texinfo: Fixed update date
4873
4874 1995-10-16 Richard Stallman <rms@gnu.org>
4875
4876 * src/version.c: Version 1.25.
4877
4878 1995-10-16 Richard Stallman <rms@gnu.org>
4879
4880 * NEWS: *** empty log message ***
4881
4882 1995-10-16 Richard Stallman <rms@gnu.org>
4883
4884 * doc/bison.1, doc/bison.rnh:
4885 Add new options.
4886
4887 1995-10-15 Richard Stallman <rms@gnu.org>
4888
4889 * src/vmsgetargs.c, src/getargs.c:
4890 Added -n, -k, and -raw switches.
4891 (noparserflag, toknumflag, rawtoknumflag): New variables.
4892
4893 * src/symtab.h (SALIAS):
4894 New #define for adding aliases to %token.
4895 (struct bucket): Added `alias' field.
4896
4897 * src/reduce.c (reduce_grammar):
4898 Revise error message.
4899 (print_notices): Remove final `.' from error message.
4900
4901 * src/reader.c (reader_output_yylsp):
4902 New function.
4903 (readgram): Use `#if 0' around code that accepted %command
4904 inside grammar rules: The documentation doesn't allow it,
4905 and it will fail since the %command processors scan for the next %.
4906 (parse_token_decl): Extended the %token
4907 declaration to allow a multi-character symbol as an alias.
4908 (parse_thong_decl): New function.
4909 (read_declarations): Added %thong declarations.
4910 (read_declarations): Handle NOOP to deal with allowing
4911 % declarations as another means to specify the flags.
4912 (readgram): Allow %prec prior to semantics embedded in a rule.
4913 (skip_to_char, read_declarations, copy_definition)
4914 (parse_token_decl, parse_start_decl, parse_type_decl)
4915 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
4916 (get_type_name, copy_guard, copy_action, readgram)
4917 (get_type, packsymbols): Revised most error messages.
4918 Changed `fatal' to `warnxxx' to avoid aborting for error.
4919 Revised and use multiple warnxxx functions to avoid using VARARGS1.
4920 (read_declarations): Improve the error message for
4921 an invalid character. Do not abort.
4922 (read_declarations, copy_guard, copy_action): Use
4923 printable_version to avoid unprintable characters in printed output.
4924 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
4925 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
4926 Allow the type of a non-terminal can be given
4927 more than once, as long as all specifications give the same type.
4928
4929 * src/output.c:
4930 (output_headers, output_trailers, output, output_gram)
4931 (output_rule_data): Implement noparserflag variable.
4932 Implement toknumflag variable.
4933 (output): Call reader_output_yylsp to output LTYPESTR.
4934
4935 * src/main.c (main):
4936 If reader sees an error, don't process the grammar.
4937 (fatals): Updated to not use VARARGS1.
4938 (printable_version, int_to_string, warn, warni, warns, warnss)
4939 (warnsss): New error reporting functions. Avoid abort for error.
4940
4941 * src/lex.h:
4942 Added THONG and NOOP for alias processing.
4943 Added SETOPT for the new code that allows setting options with %flags.
4944
4945 * src/lex.c:
4946 Include getopt.h. Add some extern decls.
4947 (safegetc): New function to deal with EOF gracefully.
4948 (literalchar); new function to deal with reading \ escapes.
4949 (lex): Use literalchar.
4950 (lex): Implemented "..." tokens.
4951 (literalchar, lex, parse_percent_token): Made tokenbuffer
4952 always contain the token. This includes growing the token
4953 buffer while reading an integer.
4954 (parse_percent_token): Replaced if-else statement with percent_table.
4955 (parse_percent_token): Added % declarations as another
4956 way to specify the flags -n, -l, and -r. Also added hooks for
4957 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
4958 major changes to files.c.
4959 (lex) Retain in the incoming stream a character following
4960 an incorrect '/'.
4961 (skip_white_space, lex): Revised most error messages
4962 and changed fatal to warn to avoid aborting.
4963 (percent_table): Added %thong declarations.
4964
4965 * src/gram.h: Comment changes.
4966
4967 * src/files.c (openfiles, open_extra_files, done):
4968 Add faction flag
4969 and actfile file. Handle noparserflag. Both for -n switch.
4970
4971 * src/conflicts.c (resolve_sr_conflict):
4972 Remove use of alloca.
4973
4974 1995-06-01 Jim Meyering <meyering@gnu.org>
4975
4976 * doc/bison.texinfo: *** empty log message ***
4977
4978 1995-05-06 Richard Stallman <rms@gnu.org>
4979
4980 * src/bison.s1: Comment change.
4981
4982 1995-05-06 Richard Stallman <rms@gnu.org>
4983
4984 * bison.simple: Comment change.
4985
4986 1995-05-03 Richard Stallman <rms@gnu.org>
4987
4988 * src/version.c: Version now 1.24.
4989
4990 * src/bison.s1: Change distribution terms.
4991
4992 * src/version.c: Version now 1.23.
4993
4994 1995-05-03 Richard Stallman <rms@gnu.org>
4995
4996 * doc/bison.texinfo:
4997 Rewrite "Conditions for Using Bison".
4998 Update version to 1.24.
4999
5000 1995-05-03 Richard Stallman <rms@gnu.org>
5001
5002 * bison.simple: Change distribution terms.
5003
5004 1995-02-23 Richard Stallman <rms@gnu.org>
5005
5006 * src/files.c: Test __VMS_POSIX as well as VMS.
5007
5008 1995-02-14 Jim Meyering <meyering@gnu.org>
5009
5010 * src/bison.s1 (__yy_memcpy):
5011 Renamed from __yy_bcopy to avoid
5012 confusion. Reverse FROM and TO arguments to be consistent with
5013 those of memcpy.
5014
5015 1995-02-14 Jim Meyering <meyering@gnu.org>
5016
5017 * bison.simple (__yy_memcpy):
5018 Renamed from __yy_bcopy to avoid
5019 confusion. Reverse FROM and TO arguments to be consistent with
5020 those of memcpy.
5021
5022 1994-11-10 David J. MacKenzie <djm@gnu.org>
5023
5024 * NEWS: reformat
5025
5026 * NEWS: New file.
5027
5028 * Makefile.in (DISTFILES): Include NEWS.
5029
5030 * Makefile.in (DISTFILES):
5031 Include install-sh, not install.sh.
5032
5033 * configure.in: Update to Autoconf v2 macro names.
5034
5035 1994-10-05 David J. MacKenzie <djm@gnu.org>
5036
5037 * Makefile.in: fix typo
5038
5039 * Makefile.in (prefix, exec_prefix):
5040 Let configure set them.
5041
5042 1994-09-28 David J. MacKenzie <djm@gnu.org>
5043
5044 * Makefile.in: Set datadir to $(prefix)/share.
5045
5046 1994-09-15 Richard Stallman <rms@gnu.org>
5047
5048 * src/bison.s1:
5049 Update copyright notice and GPL version.
5050
5051 1994-09-15 Richard Stallman <rms@gnu.org>
5052
5053 * bison.simple:
5054 Update copyright notice and GPL version.
5055
5056 1994-07-12 Richard Stallman <rms@gnu.org>
5057
5058 * src/reduce.c, src/reader.c:
5059 entered into RCS
5060
5061 1994-05-05 David J. MacKenzie <djm@gnu.org>
5062
5063 * Makefile.in: entered into RCS
5064
5065 1994-03-26 Richard Stallman <rms@gnu.org>
5066
5067 * src/bison.s1: entered into RCS
5068
5069 1994-03-26 Richard Stallman <rms@gnu.org>
5070
5071 * bison.simple: entered into RCS
5072
5073 1994-03-25 Richard Stallman <rms@gnu.org>
5074
5075 * src/main.c: entered into RCS
5076
5077 1994-03-24 Richard Stallman <rms@gnu.org>
5078
5079 * src/conflicts.c: entered into RCS
5080
5081 1994-01-02 Richard Stallman <rms@gnu.org>
5082
5083 * Makefile.in: *** empty log message ***
5084
5085 1993-11-21 Richard Stallman <rms@gnu.org>
5086
5087 * src/bison.s1: *** empty log message ***
5088
5089 1993-11-21 Richard Stallman <rms@gnu.org>
5090
5091 * doc/bison.texinfo: entered into RCS
5092
5093 * doc/bison.texinfo: *** empty log message ***
5094
5095 1993-11-21 Richard Stallman <rms@gnu.org>
5096
5097 * bison.simple: *** empty log message ***
5098
5099 1993-10-25 David J. MacKenzie <djm@gnu.org>
5100
5101 * doc/bison.texinfo: *** empty log message ***
5102
5103 1993-10-19 Richard Stallman <rms@gnu.org>
5104
5105 * src/bison.s1: *** empty log message ***
5106
5107 1993-10-19 Richard Stallman <rms@gnu.org>
5108
5109 * bison.simple: *** empty log message ***
5110
5111 1993-10-14 Richard Stallman <rms@gnu.org>
5112
5113 * src/bison.s1: *** empty log message ***
5114
5115 1993-10-14 Richard Stallman <rms@gnu.org>
5116
5117 * bison.simple: *** empty log message ***
5118
5119 1993-09-14 David J. MacKenzie <djm@gnu.org>
5120
5121 * doc/bison.texinfo: *** empty log message ***
5122
5123 1993-09-13 Noah Friedman <friedman@gnu.org>
5124
5125 * Makefile.in: *** empty log message ***
5126
5127 1993-09-10 Richard Stallman <rms@gnu.org>
5128
5129 * src/conflicts.c: *** empty log message ***
5130
5131 * src/system.h: entered into RCS
5132
5133 1993-09-10 Richard Stallman <rms@gnu.org>
5134
5135 * doc/bison.1: entered into RCS
5136
5137 1993-09-06 Noah Friedman <friedman@gnu.org>
5138
5139 * src/version.c: entered into RCS
5140
5141 1993-09-06 Noah Friedman <friedman@gnu.org>
5142
5143 * Makefile.in: *** empty log message ***
5144
5145 1993-07-30 David J. MacKenzie <djm@gnu.org>
5146
5147 * Makefile.in: *** empty log message ***
5148
5149 1993-07-24 Richard Stallman <rms@gnu.org>
5150
5151 * src/bison.s1: *** empty log message ***
5152
5153 1993-07-24 Richard Stallman <rms@gnu.org>
5154
5155 * bison.simple: *** empty log message ***
5156
5157 1993-07-08 David J. MacKenzie <djm@gnu.org>
5158
5159 * Makefile.in: *** empty log message ***
5160
5161 1993-07-04 Richard Stallman <rms@gnu.org>
5162
5163 * src/bison.s1: *** empty log message ***
5164
5165 1993-07-04 Richard Stallman <rms@gnu.org>
5166
5167 * bison.simple: *** empty log message ***
5168
5169 1993-06-26 David J. MacKenzie <djm@gnu.org>
5170
5171 * src/getargs.c: entered into RCS
5172
5173 1993-06-26 David J. MacKenzie <djm@gnu.org>
5174
5175 * doc/bison.texinfo: *** empty log message ***
5176
5177 * doc/bison.1: New file.
5178
5179 1993-06-25 Richard Stallman <rms@gnu.org>
5180
5181 * src/getargs.c: New file.
5182
5183 1993-06-16 Richard Stallman <rms@gnu.org>
5184
5185 * src/bison.s1: *** empty log message ***
5186
5187 1993-06-16 Richard Stallman <rms@gnu.org>
5188
5189 * bison.simple: *** empty log message ***
5190
5191 1993-06-03 Richard Stallman <rms@gnu.org>
5192
5193 * src/bison.s1: New file.
5194
5195 1993-06-03 Richard Stallman <rms@gnu.org>
5196
5197 * doc/bison.texinfo: *** empty log message ***
5198
5199 1993-06-03 Richard Stallman <rms@gnu.org>
5200
5201 * bison.simple: New file.
5202
5203 1993-05-19 Richard Stallman <rms@gnu.org>
5204
5205 * doc/bison.texinfo: New file.
5206
5207 1993-05-07 Noah Friedman <friedman@gnu.org>
5208
5209 * Makefile.in: *** empty log message ***
5210
5211 1993-04-28 Noah Friedman <friedman@gnu.org>
5212
5213 * src/reader.c: *** empty log message ***
5214
5215 1993-04-23 Noah Friedman <friedman@gnu.org>
5216
5217 * src/alloc.h: entered into RCS
5218
5219 1993-04-20 David J. MacKenzie <djm@gnu.org>
5220
5221 * src/version.c: *** empty log message ***
5222
5223 * src/files.c, src/allocate.c:
5224 entered into RCS
5225
5226 * src/reader.c: *** empty log message ***
5227
5228 * src/lex.c: entered into RCS
5229
5230 * src/conflicts.c: New file.
5231
5232 * src/symtab.c: entered into RCS
5233
5234 * src/alloc.h: New file.
5235
5236 * src/LR0.c: entered into RCS
5237
5238 1993-04-18 Noah Friedman <friedman@gnu.org>
5239
5240 * src/reader.c: New file.
5241
5242 * src/version.c: *** empty log message ***
5243
5244 1993-04-18 Noah Friedman <friedman@gnu.org>
5245
5246 * Makefile.in: *** empty log message ***
5247
5248 1993-04-17 Noah Friedman <friedman@gnu.org>
5249
5250 * Makefile.in: *** empty log message ***
5251
5252 1993-04-15 Richard Stallman <rms@gnu.org>
5253
5254 * src/main.c, src/files.c:
5255 New file.
5256
5257 1993-04-15 Noah Friedman <friedman@gnu.org>
5258
5259 * configure.in: entered into RCS
5260
5261 * configure.in: *** empty log message ***
5262
5263 * configure.in: New file.
5264
5265 1993-04-14 Richard Stallman <rms@gnu.org>
5266
5267 * Makefile.in: New file.
5268
5269 1993-04-13 Richard Stallman <rms@gnu.org>
5270
5271 * src/version.c: New file.
5272
5273 1993-03-25 Richard Stallman <rms@gnu.org>
5274
5275 * src/output.c: entered into RCS
5276
5277 1992-09-25 Richard Stallman <rms@gnu.org>
5278
5279 * configure.bat: entered into RCS
5280
5281 1992-06-22 Richard Stallman <rms@gnu.org>
5282
5283 * src/vmsgetargs.c: entered into RCS
5284
5285 1992-06-22 Richard Stallman <rms@gnu.org>
5286
5287 * doc/bison.rnh: entered into RCS
5288
5289 1992-04-20 David J. MacKenzie <djm@gnu.org>
5290
5291 * README: entered into RCS
5292
5293 1992-01-22 Richard Stallman <rms@gnu.org>
5294
5295 * src/machine.h: entered into RCS
5296
5297 1991-12-21 Richard Stallman <rms@gnu.org>
5298
5299 * src/lalr.c, src/closure.c:
5300 entered into RCS
5301
5302 1991-12-20 Richard Stallman <rms@gnu.org>
5303
5304 * src/state.h: entered into RCS
5305
5306 1991-12-18 Richard Stallman <rms@gnu.org>
5307
5308 * src/print.c, src/nullable.c, src/derives.c:
5309 entered into RCS
5310
5311 1991-11-03 David J. MacKenzie <djm@gnu.org>
5312
5313 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
5314 entered into RCS
5315
5316 1988-09-09 Richard Stallman <rms@gnu.org>
5317
5318 * src/bison.hairy: entered into RCS
5319
5320 1987-12-16 Richard Stallman <rms@gnu.org>
5321
5322 * REFERENCES: entered into RCS