]> git.saurik.com Git - bison.git/blob - ChangeLog
Regenerate.
[bison.git] / ChangeLog
1 2002-11-05 Paul Eggert <eggert@twinsun.com>
2
3 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
4 Also, remove one static variable in the scanner.
5
6 * src/scan-gram.l (braces_level): Now auto, not static.
7 Initialize to zero if the compiler is being picky.
8 (INITIAL): Clear braces_level instead of incrementing it.
9 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
10 as POSIX 1003.1-2001 requires.
11 * src/system.h (IF_LINT): New macro, taken from coreutils.
12 * configure.ac: Define "lint" if --enable-gcc-warnings.
13
14 2002-11-05 Akim Demaille <akim@epita.fr>
15
16 * src/scan-gram.l: When it starts with `%', complain about the
17 whole directive, not just that `invalid character: %'.
18
19 2002-11-04 Akim Demaille <akim@epita.fr>
20
21 * Makefile.maint: Update from Autoconf.
22 (update, cvs-update, po-update, do-po-update): New.
23
24 2002-11-04 Akim Demaille <akim@epita.fr>
25
26 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
27 and yyerror.
28 Have yyerror `use' its arguments.
29 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
30 returns true when location & yacc & pure & parse-param.
31 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
32
33 2002-11-04 Akim Demaille <akim@epita.fr>
34
35 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
36 clashes.
37 * src/scan-gram.l: Use [\'] instead of ['] to pacify
38 font-lock-mode.
39 Use complain_at.
40 Use quote, not quote_n since LOCATION_PRINT no longer uses the
41 slot 0.
42
43 2002-11-03 Paul Eggert <eggert@twinsun.com>
44
45 * src/reader.c (get_merge_function, grammar_current_rule_check):
46 Use consistent diagnostics for reporting type name clashes.
47 Quote the types with <>, for consistency with Yacc.
48 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
49
50 2002-11-03 Akim Demaille <akim@epita.fr>
51
52 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
53 New.
54 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
55 (b4_parse_param): Remove.
56 Use b4_identification.
57 Propagate b4_pure_args where needed to pass them to yyerror.
58 * data/glr.m4 (b4_parse_param): Remove.
59 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
60 (b4_lpure_formals): New.
61 Use b4_identification.
62 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
63 b4_user_formals and b4_user_args.
64 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
65 (yyreportAmbiguity): When using a pure parser, also need
66 the location, and the parse-params.
67 Adjust callers.
68 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
69 When using a pure parser, also need the parse-params.
70 Adjust callers.
71 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
72 (%pure-parser + %parse-param) LALR and GLR parsers.
73 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
74 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
75 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
76 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
77 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
78 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
79 * doc/bison.texinfo: Untabify the whole file.
80 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
81 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
82 (Error Reporting): Adjust to these new directives.
83 Document %error-verbose, deprecate YYERROR_VERBOSE.
84
85 2002-11-03 Akim Demaille <akim@epita.fr>
86
87 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
88 AT_CHECK_CALC_GLR invocations to use % directives, instead of
89 command line options.
90 * tests/cxx-type.at: Formatting changes.
91
92 2002-11-03 Paul Eggert <eggert@twinsun.com>
93
94 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
95 to count columns correctly, and to check for invalid inputs.
96
97 Use mbsnwidth to count columns correctly. Account for tabs, too.
98 Include mbswidth.h.
99 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
100 (extend_location): New function.
101 (YY_LINES): Remove.
102
103 Handle CRLF in C code rather than in Lex code.
104 (YY_INPUT): New macro.
105 (no_cr_read): New function.
106
107 Scan UCNs, even though we don't fully handle them yet.
108 (convert_ucn_to_byte): New function.
109
110 Handle backslash-newline correctly in C code.
111 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
112 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
113 all uses changed.
114 (tag, splice): New EREs. Do not allow NUL or newline in tags.
115 Use {splice} wherever C allows backslash-newline.
116 YY_STEP after space, newline, vertical-tab.
117 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
118
119 (letter, id): Don't assume ASCII; e.g., spell out a-z.
120
121 ({int}, handle_action_dollar, handle_action_at): Check for integer
122 overflow.
123
124 (YY_STEP): Omit trailing semicolon, so that it's more like C.
125
126 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
127 as well as \000. Check for UCHAR_MAX, not 255.
128 Allow \x with an arbitrary positive number of digits, as in C.
129 Check for overflow here.
130 Allow \? and UCNs, for compatibility with C.
131
132 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
133 with quote slot used by complain_at.
134
135 * tests/input.at: Add tests for backslash-newline, m4 quotes
136 in symbols, long literals, and funny escapes in strings.
137
138 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
139 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
140 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
141 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
142 * m4/mbswidth.m4: New file, from GNU coreutils.
143
144 * doc/bison.texinfo (Grammar Outline): Document // comments.
145 (Symbols): Document that trigraphs have no special meaning in Bison,
146 nor is backslash-newline allowed.
147 (Actions): Document that trigraphs have no special meaning.
148
149 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
150 no longer used.
151
152 2002-11-02 Paul Eggert <eggert@twinsun.com>
153
154 * src/reader.c: Don't include quote.h; not needed.
155 (get_merge_function): Reword warning to be consistent with
156 type clash diagnostic in grammar_current_rule_check.
157
158 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
159 bug in trigraph handling.
160
161 * src/output.c (prepare_symbols): When printing token names,
162 escape "[" as "@<:@" and likewise for "]".
163
164 * src/system.h (errno): Remove declaration, as we are now
165 assuming C89 or better, and C89 guarantees errno.
166
167 2002-10-30 Paul Eggert <eggert@twinsun.com>
168
169 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
170 Check for close failures.
171 * src/files.h (xfclose): Return void, not int, since it always
172 returned zero.
173 * src/files.c (xfclose): Likewise. Report I/O error if ferror
174 indicates one.
175 * src/output.c (output_skeleton): Use xfclose rather than fclose
176 and ferror. xfclose now checks ferror.
177
178 * data/glr.c (YYLEFTMOST_STATE): Remove.
179 (yyreportTree): Use a stack-based leftmost state. This avoids
180 our continuing battles with bogus warnings about initializers.
181
182 2002-10-30 Akim Demaille <akim@epita.fr>
183
184 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
185 #if.
186
187 2002-10-24 Paul Eggert <eggert@twinsun.com>
188
189 Version 1.75a.
190
191 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
192 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
193 we use malloc. Don't assume 'A' through 'Z' are contiguous.
194 Don't assume strdup exists; POSIX says its an XSI extension.
195 Check for buffer overflow on input.
196
197 2002-10-24 Akim Demaille <akim@epita.fr>
198
199 * src/output.c (output_skeleton): Don't disable M4sugar comments
200 too soon: it results in comments being expanded.
201 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
202 first output.
203
204 2002-10-24 Akim Demaille <akim@epita.fr>
205
206 * data/yacc.c (m4_int_type): New.
207 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
208 char' as only yacc.c wants K&R portability.
209 * data/glr.c (yysigned_char): Remove.
210 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
211 Reported by Quoc Peyrot.
212
213 2002-10-23 Paul Eggert <eggert@twinsun.com>
214
215 * src/main.c (main): With --trace=time, report times even if a
216 non-fatal error occurs. Formerly, the times were reported in some
217 such cases but not in others.
218 * src/reader.c (reader): Just return if a complaint has been issued,
219 instead of exiting, so that 'main' can report times.
220
221 2002-10-22 Akim Demaille <akim@epita.fr>
222
223 * src/system.h: Include sys/types.
224 Reported by Bert Deknuydt.
225
226 2002-10-23 Paul Eggert <eggert@twinsun.com>
227
228 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
229 Suggested by Art Haas.
230
231 2002-10-22 Paul Eggert <eggert@twinsun.com>
232
233 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
234 decl; not needed any more.
235 * src/main.c (main): Use return to exit, undoing yesterday's change.
236 The last OS that we could find where this wouldn't work is
237 SunOS 3.5, and that's too old to worry about now.
238
239 * data/glr.c (struct yyltype): Define members even when not
240 doing locations. This is more consistent with yacc.c, and it
241 works around the following bug reports:
242 http://mail.gnu.org/pipermail/bug-bison/2002-October/001764.html
243 http://mail.gnu.org/pipermail/bug-bison/2002-October/001769.html
244 and I hope it also fixes this bug report:
245 http://mail.gnu.org/pipermail/bug-bison/2002-October/001748.html
246
247 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
248 @acronym consistently. Standardize on "Yacc" instead of "YACC",
249 "Algol" instead of "ALGOL". Give a bit more history about BNF.
250
251 2002-10-22 Akim Demaille <akim@epita.fr>
252
253 * data/README: New.
254
255 2002-10-21 Paul Eggert <eggert@twinsun.com>
256
257 Be consistent about 'bool'; the old code used an enum in one
258 module and an int in another, and this violates the C standard.
259 * m4/stdbool.m4: New file, from coreutils 4.5.3.
260 * configure.ac (AC_HEADER_STDBOOL): Add.
261 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
262 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
263 * src/symtab.c (hash_compare_symbol_t): Likewise.
264 * src/system.h (bool, false, true): Use a definition consistent
265 with ../lib/hash.c. All uses changed.
266
267 * src/complain.c (warning_issued): Renamed from warn_message_count,
268 so that we needn't worry about integer overflow (!).
269 Now of type bool. All uses changed.
270 (complaint_issued): Renamed from complain_message_count; likewise.
271
272 * src/main.c (main): Use exit to exit with failure.
273
274 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
275 rather than 1 and 0.
276 * src/main.c (main): Likewise.
277 * src/getargs.c (getargs): Likewise.
278 * src/reader.c (reader): Likewise.
279
280 * src/getarg.c (getargs): Remove duplicate code for
281 "Try `bison --help'".
282
283 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
284 What was that "2" for?
285
286 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
287 * src/getargs.c (usage): Likewise.
288
289 * src/getargs.c (getargs): When there are too few operands, report
290 the last one. When there are too many, report the first extra
291 one. This is how diffutils does it.
292
293 2002-10-20 Paul Eggert <eggert@twinsun.com>
294
295 Remove K&R vestiges.
296 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
297 * src/complain.c (VA_START): Remove. Assume prototypes.
298 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
299 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
300 fatal): Assume prototypes.
301 * src/complain.h: Assume prototypes.
302 * src/system.h (PARAMS): Remove.
303 Include <limits.h> unconditionally, since it's guaranteeed even
304 for a freestanding C89 compiler.
305 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
306 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
307
308 2002-10-20 Akim Demaille <akim@epita.fr>
309
310 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
311 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
312 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
313 (yyresolveStates, yyresolveAction, yyresolveStack)
314 (yyprocessOneStack): Use them.
315 (yy_reduce_print): New.
316 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
317
318 2002-10-20 Akim Demaille <akim@epita.fr>
319
320 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
321 arguments and output `void'.
322 (b4_c_function): Rename as...
323 (b4_c_function_def): this.
324 (b4_c_function_decl, b4_c_ansi_function_def)
325 (b4_c_ansi_function_decl): New.
326 Change the interpretation of the arguments: before `int, foo', now
327 `int foo, foo'.
328 * data/yacc.c (yyparse): Prototype and define thanks to these.
329 Adjust b4_c_function_def uses.
330 * data/glr.c (yyparse): Likewise, but ANSI only.
331
332 2002-10-20 Akim Demaille <akim@epita.fr>
333
334 * src/output.c (prepare): Move the definition of `tokens_number',
335 `nterms_number', `undef_token_number', `user_token_number_max'
336 to...
337 (prepare_tokens): Here.
338 (prepare_tokens): Rename as...
339 (prepare_symbols): this.
340 (prepare): Move the definition of `rules_number' to...
341 (prepare_rules): here.
342 (prepare): Move the definition of `last', `final_state_number',
343 `states_number' to...
344 (prepare_states): here.
345 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
346
347 2002-10-20 Akim Demaille <akim@epita.fr>
348
349 * src/tables.h, src/tables.c, src/output.c: Comment changes.
350
351 2002-10-20 Akim Demaille <akim@epita.fr>
352
353 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
354 * data/c.m4: here.
355
356 2002-10-20 Akim Demaille <akim@epita.fr>
357
358 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
359 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
360 `pair'.
361 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
362 `name' to...
363 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
364 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
365 These.
366
367 2002-10-19 Paul Eggert <eggert@twinsun.com>
368
369 Do not create a temporary file, as that involves security and
370 cleanup headaches. Instead, use a pair of pipes.
371 Derived from a suggestion by Florian Krohm.
372 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
373 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
374 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
375 (BISON_PREREQ_SUBPIPE): Add.
376 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
377 Add subpipe.h, subpipe.c.
378 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
379 * po/POTFILES.in: Add lib/subpipe.c.
380 * src/output.c: Include "subpipe.h".
381 (m4_invoke): Remove decl.
382 (scan_skel): New decl.
383 (output_skeleton): Use pipe rather than temporary file for m4 input.
384 Check that m4sugar.m4 is readable, to avoid deadlock.
385 Check for pipe I/O error.
386 * src/scan-skel.l (readpipe): Remove decl.
387 (scan_skel): New function, to be used in place of m4_invoke.
388 Read from stream rather than file.
389
390 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
391 float, as this generates a warning on Solaris 8 + GCC 3.2 with
392 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
393 this generates a more-accurate value anyway.
394
395 * lib/timevar.c (timervar_accumulate): Rename locals to
396 avoid confusion with similarly-named more-global.
397 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
398
399 * src/output.c (prepare): Use xstrdup to convert char const *
400 to char *, to avoid GCC warning.
401
402 2002-10-19 Akim Demaille <akim@epita.fr>
403
404 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
405 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
406 Use them to have `calc.y' ready for %pure-parser.
407 * data/yacc.c (YYLEX): Pass a yylex return type to
408 b4_c_function_call.
409
410 2002-10-19 Akim Demaille <akim@epita.fr>
411
412 Prototype support of %lex-param and %parse-param.
413
414 * src/parse-gram.y: Add the definition of the %lex-param and
415 %parse-param tokens, plus their rules.
416 Drop the `_' version of %glr-parser.
417 Add the "," token.
418 * src/scan-gram.l (INITIAL): Scan them.
419 * src/muscle_tab.c: Comment changes.
420 (muscle_insert, muscle_find): Rename `pair' as `probe'.
421 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
422 (muscle_entry_s): The `value' member is no longer const.
423 Adjust all dependencies.
424 * src/muscle_tab.c (muscle_init): Adjust: use
425 MUSCLE_INSERT_STRING.
426 Initialize the obstack earlier.
427 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
428 (muscle_pair_list_grow): New.
429 * data/c.m4 (b4_c_function_call, b4_c_args): New.
430 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
431 * tests/calc.at: Use %locations, not --locations.
432 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
433
434 2002-10-19 Akim Demaille <akim@epita.fr>
435
436 * src/getargs.c (usage): Take status as argument and exit
437 accordingly.
438 Report the traditional `Try ... --help' message when status != 0.
439 (usage, version): Don't take a FILE * as arg, it is pointless.
440 (getargs): When there is an incorrect number of arguments, make it
441 an error, and report it GNUlically thanks to `usage ()'.
442
443 2002-10-18 Paul Eggert <eggert@twinsun.com>
444
445 * data/glr.c (yyreportParseError): Don't assume that sprintf
446 yields the length of the printed string, as this is not true
447 on SunOS 4.1.4. Reported by Peter Klein.
448
449 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
450 * tests/conflicts.at (%nonassoc and eof): Likewise.
451 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
452
453 2002-10-17 Akim Demaille <akim@epita.fr>
454
455 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
456 * src/getargs.c (trace_types, trace_args): Adjust.
457 * src/reader.c (grammar_current_rule_prec_set)
458 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
459 Standardize error messages.
460 And s/@prec/%prec/!
461 (reader): Use trace_flag to enable scanner/parser debugging,
462 instead of an adhoc scheme.
463 * src/scan-gram.l: Remove trailing debugging code.
464
465 2002-10-16 Paul Eggert <eggert@twinsun.com>
466
467 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
468 MUSCLE_TAB_H.
469
470 * NEWS: Officially drop support for building Bison with K&R C,
471 since it didn't work anyway and it's not worth worrying about.
472 * Makefile.maint (wget_files): Remove ansi2knr.c.
473 (ansi2knr.c-url_prefix): Remove.
474 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
475 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
476 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
477
478 2002-10-15 Paul Eggert <eggert@twinsun.com>
479
480 Stop using the "enum_" trick for K&R-style function definitions;
481 it confused me, and I was the author! Instead, assume that people
482 who want to use K&R C compilers (when using these modules in GCC,
483 perhaps?) will run ansi2knr.
484
485 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
486 All uses of "enum_" changed to "enum ".
487 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
488 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
489
490 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
491 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
492 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
493 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
494 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
495 abitset_not, abitset_ones, abitset_or, abitset_or_and,
496 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
497 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
498 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
499 Use function prototypes; this removes the need for declaring
500 static functions simply to provide their prototypes.
501 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
502 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
503 bitset_count_, bitset_create, bitset_dump, bitset_first,
504 bitset_free, bitset_init, bitset_last, bitset_next,
505 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
506 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
507 bitset_print, bitset_release_memory, bitset_toggle_,
508 bitset_type_choose, bitset_type_get, bitset_type_name_get,
509 debug_bitset): Likewise.
510 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
511 * lib/bitset_stats.c (bitset_log_histogram_print,
512 bitset_percent_histogram_print, bitset_stats_and,
513 bitset_stats_and_cmp, bitset_stats_and_or,
514 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
515 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
516 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
517 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
518 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
519 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
520 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
521 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
522 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
523 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
524 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
525 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
526 bitset_stats_zero): Likewise.
527 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
528 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
529 bitsetv_dump, debug_bitsetv): Likewise.
530 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
531 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
532 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
533 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
534 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
535 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
536 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
537 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
538 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
539 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
540 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
541 Likewise.
542 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
543 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
544 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
545 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
546 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
547 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
548 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
549 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
550 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
551 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
552 lbitset_xor_cmp, lbitset_zero): Likewise.
553
554 2002-10-14 Akim Demaille <akim@epita.fr>
555
556 Version 1.75.
557
558 2002-10-14 Akim Demaille <akim@epita.fr>
559
560 * tests/Makefile.am (maintainer-check-posix): New.
561
562 2002-10-14 Akim Demaille <akim@epita.fr>
563
564 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
565 member.
566
567 2002-10-14 Akim Demaille <akim@epita.fr>
568
569 * src/tables.c (table_ninf_remap): base -> tab.
570 Reported by Matt Rosing.
571
572 2002-10-14 Paul Eggert <eggert@twinsun.com>
573
574 * tests/action.at, tests/calc.at, tests/conflicts.at,
575 tests/cxx-type.at, tests/headers.at, tests/input.at,
576 tests/regression.at, tests/synclines.at, tests/torture.at:
577 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
578 so that the tests still work even if POSIXLY_CORRECT is set.
579 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
580
581 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
582 for portability to K&R hosts. Fix typo: signed char is guaranteed
583 only to 127, not to 128.
584 * data/glr.c (yysigned_char): New type.
585 * data/yacc.c (yysigned_char): Likewise.
586 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
587
588 2002-10-13 Paul Eggert <eggert@twinsun.com>
589
590 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
591 true due to limited range of data type" warning from GCC.
592
593 * data/c.m4 (b4_token_defines): Protect against double-inclusion
594 by wrapping enum yytokentype's definition inside #ifndef
595 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
596
597 2002-10-13 Akim Demaille <akim@epita.fr>
598
599 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
600 Un yy- yyrhs to avoid the name clash with the global YYRHS.
601
602 2002-10-13 Akim Demaille <akim@epita.fr>
603
604 * Makefile.maint: Update from Autoconf 2.54.
605 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
606
607 2002-10-13 Akim Demaille <akim@epita.fr>
608
609 * src/print.c (print_state): Separate the list of solved conflicts
610 from the other items.
611 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
612
613 2002-10-13 Akim Demaille <akim@epita.fr>
614
615 Let nondeterministic skeletons be usable with deterministic
616 tables.
617
618 With the patch, GAWK compiled by GCC without -O2 passes its test
619 suite using a GLR parser driven by LALR tables. It fails with -O2
620 because `struct stat' gives two different answers on my machine:
621 88 (definition of an auto var) and later 96 (memset on this var).
622 Hence the stack is badly corrumpted. The headers inclusion is to
623 blame: if I move the awk.h inclusion before GLR's system header
624 inclusion, the two struct stat have the same size.
625
626 * src/tables.c (pack_table): Always create conflict_table.
627 (token_actions): Always create conflict_list.
628 * data/glr.c (YYFLAG): Remove, unused.
629
630 2002-10-13 Akim Demaille <akim@epita.fr>
631
632 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
633 (O0FLAGS): New.
634 (VALGRIND, GXX): New.
635 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
636 * tests/bison.in: Run $PREBISON a pre-command.
637 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
638 (maintainer-check-g++): New.
639 * Makefile.am (maintainer-check): New.
640
641 2002-10-13 Akim Demaille <akim@epita.fr>
642
643 * data/glr.c: Formatting changes.
644 Tweak some trace messages to match yacc.c's.
645
646 2002-10-13 Akim Demaille <akim@epita.fr>
647
648 GLR parsers sometimes raise parse errors instead of performing the
649 default reduction.
650 Reported by Charles-Henry de Boysson.
651
652 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
653 check the length of the traces when %glr.
654 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
655 GLR's traces.
656 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
657 Test GLR parsers.
658 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
659 (yyltype): Remove the yy prefix from the member names.
660 (yytable): Complete its comment.
661 (yygetLRActions): Map error action number from YYTABLE from
662 YYTABLE_NINF to 0.
663 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
664 (which was a bug: it should have been YYTABEL_NINF, and yet it was
665 not satisfying as we could compare an YYACTION computed from
666 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
667 only value for error actions.
668 (yyreportParseError): In verbose parse error messages, don't issue
669 `error' in the list of expected tokens.
670 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
671 next action to perform to match glr.c's decoding.
672 (yytable): Complete its comment.
673
674 2002-10-13 Paul Eggert <eggert@twinsun.com>
675
676 Fix problem reported by Henrik Grubbstroem in
677 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001670.html>:
678 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
679 because the Bison parser reads the second action before reducing
680 the first one.
681 * src/scan-gram.l (rule_length): New static var.
682 Use it to keep track of the rule length in the scanner, since
683 we can't expect the parser to be in lock-step sync with the scanner.
684 (handle_action_dollar, handle_action_at): Use this var.
685 * tests/actions.at (Exotic Dollars): Test for the problem.
686
687 2002-10-12 Paul Eggert <eggert@twinsun.com>
688
689 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
690 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
691 Include <sys/time.h> when checking for clock_t and struct tms.
692 Use same include order as source.
693 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
694 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001674.html>.
695
696 * lib/timevar.c: Update copyright date and clarify comments.
697 (get_time) [IN_GCC]: Keep the GCC version for reference.
698
699 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
700 GCC version as of today, then merge Bison's changes.
701 Change "GCC" to "Bison" in copyright notice. timevar.def's
702 author is Akim, so change that too.
703
704 * src/reader.c (grammar_current_rule_check):
705 Don't worry about the default action if $$ is untyped.
706 Prevents bogus warnings reported by Jim Gifford in
707 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001673.html>.
708
709 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
710 * data/glr.c, data/lalr1.cc, data/yacc.c:
711 Output token definitions before the first part of user declarations.
712 Fixes compatibility problem reported by Jim Gifford for kbd in
713 <http://mail.gnu.org/pipermail/bug-bison/2002-October/001672.html>.
714
715 2002-10-11 Paul Eggert <eggert@twinsun.com>
716
717 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
718 (yyparse): here. This undoes some of the 2002-07-25 change.
719 Compatibility problem reported by Ralf S. Engelschall with
720 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
721
722 2002-10-11 Akim Demaille <akim@epita.fr>
723
724 * tests/regression.at Characters Escapes): New.
725 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
726 characters.
727 Reported by Jan Nieuwenhuizen.
728
729 2002-10-11 Akim Demaille <akim@epita.fr>
730
731 * po/id.po: New.
732
733 2002-10-10 Paul Eggert <eggert@twinsun.com>
734
735 Portability fixes for bitsets; this also avoids several GCC
736 warnings.
737
738 * lib/abitset.c: Include <stddef.h>, for offsetof.
739 * lib/lbitset.c: Likewise.
740
741 * lib/abitset.c (abitset_bytes): Return a size that is aligned
742 properly for vectors of objects. Do not assume that adding a
743 header size to a multiple of a word size yields a value that is
744 properly aligned for the whole union.
745 * lib/bitsetv.c (bitsetv_alloc): Likewise.
746
747 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
748 unique names for structures.
749 * lib/ebitset.c (ebitset_bytes): Likewise.
750 * lib/lbitset.c (lbitset_bytes): Likewise.
751
752 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
753 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
754 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
755 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
756 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
757 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
758 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
759 to improve the type-checking that GCC can do.
760 * lib/bitset.c (bitset_op4_cmp): Likewise.
761 * lib/bitset_stats.c (bitset_stats_count,
762 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
763 bitset_stats_copy, bitset_stats_disjoint_p,
764 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
765 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
766 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
767 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
768 bitset_stats_and_or_cmp, bitset_stats_andn_or,
769 bitset_stats_andn_or_cmp, bitset_stats_or_and,
770 bitset_stats_or_and_cmp): Likewise.
771 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
772 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
773 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
774 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
775
776 * lib/abitset.h: Include bitset.h, not bbitset.h.
777 * lib/ebitset.h: Likewise.
778 * lib/lbitset.h: Likewise.
779
780 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
781 All instances of parameters of type enum bitset_opts are now of
782 type enum_bitset_opts, to conform to the C Standard, and similarly
783 for enum_bitset_type.
784 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
785 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
786
787 Do not use "struct bitset_struct" to mean different things in
788 different modules. Not only is this confusing, it violates
789 the C Standard, which requires that structure types in different
790 modules must be compatible if one is to be passed to the other.
791 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
792 All instances of "struct bitset_struct *" replaced with "bitset".
793 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
794 (union bitset_union, struct abitset_struct, struct ebitset_struct,
795 struct lbitset_struct, struct bitset_stats_struct): New types.
796 All uses of struct bitset_struct changed to union bitset_union,
797 etc.
798 * lib/abitset.c (struct abitset_struct, abitset,
799 struct bitset_struct): Remove.
800 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
801 struct bitset_struct): Remove.
802 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
803 bitset_struct): Remove.
804 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
805 Likewise.
806
807 Do not call a function of type T using a call that assumes the
808 function is of a different type U. Standard C requires that a
809 function must be called with a type that is compatible with its
810 definition.
811 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
812 New decls.
813 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
814 New functions.
815 * lib/ebitset.c (PFV): Remove.
816 * lib/lbitset.c (PFV): Likewise.
817 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
818 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
819 decls.
820 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
821 (ebitset_vtable): Use them.
822 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
823 lbitset_xor): New functions.
824 (lbitset_vtable): Use them.
825
826 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
827 Declare.
828
829 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
830 GCC warning.
831 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
832 Use offsetof, for simplicity.
833
834 2002-10-06 Paul Eggert <eggert@twinsun.com>
835
836 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
837 the same width as int. This reapplies a hunk of the 2002-08-12 patch
838 <http://mail.gnu.org/pipermail/bison-patches/2002-August/001111.html>,
839 which was inadvertently undone by the 2002-09-30 patch.
840 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
841 the same width as int.
842
843 2002-10-04 Paul Eggert <eggert@twinsun.com>
844
845 Version 1.50.
846
847 * configure.ac (AC_INIT), NEWS: Increment version number.
848
849 * doc/bison.texinfo: Minor spelling, grammar, and white space
850 fixes.
851 (Symbols): Mention that any negative value returned from yylex
852 signifies end-of-input. Warn about negative chars. Mention
853 the portable Standard C character set.
854
855 The GNU coding standard says CFLAGS and YFLAGS are reserved
856 for the installer to set.
857 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
858 * src/Makefile.am (AM_CFLAGS): Likewise.
859 (AM_YFLAGS): Renamed from YFLAGS.
860
861 Fix some MAX and MIN problems.
862 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
863 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
864 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
865 * src/reader.c (reader): Use it.
866
867 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
868 POSIX 1003.1-2001 has removed fgrep.
869
870 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
871
872 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
873 interpreted as signed.
874 * lib/ebitset.c (ebitset_list): Fix bug.
875
876 2002-10-01 Paul Eggert <eggert@twinsun.com>
877
878 More fixes for 64-bit hosts and large bitsets.
879
880 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
881 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
882 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
883 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
884 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
885 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
886 bitset_count_): Likewise.
887 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
888 bitset_first, bitset_last): Likewise.
889 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
890 bitset_stats_list_reverse, bitset_stats_size,
891 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
892 Likewise.
893 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
894 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
895 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
896 bitsetv_reflexive_transitive_closure): Likewise.
897 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
898 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
899 Likewise.
900 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
901 Likewise.
902
903 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
904 Use size_t, not unsigned int, to count bytes.
905 * lib/abitset.h (abitset_bytes): Likewise.
906 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
907 Likewise.
908 * lib/bitset.h (bitset_bytes): Likewise.
909 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
910 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
911 * lib/bitsetv.c (bitsetv_alloc): Likewise.
912 * lib/ebitset.c (ebitset_bytes): Likewise.
913 * lib/ebitset.h (ebitset_bytes): Likewise.
914 * lib/lbitset.c (lbitset_bytes): Likewise.
915 * lib/lbitset.h (lbitset_bytes): Likewise.
916
917 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
918 abitset_subset_p, abitset_disjoint_p, abitset_and,
919 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
920 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
921 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
922 abitset_or_and, abitset_or_and_cmp):
923 Use bitset_windex instead of unsigned int.
924 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
925 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
926 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
927 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
928 Likewise.
929 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
930
931 * lib/bitset.c (bitset_print):
932 Use proper printf formats for widths of integer types.
933 * lib/bitset_stats.c (bitset_percent_histogram_print,
934 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
935 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
936 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
937 * lib/lbitset.c (lbitset_bytes): Likewise.
938
939 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
940 BITSET_SIZE_MAX): New macros.
941 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
942 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
943 to BITSET_WINDEX_MAX.
944
945 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
946 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
947 since we now return the bitset_bindex type (not int).
948
949 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
950 when computing sizes.
951 * lib/ebitset.c (ebitset_elts_grow): Likewise.
952
953 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
954 and avoid cast to unsigned.
955
956 2002-09-30 Akim Demaille <akim@epita.fr>
957
958 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
959 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
960 Updates from Michael Hayes.
961
962 2002-09-30 Art Haas <ahaas@neosoft.com>
963
964 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
965 invocations.
966 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
967 defined.
968
969 2002-09-27 Akim Demaille <akim@epita.fr>
970
971 Version 1.49c.
972
973 2002-09-27 Akim Demaille <akim@epita.fr>
974
975 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
976 (Because of AC_LIBSOURCE).
977
978 2002-09-27 Akim Demaille <akim@epita.fr>
979
980 Playing with Autoscan.
981
982 * configure.ac: Remove the old LIBOBJ tweaks.
983 (AC_REPLACE_FUNCS): Add strrchr and strtol.
984 * lib/strrchr.c: New.
985 * lib/strtol.c: New, from the Coreutils 4.5.1.
986
987 2002-09-27 Akim Demaille <akim@epita.fr>
988
989 Playing with Autoscan.
990
991 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
992 * lib/Makefile.am (libbison_a_SOURCES): No longer include
993 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
994 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
995 Coreutils 4.5.1.
996
997 2002-09-24 Akim Demaille <akim@epita.fr>
998
999 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
1000 (Frequently Asked Questions, Parser Stack Overflow): New.
1001
1002 2002-09-13 Akim Demaille <akim@epita.fr>
1003
1004 Playing with autoscan.
1005
1006 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
1007 * src/files.c (skeleton_find): Remove, unused.
1008 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
1009 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
1010
1011 2002-09-13 Akim Demaille <akim@epita.fr>
1012
1013 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
1014 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
1015
1016 2002-09-13 Akim Demaille <akim@epita.fr>
1017
1018 * configure.ac: Require 2.54.
1019 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
1020 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
1021 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
1022 Remove, provided by Autoconf macros.
1023
1024 2002-09-12 Akim Demaille <akim@epita.fr>
1025
1026 * m4/prereq.m4: Update, from Coreutils 4.5.1.
1027
1028 2002-09-12 Akim Demaille <akim@epita.fr>
1029
1030 * m4/prereq.m4: Update, from Fileutils 4.1.5.
1031 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
1032 Reported by Martin Mokrejs.
1033
1034 2002-09-10 Akim Demaille <akim@epita.fr>
1035
1036 * src/parse-gram.y: Associate a human readable string to each
1037 token type.
1038 * tests/regression.at (Invalid inputs): Adjust.
1039
1040 2002-09-10 Gary V. Vaughan <gary@gnu.org>
1041
1042 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
1043 with an Autoconf-2.5x style configure.ac.
1044
1045 2002-09-06 Paul Eggert <eggert@twinsun.com>
1046
1047 * doc/bison.texinfo (Conditions): Make explicit that the GPL
1048 exception applies only to yacc.c. This is a modification of a
1049 patch originally suggested by Akim Demaille.
1050
1051 2002-09-06 Akim Demaille <akim@epita.fr>
1052
1053 * data/c.m4 (b4_copyright): Move the GPL exception comment from
1054 here to...
1055 * data/yacc.c: here.
1056
1057 * data/lalr1.cc (struct yyltype): Don't define it, since we use
1058 LocationType.
1059 (b4_ltype): Default to yy::Location from location.hh.
1060
1061 2002-09-04 Jim Meyering <jim@meyering.net>
1062
1063 * data/yacc.c: Guard the declaration of yytoknum also with
1064 `#ifdef YYPRINT', so it is declared only when used.
1065
1066 2002-09-04 Akim Demaille <akim@epita.fr>
1067
1068 * configure.in: Rename as...
1069 * configure.ac: this.
1070 Bump to 1.49c.
1071
1072 2002-09-04 Akim Demaille <akim@epita.fr>
1073
1074 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
1075 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
1076 translate maintainer only messages.
1077
1078 2002-08-12 Paul Eggert <eggert@twinsun.com>
1079
1080 Version 1.49b.
1081
1082 * Makefile.am (SUBDIRS): Remove intl.
1083 (DISTCLEANFILES): Remove.
1084 * NEWS: Mention that GNU M4 is now required. Clarify what is
1085 meant by "larger grammars". Mention the pt_BR translation.
1086 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
1087 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
1088 Bump version from 0.11.2 to 0.11.5.
1089 (BISON_PREREQ_STAGE): Remove.
1090 (AM_GNU_GETTEXT): Use external gettext.
1091 (AC_OUTPUT): Remove intl/Makefile.
1092
1093 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
1094
1095 * data/glr.c: Include string.h, for strlen.
1096 (yyreportParseError): Use size_t for yysize.
1097 (yy_yypstack): No longer nested inside yypstates, as nested
1098 functions are not portable. Do not assume size_t is the
1099 same width as int.
1100 (yypstates): Do not assume that ptrdiff_t is the same width
1101 as int, and similarly for yyposn and YYINDEX.
1102
1103 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
1104
1105 * lib/Makefile.am (INCLUDES): Do not include from the intl
1106 directory, which has been removed.
1107 * src/Makefile.am (INCLUDES): Likewise.
1108
1109 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
1110 (bitsets_sources, additional_bitsets_sources, timevars_sources):
1111 New vars.
1112
1113 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
1114 * tests/Makefile.am (EXTRA_DIST): Likewise.
1115
1116 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
1117 Do not assume that bitset_windex is the same width as unsigned.
1118
1119 * lib/abitset.c (abitset_unused_clear): Do not assume that
1120 bitset_word is the same width as int.
1121 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
1122 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
1123 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
1124 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
1125 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
1126
1127 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
1128 portability to one's complement hosts!).
1129 * lib/ebitset.c (ebitset_op1): Likewise.
1130 * lib/lbitset.c (lbitset_op1): Likewise.
1131
1132 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
1133 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
1134 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
1135 Sync with fileutils.
1136 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
1137 lib/gettext.h: Sync with diffutils.
1138
1139 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
1140 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
1141
1142 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
1143 PROTOTYPES to check for prototypes, and "defined __STDC__" to
1144 check for void *.
1145
1146 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
1147 size_t; the old version tried to do this but casted improperly.
1148 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
1149 (bitset_test): Now returns int, not unsigned long.
1150
1151 * lib/bitset_stats.c: Include "gettext.h".
1152 (_): New macro.
1153 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
1154 name locals "index", as it generates unnecessary warnings on some
1155 hosts that have an "index" function.
1156
1157 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
1158 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
1159 they need translation.
1160 * src/LR0.c (state_list_append, new_itemsets, get_state,
1161 append_states, generate_states): Likewise.
1162 * src/assoc.c (assoc_to_string): Likewise.
1163 * src/closure.c (print_closure, set_firsts, closure): Likewise.
1164 * src/gram.c (grammar_dump): Likewise.
1165 * src/injections.c (injections_compute): Likewise.
1166 * src/lalr.c (lookaheads_print): Likewise.
1167 * src/relation.c (relation_transpose): Likewise.
1168 * src/scan-gram.l: Likewise.
1169 * src/tables.c (table_grow, pack_vector): Likewise.
1170
1171 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
1172 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
1173 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
1174 * m4/mbstate_t.m4: Sync with fileutils.
1175 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
1176
1177 * po/LINGUAS: Add pt_BR.
1178 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
1179 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
1180 lib/timevar.c.
1181 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
1182 manual recommends.
1183 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
1184
1185 * src/complain.c (strerror_r): Remove decl; not needed.
1186 (strerror): Use same pattern as ../lib/error.c.
1187
1188 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
1189
1190 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
1191
1192 * src/main.c (main): Cast result of bindtextdomain and textdomain
1193 to void, to avoid a GCC warning when --disable-nls is in effect.
1194
1195 * src/scan-gram.l: Use strings rather than escapes when possible,
1196 to minimize the number of warnings from xgettext.
1197 (handle_action_dollar, handle_action_at): Don't use isdigit,
1198 as it mishandles negative chars and it may not work as expected
1199 outside the C locale.
1200
1201 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
1202 this is a GCC extension and is not portable to other compilers.
1203
1204 * src/system.h (alloca): Use same pattern as ../lib/error.c.
1205 Do not include <ctype.h>; no longer needed.
1206 Do not include <malloc.h>; no longer needed (and generates
1207 warnings on OpenBSD 3.0).
1208
1209 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
1210 it's not portable.
1211
1212 * tests/regression.at: Do not use 'cc -c input.c -o input';
1213 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
1214
1215 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
1216 exit status as failure, not just exit status 1. Sun C exits
1217 with status 2 sometimes.
1218
1219 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
1220 Use it for the two large tests.
1221
1222 2002-08-02 Akim Demaille <akim@epita.fr>
1223
1224 * src/conflicts.c (conflicts_output): Don't output rules never
1225 reduced here, since anyway that computation doesn't work.
1226 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
1227 (rule_useless_p, rule_never_reduced_p): New.
1228 (grammar_rules_partial_print): Use a filter instead of a range.
1229 Display the title only if needed.
1230 (grammar_rules_print): Adjust.
1231 (grammar_rules_never_reduced_report): New.
1232 * src/tables.c (action_row): Move the computation of rules never
1233 reduced to...
1234 (token_actions): here.
1235 * src/main.c (main): Make the parser before making the report, so
1236 that rules never reduced are computed.
1237 Call grammar_rules_never_reduced_report.
1238 * src/print.c (print_results): Report rules never reduced.
1239 * tests/conflicts.at, tests/reduce.at: Adjust.
1240
1241 2002-08-01 Akim Demaille <akim@epita.fr>
1242
1243 Instead of attaching lookaheads and duplicating the rules being
1244 reduced by a state, attach the lookaheads to the reductions.
1245
1246 * src/state.h (state_t): Remove the `lookaheads',
1247 `lookaheads_rule' member.
1248 (reductions_t): Add a `lookaheads' member.
1249 Use a regular array for the `rules'.
1250 * src/state.c (reductions_new): Initialize the lookaheads member
1251 to 0.
1252 (state_rule_lookaheads_print): Adjust.
1253 * src/state.h, src/state.c (state_reductions_find): New.
1254 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
1255 (count_rr_conflicts): Adjust.
1256 * src/lalr.c (LArule): Remove.
1257 (add_lookback_edge): Adjust.
1258 (state_lookaheads_count): New.
1259 (states_lookaheads_initialize): Merge into...
1260 (initialize_LA): this.
1261 (lalr_free): Adjust.
1262 * src/main.c (main): Don't free nullable and derives too early: it
1263 is used by --verbose.
1264 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
1265
1266 2002-08-01 Akim Demaille <akim@epita.fr>
1267
1268 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
1269 `rule_number_t**'.
1270 (set_derives, free_derives): Rename as...
1271 (derives_compute, derives_free): this.
1272 Adjust all dependencies.
1273 * src/nullable.c (set_nullable, free_nullable): Rename as...
1274 (nullable_compute, nullable_free): these.
1275 (rule_list_t): Store rule_t *, not rule_number_t.
1276 * src/state.c (state_rule_lookaheads_print): Directly compare rule
1277 pointers, instead of their numbers.
1278 * src/main.c (main): Call nullable_free, and derives_free earlier,
1279 as they were lo longer used.
1280
1281 2002-08-01 Akim Demaille <akim@epita.fr>
1282
1283 * lib/timevar.c (get_time): Include children time.
1284 * src/lalr.h (LA, LArule): Don't export them: used with the
1285 state_t.
1286 * src/lalr.c (LA, LArule): Static.
1287 * src/lalr.h, src/lalr.c (lalr_free): New.
1288 * src/main.c (main): Call it.
1289 * src/tables.c (pack_vector): Check whether loc is >= to the
1290 table_size, not >.
1291 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
1292 (tables_generate): do it, since that's also it which allocates
1293 them.
1294 Don't free LA and LArule, main does.
1295
1296 2002-07-31 Akim Demaille <akim@epita.fr>
1297
1298 Separate parser tables computation and output.
1299
1300 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
1301 (conflict_list, conflict_list_cnt, table, check, table_ninf)
1302 (yydefgoto, yydefact, high): Move to...
1303 * src/tables.h, src/tables.c: here.
1304 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
1305 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
1306 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
1307 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
1308 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
1309 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
1310 (action_row, save_row, token_actions, save_column, default_goto)
1311 (goto_actions, sort_actions, matching_state, pack_vector)
1312 (table_ninf_remap, pack_table, prepare_actions): Move to...
1313 * src/tables.c: here.
1314 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
1315 * src/output.c (token_actions, output_base, output_conflicts)
1316 (output_check): Merge into...
1317 (prepare_actions): this.
1318 (actions_output): Rename as...
1319 (user_actions_output): this.
1320 * src/main.c (main): Call tables_generate and tables_free.
1321
1322 2002-07-31 Akim Demaille <akim@epita.fr>
1323
1324 Steal GCC's --time-report support.
1325
1326 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
1327 stolen/adjusted from GCC.
1328 * m4/stage.m4: Remove time related checks.
1329 * m4/timevar.m4: New.
1330 * configure.in: Adjust.
1331 * src/system.h: Adjust to using timevar.h.
1332 * src/getargs.h, src/getargs.c: Support trace_time for
1333 --trace=time.
1334 * src/main.c (stage): Remove.
1335 (main): Replace `stage' invocations with timevar calls.
1336 * src/output.c: Insert pertinent timevar calls.
1337
1338 2002-07-31 Akim Demaille <akim@epita.fr>
1339
1340 Let --trace have arguments.
1341
1342 * src/getargs.h (enum trace_e): New.
1343 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
1344 (long_options, short_options): --trace/-T takes an optional
1345 argument.
1346 Change all the uses of trace_flag to reflect the new flags.
1347 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
1348
1349 Strengthen `stage' portability.
1350
1351 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
1352 * configure.in: Use it.
1353 Don't check for malloc.h and sys/times.h.
1354 * src/system.h: Include them when appropriate.
1355 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
1356 times and struct tms are available.
1357
1358 2002-07-30 Akim Demaille <akim@epita.fr>
1359
1360 In verbose parse error message, don't report `error' as an
1361 expected token.
1362 * tests/actions.at (Printers and Destructors): Adjust.
1363 * tests/calc.at (Calculator $1): Adjust.
1364 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
1365 error message, do not report the parser accepts the error token in
1366 that state.
1367
1368 2002-07-30 Akim Demaille <akim@epita.fr>
1369
1370 Normalize conflict related messages.
1371
1372 * src/complain.h, src/complain.c (warn, complain): New.
1373 * src/conflicts.c (conflicts_print): Use them.
1374 (conflict_report_yacc): New, extracted from...
1375 (conflicts_print): here.
1376 * tests/conflicts.at, tests/existing.at: Adjust.
1377
1378 2002-07-30 Akim Demaille <akim@epita.fr>
1379
1380 Report rules which are never reduced by the parser: those hidden
1381 by conflicts.
1382
1383 * src/LR0.c (save_reductions): Don't make the final state too
1384 different: save its reduction (accept) instead of having a state
1385 without any action (no shift or goto, no reduce).
1386 Note: the final state is now a ``regular'' state, i.e., the
1387 parsers now contain `reduce 0' as default reduction.
1388 Nevertheless, since they decide to `accept' when yystate =
1389 final_state, they still will not reduce rule 0.
1390 * src/print.c (print_actions, print_reduction): Adjust.
1391 * src/output.c (action_row): Track reduced rules.
1392 (token_actions): Report rules never reduced.
1393 * tests/conflicts.at, tests/regression.at: Adjust.
1394
1395 2002-07-30 Akim Demaille <akim@epita.fr>
1396
1397 `stage' was accidently included in a previous patch.
1398 Initiate its autoconfiscation.
1399
1400 * configure.in: Look for malloc.h and sys/times.h.
1401 * src/main.c (stage): Adjust.
1402 Report only when trace_flag.
1403
1404 2002-07-29 Akim Demaille <akim@epita.fr>
1405
1406 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
1407 state_number_t.
1408 (errs_t): symbol_t*, not symbol_number_t.
1409 (reductions_t): rule_t*, not rule_number_t.
1410 (FOR_EACH_SHIFT): New.
1411 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
1412 * src/print.c, src/print_graph.c: Adjust.
1413
1414 2002-07-29 Akim Demaille <akim@epita.fr>
1415
1416 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
1417
1418 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
1419 (endtoken, accept): these.
1420 * src/reader.c (reader): Set endtoken's default tag to "$end".
1421 Set undeftoken's tag to "$undefined" instead of "$undefined.".
1422 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
1423 Adjust.
1424
1425 2002-07-29 Akim Demaille <akim@epita.fr>
1426
1427 * src/reduce.c (reduce_grammar): When the language is empty,
1428 complain about the start symbol, not the axiom.
1429 Use its location.
1430 * tests/reduce.at (Empty Language): New.
1431
1432 2002-07-26 Akim Demaille <akim@epita.fr>
1433
1434 * src/reader.h, src/reader.c (gram_error): ... can't get
1435 yycontrol without making too strong assumptions on the parser
1436 itself.
1437 * src/output.c (prepare_tokens): Use the real 0th value of
1438 token_translations instead of `0'.
1439 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
1440 visible here.
1441 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
1442 for the time being: %locations ought to provide it to yyerror.
1443
1444 2002-07-25 Akim Demaille <akim@epita.fr>
1445
1446 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
1447 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
1448 * tests/regression.at (Web2c Actions): Adjust.
1449
1450 2002-07-25 Akim Demaille <akim@epita.fr>
1451
1452 Stop storing rules from 1 to nrules + 1.
1453
1454 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
1455 * src/nullable.c, src/output.c, src/print.c, src/reader.c
1456 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
1457 Iterate from 0 to nrules.
1458 Use rule_number_as_item_number and item_number_as_rule_number.
1459 Adjust to `derive' now containing possibly 0.
1460 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
1461 Handle the `- 1' part in rule numbers from/to item numbers.
1462 * src/conflicts.c (log_resolution): Fix the message which reversed
1463 shift and reduce.
1464 * src/output.c (action_row): Initialize default_rule to -1.
1465 (token_actions): Adjust.
1466 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
1467 expected output.
1468 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
1469
1470 2002-07-25 Akim Demaille <akim@epita.fr>
1471
1472 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
1473 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
1474 (b4_c_knr_arg_decl): New.
1475 * data/yacc.c: Use it to define yysymprint, yydestruct, and
1476 yyreport_parse_error.
1477
1478 2002-07-25 Akim Demaille <akim@epita.fr>
1479
1480 * data/yacc.c (yyreport_parse_error): New, extracted from...
1481 (yyparse): here.
1482 (yydestruct, yysymprint): Move above yyparse.
1483 Be K&R compliant.
1484
1485 2002-07-25 Akim Demaille <akim@epita.fr>
1486
1487 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
1488 replace...
1489 (b4_sint_type, b4_uint_type): these.
1490 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
1491 * tests/regression.at (Web2c Actions): Adjust.
1492
1493 2002-07-25 Akim Demaille <akim@epita.fr>
1494
1495 * src/gram.h (TIEM_NUMBER_MAX): New.
1496 (item_number_of_rule_number, rule_number_of_item_number): Rename
1497 as...
1498 (rule_number_as_item_number, item_number_as_rule_number): these.
1499 Adjust dependencies.
1500 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
1501 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
1502 (symbol_number_to_vector_number): New.
1503 (order): Of vector_number_t* type.
1504 (base_t, BASE_MAX, BASE_MIN): New.
1505 (froms, tos, width, pos, check): Of base_t type.
1506 (action_number_t, ACTION_MIN, ACTION_MAX): New.
1507 (actrow): Of action_number_t type.
1508 (conflrow): Of unsigned int type.
1509 (table_ninf, base_ninf): New.
1510 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
1511 (muscle_insert_int_table, muscle_insert_base_table)
1512 (muscle_insert_rule_number_table): New.
1513 (prepare_tokens): Output `toknum' as int_table.
1514 (action_row): Returns a rule_number_t.
1515 Use ACTION_MIN, not SHRT_MIN.
1516 (token_actions): yydefact is rule_number_t*.
1517 (table_ninf_remap): New.
1518 (pack_table): Use it for `base' and `table'.
1519 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
1520 replaced with...
1521 (YYPACT_NINF, YYTABLE_NINF): these.
1522 (yypact, yytable): Compute their types instead of hard-coded
1523 `short'.
1524 * tests/regression.at (Web2c Actions): Adjust.
1525
1526 2002-07-19 Akim Demaille <akim@epita.fr>
1527
1528 * src/scan-gram.l (id): Can start with an underscore.
1529
1530 2002-07-16 Akim Demaille <akim@epita.fr>
1531
1532 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
1533 Adjust all former `associativity' dependencies.
1534 * src/symtab.c (symbol_new): Default associativity is `undef', not
1535 `right'.
1536 (symbol_check_alias_consistence): Adjust.
1537
1538 2002-07-09 Akim Demaille <akim@epita.fr>
1539
1540 * doc/bison.texinfo: Properly set the ``header'' part.
1541 Use @dircategory ``GNU programming tools'' as per Texinfo's
1542 documentation.
1543 Use @copying.
1544
1545 2002-07-09 Akim Demaille <akim@epita.fr>
1546
1547 * lib/quotearg.h: Protect against multiple inclusions.
1548 * src/location.h (location_t): Add a `file' member.
1549 (LOCATION_RESET, LOCATION_PRINT): Adjust.
1550 * src/complain.c (warn_at, complain_at, fatal_at): Drop
1551 `error_one_per_line' support.
1552
1553 2002-07-09 Akim Demaille <akim@epita.fr>
1554
1555 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
1556 * src/reader.c (lineno): Remove.
1557 Adjust all dependencies.
1558 (get_merge_function): Take a location and use complain_at.
1559 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
1560 * tests/regression.at (Invalid inputs, Mixing %token styles):
1561 Adjust.
1562
1563 2002-07-09 Akim Demaille <akim@epita.fr>
1564
1565 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
1566 recovery rule, and forbid extensions when --yacc.
1567 (gram_error): Use complain_at.
1568 * src/reader.c (reader): Exit if there were parse errors.
1569
1570 2002-07-09 Akim Demaille <akim@epita.fr>
1571
1572 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
1573 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
1574 Reported by R Blake <blakers@mac.com>.
1575
1576 2002-07-09 Akim Demaille <akim@epita.fr>
1577
1578 * data/yacc.c: Output the copyright notive in the header.
1579
1580 2002-07-03 Akim Demaille <akim@epita.fr>
1581
1582 * src/output.c (froms, tos): Are state_number_t.
1583 (save_column): sp, sp1, and sp2 are state_number_t.
1584 (prepare): Rename `final' as `final_state_number', `nnts' as
1585 `nterms_number', `nrules' as `rules_number', `nstates' as
1586 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
1587 unused.
1588 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
1589 * data/lalr1.cc (nsym_): Remove, unused.
1590
1591 2002-07-03 Akim Demaille <akim@epita.fr>
1592
1593 * src/lalr.h, src/lalr.c (goto_number_t): New.
1594 * src/lalr.c (goto_list_t): New.
1595 Propagate them.
1596 * src/nullable.c (rule_list_t): New.
1597 Propagate.
1598 * src/types.h: Remove.
1599
1600 2002-07-03 Akim Demaille <akim@epita.fr>
1601
1602 * src/closure.c (print_fderives): Use rule_rhs_print.
1603 * src/derives.c (print_derives): Use rule_rhs_print.
1604 (rule_list_t): New, replaces `shorts'.
1605 (set_derives): Add comments.
1606 * tests/sets.at (Nullable, Firsts): Adjust.
1607
1608 2002-07-03 Akim Demaille <akim@epita.fr>
1609
1610 * src/output.c (prepare_actions): Free `tally' and `width'.
1611 (prepare_actions): Allocate and free `order'.
1612 * src/symtab.c (symbols_free): Free `symbols'.
1613 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
1614 * src/output.c (m4_invoke): Move to...
1615 * src/scan-skel.l: here.
1616 (<<EOF>>): Close yyout, and free its name.
1617
1618 2002-07-03 Akim Demaille <akim@epita.fr>
1619
1620 Fix some memory leaks, and fix a bug: state 0 was examined twice.
1621
1622 * src/LR0.c (new_state): Merge into...
1623 (state_list_append): this.
1624 (new_states): Merge into...
1625 (generate_states): here.
1626 (set_states): Don't ensure a proper `errs' state member here, do it...
1627 * src/conflicts.c (conflicts_solve): here.
1628 * src/state.h, src/state.c: Comment changes.
1629 (state_t): Rename member `shifts' as `transitions'.
1630 Adjust all dependencies.
1631 (errs_new): For consistency, also take the values as argument.
1632 (errs_dup): Remove.
1633 (state_errs_set): New.
1634 (state_reductions_set, state_transitions_set): Assert that no
1635 previous value was assigned.
1636 (state_free): New.
1637 (states_free): Use it.
1638 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
1639 temporary storage: use `errs' and `nerrs' as elsewhere.
1640 (set_conflicts): Allocate and free this `errs'.
1641
1642 2002-07-02 Akim Demaille <akim@epita.fr>
1643
1644 * lib/libiberty.h: New.
1645 * lib: Update the bitset implementation from upstream.
1646 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
1647 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
1648 * src/main.c: Adjust bitset stats calls.
1649
1650 2002-07-01 Paul Eggert <eggert@twinsun.com>
1651
1652 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
1653 char, so that negative chars don't collide with $.
1654
1655 2002-06-30 Akim Demaille <akim@epita.fr>
1656
1657 Have the GLR tests be `warning' checked, and fix the warnings.
1658
1659 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
1660 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
1661 (yyremoveDeletes): `yyi' and `yyj' are size_t.
1662 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
1663 (yyaddDeferredAction): static.
1664 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
1665 (yyreportParseError): yyprefix is const.
1666 yytokenp is used only when verbose.
1667 (yy__GNUC__): Replace with __GNUC__.
1668 (yypdumpstack): yyi is size_t.
1669 (yypreference): Un-yy local variables and arguments, to avoid
1670 clashes with `yyr1'. Anyway, we are not in the user name space.
1671 (yytname_size): be an int, as is compared with ints.
1672 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
1673 Use them.
1674 * tests/cxx-gram.at: Use quotation to protect $1.
1675 Use AT_COMPILE to enable warnings hunts.
1676 Prototype yylex and yyerror.
1677 `Use' argc.
1678 Include `string.h', not `strings.h'.
1679 Produce and prototype stmtMerge only when used.
1680 yylex takes a location.
1681
1682 2002-06-30 Akim Demaille <akim@epita.fr>
1683
1684 We spend a lot of time in quotearg, in particular when --verbose.
1685
1686 * src/symtab.c (symbol_get): Store a quoted version of the key.
1687 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
1688 Adjust all callers.
1689
1690 2002-06-30 Akim Demaille <akim@epita.fr>
1691
1692 * src/state.h (reductions_t): Rename member `nreds' as num.
1693 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
1694 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
1695
1696 2002-06-30 Akim Demaille <akim@epita.fr>
1697
1698 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
1699 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
1700 (shifts_to): Rename as...
1701 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
1702 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
1703 (TRANSITION_IS_DISABLED, transitions_to): these.
1704
1705 2002-06-30 Akim Demaille <akim@epita.fr>
1706
1707 * src/print.c (print_shifts, print_gotos): Merge into...
1708 (print_transitions): this.
1709 (print_transitions, print_errs, print_reductions): Align the
1710 lookaheads columns.
1711 (print_core, print_transitions, print_errs, print_state,
1712 print_grammar): Output empty lines separator before, not after.
1713 (state_default_rule_compute): Rename as...
1714 (state_default_rule): this.
1715 * tests/conflicts.at (Defaulted Conflicted Reduction),
1716 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
1717 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
1718
1719 2002-06-30 Akim Demaille <akim@epita.fr>
1720
1721 Display items as we display rules.
1722
1723 * src/gram.h, src/gram.c (rule_lhs_print): New.
1724 * src/gram.c (grammar_rules_partial_print): Use it.
1725 * src/print.c (print_core): Likewise.
1726 * tests/conflicts.at (Defaulted Conflicted Reduction),
1727 (Unresolved SR Conflicts): Adjust.
1728 (Unresolved SR Conflicts): Adjust and rename as...
1729 (Resolved SR Conflicts): this, as was meant.
1730 * tests/regression.at (Web2c Report): Adjust.
1731
1732 2002-06-30 Akim Demaille <akim@epita.fr>
1733
1734 * src/print.c (state_default_rule_compute): New, extracted from...
1735 (print_reductions): here.
1736 Pessimize, but clarify the code.
1737 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
1738
1739 2002-06-30 Akim Demaille <akim@epita.fr>
1740
1741 * src/output.c (action_row): Let default_rule be always a rule
1742 number.
1743
1744 2002-06-30 Akim Demaille <akim@epita.fr>
1745
1746 * src/closure.c (print_firsts, print_fderives, closure):
1747 Use BITSET_EXECUTE.
1748 * src/lalr.c (lookaheads_print): Likewise.
1749 * src/state.c (state_rule_lookaheads_print): Likewise.
1750 * src/print_graph.c (print_core): Likewise.
1751 * src/print.c (print_reductions): Likewise.
1752 * src/output.c (action_row): Likewise.
1753 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
1754
1755 2002-06-30 Akim Demaille <akim@epita.fr>
1756
1757 * src/print_graph.c: Use report_flag.
1758
1759 2002-06-30 Akim Demaille <akim@epita.fr>
1760
1761 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
1762 to...
1763 * src/relation.h, src/relation.c (traverse, relation_digraph)
1764 (relation_print, relation_transpose): New.
1765
1766 2002-06-30 Akim Demaille <akim@epita.fr>
1767
1768 * src/state.h, src/state.c (shifts_to): New.
1769 * src/lalr.c (build_relations): Use it.
1770
1771 2002-06-30 Akim Demaille <akim@epita.fr>
1772
1773 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
1774 (item_number_of_rule_number, rule_number_of_item_number): New.
1775 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
1776 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
1777 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
1778 Propagate their use.
1779 Much remains to be done, in particular wrt `shorts' from types.h.
1780
1781 2002-06-30 Akim Demaille <akim@epita.fr>
1782
1783 * src/symtab.c (symbol_new): Initialize the `printer' member.
1784
1785 2002-06-30 Akim Demaille <akim@epita.fr>
1786
1787 * src/LR0.c (save_reductions): Remove, replaced by...
1788 * src/state.h, src/state.c (state_reductions_set): New.
1789 (reductions, errs): Rename as...
1790 (reductions_t, errs_t): these.
1791 Adjust all dependencies.
1792
1793 2002-06-30 Akim Demaille <akim@epita.fr>
1794
1795 * src/LR0.c (state_list_t, state_list_append): New.
1796 (first_state, last_state): Now symbol_list_t.
1797 (this_state): Remove.
1798 (new_itemsets, append_states, save_reductions): Take a state_t as
1799 argument.
1800 (set_states, generate_states): Adjust.
1801 (save_shifts): Remove, replaced by...
1802 * src/state.h, src/state.c (state_shifts_set): New.
1803 (shifts): Rename as...
1804 (shifts_t): this.
1805 Adjust all dependencies.
1806 * src/state.h (state_t): Remove the `next' member.
1807
1808 2002-06-30 Akim Demaille <akim@epita.fr>
1809
1810 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
1811 escaped in slot 0.
1812
1813 2002-06-30 Akim Demaille <akim@epita.fr>
1814
1815 Use hash.h for the state hash table.
1816
1817 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
1818 (allocate_storage): Use state_hash_new.
1819 (free_storage): Use state_hash_free.
1820 (new_state, get_state): Adjust.
1821 * src/lalr.h, src/lalr.c (states): Move to...
1822 * src/states.h (state_t): Remove the `link' member, no longer
1823 used.
1824 * src/states.h, src/states.c: here.
1825 (state_hash_new, state_hash_free, state_hash_lookup)
1826 (state_hash_insert, states_free): New.
1827 * src/states.c (state_table, state_compare, state_hash): New.
1828 * src/output.c (output_actions): Do not free states now, since we
1829 still need to know the final_state number in `prepare', called
1830 afterwards. Do it...
1831 * src/main.c (main): here: call states_free after `output'.
1832
1833 2002-06-30 Akim Demaille <akim@epita.fr>
1834
1835 * src/state.h, src/state.c (state_new): New, extracted from...
1836 * src/LR0.c (new_state): here.
1837 * src/state.h (STATE_ALLOC): Move to...
1838 * src/state.c: here.
1839 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
1840 * src/state.h, src/state.c: here.
1841
1842 2002-06-30 Akim Demaille <akim@epita.fr>
1843
1844 * src/reader.c (gensym): Rename as...
1845 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
1846 (getsym): Rename as...
1847 (symbol_get): this.
1848
1849 2002-06-30 Akim Demaille <akim@epita.fr>
1850
1851 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
1852 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
1853 * src/output.c, src/print.c, src/print_graph.c: Propagate.
1854 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
1855
1856 2002-06-30 Akim Demaille <akim@epita.fr>
1857
1858 Make the test suite pass with warnings checked.
1859
1860 * tests/actions.at (Printers and Destructors): Improve.
1861 Avoid unsigned vs. signed issues.
1862 * tests/calc.at: Don't exercise the scanner here, do it...
1863 * tests/input.at (Torturing the Scanner): here.
1864
1865 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1866
1867 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
1868 reorganize first lines parallel to yacc.c.
1869
1870 2002-06-28 Akim Demaille <akim@epita.fr>
1871
1872 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
1873 (b4_token_enum, b4_token_defines): New, factored from...
1874 * data/lalr1.cc, data/yacc.c, glr.c: here.
1875
1876 2002-06-28 Akim Demaille <akim@epita.fr>
1877
1878 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
1879 unused variables.
1880 * src/output.c (merger_output): static.
1881
1882 2002-06-28 Akim Demaille <akim@epita.fr>
1883
1884 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
1885 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
1886 pacify GCC.
1887 * src/output.c (save_row): Initialize all the variables to pacify GCC.
1888
1889 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1890
1891 Accumulated changelog for new GLR parsing features.
1892
1893 * src/conflicts.c (count_total_conflicts): Change name to
1894 conflicts_total_count.
1895 * src/conflicts.h: Ditto.
1896 * src/output.c (token_actions): Use the new name.
1897 (output_conflicts): Change conflp => conflict_list_heads, and
1898 confl => conflict_list for better readability.
1899 * data/glr.c: Use the new names.
1900 * NEWS: Add self to GLR announcement.
1901
1902 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
1903
1904 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
1905 Akim Demaille.
1906
1907 * data/bison.glr: Change name to glr.c
1908 * data/glr.c: Renamed from bison.glr.
1909 * data/Makefile.am: Add glr.c
1910
1911 * src/getargs.c:
1912
1913 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
1914 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
1915
1916 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1917
1918 * data/bison.glr: Be sure to restore the
1919 current #line when returning to the skeleton contents after having
1920 exposed the input file's #line.
1921
1922 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1923
1924 * data/bison.glr: Bring up to date with changes to bison.simple.
1925
1926 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1927
1928 * data/bison.glr: Correct definitions that use b4_prefix.
1929 Various reformatting.
1930 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
1931 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
1932 yytokenp argument; now part of stack.
1933 (yychar): Define to behave as documented.
1934 (yyclearin): Ditto.
1935
1936 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1937
1938 * src/reader.h: Add declaration for free_merger_functions.
1939
1940 * src/reader.c (merge_functions): New variable.
1941 (get_merge_function): New function.
1942 (free_merger_functions): New function.
1943 (readgram): Check for %prec that is not followed by a symbol.
1944 Handle %dprec and %merge declarations.
1945 (packgram): Initialize dprec and merger fields in rules array.
1946
1947 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
1948 conflict_list_cnt, conflict_list_free): New variables.
1949 (table_grow): Also grow conflict_table.
1950 (prepare_rules): Output dprec and merger tables.
1951 (conflict_row): New function.
1952 (action_row): Output conflict lists for GLR parser. Don't use
1953 default reduction in conflicted states for GLR parser so that there
1954 are spaces for the conflict lists.
1955 (save_row): Also save conflict information.
1956 (token_actions): Allocate conflict list.
1957 (merger_output): New function.
1958 (pack_vector): Pack conflict table, too.
1959 (output_conflicts): New function to output yyconflp and yyconfl.
1960 (output_check): Allocate conflict_tos.
1961 (output_actions): Output conflict tables, also.
1962 (output_skeleton): Output b4_mergers definition.
1963 (prepare): Output b4_max_rhs_length definition.
1964 Use 'bison.glr' as default skeleton for GLR parsers.
1965
1966 * src/gram.c (glr_parser): New flag.
1967 (grammar_free): Call free_merger_functions.
1968
1969 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
1970 all pairs of conflicting reductions, rather than just all tokens
1971 causing conflicts. Needed to size conflict tables.
1972 (conflicts_output): Modify call to count_rr_conflicts for new
1973 interface.
1974 (conflicts_print): Ditto.
1975 (count_total_conflicts): New function.
1976
1977 * src/reader.h (merger_list): New type.
1978 (merge_functions): New variable.
1979
1980 * src/lex.h (tok_dprec, tok_merge): New token types.
1981
1982 * src/gram.h (rule_s): Add dprec and merger fields.
1983 (glr_parser): New flag.
1984
1985 * src/conflicts.h (count_total_conflicts): New function.
1986
1987 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
1988
1989 * doc/bison.texinfo (Generalized LR Parsing): New section.
1990 (GLR Parsers): New section.
1991 (Language and Grammar): Mention GLR parsing.
1992 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
1993 Correct typo ("tge" -> "the").
1994
1995 * data/bison.glr: New skeleton for GLR parsing.
1996
1997 * tests/cxx-gram.at: New tests for GLR parsing.
1998
1999 * tests/testsuite.at: Include cxx-gram.at.
2000
2001 * tests/Makefile.am: Add cxx-gram.at.
2002
2003 * src/parse-gram.y:
2004
2005 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
2006
2007 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
2008
2009 2002-06-27 Akim Demaille <akim@epita.fr>
2010
2011 * src/options.h, src/options.c: Remove.
2012 * src/getargs.c (short_options, long_options): New.
2013
2014 2002-06-27 Akim Demaille <akim@epita.fr>
2015
2016 * data/bison.simple, data/bison.c++: Rename as...
2017 * data/yacc.c, data/lalr1.cc: these.
2018 * doc/bison.texinfo (Environment Variables): Remove.
2019
2020 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
2021
2022 * src/getargs.c (report_argmatch): Initialize strtok().
2023
2024 2002-06-20 Akim Demaille <akim@epita.fr>
2025
2026 * data/bison.simple (b4_symbol_actions): New, replaces...
2027 (b4_symbol_destructor, b4_symbol_printer): these.
2028 (yysymprint): Be sure to call YYPRINT only for tokens, and using
2029 user token numbers.
2030
2031 2002-06-20 Akim Demaille <akim@epita.fr>
2032
2033 * data/bison.simple (yydestructor): Rename as...
2034 (yydestruct): this.
2035
2036 2002-06-20 Akim Demaille <akim@epita.fr>
2037
2038 * src/symtab.h, src/symtab.c (symbol_type_set)
2039 (symbol_destructor_set, symbol_precedence_set): The location is
2040 the last argument.
2041 Adjust all callers.
2042
2043 2002-06-20 Akim Demaille <akim@epita.fr>
2044
2045 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
2046 internals.
2047 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
2048 Takes a location.
2049 * src/symtab.h, src/symtab.c (symbol_class_set)
2050 (symbol_user_token_number_set): Likewise.
2051 Adjust all callers.
2052 Promote complain_at.
2053 * tests/input.at (Type Clashes): Adjust.
2054
2055 2002-06-20 Akim Demaille <akim@epita.fr>
2056
2057 * data/bison.simple (YYLEX): Fix the declaration when
2058 %pure-parser.
2059
2060 2002-06-20 Akim Demaille <akim@epita.fr>
2061
2062 * data/bison.simple (yysymprint): Don't print the token number,
2063 just its name.
2064 * tests/actions.at (Destructors): Rename as...
2065 (Printers and Destructors): this.
2066 Also exercise %printer.
2067
2068 2002-06-20 Akim Demaille <akim@epita.fr>
2069
2070 * data/bison.simple (YYDSYMPRINT): New.
2071 Use it to remove many of the #if YYDEBUG/if (yydebug).
2072
2073 2002-06-20 Akim Demaille <akim@epita.fr>
2074
2075 * src/symtab.h, src/symtab.c (symbol_t): printer and
2076 printer_location are new members.
2077 (symbol_printer_set): New.
2078 * src/parse-gram.y (PERCENT_PRINTER): New token.
2079 Handle its associated rule.
2080 * src/scan-gram.l: Adjust.
2081 (handle_destructor_at, handle_destructor_dollar): Rename as...
2082 (handle_symbol_code_at, handle_symbol_code_dollar): these.
2083 * src/output.c (symbol_printers_output): New.
2084 (output_skeleton): Call it.
2085 * data/bison.simple (yysymprint): New. Cannot be named yyprint
2086 since there are already many grammar files with a user `yyprint'.
2087 Replace the calls to YYPRINT to calls to yysymprint.
2088 * tests/calc.at: Adjust.
2089 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
2090 taking advantage of parser very internal details (stack size!).
2091
2092 2002-06-20 Akim Demaille <akim@epita.fr>
2093
2094 * src/scan-gram.l: Complete the scanner with the missing patterns
2095 to pacify Flex.
2096 Use `quote' and `symbol_tag_get' where appropriate.
2097
2098 2002-06-19 Akim Demaille <akim@epita.fr>
2099
2100 * tests/actions.at (Destructors): Augment to test locations.
2101 * data/bison.simple (yydestructor): Pass it the current location
2102 if locations are enabled.
2103 Prototype only when __STDC__ or C++.
2104 Change the argument names to move into the yy name space: there is
2105 user code here.
2106
2107 2002-06-19 Akim Demaille <akim@epita.fr>
2108
2109 * data/bison.simple (b4_pure_if): New.
2110 Use it instead of #ifdef YYPURE.
2111
2112 2002-06-19 Akim Demaille <akim@epita.fr>
2113
2114 * data/bison.simple (b4_location_if): New.
2115 Use it instead of #ifdef YYLSP_NEEDED.
2116
2117 2002-06-19 Akim Demaille <akim@epita.fr>
2118
2119 Prepare @$ in %destructor, but currently don't bind it in the
2120 skeleton, as %location use is not cleaned up yet.
2121
2122 * src/scan-gram.l (handle_dollar, handle_destructor_at)
2123 (handle_action_at): New.
2124 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
2125 a braced_code_t and a location as additional arguments.
2126 (handle_destructor_dollar): Instead of requiring `b4_eval', just
2127 unquote one when outputting `b4_dollar_dollar'.
2128 Adjust callers.
2129 * data/bison.simple (b4_eval): Remove.
2130 (b4_symbol_destructor): Adjust.
2131 * tests/input.at (Invalid @n): Adjust.
2132
2133 2002-06-19 Zack Weinberg <zack@codesourcery.com>
2134
2135 * doc/bison.texinfo: Document ability to have multiple
2136 prologue sections.
2137
2138 2002-06-18 Akim Demaille <akim@epita.fr>
2139
2140 * src/files.c (compute_base_names): When computing the output file
2141 names from the input file name, strip the directory part.
2142
2143 2002-06-18 Akim Demaille <akim@epita.fr>
2144
2145 * data/bison.simple.new: Comment changes.
2146 Reported by Andreas Schwab.
2147
2148 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
2149
2150 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
2151 there are no `label `yyoverflowlab' defined but not used' warnings
2152 when yyoverflow is defined.
2153
2154 2002-06-18 Akim Demaille <akim@epita.fr>
2155
2156 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
2157 new member.
2158 (symbol_destructor_set): Adjust.
2159 * src/output.c (symbol_destructors_output): Output the destructor
2160 locations.
2161 Output the symbol name.
2162 * data/bison.simple (b4_symbol_destructor): Adjust.
2163
2164 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
2165 and Akim Demaille <akim@epita.fr>
2166
2167 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
2168 what's left on the stack when the error recovery hits EOF.
2169 * tests/actions.at (Destructors): Complete to exercise this case.
2170
2171 2002-06-17 Akim Demaille <akim@epita.fr>
2172
2173 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
2174 arguments is really empty, not only equal to `[]'.
2175 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
2176 member.
2177 (symbol_destructor_set): New.
2178 * src/output.c (symbol_destructors_output): New.
2179 * src/reader.h (brace_code_t, current_braced_code): New.
2180 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
2181 (handle_dollar): Rename as...
2182 (handle_action_dollar): this.
2183 (handle_destructor_dollar): New.
2184 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
2185 (grammar_declaration): Use it.
2186 * data/bison.simple (yystos): Is always defined.
2187 (yydestructor): New.
2188 * tests/actions.at (Destructors): New.
2189 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
2190
2191 2002-06-17 Akim Demaille <akim@epita.fr>
2192
2193 * src/symlist.h, src/symlist.c (symbol_list_length): New.
2194 * src/scan-gram.l (handle_dollar, handle_at): Compute the
2195 rule_length only when needed.
2196 * src/output.c (actions_output, token_definitions_output): Output
2197 the full M4 block.
2198 * src/symtab.c: Don't access directly to the symbol tag, use
2199 symbol_tag_get.
2200 * src/parse-gram.y: Use symbol_list_free.
2201
2202 2002-06-17 Akim Demaille <akim@epita.fr>
2203
2204 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
2205 (symbol_list_prepend, get_type_name): Move to...
2206 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
2207 (symbol_list_prepend, symbol_list_n_type_name_get): here.
2208 Adjust all callers.
2209 (symbol_list_free): New.
2210 * src/scan-gram.l (handle_dollar): Takes a location.
2211 * tests/input.at (Invalid $n): Adjust.
2212
2213 2002-06-17 Akim Demaille <akim@epita.fr>
2214
2215 * src/reader.h, src/reader.c (symbol_list_new): Export it.
2216 (symbol_list_prepend): New.
2217 * src/parse-gram.y (%union): `list' is a new member.
2218 (symbols.1): New, replaces...
2219 (terms_to_prec.1, nterms_to_type.1): these.
2220 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
2221 Take a location as additional argument.
2222 Adjust all callers.
2223
2224 2002-06-15 Akim Demaille <akim@epita.fr>
2225
2226 * src/parse-gram.y: Move %token in the declaration section so that
2227 we don't depend upon CVS Bison.
2228
2229 2002-06-15 Akim Demaille <akim@epita.fr>
2230
2231 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
2232 * src/print.c (print_core): Use it.
2233
2234 2002-06-15 Akim Demaille <akim@epita.fr>
2235
2236 * src/conflicts.c (log_resolution): Accept the rule involved in
2237 the sr conflicts instead of the lookahead number that points to
2238 that rule.
2239 (flush_reduce): Accept the current lookahead vector as argument,
2240 instead of the index in LA.
2241 (resolve_sr_conflict): Accept the current number of lookahead
2242 bitset to consider for the STATE, instead of the index in LA.
2243 (set_conflicts): Adjust.
2244 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
2245
2246 2002-06-15 Akim Demaille <akim@epita.fr>
2247
2248 * src/state.h (state_t): Replace the `lookaheadsp' member, a
2249 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
2250 Adjust all dependencies.
2251 * src/lalr.c (initialize_lookaheads): Split into...
2252 (states_lookaheads_count, states_lookaheads_initialize): these.
2253 (lalr): Adjust.
2254
2255 2002-06-15 Akim Demaille <akim@epita.fr>
2256
2257 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
2258 out of...
2259 (grammar_rules_print): here.
2260 * src/reduce.c (reduce_output): Use it.
2261 * tests/reduce.at (Useless Rules, Reduced Automaton)
2262 (Underivable Rules): Adjust.
2263
2264 2002-06-15 Akim Demaille <akim@epita.fr>
2265
2266 Copy BYacc's nice way to report the grammar.
2267
2268 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
2269 New.
2270 Don't print the rules' location, it is confusing and useless.
2271 (rule_print): Use grammar_rhs_print.
2272 * src/print.c (print_grammar): Use grammar_rules_print.
2273
2274 2002-06-15 Akim Demaille <akim@epita.fr>
2275
2276 Complete and rationalize `useless thing' warnings.
2277
2278 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
2279 (symbol_tag_print): New.
2280 Use them everywhere in place of accessing directly the tag member.
2281 * src/gram.h, src/gram.c (rule_print): New.
2282 Use it where a rule used to be printed `by hand'.
2283 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
2284 (reduce_grammar_tables): Report the useless rules.
2285 (reduce_print): Useless things are a warning, not an error.
2286 Report it as such.
2287 * tests/reduce.at (Useless Nonterminals, Useless Rules):
2288 (Reduced Automaton, Underivable Rules): Adjust.
2289 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
2290 * tests/conflicts.at (Unresolved SR Conflicts)
2291 (Solved SR Conflicts): Adjust.
2292
2293 2002-06-15 Akim Demaille <akim@epita.fr>
2294
2295 Let symbols have a location.
2296
2297 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
2298 (getsym): Adjust.
2299 Adjust all callers.
2300 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
2301 Use location_t, not int.
2302 * src/symtab.c (symbol_check_defined): Take advantage of the
2303 location.
2304 * tests/regression.at (Invalid inputs): Adjust.
2305
2306 2002-06-15 Akim Demaille <akim@epita.fr>
2307
2308 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
2309 (input): Don't try to initialize yylloc here, do it in the
2310 scanner.
2311 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
2312 * src/gram.h (rule_t): Change line and action_line into location
2313 and action_location, of location_t type.
2314 Adjust all dependencies.
2315 * src/location.h, src/location.c (empty_location): New.
2316 * src/reader.h, src/reader.c (grammar_start_symbol_set)
2317 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
2318 (grammar_current_rule_symbol_append)
2319 (grammar_current_rule_action_append): Expect a location as argument.
2320 * src/reader.c (grammar_midrule_action): Adjust to attach an
2321 action's location as dummy symbol location.
2322 * src/symtab.h, src/symtab.c (startsymbol_location): New.
2323 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
2324 the line numbers.
2325
2326 2002-06-14 Akim Demaille <akim@epita.fr>
2327
2328 Grammar declarations may be found in the grammar section.
2329
2330 * src/parse-gram.y (rules_or_grammar_declaration): New.
2331 (declarations): Each declaration may end with a semicolon, not
2332 just...
2333 (grammar_declaration): `"%union"'.
2334 (grammar): Branch to rules_or_grammar_declaration.
2335
2336 2002-06-14 Akim Demaille <akim@epita.fr>
2337
2338 * src/main.c (main): Invoke scanner_free.
2339
2340 2002-06-14 Akim Demaille <akim@epita.fr>
2341
2342 * src/output.c (m4_invoke): Extracted from...
2343 (output_skeleton): here.
2344 Free tempfile.
2345
2346 2002-06-14 Akim Demaille <akim@epita.fr>
2347
2348 * src/parse-gram.y (directives, directive, gram)
2349 (grammar_directives, precedence_directives, precedence_directive):
2350 Rename as...
2351 (declarations, declaration, grammar, grammar_declaration)
2352 (precedence_declaration, precedence_declarator): these.
2353 (symbol_declaration): New.
2354
2355 2002-06-14 Akim Demaille <akim@epita.fr>
2356
2357 * src/files.c (action_obstack): Remove, unused.
2358 (output_obstack): Remove it, and all its dependencies, as it is no
2359 longer needed.
2360 * src/reader.c (epilogue_set): Build the epilogue in the
2361 muscle_obstack.
2362 * src/output.h, src/output.c (muscle_obstack): Move to...
2363 * src/muscle_tab.h, src/muscle_tab.h: here.
2364 (muscle_init): Initialize muscle_obstack.
2365 (muscle_free): New.
2366 * src/main.c (main): Call it.
2367
2368 2002-06-14 Akim Demaille <akim@epita.fr>
2369
2370 * src/location.h: New, extracted from...
2371 * src/reader.h: here.
2372 * src/Makefile.am (noinst_HEADERS): Merge into
2373 (bison_SOURCES): this.
2374 Add location.h.
2375 * src/parse-gram.y: Use location_t instead of Bison's.
2376 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
2377 Use location_t instead of ints.
2378
2379 2002-06-14 Akim Demaille <akim@epita.fr>
2380
2381 * data/bison.simple, data/bison.c++: Be sure to restore the
2382 current #line when returning to the skeleton contents after having
2383 exposed the input file's #line.
2384
2385 2002-06-12 Akim Demaille <akim@epita.fr>
2386
2387 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
2388 eager.
2389 * tests/actions.at (Exotic Dollars): New.
2390
2391 2002-06-12 Akim Demaille <akim@epita.fr>
2392
2393 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
2394 ['"/] too eagerly.
2395 * tests/input.at (Torturing the Scanner): New.
2396
2397 2002-06-11 Akim Demaille <akim@epita.fr>
2398
2399 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
2400 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
2401 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
2402 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
2403 * src/reader.c (reader): Use it.
2404
2405 2002-06-11 Akim Demaille <akim@epita.fr>
2406
2407 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
2408 Adjust all callers.
2409 (scanner_last_string_free): New.
2410
2411 2002-06-11 Akim Demaille <akim@epita.fr>
2412
2413 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
2414 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
2415 (last_string, YY_OBS_FREE): New.
2416 Use them when returning an ID.
2417
2418 2002-06-11 Akim Demaille <akim@epita.fr>
2419
2420 Have Bison grammars parsed by a Bison grammar.
2421
2422 * src/reader.c, src/reader.h (prologue_augment): New.
2423 * src/reader.c (copy_definition): Remove.
2424
2425 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
2426 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
2427 (grammar_current_rule_prec_set, grammar_current_rule_check)
2428 (grammar_current_rule_symbol_append)
2429 (grammar_current_rule_action_append): Export.
2430 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
2431 (symbol_list_action_append): Remove.
2432 Hook the routines from reader.
2433 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
2434 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
2435
2436 * src/reader.c (read_declarations): Remove, unused.
2437
2438 * src/parse-gram.y: Handle the epilogue.
2439 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
2440 (grammar_start_symbol_set): this.
2441 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
2442 * src/reader.c (readgram): Remove, unused.
2443 (reader): Adjust to insert eoftoken and axiom where appropriate.
2444
2445 * src/reader.c (copy_dollar): Replace with...
2446 * src/scan-gram.h (handle_dollar): this.
2447 * src/parse-gram.y: Remove `%thong'.
2448
2449 * src/reader.c (copy_at): Replace with...
2450 * src/scan-gram.h (handle_at): this.
2451
2452 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
2453 New.
2454
2455 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
2456 time being.
2457
2458 * src/reader.h, src/reader.c (grammar_rule_end): New.
2459
2460 * src/parse.y (current_type, current_class): New.
2461 Implement `%nterm', `%token' support.
2462 Merge `%term' into `%token'.
2463 (string_as_id): New.
2464 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
2465 type name.
2466
2467 * src/parse-gram.y: Be sure to handle properly the beginning of
2468 rules.
2469
2470 * src/parse-gram.y: Handle %type.
2471 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
2472
2473 * src/parse-gram.y: More directives support.
2474 * src/options.c: No longer handle source directives.
2475
2476 * src/parse-gram.y: Fix %output.
2477
2478 * src/parse-gram.y: Handle %union.
2479 Use the prologue locations.
2480 * src/reader.c (parse_union_decl): Remove.
2481
2482 * src/reader.h, src/reader.c (epilogue_set): New.
2483 * src/parse-gram.y: Use it.
2484
2485 * data/bison.simple, data/bison.c++: b4_stype is now either not
2486 defined, then default to int, or to the contents of %union,
2487 without `union' itself.
2488 Adjust.
2489 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
2490
2491 * src/output.c (actions_output): Don't output braces, as they are
2492 already handled by the scanner.
2493
2494 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
2495 characters to themselves.
2496
2497 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
2498 that the epilogue has a proper #line.
2499
2500 * src/parse-gram.y: Handle precedence/associativity.
2501
2502 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
2503 a terminal.
2504 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
2505 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
2506 at all to define terminals that cannot be emitted.
2507
2508 * src/scan-gram.l: Escape M4 characters.
2509
2510 * src/scan-gram.l: Working properly with escapes in user
2511 strings/characters.
2512
2513 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
2514 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
2515 grammar.
2516 Use more modest sizes, as for the time being the parser does not
2517 release memory, and therefore the process swallows a huge amount
2518 of memory.
2519
2520 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
2521 stricter %token grammar.
2522
2523 * src/symtab.h (associativity): Add `undef_assoc'.
2524 (symbol_precedence_set): Do nothing when passed an undef_assoc.
2525 * src/symtab.c (symbol_check_alias_consistence): Adjust.
2526
2527 * tests/regression.at (Invalid %directive): Remove, as it is now
2528 meaningless.
2529 (Invalid inputs): Adjust to the new error messages.
2530 (Token definitions): The new grammar doesn't allow too many
2531 eccentricities.
2532
2533 * src/lex.h, src/lex.c: Remove.
2534 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
2535 (copy_character, copy_string2, copy_string, copy_identifier)
2536 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
2537 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
2538 (parse_action): Remove.
2539 * po/POTFILES.in: Adjust.
2540
2541 2002-06-11 Akim Demaille <akim@epita.fr>
2542
2543 * src/reader.c (parse_action): Don't store directly into the
2544 rule's action member: return the action as a string.
2545 Don't require `rule_length' as an argument: compute it.
2546 (grammar_current_rule_symbol_append)
2547 (grammar_current_rule_action_append): New, eved out from
2548 (readgram): here.
2549 Remove `action_flag', `rulelength', unused now.
2550
2551 2002-06-11 Akim Demaille <akim@epita.fr>
2552
2553 * src/reader.c (grammar_current_rule_prec_set).
2554 (grammar_current_rule_check): New, eved out from...
2555 (readgram): here.
2556 Remove `xaction', `first_rhs': useless.
2557 * tests/input.at (Type clashes): New.
2558 * tests/existing.at (GNU Cim Grammar): Adjust.
2559
2560 2002-06-11 Akim Demaille <akim@epita.fr>
2561
2562 * src/reader.c (grammar_midrule_action): New, Eved out from
2563 (readgram): here.
2564
2565 2002-06-11 Akim Demaille <akim@epita.fr>
2566
2567 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
2568 New.
2569 (readgram): Use them as replacement of inlined code, crule and
2570 crule1.
2571
2572 2002-06-11 Akim Demaille <akim@epita.fr>
2573
2574 * src/reader.c (grammar_end, grammar_symbol_append): New.
2575 (readgram): Use them.
2576 Make the use of `p' as local as possible.
2577
2578 2002-06-10 Akim Demaille <akim@epita.fr>
2579
2580 GCJ's parser requires the tokens to be defined before the prologue.
2581
2582 * data/bison.simple: Output the token definition before the user's
2583 prologue.
2584 * tests/regression.at (Braces parsing, Duplicate string)
2585 (Mixing %token styles): Check the output from bison.
2586 (Early token definitions): New.
2587
2588 2002-06-10 Akim Demaille <akim@epita.fr>
2589
2590 * src/symtab.c (symbol_user_token_number_set): Don't complain when
2591 assigning twice the same user number to a token, so that we can
2592 use it in...
2593 * src/lex.c (lex): here.
2594 Also use `symbol_class_set' instead of hand written code.
2595 * src/reader.c (parse_assoc_decl): Likewise.
2596
2597 2002-06-10 Akim Demaille <akim@epita.fr>
2598
2599 * src/symtab.c, src/symtab.c (symbol_class_set)
2600 (symbol_user_token_number_set): New.
2601 * src/reader.c (parse_token_decl): Use them.
2602 Use a switch instead of ifs.
2603 Use a single argument.
2604
2605 2002-06-10 Akim Demaille <akim@epita.fr>
2606
2607 Remove `%thong' support as it is undocumented, unused, duplicates
2608 `%token's job, and creates useless e-mail traffic with people who
2609 want to know what it is, why it is undocumented, unused, and
2610 duplicates `%token's job.
2611
2612 * src/reader.c (parse_thong_decl): Remove.
2613 * src/options.c (option_table): Remove "thong".
2614 * src/lex.h (tok_thong): Remove.
2615
2616 2002-06-10 Akim Demaille <akim@epita.fr>
2617
2618 * src/symtab.c, src/symtab.c (symbol_type_set)
2619 (symbol_precedence_set): New.
2620 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
2621 (value_components_used): Remove, unused.
2622
2623 2002-06-09 Akim Demaille <akim@epita.fr>
2624
2625 Move symbols handling code out of the reader.
2626
2627 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
2628 (axiom): Move to...
2629 * src/symtab.h, src/symtab.c: here.
2630
2631 * src/gram.c (start_symbol): Remove: use startsymbol->number.
2632 * src/reader.c (startval): Rename as...
2633 * src/symtab.h, src/symtab.c (startsymbol): this.
2634 * src/reader.c: Adjust.
2635
2636 * src/reader.c (symbol_check_defined, symbol_make_alias)
2637 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
2638 (token_translations_init)
2639 Move to...
2640 * src/symtab.c: here.
2641 * src/reader.c (packsymbols): Move to...
2642 * src/symtab.h, src/symtab.c (symbols_pack): here.
2643 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
2644 argument.
2645
2646 2002-06-03 Akim Demaille <akim@epita.fr>
2647
2648 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
2649 then statements.
2650
2651 2002-06-03 Akim Demaille <akim@epita.fr>
2652
2653 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
2654 structs with non literals.
2655 * src/scan-skel.l: never-interactive.
2656 * src/conflicts.c (enum conflict_resolution_e): No trailing
2657 comma.
2658 * src/getargs.c (usage): Split long literal strings.
2659 Reported by Hans Aberg.
2660
2661 2002-05-28 Akim Demaille <akim@epita.fr>
2662
2663 * data/bison.c++: Use C++ ostreams.
2664 (cdebug_): New member.
2665
2666 2002-05-28 Akim Demaille <akim@epita.fr>
2667
2668 * src/output.c (output_skeleton): Be sure to allocate enough room
2669 for `/' _and_ for `\0' in full_skeleton.
2670
2671 2002-05-28 Akim Demaille <akim@epita.fr>
2672
2673 * data/bison.c++: Catch up with bison.simple:
2674 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2675 and Paul Eggert <eggert@twinsun.com>: `error' handing.
2676 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
2677 and popping traces.
2678
2679 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2680
2681 * src/output.c (output_skeleton): Put an explicit path in front of
2682 the skeleton file name, rather than relying on the -I directory,
2683 to partially alleviate effects of having a skeleton file lying around
2684 in the current directory.
2685
2686 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2687
2688 * src/conflicts.c (log_resolution): Correct typo:
2689 obstack_printf should be obstack_fgrow1.
2690
2691 2002-05-26 Akim Demaille <akim@epita.fr>
2692
2693 * src/state.h (state_t): `solved_conflicts' is a new member.
2694 * src/LR0.c (new_state): Set it to 0.
2695 * src/conflicts.h, src/conflicts.c (print_conflicts)
2696 (free_conflicts, solve_conflicts): Rename as...
2697 (conflicts_print, conflicts_free, conflicts_solve): these.
2698 Adjust callers.
2699 * src/conflicts.c (enum conflict_resolution_e)
2700 (solved_conflicts_obstack): New, used by...
2701 (log_resolution): this.
2702 Adjust to attach the conflict resolution to each state.
2703 Complete the description with the precedence/associativity
2704 information.
2705 (resolve_sr_conflict): Adjust.
2706 * src/print.c (print_state): Output its solved_conflicts.
2707 * tests/conflicts.at (Unresolved SR Conflicts)
2708 (Solved SR Conflicts): Exercise --report=all.
2709
2710 2002-05-26 Akim Demaille <akim@epita.fr>
2711
2712 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
2713 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
2714 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
2715 (token_number_t, item_number_as_token_number)
2716 (token_number_as_item_number, muscle_insert_token_number_table):
2717 Rename as...
2718 (symbol_number_t, item_number_as_symbol_number)
2719 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
2720 these, since it is more appropriate.
2721
2722 2002-05-26 Akim Demaille <akim@epita.fr>
2723
2724 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
2725 `Error:' lines.
2726 * data/bison.simple (yystos) [YYDEBUG]: New.
2727 (yyparse) [YYDEBUG]: Display the symbols which are popped during
2728 error recovery.
2729 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
2730
2731 2002-05-25 Akim Demaille <akim@epita.fr>
2732
2733 * doc/bison.texinfo (Debugging): Split into...
2734 (Tracing): this new section, its former contents, and...
2735 (Understanding): this new section.
2736 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
2737 by...
2738 (report_flag): this.
2739 Adjust all dependencies.
2740 (report_args, report_types, report_argmatch): New.
2741 (usage, getargs): Report/support -r, --report.
2742 * src/options.h
2743 (struct option_table_struct): Rename as..,
2744 (struct option_table_s): this.
2745 Rename the `set_flag' member to `flag' to match with getopt_long's
2746 struct.
2747 * src/options.c (option_table): Split verbose into an entry for
2748 %verbose, and another for --verbose.
2749 Support --report/-r, so remove -r from the obsolete --raw.
2750 * src/print.c: Attach full item sets and lookaheads reports to
2751 report_flag instead of trace_flag.
2752 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
2753
2754 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2755 and Paul Eggert <eggert@twinsun.com>
2756
2757 * data/bison.simple (yyparse): Correct error handling to conform to
2758 POSIX and yacc. Specifically, after syntax error is discovered,
2759 do not reduce further before shifting the error token.
2760 Clean up the code a bit by removing the labels yyerrdefault,
2761 yyerrhandle, yyerrpop.
2762 * NEWS: Document the above.
2763
2764 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2765
2766 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
2767 type; it isn't always big enough, since it doesn't necessarily
2768 include non-terminals.
2769 (yytranslate): Expand definition of yy_token_number_type, so that
2770 the latter can be removed.
2771 (yy_token_number_type): Remove, only one use.
2772 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
2773 don't use TokenNumberType as element type.
2774
2775 * tests/regression.at: Modify expected output to agree with change
2776 to yyr1 and yytranslate.
2777
2778 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
2779
2780 * src/reader.c (parse_action): Use copy_character instead of
2781 obstack_1grow.
2782
2783 2002-05-13 Akim Demaille <akim@epita.fr>
2784
2785 * tests/regression.at (Token definitions): Prototype yylex and
2786 yyerror.
2787
2788 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2789
2790 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
2791 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
2792 32-bit arithmetic.
2793 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
2794
2795 2002-05-07 Akim Demaille <akim@epita.fr>
2796
2797 * tests/synclines.at: Be sure to prototype yylex and yyerror to
2798 avoid GCC warnings.
2799
2800 2002-05-07 Akim Demaille <akim@epita.fr>
2801
2802 Kill GCC warnings.
2803
2804 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
2805 over the RHS of each rule.
2806 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
2807 * src/state.h (state_t): Member `nitems' is unsigned short.
2808 * src/LR0.c (get_state): Adjust.
2809 * src/reader.c (packgram): Likewise.
2810 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
2811 `Type'.
2812 (muscle_insert_int_table): Remove, unused.
2813 (prepare_rules): Remove `max'.
2814
2815 2002-05-06 Akim Demaille <akim@epita.fr>
2816
2817 * src/closure.c (print_firsts): Display of the symbol tags.
2818 (bitmatrix_print): Move to...
2819 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
2820 here.
2821 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
2822
2823 2002-05-06 Akim Demaille <akim@epita.fr>
2824
2825 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
2826 hash_do_for_each.
2827
2828 2002-05-06 Akim Demaille <akim@epita.fr>
2829
2830 * src/LR0.c (new_state, get_state): Instead of using the global
2831 `kernel_size' and `kernel_base', have two new arguments:
2832 `core_size' and `core'.
2833 Adjust callers.
2834
2835 2002-05-06 Akim Demaille <akim@epita.fr>
2836
2837 * src/reader.c (packgram): No longer end `ritem' with a 0
2838 sentinel: it is not used.
2839
2840 2002-05-05 Akim Demaille <akim@epita.fr>
2841
2842 New experimental feature: display the lookaheads in the report and
2843 graph.
2844
2845 * src/print (print_core): When --trace-flag, display the rules
2846 lookaheads.
2847 * src/print_graph.c (print_core): Likewise.
2848 Swap the arguments.
2849 Adjust caller.
2850
2851 2002-05-05 Akim Demaille <akim@epita.fr>
2852
2853 * tests/torture.at (Many lookaheads): New test.
2854
2855 2002-05-05 Akim Demaille <akim@epita.fr>
2856
2857 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
2858 (GENERATE_MUSCLE_INSERT_TABLE): this.
2859 (output_int_table, output_unsigned_int_table, output_short_table)
2860 (output_token_number_table, output_item_number_table): Replace with...
2861 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
2862 (muscle_insert_short_table, muscle_insert_token_number_table)
2863 (muscle_insert_item_number_table): these.
2864 Adjust all callers.
2865 (prepare_tokens): Don't free `translations', since...
2866 * src/reader.h, src/reader.c (grammar_free): do it.
2867 Move to...
2868 * src/gram.h, src/gram.c (grammar_free): here.
2869 * data/bison.simple, data/bison.c++: b4_token_number_max is now
2870 b4_translate_max.
2871
2872 2002-05-05 Akim Demaille <akim@epita.fr>
2873
2874 * src/output.c (output_unsigned_int_table): New.
2875 (prepare_rules): `i' is unsigned.
2876 `prhs', `rline', `r2' are unsigned int.
2877 Rename muscle `rhs_number_max' as `rhs_max'.
2878 Output muscles `prhs_max', `rline_max', and `r2_max'.
2879 Free rline and r1.
2880 * data/bison.simple, data/bison.c++: Adjust to use these muscles
2881 to compute types instead of constant types.
2882 * tests/regression.at (Web2c Actions): Adjust.
2883
2884 2002-05-04 Akim Demaille <akim@epita.fr>
2885
2886 * src/symtab.h (SALIAS, SUNDEF): Rename as...
2887 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
2888 Adjust dependencies.
2889 * src/output.c (token_definitions_output): Be sure not to output a
2890 `#define 'a'' when fed with `%token 'a' "a"'.
2891 * tests/regression.at (Token definitions): New.
2892
2893 2002-05-03 Paul Eggert <eggert@twinsun.com>
2894
2895 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
2896 for K&R C.
2897
2898 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
2899
2900 * Makefile.am (SUBDIRS): Remove intl.
2901 (EXTRA_DIST): Add config/config.rpath.
2902
2903 2002-05-03 Akim Demaille <akim@epita.fr>
2904
2905 * data/bison.simple (m4_if): Don't output empty enums.
2906 And actually, output valid enum definitions :(.
2907
2908 2002-05-03 Akim Demaille <akim@epita.fr>
2909
2910 * configure.bat: Remove, completely obsolete.
2911 * Makefile.am (EXTRA_DIST): Adjust.
2912 Don't distribute config.rpath...
2913 * config/Makefile.am (EXTRA_DIST): Do it.
2914
2915 2002-05-03 Akim Demaille <akim@epita.fr>
2916
2917 * configure.in (GETTEXT_VERSION): New.
2918 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
2919
2920 2002-05-03 Akim Demaille <akim@epita.fr>
2921
2922 * data/bison.simple (b4_token_enum): New.
2923 (b4_token_defines): Use it to output tokens both as #define and
2924 enums.
2925 Suggested by Paul Eggert.
2926 * src/output.c (token_definitions_output): Don't output spurious
2927 white spaces.
2928
2929 2002-05-03 Akim Demaille <akim@epita.fr>
2930
2931 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
2932
2933 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
2934
2935 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
2936 Update the stack class, give a try to deque as the default container.
2937
2938 2002-05-02 Akim Demaille <akim@epita.fr>
2939
2940 * data/bison.simple (yyparse): Do not implement @$ = @1.
2941 (YYLLOC_DEFAULT): Adjust to do it.
2942 * doc/bison.texinfo (Location Default Action): Fix.
2943
2944 2002-05-02 Akim Demaille <akim@epita.fr>
2945
2946 * src/reader.c (parse_braces): Merge into...
2947 (parse_action): this.
2948
2949 2002-05-02 Akim Demaille <akim@epita.fr>
2950
2951 * configure.in (ALL_LINGUAS): Remove.
2952 * po/LINGUAS, hr.po: New.
2953
2954 2002-05-02 Akim Demaille <akim@epita.fr>
2955
2956 Remove the so called hairy (semantic) parsers.
2957
2958 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
2959 * src/gram.h, src/gram.c (semantic_parser): Remove.
2960 (rule_t): Remove the guard and guard_line members.
2961 * src/lex.h (token_t): remove tok_guard.
2962 * src/options.c (option_table): Remove %guard and %semantic_parser
2963 support.
2964 * src/output.c, src/output.h (guards_output): Remove.
2965 (prepare): Adjust.
2966 (token_definitions_output): Don't output the `T'
2967 tokens (???).
2968 (output_skeleton): Don't output the guards.
2969 * src/files.c, src/files.c (attrsfile): Remove.
2970 * src/reader.c (symbol_list): Remove the guard and guard_line
2971 members.
2972 Adjust dependencies.
2973 (parse_guard): Remove.
2974 * data/bison.hairy: Remove.
2975 * doc/bison.texinfo (Environment Variables): Remove occurrences of
2976 BISON_HAIRY.
2977
2978 2002-05-02 Akim Demaille <akim@epita.fr>
2979
2980 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
2981 (parse_guard): Rename the formal argument `stack_offset' as
2982 `rule_length', which is more readable.
2983 Adjust callers.
2984 (copy_at, copy_dollar): Instead of outputting the hard coded
2985 values of $$, $n and so forth, output invocation to b4_lhs_value,
2986 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
2987 Note: this patch partially drops `semantic-parser' support: it
2988 always does `rule_length - n', where semantic parsers ought to
2989 always use `-n'.
2990 * data/bison.simple, data/bison.c++ (b4_lhs_value)
2991 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
2992
2993 2002-05-02 Akim Demaille <akim@epita.fr>
2994
2995 * configure.in (AC_INIT): Bump to 1.49b.
2996 (AM_INIT_AUTOMAKE): Short invocation.
2997
2998 2002-05-02 Akim Demaille <akim@epita.fr>
2999
3000 Version 1.49a.
3001
3002 2002-05-01 Akim Demaille <akim@epita.fr>
3003
3004 * src/skeleton.h: Remove.
3005
3006 2002-05-01 Akim Demaille <akim@epita.fr>
3007
3008 * src/skeleton.h: Fix the #endif.
3009 Reported by Magnus Fromreide.
3010
3011 2002-04-26 Paul Eggert <eggert@twinsun.com>
3012
3013 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
3014 Define if we define YYSTYPE and YYLTYPE, respectively.
3015 (YYCOPY): Fix [] quoting problem in the non-GCC case.
3016
3017 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
3018
3019 * src/scan-skel.l: Postprocess quadrigraphs.
3020
3021 * src/reader.c (copy_character): New function, used to output
3022 single characters while replacing `[' and `]' with quadrigraphs, to
3023 avoid troubles with M4 quotes.
3024 (copy_comment): Output characters with copy_character.
3025 (read_additionnal_code): Likewise.
3026 (copy_string2): Likewise.
3027 (copy_definition): Likewise.
3028
3029 * tests/calc.at: Exercise M4 quoting.
3030
3031 2002-04-25 Akim Demaille <akim@epita.fr>
3032
3033 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
3034 between `!' and the command.
3035 Reported by Paul Eggert.
3036
3037 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
3038
3039 * tests/calc.at: Exercise prologue splitting.
3040
3041 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
3042 `b4_post_prologue' instead of `b4_prologue'.
3043
3044 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
3045 muscles.
3046 (output): Free pre_prologue_obstack and post_prologue_obstack.
3047 * src/files.h, src/files.c (attrs_obstack): Remove.
3048 (pre_prologue_obstack, post_prologue_obstack): New.
3049 * src/reader.c (copy_definition): Add a parameter to specify the
3050 obstack to fill, instead of using attrs_obstack unconditionally.
3051 (read_declarations): Pass pre_prologue_obstack to copy_definition if
3052 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
3053
3054 2002-04-23 Paul Eggert <eggert@twinsun.com>
3055
3056 * data/bison.simple: Remove unnecessary commentary and white
3057 space differences from 1_29-branch.
3058 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
3059
3060 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
3061 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
3062 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
3063 constructors or destructors.
3064
3065 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
3066
3067 2002-04-23 Akim Demaille <akim@epita.fr>
3068
3069 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
3070 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
3071 location with columns.
3072 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
3073 All reported by Paul Eggert.
3074
3075 2002-04-22 Akim Demaille <akim@epita.fr>
3076
3077 * src/reduce.c (dump_grammar): Move to...
3078 * src/gram.h, src/gram.c (grammar_dump): here.
3079 Be sure to separate long item numbers.
3080 Don't read the members of a rule's prec if its nil.
3081
3082 2002-04-22 Akim Demaille <akim@epita.fr>
3083
3084 * src/output.c (table_size, table_grow): New.
3085 (MAXTABLE): Remove, replace uses with table_size.
3086 (pack_vector): Instead of dying when the table is too big, grow it.
3087
3088 2002-04-22 Akim Demaille <akim@epita.fr>
3089
3090 * data/bison.simple (yyr1): Its type is that of a token number.
3091 * data/bison.c++ (r1_): Likewise.
3092 * tests/regression.at (Web2c Actions): Adjust.
3093
3094 2002-04-22 Akim Demaille <akim@epita.fr>
3095
3096 * src/reader.c (token_translations_init): 256 is now the default
3097 value for the error token, i.e., it will be assigned another
3098 number if the user assigned 256 to one of her tokens.
3099 (reader): Don't force 256 to error.
3100 * doc/bison.texinfo (Symbols): Adjust.
3101 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
3102 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
3103 etc. instead of 10, 20, 30 (which was used to `jump' over error
3104 (256) and undefined (2)).
3105
3106 2002-04-22 Akim Demaille <akim@epita.fr>
3107
3108 Propagate more token_number_t.
3109
3110 * src/gram.h (token_number_as_item_number)
3111 (item_number_as_token_number): New.
3112 * src/output.c (GENERATE_OUTPUT_TABLE): New.
3113 Use it to create output_item_number_table and
3114 output_token_number_table.
3115 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
3116 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
3117 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
3118 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
3119
3120 2002-04-22 Akim Demaille <akim@epita.fr>
3121
3122 * src/output.h, src/output.c (get_lines_number): Remove.
3123
3124 2002-04-19 Akim Demaille <akim@epita.fr>
3125
3126 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
3127 as Lex/Flex'.
3128 (Debugging): More details about enabling the debugging features.
3129 (Table of Symbols): Describe $$, $n, @$, and @n.
3130 Suggested by Tim Josling.
3131
3132 2002-04-19 Akim Demaille <akim@epita.fr>
3133
3134 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
3135
3136 2002-04-10 Akim Demaille <akim@epita.fr>
3137
3138 * src/system.h: Rely on HAVE_LIMITS_H.
3139 Suggested by Paul Eggert.
3140
3141 2002-04-09 Akim Demaille <akim@epita.fr>
3142
3143 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
3144 full stderr, and strip it according to the bison options, instead
3145 of composing the error message from different bits.
3146 This makes it easier to check for several error messages.
3147 Adjust all the invocations.
3148 Add an invocation exercising the error token.
3149 Add an invocation demonstrating a stupid error message.
3150 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
3151 Adjust the tests.
3152 Error message are for stderr, not stdout.
3153
3154 2002-04-09 Akim Demaille <akim@epita.fr>
3155
3156 * src/gram.h, src/gram.c (error_token_number): Remove, use
3157 errtoken->number.
3158 * src/reader.c (reader): Don't specify the user token number (2)
3159 for $undefined, as it uselessly prevents using it.
3160 * src/gram.h (token_number_t): Move to...
3161 * src/symtab.h: here.
3162 (state_t.number): Is a token_number_t.
3163 * src/print.c, src/reader.c: Use undeftoken->number instead of
3164 hard coded 2.
3165 (Even though this 2 is not the same as above: the number of the
3166 undeftoken remains being 2, it is its user token number which
3167 might not be 2).
3168 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
3169 `user_token_number_max'.
3170 Output `undef_token_number'.
3171 * data/bison.simple, data/bison.c++: Use them.
3172 Be sure to map invalid yylex return values to
3173 `undef_token_number'. This saves us from gratuitous SEGV.
3174
3175 * tests/conflicts.at (Solved SR Conflicts)
3176 (Unresolved SR Conflicts): Adjust.
3177 * tests/regression.at (Web2c Actions): Adjust.
3178
3179 2002-04-08 Akim Demaille <akim@epita.fr>
3180
3181 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
3182 Adding #line.
3183 Remove the duplicate `typedefs'.
3184 (RhsNumberType): Fix the declaration and various other typos.
3185 Use __ofile__.
3186 * data/bison.simple: Use __ofile__.
3187 * src/scan-skel.l: Handle __ofile__.
3188
3189 2002-04-08 Akim Demaille <akim@epita.fr>
3190
3191 * src/gram.h (item_number_t): New, the type of item numbers in
3192 RITEM. Note that it must be able to code symbol numbers as
3193 positive number, and the negation of rule numbers as negative
3194 numbers.
3195 Adjust all dependencies (pretty many).
3196 * src/reduce.c (rule): Remove this `short *' pointer: use
3197 item_number_t.
3198 * src/system.h (MINSHORT, MAXSHORT): Remove.
3199 Include `limits.h'.
3200 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
3201 (shortcpy): Remove.
3202 (MAXTABLE): Move to...
3203 * src/output.c (MAXTABLE): here.
3204 (prepare_rules): Use output_int_table to output rhs.
3205 * data/bison.simple, data/bison.c++: Adjust.
3206 * tests/torture.at (Big triangle): Move the limit from 254 to
3207 500.
3208 * tests/regression.at (Web2c Actions): Ajust.
3209
3210 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
3211 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
3212 passes, but produces negative #line number, once fixed, GCC is
3213 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
3214 C), it passes.
3215 * src/state.h (state_h): Code input lines on ints, not shorts.
3216
3217 2002-04-08 Akim Demaille <akim@epita.fr>
3218
3219 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
3220 and then the grammar.
3221
3222 2002-04-08 Akim Demaille <akim@epita.fr>
3223
3224 * src/system.h: No longer using strndup.
3225
3226 2002-04-07 Akim Demaille <akim@epita.fr>
3227
3228 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
3229 * src/output.c (output_table_data): Return the longest number.
3230 (prepare_tokens): Output `token_number_max').
3231 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
3232 New.
3233 Use them to define yy_token_number_type/TokenNumberType.
3234 Use this type for yytranslate.
3235 * tests/torture.at (Big triangle): Push the limit from 124 to
3236 253.
3237 * tests/regression.at (Web2c Actions): Adjust.
3238
3239 2002-04-07 Akim Demaille <akim@epita.fr>
3240
3241 * tests/torture.at (Big triangle): New.
3242 (GNU AWK Grammar, GNU Cim Grammar): Move to...
3243 * tests/existing.at: here.
3244
3245 2002-04-07 Akim Demaille <akim@epita.fr>
3246
3247 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
3248 nritems.
3249 Adjust dependencies.
3250
3251 2002-04-07 Akim Demaille <akim@epita.fr>
3252
3253 * src/reader.c: Normalize increments to prefix form.
3254
3255 2002-04-07 Akim Demaille <akim@epita.fr>
3256
3257 * src/reader.c, symtab.c: Remove debugging code.
3258
3259 2002-04-07 Akim Demaille <akim@epita.fr>
3260
3261 Rename all the `bucket's as `symbol_t'.
3262
3263 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
3264 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
3265 * src/symtab.c, src/symtab.h (bucket): Rename as...
3266 (symbol_t): this.
3267 (symbol_list_new, bucket_check_defined, bucket_make_alias)
3268 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
3269 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
3270 (buckets_new, buckets_free, buckets_do): Rename as...
3271 (symbol_list_new, symbol_check_defined, symbol_make_alias)
3272 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
3273 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
3274 (symbols_new, symbols_free, symbols_do): these.
3275
3276 2002-04-07 Akim Demaille <akim@epita.fr>
3277
3278 Use lib/hash for the symbol table.
3279
3280 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
3281 EOF.
3282 * src/lex.c (lex): Set the `number' member of new terminals.
3283 * src/reader.c (bucket_check_defined, bucket_make_alias)
3284 (bucket_check_alias_consistence, bucket_translation): New.
3285 (reader, grammar_free, readgram, token_translations_init)
3286 (packsymbols): Adjust.
3287 (reader): Number the predefined tokens.
3288 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
3289 for predefined tokens.
3290 * src/symtab.h (bucket): Remove all the hash table related
3291 members.
3292 * src/symtab.c (symtab): Replace by...
3293 (bucket_table): this.
3294 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
3295 (buckets_new, buckets_do): New.
3296
3297 2002-04-07 Akim Demaille <akim@epita.fr>
3298
3299 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
3300 (start_symbol, max_user_token_number, semantic_parser)
3301 (error_token_number): Initialize.
3302 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
3303 Initialize.
3304 (reader): Don't.
3305 (errtoken, eoftoken, undeftoken, axiom): Extern.
3306
3307 2002-04-07 Akim Demaille <akim@epita.fr>
3308
3309 * src/gram.h (rule_s): prec and precsym are now pointers
3310 to the bucket giving the priority/associativity.
3311 Member `associativity' removed: useless.
3312 * src/reduce.c, src/conflicts.c: Adjust.
3313
3314 2002-04-07 Akim Demaille <akim@epita.fr>
3315
3316 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
3317 Properly escape the symbols' TAG when outputting them.
3318
3319 2002-04-07 Akim Demaille <akim@epita.fr>
3320
3321 * src/lalr.h (LA): Is a bitsetv, not bitset*.
3322
3323 2002-04-07 Akim Demaille <akim@epita.fr>
3324
3325 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
3326 (LArule): this, which is an array to rule_t*.
3327 * src/print.c, src/conflicts.c: Adjust.
3328
3329 2002-04-07 Akim Demaille <akim@epita.fr>
3330
3331 * src/gram.h (rule_t): Rename `number' as `user_number'.
3332 `number' is a new member.
3333 Adjust dependencies.
3334 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
3335
3336 2002-04-07 Akim Demaille <akim@epita.fr>
3337
3338 As a result of the previous patch, it is no longer needed
3339 to reorder ritem itself.
3340
3341 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
3342
3343 2002-04-07 Akim Demaille <akim@epita.fr>
3344
3345 Be sure never to walk through RITEMS, but use only data related to
3346 the rules themselves. RITEMS should be banished.
3347
3348 * src/output.c (output_token_translations): Rename as...
3349 (prepare_tokens): this.
3350 In addition to `translate', prepare the muscles `tname' and
3351 `toknum', which were handled by...
3352 (output_rule_data): this.
3353 Remove, and move the remainder of its outputs into...
3354 (prepare_rules): this new routines, which also merges content from
3355 (output_gram): this.
3356 (prepare_rules): Be sure never to walk through RITEMS.
3357 (output_stos): Rename as...
3358 (prepare_stos): this.
3359 (output): Always invoke prepare_states, after all, just don't use it
3360 in the output if you don't need it.
3361
3362 2002-04-07 Akim Demaille <akim@epita.fr>
3363
3364 * src/LR0.c (new_state): Display `nstates' as the name of the
3365 newly created state.
3366 Adjust to initialize first_state and last_state if needed.
3367 Be sure to distinguish the initial from the final state.
3368 (new_states): Create the itemset of the initial state, and use
3369 new_state.
3370 * src/closure.c (closure): Now that the initial state has its
3371 items properly set, there is no need for a special case when
3372 creating `ruleset'.
3373
3374 As a result, now the rule 0, reducing to $axiom, is visible in the
3375 outputs. Adjust the test suite.
3376
3377 * tests/conflicts.at (Solved SR Conflicts)
3378 (Unresolved SR Conflicts): Adjust.
3379 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
3380 * tests/conflicts.at (S/R in initial): New.
3381
3382 2002-04-07 Akim Demaille <akim@epita.fr>
3383
3384 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
3385 the RHS of the rules.
3386 * src/output.c (output_gram): Likewise.
3387
3388 2002-04-07 Akim Demaille <akim@epita.fr>
3389
3390 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
3391 bucket.
3392 Adjust all dependencies.
3393 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
3394 `number' of the buckets too.
3395 * src/gram.h: Include `symtab.h'.
3396 (associativity): Move to...
3397 * src/symtab.h: here.
3398 No longer include `gram.h'.
3399
3400 2002-04-07 Akim Demaille <akim@epita.fr>
3401
3402 * src/gram.h, src/gram.c (rules_rhs_length): New.
3403 (ritem_longest_rhs): Use it.
3404 * src/gram.h (rule_t): `number' is a new member.
3405 * src/reader.c (packgram): Set it.
3406 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
3407 the end of `rules', and count them out of `nrules'.
3408 (reduce_output, dump_grammar): Adjust.
3409 * src/print.c (print_grammar): It is no longer needed to check for
3410 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
3411 * tests/reduce.at (Reduced Automaton): New test.
3412
3413 2002-04-07 Akim Demaille <akim@epita.fr>
3414
3415 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
3416 lacking `+ 1' to nrules, Bison reported as useless a token if it
3417 was used solely to set the precedence of the last rule...
3418
3419 2002-04-07 Akim Demaille <akim@epita.fr>
3420
3421 * data/bison.c++, data/bison.simple: Don't output the current file
3422 name in #line, to avoid useless diffs between two identical
3423 outputs under different names.
3424
3425 2002-04-07 Akim Demaille <akim@epita.fr>
3426
3427 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
3428 Normalize loops to using `< nrules + 1', not `<= nrules'.
3429
3430 2002-04-07 Akim Demaille <akim@epita.fr>
3431
3432 * TODO: Update.
3433
3434 2002-04-07 Akim Demaille <akim@epita.fr>
3435
3436 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
3437 bucket.value as bucket.number.
3438
3439 2002-04-07 Akim Demaille <akim@epita.fr>
3440
3441 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
3442 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
3443 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
3444 RHS, instead of being an index in RITEMS.
3445
3446 2002-04-04 Paul Eggert <eggert@twinsun.com>
3447
3448 * doc/bison.texinfo: Update copyright date.
3449 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
3450 (Symbols): Warn about running Bison in one character set,
3451 but compiling and/or running in an incompatible one.
3452 Warn about character code 256, too.
3453
3454 2002-04-03 Paul Eggert <eggert@twinsun.com>
3455
3456 * src/bison.data (YYSTACK_ALLOC): Depend on whether
3457 YYERROR_VERBOSE is nonzero, not whether it is defined.
3458
3459 Merge changes from bison-1_29-branch.
3460
3461 2002-03-20 Paul Eggert <eggert@twinsun.com>
3462
3463 Merge fixes from Debian bison_1.34-1.diff.
3464
3465 * configure.in (AC_PREREQ): 2.53.
3466
3467 2002-03-20 Akim Demaille <akim@epita.fr>
3468
3469 * src/conflicts.c (log_resolution): Argument `resolution' is const.
3470
3471 2002-03-19 Paul Eggert <eggert@twinsun.com>
3472
3473 * src/bison.simple (YYCOPY): New macro.
3474 (YYSTACK_RELOCATE): Use it.
3475 Remove Type arg; no longer needed. All callers changed.
3476 (yymemcpy): Remove; no longer needed.
3477
3478 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
3479 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3480
3481 2002-03-19 Akim Demaille <akim@epita.fr>
3482
3483 Test and fix the #line outputs.
3484
3485 * tests/atlocal.at (GCC): New.
3486 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
3487 (Prologue synch line, ,%union synch line, Postprologue synch line)
3488 (Action synch line, Epilogue synch line): New tests.
3489 * src/reader.c (parse_union_decl): Define the muscle stype_line.
3490 * data/bison.simple, data/bison.c++: Use it.
3491
3492 2002-03-19 Akim Demaille <akim@epita.fr>
3493
3494 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
3495 (Solved SR Conflicts, %expect not enough, %expect right)
3496 (%expect too much): Move to...
3497 * tests/conflicts.at: this new file.
3498
3499 2002-03-19 Akim Demaille <akim@epita.fr>
3500
3501 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
3502 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
3503 that we can move to enums for instance.
3504 * src/output.c (token_definitions_output): Output a list of
3505 `token-name, token-number' instead of the #define.
3506 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
3507
3508 2002-03-14 Akim Demaille <akim@epita.fr>
3509
3510 Use Gettext 0.11.1.
3511
3512 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
3513
3514 * data/bison.c++: Make the user able to add members to the generated
3515 parser by subclassing.
3516
3517 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
3518
3519 * src/reader.c (read_additionnal_code): `c' should be an integer, not
3520 a character.
3521 Reported by Nicolas Tisserand and Nicolas Burrus.
3522
3523 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
3524
3525 * src/reader.c: Warn about lacking semi-colons, do not complain.
3526
3527 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
3528
3529 * data/bison.c++: Remove a debug line.
3530
3531 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
3532
3533 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
3534 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
3535 provide a default implementation.
3536
3537 2002-03-04 Akim Demaille <akim@epita.fr>
3538
3539 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
3540 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
3541 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
3542 * tests/semantic.at (Parsing Guards): Similarly.
3543 * src/reader.at (readgram): Complain if the last rule is not ended
3544 with a semi-colon.
3545
3546 2002-03-04 Akim Demaille <akim@epita.fr>
3547
3548 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
3549 * src/closure.c: here.
3550 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
3551 RTC.
3552 * src/warshall.h, src/warshall.c: Remove.
3553 * tests/sets.at (Broken Closure): Adjust.
3554
3555 2002-03-04 Akim Demaille <akim@epita.fr>
3556
3557 * src/output.c (output_skeleton): tempdir is const.
3558 bytes_read is unused.
3559
3560 2002-03-04 Akim Demaille <akim@epita.fr>
3561
3562 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
3563 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
3564 Update.
3565 From Michael Hayes.
3566
3567 2002-03-04 Akim Demaille <akim@epita.fr>
3568
3569 * src/closure.c (closure): `r' is unused.
3570
3571 2002-03-04 Akim Demaille <akim@epita.fr>
3572
3573 * tests/sets.at (Broken Closure): Add the ending `;'.
3574 * src/reader.at (readgram): Complain if a rule is not ended with a
3575 semi-colon.
3576
3577 2002-03-04 Akim Demaille <akim@epita.fr>
3578
3579 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
3580 (count_sr_conflicts): Use bitset_count.
3581 * src/reduce.c (inaccessable_symbols): Ditto.
3582 (bits_size): Remove.
3583 * src/warshall.h, src/warshall.c: Convert to bitsetv.
3584
3585 2002-03-04 Akim Demaille <akim@epita.fr>
3586
3587 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
3588 * src/reduce.c: Remove the `bitset_zero's following the
3589 `bitset_create's, as now it is performed by the latter.
3590
3591 2002-03-04 Akim Demaille <akim@epita.fr>
3592
3593 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
3594 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
3595 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
3596 latest sources from Michael.
3597
3598 2002-03-04 Akim Demaille <akim@epita.fr>
3599
3600 * src/output.c (output): Don't free the grammar.
3601 * src/reader.c (grammar_free): New.
3602 * src/main.c (main): Call it and don't free symtab here.
3603
3604 2002-03-04 Akim Demaille <akim@epita.fr>
3605
3606 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
3607 before returning.
3608 Reported by Benoit Perrot.
3609
3610 2002-03-04 Akim Demaille <akim@epita.fr>
3611
3612 Use bitset operations when possible, not loops over bits.
3613
3614 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
3615 bitset_or.
3616 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
3617 * src/reduce.c (useless_nonterminals): Formatting changes.
3618 * src/warshall.c (TC): Use bitset_or.
3619
3620 2002-03-04 Akim Demaille <akim@epita.fr>
3621
3622 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
3623 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
3624 Ditto.
3625
3626 2002-03-04 Akim Demaille <akim@epita.fr>
3627
3628 * src/lalr.c (F): Now a bitset*.
3629 Adjust all dependencies.
3630
3631 2002-03-04 Akim Demaille <akim@epita.fr>
3632
3633 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
3634 Adjust all dependencies.
3635
3636 2002-03-04 Akim Demaille <akim@epita.fr>
3637
3638 * src/L0.c, src/LR0.h (nstates): Be size_t.
3639 Adjust comparisons (signed vs unsigned).
3640 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
3641 bitset*.
3642 Adjust all dependencies.
3643
3644 2002-03-04 Akim Demaille <akim@epita.fr>
3645
3646 * src/closure.c (firsts): Now, also a bitset.
3647 Adjust all dependencies.
3648 (varsetsize): Remove, now unused.
3649 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
3650
3651 2002-03-04 Akim Demaille <akim@epita.fr>
3652
3653 * src/print.c: Convert to use bitset.h, not hand coded iterations
3654 over ints.
3655
3656 2002-03-04 Akim Demaille <akim@epita.fr>
3657
3658 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
3659
3660 2002-03-04 Akim Demaille <akim@epita.fr>
3661
3662 * src/closure.c (ruleset): Be a bitset.
3663 (rulesetsize): Remove.
3664
3665 2002-03-04 Akim Demaille <akim@epita.fr>
3666
3667 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
3668 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
3669 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
3670 * src/closure.c (fderives): Be an array of bitsets.
3671
3672 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
3673
3674 * data/bison.c++: Merge the two generated headers. Insert a copyright
3675 notice in each output file.
3676
3677 2002-02-28 Akim Demaille <akim@epita.fr>
3678
3679 * data/bison.c++: Copy the prologue of bison.simple to fetch
3680 useful M4 definitions, such as b4_header_guard.
3681
3682 2002-02-25 Akim Demaille <akim@epita.fr>
3683
3684 * src/getargs.c (version): Give the name of the authors, and use a
3685 translator friendly scheme for the bgr
3686 copyright notice.
3687
3688 2002-02-25 Akim Demaille <akim@epita.fr>
3689
3690 * src/output.c (header_output): Remove, now handled completely via
3691 M4.
3692
3693 2002-02-25 Akim Demaille <akim@epita.fr>
3694
3695 * m4/m4.m4: New, from CVS Autoconf.
3696 * configure.in: Invoke it.
3697 * src/output.c (output_skeleton): Use its result instead of the
3698 hard coded name.
3699
3700 2002-02-25 Akim Demaille <akim@epita.fr>
3701
3702 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
3703 Fileutils 4.1.5.
3704 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
3705 * src/output.c (output_skeleton): Use mkstemp to create a real
3706 temporary file.
3707 Move the filling of `skeleton' and its muscle to...
3708 (prepare): here.
3709 (output): Move the definition of the prologue muscle to...
3710 (prepare): here.
3711 * src/system.h (DEFAULT_TMPDIR): New.
3712
3713 2002-02-14 Paul Eggert <eggert@twinsun.com>
3714
3715 Remove the support for C++ namespace cleanliness; it was
3716 causing more problems than it was curing, since it didn't work
3717 properly on some nonstandard C++ compilers. This can wait
3718 for a proper C++ parser.
3719
3720 * NEWS: Document this.
3721 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
3722 of C++, as it's treated like C now.
3723 * src/bison.simple (YYSTD): Remove.
3724 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
3725 Treat C++ just like Standard C instead of trying to support
3726 namespace cleanliness.
3727
3728 2002-02-14 Akim Demaille <akim@epita.fr>
3729
3730 * tests/regression.at (else): Adjust to Andreas' change.
3731
3732 2002-02-14 Akim Demaille <akim@epita.fr>
3733
3734 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
3735
3736 2002-02-13 Andreas Schwab <schwab@suse.de>
3737
3738 * src/output.c (output_rule_data): Don't output NULL, it might
3739 not be defined yet.
3740
3741 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
3742
3743 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
3744 (Copyright notice): Update.
3745
3746 2002-02-11 Akim Demaille <akim@epita.fr>
3747
3748 * tests/regression.at (%nonassoc and eof): Don't include
3749 nonportable headers.
3750
3751 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
3752
3753 * data/bison.c++: Correct error recovery. Make the user able to
3754 initialize the starting location.
3755
3756 2002-02-07 Akim Demaille <akim@epita.fr>
3757
3758 * tests/input.at: New.
3759
3760 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
3761
3762 * data/bison.c++: Replace some direct m4 expansions by constants. Be
3763 more consistent when naming methods and variables. Put preprocessor
3764 directives around tables only needed for debugging.
3765
3766 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
3767
3768 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
3769 C++ parsers.
3770 (yy::b4_name::parse): Use print_.
3771
3772 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
3773
3774 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
3775
3776 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
3777
3778 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
3779 C++ parsers.
3780 (yy::b4_name::parse): Build verbose error messages, and use error_.
3781
3782 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
3783
3784 * data/bison.c++: Fix m4 quoting in comments.
3785
3786 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
3787
3788 * data/bison.c++: Adjust the parser code. Fix some muscles that were
3789 not expanded by m4.
3790
3791 2002-02-05 Akim Demaille <akim@epita.fr>
3792
3793 * data/bison.c++: Adjust to the M4 back end.
3794 More is certainly needed.
3795
3796 2002-02-05 Akim Demaille <akim@epita.fr>
3797
3798 Give a try to M4 as a back end.
3799
3800 * lib/readpipe.c: New, from wdiff.
3801 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
3802 BISON_HAIRY.
3803 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
3804 specific values. Now it is m4 that performs the lookup.
3805 * src/parse-skel.y: Remove.
3806 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
3807 * src/output.c (actions_output, guards_output)
3808 (token_definitions_output): No longer keeps track of the output
3809 line number, hence remove the second argument.
3810 (guards_output): Check against the guard member of a rule, not the
3811 action member.
3812 Adjust callers.
3813 (output_skeleton): Don't look for the skeleton location, let m4 do
3814 that.
3815 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
3816 file will be used.
3817 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
3818 (prepare): Given that for the time being changesyntax is not
3819 usable in M4, rename the muscles using `-' to `_'.
3820 Define `defines_flag', `output_parser_name' and `output_header_name'.
3821 * src/output.h (actions_output, guards_output)
3822 (token_definitions_output): Adjust prototypes.
3823 * src/scan-skel.l: Instead of scanning the skeletons, it now
3824 processes the output of m4: `__oline__' and `#output'.
3825 * data/bison.simple: Adjust to be used by M4(sugar).
3826 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
3827 to date.
3828 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
3829 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
3830 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
3831 shamelessly stolen from CVS Autoconf.
3832
3833 2002-02-05 Akim Demaille <akim@epita.fr>
3834
3835 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
3836 * configure.in: Check for the declarations of free and malloc.
3837 * src/muscle_tab.c: Adjust.
3838
3839 2002-02-05 Akim Demaille <akim@epita.fr>
3840
3841 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
3842 which have no values.
3843
3844 2002-02-05 Akim Demaille <akim@epita.fr>
3845
3846 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
3847 * data/: here.
3848
3849 2002-01-29 Paul Eggert <eggert@twinsun.com>
3850
3851 * src/bison.simple (YYSIZE_T): Do not define merely because
3852 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
3853 On some platforms, <alloca.h> does not declare YYSTD (size_t).
3854
3855 2002-01-27 Akim Demaille <akim@epita.fr>
3856
3857 Fix `%nonassoc and eof'.
3858
3859 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
3860 which were not properly copied! Replace
3861 memcpy (res->errs, src->errs, src->nerrs);
3862 with
3863 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
3864 !!!
3865 * tests/regression.at (%nonassoc and eof): Adjust to newest
3866 Autotest: `.' is not in the PATH.
3867
3868 2002-01-27 Akim Demaille <akim@epita.fr>
3869
3870 * tests/sets.at (AT_EXTRACT_SETS): New.
3871 (Nullable): Use it.
3872 (Firsts): New.
3873
3874 2002-01-26 Akim Demaille <akim@epita.fr>
3875
3876 * tests/actions.at, tests/calc.at, tests/headers.at,
3877 * tests/torture.at: Adjust to the newest Autotest which no longer
3878 forces `.' in the PATH.
3879
3880 2002-01-25 Akim Demaille <akim@epita.fr>
3881
3882 * tests/regression.at (%nonassoc and eof): New.
3883 Suggested by Robert Anisko.
3884
3885 2002-01-24 Akim Demaille <akim@epita.fr>
3886
3887 Bison dumps core when trying to complain about broken input files.
3888 Reported by Cris van Pelt.
3889
3890 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
3891 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
3892 into...
3893 (Invalid inputs): Strengthen: exercise parse_percent_token.
3894
3895 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
3896
3897 * src/Makefile.am: Add bison.c++.
3898 * src/bison.c++: New skeleton.
3899
3900 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
3901
3902 * po/it.po: New.
3903
3904 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
3905
3906 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
3907
3908 2002-01-20 Marc Autret <marc@gnu.org>
3909
3910 * src/files.c (compute_output_file_names): Fix
3911
3912 2002-01-20 Marc Autret <marc@gnu.org>
3913
3914 * tests/output.at: New test.
3915 * src/files.c (compute_base_names): Don't map extensions when
3916 the YACC flag is set, use defaults.
3917 Reported by Evgeny Stambulchik.
3918
3919 2002-01-20 Marc Autret <marc@gnu.org>
3920
3921 * src/system.h: Need to define __attribute__ away for non-GCC
3922 compilers as well (i.e. the vendor C compiler).
3923 Suggested by Albert Chin-A-Young.
3924
3925 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
3926
3927 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
3928 canonical definition.
3929 * src/system.h: Use the canonical definition for PARAMS (avoids
3930 a conflict with the macro from lib/hash.h).
3931
3932 2002-01-11 Akim Demaille <akim@epita.fr>
3933
3934 * configure.in: Use AC_FUNC_STRNLEN.
3935 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
3936
3937 2002-01-09 Akim Demaille <akim@epita.fr>
3938
3939 * src/files.c, src/files.h (output_infix): New.
3940 (tab_extension): Remove.
3941 (compute_base_names): Compute the former, drop the latter.
3942 * src/output.c (prepare): Insert the muscles `output-infix', and
3943 `output-suffix'.
3944 * src/parse-skel.y (string, string.1): New.
3945 (section.header): Use it.
3946 (section.yacc): Remove.
3947 (prefix): Remove too.
3948 * src/scan-skel.l: Adjust.
3949 * src/bison.simple, src/bison.hairy: Adjust.
3950
3951 2002-01-09 Akim Demaille <akim@epita.fr>
3952
3953 * configure.in (WERROR_CFLAGS): Compute it.
3954 * src/Makefile.am (CFLAGS): Pass it.
3955 * tests/atlocal.in (CFLAGS): Idem.
3956 * src/files.c: Fix a few warnings.
3957 (get_extension_index): Remove, unused.
3958
3959 2002-01-08 Akim Demaille <akim@epita.fr>
3960
3961 * src/getargs.c (AS_FILE_NAME): New.
3962 (getargs): Use it to convert DOSish file names.
3963 * src/files.c (base_name): Rename as full_base_name to avoid
3964 clashes with `base_name ()'.
3965 (filename_split): New.
3966 (compute_base_names): N-th rewrite, using filename_split.
3967
3968 2002-01-08 Akim Demaille <akim@epita.fr>
3969
3970 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
3971 New, stolen from the Fileutils 4.1.
3972 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
3973 * configure.in: Check for the presence of memrchr, and of its
3974 prototype.
3975
3976 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
3977
3978 * lib/hash.h (__P): Added definition for this macro.
3979 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
3980 BUILT_SOURCES, to ensure they are generated first.
3981 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
3982 %error-verbose to allow bootstrapping with bison 1.30x.
3983
3984 2002-01-06 Akim Demaille <akim@epita.fr>
3985
3986 * src/reader.c (parse_braces): Don't fetch the next char, the
3987 convention is to fetch on entry.
3988 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
3989 'switch' without a following semicolon.
3990 * tests/regression.at (braces parsing): New.
3991
3992 2002-01-06 Akim Demaille <akim@epita.fr>
3993
3994 Bison is dead wrong in its RR conflict reports.
3995
3996 * tests/torture.at (GNU Cim Grammar): New.
3997 * src/conflicts.c (count_rr_conflicts): Fix.
3998
3999 2002-01-06 Akim Demaille <akim@epita.fr>
4000
4001 Creating package.m4 from configure.ac causes too many problems.
4002
4003 * tests/Makefile.am (package.m4): Create it by hand,
4004 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
4005
4006 2002-01-06 Akim Demaille <akim@epita.fr>
4007
4008 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
4009 skeleton.h.
4010
4011 2002-01-04 Paul Eggert <eggert@twinsun.com>
4012
4013 * doc/bison.texinfo (Debugging):
4014 Remove YYSTDERR; it's no longer defined or used.
4015 Also, s/cstdio.h/cstdio/.
4016
4017 2002-01-03 Akim Demaille <akim@epita.fr>
4018
4019 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
4020
4021 2002-01-03 Akim Demaille <akim@epita.fr>
4022
4023 * src/parse-skel.y (process_skeleton): Don't bind the parser's
4024 tracing code to --trace, wait for a better --trace option, with
4025 args.
4026
4027 2002-01-03 Akim Demaille <akim@epita.fr>
4028
4029 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
4030 The ISO C++ standard is extremely clear about it: stderr is
4031 considered a macro, not a regular symbol (see table 94 `Header
4032 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
4033 Therefore std:: does not apply to it. It still does with fprintf.
4034 Also, s/cstdio.h/cstdio/.
4035
4036 2002-01-03 Akim Demaille <akim@epita.fr>
4037
4038 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
4039 for non system headers.
4040
4041 2002-01-02 Akim Demaille <akim@epita.fr>
4042
4043 Equip the skeleton chain with location tracking, runtime trace,
4044 pure parser and scanner.
4045
4046 * src/parse-skel.y: Request a pure parser, locations, and prefix
4047 renaming.
4048 (%union): Having several members with the same type does not help
4049 type mismatches, simplify.
4050 (YYPRINT, yyprint): New.
4051 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
4052 (skel_error): this.
4053 Handle locations.
4054 * src/scan-skel.l: Adjust to these changes.
4055 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
4056 (LOCATION_PRINT, skel_control_t): New.
4057
4058 2001-12-30 Akim Demaille <akim@epita.fr>
4059
4060 * src/parse-skel.y: Get rid of the shift/reduce conflict:
4061 replace `gb' with BLANKS.
4062 * src/scan-skel.l: Adjust.
4063
4064 2001-12-30 Akim Demaille <akim@epita.fr>
4065
4066 * src/system.h: We don't need nor want bcopy.
4067 Throw away MS-DOS crap: we don't need getpid.
4068 * configure.in: We don't need strndup. It was even causing
4069 problems: because Flex includes the headers *before* us,
4070 _GNU_SOURCE is not defined by config.h, and therefore strndup was
4071 not visible.
4072 * lib/xstrndup.c: New.
4073 * src/scan-skel.l: Use it.
4074 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
4075 * src/parse-skel.y: Use %directives instead of #defines.
4076
4077 2001-12-30 Akim Demaille <akim@epita.fr>
4078
4079 * src/skeleton.h: New.
4080 * src/output.c (output_parser, output_master_parser): Remove, dead
4081 code.
4082 * src/output.h (get_lines_number, actions_output, guards_output)
4083 (token_definitions_output): Prototype them.
4084 * src/parse-skel.y: Add the license notice.
4085 Include output.h and skeleton.h.
4086 (process_skeleton): Returns void, and takes a single parameter.
4087 * src/scan-skel.l: Add the license notice.
4088 Include skeleton.h.
4089 Don't use %option yylineno: it seems that then Flex imagines
4090 REJECT has been used, and therefore it won't reallocate its
4091 buffers (which makes no other sense to me than a bug). It results
4092 in warnings for `unused: yy_flex_realloc'.
4093
4094 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
4095
4096 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
4097 (MUSCLE_INSERT_PREFIX): ...to there.
4098 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
4099 (MUSCLE_INSERT_PREFIX): Move from here...
4100
4101 * src/bison.hairy: Add a section directive. Put braces around muscle
4102 names. This parser skeleton is still broken, but Bison should not
4103 choke on a bad muscle 'syntax'.
4104 * src/bison.simple: Add a section directive. Put braces around muscle
4105 names.
4106
4107 * src/files.h (strsuffix, stringappend): Add declarations.
4108 (tab_extension): Add declaration.
4109 (short_base_name): Add declaration.
4110
4111 * src/files.c (strsuffix, stringappend): No longer static. These
4112 functions are used in the skeleton parser.
4113 (tab_extension): New.
4114 (compute_base_names): Use the computations done in this function
4115 to guess if the generated parsers should have '.tab' in their
4116 names.
4117 (short_base_name): No longer static.
4118
4119 * src/output.c (output_skeleton): New.
4120 (output): Disable call to output_master_parser, and give a try to
4121 a new skeleton handling system.
4122 (guards_output, actions_output): No longer static.
4123 (token_definitions_output, get_lines_number): No longer static.
4124
4125 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
4126
4127 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
4128 parse-skel.y.
4129
4130 * src/parse-skel.y: New file.
4131 * src/scan-skel.l: New file.
4132
4133 2001-12-29 Akim Demaille <akim@epita.fr>
4134
4135 %name-prefix is broken.
4136
4137 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
4138 Adjust all dependencies.
4139 * tests/headers.at (export YYLTYPE): Strengthen this test: use
4140 %name-prefix.
4141
4142 Renaming yylval but not yylloc is not consistent. Now we do.
4143
4144 * src/bison.simple: Prefix yylloc if used.
4145 * doc/bison.texinfo (Decl Summary): Document that.
4146
4147 2001-12-29 Akim Demaille <akim@epita.fr>
4148
4149 * doc/bison.texinfo: Promote `%long-directive' over
4150 `%long_directive'.
4151 Remove all references to fixed-output-files, yacc is enough.
4152
4153 2001-12-29 Akim Demaille <akim@epita.fr>
4154
4155 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
4156 user prologue. These are defaults.
4157 * tests/actions.at (Mid-rule actions): Make sure the user can
4158 define YYDEBUG and YYERROR_VERBOSE.
4159
4160 2001-12-29 Akim Demaille <akim@epita.fr>
4161
4162 * src/output.c (header_output): Don't forget to export YYLTYPE and
4163 yylloc.
4164 * tests/headers.at (export YYLTYPE): New, make sure it does.
4165 * tests/regression.at (%union and --defines, Invalid CPP headers):
4166 Move to...
4167 * tests/headers.at: here.
4168
4169 2001-12-29 Akim Demaille <akim@epita.fr>
4170
4171 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
4172
4173 2001-12-29 Akim Demaille <akim@epita.fr>
4174
4175 * tests/actions.at (Mid-rule actions): Output on a single line
4176 instead of several.
4177
4178 2001-12-29 Akim Demaille <akim@epita.fr>
4179
4180 * doc/bison.texinfo: Formatting changes.
4181
4182 2001-12-29 Akim Demaille <akim@epita.fr>
4183
4184 Don't store the token defs in a muscle, just be ready to output it
4185 on command. Now possible via `symbols'. Fixes a memory leak.
4186
4187 * src/output.c (token_definitions_output): New.
4188 (output_parser, header_output): Use it.
4189 * src/reader.c (symbols_save): Remove.
4190
4191 2001-12-29 Akim Demaille <akim@epita.fr>
4192
4193 * src/bison.simple: Do not provide a default for YYSTYPE and
4194 YYLTYPE before the user's prologue. Otherwise it's hardly... a
4195 default.
4196
4197 2001-12-29 Akim Demaille <akim@epita.fr>
4198
4199 Mid-rule actions are simply... ignored!
4200
4201 * src/reader.c (readgram): Be sure to attach mid-rule actions to
4202 the empty-rule associated to the dummy symbol, not to the host
4203 rule.
4204 * tests/actions.at (Mid-rule actions): New.
4205
4206 2001-12-29 Akim Demaille <akim@epita.fr>
4207
4208 Memory leak.
4209
4210 * src/reader.c (reader): Free grammar.
4211
4212 2001-12-29 Akim Demaille <akim@epita.fr>
4213
4214 Memory leak.
4215
4216 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
4217 since it allocates it for each state, although only one is needed.
4218 (allocate_storage): Do it here.
4219
4220 2001-12-29 Akim Demaille <akim@epita.fr>
4221
4222 * src/options.h, src/options.c (create_long_option_table): Rename
4223 as...
4224 (long_option_table_new): this, with a clearer prototype.
4225 (percent_table): Remove, unused,
4226 * src/getargs.c (getargs): Adjust.
4227
4228 2001-12-29 Akim Demaille <akim@epita.fr>
4229
4230 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
4231 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
4232 as states.
4233
4234 2001-12-29 Akim Demaille <akim@epita.fr>
4235
4236 * src/lalr.c (build_relations): Rename `states' as `states1'.
4237 Sorry, I don't understand exactly what it is, no better name...
4238
4239 2001-12-29 Akim Demaille <akim@epita.fr>
4240
4241 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
4242 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
4243 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
4244 as rules.
4245
4246 2001-12-29 Akim Demaille <akim@epita.fr>
4247
4248 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
4249 ago.
4250
4251 2001-12-29 Akim Demaille <akim@epita.fr>
4252
4253 * src/reader.c, src/reader.h (user_toknums): Remove.
4254 Adjust all users to use symbols[i]->user_token_number.
4255
4256 2001-12-29 Akim Demaille <akim@epita.fr>
4257
4258 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
4259 Adjust all users to use symbols[i]->prec or ->assoc.
4260
4261 2001-12-29 Akim Demaille <akim@epita.fr>
4262
4263 * src/reader.c, src/reader.h (tags): Remove.
4264 Adjust all users to use symbols[i]->tag.
4265
4266 2001-12-29 Akim Demaille <akim@epita.fr>
4267
4268 * src/gram.h, src/gram.c (symbols): New, similar to state_table
4269 and rule_table.
4270 * src/reader.c (packsymbols): Fill this table.
4271 Drop sprec.
4272 * src/conflicts.c (resolve_sr_conflict): Adjust.
4273 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
4274 single table.
4275 Use symbols[i]->tag instead of tags[i].
4276
4277 2001-12-29 Akim Demaille <akim@epita.fr>
4278
4279 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
4280 In addition, put a comment in there, to replace...
4281 * tests/regression.at (%union and C comments): Remove.
4282
4283 2001-12-29 Akim Demaille <akim@epita.fr>
4284
4285 * tests/regression.at (Web2c Actions): Blindly move the actual
4286 output as expected output. The contents *seem* right to me, but I
4287 can't pretend reading perfectly parser tables... Nonetheless, all
4288 the other tests pass correctly, the table look OK, even though the
4289 presence of `$axiom' is to be noted: AFAICS it is useless (but
4290 harmless).
4291
4292 2001-12-29 Akim Demaille <akim@epita.fr>
4293
4294 * src/reader.c (readgram): Don't add the rule 0 if there were no
4295 rules read. In other words, add it _after_ having performed
4296 grammar sanity checks.
4297 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
4298
4299 2001-12-29 Akim Demaille <akim@epita.fr>
4300
4301 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
4302 visible, and some states have now a different number.
4303
4304 2001-12-29 Akim Demaille <akim@epita.fr>
4305
4306 * src/reader.c (readgram): Bind the initial rule's lineno to that
4307 of the first rule.
4308 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
4309 (Solved SR Conflicts): Adjust rule 0's line number.
4310
4311 2001-12-29 Akim Demaille <akim@epita.fr>
4312
4313 Fix the `GAWK Grammar' failure.
4314
4315 * src/LR0.c (final_state): Initialize to -1 so that we do compute
4316 the reductions of the first state which was mistakenly confused
4317 with the final state because precisely final_state was initialized
4318 to 0.
4319 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
4320 now noticed by Bison.
4321 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
4322 have a reduction on $default.
4323
4324 2001-12-29 Akim Demaille <akim@epita.fr>
4325
4326 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
4327 rule line numbers.
4328 * src/closure.c (print_closure): Likewise.
4329 * src/derives.c (print_derives): Likewise.
4330 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
4331 now.
4332
4333 2001-12-29 Akim Demaille <akim@epita.fr>
4334
4335 * src/lalr.c (lookaheads_print): New.
4336 (lalr): Call it when --trace-flag.
4337 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
4338 are dumped.
4339
4340 2001-12-29 Akim Demaille <akim@epita.fr>
4341
4342 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
4343 when walking through ritem, even via rule->rhs.
4344 * src/reduce.c (dump_grammar, useful_production, reduce_output)
4345 (useful_production, useless_nonterminals): Likewise.
4346 (reduce_grammar_tables): Likewise, plus update nritems.
4347 * src/nullable.c (set_nullable): Likewise.
4348 * src/lalr.c (build_relations): Likewise.
4349 * tests/sets.at (Nullable): Adjust.
4350 Fortunately, now, the $axiom is no longer nullable.
4351
4352 2001-12-29 Akim Demaille <akim@epita.fr>
4353
4354 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
4355 the 0-sentinel.
4356 * src/gram.c (ritem_longest_rhs): Likewise.
4357 * src/reduce.c (nonterminals_reduce): Likewise.
4358 * src/print_graph.c (print_graph): Likewise.
4359 * src/output.c (output_rule_data): Likewise.
4360 * src/nullable.c (set_nullable): Likewise.
4361
4362 2001-12-29 Akim Demaille <akim@epita.fr>
4363
4364 * src/output.c: Comment changes.
4365
4366 2001-12-27 Paul Eggert <eggert@twinsun.com>
4367
4368 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
4369 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
4370 Sparc, as they were causing more porting problems than the
4371 (minor) performance improvement was worth.
4372
4373 Also, catch up with 1.31's YYSTD.
4374
4375 2001-12-27 Akim Demaille <akim@epita.fr>
4376
4377 * src/output.c (output_gram): Rely on nritems, not the
4378 0-sentinel. See below.
4379 Use -1 as separator, not 0.
4380 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
4381 Rely on -1 as separator in yyrhs, instead of 0.
4382 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
4383 twice `Now at end of input', therefore there are two lines less to
4384 expect.
4385
4386 2001-12-27 Akim Demaille <akim@epita.fr>
4387
4388 * tests/regression.at (Unresolved SR Conflicts):
4389 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
4390 below.
4391
4392 2001-12-27 Akim Demaille <akim@epita.fr>
4393
4394 * src/LR0.c (new_state): Recognize the final state by the fact it
4395 is reached by eoftoken.
4396 (insert_start_shifting_state, insert_eof_shifting_state)
4397 (insert_accepting_state, augment_automaton): Remove, since now
4398 these states are automatically computed from the initial state.
4399 (generate_states): Adjust.
4400 * src/print.c: When reporting a rule number to the user, substract
4401 1, so that the axiom rule is rule 0, and the first user rule is 1.
4402 * src/reduce.c: Likewise.
4403 * src/print_graph.c (print_core): For the time being, just as for
4404 the report, depend upon --trace-flags to dump the full set of
4405 items.
4406 * src/reader.c (readgram): Once the grammar read, insert the rule
4407 0: `$axiom: START-SYMBOL $'.
4408 * tests/set.at: Adjust: rule 0 is now displayed, and since the
4409 number of the states has changed (the final state is no longer
4410 necessarily the last), catch up.
4411
4412 2001-12-27 Akim Demaille <akim@epita.fr>
4413
4414 Try to make the use of the eoftoken valid. Given that its value
4415 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
4416 is used instead of > 0 where appropriate, (ii), depend upon nritems
4417 instead of the 0-sentinel.
4418
4419 * src/gram.h, src/gram.c (nritems): New.
4420 Expected to be duplication of nitems, but for the time being...
4421 * src/reader.c (packgram): Assert nritems and nitems are equal.
4422 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
4423 * src/closure.c (print_closure, print_fderives): Likewise.
4424 * src/gram.c (ritem_print): Likewise.
4425 * src/print.c (print_core, print_grammar): Likewise.
4426 * src/print_graph.c: Likewise.
4427
4428 2001-12-27 Akim Demaille <akim@epita.fr>
4429
4430 * src/main.c (main): If there are complains after grammar
4431 reductions, then output the report anyway if requested, then die.
4432 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
4433 * src/reader.c (eoftoken): New.
4434 (parse_token_decl): If the token being defined has value `0', it
4435 is the eoftoken.
4436 (packsymbols): No longer hack `tags' to insert `$' by hand.
4437 Be sure to preserve the value of the eoftoken.
4438 (reader): Make sure eoftoken is defined.
4439 Initialize nsyms to 0: now eoftoken is created just like the others.
4440 * src/print.c (print_grammar): Don't special case the eof token.
4441 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
4442 lie anyway, albeit pleasant.
4443 * tests/calc.at: Exercise error messages with eoftoken.
4444 Change the grammar so that empty input is invalid.
4445 Adjust expectations.
4446 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
4447
4448 2001-12-27 Akim Demaille <akim@epita.fr>
4449
4450 * configure.in: Check the protos of strchr ans strspn.
4451 Replace strchr if needed.
4452 * src/system.h: Provide the protos of strchr, strspn and memchr if
4453 missing.
4454 * lib/strchr.c: New.
4455 * src/reader.c (symbols_save): Use strchr.
4456
4457 2001-12-27 Akim Demaille <akim@epita.fr>
4458
4459 * src/print.c, src/print_graph.c (escape): New.
4460 Use it to quote the TAGS outputs.
4461 * src/print_graph.c (print_state): Now errors are in red, and
4462 reductions in green.
4463 Prefer high to wide: output the state number on a line of its own.
4464
4465 2001-12-27 Akim Demaille <akim@epita.fr>
4466
4467 * src/state.h, src/state.c (reductions_new): New.
4468 * src/LR0.c (set_state_table): Let all the states have a
4469 `reductions', even if reduced to 0.
4470 (save_reductions): Adjust.
4471 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
4472 * src/print.c (print_reductions, print_actions): Adjust.
4473 * src/output.c (action_row): Adjust.
4474
4475 2001-12-27 Akim Demaille <akim@epita.fr>
4476
4477 * src/state.h, src/state.c (errs_new, errs_dup): New.
4478 * src/LR0.c (set_state_table): Let all the states have an errs,
4479 even if reduced to 0.
4480 * src/print.c (print_errs, print_reductions): Adjust.
4481 * src/output.c (output_actions, action_row): Adjust.
4482 * src/conflicts.c (resolve_sr_conflict): Adjust.
4483
4484 2001-12-27 Akim Demaille <akim@epita.fr>
4485
4486 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
4487
4488 2001-12-27 Akim Demaille <akim@epita.fr>
4489
4490 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
4491 * src/print.c: here.
4492 (lookaheadset, shiftset): New, used as additional storage by
4493 print_reductions.
4494 (print_results): Adjust.
4495 (print_shifts, print_gotos, print_errs): New, extracted from...
4496 (print_actions): here.
4497 * src/print_graph.c (print_actions): Remove dead code.
4498
4499 2001-12-27 Akim Demaille <akim@epita.fr>
4500
4501 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
4502 `$n' and `@n'.
4503
4504 2001-12-27 Akim Demaille <akim@epita.fr>
4505
4506 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
4507 (build_relations): Adjust.
4508
4509 2001-12-27 Akim Demaille <akim@epita.fr>
4510
4511 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
4512 duplication.
4513
4514 2001-12-27 Akim Demaille <akim@epita.fr>
4515
4516 * src/reader.c (packgram): Catch nitems overflows.
4517
4518 2001-12-27 Akim Demaille <akim@epita.fr>
4519
4520 * src/files.c, src/files.h (guard_obstack): Remove.
4521 * src/output.c (output): Adjust.
4522 * src/reader.c (parse_braces): New, factoring...
4523 (copy_action, copy_guard): these two which are renamed as...
4524 (parse_action, parse_guard): these.
4525 As a voluntary consequence, using braces around guards is now
4526 mandatory.
4527
4528 2001-12-27 Akim Demaille <akim@epita.fr>
4529
4530 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
4531 * src/reader.c (symbol_list): `guard' and `guard_line' are new
4532 members.
4533 (symbol_list_new): Adjust.
4534 (copy_action): action_line is the first line, not the last.
4535 (copy_guard): Just as for actions, store the `action' only, not
4536 the switch/case/break flesh.
4537 Don't parse the user action that might follow the guard, let...
4538 (readgram): do it, i.e., now, there can be an action after a
4539 guard.
4540 In other words the guard is just explicitly optional.
4541 (packgram): Adjust.
4542 * src/output.c (guards_output): New.
4543 (output_parser): Call it when needed.
4544 (output): Also free the guard and attrs obstacks.
4545 * src/files.c, src/files.h (obstack_save): Remove.
4546 (output_files): Remove.
4547 As a result, if one needs the former `.act' file, using an
4548 appropriate skeleton which requires actions and guards is now
4549 required.
4550 * src/main.c (main): Adjust.
4551 * tests/semantic.at: New.
4552 * tests/regression.at: Use `input.y' as input file name.
4553 Avoid 8+3 problems by requiring input.c when the test needs the
4554 parser.
4555
4556 2001-12-27 Akim Demaille <akim@epita.fr>
4557
4558 * src/reader.c (symbol_list_new): Be sure to initialize all the
4559 fields.
4560
4561 2001-12-27 Akim Demaille <akim@epita.fr>
4562
4563 All the hacks using a final pseudo state are now useless.
4564
4565 * src/LR0.c (set_state_table): state_table holds exactly nstates.
4566 * src/lalr.c (nLA): New.
4567 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
4568 instead of lookaheadsp from the pseudo state (nstate + 1).
4569
4570 2001-12-27 Akim Demaille <akim@epita.fr>
4571
4572 * src/output.c (action_row, token_actions): Use a state_t instead
4573 of a integer, and nlookaheads instead of the following state's
4574 lookaheadsp.
4575
4576 2001-12-27 Akim Demaille <akim@epita.fr>
4577
4578 * src/conflicts.c (log_resolution, flush_shift)
4579 (resolve_sr_conflict, set_conflicts, solve_conflicts)
4580 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
4581 (conflicts_print, print_reductions): Use a state_t instead of an
4582 integer when referring to a state.
4583 As much as possible, depend upon nlookaheads, instead of the
4584 `lookaheadsp' member of the following state (since lookaheads of
4585 successive states are successive, the difference between state n + 1
4586 and n served as the number of lookaheads for state n).
4587 * src/lalr.c (add_lookback_edge): Likewise.
4588 * src/print.c (print_core, print_actions, print_state)
4589 (print_results): Likewise.
4590 * src/print_graph.c (print_core, print_actions, print_state)
4591 (print_graph): Likewise.
4592 * src/conflicts.h: Adjust.
4593
4594 2001-12-27 Akim Demaille <akim@epita.fr>
4595
4596 * src/bison.hairy: Formatting/comment changes.
4597 ANSIfy.
4598 Remove `register' indications.
4599 Add plenty of `static'.
4600
4601 2001-12-27 Akim Demaille <akim@epita.fr>
4602
4603 * src/output.c (prepare): Drop the muscle `ntbase' which
4604 duplicates ntokens.
4605 * src/bison.simple: Formatting/comment changes.
4606 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
4607 is an undocumented synonym.
4608
4609 2001-12-22 Akim Demaille <akim@epita.fr>
4610
4611 * src/output.c (output_table_data): Change the prototype to use
4612 `int' for array ranges: some invocations do pass an int, not a
4613 short.
4614 Reported by Wayne Green.
4615
4616 2001-12-22 Akim Demaille <akim@epita.fr>
4617
4618 Some actions of web2c.y are improperly triggered.
4619 Reported by Mike Castle.
4620
4621 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
4622 * tests/regression.at (Web2c): Rename as...
4623 (Web2c Report): this.
4624 (Web2c Actions): New.
4625
4626 2001-12-22 Akim Demaille <akim@epita.fr>
4627
4628 Reductions in web2c.y are improperly reported.
4629 Reported by Mike Castle.
4630
4631 * src/conflicts.c (print_reductions): Fix.
4632 * tests/regression.at (Web2c): New.
4633
4634 2001-12-18 Akim Demaille <akim@epita.fr>
4635
4636 Some host fail on `assert (!"foo")', which expands to
4637 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
4638 Reported by Nelson Beebee.
4639
4640 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
4641 `#define it_succeeded 0' and `assert (it_succeeded)'.
4642
4643 2001-12-17 Marc Autret <autret_m@epita.fr>
4644
4645 * src/bison.simple: Don't hard code the skeleton line and filename.
4646 * src/output.c (output_parser): Rename 'line' as 'output_line'.
4647 New line counter 'skeleton_line' (skeleton-line muscle).
4648
4649 2001-12-17 Paul Eggert <eggert@twinsun.com>
4650
4651 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
4652 YYDEBUG must be defined to a nonzero value.
4653
4654 * src/bison.simple (yytname): Do not assume that the user defines
4655 YYDEBUG to a properly parenthesized expression.
4656
4657 2001-12-17 Akim Demaille <akim@epita.fr>
4658
4659 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
4660 nlookaheads is a new member.
4661 Adjust all users.
4662 * src/lalr.h (nlookaheads): Remove this orphan declaration.
4663 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
4664 state.
4665
4666 2001-12-17 Akim Demaille <akim@epita.fr>
4667
4668 * src/files.h, src/files.c (open_files, close_files): Remove.
4669 * src/main.c (main): Don't open/close files, nor invoke lex_free,
4670 let...
4671 * src/reader.c (reader): Do it.
4672
4673 2001-12-17 Akim Demaille <akim@epita.fr>
4674
4675 * src/conflicts.c (print_reductions): Formatting changes.
4676
4677 2001-12-17 Akim Demaille <akim@epita.fr>
4678
4679 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
4680 (flush_reduce): New.
4681 (resolve_sr_conflict): Adjust.
4682
4683 2001-12-17 Akim Demaille <akim@epita.fr>
4684
4685 * src/output.c (output_obstack): Be static and rename as...
4686 (format_obstack): this, to avoid any confusion with files.c's
4687 output_obstack.
4688 * src/reader.h (muscle_obstack): Move to...
4689 * src/output.h: here, since it's defined in output.c.
4690
4691 2001-12-17 Akim Demaille <akim@epita.fr>
4692
4693 * src/output.c (action_row, save_column, default_goto)
4694 (sort_actions, matching_state, pack_vector): Better variable
4695 locality.
4696
4697 2001-12-17 Akim Demaille <akim@epita.fr>
4698
4699 * src/output.c: Various formatting changes.
4700
4701 2001-12-17 Akim Demaille <akim@epita.fr>
4702
4703 * src/files.c (output_files): Free the output_obstack.
4704 * src/main.c (main): Call print and print_graph conditionally.
4705 * src/print.c (print): Work unconditionally.
4706 * src/print_graph.c (print_graph): Work unconditionally.
4707 * src/conflicts.c (log_resolution): Output only if verbose_flag.
4708
4709 2001-12-16 Marc Autret <autret_m@epita.fr>
4710
4711 * src/output.c (actions_output): Fix. When we use %no-lines,
4712 there is one less line per action.
4713
4714 2001-12-16 Marc Autret <autret_m@epita.fr>
4715
4716 * src/bison.simple: Remove a useless #line directive.
4717 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
4718 * src/output.c (get_lines_number): New.
4719 (output_parser): Adjust, now takes care about the lines of a
4720 output muscles.
4721 Fix line numbering.
4722 (actions_output): Computes the number of lines taken by actions.
4723 (output_master_parser): Insert new skeleton which is the name of
4724 the output parser file name.
4725
4726 2001-12-15 Marc Autret <autret_m@epita.fr>
4727
4728 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
4729
4730 2001-12-15 Marc Autret <autret_m@epita.fr>
4731
4732 * src/output.c (output_gram): Keep track of the hairy one.
4733
4734 2001-12-15 Akim Demaille <akim@epita.fr>
4735
4736 Make `make distcheck' work.
4737
4738 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
4739 system.h which uses libgettext.h.
4740
4741 2001-12-15 Akim Demaille <akim@epita.fr>
4742
4743 * src/nullable.c (set_nullable): Useless rules must be skipped,
4744 otherwise, since we range over their symbols, we might look at a
4745 nonterminal which no longer ``exists'', i.e., it is not counted in
4746 `nvars', hence we overflow our arrays.
4747
4748 2001-12-15 Akim Demaille <akim@epita.fr>
4749
4750 The header can also be produced directly, without any obstack!
4751 Yahoo!
4752
4753 * src/files.c, src/files.h (defines_obstack): Remove.
4754 (compute_header_macro): Global.
4755 (defines_obstack_save): Remove.
4756 * src/reader.c (parse_union_decl): No longer output to
4757 defines_obstack: its content can be found in the `stype' muscle
4758 anyway.
4759 (output_token_translations): Merge into...
4760 (symbols_output): this.
4761 Rename as...
4762 (symbols_save): this.
4763 (reader): Adjust.
4764 * src/output.c (header_output): New.
4765 (output): Call it.
4766
4767 2001-12-15 Akim Demaille <akim@epita.fr>
4768
4769 * src/reader.c (parse_union_decl): Instead of handling two obstack
4770 simultaneously, use one to define the `stype' muscle, and use the
4771 value of the latter to fill defines_obstack.
4772 (copy_comment): Remove.
4773 (copy_comment2): Work for a single obstack.
4774 Rename as...
4775 (copy_comment): this.
4776
4777 2001-12-15 Akim Demaille <akim@epita.fr>
4778
4779 * src/lex.c, src/lex.h (xgetc): No longer static.
4780 * src/reader.c (parse_union_decl): Revamp.
4781
4782 2001-12-15 Akim Demaille <akim@epita.fr>
4783
4784 Still making progress in separating Bison into (i) input, (ii)
4785 process, (iii) output: now we can directly output the parser file
4786 without using table_obstack at all.
4787
4788 * src/files.c, src/files.h (table_obstack): Bye bye.
4789 (parser_file_name): New.
4790 * src/files.c (compute_output_file_names): Compute it.
4791 * src/output.c (actions_output, output_parser)
4792 (output_master_parser): To a file instead of an obstack.
4793
4794 2001-12-15 Akim Demaille <akim@epita.fr>
4795
4796 Attach actions to rules, instead of pre-outputting them to
4797 actions_obstack.
4798
4799 * src/gram.h (rule_t): action and action_line are new members.
4800 * src/reader.c (symbol_list): Likewise.
4801 (copy_action): Save the actions within the rule.
4802 (packgram): Save them in rule_table.
4803 * src/output.c (actions_output): New.
4804 (output_parser): Use it on `%%actions'.
4805 (output_rule_data): Don't free rule_table.
4806 (output): Do it.
4807 (prepare): Don't save the `action' muscle.
4808 * src/bison.simple: s/%%action/%%actions/.
4809
4810 2001-12-15 Akim Demaille <akim@epita.fr>
4811
4812 * src/reader.c (copy_action): When --yacc, don't append a `;'
4813 to the user action: let it fail if lacking.
4814 Suggested by Arnold Robbins and Tom Tromey.
4815
4816 2001-12-14 Akim Demaille <akim@epita.fr>
4817
4818 * src/lex.c (literalchar): Simply return the char you decoded, non
4819 longer mess around with obstacks and int pointers.
4820 Adjust all callers.
4821
4822 2001-12-14 Akim Demaille <akim@epita.fr>
4823
4824 * src/lex.c (literalchar): Don't escape the special characters,
4825 just decode them, and keep them as char (before, eol was output as
4826 the 2 char string `\n' etc.).
4827 * src/output.c (output_rule_data): Use quotearg to output the
4828 token strings.
4829
4830 2001-12-13 Paul Eggert <eggert@twinsun.com>
4831
4832 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
4833 Do not infringe on the global user namespace when using C++.
4834 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
4835 All uses of `fprintf' and `stderr' changed.
4836
4837 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
4838
4839 2001-12-13 Akim Demaille <akim@epita.fr>
4840
4841 The computation of nullable is broken: it doesn't handle empty
4842 RHS's properly.
4843
4844 * tests/torture.at (GNU AWK Grammar): New.
4845 * tests/sets.at (Nullable): New.
4846 * src/nullable.c (set_nullable): Instead of blindly looping over
4847 `ritems', loop over the rules, and then over their rhs's.
4848
4849 Work around Autotest bugs.
4850
4851 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
4852 frame, because Autotest understand lines starting with a `+' as
4853 traces from the shell. Then, they are not processed properly.
4854 Admittedly an Autotest bug, but we don't have time to wait for
4855 Autotest to catch up.
4856 * tests/regression.at (Broken Closure): Adjust to the new table
4857 frames.
4858 Move to...
4859 * tests/sets.at: here.
4860
4861 2001-12-13 Akim Demaille <akim@epita.fr>
4862
4863 * src/closure.c (closure): Use nrules instead of playing tricks
4864 with BITS_PER_WORD.
4865
4866 2001-12-13 Akim Demaille <akim@epita.fr>
4867
4868 * src/print.c (print_actions): Output the handling of `$' as the
4869 traces do: shifting the token EOF. Before EOF was treated as a
4870 nonterminal.
4871 * tests/regression.at: Adjust some tests.
4872 * src/print_graph.c (print_core): Complete the set of items via
4873 closure. The next-to-final and final states are still unsatisfying,
4874 but that's to be addressed elsewhere.
4875 No longer output the rule numbers, but do output the state number.
4876 A single loop for the shifts + gotos is enough, but picked a
4877 distinct color for each.
4878 (print_graph): Initialize and finalize closure.
4879
4880 2001-12-13 Akim Demaille <akim@epita.fr>
4881
4882 * src/reader.c (readgram): Remove dead code, an strip useless
4883 braces.
4884 (get_type): Remove, unused.
4885
4886 2001-12-12 Akim Demaille <akim@epita.fr>
4887
4888 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
4889 on that of lib/error.c.
4890
4891 2001-12-12 Akim Demaille <akim@epita.fr>
4892
4893 Some hosts don't like `/' in includes.
4894
4895 * src/system.h: Include libgettext.h without qualifying the path.
4896 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
4897 $(top_srcdir).
4898
4899 2001-12-11 Marc Autret <autret_m@epita.fr>
4900
4901 * src/output.c (output_parser): Remove useless muscle.
4902
4903 2001-12-11 Marc Autret <autret_m@epita.fr>
4904
4905 * src/bison.simple: Remove #line just before %%epilogue. It
4906 is now handled in ...
4907 * src/reader.c (read_additionnal_code): Add the output of a
4908 #line for the epilogue.
4909
4910 2001-12-10 Marc Autret <autret_m@epita.fr>
4911
4912 * src/reader.c (copy_definition): Re-use CPP-outed code which
4913 replace precedent remove.
4914 * src/bison.simple: Remove #line before %%prologue because
4915 %%input-line is wrong at this time.
4916
4917 2001-12-10 Marc Autret <autret_m@epita.fr>
4918
4919 * src/reader.c (symbols_output): Clean up.
4920 * src/output.c (output_gram, output): Clean up.
4921
4922 2001-12-10 Akim Demaille <akim@epita.fr>
4923
4924 * src/lalr.c (initialize_lookaheads): New. Extracted from...
4925 * src/LR0.c (set_state_table): here.
4926 * src/lalr.c (lalr): Call it.
4927
4928 2001-12-10 Akim Demaille <akim@epita.fr>
4929
4930 * src/state.h (shifts): Remove the `number' member: shifts are
4931 attached to state, hence no longer need to be labelled with a
4932 state number.
4933
4934 2001-12-10 Akim Demaille <akim@epita.fr>
4935
4936 Now that states have a complete set of members, the linked list of
4937 shifts is useless: just fill directly the state's shifts member.
4938
4939 * src/state.h (shifts): Remove the `next' member.
4940 * src/LR0.c (first_state, last_state): Remove.
4941 Adjust the callers.
4942 (augment_automaton): Don't look for the shifts that must be added
4943 a shift on EOF: it is those of the state we looked for! But now,
4944 since shifts are attached, it is no longer needed to looking
4945 merely by its id: its number.
4946
4947 2001-12-10 Akim Demaille <akim@epita.fr>
4948
4949 * src/LR0.c (augment_automaton): Better variable locality.
4950 Remove an impossible branch: if there is a state corresponding to
4951 the start symbol being shifted, then there is shift for the start
4952 symbol from the initial state.
4953
4954 2001-12-10 Akim Demaille <akim@epita.fr>
4955
4956 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
4957 only when appropriate: when insert_start_shifting_state' is not
4958 invoked.
4959 * tests/regression.at (Rule Line Numbers): Adjust.
4960
4961 2001-12-10 Akim Demaille <akim@epita.fr>
4962
4963 * src/LR0.c (augment_automaton): Now that all states have shifts,
4964 merge the two cases addition shifts to the initial state.
4965
4966 2001-12-10 Akim Demaille <akim@epita.fr>
4967
4968 * src/lalr.c (set_state_table): Move to...
4969 * src/LR0.c: here.
4970 * src/lalr.c (lalr): Don't call it...
4971 * src/LR0.c (generate_states): do it.
4972 * src/LR0.h (first_state): Remove, only the table is used.
4973
4974 2001-12-10 Akim Demaille <akim@epita.fr>
4975
4976 * src/LR0.h (first_shift, first_reduction): Remove.
4977 * src/lalr.c: Don't use first_shift: find shifts through the
4978 states.
4979
4980 2001-12-10 Akim Demaille <akim@epita.fr>
4981
4982 * src/LR0.c: Attach shifts to states as soon as they are
4983 computed.
4984 * src/lalr.c (set_state_table): Instead of assigning shifts to
4985 state, just assert that the mapping was properly done.
4986
4987 2001-12-10 Akim Demaille <akim@epita.fr>
4988
4989 * src/LR0.c (insert_start_shift): Rename as...
4990 (insert_start_shifting_state): this.
4991 (insert_eof_shifting_state, insert_accepting_state): New.
4992 (augment_automaton): Adjust.
4993 Better locality of the variables.
4994 When looking if the start_symbol is shifted from the initial
4995 state, using `while (... symbol != start_symbol ...)' sounds
4996 better than `while (... symbol < start_symbol ...)': If fail
4997 to see how the order between symbols could be relevant!
4998
4999 2001-12-10 Akim Demaille <akim@epita.fr>
5000
5001 * src/getargs.h: Don't declare `spec_name_prefix' and
5002 `spec_file_prefix', declared by src/files.h.
5003 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
5004 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
5005 * src/output.c (prepare): Adjust.
5006 * src/reader.c (symbols_output): Likewise.
5007 * src/vmsgetargs.c: Vaguely adjust, but who cares?
5008
5009 2001-12-10 Akim Demaille <akim@epita.fr>
5010
5011 * src/muscle_tab.c (muscle_init): NULL is a better default than
5012 `"0"'.
5013
5014 2001-12-10 Akim Demaille <akim@epita.fr>
5015
5016 * src/reader.c (reader): Calling symbols_output once is enough.
5017
5018 2001-12-10 Akim Demaille <akim@epita.fr>
5019
5020 Now that states have a complete set of members, the linked list of
5021 reductions is useless: just fill directly the state's reductions
5022 member.
5023
5024 * src/state.h (struct reductions): Remove member `number' and
5025 `next'.
5026 * src/LR0.c (first_reduction, last_reduction): Remove.
5027 (save_reductions): Don't link the new reductions, store them in
5028 this_state.
5029 * src/lalr.c (set_state_table): No need to attach reductions to
5030 states, it's already done.
5031 * src/output.c (output_actions): No longer free the shifts, then
5032 the reductions, then the states: free all the states and their
5033 members.
5034
5035 2001-12-10 Akim Demaille <akim@epita.fr>
5036
5037 * src/options.c (OPTN, DRTV, BOTH): New.
5038 (option_table): Use them.
5039
5040 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
5041 the job of system.h.
5042 * src/options.c: Don't include stdio.h and xalloc.h for the same
5043 reasons.
5044
5045 2001-12-10 Akim Demaille <akim@epita.fr>
5046
5047 * src/output.c (output, prepare): Make sure the values of the
5048 muscles `action' and `prologue' are 0-terminated.
5049
5050 2001-12-10 Akim Demaille <akim@epita.fr>
5051
5052 Clean up GCC warnings.
5053
5054 * src/reader.c (copy_action): `buf' is not used.
5055 (parse_skel_decl): Be static.
5056 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
5057 * src/options.h (create_long_option_table): Have a real prototype.
5058 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
5059 (hash_delete_at): Return const void *.
5060 Adjust casts to preserve the const.
5061
5062 2001-12-10 Akim Demaille <akim@epita.fr>
5063
5064 * configure.in: Require 2.52g.
5065 M4 is not needed, but AUTOM4TE is.
5066 * m4/m4.m4: Remove.
5067 * tests/Makefile.am: Adjust.
5068
5069 2001-12-10 Akim Demaille <akim@epita.fr>
5070
5071 One structure for states is enough, even though theoretically
5072 there are LR(0) states and LALR(1) states.
5073
5074 * src/lalr.h (state_t): Remove.
5075 (state_table): Be state_t **, not state_t *.
5076 * src/state.h (core, CORE_ALLOC): Rename as...
5077 (state_t, STATE_ALLOC): this.
5078 Add the LALR(1) members: shifts, reductions, errs.
5079 * src/LR0.c (state_table): Rename as...
5080 (state_hash): this, to avoid name clashes with the global
5081 `state_table'.
5082 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
5083 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
5084
5085 2001-12-10 Akim Demaille <akim@epita.fr>
5086
5087 Bison dumps core on bash.y.
5088 Reported by Pascal Bart.
5089
5090 * src/warshall.c (bitmatrix_print): New.
5091 (TC): Use it.
5092 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
5093 j must be the outer loop.
5094 * tests/regression.at (Broken Closure): New.
5095
5096 2001-12-05 Akim Demaille <akim@epita.fr>
5097
5098 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
5099 its argument.
5100 Reported by Peter Hámorský.
5101
5102 2001-12-05 Akim Demaille <akim@epita.fr>
5103
5104 * src/conflicts.c (err_table): Remove.
5105 (resolve_sr_conflict): Adjust.
5106 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
5107 Rename as...
5108 (state_t.reductions, state_t.shifts): this.
5109
5110 2001-12-05 Akim Demaille <akim@epita.fr>
5111
5112 * src/reduce.c (reduce_grammar_tables): No longer disable the
5113 removal of useless rules via CPP but via `if (0)', so that the
5114 compiler still check the code is valid.
5115 For instance, it should have noticed `rline' no longer exists: use
5116 the `line' member of rule_t.
5117 * src/gram.c (dummy, rline): Remove, unused.
5118
5119 2001-12-05 Akim Demaille <akim@epita.fr>
5120
5121 * src/output.c (pack_vector): Use assert, not berror.
5122 * src/main.c (berror): Remove, unused.
5123
5124 2001-12-05 Akim Demaille <akim@epita.fr>
5125
5126 New experimental feature: if --verbose --trace output all the
5127 items of a state, not only its kernel.
5128
5129 * src/print.c (print_core): If `trace_flag', then invoke closure
5130 before outputting the items of the state (print_core is no longer
5131 a correct name them).
5132 (print_results): Invoke new_closure/free_closure if needed.
5133
5134 2001-12-05 Akim Demaille <akim@epita.fr>
5135
5136 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
5137 * src/closure.c, src/closure.h (itemsetsize): Rename as...
5138 (nitemset): for consistency with the rest of the project.
5139
5140 2001-12-05 Akim Demaille <akim@epita.fr>
5141
5142 * src/closure.c (print_closure): Improve.
5143 (closure): Use it for printing input and output.
5144
5145 2001-12-05 Akim Demaille <akim@epita.fr>
5146
5147 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
5148 indexed by nonterminals.
5149
5150 2001-12-05 Akim Demaille <akim@epita.fr>
5151
5152 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
5153 what it was!).
5154 * src/warshall.h: Remove accidental duplication of the content.
5155
5156 2001-12-05 Akim Demaille <akim@epita.fr>
5157
5158 * src/closure.c (set_fderives): De-obfuscate.
5159
5160 2001-12-05 Akim Demaille <akim@epita.fr>
5161
5162 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
5163
5164 2001-12-05 Akim Demaille <akim@epita.fr>
5165
5166 * src/closure.c (set_firsts): De-obfuscate.
5167
5168 2001-12-05 Akim Demaille <akim@epita.fr>
5169
5170 * src/output.c (action_row): De-obfuscate
5171 using the good o' techniques: arrays not pointers, variable
5172 locality, BITISSET, RESETBIT etc.
5173
5174 2001-12-05 Akim Demaille <akim@epita.fr>
5175
5176 Pessimize the code to simplify it: from now on, all the states
5177 have a valid SHIFTS, which NSHIFTS is possibly 0.
5178
5179 * src/LR0.c (shifts_new): Be global and move to..
5180 * src/state.c, src/state.h: here.
5181 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
5182 * src/print_graph: Adjust.
5183
5184 2001-12-05 Akim Demaille <akim@epita.fr>
5185
5186 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
5187 * src/conflicts.c: Use it.
5188 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
5189 incorrectly ``simplified''.
5190
5191 2001-12-05 Akim Demaille <akim@epita.fr>
5192
5193 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
5194 using the good o' techniques: arrays not pointers, variable
5195 locality, BITISSET, RESETBIT etc.
5196
5197 2001-12-05 Akim Demaille <akim@epita.fr>
5198
5199 * src/state.h (SHIFT_SYMBOL): New.
5200 * src/conflicts.c: Use it to deobfuscate.
5201
5202 2001-12-05 Akim Demaille <akim@epita.fr>
5203
5204 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
5205 (print_reductions): De-obfuscate using the good o' techniques:
5206 arrays not pointers, variable locality, BITISSET.
5207
5208 2001-12-05 Akim Demaille <akim@epita.fr>
5209
5210 * src/conflicts.c (print_reductions): Arrays, not pointers.
5211 Use BITISSET.
5212
5213 2001-12-05 Akim Demaille <akim@epita.fr>
5214
5215 * src/conflicts.c (print_reductions): Pessimize, but clarify.
5216
5217 2001-12-05 Akim Demaille <akim@epita.fr>
5218
5219 * src/conflicts.c (print_reductions): Improve variable locality.
5220
5221 2001-12-05 Akim Demaille <akim@epita.fr>
5222
5223 * src/conflicts.c (print_reductions): Pessimize, but clarify.
5224
5225 2001-12-05 Akim Demaille <akim@epita.fr>
5226
5227 * src/conflicts.c (print_reductions): Improve variable locality.
5228
5229 2001-12-05 Akim Demaille <akim@epita.fr>
5230
5231 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
5232 * src/lalr.c: Use them.
5233
5234 2001-12-05 Akim Demaille <akim@epita.fr>
5235
5236 * src/LR0.c (augment_automaton): Formatting changes.
5237 Better variable locality.
5238
5239 2001-12-05 Akim Demaille <akim@epita.fr>
5240
5241 * src/lalr.c (matrix_print): New.
5242 (transpose): Use it.
5243 Use arrays instead of pointers.
5244
5245 2001-12-05 Akim Demaille <akim@epita.fr>
5246
5247 * src/lalr.c (maxrhs): Move to...
5248 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
5249 * src/lalr.c (build_relations): Adjust.
5250
5251 2001-12-05 Akim Demaille <akim@epita.fr>
5252
5253 * src/lalr.c (transpose): Free the memory allocated to the
5254 argument, as it is replaced by the results by the unique caller.
5255 (build_relations): Merely invoke transpose: it handles the memory
5256 deallocation.
5257 Improve variable locality.
5258 Avoid variables used as mere abbreviations.
5259 (compute_lookaheads): Use arrays instead of pointers.
5260
5261 2001-12-05 Akim Demaille <akim@epita.fr>
5262
5263 * src/lalr.c (initialize_F): Improve variable locality.
5264 Avoid variables used as mere abbreviations.
5265
5266 2001-12-05 Akim Demaille <akim@epita.fr>
5267
5268 * src/derives.c (print_derives): Display the ruleno.
5269 * src/lalr.c (initialize_F, transpose): Better variable locality
5270 to improve readability.
5271 Avoid variables used as mere abbreviations.
5272
5273 2001-12-05 Akim Demaille <akim@epita.fr>
5274
5275 * src/lalr.c (traverse): Use arrays instead of pointers.
5276
5277 2001-12-05 Akim Demaille <akim@epita.fr>
5278
5279 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
5280 the handling of squeue.
5281 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
5282
5283 2001-12-05 Akim Demaille <akim@epita.fr>
5284
5285 Because useless nonterminals are now kept alive (instead of being
5286 `destroyed'), we now sometimes examine them, and store information
5287 related to them. Hence we need to know their number, and adjust
5288 memory allocations.
5289
5290 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
5291 static.
5292 * src/LR0.c (allocate_itemsets): The memory allocated to
5293 `symbol_count' was used for two different purpose: once to count
5294 the number of occurrences of each symbol, and later reassigned to
5295 `shift_symbol', containing the symbol that can be shifted from a
5296 given state.
5297 Deobfuscate, i.e., allocate, use and free `symbol_count' here
5298 only, and...
5299 (new_itemsets): Allocate `shift_symbol' here.
5300 (allocate_itemsets): symbol_count includes useless nonterminals.
5301 Make room for them.
5302 (free_storage): Use `free', not `XFREE', for pointers that cannot
5303 be null.
5304
5305 2001-12-05 Akim Demaille <akim@epita.fr>
5306
5307 * src/nullable.c (set_nullable): Deobfuscate the handling of
5308 ritem.
5309 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
5310
5311 2001-12-05 Akim Demaille <akim@epita.fr>
5312
5313 * src/gram.c, src/gram.h (ritem_print): New.
5314 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
5315 (This useless function was defined only to work around VMS linkers
5316 that can't handle compilation units with variables only).
5317 * src/reduce.c (dump_grammar): Use it to trace the construction of
5318 ritem.
5319
5320 2001-12-04 Paul Eggert <eggert@twinsun.com>
5321
5322 * src/bison.simple (union yyalloc): Change member names
5323 to be the same as the stack names.
5324 (yyparse): yyptr is now union yyalloc *, not char *.
5325 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
5326 and may generate better code on some machines.
5327 (yystpcpy): Use prototype if __STDC__ is defined, not just
5328 if __cplusplus is defined.
5329
5330 2001-11-30 Akim Demaille <akim@epita.fr>
5331
5332 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
5333 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
5334 Gettext doesn't compile cleanly, and dies with -Werror.
5335 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
5336 Include WARNING_CFLAGS here.
5337 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
5338 before being defined.
5339
5340 2001-11-27 Paul Eggert <eggert@twinsun.com>
5341
5342 * lib/quotearg.h (quotearg_n, quotearg_n_style):
5343 First arg is int, not unsigned.
5344 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
5345 (SIZE_MAX, UINT_MAX): New macros.
5346 (quotearg_n_options): Abort if N is negative.
5347 Avoid overflow check on hosts where size_t is 64 bits and int
5348 is 32 bits, as overflow is impossible there.
5349 Fix off-by-one typo that caused unnecessary reallocation.
5350
5351 2001-11-29 Paul Eggert <eggert@twinsun.com>
5352
5353 Name space cleanup in generated parser.
5354
5355 * doc/bison.texinfo (Bison Parser): Discuss system headers
5356 and their effect on the user name space.
5357
5358 * src/bison.simple:
5359 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
5360 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
5361 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
5362
5363 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
5364 on user names when possible.
5365
5366 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
5367 Simplify test for whather <alloca.h> exists.
5368
5369 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
5370
5371 (<stdio.h>): Include if YYDEBUG.
5372
5373 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
5374 ! defined (yyoverflow) && ! defined (yymemcpy).
5375
5376 (yymemcpy, yyparse): Rename local variables as needed so that
5377 they all begin with 'yy'.
5378
5379 (yystrlen, yystpcpy): New functions.
5380
5381 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
5382 All uses changed.
5383
5384 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
5385 instead of relying on string.h functions. Use YYSTACK_ALLOC
5386 and YYSTACK_FREE instead of malloc and free.
5387
5388 2001-11-30 Akim Demaille <akim@epita.fr>
5389
5390 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
5391 before their first uses.
5392 (YYBISON, YYPURE): Move to the top of the output.
5393
5394 2001-11-30 Akim Demaille <akim@epita.fr>
5395
5396 * tests/reduce.at (Useless Nonterminals): Fix.
5397
5398 2001-11-30 Akim Demaille <akim@epita.fr>
5399
5400 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
5401 if body instead of `;' to pacify GCC's warnings.
5402
5403 2001-11-30 Akim Demaille <akim@epita.fr>
5404
5405 Instead of mapping the LHS of unused rules to -1, keep the LHS
5406 valid, but flag the rules as invalid.
5407
5408 * src/gram.h (rule_t): `useful' is a new member.
5409 * src/print.c (print_grammar): Adjust.
5410 * src/derives.c (set_derives): Likewise.
5411 * src/reader.c (packgram, reduce_output): Likewise.
5412 * src/reduce.c (reduce_grammar_tables): Likewise.
5413 * tests/reduce.at (Underivable Rules, Useless Rules): New.
5414
5415 2001-11-30 Akim Demaille <akim@epita.fr>
5416
5417 * src/reduce.c (reduce_output): Formatting changes.
5418 * src/print.c (print_results, print_grammar): Likewise.
5419 * tests/regression.at (Rule Line Numbers)
5420 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
5421
5422 2001-11-30 Akim Demaille <akim@epita.fr>
5423
5424 * src/reduce.c (nonterminals_reduce): Instead of throwing away
5425 useless nonterminals, move them at the end of the symbol arrays.
5426 (reduce_output): Adjust.
5427 * tests/reduce.at (Useless Nonterminals): Adjust.
5428
5429 2001-11-30 Akim Demaille <akim@epita.fr>
5430
5431 * src/reduce.c: Various comment/formatting changes.
5432 (nonterminals_reduce): New, extracted from...
5433 (reduce_grammar_tables): here.
5434 (reduce_grammar): Call nonterminals_reduce.
5435
5436 2001-11-29 Paul Eggert <eggert@twinsun.com>
5437
5438 * src/bison.simple (YYSTACK_REALLOC): Remove.
5439 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
5440 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
5441 New macros.
5442 (union yyalloc): New type.
5443 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
5444 an arbitrary restriction on hosts where size_t is wider than int.
5445
5446 (yyparse): Don't dump core if alloca or malloc fails; instead, report
5447 a parser stack overflow. Allocate just one block of memory for all
5448 three stacks, instead of allocating three blocks; this typically is
5449 faster and reduces fragmentation.
5450
5451 Do not limit the number of items in the stack to a value that fits
5452 in 'int', as this is an arbitrary limit on hosts with 64-bit
5453 size_t and 32-bit int.
5454
5455 2001-11-29 Marc Autret <autret_m@epita.fr>
5456
5457 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
5458 of defining YYERROR_VERBOSE.
5459 [AT_DATA]: $4 is now out of C declarations in the prologue.
5460
5461 2001-11-28 Marc Autret <autret_m@epita.fr>
5462
5463 * src/reader.c (parse_dquoted_param): New.
5464 (parse_skel_decl): Use it.
5465 * src/lex.h: Add its prototype.
5466 * src/lex.c (literalchar): Become not static.
5467
5468 2001-11-28 Marc Autret <autret_m@epita.fr>
5469
5470 * src/output.h: And put its extern declaration here.
5471 * src/output.c (error_verbose): Define here.
5472 (prepare): Echo name modification.
5473 * src/getargs.h: Clean its extern declaration.
5474 * src/getargs.c (error_verbose_flag): Remove.
5475 (getargs): Remove case 'e'.
5476 * src/options.c (option_table): 'error-verbose' is now seen as simple
5477 percent option.
5478 Include output.h.
5479
5480 * src/reader.c (read_declarations): Remove case tok_include.
5481 (parse_include_decl): Remove.
5482 * src/lex.h (token_t): Remove tok_include.
5483 * src/options.c (option_table): 'include' is now a simple command line
5484 option.
5485
5486 2001-11-28 Marc Autret <autret_m@epita.fr>
5487
5488 * src/bison.simple: Adjust muscle names.
5489 * src/muscle_tab.c (muscle_init): Also rename the muscles.
5490 * src/output.c (prepare): s/_/-/ for the muscles names.
5491 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
5492
5493 2001-11-28 Marc Autret <autret_m@epita.fr>
5494
5495 * src/bison.simple: Fix debug.
5496 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
5497
5498 2001-11-28 Akim Demaille <akim@epita.fr>
5499
5500 * src/LR0.c (shifts_new): New.
5501 (save_shifts, insert_start_shift, augment_automaton): Use it.
5502
5503 2001-11-28 Akim Demaille <akim@epita.fr>
5504
5505 * src/closure.c (closure): `b' and `ruleno' denote the same value:
5506 keep ruleno only.
5507
5508 2001-11-28 Akim Demaille <akim@epita.fr>
5509
5510 * src/closure.c (closure): Instead of looping over word in array
5511 then bits in words, loop over bits in array.
5512
5513 2001-11-28 Akim Demaille <akim@epita.fr>
5514
5515 * src/closure.c (closure): No longer optimize the special case
5516 where all the bits of `ruleset[r]' are set to 0, to make the code
5517 clearer.
5518
5519 2001-11-28 Akim Demaille <akim@epita.fr>
5520
5521 * src/closure.c (closure): `r' and `c' are new variables, used to
5522 de-obfuscate accesses to RULESET and CORE.
5523
5524 2001-11-28 Akim Demaille <akim@epita.fr>
5525
5526 * src/reduce.c (reduce_print): Use ngettext.
5527 (dump_grammar): Improve the trace accuracy.
5528
5529 2001-11-28 Akim Demaille <akim@epita.fr>
5530
5531 * src/reduce.c (dump_grammar): Don't translate trace messages.
5532
5533 2001-11-28 Akim Demaille <akim@epita.fr>
5534
5535 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
5536 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
5537 as all tags are free'ed afterwards.
5538 From Enrico Scholz.
5539
5540 2001-11-27 Paul Eggert <eggert@twinsun.com>
5541
5542 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
5543 use alloca when we didn't want to, and vice versa.
5544
5545 2001-11-27 Marc Autret <autret_m@epita.fr>
5546
5547 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
5548 initialization.
5549 * src/output.c (prepare): Remove its update.
5550
5551 2001-11-27 Marc Autret <autret_m@epita.fr>
5552
5553 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
5554 Use %error-verbose.
5555
5556 2001-11-27 Marc Autret <autret_m@epita.fr>
5557
5558 * src/bison.simple: Remove YYERROR_VERBOSE using.
5559 Use %%error_verbose.
5560 (yyparse): Likewise.
5561 * src/output.c (prepare): Give its final value.
5562 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
5563 * src/getargs.h: Add its extern declaration.
5564 * src/getargs.c (error_verbose_flag): New int.
5565 (getargs): Update to catch new case.
5566 * src/options.c (option_table): 'error-verbose' is a new option.
5567 (shortopts): Update.
5568
5569 2001-11-27 Akim Demaille <akim@epita.fr>
5570
5571 * src/system.h: Use intl/libgettext.h.
5572 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
5573
5574 2001-11-27 Akim Demaille <akim@epita.fr>
5575
5576 * tests/torture.at (Exploding the Stack Size with Malloc):
5577 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
5578
5579 2001-11-27 Akim Demaille <akim@epita.fr>
5580
5581 * src/files.c: Include error.h.
5582 Reported by Hans Aberg.
5583
5584 2001-11-26 Marc Autret <autret_m@epita.fr>
5585
5586 * src/reader.c (parse_include_decl): New, not yet implemented.
5587 (read_declarations): Add case tok_include.
5588 * src/getargs.h (include): Add its extern definition.
5589 * src/getargs.c (include): New const char *.
5590 (getargs): Add case '-I'.
5591 * src/options.c (option_table): Add include as command line and
5592 percent option.
5593 * src/lex.h (token_t): Add tok_include.
5594
5595 2001-11-26 Akim Demaille <akim@epita.fr>
5596
5597 * src/reader.c (readgram): Make sure rules for mid-rule actions
5598 have a lineno equal to that of their host rule.
5599 Reported by Hans Aberg.
5600 * tests/regression.at (Rule Line Numbers): New.
5601
5602 2001-11-26 Akim Demaille <akim@epita.fr>
5603
5604 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
5605 size_ts.
5606
5607 2001-11-26 Akim Demaille <akim@epita.fr>
5608
5609 * src/complain.c, src/complain.h (error): Remove, provided by
5610 lib/error.[ch].
5611
5612 2001-11-26 Akim Demaille <akim@epita.fr>
5613
5614 * src/reader.c (read_declarations): Don't abort on tok_illegal,
5615 issue an error message.
5616 * tests/regression.at (Invalid %directive): New.
5617 Reported by Hans Aberg.
5618
5619 2001-11-26 Akim Demaille <akim@epita.fr>
5620
5621 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
5622 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
5623
5624 2001-11-26 Akim Demaille <akim@epita.fr>
5625
5626 * src/conflicts.c (conflicts_print): Don't complain at all when
5627 there are no reduce/reduce conflicts, and as many shift/reduce
5628 conflicts as expected.
5629 * tests/regression.at (%expect right): Adjust.
5630
5631 2001-11-23 Akim Demaille <akim@epita.fr>
5632
5633 * lib/alloca.c: Update, from fileutils.
5634
5635 2001-11-23 Akim Demaille <akim@epita.fr>
5636
5637 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
5638
5639 2001-11-23 Akim Demaille <akim@epita.fr>
5640
5641 * src/system.h: Include alloca.h.
5642 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
5643
5644 2001-11-23 Akim Demaille <akim@epita.fr>
5645
5646 * src/print_graph.c (print_actions): Remove `rule', unused.
5647 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
5648 pacify GCC's signed < unsigned warnings.
5649 * src/closure.c (itemsetsize): Likewise.
5650 * src/reader.c (symbol_list_new): Static.
5651
5652 2001-11-23 Akim Demaille <akim@epita.fr>
5653
5654 Attaching lineno to buckets is stupid, since only one copy of each
5655 symbol is kept, only the line of the first occurrence is kept too.
5656
5657 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
5658 * src/reader.c (rline_allocated): Remove, unused.
5659 (symbol_list): Have a `line' member.
5660 (symbol_list_new): New.
5661 (readgram): Use it.
5662 * src/print.c (print_grammar): Output the rule line numbers.
5663 * tests/regression.at (Solved SR Conflicts)
5664 (Unresolved SR Conflicts): Adjust.
5665 Reported by Hans Aberg.
5666
5667 2001-11-22 Marc Autret <autret_m@epita.fr>
5668
5669 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
5670
5671 2001-11-22 Marc Autret <autret_m@epita.fr>
5672
5673 * src/muscle_tab.c (muscle_init): Remove initialization of
5674 skeleton muscle.
5675 * src/output.c (output_master_parser): Do it here.
5676
5677 2001-11-20 Akim Demaille <akim@epita.fr>
5678
5679 * po/sv.po: New.
5680 * configure.in (ALL_LINGUAS): Adjust.
5681 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
5682 longer contains strings to translate.
5683
5684 2001-11-19 Akim Demaille <akim@epita.fr>
5685
5686 * src/conflicts.c (conflicts_print): Add a missing \n.
5687
5688 2001-11-19 Akim Demaille <akim@epita.fr>
5689
5690 * src/nullable.c (nullable_print): New.
5691 (set_nullable): Call it when tracing.
5692 Better locality of variables.
5693
5694 2001-11-19 Akim Demaille <akim@epita.fr>
5695
5696 * src/print.c (print_actions): Better locality of variables.
5697
5698 2001-11-19 Akim Demaille <akim@epita.fr>
5699
5700 * src/derives.c (print_derives): Fix and enrich.
5701 * src/closure.c (print_fderives): Likewise.
5702
5703 2001-11-19 Akim Demaille <akim@epita.fr>
5704
5705 * src/closure.c (itemsetend): Remove, replaced with...
5706 (itemsetsize): new.
5707
5708 2001-11-19 Akim Demaille <akim@epita.fr>
5709
5710 * src/LR0.c (kernel_end): Remove, replaced with...
5711 (kernel_size): new.
5712
5713 2001-11-19 Akim Demaille <akim@epita.fr>
5714
5715 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
5716 to clarify.
5717
5718 2001-11-19 Akim Demaille <akim@epita.fr>
5719
5720 * src/closure.c (closure): Use arrays instead of pointers to clarify.
5721
5722 2001-11-19 Akim Demaille <akim@epita.fr>
5723
5724 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
5725 trace messages.
5726 * src/LR0.c: Likewise.
5727 (allocate_itemsets): Use arrays instead of pointers to clarify.
5728
5729 2001-11-19 Akim Demaille <akim@epita.fr>
5730
5731 * src/getargs.c (statistics_flag): Replace with...
5732 (trace_flag): New.
5733 (longopts): Accept --trace instead of --statistics.
5734 * src/getargs.h, src/options.c: Adjust.
5735 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
5736 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
5737
5738 2001-11-19 Akim Demaille <akim@epita.fr>
5739
5740 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
5741 pointers to clarify the code.
5742 (save_reductions, save_shifts): Factor common parts of alternatives.
5743
5744 2001-11-19 Akim Demaille <akim@epita.fr>
5745
5746 * src/LR0.c (new_state, get_state): Complete TRACE code.
5747 * src/closure.c: Include `reader.h' to get `tags', needed by the
5748 trace code.
5749 Rename the conditional DEBUG as TRACE.
5750 Output consistently TRACEs to stderr, not stdout.
5751 * src/derives.c: Likewise.
5752 * src/reduce.c: (inaccessable_symbols): Using if is better style
5753 than goto.
5754 Use `#if TRACE' instead of `#if 0' for tracing code.
5755
5756 2001-11-19 Akim Demaille <akim@epita.fr>
5757
5758 * src/system.h (LIST_FREE, shortcpy): New.
5759 * src/LR0.c: Use them.
5760 * src/output.c (free_itemsets, free_reductions, free_shifts):
5761 Remove, replaced by LIST_FREE.
5762
5763 2001-11-19 Akim Demaille <akim@epita.fr>
5764
5765 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
5766 (REDUCTIONS_ALLOC): New.
5767 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
5768 allocation.
5769
5770 2001-11-19 Akim Demaille <akim@epita.fr>
5771
5772 * src/LR0.c (new_state): Complete trace code.
5773 * src/nullable.c (set_nullable): Don't translate traces.
5774
5775 2001-11-19 Akim Demaille <akim@epita.fr>
5776
5777 * src/print_graph.c (print_core): Better locality of variables.
5778 * src/print.c (print_core): Likewise.
5779
5780 2001-11-19 Akim Demaille <akim@epita.fr>
5781
5782 * src/vcg.c: You do the output, so you are responsible of the
5783 handling of VCG syntax, in particular: use quotearg.
5784 * src/print_graph.c: Don't.
5785 (print_actions): Don't output the actions as part of the nodes,
5786 since that's the job of the edges.
5787 (print_state): Don't output by hand: fill the node description,
5788 and ask for its output.
5789
5790 2001-11-19 Akim Demaille <akim@epita.fr>
5791
5792 * src/bison.simple (yyparse): When verbosely reporting an error,
5793 no longer put additional quotes around token names.
5794 * tests/calc.at: Adjust.
5795
5796 2001-11-19 Akim Demaille <akim@epita.fr>
5797
5798 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
5799 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
5800 * src/output.c: Adjust.
5801
5802 2001-11-19 Akim Demaille <akim@epita.fr>
5803
5804 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
5805 (rule_t): this.
5806 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
5807
5808 2001-11-19 Akim Demaille <akim@epita.fr>
5809
5810 * src/gram.h (rule_t): New.
5811 (rule_table): New.
5812 (rrhs, rlhs): Remove, part of state_t.
5813 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
5814 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
5815 * src/reader.c, src/reduce.c: Adjust.
5816
5817 2001-11-19 Akim Demaille <akim@epita.fr>
5818
5819 * src/reader.c (symbols_output): New, extracted from...
5820 (packsymbols): Here.
5821 (reader): Call it.
5822
5823 2001-11-19 Akim Demaille <akim@epita.fr>
5824
5825 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
5826 (maxrhs): this new function.
5827
5828 2001-11-19 Akim Demaille <akim@epita.fr>
5829
5830 * src/lalr.c (F): New macro to access the variable F.
5831 Adjust.
5832
5833 2001-11-19 Akim Demaille <akim@epita.fr>
5834
5835 * src/lalr.h (LA): New macro to access the variable LA.
5836 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
5837 * src/lalr.c: Adjust.
5838
5839 2001-11-19 Akim Demaille <akim@epita.fr>
5840
5841 * src/lalr.c (initialize_LA): Only initialize LA. Let...
5842 (set_state_table): handle the `lookaheads' members.
5843
5844 2001-11-19 Akim Demaille <akim@epita.fr>
5845
5846 * src/lalr.h (lookaheads): Removed array, whose contents is now
5847 a member of...
5848 (state_t): this structure.
5849 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
5850 Adjust.
5851
5852 2001-11-19 Akim Demaille <akim@epita.fr>
5853
5854 * src/lalr.h (consistent): Removed array, whose contents is now
5855 a member of...
5856 (state_t): this structure.
5857 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
5858 Adjust.
5859
5860 2001-11-19 Akim Demaille <akim@epita.fr>
5861
5862 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
5863 contents are now members of...
5864 (state_t): this structure.
5865 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
5866 Adjust.
5867
5868 2001-11-19 Akim Demaille <akim@epita.fr>
5869
5870 * src/lalr.h (state_t): New.
5871 (state_table): Be a state_t * instead of a core **.
5872 (accessing_symbol): Remove, part of state_t.
5873 * src/lalr.c: Adjust.
5874 (set_accessing_symbol): Merge into...
5875 (set_state_table): this.
5876 * src/print_graph.c, src/conflicts.c: Adjust.
5877
5878 2001-11-14 Akim Demaille <akim@epita.fr>
5879
5880 * tests/calc.at, tests/output.at, tests/regression.at,
5881 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
5882 now the tests are run in private dirs, therefore AC_CLEANUP and
5883 family can be simplified to 0-ary.
5884 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
5885 use abs. path to find config.h.
5886 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
5887 stderr, there can be way too much random noise.
5888 Instead pass -Werror to GCC and rely on the exit status.
5889 Reported by Wolfram Wagner.
5890
5891 2001-11-14 Akim Demaille <akim@epita.fr>
5892
5893 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
5894 defined only if yyoverflow is defined, to avoid `warning: unused
5895 variable `yyvs1''.
5896 Reported by The Test Suite.
5897
5898 2001-11-14 Akim Demaille <akim@epita.fr>
5899
5900 * src/print.c: Include reduce.h.
5901 Reported by Hans Aberg.
5902
5903 2001-11-14 Akim Demaille <akim@epita.fr>
5904
5905 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
5906 Revert a previous patch: these are really const.
5907 * src/conflicts.c (conflict_report): Additional useless pair of
5908 braces to pacify GCC's warnings for `if () if () {} else {}'.
5909 * src/lex.c (parse_percent_token): Replace equal_offset with
5910 arg_offset.
5911 arg is const.
5912 Be sure to strdup `arg' when used, since there is no reason for
5913 token_buffer not to change.
5914
5915 2001-11-14 Akim Demaille <akim@epita.fr>
5916
5917 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
5918 definition.
5919 * src/main.c (main): Use them.
5920 Suggested by Hans Aberg.
5921
5922 2001-11-12 Akim Demaille <akim@epita.fr>
5923
5924 * src/system.h (ngettext): Now that we use ngettext, be sure to
5925 provide a default definition when NLS are not used.
5926
5927 2001-11-12 Akim Demaille <akim@epita.fr>
5928
5929 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
5930 Use @kbd to denote user input.
5931 (Language and Grammar): ANSIfy the example.
5932 Adjust its layout for info/notinfo.
5933 (Location Tracking Calc): Output error messages to stderr.
5934 Output locations in a more GNUtically correct way.
5935 Fix a couple of Englishos.
5936 Adjust @group/@end group pairs.
5937
5938 2001-11-12 Akim Demaille <akim@epita.fr>
5939
5940 %expext was not functioning at all.
5941
5942 * src/conflicts.c (expected_conflicts): Set to -1.
5943 (conflict_report): Use ngettext.
5944 (conflicts_print): Check %expect and make its violation an error.
5945 * doc/bison.texinfo (Expect Decl): Adjust.
5946 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
5947 * tests/regression.at (%expect not enough, %expect right)
5948 (%expect too much): New.
5949
5950 2001-11-12 Akim Demaille <akim@epita.fr>
5951
5952 * tests/regression.at (Conflicts): Rename as...
5953 (Unresolved SR Conflicts): this.
5954 (Solved SR Conflicts): New.
5955
5956 2001-11-12 Akim Demaille <akim@epita.fr>
5957
5958 * src/reduce.c (print_results): Rename as...
5959 (reduce_output): This.
5960 Output to OUT, passed as argument, instead of output_obstack.
5961 (dump_grammar): Likewise.
5962 (reduce_free): New.
5963 Also free V1.
5964 (reduce_grammar): No longer call reduce_output, since...
5965 * src/print.c (print_results): do it.
5966 * src/main.c (main): Call reduce_free;
5967
5968 2001-11-12 Akim Demaille <akim@epita.fr>
5969
5970 * src/conflicts.c (print_reductions): Accept OUT as argument.
5971 Output to it, not to output_obstack.
5972 * src/print.c (print_actions): Adjust.
5973
5974 2001-11-12 Akim Demaille <akim@epita.fr>
5975
5976 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
5977 the result instead of using...
5978 (src_total, rrc_total, src_count, rrc_count): Remove.
5979 (any_conflicts): Remove.
5980 (print_conflicts): Split into...
5981 (conflicts_print, conflicts_output): New.
5982 * src/conflicts.h: Adjust.
5983 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
5984 * src/print.c (print_grammar): Issue `\n' between two rules.
5985 * tests/regression.at (Conflicts): New.
5986 Reported by Tom Lane.
5987
5988 2001-11-12 Akim Demaille <akim@epita.fr>
5989
5990 * tests/regression.at (Invalid input): Remove, duplicate with
5991 ``Invalid input: 1''.
5992
5993 2001-11-12 Akim Demaille <akim@epita.fr>
5994
5995 * tests/torture.at (AT_DATA_STACK_TORTURE)
5996 (Exploding the Stack Size with Alloca)
5997 (Exploding the Stack Size with Malloc): New.
5998
5999 2001-11-12 Akim Demaille <akim@epita.fr>
6000
6001 * src/bison.simple (YYSTACK_REALLOC): New.
6002 (yyparse) [!yyoverflow]: Use it and free the old stack.
6003 Reported by Per Allansson.
6004
6005 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
6006
6007 * src/bison.simple: Define type yystype instead of YYSTYPE, and
6008 define CPP macro, which substitute YYSTYPE by yystype.
6009 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
6010 with yyltype/YYLTYPE. This allows inclusion of the generated
6011 header within the parser if the compiler, such as GGC, accepts
6012 multiple equivalent #defines.
6013 From Akim.
6014
6015 2001-11-05 Akim Demaille <akim@epita.fr>
6016
6017 * src/reader.c (symbols_output): New, extracted from...
6018 (packsymbols): here.
6019 (reader): Adjust.
6020
6021 2001-11-05 Akim Demaille <akim@epita.fr>
6022
6023 * src/lex.c (parse_percent_token): s/quotearg/quote/.
6024
6025 2001-11-05 Akim Demaille <akim@epita.fr>
6026
6027 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
6028 pattern.
6029
6030 2001-11-05 Akim Demaille <akim@epita.fr>
6031
6032 * src/options.h (struct option_table_struct): set_flags is void*.
6033 * src/options.c (longopts): Support `--output' and `%output'.
6034 (usage): Adjust.
6035 * src/lex.h (tok_setopt): Remove, replaced with...
6036 (tok_intopt, tok_stropt): these new guys.
6037 * src/lex.c (getopt.h): Not needed.
6038 (token_buffer, unlexed_token_buffer): Not const.
6039 (percent_table): Promote `-' over `_' in directive names.
6040 Active `%name-prefix', `file-prefix', and `output'.
6041 (parse_percent_token): Accept possible arguments to directives.
6042 Promote `-' over `_' in directive names.
6043
6044 2001-11-04 Akim Demaille <akim@epita.fr>
6045
6046 * doc/bison.texinfo (Decl Summary): Split the list into
6047 `directives for grammars' and `directives for bison'.
6048 Sort'em.
6049 Add description of `%name-prefix', `file-prefix', and `output'.
6050 Promote `-' over `_' in directive names.
6051 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
6052 Simplify the description of `--name-prefix'.
6053 Promote `-' over `_' in directive names.
6054 Promote `--output' over `--output-file'.
6055 Fix the description of `--defines'.
6056 * tests/output.at: Exercise %file-prefix and %output.
6057
6058 2001-11-02 Akim Demaille <akim@epita.fr>
6059
6060 * doc/refcard.tex: Update.
6061
6062 2001-11-02 Akim Demaille <akim@epita.fr>
6063
6064 * src/symtab.h (SUNDEF): New.
6065 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
6066 stand for `uninitialized', instead of 0.
6067 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
6068 * src/lex.c (lex): Adjust.
6069
6070 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
6071 Number it 0.
6072 Let yylex return it instead of a plain 0.
6073 Reported by Dick Streefland.
6074
6075 2001-11-02 Akim Demaille <akim@epita.fr>
6076
6077 * tests/regression.at (Mixing %token styles): New test.
6078
6079 2001-11-02 Akim Demaille <akim@epita.fr>
6080
6081 * src/reader.c (parse_thong_decl): Formatting changes.
6082 (token_translations_init): New, extracted from...
6083 (packsymbols): Here.
6084 Adjust.
6085
6086 2001-11-01 Akim Demaille <akim@epita.fr>
6087
6088 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
6089 Check that `9foo.y' produces correct cpp guards.
6090 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
6091 guards.
6092 Reported by Wwp.
6093
6094 2001-11-01 Akim Demaille <akim@epita.fr>
6095
6096 * tests/regression.at (Invalid input: 2): New.
6097 * src/lex.c (unlexed_token_buffer): New.
6098 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
6099 too.
6100 Reported by Wwp.
6101
6102 2001-11-01 Akim Demaille <akim@epita.fr>
6103
6104 * tests/calc.at: Catch up with 1.30.
6105 * configure.in: Bump to 1.49a.
6106 Adjust to newer Autotest.
6107
6108 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
6109
6110 * src/conflicts.c: Move global variables rrc_total and src_total ...
6111 (print_conflicts): here.
6112 * src/output.c (output): Free global variable user_toknums.
6113 * src/lex.c (token_obstack): Become static.
6114
6115 2001-10-18 Akim Demaille <akim@epita.fr>
6116
6117 * tests/atlocal.in (GCC): Add.
6118 * tests/calc.at: s/m4_match/m4_bmatch/.
6119 s/m4_patsubst/m4_bpatsubst/.
6120 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
6121 * configure.in: AC_SUBST(GCC).
6122
6123 2001-10-14 Marc Autret <autret_m@epita.fr>
6124
6125 * src/options.c (create_long_option_table): Fix.
6126
6127 2001-10-10 Akim Demaille <akim@epita.fr>
6128
6129 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
6130
6131 2001-10-04 Akim Demaille <akim@epita.fr>
6132
6133 * src/reader.c (parse_union_decl): Push the caracters in
6134 union_obstack, not attrs_obstack.
6135
6136 2001-10-04 Akim Demaille <akim@epita.fr>
6137
6138 Merge in the branch 1.29.
6139
6140 * src/reader.c (packsymbols): Use a temporary obstack for
6141 `%%tokendef', since output_stack is already used elsewhere.
6142
6143 2001-10-02 Akim Demaille <akim@epita.fr>
6144
6145 Bump 1.29d.
6146
6147 2001-10-02 Akim Demaille <akim@epita.fr>
6148
6149 Version 1.29c.
6150
6151 2001-10-02 Akim Demaille <akim@epita.fr>
6152
6153 * tests/regression.at (Invalid CPP headers): New.
6154 From Alexander Belopolsky.
6155 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
6156
6157 2001-10-02 Akim Demaille <akim@epita.fr>
6158
6159 * tests/regression.at (Invalid input): New.
6160 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
6161 Reported by Shura.
6162
6163 2001-10-02 Akim Demaille <akim@epita.fr>
6164
6165 * tests/calc.at: Now that --debug works, the tests must be adjusted.
6166
6167 2001-10-02 Akim Demaille <akim@epita.fr>
6168
6169 * src/output.c (output_parser): Assert `skeleton'.
6170 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
6171 systems.
6172 From Shura.
6173
6174 2001-10-01 Marc Autret <autret_m@epita.fr>
6175
6176 * src/lex.h: Echo modifications.
6177 * src/lex.c (unlex): Parameter is now token_t.
6178 From Hans Aberg.
6179
6180 2001-10-01 Marc Autret <autret_m@epita.fr>
6181
6182 * src/main.c: Include lex.h.
6183 From Hans Aberg.
6184
6185 2001-09-29 Akim Demaille <akim@epita.fr>
6186
6187 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
6188
6189 2001-09-28 Akim Demaille <akim@epita.fr>
6190
6191 * tests/testsuite.at: Update to newer Autotest.
6192 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
6193
6194 2001-09-27 Akim Demaille <akim@epita.fr>
6195
6196 Position independent wrapper.
6197
6198 * tests/bison: Remove.
6199 * tests/bison.in: New.
6200 * configure.in: Adjust.
6201
6202 2001-09-27 Paul Eggert <eggert@twinsun.com>
6203
6204 Port quotearg fixes from tar 1.13.24.
6205
6206 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
6207 tm to be declared.
6208 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
6209 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
6210
6211 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
6212 * m4/mbrtowc.m4: New file.
6213 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
6214 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
6215
6216 2001-09-27 Akim Demaille <akim@epita.fr>
6217
6218 Bump to 1.29c.
6219
6220 2001-09-27 Akim Demaille <akim@epita.fr>
6221
6222 Version 1.29b.
6223
6224 2001-09-25 Akim Demaille <akim@epita.fr>
6225
6226 * src/system.h: Include `xalloc.h'.
6227 Remove it from the C files.
6228 * src/files.c (output_files): Free the obstacks.
6229 * src/lex.c (init_lex): Rename as...
6230 (lex_init): this.
6231 (lex_free): New.
6232 * src/main.c (main): Use it.
6233
6234 2001-09-24 Marc Autret <autret_m@epita.fr>
6235
6236 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
6237 to output informations in fout (FILE*).
6238 (open_graph, close_graph): Likewise.
6239 (output_graph, output_edge, output_node): Likewise.
6240 * src/vcg.h: Update function prototypes.
6241 * src/print_graph.c (print_graph): Open output graph file.
6242 (print_actions): Adjust.
6243 * src/files.h: Remove extern declaration.
6244 * src/files.c: Remove graph_obstack declaration.
6245 (open_files): Remove graph_obstack initialization.
6246 (output_files): Remove graph_obstack saving.
6247
6248 2001-09-24 Marc Autret <autret_m@epita.fr>
6249
6250 * src/files.c (compute_output_file_names): Fix.
6251
6252 2001-09-24 Marc Autret <autret_m@epita.fr>,
6253 Akim Demaille <akim@epita.fr>
6254
6255 * src/reader.c (reader): Remove call to free_symtab ().
6256 * src/main.c (main): Call it here.
6257 Include symtab.h.
6258 * src/conflicts.c (initialize_conflicts): Rename as...
6259 (solve_conflicts): this.
6260 * src/print.c (print_core, print_actions, print_state)
6261 (print_grammar): Dump to a file instead a `output_obstack'.
6262 (print_results): Dump `output_obstack', and then proceed with the
6263 FILE *.
6264 * src/files.c (compute_output_file_names, close_files): New.
6265 (output_files): Adjust.
6266 * src/main.c (main): Adjust.
6267
6268 2001-09-23 Marc Autret <autret_m@epita.fr>
6269
6270 * src/files.c (compute_header_macro): Computes header macro name
6271 from spec_defines_file when given.
6272
6273 2001-09-23 Marc Autret <autret_m@epita.fr>
6274
6275 * src/files.c (output_files): Add default extensions.
6276
6277 2001-09-22 Akim Demaille <akim@epita.fr>
6278
6279 * src/conflicts.c (finalize_conflicts): Rename as...
6280 (free_conflicts): this.
6281
6282 2001-09-22 Akim Demaille <akim@epita.fr>
6283
6284 * src/gram.c (gram_free): Rename back as...
6285 (dummy): this.
6286 (output_token_translations): Free `token_translations'.
6287 * src/symtab.c (free_symtab): Free the tag field.
6288
6289 2001-09-22 Akim Demaille <akim@epita.fr>
6290
6291 Remove `translations' as it is always set to true.
6292
6293 * src/gram.h: Adjust.
6294 * src/reader.c (packsymbols, parse_token_decl): Adjust
6295 * src/print.c (print_grammar): Adjust.
6296 * src/output.c (output_token_translations): Adjust.
6297 * src/lex.c (lex): Adjust.
6298 * src/gram.c: Be sure the set pointers to NULL.
6299 (dummy): Rename as...
6300 (gram_free): this.
6301
6302 2001-09-22 Akim Demaille <akim@epita.fr>
6303
6304 * configure.in: Invoke AM_LIB_DMALLOC.
6305 * src/system.h: Use dmalloc.
6306 * src/LR0.c: Be sure to have pointers initialized to NULL.
6307 (allocate_itemsets): Allocate kernel_items only if needed.
6308
6309 2001-09-22 Akim Demaille <akim@epita.fr>
6310
6311 * configure.in: Bump to 1.29b.
6312 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
6313 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
6314 need xmalloc.c in calc.y.
6315 From Pascal Bart.
6316
6317 2001-09-21 Akim Demaille <akim@epita.fr>
6318
6319 Version 1.29a.
6320 * Makefile.maint, config/config.guess, config/config.sub,
6321 * config/missing: Update from masters.
6322 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
6323 upon package.m4.
6324 * configure.in (ALL_LINGUAS): Add `tr'.
6325
6326 2001-09-21 Akim Demaille <akim@epita.fr>
6327
6328 * tests/Makefile.am (package.m4): Move to...
6329 ($(srcdir)/$(TESTSUITE)): here.
6330
6331 2001-09-20 Akim Demaille <akim@epita.fr>
6332
6333 * src/complain.c: No longer try to be standalone: use system.h.
6334 Don't assume __STDC__ is defined to 1. Just test if it is defined.
6335 * src/complain.h: Likewise.
6336 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
6337 Remove the unused variable `n'.
6338 From Albert Chin-A-Young.
6339
6340 2001-09-18 Marc Autret <autret_m@epita.fr>
6341
6342 * doc/bison.1: Update.
6343 * doc/bison.texinfo (Bison Options): Update --defines and --graph
6344 descriptions.
6345 (Option Cross Key): Update.
6346 Add --graph.
6347
6348 2001-09-18 Marc Autret <autret_m@epita.fr>
6349
6350 * tests/regression.at: New test (comment in %union).
6351
6352 2001-09-18 Marc Autret <autret_m@epita.fr>
6353
6354 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
6355 do that.
6356 Reported by Keith Browne.
6357
6358 2001-09-18 Marc Autret <autret_m@epita.fr>
6359
6360 * tests/output.at: Add tests for --defines and --graph.
6361
6362 2001-09-18 Marc Autret <autret_m@epita.fr>
6363
6364 * tests/output.at: Removes tests of %{header,src}_extension features.
6365
6366 2001-09-18 Akim Demaille <akim@epita.fr>
6367
6368 * tests/Makefile.am (package.m4): New.
6369 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
6370 (_AT_CHECK_CALC_ERROR): Likewise.
6371 Factor the `, ' part of verbose error messages.
6372
6373 2001-09-18 Marc Autret <autret_m@epita.fr>
6374
6375 * src/getargs.c (longopts): Declare --defines and --graph as options
6376 with optional arguments.
6377 * src/files.h: Add extern declarations.
6378 * src/files.c (spec_graph_file, spec_defines_file): New.
6379 (output_files): Update.
6380 Remove CPP-outed code.
6381
6382 2001-09-18 Marc Autret <autret_m@epita.fr>
6383
6384 Turn off %{source,header}_extension feature.
6385
6386 * src/files.c (compute_exts_from_gf): Update.
6387 (compute_exts_from_src): Update.
6388 (output_files): CPP-out useless code.
6389 * src/files.h: Remove {header,source}_extension extern declarations.
6390 * src/reader.c (parse_dquoted_param): CPP-out.
6391 (parse_header_extension_decl): Remove.
6392 (parse_source_extension_decl): Remove.
6393 (read_declarations): Remove cases tok_{hdrext,srcext}.
6394 * src/lex.c (percent_table): Remove {header,source}_extension entries.
6395 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
6396
6397 2001-09-10 Akim Demaille <akim@epita.fr>
6398
6399 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
6400 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
6401 (AT_CHECK_OUTPUT): this.
6402 Merely check ls' exit status, its output is useless.
6403
6404 2001-09-10 Akim Demaille <akim@epita.fr>
6405
6406 * tests/calc.at: Use m4_match.
6407 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
6408
6409 2001-09-10 Marc Autret <autret_m@epita.fr>,
6410 Akim Demaille <akim@epita.fr>
6411
6412 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
6413 enum color_e.
6414 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
6415 to `normal'.
6416 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
6417 * src/lex.h: Adjust prototype.
6418 (token_t): Add `tok_undef'.
6419 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
6420 (parse_percent_token): Now returns token_t.
6421 Add default statement in switch.
6422 (lex): Separate `c' as an input variable, from the token_t result
6423 part.
6424 (unlexed): Is a token_t.
6425
6426 2001-09-10 Akim Demaille <akim@epita.fr>
6427
6428 * configure.in: Bump to 1.29a.
6429
6430 2001-09-07 Akim Demaille <akim@epita.fr>
6431
6432 Version 1.29.
6433
6434 2001-08-30 Akim Demaille <akim@epita.fr>
6435
6436 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
6437 * m4/atconfig.m4: Remove.
6438 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
6439 * tests/bison: New.
6440 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
6441 m4_if, m4_patsubst, and m4_regexp.
6442 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
6443 `input' file instead of echo.
6444
6445 2001-08-29 Akim Demaille <akim@epita.fr>
6446
6447 Bump to 1.28e.
6448
6449 2001-08-29 Akim Demaille <akim@epita.fr>
6450
6451 Version 1.28d.
6452
6453 2001-08-29 Paul Eggert <eggert@twinsun.com>
6454
6455 * src/bison.simple (yyparse): Don't take the address of an
6456 item before the start of an array, as that doesn't conform to
6457 the C Standard.
6458
6459 2001-08-29 Robert Anisko <anisko_r@epita.fr>
6460
6461 * doc/bison.texinfo (Location Tracking Calc): New node.
6462
6463 2001-08-29 Paul Eggert <eggert@twinsun.com>
6464
6465 * src/output.c (output): Do not define const, as this now
6466 causes more problems than it cures.
6467
6468 2001-08-29 Akim Demaille <akim@epita.fr>
6469
6470 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
6471 the nodes.
6472 Be sure to tag the `detailmenu'.
6473
6474 2001-08-29 Akim Demaille <akim@epita.fr>
6475
6476 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
6477 download in a tmp dir.
6478
6479 2001-08-28 Marc Autret <autret_m@epita.fr>
6480
6481 * config/depcomp: New file.
6482
6483 2001-08-28 Marc Autret <autret_m@epita.fr>
6484
6485 * doc/bison.1 (mandoc): Adjust.
6486 From Juan Manuel Guerrero.
6487
6488 2001-08-28 Marc Autret <autret_m@epita.fr>
6489
6490 * src/print_graph.c (print_state): Fix.
6491
6492 2001-08-27 Marc Autret <autret_m@epita.fr>
6493
6494 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
6495 char * members.
6496 Echo modifications to the functions prototypes.
6497 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
6498
6499 2001-08-27 Marc Autret <autret_m@epita.fr>
6500
6501 * src/vcg.c: Include `xalloc.h'.
6502 (add_colorentry): New.
6503 (add_classname): New.
6504 (add_infoname): New.
6505 * src/vcg.h: Add new prototypes.
6506
6507 2001-08-27 Akim Demaille <akim@epita.fr>
6508
6509 * Makefile.maint: Sync. again with CVS Autoconf.
6510
6511 2001-08-27 Akim Demaille <akim@epita.fr>
6512
6513 * Makefile.maint: Formatting changes.
6514 (po-update, cvs-update, update): New targets.
6515 (AMTAR): Remove.
6516
6517 2001-08-27 Akim Demaille <akim@epita.fr>
6518
6519 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
6520 * Makefile.maint: Sync. with CVS Autoconf.
6521
6522 2001-08-27 Marc Autret <autret_m@epita.fr>
6523
6524 * src/vcg.h (struct infoname_s): New.
6525 (struct colorentry_s): New.
6526 (graph_s): New fields {vertical,horizontal}_order in structure.
6527 Add `infoname' field.
6528 Add `colorentry' field;
6529 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
6530 (G_HORIZONTAL_ORDER): New.
6531 (G_INFONAME): New.
6532 (G_COLORENTRY): New.
6533 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
6534 Add output of `infoname'.
6535 Add output of `colorentry'.
6536
6537 2001-08-27 Marc Autret <autret_m@epita.fr>
6538
6539 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
6540 This one shadowed a global parameter.
6541
6542 2001-08-24 Marc Autret <autret_m@epita.fr>
6543
6544 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
6545 instead of `unsigned'.
6546 (print_state): Do not call obstack_object_size () in obstack_grow ()
6547 to avoid macro variables shadowing.
6548
6549 2001-08-23 Marc Autret <autret_m@epita.fr>
6550
6551 * src/lex.c (percent_table): Typo: s/naem/name/.
6552 Add graph option.
6553 Normalize new options declarations.
6554
6555 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
6556
6557 * tests/suite.at: Exercise %header_extension and %source_extension.
6558
6559 2001-08-16 Marc Autret <autret_m@epita.fr>
6560
6561 * src/reader.c (parse_dquoted_param): New.
6562 (parse_header_extension_decl): Use it.
6563 (parse_source_extension_decl): Likewise.
6564
6565 2001-08-16 Marc Autret <autret_m@epita.fr>
6566
6567 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
6568 (get_xxxx_str): Use assert () instead of complain ().
6569 Remove return invokations in default cases.
6570 (get_decision_str): Modify default behaviour. Remove second argument.
6571 Echo modifications on calls.
6572 (output_graph): Fix.
6573
6574 2001-08-16 Marc Autret <autret_m@epita.fr>
6575
6576 * src/getargs.c (usage): Update with ``-g, --graph''.
6577
6578 2001-08-16 Marc Autret <autret_m@epita.fr>
6579
6580 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
6581 (Option Cross Key): Likewise.
6582 * doc/bison.1: Update.
6583
6584 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
6585
6586 * src/output.c (output_master_parser): Don't finish action_obstack.
6587 (output_parser): Don't care about the muscle action, here.
6588 (prepare): Copy the action_obstack in the action muscle.
6589 (output): Free action_obstack.
6590
6591 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
6592
6593 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
6594 will contain `%union' declaration.
6595 (parse_union_decl): Delete #line directive output.
6596 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
6597 informations about %union.
6598 (parse_union_decl): Copy the union_obstack in the muscle stype.
6599 * src/bison.simple: Add new #line directive.
6600 Add typdef %%stype YYSTYPE.
6601
6602 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
6603
6604 * src/bison.simple: Add new `#line' directive.
6605
6606 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
6607
6608 * src/bison.simple: New `#line' directive.
6609 * src/output.c (output_parser): Support new dynamic muscle input_line.
6610
6611 2001-09-22 Marc Autret <autret_m@epita.fr>
6612
6613 * src/output.c (output_master_parser): New.
6614 (output_parser): Be more re-entrant.
6615
6616 2001-09-21 Marc Autret <autret_m@epita.fr>
6617
6618 * src/reader.c (copy_definition, parse_union_decl): Update and use
6619 `linef' muscle.
6620 (copy_action): Likewise.
6621 Use obstack_1grow ().
6622 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
6623
6624 2001-09-21 Marc Autret <autret_m@epita.fr>
6625
6626 * src/options.c (option_table): Adjust.
6627 * src/lex.c (parse_percent_token): Fix.
6628
6629 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
6630
6631 * src/options.c (symtab.h): Include it, need by lex.h.
6632
6633 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
6634
6635 * src/lex.c (parse_percent_token): Change type of variable `tx', which
6636 is now an option_table_struct*.
6637 (option_strcmp): New function option_strcmp.
6638 (parse_percent_token): Call option_strcmp.
6639 * src/getargs.c (xalloc.h, options.h): Include it.
6640 (getargs): Call create_long_option_table.
6641 (getargs): Free longopts at the end of the function.
6642 (shortopts): Move in options.c.
6643 * src/options.c (create_long_option_table): New function. Convert
6644 information from option_table to option structure.
6645 * src/reader.c (options.h): Include it.
6646
6647 * src/Makefile.am: Adjust.
6648 * src/options.c (option_table): Create from longopts and percent_table.
6649 * src/getargs.c (longopts): Delete.
6650 * src/lex.c (struct percent_table_struct): Delete.
6651 (percent_table): Delete.
6652 (options.h): Include it.
6653 * src/options.c: Create.
6654 * src/options.h: Create.
6655 Declare enum opt_access_e.
6656 Define struct option_table_struct.
6657
6658 2001-09-20 Marc Autret <autret_m@epita.fr>
6659
6660 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
6661 sections of Bison.
6662
6663 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
6664
6665 * src/bison.simple: s/%%filename/%%skeleton.
6666 * src/muscle_tab.c (getargs.h): Include it.
6667 (muscle_init): Insert new muscle skeleton.
6668
6669 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
6670
6671 * src/output.c (output_parser): Delete unused variable actions_dumped.
6672
6673 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
6674
6675 * src/output.c (output): Delete call to reader_output_yylsp.
6676 * src/reader.c (reader): Likewise.
6677 * src/reader.h: Delete declaration of reader_output_yylsp.
6678
6679 2001-09-02 Marc Autret <autret_m@epita.fr>
6680
6681 * src/reader.c: Include muscle_tab.h.
6682 (parse_union_decl): Update.
6683 (parse_macro_decl): Rename parse_muscle_decl.
6684 Update to use renamed functions and variable.
6685 (read_declarations, copy_action, read_additionnal_code, : Updated
6686 with correct variables and functions names.
6687 (packsymbols, reader): Likewise.
6688
6689 * src/reader.h (muscle_obstack): Extern declaration update.
6690
6691 * src/output.c: Include muscle_tab.h
6692 In all functions using macro_insert, change by using muscle_insert ().
6693 (macro_obstack): Rename muscle_obstack.
6694 Echo modifications in the whole file.
6695 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
6696 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
6697 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
6698
6699 * src/muscle_tab.h: Update double inclusion macros.
6700 (macro_entry_s): Rename muscle_entry_s.
6701 Update prototypes.
6702
6703 * src/muscle_tab.c: Include muscle_tab.h.
6704 Rename macro_tabble to muscle_table.
6705 (mhash1, mhash2, mcmp): Use muscle_entry.
6706 (macro_init): Rename muscle_init. Update.
6707 (macro_insert): Rename muscle_insert. Update.
6708 (macro_find): Rename muscle_find. Update.
6709
6710 * src/main.c: Include muscle_tab.h.
6711 (main): Call muscle_init ().
6712 * src/Makefile.am (bison_SOURCES): Echo modifications.
6713
6714 2001-09-02 Marc Autret <autret_m@epita.fr>
6715
6716 Now the files macro_tab.[ch] are named muscle_tab.[ch].
6717
6718 * src/muscle_tab.c, src/muscle_tab.h: Add files.
6719
6720 2001-09-02 Marc Autret <autret_m@epita.fr>
6721
6722 * src/macrotab.c, src/macrotab.h: Remove.
6723
6724 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
6725
6726 * src/reader.c (copy_guard): Use muscle to specify the `#line'
6727 filename.
6728
6729 2001-09-01 Marc Autret <autret_m@epita.fr>
6730
6731 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
6732 to an explicit value to activate the feature. We do it here.
6733
6734 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
6735
6736 * src/output.c (prepare): Delete the `filename' muscule insertion.
6737 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
6738 (parse_union_decl): Likewise.
6739 * src/macrotab.c (macro_init): Initialize filename by infile.
6740
6741 2001-08-31 Marc Autret <autret_m@epita.fr>
6742
6743 * src/bison.simple (YYLSP_NEEDED): New definition.
6744 * src/output.c (prepare): Add macro insertion of `locations_flag'
6745
6746 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
6747
6748 * src/output.c (prepare): Delete insertion of previous muscles,
6749 and insert the `prefix' muscles.
6750 * src/macrotab.c (macro_init): Likewise.
6751 (macro_init): Initialization prefix directive by `yy'.
6752 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
6753 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
6754 yylval, yydebug, yyerror, yynerrs and yyparse.
6755 New directive `#define' to substitute yydebug, ... with option
6756 name_prefix.
6757
6758 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
6759
6760 * src/main.c (main): Standardize.
6761 * src/output.c (output_table_data, output_parser): Likewise.
6762 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
6763
6764 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
6765
6766 * src/reader.c (read_additionnal_code): Rename %%user_code to
6767 %%epilogue.
6768 * src/output.c (output): Rename %%declarations to %%prologue.
6769 * src/bison.simple: Echo modifications.
6770
6771 2001-08-31 Marc Autret <autret_m@epita.fr>
6772
6773 * src/reader.c (readgram): CleanUp.
6774 (output_token_defines): Likewise.
6775 (packsymbols): Likewise.
6776 (reader): Likewise.
6777 * src/output.c (output): CPP-out useless code.
6778
6779 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
6780
6781 * src/reader.c (reader): Delete obsolete call to function
6782 output_trailers and output_headers.
6783 * src/output.h: Remove obsolete functions prototypes of output_headers
6784 and output_trailers.
6785
6786 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
6787
6788 * src/main.c: Include macrotab.h.
6789 * src/macrotab.h (macro_entry_s): Constify fields.
6790 Adjust functions prototypes.
6791 * src/macrotab.c (macro_insert): Constify key and value.
6792 (macro_find): Constify key.
6793 (macro_insert): Include 'xalloc.h'
6794 (macro_insert): Use XMALLOC.
6795 (macro_find): Constify return value.
6796 * src/output.c (output_table_data): Rename table to table_data.
6797 (output_parser): Constify macro_key, macro_value.
6798
6799 2001-08-30 Marc Autret <autret_m@epita.fr>
6800
6801 * src/reader.c (parse_skel_decl): New.
6802 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
6803 * src/lex.h (token_t): New token `tok_skel'.
6804 * src/lex.c (percent_table): Add skeleton option entry.
6805 Standardize.
6806
6807 2001-08-29 Marc Autret <autret_m@epita.fr>
6808
6809 * src/bison.simple: Add %%user_code directive at the end.
6810 * src/reader.c (read_additionnal_code): New.
6811 (reader): Use it.
6812 * src/output.c (output_program): Remove.
6813 (output): Update.
6814
6815 2001-08-28 Marc Autret <autret_m@epita.fr>
6816
6817 * src/output.c (output_actions): Clean up.
6818 (output_gram): CPP-out useless code.
6819 * src/reader.c (reader): Clean up, CPP-out useless code.
6820
6821 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
6822
6823 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
6824 directive.
6825 * src/bison.simple: Add `%%definitions'.
6826
6827 2001-08-28 Marc Autret <autret_m@epita.fr>
6828
6829 * config/depcomp: New file.
6830
6831 2001-08-27 Paul Eggert <eggert@twinsun.com>
6832
6833 * src/bison.simple (yyparse): Don't take the address of an
6834 item before the start of an array, as that doesn't conform to
6835 the C Standard.
6836
6837 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
6838
6839 * src/output.c (output): Remove the initialization of the macro
6840 obstack. It was done too late here.
6841
6842 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
6843 completely wrong.
6844 (reader): Initialize the macro obstack here, since we need it to grow
6845 '%define' directives.
6846
6847 * src/reader.h: Declare the macro obstack as extern.
6848
6849 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
6850
6851 * src/output.c (output_parser): Fix. Store single '%' characters in
6852 the output obstack instead of throwing them away.
6853
6854 2001-08-27 Akim Demaille <akim@epita.fr>
6855
6856 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
6857
6858 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6859
6860 * lib/Makefile.am: Adjust.
6861
6862 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6863
6864 * src/bison.simple: Update and add '%%' directives.
6865
6866 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6867
6868 * src/reader.c (reader): Remove calls to 'output_headers' and
6869 'output_trailers'. Remove some C output.
6870 (readgram): Disable a piece of code that was writing a default
6871 definition for 'YYSTYPE'.
6872 (reader_output_yylsp): Remove.
6873 (packsymbols): Output token defintions to a macro.
6874 (copy_definition): Disable C output.
6875
6876 * src/reader.c (parse_macro_decl): New function used to parse macro
6877 declarations.
6878 (copy_string2): Put the body of copy_string into this new function.
6879 Add a parameter to let the caller choose whether he wants to copy the
6880 string delimiters or not.
6881 (copy_string): Be a simple call to copy_string2 with the last argument
6882 bound to true.
6883 (read_declarations): Add case for macro definition.
6884 (copy_identifier): New.
6885 (parse_macro_decl): Read macro identifiers using copy_identifier
6886 rather than lex.
6887
6888 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6889
6890 * src/output.c (prepare): Add prefixed names.
6891 (output_parser): Output semantic actions.
6892 (output_parser): Fix bug on '%%line' directives.
6893
6894 * src/output.c (output_headers): Remove. The C code printed by this
6895 function should now be in the skeletons.
6896 (output_trailers): Remove.
6897 (output): Disable call to 'reader_output_yylsp'.
6898 (output_rule_data): Do not output tables to the table obstack.
6899
6900 * src/output.c: Remove some C dedicated output.
6901 Improve the use of macro and output obstacks.
6902 (output_defines): Remove.
6903
6904 * src/output.c (output_token_translations): Associate 'translate'
6905 table with a macro. No output to the table obstack.
6906 (output_gram): Same for 'rhs' and 'prhs'.
6907 (output_stos): Same for 'stos'.
6908 (output_rule_data): Same for 'r1' and 'r2'.
6909 (token_actions): Same for 'defact'.
6910 (goto_actions): Same for 'defgoto'.
6911 (output_base): Same for 'pact' and 'pgoto'.
6912 (output_table): Same for 'table'.
6913 (output_check): Same for 'check'.
6914
6915 * src/output.c (output_table_data): New function.
6916 (output_short_table): Remove.
6917 (output_short_or_char_table): Remove.
6918
6919 * src/output.c (output_parser): Replace most of the skeleton copy code
6920 with something new. Skeletons are now processed character by character
6921 rather than line by line, and Bison looks for '%%' macros. This is the
6922 first step in making Bison's output process (a lot) more flexible.
6923 (output_parser): Use the macro table.
6924
6925 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6926
6927 * src/main.c (main): Initialize the macro table.
6928
6929 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6930
6931 * src/lex.c (percent_table): Add tok_define.
6932 * src/lex.h: Add tok_define.
6933
6934 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6935
6936 * src/macrotab.c: New file.
6937 * src/macrotab.h: New file.
6938 * src/Makefile.am: Update.
6939
6940 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
6941
6942 * lib/hash.c: New file.
6943 * lib/hash.h: New file.
6944 * lib/Makefile.am: Update.
6945
6946 2001-08-15 Akim Demaille <akim@epita.fr>
6947
6948 Version 1.28c.
6949
6950 2001-08-15 Marc Autret <autret_m@epita.fr>
6951
6952 * src/reader.c (readgram): Indent output macro YYSTYPE.
6953 (packsymbols): Likewise.
6954 (output_token_defines): Likewise.
6955 * src/files.c: Standardize.
6956 (compute_header_macro): New.
6957 (defines_obstack_save): New. Use compute_header_macro.
6958 (output_files): Update. Use defines_obstack_save.
6959
6960 2001-08-15 Akim Demaille <akim@epita.fr>
6961
6962 * doc/bison.texinfo (Table of Symbols): Document
6963 YYSTACK_USE_ALLOCA.
6964
6965 2001-08-15 Akim Demaille <akim@epita.fr>
6966
6967 * missing: Update from CVS Automake.
6968 * config/config.guess, config/config.sub, config/texinfo.tex:
6969 Update from gnu.org.
6970
6971 2001-08-15 Akim Demaille <akim@epita.fr>
6972
6973 * Makefile.maint: Sync with CVS Autoconf.
6974
6975 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
6976
6977 * doc/bison.texinfo: Include GNU Free Documentation License from
6978 `fdl.texi'.
6979 * doc/fdl.texi: Add to package.
6980
6981 2001-08-14 Marc Autret <autret_m@epita.fr>
6982
6983 Turn on %{source,header}_extension features.
6984
6985 * src/lex.c (percent_table): Un-CPP out header_extension and
6986 source_extension.
6987 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
6988 (compute_exts_from_src): Remove conditions. It restores priorities
6989 between options.
6990
6991 2001-08-14 Marc Autret <autret_m@epita.fr>
6992
6993 * src/files.c (compute_base_names): Add extensions computing when
6994 `--file-prefix' used.
6995 Standardize function calls.
6996
6997 2001-08-13 Marc Autret <autret_m@epita.fr>
6998
6999 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
7000 defining it (defined but null disables alloca).
7001
7002 2001-08-13 Marc Autret <autret_m@epita.fr>
7003
7004 * src/bison.simple (_yy_memcpy): CPP reformat.
7005
7006 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
7007
7008 * tests/atconfig.in (CPPFLAGS): Fix.
7009
7010 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
7011
7012 * doc/bison.texinfo: Include GNU General Public License from
7013 `gpl.texi'.
7014 * doc/gpl.texi: Add to package.
7015
7016 2001-08-10 Marc Autret <autret_m@epita.fr>
7017
7018 * src/print_graph.h: Fix.
7019 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
7020
7021 2001-08-10 Akim Demaille <akim@epita.fr>
7022
7023 * src/system.h: Provide default declarations for stpcpy, strndup,
7024 and strnlen.
7025
7026 2001-08-10 Robert Anisko <anisko_r@epita.fr>
7027
7028 * doc/bison.texinfo (Locations): Update @$ stuff.
7029
7030 2001-08-09 Robert Anisko <anisko_r@epita.fr>
7031
7032 * src/bison.simple (YYLLOC_DEFAULT): Update.
7033 (yyparse): Adjust.
7034
7035 2001-08-08 Marc Autret <autret_m@epita.fr>
7036
7037 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
7038 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
7039 Reported by Fabrice Bauzac.
7040
7041 2001-08-08 Marc Autret <autret_m@epita.fr>
7042
7043 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
7044 * src/vcg.c (output_node): Fix.
7045 * src/vcg.h: Cleanup.
7046 * src/print_graph.c: Add comments.
7047 (node_output_size): New global variable. Simplify the formatting of
7048 the VCG graph output.
7049 (print_actions): Unused code is now used. It notifies the final state
7050 and no action states in the VCG graph. It also give the reduce actions.
7051 The `shift and goto' edges are red and the `go to state' edges are
7052 blue.
7053 Get the current node name and node_obstack by argument.
7054 (node_obstack): New variable.
7055 (print_state): Manage node_obstack.
7056 (print_core): Use node_obstack given by argument.
7057 A node is not only computed here but in print_actions also.
7058 (print_graph): CPP out useless code instead of commenting it.
7059
7060 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
7061
7062 * tests/atconfig.in (CPPFLAGS): Fix.
7063
7064 2001-08-07 Akim Demaille <akim@epita.fr>
7065
7066 * src/print_graph.c (quote): New.
7067 (print_core): Use it.
7068
7069 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
7070
7071 * src/vcg.c (complain.h): Include it.
7072 Unepitaize `return' invocations.
7073 [NDEBUG] (main): Remove.
7074 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
7075 * src/files.c (open_files): Initialize graph_obstack.
7076 * src/print_graph.c (print_actions): CPP out useless code.
7077 (print_core): Don't output the last `\n' in labels.
7078 Use `quote'.
7079 * src/files.c (output_files): Output the VCG file.
7080 * src/main.c (main): Invoke print_graph ();
7081
7082 2001-08-06 Marc Autret <autret_m@epita.fr>
7083
7084 Automaton VCG graph output.
7085 Using option ``-g'' or long option ``--graph'', you can generate
7086 a gram_filename.vcg file containing a VCG description of the LALR (1)
7087 automaton of your grammar.
7088
7089 * src/main.c: Call to print_graph() function.
7090 * src/getargs.h: Update.
7091 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
7092 (graph_flag): New flag.
7093 (longopts): Update.
7094 (getargs): Add case `g'.
7095 * src/files.c (graph_obstack): New obstack struct.
7096 (open_files): Initialize new obstack.
7097 (output_files): Saves graph_obstack if required.
7098 * src/files.h (graph_obstack): New extern declaration.
7099 * src/Makefile.am: Add new source files.
7100
7101 2001-08-06 Marc Autret <autret_m@epita.fr>
7102
7103 * src/print_graph.c, src/print_graph.h (graph): New.
7104 * src/vcg.h: New file.
7105 * src/vcg.c: New file, VCG graph handling.
7106
7107 2001-08-06 Marc Autret <autret_m@epita.fr>
7108
7109 Add of %source_extension and %header_extension which specify
7110 the source or/and the header output file extension.
7111
7112 * src/files.c (compute_base_names): Remove initialisation of
7113 src_extension and header_extension.
7114 (compute_exts_from_gf): Update.
7115 (compute_exts_from_src): Update.
7116 (output_files): Update.
7117 * src/reader.c (parse_header_extension_decl): New.
7118 (parse_source_extension_decl): New.
7119 (read_declarations): New case statements for the new tokens.
7120 * src/lex.c (percent_table): Add entries for %source_extension
7121 and %header_extension.
7122 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
7123
7124 2001-08-06 Marc Autret <autret_m@epita.fr>
7125
7126 * configure.in: Bump to 1.28c.
7127 * doc/bison.texinfo: Texinfo thingies.
7128
7129 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
7130
7131 * tests/atconfig.in (CPPFLAGS): Add.
7132 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
7133
7134 2001-08-03 Akim Demaille <akim@epita.fr>
7135
7136 Version 1.28b.
7137
7138 2001-08-03 Akim Demaille <akim@epita.fr>
7139
7140 * tests/Makefile.am (check-local): Ship testsuite.
7141 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
7142 Include `string.h'.
7143
7144 2001-08-03 Akim Demaille <akim@epita.fr>
7145
7146 * configure.in: Try using -Wformat when compiling.
7147
7148 2001-08-03 Akim Demaille <akim@epita.fr>
7149
7150 * configure.in: Bump to 1.28b.
7151
7152 2001-08-03 Akim Demaille <akim@epita.fr>
7153
7154 * src/complain.c: Adjust strerror_r portability issues.
7155
7156 2001-08-03 Akim Demaille <akim@epita.fr>
7157
7158 Version 1.28a.
7159
7160 2001-08-03 Akim Demaille <akim@epita.fr>
7161
7162 * src/getargs.c, src/getarg.h (skeleton)): Constify.
7163 * src/lex.c (literalchar): Avoid name clashes on `buf'.
7164 * src/getargs.c: Include complain.h.
7165 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
7166 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
7167
7168 2001-08-03 Akim Demaille <akim@epita.fr>
7169
7170 * src/reader.c (readgram): Display hidden chars in error messages.
7171
7172 2001-08-03 Akim Demaille <akim@epita.fr>
7173
7174 Update to gettext 0.10.39.
7175
7176 2001-08-03 Akim Demaille <akim@epita.fr>
7177
7178 * lib/strspn.c: New.
7179
7180 2001-08-01 Marc Autret <autret_m@epita.fr>
7181
7182 * doc/bison.texinfo: Update.
7183 * doc/bison.1 (mandoc): Update.
7184 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
7185 * src/files.c: Support output files extensions computing.
7186 (src_extension): New static variable.
7187 (header_extension): New static variable.
7188 (tr): New function.
7189 (get_extension_index): New function, gets the index of an extension
7190 filename in a string.
7191 (compute_exts_from_gf): New function, computes extensions from the
7192 grammar file extension.
7193 (compute_exts_from_src): New functions, computes extensions from the
7194 C source file extension, file given by ``-o'' option.
7195 (compute_base_names): Update.
7196 (output_files): Update.
7197
7198 2001-08-01 Robert Anisko <anisko_r@epita.fr>
7199
7200 * doc/bison.texi: Document @$.
7201 (Locations): New section.
7202
7203 2001-07-18 Akim Demaille <akim@epita.fr>
7204
7205 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
7206 * config/prev-version.txt, config/move-if-change: New.
7207 * Makefile.am: Adjust.
7208
7209 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
7210
7211 * src/bison.simple (yyparse): Suppress warning `comparaison
7212 between signed and unsigned'.
7213
7214 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
7215
7216 * src/getargs.h (raw_flag): Remove.
7217 * src/getargs.c: Die on `-r'/`--raw'.
7218 * src/lex.c (parse_percent_token): Die on `%raw'.
7219 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
7220 * tests/calc.at: Suppress test with option `--raw'.
7221
7222 2001-07-14 Akim Demaille <akim@epita.fr>
7223
7224 * config/: New.
7225 * configure.in: Require Autoconf 2.50.
7226 Update to gettext 0.10.38.
7227
7228 2001-03-16 Akim Demaille <akim@epita.fr>
7229
7230 * doc/bison.texinfo: ANSIfy the examples.
7231
7232 2001-03-16 Akim Demaille <akim@epita.fr>
7233
7234 * getargs.c (skeleton): New variable.
7235 (longopts): --skeleton is a new option.
7236 (shortopts, getargs): -S is a new option.
7237 * getargs.h: Declare skeleton.
7238 * output.c (output_parser): Use it.
7239
7240 2001-03-16 Akim Demaille <akim@epita.fr>
7241
7242 * m4/strerror_r.m4: New.
7243 * m4/error.m4: Run AC_FUNC_STRERROR_R.
7244 * lib/error.h, lib/error.c: Update.
7245
7246 2001-03-16 Akim Demaille <akim@epita.fr>
7247
7248 * src/getargs.c (longopts): Clean up.
7249
7250 2001-02-21 Akim Demaille <akim@epita.fr>
7251
7252 * src/reader.c (gensym): `gensym_count' is your own.
7253 Use a static buf to create the symbol name, as token_buffer is no
7254 longer a buffer.
7255
7256 2001-02-08 Akim Demaille <akim@epita.fr>
7257
7258 * src/conflicts.c (conflict_report): Be sure not to append to res
7259 between two calls, which could happen if both first sprintf were
7260 skipped, but not the first cp += strlen.
7261
7262 2001-02-08 Akim Demaille <akim@epita.fr>
7263
7264 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
7265 New, from fileutils 4.0.37.
7266 * configure.in: Require Autoconf 2.49c. I took some time before
7267 making this decision. This is the only way out for portability
7268 issues in Bison, it would mean way too much duplicate effort to
7269 import in Bison features implemented in 2.49c since 2.13.
7270 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
7271
7272 2001-02-02 Akim Demaille <akim@epita.fr>
7273
7274 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
7275 * lib/xalloc.h, lib/xmalloc.c: Update.
7276
7277 2001-01-19 Akim Demaille <akim@epita.fr>
7278
7279 Get rid of the ad hoc handling of token_buffer in the scanner: use
7280 the obstacks.
7281
7282 * src/lex.c (token_obstack): New.
7283 (init_lex): Initialize it. No longer call...
7284 (grow_token_buffer): this. Remove it.
7285 Adjust all the places which used it to use the obstack.
7286
7287 2001-01-19 Akim Demaille <akim@epita.fr>
7288
7289 * src/lex.h: Rename all the tokens:
7290 s/\bENDFILE\b/tok_eof/g;
7291 s/\bIDENTIFIER\b/tok_identifier/g;
7292 etc.
7293 Let them be enums, not #define, to ease debugging.
7294 Adjust all the code.
7295
7296 2001-01-18 Akim Demaille <akim@epita.fr>
7297
7298 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
7299 * src/lex.c (maxtoken, grow_token_buffer): Static.
7300
7301 2001-01-18 Akim Demaille <akim@epita.fr>
7302
7303 Since we now use obstacks, more % directives can be enabled.
7304
7305 * src/lex.c (percent_table): Also accept `%yacc',
7306 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
7307 `%debug'.
7308 Handle the actions for `%semantic_parser' and `%pure_parser' here,
7309 instead of returning a token.
7310 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
7311 * src/reader.c (read_declarations): Adjust.
7312 * src/files.c (open_files): Don't call `compute_base_names', don't
7313 compute `attrsfile' since they depend upon data which might be
7314 *in* the input file now.
7315 (output_files): Do it here.
7316 * src/output.c (output_headers): Document the fact that this patch
7317 introduces a guaranteed SEGV for semantic parsers.
7318 * doc/bison.texinfo: Document them.
7319 * tests/suite.at: Exercise these %options.
7320
7321 2000-12-20 Akim Demaille <akim@epita.fr>
7322
7323 Also handle the output file (--verbose) with obstacks.
7324
7325 * files.c (foutput): Remove.
7326 (output_obstack): New.
7327 Adjust all dependencies.
7328 * src/conflicts.c: Return a string.
7329 * src/system.h (obstack_grow_string): Rename as...
7330 (obstack_sgrow): this. Be ready to work with non literals.
7331 (obstack_fgrow4): New.
7332
7333 2000-12-20 Akim Demaille <akim@epita.fr>
7334
7335 * src/files.c (open_files): Fix the computation of short_base_name
7336 in the case of `-o foo.tab.c'.
7337
7338 2000-12-20 Akim Demaille <akim@epita.fr>
7339
7340 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
7341 (copy_dollar): Now that everything uses obstacks, get rid of the
7342 FILE * parameters.
7343
7344 2000-12-20 Akim Demaille <akim@epita.fr>
7345
7346 * src/files.c (open_files): Actually the `.output' file is based
7347 on the short_base_name, not base_name.
7348 * tests/suite.at (Checking output file names): Adjust.
7349
7350 2000-12-20 Akim Demaille <akim@epita.fr>
7351
7352 * src/bison.s1: Remove, we now use directly...
7353 * src/bison.simple: this.
7354 * src/Makefile.am: Use pkgdata instead of data.
7355
7356 2000-12-20 Akim Demaille <akim@epita.fr>
7357
7358 * src/files.c (guard_obstack): New.
7359 (open_files): Initialize it.
7360 (output_files): Dump it...
7361 * src/files.h: Export it.
7362 * src/reader.c (copy_guard): Use it.
7363
7364 2000-12-19 Akim Demaille <akim@epita.fr>
7365
7366 * src/files.c (outfile, defsfile, actfile): Removed as global
7367 vars.
7368 (open_files): Don't compute them.
7369 (output_files): Adjust.
7370 (base_name, short_base_name): Be global.
7371 Adjust dependencies.
7372
7373 2000-12-19 Akim Demaille <akim@epita.fr>
7374
7375 * src/files.c (strsuffix): New.
7376 (stringappend): Be just like strcat but allocate.
7377 (base_names): Eve out from open_files.
7378 Try to simplify the rather hairy computation of base_name and
7379 short_base_name.
7380 (open_files): Use it.
7381 * tests/suite.at (Checking output file names): New test.
7382
7383 2000-12-19 Akim Demaille <akim@epita.fr>
7384
7385 * src/system.h (obstack_grow_literal_string): Rename as...
7386 (obstack_grow_string): this.
7387 * src/output.c (output_parser): Recognize `%% actions' instead of
7388 `$'.
7389 * src/bison.s1: s/$/%% actions/.
7390 * src/bison.hairy: Likewise.
7391
7392 2000-12-19 Akim Demaille <akim@epita.fr>
7393
7394 * src/output.c (output_parser): Compute the `#line' lines when
7395 there are.
7396 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
7397 Suggested by Hans Aberg.
7398
7399 2000-12-19 Akim Demaille <akim@epita.fr>
7400
7401 Let the handling of the skeleton files be local to the procedures
7402 that use it.
7403
7404 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
7405 longer static.
7406 (fparser, open_extra_files): Remove.
7407 (open_files, output_files): Don't take care of fparser.
7408 * src/files.h: Adjust.
7409 * src/output.c (output_parser): Open and close the file to the
7410 skeleton.
7411 * src/reader.c (read_declarations): When %semantic_parser, open
7412 fguard.
7413
7414 2000-12-19 Akim Demaille <akim@epita.fr>
7415
7416 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
7417 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
7418
7419 2000-12-19 Akim Demaille <akim@epita.fr>
7420
7421 * src/files.c (open_files): Yipee! We no longer need all the code
7422 looking for `/tmp' since we have no tmp file.
7423
7424 2000-12-19 Akim Demaille <akim@epita.fr>
7425
7426 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
7427 New macros.
7428 * src/files.c (open_files): Less dependency on MSDOS etc.
7429
7430 2000-12-14 Akim Demaille <akim@epita.fr>
7431
7432 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
7433 Provide a default definition.
7434 Use it when executing the default @ action.
7435 * src/reader.c (reader_output_yylsp): No longer include
7436 `timestamp' and `text' in the default YYLTYPE.
7437
7438 2000-12-12 Akim Demaille <akim@epita.fr>
7439
7440 * src/reader.c (copy_definition, parse_union_decl, copy_action)
7441 (copy_guard): Quote the file names.
7442 Reported by Laurent Mascherpa.
7443
7444 2000-12-12 Akim Demaille <akim@epita.fr>
7445
7446 * src/output.c (output_headers, output_program, output): Be sure
7447 to escape special characters when outputting filenames.
7448 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
7449 (output_headers): Don't depend on them, Use ACTSTR.
7450
7451 2000-11-17 Akim Demaille <akim@epita.fr>
7452
7453 * lib/obstack.h: Formatting changes.
7454 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
7455 prevents type checking.
7456 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
7457 cast the value to (void *): assigning a `foo *' to a `void *'
7458 variable is valid.
7459 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
7460 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
7461 append characters.
7462
7463 2000-11-17 Akim Demaille <akim@epita.fr>
7464
7465 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
7466 as...
7467 (suite.m4, regression.m4, calc.m4): these.
7468 * tests/atgeneral.m4: Update from CVS Autoconf.
7469
7470 2000-11-17 Akim Demaille <akim@epita.fr>
7471
7472 * tests/regression.m4 (%union and --defines): New test,
7473 demonstrating a current bug in the obstack implementation.
7474
7475 2000-11-17 Akim Demaille <akim@epita.fr>
7476
7477 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
7478 macros.
7479 Use them to declare the variables which are global or local to
7480 `yyparse'.
7481
7482 2000-11-17 Akim Demaille <akim@epita.fr>
7483
7484 * acconfig.h: Remove, no longer used.
7485
7486 2000-11-07 Akim Demaille <akim@epita.fr>
7487
7488 * src: s/Copyright (C)/Copyright/g.
7489
7490 2000-11-07 Akim Demaille <akim@epita.fr>
7491
7492 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
7493 defining.
7494 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
7495
7496 2000-11-07 Akim Demaille <akim@epita.fr>
7497
7498 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
7499 Merge in a single CPP if/else.
7500
7501 2000-11-07 Akim Demaille <akim@epita.fr>
7502
7503 * src/output.c (output): Remove useless variables.
7504 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
7505 argument `data' for consistency with the prototypes.
7506 Qualify it `const'.
7507 (obstack_copy, obstack_copy0): Rename the second argument as
7508 `address' for consistency. Qualify it `const'.
7509 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
7510 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
7511 `const' their input argument (`data' or `address').
7512 Adjust the corresponding macros to include `const' in casts.
7513
7514 2000-11-03 Akim Demaille <akim@epita.fr>
7515
7516 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
7517 s/PFILE1/BISON_HAIRY/.
7518 Adjust dependencies.
7519
7520 2000-11-03 Akim Demaille <akim@epita.fr>
7521
7522 For some reason, this was not applied.
7523
7524 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
7525 `unlink': it's no longer used.
7526
7527 2000-11-03 Akim Demaille <akim@epita.fr>
7528
7529 * src/files.c (skeleton_find): New function, eved out of...
7530 (open_files, open_extra_files): here.
7531
7532 2000-11-03 Akim Demaille <akim@epita.fr>
7533
7534 Don't use `atexit'.
7535
7536 * src/files.c (obstack_save): New function.
7537 (done): Rename as...
7538 (output_files): this.
7539 Use `obstack_save'.
7540 * src/main.c (main): Don't use `atexit' to register `done', since
7541 it no longer has to remove tmp files, just call `output_files'
7542 when there are no errors.
7543
7544 2000-11-02 Akim Demaille <akim@epita.fr>
7545
7546 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
7547 `unlink': it's no longer used.
7548 * src/files.h: Formatting changes.
7549
7550 2000-11-02 Akim Demaille <akim@epita.fr>
7551
7552 Remove the last uses of mktemp and unlink/delete.
7553
7554 * src/files.c (fdefines, ftable): Removed.
7555 (defines_ostack, table_obstack): New.
7556 Adjust dependencies of the former into uses of the latter.
7557 * src/output.c (output_short_or_char_table, output_short_table):
7558 Convert to using obstacks.
7559 * src/reader.c (copy_comment2): Accept one FILE * and two
7560 obstacks.
7561 (output_token_defines, reader_output_yylsp): Use obstacks.
7562 * src/system.h (obstack_fgrow3): New.
7563
7564 2000-11-01 Akim Demaille <akim@epita.fr>
7565
7566 Change each use of `fattrs' into a use of `attrs_obstack'.
7567
7568 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
7569 * src/files.c (fattrs): Remove.
7570 (attrs_obstack): New.
7571 Adjust all dependencies.
7572 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
7573
7574 2000-11-01 Akim Demaille <akim@epita.fr>
7575
7576 Introduce obstacks.
7577 Change each use of `faction' into a use of `action_obstack'.
7578
7579 * lib/obstack.h, lib/obstack.c: New files.
7580 * src/files.c (faction): Remove.
7581 (action_obstack): New.
7582 Adjust all dependencies.
7583
7584 2000-10-20 Akim Demaille <akim@epita.fr>
7585
7586 * lib/quote.h (PARAMS): New macro. Use it.
7587
7588 2000-10-16 Akim Demaille <akim@epita.fr>
7589
7590 * src/output.c (output_short_or_char_table): New function.
7591 (output_short_table, output_token_translations): Use it.
7592 (goto_actions): Use output_short_table.
7593
7594 2000-10-16 Akim Demaille <akim@epita.fr>
7595
7596 * src/symtab.c (bucket_new): New function.
7597 (getsym): Use it.
7598
7599 * src/output.c (output_short_table): New argument to display the
7600 comment associated with the table.
7601 Adjust dependencies.
7602 (output_gram): Use it.
7603 (output_rule_data): Nicer output layout for YYTNAME.
7604
7605 2000-10-16 Akim Demaille <akim@epita.fr>
7606
7607 * src/lex.c (read_typename): New function.
7608 (lex): Use it.
7609 * src/reader.c (copy_dollar): Likewise.
7610
7611 2000-10-16 Akim Demaille <akim@epita.fr>
7612
7613 * src/reader.c (copy_comment2): Expect the input stream to be on
7614 the `/' which is suspected to open a comment, instead of being
7615 called after `//' or `/*' was read.
7616 (copy_comment, copy_definition, parse_union_decl, copy_action)
7617 (copy_guard): Adjust.
7618
7619 2000-10-16 Akim Demaille <akim@epita.fr>
7620
7621 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
7622 `read_signed_integer'.
7623
7624 2000-10-16 Akim Demaille <akim@epita.fr>
7625
7626 * src/reader.c (copy_dollar): New function.
7627 (copy_guard, copy_action): Use it.
7628
7629 2000-10-16 Akim Demaille <akim@epita.fr>
7630
7631 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
7632 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
7633 New files, from Fileutils 4.0.27.
7634 * src/main.c (printable_version): Remove.
7635 * src/lex.c, src/reader.c: Use `quote'.
7636
7637 2000-10-04 Akim Demaille <akim@epita.fr>
7638
7639 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
7640
7641 2000-10-04 Akim Demaille <akim@epita.fr>
7642
7643 * doc/bison.texinfo: Various typos spotted by Neil Booth.
7644
7645 2000-10-04 Akim Demaille <akim@epita.fr>
7646
7647 When a literal string is used to define two different tokens,
7648 `bison -v' segfaults.
7649 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
7650
7651 * tests/regression.m4: New file.
7652 Include the core of the sample provided by Piotr Gackiewicz.
7653 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
7654 properly.
7655
7656 2000-10-04 Akim Demaille <akim@epita.fr>
7657
7658 * src/reader.c (parse_expect_decl): Keep `count' within the size
7659 of `buffer'.
7660 From Neil Booth.
7661
7662 2000-10-02 Paul Eggert <eggert@twinsun.com>
7663
7664 * bison.s1 (yyparse): Assign the default value
7665 unconditionally, to avoid a GCC warning and make the parser a
7666 tad smaller.
7667
7668 2000-10-02 Akim Demaille <akim@epita.fr>
7669
7670 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
7671 options.
7672
7673 2000-10-02 Akim Demaille <akim@epita.fr>
7674
7675 * src/derives.c, src/print.c, src/reduce.c: To ease the
7676 translation, move some `\n' out of the translated strings.
7677
7678 2000-10-02 Akim Demaille <akim@epita.fr>
7679
7680 The location tracking mechanism is precious for parse error
7681 messages. Nevertheless, it is enabled only when `@n' is used in
7682 the grammar, which is a different issue (you can use it in error
7683 message, but not in the grammar per se). Therefore, there should
7684 be another means to enable it.
7685
7686 * src/getargs.c (getargs): Support `--locations'.
7687 (usage): Report it.
7688 * src/getargs.h (locationsflag): Export it.
7689 * src/lex.c (percent_table): Support `%locations'.
7690 * src/reader.c (yylsp_needed): Remove this variable, now replaced
7691 with `locationsflag'.
7692 * doc/bison.texinfo: Document `--locations' and `%locations'.
7693 Sort the options.
7694 * tests/calc.m4: Test it.
7695
7696 For regularity of the names, replace each
7697 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
7698 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
7699 In addition replace each `flag' with `_flag'.
7700
7701 2000-10-02 Akim Demaille <akim@epita.fr>
7702
7703 Also test parse error messages, including with YYERROR_VERBOSE.
7704
7705 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
7706 associative).
7707 Use it to check the computations.
7708 Use it to check `nonassoc' is honored.
7709 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
7710 `--yyerror-verbose'.
7711 (_AT_CHECK_CALC): Adjust to this option.
7712 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
7713
7714 2000-10-02 Akim Demaille <akim@epita.fr>
7715
7716 Test also `--verbose', `--defines' and `--name-prefix'. Testing
7717 the latter demonstrates a flaw in the handling of non debugging
7718 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
7719 was used in order to simplify:
7720
7721 #if YYDEBUG
7722 if (yydebug)
7723 {
7724 ...
7725 }
7726 #endif
7727
7728 into
7729
7730 if (yydebug)
7731 {
7732 ...
7733 }
7734
7735 unfortunately this leads to a CPP conflict when
7736 `--name-prefix=foo' is used since it produces `#define yydebug
7737 foodebug'.
7738
7739 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
7740 (YYDPRINTF): New macro.
7741 Spread its use.
7742 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
7743 the bison options.
7744 Also test `--verbose', `--defines' and `--name-prefix'.
7745
7746 2000-10-02 Akim Demaille <akim@epita.fr>
7747
7748 Improve the readability of the produced parsers.
7749
7750 * src/bison.s1: Formatting changes.
7751 Improve the comment related to the `$' mark.
7752 (yydefault): Don't fall through to `yyresume': `goto' there.
7753 * src/output.c (output_parser): When the `$' is met, skip the end
7754 of its line.
7755 New variable, `number_of_dollar_signs', to check there's exactly
7756 one `$' in the parser skeleton.
7757
7758 2000-10-02 Akim Demaille <akim@epita.fr>
7759
7760 * lib/xstrdup.c: New file, from the fileutils.
7761 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
7762 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
7763 instead of strlen + xmalloc + strcpy.
7764 * src/symtab.c (copys): Remove, use xstrdup instead.
7765
7766 2000-10-02 Akim Demaille <akim@epita.fr>
7767
7768 * src/gram.h (associativity): New enum type which replaces the
7769 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
7770 `right_assoc', `left_assoc' and `non_assoc'.
7771 Adjust all dependencies.
7772 * src/reader.c: Formatting changes.
7773 (LTYPESTR): Don't define it, use it as a literal in
7774 `reader_output_yylsp'.
7775 * src/symtab.h (symbol_class): New enum type which replaces the
7776 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
7777 `sunknown', `stoken and `snterm'.
7778
7779 2000-10-02 Akim Demaille <akim@epita.fr>
7780
7781 * src/getargs.c (fixed_outfiles): Rename as...
7782 (yaccflag): for consistency and accuracy.
7783 Adjust dependencies.
7784
7785 2000-10-02 Akim Demaille <akim@epita.fr>
7786
7787 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
7788 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
7789 difficult and introduced a lot of core dump. It turns out that
7790 Bison used an implementation of `xmalloc' based on `calloc', and
7791 at various places it does depend upon the initialization to 0. I
7792 have not tried to isolate the pertinent places, and all the former
7793 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
7794 someone should address this issue.
7795
7796 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
7797 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
7798 files.
7799 Adjust dependencies.
7800 * src/warshall.h: New file.
7801 Propagate.
7802
7803 2000-10-02 Akim Demaille <akim@epita.fr>
7804
7805 Various anti-`extern in *.c' changes.
7806
7807 * src/system.h: Include `assert.h'.
7808
7809 2000-10-02 Akim Demaille <akim@epita.fr>
7810
7811 * src/state.h (nstates, final_state, first_state, first_shift)
7812 (first_reduction): Move their exportation from here...
7813 * src/LR0.h: to here.
7814 Adjust dependencies.
7815 * src/getargs.c (statisticsflag): New variable.
7816 Add support for `--statistics'.
7817 Adjust dependencies.
7818
7819 Remove a lot of now useless `extern' statements in most files.
7820
7821 2000-10-02 Akim Demaille <akim@epita.fr>
7822
7823 * src/LR0.h: New file.
7824 Propagate its use.
7825
7826 2000-10-02 Akim Demaille <akim@epita.fr>
7827
7828 * src/print.h: New file.
7829 Propagate its use.
7830 * src/print.c: Formatting and ordering changes.
7831 (verbose, terse): Replace with...
7832 (print_results): this new function.
7833 Adjust dependencies.
7834
7835 2000-10-02 Akim Demaille <akim@epita.fr>
7836
7837 * src/conflicts.c (conflict_report): New function.
7838 (conflict_log, verbose_conflict_log): Replace with...
7839 (print_conflicts): this function.
7840 Adjust dependencies.
7841 * src/conflicts.h: New file.
7842 Propagate its inclusion.
7843
7844 2000-10-02 Akim Demaille <akim@epita.fr>
7845
7846 * src/nullable.h: New file.
7847 Propagate its inclusion.
7848 * src/nullable.c: Formatting changes.
7849
7850 2000-10-02 Akim Demaille <akim@epita.fr>
7851
7852 * src/reduce.h: New file.
7853 Propagate its inclusion.
7854 * src/reduce.c: Topological sort and other formatting changes.
7855 (bool, TRUE, FALSE): Move their definition to...
7856 * src/system.h: here.
7857
7858 2000-10-02 Akim Demaille <akim@epita.fr>
7859
7860 * src/files.c: Formatting changes.
7861 (tryopen, tryclose, openfiles): Rename as...
7862 (xfopen, xfclose, open_files): this.
7863 (stringappend): static.
7864 * src/files.h: Complete the list of exported symbols.
7865 Propagate its use.
7866
7867 2000-10-02 Akim Demaille <akim@epita.fr>
7868
7869 * src/reader.h: New file.
7870 Propagate its use instead of tedious list of `extern' and
7871 prototypes.
7872 * src/reader.c: Formatting changes, topological sort,
7873 s/register//.
7874
7875 2000-10-02 Akim Demaille <akim@epita.fr>
7876
7877 * src/lex.h: Prototype `lex.c' exported functions.
7878 * src/reader.c: Adjust.
7879 * src/lex.c: Formatting changes.
7880 (safegetc): Rename as...
7881 (xgetc): this.
7882
7883 2000-10-02 Akim Demaille <akim@epita.fr>
7884
7885 * src/lalr.h: New file.
7886 Propagate its inclusion instead of prototypes and `extern'.
7887 * src/lalr.c: Formatting changes, topological sorting etc.
7888
7889 2000-10-02 Akim Demaille <akim@epita.fr>
7890
7891 * src/output.c (token_actions): Introduce a temporary array,
7892 YYDEFACT, that makes it possible for this function to use
7893 output_short_table.
7894
7895 2000-10-02 Akim Demaille <akim@epita.fr>
7896
7897 `user_toknums' is output as a `short[]' in `output.c', while it is
7898 defined as a `int[]' in `reader.c'. For consistency with the
7899 other output tables, `user_toknums' is now defined as a table of
7900 shorts.
7901
7902 * src/reader.c (user_toknums): Be a short table instead of an int
7903 table.
7904 Adjust dependencies.
7905
7906 Factor the short table outputs.
7907
7908 * src/output.c (output_short_table): New function.
7909 * src/output.c (output_gram, output_stos, output_rule_data)
7910 (output_base, output_table, output_check): Use it.
7911
7912 2000-10-02 Akim Demaille <akim@epita.fr>
7913
7914 * src/output.c (output): Topological sort of the functions, in
7915 order to get rid of the `static' prototypes.
7916 No longer use `register'.
7917 * src/output.h: New file.
7918 Propagate its inclusion in files explicitly prototyping functions
7919 from output.c.
7920
7921 2000-09-21 Akim Demaille <akim@epita.fr>
7922
7923 * src/atgeneral.m4: Update from Autoconf.
7924
7925 2000-09-21 Akim Demaille <akim@epita.fr>
7926
7927 * src/closure.h: New file.
7928 * src/closure.c: Formatting changes, topological sort over the
7929 functions, use of closure.h.
7930 (initialize_closure, finalize_closure): Rename as...
7931 (new_closure, free_closure): these. Adjust dependencies.
7932 * src/LR0.c: Formatting changes, topological sort, use of
7933 cloture.h.
7934 (initialize_states): Rename as...
7935 (new_states): this.
7936 * src/Makefile.am (noinst_HEADERS): Adjust.
7937
7938 2000-09-20 Akim Demaille <akim@epita.fr>
7939
7940 * src/acconfig.h: Don't protect config.h against multiple
7941 inclusion.
7942 Don't define PARAMS.
7943 * src/system.h: Define PARAMS.
7944 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
7945 purpose of config.h. system.h must not try to fix wrong
7946 definitions in config.h.
7947
7948 2000-09-20 Akim Demaille <akim@epita.fr>
7949
7950 * src/derives.h: New file.
7951 * src/main.c, src/derives.h: Use it.
7952 Formatting changes.
7953 * src/Makefile.am (noinst_HEADERS): Adjust.
7954
7955 2000-09-20 Akim Demaille <akim@epita.fr>
7956
7957 * tests/atgeneral.m4: Update from Autoconf.
7958 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
7959 (AT_CHECK_CALC): New macros.
7960 Use these macros to test bison with options `', `--raw',
7961 `--debug', `--yacc', `--yacc --debug'.
7962
7963 2000-09-19 Akim Demaille <akim@epita.fr>
7964
7965 * src/output.c: Formatting changes.
7966 * src/machine.h: Remove, leaving its contents in...
7967 * src/system.h: here.
7968 Include stdio.h.
7969 Adjust all dependencies on stdio.h and machine.h.
7970 * src/getargs.h: New file.
7971 Let all `extern' declarations about getargs.c be replaced with
7972 inclusion of `getargs.h'.
7973 * src/Makefile.am (noinst_HEADERS): Adjust.
7974
7975 * tests/calc.m4 (yyin): Be initialized in main, not on the global
7976 scope.
7977 (yyerror): Returns void, not int.
7978 * doc/bison.texinfo: Formatting changes.
7979
7980 2000-09-19 Akim Demaille <akim@epita.fr>
7981
7982 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
7983 portable.
7984
7985 2000-09-18 Akim Demaille <akim@epita.fr>
7986
7987 * configure.in: Append WARNING_CFLAGS to CFLAGS.
7988 * src/Makefile.am (INCLUDES): Don't.
7989 Be ready to fetch headers in lib/.
7990
7991 2000-09-18 Akim Demaille <akim@epita.fr>
7992
7993 * doc/bison.texinfo: Update the copyright.
7994 ANSIfy and GNUify the examples.
7995 Remove the old menu.
7996
7997 2000-09-18 Akim Demaille <akim@epita.fr>
7998
7999 First set of tests: use the `calc' example from the documentation.
8000
8001 * src/bison.s1 (yyparse): Condition the code using `yytname' which
8002 is defined only when YYDEBUG is.
8003 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
8004 * src/files.c (tryopen, tryclose): Formatting changes.
8005 Move to the top and be static.
8006 * src/reader.c (read_signed_integer): Likewise.
8007 * tests/calc.m4: New file.
8008 * Makefile.am, suite.m4: Adjust.
8009 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
8010
8011 2000-09-18 Akim Demaille <akim@epita.fr>
8012
8013 Add support for an Autotest test suite for Bison.
8014
8015 * m4/m4.m4, m4/atconfig.m4: New files.
8016 * m4/Makefile.am (EXTRA_DIST): Adjust.
8017 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
8018 files.
8019 * src/getargs.c: Display a more standard --version message.
8020 * src/reader.c (reader): Formatting changes.
8021 No longer depend upon VERSION_STRING.
8022 * configure.in: No longer use `dnl'.
8023 Set up the test suite and the new directory `tests/.
8024 (VERSION_STRING): Remove.
8025
8026 2000-04-14 Akim Demaille <akim@epita.fr>
8027
8028 * src/reader.c (copy_comment2): New function, same as former
8029 `copy_comment', but outputs into two FILE *.
8030 (copy_comment): Use it.
8031 (parse_union_decl): Use it.
8032 (get_type, parse_start_decl): Use the same `invalid' message.
8033 (parse_start_decl, parse_union_decl): Use the same `multiple'
8034 message.
8035 (parse_union_decl, copy_guard, copy_action): Use the same
8036 `unmatched' message.
8037 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
8038
8039 2000-03-31 Akim Demaille <akim@epita.fr>
8040
8041 * src/files.c (tryopen, tryclose): Move to the top.
8042 Be static.
8043
8044 2000-03-31 Akim Demaille <akim@epita.fr>
8045
8046 * src/main.c (main): Don't call `done', exit does it.
8047
8048 2000-03-31 Akim Demaille <akim@epita.fr>
8049
8050 * allocate.c: s/return (foo)/return foo/.
8051 * lalr.c: Likewise.
8052 * LR0.c: Likewise.
8053 * output.c: Likewise.
8054 * reader.c: Likewise.
8055 * symtab.c: Likewise.
8056 * vmsgetargs.c: Likewise.
8057
8058 2000-03-31 Akim Demaille <akim@epita.fr>
8059
8060 Clean up the error reporting functions.
8061
8062 * src/report.c: New file.
8063 * src/report.h: Likewise.
8064 * src/Makefile.am: Adjust.
8065 * m4/error.m4: New file.
8066 * m4/Makefile.am: Adjust.
8067 * configure.in (jm_PREREQ_ERROR): Call it.
8068 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
8069 Remove.
8070 (fatal, fatals): Remove. All callers use complain.c::fatal.
8071 (warn, warni, warns, warnss, warnss): Remove. All callers use
8072 complain.c::complain.
8073 (toomany): Remove, use fatal instead.
8074 * src/files.c (done): No argument, use complain_message_count.
8075 * src/main.c (main): Register `done' to `atexit'.
8076
8077 * src/getargs.c (usage): More `fputs', less `fprintf'.
8078
8079 2000-03-28 Akim Demaille <akim@epita.fr>
8080
8081 * lib/: New directory.
8082 * Makefile.am (SUBDIRS): Adjust.
8083 * configure.in: Adjust.
8084 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
8085 useless.
8086 * src/alloca.c: Moved to lib/.
8087 * src/getopt.c: Likewise.
8088 * src/getopt1.c: Likewise.
8089 * src/getopt.h: Likewise.
8090 * src/ansi2knr.c: Likewise.
8091 * src/ansi2knr.1: Likewise.
8092 * src/Makefile.am: Adjust.
8093 * lib/Makefile.am: New file.
8094
8095 2000-03-28 Akim Demaille <akim@epita.fr>
8096
8097 * src/getargs.c (usage): Refresh the help message.
8098
8099 2000-03-17 Akim Demaille <akim@epita.fr>
8100
8101 * src/getopt1.c: Updated from textutils 2.0e
8102 * src/getopt.c: Likewise.
8103 * src/getopt.h: Likewise.
8104
8105 2000-03-17 Akim Demaille <akim@epita.fr>
8106
8107 * src/Makefile.am (bison.simple): Fix the awk program: quote only
8108 the file name, not the whole `#line LINE FILE'.
8109
8110 2000-03-17 Akim Demaille <akim@epita.fr>
8111
8112 On syntax errors, report the token on which we choked.
8113
8114 * src/bison.s1 (yyparse): In the label yyerrlab, when
8115 YYERROR_VERBOSE, add yychar in msg.
8116
8117 2000-03-17 Akim Demaille <akim@epita.fr>
8118
8119 * src/reader.c (copy_at): New function.
8120 (copy_guard): Use it.
8121 (copy_action): Use it.
8122
8123 2000-03-17 Akim Demaille <akim@epita.fr>
8124
8125 Be kind to translators, save some useless translations.
8126
8127 * src/main.c (banner): New function.
8128 (fatal_banner): Use it.
8129 (warn_banner): Use it.
8130
8131 2000-03-17 Akim Demaille <akim@epita.fr>
8132
8133 * src/reader.c (copy_definition): Use copy_string and
8134 copy_comment. Removed now unused `match', `ended',
8135 `cplus_comment'.
8136 (copy_comment, copy_string): Moved, to be visible from
8137 copy_definition.
8138
8139 2000-03-17 Akim Demaille <akim@epita.fr>
8140
8141 * src/reader.c (copy_string): Declare `static inline'. No
8142 problems with inline, since it is checked by configure.
8143 (copy_comment): Likewise.
8144
8145 2000-03-17 Akim Demaille <akim@epita.fr>
8146
8147 * src/reader.c (packsymbols): Formatting changes.
8148
8149 2000-03-17 Akim Demaille <akim@epita.fr>
8150
8151 * src/reader.c (copy_comment): New function, factored out from:
8152 (copy_action): Use it. Removed now unused `match', `ended',
8153 `cplus_comment'.
8154 (copy_guard): Likewise.
8155
8156 2000-03-17 Akim Demaille <akim@epita.fr>
8157
8158 * src/reader.c (copy_string): New function, factored out from:
8159 (copy_action): Use it.
8160 (copy_guard): Likewise.
8161
8162 2000-03-17 Akim Demaille <akim@epita.fr>
8163
8164 Change the handling of @s so that they behave exactly like $s.
8165 There is now a pseudo variable @$ (readble and writable), location
8166 of the lhs of the rule (by default ranging from the location of
8167 the first symbol of the rhs, to the location of the last symbol,
8168 or, if the rhs is empty, YYLLOC).
8169
8170 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
8171 yyval.
8172 (yyparse): When providing a default semantic action, provide a
8173 default location action.
8174 (after the $): No longer change `*YYLSP', just stack YYLOC the
8175 same way you stack YYVAL.
8176 * src/reader.c (read_declarations): Use warns.
8177 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
8178 (copy_action, case '@'): Likewise.
8179 Use a standard error message, to save useless work from
8180 translators.
8181
8182 2000-03-17 Akim Demaille <akim@epita.fr>
8183
8184 * src/bison.s1: Formatting and cosmetics changes.
8185 * src/reader.c: Likewise.
8186 Update the Copyright notice.
8187
8188 2000-03-17 Akim Demaille <akim@epita.fr>
8189
8190 * src/bison.s1 (#line): All set to `#line' only, since the
8191 Makefile now handles them.
8192
8193 2000-03-16 Akim Demaille <akim@epita.fr>
8194
8195 * src/output.c (output_rule_data): Output the documentation of
8196 some of the tables.
8197 (Copyright notice): Update.
8198 Formatting changes.
8199
8200 2000-03-16 Akim Demaille <akim@epita.fr>
8201
8202 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
8203 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
8204 One `#if YYDEBUG' remains, since it uses variables which are
8205 defined only if `YYDEBUG != 0'.
8206
8207 2000-03-16 Akim Demaille <akim@epita.fr>
8208
8209 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
8210 and related variables so that the similarities are highlighted.
8211
8212 2000-03-16 Akim Demaille <akim@epita.fr>
8213
8214 * src/bison.s1: Properly indent CPP directives.
8215
8216 2000-03-16 Akim Demaille <akim@epita.fr>
8217
8218 * src/bison.s1: Properly indent the `alloca' CPP section.
8219
8220 2000-03-16 Akim Demaille <akim@epita.fr>
8221
8222 Do not hard code values of directories in `configure.in'.
8223 Update the `configure' tool chain.
8224
8225 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
8226 src/makefile.am.
8227 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
8228 (AC_OUTPUT): Add m4/Makefile.
8229 Bump to bison 1.28a, 1.29 has never been released.
8230 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
8231 handled via src/Makefile.am.
8232 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
8233 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
8234 autoheader.
8235 * Makefile.am (SUBDIRS): Add m4.
8236 (ACLOCAL_AM_FLAGS): New variable.
8237 (AUTOMAKE_OPTIONS): Add check-news.
8238 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
8239 the proper line number and file name.
8240 (DEFS): Propagate the location of bison library files and of the
8241 locale files.
8242 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
8243 builddir.
8244 * acinclude.m4: Remove, replaced by the directory m4.
8245 * m4/Makefile.am (EXTRA_DIST): New variable.
8246 * m4/gettext.m4: New file, from the fileutils.
8247 * m4/lcmessage.m4: Likewise
8248 * m4/progtest.m4: Likewise.
8249 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
8250
8251 2000-03-10 Akim Demaille <akim@epita.fr>
8252
8253 * src/closure.c:
8254 Formatting changes of various comments.
8255 Respect the GNU coding standards at various places.
8256 Don't use `_()' when no translation is needed.
8257
8258 1999-12-13 Jesse Thilo <jthilo@gnu.org>
8259
8260 * src/files.c:
8261 OS/2 honors TMPDIR environment variable.
8262
8263 1999-12-13 Jesse Thilo <jthilo@gnu.org>
8264
8265 * doc/bison.texinfo: Tweaked spelling and grammar.
8266 Updated ISBN.
8267 Removed reference to price of printed copy.
8268 Mention BISON_SIMPLE and BISON_HAIRY.
8269
8270 1999-12-13 Jesse Thilo <jthilo@gnu.org>
8271
8272 * configure.in, NEWS:
8273 Bison 1.29 released.
8274
8275 1999-10-27 Jesse Thilo <jthilo@gnu.org>
8276
8277 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
8278 Added reference card.
8279
8280 1999-07-26 Jesse Thilo <jthilo@gnu.org>
8281
8282 * po/ru.po: Added Russian translation.
8283
8284 1999-07-26 Jesse Thilo <jthilo@gnu.org>
8285
8286 * configure.in: Added Russian translation.
8287
8288 1999-07-06 Jesse Thilo <jthilo@gnu.org>
8289
8290 * configure.in, NEWS, README:
8291 Released version 1.28.
8292
8293 1999-06-14 Jesse Thilo <jthilo@gnu.org>
8294
8295 * src/system.h:
8296 Squashed redefinition warning on some systems.
8297
8298 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
8299 Have configure build version string instead of relying on ANSI string
8300 concatentation.
8301
8302 1999-06-14 Jesse Thilo <jthilo@gnu.org>
8303
8304 * po/POTFILES.in: Got rid of version.c.
8305
8306 1999-06-14 Jesse Thilo <jthilo@gnu.org>
8307
8308 * acconfig.h, configure.in:
8309 Have configure build version string instead of relying on ANSI string
8310 concatentation.
8311
8312 1999-06-08 Jesse Thilo <jthilo@gnu.org>
8313
8314 * doc/bison.1:
8315 Dropped mention of `+' for long-named options.
8316
8317 1999-05-30 Jesse Thilo <jthilo@gnu.org>
8318
8319 * src/files.c: Added <unistd.h> for unlink().
8320
8321 * src/Makefile.am, src/system.h:
8322 I18n fixes.
8323
8324 1999-05-30 Jesse Thilo <jthilo@gnu.org>
8325
8326 * README: Added a FAQ list.
8327
8328 * configure.in, acconfig.h:
8329 I18n fixes.
8330
8331 1999-05-30 Jesse Thilo <jthilo@gnu.org>
8332
8333 * doc/FAQ, doc/Makefile.am:
8334 Added a FAQ list.
8335
8336 1999-05-19 Jesse Thilo <jthilo@gnu.org>
8337
8338 * src/alloc.h, src/symtab.h, src/version.c:
8339 Protected inclusion of "config.h" with HAVE_CONFIG_H.
8340
8341 1999-04-18 Jesse Thilo <jthilo@gnu.org>
8342
8343 * src/.cvsignore, src/Makefile.am:
8344 Reorganized: sources in `src', documentation in `doc'.
8345
8346 * src/lex.c (literalchar):
8347 fixed the code for escaping double quotes (thanks
8348 Jonathan Czisny.)
8349
8350 1999-04-18 Jesse Thilo <jthilo@gnu.org>
8351
8352 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
8353 Adjusted paths to reflect directory reorganization.
8354
8355 1999-04-18 Jesse Thilo <jthilo@gnu.org>
8356
8357 * doc/.cvsignore, doc/Makefile.am:
8358 Reorganized: sources in `src', documentation in `doc'.
8359
8360 1999-04-18 Jesse Thilo <jthilo@gnu.org>
8361
8362 * configure.in:
8363 Updated AC_INIT file to reflect directory reorganization.
8364
8365 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
8366 Reorganized: sources in `src', documentation in `doc'.
8367
8368 1999-04-13 Jesse Thilo <jthilo@gnu.org>
8369
8370 * src/allocate.c:
8371 Don't declare calloc() and realloc() if not necessary.
8372
8373 1999-04-13 Jesse Thilo <jthilo@gnu.org>
8374
8375 * configure.in, acconfig.h, acinclude.m4:
8376 Don't declare calloc() and realloc() if not necessary.
8377
8378 1999-03-23 Jesse Thilo <jthilo@gnu.org>
8379
8380 * po/.cvsignore: Added i18n support.
8381
8382 1999-03-23 Jesse Thilo <jthilo@gnu.org>
8383
8384 * acconfig.h, configure.in, Makefile.am:
8385 Added i18n support.
8386
8387 1999-03-22 Jesse Thilo <jthilo@gnu.org>
8388
8389 * src/bison.s1: Fixed #line numbers.
8390
8391 1999-03-15 Jesse Thilo <jthilo@gnu.org>
8392
8393 * po/es.po, po/fr.po, po/nl.po, po/de.po:
8394 Added PO files from Translation Project.
8395
8396 1999-03-03 Jesse Thilo <jthilo@gnu.org>
8397
8398 * Makefile.am:
8399 Added support for non-ANSI compilers (ansi2knr).
8400
8401 1999-02-16 Jesse Thilo <jthilo@gnu.org>
8402
8403 * configure.in: Bumped version number to 1.27.
8404
8405 * Makefile.am:
8406 Added `bison.simple' to list of files removed by `make distclean'.
8407
8408 1999-02-12 Jesse Thilo <jthilo@gnu.org>
8409
8410 * src/files.c, src/files.h:
8411 Defined locations of parser files in config.h instead of Makefile.
8412
8413 1999-02-12 Jesse Thilo <jthilo@gnu.org>
8414
8415 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
8416 Defined locations of parser files in config.h instead of Makefile.
8417
8418 1999-02-09 Jesse Thilo <jthilo@gnu.org>
8419
8420 * Makefile.am:
8421 Removed inappropriate use of $< macro.
8422
8423 1999-02-05 Jesse Thilo <jthilo@gnu.org>
8424
8425 * po/Makefile.in.in, po/POTFILES.in:
8426 Add `po' directory skeleton.
8427
8428 1999-01-27 Jesse Thilo <jthilo@gnu.org>
8429
8430 * README: Document help-bison list.
8431
8432 * configure.in: Add check for mkstemp().
8433
8434 1999-01-20 Jesse Thilo <jthilo@gnu.org>
8435
8436 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
8437 Hush a few compiler warnings.
8438
8439 * src/files.c:
8440 Add tryclose(), which verifies that fclose was successful.
8441 Hush a couple of compiler warnings.
8442
8443 1999-01-20 Jesse Thilo <jthilo@gnu.org>
8444
8445 * Makefile.am, OChangeLog:
8446 ChangeLog is now automatically generated. Include the old version as
8447 OChangeLog.
8448
8449 1999-01-14 Jesse Thilo <jthilo@gnu.org>
8450
8451 * 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:
8452 Update FSF address.
8453
8454 1999-01-14 Jesse Thilo <jthilo@gnu.org>
8455
8456 * doc/bison.texinfo: Fix formatting glitch.
8457
8458 * doc/bison.texinfo: Update FSF address.
8459
8460 1999-01-14 Jesse Thilo <jthilo@gnu.org>
8461
8462 * acconfig.h: Update FSF address.
8463
8464 1999-01-08 Jesse Thilo <jthilo@gnu.org>
8465
8466 * src/system.h:
8467 Don't define PACKAGE here, since config.h defines it.
8468
8469 1998-12-30 Jesse Thilo <jthilo@gnu.org>
8470
8471 * src/reader.c: Update copyright date.
8472
8473 * src/main.c:
8474 Ditch sprintf to statically-sized buffers in fatal/warn functions in
8475 favor of output directly to stderr (avoids buffer overruns).
8476
8477 * src/reader.c: Some checks for premature EOF.
8478
8479 * 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:
8480 Use prototypes if the compiler understands them.
8481
8482 * src/files.c: Honor TMPDIR on Unix hosts.
8483 Use prototypes if the compiler understands them.
8484
8485 * src/reader.c:
8486 Fix a couple of buffer overrun bugs.
8487 Use prototypes if the compiler understands them.
8488
8489 * src/system.h: Include unistd.h and ctype.h.
8490 Use #ifdef instead of #if for NLS symbols.
8491
8492 1998-12-30 Jesse Thilo <jthilo@gnu.org>
8493
8494 * doc/bison.texinfo:
8495 Delete comment "consider using @set for edition number, etc..." since
8496 we now are doing so.
8497
8498 1998-12-30 Jesse Thilo <jthilo@gnu.org>
8499
8500 * configure.in:
8501 Use prototypes if the compiler understands them.
8502
8503 * NEWS: Document 1.26 highlights.
8504
8505 * Makefile.am: Require Automake 1.3 or later.
8506
8507 * acconfig.h:
8508 Use prototypes if the compiler understands them.
8509
8510 1998-12-29 Jesse Thilo <jthilo@gnu.org>
8511
8512 * src/version.c:
8513 Use VERSION symbol from automake for version number.
8514
8515 1998-12-29 Jesse Thilo <jthilo@gnu.org>
8516
8517 * acconfig.h, configure.in, version.cin:
8518 Use VERSION symbol from automake for version number.
8519
8520 1998-11-28 Jesse Thilo <jthilo@gnu.org>
8521
8522 * Makefile.am:
8523 Distribute original version of simple parser (bison.s1), not built
8524 version (bison.simple).
8525
8526 1998-11-28 Jesse Thilo <jthilo@gnu.org>
8527
8528 * doc/bison.texinfo: Add info dir entry.
8529
8530 * doc/bison.texinfo:
8531 Let automake put version number into documentation.
8532
8533 1998-11-26 Jesse Thilo <jthilo@gnu.org>
8534
8535 * src/bison.cld, src/build.com, src/vmshlp.mar:
8536 Add non-RCS files from /gd/gnu/bison.
8537
8538 1998-11-26 Jesse Thilo <jthilo@gnu.org>
8539
8540 * doc/bison.1:
8541 Document the BISON_HAIRY and BISON_SIMPLE variables.
8542
8543 1998-11-25 Jesse Thilo <jthilo@gnu.org>
8544
8545 * src/version.c: Build version.c automatically.
8546
8547 * src/reader.c:
8548 Fix token numbering (used to start at 258, not 257).
8549
8550 * src/system.h: Include config.h.
8551
8552 * src/getargs.c: Update bug report address.
8553
8554 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
8555 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
8556
8557 1998-11-25 Jesse Thilo <jthilo@gnu.org>
8558
8559 * Makefile.am:
8560 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
8561
8562 * configure.in, version.cin:
8563 Build version.c automatically.
8564
8565 * AUTHORS: Add AUTHORS file.
8566
8567 * README: Update bug report address.
8568
8569 * bison.simple:
8570 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
8571
8572 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
8573 Add automake stuff.
8574
8575 1998-11-25 Jesse Thilo <jthilo@gnu.org>
8576
8577 * doc/bison.texinfo: Clean up some formatting.
8578
8579 1998-05-05 Richard Stallman <rms@gnu.org>
8580
8581 * doc/bison.texinfo:
8582 Explain better why to make a pure parser.
8583
8584 1998-01-05 Richard Stallman <rms@gnu.org>
8585
8586 * src/files.c (openfiles):
8587 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
8588 find a temporary directory, if possible. Do not unlink files while
8589 they are open.
8590
8591 1997-08-25 Richard Stallman <rms@gnu.org>
8592
8593 * src/reader.c (stack_offset;):
8594 Change some warni to warns.
8595
8596 * src/lex.c (literalchar): Use warns, not warni.
8597
8598 1997-06-28 Richard Stallman <rms@gnu.org>
8599
8600 * src/bison.s1: Add a Bison version comment.
8601
8602 * src/main.c (fatal, warn, berror):
8603 Use program_name.
8604
8605 1997-06-28 Richard Stallman <rms@gnu.org>
8606
8607 * Makefile.in (bison_version): New variable.
8608 (dist): Use that variable.
8609 (bison.s1): Substitute the Bison version into bison.simple.
8610
8611 * bison.simple: Add a Bison version comment.
8612
8613 1997-06-18 Richard Stallman <rms@gnu.org>
8614
8615 * src/main.c (fatal, warn, berror):
8616 Make error messages standard.
8617 (toomany): Improve error message text.
8618
8619 * 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:
8620 new.h renamed to alloc.h.
8621
8622 1997-06-18 Richard Stallman <rms@gnu.org>
8623
8624 * Makefile.in: new.h renamed to alloc.h.
8625
8626 1997-05-24 Richard Stallman <rms@gnu.org>
8627
8628 * src/lex.c (literalchar):
8629 Fix the code for escaping \, " and '.
8630
8631 (lex): Avoid trouble when there are many chars
8632 to discard in a char literal with just several chars in it.
8633
8634 1997-05-17 Richard Stallman <rms@gnu.org>
8635
8636 * src/bison.s1:
8637 Use malloc, if using alloca is troublesome.
8638 (YYSTACK_USE_ALLOCA): New flag macro.
8639 Define it for some systems and compilers.
8640 (YYSTACK_ALLOC): New macro.
8641 (yyparse): Use YYSTACK_ALLOC to allocate stack.
8642 If it was malloc'd, free it.
8643
8644 1997-05-17 Richard Stallman <rms@gnu.org>
8645
8646 * bison.simple:
8647 Use malloc, if using alloca is troublesome.
8648 (YYSTACK_USE_ALLOCA): New flag macro.
8649 Define it for some systems and compilers.
8650 (YYSTACK_ALLOC): New macro.
8651 (yyparse): Use YYSTACK_ALLOC to allocate stack.
8652 If it was malloc'd, free it.
8653
8654 1997-04-23 Richard Stallman <rms@gnu.org>
8655
8656 * src/bison.s1:
8657 (alloca) [__hpux]: Always define as __builtin_alloca.
8658
8659 1997-04-23 Richard Stallman <rms@gnu.org>
8660
8661 * bison.simple:
8662 (alloca) [__hpux]: Always define as __builtin_alloca.
8663
8664 1997-04-22 Richard Stallman <rms@gnu.org>
8665
8666 * src/bison.s1:
8667 [__hpux]: Include alloca.h (right for HPUX 10)
8668 instead of declaring alloca (right for HPUX 9).
8669
8670 * src/bison.s1 (__yy_memcpy):
8671 Declare arg `count' as unsigned int.
8672 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
8673
8674 1997-04-22 Richard Stallman <rms@gnu.org>
8675
8676 * bison.simple:
8677 [__hpux]: Include alloca.h (right for HPUX 10)
8678 instead of declaring alloca (right for HPUX 9).
8679
8680 * bison.simple (__yy_memcpy):
8681 Declare arg `count' as unsigned int.
8682 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
8683
8684 1997-01-03 Richard Stallman <rms@gnu.org>
8685
8686 * src/allocate.c: [__STDC__ or _MSC_VER]:
8687 Declare calloc and realloc to return void *.
8688
8689 1997-01-02 Richard Stallman <rms@gnu.org>
8690
8691 * src/system.h:
8692 [_MSC_VER]: Include stdlib.h and process.h.
8693 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
8694
8695 * src/main.c (main): Return FAILURE as a value.
8696 (printable_version): Declare arg as int, not char.
8697
8698 1997-01-02 Richard Stallman <rms@gnu.org>
8699
8700 * Makefile.in (dist):
8701 Explicitly check for symlinks, and copy them.
8702
8703 1996-12-19 Richard Stallman <rms@gnu.org>
8704
8705 * src/files.c:
8706 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
8707
8708 1996-12-18 Paul Eggert <eggert@gnu.org>
8709
8710 * src/bison.s1 (yyparse):
8711 If __GNUC__ and YYPARSE_PARAM are both defined,
8712 declare yyparse to have a void * argument.
8713
8714 1996-12-18 Paul Eggert <eggert@gnu.org>
8715
8716 * bison.simple (yyparse):
8717 If __GNUC__ and YYPARSE_PARAM are both defined,
8718 declare yyparse to have a void * argument.
8719
8720 1996-12-17 Richard Stallman <rms@gnu.org>
8721
8722 * src/reduce.c (nbits): Add some casts.
8723
8724 1996-08-12 Richard Stallman <rms@gnu.org>
8725
8726 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
8727
8728 1996-08-12 Richard Stallman <rms@gnu.org>
8729
8730 * bison.simple: Test _MSDOS as well as _MSDOS_.
8731
8732 1996-07-31 Richard Stallman <rms@gnu.org>
8733
8734 * src/bison.s1:
8735 [__sun && __i386]: Include alloca.h.
8736
8737 1996-07-31 Richard Stallman <rms@gnu.org>
8738
8739 * bison.simple:
8740 [__sun && __i386]: Include alloca.h.
8741
8742 1996-07-30 Richard Stallman <rms@gnu.org>
8743
8744 * src/bison.s1: Comment change.
8745
8746 * src/bison.s1: Test _MSDOS_, not MSDOS.
8747
8748 1996-07-30 Richard Stallman <rms@gnu.org>
8749
8750 * bison.simple: Comment change.
8751
8752 * bison.simple: Test _MSDOS_, not MSDOS.
8753
8754 1996-06-01 Richard Stallman <rms@gnu.org>
8755
8756 * 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:
8757 Insert `_' macro around many string constants.
8758
8759 * src/main.c:
8760 Insert `_' macro around many string constants.
8761
8762 (main): Call setlocale, bindtextdomain and textdomain.
8763
8764 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
8765 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
8766 [ENABLE_NLS]: Include libintl.h.
8767 [ENABLE_NLS] (gettext): Define.
8768 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
8769 (N_, PACKAGE, LOCALEDIR): New macros.
8770
8771 1996-06-01 Richard Stallman <rms@gnu.org>
8772
8773 * POTFILES.in: New file.
8774
8775 * Makefile.in (allocate.o):
8776 Define target explicitly.
8777
8778 * Makefile.in (CFLAGS): Set to @CFLAGS@.
8779 (LDFLAGS): Set to @LDFLAGS@.
8780 (configure): Run autoconf only if preceding `cd' succeeds.
8781 (bison.s1): Redirect output to temporary file then move the
8782 temporary to the target, rather than redirecting directly to bison.s1.
8783 (clean): Remove config.status and config.log.
8784 (distclean): Don't remove config.status here.
8785
8786 1996-05-12 Richard Stallman <rms@gnu.org>
8787
8788 * src/bison.s1:
8789 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
8790
8791 1996-05-12 Richard Stallman <rms@gnu.org>
8792
8793 * bison.simple:
8794 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
8795
8796 1996-05-11 Richard Stallman <rms@gnu.org>
8797
8798 * src/bison.s1 (__yy_memcpy):
8799 Really reorder the args, as was supposedly done on Feb 14 1995.
8800 (yyparse): Calls changed accordingly.
8801
8802 1996-05-11 Richard Stallman <rms@gnu.org>
8803
8804 * Makefile.in (dist): Don't use $(srcdir).
8805
8806 * bison.simple (__yy_memcpy):
8807 Really reorder the args, as was supposedly done on Feb 14 1995.
8808 (yyparse): Calls changed accordingly.
8809
8810 1996-01-27 Richard Stallman <rms@gnu.org>
8811
8812 * src/output.c (output_rule_data):
8813 Test YYERROR_VERBOSE in the conditional
8814 around the definition of ttyname.
8815
8816 1995-12-29 Richard Stallman <rms@gnu.org>
8817
8818 * src/bison.s1:
8819 Fix line numbers in #line commands.
8820
8821 1995-12-29 Richard Stallman <rms@gnu.org>
8822
8823 * bison.simple:
8824 Fix line numbers in #line commands.
8825
8826 1995-12-27 Richard Stallman <rms@gnu.org>
8827
8828 * src/bison.s1 (YYPARSE_PARAM_DECL):
8829 In C++, make it always null.
8830 (YYPARSE_PARAM_ARG): New macro.
8831 (yyparse): Use YYPARSE_PARAM_ARG.
8832
8833 1995-12-27 Richard Stallman <rms@gnu.org>
8834
8835 * bison.simple (YYPARSE_PARAM_DECL):
8836 In C++, make it always null.
8837 (YYPARSE_PARAM_ARG): New macro.
8838 (yyparse): Use YYPARSE_PARAM_ARG.
8839
8840 1995-11-29 Richard Stallman <rms@gnu.org>
8841
8842 * doc/bison.texinfo:
8843 Describe literal string tokens, %raw, %no_lines, %token_table.
8844
8845 1995-11-29 Daniel Hagerty <hag@gnu.org>
8846
8847 * doc/bison.texinfo: Fixed update date
8848
8849 1995-10-16 Richard Stallman <rms@gnu.org>
8850
8851 * src/version.c: Version 1.25.
8852
8853 1995-10-16 Richard Stallman <rms@gnu.org>
8854
8855 * NEWS: *** empty log message ***
8856
8857 1995-10-16 Richard Stallman <rms@gnu.org>
8858
8859 * doc/bison.1, doc/bison.rnh:
8860 Add new options.
8861
8862 1995-10-15 Richard Stallman <rms@gnu.org>
8863
8864 * src/vmsgetargs.c, src/getargs.c:
8865 Added -n, -k, and -raw switches.
8866 (noparserflag, toknumflag, rawtoknumflag): New variables.
8867
8868 * src/symtab.h (SALIAS):
8869 New #define for adding aliases to %token.
8870 (struct bucket): Added `alias' field.
8871
8872 * src/reduce.c (reduce_grammar):
8873 Revise error message.
8874 (print_notices): Remove final `.' from error message.
8875
8876 * src/reader.c (reader_output_yylsp):
8877 New function.
8878 (readgram): Use `#if 0' around code that accepted %command
8879 inside grammar rules: The documentation doesn't allow it,
8880 and it will fail since the %command processors scan for the next %.
8881 (parse_token_decl): Extended the %token
8882 declaration to allow a multi-character symbol as an alias.
8883 (parse_thong_decl): New function.
8884 (read_declarations): Added %thong declarations.
8885 (read_declarations): Handle NOOP to deal with allowing
8886 % declarations as another means to specify the flags.
8887 (readgram): Allow %prec prior to semantics embedded in a rule.
8888 (skip_to_char, read_declarations, copy_definition)
8889 (parse_token_decl, parse_start_decl, parse_type_decl)
8890 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
8891 (get_type_name, copy_guard, copy_action, readgram)
8892 (get_type, packsymbols): Revised most error messages.
8893 Changed `fatal' to `warnxxx' to avoid aborting for error.
8894 Revised and use multiple warnxxx functions to avoid using VARARGS1.
8895 (read_declarations): Improve the error message for
8896 an invalid character. Do not abort.
8897 (read_declarations, copy_guard, copy_action): Use
8898 printable_version to avoid unprintable characters in printed output.
8899 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
8900 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
8901 Allow the type of a non-terminal can be given
8902 more than once, as long as all specifications give the same type.
8903
8904 * src/output.c:
8905 (output_headers, output_trailers, output, output_gram)
8906 (output_rule_data): Implement noparserflag variable.
8907 Implement toknumflag variable.
8908 (output): Call reader_output_yylsp to output LTYPESTR.
8909
8910 * src/main.c (main):
8911 If reader sees an error, don't process the grammar.
8912 (fatals): Updated to not use VARARGS1.
8913 (printable_version, int_to_string, warn, warni, warns, warnss)
8914 (warnsss): New error reporting functions. Avoid abort for error.
8915
8916 * src/lex.h:
8917 Added THONG and NOOP for alias processing.
8918 Added SETOPT for the new code that allows setting options with %flags.
8919
8920 * src/lex.c:
8921 Include getopt.h. Add some extern decls.
8922 (safegetc): New function to deal with EOF gracefully.
8923 (literalchar); new function to deal with reading \ escapes.
8924 (lex): Use literalchar.
8925 (lex): Implemented "..." tokens.
8926 (literalchar, lex, parse_percent_token): Made tokenbuffer
8927 always contain the token. This includes growing the token
8928 buffer while reading an integer.
8929 (parse_percent_token): Replaced if-else statement with percent_table.
8930 (parse_percent_token): Added % declarations as another
8931 way to specify the flags -n, -l, and -r. Also added hooks for
8932 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
8933 major changes to files.c.
8934 (lex) Retain in the incoming stream a character following
8935 an incorrect '/'.
8936 (skip_white_space, lex): Revised most error messages
8937 and changed fatal to warn to avoid aborting.
8938 (percent_table): Added %thong declarations.
8939
8940 * src/gram.h: Comment changes.
8941
8942 * src/files.c (openfiles, open_extra_files, done):
8943 Add faction flag
8944 and actfile file. Handle noparserflag. Both for -n switch.
8945
8946 * src/conflicts.c (resolve_sr_conflict):
8947 Remove use of alloca.
8948
8949 1995-06-01 Jim Meyering <meyering@gnu.org>
8950
8951 * doc/bison.texinfo: *** empty log message ***
8952
8953 1995-05-06 Richard Stallman <rms@gnu.org>
8954
8955 * src/bison.s1: Comment change.
8956
8957 1995-05-06 Richard Stallman <rms@gnu.org>
8958
8959 * bison.simple: Comment change.
8960
8961 1995-05-03 Richard Stallman <rms@gnu.org>
8962
8963 * src/version.c: Version now 1.24.
8964
8965 * src/bison.s1: Change distribution terms.
8966
8967 * src/version.c: Version now 1.23.
8968
8969 1995-05-03 Richard Stallman <rms@gnu.org>
8970
8971 * doc/bison.texinfo:
8972 Rewrite "Conditions for Using Bison".
8973 Update version to 1.24.
8974
8975 1995-05-03 Richard Stallman <rms@gnu.org>
8976
8977 * bison.simple: Change distribution terms.
8978
8979 1995-02-23 Richard Stallman <rms@gnu.org>
8980
8981 * src/files.c: Test __VMS_POSIX as well as VMS.
8982
8983 1995-02-14 Jim Meyering <meyering@gnu.org>
8984
8985 * src/bison.s1 (__yy_memcpy):
8986 Renamed from __yy_bcopy to avoid
8987 confusion. Reverse FROM and TO arguments to be consistent with
8988 those of memcpy.
8989
8990 1995-02-14 Jim Meyering <meyering@gnu.org>
8991
8992 * bison.simple (__yy_memcpy):
8993 Renamed from __yy_bcopy to avoid
8994 confusion. Reverse FROM and TO arguments to be consistent with
8995 those of memcpy.
8996
8997 1994-11-10 David J. MacKenzie <djm@gnu.org>
8998
8999 * NEWS: reformat
9000
9001 * NEWS: New file.
9002
9003 * Makefile.in (DISTFILES): Include NEWS.
9004
9005 * Makefile.in (DISTFILES):
9006 Include install-sh, not install.sh.
9007
9008 * configure.in: Update to Autoconf v2 macro names.
9009
9010 1994-10-05 David J. MacKenzie <djm@gnu.org>
9011
9012 * Makefile.in: fix typo
9013
9014 * Makefile.in (prefix, exec_prefix):
9015 Let configure set them.
9016
9017 1994-09-28 David J. MacKenzie <djm@gnu.org>
9018
9019 * Makefile.in: Set datadir to $(prefix)/share.
9020
9021 1994-09-15 Richard Stallman <rms@gnu.org>
9022
9023 * src/bison.s1:
9024 Update copyright notice and GPL version.
9025
9026 1994-09-15 Richard Stallman <rms@gnu.org>
9027
9028 * bison.simple:
9029 Update copyright notice and GPL version.
9030
9031 1994-07-12 Richard Stallman <rms@gnu.org>
9032
9033 * src/reduce.c, src/reader.c:
9034 entered into RCS
9035
9036 1994-05-05 David J. MacKenzie <djm@gnu.org>
9037
9038 * Makefile.in: entered into RCS
9039
9040 1994-03-26 Richard Stallman <rms@gnu.org>
9041
9042 * src/bison.s1: entered into RCS
9043
9044 1994-03-26 Richard Stallman <rms@gnu.org>
9045
9046 * bison.simple: entered into RCS
9047
9048 1994-03-25 Richard Stallman <rms@gnu.org>
9049
9050 * src/main.c: entered into RCS
9051
9052 1994-03-24 Richard Stallman <rms@gnu.org>
9053
9054 * src/conflicts.c: entered into RCS
9055
9056 1994-01-02 Richard Stallman <rms@gnu.org>
9057
9058 * Makefile.in: *** empty log message ***
9059
9060 1993-11-21 Richard Stallman <rms@gnu.org>
9061
9062 * src/bison.s1: *** empty log message ***
9063
9064 1993-11-21 Richard Stallman <rms@gnu.org>
9065
9066 * doc/bison.texinfo: entered into RCS
9067
9068 * doc/bison.texinfo: *** empty log message ***
9069
9070 1993-11-21 Richard Stallman <rms@gnu.org>
9071
9072 * bison.simple: *** empty log message ***
9073
9074 1993-10-25 David J. MacKenzie <djm@gnu.org>
9075
9076 * doc/bison.texinfo: *** empty log message ***
9077
9078 1993-10-19 Richard Stallman <rms@gnu.org>
9079
9080 * src/bison.s1: *** empty log message ***
9081
9082 1993-10-19 Richard Stallman <rms@gnu.org>
9083
9084 * bison.simple: *** empty log message ***
9085
9086 1993-10-14 Richard Stallman <rms@gnu.org>
9087
9088 * src/bison.s1: *** empty log message ***
9089
9090 1993-10-14 Richard Stallman <rms@gnu.org>
9091
9092 * bison.simple: *** empty log message ***
9093
9094 1993-09-14 David J. MacKenzie <djm@gnu.org>
9095
9096 * doc/bison.texinfo: *** empty log message ***
9097
9098 1993-09-13 Noah Friedman <friedman@gnu.org>
9099
9100 * Makefile.in: *** empty log message ***
9101
9102 1993-09-10 Richard Stallman <rms@gnu.org>
9103
9104 * src/conflicts.c: *** empty log message ***
9105
9106 * src/system.h: entered into RCS
9107
9108 1993-09-10 Richard Stallman <rms@gnu.org>
9109
9110 * doc/bison.1: entered into RCS
9111
9112 1993-09-06 Noah Friedman <friedman@gnu.org>
9113
9114 * src/version.c: entered into RCS
9115
9116 1993-09-06 Noah Friedman <friedman@gnu.org>
9117
9118 * Makefile.in: *** empty log message ***
9119
9120 1993-07-30 David J. MacKenzie <djm@gnu.org>
9121
9122 * Makefile.in: *** empty log message ***
9123
9124 1993-07-24 Richard Stallman <rms@gnu.org>
9125
9126 * src/bison.s1: *** empty log message ***
9127
9128 1993-07-24 Richard Stallman <rms@gnu.org>
9129
9130 * bison.simple: *** empty log message ***
9131
9132 1993-07-08 David J. MacKenzie <djm@gnu.org>
9133
9134 * Makefile.in: *** empty log message ***
9135
9136 1993-07-04 Richard Stallman <rms@gnu.org>
9137
9138 * src/bison.s1: *** empty log message ***
9139
9140 1993-07-04 Richard Stallman <rms@gnu.org>
9141
9142 * bison.simple: *** empty log message ***
9143
9144 1993-06-26 David J. MacKenzie <djm@gnu.org>
9145
9146 * src/getargs.c: entered into RCS
9147
9148 1993-06-26 David J. MacKenzie <djm@gnu.org>
9149
9150 * doc/bison.texinfo: *** empty log message ***
9151
9152 * doc/bison.1: New file.
9153
9154 1993-06-25 Richard Stallman <rms@gnu.org>
9155
9156 * src/getargs.c: New file.
9157
9158 1993-06-16 Richard Stallman <rms@gnu.org>
9159
9160 * src/bison.s1: *** empty log message ***
9161
9162 1993-06-16 Richard Stallman <rms@gnu.org>
9163
9164 * bison.simple: *** empty log message ***
9165
9166 1993-06-03 Richard Stallman <rms@gnu.org>
9167
9168 * src/bison.s1: New file.
9169
9170 1993-06-03 Richard Stallman <rms@gnu.org>
9171
9172 * doc/bison.texinfo: *** empty log message ***
9173
9174 1993-06-03 Richard Stallman <rms@gnu.org>
9175
9176 * bison.simple: New file.
9177
9178 1993-05-19 Richard Stallman <rms@gnu.org>
9179
9180 * doc/bison.texinfo: New file.
9181
9182 1993-05-07 Noah Friedman <friedman@gnu.org>
9183
9184 * Makefile.in: *** empty log message ***
9185
9186 1993-04-28 Noah Friedman <friedman@gnu.org>
9187
9188 * src/reader.c: *** empty log message ***
9189
9190 1993-04-23 Noah Friedman <friedman@gnu.org>
9191
9192 * src/alloc.h: entered into RCS
9193
9194 1993-04-20 David J. MacKenzie <djm@gnu.org>
9195
9196 * src/version.c: *** empty log message ***
9197
9198 * src/files.c, src/allocate.c:
9199 entered into RCS
9200
9201 * src/reader.c: *** empty log message ***
9202
9203 * src/lex.c: entered into RCS
9204
9205 * src/conflicts.c: New file.
9206
9207 * src/symtab.c: entered into RCS
9208
9209 * src/alloc.h: New file.
9210
9211 * src/LR0.c: entered into RCS
9212
9213 1993-04-18 Noah Friedman <friedman@gnu.org>
9214
9215 * src/reader.c: New file.
9216
9217 * src/version.c: *** empty log message ***
9218
9219 1993-04-18 Noah Friedman <friedman@gnu.org>
9220
9221 * Makefile.in: *** empty log message ***
9222
9223 1993-04-17 Noah Friedman <friedman@gnu.org>
9224
9225 * Makefile.in: *** empty log message ***
9226
9227 1993-04-15 Richard Stallman <rms@gnu.org>
9228
9229 * src/main.c, src/files.c:
9230 New file.
9231
9232 1993-04-15 Noah Friedman <friedman@gnu.org>
9233
9234 * configure.in: entered into RCS
9235
9236 * configure.in: *** empty log message ***
9237
9238 * configure.in: New file.
9239
9240 1993-04-14 Richard Stallman <rms@gnu.org>
9241
9242 * Makefile.in: New file.
9243
9244 1993-04-13 Richard Stallman <rms@gnu.org>
9245
9246 * src/version.c: New file.
9247
9248 1993-03-25 Richard Stallman <rms@gnu.org>
9249
9250 * src/output.c: entered into RCS
9251
9252 1992-09-25 Richard Stallman <rms@gnu.org>
9253
9254 * configure.bat: entered into RCS
9255
9256 1992-06-22 Richard Stallman <rms@gnu.org>
9257
9258 * src/vmsgetargs.c: entered into RCS
9259
9260 1992-06-22 Richard Stallman <rms@gnu.org>
9261
9262 * doc/bison.rnh: entered into RCS
9263
9264 1992-04-20 David J. MacKenzie <djm@gnu.org>
9265
9266 * README: entered into RCS
9267
9268 1992-01-22 Richard Stallman <rms@gnu.org>
9269
9270 * src/machine.h: entered into RCS
9271
9272 1991-12-21 Richard Stallman <rms@gnu.org>
9273
9274 * src/lalr.c, src/closure.c:
9275 entered into RCS
9276
9277 1991-12-20 Richard Stallman <rms@gnu.org>
9278
9279 * src/state.h: entered into RCS
9280
9281 1991-12-18 Richard Stallman <rms@gnu.org>
9282
9283 * src/print.c, src/nullable.c, src/derives.c:
9284 entered into RCS
9285
9286 1991-11-03 David J. MacKenzie <djm@gnu.org>
9287
9288 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
9289 entered into RCS
9290
9291 1988-09-09 Richard Stallman <rms@gnu.org>
9292
9293 * src/bison.hairy: entered into RCS
9294
9295 1987-12-16 Richard Stallman <rms@gnu.org>
9296
9297 * REFERENCES: entered into RCS
9298 -----
9299
9300 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
9301
9302 This file is part of GNU Bison.
9303
9304 GNU Bison is free software; you can redistribute it and/or modify
9305 it under the terms of the GNU General Public License as published by
9306 the Free Software Foundation; either version 2, or (at your option)
9307 any later version.
9308
9309 GNU Bison is distributed in the hope that it will be useful,
9310 but WITHOUT ANY WARRANTY; without even the implied warranty of
9311 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9312 GNU General Public License for more details.
9313
9314 You should have received a copy of the GNU General Public License
9315 along with GNU Bison; see the file COPYING. If not, write to
9316 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
9317 Boston, MA 02111-1307, USA.