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