]> git.saurik.com Git - bison.git/blame - ChangeLog
* src/closure.c (firsts): Now, also a bitset.
[bison.git] / ChangeLog
CommitLineData
d8a0245c
AD
12002-03-04 Akim Demaille <akim@epita.fr>
2
3 * src/closure.c (firsts): Now, also a bitset.
4 Adjust all dependencies.
5 (varsetsize): Remove, now unused.
6 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
7
34ba9743
AD
82002-03-04 Akim Demaille <akim@epita.fr>
9
10 * src/print.c: Convert to use bitset.h, not hand coded iterations
11 over ints.
12
13
ed86e78c
AD
142002-03-04 Akim Demaille <akim@epita.fr>
15
16 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
17
dfdb1797
AD
182002-03-04 Akim Demaille <akim@epita.fr>
19
20 * src/closure.c (ruleset): Be a bitset.
21 (rulesetsize): Remove.
22
23
7086e707
AD
242002-03-04 Akim Demaille <akim@epita.fr>
25
26 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
27 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
28 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
29 * src/closure.c (fderives): Be an array of bitsets.
30
98254360
RA
312002-02-28 Robert Anisko <robert@lrde.epita.fr>
32
33 * data/bison.c++: Merge the two generated headers. Insert a copyright
34 notice in each output file.
35
a75c057f
AD
362002-02-28 Akim Demaille <akim@epita.fr>
37
38 * data/bison.c++: Copy the prologue of bison.simple to fetch
39 useful M4 definitions, such as b4_header_guard.
40
06b00abc
AD
412002-02-25 Akim Demaille <akim@epita.fr>
42
43 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
44 translator friendly scheme for the bgr
45 copyright notice.
06b00abc 46
70e7d534
AD
472002-02-25 Akim Demaille <akim@epita.fr>
48
49 * src/output.c (header_output): Remove, now handled completely via
50 M4.
51
abe017f6
AD
522002-02-25 Akim Demaille <akim@epita.fr>
53
54 * m4/m4.m4: New, from CVS Autoconf.
55 * configure.in: Invoke it.
56 * src/output.c (output_skeleton): Use its result instead of the
57 hard coded name.
58
381fb12e
AD
592002-02-25 Akim Demaille <akim@epita.fr>
60
61 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
62 Fileutils 4.1.5.
63 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
64 * src/output.c (output_skeleton): Use mkstemp to create a real
65 temporary file.
66 Move the filling of `skeleton' and its muscle to...
67 (prepare): here.
68 (output): Move the definition of the prologue muscle to...
69 (prepare): here.
70 * src/system.h (DEFAULT_TMPDIR): New.
71
6f38107f
PE
722002-02-14 Paul Eggert <eggert@twinsun.com>
73
74 Remove the support for C++ namespace cleanliness; it was
75 causing more problems than it was curing, since it didn't work
76 properly on some nonstandard C++ compilers. This can wait
77 for a proper C++ parser.
78
79 * NEWS: Document this.
80 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
81 of C++, as it's treated like C now.
82 * src/bison.simple (YYSTD): Remove.
83 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
84 Treat C++ just like Standard C instead of trying to support
85 namespace cleanliness.
86
80cce3da
AD
872002-02-14 Akim Demaille <akim@epita.fr>
88
89 * tests/regression.at (else): Adjust to Andreas' change.
90
842e8679
AD
912002-02-14 Akim Demaille <akim@epita.fr>
92
93 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
94
4bda3f10
AD
952002-02-13 Andreas Schwab <schwab@suse.de>
96
97 * src/output.c (output_rule_data): Don't output NULL, it might
98 not be defined yet.
99
4162fa07 1002002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 101
4162fa07
RA
102 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
103 (Copyright notice): Update.
b418ecd8 104
bd16a5dc
AD
1052002-02-11 Akim Demaille <akim@epita.fr>
106
107 * tests/regression.at (%nonassoc and eof): Don't include
108 nonportable headers.
109
8d69a1a3
RA
1102002-02-08 Robert Anisko <robert@lrde.epita.fr>
111
112 * data/bison.c++: Correct error recovery. Make the user able to
113 initialize the starting location.
114
9b2d0677
AD
1152002-02-07 Akim Demaille <akim@epita.fr>
116
117 * tests/input.at: New.
118
69e2658b
RA
1192002-02-07 Robert Anisko <robert@lrde.epita.fr>
120
121 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 122 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
123 directives around tables only needed for debugging.
124
4aacc3a7
RA
1252002-02-07 Robert Anisko <robert@lrde.epita.fr>
126
127 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
128 C++ parsers.
129 (yy::b4_name::parse): Use print_.
130
762a801e
RA
1312002-02-07 Robert Anisko <robert@lrde.epita.fr>
132
133 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
134
4bb2bc3f
RA
1352002-02-07 Robert Anisko <robert@lrde.epita.fr>
136
137 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
138 C++ parsers.
139 (yy::b4_name::parse): Build verbose error messages, and use error_.
140
6b45a3ca
RA
1412002-02-06 Robert Anisko <robert@lrde.epita.fr>
142
143 * data/bison.c++: Fix m4 quoting in comments.
144
50997c6e
RA
1452002-02-06 Robert Anisko <robert@lrde.epita.fr>
146
147 * data/bison.c++: Adjust the parser code. Fix some muscles that were
148 not expanded by m4.
149
3f3eed27
AD
1502002-02-05 Akim Demaille <akim@epita.fr>
151
152 * data/bison.c++: Adjust to the M4 back end.
153 More is certainly needed.
154
be2a1a68
AD
1552002-02-05 Akim Demaille <akim@epita.fr>
156
157 Give a try to M4 as a back end.
158
159 * lib/readpipe.c: New, from wdiff.
160 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
161 BISON_HAIRY.
162 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
163 specific values. Now it is m4 that performs the lookup.
164 * src/parse-skel.y: Remove.
165 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
166 * src/output.c (actions_output, guards_output)
167 (token_definitions_output): No longer keeps track of the output
168 line number, hence remove the second argument.
169 (guards_output): Check against the guard member of a rule, not the
170 action member.
171 Adjust callers.
172 (output_skeleton): Don't look for the skeleton location, let m4 do
173 that.
174 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
175 file will be used.
176 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
177 (prepare): Given that for the time being changesyntax is not
178 usable in M4, rename the muscles using `-' to `_'.
179 Define `defines_flag', `output_parser_name' and `output_header_name'.
180 * src/output.h (actions_output, guards_output)
181 (token_definitions_output): Adjust prototypes.
182 * src/scan-skel.l: Instead of scanning the skeletons, it now
183 processes the output of m4: `__oline__' and `#output'.
184 * data/bison.simple: Adjust to be used by M4(sugar).
185 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
186 to date.
187 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
188 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
189 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
190 shamelessly stolen from CVS Autoconf.
191
beda758b
AD
1922002-02-05 Akim Demaille <akim@epita.fr>
193
194 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
195 * configure.in: Check for the declarations of free and malloc.
196 * src/muscle_tab.c: Adjust.
197
5ece6d43
AD
1982002-02-05 Akim Demaille <akim@epita.fr>
199
200 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
201 which have no values.
202
5bb18f9a
AD
2032002-02-05 Akim Demaille <akim@epita.fr>
204
205 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
206 * data/: here.
207
894dd62e
PE
2082002-01-29 Paul Eggert <eggert@twinsun.com>
209
210 * src/bison.simple (YYSIZE_T): Do not define merely because
211 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
212 On some platforms, <alloca.h> does not declare YYSTD (size_t).
213
82841af7
AD
2142002-01-27 Akim Demaille <akim@epita.fr>
215
216 Fix `%nonassoc and eof'.
217
218 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
219 which were not properly copied! Replace
220 memcpy (res->errs, src->errs, src->nerrs);
221 with
222 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
223 !!!
224 * tests/regression.at (%nonassoc and eof): Adjust to newest
225 Autotest: `.' is not in the PATH.
226
318b76e9
AD
2272002-01-27 Akim Demaille <akim@epita.fr>
228
229 * tests/sets.at (AT_EXTRACT_SETS): New.
230 (Nullable): Use it.
231 (Firsts): New.
232
30d2f3d5
AD
2332002-01-26 Akim Demaille <akim@epita.fr>
234
235 * tests/actions.at, tests/calc.at, tests/headers.at,
236 * tests/torture.at: Adjust to the newest Autotest which no longer
237 forces `.' in the PATH.
238
30f8c395
AD
2392002-01-25 Akim Demaille <akim@epita.fr>
240
241 * tests/regression.at (%nonassoc and eof): New.
242 Suggested by Robert Anisko.
243
29ae55f1
AD
2442002-01-24 Akim Demaille <akim@epita.fr>
245
246 Bison dumps core when trying to complain about broken input files.
247 Reported by Cris van Pelt.
248
249 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
250 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
251 into...
252 (Invalid inputs): Strengthen: exercise parse_percent_token.
253
2b548aa6
RA
2542002-01-24 Robert Anisko <robert.anisko@epita.fr>
255
256 * src/Makefile.am: Add bison.c++.
257 * src/bison.c++: New skeleton.
258
bb0146c2
AD
2592002-01-21 Paolo Bonzini <bonzini@gnu.org>
260
261 * po/it.po: New.
262
bec30531
AD
2632002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
264
265 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
266
fc6edc45
MA
2672002-01-20 Marc Autret <marc@gnu.org>
268
269 * src/files.c (compute_output_file_names): Fix
270
5e5d5415
MA
2712002-01-20 Marc Autret <marc@gnu.org>
272
273 * tests/output.at: New test.
274 * src/files.c (compute_base_names): Don't map extensions when
275 the YACC flag is set, use defaults.
276 Reported by Evgeny Stambulchik.
277
44ea3fbd
MA
2782002-01-20 Marc Autret <marc@gnu.org>
279
bb0146c2 280 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
281 compilers as well (i.e. the vendor C compiler).
282 Suggested by Albert Chin-A-Young.
283
338963d1
TVH
2842002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
285
286 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
287 canonical definition.
288 * src/system.h: Use the canonical definition for PARAMS (avoids
289 a conflict with the macro from lib/hash.h).
290
c57b2479
AD
2912002-01-11 Akim Demaille <akim@epita.fr>
292
293 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 294 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 295
b85810ae
AD
2962002-01-09 Akim Demaille <akim@epita.fr>
297
298 * src/files.c, src/files.h (output_infix): New.
299 (tab_extension): Remove.
300 (compute_base_names): Compute the former, drop the latter.
301 * src/output.c (prepare): Insert the muscles `output-infix', and
302 `output-suffix'.
303 * src/parse-skel.y (string, string.1): New.
304 (section.header): Use it.
305 (section.yacc): Remove.
306 (prefix): Remove too.
307 * src/scan-skel.l: Adjust.
308 * src/bison.simple, src/bison.hairy: Adjust.
309
cae60122
AD
3102002-01-09 Akim Demaille <akim@epita.fr>
311
312 * configure.in (WERROR_CFLAGS): Compute it.
313 * src/Makefile.am (CFLAGS): Pass it.
314 * tests/atlocal.in (CFLAGS): Idem.
315 * src/files.c: Fix a few warnings.
316 (get_extension_index): Remove, unused.
317
ae404801
AD
3182002-01-08 Akim Demaille <akim@epita.fr>
319
320 * src/getargs.c (AS_FILE_NAME): New.
321 (getargs): Use it to convert DOSish file names.
322 * src/files.c (base_name): Rename as full_base_name to avoid
323 clashes with `base_name ()'.
324 (filename_split): New.
325 (compute_base_names): N-th rewrite, using filename_split.
326
22312b71
AD
3272002-01-08 Akim Demaille <akim@epita.fr>
328
329 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
330 New, stolen from the Fileutils 4.1.
331 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
332 * configure.in: Check for the presence of memrchr, and of its
333 prototype.
334
a67cef01
TVH
3352002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
336
337 * lib/hash.h (__P): Added definition for this macro.
338 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
339 BUILT_SOURCES, to ensure they are generated first.
340 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
341 %error-verbose to allow bootstrapping with bison 1.30x.
342
2b25d624
AD
3432002-01-06 Akim Demaille <akim@epita.fr>
344
345 * src/reader.c (parse_braces): Don't fetch the next char, the
346 convention is to fetch on entry.
347 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
348 'switch' without a following semicolon.
349 * tests/regression.at (braces parsing): New.
350
3460813b
AD
3512002-01-06 Akim Demaille <akim@epita.fr>
352
353 Bison is dead wrong in its RR conflict reports.
354
355 * tests/torture.at (GNU Cim Grammar): New.
356 * src/conflicts.c (count_rr_conflicts): Fix.
357
73784c64
AD
3582002-01-06 Akim Demaille <akim@epita.fr>
359
360 Creating package.m4 from configure.ac causes too many problems.
361
362 * tests/Makefile.am (package.m4): Create it by hand,
363 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
364
25d81090
AD
3652002-01-06 Akim Demaille <akim@epita.fr>
366
367 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
368 skeleton.h.
369
a9b8959e
PE
3702002-01-04 Paul Eggert <eggert@twinsun.com>
371
372 * doc/bison.texinfo (Debugging):
373 Remove YYSTDERR; it's no longer defined or used.
374 Also, s/cstdio.h/cstdio/.
375
25d81090
AD
3762002-01-03 Akim Demaille <akim@epita.fr>
377
378 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
379
1109455c
AD
3802002-01-03 Akim Demaille <akim@epita.fr>
381
382 * src/parse-skel.y (process_skeleton): Don't bind the parser's
383 tracing code to --trace, wait for a better --trace option, with
384 args.
385
7ea5e977
AD
3862002-01-03 Akim Demaille <akim@epita.fr>
387
388 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
389 The ISO C++ standard is extremely clear about it: stderr is
390 considered a macro, not a regular symbol (see table 94 `Header
391 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
392 Therefore std:: does not apply to it. It still does with fprintf.
393 Also, s/cstdio.h/cstdio/.
394
fab5b110
AD
3952002-01-03 Akim Demaille <akim@epita.fr>
396
397 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
398 for non system headers.
399
aed7fd9b
AD
4002002-01-02 Akim Demaille <akim@epita.fr>
401
402 Equip the skeleton chain with location tracking, runtime trace,
403 pure parser and scanner.
404
405 * src/parse-skel.y: Request a pure parser, locations, and prefix
406 renaming.
407 (%union): Having several members with the same type does not help
408 type mismatches, simplify.
409 (YYPRINT, yyprint): New.
410 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
411 (skel_error): this.
412 Handle locations.
413 * src/scan-skel.l: Adjust to these changes.
414 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
415 (LOCATION_PRINT, skel_control_t): New.
416
24fad99e
AD
4172001-12-30 Akim Demaille <akim@epita.fr>
418
419 * src/parse-skel.y: Get rid of the shift/reduce conflict:
420 replace `gb' with BLANKS.
421 * src/scan-skel.l: Adjust.
422
a4b36db4
AD
4232001-12-30 Akim Demaille <akim@epita.fr>
424
425 * src/system.h: We don't need nor want bcopy.
426 Throw away MS-DOS crap: we don't need getpid.
427 * configure.in: We don't need strndup. It was even causing
428 problems: because Flex includes the headers *before* us,
429 _GNU_SOURCE is not defined by config.h, and therefore strndup was
430 not visible.
431 * lib/xstrndup.c: New.
432 * src/scan-skel.l: Use it.
433 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
434 * src/parse-skel.y: Use %directives instead of #defines.
435
1239777d
AD
4362001-12-30 Akim Demaille <akim@epita.fr>
437
438 * src/skeleton.h: New.
439 * src/output.c (output_parser, output_master_parser): Remove, dead
440 code.
441 * src/output.h (get_lines_number, actions_output, guards_output)
442 (token_definitions_output): Prototype them.
443 * src/parse-skel.y: Add the license notice.
444 Include output.h and skeleton.h.
445 (process_skeleton): Returns void, and takes a single parameter.
446 * src/scan-skel.l: Add the license notice.
447 Include skeleton.h.
448 Don't use %option yylineno: it seems that then Flex imagines
449 REJECT has been used, and therefore it won't reallocate its
450 buffers (which makes no other sense to me than a bug). It results
451 in warnings for `unused: yy_flex_realloc'.
452
9b3add5b
RA
4532001-12-30 Robert Anisko <robert.anisko@epita.fr>
454
455 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
456 (MUSCLE_INSERT_PREFIX): ...to there.
457 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
458 (MUSCLE_INSERT_PREFIX): Move from here...
459
460 * src/bison.hairy: Add a section directive. Put braces around muscle
461 names. This parser skeleton is still broken, but Bison should not
462 choke on a bad muscle 'syntax'.
463 * src/bison.simple: Add a section directive. Put braces around muscle
464 names.
465
466 * src/files.h (strsuffix, stringappend): Add declarations.
467 (tab_extension): Add declaration.
468 (short_base_name): Add declaration.
469
470 * src/files.c (strsuffix, stringappend): No longer static. These
471 functions are used in the skeleton parser.
472 (tab_extension): New.
473 (compute_base_names): Use the computations done in this function
fab5b110 474 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
475 names.
476 (short_base_name): No longer static.
477
478 * src/output.c (output_skeleton): New.
479 (output): Disable call to output_master_parser, and give a try to
480 a new skeleton handling system.
481 (guards_output, actions_output): No longer static.
482 (token_definitions_output, get_lines_number): No longer static.
483
484 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
485
fab5b110 486 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
487 parse-skel.y.
488
489 * src/parse-skel.y: New file.
490 * src/scan-skel.l: New file.
491
b5b61c61
AD
4922001-12-29 Akim Demaille <akim@epita.fr>
493
494 %name-prefix is broken.
495
496 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
497 Adjust all dependencies.
498 * tests/headers.at (export YYLTYPE): Strengthen this test: use
499 %name-prefix.
500
501 Renaming yylval but not yylloc is not consistent. Now we do.
502
503 * src/bison.simple: Prefix yylloc if used.
504 * doc/bison.texinfo (Decl Summary): Document that.
505
8c9a50be
AD
5062001-12-29 Akim Demaille <akim@epita.fr>
507
508 * doc/bison.texinfo: Promote `%long-directive' over
509 `%long_directive'.
510 Remove all references to fixed-output-files, yacc is enough.
511
d99361e6
AD
5122001-12-29 Akim Demaille <akim@epita.fr>
513
514 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
515 user prologue. These are defaults.
516 * tests/actions.at (Mid-rule actions): Make sure the user can
517 define YYDEBUG and YYERROR_VERBOSE.
518
b9cecb91
AD
5192001-12-29 Akim Demaille <akim@epita.fr>
520
521 * src/output.c (header_output): Don't forget to export YYLTYPE and
522 yylloc.
523 * tests/headers.at (export YYLTYPE): New, make sure it does.
524 * tests/regression.at (%union and --defines, Invalid CPP headers):
525 Move to...
526 * tests/headers.at: here.
527
aea13e97
AD
5282001-12-29 Akim Demaille <akim@epita.fr>
529
530 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
531
931394cb
AD
5322001-12-29 Akim Demaille <akim@epita.fr>
533
534 * tests/actions.at (Mid-rule actions): Output on a single line
535 instead of several.
536
704a47c4
AD
5372001-12-29 Akim Demaille <akim@epita.fr>
538
539 * doc/bison.texinfo: Formatting changes.
540
091e20bb
AD
5412001-12-29 Akim Demaille <akim@epita.fr>
542
543 Don't store the token defs in a muscle, just be ready to output it
544 on command. Now possible via `symbols'. Fixes a memory leak.
545
546 * src/output.c (token_definitions_output): New.
547 (output_parser, header_output): Use it.
548 * src/reader.c (symbols_save): Remove.
549
cce71710
AD
5502001-12-29 Akim Demaille <akim@epita.fr>
551
552 * src/bison.simple: Do not provide a default for YYSTYPE and
553 YYLTYPE before the user's prologue. Otherwise it's hardly... a
554 default.
555
82c035a8
AD
5562001-12-29 Akim Demaille <akim@epita.fr>
557
558 Mid-rule actions are simply... ignored!
559
560 * src/reader.c (readgram): Be sure to attach mid-rule actions to
561 the empty-rule associated to the dummy symbol, not to the host
562 rule.
563 * tests/actions.at (Mid-rule actions): New.
564
8419d367
AD
5652001-12-29 Akim Demaille <akim@epita.fr>
566
567 Memory leak.
568
569 * src/reader.c (reader): Free grammar.
570
375d5806
AD
5712001-12-29 Akim Demaille <akim@epita.fr>
572
573 Memory leak.
574
575 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
576 since it allocates it for each state, although only one is needed.
577 (allocate_storage): Do it here.
578
f51cb8ff
AD
5792001-12-29 Akim Demaille <akim@epita.fr>
580
581 * src/options.h, src/options.c (create_long_option_table): Rename
582 as...
583 (long_option_table_new): this, with a clearer prototype.
584 (percent_table): Remove, unused,
585 * src/getargs.c (getargs): Adjust.
586
29e88316
AD
5872001-12-29 Akim Demaille <akim@epita.fr>
588
589 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
590 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
591 as states.
592
b9f71f19
AD
5932001-12-29 Akim Demaille <akim@epita.fr>
594
595 * src/lalr.c (build_relations): Rename `states' as `states1'.
596 Sorry, I don't understand exactly what it is, no better name...
597
1a2b5d37
AD
5982001-12-29 Akim Demaille <akim@epita.fr>
599
600 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
601 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
602 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
603 as rules.
604
1cca533e
AD
6052001-12-29 Akim Demaille <akim@epita.fr>
606
607 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
608 ago.
609
c03ae966
AD
6102001-12-29 Akim Demaille <akim@epita.fr>
611
612 * src/reader.c, src/reader.h (user_toknums): Remove.
613 Adjust all users to use symbols[i]->user_token_number.
614
5a670b1e
AD
6152001-12-29 Akim Demaille <akim@epita.fr>
616
617 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
618 Adjust all users to use symbols[i]->prec or ->assoc.
619
ad949da9
AD
6202001-12-29 Akim Demaille <akim@epita.fr>
621
622 * src/reader.c, src/reader.h (tags): Remove.
623 Adjust all users to use symbols[i]->tag.
624
0e78e603
AD
6252001-12-29 Akim Demaille <akim@epita.fr>
626
627 * src/gram.h, src/gram.c (symbols): New, similar to state_table
628 and rule_table.
629 * src/reader.c (packsymbols): Fill this table.
630 Drop sprec.
631 * src/conflicts.c (resolve_sr_conflict): Adjust.
632 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
633 single table.
634 Use symbols[i]->tag instead of tags[i].
635
213e640e
AD
6362001-12-29 Akim Demaille <akim@epita.fr>
637
638 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
639 In addition, put a comment in there, to replace...
640 * tests/regression.at (%union and C comments): Remove.
641
e7b8bef1
AD
6422001-12-29 Akim Demaille <akim@epita.fr>
643
644 * tests/regression.at (Web2c Actions): Blindly move the actual
645 output as expected output. The contents *seem* right to me, but I
646 can't pretend reading perfectly parser tables... Nonetheless, all
647 the other tests pass correctly, the table look OK, even though the
648 presence of `$axiom' is to be noted: AFAICS it is useless (but
649 harmless).
650
b68e7744
AD
6512001-12-29 Akim Demaille <akim@epita.fr>
652
653 * src/reader.c (readgram): Don't add the rule 0 if there were no
654 rules read. In other words, add it _after_ having performed
655 grammar sanity checks.
656 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
657
78d5bae9
AD
6582001-12-29 Akim Demaille <akim@epita.fr>
659
660 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
661 visible, and some states have now a different number.
662
ff442794
AD
6632001-12-29 Akim Demaille <akim@epita.fr>
664
665 * src/reader.c (readgram): Bind the initial rule's lineno to that
666 of the first rule.
667 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
668 (Solved SR Conflicts): Adjust rule 0's line number.
669
610ab194
AD
6702001-12-29 Akim Demaille <akim@epita.fr>
671
672 Fix the `GAWK Grammar' failure.
673
674 * src/LR0.c (final_state): Initialize to -1 so that we do compute
675 the reductions of the first state which was mistakenly confused
676 with the final state because precisely final_state was initialized
677 to 0.
678 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
679 now noticed by Bison.
680 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
681 have a reduction on $default.
682
29d29c8f
AD
6832001-12-29 Akim Demaille <akim@epita.fr>
684
685 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
686 rule line numbers.
687 * src/closure.c (print_closure): Likewise.
688 * src/derives.c (print_derives): Likewise.
689 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
690 now.
691
7c6b64d0
AD
6922001-12-29 Akim Demaille <akim@epita.fr>
693
694 * src/lalr.c (lookaheads_print): New.
695 (lalr): Call it when --trace-flag.
696 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
697 are dumped.
698
3d4daee3
AD
6992001-12-29 Akim Demaille <akim@epita.fr>
700
701 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
702 when walking through ritem, even via rule->rhs.
703 * src/reduce.c (dump_grammar, useful_production, reduce_output)
704 (useful_production, useless_nonterminals): Likewise.
705 (reduce_grammar_tables): Likewise, plus update nritems.
706 * src/nullable.c (set_nullable): Likewise.
707 * src/lalr.c (build_relations): Likewise.
708 * tests/sets.at (Nullable): Adjust.
709 Fortunately, now, the $axiom is no longer nullable.
710
9e7f6bbd
AD
7112001-12-29 Akim Demaille <akim@epita.fr>
712
713 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
714 the 0-sentinel.
715 * src/gram.c (ritem_longest_rhs): Likewise.
716 * src/reduce.c (nonterminals_reduce): Likewise.
717 * src/print_graph.c (print_graph): Likewise.
718 * src/output.c (output_rule_data): Likewise.
719 * src/nullable.c (set_nullable): Likewise.
720
255ef638
AD
7212001-12-29 Akim Demaille <akim@epita.fr>
722
723 * src/output.c: Comment changes.
724
0d8a7363
AD
7252001-12-27 Paul Eggert <eggert@twinsun.com>
726
727 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
728 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
729 Sparc, as they were causing more porting problems than the
730 (minor) performance improvement was worth.
731
732 Also, catch up with 1.31's YYSTD.
733
3db472b9
AD
7342001-12-27 Akim Demaille <akim@epita.fr>
735
736 * src/output.c (output_gram): Rely on nritems, not the
737 0-sentinel. See below.
738 Use -1 as separator, not 0.
739 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
740 Rely on -1 as separator in yyrhs, instead of 0.
741 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
742 twice `Now at end of input', therefore there are two lines less to
743 expect.
744
b365aa05
AD
7452001-12-27 Akim Demaille <akim@epita.fr>
746
747 * tests/regression.at (Unresolved SR Conflicts):
748 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
749 below.
750
30171f79
AD
7512001-12-27 Akim Demaille <akim@epita.fr>
752
753 * src/LR0.c (new_state): Recognize the final state by the fact it
754 is reached by eoftoken.
755 (insert_start_shifting_state, insert_eof_shifting_state)
756 (insert_accepting_state, augment_automaton): Remove, since now
757 these states are automatically computed from the initial state.
758 (generate_states): Adjust.
759 * src/print.c: When reporting a rule number to the user, substract
760 1, so that the axiom rule is rule 0, and the first user rule is 1.
761 * src/reduce.c: Likewise.
762 * src/print_graph.c (print_core): For the time being, just as for
763 the report, depend upon --trace-flags to dump the full set of
764 items.
765 * src/reader.c (readgram): Once the grammar read, insert the rule
766 0: `$axiom: START-SYMBOL $'.
767 * tests/set.at: Adjust: rule 0 is now displayed, and since the
768 number of the states has changed (the final state is no longer
769 necessarily the last), catch up.
770
75142d45
AD
7712001-12-27 Akim Demaille <akim@epita.fr>
772
773 Try to make the use of the eoftoken valid. Given that its value
774 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
775 is used instead of > 0 where appropriate, (ii), depend upon nritems
776 instead of the 0-sentinel.
777
778 * src/gram.h, src/gram.c (nritems): New.
779 Expected to be duplication of nitems, but for the time being...
780 * src/reader.c (packgram): Assert nritems and nitems are equal.
781 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
782 * src/closure.c (print_closure, print_fderives): Likewise.
783 * src/gram.c (ritem_print): Likewise.
784 * src/print.c (print_core, print_grammar): Likewise.
785 * src/print_graph.c: Likewise.
786
b7c49edf
AD
7872001-12-27 Akim Demaille <akim@epita.fr>
788
789 * src/main.c (main): If there are complains after grammar
790 reductions, then output the report anyway if requested, then die.
791 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
792 * src/reader.c (eoftoken): New.
793 (parse_token_decl): If the token being defined has value `0', it
794 is the eoftoken.
795 (packsymbols): No longer hack `tags' to insert `$' by hand.
796 Be sure to preserve the value of the eoftoken.
797 (reader): Make sure eoftoken is defined.
798 Initialize nsyms to 0: now eoftoken is created just like the others.
799 * src/print.c (print_grammar): Don't special case the eof token.
800 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
801 lie anyway, albeit pleasant.
802 * tests/calc.at: Exercise error messages with eoftoken.
803 Change the grammar so that empty input is invalid.
804 Adjust expectations.
805 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
806
ec2da99f
AD
8072001-12-27 Akim Demaille <akim@epita.fr>
808
809 * configure.in: Check the protos of strchr ans strspn.
810 Replace strchr if needed.
811 * src/system.h: Provide the protos of strchr, strspn and memchr if
812 missing.
813 * lib/strchr.c: New.
814 * src/reader.c (symbols_save): Use strchr.
815
8adfa272
AD
8162001-12-27 Akim Demaille <akim@epita.fr>
817
818 * src/print.c, src/print_graph.c (escape): New.
819 Use it to quote the TAGS outputs.
820 * src/print_graph.c (print_state): Now errors are in red, and
821 reductions in green.
822 Prefer high to wide: output the state number on a line of its own.
823
80dac38c
AD
8242001-12-27 Akim Demaille <akim@epita.fr>
825
826 * src/state.h, src/state.c (reductions_new): New.
827 * src/LR0.c (set_state_table): Let all the states have a
828 `reductions', even if reduced to 0.
829 (save_reductions): Adjust.
830 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
831 * src/print.c (print_reductions, print_actions): Adjust.
832 * src/output.c (action_row): Adjust.
833
2cec70b9
AD
8342001-12-27 Akim Demaille <akim@epita.fr>
835
836 * src/state.h, src/state.c (errs_new, errs_dup): New.
837 * src/LR0.c (set_state_table): Let all the states have an errs,
838 even if reduced to 0.
839 * src/print.c (print_errs, print_reductions): Adjust.
840 * src/output.c (output_actions, action_row): Adjust.
841 * src/conflicts.c (resolve_sr_conflict): Adjust.
842
13ca549a
AD
8432001-12-27 Akim Demaille <akim@epita.fr>
844
845 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
846
5092aba5
AD
8472001-12-27 Akim Demaille <akim@epita.fr>
848
849 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
850 * src/print.c: here.
851 (lookaheadset, shiftset): New, used as additional storage by
852 print_reductions.
853 (print_results): Adjust.
854 (print_shifts, print_gotos, print_errs): New, extracted from...
855 (print_actions): here.
856 * src/print_graph.c (print_actions): Remove dead code.
857
11e2beca
AD
8582001-12-27 Akim Demaille <akim@epita.fr>
859
860 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
861 `$n' and `@n'.
862
dac3c910
AD
8632001-12-27 Akim Demaille <akim@epita.fr>
864
865 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
866 (build_relations): Adjust.
867
d0b0fefa
AD
8682001-12-27 Akim Demaille <akim@epita.fr>
869
870 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
871 duplication.
872
adc8c848
AD
8732001-12-27 Akim Demaille <akim@epita.fr>
874
875 * src/reader.c (packgram): Catch nitems overflows.
876
14d293ac
AD
8772001-12-27 Akim Demaille <akim@epita.fr>
878
879 * src/files.c, src/files.h (guard_obstack): Remove.
880 * src/output.c (output): Adjust.
881 * src/reader.c (parse_braces): New, factoring...
882 (copy_action, copy_guard): these two which are renamed as...
883 (parse_action, parse_guard): these.
884 As a voluntary consequence, using braces around guards is now
885 mandatory.
886
f499b062
AD
8872001-12-27 Akim Demaille <akim@epita.fr>
888
889 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
890 * src/reader.c (symbol_list): `guard' and `guard_line' are new
891 members.
892 (symbol_list_new): Adjust.
893 (copy_action): action_line is the first line, not the last.
894 (copy_guard): Just as for actions, store the `action' only, not
895 the switch/case/break flesh.
896 Don't parse the user action that might follow the guard, let...
897 (readgram): do it, i.e., now, there can be an action after a
898 guard.
899 In other words the guard is just explicitly optional.
900 (packgram): Adjust.
901 * src/output.c (guards_output): New.
902 (output_parser): Call it when needed.
903 (output): Also free the guard and attrs obstacks.
904 * src/files.c, src/files.h (obstack_save): Remove.
905 (output_files): Remove.
906 As a result, if one needs the former `.act' file, using an
907 appropriate skeleton which requires actions and guards is now
908 required.
909 * src/main.c (main): Adjust.
910 * tests/semantic.at: New.
911 * tests/regression.at: Use `input.y' as input file name.
912 Avoid 8+3 problems by requiring input.c when the test needs the
913 parser.
914
d945f5cd
AD
9152001-12-27 Akim Demaille <akim@epita.fr>
916
917 * src/reader.c (symbol_list_new): Be sure to initialize all the
918 fields.
919
d200e455
AD
9202001-12-27 Akim Demaille <akim@epita.fr>
921
922 All the hacks using a final pseudo state are now useless.
923
924 * src/LR0.c (set_state_table): state_table holds exactly nstates.
925 * src/lalr.c (nLA): New.
926 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
927 instead of lookaheadsp from the pseudo state (nstate + 1).
928
f9507c28
AD
9292001-12-27 Akim Demaille <akim@epita.fr>
930
931 * src/output.c (action_row, token_actions): Use a state_t instead
932 of a integer, and nlookaheads instead of the following state's
933 lookaheadsp.
934
065fbd27
AD
9352001-12-27 Akim Demaille <akim@epita.fr>
936
937 * src/conflicts.c (log_resolution, flush_shift)
938 (resolve_sr_conflict, set_conflicts, solve_conflicts)
939 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
940 (conflicts_print, print_reductions): Use a state_t instead of an
941 integer when referring to a state.
942 As much as possible, depend upon nlookaheads, instead of the
943 `lookaheadsp' member of the following state (since lookaheads of
944 successive states are successive, the difference between state n + 1
945 and n served as the number of lookaheads for state n).
946 * src/lalr.c (add_lookback_edge): Likewise.
947 * src/print.c (print_core, print_actions, print_state)
948 (print_results): Likewise.
949 * src/print_graph.c (print_core, print_actions, print_state)
950 (print_graph): Likewise.
951 * src/conflicts.h: Adjust.
952
1b177bd7
AD
9532001-12-27 Akim Demaille <akim@epita.fr>
954
955 * src/bison.hairy: Formatting/comment changes.
956 ANSIfy.
957 Remove `register' indications.
958 Add plenty of `static'.
959
7742ddeb
AD
9602001-12-27 Akim Demaille <akim@epita.fr>
961
962 * src/output.c (prepare): Drop the muscle `ntbase' which
963 duplicates ntokens.
964 * src/bison.simple: Formatting/comment changes.
965 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
966 is an undocumented synonym.
967
1fa14068
AD
9682001-12-22 Akim Demaille <akim@epita.fr>
969
970 * src/output.c (output_table_data): Change the prototype to use
971 `int' for array ranges: some invocations do pass an int, not a
972 short.
973 Reported by Wayne Green.
974
b9752825
AD
9752001-12-22 Akim Demaille <akim@epita.fr>
976
977 Some actions of web2c.y are improperly triggered.
978 Reported by Mike Castle.
979
980 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
981 * tests/regression.at (Web2c): Rename as...
982 (Web2c Report): this.
983 (Web2c Actions): New.
984
776209d6
AD
9852001-12-22 Akim Demaille <akim@epita.fr>
986
987 Reductions in web2c.y are improperly reported.
988 Reported by Mike Castle.
989
990 * src/conflicts.c (print_reductions): Fix.
991 * tests/regression.at (Web2c): New.
992
275fc3ad
AD
9932001-12-18 Akim Demaille <akim@epita.fr>
994
995 Some host fail on `assert (!"foo")', which expands to
996 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
997 Reported by Nelson Beebee.
998
999 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
1000 `#define it_succeeded 0' and `assert (it_succeeded)'.
1001
897668ee
MA
10022001-12-17 Marc Autret <autret_m@epita.fr>
1003
1004 * src/bison.simple: Don't hard code the skeleton line and filename.
1005 * src/output.c (output_parser): Rename 'line' as 'output_line'.
1006 New line counter 'skeleton_line' (skeleton-line muscle).
1007
ab3399e0
PE
10082001-12-17 Paul Eggert <eggert@twinsun.com>
1009
1010 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
1011 YYDEBUG must be defined to a nonzero value.
1012
1013 * src/bison.simple (yytname): Do not assume that the user defines
1014 YYDEBUG to a properly parenthesized expression.
1015
3877f72b
AD
10162001-12-17 Akim Demaille <akim@epita.fr>
1017
1018 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
1019 nlookaheads is a new member.
1020 Adjust all users.
1021 * src/lalr.h (nlookaheads): Remove this orphan declaration.
1022 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
1023 state.
776209d6 1024
331dbc1b
AD
10252001-12-17 Akim Demaille <akim@epita.fr>
1026
1027 * src/files.h, src/files.c (open_files, close_files): Remove.
1028 * src/main.c (main): Don't open/close files, nor invoke lex_free,
1029 let...
1030 * src/reader.c (reader): Do it.
776209d6 1031
be750e4c
AD
10322001-12-17 Akim Demaille <akim@epita.fr>
1033
1034 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 1035
709ae8c6
AD
10362001-12-17 Akim Demaille <akim@epita.fr>
1037
1038 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
1039 (flush_reduce): New.
1040 (resolve_sr_conflict): Adjust.
776209d6 1041
f87685c3
AD
10422001-12-17 Akim Demaille <akim@epita.fr>
1043
1044 * src/output.c (output_obstack): Be static and rename as...
1045 (format_obstack): this, to avoid any confusion with files.c's
1046 output_obstack.
1047 * src/reader.h (muscle_obstack): Move to...
1048 * src/output.h: here, since it's defined in output.c.
1049
837491d8
AD
10502001-12-17 Akim Demaille <akim@epita.fr>
1051
1052 * src/output.c (action_row, save_column, default_goto)
1053 (sort_actions, matching_state, pack_vector): Better variable
1054 locality.
1055
796d61fb
AD
10562001-12-17 Akim Demaille <akim@epita.fr>
1057
1058 * src/output.c: Various formatting changes.
776209d6 1059
64d15509
AD
10602001-12-17 Akim Demaille <akim@epita.fr>
1061
1062 * src/files.c (output_files): Free the output_obstack.
1063 * src/main.c (main): Call print and print_graph conditionally.
1064 * src/print.c (print): Work unconditionally.
1065 * src/print_graph.c (print_graph): Work unconditionally.
1066 * src/conflicts.c (log_resolution): Output only if verbose_flag.
1067
fbc8ecb7
MA
10682001-12-16 Marc Autret <autret_m@epita.fr>
1069
1070 * src/output.c (actions_output): Fix. When we use %no-lines,
1071 there is one less line per action.
1072
f0440388
MA
10732001-12-16 Marc Autret <autret_m@epita.fr>
1074
1075 * src/bison.simple: Remove a useless #line directive.
1076 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
1077 * src/output.c (get_lines_number): New.
776209d6 1078 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
1079 output muscles.
1080 Fix line numbering.
1081 (actions_output): Computes the number of lines taken by actions.
1082 (output_master_parser): Insert new skeleton which is the name of
1083 the output parser file name.
1084
a79986b8
MA
10852001-12-15 Marc Autret <autret_m@epita.fr>
1086
1087 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
1088
4ec8e00f
MA
10892001-12-15 Marc Autret <autret_m@epita.fr>
1090
1091 * src/output.c (output_gram): Keep track of the hairy one.
1092
1a4648ff
AD
10932001-12-15 Akim Demaille <akim@epita.fr>
1094
1095 Make `make distcheck' work.
1096
1097 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
1098 system.h which uses libgettext.h.
1099
9c2c67e6
AD
11002001-12-15 Akim Demaille <akim@epita.fr>
1101
1102 * src/nullable.c (set_nullable): Useless rules must be skipped,
1103 otherwise, since we range over their symbols, we might look at a
1104 nonterminal which no longer ``exists'', i.e., it is not counted in
1105 `nvars', hence we overflow our arrays.
1106
93ede233
AD
11072001-12-15 Akim Demaille <akim@epita.fr>
1108
1109 The header can also be produced directly, without any obstack!
1110 Yahoo!
1111
1112 * src/files.c, src/files.h (defines_obstack): Remove.
1113 (compute_header_macro): Global.
1114 (defines_obstack_save): Remove.
1115 * src/reader.c (parse_union_decl): No longer output to
1116 defines_obstack: its content can be found in the `stype' muscle
1117 anyway.
1118 (output_token_translations): Merge into...
1119 (symbols_output): this.
1120 Rename as...
1121 (symbols_save): this.
1122 (reader): Adjust.
1123 * src/output.c (header_output): New.
1124 (output): Call it.
1125
2666f928
AD
11262001-12-15 Akim Demaille <akim@epita.fr>
1127
1128 * src/reader.c (parse_union_decl): Instead of handling two obstack
1129 simultaneously, use one to define the `stype' muscle, and use the
1130 value of the latter to fill defines_obstack.
1131 (copy_comment): Remove.
1132 (copy_comment2): Work for a single obstack.
1133 Rename as...
1134 (copy_comment): this.
1135
428046f8
AD
11362001-12-15 Akim Demaille <akim@epita.fr>
1137
1138 * src/lex.c, src/lex.h (xgetc): No longer static.
1139 * src/reader.c (parse_union_decl): Revamp.
1140
ea52d706
AD
11412001-12-15 Akim Demaille <akim@epita.fr>
1142
1143 Still making progress in separating Bison into (i) input, (ii)
1144 process, (iii) output: now we can directly output the parser file
1145 without using table_obstack at all.
1146
1147 * src/files.c, src/files.h (table_obstack): Bye bye.
1148 (parser_file_name): New.
1149 * src/files.c (compute_output_file_names): Compute it.
1150 * src/output.c (actions_output, output_parser)
1151 (output_master_parser): To a file instead of an obstack.
1152
3f96f4dc
AD
11532001-12-15 Akim Demaille <akim@epita.fr>
1154
1155 Attach actions to rules, instead of pre-outputting them to
1156 actions_obstack.
1157
1158 * src/gram.h (rule_t): action and action_line are new members.
1159 * src/reader.c (symbol_list): Likewise.
1160 (copy_action): Save the actions within the rule.
1161 (packgram): Save them in rule_table.
1162 * src/output.c (actions_output): New.
1163 (output_parser): Use it on `%%actions'.
1164 (output_rule_data): Don't free rule_table.
1165 (output): Do it.
1166 (prepare): Don't save the `action' muscle.
1167 * src/bison.simple: s/%%action/%%actions/.
1168
51576fb3
AD
11692001-12-15 Akim Demaille <akim@epita.fr>
1170
1171 * src/reader.c (copy_action): When --yacc, don't append a `;'
1172 to the user action: let it fail if lacking.
dee049eb 1173 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 1174
2648a72d
AD
11752001-12-14 Akim Demaille <akim@epita.fr>
1176
1177 * src/lex.c (literalchar): Simply return the char you decoded, non
1178 longer mess around with obstacks and int pointers.
1179 Adjust all callers.
1180
92790e5b
AD
11812001-12-14 Akim Demaille <akim@epita.fr>
1182
1183 * src/lex.c (literalchar): Don't escape the special characters,
1184 just decode them, and keep them as char (before, eol was output as
1185 the 2 char string `\n' etc.).
1186 * src/output.c (output_rule_data): Use quotearg to output the
1187 token strings.
1188
927c1557
PE
11892001-12-13 Paul Eggert <eggert@twinsun.com>
1190
1191 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
1192 Do not infringe on the global user namespace when using C++.
1193 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
1194 All uses of `fprintf' and `stderr' changed.
1195
1196 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
1197
ed8e1f68
AD
11982001-12-13 Akim Demaille <akim@epita.fr>
1199
1200 The computation of nullable is broken: it doesn't handle empty
1201 RHS's properly.
1202
1203 * tests/torture.at (GNU AWK Grammar): New.
1204 * tests/sets.at (Nullable): New.
1205 * src/nullable.c (set_nullable): Instead of blindly looping over
1206 `ritems', loop over the rules, and then over their rhs's.
1207
1208 Work around Autotest bugs.
1209
1210 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
1211 frame, because Autotest understand lines starting with a `+' as
1212 traces from the shell. Then, they are not processed properly.
1213 Admittedly an Autotest bug, but we don't have time to wait for
1214 Autotest to catch up.
1215 * tests/regression.at (Broken Closure): Adjust to the new table
1216 frames.
1217 Move to...
1218 * tests/sets.at: here.
1219
cb581495
AD
12202001-12-13 Akim Demaille <akim@epita.fr>
1221
1222 * src/closure.c (closure): Use nrules instead of playing tricks
1223 with BITS_PER_WORD.
1224
2e729273
AD
12252001-12-13 Akim Demaille <akim@epita.fr>
1226
1227 * src/print.c (print_actions): Output the handling of `$' as the
1228 traces do: shifting the token EOF. Before EOF was treated as a
1229 nonterminal.
1230 * tests/regression.at: Adjust some tests.
1231 * src/print_graph.c (print_core): Complete the set of items via
1232 closure. The next-to-final and final states are still unsatisfying,
1233 but that's to be addressed elsewhere.
1234 No longer output the rule numbers, but do output the state number.
1235 A single loop for the shifts + gotos is enough, but picked a
1236 distinct color for each.
1237 (print_graph): Initialize and finalize closure.
1238
107f7dfb
AD
12392001-12-13 Akim Demaille <akim@epita.fr>
1240
1241 * src/reader.c (readgram): Remove dead code, an strip useless
1242 braces.
1243 (get_type): Remove, unused.
1244
9b53a24f
AD
12452001-12-12 Akim Demaille <akim@epita.fr>
1246
1247 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
1248 on that of lib/error.c.
1249
dbfb6dcd
AD
12502001-12-12 Akim Demaille <akim@epita.fr>
1251
1252 Some hosts don't like `/' in includes.
1253
1254 * src/system.h: Include libgettext.h without qualifying the path.
1255 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
1256 $(top_srcdir).
1257
c25fb648
MA
12582001-12-11 Marc Autret <autret_m@epita.fr>
1259
1260 * src/output.c (output_parser): Remove useless muscle.
1261
710ddc4f
MA
12622001-12-11 Marc Autret <autret_m@epita.fr>
1263
1264 * src/bison.simple: Remove #line just before %%epilogue. It
1265 is now handled in ...
1266 * src/reader.c (read_additionnal_code): Add the output of a
1267 #line for the epilogue.
1268
e83d80b8
MA
12692001-12-10 Marc Autret <autret_m@epita.fr>
1270
927c1557 1271 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
1272 replace precedent remove.
1273 * src/bison.simple: Remove #line before %%prologue because
1274 %%input-line is wrong at this time.
1275
971d5158
MA
12762001-12-10 Marc Autret <autret_m@epita.fr>
1277
1278 * src/reader.c (symbols_output): Clean up.
927c1557 1279 * src/output.c (output_gram, output): Clean up.
971d5158 1280
5edafffd
AD
12812001-12-10 Akim Demaille <akim@epita.fr>
1282
1283 * src/lalr.c (initialize_lookaheads): New. Extracted from...
1284 * src/LR0.c (set_state_table): here.
1285 * src/lalr.c (lalr): Call it.
1286
0279f8e9
AD
12872001-12-10 Akim Demaille <akim@epita.fr>
1288
1289 * src/state.h (shifts): Remove the `number' member: shifts are
1290 attached to state, hence no longer need to be labelled with a
1291 state number.
1292
190c4f5f
AD
12932001-12-10 Akim Demaille <akim@epita.fr>
1294
1295 Now that states have a complete set of members, the linked list of
1296 shifts is useless: just fill directly the state's shifts member.
1297
1298 * src/state.h (shifts): Remove the `next' member.
1299 * src/LR0.c (first_state, last_state): Remove.
1300 Adjust the callers.
1301 (augment_automaton): Don't look for the shifts that must be added
1302 a shift on EOF: it is those of the state we looked for! But now,
1303 since shifts are attached, it is no longer needed to looking
1304 merely by its id: its number.
1305
2a73b93d
AD
13062001-12-10 Akim Demaille <akim@epita.fr>
1307
1308 * src/LR0.c (augment_automaton): Better variable locality.
1309 Remove an impossible branch: if there is a state corresponding to
1310 the start symbol being shifted, then there is shift for the start
1311 symbol from the initial state.
1312
74392f6a
AD
13132001-12-10 Akim Demaille <akim@epita.fr>
1314
1315 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
1316 only when appropriate: when insert_start_shifting_state' is not
1317 invoked.
1318 * tests/regression.at (Rule Line Numbers): Adjust.
1319
37c82725
AD
13202001-12-10 Akim Demaille <akim@epita.fr>
1321
1322 * src/LR0.c (augment_automaton): Now that all states have shifts,
1323 merge the two cases addition shifts to the initial state.
1324
6a164e0c
AD
13252001-12-10 Akim Demaille <akim@epita.fr>
1326
1327 * src/lalr.c (set_state_table): Move to...
1328 * src/LR0.c: here.
1329 * src/lalr.c (lalr): Don't call it...
1330 * src/LR0.c (generate_states): do it.
1331 * src/LR0.h (first_state): Remove, only the table is used.
1332
7215de24
AD
13332001-12-10 Akim Demaille <akim@epita.fr>
1334
1335 * src/LR0.h (first_shift, first_reduction): Remove.
1336 * src/lalr.c: Don't use first_shift: find shifts through the
1337 states.
1338
80e25d4d
AD
13392001-12-10 Akim Demaille <akim@epita.fr>
1340
1341 * src/LR0.c: Attach shifts to states as soon as they are
1342 computed.
1343 * src/lalr.c (set_state_table): Instead of assigning shifts to
1344 state, just assert that the mapping was properly done.
1345
0ab3728b
AD
13462001-12-10 Akim Demaille <akim@epita.fr>
1347
1348 * src/LR0.c (insert_start_shift): Rename as...
1349 (insert_start_shifting_state): this.
1350 (insert_eof_shifting_state, insert_accepting_state): New.
1351 (augment_automaton): Adjust.
1352 Better locality of the variables.
1353 When looking if the start_symbol is shifted from the initial
1354 state, using `while (... symbol != start_symbol ...)' sounds
1355 better than `while (... symbol < start_symbol ...)': If fail
1356 to see how the order between symbols could be relevant!
1357
78af9bbc
AD
13582001-12-10 Akim Demaille <akim@epita.fr>
1359
1360 * src/getargs.h: Don't declare `spec_name_prefix' and
1361 `spec_file_prefix', declared by src/files.h.
1362 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
1363 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
1364 * src/output.c (prepare): Adjust.
1365 * src/reader.c (symbols_output): Likewise.
1366 * src/vmsgetargs.c: Vaguely adjust, but who cares?
1367
bdef2a41
AD
13682001-12-10 Akim Demaille <akim@epita.fr>
1369
1370 * src/muscle_tab.c (muscle_init): NULL is a better default than
1371 `"0"'.
1372
3735969c
AD
13732001-12-10 Akim Demaille <akim@epita.fr>
1374
1375 * src/reader.c (reader): Calling symbols_output once is enough.
1376
49701457
AD
13772001-12-10 Akim Demaille <akim@epita.fr>
1378
1379 Now that states have a complete set of members, the linked list of
1380 reductions is useless: just fill directly the state's reductions
1381 member.
1382
1383 * src/state.h (struct reductions): Remove member `number' and
1384 `next'.
1385 * src/LR0.c (first_reduction, last_reduction): Remove.
1386 (save_reductions): Don't link the new reductions, store them in
1387 this_state.
1388 * src/lalr.c (set_state_table): No need to attach reductions to
1389 states, it's already done.
1390 * src/output.c (output_actions): No longer free the shifts, then
1391 the reductions, then the states: free all the states and their
1392 members.
1393
0edad749
AD
13942001-12-10 Akim Demaille <akim@epita.fr>
1395
1396 * src/options.c (OPTN, DRTV, BOTH): New.
1397 (option_table): Use them.
1398
0edad749
AD
1399 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
1400 the job of system.h.
1401 * src/options.c: Don't include stdio.h and xalloc.h for the same
1402 reasons.
1403
5449dd0f
AD
14042001-12-10 Akim Demaille <akim@epita.fr>
1405
1406 * src/output.c (output, prepare): Make sure the values of the
1407 muscles `action' and `prologue' are 0-terminated.
1408
a870c567
AD
14092001-12-10 Akim Demaille <akim@epita.fr>
1410
1411 Clean up GCC warnings.
1412
1413 * src/reader.c (copy_action): `buf' is not used.
1414 (parse_skel_decl): Be static.
1415 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
1416 * src/options.h (create_long_option_table): Have a real prototype.
1417 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
1418 (hash_delete_at): Return const void *.
1419 Adjust casts to preserve the const.
1420
80df8768
AD
14212001-12-10 Akim Demaille <akim@epita.fr>
1422
1423 * configure.in: Require 2.52g.
1424 M4 is not needed, but AUTOM4TE is.
1425 * m4/m4.m4: Remove.
1426 * tests/Makefile.am: Adjust.
1427
f693ad14
AD
14282001-12-10 Akim Demaille <akim@epita.fr>
1429
1430 One structure for states is enough, even though theoretically
1431 there are LR(0) states and LALR(1) states.
1432
1433 * src/lalr.h (state_t): Remove.
1434 (state_table): Be state_t **, not state_t *.
1435 * src/state.h (core, CORE_ALLOC): Rename as...
1436 (state_t, STATE_ALLOC): this.
1437 Add the LALR(1) members: shifts, reductions, errs.
1438 * src/LR0.c (state_table): Rename as...
1439 (state_hash): this, to avoid name clashes with the global
1440 `state_table'.
1441 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
1442 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
1443
74ffbcb6
AD
14442001-12-10 Akim Demaille <akim@epita.fr>
1445
1446 Bison dumps core on bash.y.
1447 Reported by Pascal Bart.
1448
1449 * src/warshall.c (bitmatrix_print): New.
1450 (TC): Use it.
1451 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
1452 j must be the outer loop.
1453 * tests/regression.at (Broken Closure): New.
1454
07708e19
AD
14552001-12-05 Akim Demaille <akim@epita.fr>
1456
1457 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
1458 its argument.
1459