]> git.saurik.com Git - bison.git/blame - ChangeLog
(vbitset_copy): Now static, to avoid a GCC warning.
[bison.git] / ChangeLog
CommitLineData
8dd76bee
PE
12003-06-17 Paul Eggert <eggert@twinsun.com>
2
3 Version 1.875b.
4
5 * NEWS: Document 1.875b.
6
7 * lib/bbitset.h: Do not include config.h; that's the includer's job.
8 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
9 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
10 Don't use 'index' in comments, as it's a builtin fn on some hosts.
11 * lib/bitset_stats.c: Include gettext.h unconditionally, as
12 per recent gettext manual's suggestion.
13 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
14 Use prototypes, not old-style definitions.
15 * lib/lbitset.c (lbitset_unused_clear): Likewise.
16 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
17 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
18 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
19 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
20 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
21 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
22 vbitset_or_and_cmp, vbitset_copy): Likewise.
23
24 * lib/libiberty.h: Do not include config.h; that's the includer's job.
25 Do not include <stdlib.h>.
26 (PARAMS): Define unconditionally for C89.
27 (ATTRIBUTE_NORETURN): Remove.
28 (ATTRIBUTE_UNUSED): Define unconditionally.
29
30 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
31 <http://mail.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
32 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
33 * lib/vbitset.c, lib/vbitset.h: New files.
34 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
35 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
36 from libbitset.
37
38 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
39 `How Can I Reset @code{yyparse}', since texinfo does not allow
40 arbitrary @ in node names.
41
42 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
43 shouldn't be needed according to the gettext 0.12.1 documentation
44 but which seem to be needed anyway: codeset.m4 glibc21.m4
45 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4
46 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
47
48 * lib/.cvsignore: Add stdbool.h.
49 * m4/.cvsignore: Add nls.m4, po.m4.
50
51 Upgrade to CVS gnulib.
52 * stdbool_.h: File renamed from stdbool.h.in.
53 * configure.ac (AM_STDBOOL_H): Invoke this instead of
54 AC_HEADER_STDBOOL.
55 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
56 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
57 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
58 (MOSTLYCLEANFILES): New var.
59 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
60 (stdbool.h): New rule.
61 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
62 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
63 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
64 m4/quote.m4: Upgrade to today's gnulib.
65
66 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
67 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
68 the tests right now.
69 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
70 yyerror are declared before use; C99 requires this.
71
25005f6a
PH
722003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
73
74 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
75 first.
76 (yyrecoverSyntaxError): Correct the logic for setting and testing
77 yyerrState.
78 Correct comment on handling EOF.
79 Allow states with only a default reduction, rather than failing
8dd76bee 80 (I can't quite reconstruct why these were not allowed before).
25005f6a
PH
81
82 Fixes to avoid problem that $-N rules in GLR parsers can cause
83 buffer overruns, corrupting state.
8dd76bee
PE
84
85 * src/output.c (prepare_rules): Output max_left_semantic_context
25005f6a
PH
86 definition.
87 * src/reader.h (max_left_semantic_context): New variable declaration.
88 * src/scan-gram.l (max_left_semantic_context): Define.
89 (handle_action_dollar): Update max_left_semantic_context.
90 * data/glr.c (YYMAXLEFT): New definition.
91 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
92 (yyresolveAction): Ditto.
93
94 Fixes to problems with location handling in GLR parsers reported by
95 Frank Heckenbach (2003/06/05).
96
97 * data/glr.c (YYLTYPE): Make trivial if locations not used.
98 (YYRHSLOC): Add parentheses, and define only if locations used.
99 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
100 locations not used.
101 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
102 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
8dd76bee 103
25005f6a
PH
104 * tests/cxx-type.at: Exercise location information; update tests
105 to differentiate output with and without locations.
8dd76bee 106 Remove forward declarations of yylex and yyerror---caused errors
25005f6a
PH
107 because default YYLTYPE not yet defined.
108 Change semantic actions to compute strings, rather than printing
109 them directly (to test proper passing of semantics values). Change
110 output to prefix notation and update test data and expected results.
111 (yylex): Track locations.
112 (stmtMerge): Return value rather than printing, and include arguments
113 in value.
8dd76bee 114
711f40b7
PE
1152003-06-03 Paul Eggert <eggert@twinsun.com>
116
117 Avoid warnings generated by GCC 2.95.4 when Bison is
118 configured with --enable-gcc-warnings.
119 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
120 yy::]b4_parser_class_name[::translate_,
121 yy::Stack::operator[] (unsigned),
122 yy::Stack::operator[] (unsigned) const,
123 yy::Slice::operator[] (unsigned),
124 yy::Slice::operator[] (unsigned) const):
125 Rename local vars to avoid warnings.
126 * tests/glr-regression.at (Improper handling of embedded actions
127 and $-N in GLR parsers): Remove unused local variable from yylex.
128 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
129 (void) as arg when not pure, since we now assume C89 when building
130 Bison. Pacify GCC by using parameter.
131
ac695f7d
PE
1322003-06-02 Paul Eggert <eggert@twinsun.com>
133
134 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
135 yy::Location::lines, yy::Location::columns): Rename arguments
136 to avoid shadowing; this removes a warning generated by GCC 3.3.
137
26ec81e0
PE
1382003-06-01 Paul Eggert <eggert@twinsun.com>
139
140 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
141 to g++, as GCC 3.3 complains if you do it.
142 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
143 everything that WARNING_CFLAGS has, except omit warnings
144 not suitable for C++.
145 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
146 * tests/atlocal.in (CXXFLAGS): New var.
147 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
148
149 Fix a GLR parser bug I reported in February; see
150 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
151 The problem was that GLR parsers did not conform to the C standard,
152 because actions like { $1 = $2 + $3; } expanded to expressions
153 that invoked YYFILL in separate subexpressions, and YYFILL assigned
154 to a local variable. The C standard says that expressions
155 like (var = f ()) + (var = f ()) have undefined behavior.
156 Another problem was that GCC sometimes issues warnings that
157 yyfill and its parameters are unused.
158
159 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
160 as possibly unused.
161 (yyfill): New function.
162 (YYFILL): Use it.
163 (yyuserAction): Change type of yynormal to bool, so that it matches
164 the new yyfill signature. Mark it as possibly unused.
165
166
167 Follow up on a bug I reported in February, where a Bison-generated
168 parser can loop. Provide a test case and a fix for yacc.c. I
169 don't have a fix for lalr1.cc or for glr.c, unfortunately.
170 The original bug report is in:
171 <http://mail.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
172
173 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
174 macro's size was becoming unwieldy.
175 (yyerrlab): Do not discard an empty lookahead symbol, as this
176 might destroy garbage.
177 (yyerrorlab): New label, with the old contents of YYERROR,
178 plus the following change: pop the stack of rhs corresponding
179 to the production that invoked YYERROR. That is how Yacc
180 behaves, and POSIX requires this behavior.
181 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
182 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
183 Define 'alarm' to do nothing if unistd.h is not available.
184 Add a new rule "exp: '-' error;" to test the above change to
185 data/yacc.c. Use 'alarm' to abort any test taking longer than
186 10 seconds, as it's probably looping.
187 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
188 Also, the new yacc.c generates two fewer diagnostics for an
189 existing test.
190
d0829076
PE
1912003-05-24 Paul Eggert <eggert@twinsun.com>
192
c6ae27df
PE
193 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
194 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
195 This fixes a problem reported by John Bowman when the Compaq/HP
196 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
197 -ansi -Wall -gall).
198 * data/yacc.c (union yyalloc): Likewise.
199 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
26ec81e0 200
d0829076
PE
201 Switch from 'int' to 'bool' where that makes sense.
202
203 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
204 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
205 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
206 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
207 Return or accept bool, not int. All callers changed.
208 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
209 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
210 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
211 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
212 bitset_or_and_cmp_): Likewise.
213 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
214 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
215 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
216 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
217 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
218 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
219 bitset_stats_or_and_cmp): Likewise.
220 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
221 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
222 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
223 ebitset_xor_cmp): Likewise.
224 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
225 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
226 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
227 lbitset_xor_cmp): Likewise.
228 * lib/bbitset.h: Include <stdbool.h>.
229 (struct bitset_vtable): The following members now return bool, not
230 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
231 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
232 or_and_cmp).
233 * src/conflicts.c (count_rr_conflicts): Likewise.
234 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
235 All uses changed.
236 * lib/ebitset.c (ebitset_obstack_init): Likewise.
237 * lib/lbitset.c (lbitset_obstack_init): Likewise.
238 * src/getargs.c (debug_flag, defines_flag, locations_flag,
239 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
240 graph_flag): Likewise.
241 * src/getargs.h (debug_flag, defines_flag, locations_flag,
242 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
243 graph_flag): Likewise.
244 * src/output.c (error_verbose): Likewise.
245 * src/output.h (error_verbose): Likewise.
246 * src/reader.c (start_flag, typed): Likewise.
247 * src/reader.h (typed): Likewise.
248 * src/getargs.c (LOCATIONS_OPTION): New constant.
249 (long_options, getargs): Use it.
250 * src/lalr.c (build_relations): Use bool, not int.
251 * src/nullable.c (nullable_compute): Likewise.
252 * src/print.c (print_reductions): Likewise.
253 * src/tables.c (action_row, pack_vector): Likewise.
254 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
255 * src/output.c (prepare): Use it.
256 * src/output.c (token_definitions_output,
257 symbol_destructors_output, symbol_destructors_output): Use string,
258 not boolean integer, to keep track of whether to output separator.
259 * src/print_graph.c (print_core): Likewise.
260 * src/state.c (state_rule_lookaheads_print): Likewise.
261
262 * config/install-sh: Sync from automake 1.7.5.
263
6b2584b7
PE
2642003-05-14 Paul Eggert <eggert@twinsun.com>
265
266 * src/parse-gram.y (rules_or_grammar_declaration): Require a
267 semicolon after a grammar declaration, in the interest of possible
268 future changes to the Bison input language.
269 Do not allow a stray semicolon at the start of the grammar.
270 (rhses.1): Allow one or more semicolons after any rule, including
271 just before "|" as required by POSIX.
272 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
273 grammar.
274
caf37a36
ADL
2752003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
276
277 %parse-param support for lalr1.cc.
278
279 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
280 b4_cc_constructor_calls, b4_cc_constructor_call,
281 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
282 definitions.
283 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
284 parse-param arguments.
285 (yy::b4_parser_class_name): Declare instance variables to
286 hold parse-param arguments.
287 * tests/calc.at: s/value/semantic_value/ because value clashes
288 with a member of yy::b4_parser_class_name. Adjust C++ code
289 to handle %parse-param. Enable %parse-param test in C++.
290
3ab37077
PE
2912003-05-12 Paul Eggert <eggert@twinsun.com>
292
293 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
294 English a bit. Fix fclose typo. Change "const char" to "char
295 const", and use ANSI C rather than K&R for "main". Suggest
296 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
297 and suggest yy_switch_to_buffer.
298
2992003-05-05 Paul Eggert <eggert@twinsun.com>
163ab321
PE
300
301 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
302 C89. This avoids a diagnostic on compilers that define __STDC__
303 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
304 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
305
e743727f
PE
3062003-05-03 Paul Eggert <eggert@twinsun.com>
307
308 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
309 Do not overrun array bounds.
310 This should fix a bug reported today by Olatunji Oluwabukunmi in
311 <http://mail.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
312
916708d5
AD
3132003-04-29 Akim Demaille <akim@epita.fr>
314
315 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
316 * src/getargs.c, src/getargs.h: here, as bool, not int.
317 (nondeterministic_parser): New.
318 * src/parse-gram.y, src/scan-gram.l: Support
319 %nondeterministic-parser.
320 * src/output.c (prepare): Use nondeterministic_parser instead
321 of glr_parser where appropriate.
322 * src/tables.c (conflict_row, action_row, save_row)
323 (token_actions, token_actions, pack_vector): Ditto.
324
a06ea4aa
AD
3252003-04-29 Akim Demaille <akim@epita.fr>
326
327 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
328
211074ca
AD
3292003-04-29 Akim Demaille <akim@epita.fr>
330
331 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
332 with %pure-parser and %locations to exercise the patch from Yakov
333 Markovitch below.
334
6175ffe3
PE
3352003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
336
337 * data/yacc.c: (b4_lex_param): Corrected for the case where
338 %lex-param is provided and %pure-parser isn't.
339
b1e95857
PE
3402003-04-27 Paul Eggert <eggert@twinsun.com>
341
342 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
343 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
344 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
345 if it is not defined.
346 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
347
acda9df6
PE
3482003-04-26 Paul Eggert <eggert@twinsun.com>
349
3470c57b
PE
350 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
351 Declare to be of type suitable for the ninf value itself, not of
352 type suitable for the corresponding table, since the latter might
353 be unsigned but the ninf value might be negative. This fixes a
354 bug reported by Alexandre Duret-Lutz in
355 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
356
acda9df6
PE
357 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
358 invokes it. We shouldn't invoke it twice because it will attempt
359 to put error.o in the archive twice. This fixes a glitch reported
360 by Martin Mokrejs in
361 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
362
b5250f26
PE
3632003-04-21 Paul Eggert <eggert@twinsun.com>
364
365 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
366 to gnulib.
367
089ac0f1
PE
3682003-04-21 Yakov Markovitch <Markovitch@iso.ru>
369
370 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
371 Fix obvious typo that results in uncompilable GLR parsers
372 when both %pure-parser and %locations are used. (trivial change)
373
5ededac6
PE
3742003-04-17 Paul Eggert <eggert@twinsun.com>
375
1b8f2fff
PE
376 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
377 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
378 Do not insert the expected token via unput, as this runs afoul
379 of a POSIX-compatibility bug in flex 2.5.31.
380 All uses changed to BEGIN the parent state,
381 since we no longer insert the expected token via unput.
382 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
383 that is no longer emitted after the above change.
384
5ededac6
PE
385 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
386 the first one. This change is from Paul Hilfinger, and it fixes
387 regression reported by Werner Lemberg in
388 <http://mail.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
389
390 (resolve_sr_conflict): Don't invoke state_errs_set
391 unless one or more tokens have been explicitly made errors.
392 Otherwise, the above change causes Bison to abort.
393
394 * tests/existing.at (GNU pic Grammar): New test case, taken from
395 Lemberg's email.
396
b8be9132
AD
3972003-03-31 Akim Demaille <akim@epita.fr>
398
399 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
400
d423d460
AD
4012003-03-31 Akim Demaille <akim@epita.fr>
402
403 * src/output.c (prepare_symbols): Avoid trailing spaces in the
404 output.
405
c7e441b4
AD
4062003-03-31 Akim Demaille <akim@epita.fr>
407
408 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
409 From Paul Hilfinger.
410
231897ad
AD
4112003-03-29 Akim Demaille <akim@epita.fr>
412
413 * m4/error.m4: Do not put under dynamic conditions some code which
414 expansion is under static control.
415
5b066063
AD
4162003-03-29 Akim Demaille <akim@epita.fr>
417
418 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
419
22a74fec
AD
4202003-03-29 Akim Demaille <akim@epita.fr>
421
422 * doc/bison.texinfo (Strings are Destroyed): New.
423
0eee27e7
PE
4242003-03-13 Paul Eggert <eggert@twinsun.com>
425
426 * .cvsignore: Add configure.lineno.
427 * src/.cvsignore: Add yacc.
428 * tests/.cvsignore: Add testsuite.log.
429 * doc/fdl.texi: Sync with latest FSF version.
430
f61aad93
PE
4312003-03-12 Paul Eggert <eggert@twinsun.com>
432
537636c7
PE
433 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
434 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
435 cursor, instead of leaving it undefined. This fixes a bug
436 reported by Tim Van Holder in
437 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
438 * tests/input.at (Torturing the Scanner): Test the scanner on
439 an empty input file, which was Tim Van Holder's test case.
440
441 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
442 <sys/resource.h> can be included, include sys/time.h and
443 sys/times.h first, if available. This works around the SunOS
444 4.1.4 porting bug reported by Bruce Becker in
445 <http://mail.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
446
447 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
448 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
449 AC_HEADER_SYS_WAIT.
450
f61aad93
PE
451 Merge changes from gnulib. This was prompted because the CVS
452 snapshot didn't build on Solaris 7 due to strnlen problems.
453
454 These changes need to be merged back into gnulib:
455 * lib/hash.c: Include <stdbool.h> unconditionally.
456 * m4/onceonly.m4 (m4_quote): New macro.
457 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
458 Quote AC_FOREACH variable-expansions properly.
459 The 2003-01-03 obstack.h change also needs merging.
460 {end of changes requiring merging}
5b066063 461
f61aad93
PE
462 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
463 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
464 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
465 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
466 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
467 New files, imported from gnulib.
468 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
469 above.
470
471 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
472 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
473 gnulib sources.
474
475 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
476 Add.
477 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
478 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
479 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
480 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
481 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
482 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
483 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
484 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
485 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
486 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
487 (jm_PREREQ_ARGMATCH): Remove.
488 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
489 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
490
491 * src/system.h: Include <stdbool.h> unconditionally.
492
493 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
494 assuming at least C89 in the bitset code for some time now.
495
d2ffe116
AD
4962003-03-03 Akim Demaille <akim@epita.fr>
497
498 * ro.po: New.
499
052826fd
AD
5002003-03-02 Akim Demaille <akim@epita.fr>
501
502 * doc/bison.texinfo (Table of Symbols): Reactivate the
503 documentation for %lex-param, and %parse-param.
504
c4749565
AD
5052003-03-02 Akim Demaille <akim@epita.fr>
506
507 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
508 generate verbose error messages.
509 Use the number of tokens as an upper bound in yytname, as it
510 cannot be a non terminal.
511
d5286af1
AD
5122003-03-02 Akim Demaille <akim@epita.fr>
513
514 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
515 message.
516
22e304a6
AD
5172003-03-02 Akim Demaille <akim@epita.fr>
518
22e304a6
AD
519 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
520 Use them to exercise yycheck overrun.
521 Based on Andrew Suffield's grammar.
522
67a25fed
AD
5232003-03-02 Akim Demaille <akim@epita.fr>
524
525 Create tests/local.at for Bison generic testing macros.
526
527 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
528 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
529 This new file.
530 * tests/calc.at (AT_CHECK_CALC): Adjust.
531 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
532 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
533 * tests/local.at: here.
534 (AT_COMPILE_CXX): Tags the tests using it as c++.
535 Ignore the test if CXX is not functional.
536
9c2b381f
PE
5372003-03-01 Paul Eggert <eggert@twinsun.com>
538
539 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
540 not loc->end, since loc->end might contain garbage and this leads
541 to undefined behavior on some platforms.
542 (id_loc, token_start): Use (IF_LINTed) initial values that do not
543 depend on *loc, so that the reader doesn't give the the false
544 impression that *loc is initialized.
545 (<INITIAL>"%%"): Do not bother setting code_start, since its value
546 does not survive the return.
547
0433ba88
AD
5482003-03-01 Akim Demaille <akim@epita.fr>
549
550 * src/scan-gram.l (code_start): Always initialize it when entering
551 into yylex, as SC_EPILOGUE is activated *before* the corresponding
552 yylex invocation. An alternative would be making it static, but
553 then it starts with the second %%'s beginning, instead of its end.
554
b305ea69
PE
5552003-02-28 Paul Eggert <eggert@twinsun.com>
556
557 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
558 around a UnixWare 7.1.1 porting bug reported by John Hughes in
559 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
560
c3d25e01
PE
5612003-02-26 Paul Eggert <eggert@twinsun.com>
562
563 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
564 Remove Sequent/Pyramid discussion (nobody uses them any more).
565 Merge VMS and MS-DOS discussion; these ports may well be dead
566 but let's keep mentioning them for now. Put <> around email
567 addresses. Add copyright notice.
568
c267ffbc
PE
5692003-02-24 Paul Eggert <eggert@twinsun.com>
570
571 * data/glr.c (yy_reduce_print): yylineno -> yylno,
572 to avoid collision with flex use of yylineno.
573 Problem reported by Bruce Lilly in
574 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
575 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
576 * data/yacc.c (yy_reduce_print): Likewise.
577
578 * config/depcomp: Sync with Automake 1.7.3.
579
f939fc12
AD
5802003-02-21 Akim Demaille <akim@epita.fr>
581
582 * data/lalr1.cc: Use temporary variables instead of casts to
583 change integer types.
584 Suggested by Paul Eggert.
585
95923bd6
AD
5862003-02-21 Akim Demaille <akim@epita.fr>
587
588 * doc/bison.texinfo: Use "location" consistently to refer to @n,
589 to avoid confusions with lalr1.cc's notion of Position.
590 Suggested by Paul Eggert.
591
2cdc240e
AD
5922003-02-20 Akim Demaille <akim@epita.fr>
593
594 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
595 before initial_columns.
596 (location.hh): Use consistent variable names when defining the
597 operator<<.
598 Use "last" so that we subtract from Positions, not from unsigned.
599
5d003116
AD
6002003-02-20 Akim Demaille <akim@epita.fr>
601
602 * data/lalr1.cc (position.hh): New subfile, including the extended
603 and Doxygen'ed documentation of class Position.
604 (location.hh): Use it.
605 Document a` la Doxygen.
ba1ecc07 606 With the help of Benoit Perrot.
5d003116 607
d02b25f9
AD
6082003-02-20 Akim Demaille <akim@epita.fr>
609
610 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
611 AT_YACC_IF.
612 Redefine AT_YYERROR_SEES_LOC_IF using it.
613 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
614 not defined.
615 Don't use the location in yy::Parser::error_ and
616 yy::Parser::print_ when not %locations.
617 Activate more lalr1.cc tests.
618
0d1c3a04
AD
6192003-02-19 Akim Demaille <akim@epita.fr>
620
621 * data/lalr1.cc: When displaying a line number, be sure to make it
622 an int.
623
60a777aa
AD
6242003-02-19 Akim Demaille <akim@epita.fr>
625
626 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
627 Remove, useless.
628 (YYABORT, YYACCEPT, YYERROR): New.
629 * tests/calc.at: Renable the lalr1.cc test.
630
0b86fc41
AD
6312003-02-19 Akim Demaille <akim@epita.fr>
632
633 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
634 error recovery, mixing with/without pops and discarding of the
635 lookahead.
636 Exercise YYERROR.
637 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
638
da99a5dc
PE
6392003-02-17 Paul Eggert <eggert@twinsun.com>
640
641 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
642 * tests/testsuite.at (AT_COMPILE): Use them.
643 This fixes the testsuite problem reported by Robert Lentz in
644 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
645
93b8c255
PE
6462003-02-12 Paul Eggert <eggert@twinsun.com>
647
648 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
649 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
650 <http://mail.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
651 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
652 Check for malloc failure, for consistency with yacc.c.
653 (yytname_size): Remove, for consistency with yacc.c.
654
655 The bug still remains in data/lalr1.cc, as I didn't have time
656 to fix it there.
657
7548fed2
AD
6582003-02-06 Akim Demaille <akim@epita.fr>
659
660 * configure.ac (GXX): Rename as...
661 (CXX): this, to keep the original Autoconf semantics.
662 Require 2.57.
663 * data/lalr1.cc: Fix b4_copyright invocations.
664 If YYDEBUG is not defined, don't depend upon name_ being defined.
665 (location.hh): Include string and iostream.
666 (Position::filename): New member.
667 (Position::Position ()): New.
668 (operator<< (Position)): New.
669 (operator- (Position, int)): New.
670 (Location::first, Location::last): Rename as...
671 (Location::begin, Location::end): these, to mock the conventional
672 iterator names.
673 (operator<< (Location)): New.
674 * tests/atlocal.in (CXX): New.
675 * tests/testsuite.at (AT_COMPILE_CXX): New.
676 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
677 locations in a more synthetic way.
678 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
679 lalr1.cc is used.
680 Adjust the C locations to match those from Emacs: first column is
681 column 0.
682 Change all the expected results.
683 Conform to the GCS: simplify the locations when applicable.
684 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
685 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
686 these CPP macros with the m4 macros new defined by...
687 (AT_CHECK_PUSHDEFS): this, i.e.:
688 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
d02b25f9 689 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
690 New macros.
691 (AT_CHECK_POPDEFS): Undefine them.
692 (AT_CHECK_CALC_LALR1_CC): New.
693 Use it for the first lalr1.cc test.
694
43a176ef
AD
6952003-02-04 Akim Demaille <akim@epita.fr>
696
697 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
698 Location as is defined.
699
fc049e9c
AD
7002003-02-04 Akim Demaille <akim@epita.fr>
701
702 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
703 name_ being defined.
704
a737b216
PE
7052003-02-03 Paul Eggert <eggert@twinsun.com>
706
707 * src/gram.h (start_symbol): Remove unused decl.
708
709 Use more-consistent naming conventions for local vars.
710
711 * src/derives.c (derives_compute): Change type of local var from
712 int to rule_number.
713 * src/gram.c (grammar_rules_partial_print): Likewise.
714 * src/print.c (print_core): Likewise.
715 * src/reduce.c (reduce_grammar_tables): Likewise.
716
717 * src/gram.c (grammar_dump): Change name of item_number *
718 local var from r to rp.
719 * src/nullable.c (nullable_compute): Likewise.
720
721 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
722
723 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
724 for symbol or symbol_number var.
725 * src/reader.c (grammar_start_symbol_set): Likewise.
726 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
727 Likewise.
728 * src/state.c (transitions_to): Likewise.
729 * src/state.h: Likewise.
730 * src/tables.c (symbol_number_to_vector_number): Likewise.
731
732 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
733 char * var.
734
735 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
736 var.
737
738 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
739 var.
740
741 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
742 Use str, not s, for char * var. Use ch, not c, for character var.
743 Use size for size var.
744
745 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
746 char * var.
747 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
748 uniqstr var.
749 * src/uniqstr.h: Likewise.
750
751 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
752 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
753 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
754 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
755 param to have same name as that of enum, so that we don't use
756 "s" to stand for a non-state.
757
68e93ad5
AD
7582003-02-02 Akim Demaille <akim@epita.fr>
759
760 * src/scan-skel.l: Scan more than one inert character per yylex
761 invocation.
762
92898986
PE
7632003-02-01 Paul Eggert <eggert@twinsun.com>
764
765 Version 1.875a.
766
1d9d5d71
PE
767 * po/LINGUAS: Add ms.
768
0435d061
AD
7692003-01-30 Akim Demaille <akim@epita.fr>
770
771 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
772
6029a57f
PH
7732003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
774
775 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
776 of $1.
0435d061
AD
777
778 Changes in response to error report by S. Eken: GLR mode does not
6029a57f
PH
779 handle negative $ indices or $ indices in embedded rules correctly.
780 See <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 781
6029a57f
PH
782 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
783 (b4_rhs_location): Ditto.
0435d061 784 (yyfill): New function to copy from stack tree into array
6029a57f 785 incrementally.
0435d061
AD
786 (yyuserAction): Modify to allow incremental move of semantic values
787 to rhs array when in GLR mode.
788 Define YYFILL to use in user-defined actions to fill semantic array
6029a57f
PH
789 as needed.
790 Remove dummy use of yystack, as there is now a guaranteed use.
791 (yydoAction): Modify to allow incremental move of semantic values
792 to rhs array when in GLR mode.
793 (yyresolveAction): Ditto.
794 (yyglrShiftDefer): Update comment.
0435d061 795 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
796 (yyglrReduce): Ditto.
797 (yydoAction): Ditto
0435d061 798
6029a57f
PH
799 * tests/glr-regr1.at: Rename to ...
800 * tests/glr-regression.at: Add new regression test for the problems
801 described above (adapted from S. Eken).
802 Update copyright notice.
803 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
804 * tests/Makefile.am: Ditto.
805
6cee6297
PE
8062003-01-28 Paul Eggert <eggert@twinsun.com>
807
808 * data/lalr1.cc: Do not use @output_header_name@ unless
809 b4_defines_flag is set. This fixes two bugs reported by
810 Tim Van Holder in
811 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
812 and <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
813
b2a836b5
PE
8142003-01-21 Paul Eggert <eggert@twinsun.com>
815
816 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
817 we don't need to worry about yyerrlab1 being reported as an
818 "unused label" by non-GCC C compilers. The downside is that if
819 locations are used then a couple of statements are duplicated each
820 time YYERROR is invoked, but the upside is that the warnings
821 should vanish.
822 (yyerrlab1): Move code to YERROR.
823 (yyerrlab2): Remove. Change uses back to yyerrlab1.
824 This reverts some of the 2002-12-27 change.
825
4196b931
PE
8262003-01-17 Paul Eggert <eggert@twinsun.com>
827
828 * src/output.c (symbol_printers_output): Fix typo that led
829 to core dump. Problem reported by Antonio Rus in
830 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
831
3ae831b4
AD
8322003-01-13 Akim Demaille <akim@epita.fr>,
833 Quoc Peyrot <chojin@lrde.epita.fr>,
834 Robert Anisko <anisko_r@lrde.epita.fr>
835
836 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
837 when the stacks contain one element, as the loop would otherwise
838 free the last state, and then use the top state (the one we just
839 popped). This means that the initial elements will not be freed
840 explicitly, as is the case in yacc.c; it is not a problem, as
841 these elements have fake values.
842
e3aa65c5
PE
8432003-01-11 Paul Eggert <eggert@twinsun.com>
844
845 * NEWS: %expect-violations are now just warnings, reverting
846 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
847 bootstrapping problem reported by Matthias Klose; see
848 <http://mail.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
849 * src/conflicts.c (conflicts_print): Likewise.
850 * tests/conflicts.at (%expect not enough, %expect too much,
851 %expect with reduce conflicts): Likewise.
852 * doc/bison.texinfo (Expect Decl): Document this. Also mention
853 that the warning is enabled if the number of conflicts changes
854 (not necessarily increases).
855
856 * src/getargs.c (version): Update copyright year.
857
f0057011
AD
8582003-01-09 Akim Demaille <akim@epita.fr>
859
860 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
861
1ee6d2a0
PE
8622003-01-08 Paul Eggert <eggert@twinsun.com>
863
864 * Makefile.maint (WGETFLAGS):
865 New macro, containing "-C off" to disable proxy caches.
866 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
867 (rel-check): Use $(WGET) instead of wget.
868
d4fd77c4
PE
8692003-01-06 Paul Eggert <eggert@twinsun.com>
870
871 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
872 the GLR paper of Scott, Johnstone and Hussain.
873
464c6927
PE
8742003-01-04 Paul Eggert <eggert@twinsun.com>
875
d600ee67
PE
876 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
877 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
878 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
879 (EXTRA_LIBRARIES): New var, for liby.a.
880 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
881 (EXTRA_SCRIPTS): New var, for yacc.
882
464c6927
PE
883 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
884 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
885 Problem reported by Nelson H. F. Beebe.
886
8872003-01-03 Paul Eggert <eggert@twinsun.com>
888
889 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
890 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
891 when compiling Bison 1.875's `bitset bset = obstack_alloc
892 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
893
894 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
895 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
896 grow to a huge size with typical invocation.
d600ee67 897
464c6927
PE
898 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
899 Use the pattern recommended by Autoconf 2.57, except also protect
900 against double-definition.
901 * src/system.h: Likewise.
902 Portability issues reported by Nelson H. F. Beebe.
d600ee67 903
464c6927
PE
904 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
905 All uses changed. Provide a definition in both C and C++.
906 (yytrue, yyfalse): Define even if defined (__cplusplus).
907
908 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
909 Reported by Nelson H. F. Beebe.
d600ee67 910
464c6927
PE
911 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
912
0f42c7d5
PE
9132003-01-02 Paul Eggert <eggert@twinsun.com>
914
915 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
916 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
917 Bug reported by Nelson H. F. Beebe.
918
dc546b0f
PE
9192003-01-01 Paul Eggert <eggert@twinsun.com>
920
921 * Version 1.875.
922
2c09b6a7
PE
9232002-12-30 Paul Eggert <eggert@twinsun.com>
924
925 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
926 Moved here from...
927 (<INITIAL>","): Here. This causes stray "," to be treated
928 more uniformly.
929
dc546b0f 930 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
931 last brace in braced code when not in Yacc mode, for compatibility
932 with Bison 1.35. This resurrects the 2001-12-15 patch to
933 src/reader.c.
934
935 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
936 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
937
535c0f63
PE
9382002-12-28 Paul Eggert <eggert@twinsun.com>
939
940 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
941 that of SYM's type. This fixes Debian bug 168069, reported by
942 Thomas Olsson.
d600ee67 943
963fcc17
PE
9442002-12-28 Paul Eggert <eggert@twinsun.com>
945
946 Version 1.75f.
947
948 Switch back to the Yacc style of conflict reports, undoing some
949 of the 2002-07-30 change.
950 * doc/bison.texinfo (Understanding): Use Yacc style for
951 conflict reports. Also, use new way of locating rules.
952 * src/conflicts.c (conflict_report):
953 Renamed from conflict_report_yacc, removing the old
954 'conflict_report'. Translate the entire conflict report at once,
955 so that we don't assume that "," has the same interpretation in
956 all languages.
957 (conflicts_output): Use Yacc-style conflict report for each state,
958 instead of our more-complicated style.
959 (conflicts_print): Use Yacc-style conflict report, except print
960 the input file name when not emulating Yacc.
961 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
962 Conflicted Reduction, %expect not enough, %expect too much,
963 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
964 * tests/existing.at (GNU Cim Grammar): Likewise.
965 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
966
967 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
968 fatal): Don't invoke fflush; it's not needed and it might even be
969 harmful for stdout, as stdout might not be open.
970 * src/reduce.c (reduce_print): Likewise.
971
b1efe548
PE
9722002-12-27 Paul Eggert <eggert@twinsun.com>
973
974 Fix a bug where error locations were not being recorded correctly.
975 This problem was originally reported by Paul Hilfinger in
e3aa65c5 976 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
977
978 * data/yacc.c (yyparse): New local var yylerrsp, to record the
979 top of the location stack's error locations.
980 (yyerrlab): Set it. When discarding a token, push its location
981 onto yylerrsp so that we don't lose track of the error's end.
982 (yyerrlab1): Now is only the target of YYERROR, so that we can
983 properly record the location of the action that failed. For GCC
984 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
985 GCC warning about yyerrlab1 being unused if YYERROR is unused.
986 (yyerrlab2): New label, which yyerrlab now falls through to.
987 Compute the error's location by applying YYLLOC_DEFAULT to
988 the locations of all the symbols that went into the error.
989 * doc/bison.texinfo (Location Default Action): Mention that
990 YYLLOC_DEFAULT is also invoked for syntax errors.
991 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
992 Error locations include the locations of all the tokens that were
993 discarded, not just the last token.
d600ee67 994
983c5c2c
PE
9952002-12-26 Paul Eggert <eggert@twinsun.com>
996
b1efe548
PE
997 * src/files.c: Include quote.h.
998 (compute_output_file_names): Warn if we detect conflicting
999 outputs to the same file. This should catch the misunderstanding
1000 exemplified by Debian Bug 165349, reported by Bruce Stephens..
1001
1002 * src/conflicts.c (conflicts_print): If the user specifies
1003 "%expect N", report an error if there are any reduce/reduce
1004 conflicts. This is what the manual says should happen.
1005 This fixes Debian bug 130890, reported by Anthony DeRobertis.
1006 * tests/conflicts.at (%expect with reduce conflicts): New test.
1007
983c5c2c
PE
1008 Don't use m4_include on relative file names, as it doesn't work as
1009 desired if there happens to be a file with that name under ".".
d600ee67 1010
983c5c2c
PE
1011 * m4sugar/version.m4: Remove; it was included but it wasn't used.
1012 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
1013 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
1014 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
1015 * src/output.c (output_skeleton): Use full path names when
1016 specifying a file to include; don't rely on include path, as
1017 it's unreliable when the working file contains a file with
1018 that name.
d600ee67 1019
983c5c2c
PE
10202002-12-25 Paul Eggert <eggert@twinsun.com>
1021
1022 Remove obsolete references to bison.simple and bison.hairy.
1023 Problem mentioned by Aubin Mahe in
e3aa65c5 1024 <http://mail.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
1025 * data/glr.c: Comment fix.
1026 * doc/bison.1: Remove references. Also, mention "yacc".
1027
1028 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
1029 with -g option.
1030
1031 * src/parse-gram.y (declaration): Use enum "report_states" rather
1032 than its numeric value 1.
1033
1034 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
1035 opening a new one. This fixes Debian bug 165349, reported by
1036 Bruce Stephens.
1037
23f2d9dc
PE
10382002-12-24 Paul Eggert <eggert@twinsun.com>
1039
1040 Version 1.75e.
1041
1042 * Makefile.maint (cvs-update): Don't assume that the shell
1043 supports $(...), as Solaris sh doesn't.
1044
1045 * src/parse-gram.y (lloc_default): Remove test for empty
1046 nonterminals at the end, since it didn't change the result.
1047
10482002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
1049
1050 If the user does not define YYSTYPE as a macro, Bison now declares it
1051 using typedef instead of defining it as a macro. POSIX requires this.
1052 For consistency, YYLTYPE is also declared instead of defined.
1053
1054 %union directives can now have a tag before the `{', e.g., the
1055 directive `%union foo {...}' now generates the C code
1056 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
1057 The default union tag is `YYSTYPE', for compatibility with Solaris 9
1058 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
1059 instead of `yyltype'.
1060
1061 `yystype' and `yyltype' are now obsolescent macros instead of being
1062 typedefs or tags; they are no longer documented and will be
1063 withdrawn in a future release.
1064
1065 * data/glr.c (b4_location_type): Remove.
1066 (YYSTYPE): Renamed from yystype.
1067 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
1068 (struct YYLTYPE): Renamed from struct yyltype.
1069 (YYLTYPE): Renamed from yyltype.
1070 (yyltype, yystype): New (and obsolescent) macros,
1071 for backward compatibility.
1072 * data/yacc.c: Likewise.
1073
1074 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
1075 does not specify a union tag. This is for compatibility with
1076 Solaris 9 yacc.
1077
1078 * src/parse-gram.y (add_param): 2nd arg is now char * not char
1079 const *, since it is now modified by stripping surrounding { }.
1080 (current_braced_code): Remove.
1081 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
1082 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
1083 trailing " {...}". Now of type <chars>.
1084 (grammar_declaration): Adjust to bundled tokens.
1085 (code_content): Remove; stripping is now done by add_param.
1086 (print_token_value): Print contents of bundled tokens.
1087 (token_name): New function.
1088
1089 * src/reader.h (braced_code, current_braced_code): Remove.
1090 (token_name): New decl.
1091
1092 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
1093 token_type, not braced_code code_kind. All uses changed.
1094 (SC_PRE_CODE): New state, for scanning after a keyword that
1095 has (or usually has) an immediately-following braced code.
1096 (token_type): New local var, to keep track of which token type
1097 to return when scanning braced code.
1098 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
dc546b0f 1099 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
1100 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
1101 instead of returning a token type immediately.
1102 (<INITIAL>"{"): Set token type.
1103 (<SC_BRACED_CODE>"}"): Use it.
1104 (handle_action_dollar, handle_action_at): Now returns bool
1105 indicating success. Fail if ! current_rule; this prevents a core dump.
1106 (handle_symbol_code_dollar, handle_symbol_code_at):
1107 Remove; merge body into caller.
1108 (handle_dollar, handle_at): Complain in invalid contexts.
1109
1110 * NEWS, doc/bison.texinfo: Document the above.
1111 * NEWS: Fix years and program names in copyright notice.
1112
879ca4f8
PE
11132002-12-17 Paul Eggert <eggert@twinsun.com>
1114
1115 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
1116 Reporting, Table of Symbols): Omit mentions of %lex-param and
1117 %parse-param from the documentation for now.
1118
1c5fe69d
PE
11192002-12-15 Paul Eggert <eggert@twinsun.com>
1120
1121 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
1122 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
1123 lookahead symbol, and which sets yychar in parser actions) and it
7ea9026a
PE
1124 disagreed with the Bison documentation. Bug
1125 reported by Andrew Walrond.
d600ee67 1126
1c5fe69d
PE
1127 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
1128 as the caller now does that.
1129 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
1130 (YYEMPTY): Parenthesize right hand side, since others use it.
1131 (yyparse): Don't assume that our generated code is the only code
1132 that sets yychar.
1133
d1de5372
PE
11342002-12-13 Paul Eggert <eggert@twinsun.com>
1135
1136 Version 1.75d.
1137
1138 POSIX requires a "yacc" command.
1139 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
1140 (MOSTLYCLEANFILES): Add yacc.
1141 (yacc): New rule.
1c5fe69d 1142 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
1143 as an alias for bison y.
1144
1145 * po/LINGUAS: Add da.
d600ee67 1146
d1de5372
PE
1147 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
1148 problem with latest <getopt.h>.
1149 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
1150
1151 * doc/fdl.texi: Upgrade to 1.2.
1152 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
1153 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
1154 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
1155 gnulib.
1156 * config/install-sh: Sync with autotools.
1157
1158 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
e3aa65c5 1159 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
1160 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
1161 locations are requested.
1162 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
1163 locations are requested.
1164
d0f3fe23
PE
11652002-12-12 Paul Eggert <eggert@twinsun.com>
1166
1167 Remove unportable casts and storage allocation tricks.
1168 While we're at it, remove almost all casts, since they
1169 usually aren't needed and are a sign of trouble.
1170
1171 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
1172
1173 * src/derives.c (derives_compute): Do not subtract NTOKENS from
1174 the pointer DSET returned by malloc; this isn't portable.
1175 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
1176 Similarly for DERIVES.
1177 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
1178 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
1179 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
1180
1181 * src/derives.c (derives_compute): Do not bother invoking
1182 int_of_rule_number, since rule numbers are integers.
1183
1184 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
1185 rather than XMALLOC (char, N).
1186
1187 * src/files.c (filename_split): Rewrite to avoid cast.
1188
1189 * src/gram.h (symbol_number_as_item_number,
1190 item_number_as_symbol_number, rule_number_as_item_number,
1191 item_number_as_rule_number):
1192 Now inline functions rather than macros, to avoid casts.
1193 * src/state.h (state_number_as_int): Likewise.
1194 * src/tables.c (state_number_to_vector_number,
1195 symbol_number_to_vector_number): Likewise.
1196
1197 * src/gram.h (int_of_rule_number): Remove; no longer used.
1198
1199 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
1200 since the resulting storage is always stored into.
1201
1202 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
1203 where it's needed.
1204
1205 * src/muscle_tab.c (muscle_m4_output):
1206 Now inline. Return bool, not int.
1207 * src/state.c (state_compare): Likewise.
1208 * src/symtab.c (symbol_check_defined,
1209 symbol_check_alias_consistency, symbol_pack, symbol_translation,
1210 hash_compare_symbol, hash_symbol):
1211 Likewise.
1212 * src/uniqstr.c (uniqstr_print): Likewise.
1213 * src/muscle_tab.c (muscle_m4_output_processor):
1214 New function, to avoid casts.
1215 * src/state.c (state_comparator, stage_hasher): Likewise.
1216 * src/symtab.c (symbol_check_defined_processor,
1217 symbol_check_alias_consistency_processor, symbol_pack_processor,
1218 symbol_translation_processor, hash_symbol_comparator,
1219 hash_symbol_hasher): Likewise.
1220 * src/uniqstr.c (uniqstr_print_processor): Likewise.
1221 * src/muscle_tab.c (muscles_m4_output):
1222 Use new functions instead of casting old functions unportably.
1223 * src/state.c (state_hash_new): Likewise.
1224 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
1225 symbols_token_translations_init):
1226 Likewise.
1227 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
1228
1229 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
1230 var instead of casting to long, to avoid casts.
1231 (prepare_states): Use MALLOC rather than alloca, so that we don't
1232 have to worry about alloca.
1233 * src/state.c (state_hash_lookup): Likewise.
1234
1235 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
1236 local var instead of casting to unsigned char, to avoid casts.
1237
1238 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
1239 STATE_ALLOC): Remove.
1240 (transitions_new, errs_new, reductions_new, state_new): Use malloc
1241 rather than calloc, and use offsetof to avoid allocating slightly
1242 too much storage.
1243 (state_new): Initialize all members.
1244
1245 * src/state.c (state_hash): Use unsigned accumulator, not signed.
1246
1247 * src/symtab.c (symbol_free): Remove; unused.
1248 (symbol_get): Remove cast in lhs of assignment.
1249 (symbols_do): Now static. Accept generic arguments, not
1250 hashing-related ones.
1251
1252 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
1253 (symbol_processor): Remove.
1254 (symbols_do): Remove decl; now static.
1255
1256 * src/system.h (alloca): Remove; decl no longer needed.
1257 (<stddef.h>): Include, for offsetof.
1258 (<inttypes.>, <stdint.h>): Include if available.
1259 (uintptr_t): New type, if system lacks it.
1260 (CALLOC, MALLOC, REALLOC): New macros.
1261 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
1262 new macros.
1263
1264 * src/tables.c (table_size): Now int, to pacify GCC.
1265 (table_grow, table_ninf_remap): Use signed table size.
1266 (save_row): Don't bother initializing locals when not needed.
1267 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
1268 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
1269
1270 * src/vcg.h: Correct misspellings.
1271
1272 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
1273
1274
1275 * src/getargs.c (getargs): Don't assume EOF == -1.
1276
26b4a969
PE
12772002-12-09 Paul Eggert <eggert@twinsun.com>
1278
1279 Change identifier spellings to avoid collisions with names
1280 that are reserved by POSIX.
1281
1282 Don't use names ending in _t, since POSIX reserves them.
1283 For consistency, remove _e and _s endings -- they're weren't
1284 needed to remove ambiguity. All uses changed.
1285 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
1286 turn was just renamed from struniq_t.
1287 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
1288 which in turn was just renamed from struniq_processor_t.
1289 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
1290 in turn was renamed from hash_compare_struniq_t.
1291 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
1292 (state_list): Renamed from state_list_t.
1293 * src/assoc.h (assoc): Renamed from assoc_t.
1294 * src/conflicts.c (enum conflict_resolution): Renamed from
1295 enum conflict_resolution_e.
1296 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
1297 (rule_list): Renamed from rule_list_t.
1298 * src/getargs.h (enum trace): Renamed from enum trace_e.
1299 (enum report): Renamed from enum report_e.
1300 * src/gram.h (item_number): Renamed from item_number_t.
1301 (rule_number): Renamed from rule_number_t.
1302 (struct rule_s): Remove the "rule_s" part; not used.
1303 (rule): Renamed from rule_t.
1304 (rule_filter): Renamed from rule_filter_t.
1305 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
1306 (goto_list): Renamed from goto_list_t.
1307 * src/lalr.h (goto_number): Renamed from goto_number_t.
1308 * src/location.h (location): Renamed from location_t.
1309 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
1310 and moved here from:
1311 * src/muscle_tab.h (muscle_entry_t): here.
1312 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
1313 (rule_list): Renamed from rule_list_t.
1314 * src/print_graph.c (static_graph): Renamed from graph.
1315 * src/reader.h (braced_code): Renamed from braced_code_t.
1316 Remove brace_code_e tag.
1317 * src/relation.h (relation_node): Renamed from relation_node_t.
1318 (relation_nodes): Renamed from relation_nodes_t.
1319 (relation): Renamed from relation_t.
1320 * src/state.h (state_number): Renamed from state_number_t.
1321 (struct state): Renamed from struct state_s.
1322 (state): Renamed from state_t.
1323 (transitions): Renamed from transitions_t. Unused (and
1324 misspelled) transtion_s tag removed.
1325 (errs): Renamed from errs_t. Unused errs_s tag removed.
1326 (reductions): Renamed from reductions_t. Unused tag
1327 reductions_s removed.
1328 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
1329 (struct symbol_list): Renamed from struct symbol_list_s.
1330 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
1331 (struct symbol): Renamed from struct symbol_s.
1332 (symbol): Renamed from symbol_t.
1333 * src/tables.c (vector_number): Renamed from vector_number_t.
1334 (action_number): Renamed from action_t.
1335 * src/tables.h (base_number): Renamed from base_t.
1336 * src/vcg.h (enum color): Renamed from enum color_e.
1337 (enum textmode): Renamed from enum textmode_e.
1338 (enum shape): Renamed from enum shape_e.
1339 (struct colorentry): Renamed from struct colorentry_s.
1340 (struct classname): Renamed from struct classname_s.
1341 (struct infoname): Renamed from struct infoname_s.
1342 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
1343 (enum decision): Renamed from enum decision_e.
1344 (enum orientation): Renamed from enum orientation_e.
1345 (enum alignment): Renamed from enum alignment_e.
1346 (enum arrow_mode): Renamed from enum arrow_mode_e.
1347 (enum crossing_type): Renamed from enum crossing_type_e.
1348 (enum view): Renamed from enum view_e.
1349 (struct node): Renamed from struct node_s.
1350 (node): Renamed from node_t.
1351 (enum linestyle): Renamed from enum linestyle_e.
1352 (enum arrowstyle): Renamed from enum arrowstyle_e.
1353 (struct edge): Renamed from struct edge.
1354 (edge): Renamed from edge_t.
1355 (struct graph): Renamed from struct graph_s.
1356 (graph): Renamed from graph_t.
1357 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
1358 Rename value_t -> value.
1359 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
1360 value_t_as_yystype -> value_as_yystype.
1361
1362 Don't include <errno.h> in the mainstream code, since it
1363 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
1364 * lib/get-errno.c, lib/get-errno.h: New files.
1365 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
1366 get-errno.c.
1367 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
1368 * src/output.c (output_skeleton): Likewise.
1369 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
1370 instead of errno.
1371 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
1372 Likewise.
1373 (handle_action_dollar, handle_action_at): Likewise.
1374 * src/system.h: Do not include <errno.h>.
1375 (TAB_EXT): Renamed from EXT_TAB.
1376 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
1377
1378 Avoid str[a-z]*, since <string.h> reserves that name space.
1379 Change all instances of "struniq" in names to "uniqstr", and
1380 likewise for "STRUNIQ" and "UNIQSTR".
1381 * src/uniqstr.c: Renamed from src/struniq.c.
1382 * src/uniqstr.h: Renamed from src/struniq.h.
1383 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
1384 * src/files.c (strsuffix): Remove; unused.
1385 (concat2): Renamed from stringappend. Now static.
1386 * src/files.h (strsuffix, stringappend): Remove; unused.
1387 * src/parse-gram.y (<chars>): Renamed from <string>.
1388 (<uniqstr>): Renamed from <struniq>.
1389 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
1390 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
1391 (struct graph_s.expand): Renamed from struct graph_s.stretch.
1392 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
1393 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
1394 (N_EXPAND): Renamed from N_STRETCH.
1395
1396 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
1397 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
1398 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
1399 Remove; unused.
1400 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
1401 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
1402 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
1403 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
1404 (BASE_MAXIMUM): Renamed from BASE_MAX.
1405 (BASE_MINIMUM): Renamed from BASE_MIN.
1406 (ACTION_MAX): Remove; unused.
1407 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
1408 Unnecessary casts removed from above defines.
1409
1410
1411 Fix misspelling in names.
1412 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
1413 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
1414 G_NODE_ALIGNEMENT.
1415
1416
1417 * lib/timevar.c (timevar_report): Renamed from time_report,
1418 for consistency with other names.
1419 * lib/timevar.h (timevar_report): New decl.
1420 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
1421
1422
1423 Sort include-file uses.
1424
1425 Reorder all include files under src to be in the order "system.h".
1426 then the ../lib include files in angle brackets (alphabetized),
1427 then the . include files in double-quotes (alphabetized). Fix
1428 dependency breakages encountered in this process, as follows:
1429 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
1430 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
1431 * src/state.h: Include "symtab.h".
1432
996b1c7e
PE
14332002-12-08 Paul Eggert <eggert@twinsun.com>
1434
1435 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
1436 since this causes problems when __file__ contains character
1437 sequences like "@" that are treated specially by src/scan-skel.l.
1438 Instead, just use the file's basename. This fixes the bug
1439 reported by Martin Mokrejs in
e3aa65c5 1440 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 1441
e19c4e5d
PE
14422002-12-06 Paul Eggert <eggert@twinsun.com>
1443
1444 Add support for rules that do not have trailing semicolons, as
1445 POSIX requires. Improve the quality of locations in Bison
1446 diagnostics.
26b4a969 1447
e19c4e5d
PE
1448 * src/location.c: Include <quotearg.h>.
1449 (empty_location): Now const.
1450 (location_print): New function. Follow the recommendation of the
1451 GNU Coding Standards for locations that span file boundaries.
1452 * src/location.h: Do not include <quotearg.h>; no longer needed.
1453 (boundary): New type.
1454 (location_t): Use it. This allows locations to span file boundaries.
1455 All member uses changed: file -> start.file or end.file (as needed),
1456 first_line -> start.line, first_column -> start.column,
1457 last_line -> end.line, last_column -> end.column.
1458 (equal_boundaries): New function.
1459 (LOCATION_RESET, LOCATION_STEP): Remove.
1460 (LOCATION_PRINT): Remove. All callers changed to use location_print.
1461 (empty_location): Now const.
1462 (location_print): New decl.
1463 * src/parse-gram.y (lloc_default): New function, which handles
1464 empty locations more accurately.
1465 (YYLLOC_DEFAULT): Use it.
1466 (%token COLON): Remove.
1467 (%token ID_COLON): New token.
26b4a969 1468 (rules): Use it.
e19c4e5d
PE
1469 (declarations, rules): Remove trailing semicolon.
1470 (declaration, rules_or_grammar_declaration):
1471 Allow empty (";") declaration.
1472 (symbol_def): Remove empty actions; no longer needed.
1473 (rules_or_grammar_declaration): Remove trailing semicolon.
1474 (semi_colon.opt): Remove.
1475 * src/reader.h: Include location.h.
1476 (scanner_cursor): New decl.
1477 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
1478 rolling our own.
1479 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
1480 of *loc.
1481 (STEP): Remove. No longer needed, now that adjust_location does
1482 the work. All uses removed.
1483 (scanner_cursor): New var.
1484 (adjust_location): Renamed from extend_location. It now sets
1485 *loc and adjusts the scanner cursor. All uses changed.
1486 Don't bother testing for CR.
1487 (handle_syncline): Remove location arg; now updates scanner cursor.
1488 All callers changed.
1489 (unexpected_end_of_file): Now accepts start boundary of token or
1490 comment, not location. All callers changed. Update scanner cursor,
1491 not the location.
1492 (SC_AFTER_IDENTIFIER): New state.
1493 (context_state): Renamed from c_context. All uses changed.
1494 (id_loc, code_start, token_start): New local vars.
1495 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
1496 processing of Yacc white space and equivalents here.
1497 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
1498 instead of returning ID immediately, since we need to search for
1499 a subsequent colon.
1500 (<INITIAL>"'", "\""): Save token_start.
1501 (<INITIAL>"%{", "{", "%%"): Save code_start.
1502 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
1503 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
1504 BEGIN context_state at end, not INITIAL.
1505 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
1506 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
1507 Return correct token start.
1508 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
1509 the start of a character, string or multiline comment is found.
1510 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
1511 Reduction): Adjust reported locations to match the more-precise
1512 results now expected.
1513 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
1514 * tests/reduce.at (Useless Rules, Reduced Automaton,
1515 Underivable Rules): Likewise.
1516 * tests/regression.at (Invalid inputs): No longer `expecting ";"
1517 or "|"' now that so many other tokens are allowed by the new grammar.
1518
1519 * src/complain.h (current_file): Remove duplicate decl;
1520 current_file is now owned by files.h.
1521 * src/complain.c, src/scan-gram.l: Include files.h.
1522
15232002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 1524
e19c4e5d
PE
1525 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
1526 promotes to int; it might be unsigned int.
1527 * data/yacc.c (yy_reduce_print): Likewise.
1528
1529 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
1530 be #defined in the prologue, not in the Bison declarations.
1531 This fixes Debian Bug 102878, reported by Shaul Karl.
26b4a969 1532
b64755e3
PE
15332002-12-02 Paul Eggert <eggert@twinsun.com>
1534
1535 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
1536 * lib/strtoul.c: New file, from gnulib.
1537 This fixes a porting bug reported by Peter Klein in
e3aa65c5 1538 <http://mail.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 1539
6e746484
PE
15402002-11-30 Paul Eggert <eggert@twinsun.com>
1541
b64755e3
PE
1542 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
1543 and put only a forward declaration in the prologue. This is for
1544 consistency with the other scanner helper functions.
1545
6ba55592
PE
1546 Type clashes now generate warnings, not errors, since it
1547 appears that POSIX may allow some grammars with type clashes.
1548 * src/reader.c (grammar_current_rule_check): Warn about
1549 type clashes instead of complaining.
1550 * tests/input.at (Type Clashes): Expect warnings, not complaints.
1551
6e746484
PE
1552 Add Yacc library, since POSIX requires it.
1553 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
1554 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
1555 * lib/main.c, lib/yyerror.c: New files.
1556
1557 gram_error can be static; it need not be extern.
1558 * src/reader.h (gram_error): Remove decl.
1559 * src/parse-gram.y (gram_error): Now static. Add static decl.
1560 (print_token_value): Omit parameter names from forward decl,
1561 for consistency.
1562
88510f9c
PE
15632002-11-29 Paul Eggert <eggert@twinsun.com>
1564
6e746484
PE
1565 * doc/bison.texinfo: Emphasize that yylex and yyerror must
1566 be declared before being used. E.g., one should typically
1567 declare them in the prologue. Use GNU coding style in examples.
1568 Put "const" consistently after the type it modifies. Mention
1569 that C99 supports "inline". Mention that yyerror traditionally
1570 returns "int".
1571
88510f9c
PE
1572 %parse-param and %lex-param now take just one argument, the
1573 declaration; the argument name is deduced from the declaration.
1574
1575 * doc/bison.texinfo (Parser Function, Pure Calling, Error
1576 Reporting, Table of Symbols): Document this.
1577 * src/parse-gram.y (add_param): New function.
1578 (COMMA): Remove.
1579 (declaration): Implement new rule for %parse-param and %lex-param.
1580 * src/scan-gram.l: "," now elicits a warning, rather than being
1581 a token; this is more compatible with byacc.
1582 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
1583
bb92250c
PE
15842002-11-27 Paul Eggert <eggert@twinsun.com>
1585
1586 Rename identifiers to avoid real and potential collisions.
1587
1588 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
1589 to avoid collision with lex macro described by Bruce Lilly in
e3aa65c5 1590 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
1591 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
1592 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
1593 * src/parse-gram.y (print_token_value): Renamed from yyprint.
1594 All uses changed.
1595 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
1596 The name "yycontrol" violates the name space rules, and this stuff
1597 wasn't being used anyway.
1598 (input): Remove action; this stuff wasn't being used.
1599 (gram_error): Rename local variable yylloc -> loc.
1600 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
1601 (YY_DECL): Don't use "yy" at start of local variables.
1602 All uses changed, e.g., yylloc -> loc.
1603 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
1604 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
1605 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
1606 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
1607
1608 * src/parse-gram.y (gram_error): loc is now const *.
1609 * src/reader.h (gram_error): Likewise.
1610
3af4feb2
PE
16112002-11-24 Paul Eggert <eggert@twinsun.com>
1612
1613 Version 1.75c.
1614
1615 * tests/actions.at (Actions after errors): Use an output format
1616 more similar to that of the Printers and Destructors test.
1617 Test the position of the ';' token too.
1618 (Printers and Destructors): Likewise.
1619 (Printers and Destructors: %glr-parser): Remove for now, to avoid
1620 unnecessarily alarming people when the test fails.
1621
1622 * data/yacc.c (yyerrlab1): Move this label down, so that the
1623 parser does not discard the lookahead token if the user code
1624 invokes YYERROR. This change is required for POSIX conformance.
1625
1626 * lib/error.c: Sync with gnulib.
1627
16282002-11-22 Paul Eggert <eggert@twinsun.com>
1629
1630 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
1631 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
1632 * lib/xmalloc.c: Likewise.
26b4a969 1633
58004308
PE
16342002-11-20 Paul Eggert <eggert@twinsun.com>
1635
1636 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
1637
16382002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 1639
58004308
PE
1640 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
1641 should use `if (! x) abort ();' rather than `assert (x);', and
1642 anyway it's one less thing to worry about configuring.
1643
1644 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
1645 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
1646 and replace all instances of assert with abort.
1647 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
1648 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
1649
1650 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
1651 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
1652 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
1653 hash_find_entry, hash_rehash, hash_insert): Likewise.
1654 * src/conflicts.c (resolve_sr_conflict): Likewise.
1655 * src/lalr.c (set_goto_map, map_goto): Likewise.
1656 * src/nullable.c (nullable_compute): Likewise.
1657 * src/output.c (prepare_rules, token_definitions_output): Likewise.
1658 * src/reader.c (packgram, reader): Likewise.
1659 * src/state.c (state_new, state_free, state_transitions_set,
1660 state_reduction_find): Likewise.
1661 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
1662 symbol_pack): Likewise.
1663 * src/tables.c (conflict_row, pack_vector): Likewise.
1664 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1665 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1666 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
1667 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
1668
1669 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
1670 (ARGMATCH_CONSTRAINT): New macro.
1671 (ARGMATCH_ASSERT): Use it.
1672
1673 * src/system.h (verify): New macro.
1674 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
1675 rather than assert.
1676 * src/tables.c (tables_generate): Likewise.
1677
1678 * src/struniq.c (struniq_assert): Now returns void, and aborts
1679 if the assertion is false.
1680 (struniq_assert_p): Remove.
1681 * src/struniq.h: Likewise.
1682
76ae8198
PE
16832002-11-18 Paul Eggert <eggert@twinsun.com>
1684
1685 * data/glr.c (yygetLRActions): Replace `yyindex' with
1686 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
1687 This fixes the regression with Sun ONE Studio 7 cc that I reported in
e3aa65c5 1688 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 1689
d3c4e709
AD
16902002-11-18 Akim Demaille <akim@epita.fr>
1691
1692 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
1693 space.
1694 From Tim Van Holder.
1695
8d8a7238
PE
16962002-11-17 Paul Eggert <eggert@twinsun.com>
1697
1698 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
1699 to "SyntaxError" for consistency with my 2002-11-15 change.
1700
1701 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
1702 not define to {}, since this breaks the common use of `YYDPRINTF
1703 ((...));' if a single statement is desired (e.g. before `else').
1704 Work around GCC warnings by surrounding corresponding calls with
1705 {} if needed.
1706 (yyhasResolvedValue): Remove unused function.
1707 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
1708 loop body.
1709 (yyreportSyntaxError): Renamed from yyreportParseError.
1710 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
1711 All uses changed.
1712 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
1713 extern when possible. Remove unused initializations.
1714
b0937b22
AD
17152002-11-16 Akim Demaille <akim@epita.fr>
1716
1717 Augment the similarity between GLR and LALR traces.
1718
1719 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
1720 (YY_REDUCE_PRINT): New.
1721 (yyparse): Use them.
1722 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
1723 YYDPRINT here.
1724 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
1725 state reached after the reduction/recovery, since...
1726 (yyparse, yyprocessOneStack): Report the state we are entering in.
1727
c5e3e510
AD
17282002-11-16 Akim Demaille <akim@epita.fr>
1729
1730 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
1731 Add support for --trace=skeleton.
1732 * src/scan-skel.l: %option debug.
1733 Scan strings of non-@ or \n instead of character by character.
1734 (scan_skel): Handle trace_skeleton.
1735 (QPUTS): New.
1736 (@output_parser_name@, @output_header_name@): ``Restore'' their
1737 support (used to be M4 macros).
1738 * data/yacc.c: Quote larger chunks, a la glr.c.
1739 * data/lalr1.cc: Likewise.
1740 The header guards are no longer available, so use some other
1741 string than `YYLSP_NEEDED'.
1742
4c6cc1db
AD
17432002-11-16 Akim Demaille <akim@epita.fr>
1744
1745 Make the ``Printers and Destructors'' test more verbose, taking
1746 `yacc.c''s behavior as (possibly wrong) reference.
1747
1748 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
1749 instead of fprint on stdout.
1750 Set and report the last_line of the symbols.
1751 Consistently display values and locations.
1752
6d9e8019
PE
17532002-11-16 Paul Eggert <eggert@twinsun.com>
1754
1755 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
1756
6e649e65
PE
17572002-11-15 Paul Eggert <eggert@twinsun.com>
1758
b25d88f6
PE
1759 * tests/actions.at (Actions after errors): New test case.
1760
6e649e65
PE
1761 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
1762 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
1763 tests/action.at, tests/calc.at, tests/conflicts.at,
1764 tests/cxx-type.at, tests/regression.at:
1765 "parse error" -> "syntax error" for POSIX compatibility.
1766 "parsing stack overflow..." -> "parser stack overflow" so
1767 that code matches Bison documentation.
1768
0f39aab9
AD
17692002-11-15 Akim Demaille <akim@epita.fr>
1770
1771 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
1772 take two BRACED_CODE, not two string_content.
1773 Free the scanner's obstack when we are done.
1774 (code_content): New.
1775 * tests/calc.at: Adjust.
1776 * doc/bison.texinfo: Adjust.
1777 Also, make sure to include the `,' for these declarations.
1778
761c1926
AD
17792002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
1780
1781 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
1782 definition; avoids potential autoreconf problems.
1783
b0f98b10
AD
17842002-11-15 Akim Demaille <akim@epita.fr>
1785
1786 Always check the value returned by yyparse.
1787
1788 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
1789 returned by yyparse.
1790 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
1791 Adjust calls.
1792 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
1793 returned by yyparse.
1794
970785f1
PH
17952002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1796
1797 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
1798 on input.at test.
1799
8fcc7db1
PE
18002002-11-14 Paul Eggert <eggert@twinsun.com>
1801
7ec1b48e
PE
1802 * src/output.c (output_skeleton): Call xfopen instead of
1803 duplicating xfopen's body.
1804
cfff7583 1805 Fix bugs reported by Nelson H. F. Beebe in
e3aa65c5 1806 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 1807
8fcc7db1
PE
1808 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
1809 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
1810 Group compiler. Instead, use "$CC -E bar.c". Include the .h
1811 file twice in the grammar, as an extra check.
1812
1813 * tests/input.at (Torturing the Scanner): Surround the
1814 backslash-newline tests with "#if 0", to make it less likely that
1815 we'll run into compiler bugs. Bring back solitary \ inside
1816 comment, but add a closing comment to work around HP C bug. Don't
e3aa65c5 1817 test backslash-newline in C character constant.
8fcc7db1 1818
4e8d992c
AD
18192002-11-14 Akim Demaille <akim@epita.fr>
1820
1821 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
1822 status of the compiler.
f32b346d 1823 Calling `exit 1' is no longer needed.
4e8d992c
AD
1824 Reported by Nelson H. F. Beebe.
1825
9501dc6e
AD
18262002-11-14 Akim Demaille <akim@epita.fr>
1827
1828 * tests/atlocal.in (CPPFLAGS): We have config.h.
1829 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
1830 New.
1831 * tests/actions.at, tests/calc.at, tests/conflicts.at,
1832 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
1833 * tests/regression.at, tests/torture.at: Use them for all the
1834 grammars that are to be compiled.
1835 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
1836 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
1837 * doc/bison.texinfo (GLR Parsers): Document `inline'.
1838
18b519c0
AD
18392002-11-14 Akim Demaille <akim@epita.fr>
1840
1841 * doc/bison.texinfo: Various formatting changes (alignments in
1842 samples, additional @group/@end group, GCS in samples.
1843 Use @deffn instead of simple @table to define the directives,
1844 macros, variables etc.
1845
9a86cdb9
PE
18462002-11-13 Paul Eggert <eggert@twinsun.com>
1847
daa33def 1848 Fix some bugs reported by Albert Chin-A-Young in
e3aa65c5 1849 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 1850
daa33def 1851 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 1852 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
1853 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
1854 * tests/headers.at (export YYLTYPE): Likewise.
1855
1856 * tests/input.at (Torturing the Scanner): Remove lines containing
8fcc7db1 1857 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 1858
9a86cdb9
PE
1859 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
1860 comments, since they're not portable. Use GNU coding style.
1861
9c1e26bd
AD
18622002-11-13 Akim Demaille <akim@epita.fr>
1863
1864 * data/yacc.c: Leave bigger chunks of quoted text.
1865 (YYDSYMPRINTF): New.
1866 Use it to report symbol activities.
1867 * data/glr.c (YYDSYMPRINTF): New.
1868 Use it.
1869
87f721cc
PE
18702002-11-12 Paul Eggert <eggert@twinsun.com>
1871
1872 Version 1.75b.
1873
1874 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
1875 (yyglrReduce): Return yyok, not 0.
1876 This should avoid the enumerated-type warnings reported
464c6927 1877 by Nelson H. F. Beebe in
e3aa65c5 1878 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
1879
1880 * lib/bbitset.h (BITSET_INLINE): Remove.
1881 * lib/bitset.h [! BITSET_INLINE]: Remove.
1882 (bitset_set, bitset_reset, bitset_test): Rename local vars
1883 to avoid shadowing warnings by GCC.
1884
1885 * data/glr.c (inline): Remove #define. It's the user's
1886 responsibility to #define it away, just like 'const'.
464c6927 1887 This fixes one of the bugs reported by Nelson H. F. Beebe in
e3aa65c5 1888 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 1889
87f721cc
PE
1890 * Makefile.maint (po-check): Scan .l and .y files instead of the
1891 .c and the .h files that they generate. This fixes the bug
1892 reported by Tim Van Holder in:
e3aa65c5 1893 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
1894 Look for N_ as well as for _. Try to avoid matching #define for
1895 N_ and _.
1896 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
1897 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
1898 * src/scan-gram.l: Revamp regular expressions so that " and '
1899 do not confuse xgettext.
1900
1901 * src/struniq.h (struniq_new): Do not declare the return type
1902 to be 'const'; this violates the C standard.
1903 * src/struniq.c (struniq_new): Likewise.
1904
be14ade5
AD
19052002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
1906
1907 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
1908 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
1909 linker.
1910
05291fbc
AD
19112002-11-12 Akim Demaille <akim@epita.fr>
1912
1913 * Makefile.maint: Sync with Autoconf:
1914 (local_updates): New.
1915
1f5fd52e
AD
19162002-11-12 Akim Demaille <akim@epita.fr>
1917
1918 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
1919
283f1e64
AD
19202002-11-12 Akim Demaille <akim@epita.fr>
1921
1922 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
1923 locations.
1924
886b69d1
AD
19252002-11-12 Akim Demaille <akim@epita.fr>
1926
1927 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
1928 not yyvalue.
1929
3df37415
AD
19302002-11-12 Akim Demaille <akim@epita.fr>
1931
1932 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
1933 Use it to test the GLR parser.
1934
7bd6c77e
AD
19352002-11-12 Akim Demaille <akim@epita.fr>
1936
1937 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
1938 defines it.
1939 * data/glr.c (yystos): New.
1940 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
1941 (YYDSYMPRINT): New.
1942 (yyval): Don't define it, it is handled via M4.
1943 (yyrecoverParseError): Free verbosely the discarded symbols.
1944 * data/yacc.c (yysymprint): Remove, rather...
1945 (b4_yysymprint_generate): invoke.
1946 * data/c.m4 (b4_yysymprint_generate): New.
1947 Accept pointers as arguments, as opposed to the version from
1948 yacc.c.
1949 (b4_yydestruct_generate): Likewise.
1950 * tests/cations.at (Printers and Destructors): Use Bison directives
1951 instead of CPP macros.
1952 Don't rely on internal details.
1953
b0400cc6
AD
19542002-11-12 Akim Demaille <akim@epita.fr>
1955
1956 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
1957 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
1958 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
1959 it against YYEMPTY and so forth), work on yytoken (i.e., set
1960 it to YYEMPTY etc.).
1961 (yydestruct): Replace with a b4_yydestruct_generate invocation.
1962 (b4_symbol_actions): Remove.
1963 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
1964 for 0, end-of-input.
1965
72f889cc
AD
19662002-11-12 Akim Demaille <akim@epita.fr>
1967
1968 * doc/bison.texinfo (Destructor Decl): New.
1969
b1ae9233
AD
19702002-11-12 Akim Demaille <akim@epita.fr>
1971
1972 * src/tables.c (tables_generate): Use free for pointers that
1973 cannot be NULL, not XFREE.
1974 (pack_vector): Use assert, not fatal, for bound violations.
1975 * src/state.c (state_new): Likewise.
1976 * src/reader.c (reader): Likewise.
1977 * src/lalr.c (set_goto_map): Likewise.
72f889cc 1978 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
1979 the file name.
1980
7ec2d4cd
AD
19812002-11-12 Akim Demaille <akim@epita.fr>
1982
1983 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
1984 Restore.
1985 * src/scan-gram.l (last_string): Is global to the file, not to
1986 yylex.
1987 * src/parse-gram.y (input): Don't append the epilogue here,
1988 (epilogue.opt): do it here, and free the scanner's obstack.
1989 * src/reader.c (epilogue_set): Rename as...
1990 (epilogue_augment): this.
1991 * data/c.m4 (b4_epilogue): Defaults to empty.
1992
573a6cd3
AD
19932002-11-12 Akim Demaille <akim@epita.fr>
1994
1995 * src/getargs.c (long_options): Remove duplicates.
1996 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
1997 Remove.
1998 * doc/bison.rnh: Remove.
1999 * doc/bison.texinfo (VMS Invocation): Remove.
2000
95612cfa
AD
20012002-11-12 Akim Demaille <akim@epita.fr>
2002
2003 * src/struniq.h, src/struniq.c (struniq_t): Is const.
2004 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
2005
2006 Use struniq for symbols.
2007
2008 * src/symtab.h (symbol_t): The tag member is a struniq.
2009 (symbol_type_set): Adjust.
2010 * src/symtab.c (symbol_new): Takes a struniq.
2011 (symbol_free): Don't free the tag member.
2012 (hash_compare_symbol_t, hash_symbol_t): Rename as...
2013 (hash_compare_symbol, hash_symbol): these.
2014 Use the fact that tags as struniqs.
2015 (symbol_get): Use struniq_new.
2016 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
2017 Returns a strniq.
2018 * src/reader.h (merger_list, grammar_currentmerge_set): The name
2019 and type members are struniqs.
2020 * src/reader.c (get_merge_function)
2021 (grammar_current_rule_merge_set): Adjust.
2022 (TYPE, current_type): Are struniq.
2023
2024 Use struniq for file names.
2025
2026 * src/files.h, src/files.c (infile): Split into...
2027 (grammar_file, current_file): these.
2028 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
2029 * src/reduce.c (reduce_print): Likewise.
2030 * src/getargs.c (getargs): Likewise.
2031 * src/complain.h, src/complain.c: Likewise.
2032 * src/main.c (main): Call struniqs_new early enough to use it for
2033 file names.
2034 Don't free the input file name.
2035
3e6656f9
AD
20362002-11-12 Akim Demaille <akim@epita.fr>
2037
2038 * src/symtab.c (symbol_free): Remove dead deactivated code:
2039 type_name are properly removed.
2040 Don't use XFREE to free items that cannot be NULL.
2041 * src/struniq.h, src/struniq.c: New.
2042 * src/main.c (main): Initialize/free struniqs.
2043 * src/parse-gram.y (%union): Add astruniq member.
2044 (yyprint): Adjust.
2045 * src/scan-gram.l (<{tag}>): Return a struniq.
2046 Free the obstack bit that used to store it.
2047 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
2048
7672019c
PE
20492002-11-11 Paul Eggert <eggert@twinsun.com>
2050
2051 Revamp to fix many (but not all) of the C- and M4-related quoting
2052 problems. Among other things, this fixes the Bison bug reported
2053 by Jan Hubicka when processing the Bash grammar; see:
e3aa65c5 2054 <http://mail.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
2055
2056 Use new @ escapes consistently. Represent brackets with @{ and @}
2057 rather than @<:@ and @:>@, since this works a bit better with dumb
2058 editors like vi. Represent @ with @@, since @ is now consistently
2059 an escape. Use @oline@ and @ofile@ rather than __oline__ and
2060 __ofile__, to avoid unexpected expansions. Similarly, use @output
2061 rather than #output.
2062
2063 * data/c.m4 (b4_copyright): Omit file name from comment, since
2064 the file name could contain "*/".
2065 (b4_synclines_flag): Don't quote the 2nd argument; it should already
2066 be quoted. All uses changed.
2067
2068 * data/glr.c: Use new @ escapes consistently.
2069 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
2070 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
2071 Remove, since they couldn't handle arbitrary characters in file
2072 names.
2073 * data/lalr1.cc: Likewise.
2074 * data/yacc.c: Likewise.
2075
2076 * src/files.c (output_infix): Remove; all uses removed.
2077 * src/files.h: Likewise.
2078
2079 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
2080 mishandled funny characters in file names, and anyway it isn't
2081 needed any more.
2082 * data/yacc.c: Likewise.
2083 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
2084
2085 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
2086 * data/yacc.c: Likewise.
2087
2088 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
2089 strings now.
2090 (muscle_init): Quote filename as a C string.
2091 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
2092 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
2093 * src/output.c (escaped_file_name_output): New function.
2094 (prepare_symbols): Quote tokens for M4.
2095 (prepare): Don't insert output_infix, output_prefix,
2096 output_parser_name, output_header_name; this is now down by scan-skel.
2097 Insert skeleton as a C string.
2098
2099 * src/output.c (user_actions_output, symbol_destructors_output,
2100 symbol_printers_output): Quote filenames for C and M4.
2101 * src/reader.c (prologue_augment, epilogue_set): Likewise.
2102
2103 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
2104 escapes other than \\ and \'; this simplifies the code.
2105 (<SC_STRING>): Likewise, for \\ and \".
2106 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
2107 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
2108 Use new escapes @{ and @} for [ and ].
2109
2110 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
2111 them with auto vars.
2112 Switch to new escape scheme, where @ is the escape character uniformly.
2113 Abort if a stray escape character is found. Avoid unbounded input
2114 buffer when parsing non-escaped text.
2115
2116 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
2117 __oline__, #output, $@, and @{ do not have unintended meanings.
2118
acea4f3b
PE
21192002-11-09 Paul Eggert <eggert@twinsun.com>
2120
2121 Fix the test failure due to GCC warnings described in
e3aa65c5 2122 <http://mail.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
2123 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
2124 evaluate to 0 if it's impossible for NINF to be in the respective
2125 table.
2126 (yygetLRActions, yyrecoverParseError): Use them.
2127
2128 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
2129 counted in the token inserted at end of file. Now takes
2130 location_t *, not location_t, so that the location can be
2131 adjusted. All uses changed.
2132
2133 * tests/regression.at (Invalid inputs): Adjust wording in
2134 diagnostic to match the new behavior.
2135
2136 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
2137 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
2138 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
2139 abort ();'. This reduces the runtime of the "Many lookaheads"
2140 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
2141 GCC 3.2.
2142
20ef1ad5
PE
21432002-11-07 Paul Eggert <eggert@twinsun.com>
2144
2145 * src/parse-gram.y (CHARACTER): Remove unused token.
2146 All uses removed.
2147
2148 * src/scan-gram.l: Remove stack option. We no longer use the
2149 stack, since the stack was never deeper than 1; instead, use the
2150 new auto var c_context to record the stacked value.
2151
2152 Remove nounput option. At an unexpected end of file, we now unput
2153 the minimal input necessary to end cleanly; this simplifies the
2154 code.
2155
2156 Avoid unbounded token sizes where this is easy.
2157
2158 (unexpected_end_of_file): New function.
2159 Use it to systematize the error message on unexpected EOF.
2160 (last-string): Now auto, not static.
2161 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
2162 (scanner_last_string_free): Remove; not used.
2163 (percent_percent_count): Move decl to just before use.
2164 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
2165 not the (never otherwised-used) CHARACTER.
2166
93724f13
AD
21672002-11-07 Akim Demaille <akim@epita.fr>
2168
2169 Let yyerror always receive the msg as last argument, so that
2170 yyerror can be variadic.
2171
2172 * data/yacc.c (b4_yyerror_args): New.
2173 Use it when calling yyerror.
2174 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
2175 Use it when calling yyerror.
2176 * doc/bison.texinfo (Error Reporting): Adjust.
2177 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
2178 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
2179
6e40b4eb
AD
21802002-11-06 Akim Demaille <akim@epita.fr>
2181
2182 #line should have quoted strings.
2183 Ideally, this should be done by m4_quotearg.
2184
2185 * src/scan-skel.l: Include quotearg.h.
2186 Quote __ofile__.
2187 * src/output.c (symbol_printers_output)
2188 (symbol_destructors_output): Quote the file name.
2189
2dfbfc12
AD
21902002-11-06 Akim Demaille <akim@epita.fr>
2191
2192 * tests/regression.at (Invalid inputs): Adjust to the recent
2193 messages.
2194
437c2d80
AD
21952002-11-06 Akim Demaille <akim@epita.fr>
2196
2197 Restore --no-lines.
2198 Reported by Jim Kent.
2199
2200 * data/c.m4 (b4_syncline): New.
2201 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
2202 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
2203 * src/output.c (user_actions_output): Likewise.
2204 (prepare): Define 'b4_synclines_flag'.
2dfbfc12 2205 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 2206
900c5db5
AD
22072002-11-06 Akim Demaille <akim@epita.fr>
2208
2209 * src/main.c (main): Free `infile'.
2210 * src/scan-gram.l (handle_syncline): New.
2211 Recognize `#line'.
2212 * src/output.c (user_actions_output, symbol_destructors_output)
2213 (symbol_printers_output): Use the location's file name, not
2214 infile.
2215 * src/reader.c (prologue_augment, epilogue_set): Likewise.
2216
e183b123 22172002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 2218
e183b123 2219 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 2220 either has GLR conflict entries.
e183b123 2221
193eb6b7
PE
22222002-11-05 Paul Eggert <eggert@twinsun.com>
2223
e183b123
PE
2224 * src/scan-gram.l: Use more accurate diagnostics, e.g.
2225 "integer out of range" rather than "invalid value".
2226 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
2227 accordingly.
2228
193eb6b7
PE
2229 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
2230 Also, remove one static variable in the scanner.
2231
2232 * src/scan-gram.l (braces_level): Now auto, not static.
2233 Initialize to zero if the compiler is being picky.
2234 (INITIAL): Clear braces_level instead of incrementing it.
2235 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
2236 as POSIX 1003.1-2001 requires.
2237 * src/system.h (IF_LINT): New macro, taken from coreutils.
2238 * configure.ac: Define "lint" if --enable-gcc-warnings.
2239
29c01725
AD
22402002-11-05 Akim Demaille <akim@epita.fr>
2241
2242 * src/scan-gram.l: When it starts with `%', complain about the
2243 whole directive, not just that `invalid character: %'.
2244
8aeac3ca
AD
22452002-11-04 Akim Demaille <akim@epita.fr>
2246
2247 * Makefile.maint: Update from Autoconf.
2248 (update, cvs-update, po-update, do-po-update): New.
2249
793a58bb
AD
22502002-11-04 Akim Demaille <akim@epita.fr>
2251
2252 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
2253 and yyerror.
2254 Have yyerror `use' its arguments.
2255 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
2256 returns true when location & yacc & pure & parse-param.
2257 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
2258
c4d720cd
AD
22592002-11-04 Akim Demaille <akim@epita.fr>
2260
2261 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
2262 clashes.
2263 * src/scan-gram.l: Use [\'] instead of ['] to pacify
2264 font-lock-mode.
2265 Use complain_at.
2266 Use quote, not quote_n since LOCATION_PRINT no longer uses the
2267 slot 0.
2268
613a0dc5
PE
22692002-11-03 Paul Eggert <eggert@twinsun.com>
2270
2271 * src/reader.c (get_merge_function, grammar_current_rule_check):
2272 Use consistent diagnostics for reporting type name clashes.
2273 Quote the types with <>, for consistency with Yacc.
2274 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
2275
2a8d363a
AD
22762002-11-03 Akim Demaille <akim@epita.fr>
2277
2278 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
2279 New.
2280 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
2281 (b4_parse_param): Remove.
2282 Use b4_identification.
2283 Propagate b4_pure_args where needed to pass them to yyerror.
2284 * data/glr.m4 (b4_parse_param): Remove.
2285 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
2286 (b4_lpure_formals): New.
2287 Use b4_identification.
2288 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
2289 b4_user_formals and b4_user_args.
2290 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
2291 (yyreportAmbiguity): When using a pure parser, also need
2292 the location, and the parse-params.
2293 Adjust callers.
2294 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
2295 When using a pure parser, also need the parse-params.
2296 Adjust callers.
2297 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
2298 (%pure-parser + %parse-param) LALR and GLR parsers.
2299 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
2300 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
2301 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
2302 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
2303 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
2304 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
2305 * doc/bison.texinfo: Untabify the whole file.
2306 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
2307 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
2308 (Error Reporting): Adjust to these new directives.
2309 Document %error-verbose, deprecate YYERROR_VERBOSE.
2310
9e32add8
AD
23112002-11-03 Akim Demaille <akim@epita.fr>
2312
2313 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
2314 AT_CHECK_CALC_GLR invocations to use % directives, instead of
2315 command line options.
2316 * tests/cxx-type.at: Formatting changes.
2317
b02d90a5
PE
23182002-11-03 Paul Eggert <eggert@twinsun.com>
2319
2320 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
2321 to count columns correctly, and to check for invalid inputs.
9e32add8 2322
b02d90a5
PE
2323 Use mbsnwidth to count columns correctly. Account for tabs, too.
2324 Include mbswidth.h.
2325 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
2326 (extend_location): New function.
2327 (YY_LINES): Remove.
2328
2329 Handle CRLF in C code rather than in Lex code.
2330 (YY_INPUT): New macro.
2331 (no_cr_read): New function.
2332
2333 Scan UCNs, even though we don't fully handle them yet.
2334 (convert_ucn_to_byte): New function.
2335
2336 Handle backslash-newline correctly in C code.
2337 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
2338 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
2339 all uses changed.
2340 (tag, splice): New EREs. Do not allow NUL or newline in tags.
2341 Use {splice} wherever C allows backslash-newline.
2342 YY_STEP after space, newline, vertical-tab.
2343 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
9e32add8 2344
b02d90a5
PE
2345 (letter, id): Don't assume ASCII; e.g., spell out a-z.
2346
2347 ({int}, handle_action_dollar, handle_action_at): Check for integer
2348 overflow.
9e32add8 2349
b02d90a5
PE
2350 (YY_STEP): Omit trailing semicolon, so that it's more like C.
2351
2352 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
2353 as well as \000. Check for UCHAR_MAX, not 255.
2354 Allow \x with an arbitrary positive number of digits, as in C.
2355 Check for overflow here.
2356 Allow \? and UCNs, for compatibility with C.
2357
2358 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
2359 with quote slot used by complain_at.
2360
2361 * tests/input.at: Add tests for backslash-newline, m4 quotes
2362 in symbols, long literals, and funny escapes in strings.
2363
2364 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
2365 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
2366 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
2367 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
2368 * m4/mbswidth.m4: New file, from GNU coreutils.
2369
2370 * doc/bison.texinfo (Grammar Outline): Document // comments.
2371 (Symbols): Document that trigraphs have no special meaning in Bison,
2372 nor is backslash-newline allowed.
2373 (Actions): Document that trigraphs have no special meaning.
2374
2375 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
2376 no longer used.
2377
23782002-11-02 Paul Eggert <eggert@twinsun.com>
2379
2380 * src/reader.c: Don't include quote.h; not needed.
2381 (get_merge_function): Reword warning to be consistent with
2382 type clash diagnostic in grammar_current_rule_check.
2383
2384 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
2385 bug in trigraph handling.
2386
2387 * src/output.c (prepare_symbols): When printing token names,
2388 escape "[" as "@<:@" and likewise for "]".
2389
2390 * src/system.h (errno): Remove declaration, as we are now
2391 assuming C89 or better, and C89 guarantees errno.
2392
762b212b
PE
23932002-10-30 Paul Eggert <eggert@twinsun.com>
2394
2395 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
2396 Check for close failures.
2397 * src/files.h (xfclose): Return void, not int, since it always
2398 returned zero.
2399 * src/files.c (xfclose): Likewise. Report I/O error if ferror
2400 indicates one.
2401 * src/output.c (output_skeleton): Use xfclose rather than fclose
2402 and ferror. xfclose now checks ferror.
2403
2404 * data/glr.c (YYLEFTMOST_STATE): Remove.
2405 (yyreportTree): Use a stack-based leftmost state. This avoids
2406 our continuing battles with bogus warnings about initializers.
2407
56100c60
AD
24082002-10-30 Akim Demaille <akim@epita.fr>
2409
2410 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
2411 #if.
2412
51b4a04c
PH
24132002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2414
2415 * tests/glr-regr1.at: New test for reported regressions.
2416 * tests/testsuite.at: Add glr-regr1.at test.
2417 * tests/Makefile.am: Add glr-regr1.at test.
e183b123 2418
bf1ebda2
PE
24192002-10-24 Paul Eggert <eggert@twinsun.com>
2420
5c16c6b1
PE
2421 Version 1.75a.
2422
bf1ebda2
PE
2423 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
2424 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
2425 we use malloc. Don't assume 'A' through 'Z' are contiguous.
2426 Don't assume strdup exists; POSIX says its an XSI extension.
2427 Check for buffer overflow on input.
2428
b526ee61
AD
24292002-10-24 Akim Demaille <akim@epita.fr>
2430
2431 * src/output.c (output_skeleton): Don't disable M4sugar comments
2432 too soon: it results in comments being expanded.
2433 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
2434 first output.
2435
f1886bb2
AD
24362002-10-24 Akim Demaille <akim@epita.fr>
2437
2438 * data/yacc.c (m4_int_type): New.
2439 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
2440 char' as only yacc.c wants K&R portability.
2441 * data/glr.c (yysigned_char): Remove.
2442 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
2443 Reported by Quoc Peyrot.
2444
c5576256
PE
24452002-10-23 Paul Eggert <eggert@twinsun.com>
2446
2447 * src/main.c (main): With --trace=time, report times even if a
2448 non-fatal error occurs. Formerly, the times were reported in some
2449 such cases but not in others.
2450 * src/reader.c (reader): Just return if a complaint has been issued,
2451 instead of exiting, so that 'main' can report times.
2452
27b0ffea
AD
24532002-10-22 Akim Demaille <akim@epita.fr>
2454
2455 * src/system.h: Include sys/types.
2456 Reported by Bert Deknuydt.
2457
223a7883
PE
24582002-10-23 Paul Eggert <eggert@twinsun.com>
2459
2460 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
2461 Suggested by Art Haas.
2462
24632002-10-22 Paul Eggert <eggert@twinsun.com>
2464
2465 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
2466 decl; not needed any more.
2467 * src/main.c (main): Use return to exit, undoing yesterday's change.
2468 The last OS that we could find where this wouldn't work is
2469 SunOS 3.5, and that's too old to worry about now.
2470
2471 * data/glr.c (struct yyltype): Define members even when not
2472 doing locations. This is more consistent with yacc.c, and it
2473 works around the following bug reports:
e3aa65c5
PE
2474 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
2475 http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
27b0ffea 2476
223a7883
PE
2477 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
2478 @acronym consistently. Standardize on "Yacc" instead of "YACC",
2479 "Algol" instead of "ALGOL". Give a bit more history about BNF.
2480
8b76775a
AD
24812002-10-22 Akim Demaille <akim@epita.fr>
2482
2483 * data/README: New.
2484
6db10d14
PE
24852002-10-21 Paul Eggert <eggert@twinsun.com>
2486
2487 Be consistent about 'bool'; the old code used an enum in one
2488 module and an int in another, and this violates the C standard.
2489 * m4/stdbool.m4: New file, from coreutils 4.5.3.
2490 * configure.ac (AC_HEADER_STDBOOL): Add.
2491 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
2492 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
2493 * src/symtab.c (hash_compare_symbol_t): Likewise.
2494 * src/system.h (bool, false, true): Use a definition consistent
2495 with ../lib/hash.c. All uses changed.
2496
2497 * src/complain.c (warning_issued): Renamed from warn_message_count,
2498 so that we needn't worry about integer overflow (!).
2499 Now of type bool. All uses changed.
2500 (complaint_issued): Renamed from complain_message_count; likewise.
2501
2502 * src/main.c (main): Use exit to exit with failure.
27b0ffea 2503
6db10d14
PE
2504 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
2505 rather than 1 and 0.
2506 * src/main.c (main): Likewise.
2507 * src/getargs.c (getargs): Likewise.
2508 * src/reader.c (reader): Likewise.
2509
2510 * src/getarg.c (getargs): Remove duplicate code for
2511 "Try `bison --help'".
2512
2513 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
2514 What was that "2" for?
2515
2516 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
2517 * src/getargs.c (usage): Likewise.
2518
2519 * src/getargs.c (getargs): When there are too few operands, report
2520 the last one. When there are too many, report the first extra
2521 one. This is how diffutils does it.
2522
92a060fd
PE
25232002-10-20 Paul Eggert <eggert@twinsun.com>
2524
2525 Remove K&R vestiges.
2526 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
2527 * src/complain.c (VA_START): Remove. Assume prototypes.
2528 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
2529 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
2530 fatal): Assume prototypes.
2531 * src/complain.h: Assume prototypes.
2532 * src/system.h (PARAMS): Remove.
2533 Include <limits.h> unconditionally, since it's guaranteeed even
2534 for a freestanding C89 compiler.
2535 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
2536 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
8b76775a 2537
e7cb57c0
AD
25382002-10-20 Akim Demaille <akim@epita.fr>
2539
2540 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
2541 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
2542 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
2543 (yyresolveStates, yyresolveAction, yyresolveStack)
2544 (yyprocessOneStack): Use them.
2545 (yy_reduce_print): New.
2546 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
2547
0245f82d
AD
25482002-10-20 Akim Demaille <akim@epita.fr>
2549
2550 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
2551 arguments and output `void'.
2552 (b4_c_function): Rename as...
2553 (b4_c_function_def): this.
2554 (b4_c_function_decl, b4_c_ansi_function_def)
2555 (b4_c_ansi_function_decl): New.
2556 Change the interpretation of the arguments: before `int, foo', now
2557 `int foo, foo'.
2558 * data/yacc.c (yyparse): Prototype and define thanks to these.
2559 Adjust b4_c_function_def uses.
2560 * data/glr.c (yyparse): Likewise, but ANSI only.
2561
39912f52
AD
25622002-10-20 Akim Demaille <akim@epita.fr>
2563
2564 * src/output.c (prepare): Move the definition of `tokens_number',
2565 `nterms_number', `undef_token_number', `user_token_number_max'
2566 to...
2567 (prepare_tokens): Here.
2568 (prepare_tokens): Rename as...
2569 (prepare_symbols): this.
2570 (prepare): Move the definition of `rules_number' to...
2571 (prepare_rules): here.
2572 (prepare): Move the definition of `last', `final_state_number',
2573 `states_number' to...
2574 (prepare_states): here.
2575 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
2576
20c1e2ad
AD
25772002-10-20 Akim Demaille <akim@epita.fr>
2578
2579 * src/tables.h, src/tables.c, src/output.c: Comment changes.
2580
21964f43
AD
25812002-10-20 Akim Demaille <akim@epita.fr>
2582
2583 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
2584 * data/c.m4: here.
2585
66d30cd4
AD
25862002-10-20 Akim Demaille <akim@epita.fr>
2587
2588 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
2589 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
2590 `pair'.
2591 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
2592 `name' to...
2593 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
2594 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
2595 These.
2596
95f2c9fe
PE
25972002-10-19 Paul Eggert <eggert@twinsun.com>
2598
2599 Do not create a temporary file, as that involves security and
2600 cleanup headaches. Instead, use a pair of pipes.
2601 Derived from a suggestion by Florian Krohm.
2602 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
2603 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
2604 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
2605 (BISON_PREREQ_SUBPIPE): Add.
2606 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
2607 Add subpipe.h, subpipe.c.
2608 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
2609 * po/POTFILES.in: Add lib/subpipe.c.
2610 * src/output.c: Include "subpipe.h".
2611 (m4_invoke): Remove decl.
2612 (scan_skel): New decl.
2613 (output_skeleton): Use pipe rather than temporary file for m4 input.
2614 Check that m4sugar.m4 is readable, to avoid deadlock.
2615 Check for pipe I/O error.
2616 * src/scan-skel.l (readpipe): Remove decl.
2617 (scan_skel): New function, to be used in place of m4_invoke.
2618 Read from stream rather than file.
66d30cd4 2619
95f2c9fe
PE
2620 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
2621 float, as this generates a warning on Solaris 8 + GCC 3.2 with
2622 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
2623 this generates a more-accurate value anyway.
2624
2625 * lib/timevar.c (timervar_accumulate): Rename locals to
2626 avoid confusion with similarly-named more-global.
2627 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
2628
2629 * src/output.c (prepare): Use xstrdup to convert char const *
2630 to char *, to avoid GCC warning.
2631
c19988b7
AD
26322002-10-19 Akim Demaille <akim@epita.fr>
2633
2634 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
2635 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
2636 Use them to have `calc.y' ready for %pure-parser.
2637 * data/yacc.c (YYLEX): Pass a yylex return type to
2638 b4_c_function_call.
2639
ae7453f2
AD
26402002-10-19 Akim Demaille <akim@epita.fr>
2641
2642 Prototype support of %lex-param and %parse-param.
2643
2644 * src/parse-gram.y: Add the definition of the %lex-param and
2645 %parse-param tokens, plus their rules.
2646 Drop the `_' version of %glr-parser.
2647 Add the "," token.
2648 * src/scan-gram.l (INITIAL): Scan them.
2649 * src/muscle_tab.c: Comment changes.
2650 (muscle_insert, muscle_find): Rename `pair' as `probe'.
2651 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
2652 (muscle_entry_s): The `value' member is no longer const.
2653 Adjust all dependencies.
2654 * src/muscle_tab.c (muscle_init): Adjust: use
2655 MUSCLE_INSERT_STRING.
2656 Initialize the obstack earlier.
2657 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
2658 (muscle_pair_list_grow): New.
2659 * data/c.m4 (b4_c_function_call, b4_c_args): New.
2660 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
2661 * tests/calc.at: Use %locations, not --locations.
2662 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
2663
0e575721
AD
26642002-10-19 Akim Demaille <akim@epita.fr>
2665
2666 * src/getargs.c (usage): Take status as argument and exit
2667 accordingly.
2668 Report the traditional `Try ... --help' message when status != 0.
2669 (usage, version): Don't take a FILE * as arg, it is pointless.
2670 (getargs): When there is an incorrect number of arguments, make it
2671 an error, and report it GNUlically thanks to `usage ()'.
2672
724ce7f5
PE
26732002-10-18 Paul Eggert <eggert@twinsun.com>
2674
3a781eb2
PE
2675 * data/glr.c (yyreportParseError): Don't assume that sprintf
2676 yields the length of the printed string, as this is not true
2677 on SunOS 4.1.4. Reported by Peter Klein.
2678
724ce7f5
PE
2679 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
2680 * tests/conflicts.at (%nonassoc and eof): Likewise.
2681 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
2682
473d0a75
AD
26832002-10-17 Akim Demaille <akim@epita.fr>
2684
2685 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
2686 * src/getargs.c (trace_types, trace_args): Adjust.
2687 * src/reader.c (grammar_current_rule_prec_set)
2688 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
2689 Standardize error messages.
2690 And s/@prec/%prec/!
2691 (reader): Use trace_flag to enable scanner/parser debugging,
2692 instead of an adhoc scheme.
2693 * src/scan-gram.l: Remove trailing debugging code.
2694
e76d2469
PE
26952002-10-16 Paul Eggert <eggert@twinsun.com>
2696
93e2236a
PE
2697 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
2698 MUSCLE_TAB_H.
2699
e76d2469
PE
2700 * NEWS: Officially drop support for building Bison with K&R C,
2701 since it didn't work anyway and it's not worth worrying about.
2702 * Makefile.maint (wget_files): Remove ansi2knr.c.
2703 (ansi2knr.c-url_prefix): Remove.
2704 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
2705 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2706 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
2707
5bd1c419
PE
27082002-10-15 Paul Eggert <eggert@twinsun.com>
2709
2710 Stop using the "enum_" trick for K&R-style function definitions;
2711 it confused me, and I was the author! Instead, assume that people
2712 who want to use K&R C compilers (when using these modules in GCC,
2713 perhaps?) will run ansi2knr.
2714
2715 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
2716 All uses of "enum_" changed to "enum ".
2717 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
2718 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
e76d2469 2719
5bd1c419
PE
2720 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
2721 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
2722 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
2723 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
2724 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
2725 abitset_not, abitset_ones, abitset_or, abitset_or_and,
2726 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
2727 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
2728 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
2729 Use function prototypes; this removes the need for declaring
2730 static functions simply to provide their prototypes.
2731 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
2732 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
2733 bitset_count_, bitset_create, bitset_dump, bitset_first,
2734 bitset_free, bitset_init, bitset_last, bitset_next,
2735 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
2736 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
2737 bitset_print, bitset_release_memory, bitset_toggle_,
2738 bitset_type_choose, bitset_type_get, bitset_type_name_get,
2739 debug_bitset): Likewise.
2740 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
2741 * lib/bitset_stats.c (bitset_log_histogram_print,
2742 bitset_percent_histogram_print, bitset_stats_and,
2743 bitset_stats_and_cmp, bitset_stats_and_or,
2744 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
2745 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
2746 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
2747 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
2748 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
2749 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
2750 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
2751 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
2752 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
2753 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
2754 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
2755 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
2756 bitset_stats_zero): Likewise.
2757 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
2758 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
2759 bitsetv_dump, debug_bitsetv): Likewise.
2760 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
2761 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
2762 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
2763 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
2764 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
2765 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
2766 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
2767 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
2768 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
2769 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
2770 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
2771 Likewise.
2772 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
2773 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
2774 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
2775 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
2776 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
2777 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
2778 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
2779 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
2780 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
2781 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
2782 lbitset_xor_cmp, lbitset_zero): Likewise.
e76d2469 2783
ae26e1f0
AD
27842002-10-14 Akim Demaille <akim@epita.fr>
2785
2786 Version 1.75.
2787
d43baf71
AD
27882002-10-14 Akim Demaille <akim@epita.fr>
2789
2790 * tests/Makefile.am (maintainer-check-posix): New.
2791
7ebc83e3
AD
27922002-10-14 Akim Demaille <akim@epita.fr>
2793
2794 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
2795 member.
2796
05846dae
AD
27972002-10-14 Akim Demaille <akim@epita.fr>
2798
2799 * src/tables.c (table_ninf_remap): base -> tab.
2800 Reported by Matt Rosing.
2801
1318e37d
PE
28022002-10-14 Paul Eggert <eggert@twinsun.com>
2803
447fbb17
PE
2804 * tests/action.at, tests/calc.at, tests/conflicts.at,
2805 tests/cxx-type.at, tests/headers.at, tests/input.at,
2806 tests/regression.at, tests/synclines.at, tests/torture.at:
2807 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
2808 so that the tests still work even if POSIXLY_CORRECT is set.
2809 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
05846dae 2810
1318e37d
PE
2811 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
2812 for portability to K&R hosts. Fix typo: signed char is guaranteed
2813 only to 127, not to 128.
2814 * data/glr.c (yysigned_char): New type.
2815 * data/yacc.c (yysigned_char): Likewise.
2816 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
2817
cc0f0794
PE
28182002-10-13 Paul Eggert <eggert@twinsun.com>
2819
5038f418
PE
2820 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
2821 true due to limited range of data type" warning from GCC.
2822
cc0f0794
PE
2823 * data/c.m4 (b4_token_defines): Protect against double-inclusion
2824 by wrapping enum yytokentype's definition inside #ifndef
2825 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
2826
6fed0802
AD
28272002-10-13 Akim Demaille <akim@epita.fr>
2828
2829 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
2830 Un yy- yyrhs to avoid the name clash with the global YYRHS.
2831
32f0598d
AD
28322002-10-13 Akim Demaille <akim@epita.fr>
2833
2834 * Makefile.maint: Update from Autoconf 2.54.
2835 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
2836
7ea9a33f
AD
28372002-10-13 Akim Demaille <akim@epita.fr>
2838
2839 * src/print.c (print_state): Separate the list of solved conflicts
2840 from the other items.
2841 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
2842
ea99527d
AD
28432002-10-13 Akim Demaille <akim@epita.fr>
2844
2845 Let nondeterministic skeletons be usable with deterministic
2846 tables.
2847
2848 With the patch, GAWK compiled by GCC without -O2 passes its test
2849 suite using a GLR parser driven by LALR tables. It fails with -O2
2850 because `struct stat' gives two different answers on my machine:
2851 88 (definition of an auto var) and later 96 (memset on this var).
2852 Hence the stack is badly corrumpted. The headers inclusion is to
2853 blame: if I move the awk.h inclusion before GLR's system header
2854 inclusion, the two struct stat have the same size.
2855
2856 * src/tables.c (pack_table): Always create conflict_table.
2857 (token_actions): Always create conflict_list.
2858 * data/glr.c (YYFLAG): Remove, unused.
2859
f377f69f
AD
28602002-10-13 Akim Demaille <akim@epita.fr>
2861
2862 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
2863 (O0FLAGS): New.
2864 (VALGRIND, GXX): New.
2865 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
2866 * tests/bison.in: Run $PREBISON a pre-command.
2867 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
2868 (maintainer-check-g++): New.
2869 * Makefile.am (maintainer-check): New.
2870
2a1fe6ed
AD
28712002-10-13 Akim Demaille <akim@epita.fr>
2872
2873 * data/glr.c: Formatting changes.
2874 Tweak some trace messages to match yacc.c's.
2875
f50adbbd
AD
28762002-10-13 Akim Demaille <akim@epita.fr>
2877
2878 GLR parsers sometimes raise parse errors instead of performing the
2879 default reduction.
2880 Reported by Charles-Henry de Boysson.
2881
2882 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
2883 check the length of the traces when %glr.
2884 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
2885 GLR's traces.
2886 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
2887 Test GLR parsers.
2888 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
2889 (yyltype): Remove the yy prefix from the member names.
2890 (yytable): Complete its comment.
2891 (yygetLRActions): Map error action number from YYTABLE from
2892 YYTABLE_NINF to 0.
2893 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
2894 (which was a bug: it should have been YYTABEL_NINF, and yet it was
2895 not satisfying as we could compare an YYACTION computed from
2896 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
2897 only value for error actions.
2898 (yyreportParseError): In verbose parse error messages, don't issue
2899 `error' in the list of expected tokens.
2900 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
2901 next action to perform to match glr.c's decoding.
2902 (yytable): Complete its comment.
2903
bcbad5b9
PE
29042002-10-13 Paul Eggert <eggert@twinsun.com>
2905
2906 Fix problem reported by Henrik Grubbstroem in
e3aa65c5 2907 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
2908 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
2909 because the Bison parser reads the second action before reducing
2910 the first one.
2911 * src/scan-gram.l (rule_length): New static var.
2912 Use it to keep track of the rule length in the scanner, since
2913 we can't expect the parser to be in lock-step sync with the scanner.
2914 (handle_action_dollar, handle_action_at): Use this var.
2915 * tests/actions.at (Exotic Dollars): Test for the problem.
05846dae 2916
14904b89
PE
29172002-10-12 Paul Eggert <eggert@twinsun.com>
2918
1fe611e5
PE
2919 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
2920 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
2921 Include <sys/time.h> when checking for clock_t and struct tms.
2922 Use same include order as source.
2923 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
e3aa65c5 2924 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 2925
1fe611e5
PE
2926 * lib/timevar.c: Update copyright date and clarify comments.
2927 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 2928
1fe611e5
PE
2929 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
2930 GCC version as of today, then merge Bison's changes.
2931 Change "GCC" to "Bison" in copyright notice. timevar.def's
2932 author is Akim, so change that too.
2933
98194095
PE
2934 * src/reader.c (grammar_current_rule_check):
2935 Don't worry about the default action if $$ is untyped.
2936 Prevents bogus warnings reported by Jim Gifford in
e3aa65c5 2937 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 2938
14904b89
PE
2939 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
2940 * data/glr.c, data/lalr1.cc, data/yacc.c:
2941 Output token definitions before the first part of user declarations.
2942 Fixes compatibility problem reported by Jim Gifford for kbd in
e3aa65c5 2943 <http://mail.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 2944
ff6dca18
PE
29452002-10-11 Paul Eggert <eggert@twinsun.com>
2946
2947 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
2948 (yyparse): here. This undoes some of the 2002-07-25 change.
2949 Compatibility problem reported by Ralf S. Engelschall with
2950 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
2951
eb714592
AD
29522002-10-11 Akim Demaille <akim@epita.fr>
2953
2954 * tests/regression.at Characters Escapes): New.
2955 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
2956 characters.
2957 Reported by Jan Nieuwenhuizen.
2958
b7195100
AD
29592002-10-11 Akim Demaille <akim@epita.fr>
2960
2961 * po/id.po: New.
2962
f28a0f2d
PE
29632002-10-10 Paul Eggert <eggert@twinsun.com>
2964
2965 Portability fixes for bitsets; this also avoids several GCC
2966 warnings.
2967
2968 * lib/abitset.c: Include <stddef.h>, for offsetof.
2969 * lib/lbitset.c: Likewise.
2970
2971 * lib/abitset.c (abitset_bytes): Return a size that is aligned
2972 properly for vectors of objects. Do not assume that adding a
2973 header size to a multiple of a word size yields a value that is
2974 properly aligned for the whole union.
2975 * lib/bitsetv.c (bitsetv_alloc): Likewise.
2976
2977 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
2978 unique names for structures.
2979 * lib/ebitset.c (ebitset_bytes): Likewise.
2980 * lib/lbitset.c (lbitset_bytes): Likewise.
2981
2982 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
2983 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
2984 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
2985 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
2986 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
2987 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
2988 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
2989 to improve the type-checking that GCC can do.
2990 * lib/bitset.c (bitset_op4_cmp): Likewise.
2991 * lib/bitset_stats.c (bitset_stats_count,
2992 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
2993 bitset_stats_copy, bitset_stats_disjoint_p,
2994 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
2995 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
2996 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
2997 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
2998 bitset_stats_and_or_cmp, bitset_stats_andn_or,
2999 bitset_stats_andn_or_cmp, bitset_stats_or_and,
3000 bitset_stats_or_and_cmp): Likewise.
3001 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
3002 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
3003 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
3004 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
3005
3006 * lib/abitset.h: Include bitset.h, not bbitset.h.
3007 * lib/ebitset.h: Likewise.
3008 * lib/lbitset.h: Likewise.
3009
3010 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
3011 All instances of parameters of type enum bitset_opts are now of
3012 type enum_bitset_opts, to conform to the C Standard, and similarly
3013 for enum_bitset_type.
3014 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
3015 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
3016
3017 Do not use "struct bitset_struct" to mean different things in
3018 different modules. Not only is this confusing, it violates
3019 the C Standard, which requires that structure types in different
3020 modules must be compatible if one is to be passed to the other.
3021 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
3022 All instances of "struct bitset_struct *" replaced with "bitset".
3023 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
3024 (union bitset_union, struct abitset_struct, struct ebitset_struct,
3025 struct lbitset_struct, struct bitset_stats_struct): New types.
3026 All uses of struct bitset_struct changed to union bitset_union,
3027 etc.
3028 * lib/abitset.c (struct abitset_struct, abitset,
3029 struct bitset_struct): Remove.
3030 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
3031 struct bitset_struct): Remove.
3032 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
3033 bitset_struct): Remove.
3034 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
3035 Likewise.
3036
3037 Do not call a function of type T using a call that assumes the
3038 function is of a different type U. Standard C requires that a
3039 function must be called with a type that is compatible with its
3040 definition.
3041 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
3042 New decls.
3043 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
3044 New functions.
3045 * lib/ebitset.c (PFV): Remove.
3046 * lib/lbitset.c (PFV): Likewise.
3047 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
3048 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
3049 decls.
3050 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
3051 (ebitset_vtable): Use them.
3052 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
3053 lbitset_xor): New functions.
3054 (lbitset_vtable): Use them.
3055
3056 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
3057 Declare.
3058
3059 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
3060 GCC warning.
3061 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
3062 Use offsetof, for simplicity.
3063
6fbe4984
PE
30642002-10-06 Paul Eggert <eggert@twinsun.com>
3065
3066 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
3067 the same width as int. This reapplies a hunk of the 2002-08-12 patch
e3aa65c5 3068 <http://mail.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
3069 which was inadvertently undone by the 2002-09-30 patch.
3070 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
3071 the same width as int.
3072
420f93c8
PE
30732002-10-04 Paul Eggert <eggert@twinsun.com>
3074
3075 Version 1.50.
3076
3077 * configure.ac (AC_INIT), NEWS: Increment version number.
3078
3079 * doc/bison.texinfo: Minor spelling, grammar, and white space
3080 fixes.
3081 (Symbols): Mention that any negative value returned from yylex
3082 signifies end-of-input. Warn about negative chars. Mention
3083 the portable Standard C character set.
3084
3085 The GNU coding standard says CFLAGS and YFLAGS are reserved
3086 for the installer to set.
3087 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
3088 * src/Makefile.am (AM_CFLAGS): Likewise.
3089 (AM_YFLAGS): Renamed from YFLAGS.
3090
3091 Fix some MAX and MIN problems.
3092 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
3093 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
3094 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
3095 * src/reader.c (reader): Use it.
3096
3097 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
3098 POSIX 1003.1-2001 has removed fgrep.
3099
31002002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3101
3102 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
3103 interpreted as signed.
3104 * lib/ebitset.c (ebitset_list): Fix bug.
3105
ff68026d
PE
31062002-10-01 Paul Eggert <eggert@twinsun.com>
3107
3108 More fixes for 64-bit hosts and large bitsets.
3109
3110 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
3111 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
3112 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
3113 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
3114 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
3115 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
3116 bitset_count_): Likewise.
3117 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
3118 bitset_first, bitset_last): Likewise.
3119 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
3120 bitset_stats_list_reverse, bitset_stats_size,
3121 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
3122 Likewise.
3123 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
3124 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
3125 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
3126 bitsetv_reflexive_transitive_closure): Likewise.
3127 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
3128 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
3129 Likewise.
3130 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
3131 Likewise.
420f93c8 3132
ff68026d
PE
3133 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
3134 Use size_t, not unsigned int, to count bytes.
3135 * lib/abitset.h (abitset_bytes): Likewise.
3136 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
3137 Likewise.
3138 * lib/bitset.h (bitset_bytes): Likewise.
3139 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
3140 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
3141 * lib/bitsetv.c (bitsetv_alloc): Likewise.
3142 * lib/ebitset.c (ebitset_bytes): Likewise.
3143 * lib/ebitset.h (ebitset_bytes): Likewise.
3144 * lib/lbitset.c (lbitset_bytes): Likewise.
3145 * lib/lbitset.h (lbitset_bytes): Likewise.
420f93c8 3146
ff68026d
PE
3147 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
3148 abitset_subset_p, abitset_disjoint_p, abitset_and,
3149 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
3150 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
3151 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
3152 abitset_or_and, abitset_or_and_cmp):
3153 Use bitset_windex instead of unsigned int.
3154 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
3155 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
3156 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
3157 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
3158 Likewise.
3159 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
420f93c8 3160
ff68026d
PE
3161 * lib/bitset.c (bitset_print):
3162 Use proper printf formats for widths of integer types.
3163 * lib/bitset_stats.c (bitset_percent_histogram_print,
3164 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
3165 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
3166 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
3167 * lib/lbitset.c (lbitset_bytes): Likewise.
420f93c8 3168
ff68026d
PE
3169 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
3170 BITSET_SIZE_MAX): New macros.
3171 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
3172 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
3173 to BITSET_WINDEX_MAX.
3174
3175 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
3176 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
3177 since we now return the bitset_bindex type (not int).
3178
3179 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
3180 when computing sizes.
3181 * lib/ebitset.c (ebitset_elts_grow): Likewise.
3182
3183 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
3184 and avoid cast to unsigned.
3185
6aa452a6
AD
31862002-09-30 Akim Demaille <akim@epita.fr>
3187
3188 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
3189 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
3190 Updates from Michael Hayes.
3191
927f7817
AD
31922002-09-30 Art Haas <ahaas@neosoft.com>
3193
3194 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
3195 invocations.
3196 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
3197 defined.
3198
9738f41e
AD
31992002-09-27 Akim Demaille <akim@epita.fr>
3200
3201 Version 1.49c.
3202
a5c75d7f
AD
32032002-09-27 Akim Demaille <akim@epita.fr>
3204
3205 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
3206 (Because of AC_LIBSOURCE).
3207
8280e179
AD
32082002-09-27 Akim Demaille <akim@epita.fr>
3209
3210 Playing with Autoscan.
3211
3212 * configure.ac: Remove the old LIBOBJ tweaks.
3213 (AC_REPLACE_FUNCS): Add strrchr and strtol.
3214 * lib/strrchr.c: New.
3215 * lib/strtol.c: New, from the Coreutils 4.5.1.
3216
ae64af35
AD
32172002-09-27 Akim Demaille <akim@epita.fr>
3218
3219 Playing with Autoscan.
3220
3221 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
3222 * lib/Makefile.am (libbison_a_SOURCES): No longer include
3223 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
3224 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
3225 Coreutils 4.5.1.
3226
d1a1114f
AD
32272002-09-24 Akim Demaille <akim@epita.fr>
3228
3229 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
3230 (Frequently Asked Questions, Parser Stack Overflow): New.
3231
b906441c
AD
32322002-09-13 Akim Demaille <akim@epita.fr>
3233
3234 Playing with autoscan.
3235
3236 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
3237 * src/files.c (skeleton_find): Remove, unused.
3238 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
3239 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
3240
bd701811
AD
32412002-09-13 Akim Demaille <akim@epita.fr>
3242
3243 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
3244 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
3245
e0a13e7b
AD
32462002-09-13 Akim Demaille <akim@epita.fr>
3247
3248 * configure.ac: Require 2.54.
3249 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
3250 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
3251 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
3252 Remove, provided by Autoconf macros.
3253
c97011bf
AD
32542002-09-12 Akim Demaille <akim@epita.fr>
3255
3256 * m4/prereq.m4: Update, from Coreutils 4.5.1.
3257
d862b1be
AD
32582002-09-12 Akim Demaille <akim@epita.fr>
3259
3260 * m4/prereq.m4: Update, from Fileutils 4.1.5.
3261 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
3262 Reported by Martin Mokrejs.
3263
3d38c03a
AD
32642002-09-10 Akim Demaille <akim@epita.fr>
3265
3266 * src/parse-gram.y: Associate a human readable string to each
3267 token type.
3268 * tests/regression.at (Invalid inputs): Adjust.
3269
b6347355
AD
32702002-09-10 Gary V. Vaughan <gary@gnu.org>
3271
3272 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
3273 with an Autoconf-2.5x style configure.ac.
3274
09ba4ab2
PE
32752002-09-06 Paul Eggert <eggert@twinsun.com>
3276
3277 * doc/bison.texinfo (Conditions): Make explicit that the GPL
3278 exception applies only to yacc.c. This is a modification of a
3279 patch originally suggested by Akim Demaille.
3280
21846f69
AD
32812002-09-06 Akim Demaille <akim@epita.fr>
3282
09ba4ab2
PE
3283 * data/c.m4 (b4_copyright): Move the GPL exception comment from
3284 here to...
3285 * data/yacc.c: here.
3286
21846f69
AD
3287 * data/lalr1.cc (struct yyltype): Don't define it, since we use
3288 LocationType.
3289 (b4_ltype): Default to yy::Location from location.hh.
3290
c0ad8bf3
AD
32912002-09-04 Jim Meyering <jim@meyering.net>
3292
3293 * data/yacc.c: Guard the declaration of yytoknum also with
3294 `#ifdef YYPRINT', so it is declared only when used.
3295
3a93251e
AD
32962002-09-04 Akim Demaille <akim@epita.fr>
3297
3298 * configure.in: Rename as...
3299 * configure.ac: this.
3300 Bump to 1.49c.
3301
427c0dda
AD
33022002-09-04 Akim Demaille <akim@epita.fr>
3303
3304 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
3305 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
3306 translate maintainer only messages.
3307
6a254321
PE
33082002-08-12 Paul Eggert <eggert@twinsun.com>
3309
645e30d1
PE
3310 Version 1.49b.
3311
6a254321
PE
3312 * Makefile.am (SUBDIRS): Remove intl.
3313 (DISTCLEANFILES): Remove.
3314 * NEWS: Mention that GNU M4 is now required. Clarify what is
3315 meant by "larger grammars". Mention the pt_BR translation.
3316 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
3317 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
3318 Bump version from 0.11.2 to 0.11.5.
3319 (BISON_PREREQ_STAGE): Remove.
3320 (AM_GNU_GETTEXT): Use external gettext.
3321 (AC_OUTPUT): Remove intl/Makefile.
3322
3323 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
3324
3325 * data/glr.c: Include string.h, for strlen.
3326 (yyreportParseError): Use size_t for yysize.
3327 (yy_yypstack): No longer nested inside yypstates, as nested
3328 functions are not portable. Do not assume size_t is the
3329 same width as int.
3330 (yypstates): Do not assume that ptrdiff_t is the same width
3331 as int, and similarly for yyposn and YYINDEX.
3332
3333 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
3334
3335 * lib/Makefile.am (INCLUDES): Do not include from the intl
3336 directory, which has been removed.
3337 * src/Makefile.am (INCLUDES): Likewise.
3338
3339 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
3340 (bitsets_sources, additional_bitsets_sources, timevars_sources):
3341 New vars.
3342
3343 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
3344 * tests/Makefile.am (EXTRA_DIST): Likewise.
3345
3346 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
3347 Do not assume that bitset_windex is the same width as unsigned.
3348
3349 * lib/abitset.c (abitset_unused_clear): Do not assume that
3350 bitset_word is the same width as int.
3351 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
3352 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
3353 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
3354 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
3355 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
3356
3357 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
3358 portability to one's complement hosts!).
3359 * lib/ebitset.c (ebitset_op1): Likewise.
3360 * lib/lbitset.c (lbitset_op1): Likewise.
3361
3362 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
3363 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
3364 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
3365 Sync with fileutils.
3366 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
3367 lib/gettext.h: Sync with diffutils.
3368
3369 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
3370 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
3371
3372 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
3373 PROTOTYPES to check for prototypes, and "defined __STDC__" to
3374 check for void *.
3375
3376 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
3377 size_t; the old version tried to do this but casted improperly.
3378 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
3379 (bitset_test): Now returns int, not unsigned long.
3380
3381 * lib/bitset_stats.c: Include "gettext.h".
3382 (_): New macro.
3383 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
3384 name locals "index", as it generates unnecessary warnings on some
3385 hosts that have an "index" function.
3386
3387 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
3388 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
3389 they need translation.
3390 * src/LR0.c (state_list_append, new_itemsets, get_state,
3391 append_states, generate_states): Likewise.
3392 * src/assoc.c (assoc_to_string): Likewise.
3393 * src/closure.c (print_closure, set_firsts, closure): Likewise.
3394 * src/gram.c (grammar_dump): Likewise.
3395 * src/injections.c (injections_compute): Likewise.
3396 * src/lalr.c (lookaheads_print): Likewise.
3397 * src/relation.c (relation_transpose): Likewise.
3398 * src/scan-gram.l: Likewise.
3399 * src/tables.c (table_grow, pack_vector): Likewise.
3400
3401 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
3402 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
3403 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
3404 * m4/mbstate_t.m4: Sync with fileutils.
3405 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
3406
3407 * po/LINGUAS: Add pt_BR.
3408 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
3409 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
3410 lib/timevar.c.
3411 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
3412 manual recommends.
3413 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
3414
3415 * src/complain.c (strerror_r): Remove decl; not needed.
3416 (strerror): Use same pattern as ../lib/error.c.
3417
3418 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
3419
3420 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
3421
3422 * src/main.c (main): Cast result of bindtextdomain and textdomain
3423 to void, to avoid a GCC warning when --disable-nls is in effect.
3424
3425 * src/scan-gram.l: Use strings rather than escapes when possible,
3426 to minimize the number of warnings from xgettext.
3427 (handle_action_dollar, handle_action_at): Don't use isdigit,
3428 as it mishandles negative chars and it may not work as expected
3429 outside the C locale.
3430
3431 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
3432 this is a GCC extension and is not portable to other compilers.
3433
3434 * src/system.h (alloca): Use same pattern as ../lib/error.c.
3435 Do not include <ctype.h>; no longer needed.
3436 Do not include <malloc.h>; no longer needed (and generates
3437 warnings on OpenBSD 3.0).
3438
3439 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
3440 it's not portable.
3441
3442 * tests/regression.at: Do not use 'cc -c input.c -o input';
3443 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
3444
3445 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
3446 exit status as failure, not just exit status 1. Sun C exits
3447 with status 2 sometimes.
3448
3449 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
3450 Use it for the two large tests.
3451
c8f002c7
AD
34522002-08-02 Akim Demaille <akim@epita.fr>
3453
3454 * src/conflicts.c (conflicts_output): Don't output rules never
3455 reduced here, since anyway that computation doesn't work.
3456 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
3457 (rule_useless_p, rule_never_reduced_p): New.
3458 (grammar_rules_partial_print): Use a filter instead of a range.
3459 Display the title only if needed.
3460 (grammar_rules_print): Adjust.
3461 (grammar_rules_never_reduced_report): New.
3462 * src/tables.c (action_row): Move the computation of rules never
3463 reduced to...
3464 (token_actions): here.
3465 * src/main.c (main): Make the parser before making the report, so
3466 that rules never reduced are computed.
3467 Call grammar_rules_never_reduced_report.
3468 * src/print.c (print_results): Report rules never reduced.
3469 * tests/conflicts.at, tests/reduce.at: Adjust.
3470
cd08e51e
AD
34712002-08-01 Akim Demaille <akim@epita.fr>
3472
3473 Instead of attaching lookaheads and duplicating the rules being
3474 reduced by a state, attach the lookaheads to the reductions.
3475
3476 * src/state.h (state_t): Remove the `lookaheads',
3477 `lookaheads_rule' member.
3478 (reductions_t): Add a `lookaheads' member.
3479 Use a regular array for the `rules'.
3480 * src/state.c (reductions_new): Initialize the lookaheads member
3481 to 0.
3482 (state_rule_lookaheads_print): Adjust.
3483 * src/state.h, src/state.c (state_reductions_find): New.
3484 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
3485 (count_rr_conflicts): Adjust.
3486 * src/lalr.c (LArule): Remove.
3487 (add_lookback_edge): Adjust.
3488 (state_lookaheads_count): New.
3489 (states_lookaheads_initialize): Merge into...
3490 (initialize_LA): this.
3491 (lalr_free): Adjust.
3492 * src/main.c (main): Don't free nullable and derives too early: it
3493 is used by --verbose.
3494 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
3495
bb0027a9
AD
34962002-08-01 Akim Demaille <akim@epita.fr>
3497
3498 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
3499 `rule_number_t**'.
3500 (set_derives, free_derives): Rename as...
3501 (derives_compute, derives_free): this.
3502 Adjust all dependencies.
3503 * src/nullable.c (set_nullable, free_nullable): Rename as...
3504 (nullable_compute, nullable_free): these.
3505 (rule_list_t): Store rule_t *, not rule_number_t.
3506 * src/state.c (state_rule_lookaheads_print): Directly compare rule
3507 pointers, instead of their numbers.
3508 * src/main.c (main): Call nullable_free, and derives_free earlier,
3509 as they were lo longer used.
3510
3325ddc4
AD
35112002-08-01 Akim Demaille <akim@epita.fr>
3512
3513 * lib/timevar.c (get_time): Include children time.
3514 * src/lalr.h (LA, LArule): Don't export them: used with the
3515 state_t.
3516 * src/lalr.c (LA, LArule): Static.
3517 * src/lalr.h, src/lalr.c (lalr_free): New.
3518 * src/main.c (main): Call it.
3519 * src/tables.c (pack_vector): Check whether loc is >= to the
3520 table_size, not >.
3521 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
3522 (tables_generate): do it, since that's also it which allocates
3523 them.
3524 Don't free LA and LArule, main does.
3525
c6f1a33c
AD
35262002-07-31 Akim Demaille <akim@epita.fr>
3527
3528 Separate parser tables computation and output.
3529
3530 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
3531 (conflict_list, conflict_list_cnt, table, check, table_ninf)
3532 (yydefgoto, yydefact, high): Move to...
3533 * src/tables.h, src/tables.c: here.
3534 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3535 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3536 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
3537 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
3538 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
3539 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
3540 (action_row, save_row, token_actions, save_column, default_goto)
3541 (goto_actions, sort_actions, matching_state, pack_vector)
3542 (table_ninf_remap, pack_table, prepare_actions): Move to...
3543 * src/tables.c: here.
3544 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
3545 * src/output.c (token_actions, output_base, output_conflicts)
3546 (output_check): Merge into...
3547 (prepare_actions): this.
3548 (actions_output): Rename as...
3549 (user_actions_output): this.
3550 * src/main.c (main): Call tables_generate and tables_free.
3551
1509d42f
AD
35522002-07-31 Akim Demaille <akim@epita.fr>
3553
3554 Steal GCC's --time-report support.
3555
3556 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
3557 stolen/adjusted from GCC.
3558 * m4/stage.m4: Remove time related checks.
3559 * m4/timevar.m4: New.
3560 * configure.in: Adjust.
3561 * src/system.h: Adjust to using timevar.h.
3562 * src/getargs.h, src/getargs.c: Support trace_time for
3563 --trace=time.
3564 * src/main.c (stage): Remove.
3565 (main): Replace `stage' invocations with timevar calls.
3566 * src/output.c: Insert pertinent timevar calls.
3567
273a74fa
AD
35682002-07-31 Akim Demaille <akim@epita.fr>
3569
3570 Let --trace have arguments.
3571
3572 * src/getargs.h (enum trace_e): New.
3573 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
3574 (long_options, short_options): --trace/-T takes an optional
3575 argument.
3576 Change all the uses of trace_flag to reflect the new flags.
3577 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
3578
3579 Strengthen `stage' portability.
3580
3581 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
3582 * configure.in: Use it.
3583 Don't check for malloc.h and sys/times.h.
3584 * src/system.h: Include them when appropriate.
3585 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
3586 times and struct tms are available.
3587
217598da
AD
35882002-07-30 Akim Demaille <akim@epita.fr>
3589
3590 In verbose parse error message, don't report `error' as an
3591 expected token.
3592 * tests/actions.at (Printers and Destructors): Adjust.
3593 * tests/calc.at (Calculator $1): Adjust.
3594 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
3595 error message, do not report the parser accepts the error token in
3596 that state.
3597
52489d44
AD
35982002-07-30 Akim Demaille <akim@epita.fr>
3599
3600 Normalize conflict related messages.
3601
3602 * src/complain.h, src/complain.c (warn, complain): New.
3603 * src/conflicts.c (conflicts_print): Use them.
3604 (conflict_report_yacc): New, extracted from...
3605 (conflicts_print): here.
3606 * tests/conflicts.at, tests/existing.at: Adjust.
3607
e8832397
AD
36082002-07-30 Akim Demaille <akim@epita.fr>
3609
3610 Report rules which are never reduced by the parser: those hidden
3611 by conflicts.
3612
3613 * src/LR0.c (save_reductions): Don't make the final state too
3614 different: save its reduction (accept) instead of having a state
3615 without any action (no shift or goto, no reduce).
3616 Note: the final state is now a ``regular'' state, i.e., the
3617 parsers now contain `reduce 0' as default reduction.
3618 Nevertheless, since they decide to `accept' when yystate =
3619 final_state, they still will not reduce rule 0.
3620 * src/print.c (print_actions, print_reduction): Adjust.
3621 * src/output.c (action_row): Track reduced rules.
3622 (token_actions): Report rules never reduced.
3623 * tests/conflicts.at, tests/regression.at: Adjust.
3624
caf23d24
AD
36252002-07-30 Akim Demaille <akim@epita.fr>
3626
3627 `stage' was accidently included in a previous patch.
3628 Initiate its autoconfiscation.
3629
3630 * configure.in: Look for malloc.h and sys/times.h.
3631 * src/main.c (stage): Adjust.
3632 Report only when trace_flag.
3633
640748ee
AD
36342002-07-29 Akim Demaille <akim@epita.fr>
3635
3636 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
3637 state_number_t.
3638 (errs_t): symbol_t*, not symbol_number_t.
3639 (reductions_t): rule_t*, not rule_number_t.
3640 (FOR_EACH_SHIFT): New.
3641 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
3642 * src/print.c, src/print_graph.c: Adjust.
3643
88bce5a2
AD
36442002-07-29 Akim Demaille <akim@epita.fr>
3645
3646 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
3647
3648 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
3649 (endtoken, accept): these.
3650 * src/reader.c (reader): Set endtoken's default tag to "$end".
3651 Set undeftoken's tag to "$undefined" instead of "$undefined.".
3652 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
3653 Adjust.
3654
1bfb97db
AD
36552002-07-29 Akim Demaille <akim@epita.fr>
3656
3657 * src/reduce.c (reduce_grammar): When the language is empty,
3658 complain about the start symbol, not the axiom.
3659 Use its location.
3660 * tests/reduce.at (Empty Language): New.
3661
fc5734fe
AD
36622002-07-26 Akim Demaille <akim@epita.fr>
3663
3664 * src/reader.h, src/reader.c (gram_error): ... can't get
3665 yycontrol without making too strong assumptions on the parser
3666 itself.
3667 * src/output.c (prepare_tokens): Use the real 0th value of
3668 token_translations instead of `0'.
3669 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
3670 visible here.
3671 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
3672 for the time being: %locations ought to provide it to yyerror.
3673
3650b4b8
AD
36742002-07-25 Akim Demaille <akim@epita.fr>
3675
3676 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
3677 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
3678 * tests/regression.at (Web2c Actions): Adjust.
3679
4b3d3a8e
AD
36802002-07-25 Akim Demaille <akim@epita.fr>
3681
3682 Stop storing rules from 1 to nrules + 1.
3683
3684 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
3685 * src/nullable.c, src/output.c, src/print.c, src/reader.c
3686 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
3687 Iterate from 0 to nrules.
3688 Use rule_number_as_item_number and item_number_as_rule_number.
3689 Adjust to `derive' now containing possibly 0.
3690 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
3691 Handle the `- 1' part in rule numbers from/to item numbers.
3692 * src/conflicts.c (log_resolution): Fix the message which reversed
3693 shift and reduce.
3694 * src/output.c (action_row): Initialize default_rule to -1.
3695 (token_actions): Adjust.
3696 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
3697 expected output.
3698 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
3699
4a2a22f4
AD
37002002-07-25 Akim Demaille <akim@epita.fr>
3701
3702 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
3703 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
3704 (b4_c_knr_arg_decl): New.
3705 * data/yacc.c: Use it to define yysymprint, yydestruct, and
3706 yyreport_parse_error.
3707
b8df3223
AD
37082002-07-25 Akim Demaille <akim@epita.fr>
3709
3710 * data/yacc.c (yyreport_parse_error): New, extracted from...
3711 (yyparse): here.
3712 (yydestruct, yysymprint): Move above yyparse.
3713 Be K&R compliant.
3714
a762e609
AD
37152002-07-25 Akim Demaille <akim@epita.fr>
3716
3717 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
3718 replace...
3719 (b4_sint_type, b4_uint_type): these.
3720 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
3721 * tests/regression.at (Web2c Actions): Adjust.
3722
12b0043a
AD
37232002-07-25 Akim Demaille <akim@epita.fr>
3724
3725 * src/gram.h (TIEM_NUMBER_MAX): New.
3726 (item_number_of_rule_number, rule_number_of_item_number): Rename
3727 as...
3728 (rule_number_as_item_number, item_number_as_rule_number): these.
3729 Adjust dependencies.
3730 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
3731 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
3732 (symbol_number_to_vector_number): New.
3733 (order): Of vector_number_t* type.
3734 (base_t, BASE_MAX, BASE_MIN): New.
3735 (froms, tos, width, pos, check): Of base_t type.
3736 (action_number_t, ACTION_MIN, ACTION_MAX): New.
3737 (actrow): Of action_number_t type.
3738 (conflrow): Of unsigned int type.
3739 (table_ninf, base_ninf): New.
3740 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
3741 (muscle_insert_int_table, muscle_insert_base_table)
3742 (muscle_insert_rule_number_table): New.
3743 (prepare_tokens): Output `toknum' as int_table.
3744 (action_row): Returns a rule_number_t.
3745 Use ACTION_MIN, not SHRT_MIN.
3746 (token_actions): yydefact is rule_number_t*.
3747 (table_ninf_remap): New.
3748 (pack_table): Use it for `base' and `table'.
3749 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
3750 replaced with...
3751 (YYPACT_NINF, YYTABLE_NINF): these.
3752 (yypact, yytable): Compute their types instead of hard-coded
3753 `short'.
3754 * tests/regression.at (Web2c Actions): Adjust.
3755
5dde258a
AD
37562002-07-19 Akim Demaille <akim@epita.fr>
3757
3758 * src/scan-gram.l (id): Can start with an underscore.
3759
a945ec39
AD
37602002-07-16 Akim Demaille <akim@epita.fr>
3761
3762 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
3763 Adjust all former `associativity' dependencies.
3764 * src/symtab.c (symbol_new): Default associativity is `undef', not
3765 `right'.
3766 (symbol_check_alias_consistence): Adjust.
3767
fae437e8
AD
37682002-07-09 Akim Demaille <akim@epita.fr>
3769
3770 * doc/bison.texinfo: Properly set the ``header'' part.
3771 Use @dircategory ``GNU programming tools'' as per Texinfo's
3772 documentation.
3773 Use @copying.
3774
1a715ef2
AD
37752002-07-09 Akim Demaille <akim@epita.fr>
3776
3777 * lib/quotearg.h: Protect against multiple inclusions.
3778 * src/location.h (location_t): Add a `file' member.
3779 (LOCATION_RESET, LOCATION_PRINT): Adjust.
3780 * src/complain.c (warn_at, complain_at, fatal_at): Drop
3781 `error_one_per_line' support.
3782
a5d50994
AD
37832002-07-09 Akim Demaille <akim@epita.fr>
3784
3785 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
3786 * src/reader.c (lineno): Remove.
3787 Adjust all dependencies.
3788 (get_merge_function): Take a location and use complain_at.
3789 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
3790 * tests/regression.at (Invalid inputs, Mixing %token styles):
3791 Adjust.
3792
b275314e
AD
37932002-07-09 Akim Demaille <akim@epita.fr>
3794
3795 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
3796 recovery rule, and forbid extensions when --yacc.
3797 (gram_error): Use complain_at.
3798 * src/reader.c (reader): Exit if there were parse errors.
3799
865b9df1
AD
38002002-07-09 Akim Demaille <akim@epita.fr>
3801
3802 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
3803 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
3804 Reported by R Blake <blakers@mac.com>.
3805
c76e14da
AD
38062002-07-09 Akim Demaille <akim@epita.fr>
3807
3808 * data/yacc.c: Output the copyright notive in the header.
3809
7db2ed2d
AD
38102002-07-03 Akim Demaille <akim@epita.fr>
3811
3812 * src/output.c (froms, tos): Are state_number_t.
3813 (save_column): sp, sp1, and sp2 are state_number_t.
3814 (prepare): Rename `final' as `final_state_number', `nnts' as
3815 `nterms_number', `nrules' as `rules_number', `nstates' as
3816 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
3817 unused.
3818 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
3819 * data/lalr1.cc (nsym_): Remove, unused.
3820
e68e0410
AD
38212002-07-03 Akim Demaille <akim@epita.fr>
3822
3823 * src/lalr.h, src/lalr.c (goto_number_t): New.
3824 * src/lalr.c (goto_list_t): New.
3825 Propagate them.
3826 * src/nullable.c (rule_list_t): New.
3827 Propagate.
3828 * src/types.h: Remove.
3829
e1a4f3a4
AD
38302002-07-03 Akim Demaille <akim@epita.fr>
3831
3832 * src/closure.c (print_fderives): Use rule_rhs_print.
3833 * src/derives.c (print_derives): Use rule_rhs_print.
3834 (rule_list_t): New, replaces `shorts'.
3835 (set_derives): Add comments.
3836 * tests/sets.at (Nullable, Firsts): Adjust.
3837
536545f3
AD
38382002-07-03 Akim Demaille <akim@epita.fr>
3839
3840 * src/output.c (prepare_actions): Free `tally' and `width'.
3841 (prepare_actions): Allocate and free `order'.
3842 * src/symtab.c (symbols_free): Free `symbols'.
3843 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
3844 * src/output.c (m4_invoke): Move to...
3845 * src/scan-skel.l: here.
3846 (<<EOF>>): Close yyout, and free its name.
3847
8b752b00
AD
38482002-07-03 Akim Demaille <akim@epita.fr>
3849
3850 Fix some memory leaks, and fix a bug: state 0 was examined twice.
3851
3852 * src/LR0.c (new_state): Merge into...
3853 (state_list_append): this.
3854 (new_states): Merge into...
3855 (generate_states): here.
3856 (set_states): Don't ensure a proper `errs' state member here, do it...
3857 * src/conflicts.c (conflicts_solve): here.
3858 * src/state.h, src/state.c: Comment changes.
3859 (state_t): Rename member `shifts' as `transitions'.
3860 Adjust all dependencies.
3861 (errs_new): For consistency, also take the values as argument.
3862 (errs_dup): Remove.
3863 (state_errs_set): New.
3864 (state_reductions_set, state_transitions_set): Assert that no
3865 previous value was assigned.
3866 (state_free): New.
3867 (states_free): Use it.
3868 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
3869 temporary storage: use `errs' and `nerrs' as elsewhere.
3870 (set_conflicts): Allocate and free this `errs'.
3871
613f5e1a
AD
38722002-07-02 Akim Demaille <akim@epita.fr>
3873
3874 * lib/libiberty.h: New.
3875 * lib: Update the bitset implementation from upstream.
3876 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
3877 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
3878 * src/main.c: Adjust bitset stats calls.
3879
26e0cadc
PE
38802002-07-01 Paul Eggert <eggert@twinsun.com>
3881
3882 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
3883 char, so that negative chars don't collide with $.
3884
1154cced
AD
38852002-06-30 Akim Demaille <akim@epita.fr>
3886
3887 Have the GLR tests be `warning' checked, and fix the warnings.
3888
3889 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
3890 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
3891 (yyremoveDeletes): `yyi' and `yyj' are size_t.
3892 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
3893 (yyaddDeferredAction): static.
3894 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
3895 (yyreportParseError): yyprefix is const.
3896 yytokenp is used only when verbose.
3897 (yy__GNUC__): Replace with __GNUC__.
3898 (yypdumpstack): yyi is size_t.
3899 (yypreference): Un-yy local variables and arguments, to avoid
3900 clashes with `yyr1'. Anyway, we are not in the user name space.
3901 (yytname_size): be an int, as is compared with ints.
3902 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
3903 Use them.
3904 * tests/cxx-gram.at: Use quotation to protect $1.
3905 Use AT_COMPILE to enable warnings hunts.
3906 Prototype yylex and yyerror.
3907 `Use' argc.
3908 Include `string.h', not `strings.h'.
3909 Produce and prototype stmtMerge only when used.
3910 yylex takes a location.
3911
97650f4e
AD
39122002-06-30 Akim Demaille <akim@epita.fr>
3913
3914 We spend a lot of time in quotearg, in particular when --verbose.
3915
3916 * src/symtab.c (symbol_get): Store a quoted version of the key.
3917 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
3918 Adjust all callers.
3919
d2576365
AD
39202002-06-30 Akim Demaille <akim@epita.fr>
3921
3922 * src/state.h (reductions_t): Rename member `nreds' as num.
3923 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
3924 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
3925
ccaf65bc
AD
39262002-06-30 Akim Demaille <akim@epita.fr>
3927
3928 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
3929 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
3930 (shifts_to): Rename as...
3931 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
3932 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
3933 (TRANSITION_IS_DISABLED, transitions_to): these.
3934
87675353
AD
39352002-06-30 Akim Demaille <akim@epita.fr>
3936
3937 * src/print.c (print_shifts, print_gotos): Merge into...
3938 (print_transitions): this.
3939 (print_transitions, print_errs, print_reductions): Align the
3940 lookaheads columns.
3941 (print_core, print_transitions, print_errs, print_state,
3942 print_grammar): Output empty lines separator before, not after.
3943 (state_default_rule_compute): Rename as...
3944 (state_default_rule): this.
3945 * tests/conflicts.at (Defaulted Conflicted Reduction),
3946 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
3947 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
3948
ce4ccb4b
AD
39492002-06-30 Akim Demaille <akim@epita.fr>
3950
3951 Display items as we display rules.
3952
3953 * src/gram.h, src/gram.c (rule_lhs_print): New.
3954 * src/gram.c (grammar_rules_partial_print): Use it.
3955 * src/print.c (print_core): Likewise.
3956 * tests/conflicts.at (Defaulted Conflicted Reduction),
3957 (Unresolved SR Conflicts): Adjust.
3958 (Unresolved SR Conflicts): Adjust and rename as...
3959 (Resolved SR Conflicts): this, as was meant.
3960 * tests/regression.at (Web2c Report): Adjust.
3961
bc933ef1
AD
39622002-06-30 Akim Demaille <akim@epita.fr>
3963
3964 * src/print.c (state_default_rule_compute): New, extracted from...
3965 (print_reductions): here.
3966 Pessimize, but clarify the code.
3967 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
3968
53d4308d
AD
39692002-06-30 Akim Demaille <akim@epita.fr>
3970
3971 * src/output.c (action_row): Let default_rule be always a rule
3972 number.
3973
574fb2d5
AD
39742002-06-30 Akim Demaille <akim@epita.fr>
3975
3976 * src/closure.c (print_firsts, print_fderives, closure):
3977 Use BITSET_EXECUTE.
3978 * src/lalr.c (lookaheads_print): Likewise.
3979 * src/state.c (state_rule_lookaheads_print): Likewise.
3980 * src/print_graph.c (print_core): Likewise.
3981 * src/print.c (print_reductions): Likewise.
3982 * src/output.c (action_row): Likewise.
3983 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
3984
05811fd7
AD
39852002-06-30 Akim Demaille <akim@epita.fr>
3986
3987 * src/print_graph.c: Use report_flag.
3988
0e4d5753
AD
39892002-06-30 Akim Demaille <akim@epita.fr>
3990
3991 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
3992 to...
3993 * src/relation.h, src/relation.c (traverse, relation_digraph)
3994 (relation_print, relation_transpose): New.
3995
24c7d800
AD
39962002-06-30 Akim Demaille <akim@epita.fr>
3997
3998 * src/state.h, src/state.c (shifts_to): New.
3999 * src/lalr.c (build_relations): Use it.
4000
9222837b
AD
40012002-06-30 Akim Demaille <akim@epita.fr>
4002
4003 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
4004 (item_number_of_rule_number, rule_number_of_item_number): New.
4005 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
4006 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
4007 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
4008 Propagate their use.
4009 Much remains to be done, in particular wrt `shorts' from types.h.
4010
260008e5
AD
40112002-06-30 Akim Demaille <akim@epita.fr>
4012
4013 * src/symtab.c (symbol_new): Initialize the `printer' member.
4014
8a731ca8
AD
40152002-06-30 Akim Demaille <akim@epita.fr>
4016
4017 * src/LR0.c (save_reductions): Remove, replaced by...
4018 * src/state.h, src/state.c (state_reductions_set): New.
4019 (reductions, errs): Rename as...
4020 (reductions_t, errs_t): these.
4021 Adjust all dependencies.
4022
32e1e0a4
AD
40232002-06-30 Akim Demaille <akim@epita.fr>
4024
4025 * src/LR0.c (state_list_t, state_list_append): New.
4026 (first_state, last_state): Now symbol_list_t.
4027 (this_state): Remove.
4028 (new_itemsets, append_states, save_reductions): Take a state_t as
4029 argument.
4030 (set_states, generate_states): Adjust.
4031 (save_shifts): Remove, replaced by...
4032 * src/state.h, src/state.c (state_shifts_set): New.
4033 (shifts): Rename as...
4034 (shifts_t): this.
4035 Adjust all dependencies.
4036 * src/state.h (state_t): Remove the `next' member.
4037
e5fb6710
AD
40382002-06-30 Akim Demaille <akim@epita.fr>
4039
4040 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
4041 escaped in slot 0.
4042
c7ca99d4
AD
40432002-06-30 Akim Demaille <akim@epita.fr>
4044
4045 Use hash.h for the state hash table.
4046
4047 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
4048 (allocate_storage): Use state_hash_new.
4049 (free_storage): Use state_hash_free.
4050 (new_state, get_state): Adjust.
4051 * src/lalr.h, src/lalr.c (states): Move to...
4052 * src/states.h (state_t): Remove the `link' member, no longer
4053 used.
4054 * src/states.h, src/states.c: here.
4055 (state_hash_new, state_hash_free, state_hash_lookup)
4056 (state_hash_insert, states_free): New.
4057 * src/states.c (state_table, state_compare, state_hash): New.
4058 * src/output.c (output_actions): Do not free states now, since we
4059 still need to know the final_state number in `prepare', called
4060 afterwards. Do it...
4061 * src/main.c (main): here: call states_free after `output'.
4062
df0e7316
AD
40632002-06-30 Akim Demaille <akim@epita.fr>
4064
4065 * src/state.h, src/state.c (state_new): New, extracted from...
4066 * src/LR0.c (new_state): here.
4067 * src/state.h (STATE_ALLOC): Move to...
4068 * src/state.c: here.
4069 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
4070 * src/state.h, src/state.c: here.
4071
39f41916
AD
40722002-06-30 Akim Demaille <akim@epita.fr>
4073
4074 * src/reader.c (gensym): Rename as...
4075 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
4076 (getsym): Rename as...
4077 (symbol_get): this.
4078
d57650a5
AD
40792002-06-30 Akim Demaille <akim@epita.fr>
4080
4081 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
4082 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
4083 * src/output.c, src/print.c, src/print_graph.c: Propagate.
4084 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
4085
5a08f1ce
AD
40862002-06-30 Akim Demaille <akim@epita.fr>
4087
4088 Make the test suite pass with warnings checked.
4089
4090 * tests/actions.at (Printers and Destructors): Improve.
4091 Avoid unsigned vs. signed issues.
4092 * tests/calc.at: Don't exercise the scanner here, do it...
4093 * tests/input.at (Torturing the Scanner): here.
4094
720623af
PH
40952002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4096
88e7e941 4097 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
4098 reorganize first lines parallel to yacc.c.
4099
fb8135fa
AD
41002002-06-28 Akim Demaille <akim@epita.fr>
4101
4102 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
4103 (b4_token_enum, b4_token_defines): New, factored from...
4104 * data/lalr1.cc, data/yacc.c, glr.c: here.
4105
41442480
AD
41062002-06-28 Akim Demaille <akim@epita.fr>
4107
4108 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
4109 unused variables.
4110 * src/output.c (merger_output): static.
4111
e0e5bf84
AD
41122002-06-28 Akim Demaille <akim@epita.fr>
4113
4114 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
4115 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
4116 pacify GCC.
4117 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 4118
676385e2
PH
41192002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4120
4121 Accumulated changelog for new GLR parsing features.
4122
6a254321 4123 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
4124 conflicts_total_count.
4125 * src/conflicts.h: Ditto.
4126 * src/output.c (token_actions): Use the new name.
4127 (output_conflicts): Change conflp => conflict_list_heads, and
4128 confl => conflict_list for better readability.
4129 * data/glr.c: Use the new names.
4130 * NEWS: Add self to GLR announcement.
e0e5bf84 4131
676385e2
PH
4132 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
4133
4134 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
4135 Akim Demaille.
4136
4137 * data/bison.glr: Change name to glr.c
4138 * data/glr.c: Renamed from bison.glr.
4139 * data/Makefile.am: Add glr.c
e0e5bf84
AD
4140
4141 * src/getargs.c:
4142
676385e2
PH
4143 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
4144 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 4145
676385e2
PH
4146 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4147
4148 * data/bison.glr: Be sure to restore the
4149 current #line when returning to the skeleton contents after having
4150 exposed the input file's #line.
4151
4152 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4153
4154 * data/bison.glr: Bring up to date with changes to bison.simple.
4155
4156 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4157
4158 * data/bison.glr: Correct definitions that use b4_prefix.
4159 Various reformatting.
4160 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
4161 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
4162 yytokenp argument; now part of stack.
4163 (yychar): Define to behave as documented.
4164 (yyclearin): Ditto.
e0e5bf84 4165
676385e2
PH
4166 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4167
4168 * src/reader.h: Add declaration for free_merger_functions.
4169
4170 * src/reader.c (merge_functions): New variable.
4171 (get_merge_function): New function.
4172 (free_merger_functions): New function.
4173 (readgram): Check for %prec that is not followed by a symbol.
4174 Handle %dprec and %merge declarations.
4175 (packgram): Initialize dprec and merger fields in rules array.
4176
4177 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
4178 conflict_list_cnt, conflict_list_free): New variables.
4179 (table_grow): Also grow conflict_table.
e0e5bf84 4180 (prepare_rules): Output dprec and merger tables.
676385e2 4181 (conflict_row): New function.
e0e5bf84 4182 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
4183 default reduction in conflicted states for GLR parser so that there
4184 are spaces for the conflict lists.
4185 (save_row): Also save conflict information.
4186 (token_actions): Allocate conflict list.
4187 (merger_output): New function.
4188 (pack_vector): Pack conflict table, too.
4189 (output_conflicts): New function to output yyconflp and yyconfl.
4190 (output_check): Allocate conflict_tos.
4191 (output_actions): Output conflict tables, also.
4192 (output_skeleton): Output b4_mergers definition.
4193 (prepare): Output b4_max_rhs_length definition.
4194 Use 'bison.glr' as default skeleton for GLR parsers.
4195
4196 * src/gram.c (glr_parser): New flag.
4197 (grammar_free): Call free_merger_functions.
4198
4199 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
4200 all pairs of conflicting reductions, rather than just all tokens
4201 causing conflicts. Needed to size conflict tables.
e0e5bf84 4202 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
4203 interface.
4204 (conflicts_print): Ditto.
4205 (count_total_conflicts): New function.
4206
4207 * src/reader.h (merger_list): New type.
4208 (merge_functions): New variable.
4209
4210 * src/lex.h (tok_dprec, tok_merge): New token types.
4211
4212 * src/gram.h (rule_s): Add dprec and merger fields.
4213 (glr_parser): New flag.
4214
4215 * src/conflicts.h (count_total_conflicts): New function.
4216
4217 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
4218
4219 * doc/bison.texinfo (Generalized LR Parsing): New section.
4220 (GLR Parsers): New section.
4221 (Language and Grammar): Mention GLR parsing.
4222 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
4223 Correct typo ("tge" -> "the").
4224
4225 * data/bison.glr: New skeleton for GLR parsing.
4226
4227 * tests/cxx-gram.at: New tests for GLR parsing.
4228
4229 * tests/testsuite.at: Include cxx-gram.at.
4230
4231 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 4232
676385e2
PH
4233 * src/parse-gram.y:
4234
4235 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
4236
4237 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 4238
b5480d74 42392002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
4240
4241 * src/options.h, src/options.c: Remove.
4242 * src/getargs.c (short_options, long_options): New.
4243
60491a94
AD
42442002-06-27 Akim Demaille <akim@epita.fr>
4245
4246 * data/bison.simple, data/bison.c++: Rename as...
4247 * data/yacc.c, data/lalr1.cc: these.
4248 * doc/bison.texinfo (Environment Variables): Remove.
4249
9be0c25b
AD
42502002-06-25 Raja R Harinath <harinath@cs.umn.edu>
4251
4252 * src/getargs.c (report_argmatch): Initialize strtok().
4253
1ae72863
AD
42542002-06-20 Akim Demaille <akim@epita.fr>
4255
4256 * data/bison.simple (b4_symbol_actions): New, replaces...
4257 (b4_symbol_destructor, b4_symbol_printer): these.
4258 (yysymprint): Be sure to call YYPRINT only for tokens, and using
4259 user token numbers.
4260
87542d29
AD
42612002-06-20 Akim Demaille <akim@epita.fr>
4262
4263 * data/bison.simple (yydestructor): Rename as...
4264 (yydestruct): this.
4265
1a31ed21
AD
42662002-06-20 Akim Demaille <akim@epita.fr>
4267
4268 * src/symtab.h, src/symtab.c (symbol_type_set)
4269 (symbol_destructor_set, symbol_precedence_set): The location is
4270 the last argument.
4271 Adjust all callers.
4272
e776192e
AD
42732002-06-20 Akim Demaille <akim@epita.fr>
4274
4275 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
4276 internals.
4277 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
4278 Takes a location.
4279 * src/symtab.h, src/symtab.c (symbol_class_set)
4280 (symbol_user_token_number_set): Likewise.
4281 Adjust all callers.
4282 Promote complain_at.
4283 * tests/input.at (Type Clashes): Adjust.
4284
5c1180b3
AD
42852002-06-20 Akim Demaille <akim@epita.fr>
4286
4287 * data/bison.simple (YYLEX): Fix the declaration when
4288 %pure-parser.
4289
e3170060
AD
42902002-06-20 Akim Demaille <akim@epita.fr>
4291
4292 * data/bison.simple (yysymprint): Don't print the token number,
4293 just its name.
4294 * tests/actions.at (Destructors): Rename as...
4295 (Printers and Destructors): this.
4296 Also exercise %printer.
4297
253862fd
AD
42982002-06-20 Akim Demaille <akim@epita.fr>
4299
4300 * data/bison.simple (YYDSYMPRINT): New.
4301 Use it to remove many of the #if YYDEBUG/if (yydebug).
4302
366eea36
AD
43032002-06-20 Akim Demaille <akim@epita.fr>
4304
4305 * src/symtab.h, src/symtab.c (symbol_t): printer and
4306 printer_location are new members.
4307 (symbol_printer_set): New.
4308 * src/parse-gram.y (PERCENT_PRINTER): New token.
4309 Handle its associated rule.
4310 * src/scan-gram.l: Adjust.
4311 (handle_destructor_at, handle_destructor_dollar): Rename as...
4312 (handle_symbol_code_at, handle_symbol_code_dollar): these.
4313 * src/output.c (symbol_printers_output): New.
4314 (output_skeleton): Call it.
4315 * data/bison.simple (yysymprint): New. Cannot be named yyprint
4316 since there are already many grammar files with a user `yyprint'.
4317 Replace the calls to YYPRINT to calls to yysymprint.
4318 * tests/calc.at: Adjust.
4319 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
4320 taking advantage of parser very internal details (stack size!).
4321
4f25ebb0
AD
43222002-06-20 Akim Demaille <akim@epita.fr>
4323
4324 * src/scan-gram.l: Complete the scanner with the missing patterns
4325 to pacify Flex.
4326 Use `quote' and `symbol_tag_get' where appropriate.
4327
93b68a0e
AD
43282002-06-19 Akim Demaille <akim@epita.fr>
4329
4330 * tests/actions.at (Destructors): Augment to test locations.
4331 * data/bison.simple (yydestructor): Pass it the current location
4332 if locations are enabled.
4333 Prototype only when __STDC__ or C++.
4334 Change the argument names to move into the yy name space: there is
4335 user code here.
4336
58612f1d
AD
43372002-06-19 Akim Demaille <akim@epita.fr>
4338
74310291
AD
4339 * data/bison.simple (b4_pure_if): New.
4340 Use it instead of #ifdef YYPURE.
4341
43422002-06-19 Akim Demaille <akim@epita.fr>
4343
4344 * data/bison.simple (b4_location_if): New.
58612f1d
AD
4345 Use it instead of #ifdef YYLSP_NEEDED.
4346
f25bfb75
AD
43472002-06-19 Akim Demaille <akim@epita.fr>
4348
4349 Prepare @$ in %destructor, but currently don't bind it in the
4350 skeleton, as %location use is not cleaned up yet.
4351
4352 * src/scan-gram.l (handle_dollar, handle_destructor_at)
4353 (handle_action_at): New.
4354 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
4355 a braced_code_t and a location as additional arguments.
4356 (handle_destructor_dollar): Instead of requiring `b4_eval', just
4357 unquote one when outputting `b4_dollar_dollar'.
4358 Adjust callers.
4359 * data/bison.simple (b4_eval): Remove.
4360 (b4_symbol_destructor): Adjust.
4361 * tests/input.at (Invalid @n): Adjust.
4362
c732d2c6
AD
43632002-06-19 Zack Weinberg <zack@codesourcery.com>
4364
4365 * doc/bison.texinfo: Document ability to have multiple
4366 prologue sections.
4367
8c165d89
AD
43682002-06-18 Akim Demaille <akim@epita.fr>
4369
4370 * src/files.c (compute_base_names): When computing the output file
4371 names from the input file name, strip the directory part.
4372
ca98bf57
AD
43732002-06-18 Akim Demaille <akim@epita.fr>
4374
4375 * data/bison.simple.new: Comment changes.
4376 Reported by Andreas Schwab.
4377
0bfb02ff
AD
43782002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
4379
4380 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
4381 there are no `label `yyoverflowlab' defined but not used' warnings
4382 when yyoverflow is defined.
4383
24c0aad7
AD
43842002-06-18 Akim Demaille <akim@epita.fr>
4385
4386 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
4387 new member.
4388 (symbol_destructor_set): Adjust.
4389 * src/output.c (symbol_destructors_output): Output the destructor
4390 locations.
4391 Output the symbol name.
4392 * data/bison.simple (b4_symbol_destructor): Adjust.
4393
5719c109
AD
43942002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
4395 and Akim Demaille <akim@epita.fr>
4396
4397 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
4398 what's left on the stack when the error recovery hits EOF.
4399 * tests/actions.at (Destructors): Complete to exercise this case.
4400
9280d3ef
AD
44012002-06-17 Akim Demaille <akim@epita.fr>
4402
4403 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
4404 arguments is really empty, not only equal to `[]'.
4405 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
4406 member.
4407 (symbol_destructor_set): New.
4408 * src/output.c (symbol_destructors_output): New.
4409 * src/reader.h (brace_code_t, current_braced_code): New.
4410 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
4411 (handle_dollar): Rename as...
4412 (handle_action_dollar): this.
4413 (handle_destructor_dollar): New.
4414 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
4415 (grammar_declaration): Use it.
4416 * data/bison.simple (yystos): Is always defined.
4417 (yydestructor): New.
4418 * tests/actions.at (Destructors): New.
4419 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
4420
dafdc66f
AD
44212002-06-17 Akim Demaille <akim@epita.fr>
4422
4423 * src/symlist.h, src/symlist.c (symbol_list_length): New.
4424 * src/scan-gram.l (handle_dollar, handle_at): Compute the
4425 rule_length only when needed.
4426 * src/output.c (actions_output, token_definitions_output): Output
4427 the full M4 block.
4428 * src/symtab.c: Don't access directly to the symbol tag, use
4429 symbol_tag_get.
4430 * src/parse-gram.y: Use symbol_list_free.
4431
56c47203
AD
44322002-06-17 Akim Demaille <akim@epita.fr>
4433
4434 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
4435 (symbol_list_prepend, get_type_name): Move to...
4436 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
4437 (symbol_list_prepend, symbol_list_n_type_name_get): here.
4438 Adjust all callers.
4439 (symbol_list_free): New.
4440 * src/scan-gram.l (handle_dollar): Takes a location.
4441 * tests/input.at (Invalid $n): Adjust.
4442
1e0bab92
AD
44432002-06-17 Akim Demaille <akim@epita.fr>
4444
4445 * src/reader.h, src/reader.c (symbol_list_new): Export it.
4446 (symbol_list_prepend): New.
4447 * src/parse-gram.y (%union): `list' is a new member.
4448 (symbols.1): New, replaces...
4449 (terms_to_prec.1, nterms_to_type.1): these.
4450 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
4451 Take a location as additional argument.
4452 Adjust all callers.
4453
04e60654
AD
44542002-06-15 Akim Demaille <akim@epita.fr>
4455
4456 * src/parse-gram.y: Move %token in the declaration section so that
4457 we don't depend upon CVS Bison.
4458
10e5b8bd
AD
44592002-06-15 Akim Demaille <akim@epita.fr>
4460
4461 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
4462 * src/print.c (print_core): Use it.
4463
9801d40c
AD
44642002-06-15 Akim Demaille <akim@epita.fr>
4465
4466 * src/conflicts.c (log_resolution): Accept the rule involved in
4467 the sr conflicts instead of the lookahead number that points to
4468 that rule.
4469 (flush_reduce): Accept the current lookahead vector as argument,
4470 instead of the index in LA.
4471 (resolve_sr_conflict): Accept the current number of lookahead
4472 bitset to consider for the STATE, instead of the index in LA.
4473 (set_conflicts): Adjust.
4474 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
4475
c0263492
AD
44762002-06-15 Akim Demaille <akim@epita.fr>
4477
4478 * src/state.h (state_t): Replace the `lookaheadsp' member, a
4479 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
4480 Adjust all dependencies.
4481 * src/lalr.c (initialize_lookaheads): Split into...
4482 (states_lookaheads_count, states_lookaheads_initialize): these.
4483 (lalr): Adjust.
4484
9757c359
AD
44852002-06-15 Akim Demaille <akim@epita.fr>
4486
4487 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
4488 out of...
4489 (grammar_rules_print): here.
4490 * src/reduce.c (reduce_output): Use it.
4491 * tests/reduce.at (Useless Rules, Reduced Automaton)
4492 (Underivable Rules): Adjust.
4493
6b98e4b5
AD
44942002-06-15 Akim Demaille <akim@epita.fr>
4495
4496 Copy BYacc's nice way to report the grammar.
4497
4498 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
4499 New.
4500 Don't print the rules' location, it is confusing and useless.
4501 (rule_print): Use grammar_rhs_print.
4502 * src/print.c (print_grammar): Use grammar_rules_print.
4503
6b98e4b5
AD
45042002-06-15 Akim Demaille <akim@epita.fr>
4505
4506 Complete and rationalize `useless thing' warnings.
4507
4508 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
4509 (symbol_tag_print): New.
4510 Use them everywhere in place of accessing directly the tag member.
4511 * src/gram.h, src/gram.c (rule_print): New.
4512 Use it where a rule used to be printed `by hand'.
4513 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
4514 (reduce_grammar_tables): Report the useless rules.
4515 (reduce_print): Useless things are a warning, not an error.
4516 Report it as such.
4517 * tests/reduce.at (Useless Nonterminals, Useless Rules):
4518 (Reduced Automaton, Underivable Rules): Adjust.
4519 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
4520 * tests/conflicts.at (Unresolved SR Conflicts)
4521 (Solved SR Conflicts): Adjust.
4522
ee000ba4
AD
45232002-06-15 Akim Demaille <akim@epita.fr>
4524
4525 Let symbols have a location.
4526
4527 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
4528 (getsym): Adjust.
4529 Adjust all callers.
4530 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
4531 Use location_t, not int.
4532 * src/symtab.c (symbol_check_defined): Take advantage of the
4533 location.
4534 * tests/regression.at (Invalid inputs): Adjust.
4535
8efe435c
AD
45362002-06-15 Akim Demaille <akim@epita.fr>
4537
4538 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
4539 (input): Don't try to initialize yylloc here, do it in the
4540 scanner.
4541 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
4542 * src/gram.h (rule_t): Change line and action_line into location
4543 and action_location, of location_t type.
4544 Adjust all dependencies.
4545 * src/location.h, src/location.c (empty_location): New.
4546 * src/reader.h, src/reader.c (grammar_start_symbol_set)
4547 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
4548 (grammar_current_rule_symbol_append)
4549 (grammar_current_rule_action_append): Expect a location as argument.
4550 * src/reader.c (grammar_midrule_action): Adjust to attach an
4551 action's location as dummy symbol location.
4552 * src/symtab.h, src/symtab.c (startsymbol_location): New.
4553 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
4554 the line numbers.
4555
1921f1d7
AD
45562002-06-14 Akim Demaille <akim@epita.fr>
4557
4558 Grammar declarations may be found in the grammar section.
4559
4560 * src/parse-gram.y (rules_or_grammar_declaration): New.
4561 (declarations): Each declaration may end with a semicolon, not
4562 just...
4563 (grammar_declaration): `"%union"'.
4564 (grammar): Branch to rules_or_grammar_declaration.
4565
4515534c
AD
45662002-06-14 Akim Demaille <akim@epita.fr>
4567
4568 * src/main.c (main): Invoke scanner_free.
4569
f958596b
AD
45702002-06-14 Akim Demaille <akim@epita.fr>
4571
4572 * src/output.c (m4_invoke): Extracted from...
4573 (output_skeleton): here.
4574 Free tempfile.
4575
2c569025
AD
45762002-06-14 Akim Demaille <akim@epita.fr>
4577
4578 * src/parse-gram.y (directives, directive, gram)
4579 (grammar_directives, precedence_directives, precedence_directive):
4580 Rename as...
4581 (declarations, declaration, grammar, grammar_declaration)
4582 (precedence_declaration, precedence_declarator): these.
4583 (symbol_declaration): New.
4584
592e8d4d
AD
45852002-06-14 Akim Demaille <akim@epita.fr>
4586
4587 * src/files.c (action_obstack): Remove, unused.
4588 (output_obstack): Remove it, and all its dependencies, as it is no
4589 longer needed.
4590 * src/reader.c (epilogue_set): Build the epilogue in the
4591 muscle_obstack.
4592 * src/output.h, src/output.c (muscle_obstack): Move to...
4593 * src/muscle_tab.h, src/muscle_tab.h: here.
4594 (muscle_init): Initialize muscle_obstack.
4595 (muscle_free): New.
4596 * src/main.c (main): Call it.
4597
0c15323d
AD
45982002-06-14 Akim Demaille <akim@epita.fr>
4599
4600 * src/location.h: New, extracted from...
4601 * src/reader.h: here.
4602 * src/Makefile.am (noinst_HEADERS): Merge into
4603 (bison_SOURCES): this.
4604 Add location.h.
4605 * src/parse-gram.y: Use location_t instead of Bison's.
4606 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
4607 Use location_t instead of ints.
4608
e96c9728
AD
46092002-06-14 Akim Demaille <akim@epita.fr>
4610
4611 * data/bison.simple, data/bison.c++: Be sure to restore the
4612 current #line when returning to the skeleton contents after having
4613 exposed the input file's #line.
4614
75d1fe16
AD
46152002-06-12 Akim Demaille <akim@epita.fr>
4616
4617 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
4618 eager.
4619 * tests/actions.at (Exotic Dollars): New.
4620
6c35d22c
AD
46212002-06-12 Akim Demaille <akim@epita.fr>
4622
4623 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
4624 ['"/] too eagerly.
4625 * tests/input.at (Torturing the Scanner): New.
4626
1d6412ad
AD
46272002-06-11 Akim Demaille <akim@epita.fr>
4628
4629 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
4630 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
4631 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
4632 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
4633 * src/reader.c (reader): Use it.
4634
4cdb01db
AD
46352002-06-11 Akim Demaille <akim@epita.fr>
4636
4637 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
4638 Adjust all callers.
4639 (scanner_last_string_free): New.
4640
44995b2e
AD
46412002-06-11 Akim Demaille <akim@epita.fr>
4642
4643 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
4644 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
4645 (last_string, YY_OBS_FREE): New.
4646 Use them when returning an ID.
4647
e9955c83
AD
46482002-06-11 Akim Demaille <akim@epita.fr>
4649
4650 Have Bison grammars parsed by a Bison grammar.
4651
4652 * src/reader.c, src/reader.h (prologue_augment): New.
4653 * src/reader.c (copy_definition): Remove.
4654
4655 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
4656 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
4657 (grammar_current_rule_prec_set, grammar_current_rule_check)
4658 (grammar_current_rule_symbol_append)
4659 (grammar_current_rule_action_append): Export.
4660 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
4661 (symbol_list_action_append): Remove.
4662 Hook the routines from reader.
4663 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
4664 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
4665
4666 * src/reader.c (read_declarations): Remove, unused.
4667
4668 * src/parse-gram.y: Handle the epilogue.
4669 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
4670 (grammar_start_symbol_set): this.
4671 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
4672 * src/reader.c (readgram): Remove, unused.
4673 (reader): Adjust to insert eoftoken and axiom where appropriate.
4674
4675 * src/reader.c (copy_dollar): Replace with...
4676 * src/scan-gram.h (handle_dollar): this.
4677 * src/parse-gram.y: Remove `%thong'.
4678
4679 * src/reader.c (copy_at): Replace with...
4680 * src/scan-gram.h (handle_at): this.
4681
4682 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
4683 New.
4684
4685 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
4686 time being.
4687
4688 * src/reader.h, src/reader.c (grammar_rule_end): New.
4689
4690 * src/parse.y (current_type, current_class): New.
4691 Implement `%nterm', `%token' support.
4692 Merge `%term' into `%token'.
4693 (string_as_id): New.
4694 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
4695 type name.
4696
4697 * src/parse-gram.y: Be sure to handle properly the beginning of
4698 rules.
4699
4700 * src/parse-gram.y: Handle %type.
4701 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
4702
4703 * src/parse-gram.y: More directives support.
4704 * src/options.c: No longer handle source directives.
4705
4706 * src/parse-gram.y: Fix %output.
4707
4708 * src/parse-gram.y: Handle %union.
4709 Use the prologue locations.
4710 * src/reader.c (parse_union_decl): Remove.
4711
4712 * src/reader.h, src/reader.c (epilogue_set): New.
4713 * src/parse-gram.y: Use it.
4714
4715 * data/bison.simple, data/bison.c++: b4_stype is now either not
4716 defined, then default to int, or to the contents of %union,
4717 without `union' itself.
4718 Adjust.
4719 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
4720
4721 * src/output.c (actions_output): Don't output braces, as they are
4722 already handled by the scanner.
4723
4724 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
4725 characters to themselves.
4726
4727 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
4728 that the epilogue has a proper #line.
4729
4730 * src/parse-gram.y: Handle precedence/associativity.
4731
4732 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
4733 a terminal.
4734 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
4735 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
4736 at all to define terminals that cannot be emitted.
4737
4738 * src/scan-gram.l: Escape M4 characters.
4739
4740 * src/scan-gram.l: Working properly with escapes in user
4741 strings/characters.
4742
4743 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
4744 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
4745 grammar.
4746 Use more modest sizes, as for the time being the parser does not
4747 release memory, and therefore the process swallows a huge amount
4748 of memory.
4749
4750 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
4751 stricter %token grammar.
4752
4753 * src/symtab.h (associativity): Add `undef_assoc'.
4754 (symbol_precedence_set): Do nothing when passed an undef_assoc.
4755 * src/symtab.c (symbol_check_alias_consistence): Adjust.
4756
4757 * tests/regression.at (Invalid %directive): Remove, as it is now
4758 meaningless.
4759 (Invalid inputs): Adjust to the new error messages.
4760 (Token definitions): The new grammar doesn't allow too many
4761 eccentricities.
4762
4763 * src/lex.h, src/lex.c: Remove.
4764 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
4765 (copy_character, copy_string2, copy_string, copy_identifier)
4766 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
4767 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
4768 (parse_action): Remove.
4769 * po/POTFILES.in: Adjust.
4770
2e047461
AD
47712002-06-11 Akim Demaille <akim@epita.fr>
4772
4773 * src/reader.c (parse_action): Don't store directly into the
4774 rule's action member: return the action as a string.
4775 Don't require `rule_length' as an argument: compute it.
4776 (grammar_current_rule_symbol_append)
4777 (grammar_current_rule_action_append): New, eved out from
4778 (readgram): here.
4779 Remove `action_flag', `rulelength', unused now.
4780
9af3fbce
AD
47812002-06-11 Akim Demaille <akim@epita.fr>
4782
4783 * src/reader.c (grammar_current_rule_prec_set).
4784 (grammar_current_rule_check): New, eved out from...
4785 (readgram): here.
4786 Remove `xaction', `first_rhs': useless.
4787 * tests/input.at (Type clashes): New.
4788 * tests/existing.at (GNU Cim Grammar): Adjust.
4789
1485e106
AD
47902002-06-11 Akim Demaille <akim@epita.fr>
4791
4792 * src/reader.c (grammar_midrule_action): New, Eved out from
4793 (readgram): here.
4794
da4160c3
AD
47952002-06-11 Akim Demaille <akim@epita.fr>
4796
4797 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
4798 New.
4799 (readgram): Use them as replacement of inlined code, crule and
4800 crule1.
4801
f6d0f937
AD
48022002-06-11 Akim Demaille <akim@epita.fr>
4803
4804 * src/reader.c (grammar_end, grammar_symbol_append): New.
4805 (readgram): Use them.
4806 Make the use of `p' as local as possible.
4807
69078d4b
AD
48082002-06-10 Akim Demaille <akim@epita.fr>
4809
4810 GCJ's parser requires the tokens to be defined before the prologue.
4811
4812 * data/bison.simple: Output the token definition before the user's
4813 prologue.
4814 * tests/regression.at (Braces parsing, Duplicate string)
4815 (Mixing %token styles): Check the output from bison.
4816 (Early token definitions): New.
4817
5e424082
AD
48182002-06-10 Akim Demaille <akim@epita.fr>
4819
4820 * src/symtab.c (symbol_user_token_number_set): Don't complain when
4821 assigning twice the same user number to a token, so that we can
4822 use it in...
4823 * src/lex.c (lex): here.
4824 Also use `symbol_class_set' instead of hand written code.
4825 * src/reader.c (parse_assoc_decl): Likewise.
4826
44536b35
AD
48272002-06-10 Akim Demaille <akim@epita.fr>
4828
4829 * src/symtab.c, src/symtab.c (symbol_class_set)
4830 (symbol_user_token_number_set): New.
4831 * src/reader.c (parse_token_decl): Use them.
4832 Use a switch instead of ifs.
4833 Use a single argument.
4834
8b9f2372
AD
48352002-06-10 Akim Demaille <akim@epita.fr>
4836
4837 Remove `%thong' support as it is undocumented, unused, duplicates
4838 `%token's job, and creates useless e-mail traffic with people who
4839 want to know what it is, why it is undocumented, unused, and
4840 duplicates `%token's job.
4841
4842 * src/reader.c (parse_thong_decl): Remove.
4843 * src/options.c (option_table): Remove "thong".
4844 * src/lex.h (tok_thong): Remove.
4845
3ae2b51f
AD
48462002-06-10 Akim Demaille <akim@epita.fr>
4847
4848 * src/symtab.c, src/symtab.c (symbol_type_set)
4849 (symbol_precedence_set): New.
4850 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
4851 (value_components_used): Remove, unused.
4852
2f1afb73
AD
48532002-06-09 Akim Demaille <akim@epita.fr>
4854
4855 Move symbols handling code out of the reader.
4856
4857 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
4858 (axiom): Move to...
4859 * src/symtab.h, src/symtab.c: here.
4860
4861 * src/gram.c (start_symbol): Remove: use startsymbol->number.
4862 * src/reader.c (startval): Rename as...
4863 * src/symtab.h, src/symtab.c (startsymbol): this.
4864 * src/reader.c: Adjust.
4865
4866 * src/reader.c (symbol_check_defined, symbol_make_alias)
4867 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
4868 (token_translations_init)
4869 Move to...
4870 * src/symtab.c: here.
4871 * src/reader.c (packsymbols): Move to...
4872 * src/symtab.h, src/symtab.c (symbols_pack): here.
4873 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
4874 argument.
4875
e9bca3ad
AD
48762002-06-03 Akim Demaille <akim@epita.fr>
4877
4878 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
4879 then statements.
4880
86eff183
AD
48812002-06-03 Akim Demaille <akim@epita.fr>
4882
4883 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
4884 structs with non literals.
4885 * src/scan-skel.l: never-interactive.
4886 * src/conflicts.c (enum conflict_resolution_e): No trailing
4887 comma.
4888 * src/getargs.c (usage): Split long literal strings.
4889 Reported by Hans Aberg.
4890
717be197
AD
48912002-05-28 Akim Demaille <akim@epita.fr>
4892
4893 * data/bison.c++: Use C++ ostreams.
4894 (cdebug_): New member.
4895
670ddffd
AD
48962002-05-28 Akim Demaille <akim@epita.fr>
4897
4898 * src/output.c (output_skeleton): Be sure to allocate enough room
4899 for `/' _and_ for `\0' in full_skeleton.
4900
769b430f
AD
49012002-05-28 Akim Demaille <akim@epita.fr>
4902
4903 * data/bison.c++: Catch up with bison.simple:
4904 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4905 and Paul Eggert <eggert@twinsun.com>: `error' handing.
4906 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
4907 and popping traces.
4908
7067cb36
PH
49092002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4910
4911 * src/output.c (output_skeleton): Put an explicit path in front of
4912 the skeleton file name, rather than relying on the -I directory,
4913 to partially alleviate effects of having a skeleton file lying around
4914 in the current directory.
769b430f 4915
4a713ec2
PH
49162002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4917
769b430f 4918 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
4919 obstack_printf should be obstack_fgrow1.
4920
b408954b
AD
49212002-05-26 Akim Demaille <akim@epita.fr>
4922
4923 * src/state.h (state_t): `solved_conflicts' is a new member.
4924 * src/LR0.c (new_state): Set it to 0.
4925 * src/conflicts.h, src/conflicts.c (print_conflicts)
4926 (free_conflicts, solve_conflicts): Rename as...
4927 (conflicts_print, conflicts_free, conflicts_solve): these.
4928 Adjust callers.
4929 * src/conflicts.c (enum conflict_resolution_e)
4930 (solved_conflicts_obstack): New, used by...
4931 (log_resolution): this.
4932 Adjust to attach the conflict resolution to each state.
4933 Complete the description with the precedence/associativity
4934 information.
4935 (resolve_sr_conflict): Adjust.
4936 * src/print.c (print_state): Output its solved_conflicts.
4937 * tests/conflicts.at (Unresolved SR Conflicts)
4938 (Solved SR Conflicts): Exercise --report=all.
4939
a49aecd5
AD
49402002-05-26 Akim Demaille <akim@epita.fr>
4941
4942 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
4943 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
4944 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
4945 (token_number_t, item_number_as_token_number)
4946 (token_number_as_item_number, muscle_insert_token_number_table):
4947 Rename as...
4948 (symbol_number_t, item_number_as_symbol_number)
4949 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
4950 these, since it is more appropriate.
4951
5504898e
AD
49522002-05-26 Akim Demaille <akim@epita.fr>
4953
4954 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
4955 `Error:' lines.
4956 * data/bison.simple (yystos) [YYDEBUG]: New.
4957 (yyparse) [YYDEBUG]: Display the symbols which are popped during
4958 error recovery.
4959 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
4960
ec3bc396
AD
49612002-05-25 Akim Demaille <akim@epita.fr>
4962
4963 * doc/bison.texinfo (Debugging): Split into...
4964 (Tracing): this new section, its former contents, and...
4965 (Understanding): this new section.
4966 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
4967 by...
4968 (report_flag): this.
4969 Adjust all dependencies.
4970 (report_args, report_types, report_argmatch): New.
4971 (usage, getargs): Report/support -r, --report.
4972 * src/options.h
4973 (struct option_table_struct): Rename as..,
4974 (struct option_table_s): this.
4975 Rename the `set_flag' member to `flag' to match with getopt_long's
4976 struct.
4977 * src/options.c (option_table): Split verbose into an entry for
4978 %verbose, and another for --verbose.
4979 Support --report/-r, so remove -r from the obsolete --raw.
4980 * src/print.c: Attach full item sets and lookaheads reports to
4981 report_flag instead of trace_flag.
4982 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
4983
78df8250
PE
49842002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4985 and Paul Eggert <eggert@twinsun.com>
769b430f 4986
78df8250
PE
4987 * data/bison.simple (yyparse): Correct error handling to conform to
4988 POSIX and yacc. Specifically, after syntax error is discovered,
4989 do not reduce further before shifting the error token.
4990 Clean up the code a bit by removing the labels yyerrdefault,
4991 yyerrhandle, yyerrpop.
4992 * NEWS: Document the above.
4993
c0c9ea05
PH
49942002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4995
4996 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
4997 type; it isn't always big enough, since it doesn't necessarily
4998 include non-terminals.
769b430f 4999 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
5000 the latter can be removed.
5001 (yy_token_number_type): Remove, only one use.
5002 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
5003 don't use TokenNumberType as element type.
769b430f 5004
c0c9ea05
PH
5005 * tests/regression.at: Modify expected output to agree with change
5006 to yyr1 and yytranslate.
769b430f 5007
6390a83f
FK
50082002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
5009
5010 * src/reader.c (parse_action): Use copy_character instead of
5011 obstack_1grow.
5012
db7c8e9a
AD
50132002-05-13 Akim Demaille <akim@epita.fr>
5014
5015 * tests/regression.at (Token definitions): Prototype yylex and
5016 yyerror.
5017
fcc61800
PH
50182002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5019
158c687b 5020 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
5021 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
5022 32-bit arithmetic.
5023 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
5024
5683e9b2
AD
50252002-05-07 Akim Demaille <akim@epita.fr>
5026
5027 * tests/synclines.at: Be sure to prototype yylex and yyerror to
5028 avoid GCC warnings.
5029
0c2d3f4c
AD
50302002-05-07 Akim Demaille <akim@epita.fr>
5031
5032 Kill GCC warnings.
5033
5034 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
5035 over the RHS of each rule.
5036 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
5037 * src/state.h (state_t): Member `nitems' is unsigned short.
5038 * src/LR0.c (get_state): Adjust.
5039 * src/reader.c (packgram): Likewise.
5040 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
5041 `Type'.
5042 (muscle_insert_int_table): Remove, unused.
5043 (prepare_rules): Remove `max'.
5044
1565b720
AD
50452002-05-06 Akim Demaille <akim@epita.fr>
5046
5047 * src/closure.c (print_firsts): Display of the symbol tags.
5048 (bitmatrix_print): Move to...
5049 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
5050 here.
5051 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
5052
cfaee611
AD
50532002-05-06 Akim Demaille <akim@epita.fr>
5054
5055 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
5056 hash_do_for_each.
5057
458be8e0
AD
50582002-05-06 Akim Demaille <akim@epita.fr>
5059
5060 * src/LR0.c (new_state, get_state): Instead of using the global
5061 `kernel_size' and `kernel_base', have two new arguments:
5062 `core_size' and `core'.
5063 Adjust callers.
5064
a900a624
AD
50652002-05-06 Akim Demaille <akim@epita.fr>
5066
5067 * src/reader.c (packgram): No longer end `ritem' with a 0
5068 sentinel: it is not used.
5069
d4e7d3a1
AD
50702002-05-05 Akim Demaille <akim@epita.fr>
5071
5072 New experimental feature: display the lookaheads in the report and
5073 graph.
5074
5075 * src/print (print_core): When --trace-flag, display the rules
5076 lookaheads.
5077 * src/print_graph.c (print_core): Likewise.
5078 Swap the arguments.
5079 Adjust caller.
5080
39ceb25b
AD
50812002-05-05 Akim Demaille <akim@epita.fr>
5082
5083 * tests/torture.at (Many lookaheads): New test.
5084
5372019f
AD
50852002-05-05 Akim Demaille <akim@epita.fr>
5086
5087 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
5088 (GENERATE_MUSCLE_INSERT_TABLE): this.
5089 (output_int_table, output_unsigned_int_table, output_short_table)
5090 (output_token_number_table, output_item_number_table): Replace with...
5091 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
5092 (muscle_insert_short_table, muscle_insert_token_number_table)
5093 (muscle_insert_item_number_table): these.
5094 Adjust all callers.
5095 (prepare_tokens): Don't free `translations', since...
5096 * src/reader.h, src/reader.c (grammar_free): do it.
5097 Move to...
5098 * src/gram.h, src/gram.c (grammar_free): here.
5099 * data/bison.simple, data/bison.c++: b4_token_number_max is now
5100 b4_translate_max.
5101
5df5f6d5
AD
51022002-05-05 Akim Demaille <akim@epita.fr>
5103
5104 * src/output.c (output_unsigned_int_table): New.
5105 (prepare_rules): `i' is unsigned.
5106 `prhs', `rline', `r2' are unsigned int.
5107 Rename muscle `rhs_number_max' as `rhs_max'.
5108 Output muscles `prhs_max', `rline_max', and `r2_max'.
5109 Free rline and r1.
5110 * data/bison.simple, data/bison.c++: Adjust to use these muscles
5111 to compute types instead of constant types.
5112 * tests/regression.at (Web2c Actions): Adjust.
5113
b87f8b21
AD
51142002-05-04 Akim Demaille <akim@epita.fr>
5115
5116 * src/symtab.h (SALIAS, SUNDEF): Rename as...
5117 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
5118 Adjust dependencies.
5119 * src/output.c (token_definitions_output): Be sure not to output a
5120 `#define 'a'' when fed with `%token 'a' "a"'.
5121 * tests/regression.at (Token definitions): New.
5122
8bb936e4
PE
51232002-05-03 Paul Eggert <eggert@twinsun.com>
5124
5125 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
5126 for K&R C.
5127
51282002-05-03 gettextize <bug-gnu-gettext@gnu.org>
5129
5130 * Makefile.am (SUBDIRS): Remove intl.
5131 (EXTRA_DIST): Add config/config.rpath.
5132
53c71a12
AD
51332002-05-03 Akim Demaille <akim@epita.fr>
5134
5135 * data/bison.simple (m4_if): Don't output empty enums.
5136 And actually, output valid enum definitions :(.
5137
289dd0cf
AD
51382002-05-03 Akim Demaille <akim@epita.fr>
5139
5140 * configure.bat: Remove, completely obsolete.
5141 * Makefile.am (EXTRA_DIST): Adjust.
5142 Don't distribute config.rpath...
5143 * config/Makefile.am (EXTRA_DIST): Do it.
5144
db85e524
AD
51452002-05-03 Akim Demaille <akim@epita.fr>
5146
5147 * configure.in (GETTEXT_VERSION): New.
5148 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
5149
83ccf991
AD
51502002-05-03 Akim Demaille <akim@epita.fr>
5151
5152 * data/bison.simple (b4_token_enum): New.
5153 (b4_token_defines): Use it to output tokens both as #define and
5154 enums.
5155 Suggested by Paul Eggert.
5156 * src/output.c (token_definitions_output): Don't output spurious
5157 white spaces.
5158
1f418995
AD
51592002-05-03 Akim Demaille <akim@epita.fr>
5160
5161 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
5162
45119f04
RA
51632002-05-02 Robert Anisko <robert@lrde.epita.fr>
5164
5165 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
5166 Update the stack class, give a try to deque as the default container.
5167
b2d52318
AD
51682002-05-02 Akim Demaille <akim@epita.fr>
5169
5170 * data/bison.simple (yyparse): Do not implement @$ = @1.
5171 (YYLLOC_DEFAULT): Adjust to do it.
5172 * doc/bison.texinfo (Location Default Action): Fix.
5173
3a8b4109
AD
51742002-05-02 Akim Demaille <akim@epita.fr>
5175
5176 * src/reader.c (parse_braces): Merge into...
5177 (parse_action): this.
5178
84614e13
AD
51792002-05-02 Akim Demaille <akim@epita.fr>
5180
5181 * configure.in (ALL_LINGUAS): Remove.
5182 * po/LINGUAS, hr.po: New.
5183
fdbcd8e2
AD
51842002-05-02 Akim Demaille <akim@epita.fr>
5185
5186 Remove the so called hairy (semantic) parsers.
5187
5188 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
5189 * src/gram.h, src/gram.c (semantic_parser): Remove.
5190 (rule_t): Remove the guard and guard_line members.
5191 * src/lex.h (token_t): remove tok_guard.
5192 * src/options.c (option_table): Remove %guard and %semantic_parser
5193 support.
5194 * src/output.c, src/output.h (guards_output): Remove.
5195 (prepare): Adjust.
5196 (token_definitions_output): Don't output the `T'
5197 tokens (???).
5198 (output_skeleton): Don't output the guards.
5199 * src/files.c, src/files.c (attrsfile): Remove.
5200 * src/reader.c (symbol_list): Remove the guard and guard_line
5201 members.
5202 Adjust dependencies.
5203 (parse_guard): Remove.
5204 * data/bison.hairy: Remove.
5205 * doc/bison.texinfo (Environment Variables): Remove occurrences of
5206 BISON_HAIRY.
5207
82b6cb3f
AD
52082002-05-02 Akim Demaille <akim@epita.fr>
5209
5210 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
5211 (parse_guard): Rename the formal argument `stack_offset' as
5212 `rule_length', which is more readable.
5213 Adjust callers.
5214 (copy_at, copy_dollar): Instead of outputting the hard coded
5215 values of $$, $n and so forth, output invocation to b4_lhs_value,
5216 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
5217 Note: this patch partially drops `semantic-parser' support: it
5218 always does `rule_length - n', where semantic parsers ought to
5219 always use `-n'.
82b6cb3f
AD
5220 * data/bison.simple, data/bison.c++ (b4_lhs_value)
5221 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
5222
6cbfbcc5
AD
52232002-05-02 Akim Demaille <akim@epita.fr>
5224
5225 * configure.in (AC_INIT): Bump to 1.49b.
5226 (AM_INIT_AUTOMAKE): Short invocation.
5227
b8548114
AD
52282002-05-02 Akim Demaille <akim@epita.fr>
5229
5230 Version 1.49a.
5231
c20cd1fa
AD
52322002-05-01 Akim Demaille <akim@epita.fr>
5233
5234 * src/skeleton.h: Remove.
5235
8a9566d4
AD
52362002-05-01 Akim Demaille <akim@epita.fr>
5237
5238 * src/skeleton.h: Fix the #endif.
5239 Reported by Magnus Fromreide.
5240
8c6d399a
PE
52412002-04-26 Paul Eggert <eggert@twinsun.com>
5242
5243 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
5244 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 5245 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 5246
2b7ed18a
RA
52472002-04-25 Robert Anisko <robert@lrde.epita.fr>
5248
5249 * src/scan-skel.l: Postprocess quadrigraphs.
5250
5251 * src/reader.c (copy_character): New function, used to output
5252 single characters while replacing `[' and `]' with quadrigraphs, to
5253 avoid troubles with M4 quotes.
5254 (copy_comment): Output characters with copy_character.
5255 (read_additionnal_code): Likewise.
5256 (copy_string2): Likewise.
5257 (copy_definition): Likewise.
5258
5259 * tests/calc.at: Exercise M4 quoting.
5260
34a89c50
AD
52612002-04-25 Akim Demaille <akim@epita.fr>
5262
5263 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
5264 between `!' and the command.
5265 Reported by Paul Eggert.
5266
0dd1580a
RA
52672002-04-24 Robert Anisko <robert@lrde.epita.fr>
5268
5269 * tests/calc.at: Exercise prologue splitting.
5270
5271 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
5272 `b4_post_prologue' instead of `b4_prologue'.
5273
5274 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
5275 muscles.
5276 (output): Free pre_prologue_obstack and post_prologue_obstack.
5277 * src/files.h, src/files.c (attrs_obstack): Remove.
5278 (pre_prologue_obstack, post_prologue_obstack): New.
5279 * src/reader.c (copy_definition): Add a parameter to specify the
5280 obstack to fill, instead of using attrs_obstack unconditionally.
5281 (read_declarations): Pass pre_prologue_obstack to copy_definition if
5282 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
5283
83c1796f
PE
52842002-04-23 Paul Eggert <eggert@twinsun.com>
5285
5286 * data/bison.simple: Remove unnecessary commentary and white
5287 space differences from 1_29-branch.
5288 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
5289
5290 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
5291 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
5292 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
5293 constructors or destructors.
5294
5295 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
5296
1207eeac
AD
52972002-04-23 Akim Demaille <akim@epita.fr>
5298
5299 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
5300 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
5301 location with columns.
5302 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
5303 All reported by Paul Eggert.
5304
78ab8f67
AD
53052002-04-22 Akim Demaille <akim@epita.fr>
5306
5307 * src/reduce.c (dump_grammar): Move to...
5308 * src/gram.h, src/gram.c (grammar_dump): here.
5309 Be sure to separate long item numbers.
5310 Don't read the members of a rule's prec if its nil.
5311
133c20e2
AD
53122002-04-22 Akim Demaille <akim@epita.fr>
5313
5314 * src/output.c (table_size, table_grow): New.
5315 (MAXTABLE): Remove, replace uses with table_size.
5316 (pack_vector): Instead of dying when the table is too big, grow it.
5317
9515e8a7
AD
53182002-04-22 Akim Demaille <akim@epita.fr>
5319
5320 * data/bison.simple (yyr1): Its type is that of a token number.
5321 * data/bison.c++ (r1_): Likewise.
5322 * tests/regression.at (Web2c Actions): Adjust.
5323
23c5a174
AD
53242002-04-22 Akim Demaille <akim@epita.fr>
5325
5326 * src/reader.c (token_translations_init): 256 is now the default
5327 value for the error token, i.e., it will be assigned another
5328 number if the user assigned 256 to one of her tokens.
5329 (reader): Don't force 256 to error.
5330 * doc/bison.texinfo (Symbols): Adjust.
5331 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
5332 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
5333 etc. instead of 10, 20, 30 (which was used to `jump' over error
5334 (256) and undefined (2)).
5335
5fbb0954
AD
53362002-04-22 Akim Demaille <akim@epita.fr>
5337
5338 Propagate more token_number_t.
5339
5340 * src/gram.h (token_number_as_item_number)
5341 (item_number_as_token_number): New.
5342 * src/output.c (GENERATE_OUTPUT_TABLE): New.
5343 Use it to create output_item_number_table and
5344 output_token_number_table.
5345 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
5346 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
5347 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
5348 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
5349
4f940944
AD
53502002-04-22 Akim Demaille <akim@epita.fr>
5351
5352 * src/output.h, src/output.c (get_lines_number): Remove.
5353
3ded9a63
AD
53542002-04-19 Akim Demaille <akim@epita.fr>
5355
5356 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
5357 as Lex/Flex'.
5358 (Debugging): More details about enabling the debugging features.
5359 (Table of Symbols): Describe $$, $n, @$, and @n.
5360 Suggested by Tim Josling.
5361
e0c471a9
AD
53622002-04-19 Akim Demaille <akim@epita.fr>
5363
5364 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
5365
fecc10cd
AD
53662002-04-10 Akim Demaille <akim@epita.fr>
5367
5368 * src/system.h: Rely on HAVE_LIMITS_H.
5369 Suggested by Paul Eggert.
5370
51dec47b
AD
53712002-04-09 Akim Demaille <akim@epita.fr>
5372
5373 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
5374 full stderr, and strip it according to the bison options, instead
5375 of composing the error message from different bits.
5376 This makes it easier to check for several error messages.
5377 Adjust all the invocations.
5378 Add an invocation exercising the error token.
5379 Add an invocation demonstrating a stupid error message.
5380 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
5381 Adjust the tests.
5382 Error message are for stderr, not stdout.
5383
007a50a4
AD
53842002-04-09 Akim Demaille <akim@epita.fr>
5385
5386 * src/gram.h, src/gram.c (error_token_number): Remove, use
5387 errtoken->number.
5388 * src/reader.c (reader): Don't specify the user token number (2)
5389 for $undefined, as it uselessly prevents using it.
5390 * src/gram.h (token_number_t): Move to...
5391 * src/symtab.h: here.
5392 (state_t.number): Is a token_number_t.
5393 * src/print.c, src/reader.c: Use undeftoken->number instead of
5394 hard coded 2.
5395 (Even though this 2 is not the same as above: the number of the
5396 undeftoken remains being 2, it is its user token number which
5397 might not be 2).
5398 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
5399 `user_token_number_max'.
5400 Output `undef_token_number'.
5401 * data/bison.simple, data/bison.c++: Use them.
5402 Be sure to map invalid yylex return values to
5403 `undef_token_number'. This saves us from gratuitous SEGV.
5404
5405 * tests/conflicts.at (Solved SR Conflicts)
5406 (Unresolved SR Conflicts): Adjust.
5407 * tests/regression.at (Web2c Actions): Adjust.
5408
06446ccf
AD
54092002-04-08 Akim Demaille <akim@epita.fr>
5410
5411 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
5412 Adding #line.
5413 Remove the duplicate `typedefs'.
5414 (RhsNumberType): Fix the declaration and various other typos.
5415 Use __ofile__.
5416 * data/bison.simple: Use __ofile__.
5417 * src/scan-skel.l: Handle __ofile__.
5418
62a3e4f0
AD
54192002-04-08 Akim Demaille <akim@epita.fr>
5420
5421 * src/gram.h (item_number_t): New, the type of item numbers in
5422 RITEM. Note that it must be able to code symbol numbers as
5423 positive number, and the negation of rule numbers as negative
5424 numbers.
5425 Adjust all dependencies (pretty many).
5426 * src/reduce.c (rule): Remove this `short *' pointer: use
5427 item_number_t.
5428 * src/system.h (MINSHORT, MAXSHORT): Remove.
5429 Include `limits.h'.
5430 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
5431 (shortcpy): Remove.
5432 (MAXTABLE): Move to...
5433 * src/output.c (MAXTABLE): here.
5434 (prepare_rules): Use output_int_table to output rhs.
5435 * data/bison.simple, data/bison.c++: Adjust.
5436 * tests/torture.at (Big triangle): Move the limit from 254 to
5437 500.
5438 * tests/regression.at (Web2c Actions): Ajust.
5439
5440 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
5441 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
5442 passes, but produces negative #line number, once fixed, GCC is
5443 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
5444 C), it passes.
5445 * src/state.h (state_h): Code input lines on ints, not shorts.
5446
bb88b0fc
AD
54472002-04-08 Akim Demaille <akim@epita.fr>
5448
5449 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
5450 and then the grammar.
5451
9a636f47
AD
54522002-04-08 Akim Demaille <akim@epita.fr>
5453
5454 * src/system.h: No longer using strndup.
5455
680e8701
AD
54562002-04-07 Akim Demaille <akim@epita.fr>
5457
5458 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
5459 * src/output.c (output_table_data): Return the longest number.
5460 (prepare_tokens): Output `token_number_max').
5461 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
5462 New.
5463 Use them to define yy_token_number_type/TokenNumberType.
5464 Use this type for yytranslate.
5465 * tests/torture.at (Big triangle): Push the limit from 124 to
5466 253.
5467 * tests/regression.at (Web2c Actions): Adjust.
5468
817e9f41
AD
54692002-04-07 Akim Demaille <akim@epita.fr>
5470
5471 * tests/torture.at (Big triangle): New.
5472 (GNU AWK Grammar, GNU Cim Grammar): Move to...
5473 * tests/existing.at: here.
5474
5123689b
AD
54752002-04-07 Akim Demaille <akim@epita.fr>
5476
5477 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
5478 nritems.
5479 Adjust dependencies.
5480
f3849179
AD
54812002-04-07 Akim Demaille <akim@epita.fr>
5482
5483 * src/reader.c: Normalize increments to prefix form.
5484
bd02036a
AD
54852002-04-07 Akim Demaille <akim@epita.fr>
5486
5487 * src/reader.c, symtab.c: Remove debugging code.
5488
db8837cb
AD
54892002-04-07 Akim Demaille <akim@epita.fr>
5490
5491 Rename all the `bucket's as `symbol_t'.
5492
5493 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
5494 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
5495 * src/symtab.c, src/symtab.h (bucket): Rename as...
5496 (symbol_t): this.
5497 (symbol_list_new, bucket_check_defined, bucket_make_alias)
5498 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
5499 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
5500 (buckets_new, buckets_free, buckets_do): Rename as...
5501 (symbol_list_new, symbol_check_defined, symbol_make_alias)
5502 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
5503 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
5504 (symbols_new, symbols_free, symbols_do): these.
5505
72a23c97
AD
55062002-04-07 Akim Demaille <akim@epita.fr>
5507
5508 Use lib/hash for the symbol table.
5509
5510 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
5511 EOF.
5512 * src/lex.c (lex): Set the `number' member of new terminals.
5513 * src/reader.c (bucket_check_defined, bucket_make_alias)
5514 (bucket_check_alias_consistence, bucket_translation): New.
5515 (reader, grammar_free, readgram, token_translations_init)
5516 (packsymbols): Adjust.
5517 (reader): Number the predefined tokens.
5518 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
5519 for predefined tokens.
5520 * src/symtab.h (bucket): Remove all the hash table related
5521 members.
5522 * src/symtab.c (symtab): Replace by...
5523 (bucket_table): this.
5524 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
5525 (buckets_new, buckets_do): New.
5526
280a38c3
AD
55272002-04-07 Akim Demaille <akim@epita.fr>
5528
5529 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
5530 (start_symbol, max_user_token_number, semantic_parser)
5531 (error_token_number): Initialize.
5532 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
5533 Initialize.
5534 (reader): Don't.
5535 (errtoken, eoftoken, undeftoken, axiom): Extern.
5536
03b31c0c
AD
55372002-04-07 Akim Demaille <akim@epita.fr>
5538
5539 * src/gram.h (rule_s): prec and precsym are now pointers
5540 to the bucket giving the priority/associativity.
5541 Member `associativity' removed: useless.
5542 * src/reduce.c, src/conflicts.c: Adjust.
5543
8b3df748
AD
55442002-04-07 Akim Demaille <akim@epita.fr>
5545
5546 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
5547 Properly escape the symbols' TAG when outputting them.
5548
e601aa1d
AD
55492002-04-07 Akim Demaille <akim@epita.fr>
5550
5551 * src/lalr.h (LA): Is a bitsetv, not bitset*.
5552
b0299a2e
AD
55532002-04-07 Akim Demaille <akim@epita.fr>
5554
5555 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
5556 (LArule): this, which is an array to rule_t*.
5557 * src/print.c, src/conflicts.c: Adjust.
5558
d7e1f00c
AD
55592002-04-07 Akim Demaille <akim@epita.fr>
5560
5561 * src/gram.h (rule_t): Rename `number' as `user_number'.
5562 `number' is a new member.
5563 Adjust dependencies.
5564 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
5565
cc9305dd
AD
55662002-04-07 Akim Demaille <akim@epita.fr>
5567
5568 As a result of the previous patch, it is no longer needed
5569 to reorder ritem itself.
5570
5571 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
5572
b0940840
AD
55732002-04-07 Akim Demaille <akim@epita.fr>
5574
5575 Be sure never to walk through RITEMS, but use only data related to
5576 the rules themselves. RITEMS should be banished.
5577
5578 * src/output.c (output_token_translations): Rename as...
5579 (prepare_tokens): this.
5580 In addition to `translate', prepare the muscles `tname' and
5581 `toknum', which were handled by...
5582 (output_rule_data): this.
5583 Remove, and move the remainder of its outputs into...
5584 (prepare_rules): this new routines, which also merges content from
5585 (output_gram): this.
5586 (prepare_rules): Be sure never to walk through RITEMS.
5587 (output_stos): Rename as...
5588 (prepare_stos): this.
5589 (output): Always invoke prepare_states, after all, just don't use it
5590 in the output if you don't need it.
5591
643a5994
AD
55922002-04-07 Akim Demaille <akim@epita.fr>
5593
5594 * src/LR0.c (new_state): Display `nstates' as the name of the
5595 newly created state.
5596 Adjust to initialize first_state and last_state if needed.
5597 Be sure to distinguish the initial from the final state.
5598 (new_states): Create the itemset of the initial state, and use
5599 new_state.
5600 * src/closure.c (closure): Now that the initial state has its
5601 items properly set, there is no need for a special case when
5602 creating `ruleset'.
5603
5604 As a result, now the rule 0, reducing to $axiom, is visible in the
5605 outputs. Adjust the test suite.
5606
5607 * tests/conflicts.at (Solved SR Conflicts)
5608 (Unresolved SR Conflicts): Adjust.
5609 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
5610 * tests/conflicts.at (S/R in initial): New.
5611
b4c4ccc2
AD
56122002-04-07 Akim Demaille <akim@epita.fr>
5613
5614 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
5615 the RHS of the rules.
5616 * src/output.c (output_gram): Likewise.
5617
bba97eb2
AD
56182002-04-07 Akim Demaille <akim@epita.fr>
5619
5620 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
5621 bucket.
5622 Adjust all dependencies.
5623 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
5624 `number' of the buckets too.
5625 * src/gram.h: Include `symtab.h'.
5626 (associativity): Move to...
5627 * src/symtab.h: here.
5628 No longer include `gram.h'.
5629
c3b407f4
AD
56302002-04-07 Akim Demaille <akim@epita.fr>
5631
5632 * src/gram.h, src/gram.c (rules_rhs_length): New.
5633 (ritem_longest_rhs): Use it.
5634 * src/gram.h (rule_t): `number' is a new member.
5635 * src/reader.c (packgram): Set it.
5636 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
5637 the end of `rules', and count them out of `nrules'.
5638 (reduce_output, dump_grammar): Adjust.
5639 * src/print.c (print_grammar): It is no longer needed to check for
5640 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
5641 * tests/reduce.at (Reduced Automaton): New test.
5642
11652ab3
AD
56432002-04-07 Akim Demaille <akim@epita.fr>
5644
5645 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
5646 lacking `+ 1' to nrules, Bison reported as useless a token if it
5647 was used solely to set the precedence of the last rule...
5648
26b23c1a
AD
56492002-04-07 Akim Demaille <akim@epita.fr>
5650
5651 * data/bison.c++, data/bison.simple: Don't output the current file
5652 name in #line, to avoid useless diffs between two identical
5653 outputs under different names.
5654
18bcecb0
AD
56552002-04-07 Akim Demaille <akim@epita.fr>
5656
5657 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
5658 Normalize loops to using `< nrules + 1', not `<= nrules'.
5659
fa770c86
AD
56602002-04-07 Akim Demaille <akim@epita.fr>
5661
5662 * TODO: Update.
5663
d9b739c3
AD
56642002-04-07 Akim Demaille <akim@epita.fr>
5665
5666 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
5667 bucket.value as bucket.number.
5668
99013900
AD
56692002-04-07 Akim Demaille <akim@epita.fr>
5670
5671 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
5672 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
5673 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
5674 RHS, instead of being an index in RITEMS.
5675
e966383b
PE
56762002-04-04 Paul Eggert <eggert@twinsun.com>
5677
5678 * doc/bison.texinfo: Update copyright date.
5679 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
5680 (Symbols): Warn about running Bison in one character set,
5681 but compiling and/or running in an incompatible one.
5682 Warn about character code 256, too.
5683
56842002-04-03 Paul Eggert <eggert@twinsun.com>
5685
5686 * src/bison.data (YYSTACK_ALLOC): Depend on whether
5687 YYERROR_VERBOSE is nonzero, not whether it is defined.
5688
5689 Merge changes from bison-1_29-branch.
c307773e 5690
8d6c48b9
PE
56912002-03-20 Paul Eggert <eggert@twinsun.com>
5692
5693 Merge fixes from Debian bison_1.34-1.diff.
5694
5695 * configure.in (AC_PREREQ): 2.53.
5696
e53c6322
AD
56972002-03-20 Akim Demaille <akim@epita.fr>
5698
5699 * src/conflicts.c (log_resolution): Argument `resolution' is const.
5700
9ffbeca7
PE
57012002-03-19 Paul Eggert <eggert@twinsun.com>
5702
21db0b2a
PE
5703 * src/bison.simple (YYCOPY): New macro.
5704 (YYSTACK_RELOCATE): Use it.
5705 Remove Type arg; no longer needed. All callers changed.
5706 (yymemcpy): Remove; no longer needed.
5707
9ffbeca7
PE
5708 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
5709 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
5710
642cb8f8
AD
57112002-03-19 Akim Demaille <akim@epita.fr>
5712
5713 Test and fix the #line outputs.
5714
5715 * tests/atlocal.at (GCC): New.
5716 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
5717 (Prologue synch line, ,%union synch line, Postprologue synch line)
5718 (Action synch line, Epilogue synch line): New tests.
5719 * src/reader.c (parse_union_decl): Define the muscle stype_line.
5720 * data/bison.simple, data/bison.c++: Use it.
5721
3c31a486
AD
57222002-03-19 Akim Demaille <akim@epita.fr>
5723
5724 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
5725 (Solved SR Conflicts, %expect not enough, %expect right)
5726 (%expect too much): Move to...
5727 * tests/conflicts.at: this new file.
5728
0d8bed56
AD
57292002-03-19 Akim Demaille <akim@epita.fr>
5730
5731 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
5732 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
5733 that we can move to enums for instance.
5734 * src/output.c (token_definitions_output): Output a list of
5735 `token-name, token-number' instead of the #define.
5736 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
5737
9208d17f
AD
57382002-03-14 Akim Demaille <akim@epita.fr>
5739
5740 Use Gettext 0.11.1.
5741
af27eacb
RA
57422002-03-09 Robert Anisko <robert@lrde.epita.fr>
5743
5744 * data/bison.c++: Make the user able to add members to the generated
5745 parser by subclassing.
5746
9101a310
RA
57472002-03-05 Robert Anisko <robert@lrde.epita.fr>
5748
5749 * src/reader.c (read_additionnal_code): `c' should be an integer, not
5750 a character.
5751 Reported by Nicolas Tisserand and Nicolas Burrus.
5752
fff9bf0b
RA
57532002-03-04 Robert Anisko <robert@lrde.epita.fr>
5754
5755 * src/reader.c: Warn about lacking semi-colons, do not complain.
5756
64dba31e
RA
57572002-03-04 Robert Anisko <robert@lrde.epita.fr>
5758
5759 * data/bison.c++: Remove a debug line.
5760
374f5a14
RA
57612002-03-04 Robert Anisko <robert@lrde.epita.fr>
5762
5763 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
5764 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
5765 provide a default implementation.
5766
bfcf1f3a
AD
57672002-03-04 Akim Demaille <akim@epita.fr>
5768
5769 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
5770 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
5771 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
5772 * tests/semantic.at (Parsing Guards): Similarly.
5773 * src/reader.at (readgram): Complain if the last rule is not ended
5774 with a semi-colon.
5775
65ccf9fc
AD
57762002-03-04 Akim Demaille <akim@epita.fr>
5777
5778 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
5779 * src/closure.c: here.
5780 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
5781 RTC.
5782 * src/warshall.h, src/warshall.c: Remove.
5783 * tests/sets.at (Broken Closure): Adjust.
5784
d0039cbc
AD
57852002-03-04 Akim Demaille <akim@epita.fr>
5786
5787 * src/output.c (output_skeleton): tempdir is const.
5788 bytes_read is unused.
5789
345cea78
AD
57902002-03-04 Akim Demaille <akim@epita.fr>
5791
5792 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5793 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
5794 Update.
5795 From Michael Hayes.
5796
564801f7
AD
57972002-03-04 Akim Demaille <akim@epita.fr>
5798
5799 * src/closure.c (closure): `r' is unused.
5800
e5352bc7
AD
58012002-03-04 Akim Demaille <akim@epita.fr>
5802
5803 * tests/sets.at (Broken Closure): Add the ending `;'.
5804 * src/reader.at (readgram): Complain if a rule is not ended with a
5805 semi-colon.
5806
914feea9
AD
58072002-03-04 Akim Demaille <akim@epita.fr>
5808
5809 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
5810 (count_sr_conflicts): Use bitset_count.
5811 * src/reduce.c (inaccessable_symbols): Ditto.
5812 (bits_size): Remove.
5813 * src/warshall.h, src/warshall.c: Convert to bitsetv.
5814
f0250de6
AD
58152002-03-04 Akim Demaille <akim@epita.fr>
5816
5817 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
5818 * src/reduce.c: Remove the `bitset_zero's following the
5819 `bitset_create's, as now it is performed by the latter.
5820
ef017502
AD
58212002-03-04 Akim Demaille <akim@epita.fr>
5822
5823 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
5824 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
5825 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
5826 latest sources from Michael.
5827
76514394
AD
58282002-03-04 Akim Demaille <akim@epita.fr>
5829
5830 * src/output.c (output): Don't free the grammar.
5831 * src/reader.c (grammar_free): New.
5832 * src/main.c (main): Call it and don't free symtab here.
5833
55024580
AD
58342002-03-04 Akim Demaille <akim@epita.fr>
5835
5836 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
5837 before returning.
5838 Reported by Benoit Perrot.
5839
f9abaa2c
AD
58402002-03-04 Akim Demaille <akim@epita.fr>
5841
5842 Use bitset operations when possible, not loops over bits.
5843
5844 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
5845 bitset_or.
5846 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
5847 * src/reduce.c (useless_nonterminals): Formatting changes.
5848 * src/warshall.c (TC): Use bitset_or.
5849
0e721e75
AD
58502002-03-04 Akim Demaille <akim@epita.fr>
5851
5852 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
5853 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
5854 Ditto.
5855
0fb1ffb1
AD
58562002-03-04 Akim Demaille <akim@epita.fr>
5857
5858 * src/lalr.c (F): Now a bitset*.
5859 Adjust all dependencies.
5860
b86796bf
AD
58612002-03-04 Akim Demaille <akim@epita.fr>
5862
5863 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
5864 Adjust all dependencies.
5865
602bbf31
AD
58662002-03-04 Akim Demaille <akim@epita.fr>
5867
5868 * src/L0.c, src/LR0.h (nstates): Be size_t.
5869 Adjust comparisons (signed vs unsigned).
5870 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
5871 bitset*.
5872 Adjust all dependencies.
5873
d8a0245c
AD
58742002-03-04 Akim Demaille <akim@epita.fr>
5875
5876 * src/closure.c (firsts): Now, also a bitset.
5877 Adjust all dependencies.
5878 (varsetsize): Remove, now unused.
5879 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
5880
34ba9743
AD
58812002-03-04 Akim Demaille <akim@epita.fr>
5882
5883 * src/print.c: Convert to use bitset.h, not hand coded iterations
5884 over ints.
5885
ed86e78c
AD
58862002-03-04 Akim Demaille <akim@epita.fr>
5887
5888 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
5889
dfdb1797
AD
58902002-03-04 Akim Demaille <akim@epita.fr>
5891
5892 * src/closure.c (ruleset): Be a bitset.
5893 (rulesetsize): Remove.
5894
7086e707
AD
58952002-03-04 Akim Demaille <akim@epita.fr>
5896
5897 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
5898 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
5899 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
5900 * src/closure.c (fderives): Be an array of bitsets.
5901
98254360
RA
59022002-02-28 Robert Anisko <robert@lrde.epita.fr>
5903
5904 * data/bison.c++: Merge the two generated headers. Insert a copyright
5905 notice in each output file.
5906
a75c057f
AD
59072002-02-28 Akim Demaille <akim@epita.fr>
5908
5909 * data/bison.c++: Copy the prologue of bison.simple to fetch
5910 useful M4 definitions, such as b4_header_guard.
5911
06b00abc
AD
59122002-02-25 Akim Demaille <akim@epita.fr>
5913
5914 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
5915 translator friendly scheme for the bgr
5916 copyright notice.
06b00abc 5917
70e7d534
AD
59182002-02-25 Akim Demaille <akim@epita.fr>
5919
5920 * src/output.c (header_output): Remove, now handled completely via
5921 M4.
5922
abe017f6
AD
59232002-02-25 Akim Demaille <akim@epita.fr>
5924
5925 * m4/m4.m4: New, from CVS Autoconf.
5926 * configure.in: Invoke it.
5927 * src/output.c (output_skeleton): Use its result instead of the
5928 hard coded name.
5929
381fb12e
AD
59302002-02-25 Akim Demaille <akim@epita.fr>
5931
5932 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
5933 Fileutils 4.1.5.
5934 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
5935 * src/output.c (output_skeleton): Use mkstemp to create a real
5936 temporary file.
5937 Move the filling of `skeleton' and its muscle to...
5938 (prepare): here.
5939 (output): Move the definition of the prologue muscle to...
5940 (prepare): here.
5941 * src/system.h (DEFAULT_TMPDIR): New.
5942
6f38107f
PE
59432002-02-14 Paul Eggert <eggert@twinsun.com>
5944
5945 Remove the support for C++ namespace cleanliness; it was
5946 causing more problems than it was curing, since it didn't work
5947 properly on some nonstandard C++ compilers. This can wait
5948 for a proper C++ parser.
5949
5950 * NEWS: Document this.
5951 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
5952 of C++, as it's treated like C now.
5953 * src/bison.simple (YYSTD): Remove.
5954 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
5955 Treat C++ just like Standard C instead of trying to support
5956 namespace cleanliness.
5957
80cce3da
AD
59582002-02-14 Akim Demaille <akim@epita.fr>
5959
5960 * tests/regression.at (else): Adjust to Andreas' change.
5961
842e8679
AD
59622002-02-14 Akim Demaille <akim@epita.fr>
5963
5964 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
5965
4bda3f10
AD
59662002-02-13 Andreas Schwab <schwab@suse.de>
5967
5968 * src/output.c (output_rule_data): Don't output NULL, it might
5969 not be defined yet.
5970
4162fa07 59712002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 5972
4162fa07
RA
5973 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
5974 (Copyright notice): Update.
b418ecd8 5975
bd16a5dc
AD
59762002-02-11 Akim Demaille <akim@epita.fr>
5977
5978 * tests/regression.at (%nonassoc and eof): Don't include
5979 nonportable headers.
5980
8d69a1a3
RA
59812002-02-08 Robert Anisko <robert@lrde.epita.fr>
5982
5983 * data/bison.c++: Correct error recovery. Make the user able to
5984 initialize the starting location.
5985
9b2d0677
AD
59862002-02-07 Akim Demaille <akim@epita.fr>
5987
5988 * tests/input.at: New.
5989
69e2658b
RA
59902002-02-07 Robert Anisko <robert@lrde.epita.fr>
5991
5992 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 5993 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
5994 directives around tables only needed for debugging.
5995
4aacc3a7
RA
59962002-02-07 Robert Anisko <robert@lrde.epita.fr>
5997
5998 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
5999 C++ parsers.
6000 (yy::b4_name::parse): Use print_.
6001
762a801e
RA
60022002-02-07 Robert Anisko <robert@lrde.epita.fr>
6003
6004 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
6005
4bb2bc3f
RA
60062002-02-07 Robert Anisko <robert@lrde.epita.fr>
6007
6008 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
6009 C++ parsers.
6010 (yy::b4_name::parse): Build verbose error messages, and use error_.
6011
6b45a3ca
RA
60122002-02-06 Robert Anisko <robert@lrde.epita.fr>
6013
6014 * data/bison.c++: Fix m4 quoting in comments.
6015
50997c6e
RA
60162002-02-06 Robert Anisko <robert@lrde.epita.fr>
6017
6018 * data/bison.c++: Adjust the parser code. Fix some muscles that were
6019 not expanded by m4.
6020
3f3eed27
AD
60212002-02-05 Akim Demaille <akim@epita.fr>
6022
6023 * data/bison.c++: Adjust to the M4 back end.
6024 More is certainly needed.
6025
be2a1a68
AD
60262002-02-05 Akim Demaille <akim@epita.fr>
6027
6028 Give a try to M4 as a back end.
6029
6030 * lib/readpipe.c: New, from wdiff.
6031 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
6032 BISON_HAIRY.
6033 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
6034 specific values. Now it is m4 that performs the lookup.
6035 * src/parse-skel.y: Remove.
6036 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
6037 * src/output.c (actions_output, guards_output)
6038 (token_definitions_output): No longer keeps track of the output
6039 line number, hence remove the second argument.
6040 (guards_output): Check against the guard member of a rule, not the
6041 action member.
6042 Adjust callers.
6043 (output_skeleton): Don't look for the skeleton location, let m4 do
6044 that.
6045 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
6046 file will be used.
6047 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
6048 (prepare): Given that for the time being changesyntax is not
6049 usable in M4, rename the muscles using `-' to `_'.
6050 Define `defines_flag', `output_parser_name' and `output_header_name'.
6051 * src/output.h (actions_output, guards_output)
6052 (token_definitions_output): Adjust prototypes.
6053 * src/scan-skel.l: Instead of scanning the skeletons, it now
6054 processes the output of m4: `__oline__' and `#output'.
6055 * data/bison.simple: Adjust to be used by M4(sugar).
6056 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
6057 to date.
6058 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
6059 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
6060 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
6061 shamelessly stolen from CVS Autoconf.
6062
beda758b
AD
60632002-02-05 Akim Demaille <akim@epita.fr>
6064
6065 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
6066 * configure.in: Check for the declarations of free and malloc.
6067 * src/muscle_tab.c: Adjust.
6068
5ece6d43
AD
60692002-02-05 Akim Demaille <akim@epita.fr>
6070
6071 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
6072 which have no values.
6073
5bb18f9a
AD
60742002-02-05 Akim Demaille <akim@epita.fr>
6075
6076 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
6077 * data/: here.
6078
894dd62e
PE
60792002-01-29 Paul Eggert <eggert@twinsun.com>
6080
6081 * src/bison.simple (YYSIZE_T): Do not define merely because
6082 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
6083 On some platforms, <alloca.h> does not declare YYSTD (size_t).
6084
82841af7
AD
60852002-01-27 Akim Demaille <akim@epita.fr>
6086
6087 Fix `%nonassoc and eof'.
6088
6089 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
6090 which were not properly copied! Replace
6091 memcpy (res->errs, src->errs, src->nerrs);
6092 with
6093 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
6094 !!!
6095 * tests/regression.at (%nonassoc and eof): Adjust to newest
6096 Autotest: `.' is not in the PATH.
6097
318b76e9
AD
60982002-01-27 Akim Demaille <akim@epita.fr>
6099
6100 * tests/sets.at (AT_EXTRACT_SETS): New.
6101 (Nullable): Use it.
6102 (Firsts): New.
6103
30d2f3d5
AD
61042002-01-26 Akim Demaille <akim@epita.fr>
6105
6106 * tests/actions.at, tests/calc.at, tests/headers.at,
6107 * tests/torture.at: Adjust to the newest Autotest which no longer
6108 forces `.' in the PATH.
6109
30f8c395
AD
61102002-01-25 Akim Demaille <akim@epita.fr>
6111
6112 * tests/regression.at (%nonassoc and eof): New.
6113 Suggested by Robert Anisko.
6114
29ae55f1
AD
61152002-01-24 Akim Demaille <akim@epita.fr>
6116
6117 Bison dumps core when trying to complain about broken input files.
6118 Reported by Cris van Pelt.
6119
6120 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
6121 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
6122 into...
6123 (Invalid inputs): Strengthen: exercise parse_percent_token.
6124
2b548aa6
RA
61252002-01-24 Robert Anisko <robert.anisko@epita.fr>
6126
6127 * src/Makefile.am: Add bison.c++.
6128 * src/bison.c++: New skeleton.
6129
bb0146c2
AD
61302002-01-21 Paolo Bonzini <bonzini@gnu.org>
6131
6132 * po/it.po: New.
6133
bec30531
AD
61342002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
6135
6136 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
6137
fc6edc45
MA
61382002-01-20 Marc Autret <marc@gnu.org>
6139
6140 * src/files.c (compute_output_file_names): Fix
6141
5e5d5415
MA
61422002-01-20 Marc Autret <marc@gnu.org>
6143
6144 * tests/output.at: New test.
6145 * src/files.c (compute_base_names): Don't map extensions when
6146 the YACC flag is set, use defaults.
6147 Reported by Evgeny Stambulchik.
6148
44ea3fbd
MA
61492002-01-20 Marc Autret <marc@gnu.org>
6150
bb0146c2 6151 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
6152 compilers as well (i.e. the vendor C compiler).
6153 Suggested by Albert Chin-A-Young.
6154
338963d1
TVH
61552002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
6156
6157 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
6158 canonical definition.
6159 * src/system.h: Use the canonical definition for PARAMS (avoids
6160 a conflict with the macro from lib/hash.h).
6161
c57b2479
AD
61622002-01-11 Akim Demaille <akim@epita.fr>
6163
6164 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 6165 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 6166
b85810ae
AD
61672002-01-09 Akim Demaille <akim@epita.fr>
6168
6169 * src/files.c, src/files.h (output_infix): New.
6170 (tab_extension): Remove.
6171 (compute_base_names): Compute the former, drop the latter.
6172 * src/output.c (prepare): Insert the muscles `output-infix', and
6173 `output-suffix'.
6174 * src/parse-skel.y (string, string.1): New.
6175 (section.header): Use it.
6176 (section.yacc): Remove.
6177 (prefix): Remove too.
6178 * src/scan-skel.l: Adjust.
6179 * src/bison.simple, src/bison.hairy: Adjust.
6180
cae60122
AD
61812002-01-09 Akim Demaille <akim@epita.fr>
6182
6183 * configure.in (WERROR_CFLAGS): Compute it.
6184 * src/Makefile.am (CFLAGS): Pass it.
6185 * tests/atlocal.in (CFLAGS): Idem.
6186 * src/files.c: Fix a few warnings.
6187 (get_extension_index): Remove, unused.
6188
ae404801
AD
61892002-01-08 Akim Demaille <akim@epita.fr>
6190
6191 * src/getargs.c (AS_FILE_NAME): New.
6192 (getargs): Use it to convert DOSish file names.
6193 * src/files.c (base_name): Rename as full_base_name to avoid
6194 clashes with `base_name ()'.
6195 (filename_split): New.
6196 (compute_base_names): N-th rewrite, using filename_split.
6197
22312b71
AD
61982002-01-08 Akim Demaille <akim@epita.fr>
6199
6200 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
6201 New, stolen from the Fileutils 4.1.
6202 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
6203 * configure.in: Check for the presence of memrchr, and of its
6204 prototype.
6205
a67cef01
TVH
62062002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
6207
6208 * lib/hash.h (__P): Added definition for this macro.
6209 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
6210 BUILT_SOURCES, to ensure they are generated first.
6211 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
6212 %error-verbose to allow bootstrapping with bison 1.30x.
6213
2b25d624
AD
62142002-01-06 Akim Demaille <akim@epita.fr>
6215
6216 * src/reader.c (parse_braces): Don't fetch the next char, the
6217 convention is to fetch on entry.
6218 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
6219 'switch' without a following semicolon.
6220 * tests/regression.at (braces parsing): New.
6221
3460813b
AD
62222002-01-06 Akim Demaille <akim@epita.fr>
6223
6224 Bison is dead wrong in its RR conflict reports.
6225
6226 * tests/torture.at (GNU Cim Grammar): New.
6227 * src/conflicts.c (count_rr_conflicts): Fix.
6228
73784c64
AD
62292002-01-06 Akim Demaille <akim@epita.fr>
6230
6231 Creating package.m4 from configure.ac causes too many problems.
6232
6233 * tests/Makefile.am (package.m4): Create it by hand,
6234 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
6235
25d81090
AD
62362002-01-06 Akim Demaille <akim@epita.fr>
6237
6238 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
6239 skeleton.h.
6240
a9b8959e
PE
62412002-01-04 Paul Eggert <eggert@twinsun.com>
6242
6243 * doc/bison.texinfo (Debugging):
6244 Remove YYSTDERR; it's no longer defined or used.
6245 Also, s/cstdio.h/cstdio/.
6246
25d81090
AD
62472002-01-03 Akim Demaille <akim@epita.fr>
6248
6249 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
6250
1109455c
AD
62512002-01-03 Akim Demaille <akim@epita.fr>
6252
6253 * src/parse-skel.y (process_skeleton): Don't bind the parser's
6254 tracing code to --trace, wait for a better --trace option, with
6255 args.
6256
7ea5e977
AD
62572002-01-03 Akim Demaille <akim@epita.fr>
6258
6259 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
6260 The ISO C++ standard is extremely clear about it: stderr is
6261 considered a macro, not a regular symbol (see table 94 `Header
6262 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
6263 Therefore std:: does not apply to it. It still does with fprintf.
6264 Also, s/cstdio.h/cstdio/.
6265
fab5b110
AD
62662002-01-03 Akim Demaille <akim@epita.fr>
6267
6268 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
6269 for non system headers.
6270
aed7fd9b
AD
62712002-01-02 Akim Demaille <akim@epita.fr>
6272
6273 Equip the skeleton chain with location tracking, runtime trace,
6274 pure parser and scanner.
6275
6276 * src/parse-skel.y: Request a pure parser, locations, and prefix
6277 renaming.
6278 (%union): Having several members with the same type does not help
6279 type mismatches, simplify.
6280 (YYPRINT, yyprint): New.
6281 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
6282 (skel_error): this.
6283 Handle locations.
6284 * src/scan-skel.l: Adjust to these changes.
6285 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
6286 (LOCATION_PRINT, skel_control_t): New.
6287
24fad99e
AD
62882001-12-30 Akim Demaille <akim@epita.fr>
6289
6290 * src/parse-skel.y: Get rid of the shift/reduce conflict:
6291 replace `gb' with BLANKS.
6292 * src/scan-skel.l: Adjust.
6293
a4b36db4
AD
62942001-12-30 Akim Demaille <akim@epita.fr>
6295
6296 * src/system.h: We don't need nor want bcopy.
6297 Throw away MS-DOS crap: we don't need getpid.
6298 * configure.in: We don't need strndup. It was even causing
6299 problems: because Flex includes the headers *before* us,
6300 _GNU_SOURCE is not defined by config.h, and therefore strndup was
6301 not visible.
6302 * lib/xstrndup.c: New.
6303 * src/scan-skel.l: Use it.
6304 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
6305 * src/parse-skel.y: Use %directives instead of #defines.
6306
1239777d
AD
63072001-12-30 Akim Demaille <akim@epita.fr>
6308
6309 * src/skeleton.h: New.
6310 * src/output.c (output_parser, output_master_parser): Remove, dead
6311 code.
6312 * src/output.h (get_lines_number, actions_output, guards_output)
6313 (token_definitions_output): Prototype them.
6314 * src/parse-skel.y: Add the license notice.
6315 Include output.h and skeleton.h.
6316 (process_skeleton): Returns void, and takes a single parameter.
6317 * src/scan-skel.l: Add the license notice.
6318 Include skeleton.h.
6319 Don't use %option yylineno: it seems that then Flex imagines
6320 REJECT has been used, and therefore it won't reallocate its
6321 buffers (which makes no other sense to me than a bug). It results
6322 in warnings for `unused: yy_flex_realloc'.
6323
9b3add5b
RA
63242001-12-30 Robert Anisko <robert.anisko@epita.fr>
6325
6326 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
6327 (MUSCLE_INSERT_PREFIX): ...to there.
6328 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
6329 (MUSCLE_INSERT_PREFIX): Move from here...
6330
6331 * src/bison.hairy: Add a section directive. Put braces around muscle
6332 names. This parser skeleton is still broken, but Bison should not
6333 choke on a bad muscle 'syntax'.
6334 * src/bison.simple: Add a section directive. Put braces around muscle
6335 names.
6336
6337 * src/files.h (strsuffix, stringappend): Add declarations.
6338 (tab_extension): Add declaration.
6339 (short_base_name): Add declaration.
6340
6341 * src/files.c (strsuffix, stringappend): No longer static. These
6342 functions are used in the skeleton parser.
6343 (tab_extension): New.
6344 (compute_base_names): Use the computations done in this function
fab5b110 6345 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
6346 names.
6347 (short_base_name): No longer static.
6348
6349 * src/output.c (output_skeleton): New.
6350 (output): Disable call to output_master_parser, and give a try to
6351 a new skeleton handling system.
6352 (guards_output, actions_output): No longer static.
6353 (token_definitions_output, get_lines_number): No longer static.
6354
6355 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
6356
fab5b110 6357 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
6358 parse-skel.y.
6359
6360 * src/parse-skel.y: New file.
6361 * src/scan-skel.l: New file.
6362
b5b61c61
AD
63632001-12-29 Akim Demaille <akim@epita.fr>
6364
6365 %name-prefix is broken.
6366
6367 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
6368 Adjust all dependencies.
6369 * tests/headers.at (export YYLTYPE): Strengthen this test: use
6370 %name-prefix.
6371
6372 Renaming yylval but not yylloc is not consistent. Now we do.
6373
6374 * src/bison.simple: Prefix yylloc if used.
6375 * doc/bison.texinfo (Decl Summary): Document that.
6376
8c9a50be
AD
63772001-12-29 Akim Demaille <akim@epita.fr>
6378
6379 * doc/bison.texinfo: Promote `%long-directive' over
6380 `%long_directive'.
6381 Remove all references to fixed-output-files, yacc is enough.
6382
d99361e6
AD
63832001-12-29 Akim Demaille <akim@epita.fr>
6384
6385 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
6386 user prologue. These are defaults.
6387 * tests/actions.at (Mid-rule actions): Make sure the user can
6388 define YYDEBUG and YYERROR_VERBOSE.
6389
b9cecb91
AD
63902001-12-29 Akim Demaille <akim@epita.fr>
6391
6392 * src/output.c (header_output): Don't forget to export YYLTYPE and
6393 yylloc.
6394 * tests/headers.at (export YYLTYPE): New, make sure it does.
6395 * tests/regression.at (%union and --defines, Invalid CPP headers):
6396 Move to...
6397 * tests/headers.at: here.
6398
aea13e97
AD
63992001-12-29 Akim Demaille <akim@epita.fr>
6400
6401 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
6402
931394cb
AD
64032001-12-29 Akim Demaille <akim@epita.fr>
6404
6405 * tests/actions.at (Mid-rule actions): Output on a single line
6406 instead of several.
6407
704a47c4
AD
64082001-12-29 Akim Demaille <akim@epita.fr>
6409
6410 * doc/bison.texinfo: Formatting changes.
6411
091e20bb
AD
64122001-12-29 Akim Demaille <akim@epita.fr>
6413
6414 Don't store the token defs in a muscle, just be ready to output it
6415 on command. Now possible via `symbols'. Fixes a memory leak.
6416
6417 * src/output.c (token_definitions_output): New.
6418 (output_parser, header_output): Use it.
6419 * src/reader.c (symbols_save): Remove.
6420
cce71710
AD
64212001-12-29 Akim Demaille <akim@epita.fr>
6422
6423 * src/bison.simple: Do not provide a default for YYSTYPE and
6424 YYLTYPE before the user's prologue. Otherwise it's hardly... a
6425 default.
6426
82c035a8
AD
64272001-12-29 Akim Demaille <akim@epita.fr>
6428
6429 Mid-rule actions are simply... ignored!
6430
6431 * src/reader.c (readgram): Be sure to attach mid-rule actions to
6432 the empty-rule associated to the dummy symbol, not to the host
6433 rule.
6434 * tests/actions.at (Mid-rule actions): New.
6435
8419d367
AD
64362001-12-29 Akim Demaille <akim@epita.fr>
6437
6438 Memory leak.
6439
6440 * src/reader.c (reader): Free grammar.
6441
375d5806
AD
64422001-12-29 Akim Demaille <akim@epita.fr>
6443
6444 Memory leak.
6445
6446 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
6447 since it allocates it for each state, although only one is needed.
6448 (allocate_storage): Do it here.
6449
f51cb8ff
AD
64502001-12-29 Akim Demaille <akim@epita.fr>
6451
6452 * src/options.h, src/options.c (create_long_option_table): Rename
6453 as...
6454 (long_option_table_new): this, with a clearer prototype.
6455 (percent_table): Remove, unused,
6456 * src/getargs.c (getargs): Adjust.
6457
29e88316
AD
64582001-12-29 Akim Demaille <akim@epita.fr>
6459
6460 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
6461 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
6462 as states.
6463
b9f71f19
AD
64642001-12-29 Akim Demaille <akim@epita.fr>
6465
6466 * src/lalr.c (build_relations): Rename `states' as `states1'.
6467 Sorry, I don't understand exactly what it is, no better name...
6468
1a2b5d37
AD
64692001-12-29 Akim Demaille <akim@epita.fr>
6470
6471 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
6472 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
6473 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
6474 as rules.
6475
1cca533e
AD
64762001-12-29 Akim Demaille <akim@epita.fr>
6477
6478 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
6479 ago.
6480
c03ae966
AD
64812001-12-29 Akim Demaille <akim@epita.fr>
6482
6483 * src/reader.c, src/reader.h (user_toknums): Remove.
6484 Adjust all users to use symbols[i]->user_token_number.
6485
5a670b1e
AD
64862001-12-29 Akim Demaille <akim@epita.fr>
6487
6488 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
6489 Adjust all users to use symbols[i]->prec or ->assoc.
6490
ad949da9
AD
64912001-12-29 Akim Demaille <akim@epita.fr>
6492
6493 * src/reader.c, src/reader.h (tags): Remove.
6494 Adjust all users to use symbols[i]->tag.
6495
0e78e603
AD
64962001-12-29 Akim Demaille <akim@epita.fr>
6497
6498 * src/gram.h, src/gram.c (symbols): New, similar to state_table
6499 and rule_table.
6500 * src/reader.c (packsymbols): Fill this table.
6501 Drop sprec.
6502 * src/conflicts.c (resolve_sr_conflict): Adjust.
6503 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
6504 single table.
6505 Use symbols[i]->tag instead of tags[i].
6506
213e640e
AD
65072001-12-29 Akim Demaille <akim@epita.fr>
6508
6509 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
6510 In addition, put a comment in there, to replace...
6511 * tests/regression.at (%union and C comments): Remove.
6512
e7b8bef1
AD
65132001-12-29 Akim Demaille <akim@epita.fr>
6514
6515 * tests/regression.at (Web2c Actions): Blindly move the actual
6516 output as expected output. The contents *seem* right to me, but I
6517 can't pretend reading perfectly parser tables... Nonetheless, all
6518 the other tests pass correctly, the table look OK, even though the
6519 presence of `$axiom' is to be noted: AFAICS it is useless (but
6520 harmless).
6521
b68e7744
AD
65222001-12-29 Akim Demaille <akim@epita.fr>
6523
6524 * src/reader.c (readgram): Don't add the rule 0 if there were no
6525 rules read. In other words, add it _after_ having performed
6526 grammar sanity checks.
6527 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
6528
78d5bae9
AD
65292001-12-29 Akim Demaille <akim@epita.fr>
6530
6531 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
6532 visible, and some states have now a different number.
6533
ff442794
AD
65342001-12-29 Akim Demaille <akim@epita.fr>
6535
6536 * src/reader.c (readgram): Bind the initial rule's lineno to that
6537 of the first rule.
6538 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
6539 (Solved SR Conflicts): Adjust rule 0's line number.
6540
610ab194
AD
65412001-12-29 Akim Demaille <akim@epita.fr>
6542
6543 Fix the `GAWK Grammar' failure.
6544
6545 * src/LR0.c (final_state): Initialize to -1 so that we do compute
6546 the reductions of the first state which was mistakenly confused
6547 with the final state because precisely final_state was initialized
6548 to 0.
6549 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
6550 now noticed by Bison.
6551 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
6552 have a reduction on $default.
6553
29d29c8f
AD
65542001-12-29 Akim Demaille <akim@epita.fr>
6555
6556 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
6557 rule line numbers.
6558 * src/closure.c (print_closure): Likewise.
6559 * src/derives.c (print_derives): Likewise.
6560 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
6561 now.
6562
7c6b64d0
AD
65632001-12-29 Akim Demaille <akim@epita.fr>
6564
6565 * src/lalr.c (lookaheads_print): New.
6566 (lalr): Call it when --trace-flag.
6567 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
6568 are dumped.
6569
3d4daee3
AD
65702001-12-29 Akim Demaille <akim@epita.fr>
6571
6572 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
6573 when walking through ritem, even via rule->rhs.
6574 * src/reduce.c (dump_grammar, useful_production, reduce_output)
6575 (useful_production, useless_nonterminals): Likewise.
6576 (reduce_grammar_tables): Likewise, plus update nritems.
6577 * src/nullable.c (set_nullable): Likewise.
6578 * src/lalr.c (build_relations): Likewise.
6579 * tests/sets.at (Nullable): Adjust.
6580 Fortunately, now, the $axiom is no longer nullable.
6581
9e7f6bbd
AD
65822001-12-29 Akim Demaille <akim@epita.fr>
6583
6584 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
6585 the 0-sentinel.
6586 * src/gram.c (ritem_longest_rhs): Likewise.
6587 * src/reduce.c (nonterminals_reduce): Likewise.
6588 * src/print_graph.c (print_graph): Likewise.
6589 * src/output.c (output_rule_data): Likewise.
6590 * src/nullable.c (set_nullable): Likewise.
6591
255ef638
AD
65922001-12-29 Akim Demaille <akim@epita.fr>
6593
6594 * src/output.c: Comment changes.
6595
0d8a7363
AD
65962001-12-27 Paul Eggert <eggert@twinsun.com>
6597
6598 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
6599 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
6600 Sparc, as they were causing more porting problems than the
6601 (minor) performance improvement was worth.
6602
6603 Also, catch up with 1.31's YYSTD.
6604
3db472b9
AD
66052001-12-27 Akim Demaille <akim@epita.fr>
6606
6607 * src/output.c (output_gram): Rely on nritems, not the
6608 0-sentinel. See below.
6609 Use -1 as separator, not 0.
6610 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
6611 Rely on -1 as separator in yyrhs, instead of 0.
6612 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
6613 twice `Now at end of input', therefore there are two lines less to
6614 expect.
6615
b365aa05
AD
66162001-12-27 Akim Demaille <akim@epita.fr>
6617
6618 * tests/regression.at (Unresolved SR Conflicts):
6619 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
6620 below.
6621
30171f79
AD
66222001-12-27 Akim Demaille <akim@epita.fr>
6623
6624 * src/LR0.c (new_state): Recognize the final state by the fact it
6625 is reached by eoftoken.
6626 (insert_start_shifting_state, insert_eof_shifting_state)
6627 (insert_accepting_state, augment_automaton): Remove, since now
6628 these states are automatically computed from the initial state.
6629 (generate_states): Adjust.
6630 * src/print.c: When reporting a rule number to the user, substract
6631 1, so that the axiom rule is rule 0, and the first user rule is 1.
6632 * src/reduce.c: Likewise.
6633 * src/print_graph.c (print_core): For the time being, just as for
6634 the report, depend upon --trace-flags to dump the full set of
6635 items.
6636 * src/reader.c (readgram): Once the grammar read, insert the rule
6637 0: `$axiom: START-SYMBOL $'.
6638 * tests/set.at: Adjust: rule 0 is now displayed, and since the
6639 number of the states has changed (the final state is no longer
6640 necessarily the last), catch up.
6641
75142d45
AD
66422001-12-27 Akim Demaille <akim@epita.fr>
6643
6644 Try to make the use of the eoftoken valid. Given that its value
6645 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
6646 is used instead of > 0 where appropriate, (ii), depend upon nritems
6647 instead of the 0-sentinel.
6648
6649 * src/gram.h, src/gram.c (nritems): New.
6650 Expected to be duplication of nitems, but for the time being...
6651 * src/reader.c (packgram): Assert nritems and nitems are equal.
6652 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
6653 * src/closure.c (print_closure, print_fderives): Likewise.
6654 * src/gram.c (ritem_print): Likewise.
6655 * src/print.c (print_core, print_grammar): Likewise.
6656 * src/print_graph.c: Likewise.
6657
b7c49edf
AD
66582001-12-27 Akim Demaille <akim@epita.fr>
6659
6660 * src/main.c (main): If there are complains after grammar
6661 reductions, then output the report anyway if requested, then die.
6662 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
6663 * src/reader.c (eoftoken): New.
6664 (parse_token_decl): If the token being defined has value `0', it
6665 is the eoftoken.
6666 (packsymbols): No longer hack `tags' to insert `$' by hand.
6667 Be sure to preserve the value of the eoftoken.
6668 (reader): Make sure eoftoken is defined.
6669 Initialize nsyms to 0: now eoftoken is created just like the others.
6670 * src/print.c (print_grammar): Don't special case the eof token.
6671 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
6672 lie anyway, albeit pleasant.
6673 * tests/calc.at: Exercise error messages with eoftoken.
6674 Change the grammar so that empty input is invalid.
6675 Adjust expectations.
6676 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
6677
ec2da99f
AD
66782001-12-27 Akim Demaille <akim@epita.fr>
6679
6680 * configure.in: Check the protos of strchr ans strspn.
6681 Replace strchr if needed.
6682 * src/system.h: Provide the protos of strchr, strspn and memchr if
6683 missing.
6684 * lib/strchr.c: New.
6685 * src/reader.c (symbols_save): Use strchr.
6686
8adfa272
AD
66872001-12-27 Akim Demaille <akim@epita.fr>
6688
6689 * src/print.c, src/print_graph.c (escape): New.
6690 Use it to quote the TAGS outputs.
6691 * src/print_graph.c (print_state): Now errors are in red, and
6692 reductions in green.
6693 Prefer high to wide: output the state number on a line of its own.
6694
80dac38c
AD
66952001-12-27 Akim Demaille <akim@epita.fr>
6696
6697 * src/state.h, src/state.c (reductions_new): New.
6698 * src/LR0.c (set_state_table): Let all the states have a
6699 `reductions', even if reduced to 0.
6700 (save_reductions): Adjust.
6701 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
6702 * src/print.c (print_reductions, print_actions): Adjust.
6703 * src/output.c (action_row): Adjust.
6704
2cec70b9
AD
67052001-12-27 Akim Demaille <akim@epita.fr>
6706
6707 * src/state.h, src/state.c (errs_new, errs_dup): New.
6708 * src/LR0.c (set_state_table): Let all the states have an errs,
6709 even if reduced to 0.
6710 * src/print.c (print_errs, print_reductions): Adjust.
6711 * src/output.c (output_actions, action_row): Adjust.
6712 * src/conflicts.c (resolve_sr_conflict): Adjust.
6713
13ca549a
AD
67142001-12-27 Akim Demaille <akim@epita.fr>
6715
6716 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
6717
5092aba5
AD
67182001-12-27 Akim Demaille <akim@epita.fr>
6719
6720 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
6721 * src/print.c: here.
6722 (lookaheadset, shiftset): New, used as additional storage by
6723 print_reductions.
6724 (print_results): Adjust.
6725 (print_shifts, print_gotos, print_errs): New, extracted from...
6726 (print_actions): here.
6727 * src/print_graph.c (print_actions): Remove dead code.
6728
11e2beca
AD
67292001-12-27 Akim Demaille <akim@epita.fr>
6730
6731 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
6732 `$n' and `@n'.
6733
dac3c910
AD
67342001-12-27 Akim Demaille <akim@epita.fr>
6735
6736 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
6737 (build_relations): Adjust.
6738
d0b0fefa
AD
67392001-12-27 Akim Demaille <akim@epita.fr>
6740
6741 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
6742 duplication.
6743
adc8c848
AD
67442001-12-27 Akim Demaille <akim@epita.fr>
6745
6746 * src/reader.c (packgram): Catch nitems overflows.
6747
14d293ac
AD
67482001-12-27 Akim Demaille <akim@epita.fr>
6749
6750 * src/files.c, src/files.h (guard_obstack): Remove.
6751 * src/output.c (output): Adjust.
6752 * src/reader.c (parse_braces): New, factoring...
6753 (copy_action, copy_guard): these two which are renamed as...
6754 (parse_action, parse_guard): these.
6755 As a voluntary consequence, using braces around guards is now
6756 mandatory.
6757
f499b062
AD
67582001-12-27 Akim Demaille <akim@epita.fr>
6759
6760 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
6761 * src/reader.c (symbol_list): `guard' and `guard_line' are new
6762 members.
6763 (symbol_list_new): Adjust.
6764 (copy_action): action_line is the first line, not the last.
6765 (copy_guard): Just as for actions, store the `action' only, not
6766 the switch/case/break flesh.
6767 Don't parse the user action that might follow the guard, let...
6768 (readgram): do it, i.e., now, there can be an action after a
6769 guard.
6770 In other words the guard is just explicitly optional.
6771 (packgram): Adjust.
6772 * src/output.c (guards_output): New.
6773 (output_parser): Call it when needed.
6774 (output): Also free the guard and attrs obstacks.
6775 * src/files.c, src/files.h (obstack_save): Remove.
6776 (output_files): Remove.
6777 As a result, if one needs the former `.act' file, using an
6778 appropriate skeleton which requires actions and guards is now
6779 required.
6780 * src/main.c (main): Adjust.
6781 * tests/semantic.at: New.
6782 * tests/regression.at: Use `input.y' as input file name.
6783 Avoid 8+3 problems by requiring input.c when the test needs the
6784 parser.
6785
d945f5cd
AD
67862001-12-27 Akim Demaille <akim@epita.fr>
6787
6788 * src/reader.c (symbol_list_new): Be sure to initialize all the
6789 fields.
6790
d200e455
AD
67912001-12-27 Akim Demaille <akim@epita.fr>
6792
6793 All the hacks using a final pseudo state are now useless.
6794
6795 * src/LR0.c (set_state_table): state_table holds exactly nstates.
6796 * src/lalr.c (nLA): New.
6797 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
6798 instead of lookaheadsp from the pseudo state (nstate + 1).
6799
f9507c28
AD
68002001-12-27 Akim Demaille <akim@epita.fr>
6801
6802 * src/output.c (action_row, token_actions): Use a state_t instead
6803 of a integer, and nlookaheads instead of the following state's
6804 lookaheadsp.
6805
065fbd27
AD
68062001-12-27 Akim Demaille <akim@epita.fr>
6807
6808 * src/conflicts.c (log_resolution, flush_shift)
6809 (resolve_sr_conflict, set_conflicts, solve_conflicts)
6810 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
6811 (conflicts_print, print_reductions): Use a state_t instead of an
6812 integer when referring to a state.
6813 As much as possible, depend upon nlookaheads, instead of the
6814 `lookaheadsp' member of the following state (since lookaheads of
6815 successive states are successive, the difference between state n + 1
6816 and n served as the number of lookaheads for state n).
6817 * src/lalr.c (add_lookback_edge): Likewise.
6818 * src/print.c (print_core, print_actions, print_state)
6819 (print_results): Likewise.
6820 * src/print_graph.c (print_core, print_actions, print_state)
6821 (print_graph): Likewise.
6822 * src/conflicts.h: Adjust.
6823
1b177bd7
AD
68242001-12-27 Akim Demaille <akim@epita.fr>
6825
6826 * src/bison.hairy: Formatting/comment changes.
6827 ANSIfy.
6828 Remove `register' indications.
6829 Add plenty of `static'.
6830
7742ddeb
AD
68312001-12-27 Akim Demaille <akim@epita.fr>
6832
6833 * src/output.c (prepare): Drop the muscle `ntbase' which
6834 duplicates ntokens.
6835 * src/bison.simple: Formatting/comment changes.
6836 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
6837 is an undocumented synonym.
6838
1fa14068
AD
68392001-12-22 Akim Demaille <akim@epita.fr>
6840
6841 * src/output.c (output_table_data): Change the prototype to use
6842 `int' for array ranges: some invocations do pass an int, not a
6843 short.
6844 Reported by Wayne Green.
6845
b9752825
AD
68462001-12-22 Akim Demaille <akim@epita.fr>
6847
6848 Some actions of web2c.y are improperly triggered.
6849 Reported by Mike Castle.
6850
6851 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
6852 * tests/regression.at (Web2c): Rename as...
6853 (Web2c Report): this.
6854 (Web2c Actions): New.
6855
776209d6
AD
68562001-12-22 Akim Demaille <akim@epita.fr>
6857
6858 Reductions in web2c.y are improperly reported.
6859 Reported by Mike Castle.
6860
6861 * src/conflicts.c (print_reductions): Fix.
6862 * tests/regression.at (Web2c): New.
6863
275fc3ad
AD
68642001-12-18 Akim Demaille <akim@epita.fr>
6865
6866 Some host fail on `assert (!"foo")', which expands to
6867 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
6868 Reported by Nelson Beebee.
6869
6870 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
6871 `#define it_succeeded 0' and `assert (it_succeeded)'.
6872
897668ee
MA
68732001-12-17 Marc Autret <autret_m@epita.fr>
6874
6875 * src/bison.simple: Don't hard code the skeleton line and filename.
6876 * src/output.c (output_parser): Rename 'line' as 'output_line'.
6877 New line counter 'skeleton_line' (skeleton-line muscle).
6878
ab3399e0
PE
68792001-12-17 Paul Eggert <eggert@twinsun.com>
6880
6881 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
6882 YYDEBUG must be defined to a nonzero value.
6883
6884 * src/bison.simple (yytname): Do not assume that the user defines
6885 YYDEBUG to a properly parenthesized expression.
6886
3877f72b
AD
68872001-12-17 Akim Demaille <akim@epita.fr>
6888
6889 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
6890 nlookaheads is a new member.
6891 Adjust all users.
6892 * src/lalr.h (nlookaheads): Remove this orphan declaration.
6893 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
6894 state.
776209d6 6895
331dbc1b
AD
68962001-12-17 Akim Demaille <akim@epita.fr>
6897
6898 * src/files.h, src/files.c (open_files, close_files): Remove.
6899 * src/main.c (main): Don't open/close files, nor invoke lex_free,
6900 let...
6901 * src/reader.c (reader): Do it.
776209d6 6902
be750e4c
AD
69032001-12-17 Akim Demaille <akim@epita.fr>
6904
6905 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 6906
709ae8c6
AD
69072001-12-17 Akim Demaille <akim@epita.fr>
6908
6909 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
6910 (flush_reduce): New.
6911 (resolve_sr_conflict): Adjust.
776209d6 6912
f87685c3
AD
69132001-12-17 Akim Demaille <akim@epita.fr>
6914
6915 * src/output.c (output_obstack): Be static and rename as...
6916 (format_obstack): this, to avoid any confusion with files.c's
6917 output_obstack.
6918 * src/reader.h (muscle_obstack): Move to...
6919 * src/output.h: here, since it's defined in output.c.
6920
837491d8
AD
69212001-12-17 Akim Demaille <akim@epita.fr>
6922
6923 * src/output.c (action_row, save_column, default_goto)
6924 (sort_actions, matching_state, pack_vector): Better variable
6925 locality.
6926
796d61fb
AD
69272001-12-17 Akim Demaille <akim@epita.fr>
6928
6929 * src/output.c: Various formatting changes.
776209d6 6930
64d15509
AD
69312001-12-17 Akim Demaille <akim@epita.fr>
6932
6933 * src/files.c (output_files): Free the output_obstack.
6934 * src/main.c (main): Call print and print_graph conditionally.
6935 * src/print.c (print): Work unconditionally.
6936 * src/print_graph.c (print_graph): Work unconditionally.
6937 * src/conflicts.c (log_resolution): Output only if verbose_flag.
6938
fbc8ecb7
MA
69392001-12-16 Marc Autret <autret_m@epita.fr>
6940
6941 * src/output.c (actions_output): Fix. When we use %no-lines,
6942 there is one less line per action.
6943
f0440388
MA
69442001-12-16 Marc Autret <autret_m@epita.fr>
6945
6946 * src/bison.simple: Remove a useless #line directive.
6947 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
6948 * src/output.c (get_lines_number): New.
776209d6 6949 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
6950 output muscles.
6951 Fix line numbering.
6952 (actions_output): Computes the number of lines taken by actions.
6953 (output_master_parser): Insert new skeleton which is the name of
6954 the output parser file name.
6955
a79986b8
MA
69562001-12-15 Marc Autret <autret_m@epita.fr>
6957
6958 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
6959
4ec8e00f
MA
69602001-12-15 Marc Autret <autret_m@epita.fr>
6961
6962 * src/output.c (output_gram): Keep track of the hairy one.
6963
1a4648ff
AD
69642001-12-15 Akim Demaille <akim@epita.fr>
6965
6966 Make `make distcheck' work.
6967
6968 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
6969 system.h which uses libgettext.h.
6970
9c2c67e6
AD
69712001-12-15 Akim Demaille <akim@epita.fr>
6972
6973 * src/nullable.c (set_nullable): Useless rules must be skipped,
6974 otherwise, since we range over their symbols, we might look at a
6975 nonterminal which no longer ``exists'', i.e., it is not counted in
6976 `nvars', hence we overflow our arrays.
6977
93ede233
AD
69782001-12-15 Akim Demaille <akim@epita.fr>
6979
6980 The header can also be produced directly, without any obstack!
6981 Yahoo!
6982
6983 * src/files.c, src/files.h (defines_obstack): Remove.
6984 (compute_header_macro): Global.
6985 (defines_obstack_save): Remove.
6986 * src/reader.c (parse_union_decl): No longer output to
6987 defines_obstack: its content can be found in the `stype' muscle
6988 anyway.
6989 (output_token_translations): Merge into...
6990 (symbols_output): this.
6991 Rename as...
6992 (symbols_save): this.
6993 (reader): Adjust.
6994 * src/output.c (header_output): New.
6995 (output): Call it.
6996
2666f928
AD
69972001-12-15 Akim Demaille <akim@epita.fr>
6998
6999 * src/reader.c (parse_union_decl): Instead of handling two obstack
7000 simultaneously, use one to define the `stype' muscle, and use the
7001 value of the latter to fill defines_obstack.
7002 (copy_comment): Remove.
7003 (copy_comment2): Work for a single obstack.
7004 Rename as...
7005 (copy_comment): this.
7006
428046f8
AD
70072001-12-15 Akim Demaille <akim@epita.fr>
7008
7009 * src/lex.c, src/lex.h (xgetc): No longer static.
7010 * src/reader.c (parse_union_decl): Revamp.
7011
ea52d706
AD
70122001-12-15 Akim Demaille <akim@epita.fr>
7013
7014 Still making progress in separating Bison into (i) input, (ii)
7015 process, (iii) output: now we can directly output the parser file
7016 without using table_obstack at all.
7017
7018 * src/files.c, src/files.h (table_obstack): Bye bye.
7019 (parser_file_name): New.
7020 * src/files.c (compute_output_file_names): Compute it.
7021 * src/output.c (actions_output, output_parser)
7022 (output_master_parser): To a file instead of an obstack.
7023
3f96f4dc
AD
70242001-12-15 Akim Demaille <akim@epita.fr>
7025
7026 Attach actions to rules, instead of pre-outputting them to
7027 actions_obstack.
7028
7029 * src/gram.h (rule_t): action and action_line are new members.
7030 * src/reader.c (symbol_list): Likewise.
7031 (copy_action): Save the actions within the rule.
7032 (packgram): Save them in rule_table.
7033 * src/output.c (actions_output): New.
7034 (output_parser): Use it on `%%actions'.
7035 (output_rule_data): Don't free rule_table.
7036 (output): Do it.
7037 (prepare): Don't save the `action' muscle.
7038 * src/bison.simple: s/%%action/%%actions/.
7039
51576fb3
AD
70402001-12-15 Akim Demaille <akim@epita.fr>
7041
7042 * src/reader.c (copy_action): When --yacc, don't append a `;'
7043 to the user action: let it fail if lacking.
dee049eb 7044 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 7045
2648a72d
AD
70462001-12-14 Akim Demaille <akim@epita.fr>
7047
7048 * src/lex.c (literalchar): Simply return the char you decoded, non
7049 longer mess around with obstacks and int pointers.
7050 Adjust all callers.
7051
92790e5b
AD
70522001-12-14 Akim Demaille <akim@epita.fr>
7053
7054 * src/lex.c (literalchar): Don't escape the special characters,
7055 just decode them, and keep them as char (before, eol was output as
7056 the 2 char string `\n' etc.).
7057 * src/output.c (output_rule_data): Use quotearg to output the
7058 token strings.
7059
927c1557
PE
70602001-12-13 Paul Eggert <eggert@twinsun.com>
7061
7062 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
7063 Do not infringe on the global user namespace when using C++.
7064 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
7065 All uses of `fprintf' and `stderr' changed.
7066
7067 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
7068
ed8e1f68
AD
70692001-12-13 Akim Demaille <akim@epita.fr>
7070
7071 The computation of nullable is broken: it doesn't handle empty
7072 RHS's properly.
7073
7074 * tests/torture.at (GNU AWK Grammar): New.
7075 * tests/sets.at (Nullable): New.
7076 * src/nullable.c (set_nullable): Instead of blindly looping over
7077 `ritems', loop over the rules, and then over their rhs's.
7078
7079 Work around Autotest bugs.
7080
7081 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
7082 frame, because Autotest understand lines starting with a `+' as
7083 traces from the shell. Then, they are not processed properly.
7084 Admittedly an Autotest bug, but we don't have time to wait for
7085 Autotest to catch up.
7086 * tests/regression.at (Broken Closure): Adjust to the new table
7087 frames.
7088 Move to...
7089 * tests/sets.at: here.
7090
cb581495
AD
70912001-12-13 Akim Demaille <akim@epita.fr>
7092
7093 * src/closure.c (closure): Use nrules instead of playing tricks
7094 with BITS_PER_WORD.
7095
2e729273
AD
70962001-12-13 Akim Demaille <akim@epita.fr>
7097
7098 * src/print.c (print_actions): Output the handling of `$' as the
7099 traces do: shifting the token EOF. Before EOF was treated as a
7100 nonterminal.
7101 * tests/regression.at: Adjust some tests.
7102 * src/print_graph.c (print_core): Complete the set of items via
7103 closure. The next-to-final and final states are still unsatisfying,
7104 but that's to be addressed elsewhere.
7105 No longer output the rule numbers, but do output the state number.
7106 A single loop for the shifts + gotos is enough, but picked a
7107 distinct color for each.
7108 (print_graph): Initialize and finalize closure.
7109
107f7dfb
AD
71102001-12-13 Akim Demaille <akim@epita.fr>
7111
7112 * src/reader.c (readgram): Remove dead code, an strip useless
7113 braces.
7114 (get_type): Remove, unused.
7115
9b53a24f
AD
71162001-12-12 Akim Demaille <akim@epita.fr>
7117
7118 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
7119 on that of lib/error.c.
7120
dbfb6dcd
AD
71212001-12-12 Akim Demaille <akim@epita.fr>
7122
7123 Some hosts don't like `/' in includes.
7124
7125 * src/system.h: Include libgettext.h without qualifying the path.
7126 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
7127 $(top_srcdir).
7128
c25fb648
MA
71292001-12-11 Marc Autret <autret_m@epita.fr>
7130
7131 * src/output.c (output_parser): Remove useless muscle.
7132
710ddc4f
MA
71332001-12-11 Marc Autret <autret_m@epita.fr>
7134
7135 * src/bison.simple: Remove #line just before %%epilogue. It
7136 is now handled in ...
7137 * src/reader.c (read_additionnal_code): Add the output of a
7138 #line for the epilogue.
7139
e83d80b8
MA
71402001-12-10 Marc Autret <autret_m@epita.fr>
7141
927c1557 7142 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
7143 replace precedent remove.
7144 * src/bison.simple: Remove #line before %%prologue because
7145 %%input-line is wrong at this time.
7146
971d5158
MA
71472001-12-10 Marc Autret <autret_m@epita.fr>
7148
7149 * src/reader.c (symbols_output): Clean up.
927c1557 7150 * src/output.c (output_gram, output): Clean up.
971d5158 7151
5edafffd
AD
71522001-12-10 Akim Demaille <akim@epita.fr>
7153
7154 * src/lalr.c (initialize_lookaheads): New. Extracted from...
7155 * src/LR0.c (set_state_table): here.
7156 * src/lalr.c (lalr): Call it.
7157
0279f8e9
AD
71582001-12-10 Akim Demaille <akim@epita.fr>
7159
7160 * src/state.h (shifts): Remove the `number' member: shifts are
7161 attached to state, hence no longer need to be labelled with a
7162 state number.
7163
190c4f5f
AD
71642001-12-10 Akim Demaille <akim@epita.fr>
7165
7166 Now that states have a complete set of members, the linked list of
7167 shifts is useless: just fill directly the state's shifts member.
7168
7169 * src/state.h (shifts): Remove the `next' member.
7170 * src/LR0.c (first_state, last_state): Remove.
7171 Adjust the callers.
7172 (augment_automaton): Don't look for the shifts that must be added
7173 a shift on EOF: it is those of the state we looked for! But now,
7174 since shifts are attached, it is no longer needed to looking
7175 merely by its id: its number.
7176
2a73b93d
AD
71772001-12-10 Akim Demaille <akim@epita.fr>
7178
7179 * src/LR0.c (augment_automaton): Better variable locality.
7180 Remove an impossible branch: if there is a state corresponding to
7181 the start symbol being shifted, then there is shift for the start
7182 symbol from the initial state.
7183
74392f6a
AD
71842001-12-10 Akim Demaille <akim@epita.fr>
7185
7186 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
7187 only when appropriate: when insert_start_shifting_state' is not
7188 invoked.
7189 * tests/regression.at (Rule Line Numbers): Adjust.
7190
37c82725
AD
71912001-12-10 Akim Demaille <akim@epita.fr>
7192
7193 * src/LR0.c (augment_automaton): Now that all states have shifts,
7194 merge the two cases addition shifts to the initial state.
7195
6a164e0c
AD
71962001-12-10 Akim Demaille <akim@epita.fr>
7197
7198 * src/lalr.c (set_state_table): Move to...
7199 * src/LR0.c: here.
7200 * src/lalr.c (lalr): Don't call it...
7201 * src/LR0.c (generate_states): do it.
7202 * src/LR0.h (first_state): Remove, only the table is used.
7203
7215de24
AD
72042001-12-10 Akim Demaille <akim@epita.fr>
7205
7206 * src/LR0.h (first_shift, first_reduction): Remove.
7207 * src/lalr.c: Don't use first_shift: find shifts through the
7208 states.
7209
80e25d4d
AD
72102001-12-10 Akim Demaille <akim@epita.fr>
7211
7212 * src/LR0.c: Attach shifts to states as soon as they are
7213 computed.
7214 * src/lalr.c (set_state_table): Instead of assigning shifts to
7215 state, just assert that the mapping was properly done.
7216
0ab3728b
AD
72172001-12-10 Akim Demaille <akim@epita.fr>
7218
7219 * src/LR0.c (insert_start_shift): Rename as...
7220 (insert_start_shifting_state): this.
7221 (insert_eof_shifting_state, insert_accepting_state): New.
7222 (augment_automaton): Adjust.
7223 Better locality of the variables.
7224 When looking if the start_symbol is shifted from the initial
7225 state, using `while (... symbol != start_symbol ...)' sounds
7226 better than `while (... symbol < start_symbol ...)': If fail
7227 to see how the order between symbols could be relevant!
7228
78af9bbc
AD
72292001-12-10 Akim Demaille <akim@epita.fr>
7230
7231 * src/getargs.h: Don't declare `spec_name_prefix' and
7232 `spec_file_prefix', declared by src/files.h.
7233 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
7234 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
7235 * src/output.c (prepare): Adjust.
7236 * src/reader.c (symbols_output): Likewise.
7237 * src/vmsgetargs.c: Vaguely adjust, but who cares?
7238
bdef2a41
AD
72392001-12-10 Akim Demaille <akim@epita.fr>
7240
7241 * src/muscle_tab.c (muscle_init): NULL is a better default than
7242 `"0"'.
7243
3735969c
AD
72442001-12-10 Akim Demaille <akim@epita.fr>
7245
7246 * src/reader.c (reader): Calling symbols_output once is enough.
7247
49701457
AD
72482001-12-10 Akim Demaille <akim@epita.fr>
7249
7250 Now that states have a complete set of members, the linked list of
7251 reductions is useless: just fill directly the state's reductions
7252 member.
7253
7254 * src/state.h (struct reductions): Remove member `number' and
7255 `next'.
7256 * src/LR0.c (first_reduction, last_reduction): Remove.
7257 (save_reductions): Don't link the new reductions, store them in
7258 this_state.
7259 * src/lalr.c (set_state_table): No need to attach reductions to
7260 states, it's already done.
7261 * src/output.c (output_actions): No longer free the shifts, then
7262 the reductions, then the states: free all the states and their
7263 members.
7264
0edad749
AD
72652001-12-10 Akim Demaille <akim@epita.fr>
7266
7267 * src/options.c (OPTN, DRTV, BOTH): New.
7268 (option_table): Use them.
7269
0edad749
AD
7270 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
7271 the job of system.h.
7272 * src/options.c: Don't include stdio.h and xalloc.h for the same
7273 reasons.
7274
5449dd0f
AD
72752001-12-10 Akim Demaille <akim@epita.fr>
7276
7277 * src/output.c (output, prepare): Make sure the values of the
7278 muscles `action' and `prologue' are 0-terminated.
7279
a870c567
AD
72802001-12-10 Akim Demaille <akim@epita.fr>
7281
7282 Clean up GCC warnings.
7283
7284 * src/reader.c (copy_action): `buf' is not used.
7285 (parse_skel_decl): Be static.
7286 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
7287 * src/options.h (create_long_option_table): Have a real prototype.
7288 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
7289 (hash_delete_at): Return const void *.
7290 Adjust casts to preserve the const.
7291
80df8768
AD
72922001-12-10 Akim Demaille <akim@epita.fr>
7293
7294 * configure.in: Require 2.52g.
7295 M4 is not needed, but AUTOM4TE is.
7296 * m4/m4.m4: Remove.
7297 * tests/Makefile.am: Adjust.
7298
f693ad14
AD
72992001-12-10 Akim Demaille <akim@epita.fr>
7300
7301 One structure for states is enough, even though theoretically
7302 there are LR(0) states and LALR(1) states.
7303
7304 * src/lalr.h (state_t): Remove.
7305 (state_table): Be state_t **, not state_t *.
7306 * src/state.h (core, CORE_ALLOC): Rename as...
7307 (state_t, STATE_ALLOC): this.
7308 Add the LALR(1) members: shifts, reductions, errs.
7309 * src/LR0.c (state_table): Rename as...
7310 (state_hash): this, to avoid name clashes with the global
7311 `state_table'.
7312 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
7313 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
7314
74ffbcb6
AD
73152001-12-10 Akim Demaille <akim@epita.fr>
7316
7317 Bison dumps core on bash.y.
7318 Reported by Pascal Bart.
7319
7320 * src/warshall.c (bitmatrix_print): New.
7321 (TC): Use it.
7322 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
7323 j must be the outer loop.
7324 * tests/regression.at (Broken Closure): New.
7325
07708e19
AD
73262001-12-05 Akim Demaille <akim@epita.fr>
7327
7328 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
7329 its argument.
ba1ecc07 7330 Reported by Peter Hamorsky.
07708e19 7331
92b16366
AD
73322001-12-05 Akim Demaille <akim@epita.fr>
7333
7334 * src/conflicts.c (err_table): Remove.
7335 (resolve_sr_conflict): Adjust.
7336 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
7337 Rename as...
7338 (state_t.reductions, state_t.shifts): this.
7339
076ab033
AD
73402001-12-05 Akim Demaille <akim@epita.fr>
7341
7342 * src/reduce.c (reduce_grammar_tables): No longer disable the
7343 removal of useless rules via CPP but via `if (0)', so that the
7344 compiler still check the code is valid.
7345 For instance, it should have noticed `rline' no longer exists: use
7346 the `line' member of rule_t.
7347 * src/gram.c (dummy, rline): Remove, unused.
7348
3843c413
AD
73492001-12-05 Akim Demaille <akim@epita.fr>
7350
7351 * src/output.c (pack_vector): Use assert, not berror.
7352 * src/main.c (berror): Remove, unused.
7353
43168960
AD
73542001-12-05 Akim Demaille <akim@epita.fr>
7355
7356 New experimental feature: if --verbose --trace output all the
7357 items of a state, not only its kernel.
7358
7359 * src/print.c (print_core): If `trace_flag', then invoke closure
7360 before outputting the items of the state (print_core is no longer
7361 a correct name them).
7362 (print_results): Invoke new_closure/free_closure if needed.
7363
b2872512
AD
73642001-12-05 Akim Demaille <akim@epita.fr>
7365
7366 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
7367 * src/closure.c, src/closure.h (itemsetsize): Rename as...
7368 (nitemset): for consistency with the rest of the project.
7369
23cbcc6c
AD
73702001-12-05 Akim Demaille <akim@epita.fr>
7371
7372 * src/closure.c (print_closure): Improve.
7373 (closure): Use it for printing input and output.
7374
03ec521c
AD
73752001-12-05 Akim Demaille <akim@epita.fr>
7376
7377 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
7378 indexed by nonterminals.
7379
3a7456dd
AD
73802001-12-05 Akim Demaille <akim@epita.fr>
7381
7382 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
7383 what it was!).
7384 * src/warshall.h: Remove accidental duplication of the content.
7385
1cbcf2e7
AD
73862001-12-05 Akim Demaille <akim@epita.fr>
7387
7388 * src/closure.c (set_fderives): De-obfuscate.
7389
84182270
AD
73902001-12-05 Akim Demaille <akim@epita.fr>
7391
7392 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
7393
3f6f053c
AD
73942001-12-05 Akim Demaille <akim@epita.fr>
7395
7396 * src/closure.c (set_firsts): De-obfuscate.
7397
7a5350ba
AD
73982001-12-05 Akim Demaille <akim@epita.fr>
7399
7400 * src/output.c (action_row): De-obfuscate
7401 using the good o' techniques: arrays not pointers, variable
7402 locality, BITISSET, RESETBIT etc.
7403
d954473d
AD
74042001-12-05 Akim Demaille <akim@epita.fr>
7405
7406 Pessimize the code to simplify it: from now on, all the states
7407 have a valid SHIFTS, which NSHIFTS is possibly 0.
7408
7409 * src/LR0.c (shifts_new): Be global and move to..
7410 * src/state.c, src/state.h: here.
7411 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
7412 * src/print_graph: Adjust.
7413
9839bbe5
AD
74142001-12-05 Akim Demaille <akim@epita.fr>
7415
7416 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
7417 * src/conflicts.c: Use it.
7418 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
7419 incorrectly ``simplified''.
7420
9f136c07
AD
74212001-12-05 Akim Demaille <akim@epita.fr>
7422
7423 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
7424 using the good o' techniques: arrays not pointers, variable
7425 locality, BITISSET, RESETBIT etc.
7426
b608206e
AD
74272001-12-05 Akim Demaille <akim@epita.fr>
7428
7429 * src/state.h (SHIFT_SYMBOL): New.
7430 * src/conflicts.c: Use it to deobfuscate.
7431
52afa962
AD
74322001-12-05 Akim Demaille <akim@epita.fr>
7433
7434 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
7435 (print_reductions): De-obfuscate using the good o' techniques:
7436 arrays not pointers, variable locality, BITISSET.
7437
e74dc321
AD
74382001-12-05 Akim Demaille <akim@epita.fr>
7439
7440 * src/conflicts.c (print_reductions): Arrays, not pointers.
7441 Use BITISSET.
7442
768fca83
AD
74432001-12-05 Akim Demaille <akim@epita.fr>
7444
7445 * src/conflicts.c (print_reductions): Pessimize, but clarify.
7446
a17e599f
AD
74472001-12-05 Akim Demaille <akim@epita.fr>
7448
7449 * src/conflicts.c (print_reductions): Improve variable locality.
7450
a04bc341
AD
74512001-12-05 Akim Demaille <akim@epita.fr>
7452
7453 * src/conflicts.c (print_reductions): Pessimize, but clarify.
7454
c8ea038e
AD
74552001-12-05 Akim Demaille <akim@epita.fr>
7456
7457 * src/conflicts.c (print_reductions): Improve variable locality.
7458
aa2aab3c
AD
74592001-12-05 Akim Demaille <akim@epita.fr>
7460
7461 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
7462 * src/lalr.c: Use them.
7463
b178c8cc
AD
74642001-12-05 Akim Demaille <akim@epita.fr>
7465
7466 * src/LR0.c (augment_automaton): Formatting changes.
7467 Better variable locality.
7468
f67d13aa
AD
74692001-12-05 Akim Demaille <akim@epita.fr>
7470
7471 * src/lalr.c (matrix_print): New.
7472 (transpose): Use it.
7473 Use arrays instead of pointers.
7474
c2713865
AD
74752001-12-05 Akim Demaille <akim@epita.fr>
7476
7477 * src/lalr.c (maxrhs): Move to...
7478 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
7479 * src/lalr.c (build_relations): Adjust.
7480
9887c18a
AD
74812001-12-05 Akim Demaille <akim@epita.fr>
7482
7483 * src/lalr.c (transpose): Free the memory allocated to the
7484 argument, as it is replaced by the results by the unique caller.
7485 (build_relations): Merely invoke transpose: it handles the memory
7486 deallocation.
7487 Improve variable locality.
7488 Avoid variables used as mere abbreviations.
7489 (compute_lookaheads): Use arrays instead of pointers.
7490
4d4f699c
AD
74912001-12-05 Akim Demaille <akim@epita.fr>
7492
7493 * src/lalr.c (initialize_F): Improve variable locality.
7494 Avoid variables used as mere abbreviations.
7495
80a69750
AD
74962001-12-05 Akim Demaille <akim@epita.fr>
7497
7498 * src/derives.c (print_derives): Display the ruleno.
7499 * src/lalr.c (initialize_F, transpose): Better variable locality
7500 to improve readability.
7501 Avoid variables used as mere abbreviations.
7502
fe961097
AD
75032001-12-05 Akim Demaille <akim@epita.fr>
7504
7505 * src/lalr.c (traverse): Use arrays instead of pointers.
7506
e3e4e814
AD
75072001-12-05 Akim Demaille <akim@epita.fr>
7508
7509 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
7510 the handling of squeue.
7511 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
7512
630e182b
AD
75132001-12-05 Akim Demaille <akim@epita.fr>
7514
7515 Because useless nonterminals are now kept alive (instead of being
7516 `destroyed'), we now sometimes examine them, and store information
7517 related to them. Hence we need to know their number, and adjust
7518 memory allocations.
7519
7520 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
7521 static.
7522 * src/LR0.c (allocate_itemsets): The memory allocated to
7523 `symbol_count' was used for two different purpose: once to count
7524 the number of occurrences of each symbol, and later reassigned to
7525 `shift_symbol', containing the symbol that can be shifted from a
7526 given state.
7527 Deobfuscate, i.e., allocate, use and free `symbol_count' here
7528 only, and...
7529 (new_itemsets): Allocate `shift_symbol' here.
7530 (allocate_itemsets): symbol_count includes useless nonterminals.
7531 Make room for them.
7532 (free_storage): Use `free', not `XFREE', for pointers that cannot
7533 be null.
7534
81b51460
AD
75352001-12-05 Akim Demaille <akim@epita.fr>
7536
7537 * src/nullable.c (set_nullable): Deobfuscate the handling of
7538 ritem.
7539 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
7540
3067fbef
AD
75412001-12-05 Akim Demaille <akim@epita.fr>
7542
7543 * src/gram.c, src/gram.h (ritem_print): New.
7544 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
7545 (This useless function was defined only to work around VMS linkers
7546 that can't handle compilation units with variables only).
7547 * src/reduce.c (dump_grammar): Use it to trace the construction of
7548 ritem.
7549
c2bea5f9
PE
75502001-12-04 Paul Eggert <eggert@twinsun.com>
7551
7d27c823
PE
7552 * src/bison.simple (union yyalloc): Change member names
7553 to be the same as the stack names.
7554 (yyparse): yyptr is now union yyalloc *, not char *.
7555 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
7556 and may generate better code on some machines.
c2bea5f9
PE
7557 (yystpcpy): Use prototype if __STDC__ is defined, not just
7558 if __cplusplus is defined.
35687a9d 7559
2c8a9dfa
AD
75602001-11-30 Akim Demaille <akim@epita.fr>
7561
7562 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
7563 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
7564 Gettext doesn't compile cleanly, and dies with -Werror.
7565 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
7566 Include WARNING_CFLAGS here.
7567 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
7568 before being defined.
7569
f4e421e6
AD
75702001-11-27 Paul Eggert <eggert@twinsun.com>
7571
7572 * lib/quotearg.h (quotearg_n, quotearg_n_style):
7573 First arg is int, not unsigned.
7574 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
7575 (SIZE_MAX, UINT_MAX): New macros.
7576 (quotearg_n_options): Abort if N is negative.
7577 Avoid overflow check on hosts where size_t is 64 bits and int
7578 is 32 bits, as overflow is impossible there.
7579 Fix off-by-one typo that caused unnecessary reallocation.
7580
7093d0f5
AD
75812001-11-29 Paul Eggert <eggert@twinsun.com>
7582
7583 Name space cleanup in generated parser.
7584
7585 * doc/bison.texinfo (Bison Parser): Discuss system headers
7586 and their effect on the user name space.
7587
7588 * src/bison.simple:
7589 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
7590 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
7591 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
7592
7593 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
7594 on user names when possible.
7595
7596 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
7597 Simplify test for whather <alloca.h> exists.
7598
7599 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
7600
7601 (<stdio.h>): Include if YYDEBUG.
7602
7603 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
7604 ! defined (yyoverflow) && ! defined (yymemcpy).
7605
7606 (yymemcpy, yyparse): Rename local variables as needed so that
7607 they all begin with 'yy'.
7608
7609 (yystrlen, yystpcpy): New functions.
7610
7611 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
7612 All uses changed.
7613
7614 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
7615 instead of relying on string.h functions. Use YYSTACK_ALLOC
7616 and YYSTACK_FREE instead of malloc and free.
7617
fd51e5ff
AD
76182001-11-30 Akim Demaille <akim@epita.fr>
7619
7620 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
7621 before their first uses.
7622 (YYBISON, YYPURE): Move to the top of the output.
7623
7d13ff5f
AD
76242001-11-30 Akim Demaille <akim@epita.fr>
7625
7626 * tests/reduce.at (Useless Nonterminals): Fix.
7627
892a3995
AD
76282001-11-30 Akim Demaille <akim@epita.fr>
7629
7630 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
7631 if body instead of `;' to pacify GCC's warnings.
7632
68f1e3ed
AD
76332001-11-30 Akim Demaille <akim@epita.fr>
7634
7635 Instead of mapping the LHS of unused rules to -1, keep the LHS
7636 valid, but flag the rules as invalid.
7637
7638 * src/gram.h (rule_t): `useful' is a new member.
7639 * src/print.c (print_grammar): Adjust.
7640 * src/derives.c (set_derives): Likewise.
7641 * src/reader.c (packgram, reduce_output): Likewise.
7642 * src/reduce.c (reduce_grammar_tables): Likewise.
7643 * tests/reduce.at (Underivable Rules, Useless Rules): New.
7644
d2d1b42b
AD
76452001-11-30 Akim Demaille <akim@epita.fr>
7646
7647 * src/reduce.c (reduce_output): Formatting changes.
7648 * src/print.c (print_results, print_grammar): Likewise.
7649 * tests/regression.at (Rule Line Numbers)
7650 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
7651
760b53a8
AD
76522001-11-30 Akim Demaille <akim@epita.fr>
7653
7654 * src/reduce.c (nonterminals_reduce): Instead of throwing away
7655 useless nonterminals, move them at the end of the symbol arrays.
7656 (reduce_output): Adjust.
7657 * tests/reduce.at (Useless Nonterminals): Adjust.
7658
00238958
AD
76592001-11-30 Akim Demaille <akim@epita.fr>
7660
7661 * src/reduce.c: Various comment/formatting changes.
7662 (nonterminals_reduce): New, extracted from...
7663 (reduce_grammar_tables): here.
7664 (reduce_grammar): Call nonterminals_reduce.
7665
396452de
PE
76662001-11-29 Paul Eggert <eggert@twinsun.com>
7667
7668 * src/bison.simple (YYSTACK_REALLOC): Remove.
7669 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
7670 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
7671 New macros.
7672 (union yyalloc): New type.
7673 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
7674 an arbitrary restriction on hosts where size_t is wider than int.
7675
7676 (yyparse): Don't dump core if alloca or malloc fails; instead, report
7677 a parser stack overflow. Allocate just one block of memory for all
7678 three stacks, instead of allocating three blocks; this typically is
7679 faster and reduces fragmentation.
7680
7681 Do not limit the number of items in the stack to a value that fits
7682 in 'int', as this is an arbitrary limit on hosts with 64-bit
7683 size_t and 32-bit int.
7684
147e184c
MA
76852001-11-29 Marc Autret <autret_m@epita.fr>
7686
7687 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
7688 of defining YYERROR_VERBOSE.
7689 [AT_DATA]: $4 is now out of C declarations in the prologue.
7690
426cf563
MA
76912001-11-28 Marc Autret <autret_m@epita.fr>
7692
7693 * src/reader.c (parse_dquoted_param): New.
7694 (parse_skel_decl): Use it.
7695 * src/lex.h: Add its prototype.
7696 * src/lex.c (literalchar): Become not static.
7697
c7925b99
MA
76982001-11-28 Marc Autret <autret_m@epita.fr>
7699
7700 * src/output.h: And put its extern declaration here.
7701 * src/output.c (error_verbose): Define here.
7702 (prepare): Echo name modification.
7703 * src/getargs.h: Clean its extern declaration.
7704 * src/getargs.c (error_verbose_flag): Remove.
7705 (getargs): Remove case 'e'.
7706 * src/options.c (option_table): 'error-verbose' is now seen as simple
7707 percent option.
7708 Include output.h.
7709
7710 * src/reader.c (read_declarations): Remove case tok_include.
7711 (parse_include_decl): Remove.
7712 * src/lex.h (token_t): Remove tok_include.
7713 * src/options.c (option_table): 'include' is now a simple command line
7714 option.
7715
5b5d1929
MA
77162001-11-28 Marc Autret <autret_m@epita.fr>
7717
7718 * src/bison.simple: Adjust muscle names.
7719 * src/muscle_tab.c (muscle_init): Also rename the muscles.
7720 * src/output.c (prepare): s/_/-/ for the muscles names.
7721 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
7722
8850be4b
MA
77232001-11-28 Marc Autret <autret_m@epita.fr>
7724
7725 * src/bison.simple: Fix debug.
7726 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
7727
4a38e613
AD
77282001-11-28 Akim Demaille <akim@epita.fr>
7729
7730 * src/LR0.c (shifts_new): New.
7731 (save_shifts, insert_start_shift, augment_automaton): Use it.
7732
4b35e1c1
AD
77332001-11-28 Akim Demaille <akim@epita.fr>
7734
7735 * src/closure.c (closure): `b' and `ruleno' denote the same value:
7736 keep ruleno only.
7737
d2b04478
AD
77382001-11-28 Akim Demaille <akim@epita.fr>
7739
7740 * src/closure.c (closure): Instead of looping over word in array
7741 then bits in words, loop over bits in array.
7742
2c4c30aa
AD
77432001-11-28 Akim Demaille <akim@epita.fr>
7744
7745 * src/closure.c (closure): No longer optimize the special case
7746 where all the bits of `ruleset[r]' are set to 0, to make the code
7747 clearer.
7748
576890b7
AD
77492001-11-28 Akim Demaille <akim@epita.fr>
7750
7751 * src/closure.c (closure): `r' and `c' are new variables, used to
7752 de-obfuscate accesses to RULESET and CORE.
7753
cb487d7d
AD
77542001-11-28 Akim Demaille <akim@epita.fr>
7755
7756 * src/reduce.c (reduce_print): Use ngettext.
7757 (dump_grammar): Improve the trace accuracy.
7758
6013d43f
AD
77592001-11-28 Akim Demaille <akim@epita.fr>
7760
7761 * src/reduce.c (dump_grammar): Don't translate trace messages.
7762
cb4956ee
AD
77632001-11-28 Akim Demaille <akim@epita.fr>
7764
7765 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
7766 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
7767 as all tags are free'ed afterwards.
7768 From Enrico Scholz.
7769
648185ab
PE
77702001-11-27 Paul Eggert <eggert@twinsun.com>
7771
7772 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
7773 use alloca when we didn't want to, and vice versa.
7774
68254a03
MA
77752001-11-27 Marc Autret <autret_m@epita.fr>
7776
9113b58f
AD
7777 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
7778 initialization.
68254a03
MA
7779 * src/output.c (prepare): Remove its update.
7780
04d843a2
MA
77812001-11-27 Marc Autret <autret_m@epita.fr>
7782
7783 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
7784 Use %error-verbose.
7785
d2079671 77862001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
7787
7788 * src/bison.simple: Remove YYERROR_VERBOSE using.
7789 Use %%error_verbose.
7790 (yyparse): Likewise.
7791 * src/output.c (prepare): Give its final value.
7792 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
7793 * src/getargs.h: Add its extern declaration.
7794 * src/getargs.c (error_verbose_flag): New int.
7795 (getargs): Update to catch new case.
7796 * src/options.c (option_table): 'error-verbose' is a new option.
7797 (shortopts): Update.
7798
e0327bc8
AD
77992001-11-27 Akim Demaille <akim@epita.fr>
7800
7801 * src/system.h: Use intl/libgettext.h.
7802 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
7803
000f1a3c
AD
78042001-11-27 Akim Demaille <akim@epita.fr>
7805
7806 * tests/torture.at (Exploding the Stack Size with Malloc):
7807 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
7808
26cfe0be
AD
78092001-11-27 Akim Demaille <akim@epita.fr>
7810
7811 * src/files.c: Include error.h.
7812 Reported by Hans Aberg.
7813
f6bd5427
MA
78142001-11-26 Marc Autret <autret_m@epita.fr>
7815
d2079671 7816 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
7817 (read_declarations): Add case tok_include.
7818 * src/getargs.h (include): Add its extern definition.
7819 * src/getargs.c (include): New const char *.
7820 (getargs): Add case '-I'.
7821 * src/options.c (option_table): Add include as command line and
7822 percent option.
7823 * src/lex.h (token_t): Add tok_include.
7824
2ca209c1
AD
78252001-11-26 Akim Demaille <akim@epita.fr>
7826
7827 * src/reader.c (readgram): Make sure rules for mid-rule actions
7828 have a lineno equal to that of their host rule.
7829 Reported by Hans Aberg.
7830 * tests/regression.at (Rule Line Numbers): New.
7831
0e41b407
AD
78322001-11-26 Akim Demaille <akim@epita.fr>
7833
7834 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
7835 size_ts.
7836
78372001-11-26 Akim Demaille <akim@epita.fr>
7838
7839 * src/complain.c, src/complain.h (error): Remove, provided by
7840 lib/error.[ch].
7841
e0c40012
AD
78422001-11-26 Akim Demaille <akim@epita.fr>
7843
7844 * src/reader.c (read_declarations): Don't abort on tok_illegal,
7845 issue an error message.
7846 * tests/regression.at (Invalid %directive): New.
7847 Reported by Hans Aberg.
7848
5e147124
AD
78492001-11-26 Akim Demaille <akim@epita.fr>
7850
7851 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
7852 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7853
a034c8b8
AD
78542001-11-26 Akim Demaille <akim@epita.fr>
7855
7856 * src/conflicts.c (conflicts_print): Don't complain at all when
7857 there are no reduce/reduce conflicts, and as many shift/reduce
7858 conflicts as expected.
7859 * tests/regression.at (%expect right): Adjust.
7860
c64a20f3
AD
78612001-11-23 Akim Demaille <akim@epita.fr>
7862
7863 * lib/alloca.c: Update, from fileutils.
7864
5b0d29bb
AD
78652001-11-23 Akim Demaille <akim@epita.fr>
7866
7867 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
7868
722c4bfe
AD
78692001-11-23 Akim Demaille <akim@epita.fr>
7870
7871 * src/system.h: Include alloca.h.
7872 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
7873
6255b435
AD
78742001-11-23 Akim Demaille <akim@epita.fr>
7875
7876 * src/print_graph.c (print_actions): Remove `rule', unused.
7877 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
7878 pacify GCC's signed < unsigned warnings.
7879 * src/closure.c (itemsetsize): Likewise.
7880 * src/reader.c (symbol_list_new): Static.
7881
b29b2ed5
AD
78822001-11-23 Akim Demaille <akim@epita.fr>
7883
7884 Attaching lineno to buckets is stupid, since only one copy of each
7885 symbol is kept, only the line of the first occurrence is kept too.
7886
7887 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
7888 * src/reader.c (rline_allocated): Remove, unused.
7889 (symbol_list): Have a `line' member.
7890 (symbol_list_new): New.
7891 (readgram): Use it.
7892 * src/print.c (print_grammar): Output the rule line numbers.
7893 * tests/regression.at (Solved SR Conflicts)
7894 (Unresolved SR Conflicts): Adjust.
7895 Reported by Hans Aberg.
7896
a81b1d4a
MA
78972001-11-22 Marc Autret <autret_m@epita.fr>
7898
7899 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
7900
c1ecb3c1
MA
79012001-11-22 Marc Autret <autret_m@epita.fr>
7902
7903 * src/muscle_tab.c (muscle_init): Remove initialization of
7904 skeleton muscle.
7905 * src/output.c (output_master_parser): Do it here.
7906
fbe01355
AD
79072001-11-20 Akim Demaille <akim@epita.fr>
7908
7909 * po/sv.po: New.
7910 * configure.in (ALL_LINGUAS): Adjust.
7911 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
7912 longer contains strings to translate.
7913
81e895c0
AD
79142001-11-19 Akim Demaille <akim@epita.fr>
7915
7916 * src/conflicts.c (conflicts_print): Add a missing \n.
7917
6bb1878b
AD
79182001-11-19 Akim Demaille <akim@epita.fr>
7919
7920 * src/nullable.c (nullable_print): New.
7921 (set_nullable): Call it when tracing.
7922 Better locality of variables.
7923
d9ec2d07
AD
79242001-11-19 Akim Demaille <akim@epita.fr>
7925
7926 * src/print.c (print_actions): Better locality of variables.
7927
720e5c1b
AD
79282001-11-19 Akim Demaille <akim@epita.fr>
7929
7930 * src/derives.c (print_derives): Fix and enrich.
7931 * src/closure.c (print_fderives): Likewise.
7932
fb908786
AD
79332001-11-19 Akim Demaille <akim@epita.fr>
7934
7935 * src/closure.c (itemsetend): Remove, replaced with...
7936 (itemsetsize): new.
7937
125ecb56
AD
79382001-11-19 Akim Demaille <akim@epita.fr>
7939
7940 * src/LR0.c (kernel_end): Remove, replaced with...
7941 (kernel_size): new.
7942
d8cf039f
AD
79432001-11-19 Akim Demaille <akim@epita.fr>
7944
7945 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
7946 to clarify.
7947
7bec0760
AD
79482001-11-19 Akim Demaille <akim@epita.fr>
7949
7950 * src/closure.c (closure): Use arrays instead of pointers to clarify.
7951
c87d4863
AD
79522001-11-19 Akim Demaille <akim@epita.fr>
7953
7954 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
7955 trace messages.
7956 * src/LR0.c: Likewise.
7957 (allocate_itemsets): Use arrays instead of pointers to clarify.
7958
9bfe901c
AD
79592001-11-19 Akim Demaille <akim@epita.fr>
7960
7961 * src/getargs.c (statistics_flag): Replace with...
7962 (trace_flag): New.
7963 (longopts): Accept --trace instead of --statistics.
7964 * src/getargs.h, src/options.c: Adjust.
7965 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
7966 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
7967
97db7bd4
AD
79682001-11-19 Akim Demaille <akim@epita.fr>
7969
cc72668c 7970 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
7971 pointers to clarify the code.
7972 (save_reductions, save_shifts): Factor common parts of alternatives.
7973
2c5f66ed
AD
79742001-11-19 Akim Demaille <akim@epita.fr>
7975
7976 * src/LR0.c (new_state, get_state): Complete TRACE code.
7977 * src/closure.c: Include `reader.h' to get `tags', needed by the
7978 trace code.
7979 Rename the conditional DEBUG as TRACE.
7980 Output consistently TRACEs to stderr, not stdout.
7981 * src/derives.c: Likewise.
7982 * src/reduce.c: (inaccessable_symbols): Using if is better style
7983 than goto.
7984 Use `#if TRACE' instead of `#if 0' for tracing code.
7985
300f275f
AD
79862001-11-19 Akim Demaille <akim@epita.fr>
7987
7988 * src/system.h (LIST_FREE, shortcpy): New.
7989 * src/LR0.c: Use them.
7990 * src/output.c (free_itemsets, free_reductions, free_shifts):
7991 Remove, replaced by LIST_FREE.
7992
f59c437a
AD
79932001-11-19 Akim Demaille <akim@epita.fr>
7994
7995 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
7996 (REDUCTIONS_ALLOC): New.
7997 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
7998 allocation.
7999
6986fd9e
AD
80002001-11-19 Akim Demaille <akim@epita.fr>
8001
8002 * src/LR0.c (new_state): Complete trace code.
8003 * src/nullable.c (set_nullable): Don't translate traces.
8004
4bc30f78
AD
80052001-11-19 Akim Demaille <akim@epita.fr>
8006
8007 * src/print_graph.c (print_core): Better locality of variables.
8008 * src/print.c (print_core): Likewise.
8009
08a946e0
AD
80102001-11-19 Akim Demaille <akim@epita.fr>
8011
8012 * src/vcg.c: You do the output, so you are responsible of the
8013 handling of VCG syntax, in particular: use quotearg.
8014 * src/print_graph.c: Don't.
8015 (print_actions): Don't output the actions as part of the nodes,
8016 since that's the job of the edges.
8017 (print_state): Don't output by hand: fill the node description,
9bfe901c 8018 and ask for its output.
08a946e0 8019
f0473484
AD
80202001-11-19 Akim Demaille <akim@epita.fr>
8021
cc72668c
AD
8022 * src/bison.simple (yyparse): When verbosely reporting an error,
8023 no longer put additional quotes around token names.
f0473484
AD
8024 * tests/calc.at: Adjust.
8025
e41dc700
AD
80262001-11-19 Akim Demaille <akim@epita.fr>
8027
8028 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
8029 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
8030 * src/output.c: Adjust.
8031
652a871c
AD
80322001-11-19 Akim Demaille <akim@epita.fr>
8033
8034 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
8035 (rule_t): this.
8036 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
8037
b2ed6e58
AD
80382001-11-19 Akim Demaille <akim@epita.fr>
8039
8040 * src/gram.h (rule_t): New.
8041 (rule_table): New.
8042 (rrhs, rlhs): Remove, part of state_t.
8043 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
8044 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
8045 * src/reader.c, src/reduce.c: Adjust.
8046
edad7067
AD
80472001-11-19 Akim Demaille <akim@epita.fr>
8048
8049 * src/reader.c (symbols_output): New, extracted from...
8050 (packsymbols): Here.
8051 (reader): Call it.
8052
3feec034
AD
80532001-11-19 Akim Demaille <akim@epita.fr>
8054
8055 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
8056 (maxrhs): this new function.
8057
ddcd5fdf
AD
80582001-11-19 Akim Demaille <akim@epita.fr>
8059
cc72668c 8060 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
8061 Adjust.
8062
bb527fc2
AD
80632001-11-19 Akim Demaille <akim@epita.fr>
8064
cc72668c 8065 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
8066 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8067 * src/lalr.c: Adjust.
8068
a845a697
AD
80692001-11-19 Akim Demaille <akim@epita.fr>
8070
8071 * src/lalr.c (initialize_LA): Only initialize LA. Let...
8072 (set_state_table): handle the `lookaheads' members.
8073
f004bf6a
AD
80742001-11-19 Akim Demaille <akim@epita.fr>
8075
cc72668c
AD
8076 * src/lalr.h (lookaheads): Removed array, whose contents is now
8077 a member of...
f004bf6a
AD
8078 (state_t): this structure.
8079 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8080 Adjust.
8081
de326cc0
AD
80822001-11-19 Akim Demaille <akim@epita.fr>
8083
cc72668c
AD
8084 * src/lalr.h (consistent): Removed array, whose contents is now
8085 a member of...
de326cc0
AD
8086 (state_t): this structure.
8087 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8088 Adjust.
8089
90b4416b
AD
80902001-11-19 Akim Demaille <akim@epita.fr>
8091
cc72668c
AD
8092 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
8093 contents are now members of...
90b4416b
AD
8094 (state_t): this structure.
8095 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
8096 Adjust.
8097
9703cc49
AD
80982001-11-19 Akim Demaille <akim@epita.fr>
8099
8100 * src/lalr.h (state_t): New.
8101 (state_table): Be a state_t * instead of a core **.
8102 (accessing_symbol): Remove, part of state_t.
8103 * src/lalr.c: Adjust.
8104 (set_accessing_symbol): Merge into...
8105 (set_state_table): this.
8106 * src/print_graph.c, src/conflicts.c: Adjust.
8107
d803322e
AD
81082001-11-14 Akim Demaille <akim@epita.fr>
8109
8110 * tests/calc.at, tests/output.at, tests/regression.at,
8111 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
8112 now the tests are run in private dirs, therefore AC_CLEANUP and
8113 family can be simplified to 0-ary.
8114 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
8115 use abs. path to find config.h.
8116 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
8117 stderr, there can be way too much random noise.
8118 Instead pass -Werror to GCC and rely on the exit status.
8119 Reported by Wolfram Wagner.
8120
3d76b07d
AD
81212001-11-14 Akim Demaille <akim@epita.fr>
8122
8123 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
8124 defined only if yyoverflow is defined, to avoid `warning: unused
8125 variable `yyvs1''.
8126 Reported by The Test Suite.
8127
09b503c8
AD
81282001-11-14 Akim Demaille <akim@epita.fr>
8129
8130 * src/print.c: Include reduce.h.
8131 Reported by Hans Aberg.
8132
81332001-11-14 Akim Demaille <akim@epita.fr>
8134
8135 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
8136 Revert a previous patch: these are really const.
8137 * src/conflicts.c (conflict_report): Additional useless pair of
8138 braces to pacify GCC's warnings for `if () if () {} else {}'.
8139 * src/lex.c (parse_percent_token): Replace equal_offset with
8140 arg_offset.
8141 arg is const.
8142 Be sure to strdup `arg' when used, since there is no reason for
8143 token_buffer not to change.
8144
0f37a994
AD
81452001-11-14 Akim Demaille <akim@epita.fr>
8146
8147 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
8148 definition.
8149 * src/main.c (main): Use them.
8150 Suggested by Hans Aberg.
8151
d39d93b8
AD
81522001-11-12 Akim Demaille <akim@epita.fr>
8153
8154 * src/system.h (ngettext): Now that we use ngettext, be sure to
8155 provide a default definition when NLS are not used.
8156
9edcd895
AD
81572001-11-12 Akim Demaille <akim@epita.fr>
8158
8159 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
8160 Use @kbd to denote user input.
8161 (Language and Grammar): ANSIfy the example.
8162 Adjust its layout for info/notinfo.
8163 (Location Tracking Calc): Output error messages to stderr.
8164 Output locations in a more GNUtically correct way.
8165 Fix a couple of Englishos.
8166 Adjust @group/@end group pairs.
8167
7da99ede
AD
81682001-11-12 Akim Demaille <akim@epita.fr>
8169
e3aa65c5 8170 %expect was not functioning at all.
7da99ede
AD
8171
8172 * src/conflicts.c (expected_conflicts): Set to -1.
8173 (conflict_report): Use ngettext.
8174 (conflicts_print): Check %expect and make its violation an error.
8175 * doc/bison.texinfo (Expect Decl): Adjust.
8176 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
8177 * tests/regression.at (%expect not enough, %expect right)
8178 (%expect too much): New.
8179
ba9dda1a
AD
81802001-11-12 Akim Demaille <akim@epita.fr>
8181
8182 * tests/regression.at (Conflicts): Rename as...
8183 (Unresolved SR Conflicts): this.
8184 (Solved SR Conflicts): New.
8185
337c5bd1
AD
81862001-11-12 Akim Demaille <akim@epita.fr>
8187
8188 * src/reduce.c (print_results): Rename as...
8189 (reduce_output): This.
8190 Output to OUT, passed as argument, instead of output_obstack.
8191 (dump_grammar): Likewise.
8192 (reduce_free): New.
8193 Also free V1.
8194 (reduce_grammar): No longer call reduce_output, since...
8195 * src/print.c (print_results): do it.
8196 * src/main.c (main): Call reduce_free;
8197
c73a41af
AD
81982001-11-12 Akim Demaille <akim@epita.fr>
8199
8200 * src/conflicts.c (print_reductions): Accept OUT as argument.
8201 Output to it, not to output_obstack.
8202 * src/print.c (print_actions): Adjust.
8203
0df87bb6
AD
82042001-11-12 Akim Demaille <akim@epita.fr>
8205
8206 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
8207 the result instead of using...
8208 (src_total, rrc_total, src_count, rrc_count): Remove.
8209 (any_conflicts): Remove.
8210 (print_conflicts): Split into...
8211 (conflicts_print, conflicts_output): New.
8212 * src/conflicts.h: Adjust.
8213 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
0f37a994 8214 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
8215 * tests/regression.at (Conflicts): New.
8216 Reported by Tom Lane.
8217
e4d3d4de
AD
82182001-11-12 Akim Demaille <akim@epita.fr>
8219
8220 * tests/regression.at (Invalid input): Remove, duplicate with
8221 ``Invalid input: 1''.
8222
6d7d248e
AD
82232001-11-12 Akim Demaille <akim@epita.fr>
8224
8225 * tests/torture.at (AT_DATA_STACK_TORTURE)
8226 (Exploding the Stack Size with Alloca)
8227 (Exploding the Stack Size with Malloc): New.
8228
e9e4c321
AD
82292001-11-12 Akim Demaille <akim@epita.fr>
8230
8231 * src/bison.simple (YYSTACK_REALLOC): New.
8232 (yyparse) [!yyoverflow]: Use it and free the old stack.
0f37a994 8233 Reported by Per Allansson.
e9e4c321 8234
5f7e0832
AD
82352001-11-12 Pascal Bart <pascal.bart@epita.fr>
8236
8237 * src/bison.simple: Define type yystype instead of YYSTYPE, and
8238 define CPP macro, which substitute YYSTYPE by yystype.
8239 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
8240 with yyltype/YYLTYPE. This allows inclusion of the generated
8241 header within the parser if the compiler, such as GGC, accepts
8242 multiple equivalent #defines.
8243 From Akim.
8244
e3f1699f
AD
82452001-11-05 Akim Demaille <akim@epita.fr>
8246
8247 * src/reader.c (symbols_output): New, extracted from...
8248 (packsymbols): here.
8249 (reader): Adjust.
8250
65be0866
AD
82512001-11-05 Akim Demaille <akim@epita.fr>
8252
8253 * src/lex.c (parse_percent_token): s/quotearg/quote/.
8254
e4d910bf
AD
82552001-11-05 Akim Demaille <akim@epita.fr>
8256
8257 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
8258 pattern.
8259
951366c1
AD
82602001-11-05 Akim Demaille <akim@epita.fr>
8261
8262 * src/options.h (struct option_table_struct): set_flags is void*.
8263 * src/options.c (longopts): Support `--output' and `%output'.
8264 (usage): Adjust.
8265 * src/lex.h (tok_setopt): Remove, replaced with...
8266 (tok_intopt, tok_stropt): these new guys.
8267 * src/lex.c (getopt.h): Not needed.
8268 (token_buffer, unlexed_token_buffer): Not const.
8269 (percent_table): Promote `-' over `_' in directive names.
8270 Active `%name-prefix', `file-prefix', and `output'.
8271 (parse_percent_token): Accept possible arguments to directives.
8272 Promote `-' over `_' in directive names.
8273
d8988b2f
AD
82742001-11-04 Akim Demaille <akim@epita.fr>
8275
8276 * doc/bison.texinfo (Decl Summary): Split the list into
8277 `directives for grammars' and `directives for bison'.
8278 Sort'em.
8279 Add description of `%name-prefix', `file-prefix', and `output'.
8280 Promote `-' over `_' in directive names.
8281 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
8282 Simplify the description of `--name-prefix'.
8283 Promote `-' over `_' in directive names.
8284 Promote `--output' over `--output-file'.
8285 Fix the description of `--defines'.
8286 * tests/output.at: Exercise %file-prefix and %output.
8287
6468d18e
AD
82882001-11-02 Akim Demaille <akim@epita.fr>
8289
8290 * doc/refcard.tex: Update.
8291
6b7e85b9
AD
82922001-11-02 Akim Demaille <akim@epita.fr>
8293
8294 * src/symtab.h (SUNDEF): New.
8295 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
8296 stand for `uninitialized', instead of 0.
8297 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
8298 * src/lex.c (lex): Adjust.
8299
8300 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
8301 Number it 0.
8302 Let yylex return it instead of a plain 0.
8303 Reported by Dick Streefland.
8304
cd5aafcf
AD
83052001-11-02 Akim Demaille <akim@epita.fr>
8306
8307 * tests/regression.at (Mixing %token styles): New test.
8308
037ca2f1
AD
83092001-11-02 Akim Demaille <akim@epita.fr>
8310
8311 * src/reader.c (parse_thong_decl): Formatting changes.
8312 (token_translations_init): New, extracted from...
8313 (packsymbols): Here.
8314 Adjust.
8315
270a173c
AD
83162001-11-01 Akim Demaille <akim@epita.fr>
8317
8318 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
8319 Check that `9foo.y' produces correct cpp guards.
8320 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
8321 guards.
8322 Reported by Wwp.
8323
561f9a30
AD
83242001-11-01 Akim Demaille <akim@epita.fr>
8325
8326 * tests/regression.at (Invalid input: 2): New.
8327 * src/lex.c (unlexed_token_buffer): New.
8328 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
8329 too.
8330 Reported by Wwp.
8331
f987e9d2
AD
83322001-11-01 Akim Demaille <akim@epita.fr>
8333
8334 * tests/calc.at: Catch up with 1.30.
8335 * configure.in: Bump to 1.49a.
8336 Adjust to newer Autotest.
8337
0846f581
PB
83382001-10-19 Pascal Bart <pascal.bart@epita.fr>
8339
8340 * src/conflicts.c: Move global variables rrc_total and src_total ...
8341 (print_conflicts): here.
8342 * src/output.c (output): Free global variable user_toknums.
8343 * src/lex.c (token_obstack): Become static.
8344
3c1a79b3
AD
83452001-10-18 Akim Demaille <akim@epita.fr>
8346
8347 * tests/atlocal.in (GCC): Add.
8348 * tests/calc.at: s/m4_match/m4_bmatch/.
8349 s/m4_patsubst/m4_bpatsubst/.
8350 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
8351 * configure.in: AC_SUBST(GCC).
8352
5d52e7d0
MA
83532001-10-14 Marc Autret <autret_m@epita.fr>
8354
8355 * src/options.c (create_long_option_table): Fix.
8356
631aa1d3
AD
83572001-10-10 Akim Demaille <akim@epita.fr>
8358
8359 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
8360
f6ec6d13
AD
83612001-10-04 Akim Demaille <akim@epita.fr>
8362
8363 * src/reader.c (parse_union_decl): Push the caracters in
8364 union_obstack, not attrs_obstack.
8365
342b8b6e
AD
83662001-10-04 Akim Demaille <akim@epita.fr>
8367
8368 Merge in the branch 1.29.
8369
8370 * src/reader.c (packsymbols): Use a temporary obstack for
8371 `%%tokendef', since output_stack is already used elsewhere.
8372
8373 2001-10-02 Akim Demaille <akim@epita.fr>
8374
8375 Bump 1.29d.
8376
8377 2001-10-02 Akim Demaille <akim@epita.fr>
8378
8379 Version 1.29c.
8380
8381 2001-10-02 Akim Demaille <akim@epita.fr>
8382
8383 * tests/regression.at (Invalid CPP headers): New.
8384 From Alexander Belopolsky.
8385 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
8386
8387 2001-10-02 Akim Demaille <akim@epita.fr>
8388
8389 * tests/regression.at (Invalid input): New.
8390 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
8391 Reported by Shura.
8392
8393 2001-10-02 Akim Demaille <akim@epita.fr>
8394
8395 * tests/calc.at: Now that --debug works, the tests must be adjusted.
8396
8397 2001-10-02 Akim Demaille <akim@epita.fr>
8398
8399 * src/output.c (output_parser): Assert `skeleton'.
8400 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
8401 systems.
8402 From Shura.
8403
8404 2001-10-01 Marc Autret <autret_m@epita.fr>
8405
8406 * src/lex.h: Echo modifications.
8407 * src/lex.c (unlex): Parameter is now token_t.
8408 From Hans Aberg.
8409
8410 2001-10-01 Marc Autret <autret_m@epita.fr>
8411
8412 * src/main.c: Include lex.h.
8413 From Hans Aberg.
8414
8415 2001-09-29 Akim Demaille <akim@epita.fr>
8416
8417 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
8418
8419 2001-09-28 Akim Demaille <akim@epita.fr>
8420
8421 * tests/testsuite.at: Update to newer Autotest.
8422 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
8423
8424 2001-09-27 Akim Demaille <akim@epita.fr>
8425
8426 Position independent wrapper.
8427
8428 * tests/bison: Remove.
8429 * tests/bison.in: New.
8430 * configure.in: Adjust.
8431
8432 2001-09-27 Paul Eggert <eggert@twinsun.com>
8433
8434 Port quotearg fixes from tar 1.13.24.
8435
8436 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
8437 tm to be declared.
8438 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
8439 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
8440
8441 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
8442 * m4/mbrtowc.m4: New file.
8443 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
8444 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
8445
8446 2001-09-27 Akim Demaille <akim@epita.fr>
8447
8448 Bump to 1.29c.
8449
8450 2001-09-27 Akim Demaille <akim@epita.fr>
8451
8452 Version 1.29b.
8453
8454 2001-09-25 Akim Demaille <akim@epita.fr>
8455
8456 * src/system.h: Include `xalloc.h'.
8457 Remove it from the C files.
8458 * src/files.c (output_files): Free the obstacks.
8459 * src/lex.c (init_lex): Rename as...
8460 (lex_init): this.
8461 (lex_free): New.
8462 * src/main.c (main): Use it.
8463
8464 2001-09-24 Marc Autret <autret_m@epita.fr>
8465
8466 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
8467 to output informations in fout (FILE*).
8468 (open_graph, close_graph): Likewise.
8469 (output_graph, output_edge, output_node): Likewise.
8470 * src/vcg.h: Update function prototypes.
8471 * src/print_graph.c (print_graph): Open output graph file.
8472 (print_actions): Adjust.
8473 * src/files.h: Remove extern declaration.
8474 * src/files.c: Remove graph_obstack declaration.
8475 (open_files): Remove graph_obstack initialization.
8476 (output_files): Remove graph_obstack saving.
8477
8478 2001-09-24 Marc Autret <autret_m@epita.fr>
8479
8480 * src/files.c (compute_output_file_names): Fix.
8481
8482 2001-09-24 Marc Autret <autret_m@epita.fr>,
8483 Akim Demaille <akim@epita.fr>
8484
8485 * src/reader.c (reader): Remove call to free_symtab ().
8486 * src/main.c (main): Call it here.
8487 Include symtab.h.
8488 * src/conflicts.c (initialize_conflicts): Rename as...
8489 (solve_conflicts): this.
8490 * src/print.c (print_core, print_actions, print_state)
8491 (print_grammar): Dump to a file instead a `output_obstack'.
8492 (print_results): Dump `output_obstack', and then proceed with the
8493 FILE *.
8494 * src/files.c (compute_output_file_names, close_files): New.
8495 (output_files): Adjust.
8496 * src/main.c (main): Adjust.
8497
8498 2001-09-23 Marc Autret <autret_m@epita.fr>
8499
8500 * src/files.c (compute_header_macro): Computes header macro name
8501 from spec_defines_file when given.
8502
8503 2001-09-23 Marc Autret <autret_m@epita.fr>
8504
8505 * src/files.c (output_files): Add default extensions.
8506
8507 2001-09-22 Akim Demaille <akim@epita.fr>
8508
8509 * src/conflicts.c (finalize_conflicts): Rename as...
8510 (free_conflicts): this.
8511
8512 2001-09-22 Akim Demaille <akim@epita.fr>
8513
8514 * src/gram.c (gram_free): Rename back as...
8515 (dummy): this.
8516 (output_token_translations): Free `token_translations'.
8517 * src/symtab.c (free_symtab): Free the tag field.
8518
8519 2001-09-22 Akim Demaille <akim@epita.fr>
8520
8521 Remove `translations' as it is always set to true.
8522
8523 * src/gram.h: Adjust.
8524 * src/reader.c (packsymbols, parse_token_decl): Adjust
8525 * src/print.c (print_grammar): Adjust.
8526 * src/output.c (output_token_translations): Adjust.
8527 * src/lex.c (lex): Adjust.
8528 * src/gram.c: Be sure the set pointers to NULL.
8529 (dummy): Rename as...
8530 (gram_free): this.
8531
8532 2001-09-22 Akim Demaille <akim@epita.fr>
8533
8534 * configure.in: Invoke AM_LIB_DMALLOC.
8535 * src/system.h: Use dmalloc.
8536 * src/LR0.c: Be sure to have pointers initialized to NULL.
8537 (allocate_itemsets): Allocate kernel_items only if needed.
8538
8539 2001-09-22 Akim Demaille <akim@epita.fr>
8540
8541 * configure.in: Bump to 1.29b.
8542 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
8543 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
8544 need xmalloc.c in calc.y.
8545 From Pascal Bart.
8546
8547 2001-09-21 Akim Demaille <akim@epita.fr>
8548
8549 Version 1.29a.
8550 * Makefile.maint, config/config.guess, config/config.sub,
8551 * config/missing: Update from masters.
8552 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
8553 upon package.m4.
8554 * configure.in (ALL_LINGUAS): Add `tr'.
8555
8556 2001-09-21 Akim Demaille <akim@epita.fr>
8557
8558 * tests/Makefile.am (package.m4): Move to...
8559 ($(srcdir)/$(TESTSUITE)): here.
8560
8561 2001-09-20 Akim Demaille <akim@epita.fr>
8562
8563 * src/complain.c: No longer try to be standalone: use system.h.
8564 Don't assume __STDC__ is defined to 1. Just test if it is defined.
8565 * src/complain.h: Likewise.
8566 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
8567 Remove the unused variable `n'.
8568 From Albert Chin-A-Young.
8569
8570 2001-09-18 Marc Autret <autret_m@epita.fr>
8571
8572 * doc/bison.1: Update.
8573 * doc/bison.texinfo (Bison Options): Update --defines and --graph
8574 descriptions.
8575 (Option Cross Key): Update.
8576 Add --graph.
8577
8578 2001-09-18 Marc Autret <autret_m@epita.fr>
8579
8580 * tests/regression.at: New test (comment in %union).
8581
8582 2001-09-18 Marc Autret <autret_m@epita.fr>
8583
8584 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
8585 do that.
8586 Reported by Keith Browne.
8587
8588 2001-09-18 Marc Autret <autret_m@epita.fr>
8589
8590 * tests/output.at: Add tests for --defines and --graph.
8591
8592 2001-09-18 Marc Autret <autret_m@epita.fr>
8593
8594 * tests/output.at: Removes tests of %{header,src}_extension features.
8595
8596 2001-09-18 Akim Demaille <akim@epita.fr>
8597
8598 * tests/Makefile.am (package.m4): New.
8599 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
8600 (_AT_CHECK_CALC_ERROR): Likewise.
8601 Factor the `, ' part of verbose error messages.
8602
8603 2001-09-18 Marc Autret <autret_m@epita.fr>
8604
8605 * src/getargs.c (longopts): Declare --defines and --graph as options
8606 with optional arguments.
8607 * src/files.h: Add extern declarations.
8608 * src/files.c (spec_graph_file, spec_defines_file): New.
8609 (output_files): Update.
8610 Remove CPP-outed code.
8611
8612 2001-09-18 Marc Autret <autret_m@epita.fr>
8613
8614 Turn off %{source,header}_extension feature.
8615
8616 * src/files.c (compute_exts_from_gf): Update.
8617 (compute_exts_from_src): Update.
8618 (output_files): CPP-out useless code.
8619 * src/files.h: Remove {header,source}_extension extern declarations.
8620 * src/reader.c (parse_dquoted_param): CPP-out.
8621 (parse_header_extension_decl): Remove.
8622 (parse_source_extension_decl): Remove.
8623 (read_declarations): Remove cases tok_{hdrext,srcext}.
8624 * src/lex.c (percent_table): Remove {header,source}_extension entries.
8625 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
8626
8627 2001-09-10 Akim Demaille <akim@epita.fr>
8628
8629 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
8630 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
8631 (AT_CHECK_OUTPUT): this.
8632 Merely check ls' exit status, its output is useless.
8633
8634 2001-09-10 Akim Demaille <akim@epita.fr>
8635
8636 * tests/calc.at: Use m4_match.
8637 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
8638
8639 2001-09-10 Marc Autret <autret_m@epita.fr>,
8640 Akim Demaille <akim@epita.fr>
8641
8642 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
8643 enum color_e.
8644 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
8645 to `normal'.
8646 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
8647 * src/lex.h: Adjust prototype.
8648 (token_t): Add `tok_undef'.
8649 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
8650 (parse_percent_token): Now returns token_t.
8651 Add default statement in switch.
8652 (lex): Separate `c' as an input variable, from the token_t result
8653 part.
8654 (unlexed): Is a token_t.
8655
8656 2001-09-10 Akim Demaille <akim@epita.fr>
8657
8658 * configure.in: Bump to 1.29a.
8659
8660 2001-09-07 Akim Demaille <akim@epita.fr>
8661
8662 Version 1.29.
8663
8664 2001-08-30 Akim Demaille <akim@epita.fr>
8665
8666 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
8667 * m4/atconfig.m4: Remove.
8668 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
8669 * tests/bison: New.
8670 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
8671 m4_if, m4_patsubst, and m4_regexp.
8672 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
8673 `input' file instead of echo.
8674
8675 2001-08-29 Akim Demaille <akim@epita.fr>
8676
8677 Bump to 1.28e.
8678
8679 2001-08-29 Akim Demaille <akim@epita.fr>
8680
8681 Version 1.28d.
8682
8683 2001-08-29 Paul Eggert <eggert@twinsun.com>
8684
8685 * src/bison.simple (yyparse): Don't take the address of an
8686 item before the start of an array, as that doesn't conform to
8687 the C Standard.
8688
8689 2001-08-29 Robert Anisko <anisko_r@epita.fr>
8690
8691 * doc/bison.texinfo (Location Tracking Calc): New node.
8692
8693 2001-08-29 Paul Eggert <eggert@twinsun.com>
8694
8695 * src/output.c (output): Do not define const, as this now
8696 causes more problems than it cures.
8697
8698 2001-08-29 Akim Demaille <akim@epita.fr>
8699
8700 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
8701 the nodes.
8702 Be sure to tag the `detailmenu'.
8703
8704 2001-08-29 Akim Demaille <akim@epita.fr>
8705
8706 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
8707 download in a tmp dir.
8708
8709 2001-08-28 Marc Autret <autret_m@epita.fr>
8710
8711 * config/depcomp: New file.
8712
8713 2001-08-28 Marc Autret <autret_m@epita.fr>
8714
8715 * doc/bison.1 (mandoc): Adjust.
8716 From Juan Manuel Guerrero.
8717
8718 2001-08-28 Marc Autret <autret_m@epita.fr>
8719
8720 * src/print_graph.c (print_state): Fix.
8721
8722 2001-08-27 Marc Autret <autret_m@epita.fr>
8723
8724 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
8725 char * members.
8726 Echo modifications to the functions prototypes.
8727 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
8728
8729 2001-08-27 Marc Autret <autret_m@epita.fr>
8730
8731 * src/vcg.c: Include `xalloc.h'.
8732 (add_colorentry): New.
8733 (add_classname): New.
8734 (add_infoname): New.
8735 * src/vcg.h: Add new prototypes.
8736
8737 2001-08-27 Akim Demaille <akim@epita.fr>
8738
8739 * Makefile.maint: Sync. again with CVS Autoconf.
8740
8741 2001-08-27 Akim Demaille <akim@epita.fr>
8742
8743 * Makefile.maint: Formatting changes.
8744 (po-update, cvs-update, update): New targets.
8745 (AMTAR): Remove.
8746
8747 2001-08-27 Akim Demaille <akim@epita.fr>
8748
8749 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
8750 * Makefile.maint: Sync. with CVS Autoconf.
8751
8752 2001-08-27 Marc Autret <autret_m@epita.fr>
8753
8754 * src/vcg.h (struct infoname_s): New.
8755 (struct colorentry_s): New.
8756 (graph_s): New fields {vertical,horizontal}_order in structure.
8757 Add `infoname' field.
8758 Add `colorentry' field;
8759 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
8760 (G_HORIZONTAL_ORDER): New.
8761 (G_INFONAME): New.
8762 (G_COLORENTRY): New.
8763 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
8764 Add output of `infoname'.
8765 Add output of `colorentry'.
8766
8767 2001-08-27 Marc Autret <autret_m@epita.fr>
8768
8769 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
8770 This one shadowed a global parameter.
8771
8772 2001-08-24 Marc Autret <autret_m@epita.fr>
8773
8774 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
8775 instead of `unsigned'.
8776 (print_state): Do not call obstack_object_size () in obstack_grow ()
8777 to avoid macro variables shadowing.
8778
8779 2001-08-23 Marc Autret <autret_m@epita.fr>
8780
8781 * src/lex.c (percent_table): Typo: s/naem/name/.
8782 Add graph option.
8783 Normalize new options declarations.
8784
8785 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
8786
8787 * tests/suite.at: Exercise %header_extension and %source_extension.
8788
8789 2001-08-16 Marc Autret <autret_m@epita.fr>
8790
8791 * src/reader.c (parse_dquoted_param): New.
8792 (parse_header_extension_decl): Use it.
8793 (parse_source_extension_decl): Likewise.
8794
8795 2001-08-16 Marc Autret <autret_m@epita.fr>
8796
8797 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
8798 (get_xxxx_str): Use assert () instead of complain ().
8799 Remove return invokations in default cases.
8800 (get_decision_str): Modify default behaviour. Remove second argument.
8801 Echo modifications on calls.
8802 (output_graph): Fix.
8803
8804 2001-08-16 Marc Autret <autret_m@epita.fr>
8805
8806 * src/getargs.c (usage): Update with ``-g, --graph''.
8807
8808 2001-08-16 Marc Autret <autret_m@epita.fr>
8809
8810 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
8811 (Option Cross Key): Likewise.
8812 * doc/bison.1: Update.
8813
1c8c2190
PB
88142001-09-25 Pascal Bart <pascal.bart@epita.fr>
8815
8816 * src/output.c (output_master_parser): Don't finish action_obstack.
8817 (output_parser): Don't care about the muscle action, here.
8818 (prepare): Copy the action_obstack in the action muscle.
8819 (output): Free action_obstack.
8820
180d45ba
PB
88212001-09-23 Pascal Bart <pascal.bart@epita.fr>
8822
8823 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
8824 will contain `%union' declaration.
8825 (parse_union_decl): Delete #line directive output.
8826 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
8827 informations about %union.
8828 (parse_union_decl): Copy the union_obstack in the muscle stype.
8829 * src/bison.simple: Add new #line directive.
8830 Add typdef %%stype YYSTYPE.
8831
c51d1a19
PB
88322001-09-23 Pascal Bart <pascal.bart@epita.fr>
8833
8834 * src/bison.simple: Add new `#line' directive.
8835
6f9344da
PB
88362001-09-22 Pascal Bart <pascal.bart@epita.fr>
8837
8838 * src/bison.simple: New `#line' directive.
8839 * src/output.c (output_parser): Support new dynamic muscle input_line.
8840
652def80
MA
88412001-09-22 Marc Autret <autret_m@epita.fr>
8842
8843 * src/output.c (output_master_parser): New.
8844 (output_parser): Be more re-entrant.
8845
25b222fa
MA
88462001-09-21 Marc Autret <autret_m@epita.fr>
8847
8848 * src/reader.c (copy_definition, parse_union_decl): Update and use
8849 `linef' muscle.
8850 (copy_action): Likewise.
8851 Use obstack_1grow ().
8852 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
8853
6bc35ae5
MA
88542001-09-21 Marc Autret <autret_m@epita.fr>
8855
8856 * src/options.c (option_table): Adjust.
8857 * src/lex.c (parse_percent_token): Fix.
8858
c0629aa1
PB
88592001-09-20 Pascal Bart <pascal.bart@epita.fr>
8860
8861 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 8862
82b6d266
PB
88632001-09-20 Pascal Bart <pascal.bart@epita.fr>
8864
8865 * src/lex.c (parse_percent_token): Change type of variable `tx', which
8866 is now an option_table_struct*.
8867 (option_strcmp): New function option_strcmp.
8868 (parse_percent_token): Call option_strcmp.
8869 * src/getargs.c (xalloc.h, options.h): Include it.
8870 (getargs): Call create_long_option_table.
8871 (getargs): Free longopts at the end of the function.
8872 (shortopts): Move in options.c.
8873 * src/options.c (create_long_option_table): New function. Convert
8874 information from option_table to option structure.
8875 * src/reader.c (options.h): Include it.
8876
8877 * src/Makefile.am: Adjust.
8878 * src/options.c (option_table): Create from longopts and percent_table.
8879 * src/getargs.c (longopts): Delete.
8880 * src/lex.c (struct percent_table_struct): Delete.
8881 (percent_table): Delete.
8882 (options.h): Include it.
8883 * src/options.c: Create.
8884 * src/options.h: Create.
8885 Declare enum opt_access_e.
8886 Define struct option_table_struct.
8887
75f5aaea
MA
88882001-09-20 Marc Autret <autret_m@epita.fr>
8889
8890 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
8891 sections of Bison.
8892
f508cb0a
PB
88932001-09-19 Pascal Bart <pascal.bart@epita.fr>
8894
8895 * src/bison.simple: s/%%filename/%%skeleton.
8896 * src/muscle_tab.c (getargs.h): Include it.
8897 (muscle_init): Insert new muscle skeleton.
8898
13105fc1
PB
88992001-09-18 Pascal Bart <pascal.bart@epita.fr>
8900
8901 * src/output.c (output_parser): Delete unused variable actions_dumped.
8902
b0c4483e
PB
89032001-09-07 Pascal Bart <pascal.bart@epita.fr>
8904
8905 * src/output.c (output): Delete call to reader_output_yylsp.
8906 * src/reader.c (reader): Likewise.
8907 * src/reader.h: Delete declaration of reader_output_yylsp.
342b8b6e 8908
11d82f03
MA
89092001-09-02 Marc Autret <autret_m@epita.fr>
8910
8911 * src/reader.c: Include muscle_tab.h.
8912 (parse_union_decl): Update.
8913 (parse_macro_decl): Rename parse_muscle_decl.
8914 Update to use renamed functions and variable.
8915 (read_declarations, copy_action, read_additionnal_code, : Updated
8916 with correct variables and functions names.
8917 (packsymbols, reader): Likewise.
342b8b6e 8918
11d82f03 8919 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 8920
11d82f03
MA
8921 * src/output.c: Include muscle_tab.h
8922 In all functions using macro_insert, change by using muscle_insert ().
8923 (macro_obstack): Rename muscle_obstack.
8924 Echo modifications in the whole file.
8925 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
8926 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
8927 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
8928
8929 * src/muscle_tab.h: Update double inclusion macros.
8930 (macro_entry_s): Rename muscle_entry_s.
8931 Update prototypes.
342b8b6e 8932
11d82f03
MA
8933 * src/muscle_tab.c: Include muscle_tab.h.
8934 Rename macro_tabble to muscle_table.
8935 (mhash1, mhash2, mcmp): Use muscle_entry.
8936 (macro_init): Rename muscle_init. Update.
8937 (macro_insert): Rename muscle_insert. Update.
8938 (macro_find): Rename muscle_find. Update.
8939
8940 * src/main.c: Include muscle_tab.h.
8941 (main): Call muscle_init ().
8942 * src/Makefile.am (bison_SOURCES): Echo modifications.
8943
93a37297
MA
89442001-09-02 Marc Autret <autret_m@epita.fr>
8945
f753cd62 8946 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 8947
f753cd62
MA
8948 * src/muscle_tab.c, src/muscle_tab.h: Add files.
8949
89502001-09-02 Marc Autret <autret_m@epita.fr>
8951
8952 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 8953
682d48cd
PB
89542001-09-01 Pascal Bart <pascal.bart@epita.fr>
8955
342b8b6e 8956 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
8957 filename.
8958
087c8fda
MA
89592001-09-01 Marc Autret <autret_m@epita.fr>
8960
8961 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
8962 to an explicit value to activate the feature. We do it here.
8963
dda680cb
PB
89642001-08-31 Pascal Bart <pascal.bart@epita.fr>
8965
8966 * src/output.c (prepare): Delete the `filename' muscule insertion.
8967 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
8968 (parse_union_decl): Likewise.
8969 * src/macrotab.c (macro_init): Initialize filename by infile.
8970
9e644e64
MA
89712001-08-31 Marc Autret <autret_m@epita.fr>
8972
8973 * src/bison.simple (YYLSP_NEEDED): New definition.
8974 * src/output.c (prepare): Add macro insertion of `locations_flag'
8975
17da6427
PB
89762001-08-31 Pascal Bart <pascal.bart@epita.fr>
8977
8978 * src/output.c (prepare): Delete insertion of previous muscles,
8979 and insert the `prefix' muscles.
8980 * src/macrotab.c (macro_init): Likewise.
8981 (macro_init): Initialization prefix directive by `yy'.
342b8b6e 8982 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
8983 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
8984 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 8985 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
8986 name_prefix.
8987
e8cb70b9
PB
89882001-08-31 Pascal Bart <pascal.bart@epita.fr>
8989
8990 * src/main.c (main): Standardize.
8991 * src/output.c (output_table_data, output_parser): Likewise.
8992 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
8993
63c2d5de
MA
89942001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
8995
342b8b6e 8996 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
8997 %%epilogue.
8998 * src/output.c (output): Rename %%declarations to %%prologue.
8999 * src/bison.simple: Echo modifications.
342b8b6e 9000
d8cb5183
MA
90012001-08-31 Marc Autret <autret_m@epita.fr>
9002
9003 * src/reader.c (readgram): CleanUp.
9004 (output_token_defines): Likewise.
9005 (packsymbols): Likewise.
9006 (reader): Likewise.
9007 * src/output.c (output): CPP-out useless code.
9008
6c686258
PB
90092001-08-31 Pascal Bart <pascal.bart@epita.fr>
9010
342b8b6e 9011 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
9012 output_trailers and output_headers.
9013 * src/output.h: Remove obsolete functions prototypes of output_headers
9014 and output_trailers.
9015
8f451ef7
PB
90162001-08-30 Pascal Bart <pascal.bart@epita.fr>
9017
9018 * src/main.c: Include macrotab.h.
342b8b6e 9019 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
9020 Adjust functions prototypes.
9021 * src/macrotab.c (macro_insert): Constify key and value.
9022 (macro_find): Constify key.
9023 (macro_insert): Include 'xalloc.h'
9024 (macro_insert): Use XMALLOC.
9025 (macro_find): Constify return value.
9026 * src/output.c (output_table_data): Rename table to table_data.
9027 (output_parser): Constify macro_key, macro_value.
9028
997b6fd0 90292001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
9030
9031 * src/reader.c (parse_skel_decl): New.
342b8b6e 9032 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
9033 * src/lex.h (token_t): New token `tok_skel'.
9034 * src/lex.c (percent_table): Add skeleton option entry.
9035 Standardize.
9036
ff48177d
MA
90372001-08-29 Marc Autret <autret_m@epita.fr>
9038
9039 * src/bison.simple: Add %%user_code directive at the end.
9040 * src/reader.c (read_additionnal_code): New.
9041 (reader): Use it.
9042 * src/output.c (output_program): Remove.
9043 (output): Update.
9044
b33160bf
MA
90452001-08-28 Marc Autret <autret_m@epita.fr>
9046
9047 * src/output.c (output_actions): Clean up.
4e5caae2 9048 (output_gram): CPP-out useless code.
b33160bf
MA
9049 * src/reader.c (reader): Clean up, CPP-out useless code.
9050
d1a2daf7
PB
90512001-08-28 Pascal Bart <pascal.bart@epita.fr>
9052
342b8b6e 9053 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 9054 directive.
d1a2daf7
PB
9055 * src/bison.simple: Add `%%definitions'.
9056
2b763dfe
MA
90572001-08-28 Marc Autret <autret_m@epita.fr>
9058
9059 * config/depcomp: New file.
9060
f1a87ef6
PE
90612001-08-27 Paul Eggert <eggert@twinsun.com>
9062
9063 * src/bison.simple (yyparse): Don't take the address of an
9064 item before the start of an array, as that doesn't conform to
9065 the C Standard.
9066
82e236e2
RA
90672001-08-27 Robert Anisko <robert.anisko@epita.fr>
9068
f1a87ef6 9069 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
9070 obstack. It was done too late here.
9071
9072 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
9073 completely wrong.
9074 (reader): Initialize the macro obstack here, since we need it to grow
9075 '%define' directives.
9076
9077 * src/reader.h: Declare the macro obstack as extern.
9078
b0cfa28a
RA
90792001-08-27 Robert Anisko <robert.anisko@epita.fr>
9080
9081 * src/output.c (output_parser): Fix. Store single '%' characters in
9082 the output obstack instead of throwing them away.
9083
6fc74234
AD
90842001-08-27 Akim Demaille <akim@epita.fr>
9085
9086 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
9087
9c76d118
RA
90882001-08-25 Robert Anisko <robert.anisko@epita.fr>
9089
9090 * lib/Makefile.am: Adjust.
9091
a8289c62
RA
90922001-08-25 Robert Anisko <robert.anisko@epita.fr>
9093
9094 * src/bison.simple: Update and add '%%' directives.
9095
b6610515
RA
90962001-08-25 Robert Anisko <robert.anisko@epita.fr>
9097
9098 * src/reader.c (reader): Remove calls to 'output_headers' and
9099 'output_trailers'. Remove some C output.
9100 (readgram): Disable a piece of code that was writing a default
9101 definition for 'YYSTYPE'.
9102 (reader_output_yylsp): Remove.
9103 (packsymbols): Output token defintions to a macro.
9104 (copy_definition): Disable C output.
6fc74234 9105
b6610515
RA
9106 * src/reader.c (parse_macro_decl): New function used to parse macro
9107 declarations.
9108 (copy_string2): Put the body of copy_string into this new function.
9109 Add a parameter to let the caller choose whether he wants to copy the
9110 string delimiters or not.
9111 (copy_string): Be a simple call to copy_string2 with the last argument
9112 bound to true.
9113 (read_declarations): Add case for macro definition.
9114 (copy_identifier): New.
6fc74234 9115 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
9116 rather than lex.
9117
26f609ff
RA
91182001-08-25 Robert Anisko <robert.anisko@epita.fr>
9119
9120 * src/output.c (prepare): Add prefixed names.
9121 (output_parser): Output semantic actions.
9122 (output_parser): Fix bug on '%%line' directives.
6fc74234 9123
26f609ff
RA
9124 * src/output.c (output_headers): Remove. The C code printed by this
9125 function should now be in the skeletons.
9126 (output_trailers): Remove.
9127 (output): Disable call to 'reader_output_yylsp'.
9128 (output_rule_data): Do not output tables to the table obstack.
9129
9130 * src/output.c: Remove some C dedicated output.
9131 Improve the use of macro and output obstacks.
9132 (output_defines): Remove.
6fc74234 9133
26f609ff
RA
9134 * src/output.c (output_token_translations): Associate 'translate'
9135 table with a macro. No output to the table obstack.
9136 (output_gram): Same for 'rhs' and 'prhs'.
9137 (output_stos): Same for 'stos'.
9138 (output_rule_data): Same for 'r1' and 'r2'.
9139 (token_actions): Same for 'defact'.
9140 (goto_actions): Same for 'defgoto'.
9141 (output_base): Same for 'pact' and 'pgoto'.
9142 (output_table): Same for 'table'.
9143 (output_check): Same for 'check'.
6fc74234 9144
26f609ff
RA
9145 * src/output.c (output_table_data): New function.
9146 (output_short_table): Remove.
9147 (output_short_or_char_table): Remove.
6fc74234 9148
26f609ff
RA
9149 * src/output.c (output_parser): Replace most of the skeleton copy code
9150 with something new. Skeletons are now processed character by character
9151 rather than line by line, and Bison looks for '%%' macros. This is the
9152 first step in making Bison's output process (a lot) more flexible.
9153 (output_parser): Use the macro table.
9154
6f43b113
RA
91552001-08-25 Robert Anisko <robert.anisko@epita.fr>
9156
9157 * src/main.c (main): Initialize the macro table.
9158
dd3127cf
RA
91592001-08-25 Robert Anisko <robert.anisko@epita.fr>
9160
9161 * src/lex.c (percent_table): Add tok_define.
9162 * src/lex.h: Add tok_define.
9163
aa321494
RA
91642001-08-25 Robert Anisko <robert.anisko@epita.fr>
9165
9166 * src/macrotab.c: New file.
9167 * src/macrotab.h: New file.
9168 * src/Makefile.am: Update.
9169
68bd3b6b
RA
91702001-08-25 Robert Anisko <robert.anisko@epita.fr>
9171
9172 * lib/hash.c: New file.
9173 * lib/hash.h: New file.
9174 * lib/Makefile.am: Update.
9175
45f8dd1e
AD
91762001-08-15 Akim Demaille <akim@epita.fr>
9177
9178 Version 1.28c.
9179
40a64a7a 91802001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
9181
9182 * src/reader.c (readgram): Indent output macro YYSTYPE.
9183 (packsymbols): Likewise.
9184 (output_token_defines): Likewise.
9185 * src/files.c: Standardize.
9186 (compute_header_macro): New.
9187 (defines_obstack_save): New. Use compute_header_macro.
9188 (output_files): Update. Use defines_obstack_save.
9189
f9a8293a
AD
91902001-08-15 Akim Demaille <akim@epita.fr>
9191
9192 * doc/bison.texinfo (Table of Symbols): Document
9193 YYSTACK_USE_ALLOCA.
9194
150ca7a7
AD
91952001-08-15 Akim Demaille <akim@epita.fr>
9196
9197 * missing: Update from CVS Automake.
9198 * config/config.guess, config/config.sub, config/texinfo.tex:
9199 Update from gnu.org.
9200
69b5cec4
AD
92012001-08-15 Akim Demaille <akim@epita.fr>
9202
9203 * Makefile.maint: Sync with CVS Autoconf.
9204
f2b5126e
PB
92052001-08-14 Pascal Bart <pascal.bart@epita.fr>
9206
69b5cec4 9207 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
9208 `fdl.texi'.
9209 * doc/fdl.texi: Add to package.
9210
4ecbf796
MA
92112001-08-14 Marc Autret <autret_m@epita.fr>
9212
9213 Turn on %{source,header}_extension features.
9214
69b5cec4 9215 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
9216 source_extension.
9217 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 9218 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
9219 between options.
9220
95fb5662
MA
92212001-08-14 Marc Autret <autret_m@epita.fr>
9222
9223 * src/files.c (compute_base_names): Add extensions computing when
9224 `--file-prefix' used.
9225 Standardize function calls.
9226
78d09da9
MA
92272001-08-13 Marc Autret <autret_m@epita.fr>
9228
69b5cec4 9229 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
9230 defining it (defined but null disables alloca).
9231
5a009f2c
MA
92322001-08-13 Marc Autret <autret_m@epita.fr>
9233
9234 * src/bison.simple (_yy_memcpy): CPP reformat.
9235
1e41465a
PB
92362001-08-13 Pascal Bart <pascal.bart@epita.fr>
9237
9238 * tests/atconfig.in (CPPFLAGS): Fix.
9239
c67a198d
PB
92402001-08-10 Pascal Bart <pascal.bart@epita.fr>
9241
79282c6c 9242 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
9243 `gpl.texi'.
9244 * doc/gpl.texi: Add to package.
9245
09a6de7e
MA
92462001-08-10 Marc Autret <autret_m@epita.fr>
9247
9248 * src/print_graph.h: Fix.
9249 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
9250
b77b9ee0
AD
92512001-08-10 Akim Demaille <akim@epita.fr>
9252
9253 * src/system.h: Provide default declarations for stpcpy, strndup,
9254 and strnlen.
9255
3e259915
MA
92562001-08-10 Robert Anisko <anisko_r@epita.fr>
9257
9258 * doc/bison.texinfo (Locations): Update @$ stuff.
9259
ca96bc2d
MA
92602001-08-09 Robert Anisko <anisko_r@epita.fr>
9261
9262 * src/bison.simple (YYLLOC_DEFAULT): Update.
9263 (yyparse): Adjust.
9264
fdc6758b
MA
92652001-08-08 Marc Autret <autret_m@epita.fr>
9266
b77b9ee0 9267 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
9268 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
9269 Reported by Fabrice Bauzac.
957d4dbf 9270
600cad3b
MA
92712001-08-08 Marc Autret <autret_m@epita.fr>
9272
9273 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
9274 * src/vcg.c (output_node): Fix.
9275 * src/vcg.h: Cleanup.
9276 * src/print_graph.c: Add comments.
b77b9ee0 9277 (node_output_size): New global variable. Simplify the formatting of
600cad3b 9278 the VCG graph output.
b77b9ee0 9279 (print_actions): Unused code is now used. It notifies the final state
600cad3b 9280 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 9281 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
9282 blue.
9283 Get the current node name and node_obstack by argument.
9284 (node_obstack): New variable.
9285 (print_state): Manage node_obstack.
9286 (print_core): Use node_obstack given by argument.
9287 A node is not only computed here but in print_actions also.
9288 (print_graph): CPP out useless code instead of commenting it.
9289
976e528f
AD
92902001-08-07 Pascal Bart <pascal.bart@epita.fr>
9291
9292 * tests/atconfig.in (CPPFLAGS): Fix.
9293
20e8e5ca
AD
92942001-08-07 Akim Demaille <akim@epita.fr>
9295
9296 * src/print_graph.c (quote): New.
9297 (print_core): Use it.
9298
957d4dbf 92992001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 9300
3e3da797
AD
9301 * src/vcg.c (complain.h): Include it.
9302 Unepitaize `return' invocations.
c4b66126 9303 [NDEBUG] (main): Remove.
79282c6c 9304 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
9305 * src/files.c (open_files): Initialize graph_obstack.
9306 * src/print_graph.c (print_actions): CPP out useless code.
9307 (print_core): Don't output the last `\n' in labels.
9308 Use `quote'.
9309 * src/files.c (output_files): Output the VCG file.
9310 * src/main.c (main): Invoke print_graph ();
3e3da797 9311
957d4dbf 93122001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
9313
9314 Automaton VCG graph output.
9315 Using option ``-g'' or long option ``--graph'', you can generate
9316 a gram_filename.vcg file containing a VCG description of the LALR (1)
9317 automaton of your grammar.
9318
9319 * src/main.c: Call to print_graph() function.
9320 * src/getargs.h: Update.
9321 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
9322 (graph_flag): New flag.
9323 (longopts): Update.
9324 (getargs): Add case `g'.
9325 * src/files.c (graph_obstack): New obstack struct.
9326 (open_files): Initialize new obstack.
9327 (output_files): Saves graph_obstack if required.
9328 * src/files.h (graph_obstack): New extern declaration.
9329 * src/Makefile.am: Add new source files.
9330
927c1557 93312001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
9332
9333 * src/print_graph.c, src/print_graph.h (graph): New.
9334 * src/vcg.h: New file.
9335 * src/vcg.c: New file, VCG graph handling.
9336
7333d403
AD
93372001-08-06 Marc Autret <autret_m@epita.fr>
9338
9339 Add of %source_extension and %header_extension which specify
9340 the source or/and the header output file extension.
9341
9342 * src/files.c (compute_base_names): Remove initialisation of
9343 src_extension and header_extension.
9344 (compute_exts_from_gf): Update.
9345 (compute_exts_from_src): Update.
9346 (output_files): Update.
9347 * src/reader.c (parse_header_extension_decl): New.
9348 (parse_source_extension_decl): New.
9349 (read_declarations): New case statements for the new tokens.
9350 * src/lex.c (percent_table): Add entries for %source_extension
9351 and %header_extension.
9352 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
9353
84163231
AD
93542001-08-06 Marc Autret <autret_m@epita.fr>
9355
9356 * configure.in: Bump to 1.28c.
9357 * doc/bison.texinfo: Texinfo thingies.
9358
8303fc42
AD
93592001-08-04 Pascal Bart <pascal.bart@epita.fr>
9360
9361 * tests/atconfig.in (CPPFLAGS): Add.
9362 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
9363
70a84437
AD
93642001-08-03 Akim Demaille <akim@epita.fr>
9365
9366 Version 1.28b.
9367
2ce10144
AD
93682001-08-03 Akim Demaille <akim@epita.fr>
9369
9370 * tests/Makefile.am (check-local): Ship testsuite.
9371 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
9372 Include `string.h'.
9373
1e3e4bc1
AD
93742001-08-03 Akim Demaille <akim@epita.fr>
9375
9376 * configure.in: Try using -Wformat when compiling.
9377
42b45b7f
AD
93782001-08-03 Akim Demaille <akim@epita.fr>
9379
9380 * configure.in: Bump to 1.28b.
9381
8f13fe33
AD
93822001-08-03 Akim Demaille <akim@epita.fr>
9383
9384 * src/complain.c: Adjust strerror_r portability issues.
9385
b37ba92c
AD
93862001-08-03 Akim Demaille <akim@epita.fr>
9387
9388 Version 1.28a.
9389
b0ce6046
AD
93902001-08-03 Akim Demaille <akim@epita.fr>
9391
9392 * src/getargs.c, src/getarg.h (skeleton)): Constify.
9393 * src/lex.c (literalchar): Avoid name clashes on `buf'.
9394 * src/getargs.c: Include complain.h.
9395 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
9396 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
9397
d01c415b
AD
93982001-08-03 Akim Demaille <akim@epita.fr>
9399
9400 * src/reader.c (readgram): Display hidden chars in error messages.
9401
459dd1a6
AD
94022001-08-03 Akim Demaille <akim@epita.fr>
9403
9404 Update to gettext 0.10.39.
9405
53b74c0c
AD
94062001-08-03 Akim Demaille <akim@epita.fr>
9407
9408 * lib/strspn.c: New.
9409
234a3be3
AD
94102001-08-01 Marc Autret <autret_m@epita.fr>
9411
9412 * doc/bison.texinfo: Update.
9413 * doc/bison.1 (mandoc): Update.
9414 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
9415 * src/files.c: Support output files extensions computing.
9416 (src_extension): New static variable.
9417 (header_extension): New static variable.
9418 (tr): New function.
9419 (get_extension_index): New function, gets the index of an extension
9420 filename in a string.
9421 (compute_exts_from_gf): New function, computes extensions from the
9422 grammar file extension.
9423 (compute_exts_from_src): New functions, computes extensions from the
9424 C source file extension, file given by ``-o'' option.
9425 (compute_base_names): Update.
9426 (output_files): Update.
9427
847bf1f5
AD
94282001-08-01 Robert Anisko <anisko_r@epita.fr>
9429
d995fee7 9430 * doc/bison.texi: Document @$.
847bf1f5
AD
9431 (Locations): New section.
9432
d074a105
AD
94332001-07-18 Akim Demaille <akim@epita.fr>
9434
9435 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
9436 * config/prev-version.txt, config/move-if-change: New.
9437 * Makefile.am: Adjust.
9438
3419715d
AD
94392001-07-08 Pascal Bart <pascal.bart@epita.fr>
9440
9441 * src/bison.simple (yyparse): Suppress warning `comparaison
9442 between signed and unsigned'.
9443
62ab6972
AD
94442001-07-05 Pascal Bart <pascal.bart@epita.fr>
9445
9446 * src/getargs.h (raw_flag): Remove.
9447 * src/getargs.c: Die on `-r'/`--raw'.
9448 * src/lex.c (parse_percent_token): Die on `%raw'.
9449 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
9450 * tests/calc.at: Suppress test with option `--raw'.
9451
1e24cc5b
AD
94522001-07-14 Akim Demaille <akim@epita.fr>
9453
9454 * config/: New.
9455 * configure.in: Require Autoconf 2.50.
9456 Update to gettext 0.10.38.
9457
32dfccf8
AD
94582001-03-16 Akim Demaille <akim@epita.fr>
9459
9460 * doc/bison.texinfo: ANSIfy the examples.
9461
cd5bd6ac
AD
94622001-03-16 Akim Demaille <akim@epita.fr>
9463
9464 * getargs.c (skeleton): New variable.
9465 (longopts): --skeleton is a new option.
9466 (shortopts, getargs): -S is a new option.
9467 * getargs.h: Declare skeleton.
9468 * output.c (output_parser): Use it.
9469
5141b016
AD
94702001-03-16 Akim Demaille <akim@epita.fr>
9471
9472 * m4/strerror_r.m4: New.
9473 * m4/error.m4: Run AC_FUNC_STRERROR_R.
9474 * lib/error.h, lib/error.c: Update.
9475
447992b9
AD
94762001-03-16 Akim Demaille <akim@epita.fr>
9477
9478 * src/getargs.c (longopts): Clean up.
9479
274d42ce
AD
94802001-02-21 Akim Demaille <akim@epita.fr>
9481
9482 * src/reader.c (gensym): `gensym_count' is your own.
9483 Use a static buf to create the symbol name, as token_buffer is no
9484 longer a buffer.
9485
22c821f3
AD
94862001-02-08 Akim Demaille <akim@epita.fr>
9487
9488 * src/conflicts.c (conflict_report): Be sure not to append to res
9489 between two calls, which could happen if both first sprintf were
9490 skipped, but not the first cp += strlen.
9491
18569462
AD
94922001-02-08 Akim Demaille <akim@epita.fr>
9493
9494 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
9495 New, from fileutils 4.0.37.
9496 * configure.in: Require Autoconf 2.49c. I took some time before
9497 making this decision. This is the only way out for portability
9498 issues in Bison, it would mean way too much duplicate effort to
9499 import in Bison features implemented in 2.49c since 2.13.
9500 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
9501
0d8f3c8a
AD
95022001-02-02 Akim Demaille <akim@epita.fr>
9503
9504 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 9505 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 9506
f17bcd1f
AD
95072001-01-19 Akim Demaille <akim@epita.fr>
9508
9509 Get rid of the ad hoc handling of token_buffer in the scanner: use
9510 the obstacks.
9511
9512 * src/lex.c (token_obstack): New.
9513 (init_lex): Initialize it. No longer call...
9514 (grow_token_buffer): this. Remove it.
9515 Adjust all the places which used it to use the obstack.
9516
511e79b3
AD
95172001-01-19 Akim Demaille <akim@epita.fr>
9518
9519 * src/lex.h: Rename all the tokens:
9520 s/\bENDFILE\b/tok_eof/g;
9521 s/\bIDENTIFIER\b/tok_identifier/g;
9522 etc.
9523 Let them be enums, not #define, to ease debugging.
9524 Adjust all the code.
9525
0d6508ef
AD
95262001-01-18 Akim Demaille <akim@epita.fr>
9527
9528 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
9529 * src/lex.c (maxtoken, grow_token_buffer): Static.
9530
6deb4447
AD
95312001-01-18 Akim Demaille <akim@epita.fr>
9532
9533 Since we now use obstacks, more % directives can be enabled.
9534
9535 * src/lex.c (percent_table): Also accept `%yacc',
9536 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
9537 `%debug'.
9538 Handle the actions for `%semantic_parser' and `%pure_parser' here,
9539 instead of returning a token.
9540 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
9541 * src/reader.c (read_declarations): Adjust.
9542 * src/files.c (open_files): Don't call `compute_base_names', don't
9543 compute `attrsfile' since they depend upon data which might be
9544 *in* the input file now.
9545 (output_files): Do it here.
9546 * src/output.c (output_headers): Document the fact that this patch
9547 introduces a guaranteed SEGV for semantic parsers.
9548 * doc/bison.texinfo: Document them.
9549 * tests/suite.at: Exercise these %options.
9550
ff4423cc
AD
95512000-12-20 Akim Demaille <akim@epita.fr>
9552
9553 Also handle the output file (--verbose) with obstacks.
9554
9555 * files.c (foutput): Remove.
9556 (output_obstack): New.
9557 Adjust all dependencies.
9558 * src/conflicts.c: Return a string.
9559 * src/system.h (obstack_grow_string): Rename as...
9560 (obstack_sgrow): this. Be ready to work with non literals.
9561 (obstack_fgrow4): New.
9562
956dba3a
AD
95632000-12-20 Akim Demaille <akim@epita.fr>
9564
9565 * src/files.c (open_files): Fix the computation of short_base_name
9566 in the case of `-o foo.tab.c'.
9567
337bab46
AD
95682000-12-20 Akim Demaille <akim@epita.fr>
9569
9570 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
9571 (copy_dollar): Now that everything uses obstacks, get rid of the
9572 FILE * parameters.
9573
5d3214b8
AD
95742000-12-20 Akim Demaille <akim@epita.fr>
9575
9576 * src/files.c (open_files): Actually the `.output' file is based
9577 on the short_base_name, not base_name.
9578 * tests/suite.at (Checking output file names): Adjust.
9579
29092a57
AD
95802000-12-20 Akim Demaille <akim@epita.fr>
9581
9582 * src/bison.s1: Remove, we now use directly...
9583 * src/bison.simple: this.
9584 * src/Makefile.am: Use pkgdata instead of data.
9585
ea5607fd
AD
95862000-12-20 Akim Demaille <akim@epita.fr>
9587
9588 * src/files.c (guard_obstack): New.
9589 (open_files): Initialize it.
9590 (output_files): Dump it...
9591 * src/files.h: Export it.
9592 * src/reader.c (copy_guard): Use it.
9593
27110317
AD
95942000-12-19 Akim Demaille <akim@epita.fr>
9595
9596 * src/files.c (outfile, defsfile, actfile): Removed as global
9597 vars.
9598 (open_files): Don't compute them.
9599 (output_files): Adjust.
9600 (base_name, short_base_name): Be global.
9601 Adjust dependencies.
9602
19c50364
AD
96032000-12-19 Akim Demaille <akim@epita.fr>
9604
9605 * src/files.c (strsuffix): New.
9606 (stringappend): Be just like strcat but allocate.
9607 (base_names): Eve out from open_files.
9608 Try to simplify the rather hairy computation of base_name and
9609 short_base_name.
9610 (open_files): Use it.
9611 * tests/suite.at (Checking output file names): New test.
9612
573c1d9f
AD
96132000-12-19 Akim Demaille <akim@epita.fr>
9614
9615 * src/system.h (obstack_grow_literal_string): Rename as...
9616 (obstack_grow_string): this.
9617 * src/output.c (output_parser): Recognize `%% actions' instead of
9618 `$'.
9619 * src/bison.s1: s/$/%% actions/.
9620 * src/bison.hairy: Likewise.
9621
ef7ddedd
AD
96222000-12-19 Akim Demaille <akim@epita.fr>
9623
9624 * src/output.c (output_parser): Compute the `#line' lines when
9625 there are.
9626 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
9627 Suggested by Hans Aberg.
9628
ff61dabd
AD
96292000-12-19 Akim Demaille <akim@epita.fr>
9630
9631 Let the handling of the skeleton files be local to the procedures
9632 that use it.
9633
9634 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
9635 longer static.
9636 (fparser, open_extra_files): Remove.
9637 (open_files, output_files): Don't take care of fparser.
9638 * src/files.h: Adjust.
9639 * src/output.c (output_parser): Open and close the file to the
9640 skeleton.
9641 * src/reader.c (read_declarations): When %semantic_parser, open
9642 fguard.
9643
55b96341
AD
96442000-12-19 Akim Demaille <akim@epita.fr>
9645
9646 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
9647 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
9648
358c15b7
AD
96492000-12-19 Akim Demaille <akim@epita.fr>
9650
9651 * src/files.c (open_files): Yipee! We no longer need all the code
9652 looking for `/tmp' since we have no tmp file.
9653
7de3329e
AD
96542000-12-19 Akim Demaille <akim@epita.fr>
9655
9656 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
9657 New macros.
9658 * src/files.c (open_files): Less dependency on MSDOS etc.
9659
3abcd459
AD
96602000-12-14 Akim Demaille <akim@epita.fr>
9661
9662 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
9663 Provide a default definition.
9664 Use it when executing the default @ action.
9665 * src/reader.c (reader_output_yylsp): No longer include
9666 `timestamp' and `text' in the default YYLTYPE.
9667
2a91a95e
AD
96682000-12-12 Akim Demaille <akim@epita.fr>
9669
9670 * src/reader.c (copy_definition, parse_union_decl, copy_action)
9671 (copy_guard): Quote the file names.
9672 Reported by Laurent Mascherpa.
9673
14d3eb9b
AD
96742000-12-12 Akim Demaille <akim@epita.fr>
9675
9676 * src/output.c (output_headers, output_program, output): Be sure
9677 to escape special characters when outputting filenames.
9678 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
9679 (output_headers): Don't depend on them, Use ACTSTR.
9680
d7045ec6
AD
96812000-11-17 Akim Demaille <akim@epita.fr>
9682
9683 * lib/obstack.h: Formatting changes.
9684 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
9685 prevents type checking.
9686 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
9687 cast the value to (void *): assigning a `foo *' to a `void *'
9688 variable is valid.
9689 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
9690 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
9691 append characters.
9692
6fd54b73
AD
96932000-11-17 Akim Demaille <akim@epita.fr>
9694
9695 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
9696 as...
9697 (suite.m4, regression.m4, calc.m4): these.
9698 * tests/atgeneral.m4: Update from CVS Autoconf.
9699
4c50eae6
AD
97002000-11-17 Akim Demaille <akim@epita.fr>
9701
9702 * tests/regression.m4 (%union and --defines): New test,
9703 demonstrating a current bug in the obstack implementation.
9704
a35f64ea
AD
97052000-11-17 Akim Demaille <akim@epita.fr>
9706
9707 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
9708 macros.
9709 Use them to declare the variables which are global or local to
9710 `yyparse'.
9711
7de23534
AD
97122000-11-17 Akim Demaille <akim@epita.fr>
9713
9714 * acconfig.h: Remove, no longer used.
9715
aa7815f5
AD
97162000-11-07 Akim Demaille <akim@epita.fr>
9717
9718 * src: s/Copyright (C)/Copyright/g.
9719
5af1f549
AD
97202000-11-07 Akim Demaille <akim@epita.fr>
9721
9722 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
9723 defining.
9724 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
9725
553e2b22
AD
97262000-11-07 Akim Demaille <akim@epita.fr>
9727
9728 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
9729 Merge in a single CPP if/else.
9730
8a4f41d6
AD
97312000-11-07 Akim Demaille <akim@epita.fr>
9732
9733 * src/output.c (output): Remove useless variables.
9734 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
9735 argument `data' for consistency with the prototypes.
9736 Qualify it `const'.
9737 (obstack_copy, obstack_copy0): Rename the second argument as
9738 `address' for consistency. Qualify it `const'.
9739 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
9740 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
9741 `const' their input argument (`data' or `address').
9742 Adjust the corresponding macros to include `const' in casts.
9743
095a3fb5
AD
97442000-11-03 Akim Demaille <akim@epita.fr>
9745
9746 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
9747 s/PFILE1/BISON_HAIRY/.
9748 Adjust dependencies.
9749
d1cdce7c
AD
97502000-11-03 Akim Demaille <akim@epita.fr>
9751
090c5ebf 9752 For some reason, this was not applied.
d1cdce7c
AD
9753
9754 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9755 `unlink': it's no longer used.
9756
9311529b
AD
97572000-11-03 Akim Demaille <akim@epita.fr>
9758
9759 * src/files.c (skeleton_find): New function, eved out of...
9760 (open_files, open_extra_files): here.
9761
d8880f69
AD
97622000-11-03 Akim Demaille <akim@epita.fr>
9763
9764 Don't use `atexit'.
9765
9766 * src/files.c (obstack_save): New function.
9767 (done): Rename as...
9768 (output_files): this.
9769 Use `obstack_save'.
9770 * src/main.c (main): Don't use `atexit' to register `done', since
9771 it no longer has to remove tmp files, just call `output_files'
9772 when there are no errors.
9773
0dbb648e
AD
97742000-11-02 Akim Demaille <akim@epita.fr>
9775
9776 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
9777 `unlink': it's no longer used.
9778 * src/files.h: Formatting changes.
9779
896fe5c1
AD
97802000-11-02 Akim Demaille <akim@epita.fr>
9781
9782 Remove the last uses of mktemp and unlink/delete.
9783
9784 * src/files.c (fdefines, ftable): Removed.
9785 (defines_ostack, table_obstack): New.
9786 Adjust dependencies of the former into uses of the latter.
9787 * src/output.c (output_short_or_char_table, output_short_table):
9788 Convert to using obstacks.
9789 * src/reader.c (copy_comment2): Accept one FILE * and two
9790 obstacks.
9791 (output_token_defines, reader_output_yylsp): Use obstacks.
9792 * src/system.h (obstack_fgrow3): New.
9793
dd60faec
AD
97942000-11-01 Akim Demaille <akim@epita.fr>
9795
9796 Change each use of `fattrs' into a use of `attrs_obstack'.
9797
9798 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
9799 * src/files.c (fattrs): Remove.
9800 (attrs_obstack): New.
9801 Adjust all dependencies.
9802 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
9803
8c7ebe49
AD
98042000-11-01 Akim Demaille <akim@epita.fr>
9805
9806 Introduce obstacks.
9807 Change each use of `faction' into a use of `action_obstack'.
9808
9809 * lib/obstack.h, lib/obstack.c: New files.
9810 * src/files.c (faction): Remove.
9811 (action_obstack): New.
9812 Adjust all dependencies.
9813
77aee789
AD
98142000-10-20 Akim Demaille <akim@epita.fr>
9815
9816 * lib/quote.h (PARAMS): New macro. Use it.
9817
43591cec
AD
98182000-10-16 Akim Demaille <akim@epita.fr>
9819
9820 * src/output.c (output_short_or_char_table): New function.
9821 (output_short_table, output_token_translations): Use it.
9822 (goto_actions): Use output_short_table.
9823
1e9798d5
AD
98242000-10-16 Akim Demaille <akim@epita.fr>
9825
9826 * src/symtab.c (bucket_new): New function.
9827 (getsym): Use it.
9828
9829 * src/output.c (output_short_table): New argument to display the
9830 comment associated with the table.
9831 Adjust dependencies.
9832 (output_gram): Use it.
9833 (output_rule_data): Nicer output layout for YYTNAME.
9834
f282676b
AD
98352000-10-16 Akim Demaille <akim@epita.fr>
9836
9837 * src/lex.c (read_typename): New function.
9838 (lex): Use it.
9839 * src/reader.c (copy_dollar): Likewise.
9840
550a72a3
AD
98412000-10-16 Akim Demaille <akim@epita.fr>
9842
9843 * src/reader.c (copy_comment2): Expect the input stream to be on
9844 the `/' which is suspected to open a comment, instead of being
9845 called after `//' or `/*' was read.
9846 (copy_comment, copy_definition, parse_union_decl, copy_action)
9847 (copy_guard): Adjust.
9848
131e2fef
AD
98492000-10-16 Akim Demaille <akim@epita.fr>
9850
9851 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
9852 `read_signed_integer'.
9853
79282c5a
AD
98542000-10-16 Akim Demaille <akim@epita.fr>
9855
9856 * src/reader.c (copy_dollar): New function.
9857 (copy_guard, copy_action): Use it.
9858
ff4a34be
AD
98592000-10-16 Akim Demaille <akim@epita.fr>
9860
9861 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
9862 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
9863 New files, from Fileutils 4.0.27.
9864 * src/main.c (printable_version): Remove.
9865 * src/lex.c, src/reader.c: Use `quote'.
9866
98672000-10-04 Akim Demaille <akim@epita.fr>
9868
9869 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
9870
14ded682
AD
98712000-10-04 Akim Demaille <akim@epita.fr>
9872
9873 * doc/bison.texinfo: Various typos spotted by Neil Booth.
9874
8e03724b
AD
98752000-10-04 Akim Demaille <akim@epita.fr>
9876
9877 When a literal string is used to define two different tokens,
9878 `bison -v' segfaults.
9879 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
9880
9881 * tests/regression.m4: New file.
9882 Include the core of the sample provided by Piotr Gackiewicz.
9883 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
9884 properly.
9885
a9e64249
AD
98862000-10-04 Akim Demaille <akim@epita.fr>
9887
9888 * src/reader.c (parse_expect_decl): Keep `count' within the size
9889 of `buffer'.
9890 From Neil Booth.
9891
da9abf43
AD
98922000-10-02 Paul Eggert <eggert@twinsun.com>
9893
9894 * bison.s1 (yyparse): Assign the default value
9895 unconditionally, to avoid a GCC warning and make the parser a
9896 tad smaller.
9897
c33638bb
AD
98982000-10-02 Akim Demaille <akim@epita.fr>
9899
9900 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
9901 options.
9902
444c570a
AD
99032000-10-02 Akim Demaille <akim@epita.fr>
9904
9905 * src/derives.c, src/print.c, src/reduce.c: To ease the
9906 translation, move some `\n' out of the translated strings.
9907
89cab50d
AD
99082000-10-02 Akim Demaille <akim@epita.fr>
9909
9910 The location tracking mechanism is precious for parse error
9911 messages. Nevertheless, it is enabled only when `@n' is used in
9912 the grammar, which is a different issue (you can use it in error
9913 message, but not in the grammar per se). Therefore, there should
9914 be another means to enable it.
9915
9916 * src/getargs.c (getargs): Support `--locations'.
9917 (usage): Report it.
9918 * src/getargs.h (locationsflag): Export it.
9919 * src/lex.c (percent_table): Support `%locations'.
9920 * src/reader.c (yylsp_needed): Remove this variable, now replaced
9921 with `locationsflag'.
9922 * doc/bison.texinfo: Document `--locations' and `%locations'.
9923 Sort the options.
9924 * tests/calc.m4: Test it.
9925
9926 For regularity of the names, replace each
9927 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
9928 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
9929 In addition replace each `flag' with `_flag'.
9930
d6c2cba0
AD
99312000-10-02 Akim Demaille <akim@epita.fr>
9932
9933 Also test parse error messages, including with YYERROR_VERBOSE.
9934
9935 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
9936 associative).
9937 Use it to check the computations.
9938 Use it to check `nonassoc' is honored.
9939 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
9940 `--yyerror-verbose'.
9941 (_AT_CHECK_CALC): Adjust to this option.
9942 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
9943
5a35a6cb
AD
99442000-10-02 Akim Demaille <akim@epita.fr>
9945
9946 Test also `--verbose', `--defines' and `--name-prefix'. Testing
9947 the latter demonstrates a flaw in the handling of non debugging
9948 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
9949 was used in order to simplify:
9950
9951 #if YYDEBUG
9952 if (yydebug)
9953 {
9954 ...
9955 }
9956 #endif
9957
9958 into
9959
9960 if (yydebug)
9961 {
9962 ...
9963 }
9964
9965 unfortunately this leads to a CPP conflict when
9966 `--name-prefix=foo' is used since it produces `#define yydebug
9967 foodebug'.
9968
9969 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
9970 (YYDPRINTF): New macro.
9971 Spread its use.
9972 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
9973 the bison options.
9974 Also test `--verbose', `--defines' and `--name-prefix'.
9975
71da9eea
AD
99762000-10-02 Akim Demaille <akim@epita.fr>
9977
9978 Improve the readability of the produced parsers.
9979
9980 * src/bison.s1: Formatting changes.
9981 Improve the comment related to the `$' mark.
9982 (yydefault): Don't fall through to `yyresume': `goto' there.
9983 * src/output.c (output_parser): When the `$' is met, skip the end
9984 of its line.
9985 New variable, `number_of_dollar_signs', to check there's exactly
9986 one `$' in the parser skeleton.
9987
95e36146
AD
99882000-10-02 Akim Demaille <akim@epita.fr>
9989
9990 * lib/xstrdup.c: New file, from the fileutils.
9991 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
9992 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
9993 instead of strlen + xmalloc + strcpy.
9994 * src/symtab.c (copys): Remove, use xstrdup instead.
9995
d7020c20
AD
99962000-10-02 Akim Demaille <akim@epita.fr>
9997
9998 * src/gram.h (associativity): New enum type which replaces the
9999 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
10000 `right_assoc', `left_assoc' and `non_assoc'.
10001 Adjust all dependencies.
10002 * src/reader.c: Formatting changes.
10003 (LTYPESTR): Don't define it, use it as a literal in
10004 `reader_output_yylsp'.
10005 * src/symtab.h (symbol_class): New enum type which replaces the
10006 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
10007 `sunknown', `stoken and `snterm'.
10008
1916f98e
AD
100092000-10-02 Akim Demaille <akim@epita.fr>
10010
10011 * src/getargs.c (fixed_outfiles): Rename as...
10012 (yaccflag): for consistency and accuracy.
10013 Adjust dependencies.
10014
d7913476
AD
100152000-10-02 Akim Demaille <akim@epita.fr>
10016
10017 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
10018 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
10019 difficult and introduced a lot of core dump. It turns out that
10020 Bison used an implementation of `xmalloc' based on `calloc', and
10021 at various places it does depend upon the initialization to 0. I
10022 have not tried to isolate the pertinent places, and all the former
10023 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
10024 someone should address this issue.
10025
10026 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
10027 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
10028 files.
10029 Adjust dependencies.
10030 * src/warshall.h: New file.
10031 Propagate.
10032
340ef489
AD
100332000-10-02 Akim Demaille <akim@epita.fr>
10034
10035 Various anti-`extern in *.c' changes.
10036
10037 * src/system.h: Include `assert.h'.
10038
b2ca4022
AD
100392000-10-02 Akim Demaille <akim@epita.fr>
10040
10041 * src/state.h (nstates, final_state, first_state, first_shift)
10042 (first_reduction): Move their exportation from here...
10043 * src/LR0.h: to here.
10044 Adjust dependencies.
10045 * src/getargs.c (statisticsflag): New variable.
10046 Add support for `--statistics'.
10047 Adjust dependencies.
10048
10049 Remove a lot of now useless `extern' statements in most files.
10050
403b315b
AD
100512000-10-02 Akim Demaille <akim@epita.fr>
10052
10053 * src/LR0.h: New file.
10054 Propagate its use.
10055
07a58c13
AD
100562000-10-02 Akim Demaille <akim@epita.fr>
10057
10058 * src/print.h: New file.
10059 Propagate its use.
10060 * src/print.c: Formatting and ordering changes.
10061 (verbose, terse): Replace with...
10062 (print_results): this new function.
10063 Adjust dependencies.
10064
0619caf0
AD
100652000-10-02 Akim Demaille <akim@epita.fr>
10066
10067 * src/conflicts.c (conflict_report): New function.
10068 (conflict_log, verbose_conflict_log): Replace with...
10069 (print_conflicts): this function.
10070 Adjust dependencies.
10071 * src/conflicts.h: New file.
10072 Propagate its inclusion.
10073
3519ec76
AD
100742000-10-02 Akim Demaille <akim@epita.fr>
10075
10076 * src/nullable.h: New file.
10077 Propagate its inclusion.
10078 * src/nullable.c: Formatting changes.
10079
015acc48
AD
100802000-10-02 Akim Demaille <akim@epita.fr>
10081
10082 * src/reduce.h: New file.
10083 Propagate its inclusion.
10084 * src/reduce.c: Topological sort and other formatting changes.
10085 (bool, TRUE, FALSE): Move their definition to...
10086 * src/system.h: here.
10087
8963a27b
AD
100882000-10-02 Akim Demaille <akim@epita.fr>
10089
10090 * src/files.c: Formatting changes.
10091 (tryopen, tryclose, openfiles): Rename as...
10092 (xfopen, xfclose, open_files): this.
10093 (stringappend): static.
10094 * src/files.h: Complete the list of exported symbols.
10095 Propagate its use.
10096
a70083a3
AD
100972000-10-02 Akim Demaille <akim@epita.fr>
10098
10099 * src/reader.h: New file.
10100 Propagate its use instead of tedious list of `extern' and
10101 prototypes.
10102 * src/reader.c: Formatting changes, topological sort,
10103 s/register//.
10104
abadc117
AD
101052000-10-02 Akim Demaille <akim@epita.fr>
10106
10107 * src/lex.h: Prototype `lex.c' exported functions.
10108 * src/reader.c: Adjust.
10109 * src/lex.c: Formatting changes.
10110 (safegetc): Rename as...
10111 (xgetc): this.
10112
720d742f
AD
101132000-10-02 Akim Demaille <akim@epita.fr>
10114
10115 * src/lalr.h: New file.
10116 Propagate its inclusion instead of prototypes and `extern'.
10117 * src/lalr.c: Formatting changes, topological sorting etc.
10118
f2acea59
AD
101192000-10-02 Akim Demaille <akim@epita.fr>
10120
10121 * src/output.c (token_actions): Introduce a temporary array,
10122 YYDEFACT, that makes it possible for this function to use
10123 output_short_table.
10124
d019d655
AD
101252000-10-02 Akim Demaille <akim@epita.fr>
10126
10127 `user_toknums' is output as a `short[]' in `output.c', while it is
10128 defined as a `int[]' in `reader.c'. For consistency with the
10129 other output tables, `user_toknums' is now defined as a table of
10130 shorts.
10131
10132 * src/reader.c (user_toknums): Be a short table instead of an int
10133 table.
10134 Adjust dependencies.
10135
10136 Factor the short table outputs.
10137
10138 * src/output.c (output_short_table): New function.
10139 * src/output.c (output_gram, output_stos, output_rule_data)
10140 (output_base, output_table, output_check): Use it.
10141
6c89f1c1
AD
101422000-10-02 Akim Demaille <akim@epita.fr>
10143
10144 * src/output.c (output): Topological sort of the functions, in
10145 order to get rid of the `static' prototypes.
10146 No longer use `register'.
10147 * src/output.h: New file.
10148 Propagate its inclusion in files explicitly prototyping functions
10149 from output.c.
10150
d9efd181
AD
101512000-09-21 Akim Demaille <akim@epita.fr>
10152
10153 * src/atgeneral.m4: Update from Autoconf.
10154
c29240e7 101552000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
10156
10157 * src/closure.h: New file.
10158 * src/closure.c: Formatting changes, topological sort over the
10159 functions, use of closure.h.
10160 (initialize_closure, finalize_closure): Rename as...
10161 (new_closure, free_closure): these. Adjust dependencies.
10162 * src/LR0.c: Formatting changes, topological sort, use of
10163 cloture.h.
10164 (initialize_states): Rename as...
10165 (new_states): this.
10166 * src/Makefile.am (noinst_HEADERS): Adjust.
10167
499daa50
AD
101682000-09-20 Akim Demaille <akim@epita.fr>
10169
10170 * src/acconfig.h: Don't protect config.h against multiple
10171 inclusion.
10172 Don't define PARAMS.
10173 * src/system.h: Define PARAMS.
10174 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
10175 purpose of config.h. system.h must not try to fix wrong
10176 definitions in config.h.
10177
cc84fd5d
AD
101782000-09-20 Akim Demaille <akim@epita.fr>
10179
10180 * src/derives.h: New file.
10181 * src/main.c, src/derives.h: Use it.
10182 Formatting changes.
10183 * src/Makefile.am (noinst_HEADERS): Adjust.
10184
db5b3a89
AD
101852000-09-20 Akim Demaille <akim@epita.fr>
10186
10187 * tests/atgeneral.m4: Update from Autoconf.
10188 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
10189 (AT_CHECK_CALC): New macros.
10190 Use these macros to test bison with options `', `--raw',
10191 `--debug', `--yacc', `--yacc --debug'.
10192
ceed8467
AD
101932000-09-19 Akim Demaille <akim@epita.fr>
10194
10195 * src/output.c: Formatting changes.
10196 * src/machine.h: Remove, leaving its contents in...
10197 * src/system.h: here.
10198 Include stdio.h.
10199 Adjust all dependencies on stdio.h and machine.h.
10200 * src/getargs.h: New file.
10201 Let all `extern' declarations about getargs.c be replaced with
10202 inclusion of `getargs.h'.
10203 * src/Makefile.am (noinst_HEADERS): Adjust.
10204
10205 * tests/calc.m4 (yyin): Be initialized in main, not on the global
10206 scope.
10207 (yyerror): Returns void, not int.
10208 * doc/bison.texinfo: Formatting changes.
10209
05a1d24b
AD
102102000-09-19 Akim Demaille <akim@epita.fr>
10211
10212 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
10213 portable.
10214
cbd25751
AD
102152000-09-18 Akim Demaille <akim@epita.fr>
10216
10217 * configure.in: Append WARNING_CFLAGS to CFLAGS.
10218 * src/Makefile.am (INCLUDES): Don't.
10219 Be ready to fetch headers in lib/.
10220
13863333
AD
102212000-09-18 Akim Demaille <akim@epita.fr>
10222
10223 * doc/bison.texinfo: Update the copyright.
10224 ANSIfy and GNUify the examples.
10225 Remove the old menu.
10226
0d533154
AD
102272000-09-18 Akim Demaille <akim@epita.fr>
10228
10229 First set of tests: use the `calc' example from the documentation.
10230
10231 * src/bison.s1 (yyparse): Condition the code using `yytname' which
10232 is defined only when YYDEBUG is.
10233 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
10234 * src/files.c (tryopen, tryclose): Formatting changes.
10235 Move to the top and be static.
10236 * src/reader.c (read_signed_integer): Likewise.
10237 * tests/calc.m4: New file.
10238 * Makefile.am, suite.m4: Adjust.
10239 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
10240
e79137ac
AD
102412000-09-18 Akim Demaille <akim@epita.fr>
10242
10243 Add support for an Autotest test suite for Bison.
10244
10245 * m4/m4.m4, m4/atconfig.m4: New files.
10246 * m4/Makefile.am (EXTRA_DIST): Adjust.
10247 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
10248 files.
10249 * src/getargs.c: Display a more standard --version message.
10250 * src/reader.c (reader): Formatting changes.
10251 No longer depend upon VERSION_STRING.
10252 * configure.in: No longer use `dnl'.
10253 Set up the test suite and the new directory `tests/.
10254 (VERSION_STRING): Remove.
10255
27821bff
AD
102562000-04-14 Akim Demaille <akim@epita.fr>
10257
10258 * src/reader.c (copy_comment2): New function, same as former
10259 `copy_comment', but outputs into two FILE *.
10260 (copy_comment): Use it.
10261 (parse_union_decl): Use it.
10262 (get_type, parse_start_decl): Use the same `invalid' message.
10263 (parse_start_decl, parse_union_decl): Use the same `multiple'
10264 message.
10265 (parse_union_decl, copy_guard, copy_action): Use the same
10266 `unmatched' message.
10267 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
10268
cfe5fbc0
AD
102692000-03-31 Akim Demaille <akim@epita.fr>
10270
10271 * src/files.c (tryopen, tryclose): Move to the top.
10272 Be static.
10273
cb7db13e
AD
102742000-03-31 Akim Demaille <akim@epita.fr>
10275
10276 * src/main.c (main): Don't call `done', exit does it.
10277
a0f6b076
AD
102782000-03-31 Akim Demaille <akim@epita.fr>
10279
36281465
AD
10280 * allocate.c: s/return (foo)/return foo/.
10281 * lalr.c: Likewise.
10282 * LR0.c: Likewise.
10283 * output.c: Likewise.
10284 * reader.c: Likewise.
10285 * symtab.c: Likewise.
10286 * vmsgetargs.c: Likewise.
10287
102882000-03-31 Akim Demaille <akim@epita.fr>
10289
10290 Clean up the error reporting functions.
a0f6b076
AD
10291
10292 * src/report.c: New file.
10293 * src/report.h: Likewise.
10294 * src/Makefile.am: Adjust.
10295 * m4/error.m4: New file.
10296 * m4/Makefile.am: Adjust.
10297 * configure.in (jm_PREREQ_ERROR): Call it.
10298 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
10299 Remove.
10300 (fatal, fatals): Remove. All callers use complain.c::fatal.
10301 (warn, warni, warns, warnss, warnss): Remove. All callers use
10302 complain.c::complain.
10303 (toomany): Remove, use fatal instead.
10304 * src/files.c (done): No argument, use complain_message_count.
10305 * src/main.c (main): Register `done' to `atexit'.
10306
10307 * src/getargs.c (usage): More `fputs', less `fprintf'.
10308
18539825
AD
103092000-03-28 Akim Demaille <akim@epita.fr>
10310
10311 * lib/: New directory.
10312 * Makefile.am (SUBDIRS): Adjust.
10313 * configure.in: Adjust.
10314 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
10315 useless.
10316 * src/alloca.c: Moved to lib/.
10317 * src/getopt.c: Likewise.
10318 * src/getopt1.c: Likewise.
10319 * src/getopt.h: Likewise.
10320 * src/ansi2knr.c: Likewise.
10321 * src/ansi2knr.1: Likewise.
10322 * src/Makefile.am: Adjust.
10323 * lib/Makefile.am: New file.
10324
9f306f2a
AD
103252000-03-28 Akim Demaille <akim@epita.fr>
10326
10327 * src/getargs.c (usage): Refresh the help message.
10328
0ba347b6
AD
103292000-03-17 Akim Demaille <akim@epita.fr>
10330
10331 * src/getopt1.c: Updated from textutils 2.0e
10332 * src/getopt.c: Likewise.
10333 * src/getopt.h: Likewise.
10334
dbe7f271
AD
103352000-03-17 Akim Demaille <akim@epita.fr>
10336
10337 * src/Makefile.am (bison.simple): Fix the awk program: quote only
10338 the file name, not the whole `#line LINE FILE'.
10339
75bbe78d
AD
103402000-03-17 Akim Demaille <akim@epita.fr>
10341
10342 On syntax errors, report the token on which we choked.
10343
aa5fd0ee
AD
10344 * src/bison.s1 (yyparse): In the label yyerrlab, when
10345 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 10346
7b306f52
AD
103472000-03-17 Akim Demaille <akim@epita.fr>
10348
aa5fd0ee 10349 * src/reader.c (copy_at): New function.
7b306f52
AD
10350 (copy_guard): Use it.
10351 (copy_action): Use it.
10352
e87b5700
AD
103532000-03-17 Akim Demaille <akim@epita.fr>
10354
10355 Be kind to translators, save some useless translations.
10356
aa5fd0ee 10357 * src/main.c (banner): New function.
e87b5700
AD
10358 (fatal_banner): Use it.
10359 (warn_banner): Use it.
10360
ae3c3164
AD
103612000-03-17 Akim Demaille <akim@epita.fr>
10362
aa5fd0ee
AD
10363 * src/reader.c (copy_definition): Use copy_string and
10364 copy_comment. Removed now unused `match', `ended',
10365 `cplus_comment'.
ae3c3164
AD
10366 (copy_comment, copy_string): Moved, to be visible from
10367 copy_definition.
10368
4dc58e7c
AD
103692000-03-17 Akim Demaille <akim@epita.fr>
10370
aa5fd0ee
AD
10371 * src/reader.c (copy_string): Declare `static inline'. No
10372 problems with inline, since it is checked by configure.
4dc58e7c
AD
10373 (copy_comment): Likewise.
10374
0a6384c4
AD
103752000-03-17 Akim Demaille <akim@epita.fr>
10376
aa5fd0ee 10377 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 10378
3cef001a
AD
103792000-03-17 Akim Demaille <akim@epita.fr>
10380
aa5fd0ee 10381 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
10382 (copy_action): Use it. Removed now unused `match', `ended',
10383 `cplus_comment'.
10384 (copy_guard): Likewise.
10385
ca36d2ef
AD
103862000-03-17 Akim Demaille <akim@epita.fr>
10387
aa5fd0ee 10388 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
10389 (copy_action): Use it.
10390 (copy_guard): Likewise.
10391
6666f98f
AD
103922000-03-17 Akim Demaille <akim@epita.fr>
10393
10394 Change the handling of @s so that they behave exactly like $s.
10395 There is now a pseudo variable @$ (readble and writable), location
10396 of the lhs of the rule (by default ranging from the location of
10397 the first symbol of the rhs, to the location of the last symbol,
10398 or, if the rhs is empty, YYLLOC).
10399
10400 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
10401 yyval.
10402 (yyparse): When providing a default semantic action, provide a
10403 default location action.
10404 (after the $): No longer change `*YYLSP', just stack YYLOC the
10405 same way you stack YYVAL.
10406 * src/reader.c (read_declarations): Use warns.
10407 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
10408 (copy_action, case '@'): Likewise.
10409 Use a standard error message, to save useless work from
10410 translators.
10411
41aca2e0
AD
104122000-03-17 Akim Demaille <akim@epita.fr>
10413
aa5fd0ee
AD
10414 * src/bison.s1: Formatting and cosmetics changes.
10415 * src/reader.c: Likewise.
41aca2e0
AD
10416 Update the Copyright notice.
10417
dc08c1d5
AD
104182000-03-17 Akim Demaille <akim@epita.fr>
10419
aa5fd0ee
AD
10420 * src/bison.s1 (#line): All set to `#line' only, since the
10421 Makefile now handles them.
dc08c1d5 10422
9ee3c97b
AD
104232000-03-16 Akim Demaille <akim@epita.fr>
10424
10425 * src/output.c (output_rule_data): Output the documentation of
10426 some of the tables.
10427 (Copyright notice): Update.
10428 Formatting changes.
10429
0de741ca
AD
104302000-03-16 Akim Demaille <akim@epita.fr>
10431
10432 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
10433 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
10434 One `#if YYDEBUG' remains, since it uses variables which are
10435 defined only if `YYDEBUG != 0'.
10436
bb10be54
AD
104372000-03-16 Akim Demaille <akim@epita.fr>
10438
10439 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
10440 and related variables so that the similarities are highlighted.
10441
b07b484a
AD
104422000-03-16 Akim Demaille <akim@epita.fr>
10443
10444 * src/bison.s1: Properly indent CPP directives.
10445
361f60b3
AD
104462000-03-16 Akim Demaille <akim@epita.fr>
10447
10448 * src/bison.s1: Properly indent the `alloca' CPP section.
10449
8c44d3ec
AD
104502000-03-16 Akim Demaille <akim@epita.fr>
10451
10452 Do not hard code values of directories in `configure.in'.
10453 Update the `configure' tool chain.
10454
10455 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
10456 src/makefile.am.
10457 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
10458 (AC_OUTPUT): Add m4/Makefile.
10459 Bump to bison 1.28a, 1.29 has never been released.
10460 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
10461 handled via src/Makefile.am.
10462 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
10463 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
10464 autoheader.
10465 * Makefile.am (SUBDIRS): Add m4.
10466 (ACLOCAL_AM_FLAGS): New variable.
10467 (AUTOMAKE_OPTIONS): Add check-news.
10468 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
10469 the proper line number and file name.
10470 (DEFS): Propagate the location of bison library files and of the
10471 locale files.
10472 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
10473 builddir.
10474 * acinclude.m4: Remove, replaced by the directory m4.
10475 * m4/Makefile.am (EXTRA_DIST): New variable.
10476 * m4/gettext.m4: New file, from the fileutils.
10477 * m4/lcmessage.m4: Likewise
10478 * m4/progtest.m4: Likewise.
10479 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
10480
f95997e7
AD
104812000-03-10 Akim Demaille <akim@epita.fr>
10482
10483 * src/closure.c:
10484 Formatting changes of various comments.
10485 Respect the GNU coding standards at various places.
10486 Don't use `_()' when no translation is needed.
10487
104881999-12-13 Jesse Thilo <jthilo@gnu.org>
10489
10490 * src/files.c:
10491 OS/2 honors TMPDIR environment variable.
10492
104931999-12-13 Jesse Thilo <jthilo@gnu.org>
10494
10495 * doc/bison.texinfo: Tweaked spelling and grammar.
10496 Updated ISBN.
10497 Removed reference to price of printed copy.
10498 Mention BISON_SIMPLE and BISON_HAIRY.
10499
105001999-12-13 Jesse Thilo <jthilo@gnu.org>
10501
10502 * configure.in, NEWS:
10503 Bison 1.29 released.
10504
105051999-10-27 Jesse Thilo <jthilo@gnu.org>
10506
10507 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
10508 Added reference card.
10509
105101999-07-26 Jesse Thilo <jthilo@gnu.org>
10511
10512 * po/ru.po: Added Russian translation.
10513
105141999-07-26 Jesse Thilo <jthilo@gnu.org>
10515
10516 * configure.in: Added Russian translation.
10517
105181999-07-06 Jesse Thilo <jthilo@gnu.org>
10519
10520 * configure.in, NEWS, README:
10521 Released version 1.28.
10522
105231999-06-14 Jesse Thilo <jthilo@gnu.org>
10524
10525 * src/system.h:
10526 Squashed redefinition warning on some systems.
10527
10528 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
10529 Have configure build version string instead of relying on ANSI string
10530 concatentation.
10531
105321999-06-14 Jesse Thilo <jthilo@gnu.org>
10533
10534 * po/POTFILES.in: Got rid of version.c.
10535
105361999-06-14 Jesse Thilo <jthilo@gnu.org>
10537
10538 * acconfig.h, configure.in:
10539 Have configure build version string instead of relying on ANSI string
10540 concatentation.
10541
105421999-06-08 Jesse Thilo <jthilo@gnu.org>
10543
10544 * doc/bison.1:
10545 Dropped mention of `+' for long-named options.
10546
105471999-05-30 Jesse Thilo <jthilo@gnu.org>
10548
10549 * src/files.c: Added <unistd.h> for unlink().
10550
10551 * src/Makefile.am, src/system.h:
10552 I18n fixes.
10553
105541999-05-30 Jesse Thilo <jthilo@gnu.org>
10555
10556 * README: Added a FAQ list.
10557
10558 * configure.in, acconfig.h:
10559 I18n fixes.
10560
105611999-05-30 Jesse Thilo <jthilo@gnu.org>
10562
10563 * doc/FAQ, doc/Makefile.am:
10564 Added a FAQ list.
10565
105661999-05-19 Jesse Thilo <jthilo@gnu.org>
10567
10568 * src/alloc.h, src/symtab.h, src/version.c:
10569 Protected inclusion of "config.h" with HAVE_CONFIG_H.
10570
105711999-04-18 Jesse Thilo <jthilo@gnu.org>
10572
10573 * src/.cvsignore, src/Makefile.am:
10574 Reorganized: sources in `src', documentation in `doc'.
10575
10576 * src/lex.c (literalchar):
10577 fixed the code for escaping double quotes (thanks
10578 Jonathan Czisny.)
10579
105801999-04-18 Jesse Thilo <jthilo@gnu.org>
10581
10582 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
10583 Adjusted paths to reflect directory reorganization.
10584
105851999-04-18 Jesse Thilo <jthilo@gnu.org>
10586
10587 * doc/.cvsignore, doc/Makefile.am:
10588 Reorganized: sources in `src', documentation in `doc'.
10589
105901999-04-18 Jesse Thilo <jthilo@gnu.org>
10591
10592 * configure.in:
10593 Updated AC_INIT file to reflect directory reorganization.
10594
10595 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
10596 Reorganized: sources in `src', documentation in `doc'.
10597
105981999-04-13 Jesse Thilo <jthilo@gnu.org>
10599
10600 * src/allocate.c:
10601 Don't declare calloc() and realloc() if not necessary.
10602
106031999-04-13 Jesse Thilo <jthilo@gnu.org>
10604
10605 * configure.in, acconfig.h, acinclude.m4:
10606 Don't declare calloc() and realloc() if not necessary.
10607
106081999-03-23 Jesse Thilo <jthilo@gnu.org>
10609
10610 * po/.cvsignore: Added i18n support.
10611
106121999-03-23 Jesse Thilo <jthilo@gnu.org>
10613
10614 * acconfig.h, configure.in, Makefile.am:
10615 Added i18n support.
10616
106171999-03-22 Jesse Thilo <jthilo@gnu.org>
10618
10619 * src/bison.s1: Fixed #line numbers.
10620
106211999-03-15 Jesse Thilo <jthilo@gnu.org>
10622
10623 * po/es.po, po/fr.po, po/nl.po, po/de.po:
10624 Added PO files from Translation Project.
10625
106261999-03-03 Jesse Thilo <jthilo@gnu.org>
10627
10628 * Makefile.am:
10629 Added support for non-ANSI compilers (ansi2knr).
10630
106311999-02-16 Jesse Thilo <jthilo@gnu.org>
10632
10633 * configure.in: Bumped version number to 1.27.
10634
10635 * Makefile.am:
10636 Added `bison.simple' to list of files removed by `make distclean'.
10637
106381999-02-12 Jesse Thilo <jthilo@gnu.org>
10639
10640 * src/files.c, src/files.h:
10641 Defined locations of parser files in config.h instead of Makefile.
10642
106431999-02-12 Jesse Thilo <jthilo@gnu.org>
10644
10645 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
10646 Defined locations of parser files in config.h instead of Makefile.
10647
106481999-02-09 Jesse Thilo <jthilo@gnu.org>
10649
10650 * Makefile.am:
10651 Removed inappropriate use of $< macro.
10652
106531999-02-05 Jesse Thilo <jthilo@gnu.org>
10654
10655 * po/Makefile.in.in, po/POTFILES.in:
10656 Add `po' directory skeleton.
10657
106581999-01-27 Jesse Thilo <jthilo@gnu.org>
10659
10660 * README: Document help-bison list.
10661
10662 * configure.in: Add check for mkstemp().
10663
106641999-01-20 Jesse Thilo <jthilo@gnu.org>
10665
10666 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
10667 Hush a few compiler warnings.
10668
10669 * src/files.c:
10670 Add tryclose(), which verifies that fclose was successful.
10671 Hush a couple of compiler warnings.
10672
106731999-01-20 Jesse Thilo <jthilo@gnu.org>
10674
10675 * Makefile.am, OChangeLog:
10676 ChangeLog is now automatically generated. Include the old version as
10677 OChangeLog.
10678
106791999-01-14 Jesse Thilo <jthilo@gnu.org>
10680
10681 * 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:
10682 Update FSF address.
10683
106841999-01-14 Jesse Thilo <jthilo@gnu.org>
10685
10686 * doc/bison.texinfo: Fix formatting glitch.
10687
10688 * doc/bison.texinfo: Update FSF address.
10689
106901999-01-14 Jesse Thilo <jthilo@gnu.org>
10691
10692 * acconfig.h: Update FSF address.
10693
106941999-01-08 Jesse Thilo <jthilo@gnu.org>
10695
10696 * src/system.h:
10697 Don't define PACKAGE here, since config.h defines it.
10698
106991998-12-30 Jesse Thilo <jthilo@gnu.org>
10700
10701 * src/reader.c: Update copyright date.
10702
10703 * src/main.c:
10704 Ditch sprintf to statically-sized buffers in fatal/warn functions in
10705 favor of output directly to stderr (avoids buffer overruns).
10706
10707 * src/reader.c: Some checks for premature EOF.
10708
10709 * 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:
10710 Use prototypes if the compiler understands them.
10711
10712 * src/files.c: Honor TMPDIR on Unix hosts.
10713 Use prototypes if the compiler understands them.
10714
10715 * src/reader.c:
10716 Fix a couple of buffer overrun bugs.
10717 Use prototypes if the compiler understands them.
10718
10719 * src/system.h: Include unistd.h and ctype.h.
10720 Use #ifdef instead of #if for NLS symbols.
10721
107221998-12-30 Jesse Thilo <jthilo@gnu.org>
10723
10724 * doc/bison.texinfo:
10725 Delete comment "consider using @set for edition number, etc..." since
10726 we now are doing so.
10727
107281998-12-30 Jesse Thilo <jthilo@gnu.org>
10729
10730 * configure.in:
10731 Use prototypes if the compiler understands them.
10732
10733 * NEWS: Document 1.26 highlights.
10734
10735 * Makefile.am: Require Automake 1.3 or later.
10736
10737 * acconfig.h:
10738 Use prototypes if the compiler understands them.
10739
107401998-12-29 Jesse Thilo <jthilo@gnu.org>
10741
10742 * src/version.c:
10743 Use VERSION symbol from automake for version number.
10744
107451998-12-29 Jesse Thilo <jthilo@gnu.org>
10746
10747 * acconfig.h, configure.in, version.cin:
10748 Use VERSION symbol from automake for version number.
10749
107501998-11-28 Jesse Thilo <jthilo@gnu.org>
10751
10752 * Makefile.am:
10753 Distribute original version of simple parser (bison.s1), not built
10754 version (bison.simple).
10755
107561998-11-28 Jesse Thilo <jthilo@gnu.org>
10757
10758 * doc/bison.texinfo: Add info dir entry.
10759
10760 * doc/bison.texinfo:
10761 Let automake put version number into documentation.
10762
107631998-11-26 Jesse Thilo <jthilo@gnu.org>
10764
10765 * src/bison.cld, src/build.com, src/vmshlp.mar:
10766 Add non-RCS files from /gd/gnu/bison.
10767
107681998-11-26 Jesse Thilo <jthilo@gnu.org>
10769
10770 * doc/bison.1:
10771 Document the BISON_HAIRY and BISON_SIMPLE variables.
10772
107731998-11-25 Jesse Thilo <jthilo@gnu.org>
10774
10775 * src/version.c: Build version.c automatically.
10776
10777 * src/reader.c:
10778 Fix token numbering (used to start at 258, not 257).
10779
10780 * src/system.h: Include config.h.
10781
10782 * src/getargs.c: Update bug report address.
10783
10784 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
10785 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
10786
107871998-11-25 Jesse Thilo <jthilo@gnu.org>
10788
10789 * Makefile.am:
10790 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10791
10792 * configure.in, version.cin:
10793 Build version.c automatically.
10794
10795 * AUTHORS: Add AUTHORS file.
10796
10797 * README: Update bug report address.
10798
10799 * bison.simple:
10800 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
10801
10802 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
10803 Add automake stuff.
10804
108051998-11-25 Jesse Thilo <jthilo@gnu.org>
10806
10807 * doc/bison.texinfo: Clean up some formatting.
10808
108091998-05-05 Richard Stallman <rms@gnu.org>
10810
10811 * doc/bison.texinfo:
10812 Explain better why to make a pure parser.
10813
108141998-01-05 Richard Stallman <rms@gnu.org>
10815
10816 * src/files.c (openfiles):
10817 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
10818 find a temporary directory, if possible. Do not unlink files while
10819 they are open.
10820
108211997-08-25 Richard Stallman <rms@gnu.org>
10822
10823 * src/reader.c (stack_offset;):
10824 Change some warni to warns.
10825
10826 * src/lex.c (literalchar): Use warns, not warni.
10827
108281997-06-28 Richard Stallman <rms@gnu.org>
10829
10830 * src/bison.s1: Add a Bison version comment.
10831
10832 * src/main.c (fatal, warn, berror):
10833 Use program_name.
10834
108351997-06-28 Richard Stallman <rms@gnu.org>
10836
10837 * Makefile.in (bison_version): New variable.
10838 (dist): Use that variable.
10839 (bison.s1): Substitute the Bison version into bison.simple.
10840
10841 * bison.simple: Add a Bison version comment.
10842
108431997-06-18 Richard Stallman <rms@gnu.org>
10844
10845 * src/main.c (fatal, warn, berror):
10846 Make error messages standard.
10847 (toomany): Improve error message text.
10848
10849 * 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:
10850 new.h renamed to alloc.h.
10851
108521997-06-18 Richard Stallman <rms@gnu.org>
10853
10854 * Makefile.in: new.h renamed to alloc.h.
10855
108561997-05-24 Richard Stallman <rms@gnu.org>
10857
10858 * src/lex.c (literalchar):
10859 Fix the code for escaping \, " and '.
10860
10861 (lex): Avoid trouble when there are many chars
10862 to discard in a char literal with just several chars in it.
10863
108641997-05-17 Richard Stallman <rms@gnu.org>
10865
10866 * src/bison.s1:
10867 Use malloc, if using alloca is troublesome.
10868 (YYSTACK_USE_ALLOCA): New flag macro.
10869 Define it for some systems and compilers.
10870 (YYSTACK_ALLOC): New macro.
10871 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10872 If it was malloc'd, free it.
10873
108741997-05-17 Richard Stallman <rms@gnu.org>
10875
10876 * bison.simple:
10877 Use malloc, if using alloca is troublesome.
10878 (YYSTACK_USE_ALLOCA): New flag macro.
10879 Define it for some systems and compilers.
10880 (YYSTACK_ALLOC): New macro.
10881 (yyparse): Use YYSTACK_ALLOC to allocate stack.
10882 If it was malloc'd, free it.
10883
108841997-04-23 Richard Stallman <rms@gnu.org>
10885
10886 * src/bison.s1:
10887 (alloca) [__hpux]: Always define as __builtin_alloca.
10888
108891997-04-23 Richard Stallman <rms@gnu.org>
10890
10891 * bison.simple:
10892 (alloca) [__hpux]: Always define as __builtin_alloca.
10893
108941997-04-22 Richard Stallman <rms@gnu.org>
10895
10896 * src/bison.s1:
10897 [__hpux]: Include alloca.h (right for HPUX 10)
10898 instead of declaring alloca (right for HPUX 9).
10899
10900 * src/bison.s1 (__yy_memcpy):
10901 Declare arg `count' as unsigned int.
10902 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10903
109041997-04-22 Richard Stallman <rms@gnu.org>
10905
10906 * bison.simple:
10907 [__hpux]: Include alloca.h (right for HPUX 10)
10908 instead of declaring alloca (right for HPUX 9).
10909
10910 * bison.simple (__yy_memcpy):
10911 Declare arg `count' as unsigned int.
10912 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
10913
109141997-01-03 Richard Stallman <rms@gnu.org>
10915
10916 * src/allocate.c: [__STDC__ or _MSC_VER]:
10917 Declare calloc and realloc to return void *.
10918
109191997-01-02 Richard Stallman <rms@gnu.org>
10920
10921 * src/system.h:
10922 [_MSC_VER]: Include stdlib.h and process.h.
10923 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
10924
10925 * src/main.c (main): Return FAILURE as a value.
10926 (printable_version): Declare arg as int, not char.
10927
109281997-01-02 Richard Stallman <rms@gnu.org>
10929
10930 * Makefile.in (dist):
10931 Explicitly check for symlinks, and copy them.
10932
109331996-12-19 Richard Stallman <rms@gnu.org>
10934
10935 * src/files.c:
10936 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
10937
109381996-12-18 Paul Eggert <eggert@gnu.org>
10939
10940 * src/bison.s1 (yyparse):
10941 If __GNUC__ and YYPARSE_PARAM are both defined,
10942 declare yyparse to have a void * argument.
10943
109441996-12-18 Paul Eggert <eggert@gnu.org>
10945
10946 * bison.simple (yyparse):
10947 If __GNUC__ and YYPARSE_PARAM are both defined,
10948 declare yyparse to have a void * argument.
10949
109501996-12-17 Richard Stallman <rms@gnu.org>
10951
10952 * src/reduce.c (nbits): Add some casts.
10953
109541996-08-12 Richard Stallman <rms@gnu.org>
10955
10956 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
10957
109581996-08-12 Richard Stallman <rms@gnu.org>
10959
10960 * bison.simple: Test _MSDOS as well as _MSDOS_.
10961
109621996-07-31 Richard Stallman <rms@gnu.org>
10963
10964 * src/bison.s1:
10965 [__sun && __i386]: Include alloca.h.
10966
109671996-07-31 Richard Stallman <rms@gnu.org>
10968
10969 * bison.simple:
10970 [__sun && __i386]: Include alloca.h.
10971
109721996-07-30 Richard Stallman <rms@gnu.org>
10973
10974 * src/bison.s1: Comment change.
10975
10976 * src/bison.s1: Test _MSDOS_, not MSDOS.
10977
109781996-07-30 Richard Stallman <rms@gnu.org>
10979
10980 * bison.simple: Comment change.
10981
10982 * bison.simple: Test _MSDOS_, not MSDOS.
10983
109841996-06-01 Richard Stallman <rms@gnu.org>
10985
10986 * 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:
10987 Insert `_' macro around many string constants.
10988
10989 * src/main.c:
10990 Insert `_' macro around many string constants.
10991
10992 (main): Call setlocale, bindtextdomain and textdomain.
10993
10994 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
10995 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
10996 [ENABLE_NLS]: Include libintl.h.
10997 [ENABLE_NLS] (gettext): Define.
10998 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
10999 (N_, PACKAGE, LOCALEDIR): New macros.
11000
110011996-06-01 Richard Stallman <rms@gnu.org>
11002
11003 * POTFILES.in: New file.
11004
11005 * Makefile.in (allocate.o):
11006 Define target explicitly.
11007
11008 * Makefile.in (CFLAGS): Set to @CFLAGS@.
11009 (LDFLAGS): Set to @LDFLAGS@.
11010 (configure): Run autoconf only if preceding `cd' succeeds.
11011 (bison.s1): Redirect output to temporary file then move the
11012 temporary to the target, rather than redirecting directly to bison.s1.
11013 (clean): Remove config.status and config.log.
11014 (distclean): Don't remove config.status here.
11015
110161996-05-12 Richard Stallman <rms@gnu.org>
11017
11018 * src/bison.s1:
11019 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11020
110211996-05-12 Richard Stallman <rms@gnu.org>
11022
11023 * bison.simple:
11024 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
11025
110261996-05-11 Richard Stallman <rms@gnu.org>
11027
11028 * src/bison.s1 (__yy_memcpy):
11029 Really reorder the args, as was supposedly done on Feb 14 1995.
11030 (yyparse): Calls changed accordingly.
11031
110321996-05-11 Richard Stallman <rms@gnu.org>
11033
11034 * Makefile.in (dist): Don't use $(srcdir).
11035
11036 * bison.simple (__yy_memcpy):
11037 Really reorder the args, as was supposedly done on Feb 14 1995.
11038 (yyparse): Calls changed accordingly.
11039
110401996-01-27 Richard Stallman <rms@gnu.org>
11041
11042 * src/output.c (output_rule_data):
11043 Test YYERROR_VERBOSE in the conditional
11044 around the definition of ttyname.
11045
110461995-12-29 Richard Stallman <rms@gnu.org>
11047
11048 * src/bison.s1:
11049 Fix line numbers in #line commands.
11050
110511995-12-29 Richard Stallman <rms@gnu.org>
11052
11053 * bison.simple:
11054 Fix line numbers in #line commands.
11055
110561995-12-27 Richard Stallman <rms@gnu.org>
11057
11058 * src/bison.s1 (YYPARSE_PARAM_DECL):
11059 In C++, make it always null.
11060 (YYPARSE_PARAM_ARG): New macro.
11061 (yyparse): Use YYPARSE_PARAM_ARG.
11062
110631995-12-27 Richard Stallman <rms@gnu.org>
11064
11065 * bison.simple (YYPARSE_PARAM_DECL):
11066 In C++, make it always null.
11067 (YYPARSE_PARAM_ARG): New macro.
11068 (yyparse): Use YYPARSE_PARAM_ARG.
11069
110701995-11-29 Richard Stallman <rms@gnu.org>
11071
11072 * doc/bison.texinfo:
11073 Describe literal string tokens, %raw, %no_lines, %token_table.
11074
110751995-11-29 Daniel Hagerty <hag@gnu.org>
11076
11077 * doc/bison.texinfo: Fixed update date
11078
110791995-10-16 Richard Stallman <rms@gnu.org>
11080
11081 * src/version.c: Version 1.25.
11082
110831995-10-16 Richard Stallman <rms@gnu.org>
11084
11085 * NEWS: *** empty log message ***
11086
110871995-10-16 Richard Stallman <rms@gnu.org>
11088
11089 * doc/bison.1, doc/bison.rnh:
11090 Add new options.
11091
110921995-10-15 Richard Stallman <rms@gnu.org>
11093
11094 * src/vmsgetargs.c, src/getargs.c:
11095 Added -n, -k, and -raw switches.
11096 (noparserflag, toknumflag, rawtoknumflag): New variables.
11097
11098 * src/symtab.h (SALIAS):
11099 New #define for adding aliases to %token.
11100 (struct bucket): Added `alias' field.
11101
11102 * src/reduce.c (reduce_grammar):
11103 Revise error message.
11104 (print_notices): Remove final `.' from error message.
11105
11106 * src/reader.c (reader_output_yylsp):
11107 New function.
11108 (readgram): Use `#if 0' around code that accepted %command
11109 inside grammar rules: The documentation doesn't allow it,
11110 and it will fail since the %command processors scan for the next %.
11111 (parse_token_decl): Extended the %token
11112 declaration to allow a multi-character symbol as an alias.
11113 (parse_thong_decl): New function.
11114 (read_declarations): Added %thong declarations.
11115 (read_declarations): Handle NOOP to deal with allowing
11116 % declarations as another means to specify the flags.
11117 (readgram): Allow %prec prior to semantics embedded in a rule.
11118 (skip_to_char, read_declarations, copy_definition)
11119 (parse_token_decl, parse_start_decl, parse_type_decl)
11120 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
11121 (get_type_name, copy_guard, copy_action, readgram)
11122 (get_type, packsymbols): Revised most error messages.
11123 Changed `fatal' to `warnxxx' to avoid aborting for error.
11124 Revised and use multiple warnxxx functions to avoid using VARARGS1.
11125 (read_declarations): Improve the error message for
11126 an invalid character. Do not abort.
11127 (read_declarations, copy_guard, copy_action): Use
11128 printable_version to avoid unprintable characters in printed output.
11129 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
11130 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
11131 Allow the type of a non-terminal can be given
11132 more than once, as long as all specifications give the same type.
11133
11134 * src/output.c:
11135 (output_headers, output_trailers, output, output_gram)
11136 (output_rule_data): Implement noparserflag variable.
11137 Implement toknumflag variable.
11138 (output): Call reader_output_yylsp to output LTYPESTR.
11139
11140 * src/main.c (main):
11141 If reader sees an error, don't process the grammar.
11142 (fatals): Updated to not use VARARGS1.
11143 (printable_version, int_to_string, warn, warni, warns, warnss)
11144 (warnsss): New error reporting functions. Avoid abort for error.
11145
11146 * src/lex.h:
11147 Added THONG and NOOP for alias processing.
11148 Added SETOPT for the new code that allows setting options with %flags.
11149
11150 * src/lex.c:
11151 Include getopt.h. Add some extern decls.
11152 (safegetc): New function to deal with EOF gracefully.
11153 (literalchar); new function to deal with reading \ escapes.
11154 (lex): Use literalchar.
11155 (lex): Implemented "..." tokens.
11156 (literalchar, lex, parse_percent_token): Made tokenbuffer
11157 always contain the token. This includes growing the token
11158 buffer while reading an integer.
11159 (parse_percent_token): Replaced if-else statement with percent_table.
11160 (parse_percent_token): Added % declarations as another
11161 way to specify the flags -n, -l, and -r. Also added hooks for
11162 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
11163 major changes to files.c.
11164 (lex) Retain in the incoming stream a character following
11165 an incorrect '/'.
11166 (skip_white_space, lex): Revised most error messages
11167 and changed fatal to warn to avoid aborting.
11168 (percent_table): Added %thong declarations.
11169
11170 * src/gram.h: Comment changes.
11171
11172 * src/files.c (openfiles, open_extra_files, done):
11173 Add faction flag
11174 and actfile file. Handle noparserflag. Both for -n switch.
11175
11176 * src/conflicts.c (resolve_sr_conflict):
11177 Remove use of alloca.
11178
111791995-06-01 Jim Meyering <meyering@gnu.org>
11180
11181 * doc/bison.texinfo: *** empty log message ***
11182
111831995-05-06 Richard Stallman <rms@gnu.org>
11184
11185 * src/bison.s1: Comment change.
11186
111871995-05-06 Richard Stallman <rms@gnu.org>
11188
11189 * bison.simple: Comment change.
11190
111911995-05-03 Richard Stallman <rms@gnu.org>
11192
11193 * src/version.c: Version now 1.24.
11194
11195 * src/bison.s1: Change distribution terms.
11196
11197 * src/version.c: Version now 1.23.
11198
111991995-05-03 Richard Stallman <rms@gnu.org>
11200
11201 * doc/bison.texinfo:
11202 Rewrite "Conditions for Using Bison".
11203 Update version to 1.24.
11204
112051995-05-03 Richard Stallman <rms@gnu.org>
11206
11207 * bison.simple: Change distribution terms.
11208
112091995-02-23 Richard Stallman <rms@gnu.org>
11210
11211 * src/files.c: Test __VMS_POSIX as well as VMS.
11212
112131995-02-14 Jim Meyering <meyering@gnu.org>
11214
11215 * src/bison.s1 (__yy_memcpy):
11216 Renamed from __yy_bcopy to avoid
11217 confusion. Reverse FROM and TO arguments to be consistent with
11218 those of memcpy.
11219
112201995-02-14 Jim Meyering <meyering@gnu.org>
11221
11222 * bison.simple (__yy_memcpy):
11223 Renamed from __yy_bcopy to avoid
11224 confusion. Reverse FROM and TO arguments to be consistent with
11225 those of memcpy.
11226
112271994-11-10 David J. MacKenzie <djm@gnu.org>
11228
11229 * NEWS: reformat
11230
11231 * NEWS: New file.
11232
11233 * Makefile.in (DISTFILES): Include NEWS.
11234
11235 * Makefile.in (DISTFILES):
11236 Include install-sh, not install.sh.
11237
11238 * configure.in: Update to Autoconf v2 macro names.
11239
112401994-10-05 David J. MacKenzie <djm@gnu.org>
11241
11242 * Makefile.in: fix typo
11243
11244 * Makefile.in (prefix, exec_prefix):
11245 Let configure set them.
11246
112471994-09-28 David J. MacKenzie <djm@gnu.org>
11248
11249 * Makefile.in: Set datadir to $(prefix)/share.
11250
112511994-09-15 Richard Stallman <rms@gnu.org>
11252
11253 * src/bison.s1:
11254 Update copyright notice and GPL version.
11255
112561994-09-15 Richard Stallman <rms@gnu.org>
11257
11258 * bison.simple:
11259 Update copyright notice and GPL version.
11260
112611994-07-12 Richard Stallman <rms@gnu.org>
11262
11263 * src/reduce.c, src/reader.c:
11264 entered into RCS
11265
112661994-05-05 David J. MacKenzie <djm@gnu.org>
11267
11268 * Makefile.in: entered into RCS
11269
112701994-03-26 Richard Stallman <rms@gnu.org>
11271
11272 * src/bison.s1: entered into RCS
11273
112741994-03-26 Richard Stallman <rms@gnu.org>
11275
11276 * bison.simple: entered into RCS
11277
112781994-03-25 Richard Stallman <rms@gnu.org>
11279
11280 * src/main.c: entered into RCS
11281
112821994-03-24 Richard Stallman <rms@gnu.org>
11283
11284 * src/conflicts.c: entered into RCS
11285
112861994-01-02 Richard Stallman <rms@gnu.org>
11287
11288 * Makefile.in: *** empty log message ***
11289
112901993-11-21 Richard Stallman <rms@gnu.org>
11291
11292 * src/bison.s1: *** empty log message ***
11293
112941993-11-21 Richard Stallman <rms@gnu.org>
11295
11296 * doc/bison.texinfo: entered into RCS
11297
11298 * doc/bison.texinfo: *** empty log message ***
11299
113001993-11-21 Richard Stallman <rms@gnu.org>
11301
11302 * bison.simple: *** empty log message ***
11303
113041993-10-25 David J. MacKenzie <djm@gnu.org>
11305
11306 * doc/bison.texinfo: *** empty log message ***
11307
113081993-10-19 Richard Stallman <rms@gnu.org>
11309
11310 * src/bison.s1: *** empty log message ***
11311
113121993-10-19 Richard Stallman <rms@gnu.org>
11313
11314 * bison.simple: *** empty log message ***
11315
113161993-10-14 Richard Stallman <rms@gnu.org>
11317
11318 * src/bison.s1: *** empty log message ***
11319
113201993-10-14 Richard Stallman <rms@gnu.org>
11321
11322 * bison.simple: *** empty log message ***
11323
113241993-09-14 David J. MacKenzie <djm@gnu.org>
11325
11326 * doc/bison.texinfo: *** empty log message ***
11327
113281993-09-13 Noah Friedman <friedman@gnu.org>
11329
11330 * Makefile.in: *** empty log message ***
11331
113321993-09-10 Richard Stallman <rms@gnu.org>
11333
11334 * src/conflicts.c: *** empty log message ***
11335
11336 * src/system.h: entered into RCS
11337
113381993-09-10 Richard Stallman <rms@gnu.org>
11339
11340 * doc/bison.1: entered into RCS
11341
113421993-09-06 Noah Friedman <friedman@gnu.org>
11343
11344 * src/version.c: entered into RCS
11345
113461993-09-06 Noah Friedman <friedman@gnu.org>
11347
11348 * Makefile.in: *** empty log message ***
11349
113501993-07-30 David J. MacKenzie <djm@gnu.org>
11351
11352 * Makefile.in: *** empty log message ***
11353
113541993-07-24 Richard Stallman <rms@gnu.org>
11355
11356 * src/bison.s1: *** empty log message ***
11357
113581993-07-24 Richard Stallman <rms@gnu.org>
11359
11360 * bison.simple: *** empty log message ***
11361
113621993-07-08 David J. MacKenzie <djm@gnu.org>
11363
11364 * Makefile.in: *** empty log message ***
11365
113661993-07-04 Richard Stallman <rms@gnu.org>
11367
11368 * src/bison.s1: *** empty log message ***
11369
113701993-07-04 Richard Stallman <rms@gnu.org>
11371
11372 * bison.simple: *** empty log message ***
11373
113741993-06-26 David J. MacKenzie <djm@gnu.org>
11375
11376 * src/getargs.c: entered into RCS
11377
113781993-06-26 David J. MacKenzie <djm@gnu.org>
11379
11380 * doc/bison.texinfo: *** empty log message ***
11381
11382 * doc/bison.1: New file.
11383
113841993-06-25 Richard Stallman <rms@gnu.org>
11385
11386 * src/getargs.c: New file.
11387
113881993-06-16 Richard Stallman <rms@gnu.org>
11389
11390 * src/bison.s1: *** empty log message ***
11391
113921993-06-16 Richard Stallman <rms@gnu.org>
11393
11394 * bison.simple: *** empty log message ***
11395
113961993-06-03 Richard Stallman <rms@gnu.org>
11397
11398 * src/bison.s1: New file.
11399
114001993-06-03 Richard Stallman <rms@gnu.org>
11401
11402 * doc/bison.texinfo: *** empty log message ***
11403
114041993-06-03 Richard Stallman <rms@gnu.org>
11405
11406 * bison.simple: New file.
11407
114081993-05-19 Richard Stallman <rms@gnu.org>
11409
11410 * doc/bison.texinfo: New file.
11411
114121993-05-07 Noah Friedman <friedman@gnu.org>
11413
11414 * Makefile.in: *** empty log message ***
11415
114161993-04-28 Noah Friedman <friedman@gnu.org>
11417
11418 * src/reader.c: *** empty log message ***
11419
114201993-04-23 Noah Friedman <friedman@gnu.org>
11421
11422 * src/alloc.h: entered into RCS
11423
114241993-04-20 David J. MacKenzie <djm@gnu.org>
11425
11426 * src/version.c: *** empty log message ***
11427
11428 * src/files.c, src/allocate.c:
11429 entered into RCS
11430
11431 * src/reader.c: *** empty log message ***
11432
11433 * src/lex.c: entered into RCS
11434
11435 * src/conflicts.c: New file.
11436
11437 * src/symtab.c: entered into RCS
11438
11439 * src/alloc.h: New file.
11440
11441 * src/LR0.c: entered into RCS
11442
114431993-04-18 Noah Friedman <friedman@gnu.org>
11444
11445 * src/reader.c: New file.
11446
11447 * src/version.c: *** empty log message ***
11448
114491993-04-18 Noah Friedman <friedman@gnu.org>
11450
11451 * Makefile.in: *** empty log message ***
11452
114531993-04-17 Noah Friedman <friedman@gnu.org>
11454
11455 * Makefile.in: *** empty log message ***
11456
114571993-04-15 Richard Stallman <rms@gnu.org>
11458
11459 * src/main.c, src/files.c:
11460 New file.
11461
114621993-04-15 Noah Friedman <friedman@gnu.org>
11463
11464 * configure.in: entered into RCS
11465
11466 * configure.in: *** empty log message ***
11467
11468 * configure.in: New file.
11469
114701993-04-14 Richard Stallman <rms@gnu.org>
11471
11472 * Makefile.in: New file.
11473
114741993-04-13 Richard Stallman <rms@gnu.org>
11475
11476 * src/version.c: New file.
11477
114781993-03-25 Richard Stallman <rms@gnu.org>
11479
11480 * src/output.c: entered into RCS
11481
114821992-09-25 Richard Stallman <rms@gnu.org>
11483
11484 * configure.bat: entered into RCS
11485
114861992-06-22 Richard Stallman <rms@gnu.org>
11487
11488 * src/vmsgetargs.c: entered into RCS
11489
114901992-06-22 Richard Stallman <rms@gnu.org>
11491
11492 * doc/bison.rnh: entered into RCS
11493
114941992-04-20 David J. MacKenzie <djm@gnu.org>
11495
11496 * README: entered into RCS
11497
114981992-01-22 Richard Stallman <rms@gnu.org>
11499
11500 * src/machine.h: entered into RCS
11501
115021991-12-21 Richard Stallman <rms@gnu.org>
11503
11504 * src/lalr.c, src/closure.c:
11505 entered into RCS
11506
115071991-12-20 Richard Stallman <rms@gnu.org>
11508
11509 * src/state.h: entered into RCS
11510
115111991-12-18 Richard Stallman <rms@gnu.org>
11512
11513 * src/print.c, src/nullable.c, src/derives.c:
11514 entered into RCS
11515
115161991-11-03 David J. MacKenzie <djm@gnu.org>
11517
11518 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
11519 entered into RCS
11520
115211988-09-09 Richard Stallman <rms@gnu.org>
11522
11523 * src/bison.hairy: entered into RCS
11524
115251987-12-16 Richard Stallman <rms@gnu.org>
11526
11527 * REFERENCES: entered into RCS
dc546b0f 11528
f294a2c2
AD
11529-----
11530
33167b8b 11531Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
dc546b0f 115321998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
f294a2c2 11533
33167b8b 11534This file is part of Bison, the GNU Compiler Compiler.
f294a2c2 11535
33167b8b 11536Bison is free software; you can redistribute it and/or modify
f294a2c2
AD
11537it under the terms of the GNU General Public License as published by
11538the Free Software Foundation; either version 2, or (at your option)
11539any later version.
11540
33167b8b 11541Bison is distributed in the hope that it will be useful,
f294a2c2
AD
11542but WITHOUT ANY WARRANTY; without even the implied warranty of
11543MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11544GNU General Public License for more details.
11545
11546You should have received a copy of the GNU General Public License
33167b8b 11547along with Bison; see the file COPYING. If not, write to
f294a2c2
AD
11548the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
11549Boston, MA 02111-1307, USA.