]> git.saurik.com Git - bison.git/blob - ChangeLog
f4f413efbe4ae8da2c4dec9aa1065f38273b3f0b
[bison.git] / ChangeLog
1 2006-01-12 Joel E. Denny <jdenny@ces.clemson.edu>
2
3 * data/glr.c (yyGLRStateSet): Rename yylookaheadStatuses to
4 yylookaheadNeeds. All uses updated.
5 (yysplitStack): Rename local yynewLookaheadStatuses to
6 yynewLookaheadNeeds.
7 * data/glr-regression.at (Incorrect lookahead during nondeterministic
8 GLR): In comments, change `lookahead status' to `lookahead need'.
9
10 2006-01-11 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
11
12 * data/glr.c (yysplitStack): A little stylistic rewrite.
13
14 2006-01-11 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
15
16 * data/glr.c (yyaddDeferredAction): Flesh out the comment.
17
18 2006-01-11 Joel E. Denny <jdenny@ces.clemson.edu>
19
20 * doc/bison.texinfo: Fix some typos.
21 (GLR Semantic Actions): New subsection discussing special
22 considerations because GLR semantic actions might be deferred.
23 (Actions): Mention look-ahead usage of yylval.
24 (Actions and Locations): Mention look-ahead usage of yylloc.
25 (Special Features for Use in Actions): Add YYEOF entry and mention it
26 in the yychar entry.
27 In the yychar entry, remove mention of the local yychar case (pure
28 parser) since this is irrelevant information when writing semantic
29 actions and since it's already discussed in `Bison Symbols' where
30 yychar is otherwise described as an external variable.
31 In the yychar entry, don't call it the `current' look-ahead since it
32 isn't when semantic actions are deferred.
33 In the yychar and yyclearin entries, add note about deferred semantic
34 actions.
35 Add yylloc and yylval entries discussing look-ahead usage.
36 (Look-Ahead Tokens): When discussing yychar, don't call it the
37 `current' look-ahead, and do mention yylval and yylloc.
38 (Error Recovery): Cross-reference `Action Features' when mentioning
39 yyclearin.
40 (Bison Symbols): In the yychar entry, don't call it the `current'
41 look-ahead.
42 In the yylloc and yylval entries, mention look-ahead usage.
43
44 2006-01-08 Joel E. Denny <jdenny@ces.clemson.edu>
45
46 * tests/glr-regression.at: Update copyright year to 2006.
47
48 2006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
49
50 * data/glr.c (yyGLRStateSet): Add yybool* yylookaheadStatuses member to
51 use during nondeterministic operation to track which stacks have
52 actually needed the current lookahead.
53 (yyinitStateSet, yyfreeStateSet, yyremoveDeletes, yysplitStack):
54 Allocate, deallocate, resize, and otherwise shuffle space for
55 yylookaheadStatuses in parallel with yystates member of yyGLRStateSet.
56 (yysplitStack, yyprocessOneStack, yyparse): Set lookahead status
57 appropriately during nondeterministic operation.
58 (yySemanticOption): Add int yyrawchar, YYSTYPE yyval, and YYLTYPE yyloc
59 members to store the current lookahead to be used by the deferred
60 user action.
61 (yyaddDeferredAction): Add size_t yyk parameter specifying the stack
62 from which the RHS is taken. Set the lookahead members of the new
63 yySemanticOption according to the lookahead status for stack yyk.
64 (yyglrShiftDefer, yyglrReduce): Pass yyk parameter on to
65 yyaddDeferredAction.
66 (yyresolveAction): Set yychar, yylval, and yylloc to the lookahead
67 members of yySemanticOption before invoking yyuserAction, and then set
68 them back to their current values afterward.
69 (yyparse): Set yychar = YYEMPTY where yytoken = YYEMPTY.
70 (yyreportAmbiguity): Add /*ARGSUSED*/ to pacify lint.
71 * tests/glr-regression.at: Remove `.' from the ends of recent test case
72 titles for consistency.
73 (Leaked merged semantic value if user action cuts parse): In order to
74 suppress lint warnings, use arguments in merge function, and assign
75 char value < 128 in main.
76 (Incorrect lookahead during deterministic GLR): New test case.
77 (Incorrect lookahead during nondeterministic GLR): New test case.
78
79 2006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
80
81 * data/c.m4 (b4_yy_symbol_print_generate): In yy_symbol_print, accept
82 !yyvaluep as signal that no semantic value is available to print.
83 * data/glr.c (yydestroyGLRState): If state is not resolved, don't try
84 to print a semantic value.
85
86 2006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
87
88 * tests/glr-regression.at: For consistency with my newer test cases,
89 don't thank myself.
90
91 2006-01-05 Joel E. Denny <jdenny@ces.clemson.edu>
92
93 * data/glr.c (yyresolveValue): When merging semantic options, if at
94 least one user action succeeds but a later one cuts the parse, then
95 destroy the semantic value before returning rather than leaking it.
96 (yyresolveStates): If a user action cuts the parse and thus
97 yyresolveValue fails, ignore the (unset) semantic value rather than
98 corrupting the yyGLRState, and empty the semantic options list since
99 the user actions should have called all necessary destructors.
100 Simplify code with YYCHK.
101 * tests/glr-regression.at (Corrupted semantic options if user action
102 cuts parse): New test case.
103 (Undesirable destructors if user action cuts parse): New test case.
104 Before applying any of this patch, this test case never actually failed
105 for me... but only because the corrupted semantic options usually
106 masked this bug.
107 (Leaked merged semantic value if user action cuts parse): New test
108 case.
109
110 2006-01-05 Akim Demaille <akim@epita.fr>
111
112 * src/reader.c, src/symlist.h, src/symlist.c: s/mid_rule/midrule/.
113
114 2006-01-04 Paul Eggert <eggert@cs.ucla.edu>
115
116 * data/c.m4 (b4_c_modern): New macro, with a new provision for
117 _MSC_VER. Problem reported by Cenzato Marco.
118 (b4_c_function_def): Use it.
119 * data/yacc.c (YYMODERN_C): Remove. All uses replaced by
120 b4_c_modern.
121 (yystrlen, yystpcpy, yyparse): Use b4_c_function... macros rather
122 than rolling our own.
123
124 2006-01-04 Akim Demaille <akim@epita.fr>
125
126 Also warn about non-used mid-rule values.
127 * src/symlist.h, src/symlist.c (symbol_list): Add a mid_rule
128 member.
129 (symbol_list_new): Adjust.
130 * src/reader.c (symbol_typed_p): New.
131 (grammar_rule_check): Use it.
132 (grammar_midrule_action): Bind a mid-rule LHS to its rule.
133 Check its rule.
134 * tests/input.at (AT_CHECK_UNUSED_VALUES): New.
135 Use it.
136 * tests/actions.at (Exotic Dollars): Adjust.
137
138 2006-01-04 Akim Demaille <akim@epita.fr>
139
140 * src/reader.c (grammar_midrule_action): If $$ is set in a
141 mid-rule, move the `used' bit to its lhs.
142 * tests/input.at (Unused values): New.
143 * tests/actions.at (Exotic Dollars): Adjust: exp is not typed.
144
145 2006-01-03 Paul Eggert <eggert@cs.ucla.edu>
146
147 * doc/bison.texinfo (Bison Options): Say more accurately what
148 --yacc does.
149 * src/parse-gram.y (rules_or_grammar_declaration): Don't complain
150 about declarations in the grammar when in Yacc mode, as POSIX does
151 not require a diagnostic when the grammar uses extensions.
152
153 * src/reduce.c (reduce_grammar): Remove unnecessary cast to bool.
154
155 Warn about dubious constructions like "%token T T".
156 Reported by twlevo.
157 * src/symtab.h (struct symbol.declared): New member.
158 * src/symtab.c (symbol_new): Initialize it to false.
159 (symbol_class_set): New arg DECLARING, specifying whether
160 this is a declaration that we want to warn about, if there
161 is more than one of them. All uses changed.
162
163 * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c:
164 Allow multiple %union directives, whose contents concatenate.
165 * src/parse-gram.y (grammar_declaration): Likewise.
166 Use muscle_code_grow, so that we don't need stype_line any more.
167 All uses changed.
168
169 * src/muscle_tab.c (muscle_grow): Fix comment.
170
171 * ChangeLog, data/c.m4, data/glr.c, data/glr.cc, data/location.cc:
172 * data/yacc.c, src/getargs.c, src/output.c, tests/cxx-type.at:
173 Update copyright year to 2006.
174
175 2006-01-03 Akim Demaille <akim@epita.fr>
176
177 Have glr.cc pass (some of) the calc.at tests.
178 * data/glr.cc (b4_parse_param_orig): New.
179 (b4_parse_param): Improve its definition, and bound it more
180 clearly in the skeleton.
181 (b4_epilogue): Append, instead of prepending, in order to keep
182 #line consistency.
183 Simplify the generation of auxiliary functions: locations and
184 purity are mandated.
185 (b4_global_tokens_and_yystype): Honor it.
186 * data/location.cc (c++.m4): Don't include it.
187 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Define AT_GLR_CC_IF
188 and AT_SKEL_CC_IF.
189 * tests/calc.at (AT_CHECK_CALC): Rely on AT_SKEL_CC_IF instead of
190 AT_LALR1_CC_IF.
191 Be sure to initialize the first position's filename.
192 (AT_CHECK_CALC_LALR1_CC): Add %location and %defines, they are
193 mandated anyway.
194 (AT_CHECK_CALC_GLR_CC): New.
195 Use it to exercise glr.cc as a lalr1.cc drop-in replacement.
196
197 2006-01-02 Akim Demaille <akim@epita.fr>
198
199 * src/output.c (output_skeleton): Don't hard wire the inclusion of
200 c.m4.
201 * data/c++.m4, data/glr.c, data/yacc.c: Include c.m4.
202 * data/glr.cc: Do not include stack.hh.
203
204 2006-01-02 Joel E. Denny <jdenny@ces.clemson.edu>
205
206 * data/glr.c: Reformat whitespace with tabs.
207 (b4_lpure_formals): Remove this unused m4 macro.
208 * tests/cxx-type.at: Reformat whitespace with tabs.
209 (_AT_TEST_GLR_CXXTYPES): In union Node, rename node_info to nodeInfo
210 since it's a member. Rename type to isNterm for clarity.
211
212 2005-12-29 Akim <akim@sulaco.local>
213
214 Let glr.cc catch up with symbol_value_print.
215 * data/glr.cc (b4_yysymprint_generate): Replace by...
216 (b4_yy_symbol_print_generate): this.
217 (yy_symbol_print, yy_symbol_value_print): Declare them.
218
219 2005-12-28 Paul Eggert <eggert@cs.ucla.edu>
220
221 * src/location.h (boundary): Note that a line or column equal
222 to INT_MAX indicates an overflow.
223 * src/scan-gram.l: Include verify.h. Don't include get-errno.h.
224 (rule_length_overflow, increment_rule_length, add_column_width):
225 New functions.
226 (<INITIAL>{id}, <SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'"):
227 (<SC_BRACED_CODE>"}"):
228 Use increment_rule_length rather than incrementing it by hand.
229 (adjust_location, handle_syncline): Diagnose overflow.
230 (handle_action_dollar, handle_action_at):
231 Fix bug with monstrosities like $-2147483648.
232 Remove now-unnecessary checks.
233 (scan_integer): Verify assumptions and remove now-unnecessary checks.
234 (convert_ucn_to_byte): Verify assumptions.
235 (handle_syncline): New arg LOC. All callers changed.
236 Don't store through a value derived from char const * pointer.
237
238 * src/reader.c (grammar_rule_check): Rewrite slightly to avoid
239 GCC warnings.
240
241 2005-12-27 Paul Eggert <eggert@cs.ucla.edu>
242
243 * src/reader.c (grammar_midrule_action, grammar_symbol_append):
244 Remove unnecessary forward static decls.
245
246 2005-12-27 Akim Demaille <akim@epita.fr>
247
248 * src/reader.c (grammar_current_rule_check): Also check that $$
249 is used.
250 Take the rule to check as argument, hence rename as...
251 (grammar_rule_check): this.
252 * src/reader.h, src/reader.c (grammar_rule_begin, grammar_rule_end):
253 Rename as...
254 (grammar_rule_begin, grammar_rule_end): these, for consistency.
255 (grammar_midrule_action, grammar_symbol_append): Now static.
256 * tests/torture.at (input): Don't rely on the default action
257 being always performed.
258 * tests/calc.at: "Set" $$ even when the action is "cut" with
259 YYERROR or other.
260 * tests/actions.at (Exotic Dollars): Instead of using unused
261 values, check that the warning is issued.
262
263 2005-12-22 Paul Eggert <eggert@cs.ucla.edu>
264
265 * NEWS: Improve wording for unused-value warnings.
266
267 2005-12-22 Akim Demaille <akim@epita.fr>
268
269 * data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
270 (b4_yysymprint_generate): Rename as...
271 (b4_yy_symbol_print_generate): this.
272 Generate yy_symbol_print instead of yysymprint.
273 Generate also yy_symbol_value_print, and use it.
274
275 2005-12-22 Akim Demaille <akim@epita.fr>
276
277 * NEWS: Warn about unused values.
278 * src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
279 a `used' member.
280 (symbol_list_n_get, symbol_list_n_used_set): New.
281 (symbol_list_n_type_name_get): Use symbol_list_n_get.
282 * src/scan-gram.l (handle_action_dollar): Flag used symbols.
283 * src/reader.c (grammar_current_rule_check): Check that values are
284 used.
285 * src/symtab.c (symbol_print): Accept 0.
286 * tests/existing.at: Remove the type information.
287 Empty the actions.
288 Remove useless actions (beware of mid-rule actions: perl -000
289 -pi -e 's/\s*\{\}(?=[\n\s]*[|;])//g').
290 * tests/actions.at (Exotic Dollars): Use unused values.
291 * tests/calc.at: Likewise.
292 * tests/glr-regression.at (No users destructors if stack 0 deleted):
293 Likewise.
294
295 * src/gram.c (rule_useful_p, rule_never_reduced_p): Use
296 rule_useful_p.
297
298 2005-12-21 Paul Eggert <eggert@cs.ucla.edu>
299
300 Undo 2005-12-01 tentative license wording change. The wording is
301 still being reviewed by the lawyers, and we don't want to wait for
302 them before publishing a test release. For now, revert to the
303 previous wording.
304 * NEWS: Undo 2005-12-01 change.
305 * data/glr.c: Revert to previous license wording.
306 * data/glr.cc: Likewise.
307 * data/lalr1.cc: Likewise.
308 * data/location.cc: Likewise.
309 * data/yacc.c: Likewise.
310
311 * NEWS: Reword %destructor vs YYABORT etc.
312 * data/glr.c: Use American spacing, for consistency.
313 * data/glr.cc: Likewise.
314 * data/lalr1.cc: Likewise.
315 * data/yacc.c: Likewise.
316 * data/yacc.c: Reformat comments slightly.
317 * doc/bison.texinfo: Replace "non-" with "non" when that makes sense,
318 for consistency. Fix some spelling errors and reword recently-included
319 text slightly.
320 * tests/cxx-type.at: Cast results of malloc, for C++.
321
322 2005-12-21 Joel E. Denny <address@hidden>
323
324 * tests/cxx-type.at: Construct a tree, count the parents of shared
325 nodes, and free each node once and only once. Previously, the memory
326 for semantic values was leaked instead.
327
328 2005-12-21 Joel E. Denny <address@hidden>
329
330 * data/glr.c (struct yyGLRStack): If pure, add yyval and yyloc members.
331 (yylval, yylloc): If pure, #define to yystackp->yyval and
332 yystackp->yyloc similar to yychar and yynerrs.
333 (yyparse): If pure, remove local yylval and yylloc. Add local
334 yystackp to accommodate pure definitions of yylval and yylloc.
335 (b4_lex_param, b4_lyyerror_args, b4_lpure_args): If pure, change
336 yylvalp and yyllocp to &yylval and &yylloc.
337 (nerrs, char, lval, lloc): If pure, add #define's for b4_prefix[]
338 namespace. Previously, nerrs and char were missing, but lval and lloc
339 weren't necessary.
340 (yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Remove
341 yylvalp and yyllocp parameters since, if pure, these are now always
342 accessible through yystackp. If not pure, they are still accessible
343 globally.
344 * data/glr.c, data/yacc.c (YYLLOC_DEFAULT): Change `if (N)' to
345 `if (YYID (N))' to pacify lint.
346
347 2005-12-21 Akim Demaille <akim@epita.fr>
348
349 YYACCEPT, YYERROR, and YYABORT, as user actions, should not
350 destroy the RHS symbols of a rule.
351 * data/yacc.c (yylen): Initialize to 0.
352 Keep its value to the number of items to possibly shift.
353 In particular, a regular successful parse that ends on YYFINAL by
354 a (internal) YYACCEPT must not have yylen != 0.
355 (yyerrorlab, yyreturn): Pop the RHS.
356 Reorder a bit to emphasize the `shifting' bits of code.
357 (YYPOPSTACK): Now accept a number of items to pop.
358 * data/lalr1.cc: Likewise.
359 * data/glr.c: Formatting changes.
360 Use goto instead of fall through.
361 * doc/bison.texinfo (Destructor Decl): Complete.
362
363 2005-12-20 Juan Manuel Guerrero <juan.guerrero@gmx.de>
364
365 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
366 * djgpp/Makefile.maint: Fix PACKAGE variable computation.
367 * djgpp/config.bat: Replace every occurence of the file name
368 scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
369 c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
370 * djgpp/config.sed: Replace every occurence of the file name
371 scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
372 c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
373 * djgpp/djunpack.bat: DJGPP specific file.
374 * djgpp/fnchange.lst: DJGPP specific file.
375 * djgpp/README.in: Add new information about how to unpack the bison
376 source on MSDOS and other systems which have 8.3 file name restrictions
377 using djunpack.bat and fnchange.lst.
378
379 2005-12-12 Paul Eggert <eggert@cs.ucla.edu>
380
381 * bootstrap (build_cvs_prefix): Remove; unused.
382 (CVS_PREFIX): Adjust to yesterday's Savannah reorganization
383 when getting gnulib.
384
385 2005-12-12 "Joel E. Denny" <jdenny@ces.clemson.edu>
386
387 * data/glr.c: Reorder typedef declarations for structs to match order
388 of struct declarations.
389 Rename yystack everywhere to yystackp except in yyparse where it's not
390 a pointer.
391 (yyglrShift): Change parameter YYSTYPE yysval to YYSTYPE* yyvalp for
392 consistency.
393 (yyis_table_ninf): Change 0 to YYID (0) to pacify lint.
394 (yyreportSyntaxError): Add /*ARGSUSED*/ to pacify lint.
395 (yyparse): Change while (yytrue) to while ( YYID (yytrue)) to pacify
396 lint.
397
398 2005-12-09 Paul Eggert <eggert@cs.ucla.edu>
399
400 * tests/sets.at (Accept): Fix typos in regular expression used to
401 sed out the final state number.
402
403 Work around portability problem on Solaris 10: flex-generated
404 files include <stdio.h> before <config.h>, which messes up
405 because the latter defines __EXTENSIONS__. Address the problem
406 by creating two new little files that include <config.h> first,
407 then include the flex-generated files. Rewrite everyone else
408 to include <config.h> first, as well.
409 * lib/timevar.c: Always include "config.h".
410 * src/Makefile.am (bison_SOURCES): Replace scan-gram.l with
411 scan-gram-c.c, and scan-skel.l with scan-skel-c.c.
412 (EXTRA_bison_SOURCES): New macro.
413 * src/scan-gram-c.c, src/scan-skel-c.c: New files.
414 * src/system.h: Don't include config.h.
415 * src/LR0.c: Include <config.h> first.
416 * src/assoc.c: Likewise.
417 * src/closure.c: Likewise.
418 * src/complain.c: Likewise.
419 * src/conflicts.c: Likewise.
420 * src/derives.c: Likewise.
421 * src/files.c: Likewise.
422 * src/getargs.c: Likewise.
423 * src/gram.c: Likewise.
424 * src/lalr.c: Likewise.
425 * src/location.c: Likewise.
426 * src/main.c: Likewise.
427 * src/muscle_tab.c: Likewise.
428 * src/nullable.c: Likewise.
429 * src/output.c: Likewise.
430 * src/parse-gram.y: Likewise.
431 * src/print.c: Likewise.
432 * src/print_graph.c: Likewise.
433 * src/reader.c: Likewise.
434 * src/reduce.c: Likewise.
435 * src/relation.c: Likewise.
436 * src/state.c: Likewise.
437 * src/symlist.c: Likewise.
438 * src/symtab.c: Likewise.
439 * src/tables.c: Likewise.
440 * src/uniqstr.c: Likewise.
441 * src/vcg.c: Likewise.
442
443 * src/parse-gram.y: Fix minor problems uncovered by lint.
444 (current_lhs, current_lhs_location): Now static.
445 (current_assoc): Remove unused variable.
446
447 Cleanups so that Bison-generated parsers have less lint.
448 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
449 Prepend /*ARGSUSED*/, for lint's sake.
450 * data/glr.c (YYUSE): Properly parenthesize, and use an alternate
451 definition if 'lint' is defined.
452 (YYID): New macro (or function, if lint).
453 All uses of /*CONSTCOND*/0 replaced by YYID(0).
454 * data/yacc.c: Likewise.
455 * data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
456 (yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
457 * data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
458 is C++ only.
459 * data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
460 * data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
461 Use YYID(0) rather than 0, for lint.
462 (yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
463 (yysyntax_error): Rewrite to avoid lint warnings about parenthesization.
464
465 2005-12-07 Paul Eggert <eggert@cs.ucla.edu>
466
467 * tests/glr-regression.at
468 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
469 Close memory leak reported by twlevo.
470
471 2005-12-06 "Joel E. Denny" <jdenny@ces.clemson.edu>
472
473 * data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for
474 all stacks.
475 (yyparse): Iterate another stack in order to call user destructors.
476 * tests/glr-regression.at (No users destructors if stack 0 deleted):
477 New test case.
478 (Duplicated user destructor for lookahead): This test now is expected
479 to succeed.
480
481 2005-12-01 Paul Eggert <eggert@cs.ucla.edu>
482
483 * NEWS: Document the following change.
484 * data/yacc.c: Say "parser skeleton" rather than "file", since
485 it's no longer just a file.
486 * data/glr.c: Grant a special exception for C GLR parsers, that
487 reads like the already-existing exception for C LALR(1) parsers.
488 * data/glr.cc: Likewise.
489 * data/lalr1.cc: Likewise.
490 * data/location.cc: Likewise.
491 * data/yacc.c: Reword the "written by" statement to clarify that
492 it was the parser skeleton, not the entire output file.
493 * data/glr.c: Written by Paul Hilfinger.
494 * data/glr.cc: Written by Akim Demaille.
495 * data/lalr1.cc: Likewise.
496
497 2005-11-18 Paul Eggert <eggert@cs.ucla.edu>
498
499 * data/yacc.c (yy_reduce_print, YY_REDUCE_PRINT):
500 Fix typos in previous change that broke 'make check'.
501 YY_REDUCE_PRINT cannot be a pseudo-varargs macro; that isn't
502 supported in C.
503 * tests/calc.at (_AT_CHECK_CALC,_AT_CHECK_CALC_ERROR):
504 Don't check NUM-STDERR-LINES, since the output format is fluctuating.
505 We can revert this once things settle down.
506
507 * src/conflicts.c (conflicts_print): Don't print file name twice
508 when %expect fails because there were no conflicts.
509 * doc/bison.texinfo (Expect Decl): Tighten up wording in previous
510 change.
511 * tests/conflicts.at (%expect not enough, %expect too much):
512 (%expect with reduce conflicts): Adjust to new behavior.
513
514 2005-11-18 Akim Demaille <akim@epita.fr>
515
516 * src/conflicts.c (conflicts_print): Unsatisfied %expectation are
517 errors.
518 * NEWS: Document this.
519 * doc/bison.texinfo (Expect Decl): Likewise.
520
521 2005-11-16 Akim Demaille <akim@epita.fr>
522
523 Generalize the display of semantic values and locations in traces.
524 * data/glr.c (yy_reduce_print): Fix indices (again).
525 * data/c++.m4 (b4_rhs_value, b4_rhs_location): Don't expect
526 literal integers.
527 * data/lalr1.cc (yyreduce_print): Rename as...
528 (yy_reduce_print): this.
529 Display values and locations.
530 * data/yacc.c (yy_reduce_print): Likewise.
531 (YY_REDUCE_PRINT): Adjust to pass the required arguments.
532 (yysymprint): Move higher to be visible from yy_reduce_print).
533 (yyparse): Adjust.
534 * tests/calc.at: Adjust the expected length of the traces.
535
536 2005-11-14 Akim Demaille <akim@epita.fr>
537
538 * data/glr.c (yy_reduce_print): The loop was quite wrong: type are
539 from 1 to N, while values and location start at 0.
540 (b4_rhs_location, b4_rhs_value): Add parens around $1 and $2.
541
542 2005-11-14 Akim Demaille <akim@epita.fr>
543
544 * data/glr.c (yy_reduce_print): Fix the $ number.
545
546 2005-11-14 Akim Demaille <akim@epita.fr>
547
548 "Use" parse parameters.
549 * data/c.m4 (b4_parse_param_for, b4_parse_param_use): New.
550 * data/glr.c, data/glr.cc: Use them.
551 * data/glr.c (YYUSE): Have a C++ definition that supports
552 non-pointer types.
553
554 2005-11-14 Akim Demaille <akim@epita.fr>
555
556 * data/glr.c (yyexpandGLRStack): Declare only if defined.
557
558 2005-11-14 Akim Demaille <akim@epita.fr>
559
560 * data/glr.cc: New.
561 * data/m4sugar/m4sugar.m4 (m4_prepend): New.
562
563 2005-11-12 Akim Demaille <akim@epita.fr>
564
565 Let position and location be PODs.
566 * data/location.cc (position::initialize, location::initialize): New.
567 (position::position, location::location): Define only if
568 b4_location_constructors is defined.
569 * data/lalr1.cc (b4_location_constructors): Define it for backward
570 compatibility.
571 * doc/bison.texinfo (Initial Action Decl): Use initialize.
572
573 2005-11-12 Akim Demaille <akim@epita.fr>
574
575 * data/lalr1.cc: Move the body of the ctor and dtor into the
576 parser file (instead of the header).
577 Wrap the implementations in a "namespace yy".
578
579 2005-11-12 Akim Demaille <akim@epita.fr>
580
581 Have glr.c include its header file when created.
582 * data/glr.c (b4_shared_declarations): New.
583 Output them verbatim in the parser if !%defines, otherwise
584 output then in the header file, and include it instead.
585
586 2005-11-11 Akim Demaille <akim@epita.fr>
587
588 * data/glr.c: Comment changes.
589
590 2005-11-11 Akim Demaille <akim@epita.fr>
591
592 When yydebug, report semantic and location values for reductions.
593 * data/glr.c (yy_reduce_print): Report the semantic values and the
594 locations.
595 (YY_REDUCE_PRINT): Adjust.
596 (yyglrReduce): Use them.
597 (b4_rhs_value, b4_rhs_location): Remove m4_eval invocations.
598 * data/c.m4 (b4_yysymprint_generate): Specify the const arguments.
599 * tests/calc.at (_AT_CHECK_CALC_ERROR): Remove the reduction
600 traces.
601
602 2005-11-10 Akim Demaille <akim@epita.fr>
603
604 * data/glr.c (yynewGLRStackItem, YY_RESERVE_GLRSTACK): New.
605 (yyaddDeferredAction, yyglrShift, yyglrShiftDefer): Use them.
606 (yyexpandGLRStack, YYRELOC): Define only when YYSTACKEXPANDABLE.
607
608 2005-11-09 Albert Chin-A-Young <china@thewrittenword.com>
609
610 * m4/cxx.m4, examples/Makefile.am: Don't build
611 examples/calc++ if no C++ compiler is available. (trivial change)
612
613 2005-11-09 Akim Demaille <akim@epita.fr>
614
615 * src/scan-skel.l: Use a couple of asserts.
616
617 2005-11-03 Akim Demaille <akim@epita.fr>
618
619 In some (weird) cases, the final state number is incorrect.
620 Reported by Alexandre Duret-Lutz.
621 * src/LR0.c (state_list_append): Remove the computation of
622 final_state.
623 (save_reductions): Do it here.
624 (get_state): Alpha conversion.
625 (generate_states): Use a for loop.
626 * src/gram.h (item_number_is_rule_number)
627 (item_number_is_symbol_number): New.
628 * src/state.c: Use assert.
629 * src/system.h: Include assert.h.
630 * tests/sets.at (Accept): New.
631
632 2005-10-30 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
633
634 * data/glr.c (yyfill): Adjust comment.
635 (yyresolveAction): Initialize default location properly
636 for empty right-hand sides.
637 (yydoAction): Ditto.
638 Add comment explaining apparently dead code.
639 * tests/glr-regression.at
640 (Incorrectly initialized location for empty right-hand side in GLR):
641 New test.
642
643 2005-10-30 Paul Eggert <eggert@cs.ucla.edu>
644
645 * bootstrap (cleanup_gnulib): New function. Use it to clean up
646 gnulib when interrupted. This fixes some race conditions and
647 works around some portability problems (one noted by Paul
648 Hilfinger).
649
650 2005-10-22 Akim <akim@epita.fr>
651
652 * Makefile.cfg: Adjust to config -> build-aux.
653 Reported by twledo.
654
655 2005-10-21 Akim Demaille <akim@epita.fr>
656
657 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
658 the %parse-params.
659 * data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
660 * data/yacc.c (b4_Pure_if): Rename as...
661 (b4_yacc_pure_if): this.
662 (YY_SYMBOL_PRINT, yyparse): Adjust.
663 * doc/bison.texinfo: Formatting changes.
664
665 2005-10-21 Akim Demaille <akim@epita.fr>
666
667 Finish the transition config -> build-aux.
668 * configure.ac, Makefile.am: Use build-aux.
669 * config/prev-version, config/announce-gen, config/Makefile.am:
670 Move to...
671 * build-aux/prev-version, build-aux/announce-gen,
672 * build-aux/Makefile.am: here.
673
674 2005-10-14 Akim Demaille <akim@epita.fr>
675
676 * examples/calc++/test: Use set -x only when VERBOSE.
677
678 2005-10-13 Paul Eggert <eggert@cs.ucla.edu>
679
680 * NEWS: Bison now warns if it finds a stray `$' or `@' in an action.
681 * src/scan-gram.l (<SC_BRACED_CODE>[$@]): Implement this.
682
683 2005-10-13 Akim Demaille <akim@epita.fr>
684
685 * src/scan-skel.l: Output the base name parts of the parser and
686 header file names.
687 * tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
688 additional checks.
689 Use this to exercise C++ outputs in subdirs.
690 Reported by Oleg Smolsky.
691
692 2005-10-12 Paul Eggert <eggert@cs.ucla.edu>
693
694 * data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at
695 __STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
696 Problem reported by John P. Hartmann.
697 * data/yacc.c (YYMODERN_C): Likewise. Don't define if the user has
698 already defined it.
699
700 2005-10-12 Akim Demaille <akim@epita.fr>
701
702 * src/parse-gram.y (version_check): Exit 63 to please missing
703 (stands for "version mismatch).
704 * tests/input.at, doc/bison.texinfo: Adjust.
705
706 2005-10-10 Paul Eggert <eggert@cs.ucla.edu>
707
708 Work around portability problems with Visual Age C compiler
709 (xlc and xlC_r) reported by John P. Hartmann.
710 * data/location.cc (initial_column, initial_line): Remove.
711 All uses replaced by 0 and 1.
712 * src/scan-gram.l (gram_wrap): Redefine to avoid bug in flex 2.5.31
713 that xlc complains about.
714 * src/scan-skel.l (skel_wrap): Likewise.
715 * data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
716 as __STDC__.
717 * data/yacc.c (YYMODERN_C): New macro, which also looks at
718 __STDC_VERSION__. Use it everywhere instead of looking at
719 __STDC__ and __cplusplus.
720
721 2005-10-10 Akim Demaille <akim@epita.fr>
722
723 * examples/calc++/test: Be quiet unless VERBOSE.
724
725 2005-10-05 Paul Eggert <eggert@cs.ucla.edu>
726
727 * data/c.m4 (yydestruct, yysymprint):
728 Use YYUSE instead of casting to void.
729 * data/glr.c (YYUSE): New macro.
730 (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
731 Use it instead of rolling our own.
732 (YYLLOC_DEFAULT, YYCHK, YYDPRINTF, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
733 (YYCHK1):
734 Use /*CONSTCOND*/ to suppress lint warnings.
735 * data/lalr1.cc (YYLLOC_DEFAULT, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
736 (YY_STACK_PRINT): Use 'false' not '0'.
737 (YYUSE): New macro.
738 (yysymprint_, yydestruct_): Use it instead of rolling our own.
739 * data/yacc.c (YYUSE): New macro.
740 (YYCOPY, YYSTACK_RELOCATE, YYBACKUP, YYLLOC_DEFAULT):
741 (YYDPRINTF, YY_SYMBOL_PRINT, YY_STACK_PRINT, YY_REDUCE_PRINT):
742 (yyerrorlab): Use /*CONSTCOND*/ to suppress lint warnings.
743
744
745 * data/m4sugar/m4sugar.m4 (_m4_map): New macro.
746 (m4_map, m4_map_sep): Use it. Handle the empty list correctly.
747
748 2005-10-04 Paul Eggert <eggert@cs.ucla.edu>
749
750 Undo the parts of the unlocked-I/O change that substituted
751 putc or puts for printf. This might hurt performance a bit,
752 but some people prefer the printf style.
753 * data/c.m4 (yysymprint): Prefer printf to puts and putc.
754 * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): Remove.
755 All uses replaced by YYFPRINTF and YYDPRINTF.
756 * data/yacc.c: Likewise.
757 * lib/bitset.c (bitset_print): Likewise.
758 * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer printf to
759 putc and puts.
760 * lib/lbitset.c (debug_lbitset): Likewise.
761 * src/closure.c (print_firsts, print_fderives): Likewise.
762 * src/gram.c (grammar_dump): Likewise.
763 * src/lalr.c (look_ahead_tokens_print): Likewise.
764 * src/output.c (escaped_output): Likewise.
765 (user_actions_output): Break apart two printfs.
766 * src/parse-gram.y (%printer): Prefer printf to putc and puts.
767 * src/reduce.c (reduce_print): Likewise.
768 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
769 * src/system.h: Include unlocked-io.h rathe than stdio.h.
770
771 * data/glr.c (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
772 Use assignments rather than casts-to-void to suppress
773 unused-variable warnings. This pacifies 'lint'.
774 * data/lalr1.cc (yysymprint_, yydestruct_): Use a call to suppress
775 unused-variable warnings.
776
777 2005-10-03 Juan Manuel Guerrero <juan.guerrero@gmx.de>
778
779 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
780
781 2005-10-02 Paul Eggert <eggert@cs.ucla.edu>
782
783 Use unlocked I/O for a minor performance improvement on hosts like
784 GNU/Linux and Solaris that support unlocked I/O. The basic idea
785 is to use the gnlib unlocked-io module, and to prefer putc and
786 puts to printf when either will work (since the latter doesn't
787 come in an unlocked flavor).
788 * bootstrap (gnulib_modules): Add unlocked-io.
789 * data/c.m4 (yysymprint): Prefer puts and putc to printf.
790 * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
791 Prefer them to YYFPRINTF and YYDPRINTF if either will do,
792 and similarly for puts and putc and printf.
793 * data/yacc.c: Likewise.
794 * lib/bitset.c (bitset_print): Likewise.
795 * lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
796 * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
797 to printf.
798 * lib/lbitset.c (debug_lbitset): Likewise.
799 * src/closure.c (print_firsts, print_fderives): Likewise.
800 * src/gram.c (grammar_dump): Likewise.
801 * src/lalr.c (look_ahead_tokens_print): Likewise.
802 * src/output.c (escaped_output): Likewise.
803 (user_actions_output): Coalesce two printfs.
804 * src/parse-gram.y (%printer): Prefer putc and puts to printf.
805 * src/reduce.c (reduce_print): Likewise.
806 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
807 * src/system.h: Include unlocked-io.h rather than stdio.h.
808
809 * data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
810 this confuses xgettext.
811
812 2005-10-02 Akim Demaille <akim@epita.fr>
813
814 * bootstrap (gnulib_modules): Add strverscmp.
815 * lib/.cvsignore: Add strverscmp.c, strverscmp.h.
816 * m4/.cvsignore: Add strverscmp.m4.
817 * src/parse-gram.y (%require): New token, new rule.
818 (version_check): New.
819 * src/scan-gram.l (%require): Adjust.
820 * tests/input.at (AT_REQUIRE): New.
821 Use it.
822 * doc/bison.texinfo (Require Decl): New.
823 (Calc++ Parser): Use %require.
824
825 2005-10-02 Akim Demaille <akim@epita.fr>
826
827 * data/location.cc: New.
828
829 2005-10-02 Paul Eggert <eggert@cs.ucla.edu>,
830 Akim Demaille <akim@epita.fr>
831
832 Make sure -odir/foo.cc creates dir/location.hh etc.
833 * src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
834 (spec_file_prefix, spec_verbose_file, spec_graph_file)
835 (spec_defines_file): Now const.
836 (dir_prefix): New.
837 (short_base_name): Remove.
838 * src/files.c: Adjust.
839 (dirname.h): Include.
840 (base_name): Don't prototype it.
841 (finput): Remove, duplicates gram_in.
842 (full_base_name, short_base_name): Replace by...
843 (all_but_ext, all_but_tab_ext): these.
844 (compute_base_names): Rename as...
845 (compute_file_name_parts): this.
846 Update to compute the new variables, including dir_prefix.
847 Adjust dependencies.
848 * src/output.c (prepare): Output them.
849 * src/reader.c: Adjust to use gram_in, not finput.
850 * src/scan-skel.l (@dir_prefix@): New.
851
852 2005-10-02 Juan Manuel Guerrero <juan.guerrero@gmx.de>
853
854 * lib/subpipe.c: New function end_of_output_subpipe() added
855 to allow support for non-posix systems. This is a no-op function
856 for posix systems.
857
858 * lib/subpipe.h: New function end_of_output_subpipe() added
859 to allow support for non-posix systems. This is a no-op function
860 for posix systems.
861
862 * src/output.c (output_skeleton): Use end_of_output_subpipe() to
863 handle the lack of pipe/fork functionality on non-posix systems.
864
865 * djgpp/Makefile.maint: DJGPP specific file.
866
867 * djgpp/README.in: DJGPP specific file.
868
869 * djgpp/config.bat: DJGPP specific configuration file.
870
871 * djgpp/config.sed: DJGPP specific configuration file.
872
873 * djgpp/config.site: DJGPP specific configuration file.
874
875 * djgpp/config_h.sed: DJGPP specific configuration file.
876
877 * djgpp/subpipe.c: DJGPP specific replacement file for lib/subpipe.c.
878
879 * djgpp/subpipe.h: DJGPP specific replacement file for lib/subpipe.h.
880
881 2005-10-02 Akim Demaille <akim@epita.fr>
882
883 * data/location.cc: New, extract from...
884 * data/lalr1.cc: here.
885 (location.hh): Include it after the user prologue, in case the
886 filename type is defined by the user.
887 Forward declation location and position before the pre-prologue.
888 (yyresult_): Rename as...
889 (yyresult): this, it's a local variable, not an attribute.
890 * data/Makefile.am (dist_pkgdata_DATA): Adjust.
891
892 2005-10-01 Akim Demaille <akim@epita.fr>
893
894 * examples/extexi: Restore the #line generation.
895
896 2005-09-30 Akim Demaille <akim@epita.fr>,
897 Alexandre Duret-Lutz <adl@gnu.org>
898
899 Move the token type and YYSTYPE in the parser class.
900 * data/lalr1.cc (stack.hh, location.hh): Include earlier.
901 (parser::token): New, from the moved free definition of tokens.
902 (parser::semantic_value): Now a full definition instead of an
903 indirection to YYSTYPE.
904 (b4_post_prologue): No longer included in the header file, but
905 in the implementation file.
906 * doc/bison.texi (C+ Language Interface): Update.
907 * src/parse-gram.y: Support unary %define.
908 * tests/actions.at: Define global_tokens_and_yystype for backward
909 compatibility until we update the tests.
910 * tests/calc.at: Idem.
911 (first_line, first_column, last_line, last_column): Define for lalr1.cc
912 to simplify the code.
913
914 2005-09-29 Paul Eggert <eggert@cs.ucla.edu>
915
916 Port to SunOS 4.1.4, which lacks strtoul and strerror.
917 Ah, the good old days! Problem reported by Peter Klein.
918 * bootstrap (gnulib_modules): Add strerror, strtoul.
919 * lib/.cvsignore: Add strerror.c, strtol.c, strtoul.c
920 * m4/.cvsignore: Add strerror.m4, strtol.m4, strtoul.m4.
921
922 2005-09-29 Akim Demaille <akim@epita.fr>
923
924 * data/c.m4 (b4_error_verbose_if): New.
925 * data/lalr1.cc: Use it.
926 (YYERROR_VERBOSE_IF): Remove.
927 (yyn_, yylen_, yystate_, yynerrs_, yyerrstatus_): Remove as
928 parser members, replaced by...
929 (yyn, yylen, yystate, yynerss, yyerrstatus): these parser::parse
930 local variables.
931 (yysyntax_error_): Takes the state number as argument.
932 (yyreduce_print_): Use the argument yyrule, not the former
933 attribute yyn_.
934
935 2005-09-26 Paul Eggert <eggert@cs.ucla.edu>
936
937 * bootstrap (gnulib_modules): Add verify.
938 * lib/.cvsignore: Add verify.h.
939 * src/getargs.c: Use ARGMATCH_VERIFY rather than verify.
940 * src/system.h (verify): Remove.
941 Include verify.h instead.
942 * src/tables.c (tables_generate): Use new API for 'verify'.
943
944 2005-09-21 Paul Eggert <eggert@cs.ucla.edu>
945
946 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Do not use
947 local variables whose names begin with 'yy'.
948 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
949 Trivial changes from Joel E. Denny.
950
951 * bootstrap (gnulib_modules): Remove alloca. Bison doesn't need
952 it itself.
953 * src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
954 don't use alloca any more.
955
956 * data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
957 __BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
958 defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
959 * tests/torture.at (Exploding the Stack Size with Alloca): Adjust
960 to match yacc.c, to test more hosts.
961
962 2005-09-20 Paul Eggert <eggert@cs.ucla.edu>
963
964 * data/yacc.c (YYSIZE_T): Reindent to make it clearer. This
965 doesn't affect behavior.
966 (YYSTACK_ALLOC) [YYSTACK_USE_ALLOCA]: Improve support for
967 Solaris, AIX, MSC.
968 (_STDLIB_H): Renamed from YYINCLUDED_STDLIB_H. All uses changed.
969 This works a bit better with glibc, if user code has already included
970 stdlib.h.
971 * doc/bison.texinfo (Bison Parser): Document that users can't
972 arbitrarily use malloc and free for other purposes. Document
973 that <alloca.h> and <malloc.h> might be included.
974 (Table of Symbols): Under YYSTACK_USE_ALLOCA, Don't claim that the
975 user must declare alloca.
976
977 * HACKING (release): Forwarn the Translation Project about
978 stable releses.
979
980 2005-09-20 Akim Demaille <akim@epita.fr>
981
982 * data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
983
984 2005-09-19 Paul Eggert <eggert@cs.ucla.edu>
985
986 * data/yacc.c (YYSIZE_MAXIMUM): New macro.
987 (YYSTACK_ALLOC_MAXIMUM): Use it.
988 (yysyntax_error): New function.
989 (yyparse) [YYERROR_VERBOSE]: Don't leak memory indefinitely if
990 multiple syntax errors are reported, and alloca is being used.
991 Instead, reallocate buffers twice as big each time, so that
992 we waste at most half the allocated memory. Start with a small
993 (128-byte) buffer that will suffice in most cases anyway.
994 Use yysyntax_error to do most of the work.
995
996 * doc/bison.texinfo (Error Reporting, Table of Symbols):
997 yynerrs is the number of errors reported, not the number of
998 errors encountered.
999
1000 * tests/glr-regression.at (Duplicated user destructor for lookahead):
1001 Mark it as expected to fail.
1002 Cast result of malloc; problem reported by twlevo@xs4all.nl.
1003 * tests/actions.at, tests/calc.at, tests/glr-regression.at:
1004 Don't start user-code symbols with "yy", to avoid name space problems.
1005
1006 2005-09-19 Akim Demaille <akim@epita.fr>
1007
1008 Remove the traits, failed experiment.
1009 It never proved useful, and anyway because of the current
1010 definition, it was not possible to have several specialization of
1011 this traits, making it useless.
1012 * data/lalr1.cc (yy:traits): Remove.
1013 Inline its definitions in the parser class.
1014
1015 2005-09-19 Akim Demaille <akim@epita.fr>
1016
1017 * tests/atlocal.in (LIBS): Pass INTLLIBS to address failures on at
1018 least Mac OSX with a /usr/local install of gettext.
1019
1020 2005-09-19 Akim Demaille <akim@epita.fr>
1021
1022 * data/lalr1.cc (yyparse): Rename yylooka and yyilooka as yychar
1023 and yytoken for similarity with the other skeletons.
1024
1025 2005-09-19 Akim Demaille <akim@epita.fr>
1026
1027 * NEWS, configure.ac: Bump to 2.1a.
1028
1029 2005-09-16 Paul Eggert <eggert@cs.ucla.edu>
1030
1031 * NEWS: Version 2.1.
1032
1033 * NEWS: Remove notice of yytname change, since it was never in an
1034 official release.
1035 * data/glr.c (yydestroyGLRState): Rename local var to avoid shadowing
1036 diagnostic.
1037 * src/output.c (prepare): Likewise.
1038 * data/lalr1.cc (YYERROR_VERBOSE_IF): New macro.
1039 (yysyntax_error_): Use it to avoid GCC warning when YYERROR_VERBOSE
1040 is not defined. This is an awful hack, but it's enough for now.
1041 All callers changed.
1042 * tests/glr-regression-at (make_value): Args are const pointers now,
1043 to avoid GCC warning.
1044 (Duplicated user destructor for lookahead): New test. Currently
1045 skipped. It fails on my host but I'm not sure it'll always fail.
1046
1047 2005-09-16 Akim Demaille <akim@epita.fr>
1048
1049 * src/symtab.h (struct symbol): Declare the printer and destructor
1050 as const, to avoid accidental calls to free.
1051 (symbol_destructor_set, symbol_printer_set): Adjust.
1052 * src/symtab.c: Adjust.
1053
1054 2005-09-16 Akim Demaille <akim@epita.fr>
1055
1056 * data/c.m4 (b4_token_enums): New.
1057 (b4_token_defines): Rename as...
1058 (b4_token_enums_defines): this.
1059 (b4_token_defines): New, output only the #defines.
1060 * data/yacc.c, data/glr.c: Adjust.
1061 * data/lalr1.cc: Use b4_token_enums instead of b4_token_enums_defines.
1062 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Define
1063 as default values.
1064
1065 2005-09-16 Akim Demaille <akim@epita.fr>
1066
1067 * data/lalr1.cc (yylex_): Remove, inline its code.
1068 (yyreport_syntax_error_): Remove, replaced by...
1069 (yysyntax_error_): this which returns a string and leaves to the
1070 caller the call to the users' error function.
1071 (yylooka_, yyilooka_, yylval, yylloc, yyerror_range_, yyval, yyloc):
1072 Move from members of the parser object...
1073 (yylooka, yyilooka, yylval, yylloc, yyerror_range, yyval, yyloc):
1074 to local variables of the parse function.
1075
1076 2005-09-16 Akim Demaille <akim@epita.fr>
1077
1078 * doc/bison.texinfo (Calc++ Parser): Don't promote defining YYEOF
1079 since it's in Bison's name space.
1080
1081 2005-09-15 Paul Eggert <eggert@cs.ucla.edu>
1082
1083 * data/glr.c (yyresolveValue): Add default case to pacify
1084 gcc -Wswitch-default. Problem reported by twlevo@xs4all.nl.
1085
1086 * NEWS: Document when yyparse started to return 2.
1087 * doc/bison.texinfo (Parser Function): Document when yyparse
1088 returns 2.
1089
1090 * data/lalr1.cc: Revert part of previous change, as it's incompatible.
1091 (b4_filename_type): Renamed back from b4_file_name_type. All uses
1092 changed.
1093 (class position): file_name -> filename (reverting). All uses changed.
1094
1095 2005-09-14 Paul Eggert <eggert@cs.ucla.edu>
1096
1097 * examples/calc++/Makefile.am ($(calc_sources_generated)): Don't
1098 do anything if $@ exists. This reverts part of the 2005-07-07
1099 patch.
1100
1101 2005-09-11 Paul Eggert <eggert@cs.ucla.edu>
1102
1103 * Makefile.am (EXTRA_DIST): Do not distribute REFERENCES; it
1104 contains obsolete information and isn't worth distributing as a
1105 separate file anyway.
1106 * data/glr.c [defined YYSETJMP]: Don't include <setjmp.h>.
1107 (YYJMP_BUF, YYSETJMP, YYLONGJMP) [!defined YYSETJMP]: New macros.
1108 All uses of jmp_buf, setjmp, longjmp changed to use these instead.
1109 (yyparse): Abort if user code uses longjmp to throw an unexpected
1110 value.
1111
1112 2005-09-09 Paul Eggert <eggert@cs.ucla.edu>
1113
1114 * data/c.m4 (b4_identification): Define YYBISON_VERSION.
1115 Suggested by twlevo@xs4all.nl.
1116
1117 * data/glr.c (YYCHK1): Do not assume YYE is in range.
1118 This avoids a diagnostic from gcc -Wswitch-enum.
1119 Problem reported by twlevo@xs4all.nl.
1120
1121 * doc/bison.texinfo: Don't use "filename", as per GNU coding
1122 standards. Use "file name" or "file" or "name", depending on
1123 the context.
1124 (Invocation): The output of "bison hack/foo.y" goes to foo.tab.c,
1125 not to hack/foo.tab.c.
1126 (Calc++ Top Level): 2nd arg of main is not const.
1127 * data/glr.c: b4_filename -> b4_file_name.
1128 * data/lalr1.cc: Likewise. Also, b4_filename_type -> b4_file_name_type.
1129 All uses changed.
1130 (class position): filename -> file_name. All uses changed.
1131 * data/yacc.c: b4_filename -> b4_file_name.
1132 * lib/bitset.h: filename -> file_name in local vars.
1133 * lib/bitset_stats.c: Likewise.
1134 * src/files.c: Likewise.
1135 * src/scan-skel.l ("@output ".*\n): Likewise.
1136 * src/files.c (file_name_split): Renamed from filename_split.
1137 * src/muscle_tab.c (muscle_init): Output b4_file_name, not b4_filename.
1138
1139 2005-09-08 Paul Eggert <eggert@cs.ucla.edu>
1140
1141 * lib/.cvsignore: Add pipe-safer.c, stdio--.h, unistd--.h,
1142 to accommodate latest gnulib.
1143
1144 * tests/glr-regression.at (Duplicate representation of merged trees):
1145 Add casts to pacify g++. Problem reported by twlevo@xs4all.nl.
1146
1147 * bootstrap: Add comment as to why the AM_LANGINFO_CODESET hack is
1148 needed.
1149
1150 2005-08-26 Paul Eggert <eggert@cs.ucla.edu>
1151
1152 * data/glr.c (yydestroyGLRState): Renamed from yydestroyStackItem.
1153 All uses changed. Invoke user destructor after an error during a
1154 split parse (trivial change from Joel E. Denny).
1155
1156 * tests/glr-regression.at
1157 (User destructor after an error during a split parse): New test case.
1158 Problem reported by Joel E. Denny in:
1159 http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00029.html
1160
1161 2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
1162
1163 * README-cvs: Give URLs for recommended tools.
1164 Mention Gzip version problem, and bootstrapping issues.
1165 Remove troubleshooting section, as it's somewhat obsolete.
1166
1167 * bootstrap (no_cache): New var, to accommodate different wget
1168 variants. Use it instead of '-C off'. Problem reported by
1169 twlevo@xs4all.nl.
1170
1171 * data/glr.c (yydestroyStackItem): New function.
1172 (yyrecoverSyntaxError, yyreturn): Use it to improve quality of
1173 debugging information. Problem reported by Joel E. Denny.
1174
1175 2005-08-25 Akim Demaille <akim@epita.fr>
1176
1177 * tests/local.at (AT_COMPILE_CXX): Pass $LINKS too.
1178
1179 2005-08-24 Paul Eggert <eggert@cs.ucla.edu>
1180
1181 * data/glr.c (yyrecoverSyntaxError, yyreturn):
1182 Don't invoke destructor on unresolved entries.
1183 * tests/glr-regression.at
1184 (User destructor for unresolved GLR semantic value): New test case.
1185 Problem reported by Joel E. Denny in:
1186 http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00016.html
1187
1188 2005-08-21 Paul Eggert <eggert@cs.ucla.edu>
1189
1190 * lib/.cvsignore: Remove realloc.c, strncasecmp.c, xstrdup.c.
1191 Add strnlen.c.
1192 * m4/.cvsignore: Remove codeset.m4, gettext.m4, lib-ld.m4,
1193 lib-prefix.m4, po.m4.
1194
1195 * data/glr.c (yyreturn): Use "Cleanup:" rather than "Error:"
1196 in yydestruct diagnostic, since it might not be an error.
1197 Problem reported by Joel Denny near end of
1198 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
1199 * data/lalr1.cc (yyerturn): Likewise.
1200 * data/yacc.c (yyreturn): Likewise.
1201 * tests/calc.at (_AT_CHECK_CALC_ERROR): Adjust to the above change.
1202
1203 * src/files.c: Remove obsolete FIXME comment.
1204
1205 * data/glr.c (YY_SYMBOL_PRINT): Append a newline, for consistency
1206 with the other templates, and to fix bogus run-on messages such
1207 as the one reported at the end of
1208 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
1209 All callers changed to avoid the newline.
1210 (yyprocessOneStack): Output two lines rather than one, to accommodate
1211 the above change. This changes the debug output format slightly.
1212
1213 * data/glr.c (yyresolveValue): Fix redundant parse tree problem
1214 reported by Joel E. Denny in
1215 <http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00004.html>
1216 (trivial change).
1217 * tests/glr-regression.at (Duplicate representation of merged trees):
1218 New test, from Joel E. Denny in:
1219 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00013.html>.
1220 * THANKS: Add Joel E. Denny.
1221
1222 * configure.ac (AC_INIT): Bump to 2.0c.
1223
1224 2005-07-24 Paul Eggert <eggert@cs.ucla.edu>
1225
1226 * NEWS: Version 2.0b.
1227
1228 * Makefile.am (SUBDIRS): Put examples before tests, so that
1229 "make check" doesn't finish with "All 1 tests passed".
1230
1231 * tests/regression.at (Token definitions): Don't rely on
1232 AT_PARSER_CHECK for data that contains backslashes. It currently
1233 uses 'echo', and 'echo' isn't portable if its argument contains
1234 backslashes. Problem found on OpenBSD 3.4. Also, do not assume
1235 that the byte '\0xff' is not printable in the C locale; it is,
1236 under OpenBSD 3.4 (!). Luckily, '\0x80' through '\0x9e' are
1237 not printable, so use '\0x81' to test.
1238
1239 * data/glr.c (YYOPTIONAL_LOC): Define even if it's not a recent
1240 version of GCC, since the macro is used with non-GCC compilers.
1241
1242 Fix core dump reported by Pablo De Napoli in
1243 <http://lists.gnu.org/archive/html/bug-bison/2005-07/msg00053.html>.
1244 * tests/regression.at (Invalid inputs with {}): New test.
1245 * src/parse-gram.y (token_name): Translate type before using
1246 it as an index.
1247
1248 * data/glr.c (ATTRIBUTE_UNUSED): Remove, since it infringes on
1249 the user's name space. All uses changed to __attribute__
1250 ((__unused__)).
1251 (yyFail, yyMemoryExhausted, yyreportAmbiguity):
1252 Add __attribute__ ((__noreturn__)).
1253
1254 * etc/clcommit: Remove. We weren't using it, and it failed
1255 "make maintainer-distcheck".
1256 * Makefile.maint: Merge from coreutils.
1257 (CVS_LIST, CVS_LIST_EXCEPT): New macros.
1258 (syntax-check-rules): Change list of rules as described below.
1259 (sc_cast_of_alloca_return_value, sc_dd_max_sym_length):
1260 (sc_file_system, sc_obsolete_symbols, sc_prohibit_atoi_atof):
1261 (sc_prohibit_jm_in_m4, sc_root_tests, sc_tight_scope):
1262 (sc_trailing_space): New rules.
1263 (sc_xalloc_h_in_src): Remove.
1264 (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value):
1265 (sc_space_tab, sc_error_exit_success, sc_changelog):
1266 (sc_system_h_headers, sc_sun_os_names, sc_unmarked_diagnostics):
1267 (makefile-check, po-check, author_mark_check):
1268 (makefile_path_separator_check, copyright-check):
1269 Use grep -n, to make it easier to find violations.
1270 Use CVS_LIST and CVS_LIST_EXCEPT.
1271 (header_regexp, h_re): Remove.
1272 (dd_c): New macro.
1273 (sc_dd_max_sym_length, .re-list, news-date-check): New rules.
1274 (my-distcheck): Use more-modern GCC flags.
1275 (signatures, %.asc): Remove.
1276 (rel-files, announcement): Remove signatures.
1277 Restore old updating code, even though we don't use it, so
1278 that we're the same as coreutils.
1279 (alpha, beta, major): Depend on news-date-check.
1280 Make the upload commands.
1281
1282 * data/c.m4, data/lalr1.cc, data/yacc.c: Normalize white space.
1283 * lib/abitset.h, lib/bbitset.h, lib/bitset.h: Likewise.
1284 * lib/bitset_stats.c, lib/ebitset.h, lib/lbitset.c: Likewise.
1285 * lib/libitset.h, lib/timevar.c, lib/vbitset.h: Likewise.
1286 * src/Makefile.am, src/gram.c, src/muscle_tab.h: Likewise.
1287 * src/parse-gram.y, src/system.h, src/tables.c, src/vcg.c: Likewise.
1288 * src/vcg_defaults.h, tests/cxx-type.at, tests/existing.at: Likewise.
1289 * tests/sets.at: Likewise.
1290
1291 * data/m4sugar/m4sugar.m4: Sync from Autoconf, except that
1292 we comment out the Autoconf version number.
1293 * doc/bison.texinfo (Calc++ Scanner): Don't use atoi, as
1294 it's error-prone and "make maintainer-distcheck" rejects it.
1295
1296 * lib/subpipe.c: Include <fcntl.h> without checking for HAVE_FCNTL_H.
1297 Indent calls to "error" to pacify "make maintainer-distcheck",
1298 when the calls are not intended to be translated.
1299 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't check for fcntl.h.
1300
1301 * src/Makefile.am (DEFS): Use +=, to pacify
1302 "make maintainer-distcheck".
1303 (bison_SOURCES): Add scan-skel.h.
1304 (sc_tight_scope): New rule, from coreutils.
1305
1306 * src/files.c (src_extension, header_extension):
1307 Now static, not extern.
1308 * src/getargs.c (short_options): Likewise.
1309 * src/muscle_tab.c (muscle_table): Likewise.
1310 * src/parse-gram.y (current_class, current_type, current_prec):
1311 Likewise.
1312 * src/reader.c (grammar_end, previous_rule_end): Likewise.
1313 * src/getargs.h: Redo comments to pacify "make maintainer-distcheck".
1314 * src/main.c (main): Cast bindtextdomain and textdomain calls to
1315 void, to avoid warning when NLS is disabled.
1316 * src/output.c: Include scan-skel.h.
1317 (scan_skel): Remove decl, since scan-skel.h does this.
1318 (output_skeleton):
1319 Indent calls to "error" to pacify "make maintainer-distcheck".
1320 * src/print_graph.c: Don't include <obstack.h>, as system.h does this.
1321 * src/reader.h (gram_end, gram_lineno): New decls to pacify
1322 "make maintainer-distcheck".
1323 * src/scan-skel.l (skel_lex, skel_get_lineno, skel_get_in):
1324 (skel_get_out, skel_get_leng, skel_get_text, skel_set_lineno):
1325 (skel_set_in, skel_set_out, skel_get_debug, skel_set_debug):
1326 (skel_lex_destroy, scan_skel): Move these decls to...
1327 * src/scan-skel.h: New file.
1328 * src/uniqstr.c (uniqstr_assert):
1329 Indent calls to "error" to pacify "make maintainer-distcheck".
1330
1331 * tests/Makefile.am ($(srcdir)/package.m4): Use $(VAR),
1332 not @VAR@.
1333
1334 * tests/torture.at: Revamp to avoid misuse of atoi that
1335 "make maintainer-distcheck" complained about.
1336
1337 * examples/extexi (message): Don't print a message more than once,
1338 and omit line-number decoration that makes Emacs compile think
1339 that informative messages are worth worrying about.
1340
1341 2005-07-22 Paul Eggert <eggert@cs.ucla.edu>
1342
1343 * configure.ac: Update version number.
1344
1345 * Makefile.am (SUBDIRS): Add examples; somehow this got removed
1346 accidentally.
1347 * examples/calc++/calc++-parser.yy: Remove from CVS, as it's
1348 autogenerated by the maintainer.
1349 * examples/calc++/.cvsignore: Add *.yy.
1350
1351 * lib/bitset.c (bitset_alloc): Don't cast xcalloc result.
1352 * lib/bitset_stats.c (bitset_stats_init): Likewise.
1353 * lib/bitsetv.c (bitsetv_alloc): Likewise.
1354
1355 * po/POTFILES.in: Add lib/xalloc-die.c; remove lib/xmalloc.c.
1356
1357 * src/relation.c (relation_transpose): Rewrite to avoid bogus complaint
1358 from maintainer-distcheck about casting the argument of 'free'.
1359
1360 * NEWS: Mention recent yytname changes.
1361 * THANKS: Add Anthony Heading, twlevo@xs4all.nl.
1362
1363 * bootstrap: For translations that have not yet been upgraded to
1364 the new runtime-po domain, prime the pump by extracting the
1365 relevant strings from the obsolete translations. This code can be
1366 removed once the bison-runtime domain has been translated by each
1367 team.
1368
1369 * src/scan-gram.l (<SC_PRE_CODE>.): Don't double-quote token names,
1370 now that token names are already quoted.
1371
1372 Fix problem reported by Anthony Heading.
1373 * data/glr.c (YYTOKEN_TABLE): New macro.
1374 (yytname): Define if YYTOKEN_TABLE.
1375 * data/yacc.c (YYTOKEN_TABLE, yytname): Likewise.
1376 * data/lalr1.cc (YYTOKEN_TABLE, yytname_): Likewise.
1377 (YYERROR_VERBOSE): Define the same way the other skeletons do.
1378 * src/output.c (prepare_symbols): Output token_table_flag.
1379
1380 2005-07-21 Paul Eggert <eggert@cs.ucla.edu>
1381
1382 * data/glr.c (yyinitGLRStack, yyreturn): Don't call malloc
1383 again if the first call fails.
1384
1385 * data/glr.c (yytnamerr): New function.
1386 (yyreportSyntaxError): Use it to dequote most string literals.
1387 * data/lalr1.c (yytname_): Renamed from yyname_, for compatibility
1388 with other skeletons. All uses changed.
1389 (yytnameerr_): New function.
1390 (yyreport_syntax_error): Use it to dequote most string literals.
1391 * data/yacc.c (yytnamerr): New function.
1392 (yyerrlab): Use it to decode most string literals.
1393 * doc/bison.texinfo (Decl Summary, Calling Convention):
1394 Clarify quoting convention of yytname.
1395 * src/output.c (prepare_symbols): Quote all names. This undoes
1396 the 2005-04-17 change, which is now accomplished (mostly) via
1397 changes in the parsers as described above.
1398 * tests/regression.at (Token definitions, Web2c Actions):
1399 Undo most 2005-04-17 change here, too.
1400
1401 2005-07-20 Paul Eggert <eggert@cs.ucla.edu>
1402
1403 Fix more problems reported by twlevo@xs4all.nl.
1404 * tests/cxx-type.at: Don't pipe output of ./types through sed to
1405 remove trailing spaces. This loses the exit status of ./types,
1406 and isn't needed since ./types shouldn't be emitting trailing
1407 spaces.
1408 * data/glr.c (yyreturn): Don't pop stack if yyinitStateSet failed,
1409 as the stack isn't valid in that case.
1410
1411 * src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
1412 (gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
1413 (gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
1414 Add declarations to pacify "gcc -Wmissing-prototypes" when flex 2.5.31
1415 is used.
1416 * src/scan-skel.l (skel_get_lineno, skel_get_in, skel_get_out):
1417 (skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
1418 (skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
1419 Likewise.
1420
1421 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Work even with
1422 overly-picky compilers that reject 'char *foo = "bar";'.
1423
1424 * src/symtab.c (SYMBOL_ATTR_PRINT, symbol_print): Direct output
1425 to FILE * parameter, not to stderr. This fixes a typo introduced
1426 in the 2005-07-12 change.
1427
1428 * lib/subpipe.c (create_subpipe): Rewrite slightly to avoid
1429 warnings from GCC 4.
1430
1431 * data/glr.c (yyexpandGLRStack, yyaddDeferredAction, yyexpandGLRStack):
1432 (yyglrShiftDefer, yysplitStack):
1433 Remove unused parameters b4_pure_formals. All uses changed.
1434 (yyglrShift): Remove unused parameters b4_user_formals.
1435 All uses changed.
1436 (yyglrReduce): Removed unused parameter yylocp. All uses changed.
1437
1438 2005-07-18 Paul Eggert <eggert@cs.ucla.edu>
1439
1440 Destructor cleanups and regularization among the three skeletons.
1441 * NEWS: Document the behavior changes.
1442 * data/glr.c (yyrecoverSyntaxError): Don't bother to pop the
1443 stack before failing, as the cleanup code will do it for us now.
1444 * data/lalr1.cc (yyerrlab): Likewise.
1445 * data/glr.c (yyparse): Pop everything off the stack before
1446 freeing it, so that destructors get called properly.
1447 * data/lalr1.cc (yyreturn): Likewise.
1448 * data/yacc.c (yyreturn): Pop and destroy the start symbol, too.
1449 This is more consistent.
1450 * doc/bison.texinfo (Destructor Decl): Mention more reasons
1451 why destructors might be called. 1.875 -> 2.1.
1452 (Destructor Decl, Decl Summary, Table of Symbols):
1453 Some English-language cleanups for %destructor.
1454 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
1455 Add output line for destructor of start symbol.
1456 * tests/calc.at (AT_CHECK_CALC): Add one to line counts,
1457 because of that same extra output line.
1458
1459 * NEWS: Document minor wording changes in diagnostics of
1460 Bison-generated parsers.
1461 * data/glr.c (yyMemoryExhausted): Renamed from yyStackOverflow.
1462 Remove unused formals. All uses changed.
1463 (yyreportAmbiguity): "ambiguity detected" -> "syntax is ambiguous".
1464 (yyparse): Rename yyoverflowlab to yyexhaustedlab.
1465 * data/yacc.c (yyparse): "parser stack overflow" -> "memory exhausted".
1466 Rename yyoverflowab to yyexhaustedlab.
1467 When memory exhaustion occurs during syntax-error reporting,
1468 report it separately rather than in a single diagnostic; this
1469 eases translation.
1470 * doc/bison.texinfo (Memory Management): Renamed from Stack Overflow.
1471 (Memory Exhausted): Renamed from Parser Stack Overflow.
1472 Revamp wording slightly to prefer "memory exhaustion".
1473 * tests/actions.at: "parser stack overflow" -> "memory exhausted".
1474
1475 * data/c.m4 (b4_yysymprint_generate): Use YYFPRINTF, not fprintf.
1476
1477 Add i18n support to the GLR skeleton. Partially fix the C++
1478 skeleton; a C++ expert needs to finish this. Remove debugging
1479 msgids; there's little point to having them translated, since they
1480 can be understood only by someone who can read the
1481 (English-language) source code.
1482
1483 Generate runtime-po/bison-runtime.pot automatically, so that we
1484 don't have to worry about garbage getting in that file. We'll
1485 make sure after the next official release that old msgids don't
1486 get lost. See
1487 <http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>.
1488
1489 * runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove.
1490 Now auto-generated.
1491 * PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet.
1492 Fix typos in explanations of the runtime file.
1493 * bootstrap: Change gettext keyword from YYI18N to YY_.
1494 Use standard Makefile.in.in in runtime-po, since we'll arrange
1495 for backward-compatible bison-runtime.po files in a different way.
1496 * data/glr.c (YY_): New macro, from yacc.c.
1497 (yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse):
1498 Translate messages intended for users.
1499 (yyreportSyntaxError): Change "virtual memory" to "memory" to match
1500 the wording in the other skeletons. We don't know that the memory
1501 is virtual.
1502 * data/lalr1.cc (YY_): Renamed from _. All uses changed.
1503 Use same method that yacc.c uses.
1504 Don't translate debugging messages.
1505 (yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff;
1506 it doesn't work (yet), and requires C++ expertise to fix.
1507 * data/yacc.c (YY_): Renamed from YY18N. All uses changed.
1508 Move defn to a more logical place, to be consistent with other
1509 skeletons.
1510 Don't translate debugging messages.
1511 Don't assume line numbers fit in unsigned int; use unsigned long fmts.
1512 * doc/bison.texinfo: Mention <libintl.h>. Change glibc cross reference
1513 to gettext cross reference. Add indexing terms. Mention YYENABLE_NLS.
1514 * runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
1515
1516 Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
1517 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
1518 void, not int.
1519 * tests/glr-regression.at (Badly Collapsed GLR States):
1520 Likewise.
1521 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
1522 yylex should return 0 at EOF rather than aborting.
1523
1524 Improve tests for stack overflow in GLR parser.
1525 Problem reported by twlevo@xs4all.nl.
1526 * data/glr.c (struct yyGLRStack): Remove yyerrflag member.
1527 All uses removed.
1528 (yyStackOverflow): Just longjmp, but with value 2 so that caller
1529 can handle the problem.
1530 (YYCHK1): Use goto (a la yacc.c) rather than setting a flag.
1531 (yyparse): New local variable yyresult to record the result.
1532 Use result of setjmp to set it, rather than storing itinto
1533 struct.
1534 (yyDone): Remove label.
1535 (yyacceptlab, yyabortlab, yyoverflowlab, yyreturn): New labels,
1536 to mimic yacc.c. Do not discard lookahead if it's EOF (possible
1537 if YYABORT is used).
1538 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Exit with
1539 yyparse status; put status > 1 into diagnostic.
1540 Check that status==2 works.
1541 * tests/calc.at, tests/cxx-type.at, tests/glr-regression.at:
1542 Use exit status 3 for failure to open (which shouldn't happen).
1543
1544 2005-07-17 Paul Eggert <eggert@cs.ucla.edu>
1545
1546 * tests/conflicts.at (%nonassoc and eof): Don't exit with status
1547 1 on syntax error; just let yyparse do its thing.
1548 * tests/glr-regression.at (Badly Collapsed GLR States): Likewise.
1549 * tests/torture.at (AT_DATA_STACK_TORTURE): Likewise.
1550 (Exploding the Stack Size with Alloca):
1551 (Exploding the Stack Size with Malloc):
1552 Expect exit status 2, not 1, since the parser is supposed to blow
1553 its stack. Problem reported by twlevo@xs4all.nl.
1554
1555 * data/glr.c (yyparse): Don't assume that the initial calls
1556 to YYMALLOC succeed; in that case, yyparse incorrectly returned 0.
1557 Print a stack-overflow message and fail instead.
1558 Initialize the line-number information before creating the stack,
1559 so that the stack-overflow message can report line zero safely.
1560
1561 2005-07-14 Paul Eggert <eggert@cs.ucla.edu>
1562
1563 Fix problems reported by twlevo@xs4all.nl.
1564 * data/glr.c (YYSTACKEXPANDABLE): Don't define if already defined.
1565 (yyuserMerge): Provide a default case if b4_mergers is empty.
1566 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Define YYSTACKEXPANDABLE.
1567 * tests/glr-regression.at
1568 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
1569 Add casts to pacify C++ compilers.
1570 * tests/glr-regression.at (Improper merging of GLR delayed action
1571 sets): Declare yylex before using it.
1572 * tests/Makefile.am (maintainer-check-g++): Fix a stray
1573 $(GXX) that escaped the renaming of GXX to CXX. Remove bogus
1574 test for valgrind; valgrind is independent of g++.
1575 (maintainer-check-posix): Add _POSIX2_VERSION=200112, to check
1576 for compatibility with POSIX 1003.1-2001 (if running coreutils).
1577 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Port to stricter C++.
1578 Use a destructor, so that we can expand the stack. Change
1579 YYSTYPE to char * so that we can free it. Cast result of malloc.
1580
1581 2005-07-13 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1582
1583 * data/glr.c (yyuserAction): Fix uninitialized variable that caused
1584 a valgrind failure. Problem reported by twlevo@xs4all.nl.
1585
1586 2005-07-13 Paul Eggert <eggert@cs.ucla.edu>
1587
1588 * PACKAGING: New file, suggested by Bruno Haible and taken from
1589 similar wording in gettext's PACKAGING file.
1590 * NEWS: Mention PACKAGING.
1591 * Makefile.am (EXTRA_DIST): Add PACKAGING.
1592
1593 2005-07-12 Paul Eggert <eggert@cs.ucla.edu>
1594
1595 * NEWS: Document recent i18n improvements.
1596 * bootstrap: Get runtime translations into runtime-po.
1597 Create runtime-po files automatically, if possible.
1598 * configure.ac: Invoke BISON_I18N, so that we eat our own dog food.
1599 * data/yacc.c: Rewrite inclusion of <libintl.h> so that ENABLE_NLS
1600 does not infringe on the user's name space.
1601 (YYENABLE_NLS): Renamed from ENABLE_BISON_NLS.
1602 * doc/bison.texinfo (Internationalization): Revamp the English
1603 and Texinfo syntax a bit, to try to make it clearer.
1604 (Bison Options, Option Cross Key): Mention --print-localedir.
1605 * m4/bison-i18n.m4 (BISON_I18N): Rename ENABLE_BISON_NLS to
1606 YYENABLE_NLS. Quote a bit more.
1607 * runtime-po/.cvsignore: New file.
1608 * runtime-po/Makefile.in.in (mostlyclean): Remove *.old.pot.
1609 * runtime-po/Rules-quot: Remove; now created by bootstrap.
1610 * runtime-po/quot.sed: Likewise.
1611 * runtime-po/boldquot.sed: Likewise.
1612 * runtime-po/en@quot.header: Likewise.
1613 * runtime-po/en@boldquot.header: Likewise.
1614 * runtime-po/insert-header.sin: Likewise.
1615 * runtime-po/remove-potcdate.sin: Likewise.
1616 * runtime-po/Makevars: Likewise.
1617 * runtime-po/LINGUAS: Likewise.
1618 * runtime-po/de.po: Likewise; we will rely on the translation project
1619 to maintain this, so "bootstrap" should get it.
1620 * src/getarg.c (PRINT_LOCALEDIR_OPTION): Let the C compiler determine
1621 its value.
1622 * src/main.c (main): Bind the bison-runtime domain, too.
1623
1624 2005-07-12 Bruno Haible <bruno@clisp.org>
1625
1626 * data/yacc.c: Include <libintl.h> when NLS is enabled.
1627 (YYI18N): Renamed from _. Use dgettext when NLS is enabled.
1628 * po/POTFILES.in: Remove autogenerated file src/parse-gram.c.
1629 * runtime-po: New directory.
1630 * runtime-po/Makefile.in.in: New file, copied from po/, with modified
1631 $(DOMAIN).pot-update rule, so that old messages are never dropped.
1632 * runtime-po/Rules-quot: New file, copied from po/.
1633 * runtime-po/quot.sed: Likewise.
1634 * runtime-po/boldquot.sed: Likewise.
1635 * runtime-po/en@quot.header: Likewise.
1636 * runtime-po/en@boldquot.header: Likewise.
1637 * runtime-po/insert-header.sin: Likewise.
1638 * runtime-po/remove-potcdate.sin: Likewise.
1639 * runtime-po/Makevars: New file.
1640 * runtime-po/POTFILES.in: New file.
1641 * runtime-po/LINGUAS: New file.
1642 * runtime-po/bison-runtime.pot: New file.
1643 * runtime-po/de.po: New file.
1644 * m4/bison.m4: New file.
1645 * Makefile.am (SUBDIRS): Add runtime-po.
1646 (aclocaldir, aclocal_DATA): New variables.
1647 * configure.ac: Add AC_CONFIG_FILES of runtime-po/Makefile.in.
1648 Define aclocaldir.
1649 * src/getargs.c (usage): Document --print-localedir option.
1650 (PRINT_LOCALEDIR_OPTION): New enum item.
1651 (long_options): Add --print-localedir option.
1652 (getargs): Handle --print-localedir option.
1653 * doc/bison.texinfo (Bison Parser): Remove paragraph about _().
1654 (Internationalization): New section.
1655
1656 2005-07-12 Akim Demaille <akim@epita.fr>
1657
1658 * src/symtab.h, src/symtab.c (symbol_print): Swap the arguments,
1659 for consistency with the rest of the code.
1660 * src/symlist.h, src/symlist.c (symbol_list_print): Ditto.
1661 Add separators.
1662
1663 2005-07-12 Akim Demaille <akim@epita.fr>
1664
1665 * src/parse-gram.y: Use %printer instead of YYPRINT.
1666
1667 2005-07-12 Akim Demaille <akim@epita.fr>
1668
1669 * src/symtab.h, src/symtab.c (symbol_print): New.
1670 * src/symlist.h, src/symlist.c (symbol_list_print): New.
1671 * src/symlist.c (symbol_list_n_type_name_get): Report the culprit.
1672
1673 2005-07-12 Akim Demaille <akim@epita.fr>
1674
1675 * data/glr.c (b4_syncline): Fix (swap) the definitions of
1676 b4_at_dollar and b4_dollar_dollar.
1677
1678 2005-07-11 Paul Eggert <eggert@cs.ucla.edu>
1679
1680 * doc/bison.texinfo (Mystery Conflicts): Add reference to DeRemer
1681 and Pennello's paper.
1682
1683 2005-07-09 Paul Eggert <eggert@cs.ucla.edu>
1684
1685 * data/yacc.c (yyparse): Undo previous patch. Instead,
1686 set yylsp[0] and yyvsp[0] only if the initial action
1687 sets yylloc and yylval, respectively.
1688
1689 * data/yacc.c (yyparse): In the initial action, set
1690 yylsp[0] and yyvsp[0] rather than yylloc and yylval.
1691 This avoids the use of undefined variables if the initial
1692 action does not set yylloc and/or yylval.
1693
1694 2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
1695
1696 * examples/calc++/calc++-driver.cc, examples/calc++/calc++-driver.hh:
1697 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc:
1698 Remove from CVS. These files are automatically generated.
1699 * examples/extexi: Clarify that this file is now part of Bison,
1700 not GNU M4, and that it works with any POSIX-compatible Awk.
1701 * examples/calc++/Makefile.am (run_extexi): Remove; not used.
1702 ($(calc_extracted)): Renamed from $(calc_sources_extracted),
1703 so that we also get calc++-parser.yy. Geneate it.
1704 Use $(AWK), not gawk, since any conforming Awk will do.
1705 Put comment before action, since older 'make' can't handle comment
1706 in action.
1707 $(BUILT_SOURCES): List all built sources, not just some of them.
1708 $(MAINTAINERCLEANFILES): Remove *.stamp, and all built sources.
1709 $($(srcdir)/calc++-parser.stamp): Work even if POSIXLY_CORRECT.
1710 $($(calc_sources_generated)): Remove unnecessary test for existence
1711 of target. (This had a shell syntax error anyway; a stray "x".)
1712 (calc_extracted): List $(srcdir)/calc++-parser.yy, not
1713 calc++-parser.yy.
1714 * examples/.cvsignore, examples/calc++/.cvsignore: New files.
1715
1716 * bootstrap (gnulib_modules): Add gettext, now that it's no longer
1717 implied by the other modules.
1718
1719 2005-07-06 Akim Demaille <akim@epita.fr>
1720
1721 Bind examples/calc++ to the package.
1722 * examples/calc++/Makefile: Remove, replaced by...
1723 * examples/calc++/Makefile.am: ... this new file.
1724 * examples/calc++/test: Remove input.
1725 * examples/calc++/compile: Remove.
1726 * examples/Makefile.am: New.
1727 * configure.ac, Makefile.am: Adjust.
1728 * doc/Makefile.am (clean-local): New, for more recent texi2dvis.
1729
1730 2005-07-05 Paul Eggert <eggert@cs.ucla.edu>
1731
1732 * data/glr.c (yyFail): Drastically simplify; since the format argument
1733 never had any % directives, we can simply pass it to yyerror.
1734 (yyparse): Use "t a; a=b;" rather than "t a = b;" when a will
1735 be modified later, as that is the usual style in glr.c.
1736 Problems reported by Paul Hilfinger.
1737
1738 Rewrite GLR parser to catch more buffer overrun, storage exhaustion,
1739 and size overflow errors.
1740 * data/glr.c: Include <stdio.h> etc. after user prolog, not before,
1741 in case the user prolog sets feature-test macros like _GNU_SOURCE.
1742 (YYSIZEMAX): New macro.
1743 (yystpcpy): New function, taken from yacc.c.
1744 (struct yyGLRStack.yyspaceLeft): Now size_t, not int.
1745 (yyinitGLRStack, yyfreeGLRstack): Remove unnecessary forward decls,
1746 so that we don't have to maintain their signatures.
1747 (yyFail): Check for buffer overflow, by using vsnprintf rather
1748 than vsprintf. Allocate a bigger buffer if possible.
1749 Report an error if buffer allocation fails.
1750 (yyStackOverflow): New function.
1751 (yyinitStateSet, yyinitGLRStack): Return a boolean indicating whether
1752 the initialization was successful. It might fail if storage was
1753 exhausted.
1754 (yyexpandGLRStack): Add more checks for storage allocation failure.
1755 Use yyStackOverflow to report failures.
1756 (yymarkStackDeleted, yyglrShift, yyglrShiftDefer, yydoAction):
1757 (yysplitStack, yyprocessOneStack, yyparse, yypstack):
1758 Don't assume stack number fits in int.
1759 (yysplitStack): Check for storage allocation failure.
1760 (yysplitStack, yyprocessOneStack): Add pure_formals, so that we
1761 can print diagnostics on storage allocation failure. All callers
1762 changed.
1763 (yyresolveValue): Use yybool for boolean.
1764 (yyreportSyntaxError): Check for size-calculation overflow.
1765 This code is taken from yacc.c.
1766 (yyparse): Check for storage allocation errors when allocating
1767 the initial stack.
1768
1769 2005-07-05 Akim Demaille <akim@epita.fr>
1770
1771 Extract calc++ from the documentation.
1772 * doc/bison.texinfo (Calc++): Add the extraction marks.
1773 * examples/extexi: New, from the aborted GNU Programming 2E.
1774 Separate the different paragraph of a file with empty lines.
1775 * examples/Makefile: Use it to extract the whole calc++ example.
1776
1777 2005-06-24 Akim Demaille <akim@epita.fr>
1778
1779 * doc/bison.texinfo (C++ Parser Interface): Use defcv to define
1780 class typedefs.
1781
1782 2005-06-22 Akim Demaille <akim@epita.fr>
1783
1784 * doc/bison.texinfo (C++ Language Interface): First stab.
1785 (C++ Parsers): Remove.
1786
1787 2005-06-22 Akim Demaille <akim@epita.fr>
1788
1789 * data/lalr1.cc (yylex_): Honor %lex-param.
1790
1791 2005-06-22 Akim Demaille <akim@epita.fr>
1792
1793 Start a set of simple examples.
1794 * examples/calc++/Makefile, examples/calc++/calc++-driver.cc,
1795 * examples/calc++/calc++-driver.hh,
1796 * examples/calc++/calc++-parser.yy,
1797 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc,
1798 * examples/calc++/compile, examples/calc++/test: New.
1799
1800 2005-06-09 Paul Eggert <eggert@cs.ucla.edu>
1801
1802 * data/yacc.c (malloc, free) [defined __cplusplus]: Wrap inside
1803 extern "C" {}. This fixes a problem reported by Paul Hilfinger,
1804 which stems from the 2005-05-27 patch.
1805
1806 2005-06-06 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1807
1808 * data/glr.c: Modify treatment of unused parameters to permit use
1809 of g++ (which doesn't allow __attribute__ ((unused)) for parameters).
1810
1811 2005-05-30 Paul Eggert <eggert@cs.ucla.edu>
1812
1813 Fix infringement on user name space reported by Janos Zoltan Szabo.
1814 * data/yacc.c (yyparse): strlen -> yystrlen.
1815
1816 2005-05-30 Akim Demaille <akim@epita.fr>
1817
1818 * data/lalr1.cc (_): New.
1819 Translate the various messages.
1820
1821 2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
1822
1823 Fix infringement on user name space reported by Bruno Haible.
1824 * data/yacc.c (YYSIZE_T): Define first, so that later decls can use it.
1825 Prefer GCC's __SIZE_TYPE__ if available, so that we don't infringe on
1826 the user's name space.
1827 (alloca): Include <stdlib.h> to get it, if it's not built in.
1828 (YYMALLOC, YYFREE): Define only if needed.
1829 (malloc, free): Declare, but only if needed, as this infringes on
1830 the user name space.
1831
1832 2005-05-25 Paul Eggert <eggert@cs.ucla.edu>
1833
1834 Fix BeOS, FreeBSD, MacOS porting problems reported by Bruno Haible.
1835 * lib/bitset.c (bitset_print): Don't assume size_t can be printed
1836 with %d format.
1837 * lib/ebitset.c (min, max): Undef before defining.
1838 * lib/vbitset.c (min, max): Likewise.
1839 * lib/subpipe.c (create_subpipe): Save local variables in case
1840 vfork clobbers them.
1841
1842 2005-05-24 Bruno Haible <bruno@clisp.org>
1843
1844 * tests/synclines.at (AT_SYNCLINES_COMPILE): Add support for the
1845 error message syntax used by gcc-4.0.
1846
1847 2005-05-23 Paul Eggert <eggert@cs.ucla.edu>
1848
1849 * README: Mention m4 1.4.3. Remove obsolete advice about
1850 Sun Forte Developer 6 update 2, VMS, and MS-DOS.
1851
1852 * bootstrap: Remove workaround for problem I encountered with
1853 gettext 0.14.1; it seems to be fixed now.
1854
1855 2005-05-22 Paul Eggert <eggert@cs.ucla.edu>
1856
1857 * NEWS: Version 2.0a.
1858
1859 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
1860 the previous change.
1861
1862 Various maintainer cleanups.
1863 * .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*,
1864 conftest*, for benefit of CVS commands run at the same time as
1865 "configure". Add build-aux, since "bootstrap" now creates it and
1866 its subfiles.
1867 * Makefile.cfg (move_if_change): Remove.
1868 * Makefile.maint: Remove the update stuff; we now use "bootstrap".
1869 (ftp-gnu, www-gnu, move_if_change, local_updates, update):
1870 (po_repo, do-po-update, po-update, wget_files, get-targets):
1871 (config.guess-url_prefix, config.sub-url_prefix):
1872 (ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
1873 (standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url):
1874 ($(get-targets), cvs-files, automake_repo, wget-update, cvs-update):
1875 Remove.
1876 * configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux;
1877 this is now the recommended name.
1878 * config/.cvsignore: Remove config.guess, config.rpath, config.sub,
1879 depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex,
1880 ylwrap. These files now go into build-aux.
1881 * config/move-if-change: Remove.
1882 * config/prev-version.txt: Bump from 1.75 to 2.0.
1883
1884 * bootstrap: Add stdio-safer, unistd-safer modules.
1885 Remove m4/glibc2.m4 (introduced by latest gnulib, but
1886 we don't need it).
1887 * lib/.cvsignore: Add dup-safer.c, fd-safer.c,
1888 fopen-safer.c, stdio-safer.h, unistd-safer.h.
1889 * lib/subpipe.c: Include "unistd-safer.h".
1890 (create_subpipe): Make sure all the newly-created
1891 file descriptors are > 2, so that diagnostics don't
1892 get sent down them (which might cause Bison to hang, in theory).
1893 * m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
1894 * src/files.c (xfopen): Use fopen_safer, not fopen.
1895
1896 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
1897 yesterday's yacc.c fix.
1898
1899 2005-05-21 Paul Eggert <eggert@cs.ucla.edu>
1900
1901 * data/glr.c, data/lalr1.cc: Update copyright date.
1902
1903 Fix a destructor bug reported by Wolfgang Spraul in
1904 <http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
1905 * data/yacc.c (yyabortlab): Don't call destructor, and
1906 don't set yychar to EMPTY.
1907 (yyoverflowlab): Don't call destructor.
1908 (yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
1909 * tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
1910 since we no longer output the message "discarding lookahead token
1911 end of input ()".
1912
1913 2005-05-20 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1914
1915 * data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
1916 fix a small glitch in debugging output.
1917 (yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
1918 after YY_SYMBOL_PRINT where needed.
1919
1920 (struct yyGLRState): Add some comments.
1921 (struct yySemanticOption): Add some comments.
1922 (union yyGLRStackItem): Add comment.
1923
1924 (yymergeOptionSets): Correct this to properly perform the union,
1925 avoiding infinite reported by Michael Rosien.
1926 Update comment.
1927
1928 * tests/glr-regression.at: Add test for GLR merging error reported
1929 by M. Rosien.
1930
1931 2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
1932
1933 * COPYING, ChangeLog, GNUmakefile, HACKING, Makefile.am,
1934 Makefile.cfg, Makefile.maint, NEWS, README, README-alpha,
1935 README-cvs, TODO, bootstrap, configure.ac, data/Makefile.am,
1936 data/README, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c,
1937 data/m4sugar/m4sugar.m4, doc/Makefile.am, doc/bison.texinfo,
1938 doc/fdl.texi, doc/gpl.texi, doc/refcard.tex, lib/Makefile.am,
1939 lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
1940 lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h,
1941 lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c,
1942 lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c,
1943 lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h,
1944 lib/main.c, lib/subpipe.c, lib/subpipe.h, lib/timevar.c,
1945 lib/timevar.def, lib/timevar.h, lib/vbitset.c, lib/vbitset.h,
1946 lib/yyerror.c, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4, m4/timevar.m4,
1947 m4/warning.m4, src/LR0.c, src/LR0.h, src/Makefile.am, src/assoc.c,
1948 src/assoc.h, src/closure.c, src/closure.h, src/complain.c,
1949 src/complain.h, src/conflicts.c, src/conflicts.h, src/derives.c,
1950 src/derives.h, src/files.c, src/files.h, src/getargs.c,
1951 src/getargs.h, src/gram.c, src/gram.h, src/lalr.c, src/lalr.h,
1952 src/location.c, src/location.h, src/main.c, src/muscle_tab.c,
1953 src/muscle_tab.h, src/nullable.c, src/nullable.h, src/output.c,
1954 src/output.h, src/parse-gram.c, src/parse-gram.h,
1955 src/parse-gram.y, src/print.c, src/print.h, src/print_graph.c,
1956 src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c,
1957 src/reduce.h, src/relation.c, src/relation.h, src/scan-gram.l,
1958 src/scan-skel.l, src/state.c, src/state.h, src/symlist.c,
1959 src/symlist.h, src/symtab.c, src/symtab.h, src/system.h,
1960 src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h,
1961 src/vcg.c, src/vcg.h, src/vcg_defaults.h, tests/Makefile.am,
1962 tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
1963 tests/cxx-type.at, tests/existing.at, tests/glr-regression.at,
1964 tests/headers.at, tests/input.at, tests/local.at, tests/output.at,
1965 tests/reduce.at, tests/regression.at, tests/sets.at,
1966 tests/synclines.at, tests/testsuite.at, tests/torture.at:
1967 Update FSF postal mail address.
1968
1969 2005-05-11 Paul Eggert <eggert@cs.ucla.edu>
1970
1971 * tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
1972 Problem reported by Ralf Menzel.
1973
1974 2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
1975
1976 * tests/actions.at: Test that stack overflow invokes destructors.
1977 From Marcus Holland-Moritz.
1978 * data/yacc.c (yyerrlab): Move the code that destroys the stack
1979 from here....
1980 (yyreturn): to here. That way, destructors are called properly
1981 even if the stack overflows, or the user calls YYACCEPT or
1982 YYABORT. Stack-overflow problem reported by Marcus Holland-Moritz.
1983 (yyoverflowlab): Destroy the lookahead.
1984
1985 2005-04-24 Paul Eggert <eggert@cs.ucla.edu>
1986
1987 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
1988
1989 2005-04-17 Paul Eggert <eggert@cs.ucla.edu>
1990
1991 * NEWS: Bison-generated C parsers no longer quote literal strings
1992 associated with tokens.
1993 * src/output.c (prepare_symbols): Don't escape strings,
1994 since users don't want to see C escapes.
1995 * tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
1996 in diagnostics.
1997 * tests/input.at (Torturing the Scanner): Likewise.
1998 * tests/regression.at (Token definitions, Web2c Actions): Likewise.
1999
2000 2005-04-16 Paul Eggert <eggert@cs.ucla.edu>
2001
2002 * tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
2003 the data size is known to be too small and we can't increase it.
2004 This works around an HP-UX 11.00 glitch reported by Andrew Benham.
2005
2006 2005-04-15 Paul Eggert <eggert@cs.ucla.edu>
2007
2008 * src/parse-gram.y: Include quotearg.h.
2009 (string_as_id): Quote $1 before using it as a key, since the
2010 lexer no longer quotes it for us.
2011 (string_content): Don't strip quotes, since lexer no longer
2012 quotes it for us.
2013 * src/scan-gram.l: Include quotearg.h.
2014 ("\""): Omit quote.
2015 ("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
2016 a key, since the rest of the lexer doesn't quote it.
2017 * src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
2018 * tests/regression.at (Token definitions): Check for backslashes
2019 in token strings.
2020
2021 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): New macro.
2022 (YYSIZE_T): Define to unsigned long int when using an older compiler.
2023 (yyparse): Revamp code to generate long syntax error message, to
2024 make it easier to translate, and to avoid problems with arithmetic
2025 overflow. Change "virtual memory" to "memory" in diagnostic, since
2026 we don't know whether the memory is virtual.
2027
2028 2005-04-13 Paul Eggert <eggert@cs.ucla.edu>
2029
2030 * NEWS: Bison-generated C parsers now use the _ macro to
2031 translate strings.
2032 * data/yacc.c (_) [!defined _]: New macro.
2033 All English strings wrapped inside this macro.
2034 * doc/bison.texinfo (Bison Parser): Document _.
2035 * po/POTFILES.in: Include src/parse-gram.c, since it now
2036 includes translateable strings that parse-gram.y doesn't.
2037
2038 2005-04-12 Paul Eggert <eggert@cs.ucla.edu>
2039
2040 * src/symtab.c (symbol_make_alias): Call symbol_type_set,
2041 reverting the 2004-10-11 change to this function.
2042 (symbol_check_alias_consistency): Don't call symbol_type_set
2043 if the type name is already correct.
2044 * tests/input.at (Typed symbol aliases): New test, from Tim Van Holder.
2045
2046 2005-03-25 Paul Eggert <eggert@cs.ucla.edu>
2047
2048 * tests/regression.at (Token definitions): Don't use a token named
2049 c, as that generates a "#define c ..." that runs afoul of buggy
2050 stdlib.h that uses the identifier c as a member of struct
2051 drand48_data. Problem reported by Horst Wente.
2052
2053 2005-03-21 Paul Eggert <eggert@cs.ucla.edu>
2054
2055 * bootstrap: Change translation URL from
2056 http://www2.iro.umontreal.ca/~gnutra/po/maint/bison/ to
2057 http://www.iro.umontreal.ca/translation/maint/bison/ to avoid
2058 redirection glitches. Problem reported by twlevo@xs4all.nl.
2059
2060 2005-03-20 Paul Eggert <eggert@cs.ucla.edu>
2061
2062 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
2063 after operands; POSIX says this isn't portable for the c99 command.
2064
2065 2005-03-18 Paul Eggert <eggert@cs.ucla.edu>
2066
2067 * tests/glr-regression.at (glr-regr2a.y): Try to dump core
2068 immediately if a data overrun has occurred; this may help us track
2069 down what may be a spurious failure on MacOS.
2070
2071 2005-03-17 Paul Eggert <eggert@cs.ucla.edu>
2072
2073 Respond to problems reported by twlevo@xs4all.nl.
2074
2075 * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
2076
2077 * src/vcg.h: Comment fix.
2078 * src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
2079 (G_CMAX): Change to -1 instead of INT_MAX.
2080
2081 * data/yacc.c (yyparse): Omit spaces before #line.
2082
2083 2005-03-15 Paul Eggert <eggert@cs.ucla.edu>
2084
2085 * src/tables.c (state_number_to_vector_number): Put it inside an
2086 "#if 0", since it's not currently used. Problem reported by
2087 Roland McGrath.
2088
2089 2005-03-06 Paul Eggert <eggert@cs.ucla.edu>
2090
2091 * src/output.c (escaped_output): Renamed from
2092 escaped_file_name_output, since we now use it for symbol tags as
2093 well. All uses changed.
2094 (symbol_destructors_output, symbol_printers_output):
2095 Escape symbol tags too.
2096 Problem reported by Matyas Forstner in
2097 <http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.
2098
2099 * src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
2100 not needed.
2101 * src/output.c (user_actions_output, token_definitions_output,
2102 symbol_destructors_output, symbol_printers_output): Likewise.
2103 * src/reader.c (prologue_augment): Likewise.
2104 * src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
2105
2106 * src/vcg.c (output_edge): Don't quote linestyle arg.
2107 Problem reported by twlevo@xs4all.nl.
2108
2109 2005-02-28 Paul Eggert <eggert@cs.ucla.edu>
2110
2111 * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
2112 example, reported by Derek M Jones. Also, make the example even
2113 more outrageous, to better illustrate how bad the problem is.
2114
2115 2005-02-24 Paul Eggert <eggert@cs.ucla.edu>
2116
2117 * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
2118 putsym. Typo reported by Sebastian Piping.
2119
2120 2005-02-23 Paul Eggert <eggert@cs.ucla.edu>
2121
2122 * doc/bison.texinfo (Language and Grammar): some -> same
2123 (Epilogue): int he -> in the
2124 Typos reported by Sebastian Piping via Justin Pence.
2125
2126 2005-02-07 Paul Eggert <eggert@cs.ucla.edu>
2127
2128 * tests/glr-regression.at (Improper handling of embedded actions
2129 and dollar(-N) in GLR parsers): Renamed from "Improper handling of
2130 embedded actions and $-N in GLR parsers", work around an Autoconf bug
2131 with dollar signs in test names.
2132 * tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
2133 for a similar reason.
2134
2135 2005-01-28 Paul Eggert <eggert@cs.ucla.edu>
2136
2137 * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
2138 wants to redefine G_VIEW.
2139
2140 2005-01-27 Paul Eggert <eggert@cs.ucla.edu>
2141
2142 * src/vcg.c (get_view_str): Remove case for normal_view.
2143 Problem reported by twlevo@xs4all.nl.
2144
2145 2005-01-24 Paul Eggert <eggert@cs.ucla.edu>
2146
2147 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
2148 Problem reported by twlevo@xs4all.nl.
2149
2150 * doc/bison.texinfo: Change @dircategory from "GNU programming
2151 tools" to "Software development". Requested by Richard Stallman
2152 via Karl Berry.
2153
2154 2005-01-23 Paul Eggert <eggert@cs.ucla.edu>
2155
2156 * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
2157 Problem reported by twlevo@xs4all.nl.
2158
2159 2005-01-21 Paul Eggert <eggert@cs.ucla.edu>
2160
2161 * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
2162 keyword; it's not needed with modern compilers, and it doesn't
2163 affect correctness with older compilers. Suggested by
2164 twlevo@xs4all.nl.
2165
2166 2005-01-17 Paul Eggert <eggert@cs.ucla.edu>
2167
2168 * data/glr.c (yyuserAction): Add "default: break;" case to pacify
2169 gcc -Wswitch-default.
2170 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
2171 * data/yacc.c (yyparse): Likewise.
2172
2173 2005-01-12 Paul Eggert <eggert@cs.ucla.edu>
2174
2175 * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
2176 already. Let config.h define any nonstandard values.
2177
2178 2005-01-10 Paul Eggert <eggert@cs.ucla.edu>
2179
2180 * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
2181 for the benefit of slower hosts. Problem reported by
2182 Nelson H. F. Beebe.
2183
2184 2005-01-07 Paul Eggert <eggert@cs.ucla.edu>
2185
2186 * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
2187 being defined and not used.
2188 * data/lalr1.cc (yyparse): Likewise.
2189 Use "if (false)" rather than "if (0)".
2190
2191 2005-01-05 Paul Eggert <eggert@cs.ucla.edu>
2192
2193 * TODO: Mention that we should allow NUL bytes in tokens.
2194
2195 2005-01-02 Paul Eggert <eggert@cs.ucla.edu>
2196
2197 * src/scan-skel.l (<<EOF>>): Don't close standard output.
2198 Problem reported by Hans Aberg.
2199
2200 2005-01-01 Paul Eggert <eggert@cs.ucla.edu>
2201
2202 * src/getargs.c (version): Happy new year; update overall
2203 program copyright date from 2004 to 2005.
2204
2205 * src/scan-skel.l ("@output ".*\n): Don't close standard output.
2206 Problem reported by Hans Aberg.
2207 * tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
2208 (Output file names.): Add a test for the case when standard output
2209 is closed.
2210
2211 2004-12-26 Paul Eggert <eggert@cs.ucla.edu>
2212
2213 * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
2214 to fix an oversight in the Bison 2.0 manual.
2215
2216 2004-12-25 Paul Eggert <eggert@cs.ucla.edu>
2217
2218 * NEWS: Version 2.0. Reformat the existing news items since
2219 1.875, so that related items are grouped together.
2220 * configure.ac (AC_INIT): Bump version to 2.0.
2221 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
2222
2223 * tests/torture.at (Exploding the Stack Size with Alloca): Set
2224 YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
2225 otherwise, we're not testing alloca. Unfortunately there's no
2226 simple way to consult HAVE_ALLOCA here.
2227
2228 * data/lalr1.cc (yydestruct_): Pacify unused variable warning
2229 for yymsg, too.
2230
2231 * src/LR0.c (new_itemsets): Use memset rather than zeroing by
2232 hand. This avoids a warning about comparing int to size_t when
2233 GCC warnings are enabled.
2234
2235 2004-12-22 Paul Eggert <eggert@cs.ucla.edu>
2236
2237 * NEWS: Bison-generated parsers no longer default to using the
2238 alloca function (when available) to extend the parser stack, due
2239 to widespread problems in unchecked stack-overflow detection.
2240 * data/glr.c (YYMAXDEPTH): Remove undef when zero. It's the user's
2241 responsibility to set it to a positive value. This lets the user
2242 specify a value that is not a preprocessor constant.
2243 * data/yacc.c (YYMAXDEPTH): Likewise.
2244 (YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
2245 * doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
2246 to be a compile-time constant. However, explain the constraints on it.
2247 Also, explain the constraints on YYINITDEPTH.
2248 (Table of Symbols): Explain that alloca is no longer the default.
2249 Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
2250 to 1.
2251
2252 * doc/bison.texinfo (Location Default Action): Mention that n must
2253 be zero when k is zero. Suggested by Frank Heckenbach.
2254
2255 2004-12-22 Akim Demaille <akim@epita.fr>
2256
2257 * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
2258 (parser::state_type, parser::semantic_type, parser::location_type):
2259 Private, not public.
2260 (parser::parse): Return ints, not bool.
2261 Returning a bool introduces a problem: 0 corresponds to false, and
2262 it seems weird to return false on success. Returning true changes
2263 the conventions for yyparse.
2264 Alternatively we could return void and send an exception.
2265 There is no clear consensus (yet?).
2266 (state_stack, semantic_stack, location_stack): Rename as...
2267 (state_stack_type, semantic_stack_type, location_stack_type): these.
2268 Private, not public.
2269 * tests/c++.at: New.
2270 * tests/testsuite.at, tests/Makefile.am: Adjust.
2271
2272 2004-12-21 Akim Demaille <akim@epita.fr>
2273
2274 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
2275
2276 2004-12-21 Akim Demaille <akim@epita.fr>
2277
2278 Don't impose std::string for filenames.
2279
2280 * data/lalr1.cc (b4_filename_type): New.
2281 (position::filename): Use it.
2282 (parser.hh): Move the inclusion of stack.hh and location.hh below
2283 the user code, so that needed headers for the filename type can be
2284 included first.
2285 Forward declare them before the user code.
2286 * tests/Makefile.am (check-local, installcheck-local): Pass
2287 TESTSUITEFLAGS to the TESTSUITE.
2288
2289 2004-12-20 Akim Demaille <akim@epita.fr>
2290
2291 Use more STL like names: my_class instead of MyClass.
2292
2293 * data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
2294 (SemanticStack, SemanticType, StateStack, StateType)
2295 (TokenNumberType, Stack, Slice, Traits, Parser::location)
2296 (Parser::value): Rename as...
2297 (location_stack, location_type, rhs_number_type, semantic_stack)
2298 (semantic_type, state_stack, state_type, token_number_type, stack)
2299 (slice, traits, parser::yylloc, parser::yylval): these.
2300
2301 * tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
2302
2303 2004-12-19 Paul Eggert <eggert@cs.ucla.edu>
2304
2305 * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
2306 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
2307
2308 2004-12-17 Paul Eggert <eggert@cs.ucla.edu>
2309
2310 Remove uses of 'short int' and 'unsigned short int'. This raises
2311 some arbitrary limits. It uses more memory but nowadays that's
2312 not much of an issue.
2313
2314 This change does not affect the generated parsers; that's a different
2315 task, as some users will want to conserve memory there.
2316
2317 Ideally we should use size_t to represent all object counts, and
2318 something like ptrdiff_t to represent signed differences of object
2319 counts; but that will require more code-cleanup than I have the
2320 time to do right now.
2321
2322 * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
2323 Use size_t, not int or short int, to count objects.
2324 * src/closure.c (nritemset, closure): Likewise.
2325 * src/closure.h (nritemset, closure): Likewise.
2326 * src/nullable.c (nullable_compute): Likewise.
2327 * src/print.c (print_core): Likewise.
2328 * src/print_graph.c (print_core): Likewise.
2329 * src/state.c (state_compare, state_hash): Likewise.
2330 * src/state.h (struct state): Likewise.
2331 * src/tables.c (default_goto, goto_actions): Likewise.
2332
2333 * src/gram.h (rule_number, rule): Use int, not short int.
2334 * src/output.c (prepare_rules): Likewise.
2335 * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
2336 errs, reductions): Likewise.
2337 * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
2338 Likewise.
2339 * src/tables.c (vector_number, tally, action_number,
2340 ACTION_NUMBER_MINIMUM): Likewise.
2341 * src/output.c (muscle_insert_short_int_table): Remove.
2342
2343 2004-12-17 Akim Demaille <akim@epita.fr>
2344
2345 * data/lalr1.cc: Extensive Doxygenation.
2346 (error_): Rename as...
2347 (error): this, since it is visible to the user.
2348 Adjust callers.
2349 (Parser::message): Now an automatic variable from...
2350 (Parser::yyreport_syntax_error_): here.
2351 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
2352 Parser::error.
2353 * tests/input.at: Escape $.
2354
2355 2004-12-16 Paul Eggert <eggert@cs.ucla.edu>
2356
2357 * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
2358 Parenthesize rhs to avoid obscure problems with mistakes like
2359 "foo$$bar = foo$1bar;". Problem reported by twlevo at xs4all.
2360 * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
2361 b4_rhs_location): Likewise.
2362 * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
2363 b4_rhs_location): Likewise.
2364
2365 2004-12-16 Akim Demaille <akim@epita.fr>
2366
2367 * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
2368 yacc.c: be sure to stay within yycheck_.
2369 * tests/actions.at: Re-enable C++ tests.
2370
2371 2004-12-16 Akim Demaille <akim@epita.fr>
2372
2373 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
2374 real.
2375
2376 2004-12-16 Akim Demaille <akim@epita.fr>
2377
2378 Use #define to handle the %name-prefix.
2379
2380 * data/glr.c, data/yacc.c: Comment changes.
2381 * data/lalr1.cc (yylex): Use #define to select the name of yylex,
2382 so that one can refer to yylex in the parser file, and have it
2383 renamed, as is the case with other skeletons.
2384
2385 2004-12-16 Akim Demaille <akim@epita.fr>
2386
2387 Move lalr1.cc internals into yy*.
2388
2389 * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
2390 (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
2391 (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
2392 (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
2393 (empty_, final_, terror_, errcode_, ntokens_)
2394 (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
2395 (looka_, ilooka_, error_range_, nerrs_):
2396 Rename as...
2397 (yysemantic_stack_, yylocation_stack_, yystate_stack_)
2398 (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
2399 (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
2400 (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
2401 (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
2402 (yyfinal_, yyterror_, yyerrcode_, yyntokens_)
2403 (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
2404 (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
2405 these.
2406
2407 2004-12-15 Paul Eggert <eggert@cs.ucla.edu>
2408
2409 Fix some problems reported by twlevo at xs4all.
2410 * src/symtab.c (symbol_new): Report an error if the input grammar
2411 contains too many symbols. This is better than calling abort() later.
2412 * src/vcg.h (enum layoutalgorithm): Remove. All uses removed.
2413 (struct node, struct graph):
2414 Rename member expand to stretch. All uses changed.
2415 (struct graph): Remove member layoutalgorithm. All uses removed.
2416 * src/vcg.c (get_layoutalgorithm_str): Remove. All uses removed.
2417 * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
2418 All uses changed.
2419 (N_STRETCH): Rename from N_EXPAND. All uses changed.
2420
2421 2004-12-15 Akim Demaille <akim@epita.fr>
2422
2423 * data/lalr1.cc: Normalize /** \brief ... */ to ///.
2424 Add more Doxygen comments.
2425 (symprint_, stack_print_, reduce_print_, destruct_, pop)
2426 (report_syntax_error_, translate_): Rename as...
2427 (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
2428 (yypop_, yyreport_syntax_error_, yytranslate_): this.
2429
2430 2004-12-15 Akim Demaille <akim@epita.fr>
2431
2432 * data/lalr1.cc (lex_): Rename as...
2433 (yylex_): this.
2434 Move the trace here.
2435 Take the %name-prefix into account.
2436 Reported by Alexandre Duret-Lutz.
2437
2438 2004-12-15 Akim Demaille <akim@epita.fr>
2439
2440 Simplify the C++ parser constructor.
2441
2442 * data/lalr1.cc (debug_): Rename as...
2443 (yydebug_): so that the parser's internals are always in the yy*
2444 pseudo namespace.
2445 Adjust uses.
2446 (b4_parse_param_decl): Remove the leading comma as it is now only
2447 called as unique argument list.
2448 (Parser::Parser): Remove the constructor accepting a location and
2449 an initial debugging level.
2450 Remove from the other ctor the argument for the debugging level.
2451 (debug_level_type, debug_level, set_debug_level): New.
2452
2453 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust
2454 constructor calls.
2455
2456 2004-12-15 Akim Demaille <akim@epita.fr>
2457
2458 Remove b4_root related material: failure experiment
2459 (which goal was to allow to derive from a class).
2460
2461 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
2462 definitions and uses.
2463
2464 2004-12-14 Paul Eggert <eggert@cs.ucla.edu>
2465
2466 * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
2467 not 2, since it's not portable to subtract 1 from the start of an
2468 array. The new item 0 is never set or used. All uses changed.
2469
2470 (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
2471 the default definition of YYLLOC_DEFAULT. Problem reported
2472 by Frank Heckenbach.
2473
2474 2004-12-12 Paul Eggert <eggert@cs.ucla.edu>
2475
2476 * data/glr.c (YYRHSLOC): Don't have two definitions, one for
2477 the normal case and one for the error case. Just use the
2478 first one uniformly. Problem reported by Frank Heckenbach.
2479 (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
2480 use exactly the same macro in both places.
2481 (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
2482 so that the normal-case YYRHSLOC works for the error case too.
2483 All uses changed.
2484 * data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
2485 (YYLLOC_DEFAULT): Use the same macro as glr.c.
2486 * doc/bison.texinfo (Location Default Action): Don't claim that
2487 we have an array of locations. Use the same macro for both glr
2488 and lalr parsers. Mention YYRHSLOC. Mention what happens when
2489 the index is 0.
2490
2491 2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
2492
2493 * HACKING: Update email addresses to send announcements to.
2494
2495 * configure.ac (AC_INIT): Bump version to 1.875f.
2496
2497 2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
2498
2499 * NEWS: Version 1.875e.
2500 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
2501
2502 * src/scan-skel.l: Include "complain.h", for "fatal".
2503
2504 * src/relation.h (relation_print, relation_digraph):
2505 Relation sizes are of type relation_node, not size_t (this is
2506 merely a doc fix, since the two types are equivalent).
2507 (relation_transpose): Relation sizes are of type relation_node,
2508 not int.
2509 * src/relation.c: Likewise.
2510 (top, infinity): Now of type relation_node, not int.
2511 (traverse, relation_transpose): Use relation_node, not int.
2512
2513 * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
2514 with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
2515 (yyparse): Remove unused local introduced in 2004-10-25 patch.
2516
2517 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
2518 specifying whether the test should be skipped. Use it tp
2519 specify that the [%defines %skeleton "lalr1.cc"] tests currently
2520 fail on some hosts, and should be skipped.
2521
2522 2004-12-08 Paul Eggert <eggert@cs.ucla.edu>
2523
2524 * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers
2525 changed to use xcalloc, xnmalloc, xnrealloc, respectively,
2526 unless otherwise specified below.
2527
2528 * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
2529 to allocate kernel_base, kernel_items, kernel_size, since
2530 they needn't be initialized to 0.
2531 (allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
2532 * src/closure.c (new_closure): Likewise, for itemset.
2533 * src/derives.c (derives_compute): Likewise, for delts, derives, q.
2534 * src/lalr.c (set_goto_map): Likewise, for temp_map.
2535 (initialize_F): Likewise, for reads, edge, reads[i], includes[i].
2536 (build_relations): Likewise for edge, states1, includes.
2537 * src/nullable.c (nullable_compute): Likewise, for squeue, relts.
2538 * src/reader.c (packgram): Likewise, for ritem, rules.
2539 * src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
2540 * src/relation.c (relation_digraph): Likewise for VERTICES.
2541 (relation_transpose): Likewise for new_R, end_R.
2542 * src/symtab.c (symbols_token_translations_init): Likewise for
2543 token_translations.
2544 * src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
2545 (token_actions): Likewise for yydefact, actrow, conflrow,
2546 conflict_list.
2547 (save_column): Likewise for froms[symno], tos[symno].
2548 (goto_actions): Likewise for state_count.
2549 (pack_table): Likewise for base, pos, check.
2550 (tables_generate): Likewise for width.
2551
2552 * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
2553 for initial core. Just have a separate core, so we needn't worry
2554 about whether kernel_size and kernel_base are initialized.
2555
2556 * src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
2557 kernel_size, kernel_items): Remove unnecessary initialization.
2558 * src/conflicts.c (conflicts): Likewise.
2559 * src/derives.c (derives): Likewise.
2560 * src/muscle_tablc (muscle_insert): Likewise.
2561 * src/relation.c (relation_digraph): Likewise.
2562 * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
2563 conflrow, conflict_table, conflict_list, table, check):
2564 Likewise.
2565
2566 * src/closure.c (new_closure): Arg is of type unsigned int, not int.
2567 This is because all callers pass unsigned int.
2568 * src/closure.h (new_closure): Likewise.
2569
2570 * src/lalr.c (initialize_F): Initialize reads[i] in all cases.
2571 (build_relations): Initialize includes[i] in all cases.
2572 * src/reader.c (packgram): Always initialize rules[ruleno].prec
2573 and rules[ruleno].precsym. Initialize members in order.
2574 * src/relation.c (relation_transpose): Always initialize new_R[i]
2575 and end_R[i].
2576 * src/table.c (conflict_row): Initialize 0 at end of conflict_list.
2577
2578 * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
2579 conflict_list[0] was always 0, but now it isn't initialized.
2580
2581 * src/table.c (table_grow): When conflict_table grew, the grown
2582 area wasn't cleared. Fix this.
2583
2584 * lib/.cvsignore: Add strdup.c, strdup.h.
2585 * m4/.cvsignore: Add strdup.m4.
2586
2587 2004-12-07 Paul Eggert <eggert@cs.ucla.edu>
2588
2589 * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
2590 * src/lalr.c (set_goto_map): Don't allow ngotos to equal
2591 GOTO_NUMBER_MAXIMUM, since we occasionally compute
2592 ngotos + 1 without checking for overflow.
2593 (build_relations): Use END_NODE, not -1, to denote end of edges.
2594 * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
2595 build_relations): Use goto_number, not int, for goto numbers.
2596 * src/tables.c (save_column, default_goto): Likewise.
2597
2598 2004-11-23 Akim Demaille <akim@epita.fr>
2599
2600 * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
2601 of #defining from yystype.
2602 Don't typedef yystype, C++ does not need it.
2603 This lets it possible to forward declare it as union.
2604
2605 2004-11-23 Paul Eggert <eggert@cs.ucla.edu>
2606
2607 * bootstrap (gnulib_modules): Add extensions.
2608 Problem reported by Jim Meyering.
2609
2610 2004-11-22 Paul Eggert <eggert@cs.ucla.edu>
2611
2612 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
2613 src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
2614 src/system.h, src/tables.c: XFREE -> free, to accommodate
2615 recent change to gnulib xalloc.h.
2616 Problem reported by Jim Meyering.
2617
2618 2004-11-17 Akim Demaille <akim@epita.fr>
2619
2620 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
2621
2622 2004-10-28 Akim Demaille <akim@epita.fr>,
2623 Alexandre Duret-Lutz <adl@gnu.org>
2624
2625 * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
2626 changes.
2627 (YYCDEBUG): Adjust.
2628 Use it instead of cdebug_.
2629 (Parser::debug_stream, Parser::set_debug_stream): New.
2630 (Parser::symprint_): Define cdebug_ for temporary backward
2631 compatibility.
2632 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
2633 debug_stream ().
2634
2635 2004-11-17 Akim Demaille <akim@epita.fr>
2636
2637 * data/lalr1.cc (Parser:print_): Remove, use %printer instead.
2638 * tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
2639 * tests/calc.at (_AT_DATA_CALC_Y): Ditto.
2640 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
2641
2642 2004-10-27 Paul Eggert <eggert@cs.ucla.edu>
2643
2644 * data/glr.c (yyloc_default): Remove; not used.
2645 Problem reported by Frank Heckenbach.
2646
2647 2004-10-25 Akim Demaille <akim@epita.fr>
2648
2649 * data/glr.c (YYRHSLOC): Move its definition next to its uses.
2650 Introduce another definition to address simple location arrays.
2651 (yyGLRStack): New member: yyerror_range.
2652 (yyrecoverSyntaxError, yyparse): Update it.
2653 (yyrecoverSyntaxError): Use it when shifting the error token to
2654 have an accurate range, equivalent to the one computed by both
2655 yacc.c and lalr1.cc.
2656 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
2657 that column numbers start at column 0, as per GNU Coding
2658 Standards, the others tests, and the doc.
2659 (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
2660 Adjust to the above change (first column is 0).
2661 And adjust the location of the "<error>", now covering the whole
2662 line.
2663
2664 2004-10-22 Akim Demaille <akim@epita.fr>
2665 and Paul Eggert <eggert@cs.ucla.edu>
2666
2667 Remove some arbitrary limits on goto numbers and relations.
2668 * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
2669 initial values, since they're never used.
2670 (set_goto_map): ngotos is now unsigned, so test for overflow
2671 by seeing whether it wraps around to zero.
2672 * src/lalr.h (goto_number): Now size_t, not short int.
2673 (GOTO_NUMBER_MAXIMUM): Remove.
2674 * src/relation.c (relation_print, traverse, relation_transpose):
2675 Check for END_NODE rather than looking at sign.
2676 * src/relation.h (END_NODE): New macro.
2677 (relation_node): Now size_t, not short int.
2678
2679 2004-10-22 Paul Eggert <eggert@cs.ucla.edu>
2680
2681 * doc/bison.texinfo (Language and Grammar): In example, "int" is a
2682 keyword, not an identifier. Problem reported by Baron Schwartz in
2683 <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
2684
2685 2004-10-11 Akim Demaille <akim@epita.fr>
2686
2687 * src/symtab.c (symbol_check_alias_consistency): Also check
2688 type names, destructors, and printers.
2689 Reported by Alexandre Duret-Lutz.
2690 Recode the handling of associativity and precedence in terms
2691 of symbol_precedence_set.
2692 Accept no redeclaration at all, not even equal to the previous
2693 value.
2694 (redeclaration): New.
2695 Use it to factor redeclaration complaints.
2696 (symbol_make_alias): Don't set the type of the alias, let
2697 symbol_check_alias_consistency do it as for other features.
2698 * src/symtab.h (symbol): Add new member prec_location, and
2699 type_location.
2700 * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
2701 * tests/input.at (Incompatible Aliases): New.
2702
2703 2004-10-09 Paul Eggert <eggert@cs.ucla.edu>
2704
2705 .cvsignore fixes to accommodate gnulib changes,
2706 and the practice of naming build directories "_build".
2707 * .cvsignore: Add "_*". Sort.
2708 * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
2709 * m4/.cvsignore: Add "*_gl.m4".
2710
2711 2004-10-06 Akim Demaille <akim@epita.fr>
2712
2713 * src/parse-gram.y (add_param): Fix the truncation of trailing
2714 spaces.
2715
2716 2004-10-05 Akim Demaille <akim@epita.fr>
2717
2718 In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
2719 whether the reducion was empty or not. This leaves room to
2720 improve the use of YYLLOC_DEFAULT in such a case.
2721 lalr1.cc is still experimental, so changing this is acceptable.
2722 And finally, there are probably not many users who changed the
2723 handling of locations in GLR, so changing is admissible too.
2724
2725 * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
2726 empty reduction, set @$ to an empty location ending the previously
2727 stacked symbol.
2728 Adjust uses to make sure the code is triggered on empty
2729 reductions.
2730 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
2731 expected output: empty reductions have empty locations.
2732
2733 2004-09-29 Akim Demaille <akim@epita.fr>
2734
2735 * data/lalr1.cc: Move towards a more standard C++ coding style
2736 for templates: Class < T > -> Class<T>.
2737
2738 2004-09-29 Akim Demaille <akim@epita.fr>
2739
2740 * data/lalr1.cc: Reinstall the former ctor, for sake of
2741 compatibility, but warn it will be removed.
2742 Move towards a more standard C++ coding style (i.e., type *var ->
2743 type* var).
2744
2745 2004-09-27 Paul Eggert <eggert@cs.ucla.edu>
2746
2747 * src/parse-gram.y (add_param): Rewrite to avoid strchr,
2748 since it's less likely to work if NULs are involved in the future.
2749
2750 2004-09-27 Akim Demaille <akim@epita.fr>
2751
2752 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
2753
2754 2004-09-27 Akim Demaille <akim@epita.fr>
2755
2756 * data/lalr1.cc (b4_parse_param_decl_1): New.
2757 (b4_parse_param_decl): Use it to have different names between attribute
2758 and argument names.
2759 (b4_cc_constructor_call): Likewise.
2760
2761 2004-09-24 Akim Demaille <akim@epita.fr>
2762
2763 * src/parse-gram.y (add_param): Strip the leading and trailing
2764 blanks from a formal argument declaration.
2765 (YY_LOCATION_PRINT): New.
2766
2767 2004-09-24 Akim Demaille <akim@epita.fr>
2768
2769 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
2770 after the location.
2771
2772 2004-09-24 Akim Demaille <akim@epita.fr>
2773
2774 * doc/bison.texinfo (Table of Symbols): Sort.
2775
2776 2004-09-21 Akim Demaille <akim@epita.fr>
2777
2778 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
2779 the useless parentheses.
2780 Suggested by Paul Eggert.
2781
2782 2004-09-20 Akim Demaille <akim@epita.fr>
2783
2784 Let the initial-action act on the look-ahead, and use it for the
2785 "initial push" (corresponding to an hypothetical beginning-of-file).
2786 And let lalr1.cc honor %initial-action.
2787
2788 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
2789 example.
2790 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
2791 (Parser::Parser): Remove the ctor that used to initialize it.
2792 (Parser::parse): Like in the other skeletons, issue the "starting
2793 parse" message before any action.
2794 Honor %initial-action.
2795 Initialize the stacks with the lookahead.
2796 * data/yacc.c: Let $$ and @$ in %initial-action designate the
2797 look-ahead.
2798 Push them in the stacks.
2799 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
2800
2801 2004-09-20 Akim Demaille <akim@epita.fr>
2802
2803 * doc/bison.texinfo (Initial Action Decl): New.
2804
2805 2004-09-20 Akim Demaille <akim@epita.fr>
2806
2807 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
2808 clearer criterion to define it.
2809 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
2810 When reducing on an empty RHS, use the latest stacked location as
2811 location.
2812 yylloc is not always available.
2813 * data/glr.c: Likewise.
2814 Also, honor initial-actions.
2815
2816 2004-09-20 Akim Demaille <akim@epita.fr>
2817
2818 * data/yacc.c (YY_LOCATION_PRINT): New.
2819 Define when we know YYLTYPE's structure, i.e., when the default
2820 YYLLOC_DEFAULT is used.
2821 * data/c.m4 (b4_yysymprint_generate): Use it.
2822 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
2823 value of the result.
2824 (error_start_): Replace with...
2825 (error_range_): this location array.
2826 This allows to replace code relying on the implementation of
2827 locations by portable code.
2828 * data/yacc.c (yylerrsp): Replace with...
2829 (yyerror_range): this.
2830 Every time a token is popped, update yyerror_range[0], to have an
2831 accurate location for the error token.
2832 * data/glr.c (YY_LOCATION_PRINT): New.
2833 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
2834 deference a pointer.
2835 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
2836 report the location in %printers.
2837
2838 * src/scan-skel.l: Instead of abort, report error messages to ease
2839 understanding skeleton scanning failures.
2840
2841 2004-09-16 Akim Demaille <akim@epita.fr>
2842
2843 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
2844 (iterator, const_iterator): these, to be more in the C++ spirit.
2845 Also, return reverse iterators so that when displaying the stack
2846 we display its bottom first.
2847 (Parser::stack_print_, Parser::reduce_print_): Match the messages
2848 from yacc.c.
2849 We should probably use vector here though.
2850
2851 2004-09-16 Akim Demaille <akim@epita.fr>
2852
2853 Have more complete shift traces.
2854
2855 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
2856 to report Shifts instead of ad hoc YYDPRINTF invocations,
2857 including for the error token.
2858 * data/lalr1.cc (symprint_): Output the location.
2859 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
2860 output the location within the %printer.
2861 Activate GLR tests, at least to make sure they compile properly.
2862 They still don't pass though.
2863 * tests/calc.at: Adjust expect verbose output, since now "Entering
2864 state..." is on a different line than the "Shifting" message.
2865
2866 2004-09-08 Akim Demaille <akim@epita.fr>
2867
2868 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
2869 Bison directive from the Bison file to the invocation of this
2870 macro, so that these directives are passed to
2871 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
2872 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
2873 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
2874 the extra Bison directives instead of the whole series.
2875 Change the grammar so that there are recoverable errors, and
2876 unrecoverable errors. Now we can have the parser give up before
2877 consuming the whole input. As a result we now can observe that
2878 the lookahead is freed when needed.
2879 Change the parser source to parse argv[1] instead of a hard coded
2880 string.
2881 Simplify yylex, and give a value and location to EOF.
2882 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
2883 passed directives already coded in the file.
2884 Add some tests to check the location of "error".
2885 For some tests, the C++ parser is correct, and not yacc.c.
2886 For other tests, they provide different, but unsatisfying, values,
2887 so keep the C++ value so that at least one parser is "correct"
2888 according to the test suite.
2889 (Actions after errors): Remove, this is subsumed by the
2890 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
2891
2892 2004-09-06 Akim Demaille <akim@epita.fr>
2893
2894 * data/lalr1.cc: Adjust the indentation of the labels.
2895 (Parser::pop): New.
2896 Use it.
2897
2898 2004-09-06 Akim Demaille <akim@epita.fr>
2899
2900 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
2901 argument, an informative message.
2902 Call YY_SYMBOL_PRINT.
2903 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
2904 * data/lalr1.cc (destruct_): Likewise.
2905 In addition, no longer depend on b4_yysymprint_generate and
2906 b4_yydestruct_generate to generate these functions, do it "by
2907 hand".
2908
2909 2004-09-03 Akim Demaille <akim@epita.fr>
2910
2911 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
2912 invoked, yydestruct the lookahead.
2913 * tests/calc.at (Calculator $1): Update the expected lengths of
2914 traces: there is an added line for the discarded lookahead.
2915 * doc/bison.texinfo (Destructor Decl): Some rewording.
2916 Define "discarded" symbols.
2917
2918 2004-09-02 Akim Demaille <akim@epita.fr>
2919
2920 * data/lalr1.cc (translate_, destruct_): No reason to be static.
2921
2922 2004-09-02 Akim Demaille <akim@epita.fr>
2923
2924 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
2925 (YYDSYMPRINTF): Rename as...
2926 (YY_SYMBOL_PRINT): this.
2927 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
2928 two.
2929 Use it instead of direct symprint_ calls.
2930 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
2931 one.
2932
2933 2004-09-02 Akim Demaille <akim@epita.fr>
2934
2935 * data/lalr1.cc (b4_yysymprint_generate): New.
2936 (symprint_): New member function, defined when YYDEBUG.
2937 Use it consistently instead of token/nterm debugging output by
2938 hand.
2939 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
2940 %printer calls to use cdebug_ when using lalr1.cc.
2941
2942 2004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
2943
2944 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
2945 with #ifdef YYDEBUG.
2946
2947 2004-08-26 Akim Demaille <akim@epita.fr>
2948
2949 * doc/bison.texinfo (Implementing Loops): Rename as...
2950 (Implementing Gotos/Loops): this.
2951
2952 2004-08-13 Paul Eggert <eggert@cs.ucla.edu>
2953
2954 Adjust to latest gnulib.
2955 * bootstrap (gnulib_modules): Add xalloc-die.
2956 Set LC_ALL=C so that file names sort consistently.
2957 Prefer the gnulib copies of gettext.m4, glibc21.m4,
2958 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
2959 uintmax_t.m4, ulonglong.m4.
2960 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
2961 po.m4 since we are now using _gl.m4 instead.
2962
2963 2004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
2964
2965 * src/scan-action.l: Remove. Scanning of semantic actions is
2966 handled in scan-gram.l.
2967
2968 2004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
2969
2970 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
2971
2972 * src/location.h (struct): The file member is a uniqstr.
2973 (equal_boundaries): Use UNIQSTR_EQ for comparison.
2974
2975 2004-07-22 Paul Eggert <eggert@cs.ucla.edu>
2976
2977 Fix bug with non-%union parsers that have printers or destructors,
2978 which led to a Bison core dump. Reported by Peter Fales in
2979 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
2980
2981 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
2982 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
2983 not to our own type.
2984 * src/output.c (symbol_destructors_output, symbol_printers_output):
2985 Don't assume %union.
2986 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
2987 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
2988 UNION-FLAG. All callers changed.
2989 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
2990 Use type char, not unsigned int, when declaring an array of char;
2991 this lets us remove a cast.
2992 (Printers and Destructors): Add non-%union test cases.
2993
2994 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
2995
2996 * doc/bison.texinfo: Minor editorial changes, mostly to the new
2997 GLR writeups. E.g., avoid frenchspacing and the future tense,
2998 change "lookahead" to "look-ahead", and change "wrt" to "with
2999 respect to".
3000
3001 2004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
3002
3003 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
3004 New sections, split off from the GLR Parsers section. Put the new
3005 Simple GLR Parser near the start of the GLR section, for clarity.
3006 Rewrite connective text.
3007
3008 2004-06-21 Frank Heckenbach <frank@g-n-u.de>
3009
3010 * doc/bison.texinfo (Simple GLR Parsers): New section.
3011
3012 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
3013
3014 * NEWS, TODO, doc/bison.texinfo:
3015 Use "look-ahead" instead of "lookahead", to be consistent.
3016 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
3017 while we're fixing "look-ahead".
3018 * src/conflicts.c (shift_set): Renamed from shiftset.
3019 (look_ahead_set): Renamed from lookaheadset.
3020 * src/print.c: Likewise.
3021 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
3022 name for "lookahead".
3023 (report_types, usage): Likewise.
3024 * src/getargs.h (report_look_ahead_tokens): Renamed from
3025 report_lookaheads.
3026 * src/lalr.c (compute_look_ahead_tokens): Renamed from
3027 compute_lookaheads.
3028 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
3029 (look_ahead_tokens_print): Renamed from lookaheads_print.
3030 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
3031 state_rule_lookaheads_print.
3032 * src/state.h: Likewise.
3033 (reductions.look_ahead_tokens): Renamed from lookaheads.
3034 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
3035 AT_DATA_LOOKAHEADS_GRAMMAR.
3036
3037 2004-06-03 Paul Eggert <eggert@cs.ucla.edu>
3038
3039 * README: Update location of patched M4 distribution.
3040
3041 2004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
3042
3043 Don't assume the C++ compiler takes the same arguments as the C compiler
3044 (trivial change).
3045 * configure.ac (O0CXXFLAGS): New var.
3046 * tests/atlocal.in (CXXFLAGS): Use it.
3047
3048 2004-05-29 Paul Eggert <eggert@cs.ucla.edu>
3049
3050 Fix some "make check" problems with C++ reported by
3051 Albert Chin-A-Young for Tru64 C++ in this thread:
3052 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
3053
3054 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
3055 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
3056 Output to a .cc file for C++, not to a .c file.
3057 * tests/calc.at (AT_CHECK_CALC): Likewise.
3058 * tests/regression.at (AT_CHECK_DANCER): Likewise.
3059 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
3060
3061 2004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
3062
3063 * tests/calc.at, tests/actions.at: Workaround for SGI
3064 C++ compiler. (trivial change)
3065
3066 2004-05-27 Paul Eggert <eggert@cs.ucla.edu>
3067
3068 Spent a few hours checking out which prerequisite versions the
3069 current sources actually require. I went all the way back to
3070 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
3071 a seemingly endless set of combinations of versions more recent
3072 than that. The bottom line is that the current sources require
3073 fairly recent versions of the build tools, and it'll be some work
3074 to change this.
3075 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
3076 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
3077 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
3078 Add comments explaining why those particular versions are
3079 currently needed.
3080
3081 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
3082 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
3083 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
3084
3085 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
3086 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
3087
3088 2004-05-26 Paul Eggert <eggert@cs.ucla.edu>
3089
3090 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
3091 0.11.5. Suggested by Bruno Haible.
3092 * bootstrap: Remove gettext version checking.
3093
3094 * doc/bison.texinfo (Decl Summary): Also mention that %union
3095 can depend on prerequisite types. Problem reported by Tim
3096 Van Holder.
3097
3098 2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
3099
3100 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
3101 * README-alpha: Don't tell people not to package this.
3102
3103 * bootstrap: Don't assume $(...) works; use `...` instead.
3104 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
3105 gettext better.
3106
3107 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
3108 put into the -d output file, and mention what to do if YYSTYPE is
3109 defined as a macro.
3110
3111 2004-05-24 Paul Eggert <eggert@cs.ucla.edu>
3112
3113 Undo change made earlier today: it caused autopoint to not bring
3114 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
3115 autopoint's.
3116
3117 * bootstrap: Check that gettext version matches what's in
3118 configure.ac. Warn users to ignore robots.txt ERROR 404.
3119 * bootstrap: Undo today's earlier change (logged below).
3120 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
3121
3122 The gettext version checking is causing more trouble than it's
3123 curing; remove it. Problem reported by Paul Hilfinger.
3124
3125 * bootstrap: Issue a warning that one can expect a message
3126 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
3127 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
3128
3129 2004-05-23 Paul Eggert <eggert@cs.ucla.edu>
3130
3131 Ensure that the C++ compiler used for testing actually works on a
3132 simple test program; if not, skip the C++-related tests. Problem
3133 reported by Vin Shelton in:
3134 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
3135
3136 * m4/cxx.m4: New file.
3137 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
3138 * tests/atlocal.in (BISON_CXX_WORKS): Add.
3139 * tests/local.at (AT_COMPILE_CXX): Use it.
3140
3141 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
3142
3143 * data/glr.c (yylloc): Output this macro even if locations are not
3144 being generated, as the GLR parser needs it even in that case.
3145 Problem reported by Troy A. Johnson
3146 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
3147
3148 * configure.ac (AC_INIT): Update to 1.875e.
3149
3150 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
3151
3152 * NEWS: Version 1.875d.
3153 * configure.ac (AC_INIT): Likewise.
3154 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
3155
3156 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
3157 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
3158 lalr1.cc runs afoul of the first, and the last two are no longer
3159 supported by GCC 3.4.0.
3160 * README: Mention GNU m4 1.4 or later; mention m4 patches.
3161 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
3162
3163 2004-05-06 Paul Eggert <eggert@cs.ucla.edu>
3164
3165 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
3166 unsigned int, for compatibility with latest gnulib hash module.
3167 * src/state.c (state_hash, state_hasher): Likewise.
3168 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
3169 * src/uniqstr.c (hash_uniqstr): Likewise.
3170
3171 2004-05-03 Paul Eggert <eggert@cs.ucla.edu>
3172
3173 * NEWS: Unescaped newlines are no longer allowed in char & strings.
3174
3175 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
3176 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
3177 character and string literals.
3178 (unexpected_end): New function.
3179 (unexpected_eof): Use it.
3180 (unexpected_newline): New function.
3181 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
3182 actions.
3183
3184 * NEWS: Document %expect-rr.
3185
3186 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
3187 Fix typo by replacing $1 with $option.
3188 Remove more 'intl'-related files.
3189 Don't DEFUN AM_INTL_SUBDIR twice.
3190
3191 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
3192 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
3193 strtoul.c.
3194 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
3195 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
3196 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
3197 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
3198 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
3199 * src/.cvsignore: Add *.output.
3200
3201 * src/parse-gram.y: Put copyright notice inside %{ %} so it
3202 gets copied to the output file.
3203
3204 2004-04-28 Paul Eggert <eggert@twinsun.com>
3205
3206 Get files from the gnulib and po repositories, instead of relying
3207 on them being in our CVS. Upgrade to latest versions of gnulib
3208 and Automake.
3209
3210 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
3211 * bootstrap: Bootstrap from gnulib and po repositories.
3212 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
3213 * README-cvs: Document these changes. Remove version numbers from
3214 mentions of build tools, since they change so often. Mention Flex.
3215
3216 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
3217 (gl_USE_SYSTEM_EXTENSIONS): Add.
3218 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
3219 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
3220 does this for us.
3221 (AC_ISC_POSIX): Remove; we no longer support this
3222 ancient OS, as it gets in the way of latest Autoconf & gnulib.
3223 (AC_HEADER_STDC): Remove: we now assume C89 or better.
3224 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
3225 Do not check for C89 headers, except for locale.h which is used
3226 by the Yacc library and must port to K&R hosts.
3227 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
3228 Do not check for C89 functions, except for setlocale which is
3229 used by the Yacc library.
3230 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
3231 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
3232 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
3233 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
3234 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
3235 AM_GNU_GETTEXT): Remove; now done by:
3236 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
3237 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
3238 for us.
3239
3240 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
3241 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
3242 Define to empty, as gnulib.mk will do the rest for us.
3243 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
3244 for us.
3245 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
3246 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
3247
3248 * src/files.c: Include gnulib's xstrndup.h.
3249
3250 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
3251 (REALLOC): Use xnrealloc, for likewise.
3252 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
3253 (strnlen, memrchr): Remove decls; functions no longer used.
3254 Include <stpcpy.h>.
3255
3256 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
3257 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
3258 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
3259 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
3260 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
3261 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
3262 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
3263 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
3264 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
3265 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
3266 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
3267 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
3268 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
3269 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
3270 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
3271 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
3272 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
3273 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
3274 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
3275 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
3276 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
3277 Remove, as these files are now generated automatically
3278 by bootstrap or automake.
3279
3280 * po/ChangeLog: Remove: all but one entry was a duplicate
3281 of this file, and I moved that 2000-11-02 entry here.
3282
3283 * config/.cvsignore: Add Makefile, depcomp, install-sh.
3284 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
3285 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
3286 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
3287 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
3288 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
3289 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
3290 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
3291 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
3292 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
3293 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
3294 xstrndup.h.
3295 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
3296 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
3297 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
3298 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
3299 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
3300 * src/.cvsignore: Remove *_.c.
3301
3302
3303 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
3304 support it. (The latest stable gzip doesn't.)
3305
3306 2004-04-27 Paul Eggert <eggert@twinsun.com>
3307
3308 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
3309 case, as stos_ is now used by destructors due to the 2004-02-09
3310 change.
3311
3312 Remove more K&R C support.
3313 * lib/libiberty.y (PARAMS): Remove. All uses removed.
3314 * lib/subpipe.c (errno): Remove decl.
3315 Include <stdlib.h> unconditionally.
3316 (EXIT_FAILURE): Remove macro.
3317 * src/complain.c (vfprintf, strerror): Remove.
3318 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
3319 unconditionally.
3320 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
3321 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
3322 (strchr, strspn, memchr): Remove decls.
3323 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
3324 unconditionally. Do not declare perror.
3325 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
3326 unconditionally.
3327
3328 * src/complain.c (_): Remove useless defn, as system.h defines this.
3329
3330 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
3331 with latest obstack.h.
3332 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
3333 to procedure types, as obstack.h now does that for us.
3334 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
3335
3336 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
3337 so that this include file can stand alone.
3338 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
3339 does this now. Include subpipe.h first after config.h, to
3340 test whether it can stand alone.
3341
3342 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
3343 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
3344 unused declaration.
3345
3346 * tests/synclines.at (%union synch line): Put a dummy member in
3347 the union, because empty unions aren't allowed in C. Caught
3348 by GCC 3.4.0.
3349
3350 2004-04-13 Jim Meyering <jim@meyering.net>
3351
3352 * src/conflicts.c (conflicts_print): Correct format string typo:
3353 use `%%' to produce literal `%'. (trivial change)
3354
3355 2004-03-30 Paul Eggert <eggert@twinsun.com>
3356
3357 * src/getargs.c (version): Update copyright year to 2004.
3358
3359 * data/c.m4 (b4_int_type): Use 'short int' rather than
3360 'short', and similarly for 'long', 'unsigned', etc.
3361 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
3362 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
3363 yy_yypstack, yydumpstack): Likewise.
3364 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
3365 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
3366 Likewise.
3367 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
3368 yy_stack_print, yyparse): Likewise.
3369 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
3370 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
3371 * lib/bitset.c (bitset_print): Likewise.
3372 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
3373 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
3374 * lib/bitsetv.c (bitsetv_dump): Likewise.
3375 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
3376 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
3377 Likewise.
3378 * src/LR0.c (allocate_itemsets): Likewise.
3379 * src/gram.h (rule_number, rule): Likewise.
3380 * src/lalr.h (goto_number): Likewise.
3381 * src/nullable.c (nullable_compute): Likewise.
3382 * src/output.c (prepare_rules): Likewise.
3383 * src/relation.c (relation_print, relation_digraph): Likewise.
3384 * src/relation.h (relation_node): Likewise.
3385 * src/state.h (state_number, transitions, errs, reductions,
3386 struct state): Likewise.
3387 * src/symtab.h (symbol_number, struct symbol): Likewise.
3388 * src/tables.c (vector_number, tally, action_number,
3389 default_goto, goto_actions): Likewise.
3390 * tests/existing.at (GNU Cim Grammar): Likewise.
3391 * tests/regression.at (Web2c Actions): Likewise.
3392
3393 * src/output.c (muscle_insert_short_int_table): Renamed from
3394 muscle_insert_short_table. All uses changed.
3395
3396 2004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
3397
3398 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
3399 (declaration): Replace expected_conflicts with expected_sr_conflicts.
3400 Add %expect-rr rule.
3401
3402 * src/scan-gram.l: Recognize %expect-rr.
3403
3404 * src/conflicts.h (expected_sr_conflicts): Rename from
3405 expected_conflicts.
3406 (expected_rr_conflicts): Declare.
3407
3408 * src/conflicts.c (expected_sr_conflicts): Rename from
3409 expected_conflicts.
3410 (expected_rr_conflicts): Define.
3411 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
3412 for GLR parsers.
3413 Use expected_sr_conflicts in place of expected_conflicts.
3414 Warn if expected_rr_conflicts used in non-GLR parser.
3415
3416 * doc/bison.texinfo: Add documentation for %expect-rr.
3417
3418 2004-03-08 Paul Eggert <eggert@gnu.org>
3419
3420 Add support for hex token numbers. Suggested by Odd Arild Olsen in
3421 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
3422
3423 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
3424 in lalr1.cc.
3425 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
3426 * src/scan-gram.l (scan_integer): New function.
3427 ({int}): Use it.
3428 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
3429 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
3430 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
3431 Say "long int", not "long", for uniformity with GNU style.
3432
3433 2004-02-25 Paul Eggert <eggert@twinsun.com>
3434
3435 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
3436 compilers. This fixes a problem with Intel's C++ compiler being
3437 chatty, reported by Guido Trentalancia in
3438 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
3439
3440 2004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
3441
3442 Support %destructor and merge error locations in lalr1.cc.
3443
3444 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
3445 (Parser::stos_): Define unconditionally.
3446 (Parser::destruct_): New method. Generate its body with
3447 b4_yydestruct_generate.
3448 (Parser::error_start_): New attribute.
3449 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
3450 token which are discarded.
3451 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
3452 error_start_ when erroneous token are discarded.
3453 (Parser::parse) <yyerrlab1>: Compute the location of the error
3454 token so that it covers all the discarded tokens.
3455 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
3456 it can be called with `%skeleton "lalr1.cc"', and do that.
3457
3458 2004-02-02 Paul Eggert <eggert@twinsun.com>
3459
3460 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
3461 $(top_srcdir)/lib and ../lib. This fixes a bug reported
3462 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
3463 There's no need to mention top_builddir since Automake does that
3464 for us.
3465 (INCLUDES): Remove, as Automake says it's obsolescent.
3466 Contents migrated into AM_CPPFLAGS as described above.
3467 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
3468
3469 2004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
3470
3471 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
3472 (yyreportSyntaxError): Handle case where lookahead token is
3473 YYEMPTY.
3474
3475 2004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3476
3477 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
3478 resulting parsers are compilable with C++.
3479
3480 2003-12-23 Paul Eggert <eggert@twinsun.com>
3481
3482 * config/depcomp, config/install-sh: Sync with Automake 1.8.
3483 * src/output.c (output_skeleton): Rename local var.
3484 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
3485 Bison tokens, as this runs afoul of the 2003-10-07 change that
3486 disallowed NUL bytes in character constants or string literals.
3487
3488 * tests/local.at: Require Autoconf 2.59's Autotest.
3489 * tests/testsuite.at: Don't include local.at, since we now assume
3490 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
3491 including it.
3492 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
3493 multiple inclusion warnings.
3494
3495 2003-12-02 Akim Demaille <akim@epita.fr>
3496
3497 * doc/bison.texinfo (How Can I Reset the Parser): More about start
3498 conditions.
3499 From Bruno Haible.
3500
3501 2003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
3502
3503 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
3504
3505 2003-10-07 Paul Eggert <eggert@twinsun.com>
3506
3507 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
3508 if testsuite doesn't exist.
3509
3510 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
3511 literals, unfortunately.
3512 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
3513 Complain about NUL bytes in character constants or string literals.
3514
3515 2003-10-05 Paul Eggert <eggert@twinsun.com>
3516
3517 * NEWS: Don't document %no-default-prec, as it's still
3518 too experimental.
3519 * doc/bison.texinfo: Document %no-default-prec only if
3520 the defaultprec flag is set. Normally it's not.
3521
3522 2003-10-04 Paul Eggert <eggert@twinsun.com>
3523
3524 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
3525 non-modifiable lvalue, instead of a modifiable one.
3526 * doc/bison.texinfo (Actions): Document that $$ can
3527 be assigned to. Do not claim that $$ and $N are
3528 array element references: user code should not rely on this.
3529
3530 2003-10-01 Paul Eggert <eggert@twinsun.com>
3531
3532 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
3533 (grammar_declaration): Use it.
3534 * src/scan-gram.l: New token %no-default-prec.
3535 * tests/conflicts.at: Revamp tests to use %no-default-prec.
3536 * NEWS, doc/bison.texinfo: Document the above.
3537
3538 2003-10-01 Akim Demaille <akim@epita.fr>
3539
3540 VCG no longer supports long_straight_phase.
3541
3542 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
3543 * src/print_graph.c (print_graph): Adjust.
3544
3545 2003-09-30 Frank Heckenbach <frank@g-n-u.de>
3546 and Paul Eggert <eggert@twinsun.com>
3547
3548 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
3549 Table of Symbols): Document %default-prec.
3550 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
3551 (grammar_declaration): Set default_prec on %default-prec.
3552 * src/scan-gram.l (%default-prec): New token.
3553 * src/reader.h (default_prec): New flag.
3554 * src/reader.c: Likewise.
3555 (packgram): Handle it.
3556 * tests/conflicts.at (%default-prec without %prec,
3557 %default-prec with %prec, %default-prec 1): New tests.
3558
3559 2003-09-30 Paul Eggert <eggert@twinsun.com>
3560
3561 * tests/testsuite.at: Include local.at, not input.at, fixing
3562 a typo in the 2003-08-25 patch.
3563
3564 2003-08-27 Akim Demaille <akim@epita.fr>
3565
3566 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
3567 GCC warnings.
3568
3569 2003-08-26 Akim Demaille <akim@epita.fr>
3570
3571 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
3572 "<\#" to avoid magic from Gnus when posting parts of this script.
3573
3574 2003-08-26 Akim Demaille <akim@epita.fr>
3575
3576 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
3577 (Parser::parse): here.
3578 Adjust: nerrs and errstatus is now replaced by...
3579 (Parser::nerrs_, Parser::errstatus_): New.
3580
3581 2003-08-25 Akim Demaille <akim@epita.fr>
3582
3583 * config/announce-gen, Makefile.cfg: New.
3584 * Makefile.am: Adjust.
3585 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
3586 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
3587
3588 2003-08-25 Akim Demaille <akim@epita.fr>
3589
3590 When reducing initial empty rules, Bison parser read an initial
3591 location that is not defined. This results in garbage, and that
3592 affects Bison's own parser. Therefore we need (i) to extend Bison
3593 to support a means to initialize this location, and (ii) to use
3594 this CVS Bison to fix CVS Bison's parser.
3595
3596 * src/reader.h, reader.c (epilogue_augment): Remove, replace
3597 with...
3598 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
3599 * src/parse-gram.y: Adjust.
3600 (%initial-action): New.
3601 (%error-verbose): Since we require CVS Bison, there is no reason
3602 not to use it.
3603 * src/scan-gram.l: Adjust.
3604 * src/Makefile.am (YACC): New, to make sure we use our own parser.
3605 * data/yacc.c (yyparse): Use b4_initial_action.
3606
3607 2003-08-25 Akim Demaille <akim@epita.fr>
3608
3609 * doc/bison.texinfo: Don't promote stdout for error messages.
3610
3611 2003-08-25 Akim Demaille <akim@epita.fr>
3612
3613 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
3614 From Alexandre Duret-Lutz.
3615
3616 2003-08-25 Akim Demaille <akim@epita.fr>
3617
3618 Version 1.875c.
3619
3620 2003-08-25 Akim Demaille <akim@epita.fr>
3621
3622 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
3623 Use them.
3624
3625 2003-08-25 Akim Demaille <akim@epita.fr>
3626
3627 * data/lalr1.cc (Parser::reduce_print_): New.
3628 Use it.
3629
3630 2003-08-25 Akim Demaille <akim@epita.fr>
3631
3632 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
3633 error recovery loops. This patch is based on
3634 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
3635 Also, augment the similarity between lalr1.cc and yacc.c.
3636 Note: the locations of error recovery rules are not correct yet.
3637
3638 * data/lalr1.cc: Comment changes to augment the similarity between
3639 lalr1.cc and yacc.c.
3640 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
3641 (yyerrlab1): Remove, but where it used to be (now the bottom part of
3642 yyerrlab), when hitting EOF, pop the whole stack here instead of
3643 merely falling thru the default error handling mechanism.
3644 (yyerrorlab): New label, with the old contents of YYERROR,
3645 plus the following change: pop the stack of rhs corresponding
3646 to the production that invoked YYERROR. That is how Yacc
3647 behaves (required by POSIX).
3648 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
3649 fail.
3650
3651 2003-08-25 Akim Demaille <akim@epita.fr>
3652
3653 Tune local.at so that people can "autom4te -l autotest calc.at -o
3654 calc" for instance, to extract a sub test suite.
3655
3656 * tests/testsuite.at: Move the initialization, Autotest version
3657 requirement, and AT_TESTED invocation into...
3658 * tests/local.at: here.
3659 * tests/testsuite.at: Include it for compatibility with Autoconf
3660 2.57.
3661 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
3662 be ignore.
3663
3664 2003-08-04 Paul Eggert <eggert@twinsun.com>
3665
3666 Rework code slightly to avoid gcc -Wtraditional warnings.
3667 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
3668 The returned value is now stored in *YY0. All callers changed.
3669 * src/output.c (merge_output): Adjust to the above change.
3670
3671 2003-07-26 Paul Eggert <eggert@twinsun.com>
3672
3673 * data/glr.c (YYASSERT): New macro.
3674 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
3675 yyresolveStates, yyprocessOneStack):
3676 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
3677 Derived from a suggestion by Frank Heckenbach.
3678
3679 2003-07-25 Paul Eggert <eggert@twinsun.com>
3680
3681 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
3682 for portability to K&R C (after ansi2knr, presumably). See
3683 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
3684 by Frank Heckenbach, though I have omitted the structure-initialization
3685 part of his glr-knr.diff patch since I recall that the Portable
3686 C Compiler didn't require that change.
3687
3688 Let the user specify how to allocate and free memory.
3689 Derived from a suggestion by Frank Heckenbach in
3690 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
3691 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
3692 All uses of free, malloc, realloc changed to use these macros,
3693 and unnecessary casts removed.
3694 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
3695
3696 2003-07-06 Matthias Mann <MatthiasMann@gmx.de>
3697
3698 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
3699 use s.empty() rather than s == "" to test for empty string; see
3700 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
3701 (trivial change)
3702
3703 2003-06-25 Akim Demaille <akim@epita.fr>
3704
3705 * config/depcomp, config/install-sh: Update from masters.
3706
3707 2003-06-20 Paul Eggert <eggert@twinsun.com>
3708
3709 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
3710 and return properly parenthesized result.
3711 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
3712 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
3713 Remove unnecessary parentheses from uses.
3714 * doc/bison.texinfo (Location Default Action): Describe the
3715 conventions for parentheses.
3716
3717 2003-06-19 Paul Eggert <eggert@twinsun.com>
3718
3719 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
3720 yyreportTree): Do not assume that size_t is the same width as int,
3721 when printing sizes. Print sizes using an unsigned format.
3722 Problem reported by Frank Heckenbach in
3723 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
3724
3725 Port to Forte Developer 7 C compiler.
3726 * data/glr.c (struct YYLTYPE): If locations are not being used,
3727 declare a single dummy member, as empty structs do not conform
3728 to the C standard.
3729 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
3730 the Forte Developer 7 C compiler complains that end-of-loop
3731 code is not reached.
3732
3733 2003-06-17 Paul Eggert <eggert@twinsun.com>
3734
3735 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
3736 avoid warnings from picky compilers about redefinition of PARAMS.
3737
3738 2003-06-17 Paul Eggert <eggert@twinsun.com>
3739
3740 Version 1.875b.
3741
3742 * NEWS: Document 1.875b.
3743
3744 * lib/bbitset.h: Do not include config.h; that's the includer's job.
3745 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
3746 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
3747 Don't use 'index' in comments, as it's a builtin fn on some hosts.
3748 * lib/bitset_stats.c: Include gettext.h unconditionally, as
3749 per recent gettext manual's suggestion.
3750 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
3751 Use prototypes, not old-style definitions.
3752 * lib/lbitset.c (lbitset_unused_clear): Likewise.
3753 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
3754 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
3755 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
3756 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
3757 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
3758 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
3759 vbitset_or_and_cmp, vbitset_copy): Likewise.
3760
3761 * lib/libiberty.h: Do not include config.h; that's the includer's job.
3762 Do not include <stdlib.h>.
3763 (PARAMS): Define unconditionally for C89.
3764 (ATTRIBUTE_NORETURN): Remove.
3765 (ATTRIBUTE_UNUSED): Define unconditionally.
3766
3767 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
3768 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
3769 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
3770 * lib/vbitset.c, lib/vbitset.h: New files.
3771 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
3772 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
3773 from libbitset.
3774
3775 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
3776 `How Can I Reset @code{yyparse}', since texinfo does not allow
3777 arbitrary @ in node names.
3778
3779 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
3780 shouldn't be needed according to the gettext 0.12.1 documentation
3781 but which seem to be needed anyway: codeset.m4 glibc21.m4
3782 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
3783 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
3784 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
3785
3786 * lib/.cvsignore: Add stdbool.h.
3787 * m4/.cvsignore: Add nls.m4, po.m4.
3788
3789 Upgrade to CVS gnulib.
3790 * stdbool_.h: File renamed from stdbool.h.in.
3791 * configure.ac (AM_STDBOOL_H): Invoke this instead of
3792 AC_HEADER_STDBOOL.
3793 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
3794 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
3795 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
3796 (MOSTLYCLEANFILES): New var.
3797 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
3798 (stdbool.h): New rule.
3799 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
3800 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
3801 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
3802 m4/quote.m4: Upgrade to today's gnulib.
3803
3804 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
3805 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
3806 the tests right now.
3807 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
3808 yyerror are declared before use; C99 requires this.
3809
3810 2003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3811
3812 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
3813 first.
3814 (yyrecoverSyntaxError): Correct the logic for setting and testing
3815 yyerrState.
3816 Correct comment on handling EOF.
3817 Allow states with only a default reduction, rather than failing
3818 (I can't quite reconstruct why these were not allowed before).
3819
3820 Fixes to avoid problem that $-N rules in GLR parsers can cause
3821 buffer overruns, corrupting state.
3822
3823 * src/output.c (prepare_rules): Output max_left_semantic_context
3824 definition.
3825 * src/reader.h (max_left_semantic_context): New variable declaration.
3826 * src/scan-gram.l (max_left_semantic_context): Define.
3827 (handle_action_dollar): Update max_left_semantic_context.
3828 * data/glr.c (YYMAXLEFT): New definition.
3829 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
3830 (yyresolveAction): Ditto.
3831
3832 Fixes to problems with location handling in GLR parsers reported by
3833 Frank Heckenbach (2003/06/05).
3834
3835 * data/glr.c (YYLTYPE): Make trivial if locations not used.
3836 (YYRHSLOC): Add parentheses, and define only if locations used.
3837 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
3838 locations not used.
3839 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
3840 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
3841
3842 * tests/cxx-type.at: Exercise location information; update tests
3843 to differentiate output with and without locations.
3844 Remove forward declarations of yylex and yyerror---caused errors
3845 because default YYLTYPE not yet defined.
3846 Change semantic actions to compute strings, rather than printing
3847 them directly (to test proper passing of semantics values). Change
3848 output to prefix notation and update test data and expected results.
3849 (yylex): Track locations.
3850 (stmtMerge): Return value rather than printing, and include arguments
3851 in value.
3852
3853 2003-06-03 Paul Eggert <eggert@twinsun.com>
3854
3855 Avoid warnings generated by GCC 2.95.4 when Bison is
3856 configured with --enable-gcc-warnings.
3857 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
3858 yy::]b4_parser_class_name[::translate_,
3859 yy::Stack::operator[] (unsigned),
3860 yy::Stack::operator[] (unsigned) const,
3861 yy::Slice::operator[] (unsigned),
3862 yy::Slice::operator[] (unsigned) const):
3863 Rename local vars to avoid warnings.
3864 * tests/glr-regression.at (Improper handling of embedded actions
3865 and $-N in GLR parsers): Remove unused local variable from yylex.
3866 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
3867 (void) as arg when not pure, since we now assume C89 when building
3868 Bison. Pacify GCC by using parameter.
3869
3870 2003-06-02 Paul Eggert <eggert@twinsun.com>
3871
3872 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
3873 yy::Location::lines, yy::Location::columns): Rename arguments
3874 to avoid shadowing; this removes a warning generated by GCC 3.3.
3875
3876 2003-06-01 Paul Eggert <eggert@twinsun.com>
3877
3878 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
3879 to g++, as GCC 3.3 complains if you do it.
3880 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
3881 everything that WARNING_CFLAGS has, except omit warnings
3882 not suitable for C++.
3883 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
3884 * tests/atlocal.in (CXXFLAGS): New var.
3885 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
3886
3887 Fix a GLR parser bug I reported in February; see
3888 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
3889 The problem was that GLR parsers did not conform to the C standard,
3890 because actions like { $1 = $2 + $3; } expanded to expressions
3891 that invoked YYFILL in separate subexpressions, and YYFILL assigned
3892 to a local variable. The C standard says that expressions
3893 like (var = f ()) + (var = f ()) have undefined behavior.
3894 Another problem was that GCC sometimes issues warnings that
3895 yyfill and its parameters are unused.
3896
3897 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
3898 as possibly unused.
3899 (yyfill): New function.
3900 (YYFILL): Use it.
3901 (yyuserAction): Change type of yynormal to bool, so that it matches
3902 the new yyfill signature. Mark it as possibly unused.
3903
3904
3905 Follow up on a bug I reported in February, where a Bison-generated
3906 parser can loop. Provide a test case and a fix for yacc.c. I
3907 don't have a fix for lalr1.cc or for glr.c, unfortunately.
3908 The original bug report is in:
3909 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
3910
3911 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
3912 macro's size was becoming unwieldy.
3913 (yyerrlab): Do not discard an empty lookahead symbol, as this
3914 might destroy garbage.
3915 (yyerrorlab): New label, with the old contents of YYERROR,
3916 plus the following change: pop the stack of rhs corresponding
3917 to the production that invoked YYERROR. That is how Yacc
3918 behaves, and POSIX requires this behavior.
3919 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
3920 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
3921 Define 'alarm' to do nothing if unistd.h is not available.
3922 Add a new rule "exp: '-' error;" to test the above change to
3923 data/yacc.c. Use 'alarm' to abort any test taking longer than
3924 10 seconds, as it's probably looping.
3925 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
3926 Also, the new yacc.c generates two fewer diagnostics for an
3927 existing test.
3928
3929 2003-05-24 Paul Eggert <eggert@twinsun.com>
3930
3931 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
3932 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
3933 This fixes a problem reported by John Bowman when the Compaq/HP
3934 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
3935 -ansi -Wall -gall).
3936 * data/yacc.c (union yyalloc): Likewise.
3937 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
3938
3939 Switch from 'int' to 'bool' where that makes sense.
3940
3941 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
3942 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
3943 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
3944 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
3945 Return or accept bool, not int. All callers changed.
3946 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
3947 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
3948 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
3949 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
3950 bitset_or_and_cmp_): Likewise.
3951 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
3952 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
3953 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
3954 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
3955 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
3956 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
3957 bitset_stats_or_and_cmp): Likewise.
3958 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
3959 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
3960 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
3961 ebitset_xor_cmp): Likewise.
3962 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
3963 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
3964 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
3965 lbitset_xor_cmp): Likewise.
3966 * lib/bbitset.h: Include <stdbool.h>.
3967 (struct bitset_vtable): The following members now return bool, not
3968 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
3969 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
3970 or_and_cmp).
3971 * src/conflicts.c (count_rr_conflicts): Likewise.
3972 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
3973 All uses changed.
3974 * lib/ebitset.c (ebitset_obstack_init): Likewise.
3975 * lib/lbitset.c (lbitset_obstack_init): Likewise.
3976 * src/getargs.c (debug_flag, defines_flag, locations_flag,
3977 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
3978 graph_flag): Likewise.
3979 * src/getargs.h (debug_flag, defines_flag, locations_flag,
3980 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
3981 graph_flag): Likewise.
3982 * src/output.c (error_verbose): Likewise.
3983 * src/output.h (error_verbose): Likewise.
3984 * src/reader.c (start_flag, typed): Likewise.
3985 * src/reader.h (typed): Likewise.
3986 * src/getargs.c (LOCATIONS_OPTION): New constant.
3987 (long_options, getargs): Use it.
3988 * src/lalr.c (build_relations): Use bool, not int.
3989 * src/nullable.c (nullable_compute): Likewise.
3990 * src/print.c (print_reductions): Likewise.
3991 * src/tables.c (action_row, pack_vector): Likewise.
3992 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
3993 * src/output.c (prepare): Use it.
3994 * src/output.c (token_definitions_output,
3995 symbol_destructors_output, symbol_destructors_output): Use string,
3996 not boolean integer, to keep track of whether to output separator.
3997 * src/print_graph.c (print_core): Likewise.
3998 * src/state.c (state_rule_lookaheads_print): Likewise.
3999
4000 * config/install-sh: Sync from automake 1.7.5.
4001
4002 2003-05-14 Paul Eggert <eggert@twinsun.com>
4003
4004 * src/parse-gram.y (rules_or_grammar_declaration): Require a
4005 semicolon after a grammar declaration, in the interest of possible
4006 future changes to the Bison input language.
4007 Do not allow a stray semicolon at the start of the grammar.
4008 (rhses.1): Allow one or more semicolons after any rule, including
4009 just before "|" as required by POSIX.
4010 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
4011 grammar.
4012
4013 2003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
4014
4015 %parse-param support for lalr1.cc.
4016
4017 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
4018 b4_cc_constructor_calls, b4_cc_constructor_call,
4019 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
4020 definitions.
4021 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
4022 parse-param arguments.
4023 (yy::b4_parser_class_name): Declare instance variables to
4024 hold parse-param arguments.
4025 * tests/calc.at: s/value/semantic_value/ because value clashes
4026 with a member of yy::b4_parser_class_name. Adjust C++ code
4027 to handle %parse-param. Enable %parse-param test in C++.
4028
4029 2003-05-12 Paul Eggert <eggert@twinsun.com>
4030
4031 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
4032 English a bit. Fix fclose typo. Change "const char" to "char
4033 const", and use ANSI C rather than K&R for "main". Suggest
4034 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
4035 and suggest yy_switch_to_buffer.
4036
4037 2003-05-05 Paul Eggert <eggert@twinsun.com>
4038
4039 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
4040 C89. This avoids a diagnostic on compilers that define __STDC__
4041 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
4042 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
4043
4044 2003-05-03 Paul Eggert <eggert@twinsun.com>
4045
4046 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
4047 Do not overrun array bounds.
4048 This should fix a bug reported today by Olatunji Oluwabukunmi in
4049 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
4050
4051 2003-04-29 Akim Demaille <akim@epita.fr>
4052
4053 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
4054 * src/getargs.c, src/getargs.h: here, as bool, not int.
4055 (nondeterministic_parser): New.
4056 * src/parse-gram.y, src/scan-gram.l: Support
4057 %nondeterministic-parser.
4058 * src/output.c (prepare): Use nondeterministic_parser instead
4059 of glr_parser where appropriate.
4060 * src/tables.c (conflict_row, action_row, save_row)
4061 (token_actions, token_actions, pack_vector): Ditto.
4062
4063 2003-04-29 Akim Demaille <akim@epita.fr>
4064
4065 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
4066
4067 2003-04-29 Akim Demaille <akim@epita.fr>
4068
4069 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
4070 with %pure-parser and %locations to exercise the patch from Yakov
4071 Markovitch below.
4072
4073 2003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
4074
4075 * data/yacc.c: (b4_lex_param): Corrected for the case where
4076 %lex-param is provided and %pure-parser isn't.
4077
4078 2003-04-27 Paul Eggert <eggert@twinsun.com>
4079
4080 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
4081 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
4082 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
4083 if it is not defined.
4084 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
4085
4086 2003-04-26 Paul Eggert <eggert@twinsun.com>
4087
4088 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
4089 Declare to be of type suitable for the ninf value itself, not of
4090 type suitable for the corresponding table, since the latter might
4091 be unsigned but the ninf value might be negative. This fixes a
4092 bug reported by Alexandre Duret-Lutz in
4093 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
4094
4095 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
4096 invokes it. We shouldn't invoke it twice because it will attempt
4097 to put error.o in the archive twice. This fixes a glitch reported
4098 by Martin Mokrejs in
4099 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
4100
4101 2003-04-21 Paul Eggert <eggert@twinsun.com>
4102
4103 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
4104 to gnulib.
4105
4106 2003-04-21 Yakov Markovitch <Markovitch@iso.ru>
4107
4108 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
4109 Fix obvious typo that results in uncompilable GLR parsers
4110 when both %pure-parser and %locations are used. (trivial change)
4111
4112 2003-04-17 Paul Eggert <eggert@twinsun.com>
4113
4114 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
4115 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
4116 Do not insert the expected token via unput, as this runs afoul
4117 of a POSIX-compatibility bug in flex 2.5.31.
4118 All uses changed to BEGIN the parent state,
4119 since we no longer insert the expected token via unput.
4120 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
4121 that is no longer emitted after the above change.
4122
4123 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
4124 the first one. This change is from Paul Hilfinger, and it fixes
4125 regression reported by Werner Lemberg in
4126 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
4127
4128 (resolve_sr_conflict): Don't invoke state_errs_set
4129 unless one or more tokens have been explicitly made errors.
4130 Otherwise, the above change causes Bison to abort.
4131
4132 * tests/existing.at (GNU pic Grammar): New test case, taken from
4133 Lemberg's email.
4134
4135 2003-03-31 Akim Demaille <akim@epita.fr>
4136
4137 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
4138
4139 2003-03-31 Akim Demaille <akim@epita.fr>
4140
4141 * src/output.c (prepare_symbols): Avoid trailing spaces in the
4142 output.
4143
4144 2003-03-31 Akim Demaille <akim@epita.fr>
4145
4146 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
4147 From Paul Hilfinger.
4148
4149 2003-03-29 Akim Demaille <akim@epita.fr>
4150
4151 * m4/error.m4: Do not put under dynamic conditions some code which
4152 expansion is under static control.
4153
4154 2003-03-29 Akim Demaille <akim@epita.fr>
4155
4156 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
4157
4158 2003-03-29 Akim Demaille <akim@epita.fr>
4159
4160 * doc/bison.texinfo (Strings are Destroyed): New.
4161
4162 2003-03-13 Paul Eggert <eggert@twinsun.com>
4163
4164 * .cvsignore: Add configure.lineno.
4165 * src/.cvsignore: Add yacc.
4166 * tests/.cvsignore: Add testsuite.log.
4167 * doc/fdl.texi: Sync with latest FSF version.
4168
4169 2003-03-12 Paul Eggert <eggert@twinsun.com>
4170
4171 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
4172 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
4173 cursor, instead of leaving it undefined. This fixes a bug
4174 reported by Tim Van Holder in
4175 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
4176 * tests/input.at (Torturing the Scanner): Test the scanner on
4177 an empty input file, which was Tim Van Holder's test case.
4178
4179 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
4180 <sys/resource.h> can be included, include sys/time.h and
4181 sys/times.h first, if available. This works around the SunOS
4182 4.1.4 porting bug reported by Bruce Becker in
4183 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
4184
4185 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
4186 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
4187 AC_HEADER_SYS_WAIT.
4188
4189 Merge changes from gnulib. This was prompted because the CVS
4190 snapshot didn't build on Solaris 7 due to strnlen problems.
4191
4192 These changes need to be merged back into gnulib:
4193 * lib/hash.c: Include <stdbool.h> unconditionally.
4194 * m4/onceonly.m4 (m4_quote): New macro.
4195 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
4196 Quote AC_FOREACH variable-expansions properly.
4197 The 2003-01-03 obstack.h change also needs merging.
4198 {end of changes requiring merging}
4199
4200 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
4201 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
4202 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
4203 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
4204 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
4205 New files, imported from gnulib.
4206 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
4207 above.
4208
4209 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
4210 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
4211 gnulib sources.
4212
4213 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
4214 Add.
4215 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
4216 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
4217 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
4218 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
4219 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
4220 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
4221 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
4222 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
4223 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
4224 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
4225 (jm_PREREQ_ARGMATCH): Remove.
4226 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
4227 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
4228
4229 * src/system.h: Include <stdbool.h> unconditionally.
4230
4231 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
4232 assuming at least C89 in the bitset code for some time now.
4233
4234 2003-03-03 Akim Demaille <akim@epita.fr>
4235
4236 * ro.po: New.
4237
4238 2003-03-02 Akim Demaille <akim@epita.fr>
4239
4240 * doc/bison.texinfo (Table of Symbols): Reactivate the
4241 documentation for %lex-param, and %parse-param.
4242
4243 2003-03-02 Akim Demaille <akim@epita.fr>
4244
4245 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
4246 generate verbose error messages.
4247 Use the number of tokens as an upper bound in yytname, as it
4248 cannot be a non terminal.
4249
4250 2003-03-02 Akim Demaille <akim@epita.fr>
4251
4252 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
4253 message.
4254
4255 2003-03-02 Akim Demaille <akim@epita.fr>
4256
4257 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
4258 Use them to exercise yycheck overrun.
4259 Based on Andrew Suffield's grammar.
4260
4261 2003-03-02 Akim Demaille <akim@epita.fr>
4262
4263 Create tests/local.at for Bison generic testing macros.
4264
4265 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
4266 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
4267 This new file.
4268 * tests/calc.at (AT_CHECK_CALC): Adjust.
4269 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
4270 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
4271 * tests/local.at: here.
4272 (AT_COMPILE_CXX): Tags the tests using it as c++.
4273 Ignore the test if CXX is not functional.
4274
4275 2003-03-01 Paul Eggert <eggert@twinsun.com>
4276
4277 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
4278 not loc->end, since loc->end might contain garbage and this leads
4279 to undefined behavior on some platforms.
4280 (id_loc, token_start): Use (IF_LINTed) initial values that do not
4281 depend on *loc, so that the reader doesn't give the the false
4282 impression that *loc is initialized.
4283 (<INITIAL>"%%"): Do not bother setting code_start, since its value
4284 does not survive the return.
4285
4286 2003-03-01 Akim Demaille <akim@epita.fr>
4287
4288 * src/scan-gram.l (code_start): Always initialize it when entering
4289 into yylex, as SC_EPILOGUE is activated *before* the corresponding
4290 yylex invocation. An alternative would be making it static, but
4291 then it starts with the second %%'s beginning, instead of its end.
4292
4293 2003-02-28 Paul Eggert <eggert@twinsun.com>
4294
4295 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
4296 around a UnixWare 7.1.1 porting bug reported by John Hughes in
4297 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
4298
4299 2003-02-26 Paul Eggert <eggert@twinsun.com>
4300
4301 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
4302 Remove Sequent/Pyramid discussion (nobody uses them any more).
4303 Merge VMS and MS-DOS discussion; these ports may well be dead
4304 but let's keep mentioning them for now. Put <> around email
4305 addresses. Add copyright notice.
4306
4307 2003-02-24 Paul Eggert <eggert@twinsun.com>
4308
4309 * data/glr.c (yy_reduce_print): yylineno -> yylno,
4310 to avoid collision with flex use of yylineno.
4311 Problem reported by Bruce Lilly in
4312 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
4313 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
4314 * data/yacc.c (yy_reduce_print): Likewise.
4315
4316 * config/depcomp: Sync with Automake 1.7.3.
4317
4318 2003-02-21 Akim Demaille <akim@epita.fr>
4319
4320 * data/lalr1.cc: Use temporary variables instead of casts to
4321 change integer types.
4322 Suggested by Paul Eggert.
4323
4324 2003-02-21 Akim Demaille <akim@epita.fr>
4325
4326 * doc/bison.texinfo: Use "location" consistently to refer to @n,
4327 to avoid confusions with lalr1.cc's notion of Position.
4328 Suggested by Paul Eggert.
4329
4330 2003-02-20 Akim Demaille <akim@epita.fr>
4331
4332 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
4333 before initial_columns.
4334 (location.hh): Use consistent variable names when defining the
4335 operator<<.
4336 Use "last" so that we subtract from Positions, not from unsigned.
4337
4338 2003-02-20 Akim Demaille <akim@epita.fr>
4339
4340 * data/lalr1.cc (position.hh): New subfile, including the extended
4341 and Doxygen'ed documentation of class Position.
4342 (location.hh): Use it.
4343 Document a` la Doxygen.
4344 With the help of Benoit Perrot.
4345
4346 2003-02-20 Akim Demaille <akim@epita.fr>
4347
4348 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
4349 AT_YACC_IF.
4350 Redefine AT_YYERROR_SEES_LOC_IF using it.
4351 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
4352 not defined.
4353 Don't use the location in yy::Parser::error_ and
4354 yy::Parser::print_ when not %locations.
4355 Activate more lalr1.cc tests.
4356
4357 2003-02-19 Akim Demaille <akim@epita.fr>
4358
4359 * data/lalr1.cc: When displaying a line number, be sure to make it
4360 an int.
4361
4362 2003-02-19 Akim Demaille <akim@epita.fr>
4363
4364 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
4365 Remove, useless.
4366 (YYABORT, YYACCEPT, YYERROR): New.
4367 * tests/calc.at: Renable the lalr1.cc test.
4368
4369 2003-02-19 Akim Demaille <akim@epita.fr>
4370
4371 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
4372 error recovery, mixing with/without pops and discarding of the
4373 lookahead.
4374 Exercise YYERROR.
4375 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
4376
4377 2003-02-17 Paul Eggert <eggert@twinsun.com>
4378
4379 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
4380 * tests/testsuite.at (AT_COMPILE): Use them.
4381 This fixes the testsuite problem reported by Robert Lentz in
4382 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
4383
4384 2003-02-12 Paul Eggert <eggert@twinsun.com>
4385
4386 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
4387 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
4388 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
4389 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
4390 Check for malloc failure, for consistency with yacc.c.
4391 (yytname_size): Remove, for consistency with yacc.c.
4392
4393 The bug still remains in data/lalr1.cc, as I didn't have time
4394 to fix it there.
4395
4396 2003-02-06 Akim Demaille <akim@epita.fr>
4397
4398 * configure.ac (GXX): Rename as...
4399 (CXX): this, to keep the original Autoconf semantics.
4400 Require 2.57.
4401 * data/lalr1.cc: Fix b4_copyright invocations.
4402 If YYDEBUG is not defined, don't depend upon name_ being defined.
4403 (location.hh): Include string and iostream.
4404 (Position::filename): New member.
4405 (Position::Position ()): New.
4406 (operator<< (Position)): New.
4407 (operator- (Position, int)): New.
4408 (Location::first, Location::last): Rename as...
4409 (Location::begin, Location::end): these, to mock the conventional
4410 iterator names.
4411 (operator<< (Location)): New.
4412 * tests/atlocal.in (CXX): New.
4413 * tests/testsuite.at (AT_COMPILE_CXX): New.
4414 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
4415 locations in a more synthetic way.
4416 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
4417 lalr1.cc is used.
4418 Adjust the C locations to match those from Emacs: first column is
4419 column 0.
4420 Change all the expected results.
4421 Conform to the GCS: simplify the locations when applicable.
4422 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
4423 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
4424 these CPP macros with the m4 macros new defined by...
4425 (AT_CHECK_PUSHDEFS): this, i.e.:
4426 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
4427 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
4428 New macros.
4429 (AT_CHECK_POPDEFS): Undefine them.
4430 (AT_CHECK_CALC_LALR1_CC): New.
4431 Use it for the first lalr1.cc test.
4432
4433 2003-02-04 Akim Demaille <akim@epita.fr>
4434
4435 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
4436 Location as is defined.
4437
4438 2003-02-04 Akim Demaille <akim@epita.fr>
4439
4440 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
4441 name_ being defined.
4442
4443 2003-02-03 Paul Eggert <eggert@twinsun.com>
4444
4445 * src/gram.h (start_symbol): Remove unused decl.
4446
4447 Use more-consistent naming conventions for local vars.
4448
4449 * src/derives.c (derives_compute): Change type of local var from
4450 int to rule_number.
4451 * src/gram.c (grammar_rules_partial_print): Likewise.
4452 * src/print.c (print_core): Likewise.
4453 * src/reduce.c (reduce_grammar_tables): Likewise.
4454
4455 * src/gram.c (grammar_dump): Change name of item_number *
4456 local var from r to rp.
4457 * src/nullable.c (nullable_compute): Likewise.
4458
4459 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
4460
4461 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
4462 for symbol or symbol_number var.
4463 * src/reader.c (grammar_start_symbol_set): Likewise.
4464 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
4465 Likewise.
4466 * src/state.c (transitions_to): Likewise.
4467 * src/state.h: Likewise.
4468 * src/tables.c (symbol_number_to_vector_number): Likewise.
4469
4470 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
4471 char * var.
4472
4473 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
4474 var.
4475
4476 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
4477 var.
4478
4479 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
4480 Use str, not s, for char * var. Use ch, not c, for character var.
4481 Use size for size var.
4482
4483 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
4484 char * var.
4485 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
4486 uniqstr var.
4487 * src/uniqstr.h: Likewise.
4488
4489 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
4490 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
4491 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
4492 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
4493 param to have same name as that of enum, so that we don't use
4494 "s" to stand for a non-state.
4495
4496 2003-02-02 Akim Demaille <akim@epita.fr>
4497
4498 * src/scan-skel.l: Scan more than one inert character per yylex
4499 invocation.
4500
4501 2003-02-01 Paul Eggert <eggert@twinsun.com>
4502
4503 Version 1.875a.
4504
4505 * po/LINGUAS: Add ms.
4506
4507 2003-01-30 Akim Demaille <akim@epita.fr>
4508
4509 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
4510
4511 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4512
4513 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
4514 of $1.
4515
4516 Changes in response to error report by S. Eken: GLR mode does not
4517 handle negative $ indices or $ indices in embedded rules correctly.
4518 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
4519
4520 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
4521 (b4_rhs_location): Ditto.
4522 (yyfill): New function to copy from stack tree into array
4523 incrementally.
4524 (yyuserAction): Modify to allow incremental move of semantic values
4525 to rhs array when in GLR mode.
4526 Define YYFILL to use in user-defined actions to fill semantic array
4527 as needed.
4528 Remove dummy use of yystack, as there is now a guaranteed use.
4529 (yydoAction): Modify to allow incremental move of semantic values
4530 to rhs array when in GLR mode.
4531 (yyresolveAction): Ditto.
4532 (yyglrShiftDefer): Update comment.
4533 (yyresolveStates): Use X == NULL for pointers, not !X.
4534 (yyglrReduce): Ditto.
4535 (yydoAction): Ditto
4536
4537 * tests/glr-regr1.at: Rename to ...
4538 * tests/glr-regression.at: Add new regression test for the problems
4539 described above (adapted from S. Eken).
4540 Update copyright notice.
4541 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
4542 * tests/Makefile.am: Ditto.
4543
4544 2003-01-28 Paul Eggert <eggert@twinsun.com>
4545
4546 * data/lalr1.cc: Do not use @output_header_name@ unless
4547 b4_defines_flag is set. This fixes two bugs reported by
4548 Tim Van Holder in
4549 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
4550 and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
4551
4552 2003-01-21 Paul Eggert <eggert@twinsun.com>
4553
4554 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
4555 we don't need to worry about yyerrlab1 being reported as an
4556 "unused label" by non-GCC C compilers. The downside is that if
4557 locations are used then a couple of statements are duplicated each
4558 time YYERROR is invoked, but the upside is that the warnings
4559 should vanish.
4560 (yyerrlab1): Move code to YERROR.
4561 (yyerrlab2): Remove. Change uses back to yyerrlab1.
4562 This reverts some of the 2002-12-27 change.
4563
4564 2003-01-17 Paul Eggert <eggert@twinsun.com>
4565
4566 * src/output.c (symbol_printers_output): Fix typo that led
4567 to core dump. Problem reported by Antonio Rus in
4568 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
4569
4570 2003-01-13 Akim Demaille <akim@epita.fr>,
4571 Quoc Peyrot <chojin@lrde.epita.fr>,
4572 Robert Anisko <anisko_r@lrde.epita.fr>
4573
4574 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
4575 when the stacks contain one element, as the loop would otherwise
4576 free the last state, and then use the top state (the one we just
4577 popped). This means that the initial elements will not be freed
4578 explicitly, as is the case in yacc.c; it is not a problem, as
4579 these elements have fake values.
4580
4581 2003-01-11 Paul Eggert <eggert@twinsun.com>
4582
4583 * NEWS: %expect-violations are now just warnings, reverting
4584 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
4585 bootstrapping problem reported by Matthias Klose; see
4586 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
4587 * src/conflicts.c (conflicts_print): Likewise.
4588 * tests/conflicts.at (%expect not enough, %expect too much,
4589 %expect with reduce conflicts): Likewise.
4590 * doc/bison.texinfo (Expect Decl): Document this. Also mention
4591 that the warning is enabled if the number of conflicts changes
4592 (not necessarily increases).
4593
4594 * src/getargs.c (version): Update copyright year.
4595
4596 2003-01-09 Akim Demaille <akim@epita.fr>
4597
4598 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
4599
4600 2003-01-08 Paul Eggert <eggert@twinsun.com>
4601
4602 * Makefile.maint (WGETFLAGS):
4603 New macro, containing "-C off" to disable proxy caches.
4604 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
4605 (rel-check): Use $(WGET) instead of wget.
4606
4607 2003-01-06 Paul Eggert <eggert@twinsun.com>
4608
4609 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
4610 the GLR paper of Scott, Johnstone and Hussain.
4611
4612 2003-01-04 Paul Eggert <eggert@twinsun.com>
4613
4614 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
4615 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
4616 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
4617 (EXTRA_LIBRARIES): New var, for liby.a.
4618 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
4619 (EXTRA_SCRIPTS): New var, for yacc.
4620
4621 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
4622 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
4623 Problem reported by Nelson H. F. Beebe.
4624
4625 2003-01-03 Paul Eggert <eggert@twinsun.com>
4626
4627 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
4628 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
4629 when compiling Bison 1.875's `bitset bset = obstack_alloc
4630 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
4631
4632 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
4633 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
4634 grow to a huge size with typical invocation.
4635
4636 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
4637 Use the pattern recommended by Autoconf 2.57, except also protect
4638 against double-definition.
4639 * src/system.h: Likewise.
4640 Portability issues reported by Nelson H. F. Beebe.
4641
4642 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
4643 All uses changed. Provide a definition in both C and C++.
4644 (yytrue, yyfalse): Define even if defined (__cplusplus).
4645
4646 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
4647 Reported by Nelson H. F. Beebe.
4648
4649 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
4650
4651 2003-01-02 Paul Eggert <eggert@twinsun.com>
4652
4653 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
4654 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
4655 Bug reported by Nelson H. F. Beebe.
4656
4657 2003-01-01 Paul Eggert <eggert@twinsun.com>
4658
4659 * Version 1.875.
4660
4661 2002-12-30 Paul Eggert <eggert@twinsun.com>
4662
4663 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
4664 Moved here from...
4665 (<INITIAL>","): Here. This causes stray "," to be treated
4666 more uniformly.
4667
4668 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
4669 last brace in braced code when not in Yacc mode, for compatibility
4670 with Bison 1.35. This resurrects the 2001-12-15 patch to
4671 src/reader.c.
4672
4673 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
4674 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
4675
4676 2002-12-28 Paul Eggert <eggert@twinsun.com>
4677
4678 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
4679 that of SYM's type. This fixes Debian bug 168069, reported by
4680 Thomas Olsson.
4681
4682 2002-12-28 Paul Eggert <eggert@twinsun.com>
4683
4684 Version 1.75f.
4685
4686 Switch back to the Yacc style of conflict reports, undoing some
4687 of the 2002-07-30 change.
4688 * doc/bison.texinfo (Understanding): Use Yacc style for
4689 conflict reports. Also, use new way of locating rules.
4690 * src/conflicts.c (conflict_report):
4691 Renamed from conflict_report_yacc, removing the old
4692 'conflict_report'. Translate the entire conflict report at once,
4693 so that we don't assume that "," has the same interpretation in
4694 all languages.
4695 (conflicts_output): Use Yacc-style conflict report for each state,
4696 instead of our more-complicated style.
4697 (conflicts_print): Use Yacc-style conflict report, except print
4698 the input file name when not emulating Yacc.
4699 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
4700 Conflicted Reduction, %expect not enough, %expect too much,
4701 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
4702 * tests/existing.at (GNU Cim Grammar): Likewise.
4703 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
4704
4705 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
4706 fatal): Don't invoke fflush; it's not needed and it might even be
4707 harmful for stdout, as stdout might not be open.
4708 * src/reduce.c (reduce_print): Likewise.
4709
4710 2002-12-27 Paul Eggert <eggert@twinsun.com>
4711
4712 Fix a bug where error locations were not being recorded correctly.
4713 This problem was originally reported by Paul Hilfinger in
4714 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
4715
4716 * data/yacc.c (yyparse): New local var yylerrsp, to record the
4717 top of the location stack's error locations.
4718 (yyerrlab): Set it. When discarding a token, push its location
4719 onto yylerrsp so that we don't lose track of the error's end.
4720 (yyerrlab1): Now is only the target of YYERROR, so that we can
4721 properly record the location of the action that failed. For GCC
4722 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
4723 GCC warning about yyerrlab1 being unused if YYERROR is unused.
4724 (yyerrlab2): New label, which yyerrlab now falls through to.
4725 Compute the error's location by applying YYLLOC_DEFAULT to
4726 the locations of all the symbols that went into the error.
4727 * doc/bison.texinfo (Location Default Action): Mention that
4728 YYLLOC_DEFAULT is also invoked for syntax errors.
4729 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
4730 Error locations include the locations of all the tokens that were
4731 discarded, not just the last token.
4732
4733 2002-12-26 Paul Eggert <eggert@twinsun.com>
4734
4735 * src/files.c: Include quote.h.
4736 (compute_output_file_names): Warn if we detect conflicting
4737 outputs to the same file. This should catch the misunderstanding
4738 exemplified by Debian Bug 165349, reported by Bruce Stephens..
4739
4740 * src/conflicts.c (conflicts_print): If the user specifies
4741 "%expect N", report an error if there are any reduce/reduce
4742 conflicts. This is what the manual says should happen.
4743 This fixes Debian bug 130890, reported by Anthony DeRobertis.
4744 * tests/conflicts.at (%expect with reduce conflicts): New test.
4745
4746 Don't use m4_include on relative file names, as it doesn't work as
4747 desired if there happens to be a file with that name under ".".
4748
4749 * m4sugar/version.m4: Remove; it was included but it wasn't used.
4750 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
4751 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
4752 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
4753 * src/output.c (output_skeleton): Use full path names when
4754 specifying a file to include; don't rely on include path, as
4755 it's unreliable when the working file contains a file with
4756 that name.
4757
4758 2002-12-25 Paul Eggert <eggert@twinsun.com>
4759
4760 Remove obsolete references to bison.simple and bison.hairy.
4761 Problem mentioned by Aubin Mahe in
4762 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
4763 * data/glr.c: Comment fix.
4764 * doc/bison.1: Remove references. Also, mention "yacc".
4765
4766 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
4767 with -g option.
4768
4769 * src/parse-gram.y (declaration): Use enum "report_states" rather
4770 than its numeric value 1.
4771
4772 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
4773 opening a new one. This fixes Debian bug 165349, reported by
4774 Bruce Stephens.
4775
4776 2002-12-24 Paul Eggert <eggert@twinsun.com>
4777
4778 Version 1.75e.
4779
4780 * Makefile.maint (cvs-update): Don't assume that the shell
4781 supports $(...), as Solaris sh doesn't.
4782
4783 * src/parse-gram.y (lloc_default): Remove test for empty
4784 nonterminals at the end, since it didn't change the result.
4785
4786 2002-12-24 Paul Eggert <eggert@twinsun.com>
4787
4788 If the user does not define YYSTYPE as a macro, Bison now declares it
4789 using typedef instead of defining it as a macro. POSIX requires this.
4790 For consistency, YYLTYPE is also declared instead of defined.
4791
4792 %union directives can now have a tag before the `{', e.g., the
4793 directive `%union foo {...}' now generates the C code
4794 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
4795 The default union tag is `YYSTYPE', for compatibility with Solaris 9
4796 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
4797 instead of `yyltype'.
4798
4799 `yystype' and `yyltype' are now obsolescent macros instead of being
4800 typedefs or tags; they are no longer documented and will be
4801 withdrawn in a future release.
4802
4803 * data/glr.c (b4_location_type): Remove.
4804 (YYSTYPE): Renamed from yystype.
4805 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
4806 (struct YYLTYPE): Renamed from struct yyltype.
4807 (YYLTYPE): Renamed from yyltype.
4808 (yyltype, yystype): New (and obsolescent) macros,
4809 for backward compatibility.
4810 * data/yacc.c: Likewise.
4811
4812 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
4813 does not specify a union tag. This is for compatibility with
4814 Solaris 9 yacc.
4815
4816 * src/parse-gram.y (add_param): 2nd arg is now char * not char
4817 const *, since it is now modified by stripping surrounding { }.
4818 (current_braced_code): Remove.
4819 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
4820 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
4821 trailing " {...}". Now of type <chars>.
4822 (grammar_declaration): Adjust to bundled tokens.
4823 (code_content): Remove; stripping is now done by add_param.
4824 (print_token_value): Print contents of bundled tokens.
4825 (token_name): New function.
4826
4827 * src/reader.h (braced_code, current_braced_code): Remove.
4828 (token_name): New decl.
4829
4830 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
4831 token_type, not braced_code code_kind. All uses changed.
4832 (SC_PRE_CODE): New state, for scanning after a keyword that
4833 has (or usually has) an immediately-following braced code.
4834 (token_type): New local var, to keep track of which token type
4835 to return when scanning braced code.
4836 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
4837 <INITIAL>"%parse-param", <INITIAL>"%printer",
4838 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
4839 instead of returning a token type immediately.
4840 (<INITIAL>"{"): Set token type.
4841 (<SC_BRACED_CODE>"}"): Use it.
4842 (handle_action_dollar, handle_action_at): Now returns bool
4843 indicating success. Fail if ! current_rule; this prevents a core dump.
4844 (handle_symbol_code_dollar, handle_symbol_code_at):
4845 Remove; merge body into caller.
4846 (handle_dollar, handle_at): Complain in invalid contexts.
4847
4848 * NEWS, doc/bison.texinfo: Document the above.
4849 * NEWS: Fix years and program names in copyright notice.
4850
4851 2002-12-17 Paul Eggert <eggert@twinsun.com>
4852
4853 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
4854 Reporting, Table of Symbols): Omit mentions of %lex-param and
4855 %parse-param from the documentation for now.
4856
4857 2002-12-15 Paul Eggert <eggert@twinsun.com>
4858
4859 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
4860 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
4861 lookahead symbol, and which sets yychar in parser actions) and it
4862 disagreed with the Bison documentation. Bug
4863 reported by Andrew Walrond.
4864
4865 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
4866 as the caller now does that.
4867 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
4868 (YYEMPTY): Parenthesize right hand side, since others use it.
4869 (yyparse): Don't assume that our generated code is the only code
4870 that sets yychar.
4871
4872 2002-12-13 Paul Eggert <eggert@twinsun.com>
4873
4874 Version 1.75d.
4875
4876 POSIX requires a "yacc" command.
4877 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
4878 (MOSTLYCLEANFILES): Add yacc.
4879 (yacc): New rule.
4880 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
4881 as an alias for bison y.
4882
4883 * po/LINGUAS: Add da.
4884
4885 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
4886 problem with latest <getopt.h>.
4887 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
4888
4889 * doc/fdl.texi: Upgrade to 1.2.
4890 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
4891 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
4892 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
4893 gnulib.
4894 * config/install-sh: Sync with autotools.
4895
4896 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
4897 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
4898 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
4899 locations are requested.
4900 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
4901 locations are requested.
4902
4903 2002-12-12 Paul Eggert <eggert@twinsun.com>
4904
4905 Remove unportable casts and storage allocation tricks.
4906 While we're at it, remove almost all casts, since they
4907 usually aren't needed and are a sign of trouble.
4908
4909 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
4910
4911 * src/derives.c (derives_compute): Do not subtract NTOKENS from
4912 the pointer DSET returned by malloc; this isn't portable.
4913 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
4914 Similarly for DERIVES.
4915 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
4916 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
4917 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
4918
4919 * src/derives.c (derives_compute): Do not bother invoking
4920 int_of_rule_number, since rule numbers are integers.
4921
4922 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
4923 rather than XMALLOC (char, N).
4924
4925 * src/files.c (filename_split): Rewrite to avoid cast.
4926
4927 * src/gram.h (symbol_number_as_item_number,
4928 item_number_as_symbol_number, rule_number_as_item_number,
4929 item_number_as_rule_number):
4930 Now inline functions rather than macros, to avoid casts.
4931 * src/state.h (state_number_as_int): Likewise.
4932 * src/tables.c (state_number_to_vector_number,
4933 symbol_number_to_vector_number): Likewise.
4934
4935 * src/gram.h (int_of_rule_number): Remove; no longer used.
4936
4937 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
4938 since the resulting storage is always stored into.
4939
4940 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
4941 where it's needed.
4942
4943 * src/muscle_tab.c (muscle_m4_output):
4944 Now inline. Return bool, not int.
4945 * src/state.c (state_compare): Likewise.
4946 * src/symtab.c (symbol_check_defined,
4947 symbol_check_alias_consistency, symbol_pack, symbol_translation,
4948 hash_compare_symbol, hash_symbol):
4949 Likewise.
4950 * src/uniqstr.c (uniqstr_print): Likewise.
4951 * src/muscle_tab.c (muscle_m4_output_processor):
4952 New function, to avoid casts.
4953 * src/state.c (state_comparator, stage_hasher): Likewise.
4954 * src/symtab.c (symbol_check_defined_processor,
4955 symbol_check_alias_consistency_processor, symbol_pack_processor,
4956 symbol_translation_processor, hash_symbol_comparator,
4957 hash_symbol_hasher): Likewise.
4958 * src/uniqstr.c (uniqstr_print_processor): Likewise.
4959 * src/muscle_tab.c (muscles_m4_output):
4960 Use new functions instead of casting old functions unportably.
4961 * src/state.c (state_hash_new): Likewise.
4962 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
4963 symbols_token_translations_init):
4964 Likewise.
4965 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
4966
4967 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
4968 var instead of casting to long, to avoid casts.
4969 (prepare_states): Use MALLOC rather than alloca, so that we don't
4970 have to worry about alloca.
4971 * src/state.c (state_hash_lookup): Likewise.
4972
4973 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
4974 local var instead of casting to unsigned char, to avoid casts.
4975
4976 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
4977 STATE_ALLOC): Remove.
4978 (transitions_new, errs_new, reductions_new, state_new): Use malloc
4979 rather than calloc, and use offsetof to avoid allocating slightly
4980 too much storage.
4981 (state_new): Initialize all members.
4982
4983 * src/state.c (state_hash): Use unsigned accumulator, not signed.
4984
4985 * src/symtab.c (symbol_free): Remove; unused.
4986 (symbol_get): Remove cast in lhs of assignment.
4987 (symbols_do): Now static. Accept generic arguments, not
4988 hashing-related ones.
4989
4990 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
4991 (symbol_processor): Remove.
4992 (symbols_do): Remove decl; now static.
4993
4994 * src/system.h (alloca): Remove; decl no longer needed.
4995 (<stddef.h>): Include, for offsetof.
4996 (<inttypes.>, <stdint.h>): Include if available.
4997 (uintptr_t): New type, if system lacks it.
4998 (CALLOC, MALLOC, REALLOC): New macros.
4999 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
5000 new macros.
5001
5002 * src/tables.c (table_size): Now int, to pacify GCC.
5003 (table_grow, table_ninf_remap): Use signed table size.
5004 (save_row): Don't bother initializing locals when not needed.
5005 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
5006 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
5007
5008 * src/vcg.h: Correct misspellings.
5009
5010 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
5011
5012
5013 * src/getargs.c (getargs): Don't assume EOF == -1.
5014
5015 2002-12-09 Paul Eggert <eggert@twinsun.com>
5016
5017 Change identifier spellings to avoid collisions with names
5018 that are reserved by POSIX.
5019
5020 Don't use names ending in _t, since POSIX reserves them.
5021 For consistency, remove _e and _s endings -- they're weren't
5022 needed to remove ambiguity. All uses changed.
5023 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
5024 turn was just renamed from struniq_t.
5025 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
5026 which in turn was just renamed from struniq_processor_t.
5027 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
5028 in turn was renamed from hash_compare_struniq_t.
5029 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
5030 (state_list): Renamed from state_list_t.
5031 * src/assoc.h (assoc): Renamed from assoc_t.
5032 * src/conflicts.c (enum conflict_resolution): Renamed from
5033 enum conflict_resolution_e.
5034 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
5035 (rule_list): Renamed from rule_list_t.
5036 * src/getargs.h (enum trace): Renamed from enum trace_e.
5037 (enum report): Renamed from enum report_e.
5038 * src/gram.h (item_number): Renamed from item_number_t.
5039 (rule_number): Renamed from rule_number_t.
5040 (struct rule_s): Remove the "rule_s" part; not used.
5041 (rule): Renamed from rule_t.
5042 (rule_filter): Renamed from rule_filter_t.
5043 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
5044 (goto_list): Renamed from goto_list_t.
5045 * src/lalr.h (goto_number): Renamed from goto_number_t.
5046 * src/location.h (location): Renamed from location_t.
5047 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
5048 and moved here from:
5049 * src/muscle_tab.h (muscle_entry_t): here.
5050 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
5051 (rule_list): Renamed from rule_list_t.
5052 * src/print_graph.c (static_graph): Renamed from graph.
5053 * src/reader.h (braced_code): Renamed from braced_code_t.
5054 Remove brace_code_e tag.
5055 * src/relation.h (relation_node): Renamed from relation_node_t.
5056 (relation_nodes): Renamed from relation_nodes_t.
5057 (relation): Renamed from relation_t.
5058 * src/state.h (state_number): Renamed from state_number_t.
5059 (struct state): Renamed from struct state_s.
5060 (state): Renamed from state_t.
5061 (transitions): Renamed from transitions_t. Unused (and
5062 misspelled) transtion_s tag removed.
5063 (errs): Renamed from errs_t. Unused errs_s tag removed.
5064 (reductions): Renamed from reductions_t. Unused tag
5065 reductions_s removed.
5066 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
5067 (struct symbol_list): Renamed from struct symbol_list_s.
5068 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
5069 (struct symbol): Renamed from struct symbol_s.
5070 (symbol): Renamed from symbol_t.
5071 * src/tables.c (vector_number): Renamed from vector_number_t.
5072 (action_number): Renamed from action_t.
5073 * src/tables.h (base_number): Renamed from base_t.
5074 * src/vcg.h (enum color): Renamed from enum color_e.
5075 (enum textmode): Renamed from enum textmode_e.
5076 (enum shape): Renamed from enum shape_e.
5077 (struct colorentry): Renamed from struct colorentry_s.
5078 (struct classname): Renamed from struct classname_s.
5079 (struct infoname): Renamed from struct infoname_s.
5080 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
5081 (enum decision): Renamed from enum decision_e.
5082 (enum orientation): Renamed from enum orientation_e.
5083 (enum alignment): Renamed from enum alignment_e.
5084 (enum arrow_mode): Renamed from enum arrow_mode_e.
5085 (enum crossing_type): Renamed from enum crossing_type_e.
5086 (enum view): Renamed from enum view_e.
5087 (struct node): Renamed from struct node_s.
5088 (node): Renamed from node_t.
5089 (enum linestyle): Renamed from enum linestyle_e.
5090 (enum arrowstyle): Renamed from enum arrowstyle_e.
5091 (struct edge): Renamed from struct edge.
5092 (edge): Renamed from edge_t.
5093 (struct graph): Renamed from struct graph_s.
5094 (graph): Renamed from graph_t.
5095 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
5096 Rename value_t -> value.
5097 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
5098 value_t_as_yystype -> value_as_yystype.
5099
5100 Don't include <errno.h> in the mainstream code, since it
5101 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
5102 * lib/get-errno.c, lib/get-errno.h: New files.
5103 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
5104 get-errno.c.
5105 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
5106 * src/output.c (output_skeleton): Likewise.
5107 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
5108 instead of errno.
5109 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
5110 Likewise.
5111 (handle_action_dollar, handle_action_at): Likewise.
5112 * src/system.h: Do not include <errno.h>.
5113 (TAB_EXT): Renamed from EXT_TAB.
5114 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
5115
5116 Avoid str[a-z]*, since <string.h> reserves that name space.
5117 Change all instances of "struniq" in names to "uniqstr", and
5118 likewise for "STRUNIQ" and "UNIQSTR".
5119 * src/uniqstr.c: Renamed from src/struniq.c.
5120 * src/uniqstr.h: Renamed from src/struniq.h.
5121 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
5122 * src/files.c (strsuffix): Remove; unused.
5123 (concat2): Renamed from stringappend. Now static.
5124 * src/files.h (strsuffix, stringappend): Remove; unused.
5125 * src/parse-gram.y (<chars>): Renamed from <string>.
5126 (<uniqstr>): Renamed from <struniq>.
5127 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
5128 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
5129 (struct graph_s.expand): Renamed from struct graph_s.stretch.
5130 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
5131 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
5132 (N_EXPAND): Renamed from N_STRETCH.
5133
5134 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
5135 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
5136 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
5137 Remove; unused.
5138 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
5139 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
5140 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
5141 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
5142 (BASE_MAXIMUM): Renamed from BASE_MAX.
5143 (BASE_MINIMUM): Renamed from BASE_MIN.
5144 (ACTION_MAX): Remove; unused.
5145 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
5146 Unnecessary casts removed from above defines.
5147
5148
5149 Fix misspelling in names.
5150 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
5151 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
5152 G_NODE_ALIGNEMENT.
5153
5154
5155 * lib/timevar.c (timevar_report): Renamed from time_report,
5156 for consistency with other names.
5157 * lib/timevar.h (timevar_report): New decl.
5158 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
5159
5160
5161 Sort include-file uses.
5162
5163 Reorder all include files under src to be in the order "system.h".
5164 then the ../lib include files in angle brackets (alphabetized),
5165 then the . include files in double-quotes (alphabetized). Fix
5166 dependency breakages encountered in this process, as follows:
5167 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
5168 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
5169 * src/state.h: Include "symtab.h".
5170
5171 2002-12-08 Paul Eggert <eggert@twinsun.com>
5172
5173 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
5174 since this causes problems when __file__ contains character
5175 sequences like "@" that are treated specially by src/scan-skel.l.
5176 Instead, just use the file's basename. This fixes the bug
5177 reported by Martin Mokrejs in
5178 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
5179
5180 2002-12-06 Paul Eggert <eggert@twinsun.com>
5181
5182 Add support for rules that do not have trailing semicolons, as
5183 POSIX requires. Improve the quality of locations in Bison
5184 diagnostics.
5185
5186 * src/location.c: Include <quotearg.h>.
5187 (empty_location): Now const.
5188 (location_print): New function. Follow the recommendation of the
5189 GNU Coding Standards for locations that span file boundaries.
5190 * src/location.h: Do not include <quotearg.h>; no longer needed.
5191 (boundary): New type.
5192 (location_t): Use it. This allows locations to span file boundaries.
5193 All member uses changed: file -> start.file or end.file (as needed),
5194 first_line -> start.line, first_column -> start.column,
5195 last_line -> end.line, last_column -> end.column.
5196 (equal_boundaries): New function.
5197 (LOCATION_RESET, LOCATION_STEP): Remove.
5198 (LOCATION_PRINT): Remove. All callers changed to use location_print.
5199 (empty_location): Now const.
5200 (location_print): New decl.
5201 * src/parse-gram.y (lloc_default): New function, which handles
5202 empty locations more accurately.
5203 (YYLLOC_DEFAULT): Use it.
5204 (%token COLON): Remove.
5205 (%token ID_COLON): New token.
5206 (rules): Use it.
5207 (declarations, rules): Remove trailing semicolon.
5208 (declaration, rules_or_grammar_declaration):
5209 Allow empty (";") declaration.
5210 (symbol_def): Remove empty actions; no longer needed.
5211 (rules_or_grammar_declaration): Remove trailing semicolon.
5212 (semi_colon.opt): Remove.
5213 * src/reader.h: Include location.h.
5214 (scanner_cursor): New decl.
5215 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
5216 rolling our own.
5217 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
5218 of *loc.
5219 (STEP): Remove. No longer needed, now that adjust_location does
5220 the work. All uses removed.
5221 (scanner_cursor): New var.
5222 (adjust_location): Renamed from extend_location. It now sets
5223 *loc and adjusts the scanner cursor. All uses changed.
5224 Don't bother testing for CR.
5225 (handle_syncline): Remove location arg; now updates scanner cursor.
5226 All callers changed.
5227 (unexpected_end_of_file): Now accepts start boundary of token or
5228 comment, not location. All callers changed. Update scanner cursor,
5229 not the location.
5230 (SC_AFTER_IDENTIFIER): New state.
5231 (context_state): Renamed from c_context. All uses changed.
5232 (id_loc, code_start, token_start): New local vars.
5233 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
5234 processing of Yacc white space and equivalents here.
5235 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
5236 instead of returning ID immediately, since we need to search for
5237 a subsequent colon.
5238 (<INITIAL>"'", "\""): Save token_start.
5239 (<INITIAL>"%{", "{", "%%"): Save code_start.
5240 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
5241 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
5242 BEGIN context_state at end, not INITIAL.
5243 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
5244 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
5245 Return correct token start.
5246 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
5247 the start of a character, string or multiline comment is found.
5248 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
5249 Reduction): Adjust reported locations to match the more-precise
5250 results now expected.
5251 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
5252 * tests/reduce.at (Useless Rules, Reduced Automaton,
5253 Underivable Rules): Likewise.
5254 * tests/regression.at (Invalid inputs): No longer `expecting ";"
5255 or "|"' now that so many other tokens are allowed by the new grammar.
5256
5257 * src/complain.h (current_file): Remove duplicate decl;
5258 current_file is now owned by files.h.
5259 * src/complain.c, src/scan-gram.l: Include files.h.
5260
5261 2002-12-06 Paul Eggert <eggert@twinsun.com>
5262
5263 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
5264 promotes to int; it might be unsigned int.
5265 * data/yacc.c (yy_reduce_print): Likewise.
5266
5267 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
5268 be #defined in the prologue, not in the Bison declarations.
5269 This fixes Debian Bug 102878, reported by Shaul Karl.
5270
5271 2002-12-02 Paul Eggert <eggert@twinsun.com>
5272
5273 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
5274 * lib/strtoul.c: New file, from gnulib.
5275 This fixes a porting bug reported by Peter Klein in
5276 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
5277
5278 2002-11-30 Paul Eggert <eggert@twinsun.com>
5279
5280 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
5281 and put only a forward declaration in the prologue. This is for
5282 consistency with the other scanner helper functions.
5283
5284 Type clashes now generate warnings, not errors, since it
5285 appears that POSIX may allow some grammars with type clashes.
5286 * src/reader.c (grammar_current_rule_check): Warn about
5287 type clashes instead of complaining.
5288 * tests/input.at (Type Clashes): Expect warnings, not complaints.
5289
5290 Add Yacc library, since POSIX requires it.
5291 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
5292 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
5293 * lib/main.c, lib/yyerror.c: New files.
5294
5295 gram_error can be static; it need not be extern.
5296 * src/reader.h (gram_error): Remove decl.
5297 * src/parse-gram.y (gram_error): Now static. Add static decl.
5298 (print_token_value): Omit parameter names from forward decl,
5299 for consistency.
5300
5301 2002-11-29 Paul Eggert <eggert@twinsun.com>
5302
5303 * doc/bison.texinfo: Emphasize that yylex and yyerror must
5304 be declared before being used. E.g., one should typically
5305 declare them in the prologue. Use GNU coding style in examples.
5306 Put "const" consistently after the type it modifies. Mention
5307 that C99 supports "inline". Mention that yyerror traditionally
5308 returns "int".
5309
5310 %parse-param and %lex-param now take just one argument, the
5311 declaration; the argument name is deduced from the declaration.
5312
5313 * doc/bison.texinfo (Parser Function, Pure Calling, Error
5314 Reporting, Table of Symbols): Document this.
5315 * src/parse-gram.y (add_param): New function.
5316 (COMMA): Remove.
5317 (declaration): Implement new rule for %parse-param and %lex-param.
5318 * src/scan-gram.l: "," now elicits a warning, rather than being
5319 a token; this is more compatible with byacc.
5320 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
5321
5322 2002-11-27 Paul Eggert <eggert@twinsun.com>
5323
5324 Rename identifiers to avoid real and potential collisions.
5325
5326 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
5327 to avoid collision with lex macro described by Bruce Lilly in
5328 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
5329 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
5330 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
5331 * src/parse-gram.y (print_token_value): Renamed from yyprint.
5332 All uses changed.
5333 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
5334 The name "yycontrol" violates the name space rules, and this stuff
5335 wasn't being used anyway.
5336 (input): Remove action; this stuff wasn't being used.
5337 (gram_error): Rename local variable yylloc -> loc.
5338 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
5339 (YY_DECL): Don't use "yy" at start of local variables.
5340 All uses changed, e.g., yylloc -> loc.
5341 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
5342 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
5343 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
5344 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
5345
5346 * src/parse-gram.y (gram_error): loc is now const *.
5347 * src/reader.h (gram_error): Likewise.
5348
5349 2002-11-24 Paul Eggert <eggert@twinsun.com>
5350
5351 Version 1.75c.
5352
5353 * tests/actions.at (Actions after errors): Use an output format
5354 more similar to that of the Printers and Destructors test.
5355 Test the position of the ';' token too.
5356 (Printers and Destructors): Likewise.
5357 (Printers and Destructors: %glr-parser): Remove for now, to avoid
5358 unnecessarily alarming people when the test fails.
5359
5360 * data/yacc.c (yyerrlab1): Move this label down, so that the
5361 parser does not discard the lookahead token if the user code
5362 invokes YYERROR. This change is required for POSIX conformance.
5363
5364 * lib/error.c: Sync with gnulib.
5365
5366 2002-11-22 Paul Eggert <eggert@twinsun.com>
5367
5368 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
5369 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
5370 * lib/xmalloc.c: Likewise.
5371
5372 2002-11-20 Paul Eggert <eggert@twinsun.com>
5373
5374 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
5375
5376 2002-11-20 Paul Eggert <eggert@twinsun.com>
5377
5378 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
5379 should use `if (! x) abort ();' rather than `assert (x);', and
5380 anyway it's one less thing to worry about configuring.
5381
5382 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
5383 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
5384 and replace all instances of assert with abort.
5385 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
5386 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
5387
5388 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
5389 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
5390 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
5391 hash_find_entry, hash_rehash, hash_insert): Likewise.
5392 * src/conflicts.c (resolve_sr_conflict): Likewise.
5393 * src/lalr.c (set_goto_map, map_goto): Likewise.
5394 * src/nullable.c (nullable_compute): Likewise.
5395 * src/output.c (prepare_rules, token_definitions_output): Likewise.
5396 * src/reader.c (packgram, reader): Likewise.
5397 * src/state.c (state_new, state_free, state_transitions_set,
5398 state_reduction_find): Likewise.
5399 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
5400 symbol_pack): Likewise.
5401 * src/tables.c (conflict_row, pack_vector): Likewise.
5402 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
5403 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
5404 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
5405 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
5406
5407 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
5408 (ARGMATCH_CONSTRAINT): New macro.
5409 (ARGMATCH_ASSERT): Use it.
5410
5411 * src/system.h (verify): New macro.
5412 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
5413 rather than assert.
5414 * src/tables.c (tables_generate): Likewise.
5415
5416 * src/struniq.c (struniq_assert): Now returns void, and aborts
5417 if the assertion is false.
5418 (struniq_assert_p): Remove.
5419 * src/struniq.h: Likewise.
5420
5421 2002-11-18 Paul Eggert <eggert@twinsun.com>
5422
5423 * data/glr.c (yygetLRActions): Replace `yyindex' with
5424 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
5425 This fixes the regression with Sun ONE Studio 7 cc that I reported in
5426 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
5427
5428 2002-11-18 Akim Demaille <akim@epita.fr>
5429
5430 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
5431 space.
5432 From Tim Van Holder.
5433
5434 2002-11-17 Paul Eggert <eggert@twinsun.com>
5435
5436 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
5437 to "SyntaxError" for consistency with my 2002-11-15 change.
5438
5439 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
5440 not define to {}, since this breaks the common use of `YYDPRINTF
5441 ((...));' if a single statement is desired (e.g. before `else').
5442 Work around GCC warnings by surrounding corresponding calls with
5443 {} if needed.
5444 (yyhasResolvedValue): Remove unused function.
5445 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
5446 loop body.
5447 (yyreportSyntaxError): Renamed from yyreportParseError.
5448 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
5449 All uses changed.
5450 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
5451 extern when possible. Remove unused initializations.
5452
5453 2002-11-16 Akim Demaille <akim@epita.fr>
5454
5455 Augment the similarity between GLR and LALR traces.
5456
5457 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
5458 (YY_REDUCE_PRINT): New.
5459 (yyparse): Use them.
5460 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
5461 YYDPRINT here.
5462 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
5463 state reached after the reduction/recovery, since...
5464 (yyparse, yyprocessOneStack): Report the state we are entering in.
5465
5466 2002-11-16 Akim Demaille <akim@epita.fr>
5467
5468 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
5469 Add support for --trace=skeleton.
5470 * src/scan-skel.l: %option debug.
5471 Scan strings of non-@ or \n instead of character by character.
5472 (scan_skel): Handle trace_skeleton.
5473 (QPUTS): New.
5474 (@output_parser_name@, @output_header_name@): ``Restore'' their
5475 support (used to be M4 macros).
5476 * data/yacc.c: Quote larger chunks, a la glr.c.
5477 * data/lalr1.cc: Likewise.
5478 The header guards are no longer available, so use some other
5479 string than `YYLSP_NEEDED'.
5480
5481 2002-11-16 Akim Demaille <akim@epita.fr>
5482
5483 Make the ``Printers and Destructors'' test more verbose, taking
5484 `yacc.c''s behavior as (possibly wrong) reference.
5485
5486 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
5487 instead of fprint on stdout.
5488 Set and report the last_line of the symbols.
5489 Consistently display values and locations.
5490
5491 2002-11-16 Paul Eggert <eggert@twinsun.com>
5492
5493 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
5494
5495 2002-11-15 Paul Eggert <eggert@twinsun.com>
5496
5497 * tests/actions.at (Actions after errors): New test case.
5498
5499 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
5500 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
5501 tests/action.at, tests/calc.at, tests/conflicts.at,
5502 tests/cxx-type.at, tests/regression.at:
5503 "parse error" -> "syntax error" for POSIX compatibility.
5504 "parsing stack overflow..." -> "parser stack overflow" so
5505 that code matches Bison documentation.
5506
5507 2002-11-15 Akim Demaille <akim@epita.fr>
5508
5509 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
5510 take two BRACED_CODE, not two string_content.
5511 Free the scanner's obstack when we are done.
5512 (code_content): New.
5513 * tests/calc.at: Adjust.
5514 * doc/bison.texinfo: Adjust.
5515 Also, make sure to include the `,' for these declarations.
5516
5517 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
5518
5519 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
5520 definition; avoids potential autoreconf problems.
5521
5522 2002-11-15 Akim Demaille <akim@epita.fr>
5523
5524 Always check the value returned by yyparse.
5525
5526 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
5527 returned by yyparse.
5528 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
5529 Adjust calls.
5530 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
5531 returned by yyparse.
5532
5533 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5534
5535 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
5536 on input.at test.
5537
5538 2002-11-14 Paul Eggert <eggert@twinsun.com>
5539
5540 * src/output.c (output_skeleton): Call xfopen instead of
5541 duplicating xfopen's body.
5542
5543 Fix bugs reported by Nelson H. F. Beebe in
5544 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
5545
5546 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
5547 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
5548 Group compiler. Instead, use "$CC -E bar.c". Include the .h
5549 file twice in the grammar, as an extra check.
5550
5551 * tests/input.at (Torturing the Scanner): Surround the
5552 backslash-newline tests with "#if 0", to make it less likely that
5553 we'll run into compiler bugs. Bring back solitary \ inside
5554 comment, but add a closing comment to work around HP C bug. Don't
5555 test backslash-newline in C character constant.
5556
5557 2002-11-14 Akim Demaille <akim@epita.fr>
5558
5559 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
5560 status of the compiler.
5561 Calling `exit 1' is no longer needed.
5562 Reported by Nelson H. F. Beebe.
5563
5564 2002-11-14 Akim Demaille <akim@epita.fr>
5565
5566 * tests/atlocal.in (CPPFLAGS): We have config.h.
5567 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
5568 New.
5569 * tests/actions.at, tests/calc.at, tests/conflicts.at,
5570 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
5571 * tests/regression.at, tests/torture.at: Use them for all the
5572 grammars that are to be compiled.
5573 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
5574 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
5575 * doc/bison.texinfo (GLR Parsers): Document `inline'.
5576
5577 2002-11-14 Akim Demaille <akim@epita.fr>
5578
5579 * doc/bison.texinfo: Various formatting changes (alignments in
5580 samples, additional @group/@end group, GCS in samples.
5581 Use @deffn instead of simple @table to define the directives,
5582 macros, variables etc.
5583
5584 2002-11-13 Paul Eggert <eggert@twinsun.com>
5585
5586 Fix some bugs reported by Albert Chin-A-Young in
5587 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
5588
5589 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
5590 -o c"; the HP C compiler chatters during compilation.
5591 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
5592 * tests/headers.at (export YYLTYPE): Likewise.
5593
5594 * tests/input.at (Torturing the Scanner): Remove lines containing
5595 solitary backslashes, as they tickle a bug in the HP C compiler.
5596
5597 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
5598 comments, since they're not portable. Use GNU coding style.
5599
5600 2002-11-13 Akim Demaille <akim@epita.fr>
5601
5602 * data/yacc.c: Leave bigger chunks of quoted text.
5603 (YYDSYMPRINTF): New.
5604 Use it to report symbol activities.
5605 * data/glr.c (YYDSYMPRINTF): New.
5606 Use it.
5607
5608 2002-11-12 Paul Eggert <eggert@twinsun.com>
5609
5610 Version 1.75b.
5611
5612 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
5613 (yyglrReduce): Return yyok, not 0.
5614 This should avoid the enumerated-type warnings reported
5615 by Nelson H. F. Beebe in
5616 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
5617
5618 * lib/bbitset.h (BITSET_INLINE): Remove.
5619 * lib/bitset.h [! BITSET_INLINE]: Remove.
5620 (bitset_set, bitset_reset, bitset_test): Rename local vars
5621 to avoid shadowing warnings by GCC.
5622
5623 * data/glr.c (inline): Remove #define. It's the user's
5624 responsibility to #define it away, just like 'const'.
5625 This fixes one of the bugs reported by Nelson H. F. Beebe in
5626 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
5627
5628 * Makefile.maint (po-check): Scan .l and .y files instead of the
5629 .c and the .h files that they generate. This fixes the bug
5630 reported by Tim Van Holder in:
5631 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
5632 Look for N_ as well as for _. Try to avoid matching #define for
5633 N_ and _.
5634 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
5635 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
5636 * src/scan-gram.l: Revamp regular expressions so that " and '
5637 do not confuse xgettext.
5638
5639 * src/struniq.h (struniq_new): Do not declare the return type
5640 to be 'const'; this violates the C standard.
5641 * src/struniq.c (struniq_new): Likewise.
5642
5643 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
5644
5645 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
5646 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
5647 linker.
5648
5649 2002-11-12 Akim Demaille <akim@epita.fr>
5650
5651 * Makefile.maint: Sync with Autoconf:
5652 (local_updates): New.
5653
5654 2002-11-12 Akim Demaille <akim@epita.fr>
5655
5656 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
5657
5658 2002-11-12 Akim Demaille <akim@epita.fr>
5659
5660 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
5661 locations.
5662
5663 2002-11-12 Akim Demaille <akim@epita.fr>
5664
5665 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
5666 not yyvalue.
5667
5668 2002-11-12 Akim Demaille <akim@epita.fr>
5669
5670 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
5671 Use it to test the GLR parser.
5672
5673 2002-11-12 Akim Demaille <akim@epita.fr>
5674
5675 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
5676 defines it.
5677 * data/glr.c (yystos): New.
5678 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
5679 (YYDSYMPRINT): New.
5680 (yyval): Don't define it, it is handled via M4.
5681 (yyrecoverParseError): Free verbosely the discarded symbols.
5682 * data/yacc.c (yysymprint): Remove, rather...
5683 (b4_yysymprint_generate): invoke.
5684 * data/c.m4 (b4_yysymprint_generate): New.
5685 Accept pointers as arguments, as opposed to the version from
5686 yacc.c.
5687 (b4_yydestruct_generate): Likewise.
5688 * tests/cations.at (Printers and Destructors): Use Bison directives
5689 instead of CPP macros.
5690 Don't rely on internal details.
5691
5692 2002-11-12 Akim Demaille <akim@epita.fr>
5693
5694 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
5695 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
5696 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
5697 it against YYEMPTY and so forth), work on yytoken (i.e., set
5698 it to YYEMPTY etc.).
5699 (yydestruct): Replace with a b4_yydestruct_generate invocation.
5700 (b4_symbol_actions): Remove.
5701 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
5702 for 0, end-of-input.
5703
5704 2002-11-12 Akim Demaille <akim@epita.fr>
5705
5706 * doc/bison.texinfo (Destructor Decl): New.
5707
5708 2002-11-12 Akim Demaille <akim@epita.fr>
5709
5710 * src/tables.c (tables_generate): Use free for pointers that
5711 cannot be NULL, not XFREE.
5712 (pack_vector): Use assert, not fatal, for bound violations.
5713 * src/state.c (state_new): Likewise.
5714 * src/reader.c (reader): Likewise.
5715 * src/lalr.c (set_goto_map): Likewise.
5716 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
5717 the file name.
5718
5719 2002-11-12 Akim Demaille <akim@epita.fr>
5720
5721 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
5722 Restore.
5723 * src/scan-gram.l (last_string): Is global to the file, not to
5724 yylex.
5725 * src/parse-gram.y (input): Don't append the epilogue here,
5726 (epilogue.opt): do it here, and free the scanner's obstack.
5727 * src/reader.c (epilogue_set): Rename as...
5728 (epilogue_augment): this.
5729 * data/c.m4 (b4_epilogue): Defaults to empty.
5730
5731 2002-11-12 Akim Demaille <akim@epita.fr>
5732
5733 * src/getargs.c (long_options): Remove duplicates.
5734 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
5735 Remove.
5736 * doc/bison.rnh: Remove.
5737 * doc/bison.texinfo (VMS Invocation): Remove.
5738
5739 2002-11-12 Akim Demaille <akim@epita.fr>
5740
5741 * src/struniq.h, src/struniq.c (struniq_t): Is const.
5742 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
5743
5744 Use struniq for symbols.
5745
5746 * src/symtab.h (symbol_t): The tag member is a struniq.
5747 (symbol_type_set): Adjust.
5748 * src/symtab.c (symbol_new): Takes a struniq.
5749 (symbol_free): Don't free the tag member.
5750 (hash_compare_symbol_t, hash_symbol_t): Rename as...
5751 (hash_compare_symbol, hash_symbol): these.
5752 Use the fact that tags as struniqs.
5753 (symbol_get): Use struniq_new.
5754 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
5755 Returns a strniq.
5756 * src/reader.h (merger_list, grammar_currentmerge_set): The name
5757 and type members are struniqs.
5758 * src/reader.c (get_merge_function)
5759 (grammar_current_rule_merge_set): Adjust.
5760 (TYPE, current_type): Are struniq.
5761
5762 Use struniq for file names.
5763
5764 * src/files.h, src/files.c (infile): Split into...
5765 (grammar_file, current_file): these.
5766 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
5767 * src/reduce.c (reduce_print): Likewise.
5768 * src/getargs.c (getargs): Likewise.
5769 * src/complain.h, src/complain.c: Likewise.
5770 * src/main.c (main): Call struniqs_new early enough to use it for
5771 file names.
5772 Don't free the input file name.
5773
5774 2002-11-12 Akim Demaille <akim@epita.fr>
5775
5776 * src/symtab.c (symbol_free): Remove dead deactivated code:
5777 type_name are properly removed.
5778 Don't use XFREE to free items that cannot be NULL.
5779 * src/struniq.h, src/struniq.c: New.
5780 * src/main.c (main): Initialize/free struniqs.
5781 * src/parse-gram.y (%union): Add astruniq member.
5782 (yyprint): Adjust.
5783 * src/scan-gram.l (<{tag}>): Return a struniq.
5784 Free the obstack bit that used to store it.
5785 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
5786
5787 2002-11-11 Paul Eggert <eggert@twinsun.com>
5788
5789 Revamp to fix many (but not all) of the C- and M4-related quoting
5790 problems. Among other things, this fixes the Bison bug reported
5791 by Jan Hubicka when processing the Bash grammar; see:
5792 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
5793
5794 Use new @ escapes consistently. Represent brackets with @{ and @}
5795 rather than @<:@ and @:>@, since this works a bit better with dumb
5796 editors like vi. Represent @ with @@, since @ is now consistently
5797 an escape. Use @oline@ and @ofile@ rather than __oline__ and
5798 __ofile__, to avoid unexpected expansions. Similarly, use @output
5799 rather than #output.
5800
5801 * data/c.m4 (b4_copyright): Omit file name from comment, since
5802 the file name could contain "*/".
5803 (b4_synclines_flag): Don't quote the 2nd argument; it should already
5804 be quoted. All uses changed.
5805
5806 * data/glr.c: Use new @ escapes consistently.
5807 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
5808 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
5809 Remove, since they couldn't handle arbitrary characters in file
5810 names.
5811 * data/lalr1.cc: Likewise.
5812 * data/yacc.c: Likewise.
5813
5814 * src/files.c (output_infix): Remove; all uses removed.
5815 * src/files.h: Likewise.
5816
5817 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
5818 mishandled funny characters in file names, and anyway it isn't
5819 needed any more.
5820 * data/yacc.c: Likewise.
5821 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
5822
5823 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
5824 * data/yacc.c: Likewise.
5825
5826 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
5827 strings now.
5828 (muscle_init): Quote filename as a C string.
5829 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
5830 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
5831 * src/output.c (escaped_file_name_output): New function.
5832 (prepare_symbols): Quote tokens for M4.
5833 (prepare): Don't insert output_infix, output_prefix,
5834 output_parser_name, output_header_name; this is now down by scan-skel.
5835 Insert skeleton as a C string.
5836
5837 * src/output.c (user_actions_output, symbol_destructors_output,
5838 symbol_printers_output): Quote filenames for C and M4.
5839 * src/reader.c (prologue_augment, epilogue_set): Likewise.
5840
5841 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
5842 escapes other than \\ and \'; this simplifies the code.
5843 (<SC_STRING>): Likewise, for \\ and \".
5844 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
5845 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
5846 Use new escapes @{ and @} for [ and ].
5847
5848 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
5849 them with auto vars.
5850 Switch to new escape scheme, where @ is the escape character uniformly.
5851 Abort if a stray escape character is found. Avoid unbounded input
5852 buffer when parsing non-escaped text.
5853
5854 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
5855 __oline__, #output, $@, and @{ do not have unintended meanings.
5856
5857 2002-11-09 Paul Eggert <eggert@twinsun.com>
5858
5859 Fix the test failure due to GCC warnings described in
5860 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
5861 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
5862 evaluate to 0 if it's impossible for NINF to be in the respective
5863 table.
5864 (yygetLRActions, yyrecoverParseError): Use them.
5865
5866 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
5867 counted in the token inserted at end of file. Now takes
5868 location_t *, not location_t, so that the location can be
5869 adjusted. All uses changed.
5870
5871 * tests/regression.at (Invalid inputs): Adjust wording in
5872 diagnostic to match the new behavior.
5873
5874 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
5875 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
5876 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
5877 abort ();'. This reduces the runtime of the "Many lookaheads"
5878 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
5879 GCC 3.2.
5880
5881 2002-11-07 Paul Eggert <eggert@twinsun.com>
5882
5883 * src/parse-gram.y (CHARACTER): Remove unused token.
5884 All uses removed.
5885
5886 * src/scan-gram.l: Remove stack option. We no longer use the
5887 stack, since the stack was never deeper than 1; instead, use the
5888 new auto var c_context to record the stacked value.
5889
5890 Remove nounput option. At an unexpected end of file, we now unput
5891 the minimal input necessary to end cleanly; this simplifies the
5892 code.
5893
5894 Avoid unbounded token sizes where this is easy.
5895
5896 (unexpected_end_of_file): New function.
5897 Use it to systematize the error message on unexpected EOF.
5898 (last-string): Now auto, not static.
5899 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
5900 (scanner_last_string_free): Remove; not used.
5901 (percent_percent_count): Move decl to just before use.
5902 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
5903 not the (never otherwised-used) CHARACTER.
5904
5905 2002-11-07 Akim Demaille <akim@epita.fr>
5906
5907 Let yyerror always receive the msg as last argument, so that
5908 yyerror can be variadic.
5909
5910 * data/yacc.c (b4_yyerror_args): New.
5911 Use it when calling yyerror.
5912 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
5913 Use it when calling yyerror.
5914 * doc/bison.texinfo (Error Reporting): Adjust.
5915 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
5916 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
5917
5918 2002-11-06 Akim Demaille <akim@epita.fr>
5919
5920 #line should have quoted strings.
5921 Ideally, this should be done by m4_quotearg.
5922
5923 * src/scan-skel.l: Include quotearg.h.
5924 Quote __ofile__.
5925 * src/output.c (symbol_printers_output)
5926 (symbol_destructors_output): Quote the file name.
5927
5928 2002-11-06 Akim Demaille <akim@epita.fr>
5929
5930 * tests/regression.at (Invalid inputs): Adjust to the recent
5931 messages.
5932
5933 2002-11-06 Akim Demaille <akim@epita.fr>
5934
5935 Restore --no-lines.
5936 Reported by Jim Kent.
5937
5938 * data/c.m4 (b4_syncline): New.
5939 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
5940 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
5941 * src/output.c (user_actions_output): Likewise.
5942 (prepare): Define 'b4_synclines_flag'.
5943 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
5944
5945 2002-11-06 Akim Demaille <akim@epita.fr>
5946
5947 * src/main.c (main): Free `infile'.
5948 * src/scan-gram.l (handle_syncline): New.
5949 Recognize `#line'.
5950 * src/output.c (user_actions_output, symbol_destructors_output)
5951 (symbol_printers_output): Use the location's file name, not
5952 infile.
5953 * src/reader.c (prologue_augment, epilogue_set): Likewise.
5954
5955 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5956
5957 * src/tables.c (matching_state): Don't allow states to match if
5958 either has GLR conflict entries.
5959
5960 2002-11-05 Paul Eggert <eggert@twinsun.com>
5961
5962 * src/scan-gram.l: Use more accurate diagnostics, e.g.
5963 "integer out of range" rather than "invalid value".
5964 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
5965 accordingly.
5966
5967 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
5968 Also, remove one static variable in the scanner.
5969
5970 * src/scan-gram.l (braces_level): Now auto, not static.
5971 Initialize to zero if the compiler is being picky.
5972 (INITIAL): Clear braces_level instead of incrementing it.
5973 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
5974 as POSIX 1003.1-2001 requires.
5975 * src/system.h (IF_LINT): New macro, taken from coreutils.
5976 * configure.ac: Define "lint" if --enable-gcc-warnings.
5977
5978 2002-11-05 Akim Demaille <akim@epita.fr>
5979
5980 * src/scan-gram.l: When it starts with `%', complain about the
5981 whole directive, not just that `invalid character: %'.
5982
5983 2002-11-04 Akim Demaille <akim@epita.fr>
5984
5985 * Makefile.maint: Update from Autoconf.
5986 (update, cvs-update, po-update, do-po-update): New.
5987
5988 2002-11-04 Akim Demaille <akim@epita.fr>
5989
5990 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
5991 and yyerror.
5992 Have yyerror `use' its arguments.
5993 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
5994 returns true when location & yacc & pure & parse-param.
5995 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
5996
5997 2002-11-04 Akim Demaille <akim@epita.fr>
5998
5999 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
6000 clashes.
6001 * src/scan-gram.l: Use [\'] instead of ['] to pacify
6002 font-lock-mode.
6003 Use complain_at.
6004 Use quote, not quote_n since LOCATION_PRINT no longer uses the
6005 slot 0.
6006
6007 2002-11-03 Paul Eggert <eggert@twinsun.com>
6008
6009 * src/reader.c (get_merge_function, grammar_current_rule_check):
6010 Use consistent diagnostics for reporting type name clashes.
6011 Quote the types with <>, for consistency with Yacc.
6012 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
6013
6014 2002-11-03 Akim Demaille <akim@epita.fr>
6015
6016 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
6017 New.
6018 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
6019 (b4_parse_param): Remove.
6020 Use b4_identification.
6021 Propagate b4_pure_args where needed to pass them to yyerror.
6022 * data/glr.m4 (b4_parse_param): Remove.
6023 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
6024 (b4_lpure_formals): New.
6025 Use b4_identification.
6026 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
6027 b4_user_formals and b4_user_args.
6028 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
6029 (yyreportAmbiguity): When using a pure parser, also need
6030 the location, and the parse-params.
6031 Adjust callers.
6032 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
6033 When using a pure parser, also need the parse-params.
6034 Adjust callers.
6035 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
6036 (%pure-parser + %parse-param) LALR and GLR parsers.
6037 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
6038 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
6039 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
6040 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
6041 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
6042 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
6043 * doc/bison.texinfo: Untabify the whole file.
6044 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
6045 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
6046 (Error Reporting): Adjust to these new directives.
6047 Document %error-verbose, deprecate YYERROR_VERBOSE.
6048
6049 2002-11-03 Akim Demaille <akim@epita.fr>
6050
6051 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
6052 AT_CHECK_CALC_GLR invocations to use % directives, instead of
6053 command line options.
6054 * tests/cxx-type.at: Formatting changes.
6055
6056 2002-11-03 Paul Eggert <eggert@twinsun.com>
6057
6058 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
6059 to count columns correctly, and to check for invalid inputs.
6060
6061 Use mbsnwidth to count columns correctly. Account for tabs, too.
6062 Include mbswidth.h.
6063 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
6064 (extend_location): New function.
6065 (YY_LINES): Remove.
6066
6067 Handle CRLF in C code rather than in Lex code.
6068 (YY_INPUT): New macro.
6069 (no_cr_read): New function.
6070
6071 Scan UCNs, even though we don't fully handle them yet.
6072 (convert_ucn_to_byte): New function.
6073
6074 Handle backslash-newline correctly in C code.
6075 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
6076 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
6077 all uses changed.
6078 (tag, splice): New EREs. Do not allow NUL or newline in tags.
6079 Use {splice} wherever C allows backslash-newline.
6080 YY_STEP after space, newline, vertical-tab.
6081 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
6082
6083 (letter, id): Don't assume ASCII; e.g., spell out a-z.
6084
6085 ({int}, handle_action_dollar, handle_action_at): Check for integer
6086 overflow.
6087
6088 (YY_STEP): Omit trailing semicolon, so that it's more like C.
6089
6090 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
6091 as well as \000. Check for UCHAR_MAX, not 255.
6092 Allow \x with an arbitrary positive number of digits, as in C.
6093 Check for overflow here.
6094 Allow \? and UCNs, for compatibility with C.
6095
6096 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
6097 with quote slot used by complain_at.
6098
6099 * tests/input.at: Add tests for backslash-newline, m4 quotes
6100 in symbols, long literals, and funny escapes in strings.
6101
6102 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
6103 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
6104 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
6105 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
6106 * m4/mbswidth.m4: New file, from GNU coreutils.
6107
6108 * doc/bison.texinfo (Grammar Outline): Document // comments.
6109 (Symbols): Document that trigraphs have no special meaning in Bison,
6110 nor is backslash-newline allowed.
6111 (Actions): Document that trigraphs have no special meaning.
6112
6113 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
6114 no longer used.
6115
6116 2002-11-02 Paul Eggert <eggert@twinsun.com>
6117
6118 * src/reader.c: Don't include quote.h; not needed.
6119 (get_merge_function): Reword warning to be consistent with
6120 type clash diagnostic in grammar_current_rule_check.
6121
6122 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
6123 bug in trigraph handling.
6124
6125 * src/output.c (prepare_symbols): When printing token names,
6126 escape "[" as "@<:@" and likewise for "]".
6127
6128 * src/system.h (errno): Remove declaration, as we are now
6129 assuming C89 or better, and C89 guarantees errno.
6130
6131 2002-10-30 Paul Eggert <eggert@twinsun.com>
6132
6133 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
6134 Check for close failures.
6135 * src/files.h (xfclose): Return void, not int, since it always
6136 returned zero.
6137 * src/files.c (xfclose): Likewise. Report I/O error if ferror
6138 indicates one.
6139 * src/output.c (output_skeleton): Use xfclose rather than fclose
6140 and ferror. xfclose now checks ferror.
6141
6142 * data/glr.c (YYLEFTMOST_STATE): Remove.
6143 (yyreportTree): Use a stack-based leftmost state. This avoids
6144 our continuing battles with bogus warnings about initializers.
6145
6146 2002-10-30 Akim Demaille <akim@epita.fr>
6147
6148 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
6149 #if.
6150
6151 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6152
6153 * tests/glr-regr1.at: New test for reported regressions.
6154 * tests/testsuite.at: Add glr-regr1.at test.
6155 * tests/Makefile.am: Add glr-regr1.at test.
6156
6157 2002-10-24 Paul Eggert <eggert@twinsun.com>
6158
6159 Version 1.75a.
6160
6161 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
6162 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
6163 we use malloc. Don't assume 'A' through 'Z' are contiguous.
6164 Don't assume strdup exists; POSIX says its an XSI extension.
6165 Check for buffer overflow on input.
6166
6167 2002-10-24 Akim Demaille <akim@epita.fr>
6168
6169 * src/output.c (output_skeleton): Don't disable M4sugar comments
6170 too soon: it results in comments being expanded.
6171 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
6172 first output.
6173
6174 2002-10-24 Akim Demaille <akim@epita.fr>
6175
6176 * data/yacc.c (m4_int_type): New.
6177 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
6178 char' as only yacc.c wants K&R portability.
6179 * data/glr.c (yysigned_char): Remove.
6180 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
6181 Reported by Quoc Peyrot.
6182
6183 2002-10-23 Paul Eggert <eggert@twinsun.com>
6184
6185 * src/main.c (main): With --trace=time, report times even if a
6186 non-fatal error occurs. Formerly, the times were reported in some
6187 such cases but not in others.
6188 * src/reader.c (reader): Just return if a complaint has been issued,
6189 instead of exiting, so that 'main' can report times.
6190
6191 2002-10-22 Akim Demaille <akim@epita.fr>
6192
6193 * src/system.h: Include sys/types.
6194 Reported by Bert Deknuydt.
6195
6196 2002-10-23 Paul Eggert <eggert@twinsun.com>
6197
6198 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
6199 Suggested by Art Haas.
6200
6201 2002-10-22 Paul Eggert <eggert@twinsun.com>
6202
6203 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
6204 decl; not needed any more.
6205 * src/main.c (main): Use return to exit, undoing yesterday's change.
6206 The last OS that we could find where this wouldn't work is
6207 SunOS 3.5, and that's too old to worry about now.
6208
6209 * data/glr.c (struct yyltype): Define members even when not
6210 doing locations. This is more consistent with yacc.c, and it
6211 works around the following bug reports:
6212 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
6213 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
6214
6215 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
6216 @acronym consistently. Standardize on "Yacc" instead of "YACC",
6217 "Algol" instead of "ALGOL". Give a bit more history about BNF.
6218
6219 2002-10-22 Akim Demaille <akim@epita.fr>
6220
6221 * data/README: New.
6222
6223 2002-10-21 Paul Eggert <eggert@twinsun.com>
6224
6225 Be consistent about 'bool'; the old code used an enum in one
6226 module and an int in another, and this violates the C standard.
6227 * m4/stdbool.m4: New file, from coreutils 4.5.3.
6228 * configure.ac (AC_HEADER_STDBOOL): Add.
6229 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
6230 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
6231 * src/symtab.c (hash_compare_symbol_t): Likewise.
6232 * src/system.h (bool, false, true): Use a definition consistent
6233 with ../lib/hash.c. All uses changed.
6234
6235 * src/complain.c (warning_issued): Renamed from warn_message_count,
6236 so that we needn't worry about integer overflow (!).
6237 Now of type bool. All uses changed.
6238 (complaint_issued): Renamed from complain_message_count; likewise.
6239
6240 * src/main.c (main): Use exit to exit with failure.
6241
6242 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
6243 rather than 1 and 0.
6244 * src/main.c (main): Likewise.
6245 * src/getargs.c (getargs): Likewise.
6246 * src/reader.c (reader): Likewise.
6247
6248 * src/getarg.c (getargs): Remove duplicate code for
6249 "Try `bison --help'".
6250
6251 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
6252 What was that "2" for?
6253
6254 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
6255 * src/getargs.c (usage): Likewise.
6256
6257 * src/getargs.c (getargs): When there are too few operands, report
6258 the last one. When there are too many, report the first extra
6259 one. This is how diffutils does it.
6260
6261 2002-10-20 Paul Eggert <eggert@twinsun.com>
6262
6263 Remove K&R vestiges.
6264 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
6265 * src/complain.c (VA_START): Remove. Assume prototypes.
6266 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
6267 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
6268 fatal): Assume prototypes.
6269 * src/complain.h: Assume prototypes.
6270 * src/system.h (PARAMS): Remove.
6271 Include <limits.h> unconditionally, since it's guaranteeed even
6272 for a freestanding C89 compiler.
6273 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
6274 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
6275
6276 2002-10-20 Akim Demaille <akim@epita.fr>
6277
6278 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
6279 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
6280 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
6281 (yyresolveStates, yyresolveAction, yyresolveStack)
6282 (yyprocessOneStack): Use them.
6283 (yy_reduce_print): New.
6284 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
6285
6286 2002-10-20 Akim Demaille <akim@epita.fr>
6287
6288 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
6289 arguments and output `void'.
6290 (b4_c_function): Rename as...
6291 (b4_c_function_def): this.
6292 (b4_c_function_decl, b4_c_ansi_function_def)
6293 (b4_c_ansi_function_decl): New.
6294 Change the interpretation of the arguments: before `int, foo', now
6295 `int foo, foo'.
6296 * data/yacc.c (yyparse): Prototype and define thanks to these.
6297 Adjust b4_c_function_def uses.
6298 * data/glr.c (yyparse): Likewise, but ANSI only.
6299
6300 2002-10-20 Akim Demaille <akim@epita.fr>
6301
6302 * src/output.c (prepare): Move the definition of `tokens_number',
6303 `nterms_number', `undef_token_number', `user_token_number_max'
6304 to...
6305 (prepare_tokens): Here.
6306 (prepare_tokens): Rename as...
6307 (prepare_symbols): this.
6308 (prepare): Move the definition of `rules_number' to...
6309 (prepare_rules): here.
6310 (prepare): Move the definition of `last', `final_state_number',
6311 `states_number' to...
6312 (prepare_states): here.
6313 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
6314
6315 2002-10-20 Akim Demaille <akim@epita.fr>
6316
6317 * src/tables.h, src/tables.c, src/output.c: Comment changes.
6318
6319 2002-10-20 Akim Demaille <akim@epita.fr>
6320
6321 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
6322 * data/c.m4: here.
6323
6324 2002-10-20 Akim Demaille <akim@epita.fr>
6325
6326 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
6327 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
6328 `pair'.
6329 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
6330 `name' to...
6331 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
6332 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
6333 These.
6334
6335 2002-10-19 Paul Eggert <eggert@twinsun.com>
6336
6337 Do not create a temporary file, as that involves security and
6338 cleanup headaches. Instead, use a pair of pipes.
6339 Derived from a suggestion by Florian Krohm.
6340 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
6341 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
6342 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
6343 (BISON_PREREQ_SUBPIPE): Add.
6344 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
6345 Add subpipe.h, subpipe.c.
6346 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
6347 * po/POTFILES.in: Add lib/subpipe.c.
6348 * src/output.c: Include "subpipe.h".
6349 (m4_invoke): Remove decl.
6350 (scan_skel): New decl.
6351 (output_skeleton): Use pipe rather than temporary file for m4 input.
6352 Check that m4sugar.m4 is readable, to avoid deadlock.
6353 Check for pipe I/O error.
6354 * src/scan-skel.l (readpipe): Remove decl.
6355 (scan_skel): New function, to be used in place of m4_invoke.
6356 Read from stream rather than file.
6357
6358 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
6359 float, as this generates a warning on Solaris 8 + GCC 3.2 with
6360 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
6361 this generates a more-accurate value anyway.
6362
6363 * lib/timevar.c (timervar_accumulate): Rename locals to
6364 avoid confusion with similarly-named more-global.
6365 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
6366
6367 * src/output.c (prepare): Use xstrdup to convert char const *
6368 to char *, to avoid GCC warning.
6369
6370 2002-10-19 Akim Demaille <akim@epita.fr>
6371
6372 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
6373 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
6374 Use them to have `calc.y' ready for %pure-parser.
6375 * data/yacc.c (YYLEX): Pass a yylex return type to
6376 b4_c_function_call.
6377
6378 2002-10-19 Akim Demaille <akim@epita.fr>
6379
6380 Prototype support of %lex-param and %parse-param.
6381
6382 * src/parse-gram.y: Add the definition of the %lex-param and
6383 %parse-param tokens, plus their rules.
6384 Drop the `_' version of %glr-parser.
6385 Add the "," token.
6386 * src/scan-gram.l (INITIAL): Scan them.
6387 * src/muscle_tab.c: Comment changes.
6388 (muscle_insert, muscle_find): Rename `pair' as `probe'.
6389 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
6390 (muscle_entry_s): The `value' member is no longer const.
6391 Adjust all dependencies.
6392 * src/muscle_tab.c (muscle_init): Adjust: use
6393 MUSCLE_INSERT_STRING.
6394 Initialize the obstack earlier.
6395 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
6396 (muscle_pair_list_grow): New.
6397 * data/c.m4 (b4_c_function_call, b4_c_args): New.
6398 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
6399 * tests/calc.at: Use %locations, not --locations.
6400 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
6401
6402 2002-10-19 Akim Demaille <akim@epita.fr>
6403
6404 * src/getargs.c (usage): Take status as argument and exit
6405 accordingly.
6406 Report the traditional `Try ... --help' message when status != 0.
6407 (usage, version): Don't take a FILE * as arg, it is pointless.
6408 (getargs): When there is an incorrect number of arguments, make it
6409 an error, and report it GNUlically thanks to `usage ()'.
6410
6411 2002-10-18 Paul Eggert <eggert@twinsun.com>
6412
6413 * data/glr.c (yyreportParseError): Don't assume that sprintf
6414 yields the length of the printed string, as this is not true
6415 on SunOS 4.1.4. Reported by Peter Klein.
6416
6417 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
6418 * tests/conflicts.at (%nonassoc and eof): Likewise.
6419 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
6420
6421 2002-10-17 Akim Demaille <akim@epita.fr>
6422
6423 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
6424 * src/getargs.c (trace_types, trace_args): Adjust.
6425 * src/reader.c (grammar_current_rule_prec_set)
6426 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
6427 Standardize error messages.
6428 And s/@prec/%prec/!
6429 (reader): Use trace_flag to enable scanner/parser debugging,
6430 instead of an adhoc scheme.
6431 * src/scan-gram.l: Remove trailing debugging code.
6432
6433 2002-10-16 Paul Eggert <eggert@twinsun.com>
6434
6435 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
6436 MUSCLE_TAB_H.
6437
6438 * NEWS: Officially drop support for building Bison with K&R C,
6439 since it didn't work anyway and it's not worth worrying about.
6440 * Makefile.maint (wget_files): Remove ansi2knr.c.
6441 (ansi2knr.c-url_prefix): Remove.
6442 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
6443 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6444 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6445
6446 2002-10-15 Paul Eggert <eggert@twinsun.com>
6447
6448 Stop using the "enum_" trick for K&R-style function definitions;
6449 it confused me, and I was the author! Instead, assume that people
6450 who want to use K&R C compilers (when using these modules in GCC,
6451 perhaps?) will run ansi2knr.
6452
6453 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
6454 All uses of "enum_" changed to "enum ".
6455 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
6456 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
6457
6458 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
6459 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
6460 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
6461 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
6462 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
6463 abitset_not, abitset_ones, abitset_or, abitset_or_and,
6464 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
6465 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
6466 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
6467 Use function prototypes; this removes the need for declaring
6468 static functions simply to provide their prototypes.
6469 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
6470 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
6471 bitset_count_, bitset_create, bitset_dump, bitset_first,
6472 bitset_free, bitset_init, bitset_last, bitset_next,
6473 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
6474 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
6475 bitset_print, bitset_release_memory, bitset_toggle_,
6476 bitset_type_choose, bitset_type_get, bitset_type_name_get,
6477 debug_bitset): Likewise.
6478 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
6479 * lib/bitset_stats.c (bitset_log_histogram_print,
6480 bitset_percent_histogram_print, bitset_stats_and,
6481 bitset_stats_and_cmp, bitset_stats_and_or,
6482 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
6483 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
6484 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
6485 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
6486 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
6487 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
6488 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
6489 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
6490 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
6491 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
6492 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
6493 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
6494 bitset_stats_zero): Likewise.
6495 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
6496 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
6497 bitsetv_dump, debug_bitsetv): Likewise.
6498 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
6499 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
6500 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
6501 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
6502 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
6503 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
6504 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
6505 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
6506 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
6507 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
6508 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
6509 Likewise.
6510 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
6511 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
6512 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
6513 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
6514 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
6515 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
6516 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
6517 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
6518 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
6519 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
6520 lbitset_xor_cmp, lbitset_zero): Likewise.
6521
6522 2002-10-14 Akim Demaille <akim@epita.fr>
6523
6524 Version 1.75.
6525
6526 2002-10-14 Akim Demaille <akim@epita.fr>
6527
6528 * tests/Makefile.am (maintainer-check-posix): New.
6529
6530 2002-10-14 Akim Demaille <akim@epita.fr>
6531
6532 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
6533 member.
6534
6535 2002-10-14 Akim Demaille <akim@epita.fr>
6536
6537 * src/tables.c (table_ninf_remap): base -> tab.
6538 Reported by Matt Rosing.
6539
6540 2002-10-14 Paul Eggert <eggert@twinsun.com>
6541
6542 * tests/action.at, tests/calc.at, tests/conflicts.at,
6543 tests/cxx-type.at, tests/headers.at, tests/input.at,
6544 tests/regression.at, tests/synclines.at, tests/torture.at:
6545 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
6546 so that the tests still work even if POSIXLY_CORRECT is set.
6547 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
6548
6549 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
6550 for portability to K&R hosts. Fix typo: signed char is guaranteed
6551 only to 127, not to 128.
6552 * data/glr.c (yysigned_char): New type.
6553 * data/yacc.c (yysigned_char): Likewise.
6554 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
6555
6556 2002-10-13 Paul Eggert <eggert@twinsun.com>
6557
6558 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
6559 true due to limited range of data type" warning from GCC.
6560
6561 * data/c.m4 (b4_token_defines): Protect against double-inclusion
6562 by wrapping enum yytokentype's definition inside #ifndef
6563 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
6564
6565 2002-10-13 Akim Demaille <akim@epita.fr>
6566
6567 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
6568 Un yy- yyrhs to avoid the name clash with the global YYRHS.
6569
6570 2002-10-13 Akim Demaille <akim@epita.fr>
6571
6572 * Makefile.maint: Update from Autoconf 2.54.
6573 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
6574
6575 2002-10-13 Akim Demaille <akim@epita.fr>
6576
6577 * src/print.c (print_state): Separate the list of solved conflicts
6578 from the other items.
6579 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
6580
6581 2002-10-13 Akim Demaille <akim@epita.fr>
6582
6583 Let nondeterministic skeletons be usable with deterministic
6584 tables.
6585
6586 With the patch, GAWK compiled by GCC without -O2 passes its test
6587 suite using a GLR parser driven by LALR tables. It fails with -O2
6588 because `struct stat' gives two different answers on my machine:
6589 88 (definition of an auto var) and later 96 (memset on this var).
6590 Hence the stack is badly corrumpted. The headers inclusion is to
6591 blame: if I move the awk.h inclusion before GLR's system header
6592 inclusion, the two struct stat have the same size.
6593
6594 * src/tables.c (pack_table): Always create conflict_table.
6595 (token_actions): Always create conflict_list.
6596 * data/glr.c (YYFLAG): Remove, unused.
6597
6598 2002-10-13 Akim Demaille <akim@epita.fr>
6599
6600 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
6601 (O0FLAGS): New.
6602 (VALGRIND, GXX): New.
6603 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
6604 * tests/bison.in: Run $PREBISON a pre-command.
6605 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
6606 (maintainer-check-g++): New.
6607 * Makefile.am (maintainer-check): New.
6608
6609 2002-10-13 Akim Demaille <akim@epita.fr>
6610
6611 * data/glr.c: Formatting changes.
6612 Tweak some trace messages to match yacc.c's.
6613
6614 2002-10-13 Akim Demaille <akim@epita.fr>
6615
6616 GLR parsers sometimes raise parse errors instead of performing the
6617 default reduction.
6618 Reported by Charles-Henry de Boysson.
6619
6620 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
6621 check the length of the traces when %glr.
6622 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
6623 GLR's traces.
6624 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
6625 Test GLR parsers.
6626 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
6627 (yyltype): Remove the yy prefix from the member names.
6628 (yytable): Complete its comment.
6629 (yygetLRActions): Map error action number from YYTABLE from
6630 YYTABLE_NINF to 0.
6631 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
6632 (which was a bug: it should have been YYTABEL_NINF, and yet it was
6633 not satisfying as we could compare an YYACTION computed from
6634 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
6635 only value for error actions.
6636 (yyreportParseError): In verbose parse error messages, don't issue
6637 `error' in the list of expected tokens.
6638 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
6639 next action to perform to match glr.c's decoding.
6640 (yytable): Complete its comment.
6641
6642 2002-10-13 Paul Eggert <eggert@twinsun.com>
6643
6644 Fix problem reported by Henrik Grubbstroem in
6645 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
6646 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
6647 because the Bison parser reads the second action before reducing
6648 the first one.
6649 * src/scan-gram.l (rule_length): New static var.
6650 Use it to keep track of the rule length in the scanner, since
6651 we can't expect the parser to be in lock-step sync with the scanner.
6652 (handle_action_dollar, handle_action_at): Use this var.
6653 * tests/actions.at (Exotic Dollars): Test for the problem.
6654
6655 2002-10-12 Paul Eggert <eggert@twinsun.com>
6656
6657 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
6658 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
6659 Include <sys/time.h> when checking for clock_t and struct tms.
6660 Use same include order as source.
6661 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
6662 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
6663
6664 * lib/timevar.c: Update copyright date and clarify comments.
6665 (get_time) [IN_GCC]: Keep the GCC version for reference.
6666
6667 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
6668 GCC version as of today, then merge Bison's changes.
6669 Change "GCC" to "Bison" in copyright notice. timevar.def's
6670 author is Akim, so change that too.
6671
6672 * src/reader.c (grammar_current_rule_check):
6673 Don't worry about the default action if $$ is untyped.
6674 Prevents bogus warnings reported by Jim Gifford in
6675 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
6676
6677 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
6678 * data/glr.c, data/lalr1.cc, data/yacc.c:
6679 Output token definitions before the first part of user declarations.
6680 Fixes compatibility problem reported by Jim Gifford for kbd in
6681 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
6682
6683 2002-10-11 Paul Eggert <eggert@twinsun.com>
6684
6685 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
6686 (yyparse): here. This undoes some of the 2002-07-25 change.
6687 Compatibility problem reported by Ralf S. Engelschall with
6688 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
6689
6690 2002-10-11 Akim Demaille <akim@epita.fr>
6691
6692 * tests/regression.at Characters Escapes): New.
6693 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
6694 characters.
6695 Reported by Jan Nieuwenhuizen.
6696
6697 2002-10-11 Akim Demaille <akim@epita.fr>
6698
6699 * po/id.po: New.
6700
6701 2002-10-10 Paul Eggert <eggert@twinsun.com>
6702
6703 Portability fixes for bitsets; this also avoids several GCC
6704 warnings.
6705
6706 * lib/abitset.c: Include <stddef.h>, for offsetof.
6707 * lib/lbitset.c: Likewise.
6708
6709 * lib/abitset.c (abitset_bytes): Return a size that is aligned
6710 properly for vectors of objects. Do not assume that adding a
6711 header size to a multiple of a word size yields a value that is
6712 properly aligned for the whole union.
6713 * lib/bitsetv.c (bitsetv_alloc): Likewise.
6714
6715 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
6716 unique names for structures.
6717 * lib/ebitset.c (ebitset_bytes): Likewise.
6718 * lib/lbitset.c (lbitset_bytes): Likewise.
6719
6720 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
6721 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
6722 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
6723 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
6724 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
6725 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
6726 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
6727 to improve the type-checking that GCC can do.
6728 * lib/bitset.c (bitset_op4_cmp): Likewise.
6729 * lib/bitset_stats.c (bitset_stats_count,
6730 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
6731 bitset_stats_copy, bitset_stats_disjoint_p,
6732 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
6733 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
6734 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
6735 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
6736 bitset_stats_and_or_cmp, bitset_stats_andn_or,
6737 bitset_stats_andn_or_cmp, bitset_stats_or_and,
6738 bitset_stats_or_and_cmp): Likewise.
6739 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
6740 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
6741 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
6742 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
6743
6744 * lib/abitset.h: Include bitset.h, not bbitset.h.
6745 * lib/ebitset.h: Likewise.
6746 * lib/lbitset.h: Likewise.
6747
6748 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
6749 All instances of parameters of type enum bitset_opts are now of
6750 type enum_bitset_opts, to conform to the C Standard, and similarly
6751 for enum_bitset_type.
6752 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
6753 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
6754
6755 Do not use "struct bitset_struct" to mean different things in
6756 different modules. Not only is this confusing, it violates
6757 the C Standard, which requires that structure types in different
6758 modules must be compatible if one is to be passed to the other.
6759 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
6760 All instances of "struct bitset_struct *" replaced with "bitset".
6761 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
6762 (union bitset_union, struct abitset_struct, struct ebitset_struct,
6763 struct lbitset_struct, struct bitset_stats_struct): New types.
6764 All uses of struct bitset_struct changed to union bitset_union,
6765 etc.
6766 * lib/abitset.c (struct abitset_struct, abitset,
6767 struct bitset_struct): Remove.
6768 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
6769 struct bitset_struct): Remove.
6770 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
6771 bitset_struct): Remove.
6772 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
6773 Likewise.
6774
6775 Do not call a function of type T using a call that assumes the
6776 function is of a different type U. Standard C requires that a
6777 function must be called with a type that is compatible with its
6778 definition.
6779 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
6780 New decls.
6781 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
6782 New functions.
6783 * lib/ebitset.c (PFV): Remove.
6784 * lib/lbitset.c (PFV): Likewise.
6785 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
6786 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
6787 decls.
6788 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
6789 (ebitset_vtable): Use them.
6790 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
6791 lbitset_xor): New functions.
6792 (lbitset_vtable): Use them.
6793
6794 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
6795 Declare.
6796
6797 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
6798 GCC warning.
6799 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
6800 Use offsetof, for simplicity.
6801
6802 2002-10-06 Paul Eggert <eggert@twinsun.com>
6803
6804 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
6805 the same width as int. This reapplies a hunk of the 2002-08-12 patch
6806 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6807 which was inadvertently undone by the 2002-09-30 patch.
6808 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
6809 the same width as int.
6810
6811 2002-10-04 Paul Eggert <eggert@twinsun.com>
6812
6813 Version 1.50.
6814
6815 * configure.ac (AC_INIT), NEWS: Increment version number.
6816
6817 * doc/bison.texinfo: Minor spelling, grammar, and white space
6818 fixes.
6819 (Symbols): Mention that any negative value returned from yylex
6820 signifies end-of-input. Warn about negative chars. Mention
6821 the portable Standard C character set.
6822
6823 The GNU coding standard says CFLAGS and YFLAGS are reserved
6824 for the installer to set.
6825 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
6826 * src/Makefile.am (AM_CFLAGS): Likewise.
6827 (AM_YFLAGS): Renamed from YFLAGS.
6828
6829 Fix some MAX and MIN problems.
6830 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
6831 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
6832 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
6833 * src/reader.c (reader): Use it.
6834
6835 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
6836 POSIX 1003.1-2001 has removed fgrep.
6837
6838 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6839
6840 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
6841 interpreted as signed.
6842 * lib/ebitset.c (ebitset_list): Fix bug.
6843
6844 2002-10-01 Paul Eggert <eggert@twinsun.com>
6845
6846 More fixes for 64-bit hosts and large bitsets.
6847
6848 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
6849 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
6850 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
6851 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
6852 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
6853 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
6854 bitset_count_): Likewise.
6855 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
6856 bitset_first, bitset_last): Likewise.
6857 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
6858 bitset_stats_list_reverse, bitset_stats_size,
6859 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
6860 Likewise.
6861 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
6862 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
6863 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
6864 bitsetv_reflexive_transitive_closure): Likewise.
6865 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
6866 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
6867 Likewise.
6868 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
6869 Likewise.
6870
6871 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
6872 Use size_t, not unsigned int, to count bytes.
6873 * lib/abitset.h (abitset_bytes): Likewise.
6874 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
6875 Likewise.
6876 * lib/bitset.h (bitset_bytes): Likewise.
6877 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
6878 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
6879 * lib/bitsetv.c (bitsetv_alloc): Likewise.
6880 * lib/ebitset.c (ebitset_bytes): Likewise.
6881 * lib/ebitset.h (ebitset_bytes): Likewise.
6882 * lib/lbitset.c (lbitset_bytes): Likewise.
6883 * lib/lbitset.h (lbitset_bytes): Likewise.
6884
6885 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
6886 abitset_subset_p, abitset_disjoint_p, abitset_and,
6887 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
6888 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
6889 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
6890 abitset_or_and, abitset_or_and_cmp):
6891 Use bitset_windex instead of unsigned int.
6892 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
6893 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
6894 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
6895 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
6896 Likewise.
6897 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
6898
6899 * lib/bitset.c (bitset_print):
6900 Use proper printf formats for widths of integer types.
6901 * lib/bitset_stats.c (bitset_percent_histogram_print,
6902 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
6903 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
6904 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
6905 * lib/lbitset.c (lbitset_bytes): Likewise.
6906
6907 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
6908 BITSET_SIZE_MAX): New macros.
6909 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
6910 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
6911 to BITSET_WINDEX_MAX.
6912
6913 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
6914 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
6915 since we now return the bitset_bindex type (not int).
6916
6917 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
6918 when computing sizes.
6919 * lib/ebitset.c (ebitset_elts_grow): Likewise.
6920
6921 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
6922 and avoid cast to unsigned.
6923
6924 2002-09-30 Akim Demaille <akim@epita.fr>
6925
6926 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
6927 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
6928 Updates from Michael Hayes.
6929
6930 2002-09-30 Art Haas <ahaas@neosoft.com>
6931
6932 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
6933 invocations.
6934 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
6935 defined.
6936
6937 2002-09-27 Akim Demaille <akim@epita.fr>
6938
6939 Version 1.49c.
6940
6941 2002-09-27 Akim Demaille <akim@epita.fr>
6942
6943 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
6944 (Because of AC_LIBSOURCE).
6945
6946 2002-09-27 Akim Demaille <akim@epita.fr>
6947
6948 Playing with Autoscan.
6949
6950 * configure.ac: Remove the old LIBOBJ tweaks.
6951 (AC_REPLACE_FUNCS): Add strrchr and strtol.
6952 * lib/strrchr.c: New.
6953 * lib/strtol.c: New, from the Coreutils 4.5.1.
6954
6955 2002-09-27 Akim Demaille <akim@epita.fr>
6956
6957 Playing with Autoscan.
6958
6959 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
6960 * lib/Makefile.am (libbison_a_SOURCES): No longer include
6961 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
6962 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
6963 Coreutils 4.5.1.
6964
6965 2002-09-24 Akim Demaille <akim@epita.fr>
6966
6967 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
6968 (Frequently Asked Questions, Parser Stack Overflow): New.
6969
6970 2002-09-13 Akim Demaille <akim@epita.fr>
6971
6972 Playing with autoscan.
6973
6974 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
6975 * src/files.c (skeleton_find): Remove, unused.
6976 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
6977 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
6978
6979 2002-09-13 Akim Demaille <akim@epita.fr>
6980
6981 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
6982 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
6983
6984 2002-09-13 Akim Demaille <akim@epita.fr>
6985
6986 * configure.ac: Require 2.54.
6987 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
6988 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
6989 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
6990 Remove, provided by Autoconf macros.
6991
6992 2002-09-12 Akim Demaille <akim@epita.fr>
6993
6994 * m4/prereq.m4: Update, from Coreutils 4.5.1.
6995
6996 2002-09-12 Akim Demaille <akim@epita.fr>
6997
6998 * m4/prereq.m4: Update, from Fileutils 4.1.5.
6999 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
7000 Reported by Martin Mokrejs.
7001
7002 2002-09-10 Akim Demaille <akim@epita.fr>
7003
7004 * src/parse-gram.y: Associate a human readable string to each
7005 token type.
7006 * tests/regression.at (Invalid inputs): Adjust.
7007
7008 2002-09-10 Gary V. Vaughan <gary@gnu.org>
7009
7010 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
7011 with an Autoconf-2.5x style configure.ac.
7012
7013 2002-09-06 Paul Eggert <eggert@twinsun.com>
7014
7015 * doc/bison.texinfo (Conditions): Make explicit that the GPL
7016 exception applies only to yacc.c. This is a modification of a
7017 patch originally suggested by Akim Demaille.
7018
7019 2002-09-06 Akim Demaille <akim@epita.fr>
7020
7021 * data/c.m4 (b4_copyright): Move the GPL exception comment from
7022 here to...
7023 * data/yacc.c: here.
7024
7025 * data/lalr1.cc (struct yyltype): Don't define it, since we use
7026 LocationType.
7027 (b4_ltype): Default to yy::Location from location.hh.
7028
7029 2002-09-04 Jim Meyering <jim@meyering.net>
7030
7031 * data/yacc.c: Guard the declaration of yytoknum also with
7032 `#ifdef YYPRINT', so it is declared only when used.
7033
7034 2002-09-04 Akim Demaille <akim@epita.fr>
7035
7036 * configure.in: Rename as...
7037 * configure.ac: this.
7038 Bump to 1.49c.
7039
7040 2002-09-04 Akim Demaille <akim@epita.fr>
7041
7042 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
7043 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
7044 translate maintainer only messages.
7045
7046 2002-08-12 Paul Eggert <eggert@twinsun.com>
7047
7048 Version 1.49b.
7049
7050 * Makefile.am (SUBDIRS): Remove intl.
7051 (DISTCLEANFILES): Remove.
7052 * NEWS: Mention that GNU M4 is now required. Clarify what is
7053 meant by "larger grammars". Mention the pt_BR translation.
7054 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
7055 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
7056 Bump version from 0.11.2 to 0.11.5.
7057 (BISON_PREREQ_STAGE): Remove.
7058 (AM_GNU_GETTEXT): Use external gettext.
7059 (AC_OUTPUT): Remove intl/Makefile.
7060
7061 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
7062
7063 * data/glr.c: Include string.h, for strlen.
7064 (yyreportParseError): Use size_t for yysize.
7065 (yy_yypstack): No longer nested inside yypstates, as nested
7066 functions are not portable. Do not assume size_t is the
7067 same width as int.
7068 (yypstates): Do not assume that ptrdiff_t is the same width
7069 as int, and similarly for yyposn and YYINDEX.
7070
7071 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
7072
7073 * lib/Makefile.am (INCLUDES): Do not include from the intl
7074 directory, which has been removed.
7075 * src/Makefile.am (INCLUDES): Likewise.
7076
7077 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
7078 (bitsets_sources, additional_bitsets_sources, timevars_sources):
7079 New vars.
7080
7081 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
7082 * tests/Makefile.am (EXTRA_DIST): Likewise.
7083
7084 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
7085 Do not assume that bitset_windex is the same width as unsigned.
7086
7087 * lib/abitset.c (abitset_unused_clear): Do not assume that
7088 bitset_word is the same width as int.
7089 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
7090 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
7091 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
7092 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
7093 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
7094
7095 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
7096 portability to one's complement hosts!).
7097 * lib/ebitset.c (ebitset_op1): Likewise.
7098 * lib/lbitset.c (lbitset_op1): Likewise.
7099
7100 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
7101 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
7102 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
7103 Sync with fileutils.
7104 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
7105 lib/gettext.h: Sync with diffutils.
7106
7107 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
7108 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
7109
7110 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
7111 PROTOTYPES to check for prototypes, and "defined __STDC__" to
7112 check for void *.
7113
7114 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
7115 size_t; the old version tried to do this but casted improperly.
7116 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
7117 (bitset_test): Now returns int, not unsigned long.
7118
7119 * lib/bitset_stats.c: Include "gettext.h".
7120 (_): New macro.
7121 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
7122 name locals "index", as it generates unnecessary warnings on some
7123 hosts that have an "index" function.
7124
7125 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
7126 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
7127 they need translation.
7128 * src/LR0.c (state_list_append, new_itemsets, get_state,
7129 append_states, generate_states): Likewise.
7130 * src/assoc.c (assoc_to_string): Likewise.
7131 * src/closure.c (print_closure, set_firsts, closure): Likewise.
7132 * src/gram.c (grammar_dump): Likewise.
7133 * src/injections.c (injections_compute): Likewise.
7134 * src/lalr.c (lookaheads_print): Likewise.
7135 * src/relation.c (relation_transpose): Likewise.
7136 * src/scan-gram.l: Likewise.
7137 * src/tables.c (table_grow, pack_vector): Likewise.
7138
7139 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
7140 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
7141 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
7142 * m4/mbstate_t.m4: Sync with fileutils.
7143 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
7144
7145 * po/LINGUAS: Add pt_BR.
7146 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
7147 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
7148 lib/timevar.c.
7149 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
7150 manual recommends.
7151 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
7152
7153 * src/complain.c (strerror_r): Remove decl; not needed.
7154 (strerror): Use same pattern as ../lib/error.c.
7155
7156 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
7157
7158 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
7159
7160 * src/main.c (main): Cast result of bindtextdomain and textdomain
7161 to void, to avoid a GCC warning when --disable-nls is in effect.
7162
7163 * src/scan-gram.l: Use strings rather than escapes when possible,
7164 to minimize the number of warnings from xgettext.
7165 (handle_action_dollar, handle_action_at): Don't use isdigit,
7166 as it mishandles negative chars and it may not work as expected
7167 outside the C locale.
7168
7169 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
7170 this is a GCC extension and is not portable to other compilers.
7171
7172 * src/system.h (alloca): Use same pattern as ../lib/error.c.
7173 Do not include <ctype.h>; no longer needed.
7174 Do not include <malloc.h>; no longer needed (and generates
7175 warnings on OpenBSD 3.0).
7176
7177 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
7178 it's not portable.
7179
7180 * tests/regression.at: Do not use 'cc -c input.c -o input';
7181 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
7182
7183 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
7184 exit status as failure, not just exit status 1. Sun C exits
7185 with status 2 sometimes.
7186
7187 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
7188 Use it for the two large tests.
7189
7190 2002-08-02 Akim Demaille <akim@epita.fr>
7191
7192 * src/conflicts.c (conflicts_output): Don't output rules never
7193 reduced here, since anyway that computation doesn't work.
7194 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
7195 (rule_useless_p, rule_never_reduced_p): New.
7196 (grammar_rules_partial_print): Use a filter instead of a range.
7197 Display the title only if needed.
7198 (grammar_rules_print): Adjust.
7199 (grammar_rules_never_reduced_report): New.
7200 * src/tables.c (action_row): Move the computation of rules never
7201 reduced to...
7202 (token_actions): here.
7203 * src/main.c (main): Make the parser before making the report, so
7204 that rules never reduced are computed.
7205 Call grammar_rules_never_reduced_report.
7206 * src/print.c (print_results): Report rules never reduced.
7207 * tests/conflicts.at, tests/reduce.at: Adjust.
7208
7209 2002-08-01 Akim Demaille <akim@epita.fr>
7210
7211 Instead of attaching lookaheads and duplicating the rules being
7212 reduced by a state, attach the lookaheads to the reductions.
7213
7214 * src/state.h (state_t): Remove the `lookaheads',
7215 `lookaheads_rule' member.
7216 (reductions_t): Add a `lookaheads' member.
7217 Use a regular array for the `rules'.
7218 * src/state.c (reductions_new): Initialize the lookaheads member
7219 to 0.
7220 (state_rule_lookaheads_print): Adjust.
7221 * src/state.h, src/state.c (state_reductions_find): New.
7222 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
7223 (count_rr_conflicts): Adjust.
7224 * src/lalr.c (LArule): Remove.
7225 (add_lookback_edge): Adjust.
7226 (state_lookaheads_count): New.
7227 (states_lookaheads_initialize): Merge into...
7228 (initialize_LA): this.
7229 (lalr_free): Adjust.
7230 * src/main.c (main): Don't free nullable and derives too early: it
7231 is used by --verbose.
7232 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
7233
7234 2002-08-01 Akim Demaille <akim@epita.fr>
7235
7236 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
7237 `rule_number_t**'.
7238 (set_derives, free_derives): Rename as...
7239 (derives_compute, derives_free): this.
7240 Adjust all dependencies.
7241 * src/nullable.c (set_nullable, free_nullable): Rename as...
7242 (nullable_compute, nullable_free): these.
7243 (rule_list_t): Store rule_t *, not rule_number_t.
7244 * src/state.c (state_rule_lookaheads_print): Directly compare rule
7245 pointers, instead of their numbers.
7246 * src/main.c (main): Call nullable_free, and derives_free earlier,
7247 as they were lo longer used.
7248
7249 2002-08-01 Akim Demaille <akim@epita.fr>
7250
7251 * lib/timevar.c (get_time): Include children time.
7252 * src/lalr.h (LA, LArule): Don't export them: used with the
7253 state_t.
7254 * src/lalr.c (LA, LArule): Static.
7255 * src/lalr.h, src/lalr.c (lalr_free): New.
7256 * src/main.c (main): Call it.
7257 * src/tables.c (pack_vector): Check whether loc is >= to the
7258 table_size, not >.
7259 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
7260 (tables_generate): do it, since that's also it which allocates
7261 them.
7262 Don't free LA and LArule, main does.
7263
7264 2002-07-31 Akim Demaille <akim@epita.fr>
7265
7266 Separate parser tables computation and output.
7267
7268 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
7269 (conflict_list, conflict_list_cnt, table, check, table_ninf)
7270 (yydefgoto, yydefact, high): Move to...
7271 * src/tables.h, src/tables.c: here.
7272 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
7273 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
7274 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
7275 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
7276 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
7277 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
7278 (action_row, save_row, token_actions, save_column, default_goto)
7279 (goto_actions, sort_actions, matching_state, pack_vector)
7280 (table_ninf_remap, pack_table, prepare_actions): Move to...
7281 * src/tables.c: here.
7282 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
7283 * src/output.c (token_actions, output_base, output_conflicts)
7284 (output_check): Merge into...
7285 (prepare_actions): this.
7286 (actions_output): Rename as...
7287 (user_actions_output): this.
7288 * src/main.c (main): Call tables_generate and tables_free.
7289
7290 2002-07-31 Akim Demaille <akim@epita.fr>
7291
7292 Steal GCC's --time-report support.
7293
7294 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
7295 stolen/adjusted from GCC.
7296 * m4/stage.m4: Remove time related checks.
7297 * m4/timevar.m4: New.
7298 * configure.in: Adjust.
7299 * src/system.h: Adjust to using timevar.h.
7300 * src/getargs.h, src/getargs.c: Support trace_time for
7301 --trace=time.
7302 * src/main.c (stage): Remove.
7303 (main): Replace `stage' invocations with timevar calls.
7304 * src/output.c: Insert pertinent timevar calls.
7305
7306 2002-07-31 Akim Demaille <akim@epita.fr>
7307
7308 Let --trace have arguments.
7309
7310 * src/getargs.h (enum trace_e): New.
7311 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
7312 (long_options, short_options): --trace/-T takes an optional
7313 argument.
7314 Change all the uses of trace_flag to reflect the new flags.
7315 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
7316
7317 Strengthen `stage' portability.
7318
7319 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
7320 * configure.in: Use it.
7321 Don't check for malloc.h and sys/times.h.
7322 * src/system.h: Include them when appropriate.
7323 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
7324 times and struct tms are available.
7325
7326 2002-07-30 Akim Demaille <akim@epita.fr>
7327
7328 In verbose parse error message, don't report `error' as an
7329 expected token.
7330 * tests/actions.at (Printers and Destructors): Adjust.
7331 * tests/calc.at (Calculator $1): Adjust.
7332 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
7333 error message, do not report the parser accepts the error token in
7334 that state.
7335
7336 2002-07-30 Akim Demaille <akim@epita.fr>
7337
7338 Normalize conflict related messages.
7339
7340 * src/complain.h, src/complain.c (warn, complain): New.
7341 * src/conflicts.c (conflicts_print): Use them.
7342 (conflict_report_yacc): New, extracted from...
7343 (conflicts_print): here.
7344 * tests/conflicts.at, tests/existing.at: Adjust.
7345
7346 2002-07-30 Akim Demaille <akim@epita.fr>
7347
7348 Report rules which are never reduced by the parser: those hidden
7349 by conflicts.
7350
7351 * src/LR0.c (save_reductions): Don't make the final state too
7352 different: save its reduction (accept) instead of having a state
7353 without any action (no shift or goto, no reduce).
7354 Note: the final state is now a ``regular'' state, i.e., the
7355 parsers now contain `reduce 0' as default reduction.
7356 Nevertheless, since they decide to `accept' when yystate =
7357 final_state, they still will not reduce rule 0.
7358 * src/print.c (print_actions, print_reduction): Adjust.
7359 * src/output.c (action_row): Track reduced rules.
7360 (token_actions): Report rules never reduced.
7361 * tests/conflicts.at, tests/regression.at: Adjust.
7362
7363 2002-07-30 Akim Demaille <akim@epita.fr>
7364
7365 `stage' was accidently included in a previous patch.
7366 Initiate its autoconfiscation.
7367
7368 * configure.in: Look for malloc.h and sys/times.h.
7369 * src/main.c (stage): Adjust.
7370 Report only when trace_flag.
7371
7372 2002-07-29 Akim Demaille <akim@epita.fr>
7373
7374 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
7375 state_number_t.
7376 (errs_t): symbol_t*, not symbol_number_t.
7377 (reductions_t): rule_t*, not rule_number_t.
7378 (FOR_EACH_SHIFT): New.
7379 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
7380 * src/print.c, src/print_graph.c: Adjust.
7381
7382 2002-07-29 Akim Demaille <akim@epita.fr>
7383
7384 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
7385
7386 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
7387 (endtoken, accept): these.
7388 * src/reader.c (reader): Set endtoken's default tag to "$end".
7389 Set undeftoken's tag to "$undefined" instead of "$undefined.".
7390 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
7391 Adjust.
7392
7393 2002-07-29 Akim Demaille <akim@epita.fr>
7394
7395 * src/reduce.c (reduce_grammar): When the language is empty,
7396 complain about the start symbol, not the axiom.
7397 Use its location.
7398 * tests/reduce.at (Empty Language): New.
7399
7400 2002-07-26 Akim Demaille <akim@epita.fr>
7401
7402 * src/reader.h, src/reader.c (gram_error): ... can't get
7403 yycontrol without making too strong assumptions on the parser
7404 itself.
7405 * src/output.c (prepare_tokens): Use the real 0th value of
7406 token_translations instead of `0'.
7407 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
7408 visible here.
7409 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
7410 for the time being: %locations ought to provide it to yyerror.
7411
7412 2002-07-25 Akim Demaille <akim@epita.fr>
7413
7414 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
7415 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
7416 * tests/regression.at (Web2c Actions): Adjust.
7417
7418 2002-07-25 Akim Demaille <akim@epita.fr>
7419
7420 Stop storing rules from 1 to nrules + 1.
7421
7422 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
7423 * src/nullable.c, src/output.c, src/print.c, src/reader.c
7424 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
7425 Iterate from 0 to nrules.
7426 Use rule_number_as_item_number and item_number_as_rule_number.
7427 Adjust to `derive' now containing possibly 0.
7428 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
7429 Handle the `- 1' part in rule numbers from/to item numbers.
7430 * src/conflicts.c (log_resolution): Fix the message which reversed
7431 shift and reduce.
7432 * src/output.c (action_row): Initialize default_rule to -1.
7433 (token_actions): Adjust.
7434 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
7435 expected output.
7436 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
7437
7438 2002-07-25 Akim Demaille <akim@epita.fr>
7439
7440 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
7441 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
7442 (b4_c_knr_arg_decl): New.
7443 * data/yacc.c: Use it to define yysymprint, yydestruct, and
7444 yyreport_parse_error.
7445
7446 2002-07-25 Akim Demaille <akim@epita.fr>
7447
7448 * data/yacc.c (yyreport_parse_error): New, extracted from...
7449 (yyparse): here.
7450 (yydestruct, yysymprint): Move above yyparse.
7451 Be K&R compliant.
7452
7453 2002-07-25 Akim Demaille <akim@epita.fr>
7454
7455 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
7456 replace...
7457 (b4_sint_type, b4_uint_type): these.
7458 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
7459 * tests/regression.at (Web2c Actions): Adjust.
7460
7461 2002-07-25 Akim Demaille <akim@epita.fr>
7462
7463 * src/gram.h (TIEM_NUMBER_MAX): New.
7464 (item_number_of_rule_number, rule_number_of_item_number): Rename
7465 as...
7466 (rule_number_as_item_number, item_number_as_rule_number): these.
7467 Adjust dependencies.
7468 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
7469 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
7470 (symbol_number_to_vector_number): New.
7471 (order): Of vector_number_t* type.
7472 (base_t, BASE_MAX, BASE_MIN): New.
7473 (froms, tos, width, pos, check): Of base_t type.
7474 (action_number_t, ACTION_MIN, ACTION_MAX): New.
7475 (actrow): Of action_number_t type.
7476 (conflrow): Of unsigned int type.
7477 (table_ninf, base_ninf): New.
7478 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
7479 (muscle_insert_int_table, muscle_insert_base_table)
7480 (muscle_insert_rule_number_table): New.
7481 (prepare_tokens): Output `toknum' as int_table.
7482 (action_row): Returns a rule_number_t.
7483 Use ACTION_MIN, not SHRT_MIN.
7484 (token_actions): yydefact is rule_number_t*.
7485 (table_ninf_remap): New.
7486 (pack_table): Use it for `base' and `table'.
7487 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
7488 replaced with...
7489 (YYPACT_NINF, YYTABLE_NINF): these.
7490 (yypact, yytable): Compute their types instead of hard-coded
7491 `short'.
7492 * tests/regression.at (Web2c Actions): Adjust.
7493
7494 2002-07-19 Akim Demaille <akim@epita.fr>
7495
7496 * src/scan-gram.l (id): Can start with an underscore.
7497
7498 2002-07-16 Akim Demaille <akim@epita.fr>
7499
7500 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
7501 Adjust all former `associativity' dependencies.
7502 * src/symtab.c (symbol_new): Default associativity is `undef', not
7503 `right'.
7504 (symbol_check_alias_consistence): Adjust.
7505
7506 2002-07-09 Akim Demaille <akim@epita.fr>
7507
7508 * doc/bison.texinfo: Properly set the ``header'' part.
7509 Use @dircategory ``GNU programming tools'' as per Texinfo's
7510 documentation.
7511 Use @copying.
7512
7513 2002-07-09 Akim Demaille <akim@epita.fr>
7514
7515 * lib/quotearg.h: Protect against multiple inclusions.
7516 * src/location.h (location_t): Add a `file' member.
7517 (LOCATION_RESET, LOCATION_PRINT): Adjust.
7518 * src/complain.c (warn_at, complain_at, fatal_at): Drop
7519 `error_one_per_line' support.
7520
7521 2002-07-09 Akim Demaille <akim@epita.fr>
7522
7523 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
7524 * src/reader.c (lineno): Remove.
7525 Adjust all dependencies.
7526 (get_merge_function): Take a location and use complain_at.
7527 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
7528 * tests/regression.at (Invalid inputs, Mixing %token styles):
7529 Adjust.
7530
7531 2002-07-09 Akim Demaille <akim@epita.fr>
7532
7533 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
7534 recovery rule, and forbid extensions when --yacc.
7535 (gram_error): Use complain_at.
7536 * src/reader.c (reader): Exit if there were parse errors.
7537
7538 2002-07-09 Akim Demaille <akim@epita.fr>
7539
7540 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
7541 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
7542 Reported by R Blake <blakers@mac.com>.
7543
7544 2002-07-09 Akim Demaille <akim@epita.fr>
7545
7546 * data/yacc.c: Output the copyright notive in the header.
7547
7548 2002-07-03 Akim Demaille <akim@epita.fr>
7549
7550 * src/output.c (froms, tos): Are state_number_t.
7551 (save_column): sp, sp1, and sp2 are state_number_t.
7552 (prepare): Rename `final' as `final_state_number', `nnts' as
7553 `nterms_number', `nrules' as `rules_number', `nstates' as
7554 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
7555 unused.
7556 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
7557 * data/lalr1.cc (nsym_): Remove, unused.
7558
7559 2002-07-03 Akim Demaille <akim@epita.fr>
7560
7561 * src/lalr.h, src/lalr.c (goto_number_t): New.
7562 * src/lalr.c (goto_list_t): New.
7563 Propagate them.
7564 * src/nullable.c (rule_list_t): New.
7565 Propagate.
7566 * src/types.h: Remove.
7567
7568 2002-07-03 Akim Demaille <akim@epita.fr>
7569
7570 * src/closure.c (print_fderives): Use rule_rhs_print.
7571 * src/derives.c (print_derives): Use rule_rhs_print.
7572 (rule_list_t): New, replaces `shorts'.
7573 (set_derives): Add comments.
7574 * tests/sets.at (Nullable, Firsts): Adjust.
7575
7576 2002-07-03 Akim Demaille <akim@epita.fr>
7577
7578 * src/output.c (prepare_actions): Free `tally' and `width'.
7579 (prepare_actions): Allocate and free `order'.
7580 * src/symtab.c (symbols_free): Free `symbols'.
7581 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
7582 * src/output.c (m4_invoke): Move to...
7583 * src/scan-skel.l: here.
7584 (<<EOF>>): Close yyout, and free its name.
7585
7586 2002-07-03 Akim Demaille <akim@epita.fr>
7587
7588 Fix some memory leaks, and fix a bug: state 0 was examined twice.
7589
7590 * src/LR0.c (new_state): Merge into...
7591 (state_list_append): this.
7592 (new_states): Merge into...
7593 (generate_states): here.
7594 (set_states): Don't ensure a proper `errs' state member here, do it...
7595 * src/conflicts.c (conflicts_solve): here.
7596 * src/state.h, src/state.c: Comment changes.
7597 (state_t): Rename member `shifts' as `transitions'.
7598 Adjust all dependencies.
7599 (errs_new): For consistency, also take the values as argument.
7600 (errs_dup): Remove.
7601 (state_errs_set): New.
7602 (state_reductions_set, state_transitions_set): Assert that no
7603 previous value was assigned.
7604 (state_free): New.
7605 (states_free): Use it.
7606 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
7607 temporary storage: use `errs' and `nerrs' as elsewhere.
7608 (set_conflicts): Allocate and free this `errs'.
7609
7610 2002-07-02 Akim Demaille <akim@epita.fr>
7611
7612 * lib/libiberty.h: New.
7613 * lib: Update the bitset implementation from upstream.
7614 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
7615 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
7616 * src/main.c: Adjust bitset stats calls.
7617
7618 2002-07-01 Paul Eggert <eggert@twinsun.com>
7619
7620 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
7621 char, so that negative chars don't collide with $.
7622
7623 2002-06-30 Akim Demaille <akim@epita.fr>
7624
7625 Have the GLR tests be `warning' checked, and fix the warnings.
7626
7627 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
7628 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
7629 (yyremoveDeletes): `yyi' and `yyj' are size_t.
7630 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
7631 (yyaddDeferredAction): static.
7632 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
7633 (yyreportParseError): yyprefix is const.
7634 yytokenp is used only when verbose.
7635 (yy__GNUC__): Replace with __GNUC__.
7636 (yypdumpstack): yyi is size_t.
7637 (yypreference): Un-yy local variables and arguments, to avoid
7638 clashes with `yyr1'. Anyway, we are not in the user name space.
7639 (yytname_size): be an int, as is compared with ints.
7640 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
7641 Use them.
7642 * tests/cxx-gram.at: Use quotation to protect $1.
7643 Use AT_COMPILE to enable warnings hunts.
7644 Prototype yylex and yyerror.
7645 `Use' argc.
7646 Include `string.h', not `strings.h'.
7647 Produce and prototype stmtMerge only when used.
7648 yylex takes a location.
7649
7650 2002-06-30 Akim Demaille <akim@epita.fr>
7651
7652 We spend a lot of time in quotearg, in particular when --verbose.
7653
7654 * src/symtab.c (symbol_get): Store a quoted version of the key.
7655 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
7656 Adjust all callers.
7657
7658 2002-06-30 Akim Demaille <akim@epita.fr>
7659
7660 * src/state.h (reductions_t): Rename member `nreds' as num.
7661 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
7662 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
7663
7664 2002-06-30 Akim Demaille <akim@epita.fr>
7665
7666 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
7667 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
7668 (shifts_to): Rename as...
7669 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
7670 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
7671 (TRANSITION_IS_DISABLED, transitions_to): these.
7672
7673 2002-06-30 Akim Demaille <akim@epita.fr>
7674
7675 * src/print.c (print_shifts, print_gotos): Merge into...
7676 (print_transitions): this.
7677 (print_transitions, print_errs, print_reductions): Align the
7678 lookaheads columns.
7679 (print_core, print_transitions, print_errs, print_state,
7680 print_grammar): Output empty lines separator before, not after.
7681 (state_default_rule_compute): Rename as...
7682 (state_default_rule): this.
7683 * tests/conflicts.at (Defaulted Conflicted Reduction),
7684 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
7685 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
7686
7687 2002-06-30 Akim Demaille <akim@epita.fr>
7688
7689 Display items as we display rules.
7690
7691 * src/gram.h, src/gram.c (rule_lhs_print): New.
7692 * src/gram.c (grammar_rules_partial_print): Use it.
7693 * src/print.c (print_core): Likewise.
7694 * tests/conflicts.at (Defaulted Conflicted Reduction),
7695 (Unresolved SR Conflicts): Adjust.
7696 (Unresolved SR Conflicts): Adjust and rename as...
7697 (Resolved SR Conflicts): this, as was meant.
7698 * tests/regression.at (Web2c Report): Adjust.
7699
7700 2002-06-30 Akim Demaille <akim@epita.fr>
7701
7702 * src/print.c (state_default_rule_compute): New, extracted from...
7703 (print_reductions): here.
7704 Pessimize, but clarify the code.
7705 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
7706
7707 2002-06-30 Akim Demaille <akim@epita.fr>
7708
7709 * src/output.c (action_row): Let default_rule be always a rule
7710 number.
7711
7712 2002-06-30 Akim Demaille <akim@epita.fr>
7713
7714 * src/closure.c (print_firsts, print_fderives, closure):
7715 Use BITSET_EXECUTE.
7716 * src/lalr.c (lookaheads_print): Likewise.
7717 * src/state.c (state_rule_lookaheads_print): Likewise.
7718 * src/print_graph.c (print_core): Likewise.
7719 * src/print.c (print_reductions): Likewise.
7720 * src/output.c (action_row): Likewise.
7721 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
7722
7723 2002-06-30 Akim Demaille <akim@epita.fr>
7724
7725 * src/print_graph.c: Use report_flag.
7726
7727 2002-06-30 Akim Demaille <akim@epita.fr>
7728
7729 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
7730 to...
7731 * src/relation.h, src/relation.c (traverse, relation_digraph)
7732 (relation_print, relation_transpose): New.
7733
7734 2002-06-30 Akim Demaille <akim@epita.fr>
7735
7736 * src/state.h, src/state.c (shifts_to): New.
7737 * src/lalr.c (build_relations): Use it.
7738
7739 2002-06-30 Akim Demaille <akim@epita.fr>
7740
7741 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
7742 (item_number_of_rule_number, rule_number_of_item_number): New.
7743 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
7744 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
7745 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
7746 Propagate their use.
7747 Much remains to be done, in particular wrt `shorts' from types.h.
7748
7749 2002-06-30 Akim Demaille <akim@epita.fr>
7750
7751 * src/symtab.c (symbol_new): Initialize the `printer' member.
7752
7753 2002-06-30 Akim Demaille <akim@epita.fr>
7754
7755 * src/LR0.c (save_reductions): Remove, replaced by...
7756 * src/state.h, src/state.c (state_reductions_set): New.
7757 (reductions, errs): Rename as...
7758 (reductions_t, errs_t): these.
7759 Adjust all dependencies.
7760
7761 2002-06-30 Akim Demaille <akim@epita.fr>
7762
7763 * src/LR0.c (state_list_t, state_list_append): New.
7764 (first_state, last_state): Now symbol_list_t.
7765 (this_state): Remove.
7766 (new_itemsets, append_states, save_reductions): Take a state_t as
7767 argument.
7768 (set_states, generate_states): Adjust.
7769 (save_shifts): Remove, replaced by...
7770 * src/state.h, src/state.c (state_shifts_set): New.
7771 (shifts): Rename as...
7772 (shifts_t): this.
7773 Adjust all dependencies.
7774 * src/state.h (state_t): Remove the `next' member.
7775
7776 2002-06-30 Akim Demaille <akim@epita.fr>
7777
7778 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
7779 escaped in slot 0.
7780
7781 2002-06-30 Akim Demaille <akim@epita.fr>
7782
7783 Use hash.h for the state hash table.
7784
7785 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
7786 (allocate_storage): Use state_hash_new.
7787 (free_storage): Use state_hash_free.
7788 (new_state, get_state): Adjust.
7789 * src/lalr.h, src/lalr.c (states): Move to...
7790 * src/states.h (state_t): Remove the `link' member, no longer
7791 used.
7792 * src/states.h, src/states.c: here.
7793 (state_hash_new, state_hash_free, state_hash_lookup)
7794 (state_hash_insert, states_free): New.
7795 * src/states.c (state_table, state_compare, state_hash): New.
7796 * src/output.c (output_actions): Do not free states now, since we
7797 still need to know the final_state number in `prepare', called
7798 afterwards. Do it...
7799 * src/main.c (main): here: call states_free after `output'.
7800
7801 2002-06-30 Akim Demaille <akim@epita.fr>
7802
7803 * src/state.h, src/state.c (state_new): New, extracted from...
7804 * src/LR0.c (new_state): here.
7805 * src/state.h (STATE_ALLOC): Move to...
7806 * src/state.c: here.
7807 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
7808 * src/state.h, src/state.c: here.
7809
7810 2002-06-30 Akim Demaille <akim@epita.fr>
7811
7812 * src/reader.c (gensym): Rename as...
7813 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
7814 (getsym): Rename as...
7815 (symbol_get): this.
7816
7817 2002-06-30 Akim Demaille <akim@epita.fr>
7818
7819 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
7820 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
7821 * src/output.c, src/print.c, src/print_graph.c: Propagate.
7822 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
7823
7824 2002-06-30 Akim Demaille <akim@epita.fr>
7825
7826 Make the test suite pass with warnings checked.
7827
7828 * tests/actions.at (Printers and Destructors): Improve.
7829 Avoid unsigned vs. signed issues.
7830 * tests/calc.at: Don't exercise the scanner here, do it...
7831 * tests/input.at (Torturing the Scanner): here.
7832
7833 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7834
7835 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
7836 reorganize first lines parallel to yacc.c.
7837
7838 2002-06-28 Akim Demaille <akim@epita.fr>
7839
7840 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
7841 (b4_token_enum, b4_token_defines): New, factored from...
7842 * data/lalr1.cc, data/yacc.c, glr.c: here.
7843
7844 2002-06-28 Akim Demaille <akim@epita.fr>
7845
7846 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
7847 unused variables.
7848 * src/output.c (merger_output): static.
7849
7850 2002-06-28 Akim Demaille <akim@epita.fr>
7851
7852 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
7853 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
7854 pacify GCC.
7855 * src/output.c (save_row): Initialize all the variables to pacify GCC.
7856
7857 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7858
7859 Accumulated changelog for new GLR parsing features.
7860
7861 * src/conflicts.c (count_total_conflicts): Change name to
7862 conflicts_total_count.
7863 * src/conflicts.h: Ditto.
7864 * src/output.c (token_actions): Use the new name.
7865 (output_conflicts): Change conflp => conflict_list_heads, and
7866 confl => conflict_list for better readability.
7867 * data/glr.c: Use the new names.
7868 * NEWS: Add self to GLR announcement.
7869
7870 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
7871
7872 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
7873 Akim Demaille.
7874
7875 * data/bison.glr: Change name to glr.c
7876 * data/glr.c: Renamed from bison.glr.
7877 * data/Makefile.am: Add glr.c
7878
7879 * src/getargs.c:
7880
7881 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
7882 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
7883
7884 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7885
7886 * data/bison.glr: Be sure to restore the
7887 current #line when returning to the skeleton contents after having
7888 exposed the input file's #line.
7889
7890 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7891
7892 * data/bison.glr: Bring up to date with changes to bison.simple.
7893
7894 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7895
7896 * data/bison.glr: Correct definitions that use b4_prefix.
7897 Various reformatting.
7898 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
7899 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
7900 yytokenp argument; now part of stack.
7901 (yychar): Define to behave as documented.
7902 (yyclearin): Ditto.
7903
7904 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7905
7906 * src/reader.h: Add declaration for free_merger_functions.
7907
7908 * src/reader.c (merge_functions): New variable.
7909 (get_merge_function): New function.
7910 (free_merger_functions): New function.
7911 (readgram): Check for %prec that is not followed by a symbol.
7912 Handle %dprec and %merge declarations.
7913 (packgram): Initialize dprec and merger fields in rules array.
7914
7915 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
7916 conflict_list_cnt, conflict_list_free): New variables.
7917 (table_grow): Also grow conflict_table.
7918 (prepare_rules): Output dprec and merger tables.
7919 (conflict_row): New function.
7920 (action_row): Output conflict lists for GLR parser. Don't use
7921 default reduction in conflicted states for GLR parser so that there
7922 are spaces for the conflict lists.
7923 (save_row): Also save conflict information.
7924 (token_actions): Allocate conflict list.
7925 (merger_output): New function.
7926 (pack_vector): Pack conflict table, too.
7927 (output_conflicts): New function to output yyconflp and yyconfl.
7928 (output_check): Allocate conflict_tos.
7929 (output_actions): Output conflict tables, also.
7930 (output_skeleton): Output b4_mergers definition.
7931 (prepare): Output b4_max_rhs_length definition.
7932 Use 'bison.glr' as default skeleton for GLR parsers.
7933
7934 * src/gram.c (glr_parser): New flag.
7935 (grammar_free): Call free_merger_functions.
7936
7937 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
7938 all pairs of conflicting reductions, rather than just all tokens
7939 causing conflicts. Needed to size conflict tables.
7940 (conflicts_output): Modify call to count_rr_conflicts for new
7941 interface.
7942 (conflicts_print): Ditto.
7943 (count_total_conflicts): New function.
7944
7945 * src/reader.h (merger_list): New type.
7946 (merge_functions): New variable.
7947
7948 * src/lex.h (tok_dprec, tok_merge): New token types.
7949
7950 * src/gram.h (rule_s): Add dprec and merger fields.
7951 (glr_parser): New flag.
7952
7953 * src/conflicts.h (count_total_conflicts): New function.
7954
7955 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
7956
7957 * doc/bison.texinfo (Generalized LR Parsing): New section.
7958 (GLR Parsers): New section.
7959 (Language and Grammar): Mention GLR parsing.
7960 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
7961 Correct typo ("tge" -> "the").
7962
7963 * data/bison.glr: New skeleton for GLR parsing.
7964
7965 * tests/cxx-gram.at: New tests for GLR parsing.
7966
7967 * tests/testsuite.at: Include cxx-gram.at.
7968
7969 * tests/Makefile.am: Add cxx-gram.at.
7970
7971 * src/parse-gram.y:
7972
7973 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
7974
7975 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
7976
7977 2002-06-27 Akim Demaille <akim@epita.fr>
7978
7979 * src/options.h, src/options.c: Remove.
7980 * src/getargs.c (short_options, long_options): New.
7981
7982 2002-06-27 Akim Demaille <akim@epita.fr>
7983
7984 * data/bison.simple, data/bison.c++: Rename as...
7985 * data/yacc.c, data/lalr1.cc: these.
7986 * doc/bison.texinfo (Environment Variables): Remove.
7987
7988 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
7989
7990 * src/getargs.c (report_argmatch): Initialize strtok().
7991
7992 2002-06-20 Akim Demaille <akim@epita.fr>
7993
7994 * data/bison.simple (b4_symbol_actions): New, replaces...
7995 (b4_symbol_destructor, b4_symbol_printer): these.
7996 (yysymprint): Be sure to call YYPRINT only for tokens, and using
7997 user token numbers.
7998
7999 2002-06-20 Akim Demaille <akim@epita.fr>
8000
8001 * data/bison.simple (yydestructor): Rename as...
8002 (yydestruct): this.
8003
8004 2002-06-20 Akim Demaille <akim@epita.fr>
8005
8006 * src/symtab.h, src/symtab.c (symbol_type_set)
8007 (symbol_destructor_set, symbol_precedence_set): The location is
8008 the last argument.
8009 Adjust all callers.
8010
8011 2002-06-20 Akim Demaille <akim@epita.fr>
8012
8013 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
8014 internals.
8015 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
8016 Takes a location.
8017 * src/symtab.h, src/symtab.c (symbol_class_set)
8018 (symbol_user_token_number_set): Likewise.
8019 Adjust all callers.
8020 Promote complain_at.
8021 * tests/input.at (Type Clashes): Adjust.
8022
8023 2002-06-20 Akim Demaille <akim@epita.fr>
8024
8025 * data/bison.simple (YYLEX): Fix the declaration when
8026 %pure-parser.
8027
8028 2002-06-20 Akim Demaille <akim@epita.fr>
8029
8030 * data/bison.simple (yysymprint): Don't print the token number,
8031 just its name.
8032 * tests/actions.at (Destructors): Rename as...
8033 (Printers and Destructors): this.
8034 Also exercise %printer.
8035
8036 2002-06-20 Akim Demaille <akim@epita.fr>
8037
8038 * data/bison.simple (YYDSYMPRINT): New.
8039 Use it to remove many of the #if YYDEBUG/if (yydebug).
8040
8041 2002-06-20 Akim Demaille <akim@epita.fr>
8042
8043 * src/symtab.h, src/symtab.c (symbol_t): printer and
8044 printer_location are new members.
8045 (symbol_printer_set): New.
8046 * src/parse-gram.y (PERCENT_PRINTER): New token.
8047 Handle its associated rule.
8048 * src/scan-gram.l: Adjust.
8049 (handle_destructor_at, handle_destructor_dollar): Rename as...
8050 (handle_symbol_code_at, handle_symbol_code_dollar): these.
8051 * src/output.c (symbol_printers_output): New.
8052 (output_skeleton): Call it.
8053 * data/bison.simple (yysymprint): New. Cannot be named yyprint
8054 since there are already many grammar files with a user `yyprint'.
8055 Replace the calls to YYPRINT to calls to yysymprint.
8056 * tests/calc.at: Adjust.
8057 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
8058 taking advantage of parser very internal details (stack size!).
8059
8060 2002-06-20 Akim Demaille <akim@epita.fr>
8061
8062 * src/scan-gram.l: Complete the scanner with the missing patterns
8063 to pacify Flex.
8064 Use `quote' and `symbol_tag_get' where appropriate.
8065
8066 2002-06-19 Akim Demaille <akim@epita.fr>
8067
8068 * tests/actions.at (Destructors): Augment to test locations.
8069 * data/bison.simple (yydestructor): Pass it the current location
8070 if locations are enabled.
8071 Prototype only when __STDC__ or C++.
8072 Change the argument names to move into the yy name space: there is
8073 user code here.
8074
8075 2002-06-19 Akim Demaille <akim@epita.fr>
8076
8077 * data/bison.simple (b4_pure_if): New.
8078 Use it instead of #ifdef YYPURE.
8079
8080 2002-06-19 Akim Demaille <akim@epita.fr>
8081
8082 * data/bison.simple (b4_location_if): New.
8083 Use it instead of #ifdef YYLSP_NEEDED.
8084
8085 2002-06-19 Akim Demaille <akim@epita.fr>
8086
8087 Prepare @$ in %destructor, but currently don't bind it in the
8088 skeleton, as %location use is not cleaned up yet.
8089
8090 * src/scan-gram.l (handle_dollar, handle_destructor_at)
8091 (handle_action_at): New.
8092 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
8093 a braced_code_t and a location as additional arguments.
8094 (handle_destructor_dollar): Instead of requiring `b4_eval', just
8095 unquote one when outputting `b4_dollar_dollar'.
8096 Adjust callers.
8097 * data/bison.simple (b4_eval): Remove.
8098 (b4_symbol_destructor): Adjust.
8099 * tests/input.at (Invalid @n): Adjust.
8100
8101 2002-06-19 Zack Weinberg <zack@codesourcery.com>
8102
8103 * doc/bison.texinfo: Document ability to have multiple
8104 prologue sections.
8105
8106 2002-06-18 Akim Demaille <akim@epita.fr>
8107
8108 * src/files.c (compute_base_names): When computing the output file
8109 names from the input file name, strip the directory part.
8110
8111 2002-06-18 Akim Demaille <akim@epita.fr>
8112
8113 * data/bison.simple.new: Comment changes.
8114 Reported by Andreas Schwab.
8115
8116 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
8117
8118 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
8119 there are no `label `yyoverflowlab' defined but not used' warnings
8120 when yyoverflow is defined.
8121
8122 2002-06-18 Akim Demaille <akim@epita.fr>
8123
8124 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
8125 new member.
8126 (symbol_destructor_set): Adjust.
8127 * src/output.c (symbol_destructors_output): Output the destructor
8128 locations.
8129 Output the symbol name.
8130 * data/bison.simple (b4_symbol_destructor): Adjust.
8131
8132 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
8133 and Akim Demaille <akim@epita.fr>
8134
8135 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
8136 what's left on the stack when the error recovery hits EOF.
8137 * tests/actions.at (Destructors): Complete to exercise this case.
8138
8139 2002-06-17 Akim Demaille <akim@epita.fr>
8140
8141 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
8142 arguments is really empty, not only equal to `[]'.
8143 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
8144 member.
8145 (symbol_destructor_set): New.
8146 * src/output.c (symbol_destructors_output): New.
8147 * src/reader.h (brace_code_t, current_braced_code): New.
8148 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
8149 (handle_dollar): Rename as...
8150 (handle_action_dollar): this.
8151 (handle_destructor_dollar): New.
8152 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
8153 (grammar_declaration): Use it.
8154 * data/bison.simple (yystos): Is always defined.
8155 (yydestructor): New.
8156 * tests/actions.at (Destructors): New.
8157 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
8158
8159 2002-06-17 Akim Demaille <akim@epita.fr>
8160
8161 * src/symlist.h, src/symlist.c (symbol_list_length): New.
8162 * src/scan-gram.l (handle_dollar, handle_at): Compute the
8163 rule_length only when needed.
8164 * src/output.c (actions_output, token_definitions_output): Output
8165 the full M4 block.
8166 * src/symtab.c: Don't access directly to the symbol tag, use
8167 symbol_tag_get.
8168 * src/parse-gram.y: Use symbol_list_free.
8169
8170 2002-06-17 Akim Demaille <akim@epita.fr>
8171
8172 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
8173 (symbol_list_prepend, get_type_name): Move to...
8174 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
8175 (symbol_list_prepend, symbol_list_n_type_name_get): here.
8176 Adjust all callers.
8177 (symbol_list_free): New.
8178 * src/scan-gram.l (handle_dollar): Takes a location.
8179 * tests/input.at (Invalid $n): Adjust.
8180
8181 2002-06-17 Akim Demaille <akim@epita.fr>
8182
8183 * src/reader.h, src/reader.c (symbol_list_new): Export it.
8184 (symbol_list_prepend): New.
8185 * src/parse-gram.y (%union): `list' is a new member.
8186 (symbols.1): New, replaces...
8187 (terms_to_prec.1, nterms_to_type.1): these.
8188 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
8189 Take a location as additional argument.
8190 Adjust all callers.
8191
8192 2002-06-15 Akim Demaille <akim@epita.fr>
8193
8194 * src/parse-gram.y: Move %token in the declaration section so that
8195 we don't depend upon CVS Bison.
8196
8197 2002-06-15 Akim Demaille <akim@epita.fr>
8198
8199 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
8200 * src/print.c (print_core): Use it.
8201
8202 2002-06-15 Akim Demaille <akim@epita.fr>
8203
8204 * src/conflicts.c (log_resolution): Accept the rule involved in
8205 the sr conflicts instead of the lookahead number that points to
8206 that rule.
8207 (flush_reduce): Accept the current lookahead vector as argument,
8208 instead of the index in LA.
8209 (resolve_sr_conflict): Accept the current number of lookahead
8210 bitset to consider for the STATE, instead of the index in LA.
8211 (set_conflicts): Adjust.
8212 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
8213
8214 2002-06-15 Akim Demaille <akim@epita.fr>
8215
8216 * src/state.h (state_t): Replace the `lookaheadsp' member, a
8217 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
8218 Adjust all dependencies.
8219 * src/lalr.c (initialize_lookaheads): Split into...
8220 (states_lookaheads_count, states_lookaheads_initialize): these.
8221 (lalr): Adjust.
8222
8223 2002-06-15 Akim Demaille <akim@epita.fr>
8224
8225 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
8226 out of...
8227 (grammar_rules_print): here.
8228 * src/reduce.c (reduce_output): Use it.
8229 * tests/reduce.at (Useless Rules, Reduced Automaton)
8230 (Underivable Rules): Adjust.
8231
8232 2002-06-15 Akim Demaille <akim@epita.fr>
8233
8234 Copy BYacc's nice way to report the grammar.
8235
8236 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
8237 New.
8238 Don't print the rules' location, it is confusing and useless.
8239 (rule_print): Use grammar_rhs_print.
8240 * src/print.c (print_grammar): Use grammar_rules_print.
8241
8242 2002-06-15 Akim Demaille <akim@epita.fr>
8243
8244 Complete and rationalize `useless thing' warnings.
8245
8246 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
8247 (symbol_tag_print): New.
8248 Use them everywhere in place of accessing directly the tag member.
8249 * src/gram.h, src/gram.c (rule_print): New.
8250 Use it where a rule used to be printed `by hand'.
8251 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
8252 (reduce_grammar_tables): Report the useless rules.
8253 (reduce_print): Useless things are a warning, not an error.
8254 Report it as such.
8255 * tests/reduce.at (Useless Nonterminals, Useless Rules):
8256 (Reduced Automaton, Underivable Rules): Adjust.
8257 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
8258 * tests/conflicts.at (Unresolved SR Conflicts)
8259 (Solved SR Conflicts): Adjust.
8260
8261 2002-06-15 Akim Demaille <akim@epita.fr>
8262
8263 Let symbols have a location.
8264
8265 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
8266 (getsym): Adjust.
8267 Adjust all callers.
8268 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
8269 Use location_t, not int.
8270 * src/symtab.c (symbol_check_defined): Take advantage of the
8271 location.
8272 * tests/regression.at (Invalid inputs): Adjust.
8273
8274 2002-06-15 Akim Demaille <akim@epita.fr>
8275
8276 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
8277 (input): Don't try to initialize yylloc here, do it in the
8278 scanner.
8279 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
8280 * src/gram.h (rule_t): Change line and action_line into location
8281 and action_location, of location_t type.
8282 Adjust all dependencies.
8283 * src/location.h, src/location.c (empty_location): New.
8284 * src/reader.h, src/reader.c (grammar_start_symbol_set)
8285 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
8286 (grammar_current_rule_symbol_append)
8287 (grammar_current_rule_action_append): Expect a location as argument.
8288 * src/reader.c (grammar_midrule_action): Adjust to attach an
8289 action's location as dummy symbol location.
8290 * src/symtab.h, src/symtab.c (startsymbol_location): New.
8291 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
8292 the line numbers.
8293
8294 2002-06-14 Akim Demaille <akim@epita.fr>
8295
8296 Grammar declarations may be found in the grammar section.
8297
8298 * src/parse-gram.y (rules_or_grammar_declaration): New.
8299 (declarations): Each declaration may end with a semicolon, not
8300 just...
8301 (grammar_declaration): `"%union"'.
8302 (grammar): Branch to rules_or_grammar_declaration.
8303
8304 2002-06-14 Akim Demaille <akim@epita.fr>
8305
8306 * src/main.c (main): Invoke scanner_free.
8307
8308 2002-06-14 Akim Demaille <akim@epita.fr>
8309
8310 * src/output.c (m4_invoke): Extracted from...
8311 (output_skeleton): here.
8312 Free tempfile.
8313
8314 2002-06-14 Akim Demaille <akim@epita.fr>
8315
8316 * src/parse-gram.y (directives, directive, gram)
8317 (grammar_directives, precedence_directives, precedence_directive):
8318 Rename as...
8319 (declarations, declaration, grammar, grammar_declaration)
8320 (precedence_declaration, precedence_declarator): these.
8321 (symbol_declaration): New.
8322
8323 2002-06-14 Akim Demaille <akim@epita.fr>
8324
8325 * src/files.c (action_obstack): Remove, unused.
8326 (output_obstack): Remove it, and all its dependencies, as it is no
8327 longer needed.
8328 * src/reader.c (epilogue_set): Build the epilogue in the
8329 muscle_obstack.
8330 * src/output.h, src/output.c (muscle_obstack): Move to...
8331 * src/muscle_tab.h, src/muscle_tab.h: here.
8332 (muscle_init): Initialize muscle_obstack.
8333 (muscle_free): New.
8334 * src/main.c (main): Call it.
8335
8336 2002-06-14 Akim Demaille <akim@epita.fr>
8337
8338 * src/location.h: New, extracted from...
8339 * src/reader.h: here.
8340 * src/Makefile.am (noinst_HEADERS): Merge into
8341 (bison_SOURCES): this.
8342 Add location.h.
8343 * src/parse-gram.y: Use location_t instead of Bison's.
8344 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
8345 Use location_t instead of ints.
8346
8347 2002-06-14 Akim Demaille <akim@epita.fr>
8348
8349 * data/bison.simple, data/bison.c++: Be sure to restore the
8350 current #line when returning to the skeleton contents after having
8351 exposed the input file's #line.
8352
8353 2002-06-12 Akim Demaille <akim@epita.fr>
8354
8355 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
8356 eager.
8357 * tests/actions.at (Exotic Dollars): New.
8358
8359 2002-06-12 Akim Demaille <akim@epita.fr>
8360
8361 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
8362 ['"/] too eagerly.
8363 * tests/input.at (Torturing the Scanner): New.
8364
8365 2002-06-11 Akim Demaille <akim@epita.fr>
8366
8367 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
8368 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
8369 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
8370 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
8371 * src/reader.c (reader): Use it.
8372
8373 2002-06-11 Akim Demaille <akim@epita.fr>
8374
8375 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
8376 Adjust all callers.
8377 (scanner_last_string_free): New.
8378
8379 2002-06-11 Akim Demaille <akim@epita.fr>
8380
8381 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
8382 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
8383 (last_string, YY_OBS_FREE): New.
8384 Use them when returning an ID.
8385
8386 2002-06-11 Akim Demaille <akim@epita.fr>
8387
8388 Have Bison grammars parsed by a Bison grammar.
8389
8390 * src/reader.c, src/reader.h (prologue_augment): New.
8391 * src/reader.c (copy_definition): Remove.
8392
8393 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
8394 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
8395 (grammar_current_rule_prec_set, grammar_current_rule_check)
8396 (grammar_current_rule_symbol_append)
8397 (grammar_current_rule_action_append): Export.
8398 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
8399 (symbol_list_action_append): Remove.
8400 Hook the routines from reader.
8401 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
8402 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
8403
8404 * src/reader.c (read_declarations): Remove, unused.
8405
8406 * src/parse-gram.y: Handle the epilogue.
8407 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
8408 (grammar_start_symbol_set): this.
8409 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
8410 * src/reader.c (readgram): Remove, unused.
8411 (reader): Adjust to insert eoftoken and axiom where appropriate.
8412
8413 * src/reader.c (copy_dollar): Replace with...
8414 * src/scan-gram.h (handle_dollar): this.
8415 * src/parse-gram.y: Remove `%thong'.
8416
8417 * src/reader.c (copy_at): Replace with...
8418 * src/scan-gram.h (handle_at): this.
8419
8420 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
8421 New.
8422
8423 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
8424 time being.
8425
8426 * src/reader.h, src/reader.c (grammar_rule_end): New.
8427
8428 * src/parse.y (current_type, current_class): New.
8429 Implement `%nterm', `%token' support.
8430 Merge `%term' into `%token'.
8431 (string_as_id): New.
8432 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
8433 type name.
8434
8435 * src/parse-gram.y: Be sure to handle properly the beginning of
8436 rules.
8437
8438 * src/parse-gram.y: Handle %type.
8439 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
8440
8441 * src/parse-gram.y: More directives support.
8442 * src/options.c: No longer handle source directives.
8443
8444 * src/parse-gram.y: Fix %output.
8445
8446 * src/parse-gram.y: Handle %union.
8447 Use the prologue locations.
8448 * src/reader.c (parse_union_decl): Remove.
8449
8450 * src/reader.h, src/reader.c (epilogue_set): New.
8451 * src/parse-gram.y: Use it.
8452
8453 * data/bison.simple, data/bison.c++: b4_stype is now either not
8454 defined, then default to int, or to the contents of %union,
8455 without `union' itself.
8456 Adjust.
8457 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
8458
8459 * src/output.c (actions_output): Don't output braces, as they are
8460 already handled by the scanner.
8461
8462 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
8463 characters to themselves.
8464
8465 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
8466 that the epilogue has a proper #line.
8467
8468 * src/parse-gram.y: Handle precedence/associativity.
8469
8470 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
8471 a terminal.
8472 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
8473 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
8474 at all to define terminals that cannot be emitted.
8475
8476 * src/scan-gram.l: Escape M4 characters.
8477
8478 * src/scan-gram.l: Working properly with escapes in user
8479 strings/characters.
8480
8481 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
8482 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
8483 grammar.
8484 Use more modest sizes, as for the time being the parser does not
8485 release memory, and therefore the process swallows a huge amount
8486 of memory.
8487
8488 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
8489 stricter %token grammar.
8490
8491 * src/symtab.h (associativity): Add `undef_assoc'.
8492 (symbol_precedence_set): Do nothing when passed an undef_assoc.
8493 * src/symtab.c (symbol_check_alias_consistence): Adjust.
8494
8495 * tests/regression.at (Invalid %directive): Remove, as it is now
8496 meaningless.
8497 (Invalid inputs): Adjust to the new error messages.
8498 (Token definitions): The new grammar doesn't allow too many
8499 eccentricities.
8500
8501 * src/lex.h, src/lex.c: Remove.
8502 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
8503 (copy_character, copy_string2, copy_string, copy_identifier)
8504 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
8505 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
8506 (parse_action): Remove.
8507 * po/POTFILES.in: Adjust.
8508
8509 2002-06-11 Akim Demaille <akim@epita.fr>
8510
8511 * src/reader.c (parse_action): Don't store directly into the
8512 rule's action member: return the action as a string.
8513 Don't require `rule_length' as an argument: compute it.
8514 (grammar_current_rule_symbol_append)
8515 (grammar_current_rule_action_append): New, eved out from
8516 (readgram): here.
8517 Remove `action_flag', `rulelength', unused now.
8518
8519 2002-06-11 Akim Demaille <akim@epita.fr>
8520
8521 * src/reader.c (grammar_current_rule_prec_set).
8522 (grammar_current_rule_check): New, eved out from...
8523 (readgram): here.
8524 Remove `xaction', `first_rhs': useless.
8525 * tests/input.at (Type clashes): New.
8526 * tests/existing.at (GNU Cim Grammar): Adjust.
8527
8528 2002-06-11 Akim Demaille <akim@epita.fr>
8529
8530 * src/reader.c (grammar_midrule_action): New, Eved out from
8531 (readgram): here.
8532
8533 2002-06-11 Akim Demaille <akim@epita.fr>
8534
8535 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
8536 New.
8537 (readgram): Use them as replacement of inlined code, crule and
8538 crule1.
8539
8540 2002-06-11 Akim Demaille <akim@epita.fr>
8541
8542 * src/reader.c (grammar_end, grammar_symbol_append): New.
8543 (readgram): Use them.
8544 Make the use of `p' as local as possible.
8545
8546 2002-06-10 Akim Demaille <akim@epita.fr>
8547
8548 GCJ's parser requires the tokens to be defined before the prologue.
8549
8550 * data/bison.simple: Output the token definition before the user's
8551 prologue.
8552 * tests/regression.at (Braces parsing, Duplicate string)
8553 (Mixing %token styles): Check the output from bison.
8554 (Early token definitions): New.
8555
8556 2002-06-10 Akim Demaille <akim@epita.fr>
8557
8558 * src/symtab.c (symbol_user_token_number_set): Don't complain when
8559 assigning twice the same user number to a token, so that we can
8560 use it in...
8561 * src/lex.c (lex): here.
8562 Also use `symbol_class_set' instead of hand written code.
8563 * src/reader.c (parse_assoc_decl): Likewise.
8564
8565 2002-06-10 Akim Demaille <akim@epita.fr>
8566
8567 * src/symtab.c, src/symtab.c (symbol_class_set)
8568 (symbol_user_token_number_set): New.
8569 * src/reader.c (parse_token_decl): Use them.
8570 Use a switch instead of ifs.
8571 Use a single argument.
8572
8573 2002-06-10 Akim Demaille <akim@epita.fr>
8574
8575 Remove `%thong' support as it is undocumented, unused, duplicates
8576 `%token's job, and creates useless e-mail traffic with people who
8577 want to know what it is, why it is undocumented, unused, and
8578 duplicates `%token's job.
8579
8580 * src/reader.c (parse_thong_decl): Remove.
8581 * src/options.c (option_table): Remove "thong".
8582 * src/lex.h (tok_thong): Remove.
8583
8584 2002-06-10 Akim Demaille <akim@epita.fr>
8585
8586 * src/symtab.c, src/symtab.c (symbol_type_set)
8587 (symbol_precedence_set): New.
8588 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
8589 (value_components_used): Remove, unused.
8590
8591 2002-06-09 Akim Demaille <akim@epita.fr>
8592
8593 Move symbols handling code out of the reader.
8594
8595 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
8596 (axiom): Move to...
8597 * src/symtab.h, src/symtab.c: here.
8598
8599 * src/gram.c (start_symbol): Remove: use startsymbol->number.
8600 * src/reader.c (startval): Rename as...
8601 * src/symtab.h, src/symtab.c (startsymbol): this.
8602 * src/reader.c: Adjust.
8603
8604 * src/reader.c (symbol_check_defined, symbol_make_alias)
8605 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
8606 (token_translations_init)
8607 Move to...
8608 * src/symtab.c: here.
8609 * src/reader.c (packsymbols): Move to...
8610 * src/symtab.h, src/symtab.c (symbols_pack): here.
8611 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
8612 argument.
8613
8614 2002-06-03 Akim Demaille <akim@epita.fr>
8615
8616 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
8617 then statements.
8618
8619 2002-06-03 Akim Demaille <akim@epita.fr>
8620
8621 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
8622 structs with non literals.
8623 * src/scan-skel.l: never-interactive.
8624 * src/conflicts.c (enum conflict_resolution_e): No trailing
8625 comma.
8626 * src/getargs.c (usage): Split long literal strings.
8627 Reported by Hans Aberg.
8628
8629 2002-05-28 Akim Demaille <akim@epita.fr>
8630
8631 * data/bison.c++: Use C++ ostreams.
8632 (cdebug_): New member.
8633
8634 2002-05-28 Akim Demaille <akim@epita.fr>
8635
8636 * src/output.c (output_skeleton): Be sure to allocate enough room
8637 for `/' _and_ for `\0' in full_skeleton.
8638
8639 2002-05-28 Akim Demaille <akim@epita.fr>
8640
8641 * data/bison.c++: Catch up with bison.simple:
8642 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8643 and Paul Eggert <eggert@twinsun.com>: `error' handing.
8644 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
8645 and popping traces.
8646
8647 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8648
8649 * src/output.c (output_skeleton): Put an explicit path in front of
8650 the skeleton file name, rather than relying on the -I directory,
8651 to partially alleviate effects of having a skeleton file lying around
8652 in the current directory.
8653
8654 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8655
8656 * src/conflicts.c (log_resolution): Correct typo:
8657 obstack_printf should be obstack_fgrow1.
8658
8659 2002-05-26 Akim Demaille <akim@epita.fr>
8660
8661 * src/state.h (state_t): `solved_conflicts' is a new member.
8662 * src/LR0.c (new_state): Set it to 0.
8663 * src/conflicts.h, src/conflicts.c (print_conflicts)
8664 (free_conflicts, solve_conflicts): Rename as...
8665 (conflicts_print, conflicts_free, conflicts_solve): these.
8666 Adjust callers.
8667 * src/conflicts.c (enum conflict_resolution_e)
8668 (solved_conflicts_obstack): New, used by...
8669 (log_resolution): this.
8670 Adjust to attach the conflict resolution to each state.
8671 Complete the description with the precedence/associativity
8672 information.
8673 (resolve_sr_conflict): Adjust.
8674 * src/print.c (print_state): Output its solved_conflicts.
8675 * tests/conflicts.at (Unresolved SR Conflicts)
8676 (Solved SR Conflicts): Exercise --report=all.
8677
8678 2002-05-26 Akim Demaille <akim@epita.fr>
8679
8680 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
8681 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
8682 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
8683 (token_number_t, item_number_as_token_number)
8684 (token_number_as_item_number, muscle_insert_token_number_table):
8685 Rename as...
8686 (symbol_number_t, item_number_as_symbol_number)
8687 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
8688 these, since it is more appropriate.
8689
8690 2002-05-26 Akim Demaille <akim@epita.fr>
8691
8692 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
8693 `Error:' lines.
8694 * data/bison.simple (yystos) [YYDEBUG]: New.
8695 (yyparse) [YYDEBUG]: Display the symbols which are popped during
8696 error recovery.
8697 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
8698
8699 2002-05-25 Akim Demaille <akim@epita.fr>
8700
8701 * doc/bison.texinfo (Debugging): Split into...
8702 (Tracing): this new section, its former contents, and...
8703 (Understanding): this new section.
8704 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
8705 by...
8706 (report_flag): this.
8707 Adjust all dependencies.
8708 (report_args, report_types, report_argmatch): New.
8709 (usage, getargs): Report/support -r, --report.
8710 * src/options.h
8711 (struct option_table_struct): Rename as..,
8712 (struct option_table_s): this.
8713 Rename the `set_flag' member to `flag' to match with getopt_long's
8714 struct.
8715 * src/options.c (option_table): Split verbose into an entry for
8716 %verbose, and another for --verbose.
8717 Support --report/-r, so remove -r from the obsolete --raw.
8718 * src/print.c: Attach full item sets and lookaheads reports to
8719 report_flag instead of trace_flag.
8720 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
8721
8722 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8723 and Paul Eggert <eggert@twinsun.com>
8724
8725 * data/bison.simple (yyparse): Correct error handling to conform to
8726 POSIX and yacc. Specifically, after syntax error is discovered,
8727 do not reduce further before shifting the error token.
8728 Clean up the code a bit by removing the labels yyerrdefault,
8729 yyerrhandle, yyerrpop.
8730 * NEWS: Document the above.
8731
8732 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8733
8734 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
8735 type; it isn't always big enough, since it doesn't necessarily
8736 include non-terminals.
8737 (yytranslate): Expand definition of yy_token_number_type, so that
8738 the latter can be removed.
8739 (yy_token_number_type): Remove, only one use.
8740 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
8741 don't use TokenNumberType as element type.
8742
8743 * tests/regression.at: Modify expected output to agree with change
8744 to yyr1 and yytranslate.
8745
8746 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
8747
8748 * src/reader.c (parse_action): Use copy_character instead of
8749 obstack_1grow.
8750
8751 2002-05-13 Akim Demaille <akim@epita.fr>
8752
8753 * tests/regression.at (Token definitions): Prototype yylex and
8754 yyerror.
8755
8756 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8757
8758 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
8759 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
8760 32-bit arithmetic.
8761 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
8762
8763 2002-05-07 Akim Demaille <akim@epita.fr>
8764
8765 * tests/synclines.at: Be sure to prototype yylex and yyerror to
8766 avoid GCC warnings.
8767
8768 2002-05-07 Akim Demaille <akim@epita.fr>
8769
8770 Kill GCC warnings.
8771
8772 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
8773 over the RHS of each rule.
8774 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
8775 * src/state.h (state_t): Member `nitems' is unsigned short.
8776 * src/LR0.c (get_state): Adjust.
8777 * src/reader.c (packgram): Likewise.
8778 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
8779 `Type'.
8780 (muscle_insert_int_table): Remove, unused.
8781 (prepare_rules): Remove `max'.
8782
8783 2002-05-06 Akim Demaille <akim@epita.fr>
8784
8785 * src/closure.c (print_firsts): Display of the symbol tags.
8786 (bitmatrix_print): Move to...
8787 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
8788 here.
8789 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
8790
8791 2002-05-06 Akim Demaille <akim@epita.fr>
8792
8793 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
8794 hash_do_for_each.
8795
8796 2002-05-06 Akim Demaille <akim@epita.fr>
8797
8798 * src/LR0.c (new_state, get_state): Instead of using the global
8799 `kernel_size' and `kernel_base', have two new arguments:
8800 `core_size' and `core'.
8801 Adjust callers.
8802
8803 2002-05-06 Akim Demaille <akim@epita.fr>
8804
8805 * src/reader.c (packgram): No longer end `ritem' with a 0
8806 sentinel: it is not used.
8807
8808 2002-05-05 Akim Demaille <akim@epita.fr>
8809
8810 New experimental feature: display the lookaheads in the report and
8811 graph.
8812
8813 * src/print (print_core): When --trace-flag, display the rules
8814 lookaheads.
8815 * src/print_graph.c (print_core): Likewise.
8816 Swap the arguments.
8817 Adjust caller.
8818
8819 2002-05-05 Akim Demaille <akim@epita.fr>
8820
8821 * tests/torture.at (Many lookaheads): New test.
8822
8823 2002-05-05 Akim Demaille <akim@epita.fr>
8824
8825 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
8826 (GENERATE_MUSCLE_INSERT_TABLE): this.
8827 (output_int_table, output_unsigned_int_table, output_short_table)
8828 (output_token_number_table, output_item_number_table): Replace with...
8829 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
8830 (muscle_insert_short_table, muscle_insert_token_number_table)
8831 (muscle_insert_item_number_table): these.
8832 Adjust all callers.
8833 (prepare_tokens): Don't free `translations', since...
8834 * src/reader.h, src/reader.c (grammar_free): do it.
8835 Move to...
8836 * src/gram.h, src/gram.c (grammar_free): here.
8837 * data/bison.simple, data/bison.c++: b4_token_number_max is now
8838 b4_translate_max.
8839
8840 2002-05-05 Akim Demaille <akim@epita.fr>
8841
8842 * src/output.c (output_unsigned_int_table): New.
8843 (prepare_rules): `i' is unsigned.
8844 `prhs', `rline', `r2' are unsigned int.
8845 Rename muscle `rhs_number_max' as `rhs_max'.
8846 Output muscles `prhs_max', `rline_max', and `r2_max'.
8847 Free rline and r1.
8848 * data/bison.simple, data/bison.c++: Adjust to use these muscles
8849 to compute types instead of constant types.
8850 * tests/regression.at (Web2c Actions): Adjust.
8851
8852 2002-05-04 Akim Demaille <akim@epita.fr>
8853
8854 * src/symtab.h (SALIAS, SUNDEF): Rename as...
8855 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
8856 Adjust dependencies.
8857 * src/output.c (token_definitions_output): Be sure not to output a
8858 `#define 'a'' when fed with `%token 'a' "a"'.
8859 * tests/regression.at (Token definitions): New.
8860
8861 2002-05-03 Paul Eggert <eggert@twinsun.com>
8862
8863 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
8864 for K&R C.
8865
8866 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
8867
8868 * Makefile.am (SUBDIRS): Remove intl.
8869 (EXTRA_DIST): Add config/config.rpath.
8870
8871 2002-05-03 Akim Demaille <akim@epita.fr>
8872
8873 * data/bison.simple (m4_if): Don't output empty enums.
8874 And actually, output valid enum definitions :(.
8875
8876 2002-05-03 Akim Demaille <akim@epita.fr>
8877
8878 * configure.bat: Remove, completely obsolete.
8879 * Makefile.am (EXTRA_DIST): Adjust.
8880 Don't distribute config.rpath...
8881 * config/Makefile.am (EXTRA_DIST): Do it.
8882
8883 2002-05-03 Akim Demaille <akim@epita.fr>
8884
8885 * configure.in (GETTEXT_VERSION): New.
8886 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
8887
8888 2002-05-03 Akim Demaille <akim@epita.fr>
8889
8890 * data/bison.simple (b4_token_enum): New.
8891 (b4_token_defines): Use it to output tokens both as #define and
8892 enums.
8893 Suggested by Paul Eggert.
8894 * src/output.c (token_definitions_output): Don't output spurious
8895 white spaces.
8896
8897 2002-05-03 Akim Demaille <akim@epita.fr>
8898
8899 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
8900
8901 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
8902
8903 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
8904 Update the stack class, give a try to deque as the default container.
8905
8906 2002-05-02 Akim Demaille <akim@epita.fr>
8907
8908 * data/bison.simple (yyparse): Do not implement @$ = @1.
8909 (YYLLOC_DEFAULT): Adjust to do it.
8910 * doc/bison.texinfo (Location Default Action): Fix.
8911
8912 2002-05-02 Akim Demaille <akim@epita.fr>
8913
8914 * src/reader.c (parse_braces): Merge into...
8915 (parse_action): this.
8916
8917 2002-05-02 Akim Demaille <akim@epita.fr>
8918
8919 * configure.in (ALL_LINGUAS): Remove.
8920 * po/LINGUAS, hr.po: New.
8921
8922 2002-05-02 Akim Demaille <akim@epita.fr>
8923
8924 Remove the so called hairy (semantic) parsers.
8925
8926 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
8927 * src/gram.h, src/gram.c (semantic_parser): Remove.
8928 (rule_t): Remove the guard and guard_line members.
8929 * src/lex.h (token_t): remove tok_guard.
8930 * src/options.c (option_table): Remove %guard and %semantic_parser
8931 support.
8932 * src/output.c, src/output.h (guards_output): Remove.
8933 (prepare): Adjust.
8934 (token_definitions_output): Don't output the `T'
8935 tokens (???).
8936 (output_skeleton): Don't output the guards.
8937 * src/files.c, src/files.c (attrsfile): Remove.
8938 * src/reader.c (symbol_list): Remove the guard and guard_line
8939 members.
8940 Adjust dependencies.
8941 (parse_guard): Remove.
8942 * data/bison.hairy: Remove.
8943 * doc/bison.texinfo (Environment Variables): Remove occurrences of
8944 BISON_HAIRY.
8945
8946 2002-05-02 Akim Demaille <akim@epita.fr>
8947
8948 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
8949 (parse_guard): Rename the formal argument `stack_offset' as
8950 `rule_length', which is more readable.
8951 Adjust callers.
8952 (copy_at, copy_dollar): Instead of outputting the hard coded
8953 values of $$, $n and so forth, output invocation to b4_lhs_value,
8954 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
8955 Note: this patch partially drops `semantic-parser' support: it
8956 always does `rule_length - n', where semantic parsers ought to
8957 always use `-n'.
8958 * data/bison.simple, data/bison.c++ (b4_lhs_value)
8959 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
8960
8961 2002-05-02 Akim Demaille <akim@epita.fr>
8962
8963 * configure.in (AC_INIT): Bump to 1.49b.
8964 (AM_INIT_AUTOMAKE): Short invocation.
8965
8966 2002-05-02 Akim Demaille <akim@epita.fr>
8967
8968 Version 1.49a.
8969
8970 2002-05-01 Akim Demaille <akim@epita.fr>
8971
8972 * src/skeleton.h: Remove.
8973
8974 2002-05-01 Akim Demaille <akim@epita.fr>
8975
8976 * src/skeleton.h: Fix the #endif.
8977 Reported by Magnus Fromreide.
8978
8979 2002-04-26 Paul Eggert <eggert@twinsun.com>
8980
8981 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
8982 Define if we define YYSTYPE and YYLTYPE, respectively.
8983 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8984
8985 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
8986
8987 * src/scan-skel.l: Postprocess quadrigraphs.
8988
8989 * src/reader.c (copy_character): New function, used to output
8990 single characters while replacing `[' and `]' with quadrigraphs, to
8991 avoid troubles with M4 quotes.
8992 (copy_comment): Output characters with copy_character.
8993 (read_additionnal_code): Likewise.
8994 (copy_string2): Likewise.
8995 (copy_definition): Likewise.
8996
8997 * tests/calc.at: Exercise M4 quoting.
8998
8999 2002-04-25 Akim Demaille <akim@epita.fr>
9000
9001 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
9002 between `!' and the command.
9003 Reported by Paul Eggert.
9004
9005 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
9006
9007 * tests/calc.at: Exercise prologue splitting.
9008
9009 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
9010 `b4_post_prologue' instead of `b4_prologue'.
9011
9012 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
9013 muscles.
9014 (output): Free pre_prologue_obstack and post_prologue_obstack.
9015 * src/files.h, src/files.c (attrs_obstack): Remove.
9016 (pre_prologue_obstack, post_prologue_obstack): New.
9017 * src/reader.c (copy_definition): Add a parameter to specify the
9018 obstack to fill, instead of using attrs_obstack unconditionally.
9019 (read_declarations): Pass pre_prologue_obstack to copy_definition if
9020 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
9021
9022 2002-04-23 Paul Eggert <eggert@twinsun.com>
9023
9024 * data/bison.simple: Remove unnecessary commentary and white
9025 space differences from 1_29-branch.
9026 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
9027
9028 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
9029 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
9030 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
9031 constructors or destructors.
9032
9033 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
9034
9035 2002-04-23 Akim Demaille <akim@epita.fr>
9036
9037 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
9038 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
9039 location with columns.
9040 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
9041 All reported by Paul Eggert.
9042
9043 2002-04-22 Akim Demaille <akim@epita.fr>
9044
9045 * src/reduce.c (dump_grammar): Move to...
9046 * src/gram.h, src/gram.c (grammar_dump): here.
9047 Be sure to separate long item numbers.
9048 Don't read the members of a rule's prec if its nil.
9049
9050 2002-04-22 Akim Demaille <akim@epita.fr>
9051
9052 * src/output.c (table_size, table_grow): New.
9053 (MAXTABLE): Remove, replace uses with table_size.
9054 (pack_vector): Instead of dying when the table is too big, grow it.
9055
9056 2002-04-22 Akim Demaille <akim@epita.fr>
9057
9058 * data/bison.simple (yyr1): Its type is that of a token number.
9059 * data/bison.c++ (r1_): Likewise.
9060 * tests/regression.at (Web2c Actions): Adjust.
9061
9062 2002-04-22 Akim Demaille <akim@epita.fr>
9063
9064 * src/reader.c (token_translations_init): 256 is now the default
9065 value for the error token, i.e., it will be assigned another
9066 number if the user assigned 256 to one of her tokens.
9067 (reader): Don't force 256 to error.
9068 * doc/bison.texinfo (Symbols): Adjust.
9069 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
9070 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
9071 etc. instead of 10, 20, 30 (which was used to `jump' over error
9072 (256) and undefined (2)).
9073
9074 2002-04-22 Akim Demaille <akim@epita.fr>
9075
9076 Propagate more token_number_t.
9077
9078 * src/gram.h (token_number_as_item_number)
9079 (item_number_as_token_number): New.
9080 * src/output.c (GENERATE_OUTPUT_TABLE): New.
9081 Use it to create output_item_number_table and
9082 output_token_number_table.
9083 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
9084 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
9085 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
9086 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
9087
9088 2002-04-22 Akim Demaille <akim@epita.fr>
9089
9090 * src/output.h, src/output.c (get_lines_number): Remove.
9091
9092 2002-04-19 Akim Demaille <akim@epita.fr>
9093
9094 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
9095 as Lex/Flex'.
9096 (Debugging): More details about enabling the debugging features.
9097 (Table of Symbols): Describe $$, $n, @$, and @n.
9098 Suggested by Tim Josling.
9099
9100 2002-04-19 Akim Demaille <akim@epita.fr>
9101
9102 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
9103
9104 2002-04-10 Akim Demaille <akim@epita.fr>
9105
9106 * src/system.h: Rely on HAVE_LIMITS_H.
9107 Suggested by Paul Eggert.
9108
9109 2002-04-09 Akim Demaille <akim@epita.fr>
9110
9111 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
9112 full stderr, and strip it according to the bison options, instead
9113 of composing the error message from different bits.
9114 This makes it easier to check for several error messages.
9115 Adjust all the invocations.
9116 Add an invocation exercising the error token.
9117 Add an invocation demonstrating a stupid error message.
9118 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
9119 Adjust the tests.
9120 Error message are for stderr, not stdout.
9121
9122 2002-04-09 Akim Demaille <akim@epita.fr>
9123
9124 * src/gram.h, src/gram.c (error_token_number): Remove, use
9125 errtoken->number.
9126 * src/reader.c (reader): Don't specify the user token number (2)
9127 for $undefined, as it uselessly prevents using it.
9128 * src/gram.h (token_number_t): Move to...
9129 * src/symtab.h: here.
9130 (state_t.number): Is a token_number_t.
9131 * src/print.c, src/reader.c: Use undeftoken->number instead of
9132 hard coded 2.
9133 (Even though this 2 is not the same as above: the number of the
9134 undeftoken remains being 2, it is its user token number which
9135 might not be 2).
9136 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
9137 `user_token_number_max'.
9138 Output `undef_token_number'.
9139 * data/bison.simple, data/bison.c++: Use them.
9140 Be sure to map invalid yylex return values to
9141 `undef_token_number'. This saves us from gratuitous SEGV.
9142
9143 * tests/conflicts.at (Solved SR Conflicts)
9144 (Unresolved SR Conflicts): Adjust.
9145 * tests/regression.at (Web2c Actions): Adjust.
9146
9147 2002-04-08 Akim Demaille <akim@epita.fr>
9148
9149 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
9150 Adding #line.
9151 Remove the duplicate `typedefs'.
9152 (RhsNumberType): Fix the declaration and various other typos.
9153 Use __ofile__.
9154 * data/bison.simple: Use __ofile__.
9155 * src/scan-skel.l: Handle __ofile__.
9156
9157 2002-04-08 Akim Demaille <akim@epita.fr>
9158
9159 * src/gram.h (item_number_t): New, the type of item numbers in
9160 RITEM. Note that it must be able to code symbol numbers as
9161 positive number, and the negation of rule numbers as negative
9162 numbers.
9163 Adjust all dependencies (pretty many).
9164 * src/reduce.c (rule): Remove this `short *' pointer: use
9165 item_number_t.
9166 * src/system.h (MINSHORT, MAXSHORT): Remove.
9167 Include `limits.h'.
9168 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
9169 (shortcpy): Remove.
9170 (MAXTABLE): Move to...
9171 * src/output.c (MAXTABLE): here.
9172 (prepare_rules): Use output_int_table to output rhs.
9173 * data/bison.simple, data/bison.c++: Adjust.
9174 * tests/torture.at (Big triangle): Move the limit from 254 to
9175 500.
9176 * tests/regression.at (Web2c Actions): Ajust.
9177
9178 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
9179 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
9180 passes, but produces negative #line number, once fixed, GCC is
9181 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
9182 C), it passes.
9183 * src/state.h (state_h): Code input lines on ints, not shorts.
9184
9185 2002-04-08 Akim Demaille <akim@epita.fr>
9186
9187 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
9188 and then the grammar.
9189
9190 2002-04-08 Akim Demaille <akim@epita.fr>
9191
9192 * src/system.h: No longer using strndup.
9193
9194 2002-04-07 Akim Demaille <akim@epita.fr>
9195
9196 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
9197 * src/output.c (output_table_data): Return the longest number.
9198 (prepare_tokens): Output `token_number_max').
9199 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
9200 New.
9201 Use them to define yy_token_number_type/TokenNumberType.
9202 Use this type for yytranslate.
9203 * tests/torture.at (Big triangle): Push the limit from 124 to
9204 253.
9205 * tests/regression.at (Web2c Actions): Adjust.
9206
9207 2002-04-07 Akim Demaille <akim@epita.fr>
9208
9209 * tests/torture.at (Big triangle): New.
9210 (GNU AWK Grammar, GNU Cim Grammar): Move to...
9211 * tests/existing.at: here.
9212
9213 2002-04-07 Akim Demaille <akim@epita.fr>
9214
9215 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
9216 nritems.
9217 Adjust dependencies.
9218
9219 2002-04-07 Akim Demaille <akim@epita.fr>
9220
9221 * src/reader.c: Normalize increments to prefix form.
9222
9223 2002-04-07 Akim Demaille <akim@epita.fr>
9224
9225 * src/reader.c, symtab.c: Remove debugging code.
9226
9227 2002-04-07 Akim Demaille <akim@epita.fr>
9228
9229 Rename all the `bucket's as `symbol_t'.
9230
9231 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
9232 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
9233 * src/symtab.c, src/symtab.h (bucket): Rename as...
9234 (symbol_t): this.
9235 (symbol_list_new, bucket_check_defined, bucket_make_alias)
9236 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
9237 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
9238 (buckets_new, buckets_free, buckets_do): Rename as...
9239 (symbol_list_new, symbol_check_defined, symbol_make_alias)
9240 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
9241 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
9242 (symbols_new, symbols_free, symbols_do): these.
9243
9244 2002-04-07 Akim Demaille <akim@epita.fr>
9245
9246 Use lib/hash for the symbol table.
9247
9248 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
9249 EOF.
9250 * src/lex.c (lex): Set the `number' member of new terminals.
9251 * src/reader.c (bucket_check_defined, bucket_make_alias)
9252 (bucket_check_alias_consistence, bucket_translation): New.
9253 (reader, grammar_free, readgram, token_translations_init)
9254 (packsymbols): Adjust.
9255 (reader): Number the predefined tokens.
9256 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
9257 for predefined tokens.
9258 * src/symtab.h (bucket): Remove all the hash table related
9259 members.
9260 * src/symtab.c (symtab): Replace by...
9261 (bucket_table): this.
9262 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
9263 (buckets_new, buckets_do): New.
9264
9265 2002-04-07 Akim Demaille <akim@epita.fr>
9266
9267 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
9268 (start_symbol, max_user_token_number, semantic_parser)
9269 (error_token_number): Initialize.
9270 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
9271 Initialize.
9272 (reader): Don't.
9273 (errtoken, eoftoken, undeftoken, axiom): Extern.
9274
9275 2002-04-07 Akim Demaille <akim@epita.fr>
9276
9277 * src/gram.h (rule_s): prec and precsym are now pointers
9278 to the bucket giving the priority/associativity.
9279 Member `associativity' removed: useless.
9280 * src/reduce.c, src/conflicts.c: Adjust.
9281
9282 2002-04-07 Akim Demaille <akim@epita.fr>
9283
9284 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
9285 Properly escape the symbols' TAG when outputting them.
9286
9287 2002-04-07 Akim Demaille <akim@epita.fr>
9288
9289 * src/lalr.h (LA): Is a bitsetv, not bitset*.
9290
9291 2002-04-07 Akim Demaille <akim@epita.fr>
9292
9293 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
9294 (LArule): this, which is an array to rule_t*.
9295 * src/print.c, src/conflicts.c: Adjust.
9296
9297 2002-04-07 Akim Demaille <akim@epita.fr>
9298
9299 * src/gram.h (rule_t): Rename `number' as `user_number'.
9300 `number' is a new member.
9301 Adjust dependencies.
9302 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
9303
9304 2002-04-07 Akim Demaille <akim@epita.fr>
9305
9306 As a result of the previous patch, it is no longer needed
9307 to reorder ritem itself.
9308
9309 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
9310
9311 2002-04-07 Akim Demaille <akim@epita.fr>
9312
9313 Be sure never to walk through RITEMS, but use only data related to
9314 the rules themselves. RITEMS should be banished.
9315
9316 * src/output.c (output_token_translations): Rename as...
9317 (prepare_tokens): this.
9318 In addition to `translate', prepare the muscles `tname' and
9319 `toknum', which were handled by...
9320 (output_rule_data): this.
9321 Remove, and move the remainder of its outputs into...
9322 (prepare_rules): this new routines, which also merges content from
9323 (output_gram): this.
9324 (prepare_rules): Be sure never to walk through RITEMS.
9325 (output_stos): Rename as...
9326 (prepare_stos): this.
9327 (output): Always invoke prepare_states, after all, just don't use it
9328 in the output if you don't need it.
9329
9330 2002-04-07 Akim Demaille <akim@epita.fr>
9331
9332 * src/LR0.c (new_state): Display `nstates' as the name of the
9333 newly created state.
9334 Adjust to initialize first_state and last_state if needed.
9335 Be sure to distinguish the initial from the final state.
9336 (new_states): Create the itemset of the initial state, and use
9337 new_state.
9338 * src/closure.c (closure): Now that the initial state has its
9339 items properly set, there is no need for a special case when
9340 creating `ruleset'.
9341
9342 As a result, now the rule 0, reducing to $axiom, is visible in the
9343 outputs. Adjust the test suite.
9344
9345 * tests/conflicts.at (Solved SR Conflicts)
9346 (Unresolved SR Conflicts): Adjust.
9347 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
9348 * tests/conflicts.at (S/R in initial): New.
9349
9350 2002-04-07 Akim Demaille <akim@epita.fr>
9351
9352 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
9353 the RHS of the rules.
9354 * src/output.c (output_gram): Likewise.
9355
9356 2002-04-07 Akim Demaille <akim@epita.fr>
9357
9358 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
9359 bucket.
9360 Adjust all dependencies.
9361 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
9362 `number' of the buckets too.
9363 * src/gram.h: Include `symtab.h'.
9364 (associativity): Move to...
9365 * src/symtab.h: here.
9366 No longer include `gram.h'.
9367
9368 2002-04-07 Akim Demaille <akim@epita.fr>
9369
9370 * src/gram.h, src/gram.c (rules_rhs_length): New.
9371 (ritem_longest_rhs): Use it.
9372 * src/gram.h (rule_t): `number' is a new member.
9373 * src/reader.c (packgram): Set it.
9374 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
9375 the end of `rules', and count them out of `nrules'.
9376 (reduce_output, dump_grammar): Adjust.
9377 * src/print.c (print_grammar): It is no longer needed to check for
9378 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
9379 * tests/reduce.at (Reduced Automaton): New test.
9380
9381 2002-04-07 Akim Demaille <akim@epita.fr>
9382
9383 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
9384 lacking `+ 1' to nrules, Bison reported as useless a token if it
9385 was used solely to set the precedence of the last rule...
9386
9387 2002-04-07 Akim Demaille <akim@epita.fr>
9388
9389 * data/bison.c++, data/bison.simple: Don't output the current file
9390 name in #line, to avoid useless diffs between two identical
9391 outputs under different names.
9392
9393 2002-04-07 Akim Demaille <akim@epita.fr>
9394
9395 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
9396 Normalize loops to using `< nrules + 1', not `<= nrules'.
9397
9398 2002-04-07 Akim Demaille <akim@epita.fr>
9399
9400 * TODO: Update.
9401
9402 2002-04-07 Akim Demaille <akim@epita.fr>
9403
9404 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
9405 bucket.value as bucket.number.
9406
9407 2002-04-07 Akim Demaille <akim@epita.fr>
9408
9409 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
9410 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
9411 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
9412 RHS, instead of being an index in RITEMS.
9413
9414 2002-04-04 Paul Eggert <eggert@twinsun.com>
9415
9416 * doc/bison.texinfo: Update copyright date.
9417 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
9418 (Symbols): Warn about running Bison in one character set,
9419 but compiling and/or running in an incompatible one.
9420 Warn about character code 256, too.
9421
9422 2002-04-03 Paul Eggert <eggert@twinsun.com>
9423
9424 * src/bison.data (YYSTACK_ALLOC): Depend on whether
9425 YYERROR_VERBOSE is nonzero, not whether it is defined.
9426
9427 Merge changes from bison-1_29-branch.
9428
9429 2002-03-20 Paul Eggert <eggert@twinsun.com>
9430
9431 Merge fixes from Debian bison_1.34-1.diff.
9432
9433 * configure.in (AC_PREREQ): 2.53.
9434
9435 2002-03-20 Akim Demaille <akim@epita.fr>
9436
9437 * src/conflicts.c (log_resolution): Argument `resolution' is const.
9438
9439 2002-03-19 Paul Eggert <eggert@twinsun.com>
9440
9441 * src/bison.simple (YYCOPY): New macro.
9442 (YYSTACK_RELOCATE): Use it.
9443 Remove Type arg; no longer needed. All callers changed.
9444 (yymemcpy): Remove; no longer needed.
9445
9446 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
9447 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
9448
9449 2002-03-19 Akim Demaille <akim@epita.fr>
9450
9451 Test and fix the #line outputs.
9452
9453 * tests/atlocal.at (GCC): New.
9454 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
9455 (Prologue synch line, %union synch line, Postprologue synch line)
9456 (Action synch line, Epilogue synch line): New tests.
9457 * src/reader.c (parse_union_decl): Define the muscle stype_line.
9458 * data/bison.simple, data/bison.c++: Use it.
9459
9460 2002-03-19 Akim Demaille <akim@epita.fr>
9461
9462 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
9463 (Solved SR Conflicts, %expect not enough, %expect right)
9464 (%expect too much): Move to...
9465 * tests/conflicts.at: this new file.
9466
9467 2002-03-19 Akim Demaille <akim@epita.fr>
9468
9469 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
9470 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
9471 that we can move to enums for instance.
9472 * src/output.c (token_definitions_output): Output a list of
9473 `token-name, token-number' instead of the #define.
9474 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
9475
9476 2002-03-14 Akim Demaille <akim@epita.fr>
9477
9478 Use Gettext 0.11.1.
9479
9480 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
9481
9482 * data/bison.c++: Make the user able to add members to the generated
9483 parser by subclassing.
9484
9485 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
9486
9487 * src/reader.c (read_additionnal_code): `c' should be an integer, not
9488 a character.
9489 Reported by Nicolas Tisserand and Nicolas Burrus.
9490
9491 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
9492
9493 * src/reader.c: Warn about lacking semi-colons, do not complain.
9494
9495 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
9496
9497 * data/bison.c++: Remove a debug line.
9498
9499 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
9500
9501 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
9502 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
9503 provide a default implementation.
9504
9505 2002-03-04 Akim Demaille <akim@epita.fr>
9506
9507 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
9508 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
9509 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
9510 * tests/semantic.at (Parsing Guards): Similarly.
9511 * src/reader.at (readgram): Complain if the last rule is not ended
9512 with a semi-colon.
9513
9514 2002-03-04 Akim Demaille <akim@epita.fr>
9515
9516 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
9517 * src/closure.c: here.
9518 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
9519 RTC.
9520 * src/warshall.h, src/warshall.c: Remove.
9521 * tests/sets.at (Broken Closure): Adjust.
9522
9523 2002-03-04 Akim Demaille <akim@epita.fr>
9524
9525 * src/output.c (output_skeleton): tempdir is const.
9526 bytes_read is unused.
9527
9528 2002-03-04 Akim Demaille <akim@epita.fr>
9529
9530 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
9531 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
9532 Update.
9533 From Michael Hayes.
9534
9535 2002-03-04 Akim Demaille <akim@epita.fr>
9536
9537 * src/closure.c (closure): `r' is unused.
9538
9539 2002-03-04 Akim Demaille <akim@epita.fr>
9540
9541 * tests/sets.at (Broken Closure): Add the ending `;'.
9542 * src/reader.at (readgram): Complain if a rule is not ended with a
9543 semi-colon.
9544
9545 2002-03-04 Akim Demaille <akim@epita.fr>
9546
9547 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
9548 (count_sr_conflicts): Use bitset_count.
9549 * src/reduce.c (inaccessable_symbols): Ditto.
9550 (bits_size): Remove.
9551 * src/warshall.h, src/warshall.c: Convert to bitsetv.
9552
9553 2002-03-04 Akim Demaille <akim@epita.fr>
9554
9555 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
9556 * src/reduce.c: Remove the `bitset_zero's following the
9557 `bitset_create's, as now it is performed by the latter.
9558
9559 2002-03-04 Akim Demaille <akim@epita.fr>
9560
9561 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
9562 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
9563 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
9564 latest sources from Michael.
9565
9566 2002-03-04 Akim Demaille <akim@epita.fr>
9567
9568 * src/output.c (output): Don't free the grammar.
9569 * src/reader.c (grammar_free): New.
9570 * src/main.c (main): Call it and don't free symtab here.
9571
9572 2002-03-04 Akim Demaille <akim@epita.fr>
9573
9574 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
9575 before returning.
9576 Reported by Benoit Perrot.
9577
9578 2002-03-04 Akim Demaille <akim@epita.fr>
9579
9580 Use bitset operations when possible, not loops over bits.
9581
9582 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
9583 bitset_or.
9584 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
9585 * src/reduce.c (useless_nonterminals): Formatting changes.
9586 * src/warshall.c (TC): Use bitset_or.
9587
9588 2002-03-04 Akim Demaille <akim@epita.fr>
9589
9590 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
9591 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
9592 Ditto.
9593
9594 2002-03-04 Akim Demaille <akim@epita.fr>
9595
9596 * src/lalr.c (F): Now a bitset*.
9597 Adjust all dependencies.
9598
9599 2002-03-04 Akim Demaille <akim@epita.fr>
9600
9601 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
9602 Adjust all dependencies.
9603
9604 2002-03-04 Akim Demaille <akim@epita.fr>
9605
9606 * src/L0.c, src/LR0.h (nstates): Be size_t.
9607 Adjust comparisons (signed vs unsigned).
9608 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
9609 bitset*.
9610 Adjust all dependencies.
9611
9612 2002-03-04 Akim Demaille <akim@epita.fr>
9613
9614 * src/closure.c (firsts): Now, also a bitset.
9615 Adjust all dependencies.
9616 (varsetsize): Remove, now unused.
9617 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
9618
9619 2002-03-04 Akim Demaille <akim@epita.fr>
9620
9621 * src/print.c: Convert to use bitset.h, not hand coded iterations
9622 over ints.
9623
9624 2002-03-04 Akim Demaille <akim@epita.fr>
9625
9626 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
9627
9628 2002-03-04 Akim Demaille <akim@epita.fr>
9629
9630 * src/closure.c (ruleset): Be a bitset.
9631 (rulesetsize): Remove.
9632
9633 2002-03-04 Akim Demaille <akim@epita.fr>
9634
9635 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
9636 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
9637 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
9638 * src/closure.c (fderives): Be an array of bitsets.
9639
9640 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
9641
9642 * data/bison.c++: Merge the two generated headers. Insert a copyright
9643 notice in each output file.
9644
9645 2002-02-28 Akim Demaille <akim@epita.fr>
9646
9647 * data/bison.c++: Copy the prologue of bison.simple to fetch
9648 useful M4 definitions, such as b4_header_guard.
9649
9650 2002-02-25 Akim Demaille <akim@epita.fr>
9651
9652 * src/getargs.c (version): Give the name of the authors, and use a
9653 translator friendly scheme for the bgr
9654 copyright notice.
9655
9656 2002-02-25 Akim Demaille <akim@epita.fr>
9657
9658 * src/output.c (header_output): Remove, now handled completely via
9659 M4.
9660
9661 2002-02-25 Akim Demaille <akim@epita.fr>
9662
9663 * m4/m4.m4: New, from CVS Autoconf.
9664 * configure.in: Invoke it.
9665 * src/output.c (output_skeleton): Use its result instead of the
9666 hard coded name.
9667
9668 2002-02-25 Akim Demaille <akim@epita.fr>
9669
9670 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
9671 Fileutils 4.1.5.
9672 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
9673 * src/output.c (output_skeleton): Use mkstemp to create a real
9674 temporary file.
9675 Move the filling of `skeleton' and its muscle to...
9676 (prepare): here.
9677 (output): Move the definition of the prologue muscle to...
9678 (prepare): here.
9679 * src/system.h (DEFAULT_TMPDIR): New.
9680
9681 2002-02-14 Paul Eggert <eggert@twinsun.com>
9682
9683 Remove the support for C++ namespace cleanliness; it was
9684 causing more problems than it was curing, since it didn't work
9685 properly on some nonstandard C++ compilers. This can wait
9686 for a proper C++ parser.
9687
9688 * NEWS: Document this.
9689 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
9690 of C++, as it's treated like C now.
9691 * src/bison.simple (YYSTD): Remove.
9692 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
9693 Treat C++ just like Standard C instead of trying to support
9694 namespace cleanliness.
9695
9696 2002-02-14 Akim Demaille <akim@epita.fr>
9697
9698 * tests/regression.at (else): Adjust to Andreas' change.
9699
9700 2002-02-14 Akim Demaille <akim@epita.fr>
9701
9702 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
9703
9704 2002-02-13 Andreas Schwab <schwab@suse.de>
9705
9706 * src/output.c (output_rule_data): Don't output NULL, it might
9707 not be defined yet.
9708
9709 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
9710
9711 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
9712 (Copyright notice): Update.
9713
9714 2002-02-11 Akim Demaille <akim@epita.fr>
9715
9716 * tests/regression.at (%nonassoc and eof): Don't include
9717 nonportable headers.
9718
9719 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
9720
9721 * data/bison.c++: Correct error recovery. Make the user able to
9722 initialize the starting location.
9723
9724 2002-02-07 Akim Demaille <akim@epita.fr>
9725
9726 * tests/input.at: New.
9727
9728 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
9729
9730 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9731 more consistent when naming methods and variables. Put preprocessor
9732 directives around tables only needed for debugging.
9733
9734 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
9735
9736 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
9737 C++ parsers.
9738 (yy::b4_name::parse): Use print_.
9739
9740 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
9741
9742 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
9743
9744 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
9745
9746 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
9747 C++ parsers.
9748 (yy::b4_name::parse): Build verbose error messages, and use error_.
9749
9750 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
9751
9752 * data/bison.c++: Fix m4 quoting in comments.
9753
9754 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
9755
9756 * data/bison.c++: Adjust the parser code. Fix some muscles that were
9757 not expanded by m4.
9758
9759 2002-02-05 Akim Demaille <akim@epita.fr>
9760
9761 * data/bison.c++: Adjust to the M4 back end.
9762 More is certainly needed.
9763
9764 2002-02-05 Akim Demaille <akim@epita.fr>
9765
9766 Give a try to M4 as a back end.
9767
9768 * lib/readpipe.c: New, from wdiff.
9769 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
9770 BISON_HAIRY.
9771 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
9772 specific values. Now it is m4 that performs the lookup.
9773 * src/parse-skel.y: Remove.
9774 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
9775 * src/output.c (actions_output, guards_output)
9776 (token_definitions_output): No longer keeps track of the output
9777 line number, hence remove the second argument.
9778 (guards_output): Check against the guard member of a rule, not the
9779 action member.
9780 Adjust callers.
9781 (output_skeleton): Don't look for the skeleton location, let m4 do
9782 that.
9783 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
9784 file will be used.
9785 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
9786 (prepare): Given that for the time being changesyntax is not
9787 usable in M4, rename the muscles using `-' to `_'.
9788 Define `defines_flag', `output_parser_name' and `output_header_name'.
9789 * src/output.h (actions_output, guards_output)
9790 (token_definitions_output): Adjust prototypes.
9791 * src/scan-skel.l: Instead of scanning the skeletons, it now
9792 processes the output of m4: `__oline__' and `#output'.
9793 * data/bison.simple: Adjust to be used by M4(sugar).
9794 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
9795 to date.
9796 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
9797 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
9798 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
9799 shamelessly stolen from CVS Autoconf.
9800
9801 2002-02-05 Akim Demaille <akim@epita.fr>
9802
9803 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
9804 * configure.in: Check for the declarations of free and malloc.
9805 * src/muscle_tab.c: Adjust.
9806
9807 2002-02-05 Akim Demaille <akim@epita.fr>
9808
9809 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
9810 which have no values.
9811
9812 2002-02-05 Akim Demaille <akim@epita.fr>
9813
9814 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
9815 * data/: here.
9816
9817 2002-01-29 Paul Eggert <eggert@twinsun.com>
9818
9819 * src/bison.simple (YYSIZE_T): Do not define merely because
9820 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
9821 On some platforms, <alloca.h> does not declare YYSTD (size_t).
9822
9823 2002-01-27 Akim Demaille <akim@epita.fr>
9824
9825 Fix `%nonassoc and eof'.
9826
9827 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
9828 which were not properly copied! Replace
9829 memcpy (res->errs, src->errs, src->nerrs);
9830 with
9831 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
9832 !!!
9833 * tests/regression.at (%nonassoc and eof): Adjust to newest
9834 Autotest: `.' is not in the PATH.
9835
9836 2002-01-27 Akim Demaille <akim@epita.fr>
9837
9838 * tests/sets.at (AT_EXTRACT_SETS): New.
9839 (Nullable): Use it.
9840 (Firsts): New.
9841
9842 2002-01-26 Akim Demaille <akim@epita.fr>
9843
9844 * tests/actions.at, tests/calc.at, tests/headers.at,
9845 * tests/torture.at: Adjust to the newest Autotest which no longer
9846 forces `.' in the PATH.
9847
9848 2002-01-25 Akim Demaille <akim@epita.fr>
9849
9850 * tests/regression.at (%nonassoc and eof): New.
9851 Suggested by Robert Anisko.
9852
9853 2002-01-24 Akim Demaille <akim@epita.fr>
9854
9855 Bison dumps core when trying to complain about broken input files.
9856 Reported by Cris van Pelt.
9857
9858 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
9859 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
9860 into...
9861 (Invalid inputs): Strengthen: exercise parse_percent_token.
9862
9863 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
9864
9865 * src/Makefile.am: Add bison.c++.
9866 * src/bison.c++: New skeleton.
9867
9868 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
9869
9870 * po/it.po: New.
9871
9872 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
9873
9874 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
9875
9876 2002-01-20 Marc Autret <marc@gnu.org>
9877
9878 * src/files.c (compute_output_file_names): Fix
9879
9880 2002-01-20 Marc Autret <marc@gnu.org>
9881
9882 * tests/output.at: New test.
9883 * src/files.c (compute_base_names): Don't map extensions when
9884 the YACC flag is set, use defaults.
9885 Reported by Evgeny Stambulchik.
9886
9887 2002-01-20 Marc Autret <marc@gnu.org>
9888
9889 * src/system.h: Need to define __attribute__ away for non-GCC
9890 compilers as well (i.e., the vendor C compiler).
9891 Suggested by Albert Chin-A-Young.
9892
9893 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
9894
9895 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
9896 canonical definition.
9897 * src/system.h: Use the canonical definition for PARAMS (avoids
9898 a conflict with the macro from lib/hash.h).
9899
9900 2002-01-11 Akim Demaille <akim@epita.fr>
9901
9902 * configure.in: Use AC_FUNC_STRNLEN.
9903 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
9904
9905 2002-01-09 Akim Demaille <akim@epita.fr>
9906
9907 * src/files.c, src/files.h (output_infix): New.
9908 (tab_extension): Remove.
9909 (compute_base_names): Compute the former, drop the latter.
9910 * src/output.c (prepare): Insert the muscles `output-infix', and
9911 `output-suffix'.
9912 * src/parse-skel.y (string, string.1): New.
9913 (section.header): Use it.
9914 (section.yacc): Remove.
9915 (prefix): Remove too.
9916 * src/scan-skel.l: Adjust.
9917 * src/bison.simple, src/bison.hairy: Adjust.
9918
9919 2002-01-09 Akim Demaille <akim@epita.fr>
9920
9921 * configure.in (WERROR_CFLAGS): Compute it.
9922 * src/Makefile.am (CFLAGS): Pass it.
9923 * tests/atlocal.in (CFLAGS): Idem.
9924 * src/files.c: Fix a few warnings.
9925 (get_extension_index): Remove, unused.
9926
9927 2002-01-08 Akim Demaille <akim@epita.fr>
9928
9929 * src/getargs.c (AS_FILE_NAME): New.
9930 (getargs): Use it to convert DOSish file names.
9931 * src/files.c (base_name): Rename as full_base_name to avoid
9932 clashes with `base_name ()'.
9933 (filename_split): New.
9934 (compute_base_names): N-th rewrite, using filename_split.
9935
9936 2002-01-08 Akim Demaille <akim@epita.fr>
9937
9938 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
9939 New, stolen from the Fileutils 4.1.
9940 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
9941 * configure.in: Check for the presence of memrchr, and of its
9942 prototype.
9943
9944 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
9945
9946 * lib/hash.h (__P): Added definition for this macro.
9947 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
9948 BUILT_SOURCES, to ensure they are generated first.
9949 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
9950 %error-verbose to allow bootstrapping with bison 1.30x.
9951
9952 2002-01-06 Akim Demaille <akim@epita.fr>
9953
9954 * src/reader.c (parse_braces): Don't fetch the next char, the
9955 convention is to fetch on entry.
9956 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
9957 'switch' without a following semicolon.
9958 * tests/regression.at (braces parsing): New.
9959
9960 2002-01-06 Akim Demaille <akim@epita.fr>
9961
9962 Bison is dead wrong in its RR conflict reports.
9963
9964 * tests/torture.at (GNU Cim Grammar): New.
9965 * src/conflicts.c (count_rr_conflicts): Fix.
9966
9967 2002-01-06 Akim Demaille <akim@epita.fr>
9968
9969 Creating package.m4 from configure.ac causes too many problems.
9970
9971 * tests/Makefile.am (package.m4): Create it by hand,
9972 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
9973
9974 2002-01-06 Akim Demaille <akim@epita.fr>
9975
9976 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
9977 skeleton.h.
9978
9979 2002-01-04 Paul Eggert <eggert@twinsun.com>
9980
9981 * doc/bison.texinfo (Debugging):
9982 Remove YYSTDERR; it's no longer defined or used.
9983 Also, s/cstdio.h/cstdio/.
9984
9985 2002-01-03 Akim Demaille <akim@epita.fr>
9986
9987 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
9988
9989 2002-01-03 Akim Demaille <akim@epita.fr>
9990
9991 * src/parse-skel.y (process_skeleton): Don't bind the parser's
9992 tracing code to --trace, wait for a better --trace option, with
9993 args.
9994
9995 2002-01-03 Akim Demaille <akim@epita.fr>
9996
9997 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
9998 The ISO C++ standard is extremely clear about it: stderr is
9999 considered a macro, not a regular symbol (see table 94 `Header
10000 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
10001 Therefore std:: does not apply to it. It still does with fprintf.
10002 Also, s/cstdio.h/cstdio/.
10003
10004 2002-01-03 Akim Demaille <akim@epita.fr>
10005
10006 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
10007 for non system headers.
10008
10009 2002-01-02 Akim Demaille <akim@epita.fr>
10010
10011 Equip the skeleton chain with location tracking, runtime trace,
10012 pure parser and scanner.
10013
10014 * src/parse-skel.y: Request a pure parser, locations, and prefix
10015 renaming.
10016 (%union): Having several members with the same type does not help
10017 type mismatches, simplify.
10018 (YYPRINT, yyprint): New.
10019 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
10020 (skel_error): this.
10021 Handle locations.
10022 * src/scan-skel.l: Adjust to these changes.
10023 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
10024 (LOCATION_PRINT, skel_control_t): New.
10025
10026 2001-12-30 Akim Demaille <akim@epita.fr>
10027
10028 * src/parse-skel.y: Get rid of the shift/reduce conflict:
10029 replace `gb' with BLANKS.
10030 * src/scan-skel.l: Adjust.
10031
10032 2001-12-30 Akim Demaille <akim@epita.fr>
10033
10034 * src/system.h: We don't need nor want bcopy.
10035 Throw away MS-DOS crap: we don't need getpid.
10036 * configure.in: We don't need strndup. It was even causing
10037 problems: because Flex includes the headers *before* us,
10038 _GNU_SOURCE is not defined by config.h, and therefore strndup was
10039 not visible.
10040 * lib/xstrndup.c: New.
10041 * src/scan-skel.l: Use it.
10042 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
10043 * src/parse-skel.y: Use %directives instead of #defines.
10044
10045 2001-12-30 Akim Demaille <akim@epita.fr>
10046
10047 * src/skeleton.h: New.
10048 * src/output.c (output_parser, output_master_parser): Remove, dead
10049 code.
10050 * src/output.h (get_lines_number, actions_output, guards_output)
10051 (token_definitions_output): Prototype them.
10052 * src/parse-skel.y: Add the license notice.
10053 Include output.h and skeleton.h.
10054 (process_skeleton): Returns void, and takes a single parameter.
10055 * src/scan-skel.l: Add the license notice.
10056 Include skeleton.h.
10057 Don't use %option yylineno: it seems that then Flex imagines
10058 REJECT has been used, and therefore it won't reallocate its
10059 buffers (which makes no other sense to me than a bug). It results
10060 in warnings for `unused: yy_flex_realloc'.
10061
10062 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
10063
10064 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
10065 (MUSCLE_INSERT_PREFIX): ...to there.
10066 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
10067 (MUSCLE_INSERT_PREFIX): Move from here...
10068
10069 * src/bison.hairy: Add a section directive. Put braces around muscle
10070 names. This parser skeleton is still broken, but Bison should not
10071 choke on a bad muscle 'syntax'.
10072 * src/bison.simple: Add a section directive. Put braces around muscle
10073 names.
10074
10075 * src/files.h (strsuffix, stringappend): Add declarations.
10076 (tab_extension): Add declaration.
10077 (short_base_name): Add declaration.
10078
10079 * src/files.c (strsuffix, stringappend): No longer static. These
10080 functions are used in the skeleton parser.
10081 (tab_extension): New.
10082 (compute_base_names): Use the computations done in this function
10083 to guess if the generated parsers should have '.tab' in their
10084 names.
10085 (short_base_name): No longer static.
10086
10087 * src/output.c (output_skeleton): New.
10088 (output): Disable call to output_master_parser, and give a try to
10089 a new skeleton handling system.
10090 (guards_output, actions_output): No longer static.
10091 (token_definitions_output, get_lines_number): No longer static.
10092
10093 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
10094
10095 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
10096 parse-skel.y.
10097
10098 * src/parse-skel.y: New file.
10099 * src/scan-skel.l: New file.
10100
10101 2001-12-29 Akim Demaille <akim@epita.fr>
10102
10103 %name-prefix is broken.
10104
10105 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
10106 Adjust all dependencies.
10107 * tests/headers.at (export YYLTYPE): Strengthen this test: use
10108 %name-prefix.
10109
10110 Renaming yylval but not yylloc is not consistent. Now we do.
10111
10112 * src/bison.simple: Prefix yylloc if used.
10113 * doc/bison.texinfo (Decl Summary): Document that.
10114
10115 2001-12-29 Akim Demaille <akim@epita.fr>
10116
10117 * doc/bison.texinfo: Promote `%long-directive' over
10118 `%long_directive'.
10119 Remove all references to fixed-output-files, yacc is enough.
10120
10121 2001-12-29 Akim Demaille <akim@epita.fr>
10122
10123 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
10124 user prologue. These are defaults.
10125 * tests/actions.at (Mid-rule actions): Make sure the user can
10126 define YYDEBUG and YYERROR_VERBOSE.
10127
10128 2001-12-29 Akim Demaille <akim@epita.fr>
10129
10130 * src/output.c (header_output): Don't forget to export YYLTYPE and
10131 yylloc.
10132 * tests/headers.at (export YYLTYPE): New, make sure it does.
10133 * tests/regression.at (%union and --defines, Invalid CPP headers):
10134 Move to...
10135 * tests/headers.at: here.
10136
10137 2001-12-29 Akim Demaille <akim@epita.fr>
10138
10139 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
10140
10141 2001-12-29 Akim Demaille <akim@epita.fr>
10142
10143 * tests/actions.at (Mid-rule actions): Output on a single line
10144 instead of several.
10145
10146 2001-12-29 Akim Demaille <akim@epita.fr>
10147
10148 * doc/bison.texinfo: Formatting changes.
10149
10150 2001-12-29 Akim Demaille <akim@epita.fr>
10151
10152 Don't store the token defs in a muscle, just be ready to output it
10153 on command. Now possible via `symbols'. Fixes a memory leak.
10154
10155 * src/output.c (token_definitions_output): New.
10156 (output_parser, header_output): Use it.
10157 * src/reader.c (symbols_save): Remove.
10158
10159 2001-12-29 Akim Demaille <akim@epita.fr>
10160
10161 * src/bison.simple: Do not provide a default for YYSTYPE and
10162 YYLTYPE before the user's prologue. Otherwise it's hardly... a
10163 default.
10164
10165 2001-12-29 Akim Demaille <akim@epita.fr>
10166
10167 Mid-rule actions are simply... ignored!
10168
10169 * src/reader.c (readgram): Be sure to attach mid-rule actions to
10170 the empty-rule associated to the dummy symbol, not to the host
10171 rule.
10172 * tests/actions.at (Mid-rule actions): New.
10173
10174 2001-12-29 Akim Demaille <akim@epita.fr>
10175
10176 Memory leak.
10177
10178 * src/reader.c (reader): Free grammar.
10179
10180 2001-12-29 Akim Demaille <akim@epita.fr>
10181
10182 Memory leak.
10183
10184 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
10185 since it allocates it for each state, although only one is needed.
10186 (allocate_storage): Do it here.
10187
10188 2001-12-29 Akim Demaille <akim@epita.fr>
10189
10190 * src/options.h, src/options.c (create_long_option_table): Rename
10191 as...
10192 (long_option_table_new): this, with a clearer prototype.
10193 (percent_table): Remove, unused,
10194 * src/getargs.c (getargs): Adjust.
10195
10196 2001-12-29 Akim Demaille <akim@epita.fr>
10197
10198 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
10199 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
10200 as states.
10201
10202 2001-12-29 Akim Demaille <akim@epita.fr>
10203
10204 * src/lalr.c (build_relations): Rename `states' as `states1'.
10205 Sorry, I don't understand exactly what it is, no better name...
10206
10207 2001-12-29 Akim Demaille <akim@epita.fr>
10208
10209 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
10210 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
10211 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
10212 as rules.
10213
10214 2001-12-29 Akim Demaille <akim@epita.fr>
10215
10216 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
10217 ago.
10218
10219 2001-12-29 Akim Demaille <akim@epita.fr>
10220
10221 * src/reader.c, src/reader.h (user_toknums): Remove.
10222 Adjust all users to use symbols[i]->user_token_number.
10223
10224 2001-12-29 Akim Demaille <akim@epita.fr>
10225
10226 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
10227 Adjust all users to use symbols[i]->prec or ->assoc.
10228
10229 2001-12-29 Akim Demaille <akim@epita.fr>
10230
10231 * src/reader.c, src/reader.h (tags): Remove.
10232 Adjust all users to use symbols[i]->tag.
10233
10234 2001-12-29 Akim Demaille <akim@epita.fr>
10235
10236 * src/gram.h, src/gram.c (symbols): New, similar to state_table
10237 and rule_table.
10238 * src/reader.c (packsymbols): Fill this table.
10239 Drop sprec.
10240 * src/conflicts.c (resolve_sr_conflict): Adjust.
10241 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
10242 single table.
10243 Use symbols[i]->tag instead of tags[i].
10244
10245 2001-12-29 Akim Demaille <akim@epita.fr>
10246
10247 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
10248 In addition, put a comment in there, to replace...
10249 * tests/regression.at (%union and C comments): Remove.
10250
10251 2001-12-29 Akim Demaille <akim@epita.fr>
10252
10253 * tests/regression.at (Web2c Actions): Blindly move the actual
10254 output as expected output. The contents *seem* right to me, but I
10255 can't pretend reading perfectly parser tables... Nonetheless, all
10256 the other tests pass correctly, the table look OK, even though the
10257 presence of `$axiom' is to be noted: AFAICS it is useless (but
10258 harmless).
10259
10260 2001-12-29 Akim Demaille <akim@epita.fr>
10261
10262 * src/reader.c (readgram): Don't add the rule 0 if there were no
10263 rules read. In other words, add it _after_ having performed
10264 grammar sanity checks.
10265 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
10266
10267 2001-12-29 Akim Demaille <akim@epita.fr>
10268
10269 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
10270 visible, and some states have now a different number.
10271
10272 2001-12-29 Akim Demaille <akim@epita.fr>
10273
10274 * src/reader.c (readgram): Bind the initial rule's lineno to that
10275 of the first rule.
10276 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
10277 (Solved SR Conflicts): Adjust rule 0's line number.
10278
10279 2001-12-29 Akim Demaille <akim@epita.fr>
10280
10281 Fix the `GAWK Grammar' failure.
10282
10283 * src/LR0.c (final_state): Initialize to -1 so that we do compute
10284 the reductions of the first state which was mistakenly confused
10285 with the final state because precisely final_state was initialized
10286 to 0.
10287 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
10288 now noticed by Bison.
10289 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
10290 have a reduction on $default.
10291
10292 2001-12-29 Akim Demaille <akim@epita.fr>
10293
10294 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
10295 rule line numbers.
10296 * src/closure.c (print_closure): Likewise.
10297 * src/derives.c (print_derives): Likewise.
10298 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
10299 now.
10300
10301 2001-12-29 Akim Demaille <akim@epita.fr>
10302
10303 * src/lalr.c (lookaheads_print): New.
10304 (lalr): Call it when --trace-flag.
10305 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
10306 are dumped.
10307
10308 2001-12-29 Akim Demaille <akim@epita.fr>
10309
10310 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
10311 when walking through ritem, even via rule->rhs.
10312 * src/reduce.c (dump_grammar, useful_production, reduce_output)
10313 (useful_production, useless_nonterminals): Likewise.
10314 (reduce_grammar_tables): Likewise, plus update nritems.
10315 * src/nullable.c (set_nullable): Likewise.
10316 * src/lalr.c (build_relations): Likewise.
10317 * tests/sets.at (Nullable): Adjust.
10318 Fortunately, now, the $axiom is no longer nullable.
10319
10320 2001-12-29 Akim Demaille <akim@epita.fr>
10321
10322 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
10323 the 0-sentinel.
10324 * src/gram.c (ritem_longest_rhs): Likewise.
10325 * src/reduce.c (nonterminals_reduce): Likewise.
10326 * src/print_graph.c (print_graph): Likewise.
10327 * src/output.c (output_rule_data): Likewise.
10328 * src/nullable.c (set_nullable): Likewise.
10329
10330 2001-12-29 Akim Demaille <akim@epita.fr>
10331
10332 * src/output.c: Comment changes.
10333
10334 2001-12-27 Paul Eggert <eggert@twinsun.com>
10335
10336 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
10337 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
10338 Sparc, as they were causing more porting problems than the
10339 (minor) performance improvement was worth.
10340
10341 Also, catch up with 1.31's YYSTD.
10342
10343 2001-12-27 Akim Demaille <akim@epita.fr>
10344
10345 * src/output.c (output_gram): Rely on nritems, not the
10346 0-sentinel. See below.
10347 Use -1 as separator, not 0.
10348 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
10349 Rely on -1 as separator in yyrhs, instead of 0.
10350 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
10351 twice `Now at end of input', therefore there are two lines less to
10352 expect.
10353
10354 2001-12-27 Akim Demaille <akim@epita.fr>
10355
10356 * tests/regression.at (Unresolved SR Conflicts):
10357 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
10358 below.
10359
10360 2001-12-27 Akim Demaille <akim@epita.fr>
10361
10362 * src/LR0.c (new_state): Recognize the final state by the fact it
10363 is reached by eoftoken.
10364 (insert_start_shifting_state, insert_eof_shifting_state)
10365 (insert_accepting_state, augment_automaton): Remove, since now
10366 these states are automatically computed from the initial state.
10367 (generate_states): Adjust.
10368 * src/print.c: When reporting a rule number to the user, substract
10369 1, so that the axiom rule is rule 0, and the first user rule is 1.
10370 * src/reduce.c: Likewise.
10371 * src/print_graph.c (print_core): For the time being, just as for
10372 the report, depend upon --trace-flags to dump the full set of
10373 items.
10374 * src/reader.c (readgram): Once the grammar read, insert the rule
10375 0: `$axiom: START-SYMBOL $'.
10376 * tests/set.at: Adjust: rule 0 is now displayed, and since the
10377 number of the states has changed (the final state is no longer
10378 necessarily the last), catch up.
10379
10380 2001-12-27 Akim Demaille <akim@epita.fr>
10381
10382 Try to make the use of the eoftoken valid. Given that its value
10383 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
10384 is used instead of > 0 where appropriate, (ii), depend upon nritems
10385 instead of the 0-sentinel.
10386
10387 * src/gram.h, src/gram.c (nritems): New.
10388 Expected to be duplication of nitems, but for the time being...
10389 * src/reader.c (packgram): Assert nritems and nitems are equal.
10390 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
10391 * src/closure.c (print_closure, print_fderives): Likewise.
10392 * src/gram.c (ritem_print): Likewise.
10393 * src/print.c (print_core, print_grammar): Likewise.
10394 * src/print_graph.c: Likewise.
10395
10396 2001-12-27 Akim Demaille <akim@epita.fr>
10397
10398 * src/main.c (main): If there are complains after grammar
10399 reductions, then output the report anyway if requested, then die.
10400 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
10401 * src/reader.c (eoftoken): New.
10402 (parse_token_decl): If the token being defined has value `0', it
10403 is the eoftoken.
10404 (packsymbols): No longer hack `tags' to insert `$' by hand.
10405 Be sure to preserve the value of the eoftoken.
10406 (reader): Make sure eoftoken is defined.
10407 Initialize nsyms to 0: now eoftoken is created just like the others.
10408 * src/print.c (print_grammar): Don't special case the eof token.
10409 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
10410 lie anyway, albeit pleasant.
10411 * tests/calc.at: Exercise error messages with eoftoken.
10412 Change the grammar so that empty input is invalid.
10413 Adjust expectations.
10414 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
10415
10416 2001-12-27 Akim Demaille <akim@epita.fr>
10417
10418 * configure.in: Check the protos of strchr ans strspn.
10419 Replace strchr if needed.
10420 * src/system.h: Provide the protos of strchr, strspn and memchr if
10421 missing.
10422 * lib/strchr.c: New.
10423 * src/reader.c (symbols_save): Use strchr.
10424
10425 2001-12-27 Akim Demaille <akim@epita.fr>
10426
10427 * src/print.c, src/print_graph.c (escape): New.
10428 Use it to quote the TAGS outputs.
10429 * src/print_graph.c (print_state): Now errors are in red, and
10430 reductions in green.
10431 Prefer high to wide: output the state number on a line of its own.
10432
10433 2001-12-27 Akim Demaille <akim@epita.fr>
10434
10435 * src/state.h, src/state.c (reductions_new): New.
10436 * src/LR0.c (set_state_table): Let all the states have a
10437 `reductions', even if reduced to 0.
10438 (save_reductions): Adjust.
10439 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
10440 * src/print.c (print_reductions, print_actions): Adjust.
10441 * src/output.c (action_row): Adjust.
10442
10443 2001-12-27 Akim Demaille <akim@epita.fr>
10444
10445 * src/state.h, src/state.c (errs_new, errs_dup): New.
10446 * src/LR0.c (set_state_table): Let all the states have an errs,
10447 even if reduced to 0.
10448 * src/print.c (print_errs, print_reductions): Adjust.
10449 * src/output.c (output_actions, action_row): Adjust.
10450 * src/conflicts.c (resolve_sr_conflict): Adjust.
10451
10452 2001-12-27 Akim Demaille <akim@epita.fr>
10453
10454 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
10455
10456 2001-12-27 Akim Demaille <akim@epita.fr>
10457
10458 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
10459 * src/print.c: here.
10460 (lookaheadset, shiftset): New, used as additional storage by
10461 print_reductions.
10462 (print_results): Adjust.
10463 (print_shifts, print_gotos, print_errs): New, extracted from...
10464 (print_actions): here.
10465 * src/print_graph.c (print_actions): Remove dead code.
10466
10467 2001-12-27 Akim Demaille <akim@epita.fr>
10468
10469 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
10470 `$n' and `@n'.
10471
10472 2001-12-27 Akim Demaille <akim@epita.fr>
10473
10474 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
10475 (build_relations): Adjust.
10476
10477 2001-12-27 Akim Demaille <akim@epita.fr>
10478
10479 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
10480 duplication.
10481
10482 2001-12-27 Akim Demaille <akim@epita.fr>
10483
10484 * src/reader.c (packgram): Catch nitems overflows.
10485
10486 2001-12-27 Akim Demaille <akim@epita.fr>
10487
10488 * src/files.c, src/files.h (guard_obstack): Remove.
10489 * src/output.c (output): Adjust.
10490 * src/reader.c (parse_braces): New, factoring...
10491 (copy_action, copy_guard): these two which are renamed as...
10492 (parse_action, parse_guard): these.
10493 As a voluntary consequence, using braces around guards is now
10494 mandatory.
10495
10496 2001-12-27 Akim Demaille <akim@epita.fr>
10497
10498 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
10499 * src/reader.c (symbol_list): `guard' and `guard_line' are new
10500 members.
10501 (symbol_list_new): Adjust.
10502 (copy_action): action_line is the first line, not the last.
10503 (copy_guard): Just as for actions, store the `action' only, not
10504 the switch/case/break flesh.
10505 Don't parse the user action that might follow the guard, let...
10506 (readgram): do it, i.e., now, there can be an action after a
10507 guard.
10508 In other words the guard is just explicitly optional.
10509 (packgram): Adjust.
10510 * src/output.c (guards_output): New.
10511 (output_parser): Call it when needed.
10512 (output): Also free the guard and attrs obstacks.
10513 * src/files.c, src/files.h (obstack_save): Remove.
10514 (output_files): Remove.
10515 As a result, if one needs the former `.act' file, using an
10516 appropriate skeleton which requires actions and guards is now
10517 required.
10518 * src/main.c (main): Adjust.
10519 * tests/semantic.at: New.
10520 * tests/regression.at: Use `input.y' as input file name.
10521 Avoid 8+3 problems by requiring input.c when the test needs the
10522 parser.
10523
10524 2001-12-27 Akim Demaille <akim@epita.fr>
10525
10526 * src/reader.c (symbol_list_new): Be sure to initialize all the
10527 fields.
10528
10529 2001-12-27 Akim Demaille <akim@epita.fr>
10530
10531 All the hacks using a final pseudo state are now useless.
10532
10533 * src/LR0.c (set_state_table): state_table holds exactly nstates.
10534 * src/lalr.c (nLA): New.
10535 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
10536 instead of lookaheadsp from the pseudo state (nstate + 1).
10537
10538 2001-12-27 Akim Demaille <akim@epita.fr>
10539
10540 * src/output.c (action_row, token_actions): Use a state_t instead
10541 of a integer, and nlookaheads instead of the following state's
10542 lookaheadsp.
10543
10544 2001-12-27 Akim Demaille <akim@epita.fr>
10545
10546 * src/conflicts.c (log_resolution, flush_shift)
10547 (resolve_sr_conflict, set_conflicts, solve_conflicts)
10548 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
10549 (conflicts_print, print_reductions): Use a state_t instead of an
10550 integer when referring to a state.
10551 As much as possible, depend upon nlookaheads, instead of the
10552 `lookaheadsp' member of the following state (since lookaheads of
10553 successive states are successive, the difference between state n + 1
10554 and n served as the number of lookaheads for state n).
10555 * src/lalr.c (add_lookback_edge): Likewise.
10556 * src/print.c (print_core, print_actions, print_state)
10557 (print_results): Likewise.
10558 * src/print_graph.c (print_core, print_actions, print_state)
10559 (print_graph): Likewise.
10560 * src/conflicts.h: Adjust.
10561
10562 2001-12-27 Akim Demaille <akim@epita.fr>
10563
10564 * src/bison.hairy: Formatting/comment changes.
10565 ANSIfy.
10566 Remove `register' indications.
10567 Add plenty of `static'.
10568
10569 2001-12-27 Akim Demaille <akim@epita.fr>
10570
10571 * src/output.c (prepare): Drop the muscle `ntbase' which
10572 duplicates ntokens.
10573 * src/bison.simple: Formatting/comment changes.
10574 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
10575 is an undocumented synonym.
10576
10577 2001-12-22 Akim Demaille <akim@epita.fr>
10578
10579 * src/output.c (output_table_data): Change the prototype to use
10580 `int' for array ranges: some invocations do pass an int, not a
10581 short.
10582 Reported by Wayne Green.
10583
10584 2001-12-22 Akim Demaille <akim@epita.fr>
10585
10586 Some actions of web2c.y are improperly triggered.
10587 Reported by Mike Castle.
10588
10589 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
10590 * tests/regression.at (Web2c): Rename as...
10591 (Web2c Report): this.
10592 (Web2c Actions): New.
10593
10594 2001-12-22 Akim Demaille <akim@epita.fr>
10595
10596 Reductions in web2c.y are improperly reported.
10597 Reported by Mike Castle.
10598
10599 * src/conflicts.c (print_reductions): Fix.
10600 * tests/regression.at (Web2c): New.
10601
10602 2001-12-18 Akim Demaille <akim@epita.fr>
10603
10604 Some host fail on `assert (!"foo")', which expands to
10605 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
10606 Reported by Nelson Beebee.
10607
10608 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
10609 `#define it_succeeded 0' and `assert (it_succeeded)'.
10610
10611 2001-12-17 Marc Autret <autret_m@epita.fr>
10612
10613 * src/bison.simple: Don't hard code the skeleton line and filename.
10614 * src/output.c (output_parser): Rename 'line' as 'output_line'.
10615 New line counter 'skeleton_line' (skeleton-line muscle).
10616
10617 2001-12-17 Paul Eggert <eggert@twinsun.com>
10618
10619 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
10620 YYDEBUG must be defined to a nonzero value.
10621
10622 * src/bison.simple (yytname): Do not assume that the user defines
10623 YYDEBUG to a properly parenthesized expression.
10624
10625 2001-12-17 Akim Demaille <akim@epita.fr>
10626
10627 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
10628 nlookaheads is a new member.
10629 Adjust all users.
10630 * src/lalr.h (nlookaheads): Remove this orphan declaration.
10631 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
10632 state.
10633
10634 2001-12-17 Akim Demaille <akim@epita.fr>
10635
10636 * src/files.h, src/files.c (open_files, close_files): Remove.
10637 * src/main.c (main): Don't open/close files, nor invoke lex_free,
10638 let...
10639 * src/reader.c (reader): Do it.
10640
10641 2001-12-17 Akim Demaille <akim@epita.fr>
10642
10643 * src/conflicts.c (print_reductions): Formatting changes.
10644
10645 2001-12-17 Akim Demaille <akim@epita.fr>
10646
10647 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
10648 (flush_reduce): New.
10649 (resolve_sr_conflict): Adjust.
10650
10651 2001-12-17 Akim Demaille <akim@epita.fr>
10652
10653 * src/output.c (output_obstack): Be static and rename as...
10654 (format_obstack): this, to avoid any confusion with files.c's
10655 output_obstack.
10656 * src/reader.h (muscle_obstack): Move to...
10657 * src/output.h: here, since it's defined in output.c.
10658
10659 2001-12-17 Akim Demaille <akim@epita.fr>
10660
10661 * src/output.c (action_row, save_column, default_goto)
10662 (sort_actions, matching_state, pack_vector): Better variable
10663 locality.
10664
10665 2001-12-17 Akim Demaille <akim@epita.fr>
10666
10667 * src/output.c: Various formatting changes.
10668
10669 2001-12-17 Akim Demaille <akim@epita.fr>
10670
10671 * src/files.c (output_files): Free the output_obstack.
10672 * src/main.c (main): Call print and print_graph conditionally.
10673 * src/print.c (print): Work unconditionally.
10674 * src/print_graph.c (print_graph): Work unconditionally.
10675 * src/conflicts.c (log_resolution): Output only if verbose_flag.
10676
10677 2001-12-16 Marc Autret <autret_m@epita.fr>
10678
10679 * src/output.c (actions_output): Fix. When we use %no-lines,
10680 there is one less line per action.
10681
10682 2001-12-16 Marc Autret <autret_m@epita.fr>
10683
10684 * src/bison.simple: Remove a useless #line directive.
10685 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
10686 * src/output.c (get_lines_number): New.
10687 (output_parser): Adjust, now takes care about the lines of a
10688 output muscles.
10689 Fix line numbering.
10690 (actions_output): Computes the number of lines taken by actions.
10691 (output_master_parser): Insert new skeleton which is the name of
10692 the output parser file name.
10693
10694 2001-12-15 Marc Autret <autret_m@epita.fr>
10695
10696 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
10697
10698 2001-12-15 Marc Autret <autret_m@epita.fr>
10699
10700 * src/output.c (output_gram): Keep track of the hairy one.
10701
10702 2001-12-15 Akim Demaille <akim@epita.fr>
10703
10704 Make `make distcheck' work.
10705
10706 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
10707 system.h which uses libgettext.h.
10708
10709 2001-12-15 Akim Demaille <akim@epita.fr>
10710
10711 * src/nullable.c (set_nullable): Useless rules must be skipped,
10712 otherwise, since we range over their symbols, we might look at a
10713 nonterminal which no longer ``exists'', i.e., it is not counted in
10714 `nvars', hence we overflow our arrays.
10715
10716 2001-12-15 Akim Demaille <akim@epita.fr>
10717
10718 The header can also be produced directly, without any obstack!
10719 Yahoo!
10720
10721 * src/files.c, src/files.h (defines_obstack): Remove.
10722 (compute_header_macro): Global.
10723 (defines_obstack_save): Remove.
10724 * src/reader.c (parse_union_decl): No longer output to
10725 defines_obstack: its content can be found in the `stype' muscle
10726 anyway.
10727 (output_token_translations): Merge into...
10728 (symbols_output): this.
10729 Rename as...
10730 (symbols_save): this.
10731 (reader): Adjust.
10732 * src/output.c (header_output): New.
10733 (output): Call it.
10734
10735 2001-12-15 Akim Demaille <akim@epita.fr>
10736
10737 * src/reader.c (parse_union_decl): Instead of handling two obstack
10738 simultaneously, use one to define the `stype' muscle, and use the
10739 value of the latter to fill defines_obstack.
10740 (copy_comment): Remove.
10741 (copy_comment2): Work for a single obstack.
10742 Rename as...
10743 (copy_comment): this.
10744
10745 2001-12-15 Akim Demaille <akim@epita.fr>
10746
10747 * src/lex.c, src/lex.h (xgetc): No longer static.
10748 * src/reader.c (parse_union_decl): Revamp.
10749
10750 2001-12-15 Akim Demaille <akim@epita.fr>
10751
10752 Still making progress in separating Bison into (i) input, (ii)
10753 process, (iii) output: now we can directly output the parser file
10754 without using table_obstack at all.
10755
10756 * src/files.c, src/files.h (table_obstack): Bye bye.
10757 (parser_file_name): New.
10758 * src/files.c (compute_output_file_names): Compute it.
10759 * src/output.c (actions_output, output_parser)
10760 (output_master_parser): To a file instead of an obstack.
10761
10762 2001-12-15 Akim Demaille <akim@epita.fr>
10763
10764 Attach actions to rules, instead of pre-outputting them to
10765 actions_obstack.
10766
10767 * src/gram.h (rule_t): action and action_line are new members.
10768 * src/reader.c (symbol_list): Likewise.
10769 (copy_action): Save the actions within the rule.
10770 (packgram): Save them in rule_table.
10771 * src/output.c (actions_output): New.
10772 (output_parser): Use it on `%%actions'.
10773 (output_rule_data): Don't free rule_table.
10774 (output): Do it.
10775 (prepare): Don't save the `action' muscle.
10776 * src/bison.simple: s/%%action/%%actions/.
10777
10778 2001-12-15 Akim Demaille <akim@epita.fr>
10779
10780 * src/reader.c (copy_action): When --yacc, don't append a `;'
10781 to the user action: let it fail if lacking.
10782 Suggested by Arnold Robbins and Tom Tromey.
10783
10784 2001-12-14 Akim Demaille <akim@epita.fr>
10785
10786 * src/lex.c (literalchar): Simply return the char you decoded, non
10787 longer mess around with obstacks and int pointers.
10788 Adjust all callers.
10789
10790 2001-12-14 Akim Demaille <akim@epita.fr>
10791
10792 * src/lex.c (literalchar): Don't escape the special characters,
10793 just decode them, and keep them as char (before, eol was output as
10794 the 2 char string `\n' etc.).
10795 * src/output.c (output_rule_data): Use quotearg to output the
10796 token strings.
10797
10798 2001-12-13 Paul Eggert <eggert@twinsun.com>
10799
10800 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
10801 Do not infringe on the global user namespace when using C++.
10802 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
10803 All uses of `fprintf' and `stderr' changed.
10804
10805 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
10806
10807 2001-12-13 Akim Demaille <akim@epita.fr>
10808
10809 The computation of nullable is broken: it doesn't handle empty
10810 RHS's properly.
10811
10812 * tests/torture.at (GNU AWK Grammar): New.
10813 * tests/sets.at (Nullable): New.
10814 * src/nullable.c (set_nullable): Instead of blindly looping over
10815 `ritems', loop over the rules, and then over their rhs's.
10816
10817 Work around Autotest bugs.
10818
10819 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
10820 frame, because Autotest understand lines starting with a `+' as
10821 traces from the shell. Then, they are not processed properly.
10822 Admittedly an Autotest bug, but we don't have time to wait for
10823 Autotest to catch up.
10824 * tests/regression.at (Broken Closure): Adjust to the new table
10825 frames.
10826 Move to...
10827 * tests/sets.at: here.
10828
10829 2001-12-13 Akim Demaille <akim@epita.fr>
10830
10831 * src/closure.c (closure): Use nrules instead of playing tricks
10832 with BITS_PER_WORD.
10833
10834 2001-12-13 Akim Demaille <akim@epita.fr>
10835
10836 * src/print.c (print_actions): Output the handling of `$' as the
10837 traces do: shifting the token EOF. Before EOF was treated as a
10838 nonterminal.
10839 * tests/regression.at: Adjust some tests.
10840 * src/print_graph.c (print_core): Complete the set of items via
10841 closure. The next-to-final and final states are still unsatisfying,
10842 but that's to be addressed elsewhere.
10843 No longer output the rule numbers, but do output the state number.
10844 A single loop for the shifts + gotos is enough, but picked a
10845 distinct color for each.
10846 (print_graph): Initialize and finalize closure.
10847
10848 2001-12-13 Akim Demaille <akim@epita.fr>
10849
10850 * src/reader.c (readgram): Remove dead code, an strip useless
10851 braces.
10852 (get_type): Remove, unused.
10853
10854 2001-12-12 Akim Demaille <akim@epita.fr>
10855
10856 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
10857 on that of lib/error.c.
10858
10859 2001-12-12 Akim Demaille <akim@epita.fr>
10860
10861 Some hosts don't like `/' in includes.
10862
10863 * src/system.h: Include libgettext.h without qualifying the path.
10864 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
10865 $(top_srcdir).
10866
10867 2001-12-11 Marc Autret <autret_m@epita.fr>
10868
10869 * src/output.c (output_parser): Remove useless muscle.
10870
10871 2001-12-11 Marc Autret <autret_m@epita.fr>
10872
10873 * src/bison.simple: Remove #line just before %%epilogue. It
10874 is now handled in ...
10875 * src/reader.c (read_additionnal_code): Add the output of a
10876 #line for the epilogue.
10877
10878 2001-12-10 Marc Autret <autret_m@epita.fr>
10879
10880 * src/reader.c (copy_definition): Re-use CPP-outed code which
10881 replace precedent remove.
10882 * src/bison.simple: Remove #line before %%prologue because
10883 %%input-line is wrong at this time.
10884
10885 2001-12-10 Marc Autret <autret_m@epita.fr>
10886
10887 * src/reader.c (symbols_output): Clean up.
10888 * src/output.c (output_gram, output): Clean up.
10889
10890 2001-12-10 Akim Demaille <akim@epita.fr>
10891
10892 * src/lalr.c (initialize_lookaheads): New. Extracted from...
10893 * src/LR0.c (set_state_table): here.
10894 * src/lalr.c (lalr): Call it.
10895
10896 2001-12-10 Akim Demaille <akim@epita.fr>
10897
10898 * src/state.h (shifts): Remove the `number' member: shifts are
10899 attached to state, hence no longer need to be labelled with a
10900 state number.
10901
10902 2001-12-10 Akim Demaille <akim@epita.fr>
10903
10904 Now that states have a complete set of members, the linked list of
10905 shifts is useless: just fill directly the state's shifts member.
10906
10907 * src/state.h (shifts): Remove the `next' member.
10908 * src/LR0.c (first_state, last_state): Remove.
10909 Adjust the callers.
10910 (augment_automaton): Don't look for the shifts that must be added
10911 a shift on EOF: it is those of the state we looked for! But now,
10912 since shifts are attached, it is no longer needed to looking
10913 merely by its id: its number.
10914
10915 2001-12-10 Akim Demaille <akim@epita.fr>
10916
10917 * src/LR0.c (augment_automaton): Better variable locality.
10918 Remove an impossible branch: if there is a state corresponding to
10919 the start symbol being shifted, then there is shift for the start
10920 symbol from the initial state.
10921
10922 2001-12-10 Akim Demaille <akim@epita.fr>
10923
10924 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
10925 only when appropriate: when insert_start_shifting_state' is not
10926 invoked.
10927 * tests/regression.at (Rule Line Numbers): Adjust.
10928
10929 2001-12-10 Akim Demaille <akim@epita.fr>
10930
10931 * src/LR0.c (augment_automaton): Now that all states have shifts,
10932 merge the two cases addition shifts to the initial state.
10933
10934 2001-12-10 Akim Demaille <akim@epita.fr>
10935
10936 * src/lalr.c (set_state_table): Move to...
10937 * src/LR0.c: here.
10938 * src/lalr.c (lalr): Don't call it...
10939 * src/LR0.c (generate_states): do it.
10940 * src/LR0.h (first_state): Remove, only the table is used.
10941
10942 2001-12-10 Akim Demaille <akim@epita.fr>
10943
10944 * src/LR0.h (first_shift, first_reduction): Remove.
10945 * src/lalr.c: Don't use first_shift: find shifts through the
10946 states.
10947
10948 2001-12-10 Akim Demaille <akim@epita.fr>
10949
10950 * src/LR0.c: Attach shifts to states as soon as they are
10951 computed.
10952 * src/lalr.c (set_state_table): Instead of assigning shifts to
10953 state, just assert that the mapping was properly done.
10954
10955 2001-12-10 Akim Demaille <akim@epita.fr>
10956
10957 * src/LR0.c (insert_start_shift): Rename as...
10958 (insert_start_shifting_state): this.
10959 (insert_eof_shifting_state, insert_accepting_state): New.
10960 (augment_automaton): Adjust.
10961 Better locality of the variables.
10962 When looking if the start_symbol is shifted from the initial
10963 state, using `while (... symbol != start_symbol ...)' sounds
10964 better than `while (... symbol < start_symbol ...)': If fail
10965 to see how the order between symbols could be relevant!
10966
10967 2001-12-10 Akim Demaille <akim@epita.fr>
10968
10969 * src/getargs.h: Don't declare `spec_name_prefix' and
10970 `spec_file_prefix', declared by src/files.h.
10971 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
10972 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
10973 * src/output.c (prepare): Adjust.
10974 * src/reader.c (symbols_output): Likewise.
10975 * src/vmsgetargs.c: Vaguely adjust, but who cares?
10976
10977 2001-12-10 Akim Demaille <akim@epita.fr>
10978
10979 * src/muscle_tab.c (muscle_init): NULL is a better default than
10980 `"0"'.
10981
10982 2001-12-10 Akim Demaille <akim@epita.fr>
10983
10984 * src/reader.c (reader): Calling symbols_output once is enough.
10985
10986 2001-12-10 Akim Demaille <akim@epita.fr>
10987
10988 Now that states have a complete set of members, the linked list of
10989 reductions is useless: just fill directly the state's reductions
10990 member.
10991
10992 * src/state.h (struct reductions): Remove member `number' and
10993 `next'.
10994 * src/LR0.c (first_reduction, last_reduction): Remove.
10995 (save_reductions): Don't link the new reductions, store them in
10996 this_state.
10997 * src/lalr.c (set_state_table): No need to attach reductions to
10998 states, it's already done.
10999 * src/output.c (output_actions): No longer free the shifts, then
11000 the reductions, then the states: free all the states and their
11001 members.
11002
11003 2001-12-10 Akim Demaille <akim@epita.fr>
11004
11005 * src/options.c (OPTN, DRTV, BOTH): New.
11006 (option_table): Use them.
11007
11008 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
11009 the job of system.h.
11010 * src/options.c: Don't include stdio.h and xalloc.h for the same
11011 reasons.
11012
11013 2001-12-10 Akim Demaille <akim@epita.fr>
11014
11015 * src/output.c (output, prepare): Make sure the values of the
11016 muscles `action' and `prologue' are 0-terminated.
11017
11018 2001-12-10 Akim Demaille <akim@epita.fr>
11019
11020 Clean up GCC warnings.
11021
11022 * src/reader.c (copy_action): `buf' is not used.
11023 (parse_skel_decl): Be static.
11024 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
11025 * src/options.h (create_long_option_table): Have a real prototype.
11026 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
11027 (hash_delete_at): Return const void *.
11028 Adjust casts to preserve the const.
11029
11030 2001-12-10 Akim Demaille <akim@epita.fr>
11031
11032 * configure.in: Require 2.52g.
11033 M4 is not needed, but AUTOM4TE is.
11034 * m4/m4.m4: Remove.
11035 * tests/Makefile.am: Adjust.
11036
11037 2001-12-10 Akim Demaille <akim@epita.fr>
11038
11039 One structure for states is enough, even though theoretically
11040 there are LR(0) states and LALR(1) states.
11041
11042 * src/lalr.h (state_t): Remove.
11043 (state_table): Be state_t **, not state_t *.
11044 * src/state.h (core, CORE_ALLOC): Rename as...
11045 (state_t, STATE_ALLOC): this.
11046 Add the LALR(1) members: shifts, reductions, errs.
11047 * src/LR0.c (state_table): Rename as...
11048 (state_hash): this, to avoid name clashes with the global
11049 `state_table'.
11050 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
11051 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
11052
11053 2001-12-10 Akim Demaille <akim@epita.fr>
11054
11055 Bison dumps core on bash.y.
11056 Reported by Pascal Bart.
11057
11058 * src/warshall.c (bitmatrix_print): New.
11059 (TC): Use it.
11060 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
11061 j must be the outer loop.
11062 * tests/regression.at (Broken Closure): New.
11063
11064 2001-12-05 Akim Demaille <akim@epita.fr>
11065
11066 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
11067 its argument.
11068 Reported by Peter Hamorsky.
11069
11070 2001-12-05 Akim Demaille <akim@epita.fr>
11071
11072 * src/conflicts.c (err_table): Remove.
11073 (resolve_sr_conflict): Adjust.
11074 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
11075 Rename as...
11076 (state_t.reductions, state_t.shifts): this.
11077
11078 2001-12-05 Akim Demaille <akim@epita.fr>
11079
11080 * src/reduce.c (reduce_grammar_tables): No longer disable the
11081 removal of useless rules via CPP but via `if (0)', so that the
11082 compiler still check the code is valid.
11083 For instance, it should have noticed `rline' no longer exists: use
11084 the `line' member of rule_t.
11085 * src/gram.c (dummy, rline): Remove, unused.
11086
11087 2001-12-05 Akim Demaille <akim@epita.fr>
11088
11089 * src/output.c (pack_vector): Use assert, not berror.
11090 * src/main.c (berror): Remove, unused.
11091
11092 2001-12-05 Akim Demaille <akim@epita.fr>
11093
11094 New experimental feature: if --verbose --trace output all the
11095 items of a state, not only its kernel.
11096
11097 * src/print.c (print_core): If `trace_flag', then invoke closure
11098 before outputting the items of the state (print_core is no longer
11099 a correct name them).
11100 (print_results): Invoke new_closure/free_closure if needed.
11101
11102 2001-12-05 Akim Demaille <akim@epita.fr>
11103
11104 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
11105 * src/closure.c, src/closure.h (itemsetsize): Rename as...
11106 (nitemset): for consistency with the rest of the project.
11107
11108 2001-12-05 Akim Demaille <akim@epita.fr>
11109
11110 * src/closure.c (print_closure): Improve.
11111 (closure): Use it for printing input and output.
11112
11113 2001-12-05 Akim Demaille <akim@epita.fr>
11114
11115 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
11116 indexed by nonterminals.
11117
11118 2001-12-05 Akim Demaille <akim@epita.fr>
11119
11120 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
11121 what it was!).
11122 * src/warshall.h: Remove accidental duplication of the content.
11123
11124 2001-12-05 Akim Demaille <akim@epita.fr>
11125
11126 * src/closure.c (set_fderives): De-obfuscate.
11127
11128 2001-12-05 Akim Demaille <akim@epita.fr>
11129
11130 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
11131
11132 2001-12-05 Akim Demaille <akim@epita.fr>
11133
11134 * src/closure.c (set_firsts): De-obfuscate.
11135
11136 2001-12-05 Akim Demaille <akim@epita.fr>
11137
11138 * src/output.c (action_row): De-obfuscate
11139 using the good o' techniques: arrays not pointers, variable
11140 locality, BITISSET, RESETBIT etc.
11141
11142 2001-12-05 Akim Demaille <akim@epita.fr>
11143
11144 Pessimize the code to simplify it: from now on, all the states
11145 have a valid SHIFTS, which NSHIFTS is possibly 0.
11146
11147 * src/LR0.c (shifts_new): Be global and move to..
11148 * src/state.c, src/state.h: here.
11149 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
11150 * src/print_graph: Adjust.
11151
11152 2001-12-05 Akim Demaille <akim@epita.fr>
11153
11154 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
11155 * src/conflicts.c: Use it.
11156 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
11157 incorrectly ``simplified''.
11158
11159 2001-12-05 Akim Demaille <akim@epita.fr>
11160
11161 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
11162 using the good o' techniques: arrays not pointers, variable
11163 locality, BITISSET, RESETBIT etc.
11164
11165 2001-12-05 Akim Demaille <akim@epita.fr>
11166
11167 * src/state.h (SHIFT_SYMBOL): New.
11168 * src/conflicts.c: Use it to deobfuscate.
11169
11170 2001-12-05 Akim Demaille <akim@epita.fr>
11171
11172 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
11173 (print_reductions): De-obfuscate using the good o' techniques:
11174 arrays not pointers, variable locality, BITISSET.
11175
11176 2001-12-05 Akim Demaille <akim@epita.fr>
11177
11178 * src/conflicts.c (print_reductions): Arrays, not pointers.
11179 Use BITISSET.
11180
11181 2001-12-05 Akim Demaille <akim@epita.fr>
11182
11183 * src/conflicts.c (print_reductions): Pessimize, but clarify.
11184
11185 2001-12-05 Akim Demaille <akim@epita.fr>
11186
11187 * src/conflicts.c (print_reductions): Improve variable locality.
11188
11189 2001-12-05 Akim Demaille <akim@epita.fr>
11190
11191 * src/conflicts.c (print_reductions): Pessimize, but clarify.
11192
11193 2001-12-05 Akim Demaille <akim@epita.fr>
11194
11195 * src/conflicts.c (print_reductions): Improve variable locality.
11196
11197 2001-12-05 Akim Demaille <akim@epita.fr>
11198
11199 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
11200 * src/lalr.c: Use them.
11201
11202 2001-12-05 Akim Demaille <akim@epita.fr>
11203
11204 * src/LR0.c (augment_automaton): Formatting changes.
11205 Better variable locality.
11206
11207 2001-12-05 Akim Demaille <akim@epita.fr>
11208
11209 * src/lalr.c (matrix_print): New.
11210 (transpose): Use it.
11211 Use arrays instead of pointers.
11212
11213 2001-12-05 Akim Demaille <akim@epita.fr>
11214
11215 * src/lalr.c (maxrhs): Move to...
11216 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
11217 * src/lalr.c (build_relations): Adjust.
11218
11219 2001-12-05 Akim Demaille <akim@epita.fr>
11220
11221 * src/lalr.c (transpose): Free the memory allocated to the
11222 argument, as it is replaced by the results by the unique caller.
11223 (build_relations): Merely invoke transpose: it handles the memory
11224 deallocation.
11225 Improve variable locality.
11226 Avoid variables used as mere abbreviations.
11227 (compute_lookaheads): Use arrays instead of pointers.
11228
11229 2001-12-05 Akim Demaille <akim@epita.fr>
11230
11231 * src/lalr.c (initialize_F): Improve variable locality.
11232 Avoid variables used as mere abbreviations.
11233
11234 2001-12-05 Akim Demaille <akim@epita.fr>
11235
11236 * src/derives.c (print_derives): Display the ruleno.
11237 * src/lalr.c (initialize_F, transpose): Better variable locality
11238 to improve readability.
11239 Avoid variables used as mere abbreviations.
11240
11241 2001-12-05 Akim Demaille <akim@epita.fr>
11242
11243 * src/lalr.c (traverse): Use arrays instead of pointers.
11244
11245 2001-12-05 Akim Demaille <akim@epita.fr>
11246
11247 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
11248 the handling of squeue.
11249 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
11250
11251 2001-12-05 Akim Demaille <akim@epita.fr>
11252
11253 Because useless nonterminals are now kept alive (instead of being
11254 `destroyed'), we now sometimes examine them, and store information
11255 related to them. Hence we need to know their number, and adjust
11256 memory allocations.
11257
11258 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
11259 static.
11260 * src/LR0.c (allocate_itemsets): The memory allocated to
11261 `symbol_count' was used for two different purpose: once to count
11262 the number of occurrences of each symbol, and later reassigned to
11263 `shift_symbol', containing the symbol that can be shifted from a
11264 given state.
11265 Deobfuscate, i.e., allocate, use and free `symbol_count' here
11266 only, and...
11267 (new_itemsets): Allocate `shift_symbol' here.
11268 (allocate_itemsets): symbol_count includes useless nonterminals.
11269 Make room for them.
11270 (free_storage): Use `free', not `XFREE', for pointers that cannot
11271 be null.
11272
11273 2001-12-05 Akim Demaille <akim@epita.fr>
11274
11275 * src/nullable.c (set_nullable): Deobfuscate the handling of
11276 ritem.
11277 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
11278
11279 2001-12-05 Akim Demaille <akim@epita.fr>
11280
11281 * src/gram.c, src/gram.h (ritem_print): New.
11282 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
11283 (This useless function was defined only to work around VMS linkers
11284 that can't handle compilation units with variables only).
11285 * src/reduce.c (dump_grammar): Use it to trace the construction of
11286 ritem.
11287
11288 2001-12-04 Paul Eggert <eggert@twinsun.com>
11289
11290 * src/bison.simple (union yyalloc): Change member names
11291 to be the same as the stack names.
11292 (yyparse): yyptr is now union yyalloc *, not char *.
11293 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
11294 and may generate better code on some machines.
11295 (yystpcpy): Use prototype if __STDC__ is defined, not just
11296 if __cplusplus is defined.
11297
11298 2001-11-30 Akim Demaille <akim@epita.fr>
11299
11300 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
11301 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
11302 Gettext doesn't compile cleanly, and dies with -Werror.
11303 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
11304 Include WARNING_CFLAGS here.
11305 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
11306 before being defined.
11307
11308 2001-11-27 Paul Eggert <eggert@twinsun.com>
11309
11310 * lib/quotearg.h (quotearg_n, quotearg_n_style):
11311 First arg is int, not unsigned.
11312 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
11313 (SIZE_MAX, UINT_MAX): New macros.
11314 (quotearg_n_options): Abort if N is negative.
11315 Avoid overflow check on hosts where size_t is 64 bits and int
11316 is 32 bits, as overflow is impossible there.
11317 Fix off-by-one typo that caused unnecessary reallocation.
11318
11319 2001-11-29 Paul Eggert <eggert@twinsun.com>
11320
11321 Name space cleanup in generated parser.
11322
11323 * doc/bison.texinfo (Bison Parser): Discuss system headers
11324 and their effect on the user name space.
11325
11326 * src/bison.simple:
11327 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
11328 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
11329 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
11330
11331 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
11332 on user names when possible.
11333
11334 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
11335 Simplify test for whather <alloca.h> exists.
11336
11337 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
11338
11339 (<stdio.h>): Include if YYDEBUG.
11340
11341 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
11342 ! defined (yyoverflow) && ! defined (yymemcpy).
11343
11344 (yymemcpy, yyparse): Rename local variables as needed so that
11345 they all begin with 'yy'.
11346
11347 (yystrlen, yystpcpy): New functions.
11348
11349 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
11350 All uses changed.
11351
11352 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
11353 instead of relying on string.h functions. Use YYSTACK_ALLOC
11354 and YYSTACK_FREE instead of malloc and free.
11355
11356 2001-11-30 Akim Demaille <akim@epita.fr>
11357
11358 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
11359 before their first uses.
11360 (YYBISON, YYPURE): Move to the top of the output.
11361
11362 2001-11-30 Akim Demaille <akim@epita.fr>
11363
11364 * tests/reduce.at (Useless Nonterminals): Fix.
11365
11366 2001-11-30 Akim Demaille <akim@epita.fr>
11367
11368 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
11369 if body instead of `;' to pacify GCC's warnings.
11370
11371 2001-11-30 Akim Demaille <akim@epita.fr>
11372
11373 Instead of mapping the LHS of unused rules to -1, keep the LHS
11374 valid, but flag the rules as invalid.
11375
11376 * src/gram.h (rule_t): `useful' is a new member.
11377 * src/print.c (print_grammar): Adjust.
11378 * src/derives.c (set_derives): Likewise.
11379 * src/reader.c (packgram, reduce_output): Likewise.
11380 * src/reduce.c (reduce_grammar_tables): Likewise.
11381 * tests/reduce.at (Underivable Rules, Useless Rules): New.
11382
11383 2001-11-30 Akim Demaille <akim@epita.fr>
11384
11385 * src/reduce.c (reduce_output): Formatting changes.
11386 * src/print.c (print_results, print_grammar): Likewise.
11387 * tests/regression.at (Rule Line Numbers)
11388 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
11389
11390 2001-11-30 Akim Demaille <akim@epita.fr>
11391
11392 * src/reduce.c (nonterminals_reduce): Instead of throwing away
11393 useless nonterminals, move them at the end of the symbol arrays.
11394 (reduce_output): Adjust.
11395 * tests/reduce.at (Useless Nonterminals): Adjust.
11396
11397 2001-11-30 Akim Demaille <akim@epita.fr>
11398
11399 * src/reduce.c: Various comment/formatting changes.
11400 (nonterminals_reduce): New, extracted from...
11401 (reduce_grammar_tables): here.
11402 (reduce_grammar): Call nonterminals_reduce.
11403
11404 2001-11-29 Paul Eggert <eggert@twinsun.com>
11405
11406 * src/bison.simple (YYSTACK_REALLOC): Remove.
11407 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
11408 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
11409 New macros.
11410 (union yyalloc): New type.
11411 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
11412 an arbitrary restriction on hosts where size_t is wider than int.
11413
11414 (yyparse): Don't dump core if alloca or malloc fails; instead, report
11415 a parser stack overflow. Allocate just one block of memory for all
11416 three stacks, instead of allocating three blocks; this typically is
11417 faster and reduces fragmentation.
11418
11419 Do not limit the number of items in the stack to a value that fits
11420 in 'int', as this is an arbitrary limit on hosts with 64-bit
11421 size_t and 32-bit int.
11422
11423 2001-11-29 Marc Autret <autret_m@epita.fr>
11424
11425 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
11426 of defining YYERROR_VERBOSE.
11427 [AT_DATA]: $4 is now out of C declarations in the prologue.
11428
11429 2001-11-28 Marc Autret <autret_m@epita.fr>
11430
11431 * src/reader.c (parse_dquoted_param): New.
11432 (parse_skel_decl): Use it.
11433 * src/lex.h: Add its prototype.
11434 * src/lex.c (literalchar): Become not static.
11435
11436 2001-11-28 Marc Autret <autret_m@epita.fr>
11437
11438 * src/output.h: And put its extern declaration here.
11439 * src/output.c (error_verbose): Define here.
11440 (prepare): Echo name modification.
11441 * src/getargs.h: Clean its extern declaration.
11442 * src/getargs.c (error_verbose_flag): Remove.
11443 (getargs): Remove case 'e'.
11444 * src/options.c (option_table): 'error-verbose' is now seen as simple
11445 percent option.
11446 Include output.h.
11447
11448 * src/reader.c (read_declarations): Remove case tok_include.
11449 (parse_include_decl): Remove.
11450 * src/lex.h (token_t): Remove tok_include.
11451 * src/options.c (option_table): 'include' is now a simple command line
11452 option.
11453
11454 2001-11-28 Marc Autret <autret_m@epita.fr>
11455
11456 * src/bison.simple: Adjust muscle names.
11457 * src/muscle_tab.c (muscle_init): Also rename the muscles.
11458 * src/output.c (prepare): s/_/-/ for the muscles names.
11459 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
11460
11461 2001-11-28 Marc Autret <autret_m@epita.fr>
11462
11463 * src/bison.simple: Fix debug.
11464 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
11465
11466 2001-11-28 Akim Demaille <akim@epita.fr>
11467
11468 * src/LR0.c (shifts_new): New.
11469 (save_shifts, insert_start_shift, augment_automaton): Use it.
11470
11471 2001-11-28 Akim Demaille <akim@epita.fr>
11472
11473 * src/closure.c (closure): `b' and `ruleno' denote the same value:
11474 keep ruleno only.
11475
11476 2001-11-28 Akim Demaille <akim@epita.fr>
11477
11478 * src/closure.c (closure): Instead of looping over word in array
11479 then bits in words, loop over bits in array.
11480
11481 2001-11-28 Akim Demaille <akim@epita.fr>
11482
11483 * src/closure.c (closure): No longer optimize the special case
11484 where all the bits of `ruleset[r]' are set to 0, to make the code
11485 clearer.
11486
11487 2001-11-28 Akim Demaille <akim@epita.fr>
11488
11489 * src/closure.c (closure): `r' and `c' are new variables, used to
11490 de-obfuscate accesses to RULESET and CORE.
11491
11492 2001-11-28 Akim Demaille <akim@epita.fr>
11493
11494 * src/reduce.c (reduce_print): Use ngettext.
11495 (dump_grammar): Improve the trace accuracy.
11496
11497 2001-11-28 Akim Demaille <akim@epita.fr>
11498
11499 * src/reduce.c (dump_grammar): Don't translate trace messages.
11500
11501 2001-11-28 Akim Demaille <akim@epita.fr>
11502
11503 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
11504 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
11505 as all tags are free'ed afterwards.
11506 From Enrico Scholz.
11507
11508 2001-11-27 Paul Eggert <eggert@twinsun.com>
11509
11510 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
11511 use alloca when we didn't want to, and vice versa.
11512
11513 2001-11-27 Marc Autret <autret_m@epita.fr>
11514
11515 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
11516 initialization.
11517 * src/output.c (prepare): Remove its update.
11518
11519 2001-11-27 Marc Autret <autret_m@epita.fr>
11520
11521 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
11522 Use %error-verbose.
11523
11524 2001-11-27 Marc Autret <autret_m@epita.fr>
11525
11526 * src/bison.simple: Remove YYERROR_VERBOSE using.
11527 Use %%error_verbose.
11528 (yyparse): Likewise.
11529 * src/output.c (prepare): Give its final value.
11530 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
11531 * src/getargs.h: Add its extern declaration.
11532 * src/getargs.c (error_verbose_flag): New int.
11533 (getargs): Update to catch new case.
11534 * src/options.c (option_table): 'error-verbose' is a new option.
11535 (shortopts): Update.
11536
11537 2001-11-27 Akim Demaille <akim@epita.fr>
11538
11539 * src/system.h: Use intl/libgettext.h.
11540 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
11541
11542 2001-11-27 Akim Demaille <akim@epita.fr>
11543
11544 * tests/torture.at (Exploding the Stack Size with Malloc):
11545 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
11546
11547 2001-11-27 Akim Demaille <akim@epita.fr>
11548
11549 * src/files.c: Include error.h.
11550 Reported by Hans Aberg.
11551
11552 2001-11-26 Marc Autret <autret_m@epita.fr>
11553
11554 * src/reader.c (parse_include_decl): New, not yet implemented.
11555 (read_declarations): Add case tok_include.
11556 * src/getargs.h (include): Add its extern definition.
11557 * src/getargs.c (include): New const char *.
11558 (getargs): Add case '-I'.
11559 * src/options.c (option_table): Add include as command line and
11560 percent option.
11561 * src/lex.h (token_t): Add tok_include.
11562
11563 2001-11-26 Akim Demaille <akim@epita.fr>
11564
11565 * src/reader.c (readgram): Make sure rules for mid-rule actions
11566 have a lineno equal to that of their host rule.
11567 Reported by Hans Aberg.
11568 * tests/regression.at (Rule Line Numbers): New.
11569
11570 2001-11-26 Akim Demaille <akim@epita.fr>
11571
11572 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
11573 size_ts.
11574
11575 2001-11-26 Akim Demaille <akim@epita.fr>
11576
11577 * src/complain.c, src/complain.h (error): Remove, provided by
11578 lib/error.[ch].
11579
11580 2001-11-26 Akim Demaille <akim@epita.fr>
11581
11582 * src/reader.c (read_declarations): Don't abort on tok_illegal,
11583 issue an error message.
11584 * tests/regression.at (Invalid %directive): New.
11585 Reported by Hans Aberg.
11586
11587 2001-11-26 Akim Demaille <akim@epita.fr>
11588
11589 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
11590 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
11591
11592 2001-11-26 Akim Demaille <akim@epita.fr>
11593
11594 * src/conflicts.c (conflicts_print): Don't complain at all when
11595 there are no reduce/reduce conflicts, and as many shift/reduce
11596 conflicts as expected.
11597 * tests/regression.at (%expect right): Adjust.
11598
11599 2001-11-23 Akim Demaille <akim@epita.fr>
11600
11601 * lib/alloca.c: Update, from fileutils.
11602
11603 2001-11-23 Akim Demaille <akim@epita.fr>
11604
11605 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
11606
11607 2001-11-23 Akim Demaille <akim@epita.fr>
11608
11609 * src/system.h: Include alloca.h.
11610 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
11611
11612 2001-11-23 Akim Demaille <akim@epita.fr>
11613
11614 * src/print_graph.c (print_actions): Remove `rule', unused.
11615 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
11616 pacify GCC's signed < unsigned warnings.
11617 * src/closure.c (itemsetsize): Likewise.
11618 * src/reader.c (symbol_list_new): Static.
11619
11620 2001-11-23 Akim Demaille <akim@epita.fr>
11621
11622 Attaching lineno to buckets is stupid, since only one copy of each
11623 symbol is kept, only the line of the first occurrence is kept too.
11624
11625 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
11626 * src/reader.c (rline_allocated): Remove, unused.
11627 (symbol_list): Have a `line' member.
11628 (symbol_list_new): New.
11629 (readgram): Use it.
11630 * src/print.c (print_grammar): Output the rule line numbers.
11631 * tests/regression.at (Solved SR Conflicts)
11632 (Unresolved SR Conflicts): Adjust.
11633 Reported by Hans Aberg.
11634
11635 2001-11-22 Marc Autret <autret_m@epita.fr>
11636
11637 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
11638
11639 2001-11-22 Marc Autret <autret_m@epita.fr>
11640
11641 * src/muscle_tab.c (muscle_init): Remove initialization of
11642 skeleton muscle.
11643 * src/output.c (output_master_parser): Do it here.
11644
11645 2001-11-20 Akim Demaille <akim@epita.fr>
11646
11647 * po/sv.po: New.
11648 * configure.in (ALL_LINGUAS): Adjust.
11649 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
11650 longer contains strings to translate.
11651
11652 2001-11-19 Akim Demaille <akim@epita.fr>
11653
11654 * src/conflicts.c (conflicts_print): Add a missing \n.
11655
11656 2001-11-19 Akim Demaille <akim@epita.fr>
11657
11658 * src/nullable.c (nullable_print): New.
11659 (set_nullable): Call it when tracing.
11660 Better locality of variables.
11661
11662 2001-11-19 Akim Demaille <akim@epita.fr>
11663
11664 * src/print.c (print_actions): Better locality of variables.
11665
11666 2001-11-19 Akim Demaille <akim@epita.fr>
11667
11668 * src/derives.c (print_derives): Fix and enrich.
11669 * src/closure.c (print_fderives): Likewise.
11670
11671 2001-11-19 Akim Demaille <akim@epita.fr>
11672
11673 * src/closure.c (itemsetend): Remove, replaced with...
11674 (itemsetsize): new.
11675
11676 2001-11-19 Akim Demaille <akim@epita.fr>
11677
11678 * src/LR0.c (kernel_end): Remove, replaced with...
11679 (kernel_size): new.
11680
11681 2001-11-19 Akim Demaille <akim@epita.fr>
11682
11683 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
11684 to clarify.
11685
11686 2001-11-19 Akim Demaille <akim@epita.fr>
11687
11688 * src/closure.c (closure): Use arrays instead of pointers to clarify.
11689
11690 2001-11-19 Akim Demaille <akim@epita.fr>
11691
11692 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
11693 trace messages.
11694 * src/LR0.c: Likewise.
11695 (allocate_itemsets): Use arrays instead of pointers to clarify.
11696
11697 2001-11-19 Akim Demaille <akim@epita.fr>
11698
11699 * src/getargs.c (statistics_flag): Replace with...
11700 (trace_flag): New.
11701 (longopts): Accept --trace instead of --statistics.
11702 * src/getargs.h, src/options.c: Adjust.
11703 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
11704 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
11705
11706 2001-11-19 Akim Demaille <akim@epita.fr>
11707
11708 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
11709 pointers to clarify the code.
11710 (save_reductions, save_shifts): Factor common parts of alternatives.
11711
11712 2001-11-19 Akim Demaille <akim@epita.fr>
11713
11714 * src/LR0.c (new_state, get_state): Complete TRACE code.
11715 * src/closure.c: Include `reader.h' to get `tags', needed by the
11716 trace code.
11717 Rename the conditional DEBUG as TRACE.
11718 Output consistently TRACEs to stderr, not stdout.
11719 * src/derives.c: Likewise.
11720 * src/reduce.c: (inaccessable_symbols): Using if is better style
11721 than goto.
11722 Use `#if TRACE' instead of `#if 0' for tracing code.
11723
11724 2001-11-19 Akim Demaille <akim@epita.fr>
11725
11726 * src/system.h (LIST_FREE, shortcpy): New.
11727 * src/LR0.c: Use them.
11728 * src/output.c (free_itemsets, free_reductions, free_shifts):
11729 Remove, replaced by LIST_FREE.
11730
11731 2001-11-19 Akim Demaille <akim@epita.fr>
11732
11733 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
11734 (REDUCTIONS_ALLOC): New.
11735 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
11736 allocation.
11737
11738 2001-11-19 Akim Demaille <akim@epita.fr>
11739
11740 * src/LR0.c (new_state): Complete trace code.
11741 * src/nullable.c (set_nullable): Don't translate traces.
11742
11743 2001-11-19 Akim Demaille <akim@epita.fr>
11744
11745 * src/print_graph.c (print_core): Better locality of variables.
11746 * src/print.c (print_core): Likewise.
11747
11748 2001-11-19 Akim Demaille <akim@epita.fr>
11749
11750 * src/vcg.c: You do the output, so you are responsible of the
11751 handling of VCG syntax, in particular: use quotearg.
11752 * src/print_graph.c: Don't.
11753 (print_actions): Don't output the actions as part of the nodes,
11754 since that's the job of the edges.
11755 (print_state): Don't output by hand: fill the node description,
11756 and ask for its output.
11757
11758 2001-11-19 Akim Demaille <akim@epita.fr>
11759
11760 * src/bison.simple (yyparse): When verbosely reporting an error,
11761 no longer put additional quotes around token names.
11762 * tests/calc.at: Adjust.
11763
11764 2001-11-19 Akim Demaille <akim@epita.fr>
11765
11766 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
11767 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
11768 * src/output.c: Adjust.
11769
11770 2001-11-19 Akim Demaille <akim@epita.fr>
11771
11772 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
11773 (rule_t): this.
11774 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
11775
11776 2001-11-19 Akim Demaille <akim@epita.fr>
11777
11778 * src/gram.h (rule_t): New.
11779 (rule_table): New.
11780 (rrhs, rlhs): Remove, part of state_t.
11781 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
11782 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
11783 * src/reader.c, src/reduce.c: Adjust.
11784
11785 2001-11-19 Akim Demaille <akim@epita.fr>
11786
11787 * src/reader.c (symbols_output): New, extracted from...
11788 (packsymbols): Here.
11789 (reader): Call it.
11790
11791 2001-11-19 Akim Demaille <akim@epita.fr>
11792
11793 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
11794 (maxrhs): this new function.
11795
11796 2001-11-19 Akim Demaille <akim@epita.fr>
11797
11798 * src/lalr.c (F): New macro to access the variable F.
11799 Adjust.
11800
11801 2001-11-19 Akim Demaille <akim@epita.fr>
11802
11803 * src/lalr.h (LA): New macro to access the variable LA.
11804 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11805 * src/lalr.c: Adjust.
11806
11807 2001-11-19 Akim Demaille <akim@epita.fr>
11808
11809 * src/lalr.c (initialize_LA): Only initialize LA. Let...
11810 (set_state_table): handle the `lookaheads' members.
11811
11812 2001-11-19 Akim Demaille <akim@epita.fr>
11813
11814 * src/lalr.h (lookaheads): Removed array, whose contents is now
11815 a member of...
11816 (state_t): this structure.
11817 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11818 Adjust.
11819
11820 2001-11-19 Akim Demaille <akim@epita.fr>
11821
11822 * src/lalr.h (consistent): Removed array, whose contents is now
11823 a member of...
11824 (state_t): this structure.
11825 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11826 Adjust.
11827
11828 2001-11-19 Akim Demaille <akim@epita.fr>
11829
11830 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
11831 contents are now members of...
11832 (state_t): this structure.
11833 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11834 Adjust.
11835
11836 2001-11-19 Akim Demaille <akim@epita.fr>
11837
11838 * src/lalr.h (state_t): New.
11839 (state_table): Be a state_t * instead of a core **.
11840 (accessing_symbol): Remove, part of state_t.
11841 * src/lalr.c: Adjust.
11842 (set_accessing_symbol): Merge into...
11843 (set_state_table): this.
11844 * src/print_graph.c, src/conflicts.c: Adjust.
11845
11846 2001-11-14 Akim Demaille <akim@epita.fr>
11847
11848 * tests/calc.at, tests/output.at, tests/regression.at,
11849 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
11850 now the tests are run in private dirs, therefore AC_CLEANUP and
11851 family can be simplified to 0-ary.
11852 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
11853 use abs. path to find config.h.
11854 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
11855 stderr, there can be way too much random noise.
11856 Instead pass -Werror to GCC and rely on the exit status.
11857 Reported by Wolfram Wagner.
11858
11859 2001-11-14 Akim Demaille <akim@epita.fr>
11860
11861 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
11862 defined only if yyoverflow is defined, to avoid `warning: unused
11863 variable `yyvs1''.
11864 Reported by The Test Suite.
11865
11866 2001-11-14 Akim Demaille <akim@epita.fr>
11867
11868 * src/print.c: Include reduce.h.
11869 Reported by Hans Aberg.
11870
11871 2001-11-14 Akim Demaille <akim@epita.fr>
11872
11873 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
11874 Revert a previous patch: these are really const.
11875 * src/conflicts.c (conflict_report): Additional useless pair of
11876 braces to pacify GCC's warnings for `if () if () {} else {}'.
11877 * src/lex.c (parse_percent_token): Replace equal_offset with
11878 arg_offset.
11879 arg is const.
11880 Be sure to strdup `arg' when used, since there is no reason for
11881 token_buffer not to change.
11882
11883 2001-11-14 Akim Demaille <akim@epita.fr>
11884
11885 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
11886 definition.
11887 * src/main.c (main): Use them.
11888 Suggested by Hans Aberg.
11889
11890 2001-11-12 Akim Demaille <akim@epita.fr>
11891
11892 * src/system.h (ngettext): Now that we use ngettext, be sure to
11893 provide a default definition when NLS are not used.
11894
11895 2001-11-12 Akim Demaille <akim@epita.fr>
11896
11897 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
11898 Use @kbd to denote user input.
11899 (Language and Grammar): ANSIfy the example.
11900 Adjust its layout for info/notinfo.
11901 (Location Tracking Calc): Output error messages to stderr.
11902 Output locations in a more GNUtically correct way.
11903 Fix a couple of Englishos.
11904 Adjust @group/@end group pairs.
11905
11906 2001-11-12 Akim Demaille <akim@epita.fr>
11907
11908 %expect was not functioning at all.
11909
11910 * src/conflicts.c (expected_conflicts): Set to -1.
11911 (conflict_report): Use ngettext.
11912 (conflicts_print): Check %expect and make its violation an error.
11913 * doc/bison.texinfo (Expect Decl): Adjust.
11914 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
11915 * tests/regression.at (%expect not enough, %expect right)
11916 (%expect too much): New.
11917
11918 2001-11-12 Akim Demaille <akim@epita.fr>
11919
11920 * tests/regression.at (Conflicts): Rename as...
11921 (Unresolved SR Conflicts): this.
11922 (Solved SR Conflicts): New.
11923
11924 2001-11-12 Akim Demaille <akim@epita.fr>
11925
11926 * src/reduce.c (print_results): Rename as...
11927 (reduce_output): This.
11928 Output to OUT, passed as argument, instead of output_obstack.
11929 (dump_grammar): Likewise.
11930 (reduce_free): New.
11931 Also free V1.
11932 (reduce_grammar): No longer call reduce_output, since...
11933 * src/print.c (print_results): do it.
11934 * src/main.c (main): Call reduce_free;
11935
11936 2001-11-12 Akim Demaille <akim@epita.fr>
11937
11938 * src/conflicts.c (print_reductions): Accept OUT as argument.
11939 Output to it, not to output_obstack.
11940 * src/print.c (print_actions): Adjust.
11941
11942 2001-11-12 Akim Demaille <akim@epita.fr>
11943
11944 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
11945 the result instead of using...
11946 (src_total, rrc_total, src_count, rrc_count): Remove.
11947 (any_conflicts): Remove.
11948 (print_conflicts): Split into...
11949 (conflicts_print, conflicts_output): New.
11950 * src/conflicts.h: Adjust.
11951 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
11952 * src/print.c (print_grammar): Issue `\n' between two rules.
11953 * tests/regression.at (Conflicts): New.
11954 Reported by Tom Lane.
11955
11956 2001-11-12 Akim Demaille <akim@epita.fr>
11957
11958 * tests/regression.at (Invalid input): Remove, duplicate with
11959 ``Invalid input: 1''.
11960
11961 2001-11-12 Akim Demaille <akim@epita.fr>
11962
11963 * tests/torture.at (AT_DATA_STACK_TORTURE)
11964 (Exploding the Stack Size with Alloca)
11965 (Exploding the Stack Size with Malloc): New.
11966
11967 2001-11-12 Akim Demaille <akim@epita.fr>
11968
11969 * src/bison.simple (YYSTACK_REALLOC): New.
11970 (yyparse) [!yyoverflow]: Use it and free the old stack.
11971 Reported by Per Allansson.
11972
11973 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
11974
11975 * src/bison.simple: Define type yystype instead of YYSTYPE, and
11976 define CPP macro, which substitute YYSTYPE by yystype.
11977 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
11978 with yyltype/YYLTYPE. This allows inclusion of the generated
11979 header within the parser if the compiler, such as GGC, accepts
11980 multiple equivalent #defines.
11981 From Akim.
11982
11983 2001-11-05 Akim Demaille <akim@epita.fr>
11984
11985 * src/reader.c (symbols_output): New, extracted from...
11986 (packsymbols): here.
11987 (reader): Adjust.
11988
11989 2001-11-05 Akim Demaille <akim@epita.fr>
11990
11991 * src/lex.c (parse_percent_token): s/quotearg/quote/.
11992
11993 2001-11-05 Akim Demaille <akim@epita.fr>
11994
11995 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
11996 pattern.
11997
11998 2001-11-05 Akim Demaille <akim@epita.fr>
11999
12000 * src/options.h (struct option_table_struct): set_flags is void*.
12001 * src/options.c (longopts): Support `--output' and `%output'.
12002 (usage): Adjust.
12003 * src/lex.h (tok_setopt): Remove, replaced with...
12004 (tok_intopt, tok_stropt): these new guys.
12005 * src/lex.c (getopt.h): Not needed.
12006 (token_buffer, unlexed_token_buffer): Not const.
12007 (percent_table): Promote `-' over `_' in directive names.
12008 Active `%name-prefix', `file-prefix', and `output'.
12009 (parse_percent_token): Accept possible arguments to directives.
12010 Promote `-' over `_' in directive names.
12011
12012 2001-11-04 Akim Demaille <akim@epita.fr>
12013
12014 * doc/bison.texinfo (Decl Summary): Split the list into
12015 `directives for grammars' and `directives for bison'.
12016 Sort'em.
12017 Add description of `%name-prefix', `file-prefix', and `output'.
12018 Promote `-' over `_' in directive names.
12019 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
12020 Simplify the description of `--name-prefix'.
12021 Promote `-' over `_' in directive names.
12022 Promote `--output' over `--output-file'.
12023 Fix the description of `--defines'.
12024 * tests/output.at: Exercise %file-prefix and %output.
12025
12026 2001-11-02 Akim Demaille <akim@epita.fr>
12027
12028 * doc/refcard.tex: Update.
12029
12030 2001-11-02 Akim Demaille <akim@epita.fr>
12031
12032 * src/symtab.h (SUNDEF): New.
12033 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
12034 stand for `uninitialized', instead of 0.
12035 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
12036 * src/lex.c (lex): Adjust.
12037
12038 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
12039 Number it 0.
12040 Let yylex return it instead of a plain 0.
12041 Reported by Dick Streefland.
12042
12043 2001-11-02 Akim Demaille <akim@epita.fr>
12044
12045 * tests/regression.at (Mixing %token styles): New test.
12046
12047 2001-11-02 Akim Demaille <akim@epita.fr>
12048
12049 * src/reader.c (parse_thong_decl): Formatting changes.
12050 (token_translations_init): New, extracted from...
12051 (packsymbols): Here.
12052 Adjust.
12053
12054 2001-11-01 Akim Demaille <akim@epita.fr>
12055
12056 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
12057 Check that `9foo.y' produces correct cpp guards.
12058 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
12059 guards.
12060 Reported by Wwp.
12061
12062 2001-11-01 Akim Demaille <akim@epita.fr>
12063
12064 * tests/regression.at (Invalid input: 2): New.
12065 * src/lex.c (unlexed_token_buffer): New.
12066 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
12067 too.
12068 Reported by Wwp.
12069
12070 2001-11-01 Akim Demaille <akim@epita.fr>
12071
12072 * tests/calc.at: Catch up with 1.30.
12073 * configure.in: Bump to 1.49a.
12074 Adjust to newer Autotest.
12075
12076 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
12077
12078 * src/conflicts.c: Move global variables rrc_total and src_total ...
12079 (print_conflicts): here.
12080 * src/output.c (output): Free global variable user_toknums.
12081 * src/lex.c (token_obstack): Become static.
12082
12083 2001-10-18 Akim Demaille <akim@epita.fr>
12084
12085 * tests/atlocal.in (GCC): Add.
12086 * tests/calc.at: s/m4_match/m4_bmatch/.
12087 s/m4_patsubst/m4_bpatsubst/.
12088 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
12089 * configure.in: AC_SUBST(GCC).
12090
12091 2001-10-14 Marc Autret <autret_m@epita.fr>
12092
12093 * src/options.c (create_long_option_table): Fix.
12094
12095 2001-10-10 Akim Demaille <akim@epita.fr>
12096
12097 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
12098
12099 2001-10-04 Akim Demaille <akim@epita.fr>
12100
12101 * src/reader.c (parse_union_decl): Push the caracters in
12102 union_obstack, not attrs_obstack.
12103
12104 2001-10-04 Akim Demaille <akim@epita.fr>
12105
12106 Merge in the branch 1.29.
12107
12108 * src/reader.c (packsymbols): Use a temporary obstack for
12109 `%%tokendef', since output_stack is already used elsewhere.
12110
12111 2001-10-02 Akim Demaille <akim@epita.fr>
12112
12113 Bump 1.29d.
12114
12115 2001-10-02 Akim Demaille <akim@epita.fr>
12116
12117 Version 1.29c.
12118
12119 2001-10-02 Akim Demaille <akim@epita.fr>
12120
12121 * tests/regression.at (Invalid CPP headers): New.
12122 From Alexander Belopolsky.
12123 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
12124
12125 2001-10-02 Akim Demaille <akim@epita.fr>
12126
12127 * tests/regression.at (Invalid input): New.
12128 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
12129 Reported by Shura.
12130
12131 2001-10-02 Akim Demaille <akim@epita.fr>
12132
12133 * tests/calc.at: Now that --debug works, the tests must be adjusted.
12134
12135 2001-10-02 Akim Demaille <akim@epita.fr>
12136
12137 * src/output.c (output_parser): Assert `skeleton'.
12138 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
12139 systems.
12140 From Shura.
12141
12142 2001-10-01 Marc Autret <autret_m@epita.fr>
12143
12144 * src/lex.h: Echo modifications.
12145 * src/lex.c (unlex): Parameter is now token_t.
12146 From Hans Aberg.
12147
12148 2001-10-01 Marc Autret <autret_m@epita.fr>
12149
12150 * src/main.c: Include lex.h.
12151 From Hans Aberg.
12152
12153 2001-09-29 Akim Demaille <akim@epita.fr>
12154
12155 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
12156
12157 2001-09-28 Akim Demaille <akim@epita.fr>
12158
12159 * tests/testsuite.at: Update to newer Autotest.
12160 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
12161
12162 2001-09-27 Akim Demaille <akim@epita.fr>
12163
12164 Position independent wrapper.
12165
12166 * tests/bison: Remove.
12167 * tests/bison.in: New.
12168 * configure.in: Adjust.
12169
12170 2001-09-27 Paul Eggert <eggert@twinsun.com>
12171
12172 Port quotearg fixes from tar 1.13.24.
12173
12174 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
12175 tm to be declared.
12176 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
12177 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
12178
12179 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
12180 * m4/mbrtowc.m4: New file.
12181 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
12182 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
12183
12184 2001-09-27 Akim Demaille <akim@epita.fr>
12185
12186 Bump to 1.29c.
12187
12188 2001-09-27 Akim Demaille <akim@epita.fr>
12189
12190 Version 1.29b.
12191
12192 2001-09-25 Akim Demaille <akim@epita.fr>
12193
12194 * src/system.h: Include `xalloc.h'.
12195 Remove it from the C files.
12196 * src/files.c (output_files): Free the obstacks.
12197 * src/lex.c (init_lex): Rename as...
12198 (lex_init): this.
12199 (lex_free): New.
12200 * src/main.c (main): Use it.
12201
12202 2001-09-24 Marc Autret <autret_m@epita.fr>
12203
12204 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
12205 to output informations in fout (FILE*).
12206 (open_graph, close_graph): Likewise.
12207 (output_graph, output_edge, output_node): Likewise.
12208 * src/vcg.h: Update function prototypes.
12209 * src/print_graph.c (print_graph): Open output graph file.
12210 (print_actions): Adjust.
12211 * src/files.h: Remove extern declaration.
12212 * src/files.c: Remove graph_obstack declaration.
12213 (open_files): Remove graph_obstack initialization.
12214 (output_files): Remove graph_obstack saving.
12215
12216 2001-09-24 Marc Autret <autret_m@epita.fr>
12217
12218 * src/files.c (compute_output_file_names): Fix.
12219
12220 2001-09-24 Marc Autret <autret_m@epita.fr>,
12221 Akim Demaille <akim@epita.fr>
12222
12223 * src/reader.c (reader): Remove call to free_symtab ().
12224 * src/main.c (main): Call it here.
12225 Include symtab.h.
12226 * src/conflicts.c (initialize_conflicts): Rename as...
12227 (solve_conflicts): this.
12228 * src/print.c (print_core, print_actions, print_state)
12229 (print_grammar): Dump to a file instead a `output_obstack'.
12230 (print_results): Dump `output_obstack', and then proceed with the
12231 FILE *.
12232 * src/files.c (compute_output_file_names, close_files): New.
12233 (output_files): Adjust.
12234 * src/main.c (main): Adjust.
12235
12236 2001-09-23 Marc Autret <autret_m@epita.fr>
12237
12238 * src/files.c (compute_header_macro): Computes header macro name
12239 from spec_defines_file when given.
12240
12241 2001-09-23 Marc Autret <autret_m@epita.fr>
12242
12243 * src/files.c (output_files): Add default extensions.
12244
12245 2001-09-22 Akim Demaille <akim@epita.fr>
12246
12247 * src/conflicts.c (finalize_conflicts): Rename as...
12248 (free_conflicts): this.
12249
12250 2001-09-22 Akim Demaille <akim@epita.fr>
12251
12252 * src/gram.c (gram_free): Rename back as...
12253 (dummy): this.
12254 (output_token_translations): Free `token_translations'.
12255 * src/symtab.c (free_symtab): Free the tag field.
12256
12257 2001-09-22 Akim Demaille <akim@epita.fr>
12258
12259 Remove `translations' as it is always set to true.
12260
12261 * src/gram.h: Adjust.
12262 * src/reader.c (packsymbols, parse_token_decl): Adjust
12263 * src/print.c (print_grammar): Adjust.
12264 * src/output.c (output_token_translations): Adjust.
12265 * src/lex.c (lex): Adjust.
12266 * src/gram.c: Be sure the set pointers to NULL.
12267 (dummy): Rename as...
12268 (gram_free): this.
12269
12270 2001-09-22 Akim Demaille <akim@epita.fr>
12271
12272 * configure.in: Invoke AM_LIB_DMALLOC.
12273 * src/system.h: Use dmalloc.
12274 * src/LR0.c: Be sure to have pointers initialized to NULL.
12275 (allocate_itemsets): Allocate kernel_items only if needed.
12276
12277 2001-09-22 Akim Demaille <akim@epita.fr>
12278
12279 * configure.in: Bump to 1.29b.
12280 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
12281 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
12282 need xmalloc.c in calc.y.
12283 From Pascal Bart.
12284
12285 2001-09-21 Akim Demaille <akim@epita.fr>
12286
12287 Version 1.29a.
12288 * Makefile.maint, config/config.guess, config/config.sub,
12289 * config/missing: Update from masters.
12290 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
12291 upon package.m4.
12292 * configure.in (ALL_LINGUAS): Add `tr'.
12293
12294 2001-09-21 Akim Demaille <akim@epita.fr>
12295
12296 * tests/Makefile.am (package.m4): Move to...
12297 ($(srcdir)/$(TESTSUITE)): here.
12298
12299 2001-09-20 Akim Demaille <akim@epita.fr>
12300
12301 * src/complain.c: No longer try to be standalone: use system.h.
12302 Don't assume __STDC__ is defined to 1. Just test if it is defined.
12303 * src/complain.h: Likewise.
12304 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
12305 Remove the unused variable `n'.
12306 From Albert Chin-A-Young.
12307
12308 2001-09-18 Marc Autret <autret_m@epita.fr>
12309
12310 * doc/bison.1: Update.
12311 * doc/bison.texinfo (Bison Options): Update --defines and --graph
12312 descriptions.
12313 (Option Cross Key): Update.
12314 Add --graph.
12315
12316 2001-09-18 Marc Autret <autret_m@epita.fr>
12317
12318 * tests/regression.at: New test (comment in %union).
12319
12320 2001-09-18 Marc Autret <autret_m@epita.fr>
12321
12322 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
12323 do that.
12324 Reported by Keith Browne.
12325
12326 2001-09-18 Marc Autret <autret_m@epita.fr>
12327
12328 * tests/output.at: Add tests for --defines and --graph.
12329
12330 2001-09-18 Marc Autret <autret_m@epita.fr>
12331
12332 * tests/output.at: Removes tests of %{header,src}_extension features.
12333
12334 2001-09-18 Akim Demaille <akim@epita.fr>
12335
12336 * tests/Makefile.am (package.m4): New.
12337 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
12338 (_AT_CHECK_CALC_ERROR): Likewise.
12339 Factor the `, ' part of verbose error messages.
12340
12341 2001-09-18 Marc Autret <autret_m@epita.fr>
12342
12343 * src/getargs.c (longopts): Declare --defines and --graph as options
12344 with optional arguments.
12345 * src/files.h: Add extern declarations.
12346 * src/files.c (spec_graph_file, spec_defines_file): New.
12347 (output_files): Update.
12348 Remove CPP-outed code.
12349
12350 2001-09-18 Marc Autret <autret_m@epita.fr>
12351
12352 Turn off %{source,header}_extension feature.
12353
12354 * src/files.c (compute_exts_from_gf): Update.
12355 (compute_exts_from_src): Update.
12356 (output_files): CPP-out useless code.
12357 * src/files.h: Remove {header,source}_extension extern declarations.
12358 * src/reader.c (parse_dquoted_param): CPP-out.
12359 (parse_header_extension_decl): Remove.
12360 (parse_source_extension_decl): Remove.
12361 (read_declarations): Remove cases tok_{hdrext,srcext}.
12362 * src/lex.c (percent_table): Remove {header,source}_extension entries.
12363 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
12364
12365 2001-09-10 Akim Demaille <akim@epita.fr>
12366
12367 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
12368 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
12369 (AT_CHECK_OUTPUT): this.
12370 Merely check ls' exit status, its output is useless.
12371
12372 2001-09-10 Akim Demaille <akim@epita.fr>
12373
12374 * tests/calc.at: Use m4_match.
12375 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
12376
12377 2001-09-10 Marc Autret <autret_m@epita.fr>,
12378 Akim Demaille <akim@epita.fr>
12379
12380 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
12381 enum color_e.
12382 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
12383 to `normal'.
12384 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
12385 * src/lex.h: Adjust prototype.
12386 (token_t): Add `tok_undef'.
12387 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
12388 (parse_percent_token): Now returns token_t.
12389 Add default statement in switch.
12390 (lex): Separate `c' as an input variable, from the token_t result
12391 part.
12392 (unlexed): Is a token_t.
12393
12394 2001-09-10 Akim Demaille <akim@epita.fr>
12395
12396 * configure.in: Bump to 1.29a.
12397
12398 2001-09-07 Akim Demaille <akim@epita.fr>
12399
12400 Version 1.29.
12401
12402 2001-08-30 Akim Demaille <akim@epita.fr>
12403
12404 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
12405 * m4/atconfig.m4: Remove.
12406 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
12407 * tests/bison: New.
12408 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
12409 m4_if, m4_patsubst, and m4_regexp.
12410 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
12411 `input' file instead of echo.
12412
12413 2001-08-29 Akim Demaille <akim@epita.fr>
12414
12415 Bump to 1.28e.
12416
12417 2001-08-29 Akim Demaille <akim@epita.fr>
12418
12419 Version 1.28d.
12420
12421 2001-08-29 Paul Eggert <eggert@twinsun.com>
12422
12423 * src/bison.simple (yyparse): Don't take the address of an
12424 item before the start of an array, as that doesn't conform to
12425 the C Standard.
12426
12427 2001-08-29 Robert Anisko <anisko_r@epita.fr>
12428
12429 * doc/bison.texinfo (Location Tracking Calc): New node.
12430
12431 2001-08-29 Paul Eggert <eggert@twinsun.com>
12432
12433 * src/output.c (output): Do not define const, as this now
12434 causes more problems than it cures.
12435
12436 2001-08-29 Akim Demaille <akim@epita.fr>
12437
12438 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
12439 the nodes.
12440 Be sure to tag the `detailmenu'.
12441
12442 2001-08-29 Akim Demaille <akim@epita.fr>
12443
12444 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
12445 download in a tmp dir.
12446
12447 2001-08-28 Marc Autret <autret_m@epita.fr>
12448
12449 * config/depcomp: New file.
12450
12451 2001-08-28 Marc Autret <autret_m@epita.fr>
12452
12453 * doc/bison.1 (mandoc): Adjust.
12454 From Juan Manuel Guerrero.
12455
12456 2001-08-28 Marc Autret <autret_m@epita.fr>
12457
12458 * src/print_graph.c (print_state): Fix.
12459
12460 2001-08-27 Marc Autret <autret_m@epita.fr>
12461
12462 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
12463 char * members.
12464 Echo modifications to the functions prototypes.
12465 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
12466
12467 2001-08-27 Marc Autret <autret_m@epita.fr>
12468
12469 * src/vcg.c: Include `xalloc.h'.
12470 (add_colorentry): New.
12471 (add_classname): New.
12472 (add_infoname): New.
12473 * src/vcg.h: Add new prototypes.
12474
12475 2001-08-27 Akim Demaille <akim@epita.fr>
12476
12477 * Makefile.maint: Sync. again with CVS Autoconf.
12478
12479 2001-08-27 Akim Demaille <akim@epita.fr>
12480
12481 * Makefile.maint: Formatting changes.
12482 (po-update, cvs-update, update): New targets.
12483 (AMTAR): Remove.
12484
12485 2001-08-27 Akim Demaille <akim@epita.fr>
12486
12487 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
12488 * Makefile.maint: Sync. with CVS Autoconf.
12489
12490 2001-08-27 Marc Autret <autret_m@epita.fr>
12491
12492 * src/vcg.h (struct infoname_s): New.
12493 (struct colorentry_s): New.
12494 (graph_s): New fields {vertical,horizontal}_order in structure.
12495 Add `infoname' field.
12496 Add `colorentry' field;
12497 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
12498 (G_HORIZONTAL_ORDER): New.
12499 (G_INFONAME): New.
12500 (G_COLORENTRY): New.
12501 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
12502 Add output of `infoname'.
12503 Add output of `colorentry'.
12504
12505 2001-08-27 Marc Autret <autret_m@epita.fr>
12506
12507 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
12508 This one shadowed a global parameter.
12509
12510 2001-08-24 Marc Autret <autret_m@epita.fr>
12511
12512 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
12513 instead of `unsigned'.
12514 (print_state): Do not call obstack_object_size () in obstack_grow ()
12515 to avoid macro variables shadowing.
12516
12517 2001-08-23 Marc Autret <autret_m@epita.fr>
12518
12519 * src/lex.c (percent_table): Typo: s/naem/name/.
12520 Add graph option.
12521 Normalize new options declarations.
12522
12523 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
12524
12525 * tests/suite.at: Exercise %header_extension and %source_extension.
12526
12527 2001-08-16 Marc Autret <autret_m@epita.fr>
12528
12529 * src/reader.c (parse_dquoted_param): New.
12530 (parse_header_extension_decl): Use it.
12531 (parse_source_extension_decl): Likewise.
12532
12533 2001-08-16 Marc Autret <autret_m@epita.fr>
12534
12535 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
12536 (get_xxxx_str): Use assert () instead of complain ().
12537 Remove return invokations in default cases.
12538 (get_decision_str): Modify default behaviour. Remove second argument.
12539 Echo modifications on calls.
12540 (output_graph): Fix.
12541
12542 2001-08-16 Marc Autret <autret_m@epita.fr>
12543
12544 * src/getargs.c (usage): Update with ``-g, --graph''.
12545
12546 2001-08-16 Marc Autret <autret_m@epita.fr>
12547
12548 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
12549 (Option Cross Key): Likewise.
12550 * doc/bison.1: Update.
12551
12552 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
12553
12554 * src/output.c (output_master_parser): Don't finish action_obstack.
12555 (output_parser): Don't care about the muscle action, here.
12556 (prepare): Copy the action_obstack in the action muscle.
12557 (output): Free action_obstack.
12558
12559 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
12560
12561 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
12562 will contain `%union' declaration.
12563 (parse_union_decl): Delete #line directive output.
12564 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
12565 informations about %union.
12566 (parse_union_decl): Copy the union_obstack in the muscle stype.
12567 * src/bison.simple: Add new #line directive.
12568 Add typdef %%stype YYSTYPE.
12569
12570 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
12571
12572 * src/bison.simple: Add new `#line' directive.
12573
12574 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
12575
12576 * src/bison.simple: New `#line' directive.
12577 * src/output.c (output_parser): Support new dynamic muscle input_line.
12578
12579 2001-09-22 Marc Autret <autret_m@epita.fr>
12580
12581 * src/output.c (output_master_parser): New.
12582 (output_parser): Be more re-entrant.
12583
12584 2001-09-21 Marc Autret <autret_m@epita.fr>
12585
12586 * src/reader.c (copy_definition, parse_union_decl): Update and use
12587 `linef' muscle.
12588 (copy_action): Likewise.
12589 Use obstack_1grow ().
12590 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
12591
12592 2001-09-21 Marc Autret <autret_m@epita.fr>
12593
12594 * src/options.c (option_table): Adjust.
12595 * src/lex.c (parse_percent_token): Fix.
12596
12597 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
12598
12599 * src/options.c (symtab.h): Include it, need by lex.h.
12600
12601 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
12602
12603 * src/lex.c (parse_percent_token): Change type of variable `tx', which
12604 is now an option_table_struct*.
12605 (option_strcmp): New function option_strcmp.
12606 (parse_percent_token): Call option_strcmp.
12607 * src/getargs.c (xalloc.h, options.h): Include it.
12608 (getargs): Call create_long_option_table.
12609 (getargs): Free longopts at the end of the function.
12610 (shortopts): Move in options.c.
12611 * src/options.c (create_long_option_table): New function. Convert
12612 information from option_table to option structure.
12613 * src/reader.c (options.h): Include it.
12614
12615 * src/Makefile.am: Adjust.
12616 * src/options.c (option_table): Create from longopts and percent_table.
12617 * src/getargs.c (longopts): Delete.
12618 * src/lex.c (struct percent_table_struct): Delete.
12619 (percent_table): Delete.
12620 (options.h): Include it.
12621 * src/options.c: Create.
12622 * src/options.h: Create.
12623 Declare enum opt_access_e.
12624 Define struct option_table_struct.
12625
12626 2001-09-20 Marc Autret <autret_m@epita.fr>
12627
12628 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
12629 sections of Bison.
12630
12631 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
12632
12633 * src/bison.simple: s/%%filename/%%skeleton.
12634 * src/muscle_tab.c (getargs.h): Include it.
12635 (muscle_init): Insert new muscle skeleton.
12636
12637 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
12638
12639 * src/output.c (output_parser): Delete unused variable actions_dumped.
12640
12641 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
12642
12643 * src/output.c (output): Delete call to reader_output_yylsp.
12644 * src/reader.c (reader): Likewise.
12645 * src/reader.h: Delete declaration of reader_output_yylsp.
12646
12647 2001-09-02 Marc Autret <autret_m@epita.fr>
12648
12649 * src/reader.c: Include muscle_tab.h.
12650 (parse_union_decl): Update.
12651 (parse_macro_decl): Rename parse_muscle_decl.
12652 Update to use renamed functions and variable.
12653 (read_declarations, copy_action, read_additionnal_code, : Updated
12654 with correct variables and functions names.
12655 (packsymbols, reader): Likewise.
12656
12657 * src/reader.h (muscle_obstack): Extern declaration update.
12658
12659 * src/output.c: Include muscle_tab.h
12660 In all functions using macro_insert, change by using muscle_insert ().
12661 (macro_obstack): Rename muscle_obstack.
12662 Echo modifications in the whole file.
12663 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
12664 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
12665 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
12666
12667 * src/muscle_tab.h: Update double inclusion macros.
12668 (macro_entry_s): Rename muscle_entry_s.
12669 Update prototypes.
12670
12671 * src/muscle_tab.c: Include muscle_tab.h.
12672 Rename macro_tabble to muscle_table.
12673 (mhash1, mhash2, mcmp): Use muscle_entry.
12674 (macro_init): Rename muscle_init. Update.
12675 (macro_insert): Rename muscle_insert. Update.
12676 (macro_find): Rename muscle_find. Update.
12677
12678 * src/main.c: Include muscle_tab.h.
12679 (main): Call muscle_init ().
12680 * src/Makefile.am (bison_SOURCES): Echo modifications.
12681
12682 2001-09-02 Marc Autret <autret_m@epita.fr>
12683
12684 Now the files macro_tab.[ch] are named muscle_tab.[ch].
12685
12686 * src/muscle_tab.c, src/muscle_tab.h: Add files.
12687
12688 2001-09-02 Marc Autret <autret_m@epita.fr>
12689
12690 * src/macrotab.c, src/macrotab.h: Remove.
12691
12692 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
12693
12694 * src/reader.c (copy_guard): Use muscle to specify the `#line'
12695 filename.
12696
12697 2001-09-01 Marc Autret <autret_m@epita.fr>
12698
12699 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
12700 to an explicit value to activate the feature. We do it here.
12701
12702 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
12703
12704 * src/output.c (prepare): Delete the `filename' muscule insertion.
12705 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
12706 (parse_union_decl): Likewise.
12707 * src/macrotab.c (macro_init): Initialize filename by infile.
12708
12709 2001-08-31 Marc Autret <autret_m@epita.fr>
12710
12711 * src/bison.simple (YYLSP_NEEDED): New definition.
12712 * src/output.c (prepare): Add macro insertion of `locations_flag'
12713
12714 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
12715
12716 * src/output.c (prepare): Delete insertion of previous muscles,
12717 and insert the `prefix' muscles.
12718 * src/macrotab.c (macro_init): Likewise.
12719 (macro_init): Initialization prefix directive by `yy'.
12720 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
12721 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
12722 yylval, yydebug, yyerror, yynerrs and yyparse.
12723 New directive `#define' to substitute yydebug, ... with option
12724 name_prefix.
12725
12726 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
12727
12728 * src/main.c (main): Standardize.
12729 * src/output.c (output_table_data, output_parser): Likewise.
12730 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
12731
12732 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
12733
12734 * src/reader.c (read_additionnal_code): Rename %%user_code to
12735 %%epilogue.
12736 * src/output.c (output): Rename %%declarations to %%prologue.
12737 * src/bison.simple: Echo modifications.
12738
12739 2001-08-31 Marc Autret <autret_m@epita.fr>
12740
12741 * src/reader.c (readgram): CleanUp.
12742 (output_token_defines): Likewise.
12743 (packsymbols): Likewise.
12744 (reader): Likewise.
12745 * src/output.c (output): CPP-out useless code.
12746
12747 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
12748
12749 * src/reader.c (reader): Delete obsolete call to function
12750 output_trailers and output_headers.
12751 * src/output.h: Remove obsolete functions prototypes of output_headers
12752 and output_trailers.
12753
12754 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
12755
12756 * src/main.c: Include macrotab.h.
12757 * src/macrotab.h (macro_entry_s): Constify fields.
12758 Adjust functions prototypes.
12759 * src/macrotab.c (macro_insert): Constify key and value.
12760 (macro_find): Constify key.
12761 (macro_insert): Include 'xalloc.h'
12762 (macro_insert): Use XMALLOC.
12763 (macro_find): Constify return value.
12764 * src/output.c (output_table_data): Rename table to table_data.
12765 (output_parser): Constify macro_key, macro_value.
12766
12767 2001-08-30 Marc Autret <autret_m@epita.fr>
12768
12769 * src/reader.c (parse_skel_decl): New.
12770 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
12771 * src/lex.h (token_t): New token `tok_skel'.
12772 * src/lex.c (percent_table): Add skeleton option entry.
12773 Standardize.
12774
12775 2001-08-29 Marc Autret <autret_m@epita.fr>
12776
12777 * src/bison.simple: Add %%user_code directive at the end.
12778 * src/reader.c (read_additionnal_code): New.
12779 (reader): Use it.
12780 * src/output.c (output_program): Remove.
12781 (output): Update.
12782
12783 2001-08-28 Marc Autret <autret_m@epita.fr>
12784
12785 * src/output.c (output_actions): Clean up.
12786 (output_gram): CPP-out useless code.
12787 * src/reader.c (reader): Clean up, CPP-out useless code.
12788
12789 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
12790
12791 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
12792 directive.
12793 * src/bison.simple: Add `%%definitions'.
12794
12795 2001-08-28 Marc Autret <autret_m@epita.fr>
12796
12797 * config/depcomp: New file.
12798
12799 2001-08-27 Paul Eggert <eggert@twinsun.com>
12800
12801 * src/bison.simple (yyparse): Don't take the address of an
12802 item before the start of an array, as that doesn't conform to
12803 the C Standard.
12804
12805 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
12806
12807 * src/output.c (output): Remove the initialization of the macro
12808 obstack. It was done too late here.
12809
12810 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
12811 completely wrong.
12812 (reader): Initialize the macro obstack here, since we need it to grow
12813 '%define' directives.
12814
12815 * src/reader.h: Declare the macro obstack as extern.
12816
12817 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
12818
12819 * src/output.c (output_parser): Fix. Store single '%' characters in
12820 the output obstack instead of throwing them away.
12821
12822 2001-08-27 Akim Demaille <akim@epita.fr>
12823
12824 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
12825
12826 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12827
12828 * lib/Makefile.am: Adjust.
12829
12830 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12831
12832 * src/bison.simple: Update and add '%%' directives.
12833
12834 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12835
12836 * src/reader.c (reader): Remove calls to 'output_headers' and
12837 'output_trailers'. Remove some C output.
12838 (readgram): Disable a piece of code that was writing a default
12839 definition for 'YYSTYPE'.
12840 (reader_output_yylsp): Remove.
12841 (packsymbols): Output token defintions to a macro.
12842 (copy_definition): Disable C output.
12843
12844 * src/reader.c (parse_macro_decl): New function used to parse macro
12845 declarations.
12846 (copy_string2): Put the body of copy_string into this new function.
12847 Add a parameter to let the caller choose whether he wants to copy the
12848 string delimiters or not.
12849 (copy_string): Be a simple call to copy_string2 with the last argument
12850 bound to true.
12851 (read_declarations): Add case for macro definition.
12852 (copy_identifier): New.
12853 (parse_macro_decl): Read macro identifiers using copy_identifier
12854 rather than lex.
12855
12856 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12857
12858 * src/output.c (prepare): Add prefixed names.
12859 (output_parser): Output semantic actions.
12860 (output_parser): Fix bug on '%%line' directives.
12861
12862 * src/output.c (output_headers): Remove. The C code printed by this
12863 function should now be in the skeletons.
12864 (output_trailers): Remove.
12865 (output): Disable call to 'reader_output_yylsp'.
12866 (output_rule_data): Do not output tables to the table obstack.
12867
12868 * src/output.c: Remove some C dedicated output.
12869 Improve the use of macro and output obstacks.
12870 (output_defines): Remove.
12871
12872 * src/output.c (output_token_translations): Associate 'translate'
12873 table with a macro. No output to the table obstack.
12874 (output_gram): Same for 'rhs' and 'prhs'.
12875 (output_stos): Same for 'stos'.
12876 (output_rule_data): Same for 'r1' and 'r2'.
12877 (token_actions): Same for 'defact'.
12878 (goto_actions): Same for 'defgoto'.
12879 (output_base): Same for 'pact' and 'pgoto'.
12880 (output_table): Same for 'table'.
12881 (output_check): Same for 'check'.
12882
12883 * src/output.c (output_table_data): New function.
12884 (output_short_table): Remove.
12885 (output_short_or_char_table): Remove.
12886
12887 * src/output.c (output_parser): Replace most of the skeleton copy code
12888 with something new. Skeletons are now processed character by character
12889 rather than line by line, and Bison looks for '%%' macros. This is the
12890 first step in making Bison's output process (a lot) more flexible.
12891 (output_parser): Use the macro table.
12892
12893 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12894
12895 * src/main.c (main): Initialize the macro table.
12896
12897 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12898
12899 * src/lex.c (percent_table): Add tok_define.
12900 * src/lex.h: Add tok_define.
12901
12902 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12903
12904 * src/macrotab.c: New file.
12905 * src/macrotab.h: New file.
12906 * src/Makefile.am: Update.
12907
12908 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
12909
12910 * lib/hash.c: New file.
12911 * lib/hash.h: New file.
12912 * lib/Makefile.am: Update.
12913
12914 2001-08-15 Akim Demaille <akim@epita.fr>
12915
12916 Version 1.28c.
12917
12918 2001-08-15 Marc Autret <autret_m@epita.fr>
12919
12920 * src/reader.c (readgram): Indent output macro YYSTYPE.
12921 (packsymbols): Likewise.
12922 (output_token_defines): Likewise.
12923 * src/files.c: Standardize.
12924 (compute_header_macro): New.
12925 (defines_obstack_save): New. Use compute_header_macro.
12926 (output_files): Update. Use defines_obstack_save.
12927
12928 2001-08-15 Akim Demaille <akim@epita.fr>
12929
12930 * doc/bison.texinfo (Table of Symbols): Document
12931 YYSTACK_USE_ALLOCA.
12932
12933 2001-08-15 Akim Demaille <akim@epita.fr>
12934
12935 * missing: Update from CVS Automake.
12936 * config/config.guess, config/config.sub, config/texinfo.tex:
12937 Update from gnu.org.
12938
12939 2001-08-15 Akim Demaille <akim@epita.fr>
12940
12941 * Makefile.maint: Sync with CVS Autoconf.
12942
12943 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
12944
12945 * doc/bison.texinfo: Include GNU Free Documentation License from
12946 `fdl.texi'.
12947 * doc/fdl.texi: Add to package.
12948
12949 2001-08-14 Marc Autret <autret_m@epita.fr>
12950
12951 Turn on %{source,header}_extension features.
12952
12953 * src/lex.c (percent_table): Un-CPP out header_extension and
12954 source_extension.
12955 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
12956 (compute_exts_from_src): Remove conditions. It restores priorities
12957 between options.
12958
12959 2001-08-14 Marc Autret <autret_m@epita.fr>
12960
12961 * src/files.c (compute_base_names): Add extensions computing when
12962 `--file-prefix' used.
12963 Standardize function calls.
12964
12965 2001-08-13 Marc Autret <autret_m@epita.fr>
12966
12967 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
12968 defining it (defined but null disables alloca).
12969
12970 2001-08-13 Marc Autret <autret_m@epita.fr>
12971
12972 * src/bison.simple (_yy_memcpy): CPP reformat.
12973
12974 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
12975
12976 * tests/atconfig.in (CPPFLAGS): Fix.
12977
12978 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
12979
12980 * doc/bison.texinfo: Include GNU General Public License from
12981 `gpl.texi'.
12982 * doc/gpl.texi: Add to package.
12983
12984 2001-08-10 Marc Autret <autret_m@epita.fr>
12985
12986 * src/print_graph.h: Fix.
12987 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
12988
12989 2001-08-10 Akim Demaille <akim@epita.fr>
12990
12991 * src/system.h: Provide default declarations for stpcpy, strndup,
12992 and strnlen.
12993
12994 2001-08-10 Robert Anisko <anisko_r@epita.fr>
12995
12996 * doc/bison.texinfo (Locations): Update @$ stuff.
12997
12998 2001-08-09 Robert Anisko <anisko_r@epita.fr>
12999
13000 * src/bison.simple (YYLLOC_DEFAULT): Update.
13001 (yyparse): Adjust.
13002
13003 2001-08-08 Marc Autret <autret_m@epita.fr>
13004
13005 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
13006 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
13007 Reported by Fabrice Bauzac.
13008
13009 2001-08-08 Marc Autret <autret_m@epita.fr>
13010
13011 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
13012 * src/vcg.c (output_node): Fix.
13013 * src/vcg.h: Cleanup.
13014 * src/print_graph.c: Add comments.
13015 (node_output_size): New global variable. Simplify the formatting of
13016 the VCG graph output.
13017 (print_actions): Unused code is now used. It notifies the final state
13018 and no action states in the VCG graph. It also give the reduce actions.
13019 The `shift and goto' edges are red and the `go to state' edges are
13020 blue.
13021 Get the current node name and node_obstack by argument.
13022 (node_obstack): New variable.
13023 (print_state): Manage node_obstack.
13024 (print_core): Use node_obstack given by argument.
13025 A node is not only computed here but in print_actions also.
13026 (print_graph): CPP out useless code instead of commenting it.
13027
13028 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
13029
13030 * tests/atconfig.in (CPPFLAGS): Fix.
13031
13032 2001-08-07 Akim Demaille <akim@epita.fr>
13033
13034 * src/print_graph.c (quote): New.
13035 (print_core): Use it.
13036
13037 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
13038
13039 * src/vcg.c (complain.h): Include it.
13040 Unepitaize `return' invocations.
13041 [NDEBUG] (main): Remove.
13042 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
13043 * src/files.c (open_files): Initialize graph_obstack.
13044 * src/print_graph.c (print_actions): CPP out useless code.
13045 (print_core): Don't output the last `\n' in labels.
13046 Use `quote'.
13047 * src/files.c (output_files): Output the VCG file.
13048 * src/main.c (main): Invoke print_graph ();
13049
13050 2001-08-06 Marc Autret <autret_m@epita.fr>
13051
13052 Automaton VCG graph output.
13053 Using option ``-g'' or long option ``--graph'', you can generate
13054 a gram_filename.vcg file containing a VCG description of the LALR (1)
13055 automaton of your grammar.
13056
13057 * src/main.c: Call to print_graph() function.
13058 * src/getargs.h: Update.
13059 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
13060 (graph_flag): New flag.
13061 (longopts): Update.
13062 (getargs): Add case `g'.
13063 * src/files.c (graph_obstack): New obstack struct.
13064 (open_files): Initialize new obstack.
13065 (output_files): Saves graph_obstack if required.
13066 * src/files.h (graph_obstack): New extern declaration.
13067 * src/Makefile.am: Add new source files.
13068
13069 2001-08-06 Marc Autret <autret_m@epita.fr>
13070
13071 * src/print_graph.c, src/print_graph.h (graph): New.
13072 * src/vcg.h: New file.
13073 * src/vcg.c: New file, VCG graph handling.
13074
13075 2001-08-06 Marc Autret <autret_m@epita.fr>
13076
13077 Add of %source_extension and %header_extension which specify
13078 the source or/and the header output file extension.
13079
13080 * src/files.c (compute_base_names): Remove initialisation of
13081 src_extension and header_extension.
13082 (compute_exts_from_gf): Update.
13083 (compute_exts_from_src): Update.
13084 (output_files): Update.
13085 * src/reader.c (parse_header_extension_decl): New.
13086 (parse_source_extension_decl): New.
13087 (read_declarations): New case statements for the new tokens.
13088 * src/lex.c (percent_table): Add entries for %source_extension
13089 and %header_extension.
13090 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
13091
13092 2001-08-06 Marc Autret <autret_m@epita.fr>
13093
13094 * configure.in: Bump to 1.28c.
13095 * doc/bison.texinfo: Texinfo thingies.
13096
13097 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
13098
13099 * tests/atconfig.in (CPPFLAGS): Add.
13100 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
13101
13102 2001-08-03 Akim Demaille <akim@epita.fr>
13103
13104 Version 1.28b.
13105
13106 2001-08-03 Akim Demaille <akim@epita.fr>
13107
13108 * tests/Makefile.am (check-local): Ship testsuite.
13109 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
13110 Include `string.h'.
13111
13112 2001-08-03 Akim Demaille <akim@epita.fr>
13113
13114 * configure.in: Try using -Wformat when compiling.
13115
13116 2001-08-03 Akim Demaille <akim@epita.fr>
13117
13118 * configure.in: Bump to 1.28b.
13119
13120 2001-08-03 Akim Demaille <akim@epita.fr>
13121
13122 * src/complain.c: Adjust strerror_r portability issues.
13123
13124 2001-08-03 Akim Demaille <akim@epita.fr>
13125
13126 Version 1.28a.
13127
13128 2001-08-03 Akim Demaille <akim@epita.fr>
13129
13130 * src/getargs.c, src/getarg.h (skeleton)): Constify.
13131 * src/lex.c (literalchar): Avoid name clashes on `buf'.
13132 * src/getargs.c: Include complain.h.
13133 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
13134 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
13135
13136 2001-08-03 Akim Demaille <akim@epita.fr>
13137
13138 * src/reader.c (readgram): Display hidden chars in error messages.
13139
13140 2001-08-03 Akim Demaille <akim@epita.fr>
13141
13142 Update to gettext 0.10.39.
13143
13144 2001-08-03 Akim Demaille <akim@epita.fr>
13145
13146 * lib/strspn.c: New.
13147
13148 2001-08-01 Marc Autret <autret_m@epita.fr>
13149
13150 * doc/bison.texinfo: Update.
13151 * doc/bison.1 (mandoc): Update.
13152 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
13153 * src/files.c: Support output files extensions computing.
13154 (src_extension): New static variable.
13155 (header_extension): New static variable.
13156 (tr): New function.
13157 (get_extension_index): New function, gets the index of an extension
13158 filename in a string.
13159 (compute_exts_from_gf): New function, computes extensions from the
13160 grammar file extension.
13161 (compute_exts_from_src): New functions, computes extensions from the
13162 C source file extension, file given by ``-o'' option.
13163 (compute_base_names): Update.
13164 (output_files): Update.
13165
13166 2001-08-01 Robert Anisko <anisko_r@epita.fr>
13167
13168 * doc/bison.texi: Document @$.
13169 (Locations): New section.
13170
13171 2001-07-18 Akim Demaille <akim@epita.fr>
13172
13173 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
13174 * config/prev-version.txt, config/move-if-change: New.
13175 * Makefile.am: Adjust.
13176
13177 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
13178
13179 * src/bison.simple (yyparse): Suppress warning `comparaison
13180 between signed and unsigned'.
13181
13182 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
13183
13184 * src/getargs.h (raw_flag): Remove.
13185 * src/getargs.c: Die on `-r'/`--raw'.
13186 * src/lex.c (parse_percent_token): Die on `%raw'.
13187 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
13188 * tests/calc.at: Suppress test with option `--raw'.
13189
13190 2001-07-14 Akim Demaille <akim@epita.fr>
13191
13192 * config/: New.
13193 * configure.in: Require Autoconf 2.50.
13194 Update to gettext 0.10.38.
13195
13196 2001-03-16 Akim Demaille <akim@epita.fr>
13197
13198 * doc/bison.texinfo: ANSIfy the examples.
13199
13200 2001-03-16 Akim Demaille <akim@epita.fr>
13201
13202 * getargs.c (skeleton): New variable.
13203 (longopts): --skeleton is a new option.
13204 (shortopts, getargs): -S is a new option.
13205 * getargs.h: Declare skeleton.
13206 * output.c (output_parser): Use it.
13207
13208 2001-03-16 Akim Demaille <akim@epita.fr>
13209
13210 * m4/strerror_r.m4: New.
13211 * m4/error.m4: Run AC_FUNC_STRERROR_R.
13212 * lib/error.h, lib/error.c: Update.
13213
13214 2001-03-16 Akim Demaille <akim@epita.fr>
13215
13216 * src/getargs.c (longopts): Clean up.
13217
13218 2001-02-21 Akim Demaille <akim@epita.fr>
13219
13220 * src/reader.c (gensym): `gensym_count' is your own.
13221 Use a static buf to create the symbol name, as token_buffer is no
13222 longer a buffer.
13223
13224 2001-02-08 Akim Demaille <akim@epita.fr>
13225
13226 * src/conflicts.c (conflict_report): Be sure not to append to res
13227 between two calls, which could happen if both first sprintf were
13228 skipped, but not the first cp += strlen.
13229
13230 2001-02-08 Akim Demaille <akim@epita.fr>
13231
13232 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
13233 New, from fileutils 4.0.37.
13234 * configure.in: Require Autoconf 2.49c. I took some time before
13235 making this decision. This is the only way out for portability
13236 issues in Bison, it would mean way too much duplicate effort to
13237 import in Bison features implemented in 2.49c since 2.13.
13238 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
13239
13240 2001-02-02 Akim Demaille <akim@epita.fr>
13241
13242 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
13243 * lib/xalloc.h, lib/xmalloc.c: Update.
13244
13245 2001-01-19 Akim Demaille <akim@epita.fr>
13246
13247 Get rid of the ad hoc handling of token_buffer in the scanner: use
13248 the obstacks.
13249
13250 * src/lex.c (token_obstack): New.
13251 (init_lex): Initialize it. No longer call...
13252 (grow_token_buffer): this. Remove it.
13253 Adjust all the places which used it to use the obstack.
13254
13255 2001-01-19 Akim Demaille <akim@epita.fr>
13256
13257 * src/lex.h: Rename all the tokens:
13258 s/\bENDFILE\b/tok_eof/g;
13259 s/\bIDENTIFIER\b/tok_identifier/g;
13260 etc.
13261 Let them be enums, not #define, to ease debugging.
13262 Adjust all the code.
13263
13264 2001-01-18 Akim Demaille <akim@epita.fr>
13265
13266 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
13267 * src/lex.c (maxtoken, grow_token_buffer): Static.
13268
13269 2001-01-18 Akim Demaille <akim@epita.fr>
13270
13271 Since we now use obstacks, more % directives can be enabled.
13272
13273 * src/lex.c (percent_table): Also accept `%yacc',
13274 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
13275 `%debug'.
13276 Handle the actions for `%semantic_parser' and `%pure_parser' here,
13277 instead of returning a token.
13278 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
13279 * src/reader.c (read_declarations): Adjust.
13280 * src/files.c (open_files): Don't call `compute_base_names', don't
13281 compute `attrsfile' since they depend upon data which might be
13282 *in* the input file now.
13283 (output_files): Do it here.
13284 * src/output.c (output_headers): Document the fact that this patch
13285 introduces a guaranteed SEGV for semantic parsers.
13286 * doc/bison.texinfo: Document them.
13287 * tests/suite.at: Exercise these %options.
13288
13289 2000-12-20 Akim Demaille <akim@epita.fr>
13290
13291 Also handle the output file (--verbose) with obstacks.
13292
13293 * files.c (foutput): Remove.
13294 (output_obstack): New.
13295 Adjust all dependencies.
13296 * src/conflicts.c: Return a string.
13297 * src/system.h (obstack_grow_string): Rename as...
13298 (obstack_sgrow): this. Be ready to work with non literals.
13299 (obstack_fgrow4): New.
13300
13301 2000-12-20 Akim Demaille <akim@epita.fr>
13302
13303 * src/files.c (open_files): Fix the computation of short_base_name
13304 in the case of `-o foo.tab.c'.
13305
13306 2000-12-20 Akim Demaille <akim@epita.fr>
13307
13308 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
13309 (copy_dollar): Now that everything uses obstacks, get rid of the
13310 FILE * parameters.
13311
13312 2000-12-20 Akim Demaille <akim@epita.fr>
13313
13314 * src/files.c (open_files): Actually the `.output' file is based
13315 on the short_base_name, not base_name.
13316 * tests/suite.at (Checking output file names): Adjust.
13317
13318 2000-12-20 Akim Demaille <akim@epita.fr>
13319
13320 * src/bison.s1: Remove, we now use directly...
13321 * src/bison.simple: this.
13322 * src/Makefile.am: Use pkgdata instead of data.
13323
13324 2000-12-20 Akim Demaille <akim@epita.fr>
13325
13326 * src/files.c (guard_obstack): New.
13327 (open_files): Initialize it.
13328 (output_files): Dump it...
13329 * src/files.h: Export it.
13330 * src/reader.c (copy_guard): Use it.
13331
13332 2000-12-19 Akim Demaille <akim@epita.fr>
13333
13334 * src/files.c (outfile, defsfile, actfile): Removed as global
13335 vars.
13336 (open_files): Don't compute them.
13337 (output_files): Adjust.
13338 (base_name, short_base_name): Be global.
13339 Adjust dependencies.
13340
13341 2000-12-19 Akim Demaille <akim@epita.fr>
13342
13343 * src/files.c (strsuffix): New.
13344 (stringappend): Be just like strcat but allocate.
13345 (base_names): Eve out from open_files.
13346 Try to simplify the rather hairy computation of base_name and
13347 short_base_name.
13348 (open_files): Use it.
13349 * tests/suite.at (Checking output file names): New test.
13350
13351 2000-12-19 Akim Demaille <akim@epita.fr>
13352
13353 * src/system.h (obstack_grow_literal_string): Rename as...
13354 (obstack_grow_string): this.
13355 * src/output.c (output_parser): Recognize `%% actions' instead of
13356 `$'.
13357 * src/bison.s1: s/$/%% actions/.
13358 * src/bison.hairy: Likewise.
13359
13360 2000-12-19 Akim Demaille <akim@epita.fr>
13361
13362 * src/output.c (output_parser): Compute the `#line' lines when
13363 there are.
13364 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
13365 Suggested by Hans Aberg.
13366
13367 2000-12-19 Akim Demaille <akim@epita.fr>
13368
13369 Let the handling of the skeleton files be local to the procedures
13370 that use it.
13371
13372 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
13373 longer static.
13374 (fparser, open_extra_files): Remove.
13375 (open_files, output_files): Don't take care of fparser.
13376 * src/files.h: Adjust.
13377 * src/output.c (output_parser): Open and close the file to the
13378 skeleton.
13379 * src/reader.c (read_declarations): When %semantic_parser, open
13380 fguard.
13381
13382 2000-12-19 Akim Demaille <akim@epita.fr>
13383
13384 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
13385 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
13386
13387 2000-12-19 Akim Demaille <akim@epita.fr>
13388
13389 * src/files.c (open_files): Yipee! We no longer need all the code
13390 looking for `/tmp' since we have no tmp file.
13391
13392 2000-12-19 Akim Demaille <akim@epita.fr>
13393
13394 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
13395 New macros.
13396 * src/files.c (open_files): Less dependency on MSDOS etc.
13397
13398 2000-12-14 Akim Demaille <akim@epita.fr>
13399
13400 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
13401 Provide a default definition.
13402 Use it when executing the default @ action.
13403 * src/reader.c (reader_output_yylsp): No longer include
13404 `timestamp' and `text' in the default YYLTYPE.
13405
13406 2000-12-12 Akim Demaille <akim@epita.fr>
13407
13408 * src/reader.c (copy_definition, parse_union_decl, copy_action)
13409 (copy_guard): Quote the file names.
13410 Reported by Laurent Mascherpa.
13411
13412 2000-12-12 Akim Demaille <akim@epita.fr>
13413
13414 * src/output.c (output_headers, output_program, output): Be sure
13415 to escape special characters when outputting filenames.
13416 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
13417 (output_headers): Don't depend on them, Use ACTSTR.
13418
13419 2000-11-17 Akim Demaille <akim@epita.fr>
13420
13421 * lib/obstack.h: Formatting changes.
13422 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
13423 prevents type checking.
13424 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
13425 cast the value to (void *): assigning a `foo *' to a `void *'
13426 variable is valid.
13427 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
13428 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
13429 append characters.
13430
13431 2000-11-17 Akim Demaille <akim@epita.fr>
13432
13433 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
13434 as...
13435 (suite.m4, regression.m4, calc.m4): these.
13436 * tests/atgeneral.m4: Update from CVS Autoconf.
13437
13438 2000-11-17 Akim Demaille <akim@epita.fr>
13439
13440 * tests/regression.m4 (%union and --defines): New test,
13441 demonstrating a current bug in the obstack implementation.
13442
13443 2000-11-17 Akim Demaille <akim@epita.fr>
13444
13445 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
13446 macros.
13447 Use them to declare the variables which are global or local to
13448 `yyparse'.
13449
13450 2000-11-17 Akim Demaille <akim@epita.fr>
13451
13452 * acconfig.h: Remove, no longer used.
13453
13454 2000-11-07 Akim Demaille <akim@epita.fr>
13455
13456 * src: s/Copyright (C)/Copyright/g.
13457
13458 2000-11-07 Akim Demaille <akim@epita.fr>
13459
13460 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
13461 defining.
13462 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
13463
13464 2000-11-07 Akim Demaille <akim@epita.fr>
13465
13466 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
13467 Merge in a single CPP if/else.
13468
13469 2000-11-07 Akim Demaille <akim@epita.fr>
13470
13471 * src/output.c (output): Remove useless variables.
13472 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
13473 argument `data' for consistency with the prototypes.
13474 Qualify it `const'.
13475 (obstack_copy, obstack_copy0): Rename the second argument as
13476 `address' for consistency. Qualify it `const'.
13477 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
13478 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
13479 `const' their input argument (`data' or `address').
13480 Adjust the corresponding macros to include `const' in casts.
13481
13482 2000-11-03 Akim Demaille <akim@epita.fr>
13483
13484 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
13485 s/PFILE1/BISON_HAIRY/.
13486 Adjust dependencies.
13487
13488 2000-11-03 Akim Demaille <akim@epita.fr>
13489
13490 For some reason, this was not applied.
13491
13492 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
13493 `unlink': it's no longer used.
13494
13495 2000-11-03 Akim Demaille <akim@epita.fr>
13496
13497 * src/files.c (skeleton_find): New function, eved out of...
13498 (open_files, open_extra_files): here.
13499
13500 2000-11-03 Akim Demaille <akim@epita.fr>
13501
13502 Don't use `atexit'.
13503
13504 * src/files.c (obstack_save): New function.
13505 (done): Rename as...
13506 (output_files): this.
13507 Use `obstack_save'.
13508 * src/main.c (main): Don't use `atexit' to register `done', since
13509 it no longer has to remove tmp files, just call `output_files'
13510 when there are no errors.
13511
13512 2000-11-02 Akim Demaille <akim@epita.fr>
13513
13514 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
13515 `unlink': it's no longer used.
13516 * src/files.h: Formatting changes.
13517
13518 2000-11-02 Akim Demaille <akim@epita.fr>
13519
13520 Remove the last uses of mktemp and unlink/delete.
13521
13522 * src/files.c (fdefines, ftable): Removed.
13523 (defines_ostack, table_obstack): New.
13524 Adjust dependencies of the former into uses of the latter.
13525 * src/output.c (output_short_or_char_table, output_short_table):
13526 Convert to using obstacks.
13527 * src/reader.c (copy_comment2): Accept one FILE * and two
13528 obstacks.
13529 (output_token_defines, reader_output_yylsp): Use obstacks.
13530 * src/system.h (obstack_fgrow3): New.
13531 * po/POTFILES.in: Adjust.
13532
13533 2000-11-01 Akim Demaille <akim@epita.fr>
13534
13535 Change each use of `fattrs' into a use of `attrs_obstack'.
13536
13537 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
13538 * src/files.c (fattrs): Remove.
13539 (attrs_obstack): New.
13540 Adjust all dependencies.
13541 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
13542
13543 2000-11-01 Akim Demaille <akim@epita.fr>
13544
13545 Introduce obstacks.
13546 Change each use of `faction' into a use of `action_obstack'.
13547
13548 * lib/obstack.h, lib/obstack.c: New files.
13549 * src/files.c (faction): Remove.
13550 (action_obstack): New.
13551 Adjust all dependencies.
13552
13553 2000-10-20 Akim Demaille <akim@epita.fr>
13554
13555 * lib/quote.h (PARAMS): New macro. Use it.
13556
13557 2000-10-16 Akim Demaille <akim@epita.fr>
13558
13559 * src/output.c (output_short_or_char_table): New function.
13560 (output_short_table, output_token_translations): Use it.
13561 (goto_actions): Use output_short_table.
13562
13563 2000-10-16 Akim Demaille <akim@epita.fr>
13564
13565 * src/symtab.c (bucket_new): New function.
13566 (getsym): Use it.
13567
13568 * src/output.c (output_short_table): New argument to display the
13569 comment associated with the table.
13570 Adjust dependencies.
13571 (output_gram): Use it.
13572 (output_rule_data): Nicer output layout for YYTNAME.
13573
13574 2000-10-16 Akim Demaille <akim@epita.fr>
13575
13576 * src/lex.c (read_typename): New function.
13577 (lex): Use it.
13578 * src/reader.c (copy_dollar): Likewise.
13579
13580 2000-10-16 Akim Demaille <akim@epita.fr>
13581
13582 * src/reader.c (copy_comment2): Expect the input stream to be on
13583 the `/' which is suspected to open a comment, instead of being
13584 called after `//' or `/*' was read.
13585 (copy_comment, copy_definition, parse_union_decl, copy_action)
13586 (copy_guard): Adjust.
13587
13588 2000-10-16 Akim Demaille <akim@epita.fr>
13589
13590 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
13591 `read_signed_integer'.
13592
13593 2000-10-16 Akim Demaille <akim@epita.fr>
13594
13595 * src/reader.c (copy_dollar): New function.
13596 (copy_guard, copy_action): Use it.
13597
13598 2000-10-16 Akim Demaille <akim@epita.fr>
13599
13600 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
13601 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
13602 New files, from Fileutils 4.0.27.
13603 * src/main.c (printable_version): Remove.
13604 * src/lex.c, src/reader.c: Use `quote'.
13605
13606 2000-10-04 Akim Demaille <akim@epita.fr>
13607
13608 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
13609
13610 2000-10-04 Akim Demaille <akim@epita.fr>
13611
13612 * doc/bison.texinfo: Various typos spotted by Neil Booth.
13613
13614 2000-10-04 Akim Demaille <akim@epita.fr>
13615
13616 When a literal string is used to define two different tokens,
13617 `bison -v' segfaults.
13618 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
13619
13620 * tests/regression.m4: New file.
13621 Include the core of the sample provided by Piotr Gackiewicz.
13622 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
13623 properly.
13624
13625 2000-10-04 Akim Demaille <akim@epita.fr>
13626
13627 * src/reader.c (parse_expect_decl): Keep `count' within the size
13628 of `buffer'.
13629 From Neil Booth.
13630
13631 2000-10-02 Paul Eggert <eggert@twinsun.com>
13632
13633 * bison.s1 (yyparse): Assign the default value
13634 unconditionally, to avoid a GCC warning and make the parser a
13635 tad smaller.
13636
13637 2000-10-02 Akim Demaille <akim@epita.fr>
13638
13639 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
13640 options.
13641
13642 2000-10-02 Akim Demaille <akim@epita.fr>
13643
13644 * src/derives.c, src/print.c, src/reduce.c: To ease the
13645 translation, move some `\n' out of the translated strings.
13646
13647 2000-10-02 Akim Demaille <akim@epita.fr>
13648
13649 The location tracking mechanism is precious for parse error
13650 messages. Nevertheless, it is enabled only when `@n' is used in
13651 the grammar, which is a different issue (you can use it in error
13652 message, but not in the grammar per se). Therefore, there should
13653 be another means to enable it.
13654
13655 * src/getargs.c (getargs): Support `--locations'.
13656 (usage): Report it.
13657 * src/getargs.h (locationsflag): Export it.
13658 * src/lex.c (percent_table): Support `%locations'.
13659 * src/reader.c (yylsp_needed): Remove this variable, now replaced
13660 with `locationsflag'.
13661 * doc/bison.texinfo: Document `--locations' and `%locations'.
13662 Sort the options.
13663 * tests/calc.m4: Test it.
13664
13665 For regularity of the names, replace each
13666 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
13667 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
13668 In addition replace each `flag' with `_flag'.
13669
13670 2000-10-02 Akim Demaille <akim@epita.fr>
13671
13672 Also test parse error messages, including with YYERROR_VERBOSE.
13673
13674 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
13675 associative).
13676 Use it to check the computations.
13677 Use it to check `nonassoc' is honored.
13678 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
13679 `--yyerror-verbose'.
13680 (_AT_CHECK_CALC): Adjust to this option.
13681 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
13682
13683 2000-10-02 Akim Demaille <akim@epita.fr>
13684
13685 Test also `--verbose', `--defines' and `--name-prefix'. Testing
13686 the latter demonstrates a flaw in the handling of non debugging
13687 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
13688 was used in order to simplify:
13689
13690 #if YYDEBUG
13691 if (yydebug)
13692 {
13693 ...
13694 }
13695 #endif
13696
13697 into
13698
13699 if (yydebug)
13700 {
13701 ...
13702 }
13703
13704 unfortunately this leads to a CPP conflict when
13705 `--name-prefix=foo' is used since it produces `#define yydebug
13706 foodebug'.
13707
13708 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
13709 (YYDPRINTF): New macro.
13710 Spread its use.
13711 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
13712 the bison options.
13713 Also test `--verbose', `--defines' and `--name-prefix'.
13714
13715 2000-10-02 Akim Demaille <akim@epita.fr>
13716
13717 Improve the readability of the produced parsers.
13718
13719 * src/bison.s1: Formatting changes.
13720 Improve the comment related to the `$' mark.
13721 (yydefault): Don't fall through to `yyresume': `goto' there.
13722 * src/output.c (output_parser): When the `$' is met, skip the end
13723 of its line.
13724 New variable, `number_of_dollar_signs', to check there's exactly
13725 one `$' in the parser skeleton.
13726
13727 2000-10-02 Akim Demaille <akim@epita.fr>
13728
13729 * lib/xstrdup.c: New file, from the fileutils.
13730 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
13731 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
13732 instead of strlen + xmalloc + strcpy.
13733 * src/symtab.c (copys): Remove, use xstrdup instead.
13734
13735 2000-10-02 Akim Demaille <akim@epita.fr>
13736
13737 * src/gram.h (associativity): New enum type which replaces the
13738 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
13739 `right_assoc', `left_assoc' and `non_assoc'.
13740 Adjust all dependencies.
13741 * src/reader.c: Formatting changes.
13742 (LTYPESTR): Don't define it, use it as a literal in
13743 `reader_output_yylsp'.
13744 * src/symtab.h (symbol_class): New enum type which replaces the
13745 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
13746 `sunknown', `stoken and `snterm'.
13747
13748 2000-10-02 Akim Demaille <akim@epita.fr>
13749
13750 * src/getargs.c (fixed_outfiles): Rename as...
13751 (yaccflag): for consistency and accuracy.
13752 Adjust dependencies.
13753
13754 2000-10-02 Akim Demaille <akim@epita.fr>
13755
13756 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
13757 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
13758 difficult and introduced a lot of core dump. It turns out that
13759 Bison used an implementation of `xmalloc' based on `calloc', and
13760 at various places it does depend upon the initialization to 0. I
13761 have not tried to isolate the pertinent places, and all the former
13762 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
13763 someone should address this issue.
13764
13765 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
13766 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
13767 files.
13768 Adjust dependencies.
13769 * src/warshall.h: New file.
13770 Propagate.
13771
13772 2000-10-02 Akim Demaille <akim@epita.fr>
13773
13774 Various anti-`extern in *.c' changes.
13775
13776 * src/system.h: Include `assert.h'.
13777
13778 2000-10-02 Akim Demaille <akim@epita.fr>
13779
13780 * src/state.h (nstates, final_state, first_state, first_shift)
13781 (first_reduction): Move their exportation from here...
13782 * src/LR0.h: to here.
13783 Adjust dependencies.
13784 * src/getargs.c (statisticsflag): New variable.
13785 Add support for `--statistics'.
13786 Adjust dependencies.
13787
13788 Remove a lot of now useless `extern' statements in most files.
13789
13790 2000-10-02 Akim Demaille <akim@epita.fr>
13791
13792 * src/LR0.h: New file.
13793 Propagate its use.
13794
13795 2000-10-02 Akim Demaille <akim@epita.fr>
13796
13797 * src/print.h: New file.
13798 Propagate its use.
13799 * src/print.c: Formatting and ordering changes.
13800 (verbose, terse): Replace with...
13801 (print_results): this new function.
13802 Adjust dependencies.
13803
13804 2000-10-02 Akim Demaille <akim@epita.fr>
13805
13806 * src/conflicts.c (conflict_report): New function.
13807 (conflict_log, verbose_conflict_log): Replace with...
13808 (print_conflicts): this function.
13809 Adjust dependencies.
13810 * src/conflicts.h: New file.
13811 Propagate its inclusion.
13812
13813 2000-10-02 Akim Demaille <akim@epita.fr>
13814
13815 * src/nullable.h: New file.
13816 Propagate its inclusion.
13817 * src/nullable.c: Formatting changes.
13818
13819 2000-10-02 Akim Demaille <akim@epita.fr>
13820
13821 * src/reduce.h: New file.
13822 Propagate its inclusion.
13823 * src/reduce.c: Topological sort and other formatting changes.
13824 (bool, TRUE, FALSE): Move their definition to...
13825 * src/system.h: here.
13826
13827 2000-10-02 Akim Demaille <akim@epita.fr>
13828
13829 * src/files.c: Formatting changes.
13830 (tryopen, tryclose, openfiles): Rename as...
13831 (xfopen, xfclose, open_files): this.
13832 (stringappend): static.
13833 * src/files.h: Complete the list of exported symbols.
13834 Propagate its use.
13835
13836 2000-10-02 Akim Demaille <akim@epita.fr>
13837
13838 * src/reader.h: New file.
13839 Propagate its use instead of tedious list of `extern' and
13840 prototypes.
13841 * src/reader.c: Formatting changes, topological sort,
13842 s/register//.
13843
13844 2000-10-02 Akim Demaille <akim@epita.fr>
13845
13846 * src/lex.h: Prototype `lex.c' exported functions.
13847 * src/reader.c: Adjust.
13848 * src/lex.c: Formatting changes.
13849 (safegetc): Rename as...
13850 (xgetc): this.
13851
13852 2000-10-02 Akim Demaille <akim@epita.fr>
13853
13854 * src/lalr.h: New file.
13855 Propagate its inclusion instead of prototypes and `extern'.
13856 * src/lalr.c: Formatting changes, topological sorting etc.
13857
13858 2000-10-02 Akim Demaille <akim@epita.fr>
13859
13860 * src/output.c (token_actions): Introduce a temporary array,
13861 YYDEFACT, that makes it possible for this function to use
13862 output_short_table.
13863
13864 2000-10-02 Akim Demaille <akim@epita.fr>
13865
13866 `user_toknums' is output as a `short[]' in `output.c', while it is
13867 defined as a `int[]' in `reader.c'. For consistency with the
13868 other output tables, `user_toknums' is now defined as a table of
13869 shorts.
13870
13871 * src/reader.c (user_toknums): Be a short table instead of an int
13872 table.
13873 Adjust dependencies.
13874
13875 Factor the short table outputs.
13876
13877 * src/output.c (output_short_table): New function.
13878 * src/output.c (output_gram, output_stos, output_rule_data)
13879 (output_base, output_table, output_check): Use it.
13880
13881 2000-10-02 Akim Demaille <akim@epita.fr>
13882
13883 * src/output.c (output): Topological sort of the functions, in
13884 order to get rid of the `static' prototypes.
13885 No longer use `register'.
13886 * src/output.h: New file.
13887 Propagate its inclusion in files explicitly prototyping functions
13888 from output.c.
13889
13890 2000-09-21 Akim Demaille <akim@epita.fr>
13891
13892 * src/atgeneral.m4: Update from Autoconf.
13893
13894 2000-09-21 Akim Demaille <akim@epita.fr>
13895
13896 * src/closure.h: New file.
13897 * src/closure.c: Formatting changes, topological sort over the
13898 functions, use of closure.h.
13899 (initialize_closure, finalize_closure): Rename as...
13900 (new_closure, free_closure): these. Adjust dependencies.
13901 * src/LR0.c: Formatting changes, topological sort, use of
13902 cloture.h.
13903 (initialize_states): Rename as...
13904 (new_states): this.
13905 * src/Makefile.am (noinst_HEADERS): Adjust.
13906
13907 2000-09-20 Akim Demaille <akim@epita.fr>
13908
13909 * src/acconfig.h: Don't protect config.h against multiple
13910 inclusion.
13911 Don't define PARAMS.
13912 * src/system.h: Define PARAMS.
13913 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
13914 purpose of config.h. system.h must not try to fix wrong
13915 definitions in config.h.
13916
13917 2000-09-20 Akim Demaille <akim@epita.fr>
13918
13919 * src/derives.h: New file.
13920 * src/main.c, src/derives.h: Use it.
13921 Formatting changes.
13922 * src/Makefile.am (noinst_HEADERS): Adjust.
13923
13924 2000-09-20 Akim Demaille <akim@epita.fr>
13925
13926 * tests/atgeneral.m4: Update from Autoconf.
13927 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
13928 (AT_CHECK_CALC): New macros.
13929 Use these macros to test bison with options `', `--raw',
13930 `--debug', `--yacc', `--yacc --debug'.
13931
13932 2000-09-19 Akim Demaille <akim@epita.fr>
13933
13934 * src/output.c: Formatting changes.
13935 * src/machine.h: Remove, leaving its contents in...
13936 * src/system.h: here.
13937 Include stdio.h.
13938 Adjust all dependencies on stdio.h and machine.h.
13939 * src/getargs.h: New file.
13940 Let all `extern' declarations about getargs.c be replaced with
13941 inclusion of `getargs.h'.
13942 * src/Makefile.am (noinst_HEADERS): Adjust.
13943
13944 * tests/calc.m4 (yyin): Be initialized in main, not on the global
13945 scope.
13946 (yyerror): Returns void, not int.
13947 * doc/bison.texinfo: Formatting changes.
13948
13949 2000-09-19 Akim Demaille <akim@epita.fr>
13950
13951 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
13952 portable.
13953
13954 2000-09-18 Akim Demaille <akim@epita.fr>
13955
13956 * configure.in: Append WARNING_CFLAGS to CFLAGS.
13957 * src/Makefile.am (INCLUDES): Don't.
13958 Be ready to fetch headers in lib/.
13959
13960 2000-09-18 Akim Demaille <akim@epita.fr>
13961
13962 * doc/bison.texinfo: Update the copyright.
13963 ANSIfy and GNUify the examples.
13964 Remove the old menu.
13965
13966 2000-09-18 Akim Demaille <akim@epita.fr>
13967
13968 First set of tests: use the `calc' example from the documentation.
13969
13970 * src/bison.s1 (yyparse): Condition the code using `yytname' which
13971 is defined only when YYDEBUG is.
13972 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
13973 * src/files.c (tryopen, tryclose): Formatting changes.
13974 Move to the top and be static.
13975 * src/reader.c (read_signed_integer): Likewise.
13976 * tests/calc.m4: New file.
13977 * Makefile.am, suite.m4: Adjust.
13978 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
13979
13980 2000-09-18 Akim Demaille <akim@epita.fr>
13981
13982 Add support for an Autotest test suite for Bison.
13983
13984 * m4/m4.m4, m4/atconfig.m4: New files.
13985 * m4/Makefile.am (EXTRA_DIST): Adjust.
13986 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
13987 files.
13988 * src/getargs.c: Display a more standard --version message.
13989 * src/reader.c (reader): Formatting changes.
13990 No longer depend upon VERSION_STRING.
13991 * configure.in: No longer use `dnl'.
13992 Set up the test suite and the new directory `tests/.
13993 (VERSION_STRING): Remove.
13994
13995 2000-04-14 Akim Demaille <akim@epita.fr>
13996
13997 * src/reader.c (copy_comment2): New function, same as former
13998 `copy_comment', but outputs into two FILE *.
13999 (copy_comment): Use it.
14000 (parse_union_decl): Use it.
14001 (get_type, parse_start_decl): Use the same `invalid' message.
14002 (parse_start_decl, parse_union_decl): Use the same `multiple'
14003 message.
14004 (parse_union_decl, copy_guard, copy_action): Use the same
14005 `unmatched' message.
14006 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
14007
14008 2000-03-31 Akim Demaille <akim@epita.fr>
14009
14010 * src/files.c (tryopen, tryclose): Move to the top.
14011 Be static.
14012
14013 2000-03-31 Akim Demaille <akim@epita.fr>
14014
14015 * src/main.c (main): Don't call `done', exit does it.
14016
14017 2000-03-31 Akim Demaille <akim@epita.fr>
14018
14019 * allocate.c: s/return (foo)/return foo/.
14020 * lalr.c: Likewise.
14021 * LR0.c: Likewise.
14022 * output.c: Likewise.
14023 * reader.c: Likewise.
14024 * symtab.c: Likewise.
14025 * vmsgetargs.c: Likewise.
14026
14027 2000-03-31 Akim Demaille <akim@epita.fr>
14028
14029 Clean up the error reporting functions.
14030
14031 * src/report.c: New file.
14032 * src/report.h: Likewise.
14033 * src/Makefile.am: Adjust.
14034 * m4/error.m4: New file.
14035 * m4/Makefile.am: Adjust.
14036 * configure.in (jm_PREREQ_ERROR): Call it.
14037 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
14038 Remove.
14039 (fatal, fatals): Remove. All callers use complain.c::fatal.
14040 (warn, warni, warns, warnss, warnss): Remove. All callers use
14041 complain.c::complain.
14042 (toomany): Remove, use fatal instead.
14043 * src/files.c (done): No argument, use complain_message_count.
14044 * src/main.c (main): Register `done' to `atexit'.
14045
14046 * src/getargs.c (usage): More `fputs', less `fprintf'.
14047
14048 2000-03-28 Akim Demaille <akim@epita.fr>
14049
14050 * lib/: New directory.
14051 * Makefile.am (SUBDIRS): Adjust.
14052 * configure.in: Adjust.
14053 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
14054 useless.
14055 * src/alloca.c: Moved to lib/.
14056 * src/getopt.c: Likewise.
14057 * src/getopt1.c: Likewise.
14058 * src/getopt.h: Likewise.
14059 * src/ansi2knr.c: Likewise.
14060 * src/ansi2knr.1: Likewise.
14061 * src/Makefile.am: Adjust.
14062 * lib/Makefile.am: New file.
14063
14064 2000-03-28 Akim Demaille <akim@epita.fr>
14065
14066 * src/getargs.c (usage): Refresh the help message.
14067
14068 2000-03-17 Akim Demaille <akim@epita.fr>
14069
14070 * src/getopt1.c: Updated from textutils 2.0e
14071 * src/getopt.c: Likewise.
14072 * src/getopt.h: Likewise.
14073
14074 2000-03-17 Akim Demaille <akim@epita.fr>
14075
14076 * src/Makefile.am (bison.simple): Fix the awk program: quote only
14077 the file name, not the whole `#line LINE FILE'.
14078
14079 2000-03-17 Akim Demaille <akim@epita.fr>
14080
14081 On syntax errors, report the token on which we choked.
14082
14083 * src/bison.s1 (yyparse): In the label yyerrlab, when
14084 YYERROR_VERBOSE, add yychar in msg.
14085
14086 2000-03-17 Akim Demaille <akim@epita.fr>
14087
14088 * src/reader.c (copy_at): New function.
14089 (copy_guard): Use it.
14090 (copy_action): Use it.
14091
14092 2000-03-17 Akim Demaille <akim@epita.fr>
14093
14094 Be kind to translators, save some useless translations.
14095
14096 * src/main.c (banner): New function.
14097 (fatal_banner): Use it.
14098 (warn_banner): Use it.
14099
14100 2000-03-17 Akim Demaille <akim@epita.fr>
14101
14102 * src/reader.c (copy_definition): Use copy_string and
14103 copy_comment. Removed now unused `match', `ended',
14104 `cplus_comment'.
14105 (copy_comment, copy_string): Moved, to be visible from
14106 copy_definition.
14107
14108 2000-03-17 Akim Demaille <akim@epita.fr>
14109
14110 * src/reader.c (copy_string): Declare `static inline'. No
14111 problems with inline, since it is checked by configure.
14112 (copy_comment): Likewise.
14113
14114 2000-03-17 Akim Demaille <akim@epita.fr>
14115
14116 * src/reader.c (packsymbols): Formatting changes.
14117
14118 2000-03-17 Akim Demaille <akim@epita.fr>
14119
14120 * src/reader.c (copy_comment): New function, factored out from:
14121 (copy_action): Use it. Removed now unused `match', `ended',
14122 `cplus_comment'.
14123 (copy_guard): Likewise.
14124
14125 2000-03-17 Akim Demaille <akim@epita.fr>
14126
14127 * src/reader.c (copy_string): New function, factored out from:
14128 (copy_action): Use it.
14129 (copy_guard): Likewise.
14130
14131 2000-03-17 Akim Demaille <akim@epita.fr>
14132
14133 Change the handling of @s so that they behave exactly like $s.
14134 There is now a pseudo variable @$ (readble and writable), location
14135 of the lhs of the rule (by default ranging from the location of
14136 the first symbol of the rhs, to the location of the last symbol,
14137 or, if the rhs is empty, YYLLOC).
14138
14139 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
14140 yyval.
14141 (yyparse): When providing a default semantic action, provide a
14142 default location action.
14143 (after the $): No longer change `*YYLSP', just stack YYLOC the
14144 same way you stack YYVAL.
14145 * src/reader.c (read_declarations): Use warns.
14146 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
14147 (copy_action, case '@'): Likewise.
14148 Use a standard error message, to save useless work from
14149 translators.
14150
14151 2000-03-17 Akim Demaille <akim@epita.fr>
14152
14153 * src/bison.s1: Formatting and cosmetics changes.
14154 * src/reader.c: Likewise.
14155 Update the Copyright notice.
14156
14157 2000-03-17 Akim Demaille <akim@epita.fr>
14158
14159 * src/bison.s1 (#line): All set to `#line' only, since the
14160 Makefile now handles them.
14161
14162 2000-03-16 Akim Demaille <akim@epita.fr>
14163
14164 * src/output.c (output_rule_data): Output the documentation of
14165 some of the tables.
14166 (Copyright notice): Update.
14167 Formatting changes.
14168
14169 2000-03-16 Akim Demaille <akim@epita.fr>
14170
14171 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
14172 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
14173 One `#if YYDEBUG' remains, since it uses variables which are
14174 defined only if `YYDEBUG != 0'.
14175
14176 2000-03-16 Akim Demaille <akim@epita.fr>
14177
14178 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
14179 and related variables so that the similarities are highlighted.
14180
14181 2000-03-16 Akim Demaille <akim@epita.fr>
14182
14183 * src/bison.s1: Properly indent CPP directives.
14184
14185 2000-03-16 Akim Demaille <akim@epita.fr>
14186
14187 * src/bison.s1: Properly indent the `alloca' CPP section.
14188
14189 2000-03-16 Akim Demaille <akim@epita.fr>
14190
14191 Do not hard code values of directories in `configure.in'.
14192 Update the `configure' tool chain.
14193
14194 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
14195 src/makefile.am.
14196 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
14197 (AC_OUTPUT): Add m4/Makefile.
14198 Bump to bison 1.28a, 1.29 has never been released.
14199 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
14200 handled via src/Makefile.am.
14201 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
14202 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
14203 autoheader.
14204 * Makefile.am (SUBDIRS): Add m4.
14205 (ACLOCAL_AM_FLAGS): New variable.
14206 (AUTOMAKE_OPTIONS): Add check-news.
14207 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
14208 the proper line number and file name.
14209 (DEFS): Propagate the location of bison library files and of the
14210 locale files.
14211 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
14212 builddir.
14213 * acinclude.m4: Remove, replaced by the directory m4.
14214 * m4/Makefile.am (EXTRA_DIST): New variable.
14215 * m4/gettext.m4: New file, from the fileutils.
14216 * m4/lcmessage.m4: Likewise
14217 * m4/progtest.m4: Likewise.
14218 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
14219
14220 2000-03-10 Akim Demaille <akim@epita.fr>
14221
14222 * src/closure.c:
14223 Formatting changes of various comments.
14224 Respect the GNU coding standards at various places.
14225 Don't use `_()' when no translation is needed.
14226
14227 1999-12-13 Jesse Thilo <jthilo@gnu.org>
14228
14229 * src/files.c:
14230 OS/2 honors TMPDIR environment variable.
14231
14232 1999-12-13 Jesse Thilo <jthilo@gnu.org>
14233
14234 * doc/bison.texinfo: Tweaked spelling and grammar.
14235 Updated ISBN.
14236 Removed reference to price of printed copy.
14237 Mention BISON_SIMPLE and BISON_HAIRY.
14238
14239 1999-12-13 Jesse Thilo <jthilo@gnu.org>
14240
14241 * configure.in, NEWS:
14242 Bison 1.29 released.
14243
14244 1999-10-27 Jesse Thilo <jthilo@gnu.org>
14245
14246 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
14247 Added reference card.
14248
14249 1999-07-26 Jesse Thilo <jthilo@gnu.org>
14250
14251 * po/ru.po: Added Russian translation.
14252
14253 1999-07-26 Jesse Thilo <jthilo@gnu.org>
14254
14255 * configure.in: Added Russian translation.
14256
14257 1999-07-06 Jesse Thilo <jthilo@gnu.org>
14258
14259 * configure.in, NEWS, README:
14260 Released version 1.28.
14261
14262 1999-06-14 Jesse Thilo <jthilo@gnu.org>
14263
14264 * src/system.h:
14265 Squashed redefinition warning on some systems.
14266
14267 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
14268 Have configure build version string instead of relying on ANSI string
14269 concatentation.
14270
14271 1999-06-14 Jesse Thilo <jthilo@gnu.org>
14272
14273 * po/POTFILES.in: Got rid of version.c.
14274
14275 1999-06-14 Jesse Thilo <jthilo@gnu.org>
14276
14277 * acconfig.h, configure.in:
14278 Have configure build version string instead of relying on ANSI string
14279 concatentation.
14280
14281 1999-06-08 Jesse Thilo <jthilo@gnu.org>
14282
14283 * doc/bison.1:
14284 Dropped mention of `+' for long-named options.
14285
14286 1999-05-30 Jesse Thilo <jthilo@gnu.org>
14287
14288 * src/files.c: Added <unistd.h> for unlink().
14289
14290 * src/Makefile.am, src/system.h:
14291 I18n fixes.
14292
14293 1999-05-30 Jesse Thilo <jthilo@gnu.org>
14294
14295 * README: Added a FAQ list.
14296
14297 * configure.in, acconfig.h:
14298 I18n fixes.
14299
14300 1999-05-30 Jesse Thilo <jthilo@gnu.org>
14301
14302 * doc/FAQ, doc/Makefile.am:
14303 Added a FAQ list.
14304
14305 1999-05-19 Jesse Thilo <jthilo@gnu.org>
14306
14307 * src/alloc.h, src/symtab.h, src/version.c:
14308 Protected inclusion of "config.h" with HAVE_CONFIG_H.
14309
14310 1999-04-18 Jesse Thilo <jthilo@gnu.org>
14311
14312 * src/.cvsignore, src/Makefile.am:
14313 Reorganized: sources in `src', documentation in `doc'.
14314
14315 * src/lex.c (literalchar):
14316 fixed the code for escaping double quotes (thanks
14317 Jonathan Czisny.)
14318
14319 1999-04-18 Jesse Thilo <jthilo@gnu.org>
14320
14321 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
14322 Adjusted paths to reflect directory reorganization.
14323
14324 1999-04-18 Jesse Thilo <jthilo@gnu.org>
14325
14326 * doc/.cvsignore, doc/Makefile.am:
14327 Reorganized: sources in `src', documentation in `doc'.
14328
14329 1999-04-18 Jesse Thilo <jthilo@gnu.org>
14330
14331 * configure.in:
14332 Updated AC_INIT file to reflect directory reorganization.
14333
14334 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
14335 Reorganized: sources in `src', documentation in `doc'.
14336
14337 1999-04-13 Jesse Thilo <jthilo@gnu.org>
14338
14339 * src/allocate.c:
14340 Don't declare calloc() and realloc() if not necessary.
14341
14342 1999-04-13 Jesse Thilo <jthilo@gnu.org>
14343
14344 * configure.in, acconfig.h, acinclude.m4:
14345 Don't declare calloc() and realloc() if not necessary.
14346
14347 1999-03-23 Jesse Thilo <jthilo@gnu.org>
14348
14349 * po/.cvsignore: Added i18n support.
14350
14351 1999-03-23 Jesse Thilo <jthilo@gnu.org>
14352
14353 * acconfig.h, configure.in, Makefile.am:
14354 Added i18n support.
14355
14356 1999-03-22 Jesse Thilo <jthilo@gnu.org>
14357
14358 * src/bison.s1: Fixed #line numbers.
14359
14360 1999-03-15 Jesse Thilo <jthilo@gnu.org>
14361
14362 * po/es.po, po/fr.po, po/nl.po, po/de.po:
14363 Added PO files from Translation Project.
14364
14365 1999-03-03 Jesse Thilo <jthilo@gnu.org>
14366
14367 * Makefile.am:
14368 Added support for non-ANSI compilers (ansi2knr).
14369
14370 1999-02-16 Jesse Thilo <jthilo@gnu.org>
14371
14372 * configure.in: Bumped version number to 1.27.
14373
14374 * Makefile.am:
14375 Added `bison.simple' to list of files removed by `make distclean'.
14376
14377 1999-02-12 Jesse Thilo <jthilo@gnu.org>
14378
14379 * src/files.c, src/files.h:
14380 Defined locations of parser files in config.h instead of Makefile.
14381
14382 1999-02-12 Jesse Thilo <jthilo@gnu.org>
14383
14384 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
14385 Defined locations of parser files in config.h instead of Makefile.
14386
14387 1999-02-09 Jesse Thilo <jthilo@gnu.org>
14388
14389 * Makefile.am:
14390 Removed inappropriate use of $< macro.
14391
14392 1999-02-05 Jesse Thilo <jthilo@gnu.org>
14393
14394 * po/Makefile.in.in, po/POTFILES.in:
14395 Add `po' directory skeleton.
14396
14397 1999-01-27 Jesse Thilo <jthilo@gnu.org>
14398
14399 * README: Document help-bison list.
14400
14401 * configure.in: Add check for mkstemp().
14402
14403 1999-01-20 Jesse Thilo <jthilo@gnu.org>
14404
14405 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
14406 Hush a few compiler warnings.
14407
14408 * src/files.c:
14409 Add tryclose(), which verifies that fclose was successful.
14410 Hush a couple of compiler warnings.
14411
14412 1999-01-20 Jesse Thilo <jthilo@gnu.org>
14413
14414 * Makefile.am, OChangeLog:
14415 ChangeLog is now automatically generated. Include the old version as
14416 OChangeLog.
14417
14418 1999-01-14 Jesse Thilo <jthilo@gnu.org>
14419
14420 * 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:
14421 Update FSF address.
14422
14423 1999-01-14 Jesse Thilo <jthilo@gnu.org>
14424
14425 * doc/bison.texinfo: Fix formatting glitch.
14426
14427 * doc/bison.texinfo: Update FSF address.
14428
14429 1999-01-14 Jesse Thilo <jthilo@gnu.org>
14430
14431 * acconfig.h: Update FSF address.
14432
14433 1999-01-08 Jesse Thilo <jthilo@gnu.org>
14434
14435 * src/system.h:
14436 Don't define PACKAGE here, since config.h defines it.
14437
14438 1998-12-30 Jesse Thilo <jthilo@gnu.org>
14439
14440 * src/reader.c: Update copyright date.
14441
14442 * src/main.c:
14443 Ditch sprintf to statically-sized buffers in fatal/warn functions in
14444 favor of output directly to stderr (avoids buffer overruns).
14445
14446 * src/reader.c: Some checks for premature EOF.
14447
14448 * 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:
14449 Use prototypes if the compiler understands them.
14450
14451 * src/files.c: Honor TMPDIR on Unix hosts.
14452 Use prototypes if the compiler understands them.
14453
14454 * src/reader.c:
14455 Fix a couple of buffer overrun bugs.
14456 Use prototypes if the compiler understands them.
14457
14458 * src/system.h: Include unistd.h and ctype.h.
14459 Use #ifdef instead of #if for NLS symbols.
14460
14461 1998-12-30 Jesse Thilo <jthilo@gnu.org>
14462
14463 * doc/bison.texinfo:
14464 Delete comment "consider using @set for edition number, etc..." since
14465 we now are doing so.
14466
14467 1998-12-30 Jesse Thilo <jthilo@gnu.org>
14468
14469 * configure.in:
14470 Use prototypes if the compiler understands them.
14471
14472 * NEWS: Document 1.26 highlights.
14473
14474 * Makefile.am: Require Automake 1.3 or later.
14475
14476 * acconfig.h:
14477 Use prototypes if the compiler understands them.
14478
14479 1998-12-29 Jesse Thilo <jthilo@gnu.org>
14480
14481 * src/version.c:
14482 Use VERSION symbol from automake for version number.
14483
14484 1998-12-29 Jesse Thilo <jthilo@gnu.org>
14485
14486 * acconfig.h, configure.in, version.cin:
14487 Use VERSION symbol from automake for version number.
14488
14489 1998-11-28 Jesse Thilo <jthilo@gnu.org>
14490
14491 * Makefile.am:
14492 Distribute original version of simple parser (bison.s1), not built
14493 version (bison.simple).
14494
14495 1998-11-28 Jesse Thilo <jthilo@gnu.org>
14496
14497 * doc/bison.texinfo: Add info dir entry.
14498
14499 * doc/bison.texinfo:
14500 Let automake put version number into documentation.
14501
14502 1998-11-26 Jesse Thilo <jthilo@gnu.org>
14503
14504 * src/bison.cld, src/build.com, src/vmshlp.mar:
14505 Add non-RCS files from /gd/gnu/bison.
14506
14507 1998-11-26 Jesse Thilo <jthilo@gnu.org>
14508
14509 * doc/bison.1:
14510 Document the BISON_HAIRY and BISON_SIMPLE variables.
14511
14512 1998-11-25 Jesse Thilo <jthilo@gnu.org>
14513
14514 * src/version.c: Build version.c automatically.
14515
14516 * src/reader.c:
14517 Fix token numbering (used to start at 258, not 257).
14518
14519 * src/system.h: Include config.h.
14520
14521 * src/getargs.c: Update bug report address.
14522
14523 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
14524 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
14525
14526 1998-11-25 Jesse Thilo <jthilo@gnu.org>
14527
14528 * Makefile.am:
14529 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
14530
14531 * configure.in, version.cin:
14532 Build version.c automatically.
14533
14534 * AUTHORS: Add AUTHORS file.
14535
14536 * README: Update bug report address.
14537
14538 * bison.simple:
14539 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
14540
14541 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
14542 Add automake stuff.
14543
14544 1998-11-25 Jesse Thilo <jthilo@gnu.org>
14545
14546 * doc/bison.texinfo: Clean up some formatting.
14547
14548 1998-05-05 Richard Stallman <rms@gnu.org>
14549
14550 * doc/bison.texinfo:
14551 Explain better why to make a pure parser.
14552
14553 1998-01-05 Richard Stallman <rms@gnu.org>
14554
14555 * src/files.c (openfiles):
14556 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
14557 find a temporary directory, if possible. Do not unlink files while
14558 they are open.
14559
14560 1997-08-25 Richard Stallman <rms@gnu.org>
14561
14562 * src/reader.c (stack_offset;):
14563 Change some warni to warns.
14564
14565 * src/lex.c (literalchar): Use warns, not warni.
14566
14567 1997-06-28 Richard Stallman <rms@gnu.org>
14568
14569 * src/bison.s1: Add a Bison version comment.
14570
14571 * src/main.c (fatal, warn, berror):
14572 Use program_name.
14573
14574 1997-06-28 Richard Stallman <rms@gnu.org>
14575
14576 * Makefile.in (bison_version): New variable.
14577 (dist): Use that variable.
14578 (bison.s1): Substitute the Bison version into bison.simple.
14579
14580 * bison.simple: Add a Bison version comment.
14581
14582 1997-06-18 Richard Stallman <rms@gnu.org>
14583
14584 * src/main.c (fatal, warn, berror):
14585 Make error messages standard.
14586 (toomany): Improve error message text.
14587
14588 * 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:
14589 new.h renamed to alloc.h.
14590
14591 1997-06-18 Richard Stallman <rms@gnu.org>
14592
14593 * Makefile.in: new.h renamed to alloc.h.
14594
14595 1997-05-24 Richard Stallman <rms@gnu.org>
14596
14597 * src/lex.c (literalchar):
14598 Fix the code for escaping \, " and '.
14599
14600 (lex): Avoid trouble when there are many chars
14601 to discard in a char literal with just several chars in it.
14602
14603 1997-05-17 Richard Stallman <rms@gnu.org>
14604
14605 * src/bison.s1:
14606 Use malloc, if using alloca is troublesome.
14607 (YYSTACK_USE_ALLOCA): New flag macro.
14608 Define it for some systems and compilers.
14609 (YYSTACK_ALLOC): New macro.
14610 (yyparse): Use YYSTACK_ALLOC to allocate stack.
14611 If it was malloc'd, free it.
14612
14613 1997-05-17 Richard Stallman <rms@gnu.org>
14614
14615 * bison.simple:
14616 Use malloc, if using alloca is troublesome.
14617 (YYSTACK_USE_ALLOCA): New flag macro.
14618 Define it for some systems and compilers.
14619 (YYSTACK_ALLOC): New macro.
14620 (yyparse): Use YYSTACK_ALLOC to allocate stack.
14621 If it was malloc'd, free it.
14622
14623 1997-04-23 Richard Stallman <rms@gnu.org>
14624
14625 * src/bison.s1:
14626 (alloca) [__hpux]: Always define as __builtin_alloca.
14627
14628 1997-04-23 Richard Stallman <rms@gnu.org>
14629
14630 * bison.simple:
14631 (alloca) [__hpux]: Always define as __builtin_alloca.
14632
14633 1997-04-22 Richard Stallman <rms@gnu.org>
14634
14635 * src/bison.s1:
14636 [__hpux]: Include alloca.h (right for HPUX 10)
14637 instead of declaring alloca (right for HPUX 9).
14638
14639 * src/bison.s1 (__yy_memcpy):
14640 Declare arg `count' as unsigned int.
14641 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
14642
14643 1997-04-22 Richard Stallman <rms@gnu.org>
14644
14645 * bison.simple:
14646 [__hpux]: Include alloca.h (right for HPUX 10)
14647 instead of declaring alloca (right for HPUX 9).
14648
14649 * bison.simple (__yy_memcpy):
14650 Declare arg `count' as unsigned int.
14651 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
14652
14653 1997-01-03 Richard Stallman <rms@gnu.org>
14654
14655 * src/allocate.c: [__STDC__ or _MSC_VER]:
14656 Declare calloc and realloc to return void *.
14657
14658 1997-01-02 Richard Stallman <rms@gnu.org>
14659
14660 * src/system.h:
14661 [_MSC_VER]: Include stdlib.h and process.h.
14662 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
14663
14664 * src/main.c (main): Return FAILURE as a value.
14665 (printable_version): Declare arg as int, not char.
14666
14667 1997-01-02 Richard Stallman <rms@gnu.org>
14668
14669 * Makefile.in (dist):
14670 Explicitly check for symlinks, and copy them.
14671
14672 1996-12-19 Richard Stallman <rms@gnu.org>
14673
14674 * src/files.c:
14675 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
14676
14677 1996-12-18 Paul Eggert <eggert@gnu.org>
14678
14679 * src/bison.s1 (yyparse):
14680 If __GNUC__ and YYPARSE_PARAM are both defined,
14681 declare yyparse to have a void * argument.
14682
14683 1996-12-18 Paul Eggert <eggert@gnu.org>
14684
14685 * bison.simple (yyparse):
14686 If __GNUC__ and YYPARSE_PARAM are both defined,
14687 declare yyparse to have a void * argument.
14688
14689 1996-12-17 Richard Stallman <rms@gnu.org>
14690
14691 * src/reduce.c (nbits): Add some casts.
14692
14693 1996-08-12 Richard Stallman <rms@gnu.org>
14694
14695 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
14696
14697 1996-08-12 Richard Stallman <rms@gnu.org>
14698
14699 * bison.simple: Test _MSDOS as well as _MSDOS_.
14700
14701 1996-07-31 Richard Stallman <rms@gnu.org>
14702
14703 * src/bison.s1:
14704 [__sun && __i386]: Include alloca.h.
14705
14706 1996-07-31 Richard Stallman <rms@gnu.org>
14707
14708 * bison.simple:
14709 [__sun && __i386]: Include alloca.h.
14710
14711 1996-07-30 Richard Stallman <rms@gnu.org>
14712
14713 * src/bison.s1: Comment change.
14714
14715 * src/bison.s1: Test _MSDOS_, not MSDOS.
14716
14717 1996-07-30 Richard Stallman <rms@gnu.org>
14718
14719 * bison.simple: Comment change.
14720
14721 * bison.simple: Test _MSDOS_, not MSDOS.
14722
14723 1996-06-01 Richard Stallman <rms@gnu.org>
14724
14725 * 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:
14726 Insert `_' macro around many string constants.
14727
14728 * src/main.c:
14729 Insert `_' macro around many string constants.
14730
14731 (main): Call setlocale, bindtextdomain and textdomain.
14732
14733 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
14734 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
14735 [ENABLE_NLS]: Include libintl.h.
14736 [ENABLE_NLS] (gettext): Define.
14737 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
14738 (N_, PACKAGE, LOCALEDIR): New macros.
14739
14740 1996-06-01 Richard Stallman <rms@gnu.org>
14741
14742 * POTFILES.in: New file.
14743
14744 * Makefile.in (allocate.o):
14745 Define target explicitly.
14746
14747 * Makefile.in (CFLAGS): Set to @CFLAGS@.
14748 (LDFLAGS): Set to @LDFLAGS@.
14749 (configure): Run autoconf only if preceding `cd' succeeds.
14750 (bison.s1): Redirect output to temporary file then move the
14751 temporary to the target, rather than redirecting directly to bison.s1.
14752 (clean): Remove config.status and config.log.
14753 (distclean): Don't remove config.status here.
14754
14755 1996-05-12 Richard Stallman <rms@gnu.org>
14756
14757 * src/bison.s1:
14758 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
14759
14760 1996-05-12 Richard Stallman <rms@gnu.org>
14761
14762 * bison.simple:
14763 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
14764
14765 1996-05-11 Richard Stallman <rms@gnu.org>
14766
14767 * src/bison.s1 (__yy_memcpy):
14768 Really reorder the args, as was supposedly done on Feb 14 1995.
14769 (yyparse): Calls changed accordingly.
14770
14771 1996-05-11 Richard Stallman <rms@gnu.org>
14772
14773 * Makefile.in (dist): Don't use $(srcdir).
14774
14775 * bison.simple (__yy_memcpy):
14776 Really reorder the args, as was supposedly done on Feb 14 1995.
14777 (yyparse): Calls changed accordingly.
14778
14779 1996-01-27 Richard Stallman <rms@gnu.org>
14780
14781 * src/output.c (output_rule_data):
14782 Test YYERROR_VERBOSE in the conditional
14783 around the definition of ttyname.
14784
14785 1995-12-29 Richard Stallman <rms@gnu.org>
14786
14787 * src/bison.s1:
14788 Fix line numbers in #line commands.
14789
14790 1995-12-29 Richard Stallman <rms@gnu.org>
14791
14792 * bison.simple:
14793 Fix line numbers in #line commands.
14794
14795 1995-12-27 Richard Stallman <rms@gnu.org>
14796
14797 * src/bison.s1 (YYPARSE_PARAM_DECL):
14798 In C++, make it always null.
14799 (YYPARSE_PARAM_ARG): New macro.
14800 (yyparse): Use YYPARSE_PARAM_ARG.
14801
14802 1995-12-27 Richard Stallman <rms@gnu.org>
14803
14804 * bison.simple (YYPARSE_PARAM_DECL):
14805 In C++, make it always null.
14806 (YYPARSE_PARAM_ARG): New macro.
14807 (yyparse): Use YYPARSE_PARAM_ARG.
14808
14809 1995-11-29 Richard Stallman <rms@gnu.org>
14810
14811 * doc/bison.texinfo:
14812 Describe literal string tokens, %raw, %no_lines, %token_table.
14813
14814 1995-11-29 Daniel Hagerty <hag@gnu.org>
14815
14816 * doc/bison.texinfo: Fixed update date
14817
14818 1995-10-16 Richard Stallman <rms@gnu.org>
14819
14820 * src/version.c: Version 1.25.
14821
14822 1995-10-16 Richard Stallman <rms@gnu.org>
14823
14824 * NEWS: *** empty log message ***
14825
14826 1995-10-16 Richard Stallman <rms@gnu.org>
14827
14828 * doc/bison.1, doc/bison.rnh:
14829 Add new options.
14830
14831 1995-10-15 Richard Stallman <rms@gnu.org>
14832
14833 * src/vmsgetargs.c, src/getargs.c:
14834 Added -n, -k, and -raw switches.
14835 (noparserflag, toknumflag, rawtoknumflag): New variables.
14836
14837 * src/symtab.h (SALIAS):
14838 New #define for adding aliases to %token.
14839 (struct bucket): Added `alias' field.
14840
14841 * src/reduce.c (reduce_grammar):
14842 Revise error message.
14843 (print_notices): Remove final `.' from error message.
14844
14845 * src/reader.c (reader_output_yylsp):
14846 New function.
14847 (readgram): Use `#if 0' around code that accepted %command
14848 inside grammar rules: The documentation doesn't allow it,
14849 and it will fail since the %command processors scan for the next %.
14850 (parse_token_decl): Extended the %token
14851 declaration to allow a multi-character symbol as an alias.
14852 (parse_thong_decl): New function.
14853 (read_declarations): Added %thong declarations.
14854 (read_declarations): Handle NOOP to deal with allowing
14855 % declarations as another means to specify the flags.
14856 (readgram): Allow %prec prior to semantics embedded in a rule.
14857 (skip_to_char, read_declarations, copy_definition)
14858 (parse_token_decl, parse_start_decl, parse_type_decl)
14859 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
14860 (get_type_name, copy_guard, copy_action, readgram)
14861 (get_type, packsymbols): Revised most error messages.
14862 Changed `fatal' to `warnxxx' to avoid aborting for error.
14863 Revised and use multiple warnxxx functions to avoid using VARARGS1.
14864 (read_declarations): Improve the error message for
14865 an invalid character. Do not abort.
14866 (read_declarations, copy_guard, copy_action): Use
14867 printable_version to avoid unprintable characters in printed output.
14868 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
14869 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
14870 Allow the type of a non-terminal can be given
14871 more than once, as long as all specifications give the same type.
14872
14873 * src/output.c:
14874 (output_headers, output_trailers, output, output_gram)
14875 (output_rule_data): Implement noparserflag variable.
14876 Implement toknumflag variable.
14877 (output): Call reader_output_yylsp to output LTYPESTR.
14878
14879 * src/main.c (main):
14880 If reader sees an error, don't process the grammar.
14881 (fatals): Updated to not use VARARGS1.
14882 (printable_version, int_to_string, warn, warni, warns, warnss)
14883 (warnsss): New error reporting functions. Avoid abort for error.
14884
14885 * src/lex.h:
14886 Added THONG and NOOP for alias processing.
14887 Added SETOPT for the new code that allows setting options with %flags.
14888
14889 * src/lex.c:
14890 Include getopt.h. Add some extern decls.
14891 (safegetc): New function to deal with EOF gracefully.
14892 (literalchar); new function to deal with reading \ escapes.
14893 (lex): Use literalchar.
14894 (lex): Implemented "..." tokens.
14895 (literalchar, lex, parse_percent_token): Made tokenbuffer
14896 always contain the token. This includes growing the token
14897 buffer while reading an integer.
14898 (parse_percent_token): Replaced if-else statement with percent_table.
14899 (parse_percent_token): Added % declarations as another
14900 way to specify the flags -n, -l, and -r. Also added hooks for
14901 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
14902 major changes to files.c.
14903 (lex) Retain in the incoming stream a character following
14904 an incorrect '/'.
14905 (skip_white_space, lex): Revised most error messages
14906 and changed fatal to warn to avoid aborting.
14907 (percent_table): Added %thong declarations.
14908
14909 * src/gram.h: Comment changes.
14910
14911 * src/files.c (openfiles, open_extra_files, done):
14912 Add faction flag
14913 and actfile file. Handle noparserflag. Both for -n switch.
14914
14915 * src/conflicts.c (resolve_sr_conflict):
14916 Remove use of alloca.
14917
14918 1995-06-01 Jim Meyering <meyering@gnu.org>
14919
14920 * doc/bison.texinfo: *** empty log message ***
14921
14922 1995-05-06 Richard Stallman <rms@gnu.org>
14923
14924 * src/bison.s1: Comment change.
14925
14926 1995-05-06 Richard Stallman <rms@gnu.org>
14927
14928 * bison.simple: Comment change.
14929
14930 1995-05-03 Richard Stallman <rms@gnu.org>
14931
14932 * src/version.c: Version now 1.24.
14933
14934 * src/bison.s1: Change distribution terms.
14935
14936 * src/version.c: Version now 1.23.
14937
14938 1995-05-03 Richard Stallman <rms@gnu.org>
14939
14940 * doc/bison.texinfo:
14941 Rewrite "Conditions for Using Bison".
14942 Update version to 1.24.
14943
14944 1995-05-03 Richard Stallman <rms@gnu.org>
14945
14946 * bison.simple: Change distribution terms.
14947
14948 1995-02-23 Richard Stallman <rms@gnu.org>
14949
14950 * src/files.c: Test __VMS_POSIX as well as VMS.
14951
14952 1995-02-14 Jim Meyering <meyering@gnu.org>
14953
14954 * src/bison.s1 (__yy_memcpy):
14955 Renamed from __yy_bcopy to avoid
14956 confusion. Reverse FROM and TO arguments to be consistent with
14957 those of memcpy.
14958
14959 1995-02-14 Jim Meyering <meyering@gnu.org>
14960
14961 * bison.simple (__yy_memcpy):
14962 Renamed from __yy_bcopy to avoid
14963 confusion. Reverse FROM and TO arguments to be consistent with
14964 those of memcpy.
14965
14966 1994-11-10 David J. MacKenzie <djm@gnu.org>
14967
14968 * NEWS: reformat
14969
14970 * NEWS: New file.
14971
14972 * Makefile.in (DISTFILES): Include NEWS.
14973
14974 * Makefile.in (DISTFILES):
14975 Include install-sh, not install.sh.
14976
14977 * configure.in: Update to Autoconf v2 macro names.
14978
14979 1994-10-05 David J. MacKenzie <djm@gnu.org>
14980
14981 * Makefile.in: fix typo
14982
14983 * Makefile.in (prefix, exec_prefix):
14984 Let configure set them.
14985
14986 1994-09-28 David J. MacKenzie <djm@gnu.org>
14987
14988 * Makefile.in: Set datadir to $(prefix)/share.
14989
14990 1994-09-15 Richard Stallman <rms@gnu.org>
14991
14992 * src/bison.s1:
14993 Update copyright notice and GPL version.
14994
14995 1994-09-15 Richard Stallman <rms@gnu.org>
14996
14997 * bison.simple:
14998 Update copyright notice and GPL version.
14999
15000 1994-07-12 Richard Stallman <rms@gnu.org>
15001
15002 * src/reduce.c, src/reader.c:
15003 entered into RCS
15004
15005 1994-05-05 David J. MacKenzie <djm@gnu.org>
15006
15007 * Makefile.in: entered into RCS
15008
15009 1994-03-26 Richard Stallman <rms@gnu.org>
15010
15011 * src/bison.s1: entered into RCS
15012
15013 1994-03-26 Richard Stallman <rms@gnu.org>
15014
15015 * bison.simple: entered into RCS
15016
15017 1994-03-25 Richard Stallman <rms@gnu.org>
15018
15019 * src/main.c: entered into RCS
15020
15021 1994-03-24 Richard Stallman <rms@gnu.org>
15022
15023 * src/conflicts.c: entered into RCS
15024
15025 1994-01-02 Richard Stallman <rms@gnu.org>
15026
15027 * Makefile.in: *** empty log message ***
15028
15029 1993-11-21 Richard Stallman <rms@gnu.org>
15030
15031 * src/bison.s1: *** empty log message ***
15032
15033 1993-11-21 Richard Stallman <rms@gnu.org>
15034
15035 * doc/bison.texinfo: entered into RCS
15036
15037 * doc/bison.texinfo: *** empty log message ***
15038
15039 1993-11-21 Richard Stallman <rms@gnu.org>
15040
15041 * bison.simple: *** empty log message ***
15042
15043 1993-10-25 David J. MacKenzie <djm@gnu.org>
15044
15045 * doc/bison.texinfo: *** empty log message ***
15046
15047 1993-10-19 Richard Stallman <rms@gnu.org>
15048
15049 * src/bison.s1: *** empty log message ***
15050
15051 1993-10-19 Richard Stallman <rms@gnu.org>
15052
15053 * bison.simple: *** empty log message ***
15054
15055 1993-10-14 Richard Stallman <rms@gnu.org>
15056
15057 * src/bison.s1: *** empty log message ***
15058
15059 1993-10-14 Richard Stallman <rms@gnu.org>
15060
15061 * bison.simple: *** empty log message ***
15062
15063 1993-09-14 David J. MacKenzie <djm@gnu.org>
15064
15065 * doc/bison.texinfo: *** empty log message ***
15066
15067 1993-09-13 Noah Friedman <friedman@gnu.org>
15068
15069 * Makefile.in: *** empty log message ***
15070
15071 1993-09-10 Richard Stallman <rms@gnu.org>
15072
15073 * src/conflicts.c: *** empty log message ***
15074
15075 * src/system.h: entered into RCS
15076
15077 1993-09-10 Richard Stallman <rms@gnu.org>
15078
15079 * doc/bison.1: entered into RCS
15080
15081 1993-09-06 Noah Friedman <friedman@gnu.org>
15082
15083 * src/version.c: entered into RCS
15084
15085 1993-09-06 Noah Friedman <friedman@gnu.org>
15086
15087 * Makefile.in: *** empty log message ***
15088
15089 1993-07-30 David J. MacKenzie <djm@gnu.org>
15090
15091 * Makefile.in: *** empty log message ***
15092
15093 1993-07-24 Richard Stallman <rms@gnu.org>
15094
15095 * src/bison.s1: *** empty log message ***
15096
15097 1993-07-24 Richard Stallman <rms@gnu.org>
15098
15099 * bison.simple: *** empty log message ***
15100
15101 1993-07-08 David J. MacKenzie <djm@gnu.org>
15102
15103 * Makefile.in: *** empty log message ***
15104
15105 1993-07-04 Richard Stallman <rms@gnu.org>
15106
15107 * src/bison.s1: *** empty log message ***
15108
15109 1993-07-04 Richard Stallman <rms@gnu.org>
15110
15111 * bison.simple: *** empty log message ***
15112
15113 1993-06-26 David J. MacKenzie <djm@gnu.org>
15114
15115 * src/getargs.c: entered into RCS
15116
15117 1993-06-26 David J. MacKenzie <djm@gnu.org>
15118
15119 * doc/bison.texinfo: *** empty log message ***
15120
15121 * doc/bison.1: New file.
15122
15123 1993-06-25 Richard Stallman <rms@gnu.org>
15124
15125 * src/getargs.c: New file.
15126
15127 1993-06-16 Richard Stallman <rms@gnu.org>
15128
15129 * src/bison.s1: *** empty log message ***
15130
15131 1993-06-16 Richard Stallman <rms@gnu.org>
15132
15133 * bison.simple: *** empty log message ***
15134
15135 1993-06-03 Richard Stallman <rms@gnu.org>
15136
15137 * src/bison.s1: New file.
15138
15139 1993-06-03 Richard Stallman <rms@gnu.org>
15140
15141 * doc/bison.texinfo: *** empty log message ***
15142
15143 1993-06-03 Richard Stallman <rms@gnu.org>
15144
15145 * bison.simple: New file.
15146
15147 1993-05-19 Richard Stallman <rms@gnu.org>
15148
15149 * doc/bison.texinfo: New file.
15150
15151 1993-05-07 Noah Friedman <friedman@gnu.org>
15152
15153 * Makefile.in: *** empty log message ***
15154
15155 1993-04-28 Noah Friedman <friedman@gnu.org>
15156
15157 * src/reader.c: *** empty log message ***
15158
15159 1993-04-23 Noah Friedman <friedman@gnu.org>
15160
15161 * src/alloc.h: entered into RCS
15162
15163 1993-04-20 David J. MacKenzie <djm@gnu.org>
15164
15165 * src/version.c: *** empty log message ***
15166
15167 * src/files.c, src/allocate.c:
15168 entered into RCS
15169
15170 * src/reader.c: *** empty log message ***
15171
15172 * src/lex.c: entered into RCS
15173
15174 * src/conflicts.c: New file.
15175
15176 * src/symtab.c: entered into RCS
15177
15178 * src/alloc.h: New file.
15179
15180 * src/LR0.c: entered into RCS
15181
15182 1993-04-18 Noah Friedman <friedman@gnu.org>
15183
15184 * src/reader.c: New file.
15185
15186 * src/version.c: *** empty log message ***
15187
15188 1993-04-18 Noah Friedman <friedman@gnu.org>
15189
15190 * Makefile.in: *** empty log message ***
15191
15192 1993-04-17 Noah Friedman <friedman@gnu.org>
15193
15194 * Makefile.in: *** empty log message ***
15195
15196 1993-04-15 Richard Stallman <rms@gnu.org>
15197
15198 * src/main.c, src/files.c:
15199 New file.
15200
15201 1993-04-15 Noah Friedman <friedman@gnu.org>
15202
15203 * configure.in: entered into RCS
15204
15205 * configure.in: *** empty log message ***
15206
15207 * configure.in: New file.
15208
15209 1993-04-14 Richard Stallman <rms@gnu.org>
15210
15211 * Makefile.in: New file.
15212
15213 1993-04-13 Richard Stallman <rms@gnu.org>
15214
15215 * src/version.c: New file.
15216
15217 1993-03-25 Richard Stallman <rms@gnu.org>
15218
15219 * src/output.c: entered into RCS
15220
15221 1992-09-25 Richard Stallman <rms@gnu.org>
15222
15223 * configure.bat: entered into RCS
15224
15225 1992-06-22 Richard Stallman <rms@gnu.org>
15226
15227 * src/vmsgetargs.c: entered into RCS
15228
15229 1992-06-22 Richard Stallman <rms@gnu.org>
15230
15231 * doc/bison.rnh: entered into RCS
15232
15233 1992-04-20 David J. MacKenzie <djm@gnu.org>
15234
15235 * README: entered into RCS
15236
15237 1992-01-22 Richard Stallman <rms@gnu.org>
15238
15239 * src/machine.h: entered into RCS
15240
15241 1991-12-21 Richard Stallman <rms@gnu.org>
15242
15243 * src/lalr.c, src/closure.c:
15244 entered into RCS
15245
15246 1991-12-20 Richard Stallman <rms@gnu.org>
15247
15248 * src/state.h: entered into RCS
15249
15250 1991-12-18 Richard Stallman <rms@gnu.org>
15251
15252 * src/print.c, src/nullable.c, src/derives.c:
15253 entered into RCS
15254
15255 1991-11-03 David J. MacKenzie <djm@gnu.org>
15256
15257 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
15258 entered into RCS
15259
15260 1988-09-09 Richard Stallman <rms@gnu.org>
15261
15262 * src/bison.hairy: entered into RCS
15263
15264 1987-12-16 Richard Stallman <rms@gnu.org>
15265
15266 * REFERENCES: entered into RCS
15267
15268
15269 -----
15270
15271 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
15272 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
15273 Software Foundation, Inc.
15274
15275 Copying and distribution of this file, with or without
15276 modification, are permitted provided the copyright notice and this
15277 notice are preserved.