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