]> git.saurik.com Git - bison.git/blame - ChangeLog
* data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
[bison.git] / ChangeLog
CommitLineData
a0af42fc
AD
12005-12-22 Akim Demaille <akim@epita.fr>
2
3 * data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
4 (b4_yysymprint_generate): Rename as...
5 (b4_yy_symbol_print_generate): this.
6 Generate yy_symbol_print instead of yysymprint.
7 Generate also yy_symbol_value_print, and use it.
8
affac613
AD
92005-12-22 Akim Demaille <akim@epita.fr>
10
11 Warn about unused values.
12 * src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
13 a `used' member.
14 (symbol_list_n_get, symbol_list_n_used_set): New.
15 (symbol_list_n_type_name_get): Use symbol_list_n_get.
16 * src/scan-gram.l (handle_action_dollar): Flag used symbols.
17 * src/reader.c (grammar_current_rule_check): Check that values are
18 used.
19 * src/symtab.c (symbol_print): Accept 0.
20 * tests/existing.at: Remove the type information.
21 Empty the actions.
22 Remove useless actions (beware of mid-rule actions: perl -000
23 -pi -e 's/\s*\{\}(?=[\n\s]*[|;])//g').
24 * tests/actions.at (Exotic Dollars): Use unused values.
25 * tests/calc.at: Likewise.
26 * tests/glr-regression.at (No users destructors if stack 0 deleted):
27 Likewise.
28
29 * src/gram.c (rule_useful_p, rule_never_reduced_p): Use
30 rule_useful_p.
31
9d9b8b70
PE
322005-12-21 Paul Eggert <eggert@cs.ucla.edu>
33
8bb4c753
PE
34 Undo 2005-12-01 tentative license wording change. The wording is
35 still being reviewed by the lawyers, and we don't want to wait for
36 them before publishing a test release. For now, revert to the
37 previous wording.
38 * NEWS: Undo 2005-12-01 change.
39 * data/glr.c: Revert to previous license wording.
40 * data/glr.cc: Likewise.
41 * data/lalr1.cc: Likewise.
42 * data/location.cc: Likewise.
43 * data/yacc.c: Likewise.
44
9d9b8b70
PE
45 * NEWS: Reword %destructor vs YYABORT etc.
46 * data/glr.c: Use American spacing, for consistency.
47 * data/glr.cc: Likewise.
48 * data/lalr1.cc: Likewise.
49 * data/yacc.c: Likewise.
50 * data/yacc.c: Reformat comments slightly.
51 * doc/bison.texinfo: Replace "non-" with "non" when that makes sense,
52 for consistency. Fix some spelling errors and reword recently-included
53 text slightly.
54 * tests/cxx-type.at: Cast results of malloc, for C++.
55
2c3b392a
AD
562005-12-21 Joel E. Denny <address@hidden>
57
58 * tests/cxx-type.at: Construct a tree, count the parents of shared
59 nodes, and free each node once and only once. Previously, the memory
60 for semantic values was leaked instead.
61
d6cff4dc
AD
622005-12-21 Joel E. Denny <address@hidden>
63
64 * data/glr.c (struct yyGLRStack): If pure, add yyval and yyloc members.
65 (yylval, yylloc): If pure, #define to yystackp->yyval and
66 yystackp->yyloc similar to yychar and yynerrs.
67 (yyparse): If pure, remove local yylval and yylloc. Add local
68 yystackp to accommodate pure definitions of yylval and yylloc.
69 (b4_lex_param, b4_lyyerror_args, b4_lpure_args): If pure, change
70 yylvalp and yyllocp to &yylval and &yylloc.
71 (nerrs, char, lval, lloc): If pure, add #define's for b4_prefix[]
72 namespace. Previously, nerrs and char were missing, but lval and lloc
73 weren't necessary.
74 (yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Remove
75 yylvalp and yyllocp parameters since, if pure, these are now always
76 accessible through yystackp. If not pure, they are still accessible
77 globally.
78 * data/glr.c, data/yacc.c (YYLLOC_DEFAULT): Change `if (N)' to
79 `if (YYID (N))' to pacify lint.
80
a85284cf
AD
812005-12-21 Akim Demaille <akim@epita.fr>
82
83 YYACCEPT, YYERROR, and YYABORT, as user actions, should not
84 destroy the RHS symbols of a rule.
85 * data/yacc.c (yylen): Initialize to 0.
86 Keep its value to the number of items to possibly shift.
87 In particular, a regular successful parse that ends on YYFINAL by
88 a (internal) YYACCEPT must not have yylen != 0.
89 (yyerrorlab, yyreturn): Pop the RHS.
90 Reorder a bit to emphasize the `shifting' bits of code.
91 (YYPOPSTACK): Now accept a number of items to pop.
92 * data/lalr1.cc: Likewise.
93 * data/glr.c: Formatting changes.
94 Use goto instead of fall through.
95 * doc/bison.texinfo (Destructor Decl): Complete.
96
d508c281
JMG
972005-12-20 Juan Manuel Guerrero <juan.guerrero@gmx.de>
98
99 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
100 * djgpp/Makefile.maint: Fix PACKAGE variable computation.
101 * djgpp/config.bat: Replace every occurence of the file name
102 scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
103 c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
104 * djgpp/config.sed: Replace every occurence of the file name
105 scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
106 c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
107 * djgpp/djunpack.bat: DJGPP specific file.
108 * djgpp/fnchange.lst: DJGPP specific file.
109 * djgpp/README.in: Add new information about how to unpack the bison
110 source on MSDOS and other systems which have 8.3 file name restrictions
111 using djunpack.bat and fnchange.lst.
112
3e7a2cd9
PE
1132005-12-12 Paul Eggert <eggert@cs.ucla.edu>
114
115 * bootstrap (build_cvs_prefix): Remove; unused.
116 (CVS_PREFIX): Adjust to yesterday's Savannah reorganization
117 when getting gnulib.
118
1192005-12-12 "Joel E. Denny" <jdenny@ces.clemson.edu>
120
121 * data/glr.c: Reorder typedef declarations for structs to match order
122 of struct declarations.
123 Rename yystack everywhere to yystackp except in yyparse where it's not
124 a pointer.
125 (yyglrShift): Change parameter YYSTYPE yysval to YYSTYPE* yyvalp for
126 consistency.
127 (yyis_table_ninf): Change 0 to YYID (0) to pacify lint.
128 (yyreportSyntaxError): Add /*ARGSUSED*/ to pacify lint.
129 (yyparse): Change while (yytrue) to while ( YYID (yytrue)) to pacify
130 lint.
131
877519f8
PE
1322005-12-09 Paul Eggert <eggert@cs.ucla.edu>
133
0eca5a39
PE
134 * tests/sets.at (Accept): Fix typos in regular expression used to
135 sed out the final state number.
136
2cec9080
PE
137 Work around portability problem on Solaris 10: flex-generated
138 files include <stdio.h> before <config.h>, which messes up
139 because the latter defines __EXTENSIONS__. Address the problem
140 by creating two new little files that include <config.h> first,
141 then include the flex-generated files. Rewrite everyone else
142 to include <config.h> first, as well.
143 * lib/timevar.c: Always include "config.h".
144 * src/Makefile.am (bison_SOURCES): Replace scan-gram.l with
145 scan-gram-c.c, and scan-skel.l with scan-skel-c.c.
146 (EXTRA_bison_SOURCES): New macro.
147 * src/scan-gram-c.c, src/scan-skel-c.c: New files.
148 * src/system.h: Don't include config.h.
149 * src/LR0.c: Include <config.h> first.
150 * src/assoc.c: Likewise.
151 * src/closure.c: Likewise.
152 * src/complain.c: Likewise.
153 * src/conflicts.c: Likewise.
154 * src/derives.c: Likewise.
155 * src/files.c: Likewise.
156 * src/getargs.c: Likewise.
157 * src/gram.c: Likewise.
158 * src/lalr.c: Likewise.
159 * src/location.c: Likewise.
160 * src/main.c: Likewise.
161 * src/muscle_tab.c: Likewise.
162 * src/nullable.c: Likewise.
163 * src/output.c: Likewise.
164 * src/parse-gram.y: Likewise.
165 * src/print.c: Likewise.
166 * src/print_graph.c: Likewise.
167 * src/reader.c: Likewise.
168 * src/reduce.c: Likewise.
169 * src/relation.c: Likewise.
170 * src/state.c: Likewise.
171 * src/symlist.c: Likewise.
172 * src/symtab.c: Likewise.
173 * src/tables.c: Likewise.
174 * src/uniqstr.c: Likewise.
175 * src/vcg.c: Likewise.
176
877519f8
PE
177 * src/parse-gram.y: Fix minor problems uncovered by lint.
178 (current_lhs, current_lhs_location): Now static.
179 (current_assoc): Remove unused variable.
180
181 Cleanups so that Bison-generated parsers have less lint.
182 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
183 Prepend /*ARGSUSED*/, for lint's sake.
184 * data/glr.c (YYUSE): Properly parenthesize, and use an alternate
185 definition if 'lint' is defined.
186 (YYID): New macro (or function, if lint).
187 All uses of /*CONSTCOND*/0 replaced by YYID(0).
188 * data/yacc.c: Likewise.
189 * data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
190 (yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
191 * data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
192 is C++ only.
193 * data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
194 * data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
195 Use YYID(0) rather than 0, for lint.
196 (yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
197 (yysyntax_error): Rewrite to avoid lint warnings about parenthesization.
198
f5228370
PE
1992005-12-07 Paul Eggert <eggert@cs.ucla.edu>
200
201 * tests/glr-regression.at
202 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
203 Close memory leak reported by twlevo.
204
69ce078b
PE
2052005-12-06 "Joel E. Denny" <jdenny@ces.clemson.edu>
206
6ff99711
PE
207 * data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for
208 all stacks.
209 (yyparse): Iterate another stack in order to call user destructors.
69ce078b
PE
210 * tests/glr-regression.at (No users destructors if stack 0 deleted):
211 New test case.
212 (Duplicated user destructor for lookahead): This test now is expected
213 to succeed.
214
af3412cd
PE
2152005-12-01 Paul Eggert <eggert@cs.ucla.edu>
216
32b5b719 217 * NEWS: Document the following change.
af3412cd
PE
218 * data/yacc.c: Say "parser skeleton" rather than "file", since
219 it's no longer just a file.
220 * data/glr.c: Grant a special exception for C GLR parsers, that
221 reads like the already-existing exception for C LALR(1) parsers.
222 * data/glr.cc: Likewise.
223 * data/lalr1.cc: Likewise.
224 * data/location.cc: Likewise.
225 * data/yacc.c: Reword the "written by" statement to clarify that
226 it was the parser skeleton, not the entire output file.
227 * data/glr.c: Written by Paul Hilfinger.
228 * data/glr.cc: Written by Akim Demaille.
229 * data/lalr1.cc: Likewise.
230
035aa4a0
PE
2312005-11-18 Paul Eggert <eggert@cs.ucla.edu>
232
d9963c85
PE
233 * data/yacc.c (yy_reduce_print, YY_REDUCE_PRINT):
234 Fix typos in previous change that broke 'make check'.
235 YY_REDUCE_PRINT cannot be a pseudo-varargs macro; that isn't
236 supported in C.
237 * tests/calc.at (_AT_CHECK_CALC,_AT_CHECK_CALC_ERROR):
238 Don't check NUM-STDERR-LINES, since the output format is fluctuating.
239 We can revert this once things settle down.
240
035aa4a0
PE
241 * src/conflicts.c (conflicts_print): Don't print file name twice
242 when %expect fails because there were no conflicts.
243 * doc/bison.texinfo (Expect Decl): Tighten up wording in previous
244 change.
245 * tests/conflicts.at (%expect not enough, %expect too much):
246 (%expect with reduce conflicts): Adjust to new behavior.
247
2482005-11-18 Akim Demaille <akim@epita.fr>
249
250 * src/conflicts.c (conflicts_print): Unsatisfied %expectation are
251 errors.
252 * NEWS: Document this.
253 * doc/bison.texinfo (Expect Decl): Likewise.
254
d1ff7a7c
AD
2552005-11-16 Akim Demaille <akim@epita.fr>
256
257 Generalize the display of semantic values and locations in traces.
258 * data/glr.c (yy_reduce_print): Fix indices (again).
259 * data/c++.m4 (b4_rhs_value, b4_rhs_location): Don't expect
260 literal integers.
261 * data/lalr1.cc (yyreduce_print): Rename as...
262 (yy_reduce_print): this.
263 Display values and locations.
264 * data/yacc.c (yy_reduce_print): Likewise.
265 (YY_REDUCE_PRINT): Adjust to pass the required arguments.
266 (yysymprint): Move higher to be visible from yy_reduce_print).
267 (yyparse): Adjust.
268 * tests/calc.at: Adjust the expected length of the traces.
269
6de5398d
AD
2702005-11-14 Akim Demaille <akim@epita.fr>
271
272 * data/glr.c (yy_reduce_print): The loop was quite wrong: type are
273 from 1 to N, while values and location start at 0.
274 (b4_rhs_location, b4_rhs_value): Add parens around $1 and $2.
275
a1373f55
AD
2762005-11-14 Akim Demaille <akim@epita.fr>
277
278 * data/glr.c (yy_reduce_print): Fix the $ number.
279
613d8952
AD
2802005-11-14 Akim Demaille <akim@epita.fr>
281
282 "Use" parse parameters.
283 * data/c.m4 (b4_parse_param_for, b4_parse_param_use): New.
284 * data/glr.c, data/glr.cc: Use them.
285 * data/glr.c (YYUSE): Have a C++ definition that supports
286 non-pointer types.
287
b2741627
AD
2882005-11-14 Akim Demaille <akim@epita.fr>
289
290 * data/glr.c (yyexpandGLRStack): Declare only if defined.
291
5059b5c8
AD
2922005-11-14 Akim Demaille <akim@epita.fr>
293
42249483
AD
294 * data/glr.cc: New.
295 * data/m4sugar/m4sugar.m4 (m4_prepend): New.
5059b5c8 296
4626a15d
AD
2972005-11-12 Akim Demaille <akim@epita.fr>
298
299 Let position and location be PODs.
300 * data/location.cc (position::initialize, location::initialize): New.
301 (position::position, location::location): Define only if
302 b4_location_constructors is defined.
303 * data/lalr1.cc (b4_location_constructors): Define it for backward
304 compatibility.
305 * doc/bison.texinfo (Initial Action Decl): Use initialize.
306
3072005-11-12 Akim Demaille <akim@epita.fr>
98ae9643
AD
308
309 * data/lalr1.cc: Move the body of the ctor and dtor into the
310 parser file (instead of the header).
311 Wrap the implementations in a "namespace yy".
312
3132005-11-12 Akim Demaille <akim@epita.fr>
314
315 Have glr.c include its header file when created.
316 * data/glr.c (b4_shared_declarations): New.
317 Output them verbatim in the parser if !%defines, otherwise
318 output then in the header file, and include it instead.
319
1989d947
AD
3202005-11-11 Akim Demaille <akim@epita.fr>
321
322 * data/glr.c: Comment changes.
323
3242005-11-11 Akim Demaille <akim@epita.fr>
62b08cfc
AD
325
326 When yydebug, report semantic and location values for reductions.
327 * data/glr.c (yy_reduce_print): Report the semantic values and the
328 locations.
329 (YY_REDUCE_PRINT): Adjust.
330 (yyglrReduce): Use them.
331 (b4_rhs_value, b4_rhs_location): Remove m4_eval invocations.
332 * data/c.m4 (b4_yysymprint_generate): Specify the const arguments.
333 * tests/calc.at (_AT_CHECK_CALC_ERROR): Remove the reduction
334 traces.
335
02998094
AD
3362005-11-10 Akim Demaille <akim@epita.fr>
337
338 * data/glr.c (yynewGLRStackItem, YY_RESERVE_GLRSTACK): New.
339 (yyaddDeferredAction, yyglrShift, yyglrShiftDefer): Use them.
340 (yyexpandGLRStack, YYRELOC): Define only when YYSTACKEXPANDABLE.
341
5210672f
PE
3422005-11-09 Albert Chin-A-Young <china@thewrittenword.com>
343
344 * m4/cxx.m4, examples/Makefile.am: Don't build
345 examples/calc++ if no C++ compiler is available. (trivial change)
346
a8991a1d
AD
3472005-11-09 Akim Demaille <akim@epita.fr>
348
349 * src/scan-skel.l: Use a couple of asserts.
350
36b5e963
AD
3512005-11-03 Akim Demaille <akim@epita.fr>
352
353 In some (weird) cases, the final state number is incorrect.
354 Reported by Alexandre Duret-Lutz.
355 * src/LR0.c (state_list_append): Remove the computation of
356 final_state.
357 (save_reductions): Do it here.
358 (get_state): Alpha conversion.
359 (generate_states): Use a for loop.
360 * src/gram.h (item_number_is_rule_number)
361 (item_number_is_symbol_number): New.
362 * src/state.c: Use assert.
363 * src/system.h: Include assert.h.
364 * tests/sets.at (Accept): New.
365
44e7ead1
PH
3662005-10-30 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
367
368 * data/glr.c (yyfill): Adjust comment.
36b5e963 369 (yyresolveAction): Initialize default location properly
44e7ead1
PH
370 for empty right-hand sides.
371 (yydoAction): Ditto.
372 Add comment explaining apparently dead code.
36b5e963
AD
373 * tests/glr-regression.at
374 (Incorrectly initialized location for empty right-hand side in GLR):
44e7ead1 375 New test.
36b5e963 376
e10a80ee
PE
3772005-10-30 Paul Eggert <eggert@cs.ucla.edu>
378
379 * bootstrap (cleanup_gnulib): New function. Use it to clean up
380 gnulib when interrupted. This fixes some race conditions and
381 works around some portability problems (one noted by Paul
382 Hilfinger).
383
067b32ee
AD
3842005-10-22 Akim <akim@epita.fr>
385
386 * Makefile.cfg: Adjust to config -> build-aux.
387 Reported by twledo.
388
4b367315
AD
3892005-10-21 Akim Demaille <akim@epita.fr>
390
391 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
392 the %parse-params.
393 * data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
394 * data/yacc.c (b4_Pure_if): Rename as...
395 (b4_yacc_pure_if): this.
396 (YY_SYMBOL_PRINT, yyparse): Adjust.
397 * doc/bison.texinfo: Formatting changes.
398
24cc23d9
AD
3992005-10-21 Akim Demaille <akim@epita.fr>
400
401 Finish the transition config -> build-aux.
402 * configure.ac, Makefile.am: Use build-aux.
403 * config/prev-version, config/announce-gen, config/Makefile.am:
404 Move to...
405 * build-aux/prev-version, build-aux/announce-gen,
406 * build-aux/Makefile.am: here.
407
d4476375
AD
4082005-10-14 Akim Demaille <akim@epita.fr>
409
410 * examples/calc++/test: Use set -x only when VERBOSE.
411
302c0aee
PE
4122005-10-13 Paul Eggert <eggert@cs.ucla.edu>
413
414 * NEWS: Bison now warns if it finds a stray `$' or `@' in an action.
415 * src/scan-gram.l (<SC_BRACED_CODE>[$@]): Implement this.
416
7625ec2c
AD
4172005-10-13 Akim Demaille <akim@epita.fr>
418
419 * src/scan-skel.l: Output the base name parts of the parser and
420 header file names.
302c0aee 421 * tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
7625ec2c
AD
422 additional checks.
423 Use this to exercise C++ outputs in subdirs.
424 Reported by Oleg Smolsky.
425
ba0fe3c7
PE
4262005-10-12 Paul Eggert <eggert@cs.ucla.edu>
427
428 * data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at
429 __STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
430 Problem reported by John P. Hartmann.
431 * data/yacc.c (YYMODERN_C): Likewise. Don't define if the user has
432 already defined it.
433
9b8a5ce0
AD
4342005-10-12 Akim Demaille <akim@epita.fr>
435
436 * src/parse-gram.y (version_check): Exit 63 to please missing
437 (stands for "version mismatch).
438 * tests/input.at, doc/bison.texinfo: Adjust.
439
4f6e011e
PE
4402005-10-10 Paul Eggert <eggert@cs.ucla.edu>
441
442 Work around portability problems with Visual Age C compiler
443 (xlc and xlC_r) reported by John P. Hartmann.
444 * data/location.cc (initial_column, initial_line): Remove.
445 All uses replaced by 0 and 1.
446 * src/scan-gram.l (gram_wrap): Redefine to avoid bug in flex 2.5.31
447 that xlc complains about.
448 * src/scan-skel.l (skel_wrap): Likewise.
4d7aa45e 449 * data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
ba0fe3c7 450 as __STDC__.
4d7aa45e
PE
451 * data/yacc.c (YYMODERN_C): New macro, which also looks at
452 __STDC_VERSION__. Use it everywhere instead of looking at
453 __STDC__ and __cplusplus.
4f6e011e 454
a1b3bf8c
AD
4552005-10-10 Akim Demaille <akim@epita.fr>
456
457 * examples/calc++/test: Be quiet unless VERBOSE.
458
412e44aa
PE
4592005-10-05 Paul Eggert <eggert@cs.ucla.edu>
460
2a4647a3
PE
461 * data/c.m4 (yydestruct, yysymprint):
462 Use YYUSE instead of casting to void.
463 * data/glr.c (YYUSE): New macro.
464 (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
465 Use it instead of rolling our own.
466 (YYLLOC_DEFAULT, YYCHK, YYDPRINTF, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
467 (YYCHK1):
468 Use /*CONSTCOND*/ to suppress lint warnings.
469 * data/lalr1.cc (YYLLOC_DEFAULT, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
470 (YY_STACK_PRINT): Use 'false' not '0'.
471 (YYUSE): New macro.
472 (yysymprint_, yydestruct_): Use it instead of rolling our own.
473 * data/yacc.c (YYUSE): New macro.
474 (YYCOPY, YYSTACK_RELOCATE, YYBACKUP, YYLLOC_DEFAULT):
475 (YYDPRINTF, YY_SYMBOL_PRINT, YY_STACK_PRINT, YY_REDUCE_PRINT):
476 (yyerrorlab): Use /*CONSTCOND*/ to suppress lint warnings.
477
478
412e44aa
PE
479 * data/m4sugar/m4sugar.m4 (_m4_map): New macro.
480 (m4_map, m4_map_sep): Use it. Handle the empty list correctly.
481
88c6637f
PE
4822005-10-04 Paul Eggert <eggert@cs.ucla.edu>
483
2f4f028d
PE
484 Undo the parts of the unlocked-I/O change that substituted
485 putc or puts for printf. This might hurt performance a bit,
486 but some people prefer the printf style.
487 * data/c.m4 (yysymprint): Prefer printf to puts and putc.
488 * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): Remove.
489 All uses replaced by YYFPRINTF and YYDPRINTF.
490 * data/yacc.c: Likewise.
491 * lib/bitset.c (bitset_print): Likewise.
492 * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer printf to
493 putc and puts.
494 * lib/lbitset.c (debug_lbitset): Likewise.
495 * src/closure.c (print_firsts, print_fderives): Likewise.
496 * src/gram.c (grammar_dump): Likewise.
497 * src/lalr.c (look_ahead_tokens_print): Likewise.
498 * src/output.c (escaped_output): Likewise.
499 (user_actions_output): Break apart two printfs.
500 * src/parse-gram.y (%printer): Prefer printf to putc and puts.
501 * src/reduce.c (reduce_print): Likewise.
502 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
503 * src/system.h: Include unlocked-io.h rathe than stdio.h.
504
88c6637f
PE
505 * data/glr.c (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
506 Use assignments rather than casts-to-void to suppress
507 unused-variable warnings. This pacifies 'lint'.
508 * data/lalr1.cc (yysymprint_, yydestruct_): Use a call to suppress
509 unused-variable warnings.
510
fb32e373
JMG
5112005-10-03 Juan Manuel Guerrero <juan.guerrero@gmx.de>
512
513 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
514
edb8f44f
PE
5152005-10-02 Paul Eggert <eggert@cs.ucla.edu>
516
fb9c0b33
PE
517 Use unlocked I/O for a minor performance improvement on hosts like
518 GNU/Linux and Solaris that support unlocked I/O. The basic idea
519 is to use the gnlib unlocked-io module, and to prefer putc and
520 puts to printf when either will work (since the latter doesn't
521 come in an unlocked flavor).
522 * bootstrap (gnulib_modules): Add unlocked-io.
523 * data/c.m4 (yysymprint): Prefer puts and putc to printf.
524 * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
525 Prefer them to YYFPRINTF and YYDPRINTF if either will do,
526 and similarly for puts and putc and printf.
527 * data/yacc.c: Likewise.
528 * lib/bitset.c (bitset_print): Likewise.
529 * lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
530 * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
531 to printf.
532 * lib/lbitset.c (debug_lbitset): Likewise.
533 * src/closure.c (print_firsts, print_fderives): Likewise.
534 * src/gram.c (grammar_dump): Likewise.
535 * src/lalr.c (look_ahead_tokens_print): Likewise.
536 * src/output.c (escaped_output): Likewise.
537 (user_actions_output): Coalesce two printfs.
2f4f028d 538 * src/parse-gram.y (%printer): Prefer putc and puts to printf.
fb9c0b33
PE
539 * src/reduce.c (reduce_print): Likewise.
540 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
2f4f028d 541 * src/system.h: Include unlocked-io.h rather than stdio.h.
fb9c0b33 542
edb8f44f
PE
543 * data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
544 this confuses xgettext.
545
b50d2359
AD
5462005-10-02 Akim Demaille <akim@epita.fr>
547
548 * bootstrap (gnulib_modules): Add strverscmp.
549 * lib/.cvsignore: Add strverscmp.c, strverscmp.h.
550 * m4/.cvsignore: Add strverscmp.m4.
551 * src/parse-gram.y (%require): New token, new rule.
552 (version_check): New.
553 * src/scan-gram.l (%require): Adjust.
554 * tests/input.at (AT_REQUIRE): New.
555 Use it.
556 * doc/bison.texinfo (Require Decl): New.
557 (Calc++ Parser): Use %require.
558
21667f64
AD
5592005-10-02 Akim Demaille <akim@epita.fr>
560
561 * data/location.cc: New.
562
2b81e969
AD
5632005-10-02 Paul Eggert <eggert@cs.ucla.edu>,
564 Akim Demaille <akim@epita.fr>
565
566 Make sure -odir/foo.cc creates dir/location.hh etc.
567 * src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
568 (spec_file_prefix, spec_verbose_file, spec_graph_file)
569 (spec_defines_file): Now const.
570 (dir_prefix): New.
571 (short_base_name): Remove.
572 * src/files.c: Adjust.
573 (dirname.h): Include.
574 (base_name): Don't prototype it.
575 (finput): Remove, duplicates gram_in.
576 (full_base_name, short_base_name): Replace by...
577 (all_but_ext, all_but_tab_ext): these.
578 (compute_base_names): Rename as...
579 (compute_file_name_parts): this.
580 Update to compute the new variables, including dir_prefix.
581 Adjust dependencies.
582 * src/output.c (prepare): Output them.
583 * src/reader.c: Adjust to use gram_in, not finput.
584 * src/scan-skel.l (@dir_prefix@): New.
585
ad6a9b97
JMG
5862005-10-02 Juan Manuel Guerrero <juan.guerrero@gmx.de>
587
588 * lib/subpipe.c: New function end_of_output_subpipe() added
589 to allow support for non-posix systems. This is a no-op function
590 for posix systems.
591
592 * lib/subpipe.h: New function end_of_output_subpipe() added
593 to allow support for non-posix systems. This is a no-op function
594 for posix systems.
595
596 * src/output.c (output_skeleton): Use end_of_output_subpipe() to
597 handle the lack of pipe/fork functionality on non-posix systems.
598
599 * djgpp/Makefile.maint: DJGPP specific file.
600
601 * djgpp/README.in: DJGPP specific file.
602
603 * djgpp/config.bat: DJGPP specific configuration file.
604
605 * djgpp/config.sed: DJGPP specific configuration file.
606
607 * djgpp/config.site: DJGPP specific configuration file.
608
609 * djgpp/config_h.sed: DJGPP specific configuration file.
610
611 * djgpp/subpipe.c: DJGPP specific replacement file for lib/subpipe.c.
612
613 * djgpp/subpipe.h: DJGPP specific replacement file for lib/subpipe.h.
614
fc695704
AD
6152005-10-02 Akim Demaille <akim@epita.fr>
616
617 * data/location.cc: New, extract from...
618 * data/lalr1.cc: here.
619 (location.hh): Include it after the user prologue, in case the
620 filename type is defined by the user.
621 Forward declation location and position before the pre-prologue.
622 (yyresult_): Rename as...
623 (yyresult): this, it's a local variable, not an attribute.
624 * data/Makefile.am (dist_pkgdata_DATA): Adjust.
625
6262005-10-01 Akim Demaille <akim@epita.fr>
5215c87f
AD
627
628 * examples/extexi: Restore the #line generation.
629
fb9712a9
AD
6302005-09-30 Akim Demaille <akim@epita.fr>,
631 Alexandre Duret-Lutz <adl@gnu.org>
632
633 Move the token type and YYSTYPE in the parser class.
634 * data/lalr1.cc (stack.hh, location.hh): Include earlier.
635 (parser::token): New, from the moved free definition of tokens.
636 (parser::semantic_value): Now a full definition instead of an
637 indirection to YYSTYPE.
638 (b4_post_prologue): No longer included in the header file, but
639 in the implementation file.
640 * doc/bison.texi (C+ Language Interface): Update.
641 * src/parse-gram.y: Support unary %define.
642 * tests/actions.at: Define global_tokens_and_yystype for backward
643 compatibility until we update the tests.
644 * tests/calc.at: Idem.
645 (first_line, first_column, last_line, last_column): Define for lalr1.cc
646 to simplify the code.
647
55f0c7b1
PE
6482005-09-29 Paul Eggert <eggert@cs.ucla.edu>
649
650 Port to SunOS 4.1.4, which lacks strtoul and strerror.
651 Ah, the good old days! Problem reported by Peter Klein.
652 * bootstrap (gnulib_modules): Add strerror, strtoul.
653 * lib/.cvsignore: Add strerror.c, strtol.c, strtoul.c
654 * m4/.cvsignore: Add strerror.m4, strtol.m4, strtoul.m4.
655
fb9712a9 6562005-09-29 Akim Demaille <akim@epita.fr>
d4fb5e3c
AD
657
658 * data/c.m4 (b4_error_verbose_if): New.
659 * data/lalr1.cc: Use it.
660 (YYERROR_VERBOSE_IF): Remove.
661 (yyn_, yylen_, yystate_, yynerrs_, yyerrstatus_): Remove as
662 parser members, replaced by...
663 (yyn, yylen, yystate, yynerss, yyerrstatus): these parser::parse
664 local variables.
665 (yysyntax_error_): Takes the state number as argument.
666 (yyreduce_print_): Use the argument yyrule, not the former
667 attribute yyn_.
668
8a6f72f3
PE
6692005-09-26 Paul Eggert <eggert@cs.ucla.edu>
670
671 * bootstrap (gnulib_modules): Add verify.
672 * lib/.cvsignore: Add verify.h.
673 * src/getargs.c: Use ARGMATCH_VERIFY rather than verify.
674 * src/system.h (verify): Remove.
675 Include verify.h instead.
676 * src/tables.c (tables_generate): Use new API for 'verify'.
677
0d50976f
PE
6782005-09-21 Paul Eggert <eggert@cs.ucla.edu>
679
ebc3737e
PE
680 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Do not use
681 local variables whose names begin with 'yy'.
682 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
683 Trivial changes from Joel E. Denny.
684
0d50976f
PE
685 * bootstrap (gnulib_modules): Remove alloca. Bison doesn't need
686 it itself.
687 * src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
688 don't use alloca any more.
689
690 * data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
691 __BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
62c4328e 692 defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
0d50976f
PE
693 * tests/torture.at (Exploding the Stack Size with Alloca): Adjust
694 to match yacc.c, to test more hosts.
695
a05b79df
PE
6962005-09-20 Paul Eggert <eggert@cs.ucla.edu>
697
55289366
PE
698 * data/yacc.c (YYSIZE_T): Reindent to make it clearer. This
699 doesn't affect behavior.
700 (YYSTACK_ALLOC) [YYSTACK_USE_ALLOCA]: Improve support for
701 Solaris, AIX, MSC.
702 (_STDLIB_H): Renamed from YYINCLUDED_STDLIB_H. All uses changed.
703 This works a bit better with glibc, if user code has already included
704 stdlib.h.
705 * doc/bison.texinfo (Bison Parser): Document that users can't
706 arbitrarily use malloc and free for other purposes. Document
707 that <alloca.h> and <malloc.h> might be included.
708 (Table of Symbols): Under YYSTACK_USE_ALLOCA, Don't claim that the
709 user must declare alloca.
710
a05b79df
PE
711 * HACKING (release): Forwarn the Translation Project about
712 stable releses.
713
3ab2ca22
AD
7142005-09-20 Akim Demaille <akim@epita.fr>
715
716 * data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
717
a9739e7c
PE
7182005-09-19 Paul Eggert <eggert@cs.ucla.edu>
719
a702593e
PE
720 * data/yacc.c (YYSIZE_MAXIMUM): New macro.
721 (YYSTACK_ALLOC_MAXIMUM): Use it.
722 (yysyntax_error): New function.
723 (yyparse) [YYERROR_VERBOSE]: Don't leak memory indefinitely if
724 multiple syntax errors are reported, and alloca is being used.
725 Instead, reallocate buffers twice as big each time, so that
726 we waste at most half the allocated memory. Start with a small
727 (128-byte) buffer that will suffice in most cases anyway.
728 Use yysyntax_error to do most of the work.
729
730 * doc/bison.texinfo (Error Reporting, Table of Symbols):
731 yynerrs is the number of errors reported, not the number of
732 errors encountered.
733
a9739e7c
PE
734 * tests/glr-regression.at (Duplicated user destructor for lookahead):
735 Mark it as expected to fail.
736 Cast result of malloc; problem reported by twlevo@xs4all.nl.
737 * tests/actions.at, tests/calc.at, tests/glr-regression.at:
738 Don't start user-code symbols with "yy", to avoid name space problems.
739
f479c6c6
AD
7402005-09-19 Akim Demaille <akim@epita.fr>
741
742 Remove the traits, failed experiment.
743 It never proved useful, and anyway because of the current
744 definition, it was not possible to have several specialization of
745 this traits, making it useless.
746 * data/lalr1.cc (yy:traits): Remove.
747 Inline its definitions in the parser class.
748
e2586f82
AD
7492005-09-19 Akim Demaille <akim@epita.fr>
750
751 * tests/atlocal.in (LIBS): Pass INTLLIBS to address failures on at
752 least Mac OSX with a /usr/local install of gettext.
753
2e8cf949
AD
7542005-09-19 Akim Demaille <akim@epita.fr>
755
756 * data/lalr1.cc (yyparse): Rename yylooka and yyilooka as yychar
757 and yytoken for similarity with the other skeletons.
758
c7fb0b90
AD
7592005-09-19 Akim Demaille <akim@epita.fr>
760
761 * NEWS, configure.ac: Bump to 2.1a.
762
1bd0deda
PE
7632005-09-16 Paul Eggert <eggert@cs.ucla.edu>
764
765 * NEWS: Version 2.1.
766
767 * NEWS: Remove notice of yytname change, since it was never in an
768 official release.
769 * data/glr.c (yydestroyGLRState): Rename local var to avoid shadowing
770 diagnostic.
771 * src/output.c (prepare): Likewise.
772 * data/lalr1.cc (YYERROR_VERBOSE_IF): New macro.
773 (yysyntax_error_): Use it to avoid GCC warning when YYERROR_VERBOSE
774 is not defined. This is an awful hack, but it's enough for now.
775 All callers changed.
776 * tests/glr-regression-at (make_value): Args are const pointers now,
777 to avoid GCC warning.
778 (Duplicated user destructor for lookahead): New test. Currently
779 skipped. It fails on my host but I'm not sure it'll always fail.
780
7812005-09-16 Akim Demaille <akim@epita.fr>
c1432f65
AD
782
783 * src/symtab.h (struct symbol): Declare the printer and destructor
784 as const, to avoid accidental calls to free.
785 (symbol_destructor_set, symbol_printer_set): Adjust.
786 * src/symtab.c: Adjust.
787
1bd0deda 7882005-09-16 Akim Demaille <akim@epita.fr>
cf147260
AD
789
790 * data/c.m4 (b4_token_enums): New.
791 (b4_token_defines): Rename as...
792 (b4_token_enums_defines): this.
793 (b4_token_defines): New, output only the #defines.
794 * data/yacc.c, data/glr.c: Adjust.
795 * data/lalr1.cc: Use b4_token_enums instead of b4_token_enums_defines.
796 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Define
797 as default values.
798
dbcdae2d
AD
7992005-09-16 Akim Demaille <akim@epita.fr>
800
801 * data/lalr1.cc (yylex_): Remove, inline its code.
802 (yyreport_syntax_error_): Remove, replaced by...
803 (yysyntax_error_): this which returns a string and leaves to the
804 caller the call to the users' error function.
805 (yylooka_, yyilooka_, yylval, yylloc, yyerror_range_, yyval, yyloc):
806 Move from members of the parser object...
807 (yylooka, yyilooka, yylval, yylloc, yyerror_range, yyval, yyloc):
808 to local variables of the parse function.
809
70d8f291
AD
8102005-09-16 Akim Demaille <akim@epita.fr>
811
812 * doc/bison.texinfo (Calc++ Parser): Don't promote defining YYEOF
813 since it's in Bison's name space.
814
b47dbebe
PE
8152005-09-15 Paul Eggert <eggert@cs.ucla.edu>
816
ae199bf1
PE
817 * data/glr.c (yyresolveValue): Add default case to pacify
818 gcc -Wswitch-default. Problem reported by twlevo@xs4all.nl.
819
b47dbebe
PE
820 * NEWS: Document when yyparse started to return 2.
821 * doc/bison.texinfo (Parser Function): Document when yyparse
822 returns 2.
823
824 * data/lalr1.cc: Revert part of previous change, as it's incompatible.
825 (b4_filename_type): Renamed back from b4_file_name_type. All uses
826 changed.
827 (class position): file_name -> filename (reverting). All uses changed.
828
8292005-09-14 Paul Eggert <eggert@cs.ucla.edu>
830
831 * examples/calc++/Makefile.am ($(calc_sources_generated)): Don't
832 do anything if $@ exists. This reverts part of the 2005-07-07
833 patch.
834
00292f66
PE
8352005-09-11 Paul Eggert <eggert@cs.ucla.edu>
836
837 * Makefile.am (EXTRA_DIST): Do not distribute REFERENCES; it
838 contains obsolete information and isn't worth distributing as a
839 separate file anyway.
840 * data/glr.c [defined YYSETJMP]: Don't include <setjmp.h>.
841 (YYJMP_BUF, YYSETJMP, YYLONGJMP) [!defined YYSETJMP]: New macros.
842 All uses of jmp_buf, setjmp, longjmp changed to use these instead.
843 (yyparse): Abort if user code uses longjmp to throw an unexpected
844 value.
845
a420f962
PE
8462005-09-09 Paul Eggert <eggert@cs.ucla.edu>
847
00292f66
PE
848 * data/c.m4 (b4_identification): Define YYBISON_VERSION.
849 Suggested by twlevo@xs4all.nl.
850
127287e9
PE
851 * data/glr.c (YYCHK1): Do not assume YYE is in range.
852 This avoids a diagnostic from gcc -Wswitch-enum.
853 Problem reported by twlevo@xs4all.nl.
854
a420f962
PE
855 * doc/bison.texinfo: Don't use "filename", as per GNU coding
856 standards. Use "file name" or "file" or "name", depending on
857 the context.
858 (Invocation): The output of "bison hack/foo.y" goes to foo.tab.c,
859 not to hack/foo.tab.c.
860 (Calc++ Top Level): 2nd arg of main is not const.
48b16bbc
PE
861 * data/glr.c: b4_filename -> b4_file_name.
862 * data/lalr1.cc: Likewise. Also, b4_filename_type -> b4_file_name_type.
863 All uses changed.
864 (class position): filename -> file_name. All uses changed.
865 * data/yacc.c: b4_filename -> b4_file_name.
866 * lib/bitset.h: filename -> file_name in local vars.
867 * lib/bitset_stats.c: Likewise.
868 * src/files.c: Likewise.
869 * src/scan-skel.l ("@output ".*\n): Likewise.
870 * src/files.c (file_name_split): Renamed from filename_split.
871 * src/muscle_tab.c (muscle_init): Output b4_file_name, not b4_filename.
a420f962
PE
872
8732005-09-08 Paul Eggert <eggert@cs.ucla.edu>
874
875 * lib/.cvsignore: Add pipe-safer.c, stdio--.h, unistd--.h,
876 to accommodate latest gnulib.
877
878 * tests/glr-regression.at (Duplicate representation of merged trees):
879 Add casts to pacify g++. Problem reported by twlevo@xs4all.nl.
880
881 * bootstrap: Add comment as to why the AM_LANGINFO_CODESET hack is
882 needed.
883
42a6501d
PE
8842005-08-26 Paul Eggert <eggert@cs.ucla.edu>
885
886 * data/glr.c (yydestroyGLRState): Renamed from yydestroyStackItem.
887 All uses changed. Invoke user destructor after an error during a
888 split parse (trivial change from Joel E. Denny).
889
890 * tests/glr-regression.at
891 (User destructor after an error during a split parse): New test case.
892 Problem reported by Joel E. Denny in:
893 http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00029.html
894
ef9a1faf
PE
8952005-08-25 Paul Eggert <eggert@cs.ucla.edu>
896
5b4aaf78
PE
897 * README-cvs: Give URLs for recommended tools.
898 Mention Gzip version problem, and bootstrapping issues.
899 Remove troubleshooting section, as it's somewhat obsolete.
900
b5240ba5
PE
901 * bootstrap (no_cache): New var, to accommodate different wget
902 variants. Use it instead of '-C off'. Problem reported by
903 twlevo@xs4all.nl.
904
ef9a1faf
PE
905 * data/glr.c (yydestroyStackItem): New function.
906 (yyrecoverSyntaxError, yyreturn): Use it to improve quality of
907 debugging information. Problem reported by Joel E. Denny.
908
e6efa9da
AD
9092005-08-25 Akim Demaille <akim@epita.fr>
910
911 * tests/local.at (AT_COMPILE_CXX): Pass $LINKS too.
912
adc90f13
PE
9132005-08-24 Paul Eggert <eggert@cs.ucla.edu>
914
915 * data/glr.c (yyrecoverSyntaxError, yyreturn):
916 Don't invoke destructor on unresolved entries.
917 * tests/glr-regression.at
918 (User destructor for unresolved GLR semantic value): New test case.
919 Problem reported by Joel E. Denny in:
920 http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00016.html
921
f9315de5
PE
9222005-08-21 Paul Eggert <eggert@cs.ucla.edu>
923
15d29c1f
PE
924 * lib/.cvsignore: Remove realloc.c, strncasecmp.c, xstrdup.c.
925 Add strnlen.c.
926 * m4/.cvsignore: Remove codeset.m4, gettext.m4, lib-ld.m4,
927 lib-prefix.m4, po.m4.
928
dd5f2af2
PE
929 * data/glr.c (yyreturn): Use "Cleanup:" rather than "Error:"
930 in yydestruct diagnostic, since it might not be an error.
931 Problem reported by Joel Denny near end of
932 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
6250acbd 933 * data/lalr1.cc (yyerturn): Likewise.
dd5f2af2
PE
934 * data/yacc.c (yyreturn): Likewise.
935 * tests/calc.at (_AT_CHECK_CALC_ERROR): Adjust to the above change.
936
937 * src/files.c: Remove obsolete FIXME comment.
938
939 * data/glr.c (YY_SYMBOL_PRINT): Append a newline, for consistency
940 with the other templates, and to fix bogus run-on messages such
941 as the one reported at the end of
942 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
943 All callers changed to avoid the newline.
944 (yyprocessOneStack): Output two lines rather than one, to accommodate
945 the above change. This changes the debug output format slightly.
946
f9315de5
PE
947 * data/glr.c (yyresolveValue): Fix redundant parse tree problem
948 reported by Joel E. Denny in
949 <http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00004.html>
950 (trivial change).
951 * tests/glr-regression.at (Duplicate representation of merged trees):
952 New test, from Joel E. Denny in:
953 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00013.html>.
954 * THANKS: Add Joel E. Denny.
955
956 * configure.ac (AC_INIT): Bump to 2.0c.
957
04098407
PE
9582005-07-24 Paul Eggert <eggert@cs.ucla.edu>
959
960 * NEWS: Version 2.0b.
961
ca5d2013
PE
962 * Makefile.am (SUBDIRS): Put examples before tests, so that
963 "make check" doesn't finish with "All 1 tests passed".
964
3d54b576
PE
965 * tests/regression.at (Token definitions): Don't rely on
966 AT_PARSER_CHECK for data that contains backslashes. It currently
967 uses 'echo', and 'echo' isn't portable if its argument contains
968 backslashes. Problem found on OpenBSD 3.4. Also, do not assume
969 that the byte '\0xff' is not printable in the C locale; it is,
970 under OpenBSD 3.4 (!). Luckily, '\0x80' through '\0x9e' are
971 not printable, so use '\0x81' to test.
972
d53ae497
PE
973 * data/glr.c (YYOPTIONAL_LOC): Define even if it's not a recent
974 version of GCC, since the macro is used with non-GCC compilers.
975
fc01665e
PE
976 Fix core dump reported by Pablo De Napoli in
977 <http://lists.gnu.org/archive/html/bug-bison/2005-07/msg00053.html>.
978 * tests/regression.at (Invalid inputs with {}): New test.
979 * src/parse-gram.y (token_name): Translate type before using
980 it as an index.
981
04098407
PE
982 * data/glr.c (ATTRIBUTE_UNUSED): Remove, since it infringes on
983 the user's name space. All uses changed to __attribute__
984 ((__unused__)).
985 (yyFail, yyMemoryExhausted, yyreportAmbiguity):
986 Add __attribute__ ((__noreturn__)).
987
988 * etc/clcommit: Remove. We weren't using it, and it failed
989 "make maintainer-distcheck".
990 * Makefile.maint: Merge from coreutils.
991 (CVS_LIST, CVS_LIST_EXCEPT): New macros.
992 (syntax-check-rules): Change list of rules as described below.
993 (sc_cast_of_alloca_return_value, sc_dd_max_sym_length):
994 (sc_file_system, sc_obsolete_symbols, sc_prohibit_atoi_atof):
995 (sc_prohibit_jm_in_m4, sc_root_tests, sc_tight_scope):
996 (sc_trailing_space): New rules.
997 (sc_xalloc_h_in_src): Remove.
998 (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value):
999 (sc_space_tab, sc_error_exit_success, sc_changelog):
1000 (sc_system_h_headers, sc_sun_os_names, sc_unmarked_diagnostics):
1001 (makefile-check, po-check, author_mark_check):
1002 (makefile_path_separator_check, copyright-check):
1003 Use grep -n, to make it easier to find violations.
1004 Use CVS_LIST and CVS_LIST_EXCEPT.
1005 (header_regexp, h_re): Remove.
1006 (dd_c): New macro.
1007 (sc_dd_max_sym_length, .re-list, news-date-check): New rules.
1008 (my-distcheck): Use more-modern GCC flags.
1009 (signatures, %.asc): Remove.
1010 (rel-files, announcement): Remove signatures.
1011 Restore old updating code, even though we don't use it, so
1012 that we're the same as coreutils.
1013 (alpha, beta, major): Depend on news-date-check.
1014 Make the upload commands.
1015
1016 * data/c.m4, data/lalr1.cc, data/yacc.c: Normalize white space.
1017 * lib/abitset.h, lib/bbitset.h, lib/bitset.h: Likewise.
1018 * lib/bitset_stats.c, lib/ebitset.h, lib/lbitset.c: Likewise.
1019 * lib/libitset.h, lib/timevar.c, lib/vbitset.h: Likewise.
1020 * src/Makefile.am, src/gram.c, src/muscle_tab.h: Likewise.
1021 * src/parse-gram.y, src/system.h, src/tables.c, src/vcg.c: Likewise.
1022 * src/vcg_defaults.h, tests/cxx-type.at, tests/existing.at: Likewise.
1023 * tests/sets.at: Likewise.
1024
1025 * data/m4sugar/m4sugar.m4: Sync from Autoconf, except that
1026 we comment out the Autoconf version number.
1027 * doc/bison.texinfo (Calc++ Scanner): Don't use atoi, as
1028 it's error-prone and "make maintainer-distcheck" rejects it.
1029
1030 * lib/subpipe.c: Include <fcntl.h> without checking for HAVE_FCNTL_H.
1031 Indent calls to "error" to pacify "make maintainer-distcheck",
1032 when the calls are not intended to be translated.
1033 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't check for fcntl.h.
1034
1035 * src/Makefile.am (DEFS): Use +=, to pacify
1036 "make maintainer-distcheck".
1037 (bison_SOURCES): Add scan-skel.h.
1038 (sc_tight_scope): New rule, from coreutils.
1039
1040 * src/files.c (src_extension, header_extension):
1041 Now static, not extern.
1042 * src/getargs.c (short_options): Likewise.
1043 * src/muscle_tab.c (muscle_table): Likewise.
1044 * src/parse-gram.y (current_class, current_type, current_prec):
1045 Likewise.
1046 * src/reader.c (grammar_end, previous_rule_end): Likewise.
1047 * src/getargs.h: Redo comments to pacify "make maintainer-distcheck".
1048 * src/main.c (main): Cast bindtextdomain and textdomain calls to
1049 void, to avoid warning when NLS is disabled.
1050 * src/output.c: Include scan-skel.h.
1051 (scan_skel): Remove decl, since scan-skel.h does this.
1052 (output_skeleton):
1053 Indent calls to "error" to pacify "make maintainer-distcheck".
1054 * src/print_graph.c: Don't include <obstack.h>, as system.h does this.
1055 * src/reader.h (gram_end, gram_lineno): New decls to pacify
1056 "make maintainer-distcheck".
1057 * src/scan-skel.l (skel_lex, skel_get_lineno, skel_get_in):
1058 (skel_get_out, skel_get_leng, skel_get_text, skel_set_lineno):
1059 (skel_set_in, skel_set_out, skel_get_debug, skel_set_debug):
1060 (skel_lex_destroy, scan_skel): Move these decls to...
1061 * src/scan-skel.h: New file.
1062 * src/uniqstr.c (uniqstr_assert):
1063 Indent calls to "error" to pacify "make maintainer-distcheck".
1064
1065 * tests/Makefile.am ($(srcdir)/package.m4): Use $(VAR),
1066 not @VAR@.
1067
1068 * tests/torture.at: Revamp to avoid misuse of atoi that
1069 "make maintainer-distcheck" complained about.
1070
1071 * examples/extexi (message): Don't print a message more than once,
1072 and omit line-number decoration that makes Emacs compile think
1073 that informative messages are worth worrying about.
1074
10752005-07-22 Paul Eggert <eggert@cs.ucla.edu>
1076
1077 * configure.ac: Update version number.
1078
1079 * Makefile.am (SUBDIRS): Add examples; somehow this got removed
1080 accidentally.
1081 * examples/calc++/calc++-parser.yy: Remove from CVS, as it's
1082 autogenerated by the maintainer.
1083 * examples/calc++/.cvsignore: Add *.yy.
1084
1085 * lib/bitset.c (bitset_alloc): Don't cast xcalloc result.
1086 * lib/bitset_stats.c (bitset_stats_init): Likewise.
1087 * lib/bitsetv.c (bitsetv_alloc): Likewise.
1088
1089 * po/POTFILES.in: Add lib/xalloc-die.c; remove lib/xmalloc.c.
1090
1091 * src/relation.c (relation_transpose): Rewrite to avoid bogus complaint
1092 from maintainer-distcheck about casting the argument of 'free'.
1093
1094 * NEWS: Mention recent yytname changes.
1095 * THANKS: Add Anthony Heading, twlevo@xs4all.nl.
1096
1097 * bootstrap: For translations that have not yet been upgraded to
1098 the new runtime-po domain, prime the pump by extracting the
1099 relevant strings from the obsolete translations. This code can be
1100 removed once the bison-runtime domain has been translated by each
1101 team.
1102
1103 * src/scan-gram.l (<SC_PRE_CODE>.): Don't double-quote token names,
1104 now that token names are already quoted.
1105
1106 Fix problem reported by Anthony Heading.
1107 * data/glr.c (YYTOKEN_TABLE): New macro.
1108 (yytname): Define if YYTOKEN_TABLE.
1109 * data/yacc.c (YYTOKEN_TABLE, yytname): Likewise.
1110 * data/lalr1.cc (YYTOKEN_TABLE, yytname_): Likewise.
1111 (YYERROR_VERBOSE): Define the same way the other skeletons do.
1112 * src/output.c (prepare_symbols): Output token_table_flag.
1113
0ffda363
PE
11142005-07-21 Paul Eggert <eggert@cs.ucla.edu>
1115
1116 * data/glr.c (yyinitGLRStack, yyreturn): Don't call malloc
1117 again if the first call fails.
1118
1119 * data/glr.c (yytnamerr): New function.
1120 (yyreportSyntaxError): Use it to dequote most string literals.
1121 * data/lalr1.c (yytname_): Renamed from yyname_, for compatibility
1122 with other skeletons. All uses changed.
1123 (yytnameerr_): New function.
1124 (yyreport_syntax_error): Use it to dequote most string literals.
1125 * data/yacc.c (yytnamerr): New function.
1126 (yyerrlab): Use it to decode most string literals.
1127 * doc/bison.texinfo (Decl Summary, Calling Convention):
1128 Clarify quoting convention of yytname.
1129 * src/output.c (prepare_symbols): Quote all names. This undoes
1130 the 2005-04-17 change, which is now accomplished (mostly) via
1131 changes in the parsers as described above.
1132 * tests/regression.at (Token definitions, Web2c Actions):
1133 Undo most 2005-04-17 change here, too.
1134
11352005-07-20 Paul Eggert <eggert@cs.ucla.edu>
1136
1137 Fix more problems reported by twlevo@xs4all.nl.
1138 * tests/cxx-type.at: Don't pipe output of ./types through sed to
1139 remove trailing spaces. This loses the exit status of ./types,
1140 and isn't needed since ./types shouldn't be emitting trailing
1141 spaces.
1142 * data/glr.c (yyreturn): Don't pop stack if yyinitStateSet failed,
1143 as the stack isn't valid in that case.
1144
1145 * src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
1146 (gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
1147 (gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
1148 Add declarations to pacify "gcc -Wmissing-prototypes" when flex 2.5.31
1149 is used.
1150 * src/scan-skel.l (skel_get_lineno, skel_get_in, skel_get_out):
1151 (skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
1152 (skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
1153 Likewise.
1154
1155 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Work even with
1156 overly-picky compilers that reject 'char *foo = "bar";'.
1157
1158 * src/symtab.c (SYMBOL_ATTR_PRINT, symbol_print): Direct output
1159 to FILE * parameter, not to stderr. This fixes a typo introduced
1160 in the 2005-07-12 change.
1161
1162 * lib/subpipe.c (create_subpipe): Rewrite slightly to avoid
1163 warnings from GCC 4.
1164
1165 * data/glr.c (yyexpandGLRStack, yyaddDeferredAction, yyexpandGLRStack):
1166 (yyglrShiftDefer, yysplitStack):
1167 Remove unused parameters b4_pure_formals. All uses changed.
1168 (yyglrShift): Remove unused parameters b4_user_formals.
1169 All uses changed.
1170 (yyglrReduce): Removed unused parameter yylocp. All uses changed.
1171
6100a9aa
PE
11722005-07-18 Paul Eggert <eggert@cs.ucla.edu>
1173
258b75ca
PE
1174 Destructor cleanups and regularization among the three skeletons.
1175 * NEWS: Document the behavior changes.
1176 * data/glr.c (yyrecoverSyntaxError): Don't bother to pop the
1177 stack before failing, as the cleanup code will do it for us now.
1178 * data/lalr1.cc (yyerrlab): Likewise.
1179 * data/glr.c (yyparse): Pop everything off the stack before
1180 freeing it, so that destructors get called properly.
1181 * data/lalr1.cc (yyreturn): Likewise.
1182 * data/yacc.c (yyreturn): Pop and destroy the start symbol, too.
1183 This is more consistent.
1184 * doc/bison.texinfo (Destructor Decl): Mention more reasons
1185 why destructors might be called. 1.875 -> 2.1.
1186 (Destructor Decl, Decl Summary, Table of Symbols):
1187 Some English-language cleanups for %destructor.
1188 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
1189 Add output line for destructor of start symbol.
1190 * tests/calc.at (AT_CHECK_CALC): Add one to line counts,
1191 because of that same extra output line.
1192
1a059451
PE
1193 * NEWS: Document minor wording changes in diagnostics of
1194 Bison-generated parsers.
1195 * data/glr.c (yyMemoryExhausted): Renamed from yyStackOverflow.
1196 Remove unused formals. All uses changed.
1197 (yyreportAmbiguity): "ambiguity detected" -> "syntax is ambiguous".
1198 (yyparse): Rename yyoverflowlab to yyexhaustedlab.
1199 * data/yacc.c (yyparse): "parser stack overflow" -> "memory exhausted".
1200 Rename yyoverflowab to yyexhaustedlab.
1201 When memory exhaustion occurs during syntax-error reporting,
1202 report it separately rather than in a single diagnostic; this
1203 eases translation.
1204 * doc/bison.texinfo (Memory Management): Renamed from Stack Overflow.
1205 (Memory Exhausted): Renamed from Parser Stack Overflow.
1206 Revamp wording slightly to prefer "memory exhaustion".
1207 * tests/actions.at: "parser stack overflow" -> "memory exhausted".
1208
97460c78
PE
1209 * data/c.m4 (b4_yysymprint_generate): Use YYFPRINTF, not fprintf.
1210
30757c8c
PE
1211 Add i18n support to the GLR skeleton. Partially fix the C++
1212 skeleton; a C++ expert needs to finish this. Remove debugging
1213 msgids; there's little point to having them translated, since they
1214 can be understood only by someone who can read the
1215 (English-language) source code.
1216
1217 Generate runtime-po/bison-runtime.pot automatically, so that we
1218 don't have to worry about garbage getting in that file. We'll
1219 make sure after the next official release that old msgids don't
1220 get lost. See
1221 <http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>.
1222
1223 * runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove.
1224 Now auto-generated.
1225 * PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet.
1226 Fix typos in explanations of the runtime file.
1227 * bootstrap: Change gettext keyword from YYI18N to YY_.
1228 Use standard Makefile.in.in in runtime-po, since we'll arrange
1229 for backward-compatible bison-runtime.po files in a different way.
1230 * data/glr.c (YY_): New macro, from yacc.c.
1231 (yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse):
1232 Translate messages intended for users.
1233 (yyreportSyntaxError): Change "virtual memory" to "memory" to match
1234 the wording in the other skeletons. We don't know that the memory
1235 is virtual.
1236 * data/lalr1.cc (YY_): Renamed from _. All uses changed.
1237 Use same method that yacc.c uses.
1238 Don't translate debugging messages.
1239 (yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff;
1240 it doesn't work (yet), and requires C++ expertise to fix.
1241 * data/yacc.c (YY_): Renamed from YY18N. All uses changed.
1242 Move defn to a more logical place, to be consistent with other
1243 skeletons.
1244 Don't translate debugging messages.
1245 Don't assume line numbers fit in unsigned int; use unsigned long fmts.
1246 * doc/bison.texinfo: Mention <libintl.h>. Change glibc cross reference
1247 to gettext cross reference. Add indexing terms. Mention YYENABLE_NLS.
1248 * runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
1249
ac8c5689
PE
1250 Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
1251 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
1252 void, not int.
1253 * tests/glr-regression.at (Badly Collapsed GLR States):
1254 Likewise.
1255 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
1256 yylex should return 0 at EOF rather than aborting.
1257
6100a9aa
PE
1258 Improve tests for stack overflow in GLR parser.
1259 Problem reported by twlevo@xs4all.nl.
1260 * data/glr.c (struct yyGLRStack): Remove yyerrflag member.
1261 All uses removed.
1262 (yyStackOverflow): Just longjmp, but with value 2 so that caller
1263 can handle the problem.
1264 (YYCHK1): Use goto (a la yacc.c) rather than setting a flag.
1265 (yyparse): New local variable yyresult to record the result.
1266 Use result of setjmp to set it, rather than storing itinto
1267 struct.
1268 (yyDone): Remove label.
1269 (yyacceptlab, yyabortlab, yyoverflowlab, yyreturn): New labels,
1270 to mimic yacc.c. Do not discard lookahead if it's EOF (possible
1271 if YYABORT is used).
1272 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Exit with
1273 yyparse status; put status > 1 into diagnostic.
1274 Check that status==2 works.
1275 * tests/calc.at, tests/cxx-type.at, tests/glr-regression.at:
1276 Use exit status 3 for failure to open (which shouldn't happen).
1277
15f40952
PE
12782005-07-17 Paul Eggert <eggert@cs.ucla.edu>
1279
67fd79c4
PE
1280 * tests/conflicts.at (%nonassoc and eof): Don't exit with status
1281 1 on syntax error; just let yyparse do its thing.
1282 * tests/glr-regression.at (Badly Collapsed GLR States): Likewise.
1283 * tests/torture.at (AT_DATA_STACK_TORTURE): Likewise.
1284 (Exploding the Stack Size with Alloca):
1285 (Exploding the Stack Size with Malloc):
1286 Expect exit status 2, not 1, since the parser is supposed to blow
1287 its stack. Problem reported by twlevo@xs4all.nl.
1288
15f40952
PE
1289 * data/glr.c (yyparse): Don't assume that the initial calls
1290 to YYMALLOC succeed; in that case, yyparse incorrectly returned 0.
1291 Print a stack-overflow message and fail instead.
1292 Initialize the line-number information before creating the stack,
1293 so that the stack-overflow message can report line zero safely.
1294
f32c66b5
PE
12952005-07-14 Paul Eggert <eggert@cs.ucla.edu>
1296
a22ff96f 1297 Fix problems reported by twlevo@xs4all.nl.
e2688cd9
PE
1298 * data/glr.c (YYSTACKEXPANDABLE): Don't define if already defined.
1299 (yyuserMerge): Provide a default case if b4_mergers is empty.
1300 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Define YYSTACKEXPANDABLE.
1301 * tests/glr-regression.at
1302 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
c70fdfcd 1303 Add casts to pacify C++ compilers.
1beb0b24
PE
1304 * tests/glr-regression.at (Improper merging of GLR delayed action
1305 sets): Declare yylex before using it.
f32c66b5 1306 * tests/Makefile.am (maintainer-check-g++): Fix a stray
a22ff96f
PE
1307 $(GXX) that escaped the renaming of GXX to CXX. Remove bogus
1308 test for valgrind; valgrind is independent of g++.
1309 (maintainer-check-posix): Add _POSIX2_VERSION=200112, to check
1310 for compatibility with POSIX 1003.1-2001 (if running coreutils).
1311 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Port to stricter C++.
1312 Use a destructor, so that we can expand the stack. Change
1313 YYSTYPE to char * so that we can free it. Cast result of malloc.
f32c66b5 1314
d741bd1b
PE
13152005-07-13 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1316
1317 * data/glr.c (yyuserAction): Fix uninitialized variable that caused
1318 a valgrind failure. Problem reported by twlevo@xs4all.nl.
1319
0410a6e0
PE
13202005-07-13 Paul Eggert <eggert@cs.ucla.edu>
1321
1322 * PACKAGING: New file, suggested by Bruno Haible and taken from
1323 similar wording in gettext's PACKAGING file.
1324 * NEWS: Mention PACKAGING.
1325 * Makefile.am (EXTRA_DIST): Add PACKAGING.
1326
f7ab6a50
PE
13272005-07-12 Paul Eggert <eggert@cs.ucla.edu>
1328
baf785db 1329 * NEWS: Document recent i18n improvements.
f7ab6a50
PE
1330 * bootstrap: Get runtime translations into runtime-po.
1331 Create runtime-po files automatically, if possible.
1332 * configure.ac: Invoke BISON_I18N, so that we eat our own dog food.
1333 * data/yacc.c: Rewrite inclusion of <libintl.h> so that ENABLE_NLS
1334 does not infringe on the user's name space.
1335 (YYENABLE_NLS): Renamed from ENABLE_BISON_NLS.
1336 * doc/bison.texinfo (Internationalization): Revamp the English
1337 and Texinfo syntax a bit, to try to make it clearer.
1338 (Bison Options, Option Cross Key): Mention --print-localedir.
1339 * m4/bison-i18n.m4 (BISON_I18N): Rename ENABLE_BISON_NLS to
1340 YYENABLE_NLS. Quote a bit more.
1341 * runtime-po/.cvsignore: New file.
1342 * runtime-po/Makefile.in.in (mostlyclean): Remove *.old.pot.
1343 * runtime-po/Rules-quot: Remove; now created by bootstrap.
1344 * runtime-po/quot.sed: Likewise.
1345 * runtime-po/boldquot.sed: Likewise.
1346 * runtime-po/en@quot.header: Likewise.
1347 * runtime-po/en@boldquot.header: Likewise.
1348 * runtime-po/insert-header.sin: Likewise.
1349 * runtime-po/remove-potcdate.sin: Likewise.
1350 * runtime-po/Makevars: Likewise.
1351 * runtime-po/LINGUAS: Likewise.
1352 * runtime-po/de.po: Likewise; we will rely on the translation project
1353 to maintain this, so "bootstrap" should get it.
0410a6e0 1354 * src/getarg.c (PRINT_LOCALEDIR_OPTION): Let the C compiler determine
f7ab6a50
PE
1355 its value.
1356 * src/main.c (main): Bind the bison-runtime domain, too.
1357
13582005-07-12 Bruno Haible <bruno@clisp.org>
1359
1360 * data/yacc.c: Include <libintl.h> when NLS is enabled.
1361 (YYI18N): Renamed from _. Use dgettext when NLS is enabled.
1362 * po/POTFILES.in: Remove autogenerated file src/parse-gram.c.
1363 * runtime-po: New directory.
1364 * runtime-po/Makefile.in.in: New file, copied from po/, with modified
1365 $(DOMAIN).pot-update rule, so that old messages are never dropped.
1366 * runtime-po/Rules-quot: New file, copied from po/.
1367 * runtime-po/quot.sed: Likewise.
1368 * runtime-po/boldquot.sed: Likewise.
1369 * runtime-po/en@quot.header: Likewise.
1370 * runtime-po/en@boldquot.header: Likewise.
1371 * runtime-po/insert-header.sin: Likewise.
1372 * runtime-po/remove-potcdate.sin: Likewise.
1373 * runtime-po/Makevars: New file.
1374 * runtime-po/POTFILES.in: New file.
1375 * runtime-po/LINGUAS: New file.
1376 * runtime-po/bison-runtime.pot: New file.
1377 * runtime-po/de.po: New file.
1378 * m4/bison.m4: New file.
1379 * Makefile.am (SUBDIRS): Add runtime-po.
1380 (aclocaldir, aclocal_DATA): New variables.
1381 * configure.ac: Add AC_CONFIG_FILES of runtime-po/Makefile.in.
1382 Define aclocaldir.
1383 * src/getargs.c (usage): Document --print-localedir option.
1384 (PRINT_LOCALEDIR_OPTION): New enum item.
1385 (long_options): Add --print-localedir option.
1386 (getargs): Handle --print-localedir option.
1387 * doc/bison.texinfo (Bison Parser): Remove paragraph about _().
1388 (Internationalization): New section.
1389
22dda0f0
AD
13902005-07-12 Akim Demaille <akim@epita.fr>
1391
1392 * src/symtab.h, src/symtab.c (symbol_print): Swap the arguments,
1393 for consistency with the rest of the code.
1394 * src/symlist.h, src/symlist.c (symbol_list_print): Ditto.
1395 Add separators.
1396
82b248ad
AD
13972005-07-12 Akim Demaille <akim@epita.fr>
1398
1399 * src/parse-gram.y: Use %printer instead of YYPRINT.
1400
fa0e9314
AD
14012005-07-12 Akim Demaille <akim@epita.fr>
1402
867a3e00
AD
1403 * src/symtab.h, src/symtab.c (symbol_print): New.
1404 * src/symlist.h, src/symlist.c (symbol_list_print): New.
1405 * src/symlist.c (symbol_list_n_type_name_get): Report the culprit.
1406
14072005-07-12 Akim Demaille <akim@epita.fr>
1408
1409 * data/glr.c (b4_syncline): Fix (swap) the definitions of
fa0e9314
AD
1410 b4_at_dollar and b4_dollar_dollar.
1411
e054b190
PE
14122005-07-11 Paul Eggert <eggert@cs.ucla.edu>
1413
1414 * doc/bison.texinfo (Mystery Conflicts): Add reference to DeRemer
1415 and Pennello's paper.
1416
34160ec4
PE
14172005-07-09 Paul Eggert <eggert@cs.ucla.edu>
1418
407d4a75
PE
1419 * data/yacc.c (yyparse): Undo previous patch. Instead,
1420 set yylsp[0] and yyvsp[0] only if the initial action
1421 sets yylloc and yylval, respectively.
1422
34160ec4
PE
1423 * data/yacc.c (yyparse): In the initial action, set
1424 yylsp[0] and yyvsp[0] rather than yylloc and yylval.
1425 This avoids the use of undefined variables if the initial
1426 action does not set yylloc and/or yylval.
1427
c3d5a4a7
PE
14282005-07-07 Paul Eggert <eggert@cs.ucla.edu>
1429
b34d96c1
PE
1430 * examples/calc++/calc++-driver.cc, examples/calc++/calc++-driver.hh:
1431 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc:
1432 Remove from CVS. These files are automatically generated.
1433 * examples/extexi: Clarify that this file is now part of Bison,
1434 not GNU M4, and that it works with any POSIX-compatible Awk.
1435 * examples/calc++/Makefile.am (run_extexi): Remove; not used.
1436 ($(calc_extracted)): Renamed from $(calc_sources_extracted),
1437 so that we also get calc++-parser.yy. Geneate it.
1438 Use $(AWK), not gawk, since any conforming Awk will do.
1439 Put comment before action, since older 'make' can't handle comment
1440 in action.
1441 $(BUILT_SOURCES): List all built sources, not just some of them.
1442 $(MAINTAINERCLEANFILES): Remove *.stamp, and all built sources.
1443 $($(srcdir)/calc++-parser.stamp): Work even if POSIXLY_CORRECT.
1444 $($(calc_sources_generated)): Remove unnecessary test for existence
1445 of target. (This had a shell syntax error anyway; a stray "x".)
1446 (calc_extracted): List $(srcdir)/calc++-parser.yy, not
1447 calc++-parser.yy.
1448 * examples/.cvsignore, examples/calc++/.cvsignore: New files.
1449
c3d5a4a7
PE
1450 * bootstrap (gnulib_modules): Add gettext, now that it's no longer
1451 implied by the other modules.
1452
828c373b
AD
14532005-07-06 Akim Demaille <akim@epita.fr>
1454
1455 Bind examples/calc++ to the package.
1456 * examples/calc++/Makefile: Remove, replaced by...
1457 * examples/calc++/Makefile.am: ... this new file.
1458 * examples/calc++/test: Remove input.
1459 * examples/calc++/compile: Remove.
1460 * examples/Makefile.am: New.
1461 * configure.ac, Makefile.am: Adjust.
1462 * doc/Makefile.am (clean-local): New, for more recent texi2dvis.
1463
63cb01d6
PE
14642005-07-05 Paul Eggert <eggert@cs.ucla.edu>
1465
fd2df2ed
PE
1466 * data/glr.c (yyFail): Drastically simplify; since the format argument
1467 never had any % directives, we can simply pass it to yyerror.
1468 (yyparse): Use "t a; a=b;" rather than "t a = b;" when a will
1469 be modified later, as that is the usual style in glr.c.
1470 Problems reported by Paul Hilfinger.
1471
63cb01d6
PE
1472 Rewrite GLR parser to catch more buffer overrun, storage exhaustion,
1473 and size overflow errors.
1474 * data/glr.c: Include <stdio.h> etc. after user prolog, not before,
1475 in case the user prolog sets feature-test macros like _GNU_SOURCE.
1476 (YYSIZEMAX): New macro.
1477 (yystpcpy): New function, taken from yacc.c.
1478 (struct yyGLRStack.yyspaceLeft): Now size_t, not int.
1479 (yyinitGLRStack, yyfreeGLRstack): Remove unnecessary forward decls,
1480 so that we don't have to maintain their signatures.
1481 (yyFail): Check for buffer overflow, by using vsnprintf rather
1482 than vsprintf. Allocate a bigger buffer if possible.
1483 Report an error if buffer allocation fails.
1484 (yyStackOverflow): New function.
1485 (yyinitStateSet, yyinitGLRStack): Return a boolean indicating whether
1486 the initialization was successful. It might fail if storage was
1487 exhausted.
1488 (yyexpandGLRStack): Add more checks for storage allocation failure.
1489 Use yyStackOverflow to report failures.
1490 (yymarkStackDeleted, yyglrShift, yyglrShiftDefer, yydoAction):
1491 (yysplitStack, yyprocessOneStack, yyparse, yypstack):
1492 Don't assume stack number fits in int.
1493 (yysplitStack): Check for storage allocation failure.
1494 (yysplitStack, yyprocessOneStack): Add pure_formals, so that we
1495 can print diagnostics on storage allocation failure. All callers
1496 changed.
1497 (yyresolveValue): Use yybool for boolean.
1498 (yyreportSyntaxError): Check for size-calculation overflow.
1499 This code is taken from yacc.c.
1500 (yyparse): Check for storage allocation errors when allocating
1501 the initial stack.
1502
1c59e0a1
AD
15032005-07-05 Akim Demaille <akim@epita.fr>
1504
1505 Extract calc++ from the documentation.
1506 * doc/bison.texinfo (Calc++): Add the extraction marks.
1507 * examples/extexi: New, from the aborted GNU Programming 2E.
1508 Separate the different paragraph of a file with empty lines.
1509 * examples/Makefile: Use it to extract the whole calc++ example.
1510
8a0adb01
AD
15112005-06-24 Akim Demaille <akim@epita.fr>
1512
1513 * doc/bison.texinfo (C++ Parser Interface): Use defcv to define
1514 class typedefs.
1515
12545799
AD
15162005-06-22 Akim Demaille <akim@epita.fr>
1517
1518 * doc/bison.texinfo (C++ Language Interface): First stab.
1519 (C++ Parsers): Remove.
1520
99be0235
AD
15212005-06-22 Akim Demaille <akim@epita.fr>
1522
1523 * data/lalr1.cc (yylex_): Honor %lex-param.
1524
0ffd4fd1
AD
15252005-06-22 Akim Demaille <akim@epita.fr>
1526
1527 Start a set of simple examples.
1528 * examples/calc++/Makefile, examples/calc++/calc++-driver.cc,
1529 * examples/calc++/calc++-driver.hh,
1530 * examples/calc++/calc++-parser.yy,
1531 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc,
1532 * examples/calc++/compile, examples/calc++/test: New.
1533
0925ebb4
PE
15342005-06-09 Paul Eggert <eggert@cs.ucla.edu>
1535
1536 * data/yacc.c (malloc, free) [defined __cplusplus]: Wrap inside
1537 extern "C" {}. This fixes a problem reported by Paul Hilfinger,
1538 which stems from the 2005-05-27 patch.
1539
43d3b664
PH
15402005-06-06 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1541
1542 * data/glr.c: Modify treatment of unused parameters to permit use
1543 of g++ (which doesn't allow __attribute__ ((unused)) for parameters).
1544
3062864d
PE
15452005-05-30 Paul Eggert <eggert@cs.ucla.edu>
1546
1547 Fix infringement on user name space reported by Janos Zoltan Szabo.
1548 * data/yacc.c (yyparse): strlen -> yystrlen.
1549
989b5b8e
AD
15502005-05-30 Akim Demaille <akim@epita.fr>
1551
1552 * data/lalr1.cc (_): New.
1553 Translate the various messages.
1554
bedf57f5
PE
15552005-05-27 Paul Eggert <eggert@cs.ucla.edu>
1556
1557 Fix infringement on user name space reported by Bruno Haible.
1558 * data/yacc.c (YYSIZE_T): Define first, so that later decls can use it.
1559 Prefer GCC's __SIZE_TYPE__ if available, so that we don't infringe on
1560 the user's name space.
1561 (alloca): Include <stdlib.h> to get it, if it's not built in.
1562 (YYMALLOC, YYFREE): Define only if needed.
1563 (malloc, free): Declare, but only if needed, as this infringes on
1564 the user name space.
1565
4d1801f1
PE
15662005-05-25 Paul Eggert <eggert@cs.ucla.edu>
1567
1568 Fix BeOS, FreeBSD, MacOS porting problems reported by Bruno Haible.
1569 * lib/bitset.c (bitset_print): Don't assume size_t can be printed
1570 with %d format.
1571 * lib/ebitset.c (min, max): Undef before defining.
1572 * lib/vbitset.c (min, max): Likewise.
1573 * lib/subpipe.c (create_subpipe): Save local variables in case
1574 vfork clobbers them.
1575
15762005-05-24 Bruno Haible <bruno@clisp.org>
1577
1578 * tests/synclines.at (AT_SYNCLINES_COMPILE): Add support for the
1579 error message syntax used by gcc-4.0.
1580
b94a9e1e
PE
15812005-05-23 Paul Eggert <eggert@cs.ucla.edu>
1582
85ac3861
PE
1583 * README: Mention m4 1.4.3. Remove obsolete advice about
1584 Sun Forte Developer 6 update 2, VMS, and MS-DOS.
1585
b94a9e1e
PE
1586 * bootstrap: Remove workaround for problem I encountered with
1587 gettext 0.14.1; it seems to be fixed now.
1588
51c30d21
PE
15892005-05-22 Paul Eggert <eggert@cs.ucla.edu>
1590
009ce67d
PE
1591 * NEWS: Version 2.0a.
1592
f2a97c62
PE
1593 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
1594 the previous change.
1595
c8775f93
PE
1596 Various maintainer cleanups.
1597 * .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*,
1598 conftest*, for benefit of CVS commands run at the same time as
1599 "configure". Add build-aux, since "bootstrap" now creates it and
1600 its subfiles.
1601 * Makefile.cfg (move_if_change): Remove.
1602 * Makefile.maint: Remove the update stuff; we now use "bootstrap".
1603 (ftp-gnu, www-gnu, move_if_change, local_updates, update):
1604 (po_repo, do-po-update, po-update, wget_files, get-targets):
1605 (config.guess-url_prefix, config.sub-url_prefix):
1606 (ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
1607 (standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url):
1608 ($(get-targets), cvs-files, automake_repo, wget-update, cvs-update):
1609 Remove.
1610 * configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux;
1611 this is now the recommended name.
1612 * config/.cvsignore: Remove config.guess, config.rpath, config.sub,
1613 depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex,
1614 ylwrap. These files now go into build-aux.
1615 * config/move-if-change: Remove.
1616 * config/prev-version.txt: Bump from 1.75 to 2.0.
1617
3ea5f0ec
PE
1618 * bootstrap: Add stdio-safer, unistd-safer modules.
1619 Remove m4/glibc2.m4 (introduced by latest gnulib, but
1620 we don't need it).
1621 * lib/.cvsignore: Add dup-safer.c, fd-safer.c,
1622 fopen-safer.c, stdio-safer.h, unistd-safer.h.
1623 * lib/subpipe.c: Include "unistd-safer.h".
1624 (create_subpipe): Make sure all the newly-created
1625 file descriptors are > 2, so that diagnostics don't
1626 get sent down them (which might cause Bison to hang, in theory).
1627 * m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
1628 * src/files.c (xfopen): Use fopen_safer, not fopen.
1629
51c30d21
PE
1630 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
1631 yesterday's yacc.c fix.
1632
cea1469d
PE
16332005-05-21 Paul Eggert <eggert@cs.ucla.edu>
1634
3ea5f0ec
PE
1635 * data/glr.c, data/lalr1.cc: Update copyright date.
1636
cea1469d
PE
1637 Fix a destructor bug reported by Wolfgang Spraul in
1638 <http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
1639 * data/yacc.c (yyabortlab): Don't call destructor, and
1640 don't set yychar to EMPTY.
1641 (yyoverflowlab): Don't call destructor.
1642 (yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
1643 * tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
1644 since we no longer output the message "discarding lookahead token
1645 end of input ()".
1646
5e6f62f2
PH
16472005-05-20 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1648
1649 * data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
1650 fix a small glitch in debugging output.
1651 (yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
1652 after YY_SYMBOL_PRINT where needed.
1653
1654 (struct yyGLRState): Add some comments.
1655 (struct yySemanticOption): Add some comments.
1656 (union yyGLRStackItem): Add comment.
1657
1658 (yymergeOptionSets): Correct this to properly perform the union,
1659 avoiding infinite reported by Michael Rosien.
1660 Update comment.
1661
1662 * tests/glr-regression.at: Add test for GLR merging error reported
1663 by M. Rosien.
cea1469d 1664
0fb669f9
PE
16652005-05-13 Paul Eggert <eggert@cs.ucla.edu>
1666
1667 * COPYING, ChangeLog, GNUmakefile, HACKING, Makefile.am,
1668 Makefile.cfg, Makefile.maint, NEWS, README, README-alpha,
1669 README-cvs, TODO, bootstrap, configure.ac, data/Makefile.am,
1670 data/README, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c,
1671 data/m4sugar/m4sugar.m4, doc/Makefile.am, doc/bison.texinfo,
1672 doc/fdl.texi, doc/gpl.texi, doc/refcard.tex, lib/Makefile.am,
1673 lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
1674 lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h,
1675 lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c,
1676 lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c,
1677 lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h,
1678 lib/main.c, lib/subpipe.c, lib/subpipe.h, lib/timevar.c,
1679 lib/timevar.def, lib/timevar.h, lib/vbitset.c, lib/vbitset.h,
1680 lib/yyerror.c, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4, m4/timevar.m4,
1681 m4/warning.m4, src/LR0.c, src/LR0.h, src/Makefile.am, src/assoc.c,
1682 src/assoc.h, src/closure.c, src/closure.h, src/complain.c,
1683 src/complain.h, src/conflicts.c, src/conflicts.h, src/derives.c,
1684 src/derives.h, src/files.c, src/files.h, src/getargs.c,
1685 src/getargs.h, src/gram.c, src/gram.h, src/lalr.c, src/lalr.h,
1686 src/location.c, src/location.h, src/main.c, src/muscle_tab.c,
1687 src/muscle_tab.h, src/nullable.c, src/nullable.h, src/output.c,
1688 src/output.h, src/parse-gram.c, src/parse-gram.h,
1689 src/parse-gram.y, src/print.c, src/print.h, src/print_graph.c,
1690 src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c,
1691 src/reduce.h, src/relation.c, src/relation.h, src/scan-gram.l,
1692 src/scan-skel.l, src/state.c, src/state.h, src/symlist.c,
1693 src/symlist.h, src/symtab.c, src/symtab.h, src/system.h,
1694 src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h,
1695 src/vcg.c, src/vcg.h, src/vcg_defaults.h, tests/Makefile.am,
1696 tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
1697 tests/cxx-type.at, tests/existing.at, tests/glr-regression.at,
1698 tests/headers.at, tests/input.at, tests/local.at, tests/output.at,
1699 tests/reduce.at, tests/regression.at, tests/sets.at,
1700 tests/synclines.at, tests/testsuite.at, tests/torture.at:
1701 Update FSF postal mail address.
1702
51f4735e
PE
17032005-05-11 Paul Eggert <eggert@cs.ucla.edu>
1704
1705 * tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
1706 Problem reported by Ralf Menzel.
1707
80ce3401
PE
17082005-05-01 Paul Eggert <eggert@cs.ucla.edu>
1709
1710 * tests/actions.at: Test that stack overflow invokes destructors.
1711 From Marcus Holland-Moritz.
1712 * data/yacc.c (yyerrlab): Move the code that destroys the stack
1713 from here....
1714 (yyreturn): to here. That way, destructors are called properly
1715 even if the stack overflows, or the user calls YYACCEPT or
1716 YYABORT. Stack-overflow problem reported by Marcus Holland-Moritz.
1717 (yyoverflowlab): Destroy the lookahead.
1718
17192005-04-24 Paul Eggert <eggert@cs.ucla.edu>
1720
1721 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
1722
72f000b0
PE
17232005-04-17 Paul Eggert <eggert@cs.ucla.edu>
1724
1725 * NEWS: Bison-generated C parsers no longer quote literal strings
1726 associated with tokens.
1727 * src/output.c (prepare_symbols): Don't escape strings,
1728 since users don't want to see C escapes.
1729 * tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
1730 in diagnostics.
c19683bb 1731 * tests/input.at (Torturing the Scanner): Likewise.
72f000b0
PE
1732 * tests/regression.at (Token definitions, Web2c Actions): Likewise.
1733
1094323f
PE
17342005-04-16 Paul Eggert <eggert@cs.ucla.edu>
1735
1736 * tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
1737 the data size is known to be too small and we can't increase it.
1738 This works around an HP-UX 11.00 glitch reported by Andrew Benham.
1739
ca407bdf
PE
17402005-04-15 Paul Eggert <eggert@cs.ucla.edu>
1741
1742 * src/parse-gram.y: Include quotearg.h.
1743 (string_as_id): Quote $1 before using it as a key, since the
1744 lexer no longer quotes it for us.
1745 (string_content): Don't strip quotes, since lexer no longer
1746 quotes it for us.
1747 * src/scan-gram.l: Include quotearg.h.
1748 ("\""): Omit quote.
1749 ("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
1750 a key, since the rest of the lexer doesn't quote it.
1751 * src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
1752 * tests/regression.at (Token definitions): Check for backslashes
1753 in token strings.
1754
1755 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): New macro.
1756 (YYSIZE_T): Define to unsigned long int when using an older compiler.
1757 (yyparse): Revamp code to generate long syntax error message, to
1758 make it easier to translate, and to avoid problems with arithmetic
1759 overflow. Change "virtual memory" to "memory" in diagnostic, since
1760 we don't know whether the memory is virtual.
1761
1ce59070
PE
17622005-04-13 Paul Eggert <eggert@cs.ucla.edu>
1763
1764 * NEWS: Bison-generated C parsers now use the _ macro to
1765 translate strings.
1766 * data/yacc.c (_) [!defined _]: New macro.
1767 All English strings wrapped inside this macro.
1768 * doc/bison.texinfo (Bison Parser): Document _.
1769 * po/POTFILES.in: Include src/parse-gram.c, since it now
1770 includes translateable strings that parse-gram.y doesn't.
1771
a749a695
PE
17722005-04-12 Paul Eggert <eggert@cs.ucla.edu>
1773
1774 * src/symtab.c (symbol_make_alias): Call symbol_type_set,
1775 reverting the 2004-10-11 change to this function.
1776 (symbol_check_alias_consistency): Don't call symbol_type_set
1777 if the type name is already correct.
1778 * tests/input.at (Typed symbol aliases): New test, from Tim Van Holder.
1779
8fb1053b
PE
17802005-03-25 Paul Eggert <eggert@cs.ucla.edu>
1781
1782 * tests/regression.at (Token definitions): Don't use a token named
1783 c, as that generates a "#define c ..." that runs afoul of buggy
1784 stdlib.h that uses the identifier c as a member of struct
1785 drand48_data. Problem reported by Horst Wente.
1786
ff498c4a
PE
17872005-03-21 Paul Eggert <eggert@cs.ucla.edu>
1788
1789 * bootstrap: Change translation URL from
1790 http://www2.iro.umontreal.ca/~gnutra/po/maint/bison/ to
1791 http://www.iro.umontreal.ca/translation/maint/bison/ to avoid
1792 redirection glitches. Problem reported by twlevo@xs4all.nl.
1793
65211d70
PE
17942005-03-20 Paul Eggert <eggert@cs.ucla.edu>
1795
1796 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
1797 after operands; POSIX says this isn't portable for the c99 command.
1798
9577fb1f
PE
17992005-03-18 Paul Eggert <eggert@cs.ucla.edu>
1800
1801 * tests/glr-regression.at (glr-regr2a.y): Try to dump core
1802 immediately if a data overrun has occurred; this may help us track
1803 down what may be a spurious failure on MacOS.
1804
78b178f7
PE
18052005-03-17 Paul Eggert <eggert@cs.ucla.edu>
1806
a2599d0f
PE
1807 Respond to problems reported by twlevo@xs4all.nl.
1808
1809 * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
1810
78b178f7
PE
1811 * src/vcg.h: Comment fix.
1812 * src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
1813 (G_CMAX): Change to -1 instead of INT_MAX.
1814
1815 * data/yacc.c (yyparse): Omit spaces before #line.
78b178f7 1816
7296e729
PE
18172005-03-15 Paul Eggert <eggert@cs.ucla.edu>
1818
1819 * src/tables.c (state_number_to_vector_number): Put it inside an
1820 "#if 0", since it's not currently used. Problem reported by
1821 Roland McGrath.
1822
05ac60f3
PE
18232005-03-06 Paul Eggert <eggert@cs.ucla.edu>
1824
1825 * src/output.c (escaped_output): Renamed from
1826 escaped_file_name_output, since we now use it for symbol tags as
1827 well. All uses changed.
1828 (symbol_destructors_output, symbol_printers_output):
1829 Escape symbol tags too.
1830 Problem reported by Matyas Forstner in
1831 <http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.
1832
1833 * src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
1834 not needed.
1835 * src/output.c (user_actions_output, token_definitions_output,
1836 symbol_destructors_output, symbol_printers_output): Likewise.
1837 * src/reader.c (prologue_augment): Likewise.
1838 * src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
1839
1840 * src/vcg.c (output_edge): Don't quote linestyle arg.
1841 Problem reported by twlevo@xs4all.nl.
1842
7eb453ac
PE
18432005-02-28 Paul Eggert <eggert@cs.ucla.edu>
1844
1845 * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
1846 example, reported by Derek M Jones. Also, make the example even
1847 more outrageous, to better illustrate how bad the problem is.
1848
4c04c52a
PE
18492005-02-24 Paul Eggert <eggert@cs.ucla.edu>
1850
1851 * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
1852 putsym. Typo reported by Sebastian Piping.
1853
a61e1620
PE
18542005-02-23 Paul Eggert <eggert@cs.ucla.edu>
1855
1856 * doc/bison.texinfo (Language and Grammar): some -> same
1857 (Epilogue): int he -> in the
1858 Typos reported by Sebastian Piping via Justin Pence.
1859
9ec93868
PE
18602005-02-07 Paul Eggert <eggert@cs.ucla.edu>
1861
1862 * tests/glr-regression.at (Improper handling of embedded actions
1863 and dollar(-N) in GLR parsers): Renamed from "Improper handling of
1864 embedded actions and $-N in GLR parsers", work around an Autoconf bug
1865 with dollar signs in test names.
1866 * tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
1867 for a similar reason.
1868
73ce7e7e
PE
18692005-01-28 Paul Eggert <eggert@cs.ucla.edu>
1870
1871 * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
1872 wants to redefine G_VIEW.
1873
2e72b98e
PE
18742005-01-27 Paul Eggert <eggert@cs.ucla.edu>
1875
1876 * src/vcg.c (get_view_str): Remove case for normal_view.
1877 Problem reported by twlevo@xs4all.nl.
1878
e0d634e5
PE
18792005-01-24 Paul Eggert <eggert@cs.ucla.edu>
1880
ccf830a4
PE
1881 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
1882 Problem reported by twlevo@xs4all.nl.
1883
e0d634e5
PE
1884 * doc/bison.texinfo: Change @dircategory from "GNU programming
1885 tools" to "Software development". Requested by Richard Stallman
1886 via Karl Berry.
1887
7bbc8cb0
PE
18882005-01-23 Paul Eggert <eggert@cs.ucla.edu>
1889
1890 * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
1891 Problem reported by twlevo@xs4all.nl.
1892
08b770bc
PE
18932005-01-21 Paul Eggert <eggert@cs.ucla.edu>
1894
1895 * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
1896 keyword; it's not needed with modern compilers, and it doesn't
1897 affect correctness with older compilers. Suggested by
1898 twlevo@xs4all.nl.
1899
95f22ad2
PE
19002005-01-17 Paul Eggert <eggert@cs.ucla.edu>
1901
1902 * data/glr.c (yyuserAction): Add "default: break;" case to pacify
1903 gcc -Wswitch-default.
1904 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
1905 * data/yacc.c (yyparse): Likewise.
1906
d229d15c
PE
19072005-01-12 Paul Eggert <eggert@cs.ucla.edu>
1908
1909 * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
1910 already. Let config.h define any nonstandard values.
1911
ecadd90f
PE
19122005-01-10 Paul Eggert <eggert@cs.ucla.edu>
1913
1914 * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
1915 for the benefit of slower hosts. Problem reported by
1916 Nelson H. F. Beebe.
1917
213744b5
PE
19182005-01-07 Paul Eggert <eggert@cs.ucla.edu>
1919
1920 * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
1921 being defined and not used.
1922 * data/lalr1.cc (yyparse): Likewise.
1923 Use "if (false)" rather than "if (0)".
1924
249d3236
PE
19252005-01-05 Paul Eggert <eggert@cs.ucla.edu>
1926
1927 * TODO: Mention that we should allow NUL bytes in tokens.
1928
987cc1fb
PE
19292005-01-02 Paul Eggert <eggert@cs.ucla.edu>
1930
1931 * src/scan-skel.l (<<EOF>>): Don't close standard output.
1932 Problem reported by Hans Aberg.
1933
08fe02d9
PE
19342005-01-01 Paul Eggert <eggert@cs.ucla.edu>
1935
1936 * src/getargs.c (version): Happy new year; update overall
1937 program copyright date from 2004 to 2005.
1938
1939 * src/scan-skel.l ("@output ".*\n): Don't close standard output.
1940 Problem reported by Hans Aberg.
1941 * tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
1942 (Output file names.): Add a test for the case when standard output
1943 is closed.
1944
010c0266
PE
19452004-12-26 Paul Eggert <eggert@cs.ucla.edu>
1946
1947 * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
1948 to fix an oversight in the Bison 2.0 manual.
1949
da12206a
PE
19502004-12-25 Paul Eggert <eggert@cs.ucla.edu>
1951
1952 * NEWS: Version 2.0. Reformat the existing news items since
1953 1.875, so that related items are grouped together.
3a4734aa 1954 * configure.ac (AC_INIT): Bump version to 2.0.
da12206a
PE
1955 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
1956
c935d934
PE
1957 * tests/torture.at (Exploding the Stack Size with Alloca): Set
1958 YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
1959 otherwise, we're not testing alloca. Unfortunately there's no
1960 simple way to consult HAVE_ALLOCA here.
1961
da12206a
PE
1962 * data/lalr1.cc (yydestruct_): Pacify unused variable warning
1963 for yymsg, too.
1964
1965 * src/LR0.c (new_itemsets): Use memset rather than zeroing by
1966 hand. This avoids a warning about comparing int to size_t when
1967 GCC warnings are enabled.
1968
0a2c5137
PE
19692004-12-22 Paul Eggert <eggert@cs.ucla.edu>
1970
d7e14fc0
PE
1971 * NEWS: Bison-generated parsers no longer default to using the
1972 alloca function (when available) to extend the parser stack, due
1973 to widespread problems in unchecked stack-overflow detection.
1974 * data/glr.c (YYMAXDEPTH): Remove undef when zero. It's the user's
1975 responsibility to set it to a positive value. This lets the user
1976 specify a value that is not a preprocessor constant.
1977 * data/yacc.c (YYMAXDEPTH): Likewise.
1978 (YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
1979 * doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
1980 to be a compile-time constant. However, explain the constraints on it.
1981 Also, explain the constraints on YYINITDEPTH.
1982 (Table of Symbols): Explain that alloca is no longer the default.
1983 Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
1984 to 1.
1985
0a2c5137
PE
1986 * doc/bison.texinfo (Location Default Action): Mention that n must
1987 be zero when k is zero. Suggested by Frank Heckenbach.
1988
e019c247
AD
19892004-12-22 Akim Demaille <akim@epita.fr>
1990
1991 * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
1992 (parser::state_type, parser::semantic_type, parser::location_type):
1993 Private, not public.
1994 (parser::parse): Return ints, not bool.
1995 Returning a bool introduces a problem: 0 corresponds to false, and
1996 it seems weird to return false on success. Returning true changes
1997 the conventions for yyparse.
1998 Alternatively we could return void and send an exception.
1999 There is no clear consensus (yet?).
2000 (state_stack, semantic_stack, location_stack): Rename as...
2001 (state_stack_type, semantic_stack_type, location_stack_type): these.
2002 Private, not public.
2003 * tests/c++.at: New.
2004 * tests/testsuite.at, tests/Makefile.am: Adjust.
2005
72731bb7
AD
20062004-12-21 Akim Demaille <akim@epita.fr>
2007
2008 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
2009
9a0d8bec
AD
20102004-12-21 Akim Demaille <akim@epita.fr>
2011
2012 Don't impose std::string for filenames.
2013
2014 * data/lalr1.cc (b4_filename_type): New.
2015 (position::filename): Use it.
2016 (parser.hh): Move the inclusion of stack.hh and location.hh below
2017 the user code, so that needed headers for the filename type can be
2018 included first.
72731bb7
AD
2019 Forward declare them before the user code.
2020 * tests/Makefile.am (check-local, installcheck-local): Pass
2021 TESTSUITEFLAGS to the TESTSUITE.
9a0d8bec 2022
99880de5
AD
20232004-12-20 Akim Demaille <akim@epita.fr>
2024
2025 Use more STL like names: my_class instead of MyClass.
2026
2027 * data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
2028 (SemanticStack, SemanticType, StateStack, StateType)
2029 (TokenNumberType, Stack, Slice, Traits, Parser::location)
2030 (Parser::value): Rename as...
2031 (location_stack, location_type, rhs_number_type, semantic_stack)
2032 (semantic_type, state_stack, state_type, token_number_type, stack)
2033 (slice, traits, parser::yylloc, parser::yylval): these.
2034
2035 * tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
2036
9bec482e
PE
20372004-12-19 Paul Eggert <eggert@cs.ucla.edu>
2038
2039 * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
2040 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
2041
f6fbd3da
PE
20422004-12-17 Paul Eggert <eggert@cs.ucla.edu>
2043
2044 Remove uses of 'short int' and 'unsigned short int'. This raises
2045 some arbitrary limits. It uses more memory but nowadays that's
2046 not much of an issue.
2047
2048 This change does not affect the generated parsers; that's a different
2049 task, as some users will want to conserve memory there.
2050
2051 Ideally we should use size_t to represent all object counts, and
2052 something like ptrdiff_t to represent signed differences of object
2053 counts; but that will require more code-cleanup than I have the
2054 time to do right now.
2055
2056 * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
2057 Use size_t, not int or short int, to count objects.
2058 * src/closure.c (nritemset, closure): Likewise.
2059 * src/closure.h (nritemset, closure): Likewise.
2060 * src/nullable.c (nullable_compute): Likewise.
2061 * src/print.c (print_core): Likewise.
2062 * src/print_graph.c (print_core): Likewise.
2063 * src/state.c (state_compare, state_hash): Likewise.
2064 * src/state.h (struct state): Likewise.
2065 * src/tables.c (default_goto, goto_actions): Likewise.
2066
2067 * src/gram.h (rule_number, rule): Use int, not short int.
2068 * src/output.c (prepare_rules): Likewise.
2069 * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
2070 errs, reductions): Likewise.
2071 * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
2072 Likewise.
2073 * src/tables.c (vector_number, tally, action_number,
2074 ACTION_NUMBER_MINIMUM): Likewise.
2075 * src/output.c (muscle_insert_short_int_table): Remove.
2076
efeed023
AD
20772004-12-17 Akim Demaille <akim@epita.fr>
2078
2079 * data/lalr1.cc: Extensive Doxygenation.
2080 (error_): Rename as...
2081 (error): this, since it is visible to the user.
2082 Adjust callers.
2083 (Parser::message): Now an automatic variable from...
2084 (Parser::yyreport_syntax_error_): here.
2085 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
2086 Parser::error.
2087 * tests/input.at: Escape $.
2088
bc82c5a5
PE
20892004-12-16 Paul Eggert <eggert@cs.ucla.edu>
2090
2091 * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
2092 Parenthesize rhs to avoid obscure problems with mistakes like
2093 "foo$$bar = foo$1bar;". Problem reported by twlevo at xs4all.
2094 * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
2095 b4_rhs_location): Likewise.
2096 * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
2097 b4_rhs_location): Likewise.
2098
fd19f271
AD
20992004-12-16 Akim Demaille <akim@epita.fr>
2100
2101 * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
2102 yacc.c: be sure to stay within yycheck_.
2103 * tests/actions.at: Re-enable C++ tests.
2104
10454ea4
AD
21052004-12-16 Akim Demaille <akim@epita.fr>
2106
2107 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
2108 real.
2109
c5b95ccf
AD
21102004-12-16 Akim Demaille <akim@epita.fr>
2111
2112 Use #define to handle the %name-prefix.
2113
2114 * data/glr.c, data/yacc.c: Comment changes.
2115 * data/lalr1.cc (yylex): Use #define to select the name of yylex,
2116 so that one can refer to yylex in the parser file, and have it
2117 renamed, as is the case with other skeletons.
2118
617a8f12
AD
21192004-12-16 Akim Demaille <akim@epita.fr>
2120
2121 Move lalr1.cc internals into yy*.
2122
2123 * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
2124 (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
2125 (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
2126 (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
2127 (empty_, final_, terror_, errcode_, ntokens_)
2128 (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
2129 (looka_, ilooka_, error_range_, nerrs_):
2130 Rename as...
2131 (yysemantic_stack_, yylocation_stack_, yystate_stack_)
2132 (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
2133 (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
2134 (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
2135 (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
2136 (yyfinal_, yyterror_, yyerrcode_, yyntokens_)
2137 (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
2138 (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
2139 these.
2140
1e547e6e
PE
21412004-12-15 Paul Eggert <eggert@cs.ucla.edu>
2142
2143 Fix some problems reported by twlevo at xs4all.
2144 * src/symtab.c (symbol_new): Report an error if the input grammar
2145 contains too many symbols. This is better than calling abort() later.
2146 * src/vcg.h (enum layoutalgorithm): Remove. All uses removed.
2147 (struct node, struct graph):
2148 Rename member expand to stretch. All uses changed.
2149 (struct graph): Remove member layoutalgorithm. All uses removed.
2150 * src/vcg.c (get_layoutalgorithm_str): Remove. All uses removed.
2151 * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
2152 All uses changed.
2153 (N_STRETCH): Rename from N_EXPAND. All uses changed.
2154
735d6bd4
AD
21552004-12-15 Akim Demaille <akim@epita.fr>
2156
2157 * data/lalr1.cc: Normalize /** \brief ... */ to ///.
2158 Add more Doxygen comments.
2159 (symprint_, stack_print_, reduce_print_, destruct_, pop)
2160 (report_syntax_error_, translate_): Rename as...
2161 (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
2162 (yypop_, yyreport_syntax_error_, yytranslate_): this.
2163
2e1f5829
AD
21642004-12-15 Akim Demaille <akim@epita.fr>
2165
2166 * data/lalr1.cc (lex_): Rename as...
2167 (yylex_): this.
2168 Move the trace here.
2169 Take the %name-prefix into account.
2170 Reported by Alexandre Duret-Lutz.
2171
a3cb6248
AD
21722004-12-15 Akim Demaille <akim@epita.fr>
2173
2174 Simplify the C++ parser constructor.
2175
2176 * data/lalr1.cc (debug_): Rename as...
2177 (yydebug_): so that the parser's internals are always in the yy*
2178 pseudo namespace.
2179 Adjust uses.
2180 (b4_parse_param_decl): Remove the leading comma as it is now only
2181 called as unique argument list.
2182 (Parser::Parser): Remove the constructor accepting a location and
2183 an initial debugging level.
2184 Remove from the other ctor the argument for the debugging level.
2185 (debug_level_type, debug_level, set_debug_level): New.
2186
2187 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust
2188 constructor calls.
2189
07fed891
AD
21902004-12-15 Akim Demaille <akim@epita.fr>
2191
2192 Remove b4_root related material: failure experiment
a3cb6248 2193 (which goal was to allow to derive from a class).
07fed891
AD
2194
2195 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
2196 definitions and uses.
2197
e603eaa5
PE
21982004-12-14 Paul Eggert <eggert@cs.ucla.edu>
2199
2200 * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
2201 not 2, since it's not portable to subtract 1 from the start of an
2202 array. The new item 0 is never set or used. All uses changed.
2203
2204 (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
2205 the default definition of YYLLOC_DEFAULT. Problem reported
2206 by Frank Heckenbach.
2207
fafb007d
PE
22082004-12-12 Paul Eggert <eggert@cs.ucla.edu>
2209
2210 * data/glr.c (YYRHSLOC): Don't have two definitions, one for
2211 the normal case and one for the error case. Just use the
2212 first one uniformly. Problem reported by Frank Heckenbach.
2213 (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
2214 use exactly the same macro in both places.
2215 (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
2216 so that the normal-case YYRHSLOC works for the error case too.
2217 All uses changed.
2218 * data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
2219 (YYLLOC_DEFAULT): Use the same macro as glr.c.
2220 * doc/bison.texinfo (Location Default Action): Don't claim that
2221 we have an array of locations. Use the same macro for both glr
2222 and lalr parsers. Mention YYRHSLOC. Mention what happens when
2223 the index is 0.
2224
48814dcd
PE
22252004-12-10 Paul Eggert <eggert@cs.ucla.edu>
2226
a4e1a53b
PE
2227 * HACKING: Update email addresses to send announcements to.
2228
48814dcd
PE
2229 * configure.ac (AC_INIT): Bump version to 1.875f.
2230
337116ba
PE
22312004-12-10 Paul Eggert <eggert@cs.ucla.edu>
2232
2233 * NEWS: Version 1.875e.
2234 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
2235
2236 * src/scan-skel.l: Include "complain.h", for "fatal".
2237
2238 * src/relation.h (relation_print, relation_digraph):
2239 Relation sizes are of type relation_node, not size_t (this is
2240 merely a doc fix, since the two types are equivalent).
2241 (relation_transpose): Relation sizes are of type relation_node,
2242 not int.
2243 * src/relation.c: Likewise.
2244 (top, infinity): Now of type relation_node, not int.
2245 (traverse, relation_transpose): Use relation_node, not int.
2246
2247 * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
2248 with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
2249 (yyparse): Remove unused local introduced in 2004-10-25 patch.
2250
2251 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
68b082af 2252 specifying whether the test should be skipped. Use it tp
337116ba 2253 specify that the [%defines %skeleton "lalr1.cc"] tests currently
68b082af 2254 fail on some hosts, and should be skipped.
337116ba 2255
da2a7671
PE
22562004-12-08 Paul Eggert <eggert@cs.ucla.edu>
2257
2258 * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers
2259 changed to use xcalloc, xnmalloc, xnrealloc, respectively,
2260 unless otherwise specified below.
2261
2262 * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
2263 to allocate kernel_base, kernel_items, kernel_size, since
2264 they needn't be initialized to 0.
2265 (allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
2266 * src/closure.c (new_closure): Likewise, for itemset.
2267 * src/derives.c (derives_compute): Likewise, for delts, derives, q.
2268 * src/lalr.c (set_goto_map): Likewise, for temp_map.
2269 (initialize_F): Likewise, for reads, edge, reads[i], includes[i].
2270 (build_relations): Likewise for edge, states1, includes.
2271 * src/nullable.c (nullable_compute): Likewise, for squeue, relts.
2272 * src/reader.c (packgram): Likewise, for ritem, rules.
2273 * src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
2274 * src/relation.c (relation_digraph): Likewise for VERTICES.
2275 (relation_transpose): Likewise for new_R, end_R.
2276 * src/symtab.c (symbols_token_translations_init): Likewise for
2277 token_translations.
2278 * src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
2279 (token_actions): Likewise for yydefact, actrow, conflrow,
2280 conflict_list.
2281 (save_column): Likewise for froms[symno], tos[symno].
2282 (goto_actions): Likewise for state_count.
2283 (pack_table): Likewise for base, pos, check.
2284 (tables_generate): Likewise for width.
2285
2286 * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
2287 for initial core. Just have a separate core, so we needn't worry
2288 about whether kernel_size and kernel_base are initialized.
2289
2290 * src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
2291 kernel_size, kernel_items): Remove unnecessary initialization.
2292 * src/conflicts.c (conflicts): Likewise.
2293 * src/derives.c (derives): Likewise.
2294 * src/muscle_tablc (muscle_insert): Likewise.
2295 * src/relation.c (relation_digraph): Likewise.
2296 * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
2297 conflrow, conflict_table, conflict_list, table, check):
2298 Likewise.
2299
2300 * src/closure.c (new_closure): Arg is of type unsigned int, not int.
2301 This is because all callers pass unsigned int.
2302 * src/closure.h (new_closure): Likewise.
2303
2304 * src/lalr.c (initialize_F): Initialize reads[i] in all cases.
2305 (build_relations): Initialize includes[i] in all cases.
2306 * src/reader.c (packgram): Always initialize rules[ruleno].prec
2307 and rules[ruleno].precsym. Initialize members in order.
2308 * src/relation.c (relation_transpose): Always initialize new_R[i]
2309 and end_R[i].
2310 * src/table.c (conflict_row): Initialize 0 at end of conflict_list.
2311
2312 * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
2313 conflict_list[0] was always 0, but now it isn't initialized.
2314
2315 * src/table.c (table_grow): When conflict_table grew, the grown
2316 area wasn't cleared. Fix this.
2317
2318 * lib/.cvsignore: Add strdup.c, strdup.h.
2319 * m4/.cvsignore: Add strdup.m4.
2320
00baeeac
PE
23212004-12-07 Paul Eggert <eggert@cs.ucla.edu>
2322
2323 * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
2324 * src/lalr.c (set_goto_map): Don't allow ngotos to equal
2325 GOTO_NUMBER_MAXIMUM, since we occasionally compute
2326 ngotos + 1 without checking for overflow.
2327 (build_relations): Use END_NODE, not -1, to denote end of edges.
2328 * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
2329 build_relations): Use goto_number, not int, for goto numbers.
2330 * src/tables.c (save_column, default_goto): Likewise.
2331
be3d9d42
AD
23322004-11-23 Akim Demaille <akim@epita.fr>
2333
2334 * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
2335 of #defining from yystype.
2336 Don't typedef yystype, C++ does not need it.
2337 This lets it possible to forward declare it as union.
2338
78e526d5
PE
23392004-11-23 Paul Eggert <eggert@cs.ucla.edu>
2340
2341 * bootstrap (gnulib_modules): Add extensions.
2342 Problem reported by Jim Meyering.
2343
afbb696d
PE
23442004-11-22 Paul Eggert <eggert@cs.ucla.edu>
2345
2346 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
2347 src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
2348 src/system.h, src/tables.c: XFREE -> free, to accommodate
2349 recent change to gnulib xalloc.h.
78e526d5 2350 Problem reported by Jim Meyering.
afbb696d 2351
c1f8f16a
AD
23522004-11-17 Akim Demaille <akim@epita.fr>
2353
2354 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
2355
23562004-10-28 Akim Demaille <akim@epita.fr>,
9a1e9989
AD
2357 Alexandre Duret-Lutz <adl@gnu.org>
2358
2359 * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
2360 changes.
2361 (YYCDEBUG): Adjust.
2362 Use it instead of cdebug_.
2363 (Parser::debug_stream, Parser::set_debug_stream): New.
2364 (Parser::symprint_): Define cdebug_ for temporary backward
2365 compatibility.
2366 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
2367 debug_stream ().
2368
68e11668
AD
23692004-11-17 Akim Demaille <akim@epita.fr>
2370
2371 * data/lalr1.cc (Parser:print_): Remove, use %printer instead.
2372 * tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
2373 * tests/calc.at (_AT_DATA_CALC_Y): Ditto.
2374 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
2375
97cbc73e
PE
23762004-10-27 Paul Eggert <eggert@cs.ucla.edu>
2377
2378 * data/glr.c (yyloc_default): Remove; not used.
2379 Problem reported by Frank Heckenbach.
2380
e342c3be
AD
23812004-10-25 Akim Demaille <akim@epita.fr>
2382
2383 * data/glr.c (YYRHSLOC): Move its definition next to its uses.
2384 Introduce another definition to address simple location arrays.
2385 (yyGLRStack): New member: yyerror_range.
2386 (yyrecoverSyntaxError, yyparse): Update it.
2387 (yyrecoverSyntaxError): Use it when shifting the error token to
2388 have an accurate range, equivalent to the one computed by both
2389 yacc.c and lalr1.cc.
2390 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
2391 that column numbers start at column 0, as per GNU Coding
2392 Standards, the others tests, and the doc.
2393 (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
2394 Adjust to the above change (first column is 0).
2395 And adjust the location of the "<error>", now covering the whole
2396 line.
2397
93602feb 23982004-10-22 Akim Demaille <akim@epita.fr>
04098407 2399 and Paul Eggert <eggert@cs.ucla.edu>
93602feb
PE
2400
2401 Remove some arbitrary limits on goto numbers and relations.
2402 * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
2403 initial values, since they're never used.
2404 (set_goto_map): ngotos is now unsigned, so test for overflow
2405 by seeing whether it wraps around to zero.
2406 * src/lalr.h (goto_number): Now size_t, not short int.
2407 (GOTO_NUMBER_MAXIMUM): Remove.
2408 * src/relation.c (relation_print, traverse, relation_transpose):
2409 Check for END_NODE rather than looking at sign.
2410 * src/relation.h (END_NODE): New macro.
2411 (relation_node): Now size_t, not short int.
2412
dba08b04
PE
24132004-10-22 Paul Eggert <eggert@cs.ucla.edu>
2414
2415 * doc/bison.texinfo (Language and Grammar): In example, "int" is a
2416 keyword, not an identifier. Problem reported by Baron Schwartz in
2417 <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
2418
df09ef2e
AD
24192004-10-11 Akim Demaille <akim@epita.fr>
2420
2421 * src/symtab.c (symbol_check_alias_consistency): Also check
2422 type names, destructors, and printers.
2423 Reported by Alexandre Duret-Lutz.
2424 Recode the handling of associativity and precedence in terms
2425 of symbol_precedence_set.
2426 Accept no redeclaration at all, not even equal to the previous
2427 value.
2428 (redeclaration): New.
2429 Use it to factor redeclaration complaints.
2430 (symbol_make_alias): Don't set the type of the alias, let
2431 symbol_check_alias_consistency do it as for other features.
2432 * src/symtab.h (symbol): Add new member prec_location, and
2433 type_location.
2434 * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
2435 * tests/input.at (Incompatible Aliases): New.
2436
146bc99d
PE
24372004-10-09 Paul Eggert <eggert@cs.ucla.edu>
2438
2439 .cvsignore fixes to accommodate gnulib changes,
2440 and the practice of naming build directories "_build".
2441 * .cvsignore: Add "_*". Sort.
2442 * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
2443 * m4/.cvsignore: Add "*_gl.m4".
2444
e503aa60
AD
24452004-10-06 Akim Demaille <akim@epita.fr>
2446
2447 * src/parse-gram.y (add_param): Fix the truncation of trailing
2448 spaces.
2449
b4a20338
AD
24502004-10-05 Akim Demaille <akim@epita.fr>
2451
2452 In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
2453 whether the reducion was empty or not. This leaves room to
2454 improve the use of YYLLOC_DEFAULT in such a case.
2455 lalr1.cc is still experimental, so changing this is acceptable.
2456 And finally, there are probably not many users who changed the
2457 handling of locations in GLR, so changing is admissible too.
2458
2459 * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
2460 empty reduction, set @$ to an empty location ending the previously
2461 stacked symbol.
2462 Adjust uses to make sure the code is triggered on empty
2463 reductions.
2464 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
2465 expected output: empty reductions have empty locations.
2466
f85a5e6f
AD
24672004-09-29 Akim Demaille <akim@epita.fr>
2468
2469 * data/lalr1.cc: Move towards a more standard C++ coding style
2470 for templates: Class < T > -> Class<T>.
2471
b203fc2c
AD
24722004-09-29 Akim Demaille <akim@epita.fr>
2473
2474 * data/lalr1.cc: Reinstall the former ctor, for sake of
2475 compatibility, but warn it will be removed.
2476 Move towards a more standard C++ coding style (i.e., type *var ->
2477 type* var).
2478
5b7e1e73
PE
24792004-09-27 Paul Eggert <eggert@cs.ucla.edu>
2480
3fee967f
PE
2481 * src/parse-gram.y (add_param): Rewrite to avoid strchr,
2482 since it's less likely to work if NULs are involved in the future.
5b7e1e73 2483
0dcca5c2
AD
24842004-09-27 Akim Demaille <akim@epita.fr>
2485
2486 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
2487
6dde1c82
AD
24882004-09-27 Akim Demaille <akim@epita.fr>
2489
2490 * data/lalr1.cc (b4_parse_param_decl_1): New.
b203fc2c 2491 (b4_parse_param_decl): Use it to have different names between attribute
6dde1c82
AD
2492 and argument names.
2493 (b4_cc_constructor_call): Likewise.
2494
b233d555
AD
24952004-09-24 Akim Demaille <akim@epita.fr>
2496
2497 * src/parse-gram.y (add_param): Strip the leading and trailing
2498 blanks from a formal argument declaration.
2499 (YY_LOCATION_PRINT): New.
2500
619404e3
AD
25012004-09-24 Akim Demaille <akim@epita.fr>
2502
2503 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
2504 after the location.
2505
dd8d9022
AD
25062004-09-24 Akim Demaille <akim@epita.fr>
2507
2508 * doc/bison.texinfo (Table of Symbols): Sort.
2509
0092f063
AD
25102004-09-21 Akim Demaille <akim@epita.fr>
2511
2512 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
2513 the useless parentheses.
2514 Suggested by Paul Eggert.
2515
451364ed
AD
25162004-09-20 Akim Demaille <akim@epita.fr>
2517
2518 Let the initial-action act on the look-ahead, and use it for the
2519 "initial push" (corresponding to an hypothetical beginning-of-file).
2520 And let lalr1.cc honor %initial-action.
2521
2522 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
2523 example.
2524 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
2525 (Parser::Parser): Remove the ctor that used to initialize it.
2526 (Parser::parse): Like in the other skeletons, issue the "starting
2527 parse" message before any action.
2528 Honor %initial-action.
2529 Initialize the stacks with the lookahead.
2530 * data/yacc.c: Let $$ and @$ in %initial-action designate the
2531 look-ahead.
2532 Push them in the stacks.
2533 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
2534
18d192f0
AD
25352004-09-20 Akim Demaille <akim@epita.fr>
2536
2537 * doc/bison.texinfo (Initial Action Decl): New.
2538
b8458aa5
AD
25392004-09-20 Akim Demaille <akim@epita.fr>
2540
2541 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
2542 clearer criterion to define it.
2543 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
2544 When reducing on an empty RHS, use the latest stacked location as
2545 location.
2546 yylloc is not always available.
2547 * data/glr.c: Likewise.
2548 Also, honor initial-actions.
2549
3fc16193
AD
25502004-09-20 Akim Demaille <akim@epita.fr>
2551
2552 * data/yacc.c (YY_LOCATION_PRINT): New.
2553 Define when we know YYLTYPE's structure, i.e., when the default
2554 YYLLOC_DEFAULT is used.
2555 * data/c.m4 (b4_yysymprint_generate): Use it.
2556 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
2557 value of the result.
2558 (error_start_): Replace with...
2559 (error_range_): this location array.
2560 This allows to replace code relying on the implementation of
2561 locations by portable code.
2562 * data/yacc.c (yylerrsp): Replace with...
2563 (yyerror_range): this.
2564 Every time a token is popped, update yyerror_range[0], to have an
2565 accurate location for the error token.
2566 * data/glr.c (YY_LOCATION_PRINT): New.
2567 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
2568 deference a pointer.
2569 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
2570 report the location in %printers.
2571
2572 * src/scan-skel.l: Instead of abort, report error messages to ease
2573 understanding skeleton scanning failures.
2574
ecfe33e7
AD
25752004-09-16 Akim Demaille <akim@epita.fr>
2576
2577 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
2578 (iterator, const_iterator): these, to be more in the C++ spirit.
2579 Also, return reverse iterators so that when displaying the stack
2580 we display its bottom first.
2581 (Parser::stack_print_, Parser::reduce_print_): Match the messages
2582 from yacc.c.
2583 We should probably use vector here though.
2584
1576d44d
AD
25852004-09-16 Akim Demaille <akim@epita.fr>
2586
2587 Have more complete shift traces.
2588
2589 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
2590 to report Shifts instead of ad hoc YYDPRINTF invocations,
2591 including for the error token.
2592 * data/lalr1.cc (symprint_): Output the location.
2593 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
2594 output the location within the %printer.
2595 Activate GLR tests, at least to make sure they compile properly.
2596 They still don't pass though.
2597 * tests/calc.at: Adjust expect verbose output, since now "Entering
2598 state..." is on a different line than the "Shifting" message.
2599
9c66f418
AD
26002004-09-08 Akim Demaille <akim@epita.fr>
2601
2602 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
2603 Bison directive from the Bison file to the invocation of this
2604 macro, so that these directives are passed to
2605 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
2606 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
2607 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
2608 the extra Bison directives instead of the whole series.
2609 Change the grammar so that there are recoverable errors, and
2610 unrecoverable errors. Now we can have the parser give up before
2611 consuming the whole input. As a result we now can observe that
2612 the lookahead is freed when needed.
2613 Change the parser source to parse argv[1] instead of a hard coded
2614 string.
2615 Simplify yylex, and give a value and location to EOF.
2616 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
2617 passed directives already coded in the file.
2618 Add some tests to check the location of "error".
2619 For some tests, the C++ parser is correct, and not yacc.c.
2620 For other tests, they provide different, but unsatisfying, values,
2621 so keep the C++ value so that at least one parser is "correct"
2622 according to the test suite.
2623 (Actions after errors): Remove, this is subsumed by the
2624 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
2625
52d5733f
AD
26262004-09-06 Akim Demaille <akim@epita.fr>
2627
2628 * data/lalr1.cc: Adjust the indentation of the labels.
04098407 2629 (Parser::pop): New.
52d5733f
AD
2630 Use it.
2631
a0e68930
AD
26322004-09-06 Akim Demaille <akim@epita.fr>
2633
2634 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
2635 argument, an informative message.
2636 Call YY_SYMBOL_PRINT.
2637 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
2638 * data/lalr1.cc (destruct_): Likewise.
2639 In addition, no longer depend on b4_yysymprint_generate and
2640 b4_yydestruct_generate to generate these functions, do it "by
2641 hand".
2642
e757bb10
AD
26432004-09-03 Akim Demaille <akim@epita.fr>
2644
2645 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
2646 invoked, yydestruct the lookahead.
2647 * tests/calc.at (Calculator $1): Update the expected lengths of
2648 traces: there is an added line for the discarded lookahead.
2649 * doc/bison.texinfo (Destructor Decl): Some rewording.
2650 Define "discarded" symbols.
2651
0fe1f06d
AD
26522004-09-02 Akim Demaille <akim@epita.fr>
2653
2654 * data/lalr1.cc (translate_, destruct_): No reason to be static.
2655
284acc8b
AD
26562004-09-02 Akim Demaille <akim@epita.fr>
2657
2658 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
2659 (YYDSYMPRINTF): Rename as...
2660 (YY_SYMBOL_PRINT): this.
2661 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
2662 two.
2663 Use it instead of direct symprint_ calls.
2664 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
2665 one.
2666
a5eb1ed2
AD
26672004-09-02 Akim Demaille <akim@epita.fr>
2668
b7c72fe1
AD
2669 * data/lalr1.cc (b4_yysymprint_generate): New.
2670 (symprint_): New member function, defined when YYDEBUG.
2671 Use it consistently instead of token/nterm debugging output by
2672 hand.
a5eb1ed2
AD
2673 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
2674 %printer calls to use cdebug_ when using lalr1.cc.
2675
417141dd
AD
26762004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
2677
2678 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
2679 with #ifdef YYDEBUG.
2680
2fa09258
AD
26812004-08-26 Akim Demaille <akim@epita.fr>
2682
2683 * doc/bison.texinfo (Implementing Loops): Rename as...
2684 (Implementing Gotos/Loops): this.
2685
9378b508
PE
26862004-08-13 Paul Eggert <eggert@cs.ucla.edu>
2687
2688 Adjust to latest gnulib.
2689 * bootstrap (gnulib_modules): Add xalloc-die.
2690 Set LC_ALL=C so that file names sort consistently.
2691 Prefer the gnulib copies of gettext.m4, glibc21.m4,
2692 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
2693 uintmax_t.m4, ulonglong.m4.
2694 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
2695 po.m4 since we are now using _gl.m4 instead.
2696
87a8ad5c
PE
26972004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
2698
2699 * src/scan-action.l: Remove. Scanning of semantic actions is
2700 handled in scan-gram.l.
2701
dca81a78
PE
27022004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
2703
2704 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
2705
2706 * src/location.h (struct): The file member is a uniqstr.
2707 (equal_boundaries): Use UNIQSTR_EQ for comparison.
2708
c9cbf7c5
PE
27092004-07-22 Paul Eggert <eggert@cs.ucla.edu>
2710
2711 Fix bug with non-%union parsers that have printers or destructors,
2712 which led to a Bison core dump. Reported by Peter Fales in
2713 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
2fa09258 2714
c9cbf7c5
PE
2715 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
2716 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
2717 not to our own type.
2718 * src/output.c (symbol_destructors_output, symbol_printers_output):
2719 Don't assume %union.
2720 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
2721 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
2722 UNION-FLAG. All callers changed.
2723 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
2724 Use type char, not unsigned int, when declaring an array of char;
2725 this lets us remove a cast.
2726 (Printers and Destructors): Add non-%union test cases.
2727
fa7e68c3
PE
27282004-06-21 Paul Eggert <eggert@cs.ucla.edu>
2729
2730 * doc/bison.texinfo: Minor editorial changes, mostly to the new
2731 GLR writeups. E.g., avoid frenchspacing and the future tense,
2732 change "lookahead" to "look-ahead", and change "wrt" to "with
2733 respect to".
2fa09258 2734
fa7e68c3
PE
27352004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
2736
2737 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
2738 New sections, split off from the GLR Parsers section. Put the new
2739 Simple GLR Parser near the start of the GLR section, for clarity.
2740 Rewrite connective text.
2741
99a9344e
PE
27422004-06-21 Frank Heckenbach <frank@g-n-u.de>
2743
2744 * doc/bison.texinfo (Simple GLR Parsers): New section.
2745
8dd162d3
PE
27462004-06-21 Paul Eggert <eggert@cs.ucla.edu>
2747
2748 * NEWS, TODO, doc/bison.texinfo:
2749 Use "look-ahead" instead of "lookahead", to be consistent.
2750 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
2751 while we're fixing "look-ahead".
2752 * src/conflicts.c (shift_set): Renamed from shiftset.
2753 (look_ahead_set): Renamed from lookaheadset.
2754 * src/print.c: Likewise.
2755 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
2756 name for "lookahead".
2757 (report_types, usage): Likewise.
2758 * src/getargs.h (report_look_ahead_tokens): Renamed from
2759 report_lookaheads.
2760 * src/lalr.c (compute_look_ahead_tokens): Renamed from
2761 compute_lookaheads.
2762 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
2763 (look_ahead_tokens_print): Renamed from lookaheads_print.
2764 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
2765 state_rule_lookaheads_print.
2766 * src/state.h: Likewise.
2767 (reductions.look_ahead_tokens): Renamed from lookaheads.
2768 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
2769 AT_DATA_LOOKAHEADS_GRAMMAR.
2770
57a90331
PE
27712004-06-03 Paul Eggert <eggert@cs.ucla.edu>
2772
2773 * README: Update location of patched M4 distribution.
2774
8ed3234a
PE
27752004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
2776
2777 Don't assume the C++ compiler takes the same arguments as the C compiler
2778 (trivial change).
2779 * configure.ac (O0CXXFLAGS): New var.
2780 * tests/atlocal.in (CXXFLAGS): Use it.
2781
07971983
PE
27822004-05-29 Paul Eggert <eggert@cs.ucla.edu>
2783
2784 Fix some "make check" problems with C++ reported by
2785 Albert Chin-A-Young for Tru64 C++ in this thread:
2786 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
2787
2788 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
2789 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
2790 Output to a .cc file for C++, not to a .c file.
2791 * tests/calc.at (AT_CHECK_CALC): Likewise.
2792 * tests/regression.at (AT_CHECK_DANCER): Likewise.
2793 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
2794
29058652
PE
27952004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
2796
2797 * tests/calc.at, tests/actions.at: Workaround for SGI
2798 C++ compiler. (trivial change)
2799
62cb8a99
PE
28002004-05-27 Paul Eggert <eggert@cs.ucla.edu>
2801
fd418816
PE
2802 Spent a few hours checking out which prerequisite versions the
2803 current sources actually require. I went all the way back to
2804 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
2805 a seemingly endless set of combinations of versions more recent
2806 than that. The bottom line is that the current sources require
2807 fairly recent versions of the build tools, and it'll be some work
2808 to change this.
2809 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
2810 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
2811 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
2812 Add comments explaining why those particular versions are
2813 currently needed.
2fa09258 2814
62cb8a99
PE
2815 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
2816 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
161a71f3 2817 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
62cb8a99
PE
2818
2819 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
2820 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
2821
caa52c10
PE
28222004-05-26 Paul Eggert <eggert@cs.ucla.edu>
2823
2824 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
2825 0.11.5. Suggested by Bruno Haible.
2826 * bootstrap: Remove gettext version checking.
2827
2828 * doc/bison.texinfo (Decl Summary): Also mention that %union
2829 can depend on prerequisite types. Problem reported by Tim
2830 Van Holder.
2831
4bfd5e4e
PE
28322004-05-25 Paul Eggert <eggert@cs.ucla.edu>
2833
2cef3017
PE
2834 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
2835 * README-alpha: Don't tell people not to package this.
2836
b9c85d5c
PE
2837 * bootstrap: Don't assume $(...) works; use `...` instead.
2838 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
2839 gettext better.
2840
4bfd5e4e
PE
2841 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
2842 put into the -d output file, and mention what to do if YYSTYPE is
2843 defined as a macro.
2844
6a36ff94
PE
28452004-05-24 Paul Eggert <eggert@cs.ucla.edu>
2846
6712933e
PE
2847 Undo change made earlier today: it caused autopoint to not bring
2848 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
2849 autopoint's.
2850
2851 * bootstrap: Check that gettext version matches what's in
2852 configure.ac. Warn users to ignore robots.txt ERROR 404.
2853 * bootstrap: Undo today's earlier change (logged below).
2854 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
b9c85d5c 2855
6a36ff94
PE
2856 The gettext version checking is causing more trouble than it's
2857 curing; remove it. Problem reported by Paul Hilfinger.
2858
2859 * bootstrap: Issue a warning that one can expect a message
2860 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
2861 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
2862
209ea708
PE
28632004-05-23 Paul Eggert <eggert@cs.ucla.edu>
2864
2865 Ensure that the C++ compiler used for testing actually works on a
2866 simple test program; if not, skip the C++-related tests. Problem
2867 reported by Vin Shelton in:
161a71f3 2868 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
209ea708
PE
2869
2870 * m4/cxx.m4: New file.
2871 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
2872 * tests/atlocal.in (BISON_CXX_WORKS): Add.
2873 * tests/local.at (AT_COMPILE_CXX): Use it.
2874
41ca2549
PE
28752004-05-21 Paul Eggert <eggert@cs.ucla.edu>
2876
383e69dc
PE
2877 * data/glr.c (yylloc): Output this macro even if locations are not
2878 being generated, as the GLR parser needs it even in that case.
2879 Problem reported by Troy A. Johnson
2880 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
2881
41ca2549
PE
2882 * configure.ac (AC_INIT): Update to 1.875e.
2883
e476c87d
PE
28842004-05-21 Paul Eggert <eggert@cs.ucla.edu>
2885
2886 * NEWS: Version 1.875d.
2887 * configure.ac (AC_INIT): Likewise.
2888 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
2889
2890 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
2891 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
2892 lalr1.cc runs afoul of the first, and the last two are no longer
2893 supported by GCC 3.4.0.
2894 * README: Mention GNU m4 1.4 or later; mention m4 patches.
2895 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
2896
233a88ad
PE
28972004-05-06 Paul Eggert <eggert@cs.ucla.edu>
2898
2899 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
2900 unsigned int, for compatibility with latest gnulib hash module.
2901 * src/state.c (state_hash, state_hasher): Likewise.
2902 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
2903 * src/uniqstr.c (hash_uniqstr): Likewise.
e476c87d 2904
12ffdd28
PE
29052004-05-03 Paul Eggert <eggert@cs.ucla.edu>
2906
2907 * NEWS: Unescaped newlines are no longer allowed in char & strings.
2908
2909 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
2910 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
2911 character and string literals.
2912 (unexpected_end): New function.
2913 (unexpected_eof): Use it.
2914 (unexpected_newline): New function.
2915 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
2916 actions.
e476c87d 2917
12ffdd28
PE
2918 * NEWS: Document %expect-rr.
2919
2920 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
2921 Fix typo by replacing $1 with $option.
2922 Remove more 'intl'-related files.
9668e2be 2923 Don't DEFUN AM_INTL_SUBDIR twice.
12ffdd28
PE
2924
2925 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
2926 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
2927 strtoul.c.
2928 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
2929 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
2930 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
2931 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
2932 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
2933 * src/.cvsignore: Add *.output.
2934
2935 * src/parse-gram.y: Put copyright notice inside %{ %} so it
2936 gets copied to the output file.
e476c87d 2937
1f65350a
PE
29382004-04-28 Paul Eggert <eggert@twinsun.com>
2939
2940 Get files from the gnulib and po repositories, instead of relying
2941 on them being in our CVS. Upgrade to latest versions of gnulib
2942 and Automake.
2943
2944 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
2945 * bootstrap: Bootstrap from gnulib and po repositories.
2946 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
2947 * README-cvs: Document these changes. Remove version numbers from
2948 mentions of build tools, since they change so often. Mention Flex.
2949
2950 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
2951 (gl_USE_SYSTEM_EXTENSIONS): Add.
12ffdd28
PE
2952 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
2953 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1f65350a 2954 does this for us.
12ffdd28
PE
2955 (AC_ISC_POSIX): Remove; we no longer support this
2956 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1f65350a
PE
2957 (AC_HEADER_STDC): Remove: we now assume C89 or better.
2958 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
2959 Do not check for C89 headers, except for locale.h which is used
2960 by the Yacc library and must port to K&R hosts.
2961 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
2962 Do not check for C89 functions, except for setlocale which is
2963 used by the Yacc library.
2964 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
2965 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
2966 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
2967 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
2968 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
2969 AM_GNU_GETTEXT): Remove; now done by:
2970 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
2971 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
2972 for us.
2973
2974 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
2975 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
2976 Define to empty, as gnulib.mk will do the rest for us.
2977 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
2978 for us.
2979 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
2980 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
2981
2982 * src/files.c: Include gnulib's xstrndup.h.
2983
2984 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
2985 (REALLOC): Use xnrealloc, for likewise.
2986 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
2987 (strnlen, memrchr): Remove decls; functions no longer used.
2988 Include <stpcpy.h>.
2989
2990 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
2991 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
2992 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
2993 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
2994 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
2995 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
2996 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
2997 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
2998 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
2999 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
3000 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
3001 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
3002 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
3003 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
3004 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
3005 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
3006 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
3007 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
3008 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
3009 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
3010 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
3011 Remove, as these files are now generated automatically
3012 by bootstrap or automake.
3013
3014 * po/ChangeLog: Remove: all but one entry was a duplicate
3015 of this file, and I moved that 2000-11-02 entry here.
3016
3017 * config/.cvsignore: Add Makefile, depcomp, install-sh.
3018 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
3019 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
3020 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
3021 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
3022 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
3023 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
3024 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
3025 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
3026 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
3027 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
3028 xstrndup.h.
3029 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
3030 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
3031 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
3032 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
3033 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
3034 * src/.cvsignore: Remove *_.c.
3035
3036
3037 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
3038 support it. (The latest stable gzip doesn't.)
3039
30402004-04-27 Paul Eggert <eggert@twinsun.com>
3041
3042 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
3043 case, as stos_ is now used by destructors due to the 2004-02-09
3044 change.
3045
3046 Remove more K&R C support.
3047 * lib/libiberty.y (PARAMS): Remove. All uses removed.
3048 * lib/subpipe.c (errno): Remove decl.
3049 Include <stdlib.h> unconditionally.
3050 (EXIT_FAILURE): Remove macro.
3051 * src/complain.c (vfprintf, strerror): Remove.
3052 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
3053 unconditionally.
3054 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
3055 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
3056 (strchr, strspn, memchr): Remove decls.
3057 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
3058 unconditionally. Do not declare perror.
3059 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
3060 unconditionally.
3061
3062 * src/complain.c (_): Remove useless defn, as system.h defines this.
3063
3064 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
3065 with latest obstack.h.
3066 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
3067 to procedure types, as obstack.h now does that for us.
3068 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
3069
3070 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
3071 so that this include file can stand alone.
3072 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
3073 does this now. Include subpipe.h first after config.h, to
3074 test whether it can stand alone.
3075
3076 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
3077 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
3078 unused declaration.
3079
3080 * tests/synclines.at (%union synch line): Put a dummy member in
3081 the union, because empty unions aren't allowed in C. Caught
3082 by GCC 3.4.0.
3083
4f16766c
PE
30842004-04-13 Jim Meyering <jim@meyering.net>
3085
3086 * src/conflicts.c (conflicts_print): Correct format string typo:
3087 use `%%' to produce literal `%'. (trivial change)
3088
779e7ceb
PE
30892004-03-30 Paul Eggert <eggert@twinsun.com>
3090
3091 * src/getargs.c (version): Update copyright year to 2004.
3092
3093 * data/c.m4 (b4_int_type): Use 'short int' rather than
3094 'short', and similarly for 'long', 'unsigned', etc.
3095 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
3096 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
3097 yy_yypstack, yydumpstack): Likewise.
3098 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
3099 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
3100 Likewise.
3101 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
3102 yy_stack_print, yyparse): Likewise.
3103 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
3104 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
3105 * lib/bitset.c (bitset_print): Likewise.
3106 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
3107 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
3108 * lib/bitsetv.c (bitsetv_dump): Likewise.
3109 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
3110 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
3111 Likewise.
3112 * src/LR0.c (allocate_itemsets): Likewise.
3113 * src/gram.h (rule_number, rule): Likewise.
3114 * src/lalr.h (goto_number): Likewise.
3115 * src/nullable.c (nullable_compute): Likewise.
3116 * src/output.c (prepare_rules): Likewise.
3117 * src/relation.c (relation_print, relation_digraph): Likewise.
3118 * src/relation.h (relation_node): Likewise.
3119 * src/state.h (state_number, transitions, errs, reductions,
3120 struct state): Likewise.
3121 * src/symtab.h (symbol_number, struct symbol): Likewise.
3122 * src/tables.c (vector_number, tally, action_number,
3123 default_goto, goto_actions): Likewise.
3124 * tests/existing.at (GNU Cim Grammar): Likewise.
3125 * tests/regression.at (Web2c Actions): Likewise.
3126
3127 * src/output.c (muscle_insert_short_int_table): Renamed from
3128 muscle_insert_short_table. All uses changed.
3129
d6328241
PH
31302004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
3131
3132 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
3133 (declaration): Replace expected_conflicts with expected_sr_conflicts.
3134 Add %expect-rr rule.
4f16766c 3135
d6328241
PH
3136 * src/scan-gram.l: Recognize %expect-rr.
3137
4f16766c 3138 * src/conflicts.h (expected_sr_conflicts): Rename from
d6328241 3139 expected_conflicts.
4f16766c 3140 (expected_rr_conflicts): Declare.
d6328241
PH
3141
3142 * src/conflicts.c (expected_sr_conflicts): Rename from
3143 expected_conflicts.
3144 (expected_rr_conflicts): Define.
3145 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
3146 for GLR parsers.
3147 Use expected_sr_conflicts in place of expected_conflicts.
3148 Warn if expected_rr_conflicts used in non-GLR parser.
4f16766c 3149
d6328241 3150 * doc/bison.texinfo: Add documentation for %expect-rr.
4f16766c 3151
1452af69
PE
31522004-03-08 Paul Eggert <eggert@gnu.org>
3153
3154 Add support for hex token numbers. Suggested by Odd Arild Olsen in
161a71f3 3155 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
1452af69
PE
3156
3157 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
3158 in lalr1.cc.
3159 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
3160 * src/scan-gram.l (scan_integer): New function.
3161 ({int}): Use it.
3162 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
3163 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
3164 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
3165 Say "long int", not "long", for uniformity with GNU style.
3166
006d217d
PE
31672004-02-25 Paul Eggert <eggert@twinsun.com>
3168
3169 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
3170 compilers. This fixes a problem with Intel's C++ compiler being
3171 chatty, reported by Guido Trentalancia in
161a71f3 3172 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
006d217d 3173
c2729758
ADL
31742004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
3175
3176 Support %destructor and merge error locations in lalr1.cc.
3177
3178 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
3179 (Parser::stos_): Define unconditionally.
3180 (Parser::destruct_): New method. Generate its body with
3181 b4_yydestruct_generate.
3182 (Parser::error_start_): New attribute.
3183 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
3184 token which are discarded.
3185 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
3186 error_start_ when erroneous token are discarded.
3187 (Parser::parse) <yyerrlab1>: Compute the location of the error
3188 token so that it covers all the discarded tokens.
3189 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
3190 it can be called with `%skeleton "lalr1.cc"', and do that.
3191
dd0e0635
PE
31922004-02-02 Paul Eggert <eggert@twinsun.com>
3193
3194 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
3195 $(top_srcdir)/lib and ../lib. This fixes a bug reported
3196 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
3197 There's no need to mention top_builddir since Automake does that
3198 for us.
3199 (INCLUDES): Remove, as Automake says it's obsolescent.
3200 Contents migrated into AM_CPPFLAGS as described above.
3201 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
3202
32032004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
3204
3205 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
3206 (yyreportSyntaxError): Handle case where lookahead token is
3207 YYEMPTY.
3208
be16239b
PH
32092004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3210
3211 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
3212 resulting parsers are compilable with C++.
3213
5fa90832
PE
32142003-12-23 Paul Eggert <eggert@twinsun.com>
3215
3216 * config/depcomp, config/install-sh: Sync with Automake 1.8.
3217 * src/output.c (output_skeleton): Rename local var.
3218 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
3219 Bison tokens, as this runs afoul of the 2003-10-07 change that
3220 disallowed NUL bytes in character constants or string literals.
3221
3222 * tests/local.at: Require Autoconf 2.59's Autotest.
3223 * tests/testsuite.at: Don't include local.at, since we now assume
3224 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
3225 including it.
3226 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
3227 multiple inclusion warnings.
dd0e0635 3228
b165c324
AD
32292003-12-02 Akim Demaille <akim@epita.fr>
3230
3231 * doc/bison.texinfo (How Can I Reset the Parser): More about start
3232 conditions.
3233 From Bruno Haible.
3234
26e06a21
ADL
32352003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
3236
3237 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
3238
92ac3705
PE
32392003-10-07 Paul Eggert <eggert@twinsun.com>
3240
6a5ecb38
PE
3241 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
3242 if testsuite doesn't exist.
3243
92ac3705
PE
3244 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
3245 literals, unfortunately.
3246 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
3247 Complain about NUL bytes in character constants or string literals.
3248
91d2c560
PE
32492003-10-05 Paul Eggert <eggert@twinsun.com>
3250
3251 * NEWS: Don't document %no-default-prec, as it's still
3252 too experimental.
3253 * doc/bison.texinfo: Document %no-default-prec only if
3254 the defaultprec flag is set. Normally it's not.
3255
0cc3da3a
PE
32562003-10-04 Paul Eggert <eggert@twinsun.com>
3257
3258 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
3259 non-modifiable lvalue, instead of a modifiable one.
3260 * doc/bison.texinfo (Actions): Document that $$ can
3261 be assigned to. Do not claim that $$ and $N are
3262 array element references: user code should not rely on this.
3263
22fccf95
PE
32642003-10-01 Paul Eggert <eggert@twinsun.com>
3265
3266 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
3267 (grammar_declaration): Use it.
3268 * src/scan-gram.l: New token %no-default-prec.
3269 * tests/conflicts.at: Revamp tests to use %no-default-prec.
3270 * NEWS, doc/bison.texinfo: Document the above.
3271
fc8f2965
AD
32722003-10-01 Akim Demaille <akim@epita.fr>
3273
3274 VCG no longer supports long_straight_phase.
3275
3276 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
3277 * src/print_graph.c (print_graph): Adjust.
3278
39a06c25
PE
32792003-09-30 Frank Heckenbach <frank@g-n-u.de>
3280 and Paul Eggert <eggert@twinsun.com>
3281
3282 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
3283 Table of Symbols): Document %default-prec.
3284 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
3285 (grammar_declaration): Set default_prec on %default-prec.
3286 * src/scan-gram.l (%default-prec): New token.
3287 * src/reader.h (default_prec): New flag.
3288 * src/reader.c: Likewise.
3289 (packgram): Handle it.
3290 * tests/conflicts.at (%default-prec without %prec,
3291 %default-prec with %prec, %default-prec 1): New tests.
fc8f2965 3292
39a06c25
PE
32932003-09-30 Paul Eggert <eggert@twinsun.com>
3294
3295 * tests/testsuite.at: Include local.at, not input.at, fixing
3296 a typo in the 2003-08-25 patch.
3297
62b6aef9
AD
32982003-08-27 Akim Demaille <akim@epita.fr>
3299
3300 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
3301 GCC warnings.
3302
89e1cc61
AD
33032003-08-26 Akim Demaille <akim@epita.fr>
3304
3305 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
3306 "<\#" to avoid magic from Gnus when posting parts of this script.
3307
a08460b0
AD
33082003-08-26 Akim Demaille <akim@epita.fr>
3309
3310 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
3311 (Parser::parse): here.
3312 Adjust: nerrs and errstatus is now replaced by...
3313 (Parser::nerrs_, Parser::errstatus_): New.
3314
603f1cfd
AD
33152003-08-25 Akim Demaille <akim@epita.fr>
3316
3317 * config/announce-gen, Makefile.cfg: New.
3318 * Makefile.am: Adjust.
3319 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
3320 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
3321
cd3684cf
AD
33222003-08-25 Akim Demaille <akim@epita.fr>
3323
3324 When reducing initial empty rules, Bison parser read an initial
3325 location that is not defined. This results in garbage, and that
3326 affects Bison's own parser. Therefore we need (i) to extend Bison
3327 to support a means to initialize this location, and (ii) to use
3328 this CVS Bison to fix CVS Bison's parser.
3329
3330 * src/reader.h, reader.c (epilogue_augment): Remove, replace
3331 with...
3332 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
3333 * src/parse-gram.y: Adjust.
3334 (%initial-action): New.
3335 (%error-verbose): Since we require CVS Bison, there is no reason
3336 not to use it.
3337 * src/scan-gram.l: Adjust.
3338 * src/Makefile.am (YACC): New, to make sure we use our own parser.
3339 * data/yacc.c (yyparse): Use b4_initial_action.
3340
4e03e201
AD
33412003-08-25 Akim Demaille <akim@epita.fr>
3342
3343 * doc/bison.texinfo: Don't promote stdout for error messages.
3344
8c182d05
AD
33452003-08-25 Akim Demaille <akim@epita.fr>
3346
3347 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
3348 From Alexandre Duret-Lutz.
3349
6a60c4cf
PE
33502003-08-25 Akim Demaille <akim@epita.fr>
3351
3352 Version 1.875c.
3353
25f66e1a
AD
33542003-08-25 Akim Demaille <akim@epita.fr>
3355
3356 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
3357 Use them.
3358
5348bfbe
AD
33592003-08-25 Akim Demaille <akim@epita.fr>
3360
3361 * data/lalr1.cc (Parser::reduce_print_): New.
3362 Use it.
3363
47301314
AD
33642003-08-25 Akim Demaille <akim@epita.fr>
3365
3366 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
3367 error recovery loops. This patch is based on
161a71f3 3368 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
47301314
AD
3369 Also, augment the similarity between lalr1.cc and yacc.c.
3370 Note: the locations of error recovery rules are not correct yet.
3371
3372 * data/lalr1.cc: Comment changes to augment the similarity between
3373 lalr1.cc and yacc.c.
3374 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
3375 (yyerrlab1): Remove, but where it used to be (now the bottom part of
3376 yyerrlab), when hitting EOF, pop the whole stack here instead of
3377 merely falling thru the default error handling mechanism.
3378 (yyerrorlab): New label, with the old contents of YYERROR,
3379 plus the following change: pop the stack of rhs corresponding
3380 to the production that invoked YYERROR. That is how Yacc
3381 behaves (required by POSIX).
3382 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
3383 fail.
3384
1f7a61ff
AD
33852003-08-25 Akim Demaille <akim@epita.fr>
3386
3387 Tune local.at so that people can "autom4te -l autotest calc.at -o
3388 calc" for instance, to extract a sub test suite.
3389
3390 * tests/testsuite.at: Move the initialization, Autotest version
3391 requirement, and AT_TESTED invocation into...
3392 * tests/local.at: here.
3393 * tests/testsuite.at: Include it for compatibility with Autoconf
3394 2.57.
3395 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
3396 be ignore.
3397
327b5b56
PE
33982003-08-04 Paul Eggert <eggert@twinsun.com>
3399
3400 Rework code slightly to avoid gcc -Wtraditional warnings.
3401 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
3402 The returned value is now stored in *YY0. All callers changed.
3403 * src/output.c (merge_output): Adjust to the above change.
3404
0051e3ed
PE
34052003-07-26 Paul Eggert <eggert@twinsun.com>
3406
3407 * data/glr.c (YYASSERT): New macro.
3408 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
3409 yyresolveStates, yyprocessOneStack):
3410 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
3411 Derived from a suggestion by Frank Heckenbach.
1f7a61ff 3412
137437c6
PE
34132003-07-25 Paul Eggert <eggert@twinsun.com>
3414
5b620e06
PE
3415 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
3416 for portability to K&R C (after ansi2knr, presumably). See
161a71f3 3417 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
5b620e06
PE
3418 by Frank Heckenbach, though I have omitted the structure-initialization
3419 part of his glr-knr.diff patch since I recall that the Portable
3420 C Compiler didn't require that change.
3421
137437c6
PE
3422 Let the user specify how to allocate and free memory.
3423 Derived from a suggestion by Frank Heckenbach in
161a71f3 3424 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
137437c6
PE
3425 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
3426 All uses of free, malloc, realloc changed to use these macros,
3427 and unnecessary casts removed.
3428 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
3429
ddb85ca5
PE
34302003-07-06 Matthias Mann <MatthiasMann@gmx.de>
3431
3432 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
3433 use s.empty() rather than s == "" to test for empty string; see
161a71f3 3434 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
ddb85ca5
PE
3435 (trivial change)
3436
39910e09
AD
34372003-06-25 Akim Demaille <akim@epita.fr>
3438
3439 * config/depcomp, config/install-sh: Update from masters.
3440
0ae99356
PE
34412003-06-20 Paul Eggert <eggert@twinsun.com>
3442
3443 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
3444 and return properly parenthesized result.
3445 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
3446 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
3447 Remove unnecessary parentheses from uses.
3448 * doc/bison.texinfo (Location Default Action): Describe the
3449 conventions for parentheses.
3450
cd05d13c
PE
34512003-06-19 Paul Eggert <eggert@twinsun.com>
3452
81fd08ca
PE
3453 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
3454 yyreportTree): Do not assume that size_t is the same width as int,
3455 when printing sizes. Print sizes using an unsigned format.
3456 Problem reported by Frank Heckenbach in
161a71f3 3457 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
4dcf140b 3458
cd05d13c
PE
3459 Port to Forte Developer 7 C compiler.
3460 * data/glr.c (struct YYLTYPE): If locations are not being used,
3461 declare a single dummy member, as empty structs do not conform
3462 to the C standard.
3463 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
3464 the Forte Developer 7 C compiler complains that end-of-loop
3465 code is not reached.
3466
4dcf140b
PE
34672003-06-17 Paul Eggert <eggert@twinsun.com>
3468
3469 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
3470 avoid warnings from picky compilers about redefinition of PARAMS.
3471
8dd76bee
PE
34722003-06-17 Paul Eggert <eggert@twinsun.com>
3473
3474 Version 1.875b.
3475
3476 * NEWS: Document 1.875b.
3477
3478 * lib/bbitset.h: Do not include config.h; that's the includer's job.
3479 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
3480 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
3481 Don't use 'index' in comments, as it's a builtin fn on some hosts.
3482 * lib/bitset_stats.c: Include gettext.h unconditionally, as
3483 per recent gettext manual's suggestion.
3484 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
3485 Use prototypes, not old-style definitions.
3486 * lib/lbitset.c (lbitset_unused_clear): Likewise.
3487 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
3488 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
3489 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
3490 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
3491 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
3492 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
3493 vbitset_or_and_cmp, vbitset_copy): Likewise.
3494
3495 * lib/libiberty.h: Do not include config.h; that's the includer's job.
3496 Do not include <stdlib.h>.
3497 (PARAMS): Define unconditionally for C89.
3498 (ATTRIBUTE_NORETURN): Remove.
3499 (ATTRIBUTE_UNUSED): Define unconditionally.
3500
3501 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
161a71f3 3502 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
8dd76bee
PE
3503 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
3504 * lib/vbitset.c, lib/vbitset.h: New files.
3505 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
3506 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
3507 from libbitset.
3508
3509 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
3510 `How Can I Reset @code{yyparse}', since texinfo does not allow
3511 arbitrary @ in node names.
3512
3513 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
3514 shouldn't be needed according to the gettext 0.12.1 documentation
3515 but which seem to be needed anyway: codeset.m4 glibc21.m4
f8e8262e 3516 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
8dd76bee 3517 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
f8e8262e 3518 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
cd05d13c 3519
8dd76bee
PE
3520 * lib/.cvsignore: Add stdbool.h.
3521 * m4/.cvsignore: Add nls.m4, po.m4.
3522
3523 Upgrade to CVS gnulib.
3524 * stdbool_.h: File renamed from stdbool.h.in.
3525 * configure.ac (AM_STDBOOL_H): Invoke this instead of
3526 AC_HEADER_STDBOOL.
3527 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
3528 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
3529 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
3530 (MOSTLYCLEANFILES): New var.
3531 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
3532 (stdbool.h): New rule.
3533 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
3534 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
3535 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
3536 m4/quote.m4: Upgrade to today's gnulib.
3537
3538 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
3539 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
3540 the tests right now.
3541 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
3542 yyerror are declared before use; C99 requires this.
3543
25005f6a
PH
35442003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3545
3546 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
3547 first.
3548 (yyrecoverSyntaxError): Correct the logic for setting and testing
3549 yyerrState.
3550 Correct comment on handling EOF.
3551 Allow states with only a default reduction, rather than failing
8dd76bee 3552 (I can't quite reconstruct why these were not allowed before).
25005f6a 3553
137437c6 3554 Fixes to avoid problem that $-N rules in GLR parsers can cause
25005f6a 3555 buffer overruns, corrupting state.
8dd76bee
PE
3556
3557 * src/output.c (prepare_rules): Output max_left_semantic_context
25005f6a
PH
3558 definition.
3559 * src/reader.h (max_left_semantic_context): New variable declaration.
3560 * src/scan-gram.l (max_left_semantic_context): Define.
3561 (handle_action_dollar): Update max_left_semantic_context.
3562 * data/glr.c (YYMAXLEFT): New definition.
3563 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
3564 (yyresolveAction): Ditto.
3565
3566 Fixes to problems with location handling in GLR parsers reported by
3567 Frank Heckenbach (2003/06/05).
3568
3569 * data/glr.c (YYLTYPE): Make trivial if locations not used.
3570 (YYRHSLOC): Add parentheses, and define only if locations used.
3571 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
3572 locations not used.
3573 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
3574 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
8dd76bee 3575
25005f6a
PH
3576 * tests/cxx-type.at: Exercise location information; update tests
3577 to differentiate output with and without locations.
8dd76bee 3578 Remove forward declarations of yylex and yyerror---caused errors
25005f6a
PH
3579 because default YYLTYPE not yet defined.
3580 Change semantic actions to compute strings, rather than printing
3581 them directly (to test proper passing of semantics values). Change
3582 output to prefix notation and update test data and expected results.
3583 (yylex): Track locations.
3584 (stmtMerge): Return value rather than printing, and include arguments
3585 in value.
8dd76bee 3586
711f40b7
PE
35872003-06-03 Paul Eggert <eggert@twinsun.com>
3588
3589 Avoid warnings generated by GCC 2.95.4 when Bison is
3590 configured with --enable-gcc-warnings.
3591 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
3592 yy::]b4_parser_class_name[::translate_,
3593 yy::Stack::operator[] (unsigned),
3594 yy::Stack::operator[] (unsigned) const,
3595 yy::Slice::operator[] (unsigned),
3596 yy::Slice::operator[] (unsigned) const):
3597 Rename local vars to avoid warnings.
3598 * tests/glr-regression.at (Improper handling of embedded actions
3599 and $-N in GLR parsers): Remove unused local variable from yylex.
3600 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
3601 (void) as arg when not pure, since we now assume C89 when building
3602 Bison. Pacify GCC by using parameter.
3603
ac695f7d
PE
36042003-06-02 Paul Eggert <eggert@twinsun.com>
3605
3606 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
3607 yy::Location::lines, yy::Location::columns): Rename arguments
3608 to avoid shadowing; this removes a warning generated by GCC 3.3.
3609
26ec81e0
PE
36102003-06-01 Paul Eggert <eggert@twinsun.com>
3611
3612 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
3613 to g++, as GCC 3.3 complains if you do it.
3614 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
3615 everything that WARNING_CFLAGS has, except omit warnings
3616 not suitable for C++.
3617 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
3618 * tests/atlocal.in (CXXFLAGS): New var.
3619 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
3620
3621 Fix a GLR parser bug I reported in February; see
161a71f3 3622 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
26ec81e0
PE
3623 The problem was that GLR parsers did not conform to the C standard,
3624 because actions like { $1 = $2 + $3; } expanded to expressions
3625 that invoked YYFILL in separate subexpressions, and YYFILL assigned
3626 to a local variable. The C standard says that expressions
3627 like (var = f ()) + (var = f ()) have undefined behavior.
3628 Another problem was that GCC sometimes issues warnings that
3629 yyfill and its parameters are unused.
3630
3631 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
3632 as possibly unused.
3633 (yyfill): New function.
3634 (YYFILL): Use it.
3635 (yyuserAction): Change type of yynormal to bool, so that it matches
3636 the new yyfill signature. Mark it as possibly unused.
3637
3638
3639 Follow up on a bug I reported in February, where a Bison-generated
3640 parser can loop. Provide a test case and a fix for yacc.c. I
3641 don't have a fix for lalr1.cc or for glr.c, unfortunately.
3642 The original bug report is in:
161a71f3 3643 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
26ec81e0
PE
3644
3645 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
3646 macro's size was becoming unwieldy.
3647 (yyerrlab): Do not discard an empty lookahead symbol, as this
3648 might destroy garbage.
3649 (yyerrorlab): New label, with the old contents of YYERROR,
3650 plus the following change: pop the stack of rhs corresponding
3651 to the production that invoked YYERROR. That is how Yacc
3652 behaves, and POSIX requires this behavior.
3653 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
3654 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
3655 Define 'alarm' to do nothing if unistd.h is not available.
3656 Add a new rule "exp: '-' error;" to test the above change to
3657 data/yacc.c. Use 'alarm' to abort any test taking longer than
3658 10 seconds, as it's probably looping.
3659 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
3660 Also, the new yacc.c generates two fewer diagnostics for an
3661 existing test.
3662
d0829076
PE
36632003-05-24 Paul Eggert <eggert@twinsun.com>
3664
c6ae27df
PE
3665 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
3666 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
3667 This fixes a problem reported by John Bowman when the Compaq/HP
3668 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
3669 -ansi -Wall -gall).
3670 * data/yacc.c (union yyalloc): Likewise.
3671 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
26ec81e0 3672
d0829076
PE
3673 Switch from 'int' to 'bool' where that makes sense.
3674
3675 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
3676 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
3677 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
3678 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
3679 Return or accept bool, not int. All callers changed.
3680 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
3681 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
3682 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
3683 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
3684 bitset_or_and_cmp_): Likewise.
3685 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
3686 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
3687 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
3688 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
3689 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
3690 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
3691 bitset_stats_or_and_cmp): Likewise.
3692 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
3693 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
3694 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
3695 ebitset_xor_cmp): Likewise.
3696 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
3697 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
3698 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
3699 lbitset_xor_cmp): Likewise.
3700 * lib/bbitset.h: Include <stdbool.h>.
3701 (struct bitset_vtable): The following members now return bool, not
3702 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
3703 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
3704 or_and_cmp).
3705 * src/conflicts.c (count_rr_conflicts): Likewise.
3706 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
3707 All uses changed.
3708 * lib/ebitset.c (ebitset_obstack_init): Likewise.
3709 * lib/lbitset.c (lbitset_obstack_init): Likewise.
3710 * src/getargs.c (debug_flag, defines_flag, locations_flag,
3711 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
3712 graph_flag): Likewise.
3713 * src/getargs.h (debug_flag, defines_flag, locations_flag,
3714 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
3715 graph_flag): Likewise.
3716 * src/output.c (error_verbose): Likewise.
3717 * src/output.h (error_verbose): Likewise.
3718 * src/reader.c (start_flag, typed): Likewise.
3719 * src/reader.h (typed): Likewise.
3720 * src/getargs.c (LOCATIONS_OPTION): New constant.
3721 (long_options, getargs): Use it.
3722 * src/lalr.c (build_relations): Use bool, not int.
3723 * src/nullable.c (nullable_compute): Likewise.
3724 * src/print.c (print_reductions): Likewise.
3725 * src/tables.c (action_row, pack_vector): Likewise.
3726 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
3727 * src/output.c (prepare): Use it.
3728 * src/output.c (token_definitions_output,
3729 symbol_destructors_output, symbol_destructors_output): Use string,
3730 not boolean integer, to keep track of whether to output separator.
3731 * src/print_graph.c (print_core): Likewise.
3732 * src/state.c (state_rule_lookaheads_print): Likewise.
3733
3734 * config/install-sh: Sync from automake 1.7.5.
3735
6b2584b7
PE
37362003-05-14 Paul Eggert <eggert@twinsun.com>
3737
3738 * src/parse-gram.y (rules_or_grammar_declaration): Require a
3739 semicolon after a grammar declaration, in the interest of possible
3740 future changes to the Bison input language.
3741 Do not allow a stray semicolon at the start of the grammar.
3742 (rhses.1): Allow one or more semicolons after any rule, including
3743 just before "|" as required by POSIX.
3744 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
3745 grammar.
3746
caf37a36
ADL
37472003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
3748
3749 %parse-param support for lalr1.cc.
3750
3751 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
3752 b4_cc_constructor_calls, b4_cc_constructor_call,
3753 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
3754 definitions.
3755 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
3756 parse-param arguments.
3757 (yy::b4_parser_class_name): Declare instance variables to
3758 hold parse-param arguments.
3759 * tests/calc.at: s/value/semantic_value/ because value clashes
3760 with a member of yy::b4_parser_class_name. Adjust C++ code
3761 to handle %parse-param. Enable %parse-param test in C++.
3762
3ab37077
PE
37632003-05-12 Paul Eggert <eggert@twinsun.com>
3764
3765 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
3766 English a bit. Fix fclose typo. Change "const char" to "char
3767 const", and use ANSI C rather than K&R for "main". Suggest
3768 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
3769 and suggest yy_switch_to_buffer.
3770
37712003-05-05 Paul Eggert <eggert@twinsun.com>
163ab321
PE
3772
3773 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
3774 C89. This avoids a diagnostic on compilers that define __STDC__
3775 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
161a71f3 3776 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
163ab321 3777
e743727f
PE
37782003-05-03 Paul Eggert <eggert@twinsun.com>
3779
3780 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
3781 Do not overrun array bounds.
3782 This should fix a bug reported today by Olatunji Oluwabukunmi in
161a71f3 3783 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
e743727f 3784
916708d5
AD
37852003-04-29 Akim Demaille <akim@epita.fr>
3786
3787 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
3788 * src/getargs.c, src/getargs.h: here, as bool, not int.
3789 (nondeterministic_parser): New.
3790 * src/parse-gram.y, src/scan-gram.l: Support
3791 %nondeterministic-parser.
3792 * src/output.c (prepare): Use nondeterministic_parser instead
3793 of glr_parser where appropriate.
3794 * src/tables.c (conflict_row, action_row, save_row)
3795 (token_actions, token_actions, pack_vector): Ditto.
3796
a06ea4aa
AD
37972003-04-29 Akim Demaille <akim@epita.fr>
3798
3799 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
3800
211074ca
AD
38012003-04-29 Akim Demaille <akim@epita.fr>
3802
3803 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
3804 with %pure-parser and %locations to exercise the patch from Yakov
3805 Markovitch below.
3806
6175ffe3
PE
38072003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
3808
3809 * data/yacc.c: (b4_lex_param): Corrected for the case where
3810 %lex-param is provided and %pure-parser isn't.
3811
b1e95857
PE
38122003-04-27 Paul Eggert <eggert@twinsun.com>
3813
3814 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
161a71f3 3815 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
b1e95857
PE
3816 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
3817 if it is not defined.
3818 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
3819
acda9df6
PE
38202003-04-26 Paul Eggert <eggert@twinsun.com>
3821
3470c57b
PE
3822 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
3823 Declare to be of type suitable for the ninf value itself, not of
3824 type suitable for the corresponding table, since the latter might
3825 be unsigned but the ninf value might be negative. This fixes a
3826 bug reported by Alexandre Duret-Lutz in
161a71f3 3827 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
3470c57b 3828
acda9df6
PE
3829 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
3830 invokes it. We shouldn't invoke it twice because it will attempt
3831 to put error.o in the archive twice. This fixes a glitch reported
3832 by Martin Mokrejs in
161a71f3 3833 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
acda9df6 3834
b5250f26
PE
38352003-04-21 Paul Eggert <eggert@twinsun.com>
3836
3837 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
3838 to gnulib.
3839
089ac0f1
PE
38402003-04-21 Yakov Markovitch <Markovitch@iso.ru>
3841
3842 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
3843 Fix obvious typo that results in uncompilable GLR parsers
3844 when both %pure-parser and %locations are used. (trivial change)
3845
5ededac6
PE
38462003-04-17 Paul Eggert <eggert@twinsun.com>
3847
1b8f2fff
PE
3848 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
3849 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
3850 Do not insert the expected token via unput, as this runs afoul
3851 of a POSIX-compatibility bug in flex 2.5.31.
3852 All uses changed to BEGIN the parent state,
3853 since we no longer insert the expected token via unput.
3854 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
3855 that is no longer emitted after the above change.
3856
5ededac6
PE
3857 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
3858 the first one. This change is from Paul Hilfinger, and it fixes
3859 regression reported by Werner Lemberg in
161a71f3 3860 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
5ededac6
PE
3861
3862 (resolve_sr_conflict): Don't invoke state_errs_set
3863 unless one or more tokens have been explicitly made errors.
3864 Otherwise, the above change causes Bison to abort.
3865
3866 * tests/existing.at (GNU pic Grammar): New test case, taken from
3867 Lemberg's email.
3868
b8be9132
AD
38692003-03-31 Akim Demaille <akim@epita.fr>
3870
3871 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
3872
d423d460
AD
38732003-03-31 Akim Demaille <akim@epita.fr>
3874
3875 * src/output.c (prepare_symbols): Avoid trailing spaces in the
3876 output.
3877
c7e441b4
AD
38782003-03-31 Akim Demaille <akim@epita.fr>
3879
3880 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
3881 From Paul Hilfinger.
3882
231897ad
AD
38832003-03-29 Akim Demaille <akim@epita.fr>
3884
3885 * m4/error.m4: Do not put under dynamic conditions some code which
3886 expansion is under static control.
3887
5b066063
AD
38882003-03-29 Akim Demaille <akim@epita.fr>
3889
3890 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
3891
22a74fec
AD
38922003-03-29 Akim Demaille <akim@epita.fr>
3893
3894 * doc/bison.texinfo (Strings are Destroyed): New.
3895
0eee27e7
PE
38962003-03-13 Paul Eggert <eggert@twinsun.com>
3897
3898 * .cvsignore: Add configure.lineno.
3899 * src/.cvsignore: Add yacc.
3900 * tests/.cvsignore: Add testsuite.log.
3901 * doc/fdl.texi: Sync with latest FSF version.
3902
f61aad93
PE
39032003-03-12 Paul Eggert <eggert@twinsun.com>
3904
537636c7
PE
3905 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
3906 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
3907 cursor, instead of leaving it undefined. This fixes a bug
3908 reported by Tim Van Holder in
161a71f3 3909 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
537636c7
PE
3910 * tests/input.at (Torturing the Scanner): Test the scanner on
3911 an empty input file, which was Tim Van Holder's test case.
3912
3913 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
3914 <sys/resource.h> can be included, include sys/time.h and
3915 sys/times.h first, if available. This works around the SunOS
3916 4.1.4 porting bug reported by Bruce Becker in
161a71f3 3917 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
537636c7
PE
3918
3919 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
3920 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
3921 AC_HEADER_SYS_WAIT.
3922
f61aad93
PE
3923 Merge changes from gnulib. This was prompted because the CVS
3924 snapshot didn't build on Solaris 7 due to strnlen problems.
3925
3926 These changes need to be merged back into gnulib:
3927 * lib/hash.c: Include <stdbool.h> unconditionally.
3928 * m4/onceonly.m4 (m4_quote): New macro.
3929 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
3930 Quote AC_FOREACH variable-expansions properly.
3931 The 2003-01-03 obstack.h change also needs merging.
3932 {end of changes requiring merging}
5b066063 3933
f61aad93
PE
3934 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
3935 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
3936 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
3937 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
3938 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
3939 New files, imported from gnulib.
3940 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
3941 above.
3942
3943 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
3944 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
3945 gnulib sources.
3946
3947 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
3948 Add.
3949 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
3950 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
3951 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
3952 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
3953 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
3954 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
3955 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
3956 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
3957 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
3958 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
3959 (jm_PREREQ_ARGMATCH): Remove.
3960 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
3961 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
3962
3963 * src/system.h: Include <stdbool.h> unconditionally.
3964
3965 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
3966 assuming at least C89 in the bitset code for some time now.
3967
d2ffe116
AD
39682003-03-03 Akim Demaille <akim@epita.fr>
3969
3970 * ro.po: New.
3971
052826fd
AD
39722003-03-02 Akim Demaille <akim@epita.fr>
3973
3974 * doc/bison.texinfo (Table of Symbols): Reactivate the
3975 documentation for %lex-param, and %parse-param.
3976
c4749565
AD
39772003-03-02 Akim Demaille <akim@epita.fr>
3978
3979 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
3980 generate verbose error messages.
3981 Use the number of tokens as an upper bound in yytname, as it
3982 cannot be a non terminal.
3983
d5286af1
AD
39842003-03-02 Akim Demaille <akim@epita.fr>
3985
3986 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
3987 message.
3988
22e304a6
AD
39892003-03-02 Akim Demaille <akim@epita.fr>
3990
22e304a6
AD
3991 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
3992 Use them to exercise yycheck overrun.
3993 Based on Andrew Suffield's grammar.
3994
67a25fed
AD
39952003-03-02 Akim Demaille <akim@epita.fr>
3996
3997 Create tests/local.at for Bison generic testing macros.
3998
3999 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
4000 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
4001 This new file.
4002 * tests/calc.at (AT_CHECK_CALC): Adjust.
4003 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
4004 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
4005 * tests/local.at: here.
4006 (AT_COMPILE_CXX): Tags the tests using it as c++.
4007 Ignore the test if CXX is not functional.
4008
9c2b381f
PE
40092003-03-01 Paul Eggert <eggert@twinsun.com>
4010
4011 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
4012 not loc->end, since loc->end might contain garbage and this leads
4013 to undefined behavior on some platforms.
4014 (id_loc, token_start): Use (IF_LINTed) initial values that do not
4015 depend on *loc, so that the reader doesn't give the the false
4016 impression that *loc is initialized.
4017 (<INITIAL>"%%"): Do not bother setting code_start, since its value
4018 does not survive the return.
4019
0433ba88
AD
40202003-03-01 Akim Demaille <akim@epita.fr>
4021
4022 * src/scan-gram.l (code_start): Always initialize it when entering
4023 into yylex, as SC_EPILOGUE is activated *before* the corresponding
4024 yylex invocation. An alternative would be making it static, but
4025 then it starts with the second %%'s beginning, instead of its end.
4026
b305ea69
PE
40272003-02-28 Paul Eggert <eggert@twinsun.com>
4028
4029 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
4030 around a UnixWare 7.1.1 porting bug reported by John Hughes in
161a71f3 4031 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
b305ea69 4032
c3d25e01
PE
40332003-02-26 Paul Eggert <eggert@twinsun.com>
4034
4035 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
4036 Remove Sequent/Pyramid discussion (nobody uses them any more).
4037 Merge VMS and MS-DOS discussion; these ports may well be dead
4038 but let's keep mentioning them for now. Put <> around email
4039 addresses. Add copyright notice.
4040
c267ffbc
PE
40412003-02-24 Paul Eggert <eggert@twinsun.com>
4042
4043 * data/glr.c (yy_reduce_print): yylineno -> yylno,
4044 to avoid collision with flex use of yylineno.
4045 Problem reported by Bruce Lilly in
161a71f3 4046 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
c267ffbc
PE
4047 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
4048 * data/yacc.c (yy_reduce_print): Likewise.
4049
4050 * config/depcomp: Sync with Automake 1.7.3.
4051
f939fc12
AD
40522003-02-21 Akim Demaille <akim@epita.fr>
4053
4054 * data/lalr1.cc: Use temporary variables instead of casts to
4055 change integer types.
4056 Suggested by Paul Eggert.
4057
95923bd6
AD
40582003-02-21 Akim Demaille <akim@epita.fr>
4059
4060 * doc/bison.texinfo: Use "location" consistently to refer to @n,
4061 to avoid confusions with lalr1.cc's notion of Position.
4062 Suggested by Paul Eggert.
4063
2cdc240e
AD
40642003-02-20 Akim Demaille <akim@epita.fr>
4065
4066 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
4067 before initial_columns.
4068 (location.hh): Use consistent variable names when defining the
4069 operator<<.
4070 Use "last" so that we subtract from Positions, not from unsigned.
4071
5d003116
AD
40722003-02-20 Akim Demaille <akim@epita.fr>
4073
4074 * data/lalr1.cc (position.hh): New subfile, including the extended
4075 and Doxygen'ed documentation of class Position.
4076 (location.hh): Use it.
4077 Document a` la Doxygen.
ba1ecc07 4078 With the help of Benoit Perrot.
5d003116 4079
d02b25f9
AD
40802003-02-20 Akim Demaille <akim@epita.fr>
4081
4082 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
4083 AT_YACC_IF.
4084 Redefine AT_YYERROR_SEES_LOC_IF using it.
4085 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
4086 not defined.
4087 Don't use the location in yy::Parser::error_ and
4088 yy::Parser::print_ when not %locations.
4089 Activate more lalr1.cc tests.
4090
0d1c3a04
AD
40912003-02-19 Akim Demaille <akim@epita.fr>
4092
4093 * data/lalr1.cc: When displaying a line number, be sure to make it
4094 an int.
4095
60a777aa
AD
40962003-02-19 Akim Demaille <akim@epita.fr>
4097
4098 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
4099 Remove, useless.
4100 (YYABORT, YYACCEPT, YYERROR): New.
4101 * tests/calc.at: Renable the lalr1.cc test.
4102
0b86fc41
AD
41032003-02-19 Akim Demaille <akim@epita.fr>
4104
4105 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
4106 error recovery, mixing with/without pops and discarding of the
4107 lookahead.
4108 Exercise YYERROR.
4109 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
4110
da99a5dc
PE
41112003-02-17 Paul Eggert <eggert@twinsun.com>
4112
4113 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
4114 * tests/testsuite.at (AT_COMPILE): Use them.
4115 This fixes the testsuite problem reported by Robert Lentz in
161a71f3 4116 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
da99a5dc 4117
93b8c255
PE
41182003-02-12 Paul Eggert <eggert@twinsun.com>
4119
4120 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
4121 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
161a71f3 4122 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
93b8c255
PE
4123 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
4124 Check for malloc failure, for consistency with yacc.c.
4125 (yytname_size): Remove, for consistency with yacc.c.
4126
4127 The bug still remains in data/lalr1.cc, as I didn't have time
4128 to fix it there.
4129
7548fed2
AD
41302003-02-06 Akim Demaille <akim@epita.fr>
4131
4132 * configure.ac (GXX): Rename as...
4133 (CXX): this, to keep the original Autoconf semantics.
4134 Require 2.57.
4135 * data/lalr1.cc: Fix b4_copyright invocations.
4136 If YYDEBUG is not defined, don't depend upon name_ being defined.
4137 (location.hh): Include string and iostream.
4138 (Position::filename): New member.
4139 (Position::Position ()): New.
4140 (operator<< (Position)): New.
4141 (operator- (Position, int)): New.
4142 (Location::first, Location::last): Rename as...
4143 (Location::begin, Location::end): these, to mock the conventional
4144 iterator names.
4145 (operator<< (Location)): New.
4146 * tests/atlocal.in (CXX): New.
4147 * tests/testsuite.at (AT_COMPILE_CXX): New.
4148 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
4149 locations in a more synthetic way.
4150 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
4151 lalr1.cc is used.
4152 Adjust the C locations to match those from Emacs: first column is
4153 column 0.
4154 Change all the expected results.
4155 Conform to the GCS: simplify the locations when applicable.
4156 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
4157 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
4158 these CPP macros with the m4 macros new defined by...
4159 (AT_CHECK_PUSHDEFS): this, i.e.:
4160 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
d02b25f9 4161 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
4162 New macros.
4163 (AT_CHECK_POPDEFS): Undefine them.
4164 (AT_CHECK_CALC_LALR1_CC): New.
4165 Use it for the first lalr1.cc test.
4166
43a176ef
AD
41672003-02-04 Akim Demaille <akim@epita.fr>
4168
4169 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
4170 Location as is defined.
4171
fc049e9c
AD
41722003-02-04 Akim Demaille <akim@epita.fr>
4173
4174 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
4175 name_ being defined.
4176
a737b216
PE
41772003-02-03 Paul Eggert <eggert@twinsun.com>
4178
4179 * src/gram.h (start_symbol): Remove unused decl.
4180
4181 Use more-consistent naming conventions for local vars.
4182
4183 * src/derives.c (derives_compute): Change type of local var from
4184 int to rule_number.
4185 * src/gram.c (grammar_rules_partial_print): Likewise.
4186 * src/print.c (print_core): Likewise.
4187 * src/reduce.c (reduce_grammar_tables): Likewise.
4188
4189 * src/gram.c (grammar_dump): Change name of item_number *
4190 local var from r to rp.
4191 * src/nullable.c (nullable_compute): Likewise.
4192
4193 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
4194
4195 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
4196 for symbol or symbol_number var.
4197 * src/reader.c (grammar_start_symbol_set): Likewise.
4198 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
4199 Likewise.
4200 * src/state.c (transitions_to): Likewise.
4201 * src/state.h: Likewise.
4202 * src/tables.c (symbol_number_to_vector_number): Likewise.
4203
4204 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
4205 char * var.
4206
4207 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
4208 var.
4209
4210 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
4211 var.
4212
4213 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
4214 Use str, not s, for char * var. Use ch, not c, for character var.
4215 Use size for size var.
4216
4217 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
4218 char * var.
4219 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
4220 uniqstr var.
4221 * src/uniqstr.h: Likewise.
4222
4223 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
4224 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
4225 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
4226 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
4227 param to have same name as that of enum, so that we don't use
4228 "s" to stand for a non-state.
4229
68e93ad5
AD
42302003-02-02 Akim Demaille <akim@epita.fr>
4231
4232 * src/scan-skel.l: Scan more than one inert character per yylex
4233 invocation.
4234
92898986
PE
42352003-02-01 Paul Eggert <eggert@twinsun.com>
4236
4237 Version 1.875a.
4238
1d9d5d71
PE
4239 * po/LINGUAS: Add ms.
4240
0435d061
AD
42412003-01-30 Akim Demaille <akim@epita.fr>
4242
4243 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
4244
6029a57f
PH
42452003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4246
4247 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
4248 of $1.
0435d061
AD
4249
4250 Changes in response to error report by S. Eken: GLR mode does not
6029a57f 4251 handle negative $ indices or $ indices in embedded rules correctly.
161a71f3 4252 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 4253
6029a57f
PH
4254 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
4255 (b4_rhs_location): Ditto.
0435d061 4256 (yyfill): New function to copy from stack tree into array
6029a57f 4257 incrementally.
0435d061
AD
4258 (yyuserAction): Modify to allow incremental move of semantic values
4259 to rhs array when in GLR mode.
4260 Define YYFILL to use in user-defined actions to fill semantic array
6029a57f
PH
4261 as needed.
4262 Remove dummy use of yystack, as there is now a guaranteed use.
4263 (yydoAction): Modify to allow incremental move of semantic values
4264 to rhs array when in GLR mode.
4265 (yyresolveAction): Ditto.
4266 (yyglrShiftDefer): Update comment.
0435d061 4267 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
4268 (yyglrReduce): Ditto.
4269 (yydoAction): Ditto
0435d061 4270
6029a57f
PH
4271 * tests/glr-regr1.at: Rename to ...
4272 * tests/glr-regression.at: Add new regression test for the problems
4273 described above (adapted from S. Eken).
4274 Update copyright notice.
4275 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
4276 * tests/Makefile.am: Ditto.
4277
6cee6297
PE
42782003-01-28 Paul Eggert <eggert@twinsun.com>
4279
4280 * data/lalr1.cc: Do not use @output_header_name@ unless
4281 b4_defines_flag is set. This fixes two bugs reported by
4282 Tim Van Holder in
161a71f3
PE
4283 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
4284 and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
6cee6297 4285
b2a836b5
PE
42862003-01-21 Paul Eggert <eggert@twinsun.com>
4287
4288 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
4289 we don't need to worry about yyerrlab1 being reported as an
4290 "unused label" by non-GCC C compilers. The downside is that if
4291 locations are used then a couple of statements are duplicated each
4292 time YYERROR is invoked, but the upside is that the warnings
4293 should vanish.
4294 (yyerrlab1): Move code to YERROR.
4295 (yyerrlab2): Remove. Change uses back to yyerrlab1.
4296 This reverts some of the 2002-12-27 change.
4297
4196b931
PE
42982003-01-17 Paul Eggert <eggert@twinsun.com>
4299
4300 * src/output.c (symbol_printers_output): Fix typo that led
4301 to core dump. Problem reported by Antonio Rus in
161a71f3 4302 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
4196b931 4303
3ae831b4
AD
43042003-01-13 Akim Demaille <akim@epita.fr>,
4305 Quoc Peyrot <chojin@lrde.epita.fr>,
4306 Robert Anisko <anisko_r@lrde.epita.fr>
4307
4308 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
4309 when the stacks contain one element, as the loop would otherwise
4310 free the last state, and then use the top state (the one we just
4311 popped). This means that the initial elements will not be freed
4312 explicitly, as is the case in yacc.c; it is not a problem, as
4313 these elements have fake values.
4314
e3aa65c5
PE
43152003-01-11 Paul Eggert <eggert@twinsun.com>
4316
4317 * NEWS: %expect-violations are now just warnings, reverting
4318 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
4319 bootstrapping problem reported by Matthias Klose; see
161a71f3 4320 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
e3aa65c5
PE
4321 * src/conflicts.c (conflicts_print): Likewise.
4322 * tests/conflicts.at (%expect not enough, %expect too much,
4323 %expect with reduce conflicts): Likewise.
4324 * doc/bison.texinfo (Expect Decl): Document this. Also mention
4325 that the warning is enabled if the number of conflicts changes
4326 (not necessarily increases).
4327
4328 * src/getargs.c (version): Update copyright year.
4329
f0057011
AD
43302003-01-09 Akim Demaille <akim@epita.fr>
4331
4332 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
4333
1ee6d2a0
PE
43342003-01-08 Paul Eggert <eggert@twinsun.com>
4335
4336 * Makefile.maint (WGETFLAGS):
4337 New macro, containing "-C off" to disable proxy caches.
4338 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
4339 (rel-check): Use $(WGET) instead of wget.
4340
d4fd77c4
PE
43412003-01-06 Paul Eggert <eggert@twinsun.com>
4342
4343 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
4344 the GLR paper of Scott, Johnstone and Hussain.
4345
464c6927
PE
43462003-01-04 Paul Eggert <eggert@twinsun.com>
4347
d600ee67
PE
4348 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
4349 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
4350 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
4351 (EXTRA_LIBRARIES): New var, for liby.a.
4352 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
4353 (EXTRA_SCRIPTS): New var, for yacc.
4354
464c6927
PE
4355 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
4356 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
4357 Problem reported by Nelson H. F. Beebe.
4358
43592003-01-03 Paul Eggert <eggert@twinsun.com>
4360
4361 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
4362 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
4363 when compiling Bison 1.875's `bitset bset = obstack_alloc
4364 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
4365
4366 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
4367 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
4368 grow to a huge size with typical invocation.
d600ee67 4369
464c6927
PE
4370 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
4371 Use the pattern recommended by Autoconf 2.57, except also protect
4372 against double-definition.
4373 * src/system.h: Likewise.
4374 Portability issues reported by Nelson H. F. Beebe.
d600ee67 4375
464c6927
PE
4376 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
4377 All uses changed. Provide a definition in both C and C++.
4378 (yytrue, yyfalse): Define even if defined (__cplusplus).
4379
4380 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
4381 Reported by Nelson H. F. Beebe.
d600ee67 4382
464c6927
PE
4383 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
4384
0f42c7d5
PE
43852003-01-02 Paul Eggert <eggert@twinsun.com>
4386
4387 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
4388 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
4389 Bug reported by Nelson H. F. Beebe.
4390
dc546b0f
PE
43912003-01-01 Paul Eggert <eggert@twinsun.com>
4392
4393 * Version 1.875.
4394
2c09b6a7
PE
43952002-12-30 Paul Eggert <eggert@twinsun.com>
4396
4397 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
4398 Moved here from...
4399 (<INITIAL>","): Here. This causes stray "," to be treated
4400 more uniformly.
4401
dc546b0f 4402 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
4403 last brace in braced code when not in Yacc mode, for compatibility
4404 with Bison 1.35. This resurrects the 2001-12-15 patch to
4405 src/reader.c.
4406
4407 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
4408 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
4409
535c0f63
PE
44102002-12-28 Paul Eggert <eggert@twinsun.com>
4411
4412 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
4413 that of SYM's type. This fixes Debian bug 168069, reported by
4414 Thomas Olsson.
d600ee67 4415
963fcc17
PE
44162002-12-28 Paul Eggert <eggert@twinsun.com>
4417
4418 Version 1.75f.
4419
4420 Switch back to the Yacc style of conflict reports, undoing some
4421 of the 2002-07-30 change.
4422 * doc/bison.texinfo (Understanding): Use Yacc style for
4423 conflict reports. Also, use new way of locating rules.
4424 * src/conflicts.c (conflict_report):
4425 Renamed from conflict_report_yacc, removing the old
4426 'conflict_report'. Translate the entire conflict report at once,
4427 so that we don't assume that "," has the same interpretation in
4428 all languages.
4429 (conflicts_output): Use Yacc-style conflict report for each state,
4430 instead of our more-complicated style.
4431 (conflicts_print): Use Yacc-style conflict report, except print
4432 the input file name when not emulating Yacc.
4433 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
4434 Conflicted Reduction, %expect not enough, %expect too much,
4435 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
4436 * tests/existing.at (GNU Cim Grammar): Likewise.
4437 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
4438
4439 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
4440 fatal): Don't invoke fflush; it's not needed and it might even be
4441 harmful for stdout, as stdout might not be open.
4442 * src/reduce.c (reduce_print): Likewise.
4443
b1efe548
PE
44442002-12-27 Paul Eggert <eggert@twinsun.com>
4445
4446 Fix a bug where error locations were not being recorded correctly.
4447 This problem was originally reported by Paul Hilfinger in
161a71f3 4448 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
4449
4450 * data/yacc.c (yyparse): New local var yylerrsp, to record the
4451 top of the location stack's error locations.
4452 (yyerrlab): Set it. When discarding a token, push its location
4453 onto yylerrsp so that we don't lose track of the error's end.
4454 (yyerrlab1): Now is only the target of YYERROR, so that we can
4455 properly record the location of the action that failed. For GCC
4456 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
4457 GCC warning about yyerrlab1 being unused if YYERROR is unused.
4458 (yyerrlab2): New label, which yyerrlab now falls through to.
4459 Compute the error's location by applying YYLLOC_DEFAULT to
4460 the locations of all the symbols that went into the error.
4461 * doc/bison.texinfo (Location Default Action): Mention that
4462 YYLLOC_DEFAULT is also invoked for syntax errors.
4463 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
4464 Error locations include the locations of all the tokens that were
4465 discarded, not just the last token.
d600ee67 4466
983c5c2c
PE
44672002-12-26 Paul Eggert <eggert@twinsun.com>
4468
b1efe548
PE
4469 * src/files.c: Include quote.h.
4470 (compute_output_file_names): Warn if we detect conflicting
4471 outputs to the same file. This should catch the misunderstanding
4472 exemplified by Debian Bug 165349, reported by Bruce Stephens..
4473
4474 * src/conflicts.c (conflicts_print): If the user specifies
4475 "%expect N", report an error if there are any reduce/reduce
4476 conflicts. This is what the manual says should happen.
4477 This fixes Debian bug 130890, reported by Anthony DeRobertis.
4478 * tests/conflicts.at (%expect with reduce conflicts): New test.
4479
983c5c2c
PE
4480 Don't use m4_include on relative file names, as it doesn't work as
4481 desired if there happens to be a file with that name under ".".
d600ee67 4482
983c5c2c
PE
4483 * m4sugar/version.m4: Remove; it was included but it wasn't used.
4484 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
4485 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
4486 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
4487 * src/output.c (output_skeleton): Use full path names when
4488 specifying a file to include; don't rely on include path, as
4489 it's unreliable when the working file contains a file with
4490 that name.
d600ee67 4491
983c5c2c
PE
44922002-12-25 Paul Eggert <eggert@twinsun.com>
4493
4494 Remove obsolete references to bison.simple and bison.hairy.
4495 Problem mentioned by Aubin Mahe in
161a71f3 4496 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
4497 * data/glr.c: Comment fix.
4498 * doc/bison.1: Remove references. Also, mention "yacc".
4499
4500 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
4501 with -g option.
4502
4503 * src/parse-gram.y (declaration): Use enum "report_states" rather
4504 than its numeric value 1.
4505
4506 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
4507 opening a new one. This fixes Debian bug 165349, reported by
4508 Bruce Stephens.
4509
23f2d9dc
PE
45102002-12-24 Paul Eggert <eggert@twinsun.com>
4511
4512 Version 1.75e.
4513
4514 * Makefile.maint (cvs-update): Don't assume that the shell
4515 supports $(...), as Solaris sh doesn't.
4516
4517 * src/parse-gram.y (lloc_default): Remove test for empty
4518 nonterminals at the end, since it didn't change the result.
4519
45202002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
4521
4522 If the user does not define YYSTYPE as a macro, Bison now declares it
4523 using typedef instead of defining it as a macro. POSIX requires this.
4524 For consistency, YYLTYPE is also declared instead of defined.
4525
4526 %union directives can now have a tag before the `{', e.g., the
4527 directive `%union foo {...}' now generates the C code
4528 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
4529 The default union tag is `YYSTYPE', for compatibility with Solaris 9
4530 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
4531 instead of `yyltype'.
4532
4533 `yystype' and `yyltype' are now obsolescent macros instead of being
4534 typedefs or tags; they are no longer documented and will be
4535 withdrawn in a future release.
4536
4537 * data/glr.c (b4_location_type): Remove.
4538 (YYSTYPE): Renamed from yystype.
4539 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
4540 (struct YYLTYPE): Renamed from struct yyltype.
4541 (YYLTYPE): Renamed from yyltype.
4542 (yyltype, yystype): New (and obsolescent) macros,
4543 for backward compatibility.
4544 * data/yacc.c: Likewise.
4545
4546 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
4547 does not specify a union tag. This is for compatibility with
4548 Solaris 9 yacc.
4549
4550 * src/parse-gram.y (add_param): 2nd arg is now char * not char
4551 const *, since it is now modified by stripping surrounding { }.
4552 (current_braced_code): Remove.
4553 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
4554 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
4555 trailing " {...}". Now of type <chars>.
4556 (grammar_declaration): Adjust to bundled tokens.
4557 (code_content): Remove; stripping is now done by add_param.
4558 (print_token_value): Print contents of bundled tokens.
4559 (token_name): New function.
4560
4561 * src/reader.h (braced_code, current_braced_code): Remove.
4562 (token_name): New decl.
4563
4564 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
4565 token_type, not braced_code code_kind. All uses changed.
4566 (SC_PRE_CODE): New state, for scanning after a keyword that
4567 has (or usually has) an immediately-following braced code.
4568 (token_type): New local var, to keep track of which token type
4569 to return when scanning braced code.
4570 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
dc546b0f 4571 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
4572 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
4573 instead of returning a token type immediately.
4574 (<INITIAL>"{"): Set token type.
4575 (<SC_BRACED_CODE>"}"): Use it.
4576 (handle_action_dollar, handle_action_at): Now returns bool
4577 indicating success. Fail if ! current_rule; this prevents a core dump.
4578 (handle_symbol_code_dollar, handle_symbol_code_at):
4579 Remove; merge body into caller.
4580 (handle_dollar, handle_at): Complain in invalid contexts.
4581
4582 * NEWS, doc/bison.texinfo: Document the above.
4583 * NEWS: Fix years and program names in copyright notice.
4584
879ca4f8
PE
45852002-12-17 Paul Eggert <eggert@twinsun.com>
4586
4587 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
4588 Reporting, Table of Symbols): Omit mentions of %lex-param and
4589 %parse-param from the documentation for now.
4590
1c5fe69d
PE
45912002-12-15 Paul Eggert <eggert@twinsun.com>
4592
4593 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
4594 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
4595 lookahead symbol, and which sets yychar in parser actions) and it
7ea9026a
PE
4596 disagreed with the Bison documentation. Bug
4597 reported by Andrew Walrond.
d600ee67 4598
1c5fe69d
PE
4599 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
4600 as the caller now does that.
4601 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
4602 (YYEMPTY): Parenthesize right hand side, since others use it.
4603 (yyparse): Don't assume that our generated code is the only code
4604 that sets yychar.
4605
d1de5372
PE
46062002-12-13 Paul Eggert <eggert@twinsun.com>
4607
4608 Version 1.75d.
4609
4610 POSIX requires a "yacc" command.
4611 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
4612 (MOSTLYCLEANFILES): Add yacc.
4613 (yacc): New rule.
1c5fe69d 4614 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
4615 as an alias for bison y.
4616
4617 * po/LINGUAS: Add da.
d600ee67 4618
d1de5372
PE
4619 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
4620 problem with latest <getopt.h>.
4621 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
4622
4623 * doc/fdl.texi: Upgrade to 1.2.
4624 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
4625 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
4626 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
4627 gnulib.
4628 * config/install-sh: Sync with autotools.
4629
4630 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
161a71f3 4631 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
4632 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
4633 locations are requested.
4634 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
4635 locations are requested.
4636
d0f3fe23
PE
46372002-12-12 Paul Eggert <eggert@twinsun.com>
4638
4639 Remove unportable casts and storage allocation tricks.
4640 While we're at it, remove almost all casts, since they
4641 usually aren't needed and are a sign of trouble.
4642
4643 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
4644
4645 * src/derives.c (derives_compute): Do not subtract NTOKENS from
4646 the pointer DSET returned by malloc; this isn't portable.
4647 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
4648 Similarly for DERIVES.
4649 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
4650 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
4651 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
4652
4653 * src/derives.c (derives_compute): Do not bother invoking
4654 int_of_rule_number, since rule numbers are integers.
4655
4656 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
4657 rather than XMALLOC (char, N).
4658
4659 * src/files.c (filename_split): Rewrite to avoid cast.
4660
4661 * src/gram.h (symbol_number_as_item_number,
4662 item_number_as_symbol_number, rule_number_as_item_number,
4663 item_number_as_rule_number):
4664 Now inline functions rather than macros, to avoid casts.
4665 * src/state.h (state_number_as_int): Likewise.
4666 * src/tables.c (state_number_to_vector_number,
4667 symbol_number_to_vector_number): Likewise.
4668
4669 * src/gram.h (int_of_rule_number): Remove; no longer used.
4670
4671 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
4672 since the resulting storage is always stored into.
4673
4674 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
4675 where it's needed.
4676
4677 * src/muscle_tab.c (muscle_m4_output):
4678 Now inline. Return bool, not int.
4679 * src/state.c (state_compare): Likewise.
4680 * src/symtab.c (symbol_check_defined,
4681 symbol_check_alias_consistency, symbol_pack, symbol_translation,
4682 hash_compare_symbol, hash_symbol):
4683 Likewise.
4684 * src/uniqstr.c (uniqstr_print): Likewise.
4685 * src/muscle_tab.c (muscle_m4_output_processor):
4686 New function, to avoid casts.
4687 * src/state.c (state_comparator, stage_hasher): Likewise.
4688 * src/symtab.c (symbol_check_defined_processor,
4689 symbol_check_alias_consistency_processor, symbol_pack_processor,
4690 symbol_translation_processor, hash_symbol_comparator,
4691 hash_symbol_hasher): Likewise.
4692 * src/uniqstr.c (uniqstr_print_processor): Likewise.
4693 * src/muscle_tab.c (muscles_m4_output):
4694 Use new functions instead of casting old functions unportably.
4695 * src/state.c (state_hash_new): Likewise.
4696 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
4697 symbols_token_translations_init):
4698 Likewise.
4699 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
4700
4701 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
4702 var instead of casting to long, to avoid casts.
4703 (prepare_states): Use MALLOC rather than alloca, so that we don't
4704 have to worry about alloca.
4705 * src/state.c (state_hash_lookup): Likewise.
4706
4707 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
4708 local var instead of casting to unsigned char, to avoid casts.
4709
4710 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
4711 STATE_ALLOC): Remove.
4712 (transitions_new, errs_new, reductions_new, state_new): Use malloc
4713 rather than calloc, and use offsetof to avoid allocating slightly
4714 too much storage.
4715 (state_new): Initialize all members.
4716
4717 * src/state.c (state_hash): Use unsigned accumulator, not signed.
4718
4719 * src/symtab.c (symbol_free): Remove; unused.
4720 (symbol_get): Remove cast in lhs of assignment.
4721 (symbols_do): Now static. Accept generic arguments, not
4722 hashing-related ones.
4723
4724 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
4725 (symbol_processor): Remove.
4726 (symbols_do): Remove decl; now static.
4727
4728 * src/system.h (alloca): Remove; decl no longer needed.
4729 (<stddef.h>): Include, for offsetof.
4730 (<inttypes.>, <stdint.h>): Include if available.
4731 (uintptr_t): New type, if system lacks it.
4732 (CALLOC, MALLOC, REALLOC): New macros.
4733 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
4734 new macros.
4735
4736 * src/tables.c (table_size): Now int, to pacify GCC.
4737 (table_grow, table_ninf_remap): Use signed table size.
4738 (save_row): Don't bother initializing locals when not needed.
4739 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
4740 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
4741
4742 * src/vcg.h: Correct misspellings.
4743
4744 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
4745
4746
4747 * src/getargs.c (getargs): Don't assume EOF == -1.
4748
26b4a969
PE
47492002-12-09 Paul Eggert <eggert@twinsun.com>
4750
4751 Change identifier spellings to avoid collisions with names
4752 that are reserved by POSIX.
4753
4754 Don't use names ending in _t, since POSIX reserves them.
4755 For consistency, remove _e and _s endings -- they're weren't
4756 needed to remove ambiguity. All uses changed.
4757 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
4758 turn was just renamed from struniq_t.
4759 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
4760 which in turn was just renamed from struniq_processor_t.
4761 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
4762 in turn was renamed from hash_compare_struniq_t.
4763 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
4764 (state_list): Renamed from state_list_t.
4765 * src/assoc.h (assoc): Renamed from assoc_t.
4766 * src/conflicts.c (enum conflict_resolution): Renamed from
4767 enum conflict_resolution_e.
4768 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
4769 (rule_list): Renamed from rule_list_t.
4770 * src/getargs.h (enum trace): Renamed from enum trace_e.
4771 (enum report): Renamed from enum report_e.
4772 * src/gram.h (item_number): Renamed from item_number_t.
4773 (rule_number): Renamed from rule_number_t.
4774 (struct rule_s): Remove the "rule_s" part; not used.
4775 (rule): Renamed from rule_t.
4776 (rule_filter): Renamed from rule_filter_t.
4777 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
4778 (goto_list): Renamed from goto_list_t.
4779 * src/lalr.h (goto_number): Renamed from goto_number_t.
4780 * src/location.h (location): Renamed from location_t.
4781 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
4782 and moved here from:
4783 * src/muscle_tab.h (muscle_entry_t): here.
4784 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
4785 (rule_list): Renamed from rule_list_t.
4786 * src/print_graph.c (static_graph): Renamed from graph.
4787 * src/reader.h (braced_code): Renamed from braced_code_t.
4788 Remove brace_code_e tag.
4789 * src/relation.h (relation_node): Renamed from relation_node_t.
4790 (relation_nodes): Renamed from relation_nodes_t.
4791 (relation): Renamed from relation_t.
4792 * src/state.h (state_number): Renamed from state_number_t.
4793 (struct state): Renamed from struct state_s.
4794 (state): Renamed from state_t.
4795 (transitions): Renamed from transitions_t. Unused (and
4796 misspelled) transtion_s tag removed.
4797 (errs): Renamed from errs_t. Unused errs_s tag removed.
4798 (reductions): Renamed from reductions_t. Unused tag
4799 reductions_s removed.
4800 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
4801 (struct symbol_list): Renamed from struct symbol_list_s.
4802 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
4803 (struct symbol): Renamed from struct symbol_s.
4804 (symbol): Renamed from symbol_t.
4805 * src/tables.c (vector_number): Renamed from vector_number_t.
4806 (action_number): Renamed from action_t.
4807 * src/tables.h (base_number): Renamed from base_t.
4808 * src/vcg.h (enum color): Renamed from enum color_e.
4809 (enum textmode): Renamed from enum textmode_e.
4810 (enum shape): Renamed from enum shape_e.
4811 (struct colorentry): Renamed from struct colorentry_s.
4812 (struct classname): Renamed from struct classname_s.
4813 (struct infoname): Renamed from struct infoname_s.
4814 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
4815 (enum decision): Renamed from enum decision_e.
4816 (enum orientation): Renamed from enum orientation_e.
4817 (enum alignment): Renamed from enum alignment_e.
4818 (enum arrow_mode): Renamed from enum arrow_mode_e.
4819 (enum crossing_type): Renamed from enum crossing_type_e.
4820 (enum view): Renamed from enum view_e.
4821 (struct node): Renamed from struct node_s.
4822 (node): Renamed from node_t.
4823 (enum linestyle): Renamed from enum linestyle_e.
4824 (enum arrowstyle): Renamed from enum arrowstyle_e.
4825 (struct edge): Renamed from struct edge.
4826 (edge): Renamed from edge_t.
4827 (struct graph): Renamed from struct graph_s.
4828 (graph): Renamed from graph_t.
4829 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
4830 Rename value_t -> value.
4831 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
4832 value_t_as_yystype -> value_as_yystype.
4833
4834 Don't include <errno.h> in the mainstream code, since it
4835 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
4836 * lib/get-errno.c, lib/get-errno.h: New files.
4837 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
4838 get-errno.c.
4839 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
4840 * src/output.c (output_skeleton): Likewise.
4841 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
4842 instead of errno.
4843 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
4844 Likewise.
4845 (handle_action_dollar, handle_action_at): Likewise.
4846 * src/system.h: Do not include <errno.h>.
4847 (TAB_EXT): Renamed from EXT_TAB.
4848 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
4849
4850 Avoid str[a-z]*, since <string.h> reserves that name space.
4851 Change all instances of "struniq" in names to "uniqstr", and
4852 likewise for "STRUNIQ" and "UNIQSTR".
4853 * src/uniqstr.c: Renamed from src/struniq.c.
4854 * src/uniqstr.h: Renamed from src/struniq.h.
4855 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
4856 * src/files.c (strsuffix): Remove; unused.
4857 (concat2): Renamed from stringappend. Now static.
4858 * src/files.h (strsuffix, stringappend): Remove; unused.
4859 * src/parse-gram.y (<chars>): Renamed from <string>.
4860 (<uniqstr>): Renamed from <struniq>.
4861 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
4862 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
4863 (struct graph_s.expand): Renamed from struct graph_s.stretch.
4864 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
4865 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
4866 (N_EXPAND): Renamed from N_STRETCH.
4867
4868 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
4869 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
4870 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
4871 Remove; unused.
4872 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
4873 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
4874 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
4875 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
4876 (BASE_MAXIMUM): Renamed from BASE_MAX.
4877 (BASE_MINIMUM): Renamed from BASE_MIN.
4878 (ACTION_MAX): Remove; unused.
4879 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
4880 Unnecessary casts removed from above defines.
4881
4882
4883 Fix misspelling in names.
4884 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
4885 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
4886 G_NODE_ALIGNEMENT.
4887
4888
4889 * lib/timevar.c (timevar_report): Renamed from time_report,
4890 for consistency with other names.
4891 * lib/timevar.h (timevar_report): New decl.
4892 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
4893
4894
4895 Sort include-file uses.
4896
4897 Reorder all include files under src to be in the order "system.h".
4898 then the ../lib include files in angle brackets (alphabetized),
4899 then the . include files in double-quotes (alphabetized). Fix
4900 dependency breakages encountered in this process, as follows:
4901 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
4902 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
4903 * src/state.h: Include "symtab.h".
4904
996b1c7e
PE
49052002-12-08 Paul Eggert <eggert@twinsun.com>
4906
4907 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
4908 since this causes problems when __file__ contains character
4909 sequences like "@" that are treated specially by src/scan-skel.l.
4910 Instead, just use the file's basename. This fixes the bug
4911 reported by Martin Mokrejs in
161a71f3 4912 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 4913
e19c4e5d
PE
49142002-12-06 Paul Eggert <eggert@twinsun.com>
4915
4916 Add support for rules that do not have trailing semicolons, as
4917 POSIX requires. Improve the quality of locations in Bison
4918 diagnostics.
26b4a969 4919
e19c4e5d
PE
4920 * src/location.c: Include <quotearg.h>.
4921 (empty_location): Now const.
4922 (location_print): New function. Follow the recommendation of the
4923 GNU Coding Standards for locations that span file boundaries.
4924 * src/location.h: Do not include <quotearg.h>; no longer needed.
4925 (boundary): New type.
4926 (location_t): Use it. This allows locations to span file boundaries.
4927 All member uses changed: file -> start.file or end.file (as needed),
4928 first_line -> start.line, first_column -> start.column,
4929 last_line -> end.line, last_column -> end.column.
4930 (equal_boundaries): New function.
4931 (LOCATION_RESET, LOCATION_STEP): Remove.
4932 (LOCATION_PRINT): Remove. All callers changed to use location_print.
4933 (empty_location): Now const.
4934 (location_print): New decl.
4935 * src/parse-gram.y (lloc_default): New function, which handles
4936 empty locations more accurately.
4937 (YYLLOC_DEFAULT): Use it.
4938 (%token COLON): Remove.
4939 (%token ID_COLON): New token.
26b4a969 4940 (rules): Use it.
e19c4e5d
PE
4941 (declarations, rules): Remove trailing semicolon.
4942 (declaration, rules_or_grammar_declaration):
4943 Allow empty (";") declaration.
4944 (symbol_def): Remove empty actions; no longer needed.
4945 (rules_or_grammar_declaration): Remove trailing semicolon.
4946 (semi_colon.opt): Remove.
4947 * src/reader.h: Include location.h.
4948 (scanner_cursor): New decl.
4949 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
4950 rolling our own.
4951 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
4952 of *loc.
4953 (STEP): Remove. No longer needed, now that adjust_location does
4954 the work. All uses removed.
4955 (scanner_cursor): New var.
4956 (adjust_location): Renamed from extend_location. It now sets
4957 *loc and adjusts the scanner cursor. All uses changed.
4958 Don't bother testing for CR.
4959 (handle_syncline): Remove location arg; now updates scanner cursor.
4960 All callers changed.
4961 (unexpected_end_of_file): Now accepts start boundary of token or
4962 comment, not location. All callers changed. Update scanner cursor,
4963 not the location.
4964 (SC_AFTER_IDENTIFIER): New state.
4965 (context_state): Renamed from c_context. All uses changed.
4966 (id_loc, code_start, token_start): New local vars.
4967 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
4968 processing of Yacc white space and equivalents here.
4969 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
4970 instead of returning ID immediately, since we need to search for
4971 a subsequent colon.
4972 (<INITIAL>"'", "\""): Save token_start.
4973 (<INITIAL>"%{", "{", "%%"): Save code_start.
4974 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
4975 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
4976 BEGIN context_state at end, not INITIAL.
4977 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
4978 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
4979 Return correct token start.
4980 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
4981 the start of a character, string or multiline comment is found.
4982 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
4983 Reduction): Adjust reported locations to match the more-precise
4984 results now expected.
4985 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
4986 * tests/reduce.at (Useless Rules, Reduced Automaton,
4987 Underivable Rules): Likewise.
4988 * tests/regression.at (Invalid inputs): No longer `expecting ";"
4989 or "|"' now that so many other tokens are allowed by the new grammar.
4990
4991 * src/complain.h (current_file): Remove duplicate decl;
4992 current_file is now owned by files.h.
4993 * src/complain.c, src/scan-gram.l: Include files.h.
4994
49952002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 4996
e19c4e5d
PE
4997 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
4998 promotes to int; it might be unsigned int.
4999 * data/yacc.c (yy_reduce_print): Likewise.
5000
5001 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
5002 be #defined in the prologue, not in the Bison declarations.
5003 This fixes Debian Bug 102878, reported by Shaul Karl.
26b4a969 5004
b64755e3
PE
50052002-12-02 Paul Eggert <eggert@twinsun.com>
5006
5007 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
5008 * lib/strtoul.c: New file, from gnulib.
5009 This fixes a porting bug reported by Peter Klein in
161a71f3 5010 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 5011
6e746484
PE
50122002-11-30 Paul Eggert <eggert@twinsun.com>
5013
b64755e3
PE
5014 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
5015 and put only a forward declaration in the prologue. This is for
5016 consistency with the other scanner helper functions.
5017
6ba55592
PE
5018 Type clashes now generate warnings, not errors, since it
5019 appears that POSIX may allow some grammars with type clashes.
5020 * src/reader.c (grammar_current_rule_check): Warn about
5021 type clashes instead of complaining.
5022 * tests/input.at (Type Clashes): Expect warnings, not complaints.
5023
6e746484
PE
5024 Add Yacc library, since POSIX requires it.
5025 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
5026 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
5027 * lib/main.c, lib/yyerror.c: New files.
5028
5029 gram_error can be static; it need not be extern.
5030 * src/reader.h (gram_error): Remove decl.
5031 * src/parse-gram.y (gram_error): Now static. Add static decl.
5032 (print_token_value): Omit parameter names from forward decl,
5033 for consistency.
5034
88510f9c
PE
50352002-11-29 Paul Eggert <eggert@twinsun.com>
5036
6e746484
PE
5037 * doc/bison.texinfo: Emphasize that yylex and yyerror must
5038 be declared before being used. E.g., one should typically
5039 declare them in the prologue. Use GNU coding style in examples.
5040 Put "const" consistently after the type it modifies. Mention
5041 that C99 supports "inline". Mention that yyerror traditionally
5042 returns "int".
5043
88510f9c
PE
5044 %parse-param and %lex-param now take just one argument, the
5045 declaration; the argument name is deduced from the declaration.
5046
5047 * doc/bison.texinfo (Parser Function, Pure Calling, Error
5048 Reporting, Table of Symbols): Document this.
5049 * src/parse-gram.y (add_param): New function.
5050 (COMMA): Remove.
5051 (declaration): Implement new rule for %parse-param and %lex-param.
5052 * src/scan-gram.l: "," now elicits a warning, rather than being
5053 a token; this is more compatible with byacc.
5054 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
5055
bb92250c
PE
50562002-11-27 Paul Eggert <eggert@twinsun.com>
5057
5058 Rename identifiers to avoid real and potential collisions.
5059
5060 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
5061 to avoid collision with lex macro described by Bruce Lilly in
161a71f3 5062 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
5063 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
5064 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
5065 * src/parse-gram.y (print_token_value): Renamed from yyprint.
5066 All uses changed.
5067 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
5068 The name "yycontrol" violates the name space rules, and this stuff
5069 wasn't being used anyway.
5070 (input): Remove action; this stuff wasn't being used.
5071 (gram_error): Rename local variable yylloc -> loc.
5072 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
5073 (YY_DECL): Don't use "yy" at start of local variables.
5074 All uses changed, e.g., yylloc -> loc.
5075 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
5076 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
5077 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
5078 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
5079
5080 * src/parse-gram.y (gram_error): loc is now const *.
5081 * src/reader.h (gram_error): Likewise.
5082
3af4feb2
PE
50832002-11-24 Paul Eggert <eggert@twinsun.com>
5084
5085 Version 1.75c.
5086
5087 * tests/actions.at (Actions after errors): Use an output format
5088 more similar to that of the Printers and Destructors test.
5089 Test the position of the ';' token too.
5090 (Printers and Destructors): Likewise.
5091 (Printers and Destructors: %glr-parser): Remove for now, to avoid
5092 unnecessarily alarming people when the test fails.
5093
5094 * data/yacc.c (yyerrlab1): Move this label down, so that the
5095 parser does not discard the lookahead token if the user code
5096 invokes YYERROR. This change is required for POSIX conformance.
5097
5098 * lib/error.c: Sync with gnulib.
5099
51002002-11-22 Paul Eggert <eggert@twinsun.com>
5101
5102 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
5103 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
5104 * lib/xmalloc.c: Likewise.
26b4a969 5105
58004308
PE
51062002-11-20 Paul Eggert <eggert@twinsun.com>
5107
5108 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
5109
51102002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 5111
58004308
PE
5112 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
5113 should use `if (! x) abort ();' rather than `assert (x);', and
5114 anyway it's one less thing to worry about configuring.
5115
5116 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
5117 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
5118 and replace all instances of assert with abort.
5119 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
5120 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
5121
5122 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
5123 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
5124 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
5125 hash_find_entry, hash_rehash, hash_insert): Likewise.
5126 * src/conflicts.c (resolve_sr_conflict): Likewise.
5127 * src/lalr.c (set_goto_map, map_goto): Likewise.
5128 * src/nullable.c (nullable_compute): Likewise.
5129 * src/output.c (prepare_rules, token_definitions_output): Likewise.
5130 * src/reader.c (packgram, reader): Likewise.
5131 * src/state.c (state_new, state_free, state_transitions_set,
5132 state_reduction_find): Likewise.
5133 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
5134 symbol_pack): Likewise.
5135 * src/tables.c (conflict_row, pack_vector): Likewise.
5136 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
5137 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
5138 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
5139 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
5140
5141 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
5142 (ARGMATCH_CONSTRAINT): New macro.
5143 (ARGMATCH_ASSERT): Use it.
5144
5145 * src/system.h (verify): New macro.
5146 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
5147 rather than assert.
5148 * src/tables.c (tables_generate): Likewise.
5149
5150 * src/struniq.c (struniq_assert): Now returns void, and aborts
5151 if the assertion is false.
5152 (struniq_assert_p): Remove.
5153 * src/struniq.h: Likewise.
5154
76ae8198
PE
51552002-11-18 Paul Eggert <eggert@twinsun.com>
5156
5157 * data/glr.c (yygetLRActions): Replace `yyindex' with
5158 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
5159 This fixes the regression with Sun ONE Studio 7 cc that I reported in
161a71f3 5160 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 5161
d3c4e709
AD
51622002-11-18 Akim Demaille <akim@epita.fr>
5163
5164 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
5165 space.
5166 From Tim Van Holder.
5167
8d8a7238
PE
51682002-11-17 Paul Eggert <eggert@twinsun.com>
5169
5170 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
5171 to "SyntaxError" for consistency with my 2002-11-15 change.
5172
5173 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
5174 not define to {}, since this breaks the common use of `YYDPRINTF
5175 ((...));' if a single statement is desired (e.g. before `else').
5176 Work around GCC warnings by surrounding corresponding calls with
5177 {} if needed.
5178 (yyhasResolvedValue): Remove unused function.
5179 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
5180 loop body.
5181 (yyreportSyntaxError): Renamed from yyreportParseError.
5182 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
5183 All uses changed.
5184 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
5185 extern when possible. Remove unused initializations.
5186
b0937b22
AD
51872002-11-16 Akim Demaille <akim@epita.fr>
5188
5189 Augment the similarity between GLR and LALR traces.
5190
5191 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
5192 (YY_REDUCE_PRINT): New.
5193 (yyparse): Use them.
5194 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
5195 YYDPRINT here.
5196 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
5197 state reached after the reduction/recovery, since...
5198 (yyparse, yyprocessOneStack): Report the state we are entering in.
5199
c5e3e510
AD
52002002-11-16 Akim Demaille <akim@epita.fr>
5201
5202 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
5203 Add support for --trace=skeleton.
5204 * src/scan-skel.l: %option debug.
5205 Scan strings of non-@ or \n instead of character by character.
5206 (scan_skel): Handle trace_skeleton.
5207 (QPUTS): New.
5208 (@output_parser_name@, @output_header_name@): ``Restore'' their
5209 support (used to be M4 macros).
5210 * data/yacc.c: Quote larger chunks, a la glr.c.
5211 * data/lalr1.cc: Likewise.
5212 The header guards are no longer available, so use some other
5213 string than `YYLSP_NEEDED'.
5214
4c6cc1db
AD
52152002-11-16 Akim Demaille <akim@epita.fr>
5216
5217 Make the ``Printers and Destructors'' test more verbose, taking
5218 `yacc.c''s behavior as (possibly wrong) reference.
5219
5220 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
5221 instead of fprint on stdout.
5222 Set and report the last_line of the symbols.
5223 Consistently display values and locations.
5224
6d9e8019
PE
52252002-11-16 Paul Eggert <eggert@twinsun.com>
5226
5227 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
5228
6e649e65
PE
52292002-11-15 Paul Eggert <eggert@twinsun.com>
5230
b25d88f6
PE
5231 * tests/actions.at (Actions after errors): New test case.
5232
6e649e65
PE
5233 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
5234 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
5235 tests/action.at, tests/calc.at, tests/conflicts.at,
5236 tests/cxx-type.at, tests/regression.at:
5237 "parse error" -> "syntax error" for POSIX compatibility.
5238 "parsing stack overflow..." -> "parser stack overflow" so
5239 that code matches Bison documentation.
5240
0f39aab9
AD
52412002-11-15 Akim Demaille <akim@epita.fr>
5242
5243 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
5244 take two BRACED_CODE, not two string_content.
5245 Free the scanner's obstack when we are done.
5246 (code_content): New.
5247 * tests/calc.at: Adjust.
5248 * doc/bison.texinfo: Adjust.
5249 Also, make sure to include the `,' for these declarations.
5250
761c1926
AD
52512002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
5252
5253 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
5254 definition; avoids potential autoreconf problems.
5255
b0f98b10
AD
52562002-11-15 Akim Demaille <akim@epita.fr>
5257
5258 Always check the value returned by yyparse.
5259
5260 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
5261 returned by yyparse.
5262 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
5263 Adjust calls.
5264 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
5265 returned by yyparse.
5266
970785f1
PH
52672002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5268
5269 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
5270 on input.at test.
5271
8fcc7db1
PE
52722002-11-14 Paul Eggert <eggert@twinsun.com>
5273
7ec1b48e
PE
5274 * src/output.c (output_skeleton): Call xfopen instead of
5275 duplicating xfopen's body.
5276
cfff7583 5277 Fix bugs reported by Nelson H. F. Beebe in
161a71f3 5278 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 5279
8fcc7db1
PE
5280 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
5281 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
5282 Group compiler. Instead, use "$CC -E bar.c". Include the .h
5283 file twice in the grammar, as an extra check.
5284
5285 * tests/input.at (Torturing the Scanner): Surround the
5286 backslash-newline tests with "#if 0", to make it less likely that
5287 we'll run into compiler bugs. Bring back solitary \ inside
5288 comment, but add a closing comment to work around HP C bug. Don't
e3aa65c5 5289 test backslash-newline in C character constant.
8fcc7db1 5290
4e8d992c
AD
52912002-11-14 Akim Demaille <akim@epita.fr>
5292
5293 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
5294 status of the compiler.
f32b346d 5295 Calling `exit 1' is no longer needed.
4e8d992c
AD
5296 Reported by Nelson H. F. Beebe.
5297
9501dc6e
AD
52982002-11-14 Akim Demaille <akim@epita.fr>
5299
5300 * tests/atlocal.in (CPPFLAGS): We have config.h.
5301 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
5302 New.
5303 * tests/actions.at, tests/calc.at, tests/conflicts.at,
5304 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
5305 * tests/regression.at, tests/torture.at: Use them for all the
5306 grammars that are to be compiled.
5307 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
5308 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
5309 * doc/bison.texinfo (GLR Parsers): Document `inline'.
5310
18b519c0
AD
53112002-11-14 Akim Demaille <akim@epita.fr>
5312
5313 * doc/bison.texinfo: Various formatting changes (alignments in
5314 samples, additional @group/@end group, GCS in samples.
5315 Use @deffn instead of simple @table to define the directives,
5316 macros, variables etc.
5317
9a86cdb9
PE
53182002-11-13 Paul Eggert <eggert@twinsun.com>
5319
daa33def 5320 Fix some bugs reported by Albert Chin-A-Young in
161a71f3 5321 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 5322
daa33def 5323 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 5324 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
5325 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
5326 * tests/headers.at (export YYLTYPE): Likewise.
5327
5328 * tests/input.at (Torturing the Scanner): Remove lines containing
8fcc7db1 5329 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 5330
9a86cdb9
PE
5331 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
5332 comments, since they're not portable. Use GNU coding style.
5333
9c1e26bd
AD
53342002-11-13 Akim Demaille <akim@epita.fr>
5335
5336 * data/yacc.c: Leave bigger chunks of quoted text.
5337 (YYDSYMPRINTF): New.
5338 Use it to report symbol activities.
5339 * data/glr.c (YYDSYMPRINTF): New.
5340 Use it.
5341
87f721cc
PE
53422002-11-12 Paul Eggert <eggert@twinsun.com>
5343
5344 Version 1.75b.
5345
5346 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
5347 (yyglrReduce): Return yyok, not 0.
5348 This should avoid the enumerated-type warnings reported
464c6927 5349 by Nelson H. F. Beebe in
161a71f3 5350 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
5351
5352 * lib/bbitset.h (BITSET_INLINE): Remove.
5353 * lib/bitset.h [! BITSET_INLINE]: Remove.
5354 (bitset_set, bitset_reset, bitset_test): Rename local vars
5355 to avoid shadowing warnings by GCC.
5356
5357 * data/glr.c (inline): Remove #define. It's the user's
5358 responsibility to #define it away, just like 'const'.
464c6927 5359 This fixes one of the bugs reported by Nelson H. F. Beebe in
161a71f3 5360 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 5361
87f721cc
PE
5362 * Makefile.maint (po-check): Scan .l and .y files instead of the
5363 .c and the .h files that they generate. This fixes the bug
5364 reported by Tim Van Holder in:
161a71f3 5365 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
5366 Look for N_ as well as for _. Try to avoid matching #define for
5367 N_ and _.
5368 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
5369 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
5370 * src/scan-gram.l: Revamp regular expressions so that " and '
5371 do not confuse xgettext.
5372
5373 * src/struniq.h (struniq_new): Do not declare the return type
5374 to be 'const'; this violates the C standard.
5375 * src/struniq.c (struniq_new): Likewise.
5376
be14ade5
AD
53772002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
5378
5379 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
5380 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
5381 linker.
5382
05291fbc
AD
53832002-11-12 Akim Demaille <akim@epita.fr>
5384
5385 * Makefile.maint: Sync with Autoconf:
5386 (local_updates): New.
5387
1f5fd52e
AD
53882002-11-12 Akim Demaille <akim@epita.fr>
5389
5390 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
5391
283f1e64
AD
53922002-11-12 Akim Demaille <akim@epita.fr>
5393
5394 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
5395 locations.
5396
886b69d1
AD
53972002-11-12 Akim Demaille <akim@epita.fr>
5398
5399 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
5400 not yyvalue.
5401
3df37415
AD
54022002-11-12 Akim Demaille <akim@epita.fr>
5403
5404 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
5405 Use it to test the GLR parser.
5406
7bd6c77e
AD
54072002-11-12 Akim Demaille <akim@epita.fr>
5408
5409 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
5410 defines it.
5411 * data/glr.c (yystos): New.
5412 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
5413 (YYDSYMPRINT): New.
5414 (yyval): Don't define it, it is handled via M4.
5415 (yyrecoverParseError): Free verbosely the discarded symbols.
5416 * data/yacc.c (yysymprint): Remove, rather...
5417 (b4_yysymprint_generate): invoke.
5418 * data/c.m4 (b4_yysymprint_generate): New.
5419 Accept pointers as arguments, as opposed to the version from
5420 yacc.c.
5421 (b4_yydestruct_generate): Likewise.
5422 * tests/cations.at (Printers and Destructors): Use Bison directives
5423 instead of CPP macros.
5424 Don't rely on internal details.
5425
b0400cc6
AD
54262002-11-12 Akim Demaille <akim@epita.fr>
5427
5428 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
5429 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
5430 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
5431 it against YYEMPTY and so forth), work on yytoken (i.e., set
5432 it to YYEMPTY etc.).
5433 (yydestruct): Replace with a b4_yydestruct_generate invocation.
5434 (b4_symbol_actions): Remove.
5435 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
5436 for 0, end-of-input.
5437
72f889cc
AD
54382002-11-12 Akim Demaille <akim@epita.fr>
5439
5440 * doc/bison.texinfo (Destructor Decl): New.
5441
b1ae9233
AD
54422002-11-12 Akim Demaille <akim@epita.fr>
5443
5444 * src/tables.c (tables_generate): Use free for pointers that
5445 cannot be NULL, not XFREE.
5446 (pack_vector): Use assert, not fatal, for bound violations.
5447 * src/state.c (state_new): Likewise.
5448 * src/reader.c (reader): Likewise.
5449 * src/lalr.c (set_goto_map): Likewise.
72f889cc 5450 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
5451 the file name.
5452
7ec2d4cd
AD
54532002-11-12 Akim Demaille <akim@epita.fr>
5454
5455 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
5456 Restore.
5457 * src/scan-gram.l (last_string): Is global to the file, not to
5458 yylex.
5459 * src/parse-gram.y (input): Don't append the epilogue here,
5460 (epilogue.opt): do it here, and free the scanner's obstack.
5461 * src/reader.c (epilogue_set): Rename as...
5462 (epilogue_augment): this.
5463 * data/c.m4 (b4_epilogue): Defaults to empty.
5464
573a6cd3
AD
54652002-11-12 Akim Demaille <akim@epita.fr>
5466
5467 * src/getargs.c (long_options): Remove duplicates.
5468 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
5469 Remove.
5470 * doc/bison.rnh: Remove.
5471 * doc/bison.texinfo (VMS Invocation): Remove.
5472
95612cfa
AD
54732002-11-12 Akim Demaille <akim@epita.fr>
5474
5475 * src/struniq.h, src/struniq.c (struniq_t): Is const.
5476 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
5477
5478 Use struniq for symbols.
5479
5480 * src/symtab.h (symbol_t): The tag member is a struniq.
5481 (symbol_type_set): Adjust.
5482 * src/symtab.c (symbol_new): Takes a struniq.
5483 (symbol_free): Don't free the tag member.
5484 (hash_compare_symbol_t, hash_symbol_t): Rename as...
5485 (hash_compare_symbol, hash_symbol): these.
5486 Use the fact that tags as struniqs.
5487 (symbol_get): Use struniq_new.
5488 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
5489 Returns a strniq.
5490 * src/reader.h (merger_list, grammar_currentmerge_set): The name
5491 and type members are struniqs.
5492 * src/reader.c (get_merge_function)
5493 (grammar_current_rule_merge_set): Adjust.
5494 (TYPE, current_type): Are struniq.
5495
5496 Use struniq for file names.
5497
5498 * src/files.h, src/files.c (infile): Split into...
5499 (grammar_file, current_file): these.
5500 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
5501 * src/reduce.c (reduce_print): Likewise.
5502 * src/getargs.c (getargs): Likewise.
5503 * src/complain.h, src/complain.c: Likewise.
5504 * src/main.c (main): Call struniqs_new early enough to use it for
5505 file names.
5506 Don't free the input file name.
5507
3e6656f9
AD
55082002-11-12 Akim Demaille <akim@epita.fr>
5509
5510 * src/symtab.c (symbol_free): Remove dead deactivated code:
5511 type_name are properly removed.
5512 Don't use XFREE to free items that cannot be NULL.
5513 * src/struniq.h, src/struniq.c: New.
5514 * src/main.c (main): Initialize/free struniqs.
5515 * src/parse-gram.y (%union): Add astruniq member.
5516 (yyprint): Adjust.
5517 * src/scan-gram.l (<{tag}>): Return a struniq.
5518 Free the obstack bit that used to store it.
5519 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
5520
7672019c
PE
55212002-11-11 Paul Eggert <eggert@twinsun.com>
5522
5523 Revamp to fix many (but not all) of the C- and M4-related quoting
5524 problems. Among other things, this fixes the Bison bug reported
5525 by Jan Hubicka when processing the Bash grammar; see:
161a71f3 5526 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
5527
5528 Use new @ escapes consistently. Represent brackets with @{ and @}
5529 rather than @<:@ and @:>@, since this works a bit better with dumb
5530 editors like vi. Represent @ with @@, since @ is now consistently
5531 an escape. Use @oline@ and @ofile@ rather than __oline__ and
5532 __ofile__, to avoid unexpected expansions. Similarly, use @output
5533 rather than #output.
5534
5535 * data/c.m4 (b4_copyright): Omit file name from comment, since
5536 the file name could contain "*/".
5537 (b4_synclines_flag): Don't quote the 2nd argument; it should already
5538 be quoted. All uses changed.
5539
5540 * data/glr.c: Use new @ escapes consistently.
5541 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
5542 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
5543 Remove, since they couldn't handle arbitrary characters in file
5544 names.
5545 * data/lalr1.cc: Likewise.
5546 * data/yacc.c: Likewise.
5547
5548 * src/files.c (output_infix): Remove; all uses removed.
5549 * src/files.h: Likewise.
5550
5551 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
5552 mishandled funny characters in file names, and anyway it isn't
5553 needed any more.
5554 * data/yacc.c: Likewise.
5555 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
5556
5557 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
5558 * data/yacc.c: Likewise.
5559
5560 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
5561 strings now.
5562 (muscle_init): Quote filename as a C string.
5563 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
5564 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
5565 * src/output.c (escaped_file_name_output): New function.
5566 (prepare_symbols): Quote tokens for M4.
5567 (prepare): Don't insert output_infix, output_prefix,
5568 output_parser_name, output_header_name; this is now down by scan-skel.
5569 Insert skeleton as a C string.
5570
5571 * src/output.c (user_actions_output, symbol_destructors_output,
5572 symbol_printers_output): Quote filenames for C and M4.
5573 * src/reader.c (prologue_augment, epilogue_set): Likewise.
5574
5575 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
5576 escapes other than \\ and \'; this simplifies the code.
5577 (<SC_STRING>): Likewise, for \\ and \".
5578 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
5579 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
5580 Use new escapes @{ and @} for [ and ].
5581
5582 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
5583 them with auto vars.
5584 Switch to new escape scheme, where @ is the escape character uniformly.
5585 Abort if a stray escape character is found. Avoid unbounded input
5586 buffer when parsing non-escaped text.
5587
5588 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
5589 __oline__, #output, $@, and @{ do not have unintended meanings.
5590
acea4f3b
PE
55912002-11-09 Paul Eggert <eggert@twinsun.com>
5592
5593 Fix the test failure due to GCC warnings described in
161a71f3 5594 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
5595 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
5596 evaluate to 0 if it's impossible for NINF to be in the respective
5597 table.
5598 (yygetLRActions, yyrecoverParseError): Use them.
5599
5600 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
5601 counted in the token inserted at end of file. Now takes
5602 location_t *, not location_t, so that the location can be
5603 adjusted. All uses changed.
5604
5605 * tests/regression.at (Invalid inputs): Adjust wording in
5606 diagnostic to match the new behavior.
5607
5608 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
5609 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
5610 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
5611 abort ();'. This reduces the runtime of the "Many lookaheads"
5612 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
5613 GCC 3.2.
5614
20ef1ad5
PE
56152002-11-07 Paul Eggert <eggert@twinsun.com>
5616
5617 * src/parse-gram.y (CHARACTER): Remove unused token.
5618 All uses removed.
5619
5620 * src/scan-gram.l: Remove stack option. We no longer use the
5621 stack, since the stack was never deeper than 1; instead, use the
5622 new auto var c_context to record the stacked value.
5623
5624 Remove nounput option. At an unexpected end of file, we now unput
5625 the minimal input necessary to end cleanly; this simplifies the
5626 code.
5627
5628 Avoid unbounded token sizes where this is easy.
5629
5630 (unexpected_end_of_file): New function.
5631 Use it to systematize the error message on unexpected EOF.
5632 (last-string): Now auto, not static.
5633 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
5634 (scanner_last_string_free): Remove; not used.
5635 (percent_percent_count): Move decl to just before use.
5636 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
5637 not the (never otherwised-used) CHARACTER.
5638
93724f13
AD
56392002-11-07 Akim Demaille <akim@epita.fr>
5640
5641 Let yyerror always receive the msg as last argument, so that
5642 yyerror can be variadic.
5643
5644 * data/yacc.c (b4_yyerror_args): New.
5645 Use it when calling yyerror.
5646 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
5647 Use it when calling yyerror.
5648 * doc/bison.texinfo (Error Reporting): Adjust.
5649 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
5650 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
5651
6e40b4eb
AD
56522002-11-06 Akim Demaille <akim@epita.fr>
5653
5654 #line should have quoted strings.
5655 Ideally, this should be done by m4_quotearg.
5656
5657 * src/scan-skel.l: Include quotearg.h.
5658 Quote __ofile__.
5659 * src/output.c (symbol_printers_output)
5660 (symbol_destructors_output): Quote the file name.
5661
2dfbfc12
AD
56622002-11-06 Akim Demaille <akim@epita.fr>
5663
5664 * tests/regression.at (Invalid inputs): Adjust to the recent
5665 messages.
5666
437c2d80
AD
56672002-11-06 Akim Demaille <akim@epita.fr>
5668
5669 Restore --no-lines.
5670 Reported by Jim Kent.
5671
5672 * data/c.m4 (b4_syncline): New.
5673 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
5674 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
5675 * src/output.c (user_actions_output): Likewise.
5676 (prepare): Define 'b4_synclines_flag'.
2dfbfc12 5677 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 5678
900c5db5
AD
56792002-11-06 Akim Demaille <akim@epita.fr>
5680
5681 * src/main.c (main): Free `infile'.
5682 * src/scan-gram.l (handle_syncline): New.
5683 Recognize `#line'.
5684 * src/output.c (user_actions_output, symbol_destructors_output)
5685 (symbol_printers_output): Use the location's file name, not
5686 infile.
5687 * src/reader.c (prologue_augment, epilogue_set): Likewise.
5688
e183b123 56892002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 5690
e183b123 5691 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 5692 either has GLR conflict entries.
e183b123 5693
193eb6b7
PE
56942002-11-05 Paul Eggert <eggert@twinsun.com>
5695
e183b123
PE
5696 * src/scan-gram.l: Use more accurate diagnostics, e.g.
5697 "integer out of range" rather than "invalid value".
5698 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
5699 accordingly.
5700
193eb6b7
PE
5701 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
5702 Also, remove one static variable in the scanner.
5703
5704 * src/scan-gram.l (braces_level): Now auto, not static.
5705 Initialize to zero if the compiler is being picky.
5706 (INITIAL): Clear braces_level instead of incrementing it.
5707 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
5708 as POSIX 1003.1-2001 requires.
5709 * src/system.h (IF_LINT): New macro, taken from coreutils.
5710 * configure.ac: Define "lint" if --enable-gcc-warnings.
5711
29c01725
AD
57122002-11-05 Akim Demaille <akim@epita.fr>
5713
5714 * src/scan-gram.l: When it starts with `%', complain about the
5715 whole directive, not just that `invalid character: %'.
5716
8aeac3ca
AD
57172002-11-04 Akim Demaille <akim@epita.fr>
5718
5719 * Makefile.maint: Update from Autoconf.
5720 (update, cvs-update, po-update, do-po-update): New.
5721
793a58bb
AD
57222002-11-04 Akim Demaille <akim@epita.fr>
5723
5724 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
5725 and yyerror.
5726 Have yyerror `use' its arguments.
5727 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
5728 returns true when location & yacc & pure & parse-param.
5729 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
5730
c4d720cd
AD
57312002-11-04 Akim Demaille <akim@epita.fr>
5732
5733 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
5734 clashes.
5735 * src/scan-gram.l: Use [\'] instead of ['] to pacify
5736 font-lock-mode.
5737 Use complain_at.
5738 Use quote, not quote_n since LOCATION_PRINT no longer uses the
5739 slot 0.
5740
613a0dc5
PE
57412002-11-03 Paul Eggert <eggert@twinsun.com>
5742
5743 * src/reader.c (get_merge_function, grammar_current_rule_check):
5744 Use consistent diagnostics for reporting type name clashes.
5745 Quote the types with <>, for consistency with Yacc.
5746 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
5747
2a8d363a
AD
57482002-11-03 Akim Demaille <akim@epita.fr>
5749
5750 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
5751 New.
5752 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
5753 (b4_parse_param): Remove.
5754 Use b4_identification.
5755 Propagate b4_pure_args where needed to pass them to yyerror.
5756 * data/glr.m4 (b4_parse_param): Remove.
5757 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
5758 (b4_lpure_formals): New.
5759 Use b4_identification.
5760 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
5761 b4_user_formals and b4_user_args.
5762 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
5763 (yyreportAmbiguity): When using a pure parser, also need
5764 the location, and the parse-params.
5765 Adjust callers.
5766 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
5767 When using a pure parser, also need the parse-params.
5768 Adjust callers.
5769 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
5770 (%pure-parser + %parse-param) LALR and GLR parsers.
5771 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
5772 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
5773 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
5774 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
5775 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
5776 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
5777 * doc/bison.texinfo: Untabify the whole file.
5778 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
5779 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
5780 (Error Reporting): Adjust to these new directives.
5781 Document %error-verbose, deprecate YYERROR_VERBOSE.
5782
9e32add8
AD
57832002-11-03 Akim Demaille <akim@epita.fr>
5784
5785 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
5786 AT_CHECK_CALC_GLR invocations to use % directives, instead of
5787 command line options.
5788 * tests/cxx-type.at: Formatting changes.
5789
b02d90a5
PE
57902002-11-03 Paul Eggert <eggert@twinsun.com>
5791
5792 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
5793 to count columns correctly, and to check for invalid inputs.
9e32add8 5794
b02d90a5
PE
5795 Use mbsnwidth to count columns correctly. Account for tabs, too.
5796 Include mbswidth.h.
5797 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
5798 (extend_location): New function.
5799 (YY_LINES): Remove.
5800
5801 Handle CRLF in C code rather than in Lex code.
5802 (YY_INPUT): New macro.
5803 (no_cr_read): New function.
5804
5805 Scan UCNs, even though we don't fully handle them yet.
5806 (convert_ucn_to_byte): New function.
5807
5808 Handle backslash-newline correctly in C code.
5809 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
5810 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
5811 all uses changed.
5812 (tag, splice): New EREs. Do not allow NUL or newline in tags.
5813 Use {splice} wherever C allows backslash-newline.
5814 YY_STEP after space, newline, vertical-tab.
5815 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
9e32add8 5816
b02d90a5
PE
5817 (letter, id): Don't assume ASCII; e.g., spell out a-z.
5818
5819 ({int}, handle_action_dollar, handle_action_at): Check for integer
5820 overflow.
9e32add8 5821
b02d90a5
PE
5822 (YY_STEP): Omit trailing semicolon, so that it's more like C.
5823
5824 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
5825 as well as \000. Check for UCHAR_MAX, not 255.
5826 Allow \x with an arbitrary positive number of digits, as in C.
5827 Check for overflow here.
5828 Allow \? and UCNs, for compatibility with C.
5829
5830 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
5831 with quote slot used by complain_at.
5832
5833 * tests/input.at: Add tests for backslash-newline, m4 quotes
5834 in symbols, long literals, and funny escapes in strings.
5835
5836 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
5837 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
5838 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
5839 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
5840 * m4/mbswidth.m4: New file, from GNU coreutils.
5841
5842 * doc/bison.texinfo (Grammar Outline): Document // comments.
5843 (Symbols): Document that trigraphs have no special meaning in Bison,
5844 nor is backslash-newline allowed.
5845 (Actions): Document that trigraphs have no special meaning.
5846
5847 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
5848 no longer used.
5849
58502002-11-02 Paul Eggert <eggert@twinsun.com>
5851
5852 * src/reader.c: Don't include quote.h; not needed.
5853 (get_merge_function): Reword warning to be consistent with
5854 type clash diagnostic in grammar_current_rule_check.
5855
5856 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
5857 bug in trigraph handling.
5858
5859 * src/output.c (prepare_symbols): When printing token names,
5860 escape "[" as "@<:@" and likewise for "]".
5861
5862 * src/system.h (errno): Remove declaration, as we are now
5863 assuming C89 or better, and C89 guarantees errno.
5864
762b212b
PE
58652002-10-30 Paul Eggert <eggert@twinsun.com>
5866
5867 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
5868 Check for close failures.
5869 * src/files.h (xfclose): Return void, not int, since it always
5870 returned zero.
5871 * src/files.c (xfclose): Likewise. Report I/O error if ferror
5872 indicates one.
5873 * src/output.c (output_skeleton): Use xfclose rather than fclose
5874 and ferror. xfclose now checks ferror.
5875
5876 * data/glr.c (YYLEFTMOST_STATE): Remove.
5877 (yyreportTree): Use a stack-based leftmost state. This avoids
5878 our continuing battles with bogus warnings about initializers.
5879
56100c60
AD
58802002-10-30 Akim Demaille <akim@epita.fr>
5881
5882 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
5883 #if.
5884
51b4a04c
PH
58852002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5886
5887 * tests/glr-regr1.at: New test for reported regressions.
5888 * tests/testsuite.at: Add glr-regr1.at test.
5889 * tests/Makefile.am: Add glr-regr1.at test.
e183b123 5890
bf1ebda2
PE
58912002-10-24 Paul Eggert <eggert@twinsun.com>
5892
5c16c6b1
PE
5893 Version 1.75a.
5894
bf1ebda2
PE
5895 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
5896 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
5897 we use malloc. Don't assume 'A' through 'Z' are contiguous.
5898 Don't assume strdup exists; POSIX says its an XSI extension.
5899 Check for buffer overflow on input.
5900
b526ee61
AD
59012002-10-24 Akim Demaille <akim@epita.fr>
5902
5903 * src/output.c (output_skeleton): Don't disable M4sugar comments
5904 too soon: it results in comments being expanded.
5905 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
5906 first output.
5907
f1886bb2
AD
59082002-10-24 Akim Demaille <akim@epita.fr>
5909
5910 * data/yacc.c (m4_int_type): New.
5911 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
5912 char' as only yacc.c wants K&R portability.
5913 * data/glr.c (yysigned_char): Remove.
5914 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
5915 Reported by Quoc Peyrot.
5916
c5576256
PE
59172002-10-23 Paul Eggert <eggert@twinsun.com>
5918
5919 * src/main.c (main): With --trace=time, report times even if a
5920 non-fatal error occurs. Formerly, the times were reported in some
5921 such cases but not in others.
5922 * src/reader.c (reader): Just return if a complaint has been issued,
5923 instead of exiting, so that 'main' can report times.
5924
27b0ffea
AD
59252002-10-22 Akim Demaille <akim@epita.fr>
5926
5927 * src/system.h: Include sys/types.
5928 Reported by Bert Deknuydt.
5929
223a7883
PE
59302002-10-23 Paul Eggert <eggert@twinsun.com>
5931
5932 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
5933 Suggested by Art Haas.
5934
59352002-10-22 Paul Eggert <eggert@twinsun.com>
5936
5937 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
5938 decl; not needed any more.
5939 * src/main.c (main): Use return to exit, undoing yesterday's change.
5940 The last OS that we could find where this wouldn't work is
5941 SunOS 3.5, and that's too old to worry about now.
5942
5943 * data/glr.c (struct yyltype): Define members even when not
5944 doing locations. This is more consistent with yacc.c, and it
5945 works around the following bug reports:
161a71f3
PE
5946 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
5947 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
27b0ffea 5948
223a7883
PE
5949 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
5950 @acronym consistently. Standardize on "Yacc" instead of "YACC",
5951 "Algol" instead of "ALGOL". Give a bit more history about BNF.
5952
8b76775a
AD
59532002-10-22 Akim Demaille <akim@epita.fr>
5954
5955 * data/README: New.
5956
6db10d14
PE
59572002-10-21 Paul Eggert <eggert@twinsun.com>
5958
5959 Be consistent about 'bool'; the old code used an enum in one
5960 module and an int in another, and this violates the C standard.
5961 * m4/stdbool.m4: New file, from coreutils 4.5.3.
5962 * configure.ac (AC_HEADER_STDBOOL): Add.
5963 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
5964 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
5965 * src/symtab.c (hash_compare_symbol_t): Likewise.
5966 * src/system.h (bool, false, true): Use a definition consistent
5967 with ../lib/hash.c. All uses changed.
5968
5969 * src/complain.c (warning_issued): Renamed from warn_message_count,
5970 so that we needn't worry about integer overflow (!).
5971 Now of type bool. All uses changed.
5972 (complaint_issued): Renamed from complain_message_count; likewise.
5973
5974 * src/main.c (main): Use exit to exit with failure.
27b0ffea 5975
6db10d14
PE
5976 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
5977 rather than 1 and 0.
5978 * src/main.c (main): Likewise.
5979 * src/getargs.c (getargs): Likewise.
5980 * src/reader.c (reader): Likewise.
5981
5982 * src/getarg.c (getargs): Remove duplicate code for
5983 "Try `bison --help'".
5984
5985 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
5986 What was that "2" for?
5987
5988 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
5989 * src/getargs.c (usage): Likewise.
5990
5991 * src/getargs.c (getargs): When there are too few operands, report
5992 the last one. When there are too many, report the first extra
5993 one. This is how diffutils does it.
5994
92a060fd
PE
59952002-10-20 Paul Eggert <eggert@twinsun.com>
5996
5997 Remove K&R vestiges.
5998 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
5999 * src/complain.c (VA_START): Remove. Assume prototypes.
6000 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
6001 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
6002 fatal): Assume prototypes.
6003 * src/complain.h: Assume prototypes.
6004 * src/system.h (PARAMS): Remove.
6005 Include <limits.h> unconditionally, since it's guaranteeed even
6006 for a freestanding C89 compiler.
6007 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
6008 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
8b76775a 6009
e7cb57c0
AD
60102002-10-20 Akim Demaille <akim@epita.fr>
6011
6012 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
6013 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
6014 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
6015 (yyresolveStates, yyresolveAction, yyresolveStack)
6016 (yyprocessOneStack): Use them.
6017 (yy_reduce_print): New.
6018 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
6019
0245f82d
AD
60202002-10-20 Akim Demaille <akim@epita.fr>
6021
6022 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
6023 arguments and output `void'.
6024 (b4_c_function): Rename as...
6025 (b4_c_function_def): this.
6026 (b4_c_function_decl, b4_c_ansi_function_def)
6027 (b4_c_ansi_function_decl): New.
6028 Change the interpretation of the arguments: before `int, foo', now
6029 `int foo, foo'.
6030 * data/yacc.c (yyparse): Prototype and define thanks to these.
6031 Adjust b4_c_function_def uses.
6032 * data/glr.c (yyparse): Likewise, but ANSI only.
6033
39912f52
AD
60342002-10-20 Akim Demaille <akim@epita.fr>
6035
6036 * src/output.c (prepare): Move the definition of `tokens_number',
6037 `nterms_number', `undef_token_number', `user_token_number_max'
6038 to...
6039 (prepare_tokens): Here.
6040 (prepare_tokens): Rename as...
6041 (prepare_symbols): this.
6042 (prepare): Move the definition of `rules_number' to...
6043 (prepare_rules): here.
6044 (prepare): Move the definition of `last', `final_state_number',
6045 `states_number' to...
6046 (prepare_states): here.
6047 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
6048
20c1e2ad
AD
60492002-10-20 Akim Demaille <akim@epita.fr>
6050
6051 * src/tables.h, src/tables.c, src/output.c: Comment changes.
6052
21964f43
AD
60532002-10-20 Akim Demaille <akim@epita.fr>
6054
6055 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
6056 * data/c.m4: here.
6057
66d30cd4
AD
60582002-10-20 Akim Demaille <akim@epita.fr>
6059
6060 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
6061 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
6062 `pair'.
6063 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
6064 `name' to...
6065 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
6066 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
6067 These.
6068
95f2c9fe
PE
60692002-10-19 Paul Eggert <eggert@twinsun.com>
6070
6071 Do not create a temporary file, as that involves security and
6072 cleanup headaches. Instead, use a pair of pipes.
6073 Derived from a suggestion by Florian Krohm.
6074 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
6075 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
6076 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
6077 (BISON_PREREQ_SUBPIPE): Add.
6078 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
6079 Add subpipe.h, subpipe.c.
6080 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
6081 * po/POTFILES.in: Add lib/subpipe.c.
6082 * src/output.c: Include "subpipe.h".
6083 (m4_invoke): Remove decl.
6084 (scan_skel): New decl.
6085 (output_skeleton): Use pipe rather than temporary file for m4 input.
6086 Check that m4sugar.m4 is readable, to avoid deadlock.
6087 Check for pipe I/O error.
6088 * src/scan-skel.l (readpipe): Remove decl.
6089 (scan_skel): New function, to be used in place of m4_invoke.
6090 Read from stream rather than file.
66d30cd4 6091
95f2c9fe
PE
6092 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
6093 float, as this generates a warning on Solaris 8 + GCC 3.2 with
6094 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
6095 this generates a more-accurate value anyway.
6096
6097 * lib/timevar.c (timervar_accumulate): Rename locals to
6098 avoid confusion with similarly-named more-global.
6099 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
6100
6101 * src/output.c (prepare): Use xstrdup to convert char const *
6102 to char *, to avoid GCC warning.
6103
c19988b7
AD
61042002-10-19 Akim Demaille <akim@epita.fr>
6105
6106 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
6107 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
6108 Use them to have `calc.y' ready for %pure-parser.
6109 * data/yacc.c (YYLEX): Pass a yylex return type to
6110 b4_c_function_call.
6111
ae7453f2
AD
61122002-10-19 Akim Demaille <akim@epita.fr>
6113
6114 Prototype support of %lex-param and %parse-param.
6115
6116 * src/parse-gram.y: Add the definition of the %lex-param and
6117 %parse-param tokens, plus their rules.
6118 Drop the `_' version of %glr-parser.
6119 Add the "," token.
6120 * src/scan-gram.l (INITIAL): Scan them.
6121 * src/muscle_tab.c: Comment changes.
6122 (muscle_insert, muscle_find): Rename `pair' as `probe'.
6123 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
6124 (muscle_entry_s): The `value' member is no longer const.
6125 Adjust all dependencies.
6126 * src/muscle_tab.c (muscle_init): Adjust: use
6127 MUSCLE_INSERT_STRING.
6128 Initialize the obstack earlier.
6129 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
6130 (muscle_pair_list_grow): New.
6131 * data/c.m4 (b4_c_function_call, b4_c_args): New.
6132 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
6133 * tests/calc.at: Use %locations, not --locations.
6134 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
6135
0e575721
AD
61362002-10-19 Akim Demaille <akim@epita.fr>
6137
6138 * src/getargs.c (usage): Take status as argument and exit
6139 accordingly.
6140 Report the traditional `Try ... --help' message when status != 0.
6141 (usage, version): Don't take a FILE * as arg, it is pointless.
6142 (getargs): When there is an incorrect number of arguments, make it
6143 an error, and report it GNUlically thanks to `usage ()'.
6144
724ce7f5
PE
61452002-10-18 Paul Eggert <eggert@twinsun.com>
6146
3a781eb2
PE
6147 * data/glr.c (yyreportParseError): Don't assume that sprintf
6148 yields the length of the printed string, as this is not true
6149 on SunOS 4.1.4. Reported by Peter Klein.
6150
724ce7f5
PE
6151 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
6152 * tests/conflicts.at (%nonassoc and eof): Likewise.
6153 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
6154
473d0a75
AD
61552002-10-17 Akim Demaille <akim@epita.fr>
6156
6157 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
6158 * src/getargs.c (trace_types, trace_args): Adjust.
6159 * src/reader.c (grammar_current_rule_prec_set)
6160 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
6161 Standardize error messages.
6162 And s/@prec/%prec/!
6163 (reader): Use trace_flag to enable scanner/parser debugging,
6164 instead of an adhoc scheme.
6165 * src/scan-gram.l: Remove trailing debugging code.
6166
e76d2469
PE
61672002-10-16 Paul Eggert <eggert@twinsun.com>
6168
93e2236a
PE
6169 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
6170 MUSCLE_TAB_H.
6171
e76d2469
PE
6172 * NEWS: Officially drop support for building Bison with K&R C,
6173 since it didn't work anyway and it's not worth worrying about.
6174 * Makefile.maint (wget_files): Remove ansi2knr.c.
6175 (ansi2knr.c-url_prefix): Remove.
6176 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
6177 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6178 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6179
5bd1c419
PE
61802002-10-15 Paul Eggert <eggert@twinsun.com>
6181
6182 Stop using the "enum_" trick for K&R-style function definitions;
6183 it confused me, and I was the author! Instead, assume that people
6184 who want to use K&R C compilers (when using these modules in GCC,
6185 perhaps?) will run ansi2knr.
6186
6187 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
6188 All uses of "enum_" changed to "enum ".
6189 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
6190 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
e76d2469 6191
5bd1c419
PE
6192 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
6193 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
6194 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
6195 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
6196 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
6197 abitset_not, abitset_ones, abitset_or, abitset_or_and,
6198 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
6199 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
6200 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
6201 Use function prototypes; this removes the need for declaring
6202 static functions simply to provide their prototypes.
6203 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
6204 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
6205 bitset_count_, bitset_create, bitset_dump, bitset_first,
6206 bitset_free, bitset_init, bitset_last, bitset_next,
6207 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
6208 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
6209 bitset_print, bitset_release_memory, bitset_toggle_,
6210 bitset_type_choose, bitset_type_get, bitset_type_name_get,
6211 debug_bitset): Likewise.
6212 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
6213 * lib/bitset_stats.c (bitset_log_histogram_print,
6214 bitset_percent_histogram_print, bitset_stats_and,
6215 bitset_stats_and_cmp, bitset_stats_and_or,
6216 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
6217 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
6218 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
6219 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
6220 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
6221 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
6222 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
6223 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
6224 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
6225 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
6226 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
6227 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
6228 bitset_stats_zero): Likewise.
6229 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
6230 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
6231 bitsetv_dump, debug_bitsetv): Likewise.
6232 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
6233 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
6234 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
6235 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
6236 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
6237 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
6238 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
6239 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
6240 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
6241 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
6242 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
6243 Likewise.
6244 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
6245 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
6246 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
6247 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
6248 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
6249 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
6250 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
6251 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
6252 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
6253 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
6254 lbitset_xor_cmp, lbitset_zero): Likewise.
e76d2469 6255
ae26e1f0
AD
62562002-10-14 Akim Demaille <akim@epita.fr>
6257
6258 Version 1.75.
6259
d43baf71
AD
62602002-10-14 Akim Demaille <akim@epita.fr>
6261
6262 * tests/Makefile.am (maintainer-check-posix): New.
6263
7ebc83e3
AD
62642002-10-14 Akim Demaille <akim@epita.fr>
6265
6266 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
6267 member.
6268
05846dae
AD
62692002-10-14 Akim Demaille <akim@epita.fr>
6270
6271 * src/tables.c (table_ninf_remap): base -> tab.
6272 Reported by Matt Rosing.
6273
1318e37d
PE
62742002-10-14 Paul Eggert <eggert@twinsun.com>
6275
447fbb17
PE
6276 * tests/action.at, tests/calc.at, tests/conflicts.at,
6277 tests/cxx-type.at, tests/headers.at, tests/input.at,
6278 tests/regression.at, tests/synclines.at, tests/torture.at:
6279 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
6280 so that the tests still work even if POSIXLY_CORRECT is set.
6281 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
05846dae 6282
1318e37d
PE
6283 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
6284 for portability to K&R hosts. Fix typo: signed char is guaranteed
6285 only to 127, not to 128.
6286 * data/glr.c (yysigned_char): New type.
6287 * data/yacc.c (yysigned_char): Likewise.
6288 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
6289
cc0f0794
PE
62902002-10-13 Paul Eggert <eggert@twinsun.com>
6291
5038f418
PE
6292 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
6293 true due to limited range of data type" warning from GCC.
6294
cc0f0794
PE
6295 * data/c.m4 (b4_token_defines): Protect against double-inclusion
6296 by wrapping enum yytokentype's definition inside #ifndef
6297 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
6298
6fed0802
AD
62992002-10-13 Akim Demaille <akim@epita.fr>
6300
6301 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
6302 Un yy- yyrhs to avoid the name clash with the global YYRHS.
6303
32f0598d
AD
63042002-10-13 Akim Demaille <akim@epita.fr>
6305
6306 * Makefile.maint: Update from Autoconf 2.54.
6307 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
6308
7ea9a33f
AD
63092002-10-13 Akim Demaille <akim@epita.fr>
6310
6311 * src/print.c (print_state): Separate the list of solved conflicts
6312 from the other items.
6313 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
6314
ea99527d
AD
63152002-10-13 Akim Demaille <akim@epita.fr>
6316
6317 Let nondeterministic skeletons be usable with deterministic
6318 tables.
6319
6320 With the patch, GAWK compiled by GCC without -O2 passes its test
6321 suite using a GLR parser driven by LALR tables. It fails with -O2
6322 because `struct stat' gives two different answers on my machine:
6323 88 (definition of an auto var) and later 96 (memset on this var).
6324 Hence the stack is badly corrumpted. The headers inclusion is to
6325 blame: if I move the awk.h inclusion before GLR's system header
6326 inclusion, the two struct stat have the same size.
6327
6328 * src/tables.c (pack_table): Always create conflict_table.
6329 (token_actions): Always create conflict_list.
6330 * data/glr.c (YYFLAG): Remove, unused.
6331
f377f69f
AD
63322002-10-13 Akim Demaille <akim@epita.fr>
6333
6334 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
6335 (O0FLAGS): New.
6336 (VALGRIND, GXX): New.
6337 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
6338 * tests/bison.in: Run $PREBISON a pre-command.
6339 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
6340 (maintainer-check-g++): New.
6341 * Makefile.am (maintainer-check): New.
6342
2a1fe6ed
AD
63432002-10-13 Akim Demaille <akim@epita.fr>
6344
6345 * data/glr.c: Formatting changes.
6346 Tweak some trace messages to match yacc.c's.
6347
f50adbbd
AD
63482002-10-13 Akim Demaille <akim@epita.fr>
6349
6350 GLR parsers sometimes raise parse errors instead of performing the
6351 default reduction.
6352 Reported by Charles-Henry de Boysson.
6353
6354 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
ba0fe3c7 6355 check the length of the traces when %glr.
f50adbbd
AD
6356 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
6357 GLR's traces.
6358 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
6359 Test GLR parsers.
6360 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
6361 (yyltype): Remove the yy prefix from the member names.
6362 (yytable): Complete its comment.
6363 (yygetLRActions): Map error action number from YYTABLE from
6364 YYTABLE_NINF to 0.
6365 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
6366 (which was a bug: it should have been YYTABEL_NINF, and yet it was
6367 not satisfying as we could compare an YYACTION computed from
6368 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
6369 only value for error actions.
6370 (yyreportParseError): In verbose parse error messages, don't issue
6371 `error' in the list of expected tokens.
6372 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
6373 next action to perform to match glr.c's decoding.
6374 (yytable): Complete its comment.
6375
bcbad5b9
PE
63762002-10-13 Paul Eggert <eggert@twinsun.com>
6377
6378 Fix problem reported by Henrik Grubbstroem in
161a71f3 6379 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
6380 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
6381 because the Bison parser reads the second action before reducing
6382 the first one.
6383 * src/scan-gram.l (rule_length): New static var.
6384 Use it to keep track of the rule length in the scanner, since
6385 we can't expect the parser to be in lock-step sync with the scanner.
6386 (handle_action_dollar, handle_action_at): Use this var.
6387 * tests/actions.at (Exotic Dollars): Test for the problem.
05846dae 6388
14904b89
PE
63892002-10-12 Paul Eggert <eggert@twinsun.com>
6390
1fe611e5
PE
6391 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
6392 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
6393 Include <sys/time.h> when checking for clock_t and struct tms.
6394 Use same include order as source.
6395 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
161a71f3 6396 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 6397
1fe611e5
PE
6398 * lib/timevar.c: Update copyright date and clarify comments.
6399 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 6400
1fe611e5
PE
6401 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
6402 GCC version as of today, then merge Bison's changes.
6403 Change "GCC" to "Bison" in copyright notice. timevar.def's
6404 author is Akim, so change that too.
6405
98194095
PE
6406 * src/reader.c (grammar_current_rule_check):
6407 Don't worry about the default action if $$ is untyped.
6408 Prevents bogus warnings reported by Jim Gifford in
161a71f3 6409 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 6410
14904b89
PE
6411 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
6412 * data/glr.c, data/lalr1.cc, data/yacc.c:
6413 Output token definitions before the first part of user declarations.
6414 Fixes compatibility problem reported by Jim Gifford for kbd in
161a71f3 6415 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 6416
ff6dca18
PE
64172002-10-11 Paul Eggert <eggert@twinsun.com>
6418
6419 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
6420 (yyparse): here. This undoes some of the 2002-07-25 change.
6421 Compatibility problem reported by Ralf S. Engelschall with
6422 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
6423
eb714592
AD
64242002-10-11 Akim Demaille <akim@epita.fr>
6425
6426 * tests/regression.at Characters Escapes): New.
6427 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
6428 characters.
6429 Reported by Jan Nieuwenhuizen.
6430
b7195100
AD
64312002-10-11 Akim Demaille <akim@epita.fr>
6432
6433 * po/id.po: New.
6434
f28a0f2d
PE
64352002-10-10 Paul Eggert <eggert@twinsun.com>
6436
6437 Portability fixes for bitsets; this also avoids several GCC
6438 warnings.
6439
6440 * lib/abitset.c: Include <stddef.h>, for offsetof.
6441 * lib/lbitset.c: Likewise.
6442
6443 * lib/abitset.c (abitset_bytes): Return a size that is aligned
6444 properly for vectors of objects. Do not assume that adding a
6445 header size to a multiple of a word size yields a value that is
6446 properly aligned for the whole union.
6447 * lib/bitsetv.c (bitsetv_alloc): Likewise.
6448
6449 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
6450 unique names for structures.
6451 * lib/ebitset.c (ebitset_bytes): Likewise.
6452 * lib/lbitset.c (lbitset_bytes): Likewise.
6453
6454 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
6455 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
6456 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
6457 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
6458 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
6459 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
6460 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
6461 to improve the type-checking that GCC can do.
6462 * lib/bitset.c (bitset_op4_cmp): Likewise.
6463 * lib/bitset_stats.c (bitset_stats_count,
6464 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
6465 bitset_stats_copy, bitset_stats_disjoint_p,
6466 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
6467 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
6468 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
6469 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
6470 bitset_stats_and_or_cmp, bitset_stats_andn_or,
6471 bitset_stats_andn_or_cmp, bitset_stats_or_and,
6472 bitset_stats_or_and_cmp): Likewise.
6473 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
6474 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
6475 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
6476 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
6477
6478 * lib/abitset.h: Include bitset.h, not bbitset.h.
6479 * lib/ebitset.h: Likewise.
6480 * lib/lbitset.h: Likewise.
6481
6482 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
6483 All instances of parameters of type enum bitset_opts are now of
6484 type enum_bitset_opts, to conform to the C Standard, and similarly
6485 for enum_bitset_type.
6486 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
6487 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
6488
6489 Do not use "struct bitset_struct" to mean different things in
6490 different modules. Not only is this confusing, it violates
6491 the C Standard, which requires that structure types in different
6492 modules must be compatible if one is to be passed to the other.
6493 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
6494 All instances of "struct bitset_struct *" replaced with "bitset".
6495 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
6496 (union bitset_union, struct abitset_struct, struct ebitset_struct,
6497 struct lbitset_struct, struct bitset_stats_struct): New types.
6498 All uses of struct bitset_struct changed to union bitset_union,
6499 etc.
ba0fe3c7 6500 * lib/abitset.c (struct abitset_struct, abitset,
f28a0f2d
PE
6501 struct bitset_struct): Remove.
6502 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
6503 struct bitset_struct): Remove.
6504 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
6505 bitset_struct): Remove.
6506 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
6507 Likewise.
6508
6509 Do not call a function of type T using a call that assumes the
6510 function is of a different type U. Standard C requires that a
6511 function must be called with a type that is compatible with its
6512 definition.
6513 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
6514 New decls.
6515 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
6516 New functions.
6517 * lib/ebitset.c (PFV): Remove.
6518 * lib/lbitset.c (PFV): Likewise.
6519 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
6520 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
6521 decls.
6522 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
6523 (ebitset_vtable): Use them.
6524 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
6525 lbitset_xor): New functions.
6526 (lbitset_vtable): Use them.
6527
6528 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
6529 Declare.
6530
6531 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
6532 GCC warning.
6533 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
6534 Use offsetof, for simplicity.
6535
6fbe4984
PE
65362002-10-06 Paul Eggert <eggert@twinsun.com>
6537
6538 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
6539 the same width as int. This reapplies a hunk of the 2002-08-12 patch
161a71f3 6540 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
6541 which was inadvertently undone by the 2002-09-30 patch.
6542 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
6543 the same width as int.
6544
420f93c8
PE
65452002-10-04 Paul Eggert <eggert@twinsun.com>
6546
6547 Version 1.50.
6548
6549 * configure.ac (AC_INIT), NEWS: Increment version number.
6550
6551 * doc/bison.texinfo: Minor spelling, grammar, and white space
6552 fixes.
6553 (Symbols): Mention that any negative value returned from yylex
6554 signifies end-of-input. Warn about negative chars. Mention
6555 the portable Standard C character set.
6556
6557 The GNU coding standard says CFLAGS and YFLAGS are reserved
6558 for the installer to set.
6559 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
6560 * src/Makefile.am (AM_CFLAGS): Likewise.
6561 (AM_YFLAGS): Renamed from YFLAGS.
6562
6563 Fix some MAX and MIN problems.
6564 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
6565 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
6566 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
6567 * src/reader.c (reader): Use it.
6568
6569 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
6570 POSIX 1003.1-2001 has removed fgrep.
6571
65722002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6573
6574 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
6575 interpreted as signed.
6576 * lib/ebitset.c (ebitset_list): Fix bug.
6577
ff68026d
PE
65782002-10-01 Paul Eggert <eggert@twinsun.com>
6579
6580 More fixes for 64-bit hosts and large bitsets.
6581
6582 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
6583 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
6584 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
6585 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
6586 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
6587 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
6588 bitset_count_): Likewise.
6589 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
6590 bitset_first, bitset_last): Likewise.
6591 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
6592 bitset_stats_list_reverse, bitset_stats_size,
6593 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
6594 Likewise.
6595 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
6596 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
6597 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
6598 bitsetv_reflexive_transitive_closure): Likewise.
6599 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
6600 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
6601 Likewise.
6602 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
6603 Likewise.
420f93c8 6604
ff68026d
PE
6605 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
6606 Use size_t, not unsigned int, to count bytes.
6607 * lib/abitset.h (abitset_bytes): Likewise.
6608 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
6609 Likewise.
6610 * lib/bitset.h (bitset_bytes): Likewise.
6611 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
6612 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
6613 * lib/bitsetv.c (bitsetv_alloc): Likewise.
6614 * lib/ebitset.c (ebitset_bytes): Likewise.
6615 * lib/ebitset.h (ebitset_bytes): Likewise.
6616 * lib/lbitset.c (lbitset_bytes): Likewise.
6617 * lib/lbitset.h (lbitset_bytes): Likewise.
420f93c8 6618
ff68026d
PE
6619 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
6620 abitset_subset_p, abitset_disjoint_p, abitset_and,
6621 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
6622 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
6623 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
6624 abitset_or_and, abitset_or_and_cmp):
6625 Use bitset_windex instead of unsigned int.
6626 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
6627 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
6628 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
6629 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
6630 Likewise.
6631 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
420f93c8 6632
ff68026d
PE
6633 * lib/bitset.c (bitset_print):
6634 Use proper printf formats for widths of integer types.
6635 * lib/bitset_stats.c (bitset_percent_histogram_print,
6636 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
6637 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
6638 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
6639 * lib/lbitset.c (lbitset_bytes): Likewise.
420f93c8 6640
ff68026d
PE
6641 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
6642 BITSET_SIZE_MAX): New macros.
6643 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
6644 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
6645 to BITSET_WINDEX_MAX.
6646
6647 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
6648 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
6649 since we now return the bitset_bindex type (not int).
6650
6651 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
6652 when computing sizes.
6653 * lib/ebitset.c (ebitset_elts_grow): Likewise.
6654
6655 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
6656 and avoid cast to unsigned.
6657
6aa452a6
AD
66582002-09-30 Akim Demaille <akim@epita.fr>
6659
6660 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
6661 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
6662 Updates from Michael Hayes.
6663
927f7817
AD
66642002-09-30 Art Haas <ahaas@neosoft.com>
6665
6666 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
6667 invocations.
6668 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
6669 defined.
6670
9738f41e
AD
66712002-09-27 Akim Demaille <akim@epita.fr>
6672
6673 Version 1.49c.
6674
a5c75d7f
AD
66752002-09-27 Akim Demaille <akim@epita.fr>
6676
6677 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
6678 (Because of AC_LIBSOURCE).
6679
8280e179
AD
66802002-09-27 Akim Demaille <akim@epita.fr>
6681
6682 Playing with Autoscan.
6683
6684 * configure.ac: Remove the old LIBOBJ tweaks.
6685 (AC_REPLACE_FUNCS): Add strrchr and strtol.
6686 * lib/strrchr.c: New.
6687 * lib/strtol.c: New, from the Coreutils 4.5.1.
6688
ae64af35
AD
66892002-09-27 Akim Demaille <akim@epita.fr>
6690
6691 Playing with Autoscan.
6692
6693 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
6694 * lib/Makefile.am (libbison_a_SOURCES): No longer include
6695 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
6696 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
6697 Coreutils 4.5.1.
6698
d1a1114f
AD
66992002-09-24 Akim Demaille <akim@epita.fr>
6700
6701 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
6702 (Frequently Asked Questions, Parser Stack Overflow): New.
6703
b906441c
AD
67042002-09-13 Akim Demaille <akim@epita.fr>
6705
6706 Playing with autoscan.
6707
6708 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
6709 * src/files.c (skeleton_find): Remove, unused.
6710 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
6711 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
6712
bd701811
AD
67132002-09-13 Akim Demaille <akim@epita.fr>
6714
6715 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
6716 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
6717
e0a13e7b
AD
67182002-09-13 Akim Demaille <akim@epita.fr>
6719
6720 * configure.ac: Require 2.54.
6721 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
6722 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
6723 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
6724 Remove, provided by Autoconf macros.
6725
c97011bf
AD
67262002-09-12 Akim Demaille <akim@epita.fr>
6727
6728 * m4/prereq.m4: Update, from Coreutils 4.5.1.
6729
d862b1be
AD
67302002-09-12 Akim Demaille <akim@epita.fr>
6731
6732 * m4/prereq.m4: Update, from Fileutils 4.1.5.
6733 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
6734 Reported by Martin Mokrejs.
6735
3d38c03a
AD
67362002-09-10 Akim Demaille <akim@epita.fr>
6737
6738 * src/parse-gram.y: Associate a human readable string to each
6739 token type.
6740 * tests/regression.at (Invalid inputs): Adjust.
6741
b6347355
AD
67422002-09-10 Gary V. Vaughan <gary@gnu.org>
6743
6744 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
6745 with an Autoconf-2.5x style configure.ac.
6746
09ba4ab2
PE
67472002-09-06 Paul Eggert <eggert@twinsun.com>
6748
6749 * doc/bison.texinfo (Conditions): Make explicit that the GPL
6750 exception applies only to yacc.c. This is a modification of a
6751 patch originally suggested by Akim Demaille.
6752
21846f69
AD
67532002-09-06 Akim Demaille <akim@epita.fr>
6754
09ba4ab2
PE
6755 * data/c.m4 (b4_copyright): Move the GPL exception comment from
6756 here to...
6757 * data/yacc.c: here.
6758
21846f69
AD
6759 * data/lalr1.cc (struct yyltype): Don't define it, since we use
6760 LocationType.
6761 (b4_ltype): Default to yy::Location from location.hh.
6762
c0ad8bf3
AD
67632002-09-04 Jim Meyering <jim@meyering.net>
6764
6765 * data/yacc.c: Guard the declaration of yytoknum also with
6766 `#ifdef YYPRINT', so it is declared only when used.
6767
3a93251e
AD
67682002-09-04 Akim Demaille <akim@epita.fr>
6769
6770 * configure.in: Rename as...
6771 * configure.ac: this.
6772 Bump to 1.49c.
6773
427c0dda
AD
67742002-09-04 Akim Demaille <akim@epita.fr>
6775
6776 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
6777 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
6778 translate maintainer only messages.
6779
6a254321
PE
67802002-08-12 Paul Eggert <eggert@twinsun.com>
6781
645e30d1
PE
6782 Version 1.49b.
6783
6a254321
PE
6784 * Makefile.am (SUBDIRS): Remove intl.
6785 (DISTCLEANFILES): Remove.
6786 * NEWS: Mention that GNU M4 is now required. Clarify what is
6787 meant by "larger grammars". Mention the pt_BR translation.
6788 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
6789 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
6790 Bump version from 0.11.2 to 0.11.5.
6791 (BISON_PREREQ_STAGE): Remove.
6792 (AM_GNU_GETTEXT): Use external gettext.
6793 (AC_OUTPUT): Remove intl/Makefile.
6794
6795 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
6796
6797 * data/glr.c: Include string.h, for strlen.
6798 (yyreportParseError): Use size_t for yysize.
6799 (yy_yypstack): No longer nested inside yypstates, as nested
6800 functions are not portable. Do not assume size_t is the
6801 same width as int.
6802 (yypstates): Do not assume that ptrdiff_t is the same width
6803 as int, and similarly for yyposn and YYINDEX.
6804
6805 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
6806
6807 * lib/Makefile.am (INCLUDES): Do not include from the intl
6808 directory, which has been removed.
6809 * src/Makefile.am (INCLUDES): Likewise.
6810
6811 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
6812 (bitsets_sources, additional_bitsets_sources, timevars_sources):
6813 New vars.
6814
6815 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
6816 * tests/Makefile.am (EXTRA_DIST): Likewise.
6817
6818 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
6819 Do not assume that bitset_windex is the same width as unsigned.
6820
6821 * lib/abitset.c (abitset_unused_clear): Do not assume that
6822 bitset_word is the same width as int.
6823 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
6824 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
6825 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
6826 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
6827 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
6828
6829 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
6830 portability to one's complement hosts!).
6831 * lib/ebitset.c (ebitset_op1): Likewise.
6832 * lib/lbitset.c (lbitset_op1): Likewise.
6833
6834 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
6835 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
6836 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
6837 Sync with fileutils.
6838 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
6839 lib/gettext.h: Sync with diffutils.
6840
6841 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
6842 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
6843
6844 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
6845 PROTOTYPES to check for prototypes, and "defined __STDC__" to
6846 check for void *.
6847
6848 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
6849 size_t; the old version tried to do this but casted improperly.
6850 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
6851 (bitset_test): Now returns int, not unsigned long.
6852
6853 * lib/bitset_stats.c: Include "gettext.h".
6854 (_): New macro.
6855 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
6856 name locals "index", as it generates unnecessary warnings on some
6857 hosts that have an "index" function.
6858
6859 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
6860 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
6861 they need translation.
6862 * src/LR0.c (state_list_append, new_itemsets, get_state,
6863 append_states, generate_states): Likewise.
6864 * src/assoc.c (assoc_to_string): Likewise.
6865 * src/closure.c (print_closure, set_firsts, closure): Likewise.
6866 * src/gram.c (grammar_dump): Likewise.
6867 * src/injections.c (injections_compute): Likewise.
6868 * src/lalr.c (lookaheads_print): Likewise.
6869 * src/relation.c (relation_transpose): Likewise.
6870 * src/scan-gram.l: Likewise.
6871 * src/tables.c (table_grow, pack_vector): Likewise.
6872
6873 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
6874 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
6875 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
6876 * m4/mbstate_t.m4: Sync with fileutils.
6877 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
6878
6879 * po/LINGUAS: Add pt_BR.
6880 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
6881 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
6882 lib/timevar.c.
6883 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
6884 manual recommends.
6885 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
6886
6887 * src/complain.c (strerror_r): Remove decl; not needed.
6888 (strerror): Use same pattern as ../lib/error.c.
6889
6890 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
6891
6892 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
6893
6894 * src/main.c (main): Cast result of bindtextdomain and textdomain
6895 to void, to avoid a GCC warning when --disable-nls is in effect.
6896
6897 * src/scan-gram.l: Use strings rather than escapes when possible,
6898 to minimize the number of warnings from xgettext.
6899 (handle_action_dollar, handle_action_at): Don't use isdigit,
6900 as it mishandles negative chars and it may not work as expected
6901 outside the C locale.
6902
6903 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
6904 this is a GCC extension and is not portable to other compilers.
6905
6906 * src/system.h (alloca): Use same pattern as ../lib/error.c.
6907 Do not include <ctype.h>; no longer needed.
6908 Do not include <malloc.h>; no longer needed (and generates
6909 warnings on OpenBSD 3.0).
6910
6911 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
6912 it's not portable.
6913
6914 * tests/regression.at: Do not use 'cc -c input.c -o input';
6915 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
6916
6917 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
6918 exit status as failure, not just exit status 1. Sun C exits
6919 with status 2 sometimes.
6920
6921 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
6922 Use it for the two large tests.
6923
c8f002c7
AD
69242002-08-02 Akim Demaille <akim@epita.fr>
6925
6926 * src/conflicts.c (conflicts_output): Don't output rules never
6927 reduced here, since anyway that computation doesn't work.
6928 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
6929 (rule_useless_p, rule_never_reduced_p): New.
6930 (grammar_rules_partial_print): Use a filter instead of a range.
6931 Display the title only if needed.
6932 (grammar_rules_print): Adjust.
6933 (grammar_rules_never_reduced_report): New.
6934 * src/tables.c (action_row): Move the computation of rules never
6935 reduced to...
6936 (token_actions): here.
6937 * src/main.c (main): Make the parser before making the report, so
6938 that rules never reduced are computed.
6939 Call grammar_rules_never_reduced_report.
6940 * src/print.c (print_results): Report rules never reduced.
6941 * tests/conflicts.at, tests/reduce.at: Adjust.
6942
cd08e51e
AD
69432002-08-01 Akim Demaille <akim@epita.fr>
6944
6945 Instead of attaching lookaheads and duplicating the rules being
6946 reduced by a state, attach the lookaheads to the reductions.
6947
6948 * src/state.h (state_t): Remove the `lookaheads',
6949 `lookaheads_rule' member.
6950 (reductions_t): Add a `lookaheads' member.
6951 Use a regular array for the `rules'.
6952 * src/state.c (reductions_new): Initialize the lookaheads member
6953 to 0.
6954 (state_rule_lookaheads_print): Adjust.
6955 * src/state.h, src/state.c (state_reductions_find): New.
6956 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
6957 (count_rr_conflicts): Adjust.
6958 * src/lalr.c (LArule): Remove.
6959 (add_lookback_edge): Adjust.
6960 (state_lookaheads_count): New.
6961 (states_lookaheads_initialize): Merge into...
6962 (initialize_LA): this.
6963 (lalr_free): Adjust.
6964 * src/main.c (main): Don't free nullable and derives too early: it
6965 is used by --verbose.
6966 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
6967
bb0027a9
AD
69682002-08-01 Akim Demaille <akim@epita.fr>
6969
6970 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
6971 `rule_number_t**'.
6972 (set_derives, free_derives): Rename as...
6973 (derives_compute, derives_free): this.
6974 Adjust all dependencies.
6975 * src/nullable.c (set_nullable, free_nullable): Rename as...
6976 (nullable_compute, nullable_free): these.
6977 (rule_list_t): Store rule_t *, not rule_number_t.
6978 * src/state.c (state_rule_lookaheads_print): Directly compare rule
6979 pointers, instead of their numbers.
6980 * src/main.c (main): Call nullable_free, and derives_free earlier,
6981 as they were lo longer used.
6982
3325ddc4
AD
69832002-08-01 Akim Demaille <akim@epita.fr>
6984
6985 * lib/timevar.c (get_time): Include children time.
6986 * src/lalr.h (LA, LArule): Don't export them: used with the
6987 state_t.
6988 * src/lalr.c (LA, LArule): Static.
6989 * src/lalr.h, src/lalr.c (lalr_free): New.
6990 * src/main.c (main): Call it.
6991 * src/tables.c (pack_vector): Check whether loc is >= to the
6992 table_size, not >.
6993 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
6994 (tables_generate): do it, since that's also it which allocates
6995 them.
6996 Don't free LA and LArule, main does.
6997
c6f1a33c
AD
69982002-07-31 Akim Demaille <akim@epita.fr>
6999
7000 Separate parser tables computation and output.
7001
7002 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
7003 (conflict_list, conflict_list_cnt, table, check, table_ninf)
7004 (yydefgoto, yydefact, high): Move to...
7005 * src/tables.h, src/tables.c: here.
7006 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
7007 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
7008 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
7009 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
7010 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
7011 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
7012 (action_row, save_row, token_actions, save_column, default_goto)
7013 (goto_actions, sort_actions, matching_state, pack_vector)
7014 (table_ninf_remap, pack_table, prepare_actions): Move to...
7015 * src/tables.c: here.
7016 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
7017 * src/output.c (token_actions, output_base, output_conflicts)
7018 (output_check): Merge into...
7019 (prepare_actions): this.
7020 (actions_output): Rename as...
7021 (user_actions_output): this.
7022 * src/main.c (main): Call tables_generate and tables_free.
7023
1509d42f
AD
70242002-07-31 Akim Demaille <akim@epita.fr>
7025
7026 Steal GCC's --time-report support.
7027
7028 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
7029 stolen/adjusted from GCC.
7030 * m4/stage.m4: Remove time related checks.
7031 * m4/timevar.m4: New.
7032 * configure.in: Adjust.
7033 * src/system.h: Adjust to using timevar.h.
7034 * src/getargs.h, src/getargs.c: Support trace_time for
7035 --trace=time.
7036 * src/main.c (stage): Remove.
7037 (main): Replace `stage' invocations with timevar calls.
7038 * src/output.c: Insert pertinent timevar calls.
7039
273a74fa
AD
70402002-07-31 Akim Demaille <akim@epita.fr>
7041
7042 Let --trace have arguments.
7043
7044 * src/getargs.h (enum trace_e): New.
7045 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
7046 (long_options, short_options): --trace/-T takes an optional
7047 argument.
7048 Change all the uses of trace_flag to reflect the new flags.
7049 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
7050
7051 Strengthen `stage' portability.
7052
7053 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
7054 * configure.in: Use it.
7055 Don't check for malloc.h and sys/times.h.
7056 * src/system.h: Include them when appropriate.
7057 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
7058 times and struct tms are available.
7059
217598da
AD
70602002-07-30 Akim Demaille <akim@epita.fr>
7061
7062 In verbose parse error message, don't report `error' as an
7063 expected token.
7064 * tests/actions.at (Printers and Destructors): Adjust.
7065 * tests/calc.at (Calculator $1): Adjust.
7066 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
7067 error message, do not report the parser accepts the error token in
7068 that state.
7069
52489d44
AD
70702002-07-30 Akim Demaille <akim@epita.fr>
7071
7072 Normalize conflict related messages.
7073
7074 * src/complain.h, src/complain.c (warn, complain): New.
7075 * src/conflicts.c (conflicts_print): Use them.
7076 (conflict_report_yacc): New, extracted from...
7077 (conflicts_print): here.
7078 * tests/conflicts.at, tests/existing.at: Adjust.
7079
e8832397
AD
70802002-07-30 Akim Demaille <akim@epita.fr>
7081
7082 Report rules which are never reduced by the parser: those hidden
7083 by conflicts.
7084
7085 * src/LR0.c (save_reductions): Don't make the final state too
7086 different: save its reduction (accept) instead of having a state
7087 without any action (no shift or goto, no reduce).
7088 Note: the final state is now a ``regular'' state, i.e., the
7089 parsers now contain `reduce 0' as default reduction.
7090 Nevertheless, since they decide to `accept' when yystate =
7091 final_state, they still will not reduce rule 0.
7092 * src/print.c (print_actions, print_reduction): Adjust.
7093 * src/output.c (action_row): Track reduced rules.
7094 (token_actions): Report rules never reduced.
7095 * tests/conflicts.at, tests/regression.at: Adjust.
7096
caf23d24
AD
70972002-07-30 Akim Demaille <akim@epita.fr>
7098
7099 `stage' was accidently included in a previous patch.
7100 Initiate its autoconfiscation.
7101
7102 * configure.in: Look for malloc.h and sys/times.h.
7103 * src/main.c (stage): Adjust.
7104 Report only when trace_flag.
7105
640748ee
AD
71062002-07-29 Akim Demaille <akim@epita.fr>
7107
7108 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
7109 state_number_t.
7110 (errs_t): symbol_t*, not symbol_number_t.
7111 (reductions_t): rule_t*, not rule_number_t.
7112 (FOR_EACH_SHIFT): New.
7113 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
7114 * src/print.c, src/print_graph.c: Adjust.
7115
88bce5a2
AD
71162002-07-29 Akim Demaille <akim@epita.fr>
7117
7118 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
7119
7120 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
7121 (endtoken, accept): these.
7122 * src/reader.c (reader): Set endtoken's default tag to "$end".
7123 Set undeftoken's tag to "$undefined" instead of "$undefined.".
7124 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
7125 Adjust.
7126
1bfb97db
AD
71272002-07-29 Akim Demaille <akim@epita.fr>
7128
7129 * src/reduce.c (reduce_grammar): When the language is empty,
7130 complain about the start symbol, not the axiom.
7131 Use its location.
7132 * tests/reduce.at (Empty Language): New.
7133
fc5734fe
AD
71342002-07-26 Akim Demaille <akim@epita.fr>
7135
7136 * src/reader.h, src/reader.c (gram_error): ... can't get
7137 yycontrol without making too strong assumptions on the parser
7138 itself.
7139 * src/output.c (prepare_tokens): Use the real 0th value of
7140 token_translations instead of `0'.
7141 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
7142 visible here.
7143 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
7144 for the time being: %locations ought to provide it to yyerror.
7145
3650b4b8
AD
71462002-07-25 Akim Demaille <akim@epita.fr>
7147
7148 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
7149 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
7150 * tests/regression.at (Web2c Actions): Adjust.
7151
4b3d3a8e
AD
71522002-07-25 Akim Demaille <akim@epita.fr>
7153
7154 Stop storing rules from 1 to nrules + 1.
7155
7156 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
7157 * src/nullable.c, src/output.c, src/print.c, src/reader.c
7158 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
7159 Iterate from 0 to nrules.
7160 Use rule_number_as_item_number and item_number_as_rule_number.
7161 Adjust to `derive' now containing possibly 0.
7162 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
7163 Handle the `- 1' part in rule numbers from/to item numbers.
7164 * src/conflicts.c (log_resolution): Fix the message which reversed
7165 shift and reduce.
7166 * src/output.c (action_row): Initialize default_rule to -1.
7167 (token_actions): Adjust.
7168 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
7169 expected output.
7170 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
7171
4a2a22f4
AD
71722002-07-25 Akim Demaille <akim@epita.fr>
7173
7174 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
7175 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
7176 (b4_c_knr_arg_decl): New.
7177 * data/yacc.c: Use it to define yysymprint, yydestruct, and
7178 yyreport_parse_error.
7179
b8df3223
AD
71802002-07-25 Akim Demaille <akim@epita.fr>
7181
7182 * data/yacc.c (yyreport_parse_error): New, extracted from...
7183 (yyparse): here.
7184 (yydestruct, yysymprint): Move above yyparse.
7185 Be K&R compliant.
7186
a762e609
AD
71872002-07-25 Akim Demaille <akim@epita.fr>
7188
7189 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
7190 replace...
7191 (b4_sint_type, b4_uint_type): these.
7192 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
7193 * tests/regression.at (Web2c Actions): Adjust.
7194
12b0043a
AD
71952002-07-25 Akim Demaille <akim@epita.fr>
7196
7197 * src/gram.h (TIEM_NUMBER_MAX): New.
7198 (item_number_of_rule_number, rule_number_of_item_number): Rename
7199 as...
7200 (rule_number_as_item_number, item_number_as_rule_number): these.
7201 Adjust dependencies.
7202 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
7203 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
7204 (symbol_number_to_vector_number): New.
7205 (order): Of vector_number_t* type.
7206 (base_t, BASE_MAX, BASE_MIN): New.
7207 (froms, tos, width, pos, check): Of base_t type.
7208 (action_number_t, ACTION_MIN, ACTION_MAX): New.
7209 (actrow): Of action_number_t type.
7210 (conflrow): Of unsigned int type.
7211 (table_ninf, base_ninf): New.
7212 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
7213 (muscle_insert_int_table, muscle_insert_base_table)
7214 (muscle_insert_rule_number_table): New.
7215 (prepare_tokens): Output `toknum' as int_table.
7216 (action_row): Returns a rule_number_t.
7217 Use ACTION_MIN, not SHRT_MIN.
7218 (token_actions): yydefact is rule_number_t*.
7219 (table_ninf_remap): New.
7220 (pack_table): Use it for `base' and `table'.
7221 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
7222 replaced with...
7223 (YYPACT_NINF, YYTABLE_NINF): these.
7224 (yypact, yytable): Compute their types instead of hard-coded
7225 `short'.
7226 * tests/regression.at (Web2c Actions): Adjust.
7227
5dde258a
AD
72282002-07-19 Akim Demaille <akim@epita.fr>
7229
7230 * src/scan-gram.l (id): Can start with an underscore.
7231
a945ec39
AD
72322002-07-16 Akim Demaille <akim@epita.fr>
7233
7234 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
7235 Adjust all former `associativity' dependencies.
7236 * src/symtab.c (symbol_new): Default associativity is `undef', not
7237 `right'.
7238 (symbol_check_alias_consistence): Adjust.
7239
fae437e8
AD
72402002-07-09 Akim Demaille <akim@epita.fr>
7241
7242 * doc/bison.texinfo: Properly set the ``header'' part.
7243 Use @dircategory ``GNU programming tools'' as per Texinfo's
7244 documentation.
7245 Use @copying.
7246
1a715ef2
AD
72472002-07-09 Akim Demaille <akim@epita.fr>
7248
7249 * lib/quotearg.h: Protect against multiple inclusions.
7250 * src/location.h (location_t): Add a `file' member.
7251 (LOCATION_RESET, LOCATION_PRINT): Adjust.
7252 * src/complain.c (warn_at, complain_at, fatal_at): Drop
7253 `error_one_per_line' support.
7254
a5d50994
AD
72552002-07-09 Akim Demaille <akim@epita.fr>
7256
7257 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
7258 * src/reader.c (lineno): Remove.
7259 Adjust all dependencies.
7260 (get_merge_function): Take a location and use complain_at.
7261 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
7262 * tests/regression.at (Invalid inputs, Mixing %token styles):
7263 Adjust.
7264
b275314e
AD
72652002-07-09 Akim Demaille <akim@epita.fr>
7266
7267 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
7268 recovery rule, and forbid extensions when --yacc.
7269 (gram_error): Use complain_at.
7270 * src/reader.c (reader): Exit if there were parse errors.
7271
865b9df1
AD
72722002-07-09 Akim Demaille <akim@epita.fr>
7273
7274 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
7275 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
7276 Reported by R Blake <blakers@mac.com>.
7277
c76e14da
AD
72782002-07-09 Akim Demaille <akim@epita.fr>
7279
7280 * data/yacc.c: Output the copyright notive in the header.
7281
7db2ed2d
AD
72822002-07-03 Akim Demaille <akim@epita.fr>
7283
7284 * src/output.c (froms, tos): Are state_number_t.
7285 (save_column): sp, sp1, and sp2 are state_number_t.
7286 (prepare): Rename `final' as `final_state_number', `nnts' as
7287 `nterms_number', `nrules' as `rules_number', `nstates' as
7288 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
7289 unused.
7290 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
7291 * data/lalr1.cc (nsym_): Remove, unused.
7292
e68e0410
AD
72932002-07-03 Akim Demaille <akim@epita.fr>
7294
7295 * src/lalr.h, src/lalr.c (goto_number_t): New.
7296 * src/lalr.c (goto_list_t): New.
7297 Propagate them.
7298 * src/nullable.c (rule_list_t): New.
7299 Propagate.
7300 * src/types.h: Remove.
7301
e1a4f3a4
AD
73022002-07-03 Akim Demaille <akim@epita.fr>
7303
7304 * src/closure.c (print_fderives): Use rule_rhs_print.
7305 * src/derives.c (print_derives): Use rule_rhs_print.
7306 (rule_list_t): New, replaces `shorts'.
7307 (set_derives): Add comments.
7308 * tests/sets.at (Nullable, Firsts): Adjust.
7309
536545f3
AD
73102002-07-03 Akim Demaille <akim@epita.fr>
7311
7312 * src/output.c (prepare_actions): Free `tally' and `width'.
7313 (prepare_actions): Allocate and free `order'.
7314 * src/symtab.c (symbols_free): Free `symbols'.
7315 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
7316 * src/output.c (m4_invoke): Move to...
7317 * src/scan-skel.l: here.
7318 (<<EOF>>): Close yyout, and free its name.
7319
8b752b00
AD
73202002-07-03 Akim Demaille <akim@epita.fr>
7321
7322 Fix some memory leaks, and fix a bug: state 0 was examined twice.
7323
7324 * src/LR0.c (new_state): Merge into...
7325 (state_list_append): this.
7326 (new_states): Merge into...
7327 (generate_states): here.
7328 (set_states): Don't ensure a proper `errs' state member here, do it...
7329 * src/conflicts.c (conflicts_solve): here.
7330 * src/state.h, src/state.c: Comment changes.
7331 (state_t): Rename member `shifts' as `transitions'.
7332 Adjust all dependencies.
7333 (errs_new): For consistency, also take the values as argument.
7334 (errs_dup): Remove.
7335 (state_errs_set): New.
7336 (state_reductions_set, state_transitions_set): Assert that no
7337 previous value was assigned.
7338 (state_free): New.
7339 (states_free): Use it.
7340 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
7341 temporary storage: use `errs' and `nerrs' as elsewhere.
7342 (set_conflicts): Allocate and free this `errs'.
7343
613f5e1a
AD
73442002-07-02 Akim Demaille <akim@epita.fr>
7345
7346 * lib/libiberty.h: New.
7347 * lib: Update the bitset implementation from upstream.
7348 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
7349 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
7350 * src/main.c: Adjust bitset stats calls.
7351
26e0cadc
PE
73522002-07-01 Paul Eggert <eggert@twinsun.com>
7353
7354 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
7355 char, so that negative chars don't collide with $.
7356
1154cced
AD
73572002-06-30 Akim Demaille <akim@epita.fr>
7358
7359 Have the GLR tests be `warning' checked, and fix the warnings.
7360
7361 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
7362 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
7363 (yyremoveDeletes): `yyi' and `yyj' are size_t.
7364 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
7365 (yyaddDeferredAction): static.
7366 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
7367 (yyreportParseError): yyprefix is const.
7368 yytokenp is used only when verbose.
7369 (yy__GNUC__): Replace with __GNUC__.
7370 (yypdumpstack): yyi is size_t.
7371 (yypreference): Un-yy local variables and arguments, to avoid
7372 clashes with `yyr1'. Anyway, we are not in the user name space.
7373 (yytname_size): be an int, as is compared with ints.
7374 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
7375 Use them.
7376 * tests/cxx-gram.at: Use quotation to protect $1.
7377 Use AT_COMPILE to enable warnings hunts.
7378 Prototype yylex and yyerror.
7379 `Use' argc.
7380 Include `string.h', not `strings.h'.
7381 Produce and prototype stmtMerge only when used.
7382 yylex takes a location.
7383
97650f4e
AD
73842002-06-30 Akim Demaille <akim@epita.fr>
7385
7386 We spend a lot of time in quotearg, in particular when --verbose.
7387
7388 * src/symtab.c (symbol_get): Store a quoted version of the key.
7389 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
7390 Adjust all callers.
7391
d2576365
AD
73922002-06-30 Akim Demaille <akim@epita.fr>
7393
7394 * src/state.h (reductions_t): Rename member `nreds' as num.
7395 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
7396 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
7397
ccaf65bc
AD
73982002-06-30 Akim Demaille <akim@epita.fr>
7399
7400 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
7401 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
7402 (shifts_to): Rename as...
7403 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
7404 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
7405 (TRANSITION_IS_DISABLED, transitions_to): these.
7406
87675353
AD
74072002-06-30 Akim Demaille <akim@epita.fr>
7408
7409 * src/print.c (print_shifts, print_gotos): Merge into...
7410 (print_transitions): this.
7411 (print_transitions, print_errs, print_reductions): Align the
7412 lookaheads columns.
7413 (print_core, print_transitions, print_errs, print_state,
7414 print_grammar): Output empty lines separator before, not after.
7415 (state_default_rule_compute): Rename as...
7416 (state_default_rule): this.
7417 * tests/conflicts.at (Defaulted Conflicted Reduction),
7418 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
7419 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
7420
ce4ccb4b
AD
74212002-06-30 Akim Demaille <akim@epita.fr>
7422
7423 Display items as we display rules.
7424
7425 * src/gram.h, src/gram.c (rule_lhs_print): New.
7426 * src/gram.c (grammar_rules_partial_print): Use it.
7427 * src/print.c (print_core): Likewise.
7428 * tests/conflicts.at (Defaulted Conflicted Reduction),
7429 (Unresolved SR Conflicts): Adjust.
7430 (Unresolved SR Conflicts): Adjust and rename as...
7431 (Resolved SR Conflicts): this, as was meant.
7432 * tests/regression.at (Web2c Report): Adjust.
7433
bc933ef1
AD
74342002-06-30 Akim Demaille <akim@epita.fr>
7435
7436 * src/print.c (state_default_rule_compute): New, extracted from...
7437 (print_reductions): here.
7438 Pessimize, but clarify the code.
7439 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
7440
53d4308d
AD
74412002-06-30 Akim Demaille <akim@epita.fr>
7442
7443 * src/output.c (action_row): Let default_rule be always a rule
7444 number.
7445
574fb2d5
AD
74462002-06-30 Akim Demaille <akim@epita.fr>
7447
7448 * src/closure.c (print_firsts, print_fderives, closure):
7449 Use BITSET_EXECUTE.
7450 * src/lalr.c (lookaheads_print): Likewise.
7451 * src/state.c (state_rule_lookaheads_print): Likewise.
7452 * src/print_graph.c (print_core): Likewise.
7453 * src/print.c (print_reductions): Likewise.
7454 * src/output.c (action_row): Likewise.
7455 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
7456
05811fd7
AD
74572002-06-30 Akim Demaille <akim@epita.fr>
7458
7459 * src/print_graph.c: Use report_flag.
7460
0e4d5753
AD
74612002-06-30 Akim Demaille <akim@epita.fr>
7462
7463 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
7464 to...
7465 * src/relation.h, src/relation.c (traverse, relation_digraph)
7466 (relation_print, relation_transpose): New.
7467
24c7d800
AD
74682002-06-30 Akim Demaille <akim@epita.fr>
7469
7470 * src/state.h, src/state.c (shifts_to): New.
7471 * src/lalr.c (build_relations): Use it.
7472
9222837b
AD
74732002-06-30 Akim Demaille <akim@epita.fr>
7474
7475 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
7476 (item_number_of_rule_number, rule_number_of_item_number): New.
7477 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
7478 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
7479 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
7480 Propagate their use.
7481 Much remains to be done, in particular wrt `shorts' from types.h.
7482
260008e5
AD
74832002-06-30 Akim Demaille <akim@epita.fr>
7484
7485 * src/symtab.c (symbol_new): Initialize the `printer' member.
7486
8a731ca8
AD
74872002-06-30 Akim Demaille <akim@epita.fr>
7488
7489 * src/LR0.c (save_reductions): Remove, replaced by...
7490 * src/state.h, src/state.c (state_reductions_set): New.
7491 (reductions, errs): Rename as...
7492 (reductions_t, errs_t): these.
7493 Adjust all dependencies.
7494
32e1e0a4
AD
74952002-06-30 Akim Demaille <akim@epita.fr>
7496
7497 * src/LR0.c (state_list_t, state_list_append): New.
7498 (first_state, last_state): Now symbol_list_t.
7499 (this_state): Remove.
7500 (new_itemsets, append_states, save_reductions): Take a state_t as
7501 argument.
7502 (set_states, generate_states): Adjust.
7503 (save_shifts): Remove, replaced by...
7504 * src/state.h, src/state.c (state_shifts_set): New.
7505 (shifts): Rename as...
7506 (shifts_t): this.
7507 Adjust all dependencies.
7508 * src/state.h (state_t): Remove the `next' member.
7509
e5fb6710
AD
75102002-06-30 Akim Demaille <akim@epita.fr>
7511
7512 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
7513 escaped in slot 0.
7514
c7ca99d4
AD
75152002-06-30 Akim Demaille <akim@epita.fr>
7516
7517 Use hash.h for the state hash table.
7518
7519 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
7520 (allocate_storage): Use state_hash_new.
7521 (free_storage): Use state_hash_free.
7522 (new_state, get_state): Adjust.
7523 * src/lalr.h, src/lalr.c (states): Move to...
7524 * src/states.h (state_t): Remove the `link' member, no longer
7525 used.
7526 * src/states.h, src/states.c: here.
7527 (state_hash_new, state_hash_free, state_hash_lookup)
7528 (state_hash_insert, states_free): New.
7529 * src/states.c (state_table, state_compare, state_hash): New.
7530 * src/output.c (output_actions): Do not free states now, since we
7531 still need to know the final_state number in `prepare', called
7532 afterwards. Do it...
7533 * src/main.c (main): here: call states_free after `output'.
7534
df0e7316
AD
75352002-06-30 Akim Demaille <akim@epita.fr>
7536
7537 * src/state.h, src/state.c (state_new): New, extracted from...
7538 * src/LR0.c (new_state): here.
7539 * src/state.h (STATE_ALLOC): Move to...
7540 * src/state.c: here.
7541 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
7542 * src/state.h, src/state.c: here.
7543
39f41916
AD
75442002-06-30 Akim Demaille <akim@epita.fr>
7545
7546 * src/reader.c (gensym): Rename as...
7547 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
7548 (getsym): Rename as...
7549 (symbol_get): this.
7550
d57650a5
AD
75512002-06-30 Akim Demaille <akim@epita.fr>
7552
7553 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
7554 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
7555 * src/output.c, src/print.c, src/print_graph.c: Propagate.
7556 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
7557
5a08f1ce
AD
75582002-06-30 Akim Demaille <akim@epita.fr>
7559
7560 Make the test suite pass with warnings checked.
7561
7562 * tests/actions.at (Printers and Destructors): Improve.
7563 Avoid unsigned vs. signed issues.
7564 * tests/calc.at: Don't exercise the scanner here, do it...
7565 * tests/input.at (Torturing the Scanner): here.
7566
720623af
PH
75672002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7568
88e7e941 7569 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
7570 reorganize first lines parallel to yacc.c.
7571
fb8135fa
AD
75722002-06-28 Akim Demaille <akim@epita.fr>
7573
7574 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
7575 (b4_token_enum, b4_token_defines): New, factored from...
7576 * data/lalr1.cc, data/yacc.c, glr.c: here.
7577
41442480
AD
75782002-06-28 Akim Demaille <akim@epita.fr>
7579
7580 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
7581 unused variables.
7582 * src/output.c (merger_output): static.
7583
e0e5bf84
AD
75842002-06-28 Akim Demaille <akim@epita.fr>
7585
ba0fe3c7 7586 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
e0e5bf84
AD
7587 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
7588 pacify GCC.
7589 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 7590
676385e2
PH
75912002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7592
7593 Accumulated changelog for new GLR parsing features.
7594
6a254321 7595 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
7596 conflicts_total_count.
7597 * src/conflicts.h: Ditto.
7598 * src/output.c (token_actions): Use the new name.
7599 (output_conflicts): Change conflp => conflict_list_heads, and
7600 confl => conflict_list for better readability.
7601 * data/glr.c: Use the new names.
7602 * NEWS: Add self to GLR announcement.
e0e5bf84 7603
676385e2
PH
7604 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
7605
7606 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
7607 Akim Demaille.
7608
7609 * data/bison.glr: Change name to glr.c
7610 * data/glr.c: Renamed from bison.glr.
7611 * data/Makefile.am: Add glr.c
e0e5bf84
AD
7612
7613 * src/getargs.c:
7614
676385e2 7615 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
ba0fe3c7 7616 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 7617
676385e2
PH
7618 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7619
7620 * data/bison.glr: Be sure to restore the
7621 current #line when returning to the skeleton contents after having
7622 exposed the input file's #line.
7623
7624 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7625
7626 * data/bison.glr: Bring up to date with changes to bison.simple.
7627
7628 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7629
7630 * data/bison.glr: Correct definitions that use b4_prefix.
7631 Various reformatting.
7632 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
7633 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
7634 yytokenp argument; now part of stack.
7635 (yychar): Define to behave as documented.
7636 (yyclearin): Ditto.
e0e5bf84 7637
676385e2
PH
7638 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7639
7640 * src/reader.h: Add declaration for free_merger_functions.
7641
7642 * src/reader.c (merge_functions): New variable.
7643 (get_merge_function): New function.
7644 (free_merger_functions): New function.
7645 (readgram): Check for %prec that is not followed by a symbol.
7646 Handle %dprec and %merge declarations.
7647 (packgram): Initialize dprec and merger fields in rules array.
7648
7649 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
7650 conflict_list_cnt, conflict_list_free): New variables.
7651 (table_grow): Also grow conflict_table.
e0e5bf84 7652 (prepare_rules): Output dprec and merger tables.
676385e2 7653 (conflict_row): New function.
e0e5bf84 7654 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
7655 default reduction in conflicted states for GLR parser so that there
7656 are spaces for the conflict lists.
7657 (save_row): Also save conflict information.
7658 (token_actions): Allocate conflict list.
7659 (merger_output): New function.
7660 (pack_vector): Pack conflict table, too.
7661 (output_conflicts): New function to output yyconflp and yyconfl.
7662 (output_check): Allocate conflict_tos.
7663 (output_actions): Output conflict tables, also.
7664 (output_skeleton): Output b4_mergers definition.
7665 (prepare): Output b4_max_rhs_length definition.
7666 Use 'bison.glr' as default skeleton for GLR parsers.
7667
7668 * src/gram.c (glr_parser): New flag.
7669 (grammar_free): Call free_merger_functions.
7670
7671 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
7672 all pairs of conflicting reductions, rather than just all tokens
7673 causing conflicts. Needed to size conflict tables.
e0e5bf84 7674 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
7675 interface.
7676 (conflicts_print): Ditto.
7677 (count_total_conflicts): New function.
7678
7679 * src/reader.h (merger_list): New type.
7680 (merge_functions): New variable.
7681
7682 * src/lex.h (tok_dprec, tok_merge): New token types.
7683
7684 * src/gram.h (rule_s): Add dprec and merger fields.
7685 (glr_parser): New flag.
7686
7687 * src/conflicts.h (count_total_conflicts): New function.
7688
7689 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
7690
7691 * doc/bison.texinfo (Generalized LR Parsing): New section.
7692 (GLR Parsers): New section.
7693 (Language and Grammar): Mention GLR parsing.
7694 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
7695 Correct typo ("tge" -> "the").
7696
7697 * data/bison.glr: New skeleton for GLR parsing.
7698
7699 * tests/cxx-gram.at: New tests for GLR parsing.
7700
7701 * tests/testsuite.at: Include cxx-gram.at.
7702
7703 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 7704
676385e2
PH
7705 * src/parse-gram.y:
7706
7707 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
7708
7709 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 7710
b5480d74 77112002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
7712
7713 * src/options.h, src/options.c: Remove.
7714 * src/getargs.c (short_options, long_options): New.
7715
60491a94
AD
77162002-06-27 Akim Demaille <akim@epita.fr>
7717
7718 * data/bison.simple, data/bison.c++: Rename as...
7719 * data/yacc.c, data/lalr1.cc: these.
7720 * doc/bison.texinfo (Environment Variables): Remove.
7721
9be0c25b
AD
77222002-06-25 Raja R Harinath <harinath@cs.umn.edu>
7723
7724 * src/getargs.c (report_argmatch): Initialize strtok().
7725
1ae72863
AD
77262002-06-20 Akim Demaille <akim@epita.fr>
7727
7728 * data/bison.simple (b4_symbol_actions): New, replaces...
7729 (b4_symbol_destructor, b4_symbol_printer): these.
7730 (yysymprint): Be sure to call YYPRINT only for tokens, and using
7731 user token numbers.
7732
87542d29
AD
77332002-06-20 Akim Demaille <akim@epita.fr>
7734
7735 * data/bison.simple (yydestructor): Rename as...
7736 (yydestruct): this.
7737
1a31ed21
AD
77382002-06-20 Akim Demaille <akim@epita.fr>
7739
7740 * src/symtab.h, src/symtab.c (symbol_type_set)
7741 (symbol_destructor_set, symbol_precedence_set): The location is
7742 the last argument.
7743 Adjust all callers.
7744
e776192e
AD
77452002-06-20 Akim Demaille <akim@epita.fr>
7746
7747 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
7748 internals.
7749 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
7750 Takes a location.
7751 * src/symtab.h, src/symtab.c (symbol_class_set)
7752 (symbol_user_token_number_set): Likewise.
7753 Adjust all callers.
7754 Promote complain_at.
7755 * tests/input.at (Type Clashes): Adjust.
7756
5c1180b3
AD
77572002-06-20 Akim Demaille <akim@epita.fr>
7758
7759 * data/bison.simple (YYLEX): Fix the declaration when
7760 %pure-parser.
7761
e3170060
AD
77622002-06-20 Akim Demaille <akim@epita.fr>
7763
7764 * data/bison.simple (yysymprint): Don't print the token number,
7765 just its name.
7766 * tests/actions.at (Destructors): Rename as...
7767 (Printers and Destructors): this.
7768 Also exercise %printer.
7769
253862fd
AD
77702002-06-20 Akim Demaille <akim@epita.fr>
7771
7772 * data/bison.simple (YYDSYMPRINT): New.
7773 Use it to remove many of the #if YYDEBUG/if (yydebug).
7774
366eea36
AD
77752002-06-20 Akim Demaille <akim@epita.fr>
7776
7777 * src/symtab.h, src/symtab.c (symbol_t): printer and
7778 printer_location are new members.
7779 (symbol_printer_set): New.
7780 * src/parse-gram.y (PERCENT_PRINTER): New token.
7781 Handle its associated rule.
7782 * src/scan-gram.l: Adjust.
7783 (handle_destructor_at, handle_destructor_dollar): Rename as...
7784 (handle_symbol_code_at, handle_symbol_code_dollar): these.
7785 * src/output.c (symbol_printers_output): New.
7786 (output_skeleton): Call it.
7787 * data/bison.simple (yysymprint): New. Cannot be named yyprint
7788 since there are already many grammar files with a user `yyprint'.
7789 Replace the calls to YYPRINT to calls to yysymprint.
7790 * tests/calc.at: Adjust.
7791 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
7792 taking advantage of parser very internal details (stack size!).
7793
4f25ebb0
AD
77942002-06-20 Akim Demaille <akim@epita.fr>
7795
7796 * src/scan-gram.l: Complete the scanner with the missing patterns
7797 to pacify Flex.
7798 Use `quote' and `symbol_tag_get' where appropriate.
7799
93b68a0e
AD
78002002-06-19 Akim Demaille <akim@epita.fr>
7801
7802 * tests/actions.at (Destructors): Augment to test locations.
7803 * data/bison.simple (yydestructor): Pass it the current location
7804 if locations are enabled.
7805 Prototype only when __STDC__ or C++.
7806 Change the argument names to move into the yy name space: there is
7807 user code here.
7808
58612f1d
AD
78092002-06-19 Akim Demaille <akim@epita.fr>
7810
74310291
AD
7811 * data/bison.simple (b4_pure_if): New.
7812 Use it instead of #ifdef YYPURE.
7813
78142002-06-19 Akim Demaille <akim@epita.fr>
7815
7816 * data/bison.simple (b4_location_if): New.
58612f1d
AD
7817 Use it instead of #ifdef YYLSP_NEEDED.
7818
f25bfb75
AD
78192002-06-19 Akim Demaille <akim@epita.fr>
7820
7821 Prepare @$ in %destructor, but currently don't bind it in the
7822 skeleton, as %location use is not cleaned up yet.
7823
7824 * src/scan-gram.l (handle_dollar, handle_destructor_at)
7825 (handle_action_at): New.
7826 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
7827 a braced_code_t and a location as additional arguments.
7828 (handle_destructor_dollar): Instead of requiring `b4_eval', just
7829 unquote one when outputting `b4_dollar_dollar'.
7830 Adjust callers.
7831 * data/bison.simple (b4_eval): Remove.
7832 (b4_symbol_destructor): Adjust.
7833 * tests/input.at (Invalid @n): Adjust.
7834
c732d2c6
AD
78352002-06-19 Zack Weinberg <zack@codesourcery.com>
7836
7837 * doc/bison.texinfo: Document ability to have multiple
7838 prologue sections.
7839
8c165d89
AD
78402002-06-18 Akim Demaille <akim@epita.fr>
7841
7842 * src/files.c (compute_base_names): When computing the output file
7843 names from the input file name, strip the directory part.
7844
ca98bf57
AD
78452002-06-18 Akim Demaille <akim@epita.fr>
7846
7847 * data/bison.simple.new: Comment changes.
7848 Reported by Andreas Schwab.
7849
0bfb02ff
AD
78502002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
7851
7852 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
7853 there are no `label `yyoverflowlab' defined but not used' warnings
7854 when yyoverflow is defined.
7855
24c0aad7
AD
78562002-06-18 Akim Demaille <akim@epita.fr>
7857
7858 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
7859 new member.
7860 (symbol_destructor_set): Adjust.
7861 * src/output.c (symbol_destructors_output): Output the destructor
7862 locations.
7863 Output the symbol name.
7864 * data/bison.simple (b4_symbol_destructor): Adjust.
7865
5719c109
AD
78662002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
7867 and Akim Demaille <akim@epita.fr>
7868
7869 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
7870 what's left on the stack when the error recovery hits EOF.
7871 * tests/actions.at (Destructors): Complete to exercise this case.
7872
9280d3ef
AD
78732002-06-17 Akim Demaille <akim@epita.fr>
7874
7875 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
7876 arguments is really empty, not only equal to `[]'.
7877 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
7878 member.
7879 (symbol_destructor_set): New.
7880 * src/output.c (symbol_destructors_output): New.
7881 * src/reader.h (brace_code_t, current_braced_code): New.
7882 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
7883 (handle_dollar): Rename as...
7884 (handle_action_dollar): this.
7885 (handle_destructor_dollar): New.
7886 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
7887 (grammar_declaration): Use it.
7888 * data/bison.simple (yystos): Is always defined.
7889 (yydestructor): New.
7890 * tests/actions.at (Destructors): New.
7891 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
7892
dafdc66f
AD
78932002-06-17 Akim Demaille <akim@epita.fr>
7894
7895 * src/symlist.h, src/symlist.c (symbol_list_length): New.
7896 * src/scan-gram.l (handle_dollar, handle_at): Compute the
7897 rule_length only when needed.
7898 * src/output.c (actions_output, token_definitions_output): Output
7899 the full M4 block.
7900 * src/symtab.c: Don't access directly to the symbol tag, use
7901 symbol_tag_get.
7902 * src/parse-gram.y: Use symbol_list_free.
7903
56c47203
AD
79042002-06-17 Akim Demaille <akim@epita.fr>
7905
7906 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
7907 (symbol_list_prepend, get_type_name): Move to...
7908 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
7909 (symbol_list_prepend, symbol_list_n_type_name_get): here.
7910 Adjust all callers.
7911 (symbol_list_free): New.
7912 * src/scan-gram.l (handle_dollar): Takes a location.
7913 * tests/input.at (Invalid $n): Adjust.
7914
1e0bab92
AD
79152002-06-17 Akim Demaille <akim@epita.fr>
7916
7917 * src/reader.h, src/reader.c (symbol_list_new): Export it.
7918 (symbol_list_prepend): New.
7919 * src/parse-gram.y (%union): `list' is a new member.
7920 (symbols.1): New, replaces...
7921 (terms_to_prec.1, nterms_to_type.1): these.
7922 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
7923 Take a location as additional argument.
7924 Adjust all callers.
7925
04e60654
AD
79262002-06-15 Akim Demaille <akim@epita.fr>
7927
7928 * src/parse-gram.y: Move %token in the declaration section so that
7929 we don't depend upon CVS Bison.
7930
10e5b8bd
AD
79312002-06-15 Akim Demaille <akim@epita.fr>
7932
7933 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
7934 * src/print.c (print_core): Use it.
7935
9801d40c
AD
79362002-06-15 Akim Demaille <akim@epita.fr>
7937
7938 * src/conflicts.c (log_resolution): Accept the rule involved in
7939 the sr conflicts instead of the lookahead number that points to
7940 that rule.
7941 (flush_reduce): Accept the current lookahead vector as argument,
7942 instead of the index in LA.
7943 (resolve_sr_conflict): Accept the current number of lookahead
7944 bitset to consider for the STATE, instead of the index in LA.
7945 (set_conflicts): Adjust.
7946 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
7947
c0263492
AD
79482002-06-15 Akim Demaille <akim@epita.fr>
7949
7950 * src/state.h (state_t): Replace the `lookaheadsp' member, a
7951 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
7952 Adjust all dependencies.
7953 * src/lalr.c (initialize_lookaheads): Split into...
7954 (states_lookaheads_count, states_lookaheads_initialize): these.
7955 (lalr): Adjust.
7956
9757c359
AD
79572002-06-15 Akim Demaille <akim@epita.fr>
7958
7959 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
7960 out of...
7961 (grammar_rules_print): here.
7962 * src/reduce.c (reduce_output): Use it.
7963 * tests/reduce.at (Useless Rules, Reduced Automaton)
7964 (Underivable Rules): Adjust.
7965
6b98e4b5
AD
79662002-06-15 Akim Demaille <akim@epita.fr>
7967
7968 Copy BYacc's nice way to report the grammar.
7969
7970 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
7971 New.
7972 Don't print the rules' location, it is confusing and useless.
7973 (rule_print): Use grammar_rhs_print.
7974 * src/print.c (print_grammar): Use grammar_rules_print.
7975
6b98e4b5
AD
79762002-06-15 Akim Demaille <akim@epita.fr>
7977
7978 Complete and rationalize `useless thing' warnings.
7979
7980 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
7981 (symbol_tag_print): New.
7982 Use them everywhere in place of accessing directly the tag member.
7983 * src/gram.h, src/gram.c (rule_print): New.
7984 Use it where a rule used to be printed `by hand'.
7985 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
7986 (reduce_grammar_tables): Report the useless rules.
7987 (reduce_print): Useless things are a warning, not an error.
7988 Report it as such.
7989 * tests/reduce.at (Useless Nonterminals, Useless Rules):
7990 (Reduced Automaton, Underivable Rules): Adjust.
7991 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
7992 * tests/conflicts.at (Unresolved SR Conflicts)
7993 (Solved SR Conflicts): Adjust.
7994
ee000ba4
AD
79952002-06-15 Akim Demaille <akim@epita.fr>
7996
7997 Let symbols have a location.
7998
7999 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
8000 (getsym): Adjust.
8001 Adjust all callers.
8002 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
8003 Use location_t, not int.
8004 * src/symtab.c (symbol_check_defined): Take advantage of the
8005 location.
8006 * tests/regression.at (Invalid inputs): Adjust.
8007
8efe435c
AD
80082002-06-15 Akim Demaille <akim@epita.fr>
8009
8010 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
8011 (input): Don't try to initialize yylloc here, do it in the
8012 scanner.
8013 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
8014 * src/gram.h (rule_t): Change line and action_line into location
8015 and action_location, of location_t type.
8016 Adjust all dependencies.
8017 * src/location.h, src/location.c (empty_location): New.
8018 * src/reader.h, src/reader.c (grammar_start_symbol_set)
8019 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
8020 (grammar_current_rule_symbol_append)
8021 (grammar_current_rule_action_append): Expect a location as argument.
8022 * src/reader.c (grammar_midrule_action): Adjust to attach an
8023 action's location as dummy symbol location.
8024 * src/symtab.h, src/symtab.c (startsymbol_location): New.
8025 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
8026 the line numbers.
8027
1921f1d7
AD
80282002-06-14 Akim Demaille <akim@epita.fr>
8029
8030 Grammar declarations may be found in the grammar section.
8031
8032 * src/parse-gram.y (rules_or_grammar_declaration): New.
8033 (declarations): Each declaration may end with a semicolon, not
8034 just...
8035 (grammar_declaration): `"%union"'.
8036 (grammar): Branch to rules_or_grammar_declaration.
8037
4515534c
AD
80382002-06-14 Akim Demaille <akim@epita.fr>
8039
8040 * src/main.c (main): Invoke scanner_free.
8041
f958596b
AD
80422002-06-14 Akim Demaille <akim@epita.fr>
8043
8044 * src/output.c (m4_invoke): Extracted from...
8045 (output_skeleton): here.
8046 Free tempfile.
8047
2c569025
AD
80482002-06-14 Akim Demaille <akim@epita.fr>
8049
8050 * src/parse-gram.y (directives, directive, gram)
8051 (grammar_directives, precedence_directives, precedence_directive):
8052 Rename as...
8053 (declarations, declaration, grammar, grammar_declaration)
8054 (precedence_declaration, precedence_declarator): these.
8055 (symbol_declaration): New.
8056
592e8d4d
AD
80572002-06-14 Akim Demaille <akim@epita.fr>
8058
8059 * src/files.c (action_obstack): Remove, unused.
8060 (output_obstack): Remove it, and all its dependencies, as it is no
8061 longer needed.
8062 * src/reader.c (epilogue_set): Build the epilogue in the
8063 muscle_obstack.
8064 * src/output.h, src/output.c (muscle_obstack): Move to...
8065 * src/muscle_tab.h, src/muscle_tab.h: here.
8066 (muscle_init): Initialize muscle_obstack.
8067 (muscle_free): New.
8068 * src/main.c (main): Call it.
8069
0c15323d
AD
80702002-06-14 Akim Demaille <akim@epita.fr>
8071
8072 * src/location.h: New, extracted from...
8073 * src/reader.h: here.
8074 * src/Makefile.am (noinst_HEADERS): Merge into
8075 (bison_SOURCES): this.
8076 Add location.h.
8077 * src/parse-gram.y: Use location_t instead of Bison's.
8078 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
8079 Use location_t instead of ints.
8080
e96c9728
AD
80812002-06-14 Akim Demaille <akim@epita.fr>
8082
8083 * data/bison.simple, data/bison.c++: Be sure to restore the
8084 current #line when returning to the skeleton contents after having
8085 exposed the input file's #line.
8086
75d1fe16
AD
80872002-06-12 Akim Demaille <akim@epita.fr>
8088
8089 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
8090 eager.
8091 * tests/actions.at (Exotic Dollars): New.
8092
6c35d22c
AD
80932002-06-12 Akim Demaille <akim@epita.fr>
8094
8095 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
8096 ['"/] too eagerly.
8097 * tests/input.at (Torturing the Scanner): New.
8098
1d6412ad
AD
80992002-06-11 Akim Demaille <akim@epita.fr>
8100
8101 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
8102 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
8103 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
8104 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
8105 * src/reader.c (reader): Use it.
8106
4cdb01db
AD
81072002-06-11 Akim Demaille <akim@epita.fr>
8108
8109 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
8110 Adjust all callers.
8111 (scanner_last_string_free): New.
8112
44995b2e
AD
81132002-06-11 Akim Demaille <akim@epita.fr>
8114
8115 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
8116 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
8117 (last_string, YY_OBS_FREE): New.
8118 Use them when returning an ID.
8119
e9955c83
AD
81202002-06-11 Akim Demaille <akim@epita.fr>
8121
8122 Have Bison grammars parsed by a Bison grammar.
8123
8124 * src/reader.c, src/reader.h (prologue_augment): New.
8125 * src/reader.c (copy_definition): Remove.
8126
8127 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
8128 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
8129 (grammar_current_rule_prec_set, grammar_current_rule_check)
8130 (grammar_current_rule_symbol_append)
8131 (grammar_current_rule_action_append): Export.
8132 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
8133 (symbol_list_action_append): Remove.
8134 Hook the routines from reader.
8135 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
8136 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
8137
8138 * src/reader.c (read_declarations): Remove, unused.
8139
8140 * src/parse-gram.y: Handle the epilogue.
8141 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
8142 (grammar_start_symbol_set): this.
8143 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
8144 * src/reader.c (readgram): Remove, unused.
8145 (reader): Adjust to insert eoftoken and axiom where appropriate.
8146
8147 * src/reader.c (copy_dollar): Replace with...
8148 * src/scan-gram.h (handle_dollar): this.
8149 * src/parse-gram.y: Remove `%thong'.
8150
8151 * src/reader.c (copy_at): Replace with...
8152 * src/scan-gram.h (handle_at): this.
8153
8154 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
8155 New.
8156
8157 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
8158 time being.
8159
8160 * src/reader.h, src/reader.c (grammar_rule_end): New.
8161
8162 * src/parse.y (current_type, current_class): New.
8163 Implement `%nterm', `%token' support.
8164 Merge `%term' into `%token'.
8165 (string_as_id): New.
8166 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
8167 type name.
8168
8169 * src/parse-gram.y: Be sure to handle properly the beginning of
8170 rules.
8171
8172 * src/parse-gram.y: Handle %type.
8173 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
8174
8175 * src/parse-gram.y: More directives support.
8176 * src/options.c: No longer handle source directives.
8177
8178 * src/parse-gram.y: Fix %output.
8179
8180 * src/parse-gram.y: Handle %union.
8181 Use the prologue locations.
8182 * src/reader.c (parse_union_decl): Remove.
8183
8184 * src/reader.h, src/reader.c (epilogue_set): New.
8185 * src/parse-gram.y: Use it.
8186
8187 * data/bison.simple, data/bison.c++: b4_stype is now either not
8188 defined, then default to int, or to the contents of %union,
8189 without `union' itself.
8190 Adjust.
8191 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
8192
8193 * src/output.c (actions_output): Don't output braces, as they are
8194 already handled by the scanner.
8195
8196 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
8197 characters to themselves.
8198
8199 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
8200 that the epilogue has a proper #line.
8201
8202 * src/parse-gram.y: Handle precedence/associativity.
8203
8204 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
8205 a terminal.
8206 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
8207 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
8208 at all to define terminals that cannot be emitted.
8209
8210 * src/scan-gram.l: Escape M4 characters.
8211
8212 * src/scan-gram.l: Working properly with escapes in user
8213 strings/characters.
8214
8215 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
8216 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
8217 grammar.
8218 Use more modest sizes, as for the time being the parser does not
8219 release memory, and therefore the process swallows a huge amount
8220 of memory.
8221
8222 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
8223 stricter %token grammar.
8224
8225 * src/symtab.h (associativity): Add `undef_assoc'.
8226 (symbol_precedence_set): Do nothing when passed an undef_assoc.
8227 * src/symtab.c (symbol_check_alias_consistence): Adjust.
8228
8229 * tests/regression.at (Invalid %directive): Remove, as it is now
8230 meaningless.
8231 (Invalid inputs): Adjust to the new error messages.
8232 (Token definitions): The new grammar doesn't allow too many
8233 eccentricities.
8234
8235 * src/lex.h, src/lex.c: Remove.
8236 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
8237 (copy_character, copy_string2, copy_string, copy_identifier)
8238 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
8239 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
8240 (parse_action): Remove.
8241 * po/POTFILES.in: Adjust.
8242
2e047461
AD
82432002-06-11 Akim Demaille <akim@epita.fr>
8244
cd05d13c 8245 * src/reader.c (parse_action): Don't store directly into the
2e047461
AD
8246 rule's action member: return the action as a string.
8247 Don't require `rule_length' as an argument: compute it.
8248 (grammar_current_rule_symbol_append)
8249 (grammar_current_rule_action_append): New, eved out from
8250 (readgram): here.
8251 Remove `action_flag', `rulelength', unused now.
8252
9af3fbce
AD
82532002-06-11 Akim Demaille <akim@epita.fr>
8254
8255 * src/reader.c (grammar_current_rule_prec_set).
8256 (grammar_current_rule_check): New, eved out from...
8257 (readgram): here.
8258 Remove `xaction', `first_rhs': useless.
8259 * tests/input.at (Type clashes): New.
8260 * tests/existing.at (GNU Cim Grammar): Adjust.
8261
1485e106
AD
82622002-06-11 Akim Demaille <akim@epita.fr>
8263
8264 * src/reader.c (grammar_midrule_action): New, Eved out from
8265 (readgram): here.
8266
da4160c3
AD
82672002-06-11 Akim Demaille <akim@epita.fr>
8268
8269 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
8270 New.
8271 (readgram): Use them as replacement of inlined code, crule and
8272 crule1.
8273
f6d0f937
AD
82742002-06-11 Akim Demaille <akim@epita.fr>
8275
8276 * src/reader.c (grammar_end, grammar_symbol_append): New.
8277 (readgram): Use them.
8278 Make the use of `p' as local as possible.
8279
69078d4b
AD
82802002-06-10 Akim Demaille <akim@epita.fr>
8281
8282 GCJ's parser requires the tokens to be defined before the prologue.
8283
8284 * data/bison.simple: Output the token definition before the user's
8285 prologue.
8286 * tests/regression.at (Braces parsing, Duplicate string)
8287 (Mixing %token styles): Check the output from bison.
8288 (Early token definitions): New.
8289
5e424082
AD
82902002-06-10 Akim Demaille <akim@epita.fr>
8291
8292 * src/symtab.c (symbol_user_token_number_set): Don't complain when
8293 assigning twice the same user number to a token, so that we can
8294 use it in...
8295 * src/lex.c (lex): here.
8296 Also use `symbol_class_set' instead of hand written code.
8297 * src/reader.c (parse_assoc_decl): Likewise.
8298
44536b35
AD
82992002-06-10 Akim Demaille <akim@epita.fr>
8300
8301 * src/symtab.c, src/symtab.c (symbol_class_set)
8302 (symbol_user_token_number_set): New.
8303 * src/reader.c (parse_token_decl): Use them.
8304 Use a switch instead of ifs.
8305 Use a single argument.
8306
8b9f2372
AD
83072002-06-10 Akim Demaille <akim@epita.fr>
8308
8309 Remove `%thong' support as it is undocumented, unused, duplicates
8310 `%token's job, and creates useless e-mail traffic with people who
8311 want to know what it is, why it is undocumented, unused, and
8312 duplicates `%token's job.
8313
8314 * src/reader.c (parse_thong_decl): Remove.
8315 * src/options.c (option_table): Remove "thong".
8316 * src/lex.h (tok_thong): Remove.
8317
3ae2b51f
AD
83182002-06-10 Akim Demaille <akim@epita.fr>
8319
8320 * src/symtab.c, src/symtab.c (symbol_type_set)
8321 (symbol_precedence_set): New.
8322 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
8323 (value_components_used): Remove, unused.
8324
2f1afb73
AD
83252002-06-09 Akim Demaille <akim@epita.fr>
8326
8327 Move symbols handling code out of the reader.
8328
8329 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
8330 (axiom): Move to...
8331 * src/symtab.h, src/symtab.c: here.
8332
8333 * src/gram.c (start_symbol): Remove: use startsymbol->number.
8334 * src/reader.c (startval): Rename as...
8335 * src/symtab.h, src/symtab.c (startsymbol): this.
8336 * src/reader.c: Adjust.
8337
8338 * src/reader.c (symbol_check_defined, symbol_make_alias)
8339 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
8340 (token_translations_init)
8341 Move to...
8342 * src/symtab.c: here.
8343 * src/reader.c (packsymbols): Move to...
8344 * src/symtab.h, src/symtab.c (symbols_pack): here.
8345 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
8346 argument.
8347
e9bca3ad
AD
83482002-06-03 Akim Demaille <akim@epita.fr>
8349
8350 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
8351 then statements.
8352
86eff183
AD
83532002-06-03 Akim Demaille <akim@epita.fr>
8354
8355 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
8356 structs with non literals.
8357 * src/scan-skel.l: never-interactive.
8358 * src/conflicts.c (enum conflict_resolution_e): No trailing
8359 comma.
8360 * src/getargs.c (usage): Split long literal strings.
8361 Reported by Hans Aberg.
8362
717be197
AD
83632002-05-28 Akim Demaille <akim@epita.fr>
8364
8365 * data/bison.c++: Use C++ ostreams.
8366 (cdebug_): New member.
8367
670ddffd
AD
83682002-05-28 Akim Demaille <akim@epita.fr>
8369
8370 * src/output.c (output_skeleton): Be sure to allocate enough room
8371 for `/' _and_ for `\0' in full_skeleton.
8372
769b430f
AD
83732002-05-28 Akim Demaille <akim@epita.fr>
8374
8375 * data/bison.c++: Catch up with bison.simple:
8376 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8377 and Paul Eggert <eggert@twinsun.com>: `error' handing.
8378 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
8379 and popping traces.
8380
7067cb36
PH
83812002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8382
8383 * src/output.c (output_skeleton): Put an explicit path in front of
8384 the skeleton file name, rather than relying on the -I directory,
8385 to partially alleviate effects of having a skeleton file lying around
8386 in the current directory.
769b430f 8387
4a713ec2
PH
83882002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8389
769b430f 8390 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
8391 obstack_printf should be obstack_fgrow1.
8392
b408954b
AD
83932002-05-26 Akim Demaille <akim@epita.fr>
8394
8395 * src/state.h (state_t): `solved_conflicts' is a new member.
8396 * src/LR0.c (new_state): Set it to 0.
8397 * src/conflicts.h, src/conflicts.c (print_conflicts)
8398 (free_conflicts, solve_conflicts): Rename as...
8399 (conflicts_print, conflicts_free, conflicts_solve): these.
8400 Adjust callers.
8401 * src/conflicts.c (enum conflict_resolution_e)
8402 (solved_conflicts_obstack): New, used by...
8403 (log_resolution): this.
8404 Adjust to attach the conflict resolution to each state.
8405 Complete the description with the precedence/associativity
8406 information.
8407 (resolve_sr_conflict): Adjust.
8408 * src/print.c (print_state): Output its solved_conflicts.
8409 * tests/conflicts.at (Unresolved SR Conflicts)
8410 (Solved SR Conflicts): Exercise --report=all.
8411
a49aecd5
AD
84122002-05-26 Akim Demaille <akim@epita.fr>
8413
8414 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
8415 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
8416 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
8417 (token_number_t, item_number_as_token_number)
8418 (token_number_as_item_number, muscle_insert_token_number_table):
8419 Rename as...
8420 (symbol_number_t, item_number_as_symbol_number)
8421 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
8422 these, since it is more appropriate.
8423
5504898e
AD
84242002-05-26 Akim Demaille <akim@epita.fr>
8425
8426 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
8427 `Error:' lines.
8428 * data/bison.simple (yystos) [YYDEBUG]: New.
8429 (yyparse) [YYDEBUG]: Display the symbols which are popped during
8430 error recovery.
8431 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
8432
ec3bc396
AD
84332002-05-25 Akim Demaille <akim@epita.fr>
8434
8435 * doc/bison.texinfo (Debugging): Split into...
8436 (Tracing): this new section, its former contents, and...
8437 (Understanding): this new section.
8438 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
8439 by...
8440 (report_flag): this.
8441 Adjust all dependencies.
8442 (report_args, report_types, report_argmatch): New.
8443 (usage, getargs): Report/support -r, --report.
8444 * src/options.h
8445 (struct option_table_struct): Rename as..,
8446 (struct option_table_s): this.
8447 Rename the `set_flag' member to `flag' to match with getopt_long's
8448 struct.
8449 * src/options.c (option_table): Split verbose into an entry for
8450 %verbose, and another for --verbose.
8451 Support --report/-r, so remove -r from the obsolete --raw.
8452 * src/print.c: Attach full item sets and lookaheads reports to
8453 report_flag instead of trace_flag.
8454 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
8455
78df8250
PE
84562002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8457 and Paul Eggert <eggert@twinsun.com>
769b430f 8458
78df8250
PE
8459 * data/bison.simple (yyparse): Correct error handling to conform to
8460 POSIX and yacc. Specifically, after syntax error is discovered,
8461 do not reduce further before shifting the error token.
8462 Clean up the code a bit by removing the labels yyerrdefault,
8463 yyerrhandle, yyerrpop.
8464 * NEWS: Document the above.
8465
c0c9ea05
PH
84662002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8467
8468 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
8469 type; it isn't always big enough, since it doesn't necessarily
8470 include non-terminals.
769b430f 8471 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
8472 the latter can be removed.
8473 (yy_token_number_type): Remove, only one use.
8474 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
8475 don't use TokenNumberType as element type.
769b430f 8476
c0c9ea05
PH
8477 * tests/regression.at: Modify expected output to agree with change
8478 to yyr1 and yytranslate.
769b430f 8479
6390a83f
FK
84802002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
8481
8482 * src/reader.c (parse_action): Use copy_character instead of
8483 obstack_1grow.
8484
db7c8e9a
AD
84852002-05-13 Akim Demaille <akim@epita.fr>
8486
8487 * tests/regression.at (Token definitions): Prototype yylex and
8488 yyerror.
8489
fcc61800
PH
84902002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
8491
158c687b 8492 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
8493 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
8494 32-bit arithmetic.
8495 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
8496
5683e9b2
AD
84972002-05-07 Akim Demaille <akim@epita.fr>
8498
8499 * tests/synclines.at: Be sure to prototype yylex and yyerror to
8500 avoid GCC warnings.
8501
0c2d3f4c
AD
85022002-05-07 Akim Demaille <akim@epita.fr>
8503
8504 Kill GCC warnings.
8505
8506 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
8507 over the RHS of each rule.
8508 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
8509 * src/state.h (state_t): Member `nitems' is unsigned short.
8510 * src/LR0.c (get_state): Adjust.
8511 * src/reader.c (packgram): Likewise.
8512 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
8513 `Type'.
8514 (muscle_insert_int_table): Remove, unused.
8515 (prepare_rules): Remove `max'.
8516
1565b720
AD
85172002-05-06 Akim Demaille <akim@epita.fr>
8518
8519 * src/closure.c (print_firsts): Display of the symbol tags.
8520 (bitmatrix_print): Move to...
8521 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
8522 here.
8523 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
8524
cfaee611
AD
85252002-05-06 Akim Demaille <akim@epita.fr>
8526
8527 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
8528 hash_do_for_each.
8529
458be8e0
AD
85302002-05-06 Akim Demaille <akim@epita.fr>
8531
8532 * src/LR0.c (new_state, get_state): Instead of using the global
8533 `kernel_size' and `kernel_base', have two new arguments:
8534 `core_size' and `core'.
8535 Adjust callers.
8536
a900a624
AD
85372002-05-06 Akim Demaille <akim@epita.fr>
8538
8539 * src/reader.c (packgram): No longer end `ritem' with a 0
8540 sentinel: it is not used.
8541
d4e7d3a1
AD
85422002-05-05 Akim Demaille <akim@epita.fr>
8543
8544 New experimental feature: display the lookaheads in the report and
8545 graph.
8546
8547 * src/print (print_core): When --trace-flag, display the rules
8548 lookaheads.
8549 * src/print_graph.c (print_core): Likewise.
8550 Swap the arguments.
8551 Adjust caller.
8552
39ceb25b
AD
85532002-05-05 Akim Demaille <akim@epita.fr>
8554
8555 * tests/torture.at (Many lookaheads): New test.
8556
5372019f
AD
85572002-05-05 Akim Demaille <akim@epita.fr>
8558
8559 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
8560 (GENERATE_MUSCLE_INSERT_TABLE): this.
8561 (output_int_table, output_unsigned_int_table, output_short_table)
8562 (output_token_number_table, output_item_number_table): Replace with...
8563 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
8564 (muscle_insert_short_table, muscle_insert_token_number_table)
8565 (muscle_insert_item_number_table): these.
8566 Adjust all callers.
8567 (prepare_tokens): Don't free `translations', since...
8568 * src/reader.h, src/reader.c (grammar_free): do it.
8569 Move to...
8570 * src/gram.h, src/gram.c (grammar_free): here.
8571 * data/bison.simple, data/bison.c++: b4_token_number_max is now
8572 b4_translate_max.
8573
5df5f6d5
AD
85742002-05-05 Akim Demaille <akim@epita.fr>
8575
8576 * src/output.c (output_unsigned_int_table): New.
8577 (prepare_rules): `i' is unsigned.
8578 `prhs', `rline', `r2' are unsigned int.
8579 Rename muscle `rhs_number_max' as `rhs_max'.
8580 Output muscles `prhs_max', `rline_max', and `r2_max'.
8581 Free rline and r1.
8582 * data/bison.simple, data/bison.c++: Adjust to use these muscles
8583 to compute types instead of constant types.
8584 * tests/regression.at (Web2c Actions): Adjust.
8585
b87f8b21
AD
85862002-05-04 Akim Demaille <akim@epita.fr>
8587
8588 * src/symtab.h (SALIAS, SUNDEF): Rename as...
8589 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
8590 Adjust dependencies.
8591 * src/output.c (token_definitions_output): Be sure not to output a
8592 `#define 'a'' when fed with `%token 'a' "a"'.
8593 * tests/regression.at (Token definitions): New.
8594
8bb936e4
PE
85952002-05-03 Paul Eggert <eggert@twinsun.com>
8596
8597 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
8598 for K&R C.
8599
86002002-05-03 gettextize <bug-gnu-gettext@gnu.org>
8601
8602 * Makefile.am (SUBDIRS): Remove intl.
8603 (EXTRA_DIST): Add config/config.rpath.
8604
53c71a12
AD
86052002-05-03 Akim Demaille <akim@epita.fr>
8606
8607 * data/bison.simple (m4_if): Don't output empty enums.
8608 And actually, output valid enum definitions :(.
8609
289dd0cf
AD
86102002-05-03 Akim Demaille <akim@epita.fr>
8611
8612 * configure.bat: Remove, completely obsolete.
8613 * Makefile.am (EXTRA_DIST): Adjust.
8614 Don't distribute config.rpath...
8615 * config/Makefile.am (EXTRA_DIST): Do it.
8616
db85e524
AD
86172002-05-03 Akim Demaille <akim@epita.fr>
8618
8619 * configure.in (GETTEXT_VERSION): New.
8620 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
8621
83ccf991
AD
86222002-05-03 Akim Demaille <akim@epita.fr>
8623
8624 * data/bison.simple (b4_token_enum): New.
8625 (b4_token_defines): Use it to output tokens both as #define and
8626 enums.
8627 Suggested by Paul Eggert.
8628 * src/output.c (token_definitions_output): Don't output spurious
8629 white spaces.
8630
1f418995
AD
86312002-05-03 Akim Demaille <akim@epita.fr>
8632
8633 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
8634
45119f04
RA
86352002-05-02 Robert Anisko <robert@lrde.epita.fr>
8636
8637 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
8638 Update the stack class, give a try to deque as the default container.
8639
b2d52318
AD
86402002-05-02 Akim Demaille <akim@epita.fr>
8641
8642 * data/bison.simple (yyparse): Do not implement @$ = @1.
8643 (YYLLOC_DEFAULT): Adjust to do it.
8644 * doc/bison.texinfo (Location Default Action): Fix.
8645
3a8b4109
AD
86462002-05-02 Akim Demaille <akim@epita.fr>
8647
8648 * src/reader.c (parse_braces): Merge into...
8649 (parse_action): this.
8650
84614e13
AD
86512002-05-02 Akim Demaille <akim@epita.fr>
8652
8653 * configure.in (ALL_LINGUAS): Remove.
8654 * po/LINGUAS, hr.po: New.
8655
fdbcd8e2
AD
86562002-05-02 Akim Demaille <akim@epita.fr>
8657
8658 Remove the so called hairy (semantic) parsers.
8659
8660 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
8661 * src/gram.h, src/gram.c (semantic_parser): Remove.
8662 (rule_t): Remove the guard and guard_line members.
8663 * src/lex.h (token_t): remove tok_guard.
8664 * src/options.c (option_table): Remove %guard and %semantic_parser
8665 support.
8666 * src/output.c, src/output.h (guards_output): Remove.
8667 (prepare): Adjust.
8668 (token_definitions_output): Don't output the `T'
8669 tokens (???).
8670 (output_skeleton): Don't output the guards.
8671 * src/files.c, src/files.c (attrsfile): Remove.
8672 * src/reader.c (symbol_list): Remove the guard and guard_line
8673 members.
8674 Adjust dependencies.
8675 (parse_guard): Remove.
8676 * data/bison.hairy: Remove.
8677 * doc/bison.texinfo (Environment Variables): Remove occurrences of
8678 BISON_HAIRY.
8679
82b6cb3f
AD
86802002-05-02 Akim Demaille <akim@epita.fr>
8681
8682 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
8683 (parse_guard): Rename the formal argument `stack_offset' as
8684 `rule_length', which is more readable.
8685 Adjust callers.
8686 (copy_at, copy_dollar): Instead of outputting the hard coded
8687 values of $$, $n and so forth, output invocation to b4_lhs_value,
8688 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
8689 Note: this patch partially drops `semantic-parser' support: it
8690 always does `rule_length - n', where semantic parsers ought to
8691 always use `-n'.
82b6cb3f
AD
8692 * data/bison.simple, data/bison.c++ (b4_lhs_value)
8693 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
8694
6cbfbcc5
AD
86952002-05-02 Akim Demaille <akim@epita.fr>
8696
8697 * configure.in (AC_INIT): Bump to 1.49b.
8698 (AM_INIT_AUTOMAKE): Short invocation.
8699
b8548114
AD
87002002-05-02 Akim Demaille <akim@epita.fr>
8701
8702 Version 1.49a.
8703
c20cd1fa
AD
87042002-05-01 Akim Demaille <akim@epita.fr>
8705
8706 * src/skeleton.h: Remove.
8707
8a9566d4
AD
87082002-05-01 Akim Demaille <akim@epita.fr>
8709
8710 * src/skeleton.h: Fix the #endif.
8711 Reported by Magnus Fromreide.
8712
8c6d399a
PE
87132002-04-26 Paul Eggert <eggert@twinsun.com>
8714
8715 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
8716 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 8717 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 8718
2b7ed18a
RA
87192002-04-25 Robert Anisko <robert@lrde.epita.fr>
8720
8721 * src/scan-skel.l: Postprocess quadrigraphs.
8722
8723 * src/reader.c (copy_character): New function, used to output
8724 single characters while replacing `[' and `]' with quadrigraphs, to
8725 avoid troubles with M4 quotes.
8726 (copy_comment): Output characters with copy_character.
8727 (read_additionnal_code): Likewise.
8728 (copy_string2): Likewise.
8729 (copy_definition): Likewise.
8730
8731 * tests/calc.at: Exercise M4 quoting.
8732
34a89c50
AD
87332002-04-25 Akim Demaille <akim@epita.fr>
8734
8735 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
8736 between `!' and the command.
8737 Reported by Paul Eggert.
8738
0dd1580a
RA
87392002-04-24 Robert Anisko <robert@lrde.epita.fr>
8740
8741 * tests/calc.at: Exercise prologue splitting.
8742
8743 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
8744 `b4_post_prologue' instead of `b4_prologue'.
8745
8746 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
8747 muscles.
8748 (output): Free pre_prologue_obstack and post_prologue_obstack.
8749 * src/files.h, src/files.c (attrs_obstack): Remove.
8750 (pre_prologue_obstack, post_prologue_obstack): New.
8751 * src/reader.c (copy_definition): Add a parameter to specify the
8752 obstack to fill, instead of using attrs_obstack unconditionally.
8753 (read_declarations): Pass pre_prologue_obstack to copy_definition if
8754 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
8755
83c1796f
PE
87562002-04-23 Paul Eggert <eggert@twinsun.com>
8757
8758 * data/bison.simple: Remove unnecessary commentary and white
8759 space differences from 1_29-branch.
8760 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
8761
8762 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
8763 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
8764 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
8765 constructors or destructors.
8766
8767 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
8768
1207eeac
AD
87692002-04-23 Akim Demaille <akim@epita.fr>
8770
8771 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
8772 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
8773 location with columns.
8774 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
8775 All reported by Paul Eggert.
8776
78ab8f67
AD
87772002-04-22 Akim Demaille <akim@epita.fr>
8778
8779 * src/reduce.c (dump_grammar): Move to...
8780 * src/gram.h, src/gram.c (grammar_dump): here.
8781 Be sure to separate long item numbers.
8782 Don't read the members of a rule's prec if its nil.
8783
133c20e2
AD
87842002-04-22 Akim Demaille <akim@epita.fr>
8785
8786 * src/output.c (table_size, table_grow): New.
8787 (MAXTABLE): Remove, replace uses with table_size.
8788 (pack_vector): Instead of dying when the table is too big, grow it.
8789
9515e8a7
AD
87902002-04-22 Akim Demaille <akim@epita.fr>
8791
8792 * data/bison.simple (yyr1): Its type is that of a token number.
8793 * data/bison.c++ (r1_): Likewise.
8794 * tests/regression.at (Web2c Actions): Adjust.
8795
23c5a174
AD
87962002-04-22 Akim Demaille <akim@epita.fr>
8797
8798 * src/reader.c (token_translations_init): 256 is now the default
8799 value for the error token, i.e., it will be assigned another
8800 number if the user assigned 256 to one of her tokens.
8801 (reader): Don't force 256 to error.
8802 * doc/bison.texinfo (Symbols): Adjust.
8803 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
8804 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
8805 etc. instead of 10, 20, 30 (which was used to `jump' over error
8806 (256) and undefined (2)).
8807
5fbb0954
AD
88082002-04-22 Akim Demaille <akim@epita.fr>
8809
8810 Propagate more token_number_t.
8811
8812 * src/gram.h (token_number_as_item_number)
8813 (item_number_as_token_number): New.
8814 * src/output.c (GENERATE_OUTPUT_TABLE): New.
8815 Use it to create output_item_number_table and
8816 output_token_number_table.
8817 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
8818 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
8819 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
8820 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
8821
4f940944
AD
88222002-04-22 Akim Demaille <akim@epita.fr>
8823
8824 * src/output.h, src/output.c (get_lines_number): Remove.
8825
3ded9a63
AD
88262002-04-19 Akim Demaille <akim@epita.fr>
8827
8828 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
8829 as Lex/Flex'.
8830 (Debugging): More details about enabling the debugging features.
8831 (Table of Symbols): Describe $$, $n, @$, and @n.
8832 Suggested by Tim Josling.
8833
e0c471a9
AD
88342002-04-19 Akim Demaille <akim@epita.fr>
8835
8836 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
8837
fecc10cd
AD
88382002-04-10 Akim Demaille <akim@epita.fr>
8839
8840 * src/system.h: Rely on HAVE_LIMITS_H.
8841 Suggested by Paul Eggert.
8842
51dec47b
AD
88432002-04-09 Akim Demaille <akim@epita.fr>
8844
8845 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
8846 full stderr, and strip it according to the bison options, instead
8847 of composing the error message from different bits.
8848 This makes it easier to check for several error messages.
8849 Adjust all the invocations.
8850 Add an invocation exercising the error token.
8851 Add an invocation demonstrating a stupid error message.
8852 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
8853 Adjust the tests.
8854 Error message are for stderr, not stdout.
8855
007a50a4
AD
88562002-04-09 Akim Demaille <akim@epita.fr>
8857
8858 * src/gram.h, src/gram.c (error_token_number): Remove, use
8859 errtoken->number.
8860 * src/reader.c (reader): Don't specify the user token number (2)
8861 for $undefined, as it uselessly prevents using it.
8862 * src/gram.h (token_number_t): Move to...
8863 * src/symtab.h: here.
8864 (state_t.number): Is a token_number_t.
8865 * src/print.c, src/reader.c: Use undeftoken->number instead of
8866 hard coded 2.
8867 (Even though this 2 is not the same as above: the number of the
8868 undeftoken remains being 2, it is its user token number which
8869 might not be 2).
8870 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
8871 `user_token_number_max'.
8872 Output `undef_token_number'.
8873 * data/bison.simple, data/bison.c++: Use them.
8874 Be sure to map invalid yylex return values to
8875 `undef_token_number'. This saves us from gratuitous SEGV.
8876
8877 * tests/conflicts.at (Solved SR Conflicts)
8878 (Unresolved SR Conflicts): Adjust.
8879 * tests/regression.at (Web2c Actions): Adjust.
8880
06446ccf
AD
88812002-04-08 Akim Demaille <akim@epita.fr>
8882
8883 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
8884 Adding #line.
8885 Remove the duplicate `typedefs'.
8886 (RhsNumberType): Fix the declaration and various other typos.
8887 Use __ofile__.
8888 * data/bison.simple: Use __ofile__.
8889 * src/scan-skel.l: Handle __ofile__.
8890
62a3e4f0
AD
88912002-04-08 Akim Demaille <akim@epita.fr>
8892
8893 * src/gram.h (item_number_t): New, the type of item numbers in
8894 RITEM. Note that it must be able to code symbol numbers as
8895 positive number, and the negation of rule numbers as negative
8896 numbers.
8897 Adjust all dependencies (pretty many).
8898 * src/reduce.c (rule): Remove this `short *' pointer: use
8899 item_number_t.
8900 * src/system.h (MINSHORT, MAXSHORT): Remove.
8901 Include `limits.h'.
8902 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
8903 (shortcpy): Remove.
8904 (MAXTABLE): Move to...
8905 * src/output.c (MAXTABLE): here.
8906 (prepare_rules): Use output_int_table to output rhs.
8907 * data/bison.simple, data/bison.c++: Adjust.
8908 * tests/torture.at (Big triangle): Move the limit from 254 to
8909 500.
8910 * tests/regression.at (Web2c Actions): Ajust.
8911
8912 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
8913 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
8914 passes, but produces negative #line number, once fixed, GCC is
8915 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
8916 C), it passes.
8917 * src/state.h (state_h): Code input lines on ints, not shorts.
8918
bb88b0fc
AD
89192002-04-08 Akim Demaille <akim@epita.fr>
8920
8921 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
8922 and then the grammar.
8923
9a636f47
AD
89242002-04-08 Akim Demaille <akim@epita.fr>
8925
8926 * src/system.h: No longer using strndup.
8927
680e8701
AD
89282002-04-07 Akim Demaille <akim@epita.fr>
8929
8930 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
8931 * src/output.c (output_table_data): Return the longest number.
8932 (prepare_tokens): Output `token_number_max').
8933 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
8934 New.
8935 Use them to define yy_token_number_type/TokenNumberType.
8936 Use this type for yytranslate.
8937 * tests/torture.at (Big triangle): Push the limit from 124 to
8938 253.
8939 * tests/regression.at (Web2c Actions): Adjust.
8940
817e9f41
AD
89412002-04-07 Akim Demaille <akim@epita.fr>
8942
8943 * tests/torture.at (Big triangle): New.
8944 (GNU AWK Grammar, GNU Cim Grammar): Move to...
8945 * tests/existing.at: here.
8946
5123689b
AD
89472002-04-07 Akim Demaille <akim@epita.fr>
8948
8949 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
8950 nritems.
8951 Adjust dependencies.
8952
f3849179
AD
89532002-04-07 Akim Demaille <akim@epita.fr>
8954
8955 * src/reader.c: Normalize increments to prefix form.
8956
bd02036a
AD
89572002-04-07 Akim Demaille <akim@epita.fr>
8958
8959 * src/reader.c, symtab.c: Remove debugging code.
8960
db8837cb
AD
89612002-04-07 Akim Demaille <akim@epita.fr>
8962
8963 Rename all the `bucket's as `symbol_t'.
8964
8965 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
8966 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
8967 * src/symtab.c, src/symtab.h (bucket): Rename as...
8968 (symbol_t): this.
8969 (symbol_list_new, bucket_check_defined, bucket_make_alias)
8970 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
8971 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
8972 (buckets_new, buckets_free, buckets_do): Rename as...
8973 (symbol_list_new, symbol_check_defined, symbol_make_alias)
8974 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
8975 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
8976 (symbols_new, symbols_free, symbols_do): these.
8977
72a23c97
AD
89782002-04-07 Akim Demaille <akim@epita.fr>
8979
8980 Use lib/hash for the symbol table.
8981
8982 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
8983 EOF.
8984 * src/lex.c (lex): Set the `number' member of new terminals.
8985 * src/reader.c (bucket_check_defined, bucket_make_alias)
8986 (bucket_check_alias_consistence, bucket_translation): New.
8987 (reader, grammar_free, readgram, token_translations_init)
8988 (packsymbols): Adjust.
8989 (reader): Number the predefined tokens.
8990 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
8991 for predefined tokens.
8992 * src/symtab.h (bucket): Remove all the hash table related
8993 members.
8994 * src/symtab.c (symtab): Replace by...
8995 (bucket_table): this.
8996 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
8997 (buckets_new, buckets_do): New.
8998
280a38c3
AD
89992002-04-07 Akim Demaille <akim@epita.fr>
9000
9001 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
9002 (start_symbol, max_user_token_number, semantic_parser)
9003 (error_token_number): Initialize.
9004 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
9005 Initialize.
9006 (reader): Don't.
9007 (errtoken, eoftoken, undeftoken, axiom): Extern.
9008
03b31c0c
AD
90092002-04-07 Akim Demaille <akim@epita.fr>
9010
9011 * src/gram.h (rule_s): prec and precsym are now pointers
9012 to the bucket giving the priority/associativity.
9013 Member `associativity' removed: useless.
9014 * src/reduce.c, src/conflicts.c: Adjust.
9015
8b3df748
AD
90162002-04-07 Akim Demaille <akim@epita.fr>
9017
9018 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
9019 Properly escape the symbols' TAG when outputting them.
9020
e601aa1d
AD
90212002-04-07 Akim Demaille <akim@epita.fr>
9022
9023 * src/lalr.h (LA): Is a bitsetv, not bitset*.
9024
b0299a2e
AD
90252002-04-07 Akim Demaille <akim@epita.fr>
9026
9027 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
9028 (LArule): this, which is an array to rule_t*.
9029 * src/print.c, src/conflicts.c: Adjust.
9030
d7e1f00c
AD
90312002-04-07 Akim Demaille <akim@epita.fr>
9032
9033 * src/gram.h (rule_t): Rename `number' as `user_number'.
9034 `number' is a new member.
9035 Adjust dependencies.
9036 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
9037
cc9305dd
AD
90382002-04-07 Akim Demaille <akim@epita.fr>
9039
9040 As a result of the previous patch, it is no longer needed
9041 to reorder ritem itself.
9042
9043 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
9044
b0940840
AD
90452002-04-07 Akim Demaille <akim@epita.fr>
9046
9047 Be sure never to walk through RITEMS, but use only data related to
9048 the rules themselves. RITEMS should be banished.
9049
9050 * src/output.c (output_token_translations): Rename as...
9051 (prepare_tokens): this.
9052 In addition to `translate', prepare the muscles `tname' and
9053 `toknum', which were handled by...
9054 (output_rule_data): this.
9055 Remove, and move the remainder of its outputs into...
9056 (prepare_rules): this new routines, which also merges content from
9057 (output_gram): this.
9058 (prepare_rules): Be sure never to walk through RITEMS.
9059 (output_stos): Rename as...
9060 (prepare_stos): this.
9061 (output): Always invoke prepare_states, after all, just don't use it
9062 in the output if you don't need it.
9063
643a5994
AD
90642002-04-07 Akim Demaille <akim@epita.fr>
9065
9066 * src/LR0.c (new_state): Display `nstates' as the name of the
9067 newly created state.
9068 Adjust to initialize first_state and last_state if needed.
9069 Be sure to distinguish the initial from the final state.
9070 (new_states): Create the itemset of the initial state, and use
9071 new_state.
9072 * src/closure.c (closure): Now that the initial state has its
9073 items properly set, there is no need for a special case when
9074 creating `ruleset'.
9075
9076 As a result, now the rule 0, reducing to $axiom, is visible in the
9077 outputs. Adjust the test suite.
9078
9079 * tests/conflicts.at (Solved SR Conflicts)
9080 (Unresolved SR Conflicts): Adjust.
9081 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
9082 * tests/conflicts.at (S/R in initial): New.
9083
b4c4ccc2
AD
90842002-04-07 Akim Demaille <akim@epita.fr>
9085
9086 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
9087 the RHS of the rules.
9088 * src/output.c (output_gram): Likewise.
9089
bba97eb2
AD
90902002-04-07 Akim Demaille <akim@epita.fr>
9091
9092 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
9093 bucket.
9094 Adjust all dependencies.
9095 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
9096 `number' of the buckets too.
9097 * src/gram.h: Include `symtab.h'.
9098 (associativity): Move to...
9099 * src/symtab.h: here.
9100 No longer include `gram.h'.
9101
c3b407f4
AD
91022002-04-07 Akim Demaille <akim@epita.fr>
9103
9104 * src/gram.h, src/gram.c (rules_rhs_length): New.
9105 (ritem_longest_rhs): Use it.
9106 * src/gram.h (rule_t): `number' is a new member.
9107 * src/reader.c (packgram): Set it.
9108 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
9109 the end of `rules', and count them out of `nrules'.
9110 (reduce_output, dump_grammar): Adjust.
9111 * src/print.c (print_grammar): It is no longer needed to check for
9112 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
9113 * tests/reduce.at (Reduced Automaton): New test.
9114
11652ab3
AD
91152002-04-07 Akim Demaille <akim@epita.fr>
9116
9117 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
9118 lacking `+ 1' to nrules, Bison reported as useless a token if it
9119 was used solely to set the precedence of the last rule...
9120
26b23c1a
AD
91212002-04-07 Akim Demaille <akim@epita.fr>
9122
9123 * data/bison.c++, data/bison.simple: Don't output the current file
9124 name in #line, to avoid useless diffs between two identical
9125 outputs under different names.
9126
18bcecb0
AD
91272002-04-07 Akim Demaille <akim@epita.fr>
9128
9129 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
9130 Normalize loops to using `< nrules + 1', not `<= nrules'.
9131
fa770c86
AD
91322002-04-07 Akim Demaille <akim@epita.fr>
9133
9134 * TODO: Update.
9135
d9b739c3
AD
91362002-04-07 Akim Demaille <akim@epita.fr>
9137
9138 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
9139 bucket.value as bucket.number.
9140
99013900
AD
91412002-04-07 Akim Demaille <akim@epita.fr>
9142
9143 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
9144 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
9145 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
9146 RHS, instead of being an index in RITEMS.
9147
e966383b
PE
91482002-04-04 Paul Eggert <eggert@twinsun.com>
9149
9150 * doc/bison.texinfo: Update copyright date.
9151 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
9152 (Symbols): Warn about running Bison in one character set,
9153 but compiling and/or running in an incompatible one.
9154 Warn about character code 256, too.
9155
91562002-04-03 Paul Eggert <eggert@twinsun.com>
9157
9158 * src/bison.data (YYSTACK_ALLOC): Depend on whether
9159 YYERROR_VERBOSE is nonzero, not whether it is defined.
9160
9161 Merge changes from bison-1_29-branch.
c307773e 9162
8d6c48b9
PE
91632002-03-20 Paul Eggert <eggert@twinsun.com>
9164
9165 Merge fixes from Debian bison_1.34-1.diff.
9166
9167 * configure.in (AC_PREREQ): 2.53.
9168
e53c6322
AD
91692002-03-20 Akim Demaille <akim@epita.fr>
9170
9171 * src/conflicts.c (log_resolution): Argument `resolution' is const.
9172
9ffbeca7
PE
91732002-03-19 Paul Eggert <eggert@twinsun.com>
9174
21db0b2a
PE
9175 * src/bison.simple (YYCOPY): New macro.
9176 (YYSTACK_RELOCATE): Use it.
9177 Remove Type arg; no longer needed. All callers changed.
9178 (yymemcpy): Remove; no longer needed.
9179
9ffbeca7
PE
9180 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
9181 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
9182
642cb8f8
AD
91832002-03-19 Akim Demaille <akim@epita.fr>
9184
9185 Test and fix the #line outputs.
9186
9187 * tests/atlocal.at (GCC): New.
9188 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
0ffd4fd1 9189 (Prologue synch line, %union synch line, Postprologue synch line)
642cb8f8
AD
9190 (Action synch line, Epilogue synch line): New tests.
9191 * src/reader.c (parse_union_decl): Define the muscle stype_line.
9192 * data/bison.simple, data/bison.c++: Use it.
9193
3c31a486
AD
91942002-03-19 Akim Demaille <akim@epita.fr>
9195
9196 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
9197 (Solved SR Conflicts, %expect not enough, %expect right)
9198 (%expect too much): Move to...
9199 * tests/conflicts.at: this new file.
9200
0d8bed56
AD
92012002-03-19 Akim Demaille <akim@epita.fr>
9202
9203 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
9204 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
9205 that we can move to enums for instance.
9206 * src/output.c (token_definitions_output): Output a list of
9207 `token-name, token-number' instead of the #define.
9208 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
9209
9208d17f
AD
92102002-03-14 Akim Demaille <akim@epita.fr>
9211
9212 Use Gettext 0.11.1.
9213
af27eacb
RA
92142002-03-09 Robert Anisko <robert@lrde.epita.fr>
9215
9216 * data/bison.c++: Make the user able to add members to the generated
9217 parser by subclassing.
9218
9101a310
RA
92192002-03-05 Robert Anisko <robert@lrde.epita.fr>
9220
9221 * src/reader.c (read_additionnal_code): `c' should be an integer, not
9222 a character.
9223 Reported by Nicolas Tisserand and Nicolas Burrus.
9224
fff9bf0b
RA
92252002-03-04 Robert Anisko <robert@lrde.epita.fr>
9226
9227 * src/reader.c: Warn about lacking semi-colons, do not complain.
9228
64dba31e
RA
92292002-03-04 Robert Anisko <robert@lrde.epita.fr>
9230
9231 * data/bison.c++: Remove a debug line.
9232
374f5a14
RA
92332002-03-04 Robert Anisko <robert@lrde.epita.fr>
9234
9235 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
9236 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
9237 provide a default implementation.
9238
bfcf1f3a
AD
92392002-03-04 Akim Demaille <akim@epita.fr>
9240
9241 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
9242 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
9243 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
9244 * tests/semantic.at (Parsing Guards): Similarly.
9245 * src/reader.at (readgram): Complain if the last rule is not ended
9246 with a semi-colon.
9247
65ccf9fc
AD
92482002-03-04 Akim Demaille <akim@epita.fr>
9249
9250 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
9251 * src/closure.c: here.
9252 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
9253 RTC.
9254 * src/warshall.h, src/warshall.c: Remove.
9255 * tests/sets.at (Broken Closure): Adjust.
9256
d0039cbc
AD
92572002-03-04 Akim Demaille <akim@epita.fr>
9258
9259 * src/output.c (output_skeleton): tempdir is const.
9260 bytes_read is unused.
9261
345cea78
AD
92622002-03-04 Akim Demaille <akim@epita.fr>
9263
9264 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
9265 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
9266 Update.
9267 From Michael Hayes.
9268
564801f7
AD
92692002-03-04 Akim Demaille <akim@epita.fr>
9270
9271 * src/closure.c (closure): `r' is unused.
9272
e5352bc7
AD
92732002-03-04 Akim Demaille <akim@epita.fr>
9274
9275 * tests/sets.at (Broken Closure): Add the ending `;'.
9276 * src/reader.at (readgram): Complain if a rule is not ended with a
9277 semi-colon.
9278
914feea9
AD
92792002-03-04 Akim Demaille <akim@epita.fr>
9280
9281 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
9282 (count_sr_conflicts): Use bitset_count.
9283 * src/reduce.c (inaccessable_symbols): Ditto.
9284 (bits_size): Remove.
9285 * src/warshall.h, src/warshall.c: Convert to bitsetv.
9286
f0250de6
AD
92872002-03-04 Akim Demaille <akim@epita.fr>
9288
9289 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
9290 * src/reduce.c: Remove the `bitset_zero's following the
9291 `bitset_create's, as now it is performed by the latter.
9292
ef017502
AD
92932002-03-04 Akim Demaille <akim@epita.fr>
9294
9295 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
9296 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
9297 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
9298 latest sources from Michael.
9299
76514394
AD
93002002-03-04 Akim Demaille <akim@epita.fr>
9301
9302 * src/output.c (output): Don't free the grammar.
9303 * src/reader.c (grammar_free): New.
9304 * src/main.c (main): Call it and don't free symtab here.
9305
55024580
AD
93062002-03-04 Akim Demaille <akim@epita.fr>
9307
9308 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
9309 before returning.
9310 Reported by Benoit Perrot.
9311
f9abaa2c
AD
93122002-03-04 Akim Demaille <akim@epita.fr>
9313
9314 Use bitset operations when possible, not loops over bits.
9315
9316 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
9317 bitset_or.
9318 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
9319 * src/reduce.c (useless_nonterminals): Formatting changes.
9320 * src/warshall.c (TC): Use bitset_or.
9321
0e721e75
AD
93222002-03-04 Akim Demaille <akim@epita.fr>
9323
9324 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
9325 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
9326 Ditto.
9327
0fb1ffb1
AD
93282002-03-04 Akim Demaille <akim@epita.fr>
9329
9330 * src/lalr.c (F): Now a bitset*.
9331 Adjust all dependencies.
9332
b86796bf
AD
93332002-03-04 Akim Demaille <akim@epita.fr>
9334
9335 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
9336 Adjust all dependencies.
9337
602bbf31
AD
93382002-03-04 Akim Demaille <akim@epita.fr>
9339
9340 * src/L0.c, src/LR0.h (nstates): Be size_t.
9341 Adjust comparisons (signed vs unsigned).
9342 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
9343 bitset*.
9344 Adjust all dependencies.
9345
d8a0245c
AD
93462002-03-04 Akim Demaille <akim@epita.fr>
9347
9348 * src/closure.c (firsts): Now, also a bitset.
9349 Adjust all dependencies.
9350 (varsetsize): Remove, now unused.
9351 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
9352
34ba9743
AD
93532002-03-04 Akim Demaille <akim@epita.fr>
9354
9355 * src/print.c: Convert to use bitset.h, not hand coded iterations
9356 over ints.
9357
ed86e78c
AD
93582002-03-04 Akim Demaille <akim@epita.fr>
9359
9360 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
9361
dfdb1797
AD
93622002-03-04 Akim Demaille <akim@epita.fr>
9363
9364 * src/closure.c (ruleset): Be a bitset.
9365 (rulesetsize): Remove.
9366
7086e707
AD
93672002-03-04 Akim Demaille <akim@epita.fr>
9368
9369 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
9370 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
9371 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
9372 * src/closure.c (fderives): Be an array of bitsets.
9373
98254360
RA
93742002-02-28 Robert Anisko <robert@lrde.epita.fr>
9375
9376 * data/bison.c++: Merge the two generated headers. Insert a copyright
9377 notice in each output file.
9378
a75c057f
AD
93792002-02-28 Akim Demaille <akim@epita.fr>
9380
9381 * data/bison.c++: Copy the prologue of bison.simple to fetch
9382 useful M4 definitions, such as b4_header_guard.
9383
06b00abc
AD
93842002-02-25 Akim Demaille <akim@epita.fr>
9385
9386 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
9387 translator friendly scheme for the bgr
9388 copyright notice.
06b00abc 9389
70e7d534
AD
93902002-02-25 Akim Demaille <akim@epita.fr>
9391
9392 * src/output.c (header_output): Remove, now handled completely via
9393 M4.
9394
abe017f6
AD
93952002-02-25 Akim Demaille <akim@epita.fr>
9396
9397 * m4/m4.m4: New, from CVS Autoconf.
9398 * configure.in: Invoke it.
9399 * src/output.c (output_skeleton): Use its result instead of the
9400 hard coded name.
9401
381fb12e
AD
94022002-02-25 Akim Demaille <akim@epita.fr>
9403
9404 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
9405 Fileutils 4.1.5.
9406 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
9407 * src/output.c (output_skeleton): Use mkstemp to create a real
9408 temporary file.
9409 Move the filling of `skeleton' and its muscle to...
9410 (prepare): here.
9411 (output): Move the definition of the prologue muscle to...
9412 (prepare): here.
9413 * src/system.h (DEFAULT_TMPDIR): New.
9414
6f38107f
PE
94152002-02-14 Paul Eggert <eggert@twinsun.com>
9416
9417 Remove the support for C++ namespace cleanliness; it was
9418 causing more problems than it was curing, since it didn't work
9419 properly on some nonstandard C++ compilers. This can wait
9420 for a proper C++ parser.
9421
9422 * NEWS: Document this.
9423 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
9424 of C++, as it's treated like C now.
9425 * src/bison.simple (YYSTD): Remove.
9426 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
9427 Treat C++ just like Standard C instead of trying to support
9428 namespace cleanliness.
9429
80cce3da
AD
94302002-02-14 Akim Demaille <akim@epita.fr>
9431
9432 * tests/regression.at (else): Adjust to Andreas' change.
9433
842e8679
AD
94342002-02-14 Akim Demaille <akim@epita.fr>
9435
9436 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
9437
4bda3f10
AD
94382002-02-13 Andreas Schwab <schwab@suse.de>
9439
9440 * src/output.c (output_rule_data): Don't output NULL, it might
9441 not be defined yet.
9442
4162fa07 94432002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 9444
4162fa07
RA
9445 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
9446 (Copyright notice): Update.
b418ecd8 9447
bd16a5dc
AD
94482002-02-11 Akim Demaille <akim@epita.fr>
9449
9450 * tests/regression.at (%nonassoc and eof): Don't include
9451 nonportable headers.
9452
8d69a1a3
RA
94532002-02-08 Robert Anisko <robert@lrde.epita.fr>
9454
9455 * data/bison.c++: Correct error recovery. Make the user able to
9456 initialize the starting location.
9457
9b2d0677
AD
94582002-02-07 Akim Demaille <akim@epita.fr>
9459
9460 * tests/input.at: New.
9461
69e2658b
RA
94622002-02-07 Robert Anisko <robert@lrde.epita.fr>
9463
9464 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 9465 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
9466 directives around tables only needed for debugging.
9467
4aacc3a7
RA
94682002-02-07 Robert Anisko <robert@lrde.epita.fr>
9469
9470 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
9471 C++ parsers.
9472 (yy::b4_name::parse): Use print_.
9473
762a801e
RA
94742002-02-07 Robert Anisko <robert@lrde.epita.fr>
9475
9476 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
9477
4bb2bc3f
RA
94782002-02-07 Robert Anisko <robert@lrde.epita.fr>
9479
9480 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
9481 C++ parsers.
9482 (yy::b4_name::parse): Build verbose error messages, and use error_.
9483
6b45a3ca
RA
94842002-02-06 Robert Anisko <robert@lrde.epita.fr>
9485
9486 * data/bison.c++: Fix m4 quoting in comments.
9487
50997c6e
RA
94882002-02-06 Robert Anisko <robert@lrde.epita.fr>
9489
9490 * data/bison.c++: Adjust the parser code. Fix some muscles that were
9491 not expanded by m4.
9492
3f3eed27
AD
94932002-02-05 Akim Demaille <akim@epita.fr>
9494
9495 * data/bison.c++: Adjust to the M4 back end.
9496 More is certainly needed.
9497
be2a1a68
AD
94982002-02-05 Akim Demaille <akim@epita.fr>
9499
9500 Give a try to M4 as a back end.
9501
9502 * lib/readpipe.c: New, from wdiff.
9503 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
9504 BISON_HAIRY.
9505 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
9506 specific values. Now it is m4 that performs the lookup.
9507 * src/parse-skel.y: Remove.
9508 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
9509 * src/output.c (actions_output, guards_output)
9510 (token_definitions_output): No longer keeps track of the output
9511 line number, hence remove the second argument.
9512 (guards_output): Check against the guard member of a rule, not the
9513 action member.
9514 Adjust callers.
9515 (output_skeleton): Don't look for the skeleton location, let m4 do
9516 that.
9517 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
9518 file will be used.
9519 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
9520 (prepare): Given that for the time being changesyntax is not
9521 usable in M4, rename the muscles using `-' to `_'.
9522 Define `defines_flag', `output_parser_name' and `output_header_name'.
9523 * src/output.h (actions_output, guards_output)
9524 (token_definitions_output): Adjust prototypes.
9525 * src/scan-skel.l: Instead of scanning the skeletons, it now
9526 processes the output of m4: `__oline__' and `#output'.
9527 * data/bison.simple: Adjust to be used by M4(sugar).
9528 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
9529 to date.
9530 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
9531 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
9532 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
9533 shamelessly stolen from CVS Autoconf.
9534
beda758b
AD
95352002-02-05 Akim Demaille <akim@epita.fr>
9536
9537 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
9538 * configure.in: Check for the declarations of free and malloc.
9539 * src/muscle_tab.c: Adjust.
9540
5ece6d43
AD
95412002-02-05 Akim Demaille <akim@epita.fr>
9542
9543 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
9544 which have no values.
9545
5bb18f9a
AD
95462002-02-05 Akim Demaille <akim@epita.fr>
9547
9548 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
9549 * data/: here.
9550
894dd62e
PE
95512002-01-29 Paul Eggert <eggert@twinsun.com>
9552
9553 * src/bison.simple (YYSIZE_T): Do not define merely because
9554 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
9555 On some platforms, <alloca.h> does not declare YYSTD (size_t).
9556
82841af7
AD
95572002-01-27 Akim Demaille <akim@epita.fr>
9558
9559 Fix `%nonassoc and eof'.
9560
9561 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
9562 which were not properly copied! Replace
9563 memcpy (res->errs, src->errs, src->nerrs);
9564 with
9565 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
9566 !!!
9567 * tests/regression.at (%nonassoc and eof): Adjust to newest
9568 Autotest: `.' is not in the PATH.
9569
318b76e9
AD
95702002-01-27 Akim Demaille <akim@epita.fr>
9571
9572 * tests/sets.at (AT_EXTRACT_SETS): New.
9573 (Nullable): Use it.
9574 (Firsts): New.
9575
30d2f3d5
AD
95762002-01-26 Akim Demaille <akim@epita.fr>
9577
9578 * tests/actions.at, tests/calc.at, tests/headers.at,
9579 * tests/torture.at: Adjust to the newest Autotest which no longer
9580 forces `.' in the PATH.
9581
30f8c395
AD
95822002-01-25 Akim Demaille <akim@epita.fr>
9583
9584 * tests/regression.at (%nonassoc and eof): New.
9585 Suggested by Robert Anisko.
9586
29ae55f1
AD
95872002-01-24 Akim Demaille <akim@epita.fr>
9588
9589 Bison dumps core when trying to complain about broken input files.
9590 Reported by Cris van Pelt.
9591
9592 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
9593 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
9594 into...
9595 (Invalid inputs): Strengthen: exercise parse_percent_token.
9596
2b548aa6
RA
95972002-01-24 Robert Anisko <robert.anisko@epita.fr>
9598
9599 * src/Makefile.am: Add bison.c++.
9600 * src/bison.c++: New skeleton.
9601
bb0146c2
AD
96022002-01-21 Paolo Bonzini <bonzini@gnu.org>
9603
9604 * po/it.po: New.
9605
bec30531
AD
96062002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
9607
9608 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
9609
fc6edc45
MA
96102002-01-20 Marc Autret <marc@gnu.org>
9611
9612 * src/files.c (compute_output_file_names): Fix
9613
5e5d5415
MA
96142002-01-20 Marc Autret <marc@gnu.org>
9615
9616 * tests/output.at: New test.
9617 * src/files.c (compute_base_names): Don't map extensions when
9618 the YACC flag is set, use defaults.
9619 Reported by Evgeny Stambulchik.
9620
44ea3fbd
MA
96212002-01-20 Marc Autret <marc@gnu.org>
9622
ba0fe3c7
PE
9623 * src/system.h: Need to define __attribute__ away for non-GCC
9624 compilers as well (i.e., the vendor C compiler).
44ea3fbd
MA
9625 Suggested by Albert Chin-A-Young.
9626
338963d1
TVH
96272002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
9628
9629 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
9630 canonical definition.
9631 * src/system.h: Use the canonical definition for PARAMS (avoids
9632 a conflict with the macro from lib/hash.h).
9633
c57b2479
AD
96342002-01-11 Akim Demaille <akim@epita.fr>
9635
9636 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 9637 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 9638
b85810ae
AD
96392002-01-09 Akim Demaille <akim@epita.fr>
9640
9641 * src/files.c, src/files.h (output_infix): New.
9642 (tab_extension): Remove.
9643 (compute_base_names): Compute the former, drop the latter.
9644 * src/output.c (prepare): Insert the muscles `output-infix', and
9645 `output-suffix'.
9646 * src/parse-skel.y (string, string.1): New.
9647 (section.header): Use it.
9648 (section.yacc): Remove.
9649 (prefix): Remove too.
9650 * src/scan-skel.l: Adjust.
9651 * src/bison.simple, src/bison.hairy: Adjust.
9652
cae60122
AD
96532002-01-09 Akim Demaille <akim@epita.fr>
9654
9655 * configure.in (WERROR_CFLAGS): Compute it.
9656 * src/Makefile.am (CFLAGS): Pass it.
9657 * tests/atlocal.in (CFLAGS): Idem.
9658 * src/files.c: Fix a few warnings.
9659 (get_extension_index): Remove, unused.
9660
ae404801
AD
96612002-01-08 Akim Demaille <akim@epita.fr>
9662
9663 * src/getargs.c (AS_FILE_NAME): New.
9664 (getargs): Use it to convert DOSish file names.
9665 * src/files.c (base_name): Rename as full_base_name to avoid
9666 clashes with `base_name ()'.
9667 (filename_split): New.
9668 (compute_base_names): N-th rewrite, using filename_split.
9669
22312b71
AD
96702002-01-08 Akim Demaille <akim@epita.fr>
9671
9672 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
9673 New, stolen from the Fileutils 4.1.
9674 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
9675 * configure.in: Check for the presence of memrchr, and of its
9676 prototype.
9677
a67cef01
TVH
96782002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
9679
9680 * lib/hash.h (__P): Added definition for this macro.
9681 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
9682 BUILT_SOURCES, to ensure they are generated first.
9683 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
9684 %error-verbose to allow bootstrapping with bison 1.30x.
9685
2b25d624
AD
96862002-01-06 Akim Demaille <akim@epita.fr>
9687
9688 * src/reader.c (parse_braces): Don't fetch the next char, the
9689 convention is to fetch on entry.
9690 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
9691 'switch' without a following semicolon.
9692 * tests/regression.at (braces parsing): New.
9693
3460813b
AD
96942002-01-06 Akim Demaille <akim@epita.fr>
9695
9696 Bison is dead wrong in its RR conflict reports.
9697
9698 * tests/torture.at (GNU Cim Grammar): New.
9699 * src/conflicts.c (count_rr_conflicts): Fix.
9700
73784c64
AD
97012002-01-06 Akim Demaille <akim@epita.fr>
9702
9703 Creating package.m4 from configure.ac causes too many problems.
9704
9705 * tests/Makefile.am (package.m4): Create it by hand,
9706 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
9707
25d81090
AD
97082002-01-06 Akim Demaille <akim@epita.fr>
9709
9710 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
9711 skeleton.h.
9712
a9b8959e
PE
97132002-01-04 Paul Eggert <eggert@twinsun.com>
9714
9715 * doc/bison.texinfo (Debugging):
9716 Remove YYSTDERR; it's no longer defined or used.
9717 Also, s/cstdio.h/cstdio/.
9718
25d81090
AD
97192002-01-03 Akim Demaille <akim@epita.fr>
9720
9721 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
9722
1109455c
AD
97232002-01-03 Akim Demaille <akim@epita.fr>
9724
9725 * src/parse-skel.y (process_skeleton): Don't bind the parser's
9726 tracing code to --trace, wait for a better --trace option, with
9727 args.
9728
7ea5e977
AD
97292002-01-03 Akim Demaille <akim@epita.fr>
9730
9731 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
9732 The ISO C++ standard is extremely clear about it: stderr is
9733 considered a macro, not a regular symbol (see table 94 `Header
9734 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
9735 Therefore std:: does not apply to it. It still does with fprintf.
9736 Also, s/cstdio.h/cstdio/.
9737
fab5b110
AD
97382002-01-03 Akim Demaille <akim@epita.fr>
9739
9740 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
9741 for non system headers.
9742
aed7fd9b
AD
97432002-01-02 Akim Demaille <akim@epita.fr>
9744
9745 Equip the skeleton chain with location tracking, runtime trace,
9746 pure parser and scanner.
9747
9748 * src/parse-skel.y: Request a pure parser, locations, and prefix
9749 renaming.
9750 (%union): Having several members with the same type does not help
9751 type mismatches, simplify.
9752 (YYPRINT, yyprint): New.
9753 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
9754 (skel_error): this.
9755 Handle locations.
9756 * src/scan-skel.l: Adjust to these changes.
9757 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
9758 (LOCATION_PRINT, skel_control_t): New.
9759
24fad99e
AD
97602001-12-30 Akim Demaille <akim@epita.fr>
9761
9762 * src/parse-skel.y: Get rid of the shift/reduce conflict:
9763 replace `gb' with BLANKS.
9764 * src/scan-skel.l: Adjust.
9765
a4b36db4
AD
97662001-12-30 Akim Demaille <akim@epita.fr>
9767
9768 * src/system.h: We don't need nor want bcopy.
9769 Throw away MS-DOS crap: we don't need getpid.
9770 * configure.in: We don't need strndup. It was even causing
9771 problems: because Flex includes the headers *before* us,
9772 _GNU_SOURCE is not defined by config.h, and therefore strndup was
9773 not visible.
9774 * lib/xstrndup.c: New.
9775 * src/scan-skel.l: Use it.
9776 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
9777 * src/parse-skel.y: Use %directives instead of #defines.
9778
1239777d
AD
97792001-12-30 Akim Demaille <akim@epita.fr>
9780
9781 * src/skeleton.h: New.
9782 * src/output.c (output_parser, output_master_parser): Remove, dead
9783 code.
9784 * src/output.h (get_lines_number, actions_output, guards_output)
9785 (token_definitions_output): Prototype them.
9786 * src/parse-skel.y: Add the license notice.
9787 Include output.h and skeleton.h.
9788 (process_skeleton): Returns void, and takes a single parameter.
9789 * src/scan-skel.l: Add the license notice.
9790 Include skeleton.h.
9791 Don't use %option yylineno: it seems that then Flex imagines
9792 REJECT has been used, and therefore it won't reallocate its
9793 buffers (which makes no other sense to me than a bug). It results
9794 in warnings for `unused: yy_flex_realloc'.
9795
9b3add5b
RA
97962001-12-30 Robert Anisko <robert.anisko@epita.fr>
9797
9798 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
9799 (MUSCLE_INSERT_PREFIX): ...to there.
9800 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
9801 (MUSCLE_INSERT_PREFIX): Move from here...
9802
9803 * src/bison.hairy: Add a section directive. Put braces around muscle
9804 names. This parser skeleton is still broken, but Bison should not
9805 choke on a bad muscle 'syntax'.
9806 * src/bison.simple: Add a section directive. Put braces around muscle
9807 names.
9808
9809 * src/files.h (strsuffix, stringappend): Add declarations.
9810 (tab_extension): Add declaration.
9811 (short_base_name): Add declaration.
9812
9813 * src/files.c (strsuffix, stringappend): No longer static. These
9814 functions are used in the skeleton parser.
9815 (tab_extension): New.
9816 (compute_base_names): Use the computations done in this function
fab5b110 9817 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
9818 names.
9819 (short_base_name): No longer static.
9820
9821 * src/output.c (output_skeleton): New.
9822 (output): Disable call to output_master_parser, and give a try to
9823 a new skeleton handling system.
9824 (guards_output, actions_output): No longer static.
9825 (token_definitions_output, get_lines_number): No longer static.
9826
9827 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
9828
fab5b110 9829 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
9830 parse-skel.y.
9831
9832 * src/parse-skel.y: New file.
9833 * src/scan-skel.l: New file.
9834
b5b61c61
AD
98352001-12-29 Akim Demaille <akim@epita.fr>
9836
9837 %name-prefix is broken.
9838
9839 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
9840 Adjust all dependencies.
9841 * tests/headers.at (export YYLTYPE): Strengthen this test: use
9842 %name-prefix.
9843
9844 Renaming yylval but not yylloc is not consistent. Now we do.
9845
9846 * src/bison.simple: Prefix yylloc if used.
9847 * doc/bison.texinfo (Decl Summary): Document that.
9848
8c9a50be
AD
98492001-12-29 Akim Demaille <akim@epita.fr>
9850
9851 * doc/bison.texinfo: Promote `%long-directive' over
9852 `%long_directive'.
9853 Remove all references to fixed-output-files, yacc is enough.
9854
d99361e6
AD
98552001-12-29 Akim Demaille <akim@epita.fr>
9856
9857 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
9858 user prologue. These are defaults.
9859 * tests/actions.at (Mid-rule actions): Make sure the user can
9860 define YYDEBUG and YYERROR_VERBOSE.
9861
b9cecb91
AD
98622001-12-29 Akim Demaille <akim@epita.fr>
9863
9864 * src/output.c (header_output): Don't forget to export YYLTYPE and
9865 yylloc.
9866 * tests/headers.at (export YYLTYPE): New, make sure it does.
9867 * tests/regression.at (%union and --defines, Invalid CPP headers):
9868 Move to...
9869 * tests/headers.at: here.
9870
aea13e97
AD
98712001-12-29 Akim Demaille <akim@epita.fr>
9872
9873 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
9874
931394cb
AD
98752001-12-29 Akim Demaille <akim@epita.fr>
9876
9877 * tests/actions.at (Mid-rule actions): Output on a single line
9878 instead of several.
9879
704a47c4
AD
98802001-12-29 Akim Demaille <akim@epita.fr>
9881
9882 * doc/bison.texinfo: Formatting changes.
9883
091e20bb
AD
98842001-12-29 Akim Demaille <akim@epita.fr>
9885
9886 Don't store the token defs in a muscle, just be ready to output it
9887 on command. Now possible via `symbols'. Fixes a memory leak.
9888
9889 * src/output.c (token_definitions_output): New.
9890 (output_parser, header_output): Use it.
9891 * src/reader.c (symbols_save): Remove.
9892
cce71710
AD
98932001-12-29 Akim Demaille <akim@epita.fr>
9894
9895 * src/bison.simple: Do not provide a default for YYSTYPE and
9896 YYLTYPE before the user's prologue. Otherwise it's hardly... a
9897 default.
9898
82c035a8
AD
98992001-12-29 Akim Demaille <akim@epita.fr>
9900
9901 Mid-rule actions are simply... ignored!
9902
9903 * src/reader.c (readgram): Be sure to attach mid-rule actions to
9904 the empty-rule associated to the dummy symbol, not to the host
9905 rule.
9906 * tests/actions.at (Mid-rule actions): New.
9907
8419d367
AD
99082001-12-29 Akim Demaille <akim@epita.fr>
9909
9910 Memory leak.
9911
9912 * src/reader.c (reader): Free grammar.
9913
375d5806
AD
99142001-12-29 Akim Demaille <akim@epita.fr>
9915
9916 Memory leak.
9917
9918 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
9919 since it allocates it for each state, although only one is needed.
9920 (allocate_storage): Do it here.
9921
f51cb8ff
AD
99222001-12-29 Akim Demaille <akim@epita.fr>
9923
9924 * src/options.h, src/options.c (create_long_option_table): Rename
9925 as...
9926 (long_option_table_new): this, with a clearer prototype.
9927 (percent_table): Remove, unused,
9928 * src/getargs.c (getargs): Adjust.
9929
29e88316
AD
99302001-12-29 Akim Demaille <akim@epita.fr>
9931
9932 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
9933 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
9934 as states.
9935
b9f71f19
AD
99362001-12-29 Akim Demaille <akim@epita.fr>
9937
9938 * src/lalr.c (build_relations): Rename `states' as `states1'.
9939 Sorry, I don't understand exactly what it is, no better name...
9940
1a2b5d37
AD
99412001-12-29 Akim Demaille <akim@epita.fr>
9942
9943 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
9944 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
9945 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
9946 as rules.
9947
1cca533e
AD
99482001-12-29 Akim Demaille <akim@epita.fr>
9949
9950 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
9951 ago.
9952
c03ae966
AD
99532001-12-29 Akim Demaille <akim@epita.fr>
9954
9955 * src/reader.c, src/reader.h (user_toknums): Remove.
9956 Adjust all users to use symbols[i]->user_token_number.
9957
5a670b1e
AD
99582001-12-29 Akim Demaille <akim@epita.fr>
9959
9960 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
9961 Adjust all users to use symbols[i]->prec or ->assoc.
9962
ad949da9
AD
99632001-12-29 Akim Demaille <akim@epita.fr>
9964
9965 * src/reader.c, src/reader.h (tags): Remove.
9966 Adjust all users to use symbols[i]->tag.
9967
0e78e603
AD
99682001-12-29 Akim Demaille <akim@epita.fr>
9969
9970 * src/gram.h, src/gram.c (symbols): New, similar to state_table
9971 and rule_table.
9972 * src/reader.c (packsymbols): Fill this table.
9973 Drop sprec.
9974 * src/conflicts.c (resolve_sr_conflict): Adjust.
9975 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
9976 single table.
9977 Use symbols[i]->tag instead of tags[i].
9978
213e640e
AD
99792001-12-29 Akim Demaille <akim@epita.fr>
9980
9981 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
9982 In addition, put a comment in there, to replace...
9983 * tests/regression.at (%union and C comments): Remove.
9984
e7b8bef1
AD
99852001-12-29 Akim Demaille <akim@epita.fr>
9986
9987 * tests/regression.at (Web2c Actions): Blindly move the actual
9988 output as expected output. The contents *seem* right to me, but I
9989 can't pretend reading perfectly parser tables... Nonetheless, all
9990 the other tests pass correctly, the table look OK, even though the
9991 presence of `$axiom' is to be noted: AFAICS it is useless (but
9992 harmless).
9993
b68e7744
AD
99942001-12-29 Akim Demaille <akim@epita.fr>
9995
9996 * src/reader.c (readgram): Don't add the rule 0 if there were no
9997 rules read. In other words, add it _after_ having performed
9998 grammar sanity checks.
9999 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
10000
78d5bae9
AD
100012001-12-29 Akim Demaille <akim@epita.fr>
10002
10003 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
10004 visible, and some states have now a different number.
10005
ff442794
AD
100062001-12-29 Akim Demaille <akim@epita.fr>
10007
10008 * src/reader.c (readgram): Bind the initial rule's lineno to that
10009 of the first rule.
10010 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
10011 (Solved SR Conflicts): Adjust rule 0's line number.
10012
610ab194
AD
100132001-12-29 Akim Demaille <akim@epita.fr>
10014
10015 Fix the `GAWK Grammar' failure.
10016
10017 * src/LR0.c (final_state): Initialize to -1 so that we do compute
10018 the reductions of the first state which was mistakenly confused
10019 with the final state because precisely final_state was initialized
10020 to 0.
10021 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
10022 now noticed by Bison.
10023 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
10024 have a reduction on $default.
10025
29d29c8f
AD
100262001-12-29 Akim Demaille <akim@epita.fr>
10027
10028 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
10029 rule line numbers.
10030 * src/closure.c (print_closure): Likewise.
10031 * src/derives.c (print_derives): Likewise.
10032 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
10033 now.
10034
7c6b64d0
AD
100352001-12-29 Akim Demaille <akim@epita.fr>
10036
10037 * src/lalr.c (lookaheads_print): New.
10038 (lalr): Call it when --trace-flag.
10039 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
10040 are dumped.
10041
3d4daee3
AD
100422001-12-29 Akim Demaille <akim@epita.fr>
10043
10044 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
10045 when walking through ritem, even via rule->rhs.
10046 * src/reduce.c (dump_grammar, useful_production, reduce_output)
10047 (useful_production, useless_nonterminals): Likewise.
10048 (reduce_grammar_tables): Likewise, plus update nritems.
10049 * src/nullable.c (set_nullable): Likewise.
10050 * src/lalr.c (build_relations): Likewise.
10051 * tests/sets.at (Nullable): Adjust.
10052 Fortunately, now, the $axiom is no longer nullable.
10053
9e7f6bbd
AD
100542001-12-29 Akim Demaille <akim@epita.fr>
10055
10056 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
10057 the 0-sentinel.
10058 * src/gram.c (ritem_longest_rhs): Likewise.
10059 * src/reduce.c (nonterminals_reduce): Likewise.
10060 * src/print_graph.c (print_graph): Likewise.
10061 * src/output.c (output_rule_data): Likewise.
10062 * src/nullable.c (set_nullable): Likewise.
10063
255ef638
AD
100642001-12-29 Akim Demaille <akim@epita.fr>
10065
10066 * src/output.c: Comment changes.
10067
0d8a7363
AD
100682001-12-27 Paul Eggert <eggert@twinsun.com>
10069
10070 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
10071 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
10072 Sparc, as they were causing more porting problems than the
10073 (minor) performance improvement was worth.
10074
10075 Also, catch up with 1.31's YYSTD.
10076
3db472b9
AD
100772001-12-27 Akim Demaille <akim@epita.fr>
10078
10079 * src/output.c (output_gram): Rely on nritems, not the
10080 0-sentinel. See below.
10081 Use -1 as separator, not 0.
10082 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
10083 Rely on -1 as separator in yyrhs, instead of 0.
10084 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
10085 twice `Now at end of input', therefore there are two lines less to
10086 expect.
10087
b365aa05
AD
100882001-12-27 Akim Demaille <akim@epita.fr>
10089
10090 * tests/regression.at (Unresolved SR Conflicts):
10091 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
10092 below.
10093
30171f79
AD
100942001-12-27 Akim Demaille <akim@epita.fr>
10095
10096 * src/LR0.c (new_state): Recognize the final state by the fact it
10097 is reached by eoftoken.
10098 (insert_start_shifting_state, insert_eof_shifting_state)
10099 (insert_accepting_state, augment_automaton): Remove, since now
10100 these states are automatically computed from the initial state.
10101 (generate_states): Adjust.
10102 * src/print.c: When reporting a rule number to the user, substract
10103 1, so that the axiom rule is rule 0, and the first user rule is 1.
10104 * src/reduce.c: Likewise.
10105 * src/print_graph.c (print_core): For the time being, just as for
10106 the report, depend upon --trace-flags to dump the full set of
10107 items.
10108 * src/reader.c (readgram): Once the grammar read, insert the rule
10109 0: `$axiom: START-SYMBOL $'.
10110 * tests/set.at: Adjust: rule 0 is now displayed, and since the
10111 number of the states has changed (the final state is no longer
10112 necessarily the last), catch up.
10113
75142d45
AD
101142001-12-27 Akim Demaille <akim@epita.fr>
10115
10116 Try to make the use of the eoftoken valid. Given that its value
10117 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
10118 is used instead of > 0 where appropriate, (ii), depend upon nritems
10119 instead of the 0-sentinel.
10120
10121 * src/gram.h, src/gram.c (nritems): New.
10122 Expected to be duplication of nitems, but for the time being...
10123 * src/reader.c (packgram): Assert nritems and nitems are equal.
10124 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
10125 * src/closure.c (print_closure, print_fderives): Likewise.
10126 * src/gram.c (ritem_print): Likewise.
10127 * src/print.c (print_core, print_grammar): Likewise.
10128 * src/print_graph.c: Likewise.
10129
b7c49edf
AD
101302001-12-27 Akim Demaille <akim@epita.fr>
10131
10132 * src/main.c (main): If there are complains after grammar
10133 reductions, then output the report anyway if requested, then die.
10134 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
10135 * src/reader.c (eoftoken): New.
10136 (parse_token_decl): If the token being defined has value `0', it
10137 is the eoftoken.
10138 (packsymbols): No longer hack `tags' to insert `$' by hand.
10139 Be sure to preserve the value of the eoftoken.
10140 (reader): Make sure eoftoken is defined.
10141 Initialize nsyms to 0: now eoftoken is created just like the others.
10142 * src/print.c (print_grammar): Don't special case the eof token.
10143 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
10144 lie anyway, albeit pleasant.
10145 * tests/calc.at: Exercise error messages with eoftoken.
10146 Change the grammar so that empty input is invalid.
10147 Adjust expectations.
10148 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
10149
ec2da99f
AD
101502001-12-27 Akim Demaille <akim@epita.fr>
10151
10152 * configure.in: Check the protos of strchr ans strspn.
10153 Replace strchr if needed.
10154 * src/system.h: Provide the protos of strchr, strspn and memchr if
10155 missing.
10156 * lib/strchr.c: New.
10157 * src/reader.c (symbols_save): Use strchr.
10158
8adfa272
AD
101592001-12-27 Akim Demaille <akim@epita.fr>
10160
10161 * src/print.c, src/print_graph.c (escape): New.
10162 Use it to quote the TAGS outputs.
10163 * src/print_graph.c (print_state): Now errors are in red, and
10164 reductions in green.
10165 Prefer high to wide: output the state number on a line of its own.
10166
80dac38c
AD
101672001-12-27 Akim Demaille <akim@epita.fr>
10168
10169 * src/state.h, src/state.c (reductions_new): New.
10170 * src/LR0.c (set_state_table): Let all the states have a
10171 `reductions', even if reduced to 0.
10172 (save_reductions): Adjust.
10173 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
10174 * src/print.c (print_reductions, print_actions): Adjust.
10175 * src/output.c (action_row): Adjust.
10176
2cec70b9
AD
101772001-12-27 Akim Demaille <akim@epita.fr>
10178
10179 * src/state.h, src/state.c (errs_new, errs_dup): New.
10180 * src/LR0.c (set_state_table): Let all the states have an errs,
10181 even if reduced to 0.
10182 * src/print.c (print_errs, print_reductions): Adjust.
10183 * src/output.c (output_actions, action_row): Adjust.
10184 * src/conflicts.c (resolve_sr_conflict): Adjust.
10185
13ca549a
AD
101862001-12-27 Akim Demaille <akim@epita.fr>
10187
10188 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
10189
5092aba5
AD
101902001-12-27 Akim Demaille <akim@epita.fr>
10191
10192 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
10193 * src/print.c: here.
10194 (lookaheadset, shiftset): New, used as additional storage by
10195 print_reductions.
10196 (print_results): Adjust.
10197 (print_shifts, print_gotos, print_errs): New, extracted from...
10198 (print_actions): here.
10199 * src/print_graph.c (print_actions): Remove dead code.
10200
11e2beca
AD
102012001-12-27 Akim Demaille <akim@epita.fr>
10202
10203 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
10204 `$n' and `@n'.
10205
dac3c910
AD
102062001-12-27 Akim Demaille <akim@epita.fr>
10207
10208 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
10209 (build_relations): Adjust.
10210
d0b0fefa
AD
102112001-12-27 Akim Demaille <akim@epita.fr>
10212
10213 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
10214 duplication.
10215
adc8c848
AD
102162001-12-27 Akim Demaille <akim@epita.fr>
10217
10218 * src/reader.c (packgram): Catch nitems overflows.
10219
14d293ac
AD
102202001-12-27 Akim Demaille <akim@epita.fr>
10221
10222 * src/files.c, src/files.h (guard_obstack): Remove.
10223 * src/output.c (output): Adjust.
10224 * src/reader.c (parse_braces): New, factoring...
10225 (copy_action, copy_guard): these two which are renamed as...
10226 (parse_action, parse_guard): these.
10227 As a voluntary consequence, using braces around guards is now
10228 mandatory.
10229
f499b062
AD
102302001-12-27 Akim Demaille <akim@epita.fr>
10231
10232 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
10233 * src/reader.c (symbol_list): `guard' and `guard_line' are new
10234 members.
10235 (symbol_list_new): Adjust.
10236 (copy_action): action_line is the first line, not the last.
10237 (copy_guard): Just as for actions, store the `action' only, not
10238 the switch/case/break flesh.
10239 Don't parse the user action that might follow the guard, let...
10240 (readgram): do it, i.e., now, there can be an action after a
10241 guard.
10242 In other words the guard is just explicitly optional.
10243 (packgram): Adjust.
10244 * src/output.c (guards_output): New.
10245 (output_parser): Call it when needed.
10246 (output): Also free the guard and attrs obstacks.
10247 * src/files.c, src/files.h (obstack_save): Remove.
10248 (output_files): Remove.
10249 As a result, if one needs the former `.act' file, using an
10250 appropriate skeleton which requires actions and guards is now
10251 required.
10252 * src/main.c (main): Adjust.
10253 * tests/semantic.at: New.
10254 * tests/regression.at: Use `input.y' as input file name.
10255 Avoid 8+3 problems by requiring input.c when the test needs the
10256 parser.
10257
d945f5cd
AD
102582001-12-27 Akim Demaille <akim@epita.fr>
10259
10260 * src/reader.c (symbol_list_new): Be sure to initialize all the
10261 fields.
10262
d200e455
AD
102632001-12-27 Akim Demaille <akim@epita.fr>
10264
10265 All the hacks using a final pseudo state are now useless.
10266
10267 * src/LR0.c (set_state_table): state_table holds exactly nstates.
10268 * src/lalr.c (nLA): New.
10269 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
10270 instead of lookaheadsp from the pseudo state (nstate + 1).
10271
f9507c28
AD
102722001-12-27 Akim Demaille <akim@epita.fr>
10273
10274 * src/output.c (action_row, token_actions): Use a state_t instead
10275 of a integer, and nlookaheads instead of the following state's
10276 lookaheadsp.
10277
065fbd27
AD
102782001-12-27 Akim Demaille <akim@epita.fr>
10279
10280 * src/conflicts.c (log_resolution, flush_shift)
10281 (resolve_sr_conflict, set_conflicts, solve_conflicts)
10282 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
10283 (conflicts_print, print_reductions): Use a state_t instead of an
10284 integer when referring to a state.
10285 As much as possible, depend upon nlookaheads, instead of the
10286 `lookaheadsp' member of the following state (since lookaheads of
10287 successive states are successive, the difference between state n + 1
10288 and n served as the number of lookaheads for state n).
10289 * src/lalr.c (add_lookback_edge): Likewise.
10290 * src/print.c (print_core, print_actions, print_state)
10291 (print_results): Likewise.
10292 * src/print_graph.c (print_core, print_actions, print_state)
10293 (print_graph): Likewise.
10294 * src/conflicts.h: Adjust.
10295
1b177bd7
AD
102962001-12-27 Akim Demaille <akim@epita.fr>
10297
10298 * src/bison.hairy: Formatting/comment changes.
10299 ANSIfy.
10300 Remove `register' indications.
10301 Add plenty of `static'.
10302
7742ddeb
AD
103032001-12-27 Akim Demaille <akim@epita.fr>
10304
10305 * src/output.c (prepare): Drop the muscle `ntbase' which
10306 duplicates ntokens.
10307 * src/bison.simple: Formatting/comment changes.
10308 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
10309 is an undocumented synonym.
10310
1fa14068
AD
103112001-12-22 Akim Demaille <akim@epita.fr>
10312
10313 * src/output.c (output_table_data): Change the prototype to use
10314 `int' for array ranges: some invocations do pass an int, not a
10315 short.
10316 Reported by Wayne Green.
10317
b9752825
AD
103182001-12-22 Akim Demaille <akim@epita.fr>
10319
10320 Some actions of web2c.y are improperly triggered.
10321 Reported by Mike Castle.
10322
10323 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
10324 * tests/regression.at (Web2c): Rename as...
10325 (Web2c Report): this.
10326 (Web2c Actions): New.
10327
776209d6
AD
103282001-12-22 Akim Demaille <akim@epita.fr>
10329
10330 Reductions in web2c.y are improperly reported.
10331 Reported by Mike Castle.
10332
10333 * src/conflicts.c (print_reductions): Fix.
10334 * tests/regression.at (Web2c): New.
10335
275fc3ad
AD
103362001-12-18 Akim Demaille <akim@epita.fr>
10337
10338 Some host fail on `assert (!"foo")', which expands to
10339 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
10340 Reported by Nelson Beebee.
10341
10342 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
10343 `#define it_succeeded 0' and `assert (it_succeeded)'.
10344
897668ee
MA
103452001-12-17 Marc Autret <autret_m@epita.fr>
10346
10347 * src/bison.simple: Don't hard code the skeleton line and filename.
10348 * src/output.c (output_parser): Rename 'line' as 'output_line'.
10349 New line counter 'skeleton_line' (skeleton-line muscle).
10350
ab3399e0
PE
103512001-12-17 Paul Eggert <eggert@twinsun.com>
10352
10353 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
10354 YYDEBUG must be defined to a nonzero value.
10355
10356 * src/bison.simple (yytname): Do not assume that the user defines
10357 YYDEBUG to a properly parenthesized expression.
10358
3877f72b
AD
103592001-12-17 Akim Demaille <akim@epita.fr>
10360
10361 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
10362 nlookaheads is a new member.
10363 Adjust all users.
10364 * src/lalr.h (nlookaheads): Remove this orphan declaration.
10365 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
10366 state.
776209d6 10367
331dbc1b
AD
103682001-12-17 Akim Demaille <akim@epita.fr>
10369
10370 * src/files.h, src/files.c (open_files, close_files): Remove.
10371 * src/main.c (main): Don't open/close files, nor invoke lex_free,
10372 let...
10373 * src/reader.c (reader): Do it.
776209d6 10374
be750e4c
AD
103752001-12-17 Akim Demaille <akim@epita.fr>
10376
10377 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 10378
709ae8c6
AD
103792001-12-17 Akim Demaille <akim@epita.fr>
10380
10381 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
10382 (flush_reduce): New.
10383 (resolve_sr_conflict): Adjust.
776209d6 10384
f87685c3
AD
103852001-12-17 Akim Demaille <akim@epita.fr>
10386
10387 * src/output.c (output_obstack): Be static and rename as...
10388 (format_obstack): this, to avoid any confusion with files.c's
10389 output_obstack.
10390 * src/reader.h (muscle_obstack): Move to...
10391 * src/output.h: here, since it's defined in output.c.
10392
837491d8
AD
103932001-12-17 Akim Demaille <akim@epita.fr>
10394
10395 * src/output.c (action_row, save_column, default_goto)
10396 (sort_actions, matching_state, pack_vector): Better variable
10397 locality.
10398
796d61fb
AD
103992001-12-17 Akim Demaille <akim@epita.fr>
10400
10401 * src/output.c: Various formatting changes.
776209d6 10402
64d15509
AD
104032001-12-17 Akim Demaille <akim@epita.fr>
10404
10405 * src/files.c (output_files): Free the output_obstack.
10406 * src/main.c (main): Call print and print_graph conditionally.
10407 * src/print.c (print): Work unconditionally.
10408 * src/print_graph.c (print_graph): Work unconditionally.
10409 * src/conflicts.c (log_resolution): Output only if verbose_flag.
10410
fbc8ecb7
MA
104112001-12-16 Marc Autret <autret_m@epita.fr>
10412
10413 * src/output.c (actions_output): Fix. When we use %no-lines,
10414 there is one less line per action.
10415
f0440388
MA
104162001-12-16 Marc Autret <autret_m@epita.fr>
10417
10418 * src/bison.simple: Remove a useless #line directive.
10419 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
10420 * src/output.c (get_lines_number): New.
776209d6 10421 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
10422 output muscles.
10423 Fix line numbering.
10424 (actions_output): Computes the number of lines taken by actions.
10425 (output_master_parser): Insert new skeleton which is the name of
10426 the output parser file name.
10427
a79986b8
MA
104282001-12-15 Marc Autret <autret_m@epita.fr>
10429
10430 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
10431
4ec8e00f
MA
104322001-12-15 Marc Autret <autret_m@epita.fr>
10433
10434 * src/output.c (output_gram): Keep track of the hairy one.
10435
1a4648ff
AD
104362001-12-15 Akim Demaille <akim@epita.fr>
10437
10438 Make `make distcheck' work.
10439
10440 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
10441 system.h which uses libgettext.h.
10442
9c2c67e6
AD
104432001-12-15 Akim Demaille <akim@epita.fr>
10444
10445 * src/nullable.c (set_nullable): Useless rules must be skipped,
10446 otherwise, since we range over their symbols, we might look at a
10447 nonterminal which no longer ``exists'', i.e., it is not counted in
10448 `nvars', hence we overflow our arrays.
10449
93ede233
AD
104502001-12-15 Akim Demaille <akim@epita.fr>
10451
10452 The header can also be produced directly, without any obstack!
10453 Yahoo!
10454
10455 * src/files.c, src/files.h (defines_obstack): Remove.
10456 (compute_header_macro): Global.
10457 (defines_obstack_save): Remove.
10458 * src/reader.c (parse_union_decl): No longer output to
10459 defines_obstack: its content can be found in the `stype' muscle
10460 anyway.
10461 (output_token_translations): Merge into...
10462 (symbols_output): this.
10463 Rename as...
10464 (symbols_save): this.
10465 (reader): Adjust.
10466 * src/output.c (header_output): New.
10467 (output): Call it.
10468
2666f928
AD
104692001-12-15 Akim Demaille <akim@epita.fr>
10470
10471 * src/reader.c (parse_union_decl): Instead of handling two obstack
10472 simultaneously, use one to define the `stype' muscle, and use the
10473 value of the latter to fill defines_obstack.
10474 (copy_comment): Remove.
10475 (copy_comment2): Work for a single obstack.
10476 Rename as...
10477 (copy_comment): this.
10478
428046f8
AD
104792001-12-15 Akim Demaille <akim@epita.fr>
10480
10481 * src/lex.c, src/lex.h (xgetc): No longer static.
10482 * src/reader.c (parse_union_decl): Revamp.
10483
ea52d706
AD
104842001-12-15 Akim Demaille <akim@epita.fr>
10485
10486 Still making progress in separating Bison into (i) input, (ii)
10487 process, (iii) output: now we can directly output the parser file
10488 without using table_obstack at all.
10489
10490 * src/files.c, src/files.h (table_obstack): Bye bye.
10491 (parser_file_name): New.
10492 * src/files.c (compute_output_file_names): Compute it.
10493 * src/output.c (actions_output, output_parser)
10494 (output_master_parser): To a file instead of an obstack.
10495
3f96f4dc
AD
104962001-12-15 Akim Demaille <akim@epita.fr>
10497
10498 Attach actions to rules, instead of pre-outputting them to
10499 actions_obstack.
10500
10501 * src/gram.h (rule_t): action and action_line are new members.
10502 * src/reader.c (symbol_list): Likewise.
10503 (copy_action): Save the actions within the rule.
10504 (packgram): Save them in rule_table.
10505 * src/output.c (actions_output): New.
10506 (output_parser): Use it on `%%actions'.
10507 (output_rule_data): Don't free rule_table.
10508 (output): Do it.
10509 (prepare): Don't save the `action' muscle.
10510 * src/bison.simple: s/%%action/%%actions/.
10511
51576fb3
AD
105122001-12-15 Akim Demaille <akim@epita.fr>
10513
10514 * src/reader.c (copy_action): When --yacc, don't append a `;'
10515 to the user action: let it fail if lacking.
dee049eb 10516 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 10517
2648a72d
AD
105182001-12-14 Akim Demaille <akim@epita.fr>
10519
10520 * src/lex.c (literalchar): Simply return the char you decoded, non
10521 longer mess around with obstacks and int pointers.
10522 Adjust all callers.
10523
92790e5b
AD
105242001-12-14 Akim Demaille <akim@epita.fr>
10525
10526 * src/lex.c (literalchar): Don't escape the special characters,
10527 just decode them, and keep them as char (before, eol was output as
10528 the 2 char string `\n' etc.).
10529 * src/output.c (output_rule_data): Use quotearg to output the
10530 token strings.
10531
927c1557
PE
105322001-12-13 Paul Eggert <eggert@twinsun.com>
10533
10534 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
10535 Do not infringe on the global user namespace when using C++.
10536 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
10537 All uses of `fprintf' and `stderr' changed.
10538
10539 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
10540
ed8e1f68
AD
105412001-12-13 Akim Demaille <akim@epita.fr>
10542
10543 The computation of nullable is broken: it doesn't handle empty
10544 RHS's properly.
10545
10546 * tests/torture.at (GNU AWK Grammar): New.
10547 * tests/sets.at (Nullable): New.
10548 * src/nullable.c (set_nullable): Instead of blindly looping over
10549 `ritems', loop over the rules, and then over their rhs's.
10550
10551 Work around Autotest bugs.
10552
10553 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
10554 frame, because Autotest understand lines starting with a `+' as
10555 traces from the shell. Then, they are not processed properly.
10556 Admittedly an Autotest bug, but we don't have time to wait for
10557 Autotest to catch up.
10558 * tests/regression.at (Broken Closure): Adjust to the new table
10559 frames.
10560 Move to...
10561 * tests/sets.at: here.
10562
cb581495
AD
105632001-12-13 Akim Demaille <akim@epita.fr>
10564
10565 * src/closure.c (closure): Use nrules instead of playing tricks
10566 with BITS_PER_WORD.
10567
2e729273
AD
105682001-12-13 Akim Demaille <akim@epita.fr>
10569
10570 * src/print.c (print_actions): Output the handling of `$' as the
10571 traces do: shifting the token EOF. Before EOF was treated as a
10572 nonterminal.
10573 * tests/regression.at: Adjust some tests.
10574 * src/print_graph.c (print_core): Complete the set of items via
10575 closure. The next-to-final and final states are still unsatisfying,
10576 but that's to be addressed elsewhere.
10577 No longer output the rule numbers, but do output the state number.
10578 A single loop for the shifts + gotos is enough, but picked a
10579 distinct color for each.
10580 (print_graph): Initialize and finalize closure.
10581
107f7dfb
AD
105822001-12-13 Akim Demaille <akim@epita.fr>
10583
10584 * src/reader.c (readgram): Remove dead code, an strip useless
10585 braces.
10586 (get_type): Remove, unused.
10587
9b53a24f
AD
105882001-12-12 Akim Demaille <akim@epita.fr>
10589
10590 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
10591 on that of lib/error.c.
10592
dbfb6dcd
AD
105932001-12-12 Akim Demaille <akim@epita.fr>
10594
10595 Some hosts don't like `/' in includes.
10596
10597 * src/system.h: Include libgettext.h without qualifying the path.
10598 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
10599 $(top_srcdir).
10600
c25fb648
MA
106012001-12-11 Marc Autret <autret_m@epita.fr>
10602
10603 * src/output.c (output_parser): Remove useless muscle.
10604
710ddc4f
MA
106052001-12-11 Marc Autret <autret_m@epita.fr>
10606
10607 * src/bison.simple: Remove #line just before %%epilogue. It
10608 is now handled in ...
10609 * src/reader.c (read_additionnal_code): Add the output of a
10610 #line for the epilogue.
10611
e83d80b8
MA
106122001-12-10 Marc Autret <autret_m@epita.fr>
10613
927c1557 10614 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
10615 replace precedent remove.
10616 * src/bison.simple: Remove #line before %%prologue because
10617 %%input-line is wrong at this time.
10618
971d5158
MA
106192001-12-10 Marc Autret <autret_m@epita.fr>
10620
10621 * src/reader.c (symbols_output): Clean up.
927c1557 10622 * src/output.c (output_gram, output): Clean up.
971d5158 10623
5edafffd
AD
106242001-12-10 Akim Demaille <akim@epita.fr>
10625
10626 * src/lalr.c (initialize_lookaheads): New. Extracted from...
10627 * src/LR0.c (set_state_table): here.
10628 * src/lalr.c (lalr): Call it.
10629
0279f8e9
AD
106302001-12-10 Akim Demaille <akim@epita.fr>
10631
10632 * src/state.h (shifts): Remove the `number' member: shifts are
10633 attached to state, hence no longer need to be labelled with a
10634 state number.
10635
190c4f5f
AD
106362001-12-10 Akim Demaille <akim@epita.fr>
10637
10638 Now that states have a complete set of members, the linked list of
10639 shifts is useless: just fill directly the state's shifts member.
10640
10641 * src/state.h (shifts): Remove the `next' member.
10642 * src/LR0.c (first_state, last_state): Remove.
10643 Adjust the callers.
10644 (augment_automaton): Don't look for the shifts that must be added
10645 a shift on EOF: it is those of the state we looked for! But now,
10646 since shifts are attached, it is no longer needed to looking
10647 merely by its id: its number.
10648
2a73b93d
AD
106492001-12-10 Akim Demaille <akim@epita.fr>
10650
10651 * src/LR0.c (augment_automaton): Better variable locality.
10652 Remove an impossible branch: if there is a state corresponding to
10653 the start symbol being shifted, then there is shift for the start
10654 symbol from the initial state.
10655
74392f6a
AD
106562001-12-10 Akim Demaille <akim@epita.fr>
10657
10658 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
10659 only when appropriate: when insert_start_shifting_state' is not
10660 invoked.
10661 * tests/regression.at (Rule Line Numbers): Adjust.
10662
37c82725
AD
106632001-12-10 Akim Demaille <akim@epita.fr>
10664
10665 * src/LR0.c (augment_automaton): Now that all states have shifts,
10666 merge the two cases addition shifts to the initial state.
10667
6a164e0c
AD
106682001-12-10 Akim Demaille <akim@epita.fr>
10669
10670 * src/lalr.c (set_state_table): Move to...
10671 * src/LR0.c: here.
10672 * src/lalr.c (lalr): Don't call it...
10673 * src/LR0.c (generate_states): do it.
10674 * src/LR0.h (first_state): Remove, only the table is used.
10675
7215de24
AD
106762001-12-10 Akim Demaille <akim@epita.fr>
10677
10678 * src/LR0.h (first_shift, first_reduction): Remove.
10679 * src/lalr.c: Don't use first_shift: find shifts through the
10680 states.
10681
80e25d4d
AD
106822001-12-10 Akim Demaille <akim@epita.fr>
10683
10684 * src/LR0.c: Attach shifts to states as soon as they are
10685 computed.
10686 * src/lalr.c (set_state_table): Instead of assigning shifts to
10687 state, just assert that the mapping was properly done.
10688
0ab3728b
AD
106892001-12-10 Akim Demaille <akim@epita.fr>
10690
10691 * src/LR0.c (insert_start_shift): Rename as...
10692 (insert_start_shifting_state): this.
10693 (insert_eof_shifting_state, insert_accepting_state): New.
10694 (augment_automaton): Adjust.
10695 Better locality of the variables.
10696 When looking if the start_symbol is shifted from the initial
10697 state, using `while (... symbol != start_symbol ...)' sounds
10698 better than `while (... symbol < start_symbol ...)': If fail
10699 to see how the order between symbols could be relevant!
10700
78af9bbc
AD
107012001-12-10 Akim Demaille <akim@epita.fr>
10702
10703 * src/getargs.h: Don't declare `spec_name_prefix' and
10704 `spec_file_prefix', declared by src/files.h.
10705 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
10706 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
10707 * src/output.c (prepare): Adjust.
10708 * src/reader.c (symbols_output): Likewise.
10709 * src/vmsgetargs.c: Vaguely adjust, but who cares?
10710
bdef2a41
AD
107112001-12-10 Akim Demaille <akim@epita.fr>
10712
10713 * src/muscle_tab.c (muscle_init): NULL is a better default than
10714 `"0"'.
10715
3735969c
AD
107162001-12-10 Akim Demaille <akim@epita.fr>
10717
10718 * src/reader.c (reader): Calling symbols_output once is enough.
10719
49701457
AD
107202001-12-10 Akim Demaille <akim@epita.fr>
10721
10722 Now that states have a complete set of members, the linked list of
10723 reductions is useless: just fill directly the state's reductions
10724 member.
10725
10726 * src/state.h (struct reductions): Remove member `number' and
10727 `next'.
10728 * src/LR0.c (first_reduction, last_reduction): Remove.
10729 (save_reductions): Don't link the new reductions, store them in
10730 this_state.
10731 * src/lalr.c (set_state_table): No need to attach reductions to
10732 states, it's already done.
10733 * src/output.c (output_actions): No longer free the shifts, then
10734 the reductions, then the states: free all the states and their
10735 members.
10736
0edad749
AD
107372001-12-10 Akim Demaille <akim@epita.fr>
10738
10739 * src/options.c (OPTN, DRTV, BOTH): New.
10740 (option_table): Use them.
10741
0edad749
AD
10742 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
10743 the job of system.h.
10744 * src/options.c: Don't include stdio.h and xalloc.h for the same
10745 reasons.
10746
5449dd0f
AD
107472001-12-10 Akim Demaille <akim@epita.fr>
10748
10749 * src/output.c (output, prepare): Make sure the values of the
10750 muscles `action' and `prologue' are 0-terminated.
10751
a870c567
AD
107522001-12-10 Akim Demaille <akim@epita.fr>
10753
10754 Clean up GCC warnings.
10755
10756 * src/reader.c (copy_action): `buf' is not used.
10757 (parse_skel_decl): Be static.
10758 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
10759 * src/options.h (create_long_option_table): Have a real prototype.
10760 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
10761 (hash_delete_at): Return const void *.
10762 Adjust casts to preserve the const.
10763
80df8768
AD
107642001-12-10 Akim Demaille <akim@epita.fr>
10765
10766 * configure.in: Require 2.52g.
10767 M4 is not needed, but AUTOM4TE is.
10768 * m4/m4.m4: Remove.
10769 * tests/Makefile.am: Adjust.
10770
f693ad14
AD
107712001-12-10 Akim Demaille <akim@epita.fr>
10772
10773 One structure for states is enough, even though theoretically
10774 there are LR(0) states and LALR(1) states.
10775
10776 * src/lalr.h (state_t): Remove.
10777 (state_table): Be state_t **, not state_t *.
10778 * src/state.h (core, CORE_ALLOC): Rename as...
10779 (state_t, STATE_ALLOC): this.
10780 Add the LALR(1) members: shifts, reductions, errs.
10781 * src/LR0.c (state_table): Rename as...
10782 (state_hash): this, to avoid name clashes with the global
10783 `state_table'.
10784 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
10785 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
10786
74ffbcb6
AD
107872001-12-10 Akim Demaille <akim@epita.fr>
10788
10789 Bison dumps core on bash.y.
10790 Reported by Pascal Bart.
10791
10792 * src/warshall.c (bitmatrix_print): New.
10793 (TC): Use it.
ba0fe3c7 10794 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
74ffbcb6
AD
10795 j must be the outer loop.
10796 * tests/regression.at (Broken Closure): New.
10797
07708e19
AD
107982001-12-05 Akim Demaille <akim@epita.fr>
10799
10800 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
10801 its argument.
ba1ecc07 10802 Reported by Peter Hamorsky.
07708e19 10803
92b16366
AD
108042001-12-05 Akim Demaille <akim@epita.fr>
10805
10806 * src/conflicts.c (err_table): Remove.
10807 (resolve_sr_conflict): Adjust.
10808 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
10809 Rename as...
10810 (state_t.reductions, state_t.shifts): this.
10811
076ab033
AD
108122001-12-05 Akim Demaille <akim@epita.fr>
10813
10814 * src/reduce.c (reduce_grammar_tables): No longer disable the
10815 removal of useless rules via CPP but via `if (0)', so that the
10816 compiler still check the code is valid.
10817 For instance, it should have noticed `rline' no longer exists: use
10818 the `line' member of rule_t.
10819 * src/gram.c (dummy, rline): Remove, unused.
10820
3843c413
AD
108212001-12-05 Akim Demaille <akim@epita.fr>
10822
10823 * src/output.c (pack_vector): Use assert, not berror.
10824 * src/main.c (berror): Remove, unused.
10825
43168960
AD
108262001-12-05 Akim Demaille <akim@epita.fr>
10827
10828 New experimental feature: if --verbose --trace output all the
10829 items of a state, not only its kernel.
10830
10831 * src/print.c (print_core): If `trace_flag', then invoke closure
10832 before outputting the items of the state (print_core is no longer
10833 a correct name them).
10834 (print_results): Invoke new_closure/free_closure if needed.
10835
b2872512
AD
108362001-12-05 Akim Demaille <akim@epita.fr>
10837
10838 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
10839 * src/closure.c, src/closure.h (itemsetsize): Rename as...
10840 (nitemset): for consistency with the rest of the project.
10841
23cbcc6c
AD
108422001-12-05 Akim Demaille <akim@epita.fr>
10843
10844 * src/closure.c (print_closure): Improve.
10845 (closure): Use it for printing input and output.
10846
03ec521c
AD
108472001-12-05 Akim Demaille <akim@epita.fr>
10848
10849 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
10850 indexed by nonterminals.
10851
3a7456dd
AD
108522001-12-05 Akim Demaille <akim@epita.fr>
10853
10854 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
10855 what it was!).
10856 * src/warshall.h: Remove accidental duplication of the content.
10857
1cbcf2e7
AD
108582001-12-05 Akim Demaille <akim@epita.fr>
10859
10860 * src/closure.c (set_fderives): De-obfuscate.
10861
84182270
AD
108622001-12-05 Akim Demaille <akim@epita.fr>
10863
10864 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
10865
3f6f053c
AD
108662001-12-05 Akim Demaille <akim@epita.fr>
10867
10868 * src/closure.c (set_firsts): De-obfuscate.
10869
7a5350ba
AD
108702001-12-05 Akim Demaille <akim@epita.fr>
10871
10872 * src/output.c (action_row): De-obfuscate
10873 using the good o' techniques: arrays not pointers, variable
10874 locality, BITISSET, RESETBIT etc.
10875
d954473d
AD
108762001-12-05 Akim Demaille <akim@epita.fr>
10877
10878 Pessimize the code to simplify it: from now on, all the states
10879 have a valid SHIFTS, which NSHIFTS is possibly 0.
10880
10881 * src/LR0.c (shifts_new): Be global and move to..
10882 * src/state.c, src/state.h: here.
10883 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
10884 * src/print_graph: Adjust.
10885
9839bbe5
AD
108862001-12-05 Akim Demaille <akim@epita.fr>
10887
10888 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
10889 * src/conflicts.c: Use it.
10890 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
10891 incorrectly ``simplified''.
10892
9f136c07
AD
108932001-12-05 Akim Demaille <akim@epita.fr>
10894
10895 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
10896 using the good o' techniques: arrays not pointers, variable
10897 locality, BITISSET, RESETBIT etc.
10898
b608206e
AD
108992001-12-05 Akim Demaille <akim@epita.fr>
10900
10901 * src/state.h (SHIFT_SYMBOL): New.
10902 * src/conflicts.c: Use it to deobfuscate.
10903
52afa962
AD
109042001-12-05 Akim Demaille <akim@epita.fr>
10905
10906 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
10907 (print_reductions): De-obfuscate using the good o' techniques:
10908 arrays not pointers, variable locality, BITISSET.
10909
e74dc321
AD
109102001-12-05 Akim Demaille <akim@epita.fr>
10911
10912 * src/conflicts.c (print_reductions): Arrays, not pointers.
10913 Use BITISSET.
10914
768fca83
AD
109152001-12-05 Akim Demaille <akim@epita.fr>
10916
10917 * src/conflicts.c (print_reductions): Pessimize, but clarify.
10918
a17e599f
AD
109192001-12-05 Akim Demaille <akim@epita.fr>
10920
10921 * src/conflicts.c (print_reductions): Improve variable locality.
10922
a04bc341
AD
109232001-12-05 Akim Demaille <akim@epita.fr>
10924
10925 * src/conflicts.c (print_reductions): Pessimize, but clarify.
10926
c8ea038e
AD
109272001-12-05 Akim Demaille <akim@epita.fr>
10928
10929 * src/conflicts.c (print_reductions): Improve variable locality.
10930
aa2aab3c
AD
109312001-12-05 Akim Demaille <akim@epita.fr>
10932
10933 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
10934 * src/lalr.c: Use them.
10935
b178c8cc
AD
109362001-12-05 Akim Demaille <akim@epita.fr>
10937
10938 * src/LR0.c (augment_automaton): Formatting changes.
10939 Better variable locality.
10940
f67d13aa
AD
109412001-12-05 Akim Demaille <akim@epita.fr>
10942
10943 * src/lalr.c (matrix_print): New.
10944 (transpose): Use it.
10945 Use arrays instead of pointers.
10946
c2713865
AD
109472001-12-05 Akim Demaille <akim@epita.fr>
10948
10949 * src/lalr.c (maxrhs): Move to...
10950 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
10951 * src/lalr.c (build_relations): Adjust.
10952
9887c18a
AD
109532001-12-05 Akim Demaille <akim@epita.fr>
10954
10955 * src/lalr.c (transpose): Free the memory allocated to the
10956 argument, as it is replaced by the results by the unique caller.
10957 (build_relations): Merely invoke transpose: it handles the memory
10958 deallocation.
10959 Improve variable locality.
10960 Avoid variables used as mere abbreviations.
10961 (compute_lookaheads): Use arrays instead of pointers.
10962
4d4f699c
AD
109632001-12-05 Akim Demaille <akim@epita.fr>
10964
10965 * src/lalr.c (initialize_F): Improve variable locality.
10966 Avoid variables used as mere abbreviations.
10967
80a69750
AD
109682001-12-05 Akim Demaille <akim@epita.fr>
10969
10970 * src/derives.c (print_derives): Display the ruleno.
10971 * src/lalr.c (initialize_F, transpose): Better variable locality
10972 to improve readability.
10973 Avoid variables used as mere abbreviations.
10974
fe961097
AD
109752001-12-05 Akim Demaille <akim@epita.fr>
10976
10977 * src/lalr.c (traverse): Use arrays instead of pointers.
10978
e3e4e814
AD
109792001-12-05 Akim Demaille <akim@epita.fr>
10980
10981 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
10982 the handling of squeue.
10983 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
10984
630e182b
AD
109852001-12-05 Akim Demaille <akim@epita.fr>
10986
10987 Because useless nonterminals are now kept alive (instead of being
10988 `destroyed'), we now sometimes examine them, and store information
10989 related to them. Hence we need to know their number, and adjust
10990 memory allocations.
10991
10992 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
10993 static.
10994 * src/LR0.c (allocate_itemsets): The memory allocated to
10995 `symbol_count' was used for two different purpose: once to count
10996 the number of occurrences of each symbol, and later reassigned to
10997 `shift_symbol', containing the symbol that can be shifted from a
10998 given state.
10999 Deobfuscate, i.e., allocate, use and free `symbol_count' here
11000 only, and...
11001 (new_itemsets): Allocate `shift_symbol' here.
11002 (allocate_itemsets): symbol_count includes useless nonterminals.
11003 Make room for them.
11004 (free_storage): Use `free', not `XFREE', for pointers that cannot
11005 be null.
11006
81b51460
AD
110072001-12-05 Akim Demaille <akim@epita.fr>
11008
11009 * src/nullable.c (set_nullable): Deobfuscate the handling of
11010 ritem.
11011 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
11012
3067fbef
AD
110132001-12-05 Akim Demaille <akim@epita.fr>
11014
11015 * src/gram.c, src/gram.h (ritem_print): New.
11016 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
11017 (This useless function was defined only to work around VMS linkers
11018 that can't handle compilation units with variables only).
11019 * src/reduce.c (dump_grammar): Use it to trace the construction of
11020 ritem.
11021
c2bea5f9
PE
110222001-12-04 Paul Eggert <eggert@twinsun.com>
11023
7d27c823
PE
11024 * src/bison.simple (union yyalloc): Change member names
11025 to be the same as the stack names.
11026 (yyparse): yyptr is now union yyalloc *, not char *.
11027 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
11028 and may generate better code on some machines.
c2bea5f9
PE
11029 (yystpcpy): Use prototype if __STDC__ is defined, not just
11030 if __cplusplus is defined.
35687a9d 11031
2c8a9dfa
AD
110322001-11-30 Akim Demaille <akim@epita.fr>
11033
11034 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
11035 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
11036 Gettext doesn't compile cleanly, and dies with -Werror.
11037 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
11038 Include WARNING_CFLAGS here.
11039 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
11040 before being defined.
11041
f4e421e6
AD
110422001-11-27 Paul Eggert <eggert@twinsun.com>
11043
11044 * lib/quotearg.h (quotearg_n, quotearg_n_style):
11045 First arg is int, not unsigned.
11046 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
11047 (SIZE_MAX, UINT_MAX): New macros.
11048 (quotearg_n_options): Abort if N is negative.
11049 Avoid overflow check on hosts where size_t is 64 bits and int
11050 is 32 bits, as overflow is impossible there.
11051 Fix off-by-one typo that caused unnecessary reallocation.
11052
7093d0f5
AD
110532001-11-29 Paul Eggert <eggert@twinsun.com>
11054
11055 Name space cleanup in generated parser.
11056
11057 * doc/bison.texinfo (Bison Parser): Discuss system headers
11058 and their effect on the user name space.
11059
11060 * src/bison.simple:
11061 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
11062 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
11063 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
11064
11065 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
11066 on user names when possible.
11067
11068 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
11069 Simplify test for whather <alloca.h> exists.
11070
11071 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
11072
11073 (<stdio.h>): Include if YYDEBUG.
11074
11075 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
11076 ! defined (yyoverflow) && ! defined (yymemcpy).
11077
11078 (yymemcpy, yyparse): Rename local variables as needed so that
11079 they all begin with 'yy'.
11080
11081 (yystrlen, yystpcpy): New functions.
11082
11083 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
11084 All uses changed.
11085
11086 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
11087 instead of relying on string.h functions. Use YYSTACK_ALLOC
11088 and YYSTACK_FREE instead of malloc and free.
11089
fd51e5ff
AD
110902001-11-30 Akim Demaille <akim@epita.fr>
11091
11092 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
11093 before their first uses.
11094 (YYBISON, YYPURE): Move to the top of the output.
11095
7d13ff5f
AD
110962001-11-30 Akim Demaille <akim@epita.fr>
11097
11098 * tests/reduce.at (Useless Nonterminals): Fix.
11099
892a3995
AD
111002001-11-30 Akim Demaille <akim@epita.fr>
11101
11102 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
11103 if body instead of `;' to pacify GCC's warnings.
11104
68f1e3ed
AD
111052001-11-30 Akim Demaille <akim@epita.fr>
11106
11107 Instead of mapping the LHS of unused rules to -1, keep the LHS
11108 valid, but flag the rules as invalid.
11109
11110 * src/gram.h (rule_t): `useful' is a new member.
11111 * src/print.c (print_grammar): Adjust.
11112 * src/derives.c (set_derives): Likewise.
11113 * src/reader.c (packgram, reduce_output): Likewise.
11114 * src/reduce.c (reduce_grammar_tables): Likewise.
11115 * tests/reduce.at (Underivable Rules, Useless Rules): New.
11116
d2d1b42b
AD
111172001-11-30 Akim Demaille <akim@epita.fr>
11118
11119 * src/reduce.c (reduce_output): Formatting changes.
11120 * src/print.c (print_results, print_grammar): Likewise.
11121 * tests/regression.at (Rule Line Numbers)
11122 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
11123
760b53a8
AD
111242001-11-30 Akim Demaille <akim@epita.fr>
11125
11126 * src/reduce.c (nonterminals_reduce): Instead of throwing away
11127 useless nonterminals, move them at the end of the symbol arrays.
11128 (reduce_output): Adjust.
11129 * tests/reduce.at (Useless Nonterminals): Adjust.
11130
00238958
AD
111312001-11-30 Akim Demaille <akim@epita.fr>
11132
11133 * src/reduce.c: Various comment/formatting changes.
11134 (nonterminals_reduce): New, extracted from...
11135 (reduce_grammar_tables): here.
11136 (reduce_grammar): Call nonterminals_reduce.
11137
396452de
PE
111382001-11-29 Paul Eggert <eggert@twinsun.com>
11139
11140 * src/bison.simple (YYSTACK_REALLOC): Remove.
11141 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
11142 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
11143 New macros.
11144 (union yyalloc): New type.
11145 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
11146 an arbitrary restriction on hosts where size_t is wider than int.
11147
11148 (yyparse): Don't dump core if alloca or malloc fails; instead, report
11149 a parser stack overflow. Allocate just one block of memory for all
11150 three stacks, instead of allocating three blocks; this typically is
11151 faster and reduces fragmentation.
11152
11153 Do not limit the number of items in the stack to a value that fits
11154 in 'int', as this is an arbitrary limit on hosts with 64-bit
11155 size_t and 32-bit int.
11156
147e184c
MA
111572001-11-29 Marc Autret <autret_m@epita.fr>
11158
11159 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
11160 of defining YYERROR_VERBOSE.
11161 [AT_DATA]: $4 is now out of C declarations in the prologue.
11162
426cf563
MA
111632001-11-28 Marc Autret <autret_m@epita.fr>
11164
11165 * src/reader.c (parse_dquoted_param): New.
11166 (parse_skel_decl): Use it.
11167 * src/lex.h: Add its prototype.
11168 * src/lex.c (literalchar): Become not static.
11169
c7925b99
MA
111702001-11-28 Marc Autret <autret_m@epita.fr>
11171
11172 * src/output.h: And put its extern declaration here.
11173 * src/output.c (error_verbose): Define here.
11174 (prepare): Echo name modification.
11175 * src/getargs.h: Clean its extern declaration.
11176 * src/getargs.c (error_verbose_flag): Remove.
11177 (getargs): Remove case 'e'.
11178 * src/options.c (option_table): 'error-verbose' is now seen as simple
11179 percent option.
11180 Include output.h.
11181
11182 * src/reader.c (read_declarations): Remove case tok_include.
11183 (parse_include_decl): Remove.
11184 * src/lex.h (token_t): Remove tok_include.
11185 * src/options.c (option_table): 'include' is now a simple command line
11186 option.
11187
5b5d1929
MA
111882001-11-28 Marc Autret <autret_m@epita.fr>
11189
11190 * src/bison.simple: Adjust muscle names.
11191 * src/muscle_tab.c (muscle_init): Also rename the muscles.
11192 * src/output.c (prepare): s/_/-/ for the muscles names.
11193 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
11194
8850be4b
MA
111952001-11-28 Marc Autret <autret_m@epita.fr>
11196
11197 * src/bison.simple: Fix debug.
11198 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
11199
4a38e613
AD
112002001-11-28 Akim Demaille <akim@epita.fr>
11201
11202 * src/LR0.c (shifts_new): New.
11203 (save_shifts, insert_start_shift, augment_automaton): Use it.
11204
4b35e1c1
AD
112052001-11-28 Akim Demaille <akim@epita.fr>
11206
11207 * src/closure.c (closure): `b' and `ruleno' denote the same value:
11208 keep ruleno only.
11209
d2b04478
AD
112102001-11-28 Akim Demaille <akim@epita.fr>
11211
11212 * src/closure.c (closure): Instead of looping over word in array
11213 then bits in words, loop over bits in array.
11214
2c4c30aa
AD
112152001-11-28 Akim Demaille <akim@epita.fr>
11216
11217 * src/closure.c (closure): No longer optimize the special case
11218 where all the bits of `ruleset[r]' are set to 0, to make the code
11219 clearer.
11220
576890b7
AD
112212001-11-28 Akim Demaille <akim@epita.fr>
11222
11223 * src/closure.c (closure): `r' and `c' are new variables, used to
11224 de-obfuscate accesses to RULESET and CORE.
11225
cb487d7d
AD
112262001-11-28 Akim Demaille <akim@epita.fr>
11227
11228 * src/reduce.c (reduce_print): Use ngettext.
11229 (dump_grammar): Improve the trace accuracy.
11230
6013d43f
AD
112312001-11-28 Akim Demaille <akim@epita.fr>
11232
11233 * src/reduce.c (dump_grammar): Don't translate trace messages.
11234
cb4956ee
AD
112352001-11-28 Akim Demaille <akim@epita.fr>
11236
11237 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
11238 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
11239 as all tags are free'ed afterwards.
11240 From Enrico Scholz.
11241
648185ab
PE
112422001-11-27 Paul Eggert <eggert@twinsun.com>
11243
11244 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
11245 use alloca when we didn't want to, and vice versa.
11246
68254a03
MA
112472001-11-27 Marc Autret <autret_m@epita.fr>
11248
9113b58f
AD
11249 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
11250 initialization.
68254a03
MA
11251 * src/output.c (prepare): Remove its update.
11252
04d843a2
MA
112532001-11-27 Marc Autret <autret_m@epita.fr>
11254
11255 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
11256 Use %error-verbose.
11257
d2079671 112582001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
11259
11260 * src/bison.simple: Remove YYERROR_VERBOSE using.
11261 Use %%error_verbose.
11262 (yyparse): Likewise.
11263 * src/output.c (prepare): Give its final value.
11264 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
11265 * src/getargs.h: Add its extern declaration.
11266 * src/getargs.c (error_verbose_flag): New int.
11267 (getargs): Update to catch new case.
11268 * src/options.c (option_table): 'error-verbose' is a new option.
11269 (shortopts): Update.
11270
e0327bc8
AD
112712001-11-27 Akim Demaille <akim@epita.fr>
11272
11273 * src/system.h: Use intl/libgettext.h.
11274 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
11275
000f1a3c
AD
112762001-11-27 Akim Demaille <akim@epita.fr>
11277
11278 * tests/torture.at (Exploding the Stack Size with Malloc):
11279 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
11280
26cfe0be
AD
112812001-11-27 Akim Demaille <akim@epita.fr>
11282
11283 * src/files.c: Include error.h.
11284 Reported by Hans Aberg.
11285
f6bd5427
MA
112862001-11-26 Marc Autret <autret_m@epita.fr>
11287
d2079671 11288 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
11289 (read_declarations): Add case tok_include.
11290 * src/getargs.h (include): Add its extern definition.
11291 * src/getargs.c (include): New const char *.
11292 (getargs): Add case '-I'.
11293 * src/options.c (option_table): Add include as command line and
11294 percent option.
11295 * src/lex.h (token_t): Add tok_include.
11296
2ca209c1
AD
112972001-11-26 Akim Demaille <akim@epita.fr>
11298
11299 * src/reader.c (readgram): Make sure rules for mid-rule actions
11300 have a lineno equal to that of their host rule.
11301 Reported by Hans Aberg.
11302 * tests/regression.at (Rule Line Numbers): New.
11303
0e41b407
AD
113042001-11-26 Akim Demaille <akim@epita.fr>
11305
11306 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
11307 size_ts.
11308
113092001-11-26 Akim Demaille <akim@epita.fr>
11310
11311 * src/complain.c, src/complain.h (error): Remove, provided by
11312 lib/error.[ch].
11313
e0c40012
AD
113142001-11-26 Akim Demaille <akim@epita.fr>
11315
11316 * src/reader.c (read_declarations): Don't abort on tok_illegal,
11317 issue an error message.
11318 * tests/regression.at (Invalid %directive): New.
11319 Reported by Hans Aberg.
11320
5e147124
AD
113212001-11-26 Akim Demaille <akim@epita.fr>
11322
11323 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
11324 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
11325
a034c8b8
AD
113262001-11-26 Akim Demaille <akim@epita.fr>
11327
11328 * src/conflicts.c (conflicts_print): Don't complain at all when
11329 there are no reduce/reduce conflicts, and as many shift/reduce
11330 conflicts as expected.
11331 * tests/regression.at (%expect right): Adjust.
11332
c64a20f3
AD
113332001-11-23 Akim Demaille <akim@epita.fr>
11334
11335 * lib/alloca.c: Update, from fileutils.
11336
5b0d29bb
AD
113372001-11-23 Akim Demaille <akim@epita.fr>
11338
11339 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
11340
722c4bfe
AD
113412001-11-23 Akim Demaille <akim@epita.fr>
11342
11343 * src/system.h: Include alloca.h.
11344 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
11345
6255b435
AD
113462001-11-23 Akim Demaille <akim@epita.fr>
11347
11348 * src/print_graph.c (print_actions): Remove `rule', unused.
11349 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
11350 pacify GCC's signed < unsigned warnings.
11351 * src/closure.c (itemsetsize): Likewise.
11352 * src/reader.c (symbol_list_new): Static.
11353
b29b2ed5
AD
113542001-11-23 Akim Demaille <akim@epita.fr>
11355
11356 Attaching lineno to buckets is stupid, since only one copy of each
11357 symbol is kept, only the line of the first occurrence is kept too.
11358
11359 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
11360 * src/reader.c (rline_allocated): Remove, unused.
11361 (symbol_list): Have a `line' member.
11362 (symbol_list_new): New.
11363 (readgram): Use it.
11364 * src/print.c (print_grammar): Output the rule line numbers.
11365 * tests/regression.at (Solved SR Conflicts)
11366 (Unresolved SR Conflicts): Adjust.
11367 Reported by Hans Aberg.
11368
a81b1d4a
MA
113692001-11-22 Marc Autret <autret_m@epita.fr>
11370
11371 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
11372
c1ecb3c1
MA
113732001-11-22 Marc Autret <autret_m@epita.fr>
11374
11375 * src/muscle_tab.c (muscle_init): Remove initialization of
11376 skeleton muscle.
11377 * src/output.c (output_master_parser): Do it here.
11378
fbe01355
AD
113792001-11-20 Akim Demaille <akim@epita.fr>
11380
11381 * po/sv.po: New.
11382 * configure.in (ALL_LINGUAS): Adjust.
11383 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
11384 longer contains strings to translate.
11385
81e895c0
AD
113862001-11-19 Akim Demaille <akim@epita.fr>
11387
11388 * src/conflicts.c (conflicts_print): Add a missing \n.
11389
6bb1878b
AD
113902001-11-19 Akim Demaille <akim@epita.fr>
11391
11392 * src/nullable.c (nullable_print): New.
11393 (set_nullable): Call it when tracing.
11394 Better locality of variables.
11395
d9ec2d07
AD
113962001-11-19 Akim Demaille <akim@epita.fr>
11397
11398 * src/print.c (print_actions): Better locality of variables.
11399
720e5c1b
AD
114002001-11-19 Akim Demaille <akim@epita.fr>
11401
11402 * src/derives.c (print_derives): Fix and enrich.
11403 * src/closure.c (print_fderives): Likewise.
11404
fb908786
AD
114052001-11-19 Akim Demaille <akim@epita.fr>
11406
11407 * src/closure.c (itemsetend): Remove, replaced with...
11408 (itemsetsize): new.
11409
125ecb56
AD
114102001-11-19 Akim Demaille <akim@epita.fr>
11411
11412 * src/LR0.c (kernel_end): Remove, replaced with...
11413 (kernel_size): new.
11414
d8cf039f
AD
114152001-11-19 Akim Demaille <akim@epita.fr>
11416
11417 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
11418 to clarify.
11419
7bec0760
AD
114202001-11-19 Akim Demaille <akim@epita.fr>
11421
11422 * src/closure.c (closure): Use arrays instead of pointers to clarify.
11423
c87d4863
AD
114242001-11-19 Akim Demaille <akim@epita.fr>
11425
11426 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
11427 trace messages.
11428 * src/LR0.c: Likewise.
11429 (allocate_itemsets): Use arrays instead of pointers to clarify.
11430
9bfe901c
AD
114312001-11-19 Akim Demaille <akim@epita.fr>
11432
11433 * src/getargs.c (statistics_flag): Replace with...
11434 (trace_flag): New.
11435 (longopts): Accept --trace instead of --statistics.
11436 * src/getargs.h, src/options.c: Adjust.
11437 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
11438 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
11439
97db7bd4
AD
114402001-11-19 Akim Demaille <akim@epita.fr>
11441
cc72668c 11442 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
11443 pointers to clarify the code.
11444 (save_reductions, save_shifts): Factor common parts of alternatives.
11445
2c5f66ed
AD
114462001-11-19 Akim Demaille <akim@epita.fr>
11447
11448 * src/LR0.c (new_state, get_state): Complete TRACE code.
11449 * src/closure.c: Include `reader.h' to get `tags', needed by the
11450 trace code.
11451 Rename the conditional DEBUG as TRACE.
11452 Output consistently TRACEs to stderr, not stdout.
11453 * src/derives.c: Likewise.
11454 * src/reduce.c: (inaccessable_symbols): Using if is better style
11455 than goto.
11456 Use `#if TRACE' instead of `#if 0' for tracing code.
11457
300f275f
AD
114582001-11-19 Akim Demaille <akim@epita.fr>
11459
11460 * src/system.h (LIST_FREE, shortcpy): New.
11461 * src/LR0.c: Use them.
11462 * src/output.c (free_itemsets, free_reductions, free_shifts):
11463 Remove, replaced by LIST_FREE.
11464
f59c437a
AD
114652001-11-19 Akim Demaille <akim@epita.fr>
11466
11467 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
11468 (REDUCTIONS_ALLOC): New.
11469 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
11470 allocation.
11471
6986fd9e
AD
114722001-11-19 Akim Demaille <akim@epita.fr>
11473
11474 * src/LR0.c (new_state): Complete trace code.
11475 * src/nullable.c (set_nullable): Don't translate traces.
11476
4bc30f78
AD
114772001-11-19 Akim Demaille <akim@epita.fr>
11478
11479 * src/print_graph.c (print_core): Better locality of variables.
11480 * src/print.c (print_core): Likewise.
11481
08a946e0
AD
114822001-11-19 Akim Demaille <akim@epita.fr>
11483
11484 * src/vcg.c: You do the output, so you are responsible of the
11485 handling of VCG syntax, in particular: use quotearg.
11486 * src/print_graph.c: Don't.
11487 (print_actions): Don't output the actions as part of the nodes,
11488 since that's the job of the edges.
11489 (print_state): Don't output by hand: fill the node description,
9bfe901c 11490 and ask for its output.
08a946e0 11491
f0473484
AD
114922001-11-19 Akim Demaille <akim@epita.fr>
11493
cc72668c
AD
11494 * src/bison.simple (yyparse): When verbosely reporting an error,
11495 no longer put additional quotes around token names.
f0473484
AD
11496 * tests/calc.at: Adjust.
11497
e41dc700
AD
114982001-11-19 Akim Demaille <akim@epita.fr>
11499
11500 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
11501 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
11502 * src/output.c: Adjust.
11503
652a871c
AD
115042001-11-19 Akim Demaille <akim@epita.fr>
11505
11506 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
11507 (rule_t): this.
11508 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
11509
b2ed6e58
AD
115102001-11-19 Akim Demaille <akim@epita.fr>
11511
11512 * src/gram.h (rule_t): New.
11513 (rule_table): New.
11514 (rrhs, rlhs): Remove, part of state_t.
11515 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
11516 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
11517 * src/reader.c, src/reduce.c: Adjust.
11518
edad7067
AD
115192001-11-19 Akim Demaille <akim@epita.fr>
11520
11521 * src/reader.c (symbols_output): New, extracted from...
11522 (packsymbols): Here.
11523 (reader): Call it.
11524
3feec034
AD
115252001-11-19 Akim Demaille <akim@epita.fr>
11526
11527 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
11528 (maxrhs): this new function.
11529
ddcd5fdf
AD
115302001-11-19 Akim Demaille <akim@epita.fr>
11531
cc72668c 11532 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
11533 Adjust.
11534
bb527fc2
AD
115352001-11-19 Akim Demaille <akim@epita.fr>
11536
cc72668c 11537 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
11538 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11539 * src/lalr.c: Adjust.
11540
a845a697
AD
115412001-11-19 Akim Demaille <akim@epita.fr>
11542
11543 * src/lalr.c (initialize_LA): Only initialize LA. Let...
11544 (set_state_table): handle the `lookaheads' members.
11545
f004bf6a
AD
115462001-11-19 Akim Demaille <akim@epita.fr>
11547
cc72668c
AD
11548 * src/lalr.h (lookaheads): Removed array, whose contents is now
11549 a member of...
f004bf6a
AD
11550 (state_t): this structure.
11551 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11552 Adjust.
11553
de326cc0
AD
115542001-11-19 Akim Demaille <akim@epita.fr>
11555
cc72668c
AD
11556 * src/lalr.h (consistent): Removed array, whose contents is now
11557 a member of...
de326cc0
AD
11558 (state_t): this structure.
11559 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11560 Adjust.
11561
90b4416b
AD
115622001-11-19 Akim Demaille <akim@epita.fr>
11563
cc72668c
AD
11564 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
11565 contents are now members of...
90b4416b
AD
11566 (state_t): this structure.
11567 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
11568 Adjust.
11569
9703cc49
AD
115702001-11-19 Akim Demaille <akim@epita.fr>
11571
11572 * src/lalr.h (state_t): New.
11573 (state_table): Be a state_t * instead of a core **.
11574 (accessing_symbol): Remove, part of state_t.
11575 * src/lalr.c: Adjust.
11576 (set_accessing_symbol): Merge into...
11577 (set_state_table): this.
11578 * src/print_graph.c, src/conflicts.c: Adjust.
11579
d803322e
AD
115802001-11-14 Akim Demaille <akim@epita.fr>
11581
11582 * tests/calc.at, tests/output.at, tests/regression.at,
11583 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
11584 now the tests are run in private dirs, therefore AC_CLEANUP and
11585 family can be simplified to 0-ary.
11586 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
11587 use abs. path to find config.h.
11588 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
11589 stderr, there can be way too much random noise.
11590 Instead pass -Werror to GCC and rely on the exit status.
11591 Reported by Wolfram Wagner.
11592
3d76b07d
AD
115932001-11-14 Akim Demaille <akim@epita.fr>
11594
11595 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
11596 defined only if yyoverflow is defined, to avoid `warning: unused
11597 variable `yyvs1''.
11598 Reported by The Test Suite.
11599
09b503c8
AD
116002001-11-14 Akim Demaille <akim@epita.fr>
11601
11602 * src/print.c: Include reduce.h.
11603 Reported by Hans Aberg.
11604
116052001-11-14 Akim Demaille <akim@epita.fr>
11606
11607 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
11608 Revert a previous patch: these are really const.
11609 * src/conflicts.c (conflict_report): Additional useless pair of
11610 braces to pacify GCC's warnings for `if () if () {} else {}'.
11611 * src/lex.c (parse_percent_token): Replace equal_offset with
11612 arg_offset.
11613 arg is const.
11614 Be sure to strdup `arg' when used, since there is no reason for
11615 token_buffer not to change.
11616
0f37a994
AD
116172001-11-14 Akim Demaille <akim@epita.fr>
11618
11619 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
11620 definition.
11621 * src/main.c (main): Use them.
11622 Suggested by Hans Aberg.
11623
d39d93b8
AD
116242001-11-12 Akim Demaille <akim@epita.fr>
11625
11626 * src/system.h (ngettext): Now that we use ngettext, be sure to
11627 provide a default definition when NLS are not used.
11628
9edcd895
AD
116292001-11-12 Akim Demaille <akim@epita.fr>
11630
11631 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
11632 Use @kbd to denote user input.
11633 (Language and Grammar): ANSIfy the example.
11634 Adjust its layout for info/notinfo.
11635 (Location Tracking Calc): Output error messages to stderr.
11636 Output locations in a more GNUtically correct way.
11637 Fix a couple of Englishos.
11638 Adjust @group/@end group pairs.
11639
7da99ede
AD
116402001-11-12 Akim Demaille <akim@epita.fr>
11641
e3aa65c5 11642 %expect was not functioning at all.
7da99ede
AD
11643
11644 * src/conflicts.c (expected_conflicts): Set to -1.
11645 (conflict_report): Use ngettext.
11646 (conflicts_print): Check %expect and make its violation an error.
11647 * doc/bison.texinfo (Expect Decl): Adjust.
11648 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
11649 * tests/regression.at (%expect not enough, %expect right)
11650 (%expect too much): New.
11651
ba9dda1a
AD
116522001-11-12 Akim Demaille <akim@epita.fr>
11653
11654 * tests/regression.at (Conflicts): Rename as...
11655 (Unresolved SR Conflicts): this.
11656 (Solved SR Conflicts): New.
11657
337c5bd1
AD
116582001-11-12 Akim Demaille <akim@epita.fr>
11659
11660 * src/reduce.c (print_results): Rename as...
11661 (reduce_output): This.
11662 Output to OUT, passed as argument, instead of output_obstack.
11663 (dump_grammar): Likewise.
11664 (reduce_free): New.
11665 Also free V1.
11666 (reduce_grammar): No longer call reduce_output, since...
11667 * src/print.c (print_results): do it.
11668 * src/main.c (main): Call reduce_free;
11669
c73a41af
AD
116702001-11-12 Akim Demaille <akim@epita.fr>
11671
11672 * src/conflicts.c (print_reductions): Accept OUT as argument.
11673 Output to it, not to output_obstack.
11674 * src/print.c (print_actions): Adjust.
11675
0df87bb6
AD
116762001-11-12 Akim Demaille <akim@epita.fr>
11677
11678 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
11679 the result instead of using...
11680 (src_total, rrc_total, src_count, rrc_count): Remove.
11681 (any_conflicts): Remove.
11682 (print_conflicts): Split into...
11683 (conflicts_print, conflicts_output): New.
11684 * src/conflicts.h: Adjust.
11685 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
0f37a994 11686 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
11687 * tests/regression.at (Conflicts): New.
11688 Reported by Tom Lane.
11689
e4d3d4de
AD
116902001-11-12 Akim Demaille <akim@epita.fr>
11691
11692 * tests/regression.at (Invalid input): Remove, duplicate with
11693 ``Invalid input: 1''.
11694
6d7d248e
AD
116952001-11-12 Akim Demaille <akim@epita.fr>
11696
11697 * tests/torture.at (AT_DATA_STACK_TORTURE)
11698 (Exploding the Stack Size with Alloca)
11699 (Exploding the Stack Size with Malloc): New.
11700
e9e4c321
AD
117012001-11-12 Akim Demaille <akim@epita.fr>
11702
11703 * src/bison.simple (YYSTACK_REALLOC): New.
11704 (yyparse) [!yyoverflow]: Use it and free the old stack.
0f37a994 11705 Reported by Per Allansson.
e9e4c321 11706
5f7e0832
AD
117072001-11-12 Pascal Bart <pascal.bart@epita.fr>
11708
11709 * src/bison.simple: Define type yystype instead of YYSTYPE, and
11710 define CPP macro, which substitute YYSTYPE by yystype.
11711 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
11712 with yyltype/YYLTYPE. This allows inclusion of the generated
11713 header within the parser if the compiler, such as GGC, accepts
11714 multiple equivalent #defines.
11715 From Akim.
11716
e3f1699f
AD
117172001-11-05 Akim Demaille <akim@epita.fr>
11718
11719 * src/reader.c (symbols_output): New, extracted from...
11720 (packsymbols): here.
11721 (reader): Adjust.
11722
65be0866
AD
117232001-11-05 Akim Demaille <akim@epita.fr>
11724
11725 * src/lex.c (parse_percent_token): s/quotearg/quote/.
11726
e4d910bf
AD
117272001-11-05 Akim Demaille <akim@epita.fr>
11728
11729 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
11730 pattern.
11731
951366c1
AD
117322001-11-05 Akim Demaille <akim@epita.fr>
11733
11734 * src/options.h (struct option_table_struct): set_flags is void*.
11735 * src/options.c (longopts): Support `--output' and `%output'.
11736 (usage): Adjust.
11737 * src/lex.h (tok_setopt): Remove, replaced with...
11738 (tok_intopt, tok_stropt): these new guys.
11739 * src/lex.c (getopt.h): Not needed.
11740 (token_buffer, unlexed_token_buffer): Not const.
11741 (percent_table): Promote `-' over `_' in directive names.
11742 Active `%name-prefix', `file-prefix', and `output'.
11743 (parse_percent_token): Accept possible arguments to directives.
11744 Promote `-' over `_' in directive names.
11745
d8988b2f
AD
117462001-11-04 Akim Demaille <akim@epita.fr>
11747
11748 * doc/bison.texinfo (Decl Summary): Split the list into
11749 `directives for grammars' and `directives for bison'.
11750 Sort'em.
11751 Add description of `%name-prefix', `file-prefix', and `output'.
11752 Promote `-' over `_' in directive names.
11753 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
11754 Simplify the description of `--name-prefix'.
11755 Promote `-' over `_' in directive names.
11756 Promote `--output' over `--output-file'.
11757 Fix the description of `--defines'.
11758 * tests/output.at: Exercise %file-prefix and %output.
11759
6468d18e
AD
117602001-11-02 Akim Demaille <akim@epita.fr>
11761
11762 * doc/refcard.tex: Update.
11763
6b7e85b9
AD
117642001-11-02 Akim Demaille <akim@epita.fr>
11765
11766 * src/symtab.h (SUNDEF): New.
11767 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
11768 stand for `uninitialized', instead of 0.
11769 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
11770 * src/lex.c (lex): Adjust.
11771
11772 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
11773 Number it 0.
11774 Let yylex return it instead of a plain 0.
11775 Reported by Dick Streefland.
11776
cd5aafcf
AD
117772001-11-02 Akim Demaille <akim@epita.fr>
11778
11779 * tests/regression.at (Mixing %token styles): New test.
11780
037ca2f1
AD
117812001-11-02 Akim Demaille <akim@epita.fr>
11782
11783 * src/reader.c (parse_thong_decl): Formatting changes.
11784 (token_translations_init): New, extracted from...
11785 (packsymbols): Here.
11786 Adjust.
11787
270a173c
AD
117882001-11-01 Akim Demaille <akim@epita.fr>
11789
11790 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
11791 Check that `9foo.y' produces correct cpp guards.
11792 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
11793 guards.
11794 Reported by Wwp.
11795
561f9a30
AD
117962001-11-01 Akim Demaille <akim@epita.fr>
11797
11798 * tests/regression.at (Invalid input: 2): New.
11799 * src/lex.c (unlexed_token_buffer): New.
11800 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
11801 too.
11802 Reported by Wwp.
11803
f987e9d2
AD
118042001-11-01 Akim Demaille <akim@epita.fr>
11805
11806 * tests/calc.at: Catch up with 1.30.
11807 * configure.in: Bump to 1.49a.
11808 Adjust to newer Autotest.
11809
0846f581
PB
118102001-10-19 Pascal Bart <pascal.bart@epita.fr>
11811
11812 * src/conflicts.c: Move global variables rrc_total and src_total ...
11813 (print_conflicts): here.
11814 * src/output.c (output): Free global variable user_toknums.
11815 * src/lex.c (token_obstack): Become static.
11816
3c1a79b3
AD
118172001-10-18 Akim Demaille <akim@epita.fr>
11818
11819 * tests/atlocal.in (GCC): Add.
11820 * tests/calc.at: s/m4_match/m4_bmatch/.
11821 s/m4_patsubst/m4_bpatsubst/.
11822 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
11823 * configure.in: AC_SUBST(GCC).
11824
5d52e7d0
MA
118252001-10-14 Marc Autret <autret_m@epita.fr>
11826
11827 * src/options.c (create_long_option_table): Fix.
11828
631aa1d3
AD
118292001-10-10 Akim Demaille <akim@epita.fr>
11830
11831 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
11832
f6ec6d13
AD
118332001-10-04 Akim Demaille <akim@epita.fr>
11834
11835 * src/reader.c (parse_union_decl): Push the caracters in
11836 union_obstack, not attrs_obstack.
11837
342b8b6e
AD
118382001-10-04 Akim Demaille <akim@epita.fr>
11839
11840 Merge in the branch 1.29.
11841
11842 * src/reader.c (packsymbols): Use a temporary obstack for
11843 `%%tokendef', since output_stack is already used elsewhere.
11844
11845 2001-10-02 Akim Demaille <akim@epita.fr>
11846
11847 Bump 1.29d.
11848
11849 2001-10-02 Akim Demaille <akim@epita.fr>
11850
11851 Version 1.29c.
11852
11853 2001-10-02 Akim Demaille <akim@epita.fr>
11854
11855 * tests/regression.at (Invalid CPP headers): New.
11856 From Alexander Belopolsky.
11857 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
11858
11859 2001-10-02 Akim Demaille <akim@epita.fr>
11860
11861 * tests/regression.at (Invalid input): New.
11862 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
11863 Reported by Shura.
11864
11865 2001-10-02 Akim Demaille <akim@epita.fr>
11866
11867 * tests/calc.at: Now that --debug works, the tests must be adjusted.
11868
11869 2001-10-02 Akim Demaille <akim@epita.fr>
11870
11871 * src/output.c (output_parser): Assert `skeleton'.
11872 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
11873 systems.
11874 From Shura.
11875
11876 2001-10-01 Marc Autret <autret_m@epita.fr>
11877
11878 * src/lex.h: Echo modifications.
11879 * src/lex.c (unlex): Parameter is now token_t.
11880 From Hans Aberg.
11881
11882 2001-10-01 Marc Autret <autret_m@epita.fr>
11883
11884 * src/main.c: Include lex.h.
11885 From Hans Aberg.
11886
11887 2001-09-29 Akim Demaille <akim@epita.fr>
11888
11889 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
11890
11891 2001-09-28 Akim Demaille <akim@epita.fr>
11892
11893 * tests/testsuite.at: Update to newer Autotest.
11894 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
11895
11896 2001-09-27 Akim Demaille <akim@epita.fr>
11897
11898 Position independent wrapper.
11899
11900 * tests/bison: Remove.
11901 * tests/bison.in: New.
11902 * configure.in: Adjust.
11903
11904 2001-09-27 Paul Eggert <eggert@twinsun.com>
11905
11906 Port quotearg fixes from tar 1.13.24.
11907
11908 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
11909 tm to be declared.
11910 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
11911 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
11912
11913 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
11914 * m4/mbrtowc.m4: New file.
11915 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
11916 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
11917
11918 2001-09-27 Akim Demaille <akim@epita.fr>
11919
11920 Bump to 1.29c.
11921
11922 2001-09-27 Akim Demaille <akim@epita.fr>
11923
11924 Version 1.29b.
11925
11926 2001-09-25 Akim Demaille <akim@epita.fr>
11927
11928 * src/system.h: Include `xalloc.h'.
11929 Remove it from the C files.
11930 * src/files.c (output_files): Free the obstacks.
11931 * src/lex.c (init_lex): Rename as...
11932 (lex_init): this.
11933 (lex_free): New.
11934 * src/main.c (main): Use it.
11935
11936 2001-09-24 Marc Autret <autret_m@epita.fr>
11937
11938 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
11939 to output informations in fout (FILE*).
11940 (open_graph, close_graph): Likewise.
11941 (output_graph, output_edge, output_node): Likewise.
11942 * src/vcg.h: Update function prototypes.
11943 * src/print_graph.c (print_graph): Open output graph file.
11944 (print_actions): Adjust.
11945 * src/files.h: Remove extern declaration.
11946 * src/files.c: Remove graph_obstack declaration.
11947 (open_files): Remove graph_obstack initialization.
11948 (output_files): Remove graph_obstack saving.
11949
11950 2001-09-24 Marc Autret <autret_m@epita.fr>
11951
11952 * src/files.c (compute_output_file_names): Fix.
11953
11954 2001-09-24 Marc Autret <autret_m@epita.fr>,
11955 Akim Demaille <akim@epita.fr>
11956
11957 * src/reader.c (reader): Remove call to free_symtab ().
11958 * src/main.c (main): Call it here.
11959 Include symtab.h.
11960 * src/conflicts.c (initialize_conflicts): Rename as...
11961 (solve_conflicts): this.
11962 * src/print.c (print_core, print_actions, print_state)
11963 (print_grammar): Dump to a file instead a `output_obstack'.
11964 (print_results): Dump `output_obstack', and then proceed with the
11965 FILE *.
11966 * src/files.c (compute_output_file_names, close_files): New.
11967 (output_files): Adjust.
11968 * src/main.c (main): Adjust.
11969
11970 2001-09-23 Marc Autret <autret_m@epita.fr>
11971
11972 * src/files.c (compute_header_macro): Computes header macro name
11973 from spec_defines_file when given.
11974
11975 2001-09-23 Marc Autret <autret_m@epita.fr>
11976
11977 * src/files.c (output_files): Add default extensions.
11978
11979 2001-09-22 Akim Demaille <akim@epita.fr>
11980
11981 * src/conflicts.c (finalize_conflicts): Rename as...
11982 (free_conflicts): this.
11983
11984 2001-09-22 Akim Demaille <akim@epita.fr>
11985
11986 * src/gram.c (gram_free): Rename back as...
11987 (dummy): this.
11988 (output_token_translations): Free `token_translations'.
11989 * src/symtab.c (free_symtab): Free the tag field.
11990
11991 2001-09-22 Akim Demaille <akim@epita.fr>
11992
11993 Remove `translations' as it is always set to true.
11994
11995 * src/gram.h: Adjust.
11996 * src/reader.c (packsymbols, parse_token_decl): Adjust
11997 * src/print.c (print_grammar): Adjust.
11998 * src/output.c (output_token_translations): Adjust.
11999 * src/lex.c (lex): Adjust.
12000 * src/gram.c: Be sure the set pointers to NULL.
12001 (dummy): Rename as...
12002 (gram_free): this.
12003
12004 2001-09-22 Akim Demaille <akim@epita.fr>
12005
12006 * configure.in: Invoke AM_LIB_DMALLOC.
12007 * src/system.h: Use dmalloc.
12008 * src/LR0.c: Be sure to have pointers initialized to NULL.
12009 (allocate_itemsets): Allocate kernel_items only if needed.
12010
12011 2001-09-22 Akim Demaille <akim@epita.fr>
12012
12013 * configure.in: Bump to 1.29b.
12014 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
12015 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
12016 need xmalloc.c in calc.y.
12017 From Pascal Bart.
12018
12019 2001-09-21 Akim Demaille <akim@epita.fr>
12020
12021 Version 1.29a.
12022 * Makefile.maint, config/config.guess, config/config.sub,
12023 * config/missing: Update from masters.
12024 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
12025 upon package.m4.
12026 * configure.in (ALL_LINGUAS): Add `tr'.
12027
12028 2001-09-21 Akim Demaille <akim@epita.fr>
12029
12030 * tests/Makefile.am (package.m4): Move to...
12031 ($(srcdir)/$(TESTSUITE)): here.
12032
12033 2001-09-20 Akim Demaille <akim@epita.fr>
12034
12035 * src/complain.c: No longer try to be standalone: use system.h.
12036 Don't assume __STDC__ is defined to 1. Just test if it is defined.
12037 * src/complain.h: Likewise.
12038 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
12039 Remove the unused variable `n'.
12040 From Albert Chin-A-Young.
12041
12042 2001-09-18 Marc Autret <autret_m@epita.fr>
12043
12044 * doc/bison.1: Update.
12045 * doc/bison.texinfo (Bison Options): Update --defines and --graph
12046 descriptions.
12047 (Option Cross Key): Update.
12048 Add --graph.
12049
12050 2001-09-18 Marc Autret <autret_m@epita.fr>
12051
12052 * tests/regression.at: New test (comment in %union).
12053
12054 2001-09-18 Marc Autret <autret_m@epita.fr>
12055
12056 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
12057 do that.
12058 Reported by Keith Browne.
12059
12060 2001-09-18 Marc Autret <autret_m@epita.fr>
12061
12062 * tests/output.at: Add tests for --defines and --graph.
12063
12064 2001-09-18 Marc Autret <autret_m@epita.fr>
12065
12066 * tests/output.at: Removes tests of %{header,src}_extension features.
12067
12068 2001-09-18 Akim Demaille <akim@epita.fr>
12069
12070 * tests/Makefile.am (package.m4): New.
12071 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
12072 (_AT_CHECK_CALC_ERROR): Likewise.
12073 Factor the `, ' part of verbose error messages.
12074
12075 2001-09-18 Marc Autret <autret_m@epita.fr>
12076
12077 * src/getargs.c (longopts): Declare --defines and --graph as options
12078 with optional arguments.
12079 * src/files.h: Add extern declarations.
12080 * src/files.c (spec_graph_file, spec_defines_file): New.
12081 (output_files): Update.
12082 Remove CPP-outed code.
12083
12084 2001-09-18 Marc Autret <autret_m@epita.fr>
12085
12086 Turn off %{source,header}_extension feature.
12087
12088 * src/files.c (compute_exts_from_gf): Update.
12089 (compute_exts_from_src): Update.
12090 (output_files): CPP-out useless code.
12091 * src/files.h: Remove {header,source}_extension extern declarations.
12092 * src/reader.c (parse_dquoted_param): CPP-out.
12093 (parse_header_extension_decl): Remove.
12094 (parse_source_extension_decl): Remove.
12095 (read_declarations): Remove cases tok_{hdrext,srcext}.
12096 * src/lex.c (percent_table): Remove {header,source}_extension entries.
12097 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
12098
12099 2001-09-10 Akim Demaille <akim@epita.fr>
12100
12101 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
12102 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
12103 (AT_CHECK_OUTPUT): this.
12104 Merely check ls' exit status, its output is useless.
12105
12106 2001-09-10 Akim Demaille <akim@epita.fr>
12107
12108 * tests/calc.at: Use m4_match.
12109 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
12110
12111 2001-09-10 Marc Autret <autret_m@epita.fr>,
12112 Akim Demaille <akim@epita.fr>
12113
12114 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
12115 enum color_e.
12116 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
12117 to `normal'.
12118 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
12119 * src/lex.h: Adjust prototype.
12120 (token_t): Add `tok_undef'.
12121 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
12122 (parse_percent_token): Now returns token_t.
12123 Add default statement in switch.
12124 (lex): Separate `c' as an input variable, from the token_t result
12125 part.
12126 (unlexed): Is a token_t.
12127
12128 2001-09-10 Akim Demaille <akim@epita.fr>
12129
12130 * configure.in: Bump to 1.29a.
12131
12132 2001-09-07 Akim Demaille <akim@epita.fr>
12133
12134 Version 1.29.
12135
12136 2001-08-30 Akim Demaille <akim@epita.fr>
12137
12138 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
12139 * m4/atconfig.m4: Remove.
12140 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
12141 * tests/bison: New.
12142 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
12143 m4_if, m4_patsubst, and m4_regexp.
12144 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
12145 `input' file instead of echo.
12146
12147 2001-08-29 Akim Demaille <akim@epita.fr>
12148
12149 Bump to 1.28e.
12150
12151 2001-08-29 Akim Demaille <akim@epita.fr>
12152
12153 Version 1.28d.
12154
12155 2001-08-29 Paul Eggert <eggert@twinsun.com>
12156
12157 * src/bison.simple (yyparse): Don't take the address of an
12158 item before the start of an array, as that doesn't conform to
12159 the C Standard.
12160
12161 2001-08-29 Robert Anisko <anisko_r@epita.fr>
12162
12163 * doc/bison.texinfo (Location Tracking Calc): New node.
12164
12165 2001-08-29 Paul Eggert <eggert@twinsun.com>
12166
12167 * src/output.c (output): Do not define const, as this now
12168 causes more problems than it cures.
12169
12170 2001-08-29 Akim Demaille <akim@epita.fr>
12171
12172 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
12173 the nodes.
12174 Be sure to tag the `detailmenu'.
12175
12176 2001-08-29 Akim Demaille <akim@epita.fr>
12177
12178 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
12179 download in a tmp dir.
12180
12181 2001-08-28 Marc Autret <autret_m@epita.fr>
12182
12183 * config/depcomp: New file.
12184
12185 2001-08-28 Marc Autret <autret_m@epita.fr>
12186
12187 * doc/bison.1 (mandoc): Adjust.
12188 From Juan Manuel Guerrero.
12189
12190 2001-08-28 Marc Autret <autret_m@epita.fr>
12191
12192 * src/print_graph.c (print_state): Fix.
12193
12194 2001-08-27 Marc Autret <autret_m@epita.fr>
12195
12196 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
12197 char * members.
12198 Echo modifications to the functions prototypes.
12199 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
12200
12201 2001-08-27 Marc Autret <autret_m@epita.fr>
12202
12203 * src/vcg.c: Include `xalloc.h'.
12204 (add_colorentry): New.
12205 (add_classname): New.
12206 (add_infoname): New.
12207 * src/vcg.h: Add new prototypes.
12208
12209 2001-08-27 Akim Demaille <akim@epita.fr>
12210
12211 * Makefile.maint: Sync. again with CVS Autoconf.
12212
12213 2001-08-27 Akim Demaille <akim@epita.fr>
12214
12215 * Makefile.maint: Formatting changes.
12216 (po-update, cvs-update, update): New targets.
12217 (AMTAR): Remove.
12218
12219 2001-08-27 Akim Demaille <akim@epita.fr>
12220
12221 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
12222 * Makefile.maint: Sync. with CVS Autoconf.
12223
12224 2001-08-27 Marc Autret <autret_m@epita.fr>
12225
12226 * src/vcg.h (struct infoname_s): New.
12227 (struct colorentry_s): New.
12228 (graph_s): New fields {vertical,horizontal}_order in structure.
12229 Add `infoname' field.
12230 Add `colorentry' field;
12231 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
12232 (G_HORIZONTAL_ORDER): New.
12233 (G_INFONAME): New.
12234 (G_COLORENTRY): New.
12235 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
12236 Add output of `infoname'.
12237 Add output of `colorentry'.
12238
12239 2001-08-27 Marc Autret <autret_m@epita.fr>
12240
12241 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
12242 This one shadowed a global parameter.
12243
12244 2001-08-24 Marc Autret <autret_m@epita.fr>
12245
12246 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
12247 instead of `unsigned'.
12248 (print_state): Do not call obstack_object_size () in obstack_grow ()
12249 to avoid macro variables shadowing.
12250
12251 2001-08-23 Marc Autret <autret_m@epita.fr>
12252
12253 * src/lex.c (percent_table): Typo: s/naem/name/.
12254 Add graph option.
12255 Normalize new options declarations.
12256
12257 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
12258
12259 * tests/suite.at: Exercise %header_extension and %source_extension.
12260
12261 2001-08-16 Marc Autret <autret_m@epita.fr>
12262
12263 * src/reader.c (parse_dquoted_param): New.
12264 (parse_header_extension_decl): Use it.
12265 (parse_source_extension_decl): Likewise.
12266
12267 2001-08-16 Marc Autret <autret_m@epita.fr>
12268
12269 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
12270 (get_xxxx_str): Use assert () instead of complain ().
12271 Remove return invokations in default cases.
12272 (get_decision_str): Modify default behaviour. Remove second argument.
12273 Echo modifications on calls.
12274 (output_graph): Fix.
12275
12276 2001-08-16 Marc Autret <autret_m@epita.fr>
12277
12278 * src/getargs.c (usage): Update with ``-g, --graph''.
12279
12280 2001-08-16 Marc Autret <autret_m@epita.fr>
12281
12282 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
12283 (Option Cross Key): Likewise.
12284 * doc/bison.1: Update.
12285
1c8c2190
PB
122862001-09-25 Pascal Bart <pascal.bart@epita.fr>
12287
12288 * src/output.c (output_master_parser): Don't finish action_obstack.
12289 (output_parser): Don't care about the muscle action, here.
12290 (prepare): Copy the action_obstack in the action muscle.
12291 (output): Free action_obstack.
12292
180d45ba
PB
122932001-09-23 Pascal Bart <pascal.bart@epita.fr>
12294
12295 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
12296 will contain `%union' declaration.
12297 (parse_union_decl): Delete #line directive output.
12298 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
12299 informations about %union.
12300 (parse_union_decl): Copy the union_obstack in the muscle stype.
12301 * src/bison.simple: Add new #line directive.
12302 Add typdef %%stype YYSTYPE.
12303
c51d1a19
PB
123042001-09-23 Pascal Bart <pascal.bart@epita.fr>
12305
12306 * src/bison.simple: Add new `#line' directive.
12307
6f9344da
PB
123082001-09-22 Pascal Bart <pascal.bart@epita.fr>
12309
12310 * src/bison.simple: New `#line' directive.
12311 * src/output.c (output_parser): Support new dynamic muscle input_line.
12312
652def80
MA
123132001-09-22 Marc Autret <autret_m@epita.fr>
12314
12315 * src/output.c (output_master_parser): New.
12316 (output_parser): Be more re-entrant.
12317
25b222fa
MA
123182001-09-21 Marc Autret <autret_m@epita.fr>
12319
12320 * src/reader.c (copy_definition, parse_union_decl): Update and use
12321 `linef' muscle.
12322 (copy_action): Likewise.
12323 Use obstack_1grow ().
12324 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
12325
6bc35ae5
MA
123262001-09-21 Marc Autret <autret_m@epita.fr>
12327
12328 * src/options.c (option_table): Adjust.
12329 * src/lex.c (parse_percent_token): Fix.
12330
c0629aa1
PB
123312001-09-20 Pascal Bart <pascal.bart@epita.fr>
12332
12333 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 12334
82b6d266
PB
123352001-09-20 Pascal Bart <pascal.bart@epita.fr>
12336
12337 * src/lex.c (parse_percent_token): Change type of variable `tx', which
12338 is now an option_table_struct*.
12339 (option_strcmp): New function option_strcmp.
12340 (parse_percent_token): Call option_strcmp.
12341 * src/getargs.c (xalloc.h, options.h): Include it.
12342 (getargs): Call create_long_option_table.
12343 (getargs): Free longopts at the end of the function.
12344 (shortopts): Move in options.c.
12345 * src/options.c (create_long_option_table): New function. Convert
12346 information from option_table to option structure.
12347 * src/reader.c (options.h): Include it.
12348
12349 * src/Makefile.am: Adjust.
12350 * src/options.c (option_table): Create from longopts and percent_table.
12351 * src/getargs.c (longopts): Delete.
12352 * src/lex.c (struct percent_table_struct): Delete.
12353 (percent_table): Delete.
12354 (options.h): Include it.
12355 * src/options.c: Create.
12356 * src/options.h: Create.
12357 Declare enum opt_access_e.
12358 Define struct option_table_struct.
12359
75f5aaea
MA
123602001-09-20 Marc Autret <autret_m@epita.fr>
12361
12362 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
12363 sections of Bison.
12364
f508cb0a
PB
123652001-09-19 Pascal Bart <pascal.bart@epita.fr>
12366
12367 * src/bison.simple: s/%%filename/%%skeleton.
12368 * src/muscle_tab.c (getargs.h): Include it.
12369 (muscle_init): Insert new muscle skeleton.
12370
13105fc1
PB
123712001-09-18 Pascal Bart <pascal.bart@epita.fr>
12372
12373 * src/output.c (output_parser): Delete unused variable actions_dumped.
12374
b0c4483e
PB
123752001-09-07 Pascal Bart <pascal.bart@epita.fr>
12376
12377 * src/output.c (output): Delete call to reader_output_yylsp.
12378 * src/reader.c (reader): Likewise.
ba0fe3c7 12379 * src/reader.h: Delete declaration of reader_output_yylsp.
342b8b6e 12380
11d82f03
MA
123812001-09-02 Marc Autret <autret_m@epita.fr>
12382
12383 * src/reader.c: Include muscle_tab.h.
12384 (parse_union_decl): Update.
12385 (parse_macro_decl): Rename parse_muscle_decl.
12386 Update to use renamed functions and variable.
12387 (read_declarations, copy_action, read_additionnal_code, : Updated
12388 with correct variables and functions names.
12389 (packsymbols, reader): Likewise.
342b8b6e 12390
11d82f03 12391 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 12392
11d82f03
MA
12393 * src/output.c: Include muscle_tab.h
12394 In all functions using macro_insert, change by using muscle_insert ().
12395 (macro_obstack): Rename muscle_obstack.
12396 Echo modifications in the whole file.
12397 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
12398 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
12399 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
12400
12401 * src/muscle_tab.h: Update double inclusion macros.
12402 (macro_entry_s): Rename muscle_entry_s.
12403 Update prototypes.
342b8b6e 12404
11d82f03
MA
12405 * src/muscle_tab.c: Include muscle_tab.h.
12406 Rename macro_tabble to muscle_table.
12407 (mhash1, mhash2, mcmp): Use muscle_entry.
12408 (macro_init): Rename muscle_init. Update.
12409 (macro_insert): Rename muscle_insert. Update.
12410 (macro_find): Rename muscle_find. Update.
12411
12412 * src/main.c: Include muscle_tab.h.
12413 (main): Call muscle_init ().
12414 * src/Makefile.am (bison_SOURCES): Echo modifications.
12415
93a37297
MA
124162001-09-02 Marc Autret <autret_m@epita.fr>
12417
f753cd62 12418 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 12419
f753cd62
MA
12420 * src/muscle_tab.c, src/muscle_tab.h: Add files.
12421
124222001-09-02 Marc Autret <autret_m@epita.fr>
12423
12424 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 12425
682d48cd
PB
124262001-09-01 Pascal Bart <pascal.bart@epita.fr>
12427
342b8b6e 12428 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
12429 filename.
12430
087c8fda
MA
124312001-09-01 Marc Autret <autret_m@epita.fr>
12432
12433 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
12434 to an explicit value to activate the feature. We do it here.
12435
dda680cb
PB
124362001-08-31 Pascal Bart <pascal.bart@epita.fr>
12437
12438 * src/output.c (prepare): Delete the `filename' muscule insertion.
12439 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
12440 (parse_union_decl): Likewise.
12441 * src/macrotab.c (macro_init): Initialize filename by infile.
12442
9e644e64
MA
124432001-08-31 Marc Autret <autret_m@epita.fr>
12444
12445 * src/bison.simple (YYLSP_NEEDED): New definition.
12446 * src/output.c (prepare): Add macro insertion of `locations_flag'
12447
17da6427
PB
124482001-08-31 Pascal Bart <pascal.bart@epita.fr>
12449
12450 * src/output.c (prepare): Delete insertion of previous muscles,
12451 and insert the `prefix' muscles.
12452 * src/macrotab.c (macro_init): Likewise.
12453 (macro_init): Initialization prefix directive by `yy'.
342b8b6e 12454 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
12455 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
12456 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 12457 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
12458 name_prefix.
12459
e8cb70b9
PB
124602001-08-31 Pascal Bart <pascal.bart@epita.fr>
12461
12462 * src/main.c (main): Standardize.
12463 * src/output.c (output_table_data, output_parser): Likewise.
12464 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
12465
63c2d5de
MA
124662001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
12467
342b8b6e 12468 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
12469 %%epilogue.
12470 * src/output.c (output): Rename %%declarations to %%prologue.
12471 * src/bison.simple: Echo modifications.
342b8b6e 12472
d8cb5183
MA
124732001-08-31 Marc Autret <autret_m@epita.fr>
12474
12475 * src/reader.c (readgram): CleanUp.
12476 (output_token_defines): Likewise.
12477 (packsymbols): Likewise.
12478 (reader): Likewise.
12479 * src/output.c (output): CPP-out useless code.
12480
6c686258
PB
124812001-08-31 Pascal Bart <pascal.bart@epita.fr>
12482
342b8b6e 12483 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
12484 output_trailers and output_headers.
12485 * src/output.h: Remove obsolete functions prototypes of output_headers
12486 and output_trailers.
12487
8f451ef7
PB
124882001-08-30 Pascal Bart <pascal.bart@epita.fr>
12489
12490 * src/main.c: Include macrotab.h.
342b8b6e 12491 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
12492 Adjust functions prototypes.
12493 * src/macrotab.c (macro_insert): Constify key and value.
12494 (macro_find): Constify key.
12495 (macro_insert): Include 'xalloc.h'
12496 (macro_insert): Use XMALLOC.
12497 (macro_find): Constify return value.
12498 * src/output.c (output_table_data): Rename table to table_data.
12499 (output_parser): Constify macro_key, macro_value.
12500
997b6fd0 125012001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
12502
12503 * src/reader.c (parse_skel_decl): New.
342b8b6e 12504 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
12505 * src/lex.h (token_t): New token `tok_skel'.
12506 * src/lex.c (percent_table): Add skeleton option entry.
12507 Standardize.
12508
ff48177d
MA
125092001-08-29 Marc Autret <autret_m@epita.fr>
12510
12511 * src/bison.simple: Add %%user_code directive at the end.
12512 * src/reader.c (read_additionnal_code): New.
12513 (reader): Use it.
12514 * src/output.c (output_program): Remove.
12515 (output): Update.
12516
b33160bf
MA
125172001-08-28 Marc Autret <autret_m@epita.fr>
12518
12519 * src/output.c (output_actions): Clean up.
4e5caae2 12520 (output_gram): CPP-out useless code.
b33160bf
MA
12521 * src/reader.c (reader): Clean up, CPP-out useless code.
12522
d1a2daf7
PB
125232001-08-28 Pascal Bart <pascal.bart@epita.fr>
12524
342b8b6e 12525 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 12526 directive.
d1a2daf7
PB
12527 * src/bison.simple: Add `%%definitions'.
12528
2b763dfe
MA
125292001-08-28 Marc Autret <autret_m@epita.fr>
12530
12531 * config/depcomp: New file.
12532
f1a87ef6
PE
125332001-08-27 Paul Eggert <eggert@twinsun.com>
12534
12535 * src/bison.simple (yyparse): Don't take the address of an
12536 item before the start of an array, as that doesn't conform to
12537 the C Standard.
12538
82e236e2
RA
125392001-08-27 Robert Anisko <robert.anisko@epita.fr>
12540
f1a87ef6 12541 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
12542 obstack. It was done too late here.
12543
12544 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
12545 completely wrong.
12546 (reader): Initialize the macro obstack here, since we need it to grow
12547 '%define' directives.
12548
12549 * src/reader.h: Declare the macro obstack as extern.
12550
b0cfa28a
RA
125512001-08-27 Robert Anisko <robert.anisko@epita.fr>
12552
12553 * src/output.c (output_parser): Fix. Store single '%' characters in
12554 the output obstack instead of throwing them away.
12555
6fc74234
AD
125562001-08-27 Akim Demaille <akim@epita.fr>
12557
12558 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
12559
9c76d118
RA
125602001-08-25 Robert Anisko <robert.anisko@epita.fr>
12561
12562 * lib/Makefile.am: Adjust.
12563
a8289c62
RA
125642001-08-25 Robert Anisko <robert.anisko@epita.fr>
12565
12566 * src/bison.simple: Update and add '%%' directives.
12567
b6610515
RA
125682001-08-25 Robert Anisko <robert.anisko@epita.fr>
12569
12570 * src/reader.c (reader): Remove calls to 'output_headers' and
12571 'output_trailers'. Remove some C output.
12572 (readgram): Disable a piece of code that was writing a default
12573 definition for 'YYSTYPE'.
12574 (reader_output_yylsp): Remove.
12575 (packsymbols): Output token defintions to a macro.
12576 (copy_definition): Disable C output.
6fc74234 12577
b6610515
RA
12578 * src/reader.c (parse_macro_decl): New function used to parse macro
12579 declarations.
12580 (copy_string2): Put the body of copy_string into this new function.
12581 Add a parameter to let the caller choose whether he wants to copy the
12582 string delimiters or not.
12583 (copy_string): Be a simple call to copy_string2 with the last argument
12584 bound to true.
12585 (read_declarations): Add case for macro definition.
12586 (copy_identifier): New.
6fc74234 12587 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
12588 rather than lex.
12589
26f609ff
RA
125902001-08-25 Robert Anisko <robert.anisko@epita.fr>
12591
12592 * src/output.c (prepare): Add prefixed names.
12593 (output_parser): Output semantic actions.
12594 (output_parser): Fix bug on '%%line' directives.
6fc74234 12595
26f609ff
RA
12596 * src/output.c (output_headers): Remove. The C code printed by this
12597 function should now be in the skeletons.
12598 (output_trailers): Remove.
12599 (output): Disable call to 'reader_output_yylsp'.
12600 (output_rule_data): Do not output tables to the table obstack.
12601
12602 * src/output.c: Remove some C dedicated output.
12603 Improve the use of macro and output obstacks.
12604 (output_defines): Remove.
6fc74234 12605
26f609ff
RA
12606 * src/output.c (output_token_translations): Associate 'translate'
12607 table with a macro. No output to the table obstack.
12608 (output_gram): Same for 'rhs' and 'prhs'.
12609 (output_stos): Same for 'stos'.
12610 (output_rule_data): Same for 'r1' and 'r2'.
12611 (token_actions): Same for 'defact'.
12612 (goto_actions): Same for 'defgoto'.
12613 (output_base): Same for 'pact' and 'pgoto'.
12614 (output_table): Same for 'table'.
12615 (output_check): Same for 'check'.
6fc74234 12616
26f609ff
RA
12617 * src/output.c (output_table_data): New function.
12618 (output_short_table): Remove.
12619 (output_short_or_char_table): Remove.
6fc74234 12620
26f609ff
RA
12621 * src/output.c (output_parser): Replace most of the skeleton copy code
12622 with something new. Skeletons are now processed character by character
12623 rather than line by line, and Bison looks for '%%' macros. This is the
12624 first step in making Bison's output process (a lot) more flexible.
12625 (output_parser): Use the macro table.
12626
6f43b113
RA
126272001-08-25 Robert Anisko <robert.anisko@epita.fr>
12628
12629 * src/main.c (main): Initialize the macro table.
12630
dd3127cf
RA
126312001-08-25 Robert Anisko <robert.anisko@epita.fr>
12632
12633 * src/lex.c (percent_table): Add tok_define.
12634 * src/lex.h: Add tok_define.
12635
aa321494
RA
126362001-08-25 Robert Anisko <robert.anisko@epita.fr>
12637
12638 * src/macrotab.c: New file.
12639 * src/macrotab.h: New file.
12640 * src/Makefile.am: Update.
12641
68bd3b6b
RA
126422001-08-25 Robert Anisko <robert.anisko@epita.fr>
12643
12644 * lib/hash.c: New file.
12645 * lib/hash.h: New file.
12646 * lib/Makefile.am: Update.
12647
45f8dd1e
AD
126482001-08-15 Akim Demaille <akim@epita.fr>
12649
12650 Version 1.28c.
12651
40a64a7a 126522001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
12653
12654 * src/reader.c (readgram): Indent output macro YYSTYPE.
12655 (packsymbols): Likewise.
12656 (output_token_defines): Likewise.
12657 * src/files.c: Standardize.
12658 (compute_header_macro): New.
12659 (defines_obstack_save): New. Use compute_header_macro.
12660 (output_files): Update. Use defines_obstack_save.
12661
f9a8293a
AD
126622001-08-15 Akim Demaille <akim@epita.fr>
12663
12664 * doc/bison.texinfo (Table of Symbols): Document
12665 YYSTACK_USE_ALLOCA.
12666
150ca7a7
AD
126672001-08-15 Akim Demaille <akim@epita.fr>
12668
12669 * missing: Update from CVS Automake.
12670 * config/config.guess, config/config.sub, config/texinfo.tex:
12671 Update from gnu.org.
12672
69b5cec4
AD
126732001-08-15 Akim Demaille <akim@epita.fr>
12674
12675 * Makefile.maint: Sync with CVS Autoconf.
12676
f2b5126e
PB
126772001-08-14 Pascal Bart <pascal.bart@epita.fr>
12678
69b5cec4 12679 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
12680 `fdl.texi'.
12681 * doc/fdl.texi: Add to package.
12682
4ecbf796
MA
126832001-08-14 Marc Autret <autret_m@epita.fr>
12684
12685 Turn on %{source,header}_extension features.
12686
69b5cec4 12687 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
12688 source_extension.
12689 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 12690 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
12691 between options.
12692
95fb5662
MA
126932001-08-14 Marc Autret <autret_m@epita.fr>
12694
12695 * src/files.c (compute_base_names): Add extensions computing when
12696 `--file-prefix' used.
12697 Standardize function calls.
12698
78d09da9
MA
126992001-08-13 Marc Autret <autret_m@epita.fr>
12700
69b5cec4 12701 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
12702 defining it (defined but null disables alloca).
12703
5a009f2c
MA
127042001-08-13 Marc Autret <autret_m@epita.fr>
12705
12706 * src/bison.simple (_yy_memcpy): CPP reformat.
12707
1e41465a
PB
127082001-08-13 Pascal Bart <pascal.bart@epita.fr>
12709
12710 * tests/atconfig.in (CPPFLAGS): Fix.
12711
c67a198d
PB
127122001-08-10 Pascal Bart <pascal.bart@epita.fr>
12713
79282c6c 12714 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
12715 `gpl.texi'.
12716 * doc/gpl.texi: Add to package.
12717
09a6de7e
MA
127182001-08-10 Marc Autret <autret_m@epita.fr>
12719
12720 * src/print_graph.h: Fix.
12721 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
12722
b77b9ee0
AD
127232001-08-10 Akim Demaille <akim@epita.fr>
12724
12725 * src/system.h: Provide default declarations for stpcpy, strndup,
12726 and strnlen.
12727
3e259915
MA
127282001-08-10 Robert Anisko <anisko_r@epita.fr>
12729
12730 * doc/bison.texinfo (Locations): Update @$ stuff.
12731
ca96bc2d
MA
127322001-08-09 Robert Anisko <anisko_r@epita.fr>
12733
12734 * src/bison.simple (YYLLOC_DEFAULT): Update.
12735 (yyparse): Adjust.
12736
fdc6758b
MA
127372001-08-08 Marc Autret <autret_m@epita.fr>
12738
b77b9ee0 12739 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
12740 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
12741 Reported by Fabrice Bauzac.
957d4dbf 12742
600cad3b
MA
127432001-08-08 Marc Autret <autret_m@epita.fr>
12744
12745 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
12746 * src/vcg.c (output_node): Fix.
12747 * src/vcg.h: Cleanup.
12748 * src/print_graph.c: Add comments.
b77b9ee0 12749 (node_output_size): New global variable. Simplify the formatting of
600cad3b 12750 the VCG graph output.
b77b9ee0 12751 (print_actions): Unused code is now used. It notifies the final state
600cad3b 12752 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 12753 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
12754 blue.
12755 Get the current node name and node_obstack by argument.
12756 (node_obstack): New variable.
12757 (print_state): Manage node_obstack.
12758 (print_core): Use node_obstack given by argument.
12759 A node is not only computed here but in print_actions also.
12760 (print_graph): CPP out useless code instead of commenting it.
12761
976e528f
AD
127622001-08-07 Pascal Bart <pascal.bart@epita.fr>
12763
12764 * tests/atconfig.in (CPPFLAGS): Fix.
12765
20e8e5ca
AD
127662001-08-07 Akim Demaille <akim@epita.fr>
12767
12768 * src/print_graph.c (quote): New.
12769 (print_core): Use it.
12770
957d4dbf 127712001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 12772
3e3da797
AD
12773 * src/vcg.c (complain.h): Include it.
12774 Unepitaize `return' invocations.
c4b66126 12775 [NDEBUG] (main): Remove.
79282c6c 12776 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
12777 * src/files.c (open_files): Initialize graph_obstack.
12778 * src/print_graph.c (print_actions): CPP out useless code.
12779 (print_core): Don't output the last `\n' in labels.
12780 Use `quote'.
12781 * src/files.c (output_files): Output the VCG file.
12782 * src/main.c (main): Invoke print_graph ();
3e3da797 12783
957d4dbf 127842001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
12785
12786 Automaton VCG graph output.
12787 Using option ``-g'' or long option ``--graph'', you can generate
12788 a gram_filename.vcg file containing a VCG description of the LALR (1)
12789 automaton of your grammar.
12790
12791 * src/main.c: Call to print_graph() function.
12792 * src/getargs.h: Update.
12793 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
12794 (graph_flag): New flag.
12795 (longopts): Update.
12796 (getargs): Add case `g'.
12797 * src/files.c (graph_obstack): New obstack struct.
12798 (open_files): Initialize new obstack.
12799 (output_files): Saves graph_obstack if required.
12800 * src/files.h (graph_obstack): New extern declaration.
12801 * src/Makefile.am: Add new source files.
12802
927c1557 128032001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
12804
12805 * src/print_graph.c, src/print_graph.h (graph): New.
12806 * src/vcg.h: New file.
12807 * src/vcg.c: New file, VCG graph handling.
12808
7333d403
AD
128092001-08-06 Marc Autret <autret_m@epita.fr>
12810
12811 Add of %source_extension and %header_extension which specify
12812 the source or/and the header output file extension.
12813
12814 * src/files.c (compute_base_names): Remove initialisation of
12815 src_extension and header_extension.
12816 (compute_exts_from_gf): Update.
12817 (compute_exts_from_src): Update.
12818 (output_files): Update.
12819 * src/reader.c (parse_header_extension_decl): New.
12820 (parse_source_extension_decl): New.
12821 (read_declarations): New case statements for the new tokens.
12822 * src/lex.c (percent_table): Add entries for %source_extension
12823 and %header_extension.
12824 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
12825
84163231
AD
128262001-08-06 Marc Autret <autret_m@epita.fr>
12827
12828 * configure.in: Bump to 1.28c.
12829 * doc/bison.texinfo: Texinfo thingies.
12830
8303fc42
AD
128312001-08-04 Pascal Bart <pascal.bart@epita.fr>
12832
12833 * tests/atconfig.in (CPPFLAGS): Add.
12834 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
12835
70a84437
AD
128362001-08-03 Akim Demaille <akim@epita.fr>
12837
12838 Version 1.28b.
12839
2ce10144
AD
128402001-08-03 Akim Demaille <akim@epita.fr>
12841
12842 * tests/Makefile.am (check-local): Ship testsuite.
12843 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
12844 Include `string.h'.
12845
1e3e4bc1
AD
128462001-08-03 Akim Demaille <akim@epita.fr>
12847
12848 * configure.in: Try using -Wformat when compiling.
12849
42b45b7f
AD
128502001-08-03 Akim Demaille <akim@epita.fr>
12851
12852 * configure.in: Bump to 1.28b.
12853
8f13fe33
AD
128542001-08-03 Akim Demaille <akim@epita.fr>
12855
12856 * src/complain.c: Adjust strerror_r portability issues.
12857
b37ba92c
AD
128582001-08-03 Akim Demaille <akim@epita.fr>
12859
12860 Version 1.28a.
12861
b0ce6046
AD
128622001-08-03 Akim Demaille <akim@epita.fr>
12863
12864 * src/getargs.c, src/getarg.h (skeleton)): Constify.
12865 * src/lex.c (literalchar): Avoid name clashes on `buf'.
12866 * src/getargs.c: Include complain.h.
12867 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
12868 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
12869
d01c415b
AD
128702001-08-03 Akim Demaille <akim@epita.fr>
12871
12872 * src/reader.c (readgram): Display hidden chars in error messages.
12873
459dd1a6
AD
128742001-08-03 Akim Demaille <akim@epita.fr>
12875
12876 Update to gettext 0.10.39.
12877
53b74c0c
AD
128782001-08-03 Akim Demaille <akim@epita.fr>
12879
12880 * lib/strspn.c: New.
12881
234a3be3
AD
128822001-08-01 Marc Autret <autret_m@epita.fr>
12883
12884 * doc/bison.texinfo: Update.
12885 * doc/bison.1 (mandoc): Update.
12886 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
12887 * src/files.c: Support output files extensions computing.
12888 (src_extension): New static variable.
12889 (header_extension): New static variable.
12890 (tr): New function.
12891 (get_extension_index): New function, gets the index of an extension
12892 filename in a string.
12893 (compute_exts_from_gf): New function, computes extensions from the
12894 grammar file extension.
12895 (compute_exts_from_src): New functions, computes extensions from the
12896 C source file extension, file given by ``-o'' option.
12897 (compute_base_names): Update.
12898 (output_files): Update.
12899
847bf1f5
AD
129002001-08-01 Robert Anisko <anisko_r@epita.fr>
12901
d995fee7 12902 * doc/bison.texi: Document @$.
847bf1f5
AD
12903 (Locations): New section.
12904
d074a105
AD
129052001-07-18 Akim Demaille <akim@epita.fr>
12906
12907 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
12908 * config/prev-version.txt, config/move-if-change: New.
12909 * Makefile.am: Adjust.
12910
3419715d
AD
129112001-07-08 Pascal Bart <pascal.bart@epita.fr>
12912
12913 * src/bison.simple (yyparse): Suppress warning `comparaison
12914 between signed and unsigned'.
12915
62ab6972
AD
129162001-07-05 Pascal Bart <pascal.bart@epita.fr>
12917
12918 * src/getargs.h (raw_flag): Remove.
12919 * src/getargs.c: Die on `-r'/`--raw'.
12920 * src/lex.c (parse_percent_token): Die on `%raw'.
12921 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
12922 * tests/calc.at: Suppress test with option `--raw'.
12923
1e24cc5b
AD
129242001-07-14 Akim Demaille <akim@epita.fr>
12925
12926 * config/: New.
12927 * configure.in: Require Autoconf 2.50.
12928 Update to gettext 0.10.38.
12929
32dfccf8
AD
129302001-03-16 Akim Demaille <akim@epita.fr>
12931
12932 * doc/bison.texinfo: ANSIfy the examples.
12933
cd5bd6ac
AD
129342001-03-16 Akim Demaille <akim@epita.fr>
12935
12936 * getargs.c (skeleton): New variable.
12937 (longopts): --skeleton is a new option.
12938 (shortopts, getargs): -S is a new option.
12939 * getargs.h: Declare skeleton.
12940 * output.c (output_parser): Use it.
12941
5141b016
AD
129422001-03-16 Akim Demaille <akim@epita.fr>
12943
12944 * m4/strerror_r.m4: New.
12945 * m4/error.m4: Run AC_FUNC_STRERROR_R.
12946 * lib/error.h, lib/error.c: Update.
12947
447992b9
AD
129482001-03-16 Akim Demaille <akim@epita.fr>
12949
12950 * src/getargs.c (longopts): Clean up.
12951
274d42ce
AD
129522001-02-21 Akim Demaille <akim@epita.fr>
12953
12954 * src/reader.c (gensym): `gensym_count' is your own.
12955 Use a static buf to create the symbol name, as token_buffer is no
12956 longer a buffer.
12957
22c821f3
AD
129582001-02-08 Akim Demaille <akim@epita.fr>
12959
12960 * src/conflicts.c (conflict_report): Be sure not to append to res
12961 between two calls, which could happen if both first sprintf were
12962 skipped, but not the first cp += strlen.
12963
18569462
AD
129642001-02-08 Akim Demaille <akim@epita.fr>
12965
12966 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
12967 New, from fileutils 4.0.37.
12968 * configure.in: Require Autoconf 2.49c. I took some time before
12969 making this decision. This is the only way out for portability
12970 issues in Bison, it would mean way too much duplicate effort to
12971 import in Bison features implemented in 2.49c since 2.13.
12972 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
12973
0d8f3c8a
AD
129742001-02-02 Akim Demaille <akim@epita.fr>
12975
12976 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 12977 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 12978
f17bcd1f
AD
129792001-01-19 Akim Demaille <akim@epita.fr>
12980
12981 Get rid of the ad hoc handling of token_buffer in the scanner: use
12982 the obstacks.
12983
12984 * src/lex.c (token_obstack): New.
12985 (init_lex): Initialize it. No longer call...
12986 (grow_token_buffer): this. Remove it.
12987 Adjust all the places which used it to use the obstack.
12988
511e79b3
AD
129892001-01-19 Akim Demaille <akim@epita.fr>
12990
12991 * src/lex.h: Rename all the tokens:
12992 s/\bENDFILE\b/tok_eof/g;
12993 s/\bIDENTIFIER\b/tok_identifier/g;
12994 etc.
12995 Let them be enums, not #define, to ease debugging.
12996 Adjust all the code.
12997
0d6508ef
AD
129982001-01-18 Akim Demaille <akim@epita.fr>
12999
13000 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
13001 * src/lex.c (maxtoken, grow_token_buffer): Static.
13002
6deb4447
AD
130032001-01-18 Akim Demaille <akim@epita.fr>
13004
13005 Since we now use obstacks, more % directives can be enabled.
13006
13007 * src/lex.c (percent_table): Also accept `%yacc',
13008 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
13009 `%debug'.
13010 Handle the actions for `%semantic_parser' and `%pure_parser' here,
13011 instead of returning a token.
13012 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
13013 * src/reader.c (read_declarations): Adjust.
13014 * src/files.c (open_files): Don't call `compute_base_names', don't
13015 compute `attrsfile' since they depend upon data which might be
13016 *in* the input file now.
13017 (output_files): Do it here.
13018 * src/output.c (output_headers): Document the fact that this patch
13019 introduces a guaranteed SEGV for semantic parsers.
13020 * doc/bison.texinfo: Document them.
13021 * tests/suite.at: Exercise these %options.
13022
ff4423cc
AD
130232000-12-20 Akim Demaille <akim@epita.fr>
13024
13025 Also handle the output file (--verbose) with obstacks.
13026
13027 * files.c (foutput): Remove.
13028 (output_obstack): New.
13029 Adjust all dependencies.
13030 * src/conflicts.c: Return a string.
13031 * src/system.h (obstack_grow_string): Rename as...
13032 (obstack_sgrow): this. Be ready to work with non literals.
13033 (obstack_fgrow4): New.
13034
956dba3a
AD
130352000-12-20 Akim Demaille <akim@epita.fr>
13036
13037 * src/files.c (open_files): Fix the computation of short_base_name
13038 in the case of `-o foo.tab.c'.
13039
337bab46
AD
130402000-12-20 Akim Demaille <akim@epita.fr>
13041
13042 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
13043 (copy_dollar): Now that everything uses obstacks, get rid of the
13044 FILE * parameters.
13045
5d3214b8
AD
130462000-12-20 Akim Demaille <akim@epita.fr>
13047
13048 * src/files.c (open_files): Actually the `.output' file is based
13049 on the short_base_name, not base_name.
13050 * tests/suite.at (Checking output file names): Adjust.
13051
29092a57
AD
130522000-12-20 Akim Demaille <akim@epita.fr>
13053
13054 * src/bison.s1: Remove, we now use directly...
13055 * src/bison.simple: this.
13056 * src/Makefile.am: Use pkgdata instead of data.
13057
ea5607fd
AD
130582000-12-20 Akim Demaille <akim@epita.fr>
13059
13060 * src/files.c (guard_obstack): New.
13061 (open_files): Initialize it.
13062 (output_files): Dump it...
13063 * src/files.h: Export it.
13064 * src/reader.c (copy_guard): Use it.
13065
27110317
AD
130662000-12-19 Akim Demaille <akim@epita.fr>
13067
13068 * src/files.c (outfile, defsfile, actfile): Removed as global
13069 vars.
13070 (open_files): Don't compute them.
13071 (output_files): Adjust.
13072 (base_name, short_base_name): Be global.
13073 Adjust dependencies.
13074
19c50364
AD
130752000-12-19 Akim Demaille <akim@epita.fr>
13076
13077 * src/files.c (strsuffix): New.
13078 (stringappend): Be just like strcat but allocate.
13079 (base_names): Eve out from open_files.
13080 Try to simplify the rather hairy computation of base_name and
13081 short_base_name.
13082 (open_files): Use it.
13083 * tests/suite.at (Checking output file names): New test.
13084
573c1d9f
AD
130852000-12-19 Akim Demaille <akim@epita.fr>
13086
13087 * src/system.h (obstack_grow_literal_string): Rename as...
13088 (obstack_grow_string): this.
13089 * src/output.c (output_parser): Recognize `%% actions' instead of
13090 `$'.
13091 * src/bison.s1: s/$/%% actions/.
13092 * src/bison.hairy: Likewise.
13093
ef7ddedd
AD
130942000-12-19 Akim Demaille <akim@epita.fr>
13095
13096 * src/output.c (output_parser): Compute the `#line' lines when
13097 there are.
13098 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
13099 Suggested by Hans Aberg.
13100
ff61dabd
AD
131012000-12-19 Akim Demaille <akim@epita.fr>
13102
13103 Let the handling of the skeleton files be local to the procedures
13104 that use it.
13105
13106 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
13107 longer static.
13108 (fparser, open_extra_files): Remove.
13109 (open_files, output_files): Don't take care of fparser.
13110 * src/files.h: Adjust.
13111 * src/output.c (output_parser): Open and close the file to the
13112 skeleton.
13113 * src/reader.c (read_declarations): When %semantic_parser, open
13114 fguard.
13115
55b96341
AD
131162000-12-19 Akim Demaille <akim@epita.fr>
13117
13118 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
13119 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
13120
358c15b7
AD
131212000-12-19 Akim Demaille <akim@epita.fr>
13122
13123 * src/files.c (open_files): Yipee! We no longer need all the code
13124 looking for `/tmp' since we have no tmp file.
13125
7de3329e
AD
131262000-12-19 Akim Demaille <akim@epita.fr>
13127
13128 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
13129 New macros.
13130 * src/files.c (open_files): Less dependency on MSDOS etc.
13131
3abcd459
AD
131322000-12-14 Akim Demaille <akim@epita.fr>
13133
13134 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
13135 Provide a default definition.
13136 Use it when executing the default @ action.
13137 * src/reader.c (reader_output_yylsp): No longer include
13138 `timestamp' and `text' in the default YYLTYPE.
13139
2a91a95e
AD
131402000-12-12 Akim Demaille <akim@epita.fr>
13141
13142 * src/reader.c (copy_definition, parse_union_decl, copy_action)
13143 (copy_guard): Quote the file names.
13144 Reported by Laurent Mascherpa.
13145
14d3eb9b
AD
131462000-12-12 Akim Demaille <akim@epita.fr>
13147
13148 * src/output.c (output_headers, output_program, output): Be sure
13149 to escape special characters when outputting filenames.
13150 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
13151 (output_headers): Don't depend on them, Use ACTSTR.
13152
d7045ec6
AD
131532000-11-17 Akim Demaille <akim@epita.fr>
13154
13155 * lib/obstack.h: Formatting changes.
13156 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
13157 prevents type checking.
13158 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
13159 cast the value to (void *): assigning a `foo *' to a `void *'
13160 variable is valid.
13161 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
13162 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
13163 append characters.
13164
6fd54b73
AD
131652000-11-17 Akim Demaille <akim@epita.fr>
13166
13167 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
13168 as...
13169 (suite.m4, regression.m4, calc.m4): these.
13170 * tests/atgeneral.m4: Update from CVS Autoconf.
13171
4c50eae6
AD
131722000-11-17 Akim Demaille <akim@epita.fr>
13173
13174 * tests/regression.m4 (%union and --defines): New test,
13175 demonstrating a current bug in the obstack implementation.
13176
a35f64ea
AD
131772000-11-17 Akim Demaille <akim@epita.fr>
13178
13179 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
13180 macros.
13181 Use them to declare the variables which are global or local to
13182 `yyparse'.
13183
7de23534
AD
131842000-11-17 Akim Demaille <akim@epita.fr>
13185
13186 * acconfig.h: Remove, no longer used.
13187
aa7815f5
AD
131882000-11-07 Akim Demaille <akim@epita.fr>
13189
13190 * src: s/Copyright (C)/Copyright/g.
13191
5af1f549
AD
131922000-11-07 Akim Demaille <akim@epita.fr>
13193
13194 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
13195 defining.
13196 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
13197
553e2b22
AD
131982000-11-07 Akim Demaille <akim@epita.fr>
13199
13200 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
13201 Merge in a single CPP if/else.
13202
8a4f41d6
AD
132032000-11-07 Akim Demaille <akim@epita.fr>
13204
13205 * src/output.c (output): Remove useless variables.
13206 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
13207 argument `data' for consistency with the prototypes.
13208 Qualify it `const'.
13209 (obstack_copy, obstack_copy0): Rename the second argument as
13210 `address' for consistency. Qualify it `const'.
13211 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
13212 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
13213 `const' their input argument (`data' or `address').
13214 Adjust the corresponding macros to include `const' in casts.
13215
095a3fb5
AD
132162000-11-03 Akim Demaille <akim@epita.fr>
13217
13218 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
13219 s/PFILE1/BISON_HAIRY/.
13220 Adjust dependencies.
13221
d1cdce7c
AD
132222000-11-03 Akim Demaille <akim@epita.fr>
13223
090c5ebf 13224 For some reason, this was not applied.
d1cdce7c
AD
13225
13226 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
13227 `unlink': it's no longer used.
13228
9311529b
AD
132292000-11-03 Akim Demaille <akim@epita.fr>
13230
13231 * src/files.c (skeleton_find): New function, eved out of...
13232 (open_files, open_extra_files): here.
13233
d8880f69
AD
132342000-11-03 Akim Demaille <akim@epita.fr>
13235
13236 Don't use `atexit'.
13237
13238 * src/files.c (obstack_save): New function.
13239 (done): Rename as...
13240 (output_files): this.
13241 Use `obstack_save'.
13242 * src/main.c (main): Don't use `atexit' to register `done', since
13243 it no longer has to remove tmp files, just call `output_files'
13244 when there are no errors.
13245
0dbb648e
AD
132462000-11-02 Akim Demaille <akim@epita.fr>
13247
13248 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
13249 `unlink': it's no longer used.
13250 * src/files.h: Formatting changes.
13251
896fe5c1
AD
132522000-11-02 Akim Demaille <akim@epita.fr>
13253
13254 Remove the last uses of mktemp and unlink/delete.
13255
13256 * src/files.c (fdefines, ftable): Removed.
13257 (defines_ostack, table_obstack): New.
13258 Adjust dependencies of the former into uses of the latter.
13259 * src/output.c (output_short_or_char_table, output_short_table):
13260 Convert to using obstacks.
13261 * src/reader.c (copy_comment2): Accept one FILE * and two
13262 obstacks.
13263 (output_token_defines, reader_output_yylsp): Use obstacks.
13264 * src/system.h (obstack_fgrow3): New.
1f65350a 13265 * po/POTFILES.in: Adjust.
896fe5c1 13266
dd60faec
AD
132672000-11-01 Akim Demaille <akim@epita.fr>
13268
13269 Change each use of `fattrs' into a use of `attrs_obstack'.
13270
13271 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
13272 * src/files.c (fattrs): Remove.
13273 (attrs_obstack): New.
13274 Adjust all dependencies.
13275 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
13276
8c7ebe49
AD
132772000-11-01 Akim Demaille <akim@epita.fr>
13278
13279 Introduce obstacks.
13280 Change each use of `faction' into a use of `action_obstack'.
13281
13282 * lib/obstack.h, lib/obstack.c: New files.
13283 * src/files.c (faction): Remove.
13284 (action_obstack): New.
13285 Adjust all dependencies.
13286
77aee789
AD
132872000-10-20 Akim Demaille <akim@epita.fr>
13288
13289 * lib/quote.h (PARAMS): New macro. Use it.
13290
43591cec
AD
132912000-10-16 Akim Demaille <akim@epita.fr>
13292
13293 * src/output.c (output_short_or_char_table): New function.
13294 (output_short_table, output_token_translations): Use it.
13295 (goto_actions): Use output_short_table.
13296
1e9798d5
AD
132972000-10-16 Akim Demaille <akim@epita.fr>
13298
13299 * src/symtab.c (bucket_new): New function.
13300 (getsym): Use it.
13301
13302 * src/output.c (output_short_table): New argument to display the
13303 comment associated with the table.
13304 Adjust dependencies.
13305 (output_gram): Use it.
13306 (output_rule_data): Nicer output layout for YYTNAME.
13307
f282676b
AD
133082000-10-16 Akim Demaille <akim@epita.fr>
13309
13310 * src/lex.c (read_typename): New function.
13311 (lex): Use it.
13312 * src/reader.c (copy_dollar): Likewise.
13313
550a72a3
AD
133142000-10-16 Akim Demaille <akim@epita.fr>
13315
13316 * src/reader.c (copy_comment2): Expect the input stream to be on
13317 the `/' which is suspected to open a comment, instead of being
13318 called after `//' or `/*' was read.
13319 (copy_comment, copy_definition, parse_union_decl, copy_action)
13320 (copy_guard): Adjust.
13321
131e2fef
AD
133222000-10-16 Akim Demaille <akim@epita.fr>
13323
13324 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
13325 `read_signed_integer'.
13326
79282c5a
AD
133272000-10-16 Akim Demaille <akim@epita.fr>
13328
13329 * src/reader.c (copy_dollar): New function.
13330 (copy_guard, copy_action): Use it.
13331
ff4a34be
AD
133322000-10-16 Akim Demaille <akim@epita.fr>
13333
13334 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
13335 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
13336 New files, from Fileutils 4.0.27.
13337 * src/main.c (printable_version): Remove.
13338 * src/lex.c, src/reader.c: Use `quote'.
13339
133402000-10-04 Akim Demaille <akim@epita.fr>
13341
13342 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
13343
14ded682
AD
133442000-10-04 Akim Demaille <akim@epita.fr>
13345
13346 * doc/bison.texinfo: Various typos spotted by Neil Booth.
13347
8e03724b
AD
133482000-10-04 Akim Demaille <akim@epita.fr>
13349
13350 When a literal string is used to define two different tokens,
13351 `bison -v' segfaults.
13352 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
13353
13354 * tests/regression.m4: New file.
13355 Include the core of the sample provided by Piotr Gackiewicz.
13356 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
13357 properly.
13358
a9e64249
AD
133592000-10-04 Akim Demaille <akim@epita.fr>
13360
13361 * src/reader.c (parse_expect_decl): Keep `count' within the size
13362 of `buffer'.
13363 From Neil Booth.
13364
da9abf43
AD
133652000-10-02 Paul Eggert <eggert@twinsun.com>
13366
13367 * bison.s1 (yyparse): Assign the default value
13368 unconditionally, to avoid a GCC warning and make the parser a
13369 tad smaller.
13370
c33638bb
AD
133712000-10-02 Akim Demaille <akim@epita.fr>
13372
13373 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
13374 options.
13375
444c570a
AD
133762000-10-02 Akim Demaille <akim@epita.fr>
13377
13378 * src/derives.c, src/print.c, src/reduce.c: To ease the
13379 translation, move some `\n' out of the translated strings.
13380
89cab50d
AD
133812000-10-02 Akim Demaille <akim@epita.fr>
13382
13383 The location tracking mechanism is precious for parse error
13384 messages. Nevertheless, it is enabled only when `@n' is used in
13385 the grammar, which is a different issue (you can use it in error
13386 message, but not in the grammar per se). Therefore, there should
13387 be another means to enable it.
13388
13389 * src/getargs.c (getargs): Support `--locations'.
13390 (usage): Report it.
13391 * src/getargs.h (locationsflag): Export it.
13392 * src/lex.c (percent_table): Support `%locations'.
13393 * src/reader.c (yylsp_needed): Remove this variable, now replaced
13394 with `locationsflag'.
13395 * doc/bison.texinfo: Document `--locations' and `%locations'.
13396 Sort the options.
13397 * tests/calc.m4: Test it.
13398
13399 For regularity of the names, replace each
13400 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
13401 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
13402 In addition replace each `flag' with `_flag'.
13403
d6c2cba0
AD
134042000-10-02 Akim Demaille <akim@epita.fr>
13405
13406 Also test parse error messages, including with YYERROR_VERBOSE.
13407
13408 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
13409 associative).
13410 Use it to check the computations.
13411 Use it to check `nonassoc' is honored.
13412 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
13413 `--yyerror-verbose'.
13414 (_AT_CHECK_CALC): Adjust to this option.
13415 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
13416
5a35a6cb
AD
134172000-10-02 Akim Demaille <akim@epita.fr>
13418
13419 Test also `--verbose', `--defines' and `--name-prefix'. Testing
13420 the latter demonstrates a flaw in the handling of non debugging
13421 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
13422 was used in order to simplify:
13423
13424 #if YYDEBUG
13425 if (yydebug)
13426 {
13427 ...
13428 }
13429 #endif
13430
13431 into
13432
13433 if (yydebug)
13434 {
13435 ...
13436 }
13437
13438 unfortunately this leads to a CPP conflict when
13439 `--name-prefix=foo' is used since it produces `#define yydebug
13440 foodebug'.
13441
13442 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
13443 (YYDPRINTF): New macro.
13444 Spread its use.
13445 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
13446 the bison options.
13447 Also test `--verbose', `--defines' and `--name-prefix'.
13448
71da9eea
AD
134492000-10-02 Akim Demaille <akim@epita.fr>
13450
13451 Improve the readability of the produced parsers.
13452
13453 * src/bison.s1: Formatting changes.
13454 Improve the comment related to the `$' mark.
13455 (yydefault): Don't fall through to `yyresume': `goto' there.
13456 * src/output.c (output_parser): When the `$' is met, skip the end
13457 of its line.
13458 New variable, `number_of_dollar_signs', to check there's exactly
13459 one `$' in the parser skeleton.
13460
95e36146
AD
134612000-10-02 Akim Demaille <akim@epita.fr>
13462
13463 * lib/xstrdup.c: New file, from the fileutils.
13464 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
13465 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
13466 instead of strlen + xmalloc + strcpy.
13467 * src/symtab.c (copys): Remove, use xstrdup instead.
13468
d7020c20
AD
134692000-10-02 Akim Demaille <akim@epita.fr>
13470
13471 * src/gram.h (associativity): New enum type which replaces the
13472 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
13473 `right_assoc', `left_assoc' and `non_assoc'.
13474 Adjust all dependencies.
13475 * src/reader.c: Formatting changes.
13476 (LTYPESTR): Don't define it, use it as a literal in
13477 `reader_output_yylsp'.
13478 * src/symtab.h (symbol_class): New enum type which replaces the
13479 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
13480 `sunknown', `stoken and `snterm'.
13481
1916f98e
AD
134822000-10-02 Akim Demaille <akim@epita.fr>
13483
13484 * src/getargs.c (fixed_outfiles): Rename as...
13485 (yaccflag): for consistency and accuracy.
13486 Adjust dependencies.
13487
d7913476
AD
134882000-10-02 Akim Demaille <akim@epita.fr>
13489
13490 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
13491 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
13492 difficult and introduced a lot of core dump. It turns out that
13493 Bison used an implementation of `xmalloc' based on `calloc', and
13494 at various places it does depend upon the initialization to 0. I
13495 have not tried to isolate the pertinent places, and all the former
13496 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
13497 someone should address this issue.
13498
13499 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
13500 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
13501 files.
13502 Adjust dependencies.
13503 * src/warshall.h: New file.
13504 Propagate.
13505
340ef489
AD
135062000-10-02 Akim Demaille <akim@epita.fr>
13507
13508 Various anti-`extern in *.c' changes.
13509
13510 * src/system.h: Include `assert.h'.
13511
b2ca4022
AD
135122000-10-02 Akim Demaille <akim@epita.fr>
13513
13514 * src/state.h (nstates, final_state, first_state, first_shift)
13515 (first_reduction): Move their exportation from here...
13516 * src/LR0.h: to here.
13517 Adjust dependencies.
13518 * src/getargs.c (statisticsflag): New variable.
13519 Add support for `--statistics'.
13520 Adjust dependencies.
13521
13522 Remove a lot of now useless `extern' statements in most files.
13523
403b315b
AD
135242000-10-02 Akim Demaille <akim@epita.fr>
13525
13526 * src/LR0.h: New file.
13527 Propagate its use.
13528
07a58c13
AD
135292000-10-02 Akim Demaille <akim@epita.fr>
13530
13531 * src/print.h: New file.
13532 Propagate its use.
13533 * src/print.c: Formatting and ordering changes.
13534 (verbose, terse): Replace with...
13535 (print_results): this new function.
13536 Adjust dependencies.
13537
0619caf0
AD
135382000-10-02 Akim Demaille <akim@epita.fr>
13539
13540 * src/conflicts.c (conflict_report): New function.
13541 (conflict_log, verbose_conflict_log): Replace with...
13542 (print_conflicts): this function.
13543 Adjust dependencies.
13544 * src/conflicts.h: New file.
13545 Propagate its inclusion.
13546
3519ec76
AD
135472000-10-02 Akim Demaille <akim@epita.fr>
13548
13549 * src/nullable.h: New file.
13550 Propagate its inclusion.
13551 * src/nullable.c: Formatting changes.
13552
015acc48
AD
135532000-10-02 Akim Demaille <akim@epita.fr>
13554
13555 * src/reduce.h: New file.
13556 Propagate its inclusion.
13557 * src/reduce.c: Topological sort and other formatting changes.
13558 (bool, TRUE, FALSE): Move their definition to...
13559 * src/system.h: here.
13560
8963a27b
AD
135612000-10-02 Akim Demaille <akim@epita.fr>
13562
13563 * src/files.c: Formatting changes.
13564 (tryopen, tryclose, openfiles): Rename as...
13565 (xfopen, xfclose, open_files): this.
13566 (stringappend): static.
13567 * src/files.h: Complete the list of exported symbols.
13568 Propagate its use.
13569
a70083a3
AD
135702000-10-02 Akim Demaille <akim@epita.fr>
13571
13572 * src/reader.h: New file.
13573 Propagate its use instead of tedious list of `extern' and
13574 prototypes.
13575 * src/reader.c: Formatting changes, topological sort,
13576 s/register//.
13577
abadc117
AD
135782000-10-02 Akim Demaille <akim@epita.fr>
13579
13580 * src/lex.h: Prototype `lex.c' exported functions.
13581 * src/reader.c: Adjust.
13582 * src/lex.c: Formatting changes.
13583 (safegetc): Rename as...
13584 (xgetc): this.
13585
720d742f
AD
135862000-10-02 Akim Demaille <akim@epita.fr>
13587
13588 * src/lalr.h: New file.
13589 Propagate its inclusion instead of prototypes and `extern'.
13590 * src/lalr.c: Formatting changes, topological sorting etc.
13591
f2acea59
AD
135922000-10-02 Akim Demaille <akim@epita.fr>
13593
13594 * src/output.c (token_actions): Introduce a temporary array,
13595 YYDEFACT, that makes it possible for this function to use
13596 output_short_table.
13597
d019d655
AD
135982000-10-02 Akim Demaille <akim@epita.fr>
13599
13600 `user_toknums' is output as a `short[]' in `output.c', while it is
13601 defined as a `int[]' in `reader.c'. For consistency with the
13602 other output tables, `user_toknums' is now defined as a table of
13603 shorts.
13604
13605 * src/reader.c (user_toknums): Be a short table instead of an int
13606 table.
13607 Adjust dependencies.
13608
13609 Factor the short table outputs.
13610
13611 * src/output.c (output_short_table): New function.
13612 * src/output.c (output_gram, output_stos, output_rule_data)
13613 (output_base, output_table, output_check): Use it.
13614
6c89f1c1
AD
136152000-10-02 Akim Demaille <akim@epita.fr>
13616
13617 * src/output.c (output): Topological sort of the functions, in
13618 order to get rid of the `static' prototypes.
13619 No longer use `register'.
13620 * src/output.h: New file.
13621 Propagate its inclusion in files explicitly prototyping functions
13622 from output.c.
13623
d9efd181
AD
136242000-09-21 Akim Demaille <akim@epita.fr>
13625
13626 * src/atgeneral.m4: Update from Autoconf.
13627
c29240e7 136282000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
13629
13630 * src/closure.h: New file.
13631 * src/closure.c: Formatting changes, topological sort over the
13632 functions, use of closure.h.
13633 (initialize_closure, finalize_closure): Rename as...
13634 (new_closure, free_closure): these. Adjust dependencies.
13635 * src/LR0.c: Formatting changes, topological sort, use of
13636 cloture.h.
13637 (initialize_states): Rename as...
13638 (new_states): this.
13639 * src/Makefile.am (noinst_HEADERS): Adjust.
13640
499daa50
AD
136412000-09-20 Akim Demaille <akim@epita.fr>
13642
13643 * src/acconfig.h: Don't protect config.h against multiple
13644 inclusion.
13645 Don't define PARAMS.
13646 * src/system.h: Define PARAMS.
13647 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
13648 purpose of config.h. system.h must not try to fix wrong
13649 definitions in config.h.
13650
cc84fd5d
AD
136512000-09-20 Akim Demaille <akim@epita.fr>
13652
13653 * src/derives.h: New file.
13654 * src/main.c, src/derives.h: Use it.
13655 Formatting changes.
13656 * src/Makefile.am (noinst_HEADERS): Adjust.
13657
db5b3a89
AD
136582000-09-20 Akim Demaille <akim@epita.fr>
13659
13660 * tests/atgeneral.m4: Update from Autoconf.
13661 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
13662 (AT_CHECK_CALC): New macros.
13663 Use these macros to test bison with options `', `--raw',
13664 `--debug', `--yacc', `--yacc --debug'.
13665
ceed8467
AD
136662000-09-19 Akim Demaille <akim@epita.fr>
13667
13668 * src/output.c: Formatting changes.
13669 * src/machine.h: Remove, leaving its contents in...
13670 * src/system.h: here.
13671 Include stdio.h.
13672 Adjust all dependencies on stdio.h and machine.h.
13673 * src/getargs.h: New file.
13674 Let all `extern' declarations about getargs.c be replaced with
13675 inclusion of `getargs.h'.
13676 * src/Makefile.am (noinst_HEADERS): Adjust.
13677
13678 * tests/calc.m4 (yyin): Be initialized in main, not on the global
13679 scope.
13680 (yyerror): Returns void, not int.
13681 * doc/bison.texinfo: Formatting changes.
13682
05a1d24b
AD
136832000-09-19 Akim Demaille <akim@epita.fr>
13684
13685 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
13686 portable.
13687
cbd25751
AD
136882000-09-18 Akim Demaille <akim@epita.fr>
13689
13690 * configure.in: Append WARNING_CFLAGS to CFLAGS.
13691 * src/Makefile.am (INCLUDES): Don't.
13692 Be ready to fetch headers in lib/.
13693
13863333
AD
136942000-09-18 Akim Demaille <akim@epita.fr>
13695
13696 * doc/bison.texinfo: Update the copyright.
13697 ANSIfy and GNUify the examples.
13698 Remove the old menu.
13699
0d533154
AD
137002000-09-18 Akim Demaille <akim@epita.fr>
13701
13702 First set of tests: use the `calc' example from the documentation.
13703
13704 * src/bison.s1 (yyparse): Condition the code using `yytname' which
13705 is defined only when YYDEBUG is.
13706 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
13707 * src/files.c (tryopen, tryclose): Formatting changes.
13708 Move to the top and be static.
13709 * src/reader.c (read_signed_integer): Likewise.
13710 * tests/calc.m4: New file.
13711 * Makefile.am, suite.m4: Adjust.
13712 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
13713
e79137ac
AD
137142000-09-18 Akim Demaille <akim@epita.fr>
13715
13716 Add support for an Autotest test suite for Bison.
13717
13718 * m4/m4.m4, m4/atconfig.m4: New files.
13719 * m4/Makefile.am (EXTRA_DIST): Adjust.
13720 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
13721 files.
13722 * src/getargs.c: Display a more standard --version message.
13723 * src/reader.c (reader): Formatting changes.
13724 No longer depend upon VERSION_STRING.
13725 * configure.in: No longer use `dnl'.
13726 Set up the test suite and the new directory `tests/.
13727 (VERSION_STRING): Remove.
13728
27821bff
AD
137292000-04-14 Akim Demaille <akim@epita.fr>
13730
13731 * src/reader.c (copy_comment2): New function, same as former
13732 `copy_comment', but outputs into two FILE *.
13733 (copy_comment): Use it.
13734 (parse_union_decl): Use it.
13735 (get_type, parse_start_decl): Use the same `invalid' message.
13736 (parse_start_decl, parse_union_decl): Use the same `multiple'
13737 message.
13738 (parse_union_decl, copy_guard, copy_action): Use the same
13739 `unmatched' message.
13740 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
13741
cfe5fbc0
AD
137422000-03-31 Akim Demaille <akim@epita.fr>
13743
13744 * src/files.c (tryopen, tryclose): Move to the top.
13745 Be static.
13746
cb7db13e
AD
137472000-03-31 Akim Demaille <akim@epita.fr>
13748
13749 * src/main.c (main): Don't call `done', exit does it.
13750
a0f6b076
AD
137512000-03-31 Akim Demaille <akim@epita.fr>
13752
36281465
AD
13753 * allocate.c: s/return (foo)/return foo/.
13754 * lalr.c: Likewise.
13755 * LR0.c: Likewise.
13756 * output.c: Likewise.
13757 * reader.c: Likewise.
13758 * symtab.c: Likewise.
13759 * vmsgetargs.c: Likewise.
13760
137612000-03-31 Akim Demaille <akim@epita.fr>
13762
13763 Clean up the error reporting functions.
a0f6b076
AD
13764
13765 * src/report.c: New file.
13766 * src/report.h: Likewise.
13767 * src/Makefile.am: Adjust.
13768 * m4/error.m4: New file.
13769 * m4/Makefile.am: Adjust.
13770 * configure.in (jm_PREREQ_ERROR): Call it.
13771 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
13772 Remove.
13773 (fatal, fatals): Remove. All callers use complain.c::fatal.
13774 (warn, warni, warns, warnss, warnss): Remove. All callers use
13775 complain.c::complain.
13776 (toomany): Remove, use fatal instead.
13777 * src/files.c (done): No argument, use complain_message_count.
13778 * src/main.c (main): Register `done' to `atexit'.
13779
13780 * src/getargs.c (usage): More `fputs', less `fprintf'.
13781
18539825
AD
137822000-03-28 Akim Demaille <akim@epita.fr>
13783
13784 * lib/: New directory.
13785 * Makefile.am (SUBDIRS): Adjust.
13786 * configure.in: Adjust.
13787 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
13788 useless.
13789 * src/alloca.c: Moved to lib/.
13790 * src/getopt.c: Likewise.
13791 * src/getopt1.c: Likewise.
13792 * src/getopt.h: Likewise.
13793 * src/ansi2knr.c: Likewise.
13794 * src/ansi2knr.1: Likewise.
13795 * src/Makefile.am: Adjust.
13796 * lib/Makefile.am: New file.
13797
9f306f2a
AD
137982000-03-28 Akim Demaille <akim@epita.fr>
13799
13800 * src/getargs.c (usage): Refresh the help message.
13801
0ba347b6
AD
138022000-03-17 Akim Demaille <akim@epita.fr>
13803
13804 * src/getopt1.c: Updated from textutils 2.0e
13805 * src/getopt.c: Likewise.
13806 * src/getopt.h: Likewise.
13807
dbe7f271
AD
138082000-03-17 Akim Demaille <akim@epita.fr>
13809
13810 * src/Makefile.am (bison.simple): Fix the awk program: quote only
13811 the file name, not the whole `#line LINE FILE'.
13812
75bbe78d
AD
138132000-03-17 Akim Demaille <akim@epita.fr>
13814
13815 On syntax errors, report the token on which we choked.
13816
aa5fd0ee
AD
13817 * src/bison.s1 (yyparse): In the label yyerrlab, when
13818 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 13819
7b306f52
AD
138202000-03-17 Akim Demaille <akim@epita.fr>
13821
aa5fd0ee 13822 * src/reader.c (copy_at): New function.
7b306f52
AD
13823 (copy_guard): Use it.
13824 (copy_action): Use it.
13825
e87b5700
AD
138262000-03-17 Akim Demaille <akim@epita.fr>
13827
13828 Be kind to translators, save some useless translations.
13829
aa5fd0ee 13830 * src/main.c (banner): New function.
e87b5700
AD
13831 (fatal_banner): Use it.
13832 (warn_banner): Use it.
13833
ae3c3164
AD
138342000-03-17 Akim Demaille <akim@epita.fr>
13835
aa5fd0ee
AD
13836 * src/reader.c (copy_definition): Use copy_string and
13837 copy_comment. Removed now unused `match', `ended',
13838 `cplus_comment'.
ae3c3164
AD
13839 (copy_comment, copy_string): Moved, to be visible from
13840 copy_definition.
13841
4dc58e7c
AD
138422000-03-17 Akim Demaille <akim@epita.fr>
13843
aa5fd0ee
AD
13844 * src/reader.c (copy_string): Declare `static inline'. No
13845 problems with inline, since it is checked by configure.
4dc58e7c
AD
13846 (copy_comment): Likewise.
13847
0a6384c4
AD
138482000-03-17 Akim Demaille <akim@epita.fr>
13849
aa5fd0ee 13850 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 13851
3cef001a
AD
138522000-03-17 Akim Demaille <akim@epita.fr>
13853
aa5fd0ee 13854 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
13855 (copy_action): Use it. Removed now unused `match', `ended',
13856 `cplus_comment'.
13857 (copy_guard): Likewise.
13858
ca36d2ef
AD
138592000-03-17 Akim Demaille <akim@epita.fr>
13860
aa5fd0ee 13861 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
13862 (copy_action): Use it.
13863 (copy_guard): Likewise.
13864
6666f98f
AD
138652000-03-17 Akim Demaille <akim@epita.fr>
13866
13867 Change the handling of @s so that they behave exactly like $s.
13868 There is now a pseudo variable @$ (readble and writable), location
13869 of the lhs of the rule (by default ranging from the location of
13870 the first symbol of the rhs, to the location of the last symbol,
13871 or, if the rhs is empty, YYLLOC).
13872
13873 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
13874 yyval.
13875 (yyparse): When providing a default semantic action, provide a
13876 default location action.
13877 (after the $): No longer change `*YYLSP', just stack YYLOC the
13878 same way you stack YYVAL.
13879 * src/reader.c (read_declarations): Use warns.
13880 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
13881 (copy_action, case '@'): Likewise.
13882 Use a standard error message, to save useless work from
13883 translators.
13884
41aca2e0
AD
138852000-03-17 Akim Demaille <akim@epita.fr>
13886
aa5fd0ee
AD
13887 * src/bison.s1: Formatting and cosmetics changes.
13888 * src/reader.c: Likewise.
41aca2e0
AD
13889 Update the Copyright notice.
13890
dc08c1d5
AD
138912000-03-17 Akim Demaille <akim@epita.fr>
13892
aa5fd0ee
AD
13893 * src/bison.s1 (#line): All set to `#line' only, since the
13894 Makefile now handles them.
dc08c1d5 13895
9ee3c97b
AD
138962000-03-16 Akim Demaille <akim@epita.fr>
13897
13898 * src/output.c (output_rule_data): Output the documentation of
13899 some of the tables.
13900 (Copyright notice): Update.
13901 Formatting changes.
13902
0de741ca
AD
139032000-03-16 Akim Demaille <akim@epita.fr>
13904
13905 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
13906 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
13907 One `#if YYDEBUG' remains, since it uses variables which are
13908 defined only if `YYDEBUG != 0'.
13909
bb10be54
AD
139102000-03-16 Akim Demaille <akim@epita.fr>
13911
13912 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
13913 and related variables so that the similarities are highlighted.
13914
b07b484a
AD
139152000-03-16 Akim Demaille <akim@epita.fr>
13916
13917 * src/bison.s1: Properly indent CPP directives.
13918
361f60b3
AD
139192000-03-16 Akim Demaille <akim@epita.fr>
13920
13921 * src/bison.s1: Properly indent the `alloca' CPP section.
13922
8c44d3ec
AD
139232000-03-16 Akim Demaille <akim@epita.fr>
13924
13925 Do not hard code values of directories in `configure.in'.
13926 Update the `configure' tool chain.
13927
13928 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
13929 src/makefile.am.
13930 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
13931 (AC_OUTPUT): Add m4/Makefile.
13932 Bump to bison 1.28a, 1.29 has never been released.
13933 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
13934 handled via src/Makefile.am.
13935 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
13936 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
13937 autoheader.
13938 * Makefile.am (SUBDIRS): Add m4.
13939 (ACLOCAL_AM_FLAGS): New variable.
13940 (AUTOMAKE_OPTIONS): Add check-news.
13941 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
13942 the proper line number and file name.
13943 (DEFS): Propagate the location of bison library files and of the
13944 locale files.
13945 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
13946 builddir.
13947 * acinclude.m4: Remove, replaced by the directory m4.
13948 * m4/Makefile.am (EXTRA_DIST): New variable.
13949 * m4/gettext.m4: New file, from the fileutils.
13950 * m4/lcmessage.m4: Likewise
13951 * m4/progtest.m4: Likewise.
13952 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
13953
f95997e7
AD
139542000-03-10 Akim Demaille <akim@epita.fr>
13955
13956 * src/closure.c:
13957 Formatting changes of various comments.
13958 Respect the GNU coding standards at various places.
13959 Don't use `_()' when no translation is needed.
13960
139611999-12-13 Jesse Thilo <jthilo@gnu.org>
13962
13963 * src/files.c:
13964 OS/2 honors TMPDIR environment variable.
13965
139661999-12-13 Jesse Thilo <jthilo@gnu.org>
13967
13968 * doc/bison.texinfo: Tweaked spelling and grammar.
13969 Updated ISBN.
13970 Removed reference to price of printed copy.
13971 Mention BISON_SIMPLE and BISON_HAIRY.
13972
139731999-12-13 Jesse Thilo <jthilo@gnu.org>
13974
13975 * configure.in, NEWS:
13976 Bison 1.29 released.
13977
139781999-10-27 Jesse Thilo <jthilo@gnu.org>
13979
13980 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
13981 Added reference card.
13982
139831999-07-26 Jesse Thilo <jthilo@gnu.org>
13984
13985 * po/ru.po: Added Russian translation.
13986
139871999-07-26 Jesse Thilo <jthilo@gnu.org>
13988
13989 * configure.in: Added Russian translation.
13990
139911999-07-06 Jesse Thilo <jthilo@gnu.org>
13992
13993 * configure.in, NEWS, README:
13994 Released version 1.28.
13995
139961999-06-14 Jesse Thilo <jthilo@gnu.org>
13997
13998 * src/system.h:
13999 Squashed redefinition warning on some systems.
14000
14001 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
14002 Have configure build version string instead of relying on ANSI string
14003 concatentation.
14004
140051999-06-14 Jesse Thilo <jthilo@gnu.org>
14006
14007 * po/POTFILES.in: Got rid of version.c.
14008
140091999-06-14 Jesse Thilo <jthilo@gnu.org>
14010
14011 * acconfig.h, configure.in:
14012 Have configure build version string instead of relying on ANSI string
14013 concatentation.
14014
140151999-06-08 Jesse Thilo <jthilo@gnu.org>
14016
14017 * doc/bison.1:
14018 Dropped mention of `+' for long-named options.
14019
140201999-05-30 Jesse Thilo <jthilo@gnu.org>
14021
14022 * src/files.c: Added <unistd.h> for unlink().
14023
14024 * src/Makefile.am, src/system.h:
14025 I18n fixes.
14026
140271999-05-30 Jesse Thilo <jthilo@gnu.org>
14028
14029 * README: Added a FAQ list.
14030
14031 * configure.in, acconfig.h:
14032 I18n fixes.
14033
140341999-05-30 Jesse Thilo <jthilo@gnu.org>
14035
14036 * doc/FAQ, doc/Makefile.am:
14037 Added a FAQ list.
14038
140391999-05-19 Jesse Thilo <jthilo@gnu.org>
14040
14041 * src/alloc.h, src/symtab.h, src/version.c:
14042 Protected inclusion of "config.h" with HAVE_CONFIG_H.
14043
140441999-04-18 Jesse Thilo <jthilo@gnu.org>
14045
14046 * src/.cvsignore, src/Makefile.am:
14047 Reorganized: sources in `src', documentation in `doc'.
14048
14049 * src/lex.c (literalchar):
14050 fixed the code for escaping double quotes (thanks
14051 Jonathan Czisny.)
14052
140531999-04-18 Jesse Thilo <jthilo@gnu.org>
14054
14055 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
14056 Adjusted paths to reflect directory reorganization.
14057
140581999-04-18 Jesse Thilo <jthilo@gnu.org>
14059
14060 * doc/.cvsignore, doc/Makefile.am:
14061 Reorganized: sources in `src', documentation in `doc'.
14062
140631999-04-18 Jesse Thilo <jthilo@gnu.org>
14064
14065 * configure.in:
14066 Updated AC_INIT file to reflect directory reorganization.
14067
14068 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
14069 Reorganized: sources in `src', documentation in `doc'.
14070
140711999-04-13 Jesse Thilo <jthilo@gnu.org>
14072
14073 * src/allocate.c:
14074 Don't declare calloc() and realloc() if not necessary.
14075
140761999-04-13 Jesse Thilo <jthilo@gnu.org>
14077
14078 * configure.in, acconfig.h, acinclude.m4:
14079 Don't declare calloc() and realloc() if not necessary.
14080
140811999-03-23 Jesse Thilo <jthilo@gnu.org>
14082
14083 * po/.cvsignore: Added i18n support.
14084
140851999-03-23 Jesse Thilo <jthilo@gnu.org>
14086
14087 * acconfig.h, configure.in, Makefile.am:
14088 Added i18n support.
14089
140901999-03-22 Jesse Thilo <jthilo@gnu.org>
14091
14092 * src/bison.s1: Fixed #line numbers.
14093
140941999-03-15 Jesse Thilo <jthilo@gnu.org>
14095
14096 * po/es.po, po/fr.po, po/nl.po, po/de.po:
14097 Added PO files from Translation Project.
14098
140991999-03-03 Jesse Thilo <jthilo@gnu.org>
14100
14101 * Makefile.am:
14102 Added support for non-ANSI compilers (ansi2knr).
14103
141041999-02-16 Jesse Thilo <jthilo@gnu.org>
14105
14106 * configure.in: Bumped version number to 1.27.
14107
14108 * Makefile.am:
14109 Added `bison.simple' to list of files removed by `make distclean'.
14110
141111999-02-12 Jesse Thilo <jthilo@gnu.org>
14112
14113 * src/files.c, src/files.h:
14114 Defined locations of parser files in config.h instead of Makefile.
14115
141161999-02-12 Jesse Thilo <jthilo@gnu.org>
14117
14118 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
14119 Defined locations of parser files in config.h instead of Makefile.
14120
141211999-02-09 Jesse Thilo <jthilo@gnu.org>
14122
14123 * Makefile.am:
14124 Removed inappropriate use of $< macro.
14125
141261999-02-05 Jesse Thilo <jthilo@gnu.org>
14127
14128 * po/Makefile.in.in, po/POTFILES.in:
14129 Add `po' directory skeleton.
14130
141311999-01-27 Jesse Thilo <jthilo@gnu.org>
14132
14133 * README: Document help-bison list.
14134
14135 * configure.in: Add check for mkstemp().
14136
141371999-01-20 Jesse Thilo <jthilo@gnu.org>
14138
14139 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
14140 Hush a few compiler warnings.
14141
14142 * src/files.c:
14143 Add tryclose(), which verifies that fclose was successful.
14144 Hush a couple of compiler warnings.
14145
141461999-01-20 Jesse Thilo <jthilo@gnu.org>
14147
14148 * Makefile.am, OChangeLog:
14149 ChangeLog is now automatically generated. Include the old version as
14150 OChangeLog.
14151
141521999-01-14 Jesse Thilo <jthilo@gnu.org>
14153
14154 * 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:
14155 Update FSF address.
14156
141571999-01-14 Jesse Thilo <jthilo@gnu.org>
14158
14159 * doc/bison.texinfo: Fix formatting glitch.
14160
14161 * doc/bison.texinfo: Update FSF address.
14162
141631999-01-14 Jesse Thilo <jthilo@gnu.org>
14164
14165 * acconfig.h: Update FSF address.
14166
141671999-01-08 Jesse Thilo <jthilo@gnu.org>
14168
14169 * src/system.h:
14170 Don't define PACKAGE here, since config.h defines it.
14171
141721998-12-30 Jesse Thilo <jthilo@gnu.org>
14173
14174 * src/reader.c: Update copyright date.
14175
14176 * src/main.c:
14177 Ditch sprintf to statically-sized buffers in fatal/warn functions in
14178 favor of output directly to stderr (avoids buffer overruns).
14179
14180 * src/reader.c: Some checks for premature EOF.
14181
14182 * 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:
14183 Use prototypes if the compiler understands them.
14184
14185 * src/files.c: Honor TMPDIR on Unix hosts.
14186 Use prototypes if the compiler understands them.
14187
14188 * src/reader.c:
14189 Fix a couple of buffer overrun bugs.
14190 Use prototypes if the compiler understands them.
14191
14192 * src/system.h: Include unistd.h and ctype.h.
14193 Use #ifdef instead of #if for NLS symbols.
14194
141951998-12-30 Jesse Thilo <jthilo@gnu.org>
14196
14197 * doc/bison.texinfo:
14198 Delete comment "consider using @set for edition number, etc..." since
14199 we now are doing so.
14200
142011998-12-30 Jesse Thilo <jthilo@gnu.org>
14202
14203 * configure.in:
14204 Use prototypes if the compiler understands them.
14205
14206 * NEWS: Document 1.26 highlights.
14207
14208 * Makefile.am: Require Automake 1.3 or later.
14209
14210 * acconfig.h:
14211 Use prototypes if the compiler understands them.
14212
142131998-12-29 Jesse Thilo <jthilo@gnu.org>
14214
14215 * src/version.c:
14216 Use VERSION symbol from automake for version number.
14217
142181998-12-29 Jesse Thilo <jthilo@gnu.org>
14219
14220 * acconfig.h, configure.in, version.cin:
14221 Use VERSION symbol from automake for version number.
14222
142231998-11-28 Jesse Thilo <jthilo@gnu.org>
14224
14225 * Makefile.am:
14226 Distribute original version of simple parser (bison.s1), not built
14227 version (bison.simple).
14228
142291998-11-28 Jesse Thilo <jthilo@gnu.org>
14230
14231 * doc/bison.texinfo: Add info dir entry.
14232
14233 * doc/bison.texinfo:
14234 Let automake put version number into documentation.
14235
142361998-11-26 Jesse Thilo <jthilo@gnu.org>
14237
14238 * src/bison.cld, src/build.com, src/vmshlp.mar:
14239 Add non-RCS files from /gd/gnu/bison.
14240
142411998-11-26 Jesse Thilo <jthilo@gnu.org>
14242
14243 * doc/bison.1:
14244 Document the BISON_HAIRY and BISON_SIMPLE variables.
14245
142461998-11-25 Jesse Thilo <jthilo@gnu.org>
14247
14248 * src/version.c: Build version.c automatically.
14249
14250 * src/reader.c:
14251 Fix token numbering (used to start at 258, not 257).
14252
14253 * src/system.h: Include config.h.
14254
14255 * src/getargs.c: Update bug report address.
14256
14257 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
14258 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
14259
142601998-11-25 Jesse Thilo <jthilo@gnu.org>
14261
14262 * Makefile.am:
14263 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
14264
14265 * configure.in, version.cin:
14266 Build version.c automatically.
14267
14268 * AUTHORS: Add AUTHORS file.
14269
14270 * README: Update bug report address.
14271
14272 * bison.simple:
14273 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
14274
14275 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
14276 Add automake stuff.
14277
142781998-11-25 Jesse Thilo <jthilo@gnu.org>
14279
14280 * doc/bison.texinfo: Clean up some formatting.
14281
142821998-05-05 Richard Stallman <rms@gnu.org>
14283
14284 * doc/bison.texinfo:
14285 Explain better why to make a pure parser.
14286
142871998-01-05 Richard Stallman <rms@gnu.org>
14288
14289 * src/files.c (openfiles):
14290 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
14291 find a temporary directory, if possible. Do not unlink files while
14292 they are open.
14293
142941997-08-25 Richard Stallman <rms@gnu.org>
14295
14296 * src/reader.c (stack_offset;):
14297 Change some warni to warns.
14298
14299 * src/lex.c (literalchar): Use warns, not warni.
14300
143011997-06-28 Richard Stallman <rms@gnu.org>
14302
14303 * src/bison.s1: Add a Bison version comment.
14304
14305 * src/main.c (fatal, warn, berror):
14306 Use program_name.
14307
143081997-06-28 Richard Stallman <rms@gnu.org>
14309
14310 * Makefile.in (bison_version): New variable.
14311 (dist): Use that variable.
14312 (bison.s1): Substitute the Bison version into bison.simple.
14313
14314 * bison.simple: Add a Bison version comment.
14315
143161997-06-18 Richard Stallman <rms@gnu.org>
14317
14318 * src/main.c (fatal, warn, berror):
14319 Make error messages standard.
14320 (toomany): Improve error message text.
14321
14322 * 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:
14323 new.h renamed to alloc.h.
14324
143251997-06-18 Richard Stallman <rms@gnu.org>
14326
14327 * Makefile.in: new.h renamed to alloc.h.
14328
143291997-05-24 Richard Stallman <rms@gnu.org>
14330
14331 * src/lex.c (literalchar):
14332 Fix the code for escaping \, " and '.
14333
14334 (lex): Avoid trouble when there are many chars
14335 to discard in a char literal with just several chars in it.
14336
143371997-05-17 Richard Stallman <rms@gnu.org>
14338
14339 * src/bison.s1:
14340 Use malloc, if using alloca is troublesome.
14341 (YYSTACK_USE_ALLOCA): New flag macro.
14342 Define it for some systems and compilers.
14343 (YYSTACK_ALLOC): New macro.
14344 (yyparse): Use YYSTACK_ALLOC to allocate stack.
14345 If it was malloc'd, free it.
14346
143471997-05-17 Richard Stallman <rms@gnu.org>
14348
14349 * bison.simple:
14350 Use malloc, if using alloca is troublesome.
14351 (YYSTACK_USE_ALLOCA): New flag macro.
14352 Define it for some systems and compilers.
14353 (YYSTACK_ALLOC): New macro.
14354 (yyparse): Use YYSTACK_ALLOC to allocate stack.
14355 If it was malloc'd, free it.
14356
143571997-04-23 Richard Stallman <rms@gnu.org>
14358
14359 * src/bison.s1:
14360 (alloca) [__hpux]: Always define as __builtin_alloca.
14361
143621997-04-23 Richard Stallman <rms@gnu.org>
14363
14364 * bison.simple:
14365 (alloca) [__hpux]: Always define as __builtin_alloca.
14366
143671997-04-22 Richard Stallman <rms@gnu.org>
14368
14369 * src/bison.s1:
14370 [__hpux]: Include alloca.h (right for HPUX 10)
14371 instead of declaring alloca (right for HPUX 9).
14372
14373 * src/bison.s1 (__yy_memcpy):
14374 Declare arg `count' as unsigned int.
14375 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
14376
143771997-04-22 Richard Stallman <rms@gnu.org>
14378
14379 * bison.simple:
14380 [__hpux]: Include alloca.h (right for HPUX 10)
14381 instead of declaring alloca (right for HPUX 9).
14382
14383 * bison.simple (__yy_memcpy):
14384 Declare arg `count' as unsigned int.
14385 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
14386
143871997-01-03 Richard Stallman <rms@gnu.org>
14388
14389 * src/allocate.c: [__STDC__ or _MSC_VER]:
14390 Declare calloc and realloc to return void *.
14391
143921997-01-02 Richard Stallman <rms@gnu.org>
14393
14394 * src/system.h:
14395 [_MSC_VER]: Include stdlib.h and process.h.
14396 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
14397
14398 * src/main.c (main): Return FAILURE as a value.
14399 (printable_version): Declare arg as int, not char.
14400
144011997-01-02 Richard Stallman <rms@gnu.org>
14402
14403 * Makefile.in (dist):
14404 Explicitly check for symlinks, and copy them.
14405
144061996-12-19 Richard Stallman <rms@gnu.org>
14407
14408 * src/files.c:
14409 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
14410
144111996-12-18 Paul Eggert <eggert@gnu.org>
14412
14413 * src/bison.s1 (yyparse):
14414 If __GNUC__ and YYPARSE_PARAM are both defined,
14415 declare yyparse to have a void * argument.
14416
144171996-12-18 Paul Eggert <eggert@gnu.org>
14418
14419 * bison.simple (yyparse):
14420 If __GNUC__ and YYPARSE_PARAM are both defined,
14421 declare yyparse to have a void * argument.
14422
144231996-12-17 Richard Stallman <rms@gnu.org>
14424
14425 * src/reduce.c (nbits): Add some casts.
14426
144271996-08-12 Richard Stallman <rms@gnu.org>
14428
14429 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
14430
144311996-08-12 Richard Stallman <rms@gnu.org>
14432
14433 * bison.simple: Test _MSDOS as well as _MSDOS_.
14434
144351996-07-31 Richard Stallman <rms@gnu.org>
14436
14437 * src/bison.s1:
14438 [__sun && __i386]: Include alloca.h.
14439
144401996-07-31 Richard Stallman <rms@gnu.org>
14441
14442 * bison.simple:
14443 [__sun && __i386]: Include alloca.h.
14444
144451996-07-30 Richard Stallman <rms@gnu.org>
14446
14447 * src/bison.s1: Comment change.
14448
14449 * src/bison.s1: Test _MSDOS_, not MSDOS.
14450
144511996-07-30 Richard Stallman <rms@gnu.org>
14452
14453 * bison.simple: Comment change.
14454
14455 * bison.simple: Test _MSDOS_, not MSDOS.
14456
144571996-06-01 Richard Stallman <rms@gnu.org>
14458
14459 * 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:
14460 Insert `_' macro around many string constants.
14461
14462 * src/main.c:
14463 Insert `_' macro around many string constants.
14464
14465 (main): Call setlocale, bindtextdomain and textdomain.
14466
14467 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
14468 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
14469 [ENABLE_NLS]: Include libintl.h.
14470 [ENABLE_NLS] (gettext): Define.
14471 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
14472 (N_, PACKAGE, LOCALEDIR): New macros.
14473
144741996-06-01 Richard Stallman <rms@gnu.org>
14475
14476 * POTFILES.in: New file.
14477
14478 * Makefile.in (allocate.o):
14479 Define target explicitly.
14480
14481 * Makefile.in (CFLAGS): Set to @CFLAGS@.
14482 (LDFLAGS): Set to @LDFLAGS@.
14483 (configure): Run autoconf only if preceding `cd' succeeds.
14484 (bison.s1): Redirect output to temporary file then move the
14485 temporary to the target, rather than redirecting directly to bison.s1.
14486 (clean): Remove config.status and config.log.
14487 (distclean): Don't remove config.status here.
14488
144891996-05-12 Richard Stallman <rms@gnu.org>
14490
14491 * src/bison.s1:
14492 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
14493
144941996-05-12 Richard Stallman <rms@gnu.org>
14495
14496 * bison.simple:
14497 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
14498
144991996-05-11 Richard Stallman <rms@gnu.org>
14500
14501 * src/bison.s1 (__yy_memcpy):
14502 Really reorder the args, as was supposedly done on Feb 14 1995.
14503 (yyparse): Calls changed accordingly.
14504
145051996-05-11 Richard Stallman <rms@gnu.org>
14506
14507 * Makefile.in (dist): Don't use $(srcdir).
14508
14509 * bison.simple (__yy_memcpy):
14510 Really reorder the args, as was supposedly done on Feb 14 1995.
14511 (yyparse): Calls changed accordingly.
14512
145131996-01-27 Richard Stallman <rms@gnu.org>
14514
14515 * src/output.c (output_rule_data):
14516 Test YYERROR_VERBOSE in the conditional
14517 around the definition of ttyname.
14518
145191995-12-29 Richard Stallman <rms@gnu.org>
14520
14521 * src/bison.s1:
14522 Fix line numbers in #line commands.
14523
145241995-12-29 Richard Stallman <rms@gnu.org>
14525
14526 * bison.simple:
14527 Fix line numbers in #line commands.
14528
145291995-12-27 Richard Stallman <rms@gnu.org>
14530
14531 * src/bison.s1 (YYPARSE_PARAM_DECL):
14532 In C++, make it always null.
14533 (YYPARSE_PARAM_ARG): New macro.
14534 (yyparse): Use YYPARSE_PARAM_ARG.
14535
145361995-12-27 Richard Stallman <rms@gnu.org>
14537
14538 * bison.simple (YYPARSE_PARAM_DECL):
14539 In C++, make it always null.
14540 (YYPARSE_PARAM_ARG): New macro.
14541 (yyparse): Use YYPARSE_PARAM_ARG.
14542
145431995-11-29 Richard Stallman <rms@gnu.org>
14544
14545 * doc/bison.texinfo:
14546 Describe literal string tokens, %raw, %no_lines, %token_table.
14547
145481995-11-29 Daniel Hagerty <hag@gnu.org>
14549
14550 * doc/bison.texinfo: Fixed update date
14551
145521995-10-16 Richard Stallman <rms@gnu.org>
14553
14554 * src/version.c: Version 1.25.
14555
145561995-10-16 Richard Stallman <rms@gnu.org>
14557
14558 * NEWS: *** empty log message ***
14559
145601995-10-16 Richard Stallman <rms@gnu.org>
14561
14562 * doc/bison.1, doc/bison.rnh:
14563 Add new options.
14564
145651995-10-15 Richard Stallman <rms@gnu.org>
14566
14567 * src/vmsgetargs.c, src/getargs.c:
14568 Added -n, -k, and -raw switches.
14569 (noparserflag, toknumflag, rawtoknumflag): New variables.
14570
14571 * src/symtab.h (SALIAS):
14572 New #define for adding aliases to %token.
14573 (struct bucket): Added `alias' field.
14574
14575 * src/reduce.c (reduce_grammar):
14576 Revise error message.
14577 (print_notices): Remove final `.' from error message.
14578
14579 * src/reader.c (reader_output_yylsp):
14580 New function.
14581 (readgram): Use `#if 0' around code that accepted %command
14582 inside grammar rules: The documentation doesn't allow it,
14583 and it will fail since the %command processors scan for the next %.
14584 (parse_token_decl): Extended the %token
14585 declaration to allow a multi-character symbol as an alias.
14586 (parse_thong_decl): New function.
14587 (read_declarations): Added %thong declarations.
14588 (read_declarations): Handle NOOP to deal with allowing
14589 % declarations as another means to specify the flags.
14590 (readgram): Allow %prec prior to semantics embedded in a rule.
14591 (skip_to_char, read_declarations, copy_definition)
14592 (parse_token_decl, parse_start_decl, parse_type_decl)
14593 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
14594 (get_type_name, copy_guard, copy_action, readgram)
14595 (get_type, packsymbols): Revised most error messages.
14596 Changed `fatal' to `warnxxx' to avoid aborting for error.
14597 Revised and use multiple warnxxx functions to avoid using VARARGS1.
14598 (read_declarations): Improve the error message for
14599 an invalid character. Do not abort.
14600 (read_declarations, copy_guard, copy_action): Use
14601 printable_version to avoid unprintable characters in printed output.
14602 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
14603 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
14604 Allow the type of a non-terminal can be given
14605 more than once, as long as all specifications give the same type.
14606
14607 * src/output.c:
14608 (output_headers, output_trailers, output, output_gram)
14609 (output_rule_data): Implement noparserflag variable.
14610 Implement toknumflag variable.
14611 (output): Call reader_output_yylsp to output LTYPESTR.
14612
14613 * src/main.c (main):
14614 If reader sees an error, don't process the grammar.
14615 (fatals): Updated to not use VARARGS1.
14616 (printable_version, int_to_string, warn, warni, warns, warnss)
14617 (warnsss): New error reporting functions. Avoid abort for error.
14618
14619 * src/lex.h:
14620 Added THONG and NOOP for alias processing.
14621 Added SETOPT for the new code that allows setting options with %flags.
14622
14623 * src/lex.c:
14624 Include getopt.h. Add some extern decls.
14625 (safegetc): New function to deal with EOF gracefully.
14626 (literalchar); new function to deal with reading \ escapes.
14627 (lex): Use literalchar.
14628 (lex): Implemented "..." tokens.
14629 (literalchar, lex, parse_percent_token): Made tokenbuffer
14630 always contain the token. This includes growing the token
14631 buffer while reading an integer.
14632 (parse_percent_token): Replaced if-else statement with percent_table.
14633 (parse_percent_token): Added % declarations as another
14634 way to specify the flags -n, -l, and -r. Also added hooks for
14635 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
14636 major changes to files.c.
14637 (lex) Retain in the incoming stream a character following
14638 an incorrect '/'.
14639 (skip_white_space, lex): Revised most error messages
14640 and changed fatal to warn to avoid aborting.
14641 (percent_table): Added %thong declarations.
14642
14643 * src/gram.h: Comment changes.
14644
14645 * src/files.c (openfiles, open_extra_files, done):
14646 Add faction flag
14647 and actfile file. Handle noparserflag. Both for -n switch.
14648
14649 * src/conflicts.c (resolve_sr_conflict):
14650 Remove use of alloca.
14651
146521995-06-01 Jim Meyering <meyering@gnu.org>
14653
14654 * doc/bison.texinfo: *** empty log message ***
14655
146561995-05-06 Richard Stallman <rms@gnu.org>
14657
14658 * src/bison.s1: Comment change.
14659
146601995-05-06 Richard Stallman <rms@gnu.org>
14661
14662 * bison.simple: Comment change.
14663
146641995-05-03 Richard Stallman <rms@gnu.org>
14665
14666 * src/version.c: Version now 1.24.
14667
14668 * src/bison.s1: Change distribution terms.
14669
14670 * src/version.c: Version now 1.23.
14671
146721995-05-03 Richard Stallman <rms@gnu.org>
14673
14674 * doc/bison.texinfo:
14675 Rewrite "Conditions for Using Bison".
14676 Update version to 1.24.
14677
146781995-05-03 Richard Stallman <rms@gnu.org>
14679
14680 * bison.simple: Change distribution terms.
14681
146821995-02-23 Richard Stallman <rms@gnu.org>
14683
14684 * src/files.c: Test __VMS_POSIX as well as VMS.
14685
146861995-02-14 Jim Meyering <meyering@gnu.org>
14687
14688 * src/bison.s1 (__yy_memcpy):
14689 Renamed from __yy_bcopy to avoid
14690 confusion. Reverse FROM and TO arguments to be consistent with
14691 those of memcpy.
14692
146931995-02-14 Jim Meyering <meyering@gnu.org>
14694
14695 * bison.simple (__yy_memcpy):
14696 Renamed from __yy_bcopy to avoid
14697 confusion. Reverse FROM and TO arguments to be consistent with
14698 those of memcpy.
14699
147001994-11-10 David J. MacKenzie <djm@gnu.org>
14701
14702 * NEWS: reformat
14703
14704 * NEWS: New file.
14705
14706 * Makefile.in (DISTFILES): Include NEWS.
14707
14708 * Makefile.in (DISTFILES):
14709 Include install-sh, not install.sh.
14710
14711 * configure.in: Update to Autoconf v2 macro names.
14712
147131994-10-05 David J. MacKenzie <djm@gnu.org>
14714
14715 * Makefile.in: fix typo
14716
14717 * Makefile.in (prefix, exec_prefix):
14718 Let configure set them.
14719
147201994-09-28 David J. MacKenzie <djm@gnu.org>
14721
14722 * Makefile.in: Set datadir to $(prefix)/share.
14723
147241994-09-15 Richard Stallman <rms@gnu.org>
14725
14726 * src/bison.s1:
14727 Update copyright notice and GPL version.
14728
147291994-09-15 Richard Stallman <rms@gnu.org>
14730
14731 * bison.simple:
14732 Update copyright notice and GPL version.
14733
147341994-07-12 Richard Stallman <rms@gnu.org>
14735
14736 * src/reduce.c, src/reader.c:
14737 entered into RCS
14738
147391994-05-05 David J. MacKenzie <djm@gnu.org>
14740
14741 * Makefile.in: entered into RCS
14742
147431994-03-26 Richard Stallman <rms@gnu.org>
14744
14745 * src/bison.s1: entered into RCS
14746
147471994-03-26 Richard Stallman <rms@gnu.org>
14748
14749 * bison.simple: entered into RCS
14750
147511994-03-25 Richard Stallman <rms@gnu.org>
14752
14753 * src/main.c: entered into RCS
14754
147551994-03-24 Richard Stallman <rms@gnu.org>
14756
14757 * src/conflicts.c: entered into RCS
14758
147591994-01-02 Richard Stallman <rms@gnu.org>
14760
14761 * Makefile.in: *** empty log message ***
14762
147631993-11-21 Richard Stallman <rms@gnu.org>
14764
14765 * src/bison.s1: *** empty log message ***
14766
147671993-11-21 Richard Stallman <rms@gnu.org>
14768
14769 * doc/bison.texinfo: entered into RCS
14770
14771 * doc/bison.texinfo: *** empty log message ***
14772
147731993-11-21 Richard Stallman <rms@gnu.org>
14774
14775 * bison.simple: *** empty log message ***
14776
147771993-10-25 David J. MacKenzie <djm@gnu.org>
14778
14779 * doc/bison.texinfo: *** empty log message ***
14780
147811993-10-19 Richard Stallman <rms@gnu.org>
14782
14783 * src/bison.s1: *** empty log message ***
14784
147851993-10-19 Richard Stallman <rms@gnu.org>
14786
14787 * bison.simple: *** empty log message ***
14788
147891993-10-14 Richard Stallman <rms@gnu.org>
14790
14791 * src/bison.s1: *** empty log message ***
14792
147931993-10-14 Richard Stallman <rms@gnu.org>
14794
14795 * bison.simple: *** empty log message ***
14796
147971993-09-14 David J. MacKenzie <djm@gnu.org>
14798
14799 * doc/bison.texinfo: *** empty log message ***
14800
148011993-09-13 Noah Friedman <friedman@gnu.org>
14802
14803 * Makefile.in: *** empty log message ***
14804
148051993-09-10 Richard Stallman <rms@gnu.org>
14806
14807 * src/conflicts.c: *** empty log message ***
14808
14809 * src/system.h: entered into RCS
14810
148111993-09-10 Richard Stallman <rms@gnu.org>
14812
14813 * doc/bison.1: entered into RCS
14814
148151993-09-06 Noah Friedman <friedman@gnu.org>
14816
14817 * src/version.c: entered into RCS
14818
148191993-09-06 Noah Friedman <friedman@gnu.org>
14820
14821 * Makefile.in: *** empty log message ***
14822
148231993-07-30 David J. MacKenzie <djm@gnu.org>
14824
14825 * Makefile.in: *** empty log message ***
14826
148271993-07-24 Richard Stallman <rms@gnu.org>
14828
14829 * src/bison.s1: *** empty log message ***
14830
148311993-07-24 Richard Stallman <rms@gnu.org>
14832
14833 * bison.simple: *** empty log message ***
14834
148351993-07-08 David J. MacKenzie <djm@gnu.org>
14836
14837 * Makefile.in: *** empty log message ***
14838
148391993-07-04 Richard Stallman <rms@gnu.org>
14840
14841 * src/bison.s1: *** empty log message ***
14842
148431993-07-04 Richard Stallman <rms@gnu.org>
14844
14845 * bison.simple: *** empty log message ***
14846
148471993-06-26 David J. MacKenzie <djm@gnu.org>
14848
14849 * src/getargs.c: entered into RCS
14850
148511993-06-26 David J. MacKenzie <djm@gnu.org>
14852
14853 * doc/bison.texinfo: *** empty log message ***
14854
14855 * doc/bison.1: New file.
14856
148571993-06-25 Richard Stallman <rms@gnu.org>
14858
14859 * src/getargs.c: New file.
14860
148611993-06-16 Richard Stallman <rms@gnu.org>
14862
14863 * src/bison.s1: *** empty log message ***
14864
148651993-06-16 Richard Stallman <rms@gnu.org>
14866
14867 * bison.simple: *** empty log message ***
14868
148691993-06-03 Richard Stallman <rms@gnu.org>
14870
14871 * src/bison.s1: New file.
14872
148731993-06-03 Richard Stallman <rms@gnu.org>
14874
14875 * doc/bison.texinfo: *** empty log message ***
14876
148771993-06-03 Richard Stallman <rms@gnu.org>
14878
14879 * bison.simple: New file.
14880
148811993-05-19 Richard Stallman <rms@gnu.org>
14882
14883 * doc/bison.texinfo: New file.
14884
148851993-05-07 Noah Friedman <friedman@gnu.org>
14886
14887 * Makefile.in: *** empty log message ***
14888
148891993-04-28 Noah Friedman <friedman@gnu.org>
14890
14891 * src/reader.c: *** empty log message ***
14892
148931993-04-23 Noah Friedman <friedman@gnu.org>
14894
14895 * src/alloc.h: entered into RCS
14896
148971993-04-20 David J. MacKenzie <djm@gnu.org>
14898
14899 * src/version.c: *** empty log message ***
14900
14901 * src/files.c, src/allocate.c:
14902 entered into RCS
14903
14904 * src/reader.c: *** empty log message ***
14905
14906 * src/lex.c: entered into RCS
14907
14908 * src/conflicts.c: New file.
14909
14910 * src/symtab.c: entered into RCS
14911
14912 * src/alloc.h: New file.
14913
14914 * src/LR0.c: entered into RCS
14915
149161993-04-18 Noah Friedman <friedman@gnu.org>
14917
14918 * src/reader.c: New file.
14919
14920 * src/version.c: *** empty log message ***
14921
149221993-04-18 Noah Friedman <friedman@gnu.org>
14923
14924 * Makefile.in: *** empty log message ***
14925
149261993-04-17 Noah Friedman <friedman@gnu.org>
14927
14928 * Makefile.in: *** empty log message ***
14929
149301993-04-15 Richard Stallman <rms@gnu.org>
14931
14932 * src/main.c, src/files.c:
14933 New file.
14934
149351993-04-15 Noah Friedman <friedman@gnu.org>
14936
14937 * configure.in: entered into RCS
14938
14939 * configure.in: *** empty log message ***
14940
14941 * configure.in: New file.
14942
149431993-04-14 Richard Stallman <rms@gnu.org>
14944
14945 * Makefile.in: New file.
14946
149471993-04-13 Richard Stallman <rms@gnu.org>
14948
14949 * src/version.c: New file.
14950
149511993-03-25 Richard Stallman <rms@gnu.org>
14952
14953 * src/output.c: entered into RCS
14954
149551992-09-25 Richard Stallman <rms@gnu.org>
14956
14957 * configure.bat: entered into RCS
14958
149591992-06-22 Richard Stallman <rms@gnu.org>
14960
14961 * src/vmsgetargs.c: entered into RCS
14962
149631992-06-22 Richard Stallman <rms@gnu.org>
14964
14965 * doc/bison.rnh: entered into RCS
14966
149671992-04-20 David J. MacKenzie <djm@gnu.org>
14968
14969 * README: entered into RCS
14970
149711992-01-22 Richard Stallman <rms@gnu.org>
14972
14973 * src/machine.h: entered into RCS
14974
149751991-12-21 Richard Stallman <rms@gnu.org>
14976
14977 * src/lalr.c, src/closure.c:
14978 entered into RCS
14979
149801991-12-20 Richard Stallman <rms@gnu.org>
14981
14982 * src/state.h: entered into RCS
14983
149841991-12-18 Richard Stallman <rms@gnu.org>
14985
14986 * src/print.c, src/nullable.c, src/derives.c:
14987 entered into RCS
14988
149891991-11-03 David J. MacKenzie <djm@gnu.org>
14990
14991 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
14992 entered into RCS
14993
149941988-09-09 Richard Stallman <rms@gnu.org>
14995
14996 * src/bison.hairy: entered into RCS
14997
149981987-12-16 Richard Stallman <rms@gnu.org>
14999
15000 * REFERENCES: entered into RCS
dc546b0f 15001
f294a2c2 15002
04098407 15003 -----
f294a2c2 15004
04098407
PE
15005 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
15006 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
15007 Foundation, Inc.
f294a2c2 15008
04098407
PE
15009 Copying and distribution of this file, with or without
15010 modification, are permitted provided the copyright notice and this
15011 notice are preserved.