]> git.saurik.com Git - bison.git/blame - ChangeLog
* data/glr.c (yyGLRStateSet): Rename yylookaheadStatuses to
[bison.git] / ChangeLog
CommitLineData
b7691f15
JD
12006-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
ddee1b06
PH
102006-01-11 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
11
12 * data/glr.c (yysplitStack): A little stylistic rewrite.
13
12f4614d
PH
142006-01-11 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
15
16 * data/glr.c (yyaddDeferredAction): Flesh out the comment.
17
32c29292
JD
182006-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
de366a2f 442006-01-08 Joel E. Denny <jdenny@ces.clemson.edu>
2781dbd1
JD
45
46 * tests/glr-regression.at: Update copyright year to 2006.
47
bf70fa87
JD
482006-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
05449a2c
JD
792006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
80
de366a2f 81 * data/c.m4 (b4_yy_symbol_print_generate): In yy_symbol_print, accept
05449a2c
JD
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
4158e0a1 862006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
fd2493f7 87
4158e0a1
JD
88 * tests/glr-regression.at: For consistency with my newer test cases,
89 don't thank myself.
90
d659304d
JD
912006-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
6ec2c0f2
AD
1102006-01-05 Akim Demaille <akim@epita.fr>
111
112 * src/reader.c, src/symlist.h, src/symlist.c: s/mid_rule/midrule/.
113
1b9c21fb
PE
1142006-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
84866159
AD
1242006-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
378f4bd8
AD
1382006-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
e2a21b6f
PE
1452006-01-03 Paul Eggert <eggert@cs.ucla.edu>
146
54662697
PE
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
073f9288
PE
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
1221b78a
PE
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
e2a21b6f
PE
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
8f7e3cf9
AD
1752006-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
3953ed88
AD
1972006-01-02 Akim Demaille <akim@epita.fr>
198
199 * src/output.c (output_skeleton): Don't hard wire the inclusion of
200 c.m4.
0a96ba81 201 * data/c++.m4, data/glr.c, data/yacc.c: Include c.m4.
3953ed88
AD
202 * data/glr.cc: Do not include stack.hh.
203
9ecafbbf
AD
2042006-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
c4d497a0
AD
2122005-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
4517da37
PE
2192005-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
e3233bf6
PE
2412005-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
8f3596a6
AD
2462005-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
721be13c
PE
2632005-12-22 Paul Eggert <eggert@cs.ucla.edu>
264
265 * NEWS: Improve wording for unused-value warnings.
266
a0af42fc
AD
2672005-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
affac613
AD
2752005-12-22 Akim Demaille <akim@epita.fr>
276
721be13c 277 * NEWS: Warn about unused values.
affac613
AD
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
9d9b8b70
PE
2982005-12-21 Paul Eggert <eggert@cs.ucla.edu>
299
8bb4c753
PE
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
9d9b8b70
PE
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
2c3b392a
AD
3222005-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
d6cff4dc
AD
3282005-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
a85284cf
AD
3472005-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
d508c281
JMG
3632005-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
3e7a2cd9
PE
3792005-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
3852005-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
877519f8
PE
3982005-12-09 Paul Eggert <eggert@cs.ucla.edu>
399
0eca5a39
PE
400 * tests/sets.at (Accept): Fix typos in regular expression used to
401 sed out the final state number.
402
2cec9080
PE
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
877519f8
PE
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
f5228370
PE
4652005-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
69ce078b
PE
4712005-12-06 "Joel E. Denny" <jdenny@ces.clemson.edu>
472
6ff99711
PE
473 * data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for
474 all stacks.
475 (yyparse): Iterate another stack in order to call user destructors.
69ce078b
PE
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
af3412cd
PE
4812005-12-01 Paul Eggert <eggert@cs.ucla.edu>
482
32b5b719 483 * NEWS: Document the following change.
af3412cd
PE
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
035aa4a0
PE
4972005-11-18 Paul Eggert <eggert@cs.ucla.edu>
498
d9963c85
PE
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
035aa4a0
PE
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
5142005-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
d1ff7a7c
AD
5212005-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
6de5398d
AD
5362005-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
a1373f55
AD
5422005-11-14 Akim Demaille <akim@epita.fr>
543
544 * data/glr.c (yy_reduce_print): Fix the $ number.
545
613d8952
AD
5462005-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
b2741627
AD
5542005-11-14 Akim Demaille <akim@epita.fr>
555
556 * data/glr.c (yyexpandGLRStack): Declare only if defined.
557
5059b5c8
AD
5582005-11-14 Akim Demaille <akim@epita.fr>
559
42249483
AD
560 * data/glr.cc: New.
561 * data/m4sugar/m4sugar.m4 (m4_prepend): New.
5059b5c8 562
4626a15d
AD
5632005-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
5732005-11-12 Akim Demaille <akim@epita.fr>
98ae9643
AD
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
5792005-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
1989d947
AD
5862005-11-11 Akim Demaille <akim@epita.fr>
587
588 * data/glr.c: Comment changes.
589
5902005-11-11 Akim Demaille <akim@epita.fr>
62b08cfc
AD
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
02998094
AD
6022005-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
5210672f
PE
6082005-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
a8991a1d
AD
6132005-11-09 Akim Demaille <akim@epita.fr>
614
615 * src/scan-skel.l: Use a couple of asserts.
616
36b5e963
AD
6172005-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
44e7ead1
PH
6322005-10-30 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
633
634 * data/glr.c (yyfill): Adjust comment.
36b5e963 635 (yyresolveAction): Initialize default location properly
44e7ead1
PH
636 for empty right-hand sides.
637 (yydoAction): Ditto.
638 Add comment explaining apparently dead code.
36b5e963
AD
639 * tests/glr-regression.at
640 (Incorrectly initialized location for empty right-hand side in GLR):
44e7ead1 641 New test.
36b5e963 642
e10a80ee
PE
6432005-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
067b32ee
AD
6502005-10-22 Akim <akim@epita.fr>
651
652 * Makefile.cfg: Adjust to config -> build-aux.
653 Reported by twledo.
654
4b367315
AD
6552005-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
24cc23d9
AD
6652005-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
d4476375
AD
6742005-10-14 Akim Demaille <akim@epita.fr>
675
676 * examples/calc++/test: Use set -x only when VERBOSE.
677
302c0aee
PE
6782005-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
7625ec2c
AD
6832005-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.
302c0aee 687 * tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
7625ec2c
AD
688 additional checks.
689 Use this to exercise C++ outputs in subdirs.
690 Reported by Oleg Smolsky.
691
ba0fe3c7
PE
6922005-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
9b8a5ce0
AD
7002005-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
4f6e011e
PE
7062005-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.
4d7aa45e 715 * data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
ba0fe3c7 716 as __STDC__.
4d7aa45e
PE
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.
4f6e011e 720
a1b3bf8c
AD
7212005-10-10 Akim Demaille <akim@epita.fr>
722
723 * examples/calc++/test: Be quiet unless VERBOSE.
724
412e44aa
PE
7252005-10-05 Paul Eggert <eggert@cs.ucla.edu>
726
2a4647a3
PE
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
412e44aa
PE
745 * data/m4sugar/m4sugar.m4 (_m4_map): New macro.
746 (m4_map, m4_map_sep): Use it. Handle the empty list correctly.
747
88c6637f
PE
7482005-10-04 Paul Eggert <eggert@cs.ucla.edu>
749
2f4f028d
PE
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
88c6637f
PE
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
fb32e373
JMG
7772005-10-03 Juan Manuel Guerrero <juan.guerrero@gmx.de>
778
779 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
780
edb8f44f
PE
7812005-10-02 Paul Eggert <eggert@cs.ucla.edu>
782
fb9c0b33
PE
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.
2f4f028d 804 * src/parse-gram.y (%printer): Prefer putc and puts to printf.
fb9c0b33
PE
805 * src/reduce.c (reduce_print): Likewise.
806 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
2f4f028d 807 * src/system.h: Include unlocked-io.h rather than stdio.h.
fb9c0b33 808
edb8f44f
PE
809 * data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
810 this confuses xgettext.
811
b50d2359
AD
8122005-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
21667f64
AD
8252005-10-02 Akim Demaille <akim@epita.fr>
826
827 * data/location.cc: New.
828
2b81e969
AD
8292005-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
ad6a9b97
JMG
8522005-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
fc695704
AD
8812005-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
8922005-10-01 Akim Demaille <akim@epita.fr>
5215c87f
AD
893
894 * examples/extexi: Restore the #line generation.
895
fb9712a9
AD
8962005-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
55f0c7b1
PE
9142005-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
fb9712a9 9222005-09-29 Akim Demaille <akim@epita.fr>
d4fb5e3c
AD
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
8a6f72f3
PE
9352005-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
0d50976f
PE
9442005-09-21 Paul Eggert <eggert@cs.ucla.edu>
945
ebc3737e
PE
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
0d50976f
PE
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 &&
62c4328e 958 defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
0d50976f
PE
959 * tests/torture.at (Exploding the Stack Size with Alloca): Adjust
960 to match yacc.c, to test more hosts.
961
a05b79df
PE
9622005-09-20 Paul Eggert <eggert@cs.ucla.edu>
963
55289366
PE
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
a05b79df
PE
977 * HACKING (release): Forwarn the Translation Project about
978 stable releses.
979
3ab2ca22
AD
9802005-09-20 Akim Demaille <akim@epita.fr>
981
982 * data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
983
a9739e7c
PE
9842005-09-19 Paul Eggert <eggert@cs.ucla.edu>
985
a702593e
PE
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
a9739e7c
PE
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
f479c6c6
AD
10062005-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
e2586f82
AD
10152005-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
2e8cf949
AD
10202005-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
c7fb0b90
AD
10252005-09-19 Akim Demaille <akim@epita.fr>
1026
1027 * NEWS, configure.ac: Bump to 2.1a.
1028
1bd0deda
PE
10292005-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
10472005-09-16 Akim Demaille <akim@epita.fr>
c1432f65
AD
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
1bd0deda 10542005-09-16 Akim Demaille <akim@epita.fr>
cf147260
AD
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
dbcdae2d
AD
10652005-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
70d8f291
AD
10762005-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
b47dbebe
PE
10812005-09-15 Paul Eggert <eggert@cs.ucla.edu>
1082
ae199bf1
PE
1083 * data/glr.c (yyresolveValue): Add default case to pacify
1084 gcc -Wswitch-default. Problem reported by twlevo@xs4all.nl.
1085
b47dbebe
PE
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
10952005-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
00292f66
PE
11012005-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
a420f962
PE
11122005-09-09 Paul Eggert <eggert@cs.ucla.edu>
1113
00292f66
PE
1114 * data/c.m4 (b4_identification): Define YYBISON_VERSION.
1115 Suggested by twlevo@xs4all.nl.
1116
127287e9
PE
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
a420f962
PE
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.
48b16bbc
PE
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.
a420f962
PE
1138
11392005-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
42a6501d
PE
11502005-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
ef9a1faf
PE
11612005-08-25 Paul Eggert <eggert@cs.ucla.edu>
1162
5b4aaf78
PE
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
b5240ba5
PE
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
ef9a1faf
PE
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
e6efa9da
AD
11752005-08-25 Akim Demaille <akim@epita.fr>
1176
1177 * tests/local.at (AT_COMPILE_CXX): Pass $LINKS too.
1178
adc90f13
PE
11792005-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
f9315de5
PE
11882005-08-21 Paul Eggert <eggert@cs.ucla.edu>
1189
15d29c1f
PE
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
dd5f2af2
PE
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>.
6250acbd 1199 * data/lalr1.cc (yyerturn): Likewise.
dd5f2af2
PE
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
f9315de5
PE
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
04098407
PE
12242005-07-24 Paul Eggert <eggert@cs.ucla.edu>
1225
1226 * NEWS: Version 2.0b.
1227
ca5d2013
PE
1228 * Makefile.am (SUBDIRS): Put examples before tests, so that
1229 "make check" doesn't finish with "All 1 tests passed".
1230
3d54b576
PE
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
d53ae497
PE
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
fc01665e
PE
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
04098407
PE
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
13412005-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
0ffda363
PE
13802005-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
14012005-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
6100a9aa
PE
14382005-07-18 Paul Eggert <eggert@cs.ucla.edu>
1439
258b75ca
PE
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
1a059451
PE
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
97460c78
PE
1475 * data/c.m4 (b4_yysymprint_generate): Use YYFPRINTF, not fprintf.
1476
30757c8c
PE
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
ac8c5689
PE
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
6100a9aa
PE
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
15f40952
PE
15442005-07-17 Paul Eggert <eggert@cs.ucla.edu>
1545
67fd79c4
PE
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
15f40952
PE
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
f32c66b5
PE
15612005-07-14 Paul Eggert <eggert@cs.ucla.edu>
1562
a22ff96f 1563 Fix problems reported by twlevo@xs4all.nl.
e2688cd9
PE
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):
c70fdfcd 1569 Add casts to pacify C++ compilers.
1beb0b24
PE
1570 * tests/glr-regression.at (Improper merging of GLR delayed action
1571 sets): Declare yylex before using it.
f32c66b5 1572 * tests/Makefile.am (maintainer-check-g++): Fix a stray
a22ff96f
PE
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.
f32c66b5 1580
d741bd1b
PE
15812005-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
0410a6e0
PE
15862005-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
f7ab6a50
PE
15932005-07-12 Paul Eggert <eggert@cs.ucla.edu>
1594
baf785db 1595 * NEWS: Document recent i18n improvements.
f7ab6a50
PE
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.
0410a6e0 1620 * src/getarg.c (PRINT_LOCALEDIR_OPTION): Let the C compiler determine
f7ab6a50
PE
1621 its value.
1622 * src/main.c (main): Bind the bison-runtime domain, too.
1623
16242005-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
22dda0f0
AD
16562005-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
82b248ad
AD
16632005-07-12 Akim Demaille <akim@epita.fr>
1664
1665 * src/parse-gram.y: Use %printer instead of YYPRINT.
1666
fa0e9314
AD
16672005-07-12 Akim Demaille <akim@epita.fr>
1668
867a3e00
AD
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
16732005-07-12 Akim Demaille <akim@epita.fr>
1674
1675 * data/glr.c (b4_syncline): Fix (swap) the definitions of
fa0e9314
AD
1676 b4_at_dollar and b4_dollar_dollar.
1677
e054b190
PE
16782005-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
34160ec4
PE
16832005-07-09 Paul Eggert <eggert@cs.ucla.edu>
1684
407d4a75
PE
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
34160ec4
PE
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
c3d5a4a7
PE
16942005-07-07 Paul Eggert <eggert@cs.ucla.edu>
1695
b34d96c1
PE
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
c3d5a4a7
PE
1716 * bootstrap (gnulib_modules): Add gettext, now that it's no longer
1717 implied by the other modules.
1718
828c373b
AD
17192005-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
63cb01d6
PE
17302005-07-05 Paul Eggert <eggert@cs.ucla.edu>
1731
fd2df2ed
PE
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
63cb01d6
PE
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
1c59e0a1
AD
17692005-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
8a0adb01
AD
17772005-06-24 Akim Demaille <akim@epita.fr>
1778
1779 * doc/bison.texinfo (C++ Parser Interface): Use defcv to define
1780 class typedefs.
1781
12545799
AD
17822005-06-22 Akim Demaille <akim@epita.fr>
1783
1784 * doc/bison.texinfo (C++ Language Interface): First stab.
1785 (C++ Parsers): Remove.
1786
99be0235
AD
17872005-06-22 Akim Demaille <akim@epita.fr>
1788
1789 * data/lalr1.cc (yylex_): Honor %lex-param.
1790
0ffd4fd1
AD
17912005-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
0925ebb4
PE
18002005-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
43d3b664
PH
18062005-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
3062864d
PE
18112005-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
989b5b8e
AD
18162005-05-30 Akim Demaille <akim@epita.fr>
1817
1818 * data/lalr1.cc (_): New.
1819 Translate the various messages.
1820
bedf57f5
PE
18212005-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
4d1801f1
PE
18322005-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
18422005-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
b94a9e1e
PE
18472005-05-23 Paul Eggert <eggert@cs.ucla.edu>
1848
85ac3861
PE
1849 * README: Mention m4 1.4.3. Remove obsolete advice about
1850 Sun Forte Developer 6 update 2, VMS, and MS-DOS.
1851
b94a9e1e
PE
1852 * bootstrap: Remove workaround for problem I encountered with
1853 gettext 0.14.1; it seems to be fixed now.
1854
51c30d21
PE
18552005-05-22 Paul Eggert <eggert@cs.ucla.edu>
1856
009ce67d
PE
1857 * NEWS: Version 2.0a.
1858
f2a97c62
PE
1859 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
1860 the previous change.
1861
c8775f93
PE
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
3ea5f0ec
PE
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
51c30d21
PE
1896 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
1897 yesterday's yacc.c fix.
1898
cea1469d
PE
18992005-05-21 Paul Eggert <eggert@cs.ucla.edu>
1900
3ea5f0ec
PE
1901 * data/glr.c, data/lalr1.cc: Update copyright date.
1902
cea1469d
PE
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
5e6f62f2
PH
19132005-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.
cea1469d 1930
0fb669f9
PE
19312005-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
51f4735e
PE
19692005-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
80ce3401
PE
19742005-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
19852005-04-24 Paul Eggert <eggert@cs.ucla.edu>
1986
1987 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
1988
72f000b0
PE
19892005-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.
c19683bb 1997 * tests/input.at (Torturing the Scanner): Likewise.
72f000b0
PE
1998 * tests/regression.at (Token definitions, Web2c Actions): Likewise.
1999
1094323f
PE
20002005-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
ca407bdf
PE
20062005-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
1ce59070
PE
20282005-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
a749a695
PE
20382005-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
8fb1053b
PE
20462005-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
ff498c4a
PE
20532005-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
65211d70
PE
20602005-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
9577fb1f
PE
20652005-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
78b178f7
PE
20712005-03-17 Paul Eggert <eggert@cs.ucla.edu>
2072
a2599d0f
PE
2073 Respond to problems reported by twlevo@xs4all.nl.
2074
2075 * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
2076
78b178f7
PE
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.
78b178f7 2082
7296e729
PE
20832005-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
05ac60f3
PE
20892005-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
7eb453ac
PE
21092005-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
4c04c52a
PE
21152005-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
a61e1620
PE
21202005-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
9ec93868
PE
21262005-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
73ce7e7e
PE
21352005-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
2e72b98e
PE
21402005-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
e0d634e5
PE
21452005-01-24 Paul Eggert <eggert@cs.ucla.edu>
2146
ccf830a4
PE
2147 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
2148 Problem reported by twlevo@xs4all.nl.
2149
e0d634e5
PE
2150 * doc/bison.texinfo: Change @dircategory from "GNU programming
2151 tools" to "Software development". Requested by Richard Stallman
2152 via Karl Berry.
2153
7bbc8cb0
PE
21542005-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
08b770bc
PE
21592005-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
95f22ad2
PE
21662005-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
d229d15c
PE
21732005-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
ecadd90f
PE
21782005-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
213744b5
PE
21842005-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
249d3236
PE
21912005-01-05 Paul Eggert <eggert@cs.ucla.edu>
2192
2193 * TODO: Mention that we should allow NUL bytes in tokens.
2194
987cc1fb
PE
21952005-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
08fe02d9
PE
22002005-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
010c0266
PE
22112004-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
da12206a
PE
22162004-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.
3a4734aa 2220 * configure.ac (AC_INIT): Bump version to 2.0.
da12206a
PE
2221 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
2222
c935d934
PE
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
da12206a
PE
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
0a2c5137
PE
22352004-12-22 Paul Eggert <eggert@cs.ucla.edu>
2236
d7e14fc0
PE
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
0a2c5137
PE
2252 * doc/bison.texinfo (Location Default Action): Mention that n must
2253 be zero when k is zero. Suggested by Frank Heckenbach.
2254
e019c247
AD
22552004-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
72731bb7
AD
22722004-12-21 Akim Demaille <akim@epita.fr>
2273
2274 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
2275
9a0d8bec
AD
22762004-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.
72731bb7
AD
2285 Forward declare them before the user code.
2286 * tests/Makefile.am (check-local, installcheck-local): Pass
2287 TESTSUITEFLAGS to the TESTSUITE.
9a0d8bec 2288
99880de5
AD
22892004-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
9bec482e
PE
23032004-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
f6fbd3da
PE
23082004-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
efeed023
AD
23432004-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
bc82c5a5
PE
23552004-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
fd19f271
AD
23652004-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
10454ea4
AD
23712004-12-16 Akim Demaille <akim@epita.fr>
2372
2373 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
2374 real.
2375
c5b95ccf
AD
23762004-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
617a8f12
AD
23852004-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
1e547e6e
PE
24072004-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
735d6bd4
AD
24212004-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
2e1f5829
AD
24302004-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
a3cb6248
AD
24382004-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
07fed891
AD
24562004-12-15 Akim Demaille <akim@epita.fr>
2457
2458 Remove b4_root related material: failure experiment
a3cb6248 2459 (which goal was to allow to derive from a class).
07fed891
AD
2460
2461 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
2462 definitions and uses.
2463
e603eaa5
PE
24642004-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
fafb007d
PE
24742004-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
48814dcd
PE
24912004-12-10 Paul Eggert <eggert@cs.ucla.edu>
2492
a4e1a53b
PE
2493 * HACKING: Update email addresses to send announcements to.
2494
48814dcd
PE
2495 * configure.ac (AC_INIT): Bump version to 1.875f.
2496
337116ba
PE
24972004-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
68b082af 2518 specifying whether the test should be skipped. Use it tp
337116ba 2519 specify that the [%defines %skeleton "lalr1.cc"] tests currently
68b082af 2520 fail on some hosts, and should be skipped.
337116ba 2521
da2a7671
PE
25222004-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
00baeeac
PE
25872004-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
be3d9d42
AD
25982004-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
78e526d5
PE
26052004-11-23 Paul Eggert <eggert@cs.ucla.edu>
2606
2607 * bootstrap (gnulib_modules): Add extensions.
2608 Problem reported by Jim Meyering.
2609
afbb696d
PE
26102004-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.
78e526d5 2616 Problem reported by Jim Meyering.
afbb696d 2617
c1f8f16a
AD
26182004-11-17 Akim Demaille <akim@epita.fr>
2619
2620 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
2621
26222004-10-28 Akim Demaille <akim@epita.fr>,
9a1e9989
AD
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
68e11668
AD
26352004-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
97cbc73e
PE
26422004-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
e342c3be
AD
26472004-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
93602feb 26642004-10-22 Akim Demaille <akim@epita.fr>
04098407 2665 and Paul Eggert <eggert@cs.ucla.edu>
93602feb
PE
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
dba08b04
PE
26792004-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
df09ef2e
AD
26852004-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
146bc99d
PE
27032004-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
e503aa60
AD
27112004-10-06 Akim Demaille <akim@epita.fr>
2712
2713 * src/parse-gram.y (add_param): Fix the truncation of trailing
2714 spaces.
2715
b4a20338
AD
27162004-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
f85a5e6f
AD
27332004-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
b203fc2c
AD
27382004-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
5b7e1e73
PE
27452004-09-27 Paul Eggert <eggert@cs.ucla.edu>
2746
3fee967f
PE
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.
5b7e1e73 2749
0dcca5c2
AD
27502004-09-27 Akim Demaille <akim@epita.fr>
2751
2752 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
2753
6dde1c82
AD
27542004-09-27 Akim Demaille <akim@epita.fr>
2755
2756 * data/lalr1.cc (b4_parse_param_decl_1): New.
b203fc2c 2757 (b4_parse_param_decl): Use it to have different names between attribute
6dde1c82
AD
2758 and argument names.
2759 (b4_cc_constructor_call): Likewise.
2760
b233d555
AD
27612004-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
619404e3
AD
27672004-09-24 Akim Demaille <akim@epita.fr>
2768
2769 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
2770 after the location.
2771
dd8d9022
AD
27722004-09-24 Akim Demaille <akim@epita.fr>
2773
2774 * doc/bison.texinfo (Table of Symbols): Sort.
2775
0092f063
AD
27762004-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
451364ed
AD
27822004-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
18d192f0
AD
28012004-09-20 Akim Demaille <akim@epita.fr>
2802
2803 * doc/bison.texinfo (Initial Action Decl): New.
2804
b8458aa5
AD
28052004-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
3fc16193
AD
28162004-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
ecfe33e7
AD
28412004-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
1576d44d
AD
28512004-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
9c66f418
AD
28662004-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
52d5733f
AD
28922004-09-06 Akim Demaille <akim@epita.fr>
2893
2894 * data/lalr1.cc: Adjust the indentation of the labels.
04098407 2895 (Parser::pop): New.
52d5733f
AD
2896 Use it.
2897
a0e68930
AD
28982004-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
e757bb10
AD
29092004-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
0fe1f06d
AD
29182004-09-02 Akim Demaille <akim@epita.fr>
2919
2920 * data/lalr1.cc (translate_, destruct_): No reason to be static.
2921
284acc8b
AD
29222004-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
a5eb1ed2
AD
29332004-09-02 Akim Demaille <akim@epita.fr>
2934
b7c72fe1
AD
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.
a5eb1ed2
AD
2939 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
2940 %printer calls to use cdebug_ when using lalr1.cc.
2941
417141dd
AD
29422004-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
2fa09258
AD
29472004-08-26 Akim Demaille <akim@epita.fr>
2948
2949 * doc/bison.texinfo (Implementing Loops): Rename as...
2950 (Implementing Gotos/Loops): this.
2951
9378b508
PE
29522004-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
87a8ad5c
PE
29632004-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
dca81a78
PE
29682004-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
c9cbf7c5
PE
29752004-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>.
2fa09258 2980
c9cbf7c5
PE
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
fa7e68c3
PE
29942004-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".
2fa09258 3000
fa7e68c3
PE
30012004-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
99a9344e
PE
30082004-06-21 Frank Heckenbach <frank@g-n-u.de>
3009
3010 * doc/bison.texinfo (Simple GLR Parsers): New section.
3011
8dd162d3
PE
30122004-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
57a90331
PE
30372004-06-03 Paul Eggert <eggert@cs.ucla.edu>
3038
3039 * README: Update location of patched M4 distribution.
3040
8ed3234a
PE
30412004-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
07971983
PE
30482004-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
29058652
PE
30612004-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
62cb8a99
PE
30662004-05-27 Paul Eggert <eggert@cs.ucla.edu>
3067
fd418816
PE
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.
2fa09258 3080
62cb8a99
PE
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
161a71f3 3083 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
62cb8a99
PE
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
caa52c10
PE
30882004-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
4bfd5e4e
PE
30982004-05-25 Paul Eggert <eggert@cs.ucla.edu>
3099
2cef3017
PE
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
b9c85d5c
PE
3103 * bootstrap: Don't assume $(...) works; use `...` instead.
3104 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
3105 gettext better.
3106
4bfd5e4e
PE
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
6a36ff94
PE
31112004-05-24 Paul Eggert <eggert@cs.ucla.edu>
3112
6712933e
PE
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.
b9c85d5c 3121
6a36ff94
PE
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
209ea708
PE
31292004-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:
161a71f3 3134 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
209ea708
PE
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
41ca2549
PE
31412004-05-21 Paul Eggert <eggert@cs.ucla.edu>
3142
383e69dc
PE
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
41ca2549
PE
3148 * configure.ac (AC_INIT): Update to 1.875e.
3149
e476c87d
PE
31502004-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
233a88ad
PE
31632004-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.
e476c87d 3170
12ffdd28
PE
31712004-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.
e476c87d 3183
12ffdd28
PE
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.
9668e2be 3189 Don't DEFUN AM_INTL_SUBDIR twice.
12ffdd28
PE
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.
e476c87d 3203
1f65350a
PE
32042004-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.
12ffdd28
PE
3218 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
3219 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1f65350a 3220 does this for us.
12ffdd28
PE
3221 (AC_ISC_POSIX): Remove; we no longer support this
3222 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1f65350a
PE
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
33062004-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
4f16766c
PE
33502004-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
779e7ceb
PE
33552004-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
d6328241
PH
33962004-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.
4f16766c 3401
d6328241
PH
3402 * src/scan-gram.l: Recognize %expect-rr.
3403
4f16766c 3404 * src/conflicts.h (expected_sr_conflicts): Rename from
d6328241 3405 expected_conflicts.
4f16766c 3406 (expected_rr_conflicts): Declare.
d6328241
PH
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.
4f16766c 3415
d6328241 3416 * doc/bison.texinfo: Add documentation for %expect-rr.
4f16766c 3417
1452af69
PE
34182004-03-08 Paul Eggert <eggert@gnu.org>
3419
3420 Add support for hex token numbers. Suggested by Odd Arild Olsen in
161a71f3 3421 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
1452af69
PE
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
006d217d
PE
34332004-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
161a71f3 3438 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
006d217d 3439
c2729758
ADL
34402004-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
dd0e0635
PE
34582004-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
34692004-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
be16239b
PH
34752004-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
5fa90832
PE
34802003-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.
dd0e0635 3494
b165c324
AD
34952003-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
26e06a21
ADL
35012003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
3502
3503 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
3504
92ac3705
PE
35052003-10-07 Paul Eggert <eggert@twinsun.com>
3506
6a5ecb38
PE
3507 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
3508 if testsuite doesn't exist.
3509
92ac3705
PE
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
91d2c560
PE
35152003-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
0cc3da3a
PE
35222003-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
22fccf95
PE
35302003-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
fc8f2965
AD
35382003-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
39a06c25
PE
35452003-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.
fc8f2965 3558
39a06c25
PE
35592003-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
62b6aef9
AD
35642003-08-27 Akim Demaille <akim@epita.fr>
3565
3566 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
3567 GCC warnings.
3568
89e1cc61
AD
35692003-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
a08460b0
AD
35742003-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
603f1cfd
AD
35812003-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
cd3684cf
AD
35882003-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
4e03e201
AD
36072003-08-25 Akim Demaille <akim@epita.fr>
3608
3609 * doc/bison.texinfo: Don't promote stdout for error messages.
3610
8c182d05
AD
36112003-08-25 Akim Demaille <akim@epita.fr>
3612
3613 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
3614 From Alexandre Duret-Lutz.
3615
6a60c4cf
PE
36162003-08-25 Akim Demaille <akim@epita.fr>
3617
3618 Version 1.875c.
3619
25f66e1a
AD
36202003-08-25 Akim Demaille <akim@epita.fr>
3621
3622 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
3623 Use them.
3624
5348bfbe
AD
36252003-08-25 Akim Demaille <akim@epita.fr>
3626
3627 * data/lalr1.cc (Parser::reduce_print_): New.
3628 Use it.
3629
47301314
AD
36302003-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
161a71f3 3634 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
47301314
AD
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
1f7a61ff
AD
36512003-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
327b5b56
PE
36642003-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
0051e3ed
PE
36712003-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.
1f7a61ff 3678
137437c6
PE
36792003-07-25 Paul Eggert <eggert@twinsun.com>
3680
5b620e06
PE
3681 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
3682 for portability to K&R C (after ansi2knr, presumably). See
161a71f3 3683 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
5b620e06
PE
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
137437c6
PE
3688 Let the user specify how to allocate and free memory.
3689 Derived from a suggestion by Frank Heckenbach in
161a71f3 3690 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
137437c6
PE
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
ddb85ca5
PE
36962003-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
161a71f3 3700 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
ddb85ca5
PE
3701 (trivial change)
3702
39910e09
AD
37032003-06-25 Akim Demaille <akim@epita.fr>
3704
3705 * config/depcomp, config/install-sh: Update from masters.
3706
0ae99356
PE
37072003-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
cd05d13c
PE
37172003-06-19 Paul Eggert <eggert@twinsun.com>
3718
81fd08ca
PE
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
161a71f3 3723 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
4dcf140b 3724
cd05d13c
PE
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
4dcf140b
PE
37332003-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
8dd76bee
PE
37382003-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:
161a71f3 3768 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
8dd76bee
PE
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
f8e8262e 3782 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
8dd76bee 3783 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
f8e8262e 3784 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
cd05d13c 3785
8dd76bee
PE
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
25005f6a
PH
38102003-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
8dd76bee 3818 (I can't quite reconstruct why these were not allowed before).
25005f6a 3819
137437c6 3820 Fixes to avoid problem that $-N rules in GLR parsers can cause
25005f6a 3821 buffer overruns, corrupting state.
8dd76bee
PE
3822
3823 * src/output.c (prepare_rules): Output max_left_semantic_context
25005f6a
PH
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.
8dd76bee 3841
25005f6a
PH
3842 * tests/cxx-type.at: Exercise location information; update tests
3843 to differentiate output with and without locations.
8dd76bee 3844 Remove forward declarations of yylex and yyerror---caused errors
25005f6a
PH
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.
8dd76bee 3852
711f40b7
PE
38532003-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
ac695f7d
PE
38702003-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
26ec81e0
PE
38762003-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
161a71f3 3888 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
26ec81e0
PE
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:
161a71f3 3909 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
26ec81e0
PE
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
d0829076
PE
39292003-05-24 Paul Eggert <eggert@twinsun.com>
3930
c6ae27df
PE
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.
26ec81e0 3938
d0829076
PE
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
6b2584b7
PE
40022003-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
caf37a36
ADL
40132003-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
3ab37077
PE
40292003-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
40372003-05-05 Paul Eggert <eggert@twinsun.com>
163ab321
PE
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
161a71f3 4042 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
163ab321 4043
e743727f
PE
40442003-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
161a71f3 4049 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
e743727f 4050
916708d5
AD
40512003-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
a06ea4aa
AD
40632003-04-29 Akim Demaille <akim@epita.fr>
4064
4065 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
4066
211074ca
AD
40672003-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
6175ffe3
PE
40732003-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
b1e95857
PE
40782003-04-27 Paul Eggert <eggert@twinsun.com>
4079
4080 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
161a71f3 4081 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
b1e95857
PE
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
acda9df6
PE
40862003-04-26 Paul Eggert <eggert@twinsun.com>
4087
3470c57b
PE
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
161a71f3 4093 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
3470c57b 4094
acda9df6
PE
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
161a71f3 4099 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
acda9df6 4100
b5250f26
PE
41012003-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
089ac0f1
PE
41062003-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
5ededac6
PE
41122003-04-17 Paul Eggert <eggert@twinsun.com>
4113
1b8f2fff
PE
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
5ededac6
PE
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
161a71f3 4126 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
5ededac6
PE
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
b8be9132
AD
41352003-03-31 Akim Demaille <akim@epita.fr>
4136
4137 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
4138
d423d460
AD
41392003-03-31 Akim Demaille <akim@epita.fr>
4140
4141 * src/output.c (prepare_symbols): Avoid trailing spaces in the
4142 output.
4143
c7e441b4
AD
41442003-03-31 Akim Demaille <akim@epita.fr>
4145
4146 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
4147 From Paul Hilfinger.
4148
231897ad
AD
41492003-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
5b066063
AD
41542003-03-29 Akim Demaille <akim@epita.fr>
4155
4156 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
4157
22a74fec
AD
41582003-03-29 Akim Demaille <akim@epita.fr>
4159
4160 * doc/bison.texinfo (Strings are Destroyed): New.
4161
0eee27e7
PE
41622003-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
f61aad93
PE
41692003-03-12 Paul Eggert <eggert@twinsun.com>
4170
537636c7
PE
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
161a71f3 4175 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
537636c7
PE
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
161a71f3 4183 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
537636c7
PE
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
f61aad93
PE
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}
5b066063 4199
f61aad93
PE
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
d2ffe116
AD
42342003-03-03 Akim Demaille <akim@epita.fr>
4235
4236 * ro.po: New.
4237
052826fd
AD
42382003-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
c4749565
AD
42432003-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
d5286af1
AD
42502003-03-02 Akim Demaille <akim@epita.fr>
4251
4252 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
4253 message.
4254
22e304a6
AD
42552003-03-02 Akim Demaille <akim@epita.fr>
4256
22e304a6
AD
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
67a25fed
AD
42612003-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
9c2b381f
PE
42752003-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
0433ba88
AD
42862003-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
b305ea69
PE
42932003-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
161a71f3 4297 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
b305ea69 4298
c3d25e01
PE
42992003-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
c267ffbc
PE
43072003-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
161a71f3 4312 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
c267ffbc
PE
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
f939fc12
AD
43182003-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
95923bd6
AD
43242003-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
2cdc240e
AD
43302003-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
5d003116
AD
43382003-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.
ba1ecc07 4344 With the help of Benoit Perrot.
5d003116 4345
d02b25f9
AD
43462003-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
0d1c3a04
AD
43572003-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
60a777aa
AD
43622003-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
0b86fc41
AD
43692003-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
da99a5dc
PE
43772003-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
161a71f3 4382 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
da99a5dc 4383
93b8c255
PE
43842003-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
161a71f3 4388 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
93b8c255
PE
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
7548fed2
AD
43962003-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)
d02b25f9 4427 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
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
43a176ef
AD
44332003-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
fc049e9c
AD
44382003-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
a737b216
PE
44432003-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
68e93ad5
AD
44962003-02-02 Akim Demaille <akim@epita.fr>
4497
4498 * src/scan-skel.l: Scan more than one inert character per yylex
4499 invocation.
4500
92898986
PE
45012003-02-01 Paul Eggert <eggert@twinsun.com>
4502
4503 Version 1.875a.
4504
1d9d5d71
PE
4505 * po/LINGUAS: Add ms.
4506
0435d061
AD
45072003-01-30 Akim Demaille <akim@epita.fr>
4508
4509 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
4510
6029a57f
PH
45112003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4512
4513 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
4514 of $1.
0435d061
AD
4515
4516 Changes in response to error report by S. Eken: GLR mode does not
6029a57f 4517 handle negative $ indices or $ indices in embedded rules correctly.
161a71f3 4518 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 4519
6029a57f
PH
4520 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
4521 (b4_rhs_location): Ditto.
0435d061 4522 (yyfill): New function to copy from stack tree into array
6029a57f 4523 incrementally.
0435d061
AD
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
6029a57f
PH
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.
0435d061 4533 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
4534 (yyglrReduce): Ditto.
4535 (yydoAction): Ditto
0435d061 4536
6029a57f
PH
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
6cee6297
PE
45442003-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
161a71f3
PE
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>.
6cee6297 4551
b2a836b5
PE
45522003-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
4196b931
PE
45642003-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
161a71f3 4568 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
4196b931 4569
3ae831b4
AD
45702003-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
e3aa65c5
PE
45812003-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
161a71f3 4586 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
e3aa65c5
PE
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
f0057011
AD
45962003-01-09 Akim Demaille <akim@epita.fr>
4597
4598 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
4599
1ee6d2a0
PE
46002003-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
d4fd77c4
PE
46072003-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
464c6927
PE
46122003-01-04 Paul Eggert <eggert@twinsun.com>
4613
d600ee67
PE
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
464c6927
PE
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
46252003-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.
d600ee67 4635
464c6927
PE
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.
d600ee67 4641
464c6927
PE
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.
d600ee67 4648
464c6927
PE
4649 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
4650
0f42c7d5
PE
46512003-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
dc546b0f
PE
46572003-01-01 Paul Eggert <eggert@twinsun.com>
4658
4659 * Version 1.875.
4660
2c09b6a7
PE
46612002-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
dc546b0f 4668 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
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
535c0f63
PE
46762002-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.
d600ee67 4681
963fcc17
PE
46822002-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
b1efe548
PE
47102002-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
161a71f3 4714 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
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.
d600ee67 4732
983c5c2c
PE
47332002-12-26 Paul Eggert <eggert@twinsun.com>
4734
b1efe548
PE
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
983c5c2c
PE
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 ".".
d600ee67 4748
983c5c2c
PE
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.
d600ee67 4757
983c5c2c
PE
47582002-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
161a71f3 4762 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
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
23f2d9dc
PE
47762002-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
47862002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
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",
dc546b0f 4837 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
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
879ca4f8
PE
48512002-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
1c5fe69d
PE
48572002-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
7ea9026a
PE
4862 disagreed with the Bison documentation. Bug
4863 reported by Andrew Walrond.
d600ee67 4864
1c5fe69d
PE
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
d1de5372
PE
48722002-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.
1c5fe69d 4880 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
4881 as an alias for bison y.
4882
4883 * po/LINGUAS: Add da.
d600ee67 4884
d1de5372
PE
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
161a71f3 4897 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
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
d0f3fe23
PE
49032002-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
26b4a969
PE
50152002-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
996b1c7e
PE
51712002-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
161a71f3 5178 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 5179
e19c4e5d
PE
51802002-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.
26b4a969 5185
e19c4e5d
PE
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.
26b4a969 5206 (rules): Use it.
e19c4e5d
PE
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
52612002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 5262
e19c4e5d
PE
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.
26b4a969 5270
b64755e3
PE
52712002-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
161a71f3 5276 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 5277
6e746484
PE
52782002-11-30 Paul Eggert <eggert@twinsun.com>
5279
b64755e3
PE
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
6ba55592
PE
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
6e746484
PE
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
88510f9c
PE
53012002-11-29 Paul Eggert <eggert@twinsun.com>
5302
6e746484
PE
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
88510f9c
PE
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
bb92250c
PE
53222002-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
161a71f3 5328 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
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
3af4feb2
PE
53492002-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
53662002-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.
26b4a969 5371
58004308
PE
53722002-11-20 Paul Eggert <eggert@twinsun.com>
5373
5374 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
5375
53762002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 5377
58004308
PE
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
76ae8198
PE
54212002-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
161a71f3 5426 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 5427
d3c4e709
AD
54282002-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
8d8a7238
PE
54342002-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
b0937b22
AD
54532002-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
c5e3e510
AD
54662002-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
4c6cc1db
AD
54812002-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
6d9e8019
PE
54912002-11-16 Paul Eggert <eggert@twinsun.com>
5492
5493 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
5494
6e649e65
PE
54952002-11-15 Paul Eggert <eggert@twinsun.com>
5496
b25d88f6
PE
5497 * tests/actions.at (Actions after errors): New test case.
5498
6e649e65
PE
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
0f39aab9
AD
55072002-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
761c1926
AD
55172002-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
b0f98b10
AD
55222002-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
970785f1
PH
55332002-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
8fcc7db1
PE
55382002-11-14 Paul Eggert <eggert@twinsun.com>
5539
7ec1b48e
PE
5540 * src/output.c (output_skeleton): Call xfopen instead of
5541 duplicating xfopen's body.
5542
cfff7583 5543 Fix bugs reported by Nelson H. F. Beebe in
161a71f3 5544 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 5545
8fcc7db1
PE
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
e3aa65c5 5555 test backslash-newline in C character constant.
8fcc7db1 5556
4e8d992c
AD
55572002-11-14 Akim Demaille <akim@epita.fr>
5558
5559 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
5560 status of the compiler.
f32b346d 5561 Calling `exit 1' is no longer needed.
4e8d992c
AD
5562 Reported by Nelson H. F. Beebe.
5563
9501dc6e
AD
55642002-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
18b519c0
AD
55772002-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
9a86cdb9
PE
55842002-11-13 Paul Eggert <eggert@twinsun.com>
5585
daa33def 5586 Fix some bugs reported by Albert Chin-A-Young in
161a71f3 5587 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 5588
daa33def 5589 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 5590 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
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
8fcc7db1 5595 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 5596
9a86cdb9
PE
5597 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
5598 comments, since they're not portable. Use GNU coding style.
5599
9c1e26bd
AD
56002002-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
87f721cc
PE
56082002-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
464c6927 5615 by Nelson H. F. Beebe in
161a71f3 5616 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
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'.
464c6927 5625 This fixes one of the bugs reported by Nelson H. F. Beebe in
161a71f3 5626 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 5627
87f721cc
PE
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:
161a71f3 5631 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
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
be14ade5
AD
56432002-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
05291fbc
AD
56492002-11-12 Akim Demaille <akim@epita.fr>
5650
5651 * Makefile.maint: Sync with Autoconf:
5652 (local_updates): New.
5653
1f5fd52e
AD
56542002-11-12 Akim Demaille <akim@epita.fr>
5655
5656 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
5657
283f1e64
AD
56582002-11-12 Akim Demaille <akim@epita.fr>
5659
5660 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
5661 locations.
5662
886b69d1
AD
56632002-11-12 Akim Demaille <akim@epita.fr>
5664
5665 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
5666 not yyvalue.
5667
3df37415
AD
56682002-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
7bd6c77e
AD
56732002-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
b0400cc6
AD
56922002-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
72f889cc
AD
57042002-11-12 Akim Demaille <akim@epita.fr>
5705
5706 * doc/bison.texinfo (Destructor Decl): New.
5707
b1ae9233
AD
57082002-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.
72f889cc 5716 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
5717 the file name.
5718
7ec2d4cd
AD
57192002-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
573a6cd3
AD
57312002-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
95612cfa
AD
57392002-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
3e6656f9
AD
57742002-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
7672019c
PE
57872002-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:
161a71f3 5792 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
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
acea4f3b
PE
58572002-11-09 Paul Eggert <eggert@twinsun.com>
5858
5859 Fix the test failure due to GCC warnings described in
161a71f3 5860 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
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
20ef1ad5
PE
58812002-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
93724f13
AD
59052002-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
6e40b4eb
AD
59182002-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
2dfbfc12
AD
59282002-11-06 Akim Demaille <akim@epita.fr>
5929
5930 * tests/regression.at (Invalid inputs): Adjust to the recent
5931 messages.
5932
437c2d80
AD
59332002-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'.
2dfbfc12 5943 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 5944
900c5db5
AD
59452002-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
e183b123 59552002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 5956
e183b123 5957 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 5958 either has GLR conflict entries.
e183b123 5959
193eb6b7
PE
59602002-11-05 Paul Eggert <eggert@twinsun.com>
5961
e183b123
PE
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
193eb6b7
PE
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
29c01725
AD
59782002-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
8aeac3ca
AD
59832002-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
793a58bb
AD
59882002-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
c4d720cd
AD
59972002-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
613a0dc5
PE
60072002-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
2a8d363a
AD
60142002-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
9e32add8
AD
60492002-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
b02d90a5
PE
60562002-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.
9e32add8 6060
b02d90a5
PE
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).
9e32add8 6082
b02d90a5
PE
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.
9e32add8 6087
b02d90a5
PE
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
61162002-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
762b212b
PE
61312002-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
56100c60
AD
61462002-10-30 Akim Demaille <akim@epita.fr>
6147
6148 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
6149 #if.
6150
51b4a04c
PH
61512002-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.
e183b123 6156
bf1ebda2
PE
61572002-10-24 Paul Eggert <eggert@twinsun.com>
6158
5c16c6b1
PE
6159 Version 1.75a.
6160
bf1ebda2
PE
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
b526ee61
AD
61672002-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
f1886bb2
AD
61742002-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
c5576256
PE
61832002-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
27b0ffea
AD
61912002-10-22 Akim Demaille <akim@epita.fr>
6192
6193 * src/system.h: Include sys/types.
6194 Reported by Bert Deknuydt.
6195
223a7883
PE
61962002-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
62012002-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:
161a71f3
PE
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
27b0ffea 6214
223a7883
PE
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
8b76775a
AD
62192002-10-22 Akim Demaille <akim@epita.fr>
6220
6221 * data/README: New.
6222
6db10d14
PE
62232002-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.
27b0ffea 6241
6db10d14
PE
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
92a060fd
PE
62612002-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.
8b76775a 6275
e7cb57c0
AD
62762002-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
0245f82d
AD
62862002-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
39912f52
AD
63002002-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
20c1e2ad
AD
63152002-10-20 Akim Demaille <akim@epita.fr>
6316
6317 * src/tables.h, src/tables.c, src/output.c: Comment changes.
6318
21964f43
AD
63192002-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
66d30cd4
AD
63242002-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
95f2c9fe
PE
63352002-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.
66d30cd4 6357
95f2c9fe
PE
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
c19988b7
AD
63702002-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
ae7453f2
AD
63782002-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
0e575721
AD
64022002-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
724ce7f5
PE
64112002-10-18 Paul Eggert <eggert@twinsun.com>
6412
3a781eb2
PE
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
724ce7f5
PE
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
473d0a75
AD
64212002-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
e76d2469
PE
64332002-10-16 Paul Eggert <eggert@twinsun.com>
6434
93e2236a
PE
6435 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
6436 MUSCLE_TAB_H.
6437
e76d2469
PE
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
5bd1c419
PE
64462002-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.
e76d2469 6457
5bd1c419
PE
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.
e76d2469 6521
ae26e1f0
AD
65222002-10-14 Akim Demaille <akim@epita.fr>
6523
6524 Version 1.75.
6525
d43baf71
AD
65262002-10-14 Akim Demaille <akim@epita.fr>
6527
6528 * tests/Makefile.am (maintainer-check-posix): New.
6529
7ebc83e3
AD
65302002-10-14 Akim Demaille <akim@epita.fr>
6531
6532 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
6533 member.
6534
05846dae
AD
65352002-10-14 Akim Demaille <akim@epita.fr>
6536
6537 * src/tables.c (table_ninf_remap): base -> tab.
6538 Reported by Matt Rosing.
6539
1318e37d
PE
65402002-10-14 Paul Eggert <eggert@twinsun.com>
6541
447fbb17
PE
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.
05846dae 6548
1318e37d
PE
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
cc0f0794
PE
65562002-10-13 Paul Eggert <eggert@twinsun.com>
6557
5038f418
PE
6558 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
6559 true due to limited range of data type" warning from GCC.
6560
cc0f0794
PE
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
6fed0802
AD
65652002-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
32f0598d
AD
65702002-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
7ea9a33f
AD
65752002-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
ea99527d
AD
65812002-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
f377f69f
AD
65982002-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
2a1fe6ed
AD
66092002-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
f50adbbd
AD
66142002-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
ba0fe3c7 6621 check the length of the traces when %glr.
f50adbbd
AD
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
bcbad5b9
PE
66422002-10-13 Paul Eggert <eggert@twinsun.com>
6643
6644 Fix problem reported by Henrik Grubbstroem in
161a71f3 6645 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
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.
05846dae 6654
14904b89
PE
66552002-10-12 Paul Eggert <eggert@twinsun.com>
6656
1fe611e5
PE
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
161a71f3 6662 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 6663
1fe611e5
PE
6664 * lib/timevar.c: Update copyright date and clarify comments.
6665 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 6666
1fe611e5
PE
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
98194095
PE
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
161a71f3 6675 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 6676
14904b89
PE
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
161a71f3 6681 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 6682
ff6dca18
PE
66832002-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
eb714592
AD
66902002-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
b7195100
AD
66972002-10-11 Akim Demaille <akim@epita.fr>
6698
6699 * po/id.po: New.
6700
f28a0f2d
PE
67012002-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.
ba0fe3c7 6766 * lib/abitset.c (struct abitset_struct, abitset,
f28a0f2d
PE
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
6fbe4984
PE
68022002-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
161a71f3 6806 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
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
420f93c8
PE
68112002-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
68382002-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
ff68026d
PE
68442002-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.
420f93c8 6870
ff68026d
PE
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.
420f93c8 6884
ff68026d
PE
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.
420f93c8 6898
ff68026d
PE
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.
420f93c8 6906
ff68026d
PE
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
6aa452a6
AD
69242002-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
927f7817
AD
69302002-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
9738f41e
AD
69372002-09-27 Akim Demaille <akim@epita.fr>
6938
6939 Version 1.49c.
6940
a5c75d7f
AD
69412002-09-27 Akim Demaille <akim@epita.fr>
6942
6943 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
6944 (Because of AC_LIBSOURCE).
6945
8280e179
AD
69462002-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
ae64af35
AD
69552002-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
d1a1114f
AD
69652002-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
b906441c
AD
69702002-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
bd701811
AD
69792002-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
e0a13e7b
AD
69842002-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
c97011bf
AD
69922002-09-12 Akim Demaille <akim@epita.fr>
6993
6994 * m4/prereq.m4: Update, from Coreutils 4.5.1.
6995
d862b1be
AD
69962002-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
3d38c03a
AD
70022002-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
b6347355
AD
70082002-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
09ba4ab2
PE
70132002-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
21846f69
AD
70192002-09-06 Akim Demaille <akim@epita.fr>
7020
09ba4ab2
PE
7021 * data/c.m4 (b4_copyright): Move the GPL exception comment from
7022 here to...
7023 * data/yacc.c: here.
7024
21846f69
AD
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
c0ad8bf3
AD
70292002-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
3a93251e
AD
70342002-09-04 Akim Demaille <akim@epita.fr>
7035
7036 * configure.in: Rename as...
7037 * configure.ac: this.
7038 Bump to 1.49c.
7039
427c0dda
AD
70402002-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
6a254321
PE
70462002-08-12 Paul Eggert <eggert@twinsun.com>
7047
645e30d1
PE
7048 Version 1.49b.
7049
6a254321
PE
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
c8f002c7
AD
71902002-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
cd08e51e
AD
72092002-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
bb0027a9
AD
72342002-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
3325ddc4
AD
72492002-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
c6f1a33c
AD
72642002-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
1509d42f
AD
72902002-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
273a74fa
AD
73062002-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
217598da
AD
73262002-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
52489d44
AD
73362002-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
e8832397
AD
73462002-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
caf23d24
AD
73632002-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
640748ee
AD
73722002-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
88bce5a2
AD
73822002-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
1bfb97db
AD
73932002-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
fc5734fe
AD
74002002-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
3650b4b8
AD
74122002-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
4b3d3a8e
AD
74182002-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
4a2a22f4
AD
74382002-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
b8df3223
AD
74462002-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
a762e609
AD
74532002-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
12b0043a
AD
74612002-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
5dde258a
AD
74942002-07-19 Akim Demaille <akim@epita.fr>
7495
7496 * src/scan-gram.l (id): Can start with an underscore.
7497
a945ec39
AD
74982002-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
fae437e8
AD
75062002-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
1a715ef2
AD
75132002-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
a5d50994
AD
75212002-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
b275314e
AD
75312002-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
865b9df1
AD
75382002-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
c76e14da
AD
75442002-07-09 Akim Demaille <akim@epita.fr>
7545
7546 * data/yacc.c: Output the copyright notive in the header.
7547
7db2ed2d
AD
75482002-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
e68e0410
AD
75592002-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
e1a4f3a4
AD
75682002-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
536545f3
AD
75762002-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
8b752b00
AD
75862002-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
613f5e1a
AD
76102002-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
26e0cadc
PE
76182002-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
1154cced
AD
76232002-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
97650f4e
AD
76502002-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
d2576365
AD
76582002-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
ccaf65bc
AD
76642002-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
87675353
AD
76732002-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
ce4ccb4b
AD
76872002-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
bc933ef1
AD
77002002-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
53d4308d
AD
77072002-06-30 Akim Demaille <akim@epita.fr>
7708
7709 * src/output.c (action_row): Let default_rule be always a rule
7710 number.
7711
574fb2d5
AD
77122002-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
05811fd7
AD
77232002-06-30 Akim Demaille <akim@epita.fr>
7724
7725 * src/print_graph.c: Use report_flag.
7726
0e4d5753
AD
77272002-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
24c7d800
AD
77342002-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
9222837b
AD
77392002-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
260008e5
AD
77492002-06-30 Akim Demaille <akim@epita.fr>
7750
7751 * src/symtab.c (symbol_new): Initialize the `printer' member.
7752
8a731ca8
AD
77532002-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
32e1e0a4
AD
77612002-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
e5fb6710
AD
77762002-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
c7ca99d4
AD
77812002-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
df0e7316
AD
78012002-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
39f41916
AD
78102002-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
d57650a5
AD
78172002-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
5a08f1ce
AD
78242002-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
720623af
PH
78332002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7834
88e7e941 7835 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
7836 reorganize first lines parallel to yacc.c.
7837
fb8135fa
AD
78382002-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
41442480
AD
78442002-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
e0e5bf84
AD
78502002-06-28 Akim Demaille <akim@epita.fr>
7851
ba0fe3c7 7852 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
e0e5bf84
AD
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.
e0e5bf84 7856
676385e2
PH
78572002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7858
7859 Accumulated changelog for new GLR parsing features.
7860
6a254321 7861 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
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.
e0e5bf84 7869
676385e2
PH
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
e0e5bf84
AD
7878
7879 * src/getargs.c:
7880
676385e2 7881 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
ba0fe3c7 7882 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 7883
676385e2
PH
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.
e0e5bf84 7903
676385e2
PH
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.
e0e5bf84 7918 (prepare_rules): Output dprec and merger tables.
676385e2 7919 (conflict_row): New function.
e0e5bf84 7920 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
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.
e0e5bf84 7940 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
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.
e0e5bf84 7970
676385e2
PH
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.
e0e5bf84 7976
b5480d74 79772002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
7978
7979 * src/options.h, src/options.c: Remove.
7980 * src/getargs.c (short_options, long_options): New.
7981
60491a94
AD
79822002-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
9be0c25b
AD
79882002-06-25 Raja R Harinath <harinath@cs.umn.edu>
7989
7990 * src/getargs.c (report_argmatch): Initialize strtok().
7991
1ae72863
AD
79922002-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
87542d29
AD
79992002-06-20 Akim Demaille <akim@epita.fr>
8000
8001 * data/bison.simple (yydestructor): Rename as...
8002 (yydestruct): this.
8003
1a31ed21
AD
80042002-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
e776192e
AD
80112002-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
5c1180b3
AD
80232002-06-20 Akim Demaille <akim@epita.fr>
8024
8025 * data/bison.simple (YYLEX): Fix the declaration when
8026 %pure-parser.
8027
e3170060
AD
80282002-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
253862fd
AD
80362002-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
366eea36
AD
80412002-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
4f25ebb0
AD
80602002-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
93b68a0e
AD
80662002-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
58612f1d
AD
80752002-06-19 Akim Demaille <akim@epita.fr>
8076
74310291
AD
8077 * data/bison.simple (b4_pure_if): New.
8078 Use it instead of #ifdef YYPURE.
8079
80802002-06-19 Akim Demaille <akim@epita.fr>
8081
8082 * data/bison.simple (b4_location_if): New.
58612f1d
AD
8083 Use it instead of #ifdef YYLSP_NEEDED.
8084
f25bfb75
AD
80852002-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
c732d2c6
AD
81012002-06-19 Zack Weinberg <zack@codesourcery.com>
8102
8103 * doc/bison.texinfo: Document ability to have multiple
8104 prologue sections.
8105
8c165d89
AD
81062002-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
ca98bf57
AD
81112002-06-18 Akim Demaille <akim@epita.fr>
8112
8113 * data/bison.simple.new: Comment changes.
8114 Reported by Andreas Schwab.
8115
0bfb02ff
AD
81162002-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
24c0aad7
AD
81222002-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
5719c109
AD
81322002-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
9280d3ef
AD
81392002-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
dafdc66f
AD
81592002-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
56c47203
AD
81702002-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
1e0bab92
AD
81812002-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
04e60654
AD
81922002-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
10e5b8bd
AD
81972002-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
9801d40c
AD
82022002-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
c0263492
AD
82142002-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
9757c359
AD
82232002-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
6b98e4b5
AD
82322002-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
6b98e4b5
AD
82422002-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
ee000ba4
AD
82612002-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
8efe435c
AD
82742002-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
1921f1d7
AD
82942002-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
4515534c
AD
83042002-06-14 Akim Demaille <akim@epita.fr>
8305
8306 * src/main.c (main): Invoke scanner_free.
8307
f958596b
AD
83082002-06-14 Akim Demaille <akim@epita.fr>
8309
8310 * src/output.c (m4_invoke): Extracted from...
8311 (output_skeleton): here.
8312 Free tempfile.
8313
2c569025
AD
83142002-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
592e8d4d
AD
83232002-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
0c15323d
AD
83362002-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
e96c9728
AD
83472002-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
75d1fe16
AD
83532002-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
6c35d22c
AD
83592002-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
1d6412ad
AD
83652002-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
4cdb01db
AD
83732002-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
44995b2e
AD
83792002-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
e9955c83
AD
83862002-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
2e047461
AD
85092002-06-11 Akim Demaille <akim@epita.fr>
8510
cd05d13c 8511 * src/reader.c (parse_action): Don't store directly into the
2e047461
AD
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
9af3fbce
AD
85192002-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
1485e106
AD
85282002-06-11 Akim Demaille <akim@epita.fr>
8529
8530 * src/reader.c (grammar_midrule_action): New, Eved out from
8531 (readgram): here.
8532
da4160c3
AD
85332002-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
f6d0f937
AD
85402002-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
69078d4b
AD
85462002-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
5e424082
AD
85562002-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
44536b35
AD
85652002-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
8b9f2372
AD
85732002-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
3ae2b51f
AD
85842002-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
2f1afb73
AD
85912002-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
e9bca3ad
AD
86142002-06-03 Akim Demaille <akim@epita.fr>
8615
8616 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
8617 then statements.
8618
86eff183
AD
86192002-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
717be197
AD
86292002-05-28 Akim Demaille <akim@epita.fr>
8630
8631 * data/bison.c++: Use C++ ostreams.
8632 (cdebug_): New member.
8633
670ddffd
AD
86342002-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
769b430f
AD
86392002-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
7067cb36
PH
86472002-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.
769b430f 8653
4a713ec2
PH
86542002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8655
769b430f 8656 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
8657 obstack_printf should be obstack_fgrow1.
8658
b408954b
AD
86592002-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
a49aecd5
AD
86782002-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
5504898e
AD
86902002-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
ec3bc396
AD
86992002-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
78df8250
PE
87222002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8723 and Paul Eggert <eggert@twinsun.com>
769b430f 8724
78df8250
PE
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
c0c9ea05
PH
87322002-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.
769b430f 8737 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
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.
769b430f 8742
c0c9ea05
PH
8743 * tests/regression.at: Modify expected output to agree with change
8744 to yyr1 and yytranslate.
769b430f 8745
6390a83f
FK
87462002-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
db7c8e9a
AD
87512002-05-13 Akim Demaille <akim@epita.fr>
8752
8753 * tests/regression.at (Token definitions): Prototype yylex and
8754 yyerror.
8755
fcc61800
PH
87562002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8757
158c687b 8758 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
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
5683e9b2
AD
87632002-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
0c2d3f4c
AD
87682002-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
1565b720
AD
87832002-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
cfaee611
AD
87912002-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
458be8e0
AD
87962002-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
a900a624
AD
88032002-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
d4e7d3a1
AD
88082002-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
39ceb25b
AD
88192002-05-05 Akim Demaille <akim@epita.fr>
8820
8821 * tests/torture.at (Many lookaheads): New test.
8822
5372019f
AD
88232002-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
5df5f6d5
AD
88402002-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
b87f8b21
AD
88522002-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
8bb936e4
PE
88612002-05-03 Paul Eggert <eggert@twinsun.com>
8862
8863 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
8864 for K&R C.
8865
88662002-05-03 gettextize <bug-gnu-gettext@gnu.org>
8867
8868 * Makefile.am (SUBDIRS): Remove intl.
8869 (EXTRA_DIST): Add config/config.rpath.
8870
53c71a12
AD
88712002-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
289dd0cf
AD
88762002-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
db85e524
AD
88832002-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
83ccf991
AD
88882002-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
1f418995
AD
88972002-05-03 Akim Demaille <akim@epita.fr>
8898
8899 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
8900
45119f04
RA
89012002-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
b2d52318
AD
89062002-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
3a8b4109
AD
89122002-05-02 Akim Demaille <akim@epita.fr>
8913
8914 * src/reader.c (parse_braces): Merge into...
8915 (parse_action): this.
8916
84614e13
AD
89172002-05-02 Akim Demaille <akim@epita.fr>
8918
8919 * configure.in (ALL_LINGUAS): Remove.
8920 * po/LINGUAS, hr.po: New.
8921
fdbcd8e2
AD
89222002-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
82b6cb3f
AD
89462002-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.
900c877b
AD
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'.
82b6cb3f
AD
8958 * data/bison.simple, data/bison.c++ (b4_lhs_value)
8959 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
8960
6cbfbcc5
AD
89612002-05-02 Akim Demaille <akim@epita.fr>
8962
8963 * configure.in (AC_INIT): Bump to 1.49b.
8964 (AM_INIT_AUTOMAKE): Short invocation.
8965
b8548114
AD
89662002-05-02 Akim Demaille <akim@epita.fr>
8967
8968 Version 1.49a.
8969
c20cd1fa
AD
89702002-05-01 Akim Demaille <akim@epita.fr>
8971
8972 * src/skeleton.h: Remove.
8973
8a9566d4
AD
89742002-05-01 Akim Demaille <akim@epita.fr>
8975
8976 * src/skeleton.h: Fix the #endif.
8977 Reported by Magnus Fromreide.
8978
8c6d399a
PE
89792002-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.
b756bb75 8983 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 8984
2b7ed18a
RA
89852002-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
34a89c50
AD
89992002-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
0dd1580a
RA
90052002-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
83c1796f
PE
90222002-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
1207eeac
AD
90352002-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
78ab8f67
AD
90432002-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
133c20e2
AD
90502002-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
9515e8a7
AD
90562002-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
23c5a174
AD
90622002-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
5fbb0954
AD
90742002-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
4f940944
AD
90882002-04-22 Akim Demaille <akim@epita.fr>
9089
9090 * src/output.h, src/output.c (get_lines_number): Remove.
9091
3ded9a63
AD
90922002-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
e0c471a9
AD
91002002-04-19 Akim Demaille <akim@epita.fr>
9101
9102 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
9103
fecc10cd
AD
91042002-04-10 Akim Demaille <akim@epita.fr>
9105
9106 * src/system.h: Rely on HAVE_LIMITS_H.
9107 Suggested by Paul Eggert.
9108
51dec47b
AD
91092002-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
007a50a4
AD
91222002-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
06446ccf
AD
91472002-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
62a3e4f0
AD
91572002-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
bb88b0fc
AD
91852002-04-08 Akim Demaille <akim@epita.fr>
9186
9187 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
9188 and then the grammar.
9189
9a636f47
AD
91902002-04-08 Akim Demaille <akim@epita.fr>
9191
9192 * src/system.h: No longer using strndup.
9193
680e8701
AD
91942002-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
817e9f41
AD
92072002-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
5123689b
AD
92132002-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
f3849179
AD
92192002-04-07 Akim Demaille <akim@epita.fr>
9220
9221 * src/reader.c: Normalize increments to prefix form.
9222
bd02036a
AD
92232002-04-07 Akim Demaille <akim@epita.fr>
9224
9225 * src/reader.c, symtab.c: Remove debugging code.
9226
db8837cb
AD
92272002-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
72a23c97
AD
92442002-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
280a38c3
AD
92652002-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
03b31c0c
AD
92752002-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
8b3df748
AD
92822002-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
e601aa1d
AD
92872002-04-07 Akim Demaille <akim@epita.fr>
9288
9289 * src/lalr.h (LA): Is a bitsetv, not bitset*.
9290
b0299a2e
AD
92912002-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
d7e1f00c
AD
92972002-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
cc9305dd
AD
93042002-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
b0940840
AD
93112002-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
643a5994
AD
93302002-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
b4c4ccc2
AD
93502002-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
bba97eb2
AD
93562002-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
c3b407f4
AD
93682002-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
11652ab3
AD
93812002-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
26b23c1a
AD
93872002-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
18bcecb0
AD
93932002-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
fa770c86
AD
93982002-04-07 Akim Demaille <akim@epita.fr>
9399
9400 * TODO: Update.
9401
d9b739c3
AD
94022002-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
99013900
AD
94072002-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
e966383b
PE
94142002-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
94222002-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.
c307773e 9428
8d6c48b9
PE
94292002-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
e53c6322
AD
94352002-03-20 Akim Demaille <akim@epita.fr>
9436
9437 * src/conflicts.c (log_resolution): Argument `resolution' is const.
9438
9ffbeca7
PE
94392002-03-19 Paul Eggert <eggert@twinsun.com>
9440
21db0b2a
PE
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
9ffbeca7
PE
9446 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
9447 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
9448
642cb8f8
AD
94492002-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.
0ffd4fd1 9455 (Prologue synch line, %union synch line, Postprologue synch line)
642cb8f8
AD
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
3c31a486
AD
94602002-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
0d8bed56
AD
94672002-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
9208d17f
AD
94762002-03-14 Akim Demaille <akim@epita.fr>
9477
9478 Use Gettext 0.11.1.
9479
af27eacb
RA
94802002-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
9101a310
RA
94852002-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
fff9bf0b
RA
94912002-03-04 Robert Anisko <robert@lrde.epita.fr>
9492
9493 * src/reader.c: Warn about lacking semi-colons, do not complain.
9494
64dba31e
RA
94952002-03-04 Robert Anisko <robert@lrde.epita.fr>
9496
9497 * data/bison.c++: Remove a debug line.
9498
374f5a14
RA
94992002-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
bfcf1f3a
AD
95052002-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
65ccf9fc
AD
95142002-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
d0039cbc
AD
95232002-03-04 Akim Demaille <akim@epita.fr>
9524
9525 * src/output.c (output_skeleton): tempdir is const.
9526 bytes_read is unused.
9527
345cea78
AD
95282002-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
564801f7
AD
95352002-03-04 Akim Demaille <akim@epita.fr>
9536
9537 * src/closure.c (closure): `r' is unused.
9538
e5352bc7
AD
95392002-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
914feea9
AD
95452002-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
f0250de6
AD
95532002-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
ef017502
AD
95592002-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
76514394
AD
95662002-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
55024580
AD
95722002-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
f9abaa2c
AD
95782002-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
0e721e75
AD
95882002-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
0fb1ffb1
AD
95942002-03-04 Akim Demaille <akim@epita.fr>
9595
9596 * src/lalr.c (F): Now a bitset*.
9597 Adjust all dependencies.
9598
b86796bf
AD
95992002-03-04 Akim Demaille <akim@epita.fr>
9600
9601 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
9602 Adjust all dependencies.
9603
602bbf31
AD
96042002-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
d8a0245c
AD
96122002-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
34ba9743
AD
96192002-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
ed86e78c
AD
96242002-03-04 Akim Demaille <akim@epita.fr>
9625
9626 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
9627
dfdb1797
AD
96282002-03-04 Akim Demaille <akim@epita.fr>
9629
9630 * src/closure.c (ruleset): Be a bitset.
9631 (rulesetsize): Remove.
9632
7086e707
AD
96332002-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
98254360
RA
96402002-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
a75c057f
AD
96452002-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
06b00abc
AD
96502002-02-25 Akim Demaille <akim@epita.fr>
9651
9652 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
9653 translator friendly scheme for the bgr
9654 copyright notice.
06b00abc 9655
70e7d534
AD
96562002-02-25 Akim Demaille <akim@epita.fr>
9657
9658 * src/output.c (header_output): Remove, now handled completely via
9659 M4.
9660
abe017f6
AD
96612002-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
381fb12e
AD
96682002-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
6f38107f
PE
96812002-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
80cce3da
AD
96962002-02-14 Akim Demaille <akim@epita.fr>
9697
9698 * tests/regression.at (else): Adjust to Andreas' change.
9699
842e8679
AD
97002002-02-14 Akim Demaille <akim@epita.fr>
9701
9702 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
9703
4bda3f10
AD
97042002-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
4162fa07 97092002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 9710
4162fa07
RA
9711 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
9712 (Copyright notice): Update.
b418ecd8 9713
bd16a5dc
AD
97142002-02-11 Akim Demaille <akim@epita.fr>
9715
9716 * tests/regression.at (%nonassoc and eof): Don't include
9717 nonportable headers.
9718
8d69a1a3
RA
97192002-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
9b2d0677
AD
97242002-02-07 Akim Demaille <akim@epita.fr>
9725
9726 * tests/input.at: New.
9727
69e2658b
RA
97282002-02-07 Robert Anisko <robert@lrde.epita.fr>
9729
9730 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 9731 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
9732 directives around tables only needed for debugging.
9733
4aacc3a7
RA
97342002-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
762a801e
RA
97402002-02-07 Robert Anisko <robert@lrde.epita.fr>
9741
9742 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
9743
4bb2bc3f
RA
97442002-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
6b45a3ca
RA
97502002-02-06 Robert Anisko <robert@lrde.epita.fr>
9751
9752 * data/bison.c++: Fix m4 quoting in comments.
9753
50997c6e
RA
97542002-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
3f3eed27
AD
97592002-02-05 Akim Demaille <akim@epita.fr>
9760
9761 * data/bison.c++: Adjust to the M4 back end.
9762 More is certainly needed.
9763
be2a1a68
AD
97642002-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
beda758b
AD
98012002-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
5ece6d43
AD
98072002-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
5bb18f9a
AD
98122002-02-05 Akim Demaille <akim@epita.fr>
9813
9814 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
9815 * data/: here.
9816
894dd62e
PE
98172002-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
82841af7
AD
98232002-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
318b76e9
AD
98362002-01-27 Akim Demaille <akim@epita.fr>
9837
9838 * tests/sets.at (AT_EXTRACT_SETS): New.
9839 (Nullable): Use it.
9840 (Firsts): New.
9841
30d2f3d5
AD
98422002-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
30f8c395
AD
98482002-01-25 Akim Demaille <akim@epita.fr>
9849
9850 * tests/regression.at (%nonassoc and eof): New.
9851 Suggested by Robert Anisko.
9852
29ae55f1
AD
98532002-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
2b548aa6
RA
98632002-01-24 Robert Anisko <robert.anisko@epita.fr>
9864
9865 * src/Makefile.am: Add bison.c++.
9866 * src/bison.c++: New skeleton.
9867
bb0146c2
AD
98682002-01-21 Paolo Bonzini <bonzini@gnu.org>
9869
9870 * po/it.po: New.
9871
bec30531
AD
98722002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
9873
9874 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
9875
fc6edc45
MA
98762002-01-20 Marc Autret <marc@gnu.org>
9877
9878 * src/files.c (compute_output_file_names): Fix
9879
5e5d5415
MA
98802002-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
44ea3fbd
MA
98872002-01-20 Marc Autret <marc@gnu.org>
9888
ba0fe3c7
PE
9889 * src/system.h: Need to define __attribute__ away for non-GCC
9890 compilers as well (i.e., the vendor C compiler).
44ea3fbd
MA
9891 Suggested by Albert Chin-A-Young.
9892
338963d1
TVH
98932002-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
c57b2479
AD
99002002-01-11 Akim Demaille <akim@epita.fr>
9901
9902 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 9903 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 9904
b85810ae
AD
99052002-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
cae60122
AD
99192002-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
ae404801
AD
99272002-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
22312b71
AD
99362002-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
a67cef01
TVH
99442002-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
2b25d624
AD
99522002-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
3460813b
AD
99602002-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
73784c64
AD
99672002-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
25d81090
AD
99742002-01-06 Akim Demaille <akim@epita.fr>
9975
9976 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
9977 skeleton.h.
9978
a9b8959e
PE
99792002-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
25d81090
AD
99852002-01-03 Akim Demaille <akim@epita.fr>
9986
9987 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
9988
1109455c
AD
99892002-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
7ea5e977
AD
99952002-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
fab5b110
AD
100042002-01-03 Akim Demaille <akim@epita.fr>
10005
10006 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
10007 for non system headers.
10008
aed7fd9b
AD
100092002-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
24fad99e
AD
100262001-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
a4b36db4
AD
100322001-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
1239777d
AD
100452001-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
9b3add5b
RA
100622001-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
fab5b110 10083 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
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
fab5b110 10095 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
10096 parse-skel.y.
10097
10098 * src/parse-skel.y: New file.
10099 * src/scan-skel.l: New file.
10100
b5b61c61
AD
101012001-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
8c9a50be
AD
101152001-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
d99361e6
AD
101212001-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
b9cecb91
AD
101282001-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
aea13e97
AD
101372001-12-29 Akim Demaille <akim@epita.fr>
10138
10139 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
10140
931394cb
AD
101412001-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
704a47c4
AD
101462001-12-29 Akim Demaille <akim@epita.fr>
10147
10148 * doc/bison.texinfo: Formatting changes.
10149
091e20bb
AD
101502001-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
cce71710
AD
101592001-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
82c035a8
AD
101652001-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
8419d367
AD
101742001-12-29 Akim Demaille <akim@epita.fr>
10175
10176 Memory leak.
10177
10178 * src/reader.c (reader): Free grammar.
10179
375d5806
AD
101802001-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
f51cb8ff
AD
101882001-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
29e88316
AD
101962001-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
b9f71f19
AD
102022001-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
1a2b5d37
AD
102072001-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
1cca533e
AD
102142001-12-29 Akim Demaille <akim@epita.fr>
10215
10216 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
10217 ago.
10218
c03ae966
AD
102192001-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
5a670b1e
AD
102242001-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
ad949da9
AD
102292001-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
0e78e603
AD
102342001-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
213e640e
AD
102452001-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
e7b8bef1
AD
102512001-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
b68e7744
AD
102602001-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
78d5bae9
AD
102672001-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
ff442794
AD
102722001-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
610ab194
AD
102792001-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
29d29c8f
AD
102922001-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
7c6b64d0
AD
103012001-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
3d4daee3
AD
103082001-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
9e7f6bbd
AD
103202001-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
255ef638
AD
103302001-12-29 Akim Demaille <akim@epita.fr>
10331
10332 * src/output.c: Comment changes.
10333
0d8a7363
AD
103342001-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
3db472b9
AD
103432001-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
b365aa05
AD
103542001-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
30171f79
AD
103602001-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
75142d45
AD
103802001-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
b7c49edf
AD
103962001-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
ec2da99f
AD
104162001-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
8adfa272
AD
104252001-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
80dac38c
AD
104332001-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
2cec70b9
AD
104432001-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
13ca549a
AD
104522001-12-27 Akim Demaille <akim@epita.fr>
10453
10454 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
10455
5092aba5
AD
104562001-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
11e2beca
AD
104672001-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
dac3c910
AD
104722001-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
d0b0fefa
AD
104772001-12-27 Akim Demaille <akim@epita.fr>
10478
10479 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
10480 duplication.
10481
adc8c848
AD
104822001-12-27 Akim Demaille <akim@epita.fr>
10483
10484 * src/reader.c (packgram): Catch nitems overflows.
10485
14d293ac
AD
104862001-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
f499b062
AD
104962001-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
d945f5cd
AD
105242001-12-27 Akim Demaille <akim@epita.fr>
10525
10526 * src/reader.c (symbol_list_new): Be sure to initialize all the
10527 fields.
10528
d200e455
AD
105292001-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
f9507c28
AD
105382001-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
065fbd27
AD
105442001-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
1b177bd7
AD
105622001-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
7742ddeb
AD
105692001-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
1fa14068
AD
105772001-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
b9752825
AD
105842001-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
776209d6
AD
105942001-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
275fc3ad
AD
106022001-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
897668ee
MA
106112001-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
ab3399e0
PE
106172001-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
3877f72b
AD
106252001-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.
776209d6 10633
331dbc1b
AD
106342001-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.
776209d6 10640
be750e4c
AD
106412001-12-17 Akim Demaille <akim@epita.fr>
10642
10643 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 10644
709ae8c6
AD
106452001-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.
776209d6 10650
f87685c3
AD
106512001-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
837491d8
AD
106592001-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
796d61fb
AD
106652001-12-17 Akim Demaille <akim@epita.fr>
10666
10667 * src/output.c: Various formatting changes.
776209d6 10668
64d15509
AD
106692001-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
fbc8ecb7
MA
106772001-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
f0440388
MA
106822001-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.
776209d6 10687 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
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
a79986b8
MA
106942001-12-15 Marc Autret <autret_m@epita.fr>
10695
10696 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
10697
4ec8e00f
MA
106982001-12-15 Marc Autret <autret_m@epita.fr>
10699
10700 * src/output.c (output_gram): Keep track of the hairy one.
10701
1a4648ff
AD
107022001-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
9c2c67e6
AD
107092001-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
93ede233
AD
107162001-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
2666f928
AD
107352001-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
428046f8
AD
107452001-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
ea52d706
AD
107502001-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
3f96f4dc
AD
107622001-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
51576fb3
AD
107782001-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.
dee049eb 10782 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 10783
2648a72d
AD
107842001-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
92790e5b
AD
107902001-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
927c1557
PE
107982001-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
ed8e1f68
AD
108072001-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
cb581495
AD
108292001-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
2e729273
AD
108342001-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
107f7dfb
AD
108482001-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
9b53a24f
AD
108542001-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
dbfb6dcd
AD
108592001-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
c25fb648
MA
108672001-12-11 Marc Autret <autret_m@epita.fr>
10868
10869 * src/output.c (output_parser): Remove useless muscle.
10870
710ddc4f
MA
108712001-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
e83d80b8
MA
108782001-12-10 Marc Autret <autret_m@epita.fr>
10879
927c1557 10880 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
10881 replace precedent remove.
10882 * src/bison.simple: Remove #line before %%prologue because
10883 %%input-line is wrong at this time.
10884
971d5158
MA
108852001-12-10 Marc Autret <autret_m@epita.fr>
10886
10887 * src/reader.c (symbols_output): Clean up.
927c1557 10888 * src/output.c (output_gram, output): Clean up.
971d5158 10889
5edafffd
AD
108902001-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
0279f8e9
AD
108962001-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
190c4f5f
AD
109022001-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
2a73b93d
AD
109152001-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
74392f6a
AD
109222001-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
37c82725
AD
109292001-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
6a164e0c
AD
109342001-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
7215de24
AD
109422001-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
80e25d4d
AD
109482001-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
0ab3728b
AD
109552001-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
78af9bbc
AD
109672001-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
bdef2a41
AD
109772001-12-10 Akim Demaille <akim@epita.fr>
10978
10979 * src/muscle_tab.c (muscle_init): NULL is a better default than
10980 `"0"'.
10981
3735969c
AD
109822001-12-10 Akim Demaille <akim@epita.fr>
10983
10984 * src/reader.c (reader): Calling symbols_output once is enough.
10985
49701457
AD
109862001-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
0edad749
AD
110032001-12-10 Akim Demaille <akim@epita.fr>
11004
11005 * src/options.c (OPTN, DRTV, BOTH): New.
11006 (option_table): Use them.
11007
0edad749
AD
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
5449dd0f
AD
110132001-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
a870c567
AD
110182001-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
80df8768
AD
110302001-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
f693ad14
AD
110372001-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
74ffbcb6
AD
110532001-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.
ba0fe3c7 11060 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
74ffbcb6
AD
11061 j must be the outer loop.
11062 * tests/regression.at (Broken Closure): New.
11063
07708e19
AD
110642001-12-05 Akim Demaille <akim@epita.fr>
11065
11066 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
11067 its argument.
ba1ecc07 11068 Reported by Peter Hamorsky.
07708e19 11069
92b16366
AD
110702001-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
076ab033
AD
110782001-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
3843c413
AD
110872001-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
43168960
AD
110922001-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
b2872512
AD
111022001-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
23cbcc6c
AD
111082001-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
03ec521c
AD
111132001-12-05 Akim Demaille <akim@epita.fr>
11114
11115 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
11116 indexed by nonterminals.
11117
3a7456dd
AD
111182001-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
1cbcf2e7
AD
111242001-12-05 Akim Demaille <akim@epita.fr>
11125
11126 * src/closure.c (set_fderives): De-obfuscate.
11127
84182270
AD
111282001-12-05 Akim Demaille <akim@epita.fr>
11129
11130 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
11131
3f6f053c
AD
111322001-12-05 Akim Demaille <akim@epita.fr>
11133
11134 * src/closure.c (set_firsts): De-obfuscate.
11135
7a5350ba
AD
111362001-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
d954473d
AD
111422001-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
9839bbe5
AD
111522001-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
9f136c07
AD
111592001-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
b608206e
AD
111652001-12-05 Akim Demaille <akim@epita.fr>
11166
11167 * src/state.h (SHIFT_SYMBOL): New.
11168 * src/conflicts.c: Use it to deobfuscate.
11169
52afa962
AD
111702001-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
e74dc321
AD
111762001-12-05 Akim Demaille <akim@epita.fr>
11177
11178 * src/conflicts.c (print_reductions): Arrays, not pointers.
11179 Use BITISSET.
11180
768fca83
AD
111812001-12-05 Akim Demaille <akim@epita.fr>
11182
11183 * src/conflicts.c (print_reductions): Pessimize, but clarify.
11184
a17e599f
AD
111852001-12-05 Akim Demaille <akim@epita.fr>
11186
11187 * src/conflicts.c (print_reductions): Improve variable locality.
11188
a04bc341
AD
111892001-12-05 Akim Demaille <akim@epita.fr>
11190
11191 * src/conflicts.c (print_reductions): Pessimize, but clarify.
11192
c8ea038e
AD
111932001-12-05 Akim Demaille <akim@epita.fr>
11194
11195 * src/conflicts.c (print_reductions): Improve variable locality.
11196
aa2aab3c
AD
111972001-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
b178c8cc
AD
112022001-12-05 Akim Demaille <akim@epita.fr>
11203
11204 * src/LR0.c (augment_automaton): Formatting changes.
11205 Better variable locality.
11206
f67d13aa
AD
112072001-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
c2713865
AD
112132001-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
9887c18a
AD
112192001-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
4d4f699c
AD
112292001-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
80a69750
AD
112342001-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
fe961097
AD
112412001-12-05 Akim Demaille <akim@epita.fr>
11242
11243 * src/lalr.c (traverse): Use arrays instead of pointers.
11244
e3e4e814
AD
112452001-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
630e182b
AD
112512001-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
81b51460
AD
112732001-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
3067fbef
AD
112792001-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
c2bea5f9
PE
112882001-12-04 Paul Eggert <eggert@twinsun.com>
11289
7d27c823
PE
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.
c2bea5f9
PE
11295 (yystpcpy): Use prototype if __STDC__ is defined, not just
11296 if __cplusplus is defined.
35687a9d 11297
2c8a9dfa
AD
112982001-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
f4e421e6
AD
113082001-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
7093d0f5
AD
113192001-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
fd51e5ff
AD
113562001-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
7d13ff5f
AD
113622001-11-30 Akim Demaille <akim@epita.fr>
11363
11364 * tests/reduce.at (Useless Nonterminals): Fix.
11365
892a3995
AD
113662001-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
68f1e3ed
AD
113712001-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
d2d1b42b
AD
113832001-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
760b53a8
AD
113902001-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
00238958
AD
113972001-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
396452de
PE
114042001-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
147e184c
MA
114232001-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
426cf563
MA
114292001-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
c7925b99
MA
114362001-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
5b5d1929
MA
114542001-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
8850be4b
MA
114612001-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
4a38e613
AD
114662001-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
4b35e1c1
AD
114712001-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
d2b04478
AD
114762001-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
2c4c30aa
AD
114812001-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
576890b7
AD
114872001-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
cb487d7d
AD
114922001-11-28 Akim Demaille <akim@epita.fr>
11493
11494 * src/reduce.c (reduce_print): Use ngettext.
11495 (dump_grammar): Improve the trace accuracy.
11496
6013d43f
AD
114972001-11-28 Akim Demaille <akim@epita.fr>
11498
11499 * src/reduce.c (dump_grammar): Don't translate trace messages.
11500
cb4956ee
AD
115012001-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
648185ab
PE
115082001-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
68254a03
MA
115132001-11-27 Marc Autret <autret_m@epita.fr>
11514
9113b58f
AD
11515 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
11516 initialization.
68254a03
MA
11517 * src/output.c (prepare): Remove its update.
11518
04d843a2
MA
115192001-11-27 Marc Autret <autret_m@epita.fr>
11520
11521 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
11522 Use %error-verbose.
11523
d2079671 115242001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
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
e0327bc8
AD
115372001-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
000f1a3c
AD
115422001-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
26cfe0be
AD
115472001-11-27 Akim Demaille <akim@epita.fr>
11548
11549 * src/files.c: Include error.h.
11550 Reported by Hans Aberg.
11551
f6bd5427
MA
115522001-11-26 Marc Autret <autret_m@epita.fr>
11553
d2079671 11554 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
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
2ca209c1
AD
115632001-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
0e41b407
AD
115702001-11-26 Akim Demaille <akim@epita.fr>
11571
11572 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
11573 size_ts.
11574
115752001-11-26 Akim Demaille <akim@epita.fr>
11576
11577 * src/complain.c, src/complain.h (error): Remove, provided by
11578 lib/error.[ch].
11579
e0c40012
AD
115802001-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
5e147124
AD
115872001-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
a034c8b8
AD
115922001-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
c64a20f3
AD
115992001-11-23 Akim Demaille <akim@epita.fr>
11600
11601 * lib/alloca.c: Update, from fileutils.
11602
5b0d29bb
AD
116032001-11-23 Akim Demaille <akim@epita.fr>
11604
11605 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
11606
722c4bfe
AD
116072001-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
6255b435
AD
116122001-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
b29b2ed5
AD
116202001-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
a81b1d4a
MA
116352001-11-22 Marc Autret <autret_m@epita.fr>
11636
11637 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
11638
c1ecb3c1
MA
116392001-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
fbe01355
AD
116452001-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
81e895c0
AD
116522001-11-19 Akim Demaille <akim@epita.fr>
11653
11654 * src/conflicts.c (conflicts_print): Add a missing \n.
11655
6bb1878b
AD
116562001-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
d9ec2d07
AD
116622001-11-19 Akim Demaille <akim@epita.fr>
11663
11664 * src/print.c (print_actions): Better locality of variables.
11665
720e5c1b
AD
116662001-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
fb908786
AD
116712001-11-19 Akim Demaille <akim@epita.fr>
11672
11673 * src/closure.c (itemsetend): Remove, replaced with...
11674 (itemsetsize): new.
11675
125ecb56
AD
116762001-11-19 Akim Demaille <akim@epita.fr>
11677
11678 * src/LR0.c (kernel_end): Remove, replaced with...
11679 (kernel_size): new.
11680
d8cf039f
AD
116812001-11-19 Akim Demaille <akim@epita.fr>
11682
11683 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
11684 to clarify.
11685
7bec0760
AD
116862001-11-19 Akim Demaille <akim@epita.fr>
11687
11688 * src/closure.c (closure): Use arrays instead of pointers to clarify.
11689
c87d4863
AD
116902001-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
9bfe901c
AD
116972001-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
97db7bd4
AD
117062001-11-19 Akim Demaille <akim@epita.fr>
11707
cc72668c 11708 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
11709 pointers to clarify the code.
11710 (save_reductions, save_shifts): Factor common parts of alternatives.
11711
2c5f66ed
AD
117122001-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
300f275f
AD
117242001-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
f59c437a
AD
117312001-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
6986fd9e
AD
117382001-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
4bc30f78
AD
117432001-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
08a946e0
AD
117482001-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,
9bfe901c 11756 and ask for its output.
08a946e0 11757
f0473484
AD
117582001-11-19 Akim Demaille <akim@epita.fr>
11759
cc72668c
AD
11760 * src/bison.simple (yyparse): When verbosely reporting an error,
11761 no longer put additional quotes around token names.
f0473484
AD
11762 * tests/calc.at: Adjust.
11763
e41dc700
AD
117642001-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
652a871c
AD
117702001-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
b2ed6e58
AD
117762001-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
edad7067
AD
117852001-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
3feec034
AD
117912001-11-19 Akim Demaille <akim@epita.fr>
11792
11793 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
11794 (maxrhs): this new function.
11795
ddcd5fdf
AD
117962001-11-19 Akim Demaille <akim@epita.fr>
11797
cc72668c 11798 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
11799 Adjust.
11800
bb527fc2
AD
118012001-11-19 Akim Demaille <akim@epita.fr>
11802
cc72668c 11803 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
11804 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11805 * src/lalr.c: Adjust.
11806
a845a697
AD
118072001-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
f004bf6a
AD
118122001-11-19 Akim Demaille <akim@epita.fr>
11813
cc72668c
AD
11814 * src/lalr.h (lookaheads): Removed array, whose contents is now
11815 a member of...
f004bf6a
AD
11816 (state_t): this structure.
11817 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11818 Adjust.
11819
de326cc0
AD
118202001-11-19 Akim Demaille <akim@epita.fr>
11821
cc72668c
AD
11822 * src/lalr.h (consistent): Removed array, whose contents is now
11823 a member of...
de326cc0
AD
11824 (state_t): this structure.
11825 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11826 Adjust.
11827
90b4416b
AD
118282001-11-19 Akim Demaille <akim@epita.fr>
11829
cc72668c
AD
11830 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
11831 contents are now members of...
90b4416b
AD
11832 (state_t): this structure.
11833 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11834 Adjust.
11835
9703cc49
AD
118362001-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
d803322e
AD
118462001-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
3d76b07d
AD
118592001-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
09b503c8
AD
118662001-11-14 Akim Demaille <akim@epita.fr>
11867
11868 * src/print.c: Include reduce.h.
11869 Reported by Hans Aberg.
11870
118712001-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
0f37a994
AD
118832001-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
d39d93b8
AD
118902001-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
9edcd895
AD
118952001-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
7da99ede
AD
119062001-11-12 Akim Demaille <akim@epita.fr>
11907
e3aa65c5 11908 %expect was not functioning at all.
7da99ede
AD
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
ba9dda1a
AD
119182001-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
337c5bd1
AD
119242001-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
c73a41af
AD
119362001-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
0df87bb6
AD
119422001-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.
0f37a994 11952 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
11953 * tests/regression.at (Conflicts): New.
11954 Reported by Tom Lane.
11955
e4d3d4de
AD
119562001-11-12 Akim Demaille <akim@epita.fr>
11957
11958 * tests/regression.at (Invalid input): Remove, duplicate with
11959 ``Invalid input: 1''.
11960
6d7d248e
AD
119612001-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
e9e4c321
AD
119672001-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.
0f37a994 11971 Reported by Per Allansson.
e9e4c321 11972
5f7e0832
AD
119732001-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
e3f1699f
AD
119832001-11-05 Akim Demaille <akim@epita.fr>
11984
11985 * src/reader.c (symbols_output): New, extracted from...
11986 (packsymbols): here.
11987 (reader): Adjust.
11988
65be0866
AD
119892001-11-05 Akim Demaille <akim@epita.fr>
11990
11991 * src/lex.c (parse_percent_token): s/quotearg/quote/.
11992
e4d910bf
AD
119932001-11-05 Akim Demaille <akim@epita.fr>
11994
11995 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
11996 pattern.
11997
951366c1
AD
119982001-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
d8988b2f
AD
120122001-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
6468d18e
AD
120262001-11-02 Akim Demaille <akim@epita.fr>
12027
12028 * doc/refcard.tex: Update.
12029
6b7e85b9
AD
120302001-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
cd5aafcf
AD
120432001-11-02 Akim Demaille <akim@epita.fr>
12044
12045 * tests/regression.at (Mixing %token styles): New test.
12046
037ca2f1
AD
120472001-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
270a173c
AD
120542001-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
561f9a30
AD
120622001-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
f987e9d2
AD
120702001-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
0846f581
PB
120762001-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
3c1a79b3
AD
120832001-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
5d52e7d0
MA
120912001-10-14 Marc Autret <autret_m@epita.fr>
12092
12093 * src/options.c (create_long_option_table): Fix.
12094
631aa1d3
AD
120952001-10-10 Akim Demaille <akim@epita.fr>
12096
12097 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
12098
f6ec6d13
AD
120992001-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
342b8b6e
AD
121042001-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
1c8c2190
PB
125522001-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
180d45ba
PB
125592001-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
c51d1a19
PB
125702001-09-23 Pascal Bart <pascal.bart@epita.fr>
12571
12572 * src/bison.simple: Add new `#line' directive.
12573
6f9344da
PB
125742001-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
652def80
MA
125792001-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
25b222fa
MA
125842001-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
6bc35ae5
MA
125922001-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
c0629aa1
PB
125972001-09-20 Pascal Bart <pascal.bart@epita.fr>
12598
12599 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 12600
82b6d266
PB
126012001-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
75f5aaea
MA
126262001-09-20 Marc Autret <autret_m@epita.fr>
12627
12628 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
12629 sections of Bison.
12630
f508cb0a
PB
126312001-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
13105fc1
PB
126372001-09-18 Pascal Bart <pascal.bart@epita.fr>
12638
12639 * src/output.c (output_parser): Delete unused variable actions_dumped.
12640
b0c4483e
PB
126412001-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.
ba0fe3c7 12645 * src/reader.h: Delete declaration of reader_output_yylsp.
342b8b6e 12646
11d82f03
MA
126472001-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.
342b8b6e 12656
11d82f03 12657 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 12658
11d82f03
MA
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.
342b8b6e 12670
11d82f03
MA
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
93a37297
MA
126822001-09-02 Marc Autret <autret_m@epita.fr>
12683
f753cd62 12684 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 12685
f753cd62
MA
12686 * src/muscle_tab.c, src/muscle_tab.h: Add files.
12687
126882001-09-02 Marc Autret <autret_m@epita.fr>
12689
12690 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 12691
682d48cd
PB
126922001-09-01 Pascal Bart <pascal.bart@epita.fr>
12693
342b8b6e 12694 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
12695 filename.
12696
087c8fda
MA
126972001-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
dda680cb
PB
127022001-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
9e644e64
MA
127092001-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
17da6427
PB
127142001-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'.
342b8b6e 12720 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
12721 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
12722 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 12723 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
12724 name_prefix.
12725
e8cb70b9
PB
127262001-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
63c2d5de
MA
127322001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
12733
342b8b6e 12734 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
12735 %%epilogue.
12736 * src/output.c (output): Rename %%declarations to %%prologue.
12737 * src/bison.simple: Echo modifications.
342b8b6e 12738
d8cb5183
MA
127392001-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
6c686258
PB
127472001-08-31 Pascal Bart <pascal.bart@epita.fr>
12748
342b8b6e 12749 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
12750 output_trailers and output_headers.
12751 * src/output.h: Remove obsolete functions prototypes of output_headers
12752 and output_trailers.
12753
8f451ef7
PB
127542001-08-30 Pascal Bart <pascal.bart@epita.fr>
12755
12756 * src/main.c: Include macrotab.h.
342b8b6e 12757 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
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
997b6fd0 127672001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
12768
12769 * src/reader.c (parse_skel_decl): New.
342b8b6e 12770 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
12771 * src/lex.h (token_t): New token `tok_skel'.
12772 * src/lex.c (percent_table): Add skeleton option entry.
12773 Standardize.
12774
ff48177d
MA
127752001-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
b33160bf
MA
127832001-08-28 Marc Autret <autret_m@epita.fr>
12784
12785 * src/output.c (output_actions): Clean up.
4e5caae2 12786 (output_gram): CPP-out useless code.
b33160bf
MA
12787 * src/reader.c (reader): Clean up, CPP-out useless code.
12788
d1a2daf7
PB
127892001-08-28 Pascal Bart <pascal.bart@epita.fr>
12790
342b8b6e 12791 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 12792 directive.
d1a2daf7
PB
12793 * src/bison.simple: Add `%%definitions'.
12794
2b763dfe
MA
127952001-08-28 Marc Autret <autret_m@epita.fr>
12796
12797 * config/depcomp: New file.
12798
f1a87ef6
PE
127992001-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
82e236e2
RA
128052001-08-27 Robert Anisko <robert.anisko@epita.fr>
12806
f1a87ef6 12807 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
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
b0cfa28a
RA
128172001-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
6fc74234
AD
128222001-08-27 Akim Demaille <akim@epita.fr>
12823
12824 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
12825
9c76d118
RA
128262001-08-25 Robert Anisko <robert.anisko@epita.fr>
12827
12828 * lib/Makefile.am: Adjust.
12829
a8289c62
RA
128302001-08-25 Robert Anisko <robert.anisko@epita.fr>
12831
12832 * src/bison.simple: Update and add '%%' directives.
12833
b6610515
RA
128342001-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.
6fc74234 12843
b6610515
RA
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.
6fc74234 12853 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
12854 rather than lex.
12855
26f609ff
RA
128562001-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.
6fc74234 12861
26f609ff
RA
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.
6fc74234 12871
26f609ff
RA
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'.
6fc74234 12882
26f609ff
RA
12883 * src/output.c (output_table_data): New function.
12884 (output_short_table): Remove.
12885 (output_short_or_char_table): Remove.
6fc74234 12886
26f609ff
RA
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
6f43b113
RA
128932001-08-25 Robert Anisko <robert.anisko@epita.fr>
12894
12895 * src/main.c (main): Initialize the macro table.
12896
dd3127cf
RA
128972001-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
aa321494
RA
129022001-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
68bd3b6b
RA
129082001-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
45f8dd1e
AD
129142001-08-15 Akim Demaille <akim@epita.fr>
12915
12916 Version 1.28c.
12917
40a64a7a 129182001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
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
f9a8293a
AD
129282001-08-15 Akim Demaille <akim@epita.fr>
12929
12930 * doc/bison.texinfo (Table of Symbols): Document
12931 YYSTACK_USE_ALLOCA.
12932
150ca7a7
AD
129332001-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
69b5cec4
AD
129392001-08-15 Akim Demaille <akim@epita.fr>
12940
12941 * Makefile.maint: Sync with CVS Autoconf.
12942
f2b5126e
PB
129432001-08-14 Pascal Bart <pascal.bart@epita.fr>
12944
69b5cec4 12945 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
12946 `fdl.texi'.
12947 * doc/fdl.texi: Add to package.
12948
4ecbf796
MA
129492001-08-14 Marc Autret <autret_m@epita.fr>
12950
12951 Turn on %{source,header}_extension features.
12952
69b5cec4 12953 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
12954 source_extension.
12955 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 12956 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
12957 between options.
12958
95fb5662
MA
129592001-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
78d09da9
MA
129652001-08-13 Marc Autret <autret_m@epita.fr>
12966
69b5cec4 12967 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
12968 defining it (defined but null disables alloca).
12969
5a009f2c
MA
129702001-08-13 Marc Autret <autret_m@epita.fr>
12971
12972 * src/bison.simple (_yy_memcpy): CPP reformat.
12973
1e41465a
PB
129742001-08-13 Pascal Bart <pascal.bart@epita.fr>
12975
12976 * tests/atconfig.in (CPPFLAGS): Fix.
12977
c67a198d
PB
129782001-08-10 Pascal Bart <pascal.bart@epita.fr>
12979
79282c6c 12980 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
12981 `gpl.texi'.
12982 * doc/gpl.texi: Add to package.
12983
09a6de7e
MA
129842001-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
b77b9ee0
AD
129892001-08-10 Akim Demaille <akim@epita.fr>
12990
12991 * src/system.h: Provide default declarations for stpcpy, strndup,
12992 and strnlen.
12993
3e259915
MA
129942001-08-10 Robert Anisko <anisko_r@epita.fr>
12995
12996 * doc/bison.texinfo (Locations): Update @$ stuff.
12997
ca96bc2d
MA
129982001-08-09 Robert Anisko <anisko_r@epita.fr>
12999
13000 * src/bison.simple (YYLLOC_DEFAULT): Update.
13001 (yyparse): Adjust.
13002
fdc6758b
MA
130032001-08-08 Marc Autret <autret_m@epita.fr>
13004
b77b9ee0 13005 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
13006 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
13007 Reported by Fabrice Bauzac.
957d4dbf 13008
600cad3b
MA
130092001-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.
b77b9ee0 13015 (node_output_size): New global variable. Simplify the formatting of
600cad3b 13016 the VCG graph output.
b77b9ee0 13017 (print_actions): Unused code is now used. It notifies the final state
600cad3b 13018 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 13019 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
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
976e528f
AD
130282001-08-07 Pascal Bart <pascal.bart@epita.fr>
13029
13030 * tests/atconfig.in (CPPFLAGS): Fix.
13031
20e8e5ca
AD
130322001-08-07 Akim Demaille <akim@epita.fr>
13033
13034 * src/print_graph.c (quote): New.
13035 (print_core): Use it.
13036
957d4dbf 130372001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 13038
3e3da797
AD
13039 * src/vcg.c (complain.h): Include it.
13040 Unepitaize `return' invocations.
c4b66126 13041 [NDEBUG] (main): Remove.
79282c6c 13042 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
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 ();
3e3da797 13049
957d4dbf 130502001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
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
927c1557 130692001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
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
7333d403
AD
130752001-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
84163231
AD
130922001-08-06 Marc Autret <autret_m@epita.fr>
13093
13094 * configure.in: Bump to 1.28c.
13095 * doc/bison.texinfo: Texinfo thingies.
13096
8303fc42
AD
130972001-08-04 Pascal Bart <pascal.bart@epita.fr>
13098
13099 * tests/atconfig.in (CPPFLAGS): Add.
13100 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
13101
70a84437
AD
131022001-08-03 Akim Demaille <akim@epita.fr>
13103
13104 Version 1.28b.
13105
2ce10144
AD
131062001-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
1e3e4bc1
AD
131122001-08-03 Akim Demaille <akim@epita.fr>
13113
13114 * configure.in: Try using -Wformat when compiling.
13115
42b45b7f
AD
131162001-08-03 Akim Demaille <akim@epita.fr>
13117
13118 * configure.in: Bump to 1.28b.
13119
8f13fe33
AD
131202001-08-03 Akim Demaille <akim@epita.fr>
13121
13122 * src/complain.c: Adjust strerror_r portability issues.
13123
b37ba92c
AD
131242001-08-03 Akim Demaille <akim@epita.fr>
13125
13126 Version 1.28a.
13127
b0ce6046
AD
131282001-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
d01c415b
AD
131362001-08-03 Akim Demaille <akim@epita.fr>
13137
13138 * src/reader.c (readgram): Display hidden chars in error messages.
13139
459dd1a6
AD
131402001-08-03 Akim Demaille <akim@epita.fr>
13141
13142 Update to gettext 0.10.39.
13143
53b74c0c
AD
131442001-08-03 Akim Demaille <akim@epita.fr>
13145
13146 * lib/strspn.c: New.
13147
234a3be3
AD
131482001-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
847bf1f5
AD
131662001-08-01 Robert Anisko <anisko_r@epita.fr>
13167
d995fee7 13168 * doc/bison.texi: Document @$.
847bf1f5
AD
13169 (Locations): New section.
13170
d074a105
AD
131712001-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
3419715d
AD
131772001-07-08 Pascal Bart <pascal.bart@epita.fr>
13178
13179 * src/bison.simple (yyparse): Suppress warning `comparaison
13180 between signed and unsigned'.
13181
62ab6972
AD
131822001-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
1e24cc5b
AD
131902001-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
32dfccf8
AD
131962001-03-16 Akim Demaille <akim@epita.fr>
13197
13198 * doc/bison.texinfo: ANSIfy the examples.
13199
cd5bd6ac
AD
132002001-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
5141b016
AD
132082001-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
447992b9
AD
132142001-03-16 Akim Demaille <akim@epita.fr>
13215
13216 * src/getargs.c (longopts): Clean up.
13217
274d42ce
AD
132182001-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
22c821f3
AD
132242001-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
18569462
AD
132302001-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
0d8f3c8a
AD
132402001-02-02 Akim Demaille <akim@epita.fr>
13241
13242 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 13243 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 13244
f17bcd1f
AD
132452001-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
511e79b3
AD
132552001-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
0d6508ef
AD
132642001-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
6deb4447
AD
132692001-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
ff4423cc
AD
132892000-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
956dba3a
AD
133012000-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
337bab46
AD
133062000-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
5d3214b8
AD
133122000-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
29092a57
AD
133182000-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
ea5607fd
AD
133242000-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
27110317
AD
133322000-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
19c50364
AD
133412000-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
573c1d9f
AD
133512000-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
ef7ddedd
AD
133602000-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
ff61dabd
AD
133672000-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
55b96341
AD
133822000-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
358c15b7
AD
133872000-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
7de3329e
AD
133922000-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
3abcd459
AD
133982000-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
2a91a95e
AD
134062000-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
14d3eb9b
AD
134122000-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
d7045ec6
AD
134192000-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
6fd54b73
AD
134312000-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
4c50eae6
AD
134382000-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
a35f64ea
AD
134432000-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
7de23534
AD
134502000-11-17 Akim Demaille <akim@epita.fr>
13451
13452 * acconfig.h: Remove, no longer used.
13453
aa7815f5
AD
134542000-11-07 Akim Demaille <akim@epita.fr>
13455
13456 * src: s/Copyright (C)/Copyright/g.
13457
5af1f549
AD
134582000-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
553e2b22
AD
134642000-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
8a4f41d6
AD
134692000-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
095a3fb5
AD
134822000-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
d1cdce7c
AD
134882000-11-03 Akim Demaille <akim@epita.fr>
13489
090c5ebf 13490 For some reason, this was not applied.
d1cdce7c
AD
13491
13492 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
13493 `unlink': it's no longer used.
13494
9311529b
AD
134952000-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
d8880f69
AD
135002000-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
0dbb648e
AD
135122000-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
896fe5c1
AD
135182000-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.
1f65350a 13531 * po/POTFILES.in: Adjust.
896fe5c1 13532
dd60faec
AD
135332000-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
8c7ebe49
AD
135432000-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
77aee789
AD
135532000-10-20 Akim Demaille <akim@epita.fr>
13554
13555 * lib/quote.h (PARAMS): New macro. Use it.
13556
43591cec
AD
135572000-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
1e9798d5
AD
135632000-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
f282676b
AD
135742000-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
550a72a3
AD
135802000-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
131e2fef
AD
135882000-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
79282c5a
AD
135932000-10-16 Akim Demaille <akim@epita.fr>
13594
13595 * src/reader.c (copy_dollar): New function.
13596 (copy_guard, copy_action): Use it.
13597
ff4a34be
AD
135982000-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
136062000-10-04 Akim Demaille <akim@epita.fr>
13607
13608 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
13609
14ded682
AD
136102000-10-04 Akim Demaille <akim@epita.fr>
13611
13612 * doc/bison.texinfo: Various typos spotted by Neil Booth.
13613
8e03724b
AD
136142000-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
a9e64249
AD
136252000-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
da9abf43
AD
136312000-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
c33638bb
AD
136372000-10-02 Akim Demaille <akim@epita.fr>
13638
13639 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
13640 options.
13641
444c570a
AD
136422000-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
89cab50d
AD
136472000-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
d6c2cba0
AD
136702000-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
5a35a6cb
AD
136832000-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
71da9eea
AD
137152000-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
95e36146
AD
137272000-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
d7020c20
AD
137352000-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
1916f98e
AD
137482000-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
d7913476
AD
137542000-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
340ef489
AD
137722000-10-02 Akim Demaille <akim@epita.fr>
13773
13774 Various anti-`extern in *.c' changes.
13775
13776 * src/system.h: Include `assert.h'.
13777
b2ca4022
AD
137782000-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
403b315b
AD
137902000-10-02 Akim Demaille <akim@epita.fr>
13791
13792 * src/LR0.h: New file.
13793 Propagate its use.
13794
07a58c13
AD
137952000-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
0619caf0
AD
138042000-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
3519ec76
AD
138132000-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
015acc48
AD
138192000-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
8963a27b
AD
138272000-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
a70083a3
AD
138362000-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
abadc117
AD
138442000-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
720d742f
AD
138522000-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
f2acea59
AD
138582000-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
d019d655
AD
138642000-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
6c89f1c1
AD
138812000-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
d9efd181
AD
138902000-09-21 Akim Demaille <akim@epita.fr>
13891
13892 * src/atgeneral.m4: Update from Autoconf.
13893
c29240e7 138942000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
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
499daa50
AD
139072000-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
cc84fd5d
AD
139172000-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
db5b3a89
AD
139242000-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
ceed8467
AD
139322000-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
05a1d24b
AD
139492000-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
cbd25751
AD
139542000-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
13863333
AD
139602000-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
0d533154
AD
139662000-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
e79137ac
AD
139802000-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
27821bff
AD
139952000-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
cfe5fbc0
AD
140082000-03-31 Akim Demaille <akim@epita.fr>
14009
14010 * src/files.c (tryopen, tryclose): Move to the top.
14011 Be static.
14012
cb7db13e
AD
140132000-03-31 Akim Demaille <akim@epita.fr>
14014
14015 * src/main.c (main): Don't call `done', exit does it.
14016
a0f6b076
AD
140172000-03-31 Akim Demaille <akim@epita.fr>
14018
36281465
AD
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
140272000-03-31 Akim Demaille <akim@epita.fr>
14028
14029 Clean up the error reporting functions.
a0f6b076
AD
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
18539825
AD
140482000-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
9f306f2a
AD
140642000-03-28 Akim Demaille <akim@epita.fr>
14065
14066 * src/getargs.c (usage): Refresh the help message.
14067
0ba347b6
AD
140682000-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
dbe7f271
AD
140742000-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
75bbe78d
AD
140792000-03-17 Akim Demaille <akim@epita.fr>
14080
14081 On syntax errors, report the token on which we choked.
14082
aa5fd0ee
AD
14083 * src/bison.s1 (yyparse): In the label yyerrlab, when
14084 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 14085
7b306f52
AD
140862000-03-17 Akim Demaille <akim@epita.fr>
14087
aa5fd0ee 14088 * src/reader.c (copy_at): New function.
7b306f52
AD
14089 (copy_guard): Use it.
14090 (copy_action): Use it.
14091
e87b5700
AD
140922000-03-17 Akim Demaille <akim@epita.fr>
14093
14094 Be kind to translators, save some useless translations.
14095
aa5fd0ee 14096 * src/main.c (banner): New function.
e87b5700
AD
14097 (fatal_banner): Use it.
14098 (warn_banner): Use it.
14099
ae3c3164
AD
141002000-03-17 Akim Demaille <akim@epita.fr>
14101
aa5fd0ee
AD
14102 * src/reader.c (copy_definition): Use copy_string and
14103 copy_comment. Removed now unused `match', `ended',
14104 `cplus_comment'.
ae3c3164
AD
14105 (copy_comment, copy_string): Moved, to be visible from
14106 copy_definition.
14107
4dc58e7c
AD
141082000-03-17 Akim Demaille <akim@epita.fr>
14109
aa5fd0ee
AD
14110 * src/reader.c (copy_string): Declare `static inline'. No
14111 problems with inline, since it is checked by configure.
4dc58e7c
AD
14112 (copy_comment): Likewise.
14113
0a6384c4
AD
141142000-03-17 Akim Demaille <akim@epita.fr>
14115
aa5fd0ee 14116 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 14117
3cef001a
AD
141182000-03-17 Akim Demaille <akim@epita.fr>
14119
aa5fd0ee 14120 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
14121 (copy_action): Use it. Removed now unused `match', `ended',
14122 `cplus_comment'.
14123 (copy_guard): Likewise.
14124
ca36d2ef
AD
141252000-03-17 Akim Demaille <akim@epita.fr>
14126
aa5fd0ee 14127 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
14128 (copy_action): Use it.
14129 (copy_guard): Likewise.
14130
6666f98f
AD
141312000-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
41aca2e0
AD
141512000-03-17 Akim Demaille <akim@epita.fr>
14152
aa5fd0ee
AD
14153 * src/bison.s1: Formatting and cosmetics changes.
14154 * src/reader.c: Likewise.
41aca2e0
AD
14155 Update the Copyright notice.
14156
dc08c1d5
AD
141572000-03-17 Akim Demaille <akim@epita.fr>
14158
aa5fd0ee
AD
14159 * src/bison.s1 (#line): All set to `#line' only, since the
14160 Makefile now handles them.
dc08c1d5 14161
9ee3c97b
AD
141622000-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
0de741ca
AD
141692000-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
bb10be54
AD
141762000-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
b07b484a
AD
141812000-03-16 Akim Demaille <akim@epita.fr>
14182
14183 * src/bison.s1: Properly indent CPP directives.
14184
361f60b3
AD
141852000-03-16 Akim Demaille <akim@epita.fr>
14186
14187 * src/bison.s1: Properly indent the `alloca' CPP section.
14188
8c44d3ec
AD
141892000-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
f95997e7
AD
142202000-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
142271999-12-13 Jesse Thilo <jthilo@gnu.org>
14228
14229 * src/files.c:
14230 OS/2 honors TMPDIR environment variable.
14231
142321999-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
142391999-12-13 Jesse Thilo <jthilo@gnu.org>
14240
14241 * configure.in, NEWS:
14242 Bison 1.29 released.
14243
142441999-10-27 Jesse Thilo <jthilo@gnu.org>
14245
14246 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
14247 Added reference card.
14248
142491999-07-26 Jesse Thilo <jthilo@gnu.org>
14250
14251 * po/ru.po: Added Russian translation.
14252
142531999-07-26 Jesse Thilo <jthilo@gnu.org>
14254
14255 * configure.in: Added Russian translation.
14256
142571999-07-06 Jesse Thilo <jthilo@gnu.org>
14258
14259 * configure.in, NEWS, README:
14260 Released version 1.28.
14261
142621999-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
142711999-06-14 Jesse Thilo <jthilo@gnu.org>
14272
14273 * po/POTFILES.in: Got rid of version.c.
14274
142751999-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
142811999-06-08 Jesse Thilo <jthilo@gnu.org>
14282
14283 * doc/bison.1:
14284 Dropped mention of `+' for long-named options.
14285
142861999-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
142931999-05-30 Jesse Thilo <jthilo@gnu.org>
14294
14295 * README: Added a FAQ list.
14296
14297 * configure.in, acconfig.h:
14298 I18n fixes.
14299
143001999-05-30 Jesse Thilo <jthilo@gnu.org>
14301
14302 * doc/FAQ, doc/Makefile.am:
14303 Added a FAQ list.
14304
143051999-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
143101999-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
143191999-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
143241999-04-18 Jesse Thilo <jthilo@gnu.org>
14325
14326 * doc/.cvsignore, doc/Makefile.am:
14327 Reorganized: sources in `src', documentation in `doc'.
14328
143291999-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
143371999-04-13 Jesse Thilo <jthilo@gnu.org>
14338
14339 * src/allocate.c:
14340 Don't declare calloc() and realloc() if not necessary.
14341
143421999-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
143471999-03-23 Jesse Thilo <jthilo@gnu.org>
14348
14349 * po/.cvsignore: Added i18n support.
14350
143511999-03-23 Jesse Thilo <jthilo@gnu.org>
14352
14353 * acconfig.h, configure.in, Makefile.am:
14354 Added i18n support.
14355
143561999-03-22 Jesse Thilo <jthilo@gnu.org>
14357
14358 * src/bison.s1: Fixed #line numbers.
14359
143601999-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
143651999-03-03 Jesse Thilo <jthilo@gnu.org>
14366
14367 * Makefile.am:
14368 Added support for non-ANSI compilers (ansi2knr).
14369
143701999-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
143771999-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
143821999-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
143871999-02-09 Jesse Thilo <jthilo@gnu.org>
14388
14389 * Makefile.am:
14390 Removed inappropriate use of $< macro.
14391
143921999-02-05 Jesse Thilo <jthilo@gnu.org>
14393
14394 * po/Makefile.in.in, po/POTFILES.in:
14395 Add `po' directory skeleton.
14396
143971999-01-27 Jesse Thilo <jthilo@gnu.org>
14398
14399 * README: Document help-bison list.
14400
14401 * configure.in: Add check for mkstemp().
14402
144031999-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
144121999-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
144181999-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
144231999-01-14 Jesse Thilo <jthilo@gnu.org>
14424
14425 * doc/bison.texinfo: Fix formatting glitch.
14426
14427 * doc/bison.texinfo: Update FSF address.
14428
144291999-01-14 Jesse Thilo <jthilo@gnu.org>
14430
14431 * acconfig.h: Update FSF address.
14432
144331999-01-08 Jesse Thilo <jthilo@gnu.org>
14434
14435 * src/system.h:
14436 Don't define PACKAGE here, since config.h defines it.
14437
144381998-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
144611998-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
144671998-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
144791998-12-29 Jesse Thilo <jthilo@gnu.org>
14480
14481 * src/version.c:
14482 Use VERSION symbol from automake for version number.
14483
144841998-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
144891998-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
144951998-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
145021998-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
145071998-11-26 Jesse Thilo <jthilo@gnu.org>
14508
14509 * doc/bison.1:
14510 Document the BISON_HAIRY and BISON_SIMPLE variables.
14511
145121998-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
145261998-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
145441998-11-25 Jesse Thilo <jthilo@gnu.org>
14545
14546 * doc/bison.texinfo: Clean up some formatting.
14547
145481998-05-05 Richard Stallman <rms@gnu.org>
14549
14550 * doc/bison.texinfo:
14551 Explain better why to make a pure parser.
14552
145531998-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
145601997-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
145671997-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
145741997-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
145821997-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
145911997-06-18 Richard Stallman <rms@gnu.org>
14592
14593 * Makefile.in: new.h renamed to alloc.h.
14594
145951997-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
146031997-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
146131997-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
146231997-04-23 Richard Stallman <rms@gnu.org>
14624
14625 * src/bison.s1:
14626 (alloca) [__hpux]: Always define as __builtin_alloca.
14627
146281997-04-23 Richard Stallman <rms@gnu.org>
14629
14630 * bison.simple:
14631 (alloca) [__hpux]: Always define as __builtin_alloca.
14632
146331997-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
146431997-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
146531997-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
146581997-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
146671997-01-02 Richard Stallman <rms@gnu.org>
14668
14669 * Makefile.in (dist):
14670 Explicitly check for symlinks, and copy them.
14671
146721996-12-19 Richard Stallman <rms@gnu.org>
14673
14674 * src/files.c:
14675 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
14676
146771996-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
146831996-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
146891996-12-17 Richard Stallman <rms@gnu.org>
14690
14691 * src/reduce.c (nbits): Add some casts.
14692
146931996-08-12 Richard Stallman <rms@gnu.org>
14694
14695 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
14696
146971996-08-12 Richard Stallman <rms@gnu.org>
14698
14699 * bison.simple: Test _MSDOS as well as _MSDOS_.
14700
147011996-07-31 Richard Stallman <rms@gnu.org>
14702
14703 * src/bison.s1:
14704 [__sun && __i386]: Include alloca.h.
14705
147061996-07-31 Richard Stallman <rms@gnu.org>
14707
14708 * bison.simple:
14709 [__sun && __i386]: Include alloca.h.
14710
147111996-07-30 Richard Stallman <rms@gnu.org>
14712
14713 * src/bison.s1: Comment change.
14714
14715 * src/bison.s1: Test _MSDOS_, not MSDOS.
14716
147171996-07-30 Richard Stallman <rms@gnu.org>
14718
14719 * bison.simple: Comment change.
14720
14721 * bison.simple: Test _MSDOS_, not MSDOS.
14722
147231996-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
147401996-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
147551996-05-12 Richard Stallman <rms@gnu.org>
14756
14757 * src/bison.s1:
14758 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
14759
147601996-05-12 Richard Stallman <rms@gnu.org>
14761
14762 * bison.simple:
14763 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
14764
147651996-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
147711996-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
147791996-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
147851995-12-29 Richard Stallman <rms@gnu.org>
14786
14787 * src/bison.s1:
14788 Fix line numbers in #line commands.
14789
147901995-12-29 Richard Stallman <rms@gnu.org>
14791
14792 * bison.simple:
14793 Fix line numbers in #line commands.
14794
147951995-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
148021995-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
148091995-11-29 Richard Stallman <rms@gnu.org>
14810
14811 * doc/bison.texinfo:
14812 Describe literal string tokens, %raw, %no_lines, %token_table.
14813
148141995-11-29 Daniel Hagerty <hag@gnu.org>
14815
14816 * doc/bison.texinfo: Fixed update date
14817
148181995-10-16 Richard Stallman <rms@gnu.org>
14819
14820 * src/version.c: Version 1.25.
14821
148221995-10-16 Richard Stallman <rms@gnu.org>
14823
14824 * NEWS: *** empty log message ***
14825
148261995-10-16 Richard Stallman <rms@gnu.org>
14827
14828 * doc/bison.1, doc/bison.rnh:
14829 Add new options.
14830
148311995-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
149181995-06-01 Jim Meyering <meyering@gnu.org>
14919
14920 * doc/bison.texinfo: *** empty log message ***
14921
149221995-05-06 Richard Stallman <rms@gnu.org>
14923
14924 * src/bison.s1: Comment change.
14925
149261995-05-06 Richard Stallman <rms@gnu.org>
14927
14928 * bison.simple: Comment change.
14929
149301995-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
149381995-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
149441995-05-03 Richard Stallman <rms@gnu.org>
14945
14946 * bison.simple: Change distribution terms.
14947
149481995-02-23 Richard Stallman <rms@gnu.org>
14949
14950 * src/files.c: Test __VMS_POSIX as well as VMS.
14951
149521995-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
149591995-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
149661994-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
149791994-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
149861994-09-28 David J. MacKenzie <djm@gnu.org>
14987
14988 * Makefile.in: Set datadir to $(prefix)/share.
14989
149901994-09-15 Richard Stallman <rms@gnu.org>
14991
14992 * src/bison.s1:
14993 Update copyright notice and GPL version.
14994
149951994-09-15 Richard Stallman <rms@gnu.org>
14996
14997 * bison.simple:
14998 Update copyright notice and GPL version.
14999
150001994-07-12 Richard Stallman <rms@gnu.org>
15001
15002 * src/reduce.c, src/reader.c:
15003 entered into RCS
15004
150051994-05-05 David J. MacKenzie <djm@gnu.org>
15006
15007 * Makefile.in: entered into RCS
15008
150091994-03-26 Richard Stallman <rms@gnu.org>
15010
15011 * src/bison.s1: entered into RCS
15012
150131994-03-26 Richard Stallman <rms@gnu.org>
15014
15015 * bison.simple: entered into RCS
15016
150171994-03-25 Richard Stallman <rms@gnu.org>
15018
15019 * src/main.c: entered into RCS
15020
150211994-03-24 Richard Stallman <rms@gnu.org>
15022
15023 * src/conflicts.c: entered into RCS
15024
150251994-01-02 Richard Stallman <rms@gnu.org>
15026
15027 * Makefile.in: *** empty log message ***
15028
150291993-11-21 Richard Stallman <rms@gnu.org>
15030
15031 * src/bison.s1: *** empty log message ***
15032
150331993-11-21 Richard Stallman <rms@gnu.org>
15034
15035 * doc/bison.texinfo: entered into RCS
15036
15037 * doc/bison.texinfo: *** empty log message ***
15038
150391993-11-21 Richard Stallman <rms@gnu.org>
15040
15041 * bison.simple: *** empty log message ***
15042
150431993-10-25 David J. MacKenzie <djm@gnu.org>
15044
15045 * doc/bison.texinfo: *** empty log message ***
15046
150471993-10-19 Richard Stallman <rms@gnu.org>
15048
15049 * src/bison.s1: *** empty log message ***
15050
150511993-10-19 Richard Stallman <rms@gnu.org>
15052
15053 * bison.simple: *** empty log message ***
15054
150551993-10-14 Richard Stallman <rms@gnu.org>
15056
15057 * src/bison.s1: *** empty log message ***
15058
150591993-10-14 Richard Stallman <rms@gnu.org>
15060
15061 * bison.simple: *** empty log message ***
15062
150631993-09-14 David J. MacKenzie <djm@gnu.org>
15064
15065 * doc/bison.texinfo: *** empty log message ***
15066
150671993-09-13 Noah Friedman <friedman@gnu.org>
15068
15069 * Makefile.in: *** empty log message ***
15070
150711993-09-10 Richard Stallman <rms@gnu.org>
15072
15073 * src/conflicts.c: *** empty log message ***
15074
15075 * src/system.h: entered into RCS
15076
150771993-09-10 Richard Stallman <rms@gnu.org>
15078
15079 * doc/bison.1: entered into RCS
15080
150811993-09-06 Noah Friedman <friedman@gnu.org>
15082
15083 * src/version.c: entered into RCS
15084
150851993-09-06 Noah Friedman <friedman@gnu.org>
15086
15087 * Makefile.in: *** empty log message ***
15088
150891993-07-30 David J. MacKenzie <djm@gnu.org>
15090
15091 * Makefile.in: *** empty log message ***
15092
150931993-07-24 Richard Stallman <rms@gnu.org>
15094
15095 * src/bison.s1: *** empty log message ***
15096
150971993-07-24 Richard Stallman <rms@gnu.org>
15098
15099 * bison.simple: *** empty log message ***
15100
151011993-07-08 David J. MacKenzie <djm@gnu.org>
15102
15103 * Makefile.in: *** empty log message ***
15104
151051993-07-04 Richard Stallman <rms@gnu.org>
15106
15107 * src/bison.s1: *** empty log message ***
15108
151091993-07-04 Richard Stallman <rms@gnu.org>
15110
15111 * bison.simple: *** empty log message ***
15112
151131993-06-26 David J. MacKenzie <djm@gnu.org>
15114
15115 * src/getargs.c: entered into RCS
15116
151171993-06-26 David J. MacKenzie <djm@gnu.org>
15118
15119 * doc/bison.texinfo: *** empty log message ***
15120
15121 * doc/bison.1: New file.
15122
151231993-06-25 Richard Stallman <rms@gnu.org>
15124
15125 * src/getargs.c: New file.
15126
151271993-06-16 Richard Stallman <rms@gnu.org>
15128
15129 * src/bison.s1: *** empty log message ***
15130
151311993-06-16 Richard Stallman <rms@gnu.org>
15132
15133 * bison.simple: *** empty log message ***
15134
151351993-06-03 Richard Stallman <rms@gnu.org>
15136
15137 * src/bison.s1: New file.
15138
151391993-06-03 Richard Stallman <rms@gnu.org>
15140
15141 * doc/bison.texinfo: *** empty log message ***
15142
151431993-06-03 Richard Stallman <rms@gnu.org>
15144
15145 * bison.simple: New file.
15146
151471993-05-19 Richard Stallman <rms@gnu.org>
15148
15149 * doc/bison.texinfo: New file.
15150
151511993-05-07 Noah Friedman <friedman@gnu.org>
15152
15153 * Makefile.in: *** empty log message ***
15154
151551993-04-28 Noah Friedman <friedman@gnu.org>
15156
15157 * src/reader.c: *** empty log message ***
15158
151591993-04-23 Noah Friedman <friedman@gnu.org>
15160
15161 * src/alloc.h: entered into RCS
15162
151631993-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
151821993-04-18 Noah Friedman <friedman@gnu.org>
15183
15184 * src/reader.c: New file.
15185
15186 * src/version.c: *** empty log message ***
15187
151881993-04-18 Noah Friedman <friedman@gnu.org>
15189
15190 * Makefile.in: *** empty log message ***
15191
151921993-04-17 Noah Friedman <friedman@gnu.org>
15193
15194 * Makefile.in: *** empty log message ***
15195
151961993-04-15 Richard Stallman <rms@gnu.org>
15197
15198 * src/main.c, src/files.c:
15199 New file.
15200
152011993-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
152091993-04-14 Richard Stallman <rms@gnu.org>
15210
15211 * Makefile.in: New file.
15212
152131993-04-13 Richard Stallman <rms@gnu.org>
15214
15215 * src/version.c: New file.
15216
152171993-03-25 Richard Stallman <rms@gnu.org>
15218
15219 * src/output.c: entered into RCS
15220
152211992-09-25 Richard Stallman <rms@gnu.org>
15222
15223 * configure.bat: entered into RCS
15224
152251992-06-22 Richard Stallman <rms@gnu.org>
15226
15227 * src/vmsgetargs.c: entered into RCS
15228
152291992-06-22 Richard Stallman <rms@gnu.org>
15230
15231 * doc/bison.rnh: entered into RCS
15232
152331992-04-20 David J. MacKenzie <djm@gnu.org>
15234
15235 * README: entered into RCS
15236
152371992-01-22 Richard Stallman <rms@gnu.org>
15238
15239 * src/machine.h: entered into RCS
15240
152411991-12-21 Richard Stallman <rms@gnu.org>
15242
15243 * src/lalr.c, src/closure.c:
15244 entered into RCS
15245
152461991-12-20 Richard Stallman <rms@gnu.org>
15247
15248 * src/state.h: entered into RCS
15249
152501991-12-18 Richard Stallman <rms@gnu.org>
15251
15252 * src/print.c, src/nullable.c, src/derives.c:
15253 entered into RCS
15254
152551991-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
152601988-09-09 Richard Stallman <rms@gnu.org>
15261
15262 * src/bison.hairy: entered into RCS
15263
152641987-12-16 Richard Stallman <rms@gnu.org>
15265
15266 * REFERENCES: entered into RCS
dc546b0f 15267
f294a2c2 15268
04098407 15269 -----
f294a2c2 15270
04098407 15271 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
e2a21b6f
PE
15272 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
15273 Software Foundation, Inc.
f294a2c2 15274
04098407
PE
15275 Copying and distribution of this file, with or without
15276 modification, are permitted provided the copyright notice and this
15277 notice are preserved.