]> git.saurik.com Git - bison.git/blame - ChangeLog
(output_edge): Don't quote linestyle arg.
[bison.git] / ChangeLog
CommitLineData
7eb453ac
PE
12005-02-28 Paul Eggert <eggert@cs.ucla.edu>
2
3 * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
4 example, reported by Derek M Jones. Also, make the example even
5 more outrageous, to better illustrate how bad the problem is.
6
4c04c52a
PE
72005-02-24 Paul Eggert <eggert@cs.ucla.edu>
8
9 * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
10 putsym. Typo reported by Sebastian Piping.
11
a61e1620
PE
122005-02-23 Paul Eggert <eggert@cs.ucla.edu>
13
14 * doc/bison.texinfo (Language and Grammar): some -> same
15 (Epilogue): int he -> in the
16 Typos reported by Sebastian Piping via Justin Pence.
17
9ec93868
PE
182005-02-07 Paul Eggert <eggert@cs.ucla.edu>
19
20 * tests/glr-regression.at (Improper handling of embedded actions
21 and dollar(-N) in GLR parsers): Renamed from "Improper handling of
22 embedded actions and $-N in GLR parsers", work around an Autoconf bug
23 with dollar signs in test names.
24 * tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
25 for a similar reason.
26
73ce7e7e
PE
272005-01-28 Paul Eggert <eggert@cs.ucla.edu>
28
29 * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
30 wants to redefine G_VIEW.
31
2e72b98e
PE
322005-01-27 Paul Eggert <eggert@cs.ucla.edu>
33
34 * src/vcg.c (get_view_str): Remove case for normal_view.
35 Problem reported by twlevo@xs4all.nl.
36
e0d634e5
PE
372005-01-24 Paul Eggert <eggert@cs.ucla.edu>
38
ccf830a4
PE
39 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
40 Problem reported by twlevo@xs4all.nl.
41
e0d634e5
PE
42 * doc/bison.texinfo: Change @dircategory from "GNU programming
43 tools" to "Software development". Requested by Richard Stallman
44 via Karl Berry.
45
7bbc8cb0
PE
462005-01-23 Paul Eggert <eggert@cs.ucla.edu>
47
48 * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
49 Problem reported by twlevo@xs4all.nl.
50
08b770bc
PE
512005-01-21 Paul Eggert <eggert@cs.ucla.edu>
52
53 * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
54 keyword; it's not needed with modern compilers, and it doesn't
55 affect correctness with older compilers. Suggested by
56 twlevo@xs4all.nl.
57
95f22ad2
PE
582005-01-17 Paul Eggert <eggert@cs.ucla.edu>
59
60 * data/glr.c (yyuserAction): Add "default: break;" case to pacify
61 gcc -Wswitch-default.
62 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
63 * data/yacc.c (yyparse): Likewise.
64
d229d15c
PE
652005-01-12 Paul Eggert <eggert@cs.ucla.edu>
66
67 * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
68 already. Let config.h define any nonstandard values.
69
ecadd90f
PE
702005-01-10 Paul Eggert <eggert@cs.ucla.edu>
71
72 * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
73 for the benefit of slower hosts. Problem reported by
74 Nelson H. F. Beebe.
75
213744b5
PE
762005-01-07 Paul Eggert <eggert@cs.ucla.edu>
77
78 * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
79 being defined and not used.
80 * data/lalr1.cc (yyparse): Likewise.
81 Use "if (false)" rather than "if (0)".
82
249d3236
PE
832005-01-05 Paul Eggert <eggert@cs.ucla.edu>
84
85 * TODO: Mention that we should allow NUL bytes in tokens.
86
987cc1fb
PE
872005-01-02 Paul Eggert <eggert@cs.ucla.edu>
88
89 * src/scan-skel.l (<<EOF>>): Don't close standard output.
90 Problem reported by Hans Aberg.
91
08fe02d9
PE
922005-01-01 Paul Eggert <eggert@cs.ucla.edu>
93
94 * src/getargs.c (version): Happy new year; update overall
95 program copyright date from 2004 to 2005.
96
97 * src/scan-skel.l ("@output ".*\n): Don't close standard output.
98 Problem reported by Hans Aberg.
99 * tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
100 (Output file names.): Add a test for the case when standard output
101 is closed.
102
010c0266
PE
1032004-12-26 Paul Eggert <eggert@cs.ucla.edu>
104
105 * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
106 to fix an oversight in the Bison 2.0 manual.
107
da12206a
PE
1082004-12-25 Paul Eggert <eggert@cs.ucla.edu>
109
110 * NEWS: Version 2.0. Reformat the existing news items since
111 1.875, so that related items are grouped together.
3a4734aa 112 * configure.ac (AC_INIT): Bump version to 2.0.
da12206a
PE
113 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
114
c935d934
PE
115 * tests/torture.at (Exploding the Stack Size with Alloca): Set
116 YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
117 otherwise, we're not testing alloca. Unfortunately there's no
118 simple way to consult HAVE_ALLOCA here.
119
da12206a
PE
120 * data/lalr1.cc (yydestruct_): Pacify unused variable warning
121 for yymsg, too.
122
123 * src/LR0.c (new_itemsets): Use memset rather than zeroing by
124 hand. This avoids a warning about comparing int to size_t when
125 GCC warnings are enabled.
126
0a2c5137
PE
1272004-12-22 Paul Eggert <eggert@cs.ucla.edu>
128
d7e14fc0
PE
129 * NEWS: Bison-generated parsers no longer default to using the
130 alloca function (when available) to extend the parser stack, due
131 to widespread problems in unchecked stack-overflow detection.
132 * data/glr.c (YYMAXDEPTH): Remove undef when zero. It's the user's
133 responsibility to set it to a positive value. This lets the user
134 specify a value that is not a preprocessor constant.
135 * data/yacc.c (YYMAXDEPTH): Likewise.
136 (YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
137 * doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
138 to be a compile-time constant. However, explain the constraints on it.
139 Also, explain the constraints on YYINITDEPTH.
140 (Table of Symbols): Explain that alloca is no longer the default.
141 Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
142 to 1.
143
0a2c5137
PE
144 * doc/bison.texinfo (Location Default Action): Mention that n must
145 be zero when k is zero. Suggested by Frank Heckenbach.
146
e019c247
AD
1472004-12-22 Akim Demaille <akim@epita.fr>
148
149 * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
150 (parser::state_type, parser::semantic_type, parser::location_type):
151 Private, not public.
152 (parser::parse): Return ints, not bool.
153 Returning a bool introduces a problem: 0 corresponds to false, and
154 it seems weird to return false on success. Returning true changes
155 the conventions for yyparse.
156 Alternatively we could return void and send an exception.
157 There is no clear consensus (yet?).
158 (state_stack, semantic_stack, location_stack): Rename as...
159 (state_stack_type, semantic_stack_type, location_stack_type): these.
160 Private, not public.
161 * tests/c++.at: New.
162 * tests/testsuite.at, tests/Makefile.am: Adjust.
163
72731bb7
AD
1642004-12-21 Akim Demaille <akim@epita.fr>
165
166 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
167
9a0d8bec
AD
1682004-12-21 Akim Demaille <akim@epita.fr>
169
170 Don't impose std::string for filenames.
171
172 * data/lalr1.cc (b4_filename_type): New.
173 (position::filename): Use it.
174 (parser.hh): Move the inclusion of stack.hh and location.hh below
175 the user code, so that needed headers for the filename type can be
176 included first.
72731bb7
AD
177 Forward declare them before the user code.
178 * tests/Makefile.am (check-local, installcheck-local): Pass
179 TESTSUITEFLAGS to the TESTSUITE.
9a0d8bec 180
99880de5
AD
1812004-12-20 Akim Demaille <akim@epita.fr>
182
183 Use more STL like names: my_class instead of MyClass.
184
185 * data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
186 (SemanticStack, SemanticType, StateStack, StateType)
187 (TokenNumberType, Stack, Slice, Traits, Parser::location)
188 (Parser::value): Rename as...
189 (location_stack, location_type, rhs_number_type, semantic_stack)
190 (semantic_type, state_stack, state_type, token_number_type, stack)
191 (slice, traits, parser::yylloc, parser::yylval): these.
192
193 * tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
194
9bec482e
PE
1952004-12-19 Paul Eggert <eggert@cs.ucla.edu>
196
197 * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
198 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
199
f6fbd3da
PE
2002004-12-17 Paul Eggert <eggert@cs.ucla.edu>
201
202 Remove uses of 'short int' and 'unsigned short int'. This raises
203 some arbitrary limits. It uses more memory but nowadays that's
204 not much of an issue.
205
206 This change does not affect the generated parsers; that's a different
207 task, as some users will want to conserve memory there.
208
209 Ideally we should use size_t to represent all object counts, and
210 something like ptrdiff_t to represent signed differences of object
211 counts; but that will require more code-cleanup than I have the
212 time to do right now.
213
214 * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
215 Use size_t, not int or short int, to count objects.
216 * src/closure.c (nritemset, closure): Likewise.
217 * src/closure.h (nritemset, closure): Likewise.
218 * src/nullable.c (nullable_compute): Likewise.
219 * src/print.c (print_core): Likewise.
220 * src/print_graph.c (print_core): Likewise.
221 * src/state.c (state_compare, state_hash): Likewise.
222 * src/state.h (struct state): Likewise.
223 * src/tables.c (default_goto, goto_actions): Likewise.
224
225 * src/gram.h (rule_number, rule): Use int, not short int.
226 * src/output.c (prepare_rules): Likewise.
227 * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
228 errs, reductions): Likewise.
229 * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
230 Likewise.
231 * src/tables.c (vector_number, tally, action_number,
232 ACTION_NUMBER_MINIMUM): Likewise.
233 * src/output.c (muscle_insert_short_int_table): Remove.
234
efeed023
AD
2352004-12-17 Akim Demaille <akim@epita.fr>
236
237 * data/lalr1.cc: Extensive Doxygenation.
238 (error_): Rename as...
239 (error): this, since it is visible to the user.
240 Adjust callers.
241 (Parser::message): Now an automatic variable from...
242 (Parser::yyreport_syntax_error_): here.
243 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
244 Parser::error.
245 * tests/input.at: Escape $.
246
bc82c5a5
PE
2472004-12-16 Paul Eggert <eggert@cs.ucla.edu>
248
249 * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
250 Parenthesize rhs to avoid obscure problems with mistakes like
251 "foo$$bar = foo$1bar;". Problem reported by twlevo at xs4all.
252 * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
253 b4_rhs_location): Likewise.
254 * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
255 b4_rhs_location): Likewise.
256
fd19f271
AD
2572004-12-16 Akim Demaille <akim@epita.fr>
258
259 * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
260 yacc.c: be sure to stay within yycheck_.
261 * tests/actions.at: Re-enable C++ tests.
262
10454ea4
AD
2632004-12-16 Akim Demaille <akim@epita.fr>
264
265 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
266 real.
267
c5b95ccf
AD
2682004-12-16 Akim Demaille <akim@epita.fr>
269
270 Use #define to handle the %name-prefix.
271
272 * data/glr.c, data/yacc.c: Comment changes.
273 * data/lalr1.cc (yylex): Use #define to select the name of yylex,
274 so that one can refer to yylex in the parser file, and have it
275 renamed, as is the case with other skeletons.
276
617a8f12
AD
2772004-12-16 Akim Demaille <akim@epita.fr>
278
279 Move lalr1.cc internals into yy*.
280
281 * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
282 (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
283 (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
284 (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
285 (empty_, final_, terror_, errcode_, ntokens_)
286 (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
287 (looka_, ilooka_, error_range_, nerrs_):
288 Rename as...
289 (yysemantic_stack_, yylocation_stack_, yystate_stack_)
290 (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
291 (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
292 (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
293 (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
294 (yyfinal_, yyterror_, yyerrcode_, yyntokens_)
295 (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
296 (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
297 these.
298
1e547e6e
PE
2992004-12-15 Paul Eggert <eggert@cs.ucla.edu>
300
301 Fix some problems reported by twlevo at xs4all.
302 * src/symtab.c (symbol_new): Report an error if the input grammar
303 contains too many symbols. This is better than calling abort() later.
304 * src/vcg.h (enum layoutalgorithm): Remove. All uses removed.
305 (struct node, struct graph):
306 Rename member expand to stretch. All uses changed.
307 (struct graph): Remove member layoutalgorithm. All uses removed.
308 * src/vcg.c (get_layoutalgorithm_str): Remove. All uses removed.
309 * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
310 All uses changed.
311 (N_STRETCH): Rename from N_EXPAND. All uses changed.
312
735d6bd4
AD
3132004-12-15 Akim Demaille <akim@epita.fr>
314
315 * data/lalr1.cc: Normalize /** \brief ... */ to ///.
316 Add more Doxygen comments.
317 (symprint_, stack_print_, reduce_print_, destruct_, pop)
318 (report_syntax_error_, translate_): Rename as...
319 (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
320 (yypop_, yyreport_syntax_error_, yytranslate_): this.
321
2e1f5829
AD
3222004-12-15 Akim Demaille <akim@epita.fr>
323
324 * data/lalr1.cc (lex_): Rename as...
325 (yylex_): this.
326 Move the trace here.
327 Take the %name-prefix into account.
328 Reported by Alexandre Duret-Lutz.
329
a3cb6248
AD
3302004-12-15 Akim Demaille <akim@epita.fr>
331
332 Simplify the C++ parser constructor.
333
334 * data/lalr1.cc (debug_): Rename as...
335 (yydebug_): so that the parser's internals are always in the yy*
336 pseudo namespace.
337 Adjust uses.
338 (b4_parse_param_decl): Remove the leading comma as it is now only
339 called as unique argument list.
340 (Parser::Parser): Remove the constructor accepting a location and
341 an initial debugging level.
342 Remove from the other ctor the argument for the debugging level.
343 (debug_level_type, debug_level, set_debug_level): New.
344
345 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust
346 constructor calls.
347
07fed891
AD
3482004-12-15 Akim Demaille <akim@epita.fr>
349
350 Remove b4_root related material: failure experiment
a3cb6248 351 (which goal was to allow to derive from a class).
07fed891
AD
352
353 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
354 definitions and uses.
355
e603eaa5
PE
3562004-12-14 Paul Eggert <eggert@cs.ucla.edu>
357
358 * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
359 not 2, since it's not portable to subtract 1 from the start of an
360 array. The new item 0 is never set or used. All uses changed.
361
362 (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
363 the default definition of YYLLOC_DEFAULT. Problem reported
364 by Frank Heckenbach.
365
fafb007d
PE
3662004-12-12 Paul Eggert <eggert@cs.ucla.edu>
367
368 * data/glr.c (YYRHSLOC): Don't have two definitions, one for
369 the normal case and one for the error case. Just use the
370 first one uniformly. Problem reported by Frank Heckenbach.
371 (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
372 use exactly the same macro in both places.
373 (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
374 so that the normal-case YYRHSLOC works for the error case too.
375 All uses changed.
376 * data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
377 (YYLLOC_DEFAULT): Use the same macro as glr.c.
378 * doc/bison.texinfo (Location Default Action): Don't claim that
379 we have an array of locations. Use the same macro for both glr
380 and lalr parsers. Mention YYRHSLOC. Mention what happens when
381 the index is 0.
382
48814dcd
PE
3832004-12-10 Paul Eggert <eggert@cs.ucla.edu>
384
a4e1a53b
PE
385 * HACKING: Update email addresses to send announcements to.
386
48814dcd
PE
387 * configure.ac (AC_INIT): Bump version to 1.875f.
388
337116ba
PE
3892004-12-10 Paul Eggert <eggert@cs.ucla.edu>
390
391 * NEWS: Version 1.875e.
392 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
393
394 * src/scan-skel.l: Include "complain.h", for "fatal".
395
396 * src/relation.h (relation_print, relation_digraph):
397 Relation sizes are of type relation_node, not size_t (this is
398 merely a doc fix, since the two types are equivalent).
399 (relation_transpose): Relation sizes are of type relation_node,
400 not int.
401 * src/relation.c: Likewise.
402 (top, infinity): Now of type relation_node, not int.
403 (traverse, relation_transpose): Use relation_node, not int.
404
405 * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
406 with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
407 (yyparse): Remove unused local introduced in 2004-10-25 patch.
408
409 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
68b082af 410 specifying whether the test should be skipped. Use it tp
337116ba 411 specify that the [%defines %skeleton "lalr1.cc"] tests currently
68b082af 412 fail on some hosts, and should be skipped.
337116ba 413
da2a7671
PE
4142004-12-08 Paul Eggert <eggert@cs.ucla.edu>
415
416 * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers
417 changed to use xcalloc, xnmalloc, xnrealloc, respectively,
418 unless otherwise specified below.
419
420 * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
421 to allocate kernel_base, kernel_items, kernel_size, since
422 they needn't be initialized to 0.
423 (allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
424 * src/closure.c (new_closure): Likewise, for itemset.
425 * src/derives.c (derives_compute): Likewise, for delts, derives, q.
426 * src/lalr.c (set_goto_map): Likewise, for temp_map.
427 (initialize_F): Likewise, for reads, edge, reads[i], includes[i].
428 (build_relations): Likewise for edge, states1, includes.
429 * src/nullable.c (nullable_compute): Likewise, for squeue, relts.
430 * src/reader.c (packgram): Likewise, for ritem, rules.
431 * src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
432 * src/relation.c (relation_digraph): Likewise for VERTICES.
433 (relation_transpose): Likewise for new_R, end_R.
434 * src/symtab.c (symbols_token_translations_init): Likewise for
435 token_translations.
436 * src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
437 (token_actions): Likewise for yydefact, actrow, conflrow,
438 conflict_list.
439 (save_column): Likewise for froms[symno], tos[symno].
440 (goto_actions): Likewise for state_count.
441 (pack_table): Likewise for base, pos, check.
442 (tables_generate): Likewise for width.
443
444 * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
445 for initial core. Just have a separate core, so we needn't worry
446 about whether kernel_size and kernel_base are initialized.
447
448 * src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
449 kernel_size, kernel_items): Remove unnecessary initialization.
450 * src/conflicts.c (conflicts): Likewise.
451 * src/derives.c (derives): Likewise.
452 * src/muscle_tablc (muscle_insert): Likewise.
453 * src/relation.c (relation_digraph): Likewise.
454 * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
455 conflrow, conflict_table, conflict_list, table, check):
456 Likewise.
457
458 * src/closure.c (new_closure): Arg is of type unsigned int, not int.
459 This is because all callers pass unsigned int.
460 * src/closure.h (new_closure): Likewise.
461
462 * src/lalr.c (initialize_F): Initialize reads[i] in all cases.
463 (build_relations): Initialize includes[i] in all cases.
464 * src/reader.c (packgram): Always initialize rules[ruleno].prec
465 and rules[ruleno].precsym. Initialize members in order.
466 * src/relation.c (relation_transpose): Always initialize new_R[i]
467 and end_R[i].
468 * src/table.c (conflict_row): Initialize 0 at end of conflict_list.
469
470 * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
471 conflict_list[0] was always 0, but now it isn't initialized.
472
473 * src/table.c (table_grow): When conflict_table grew, the grown
474 area wasn't cleared. Fix this.
475
476 * lib/.cvsignore: Add strdup.c, strdup.h.
477 * m4/.cvsignore: Add strdup.m4.
478
00baeeac
PE
4792004-12-07 Paul Eggert <eggert@cs.ucla.edu>
480
481 * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
482 * src/lalr.c (set_goto_map): Don't allow ngotos to equal
483 GOTO_NUMBER_MAXIMUM, since we occasionally compute
484 ngotos + 1 without checking for overflow.
485 (build_relations): Use END_NODE, not -1, to denote end of edges.
486 * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
487 build_relations): Use goto_number, not int, for goto numbers.
488 * src/tables.c (save_column, default_goto): Likewise.
489
be3d9d42
AD
4902004-11-23 Akim Demaille <akim@epita.fr>
491
492 * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
493 of #defining from yystype.
494 Don't typedef yystype, C++ does not need it.
495 This lets it possible to forward declare it as union.
496
78e526d5
PE
4972004-11-23 Paul Eggert <eggert@cs.ucla.edu>
498
499 * bootstrap (gnulib_modules): Add extensions.
500 Problem reported by Jim Meyering.
501
afbb696d
PE
5022004-11-22 Paul Eggert <eggert@cs.ucla.edu>
503
504 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
505 src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
506 src/system.h, src/tables.c: XFREE -> free, to accommodate
507 recent change to gnulib xalloc.h.
78e526d5 508 Problem reported by Jim Meyering.
afbb696d 509
c1f8f16a
AD
5102004-11-17 Akim Demaille <akim@epita.fr>
511
512 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
513
5142004-10-28 Akim Demaille <akim@epita.fr>,
9a1e9989
AD
515 Alexandre Duret-Lutz <adl@gnu.org>
516
517 * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
518 changes.
519 (YYCDEBUG): Adjust.
520 Use it instead of cdebug_.
521 (Parser::debug_stream, Parser::set_debug_stream): New.
522 (Parser::symprint_): Define cdebug_ for temporary backward
523 compatibility.
524 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
525 debug_stream ().
526
68e11668
AD
5272004-11-17 Akim Demaille <akim@epita.fr>
528
529 * data/lalr1.cc (Parser:print_): Remove, use %printer instead.
530 * tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
531 * tests/calc.at (_AT_DATA_CALC_Y): Ditto.
532 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
533
97cbc73e
PE
5342004-10-27 Paul Eggert <eggert@cs.ucla.edu>
535
536 * data/glr.c (yyloc_default): Remove; not used.
537 Problem reported by Frank Heckenbach.
538
e342c3be
AD
5392004-10-25 Akim Demaille <akim@epita.fr>
540
541 * data/glr.c (YYRHSLOC): Move its definition next to its uses.
542 Introduce another definition to address simple location arrays.
543 (yyGLRStack): New member: yyerror_range.
544 (yyrecoverSyntaxError, yyparse): Update it.
545 (yyrecoverSyntaxError): Use it when shifting the error token to
546 have an accurate range, equivalent to the one computed by both
547 yacc.c and lalr1.cc.
548 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
549 that column numbers start at column 0, as per GNU Coding
550 Standards, the others tests, and the doc.
551 (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
552 Adjust to the above change (first column is 0).
553 And adjust the location of the "<error>", now covering the whole
554 line.
555
93602feb
PE
5562004-10-22 Akim Demaille <akim@epita.fr>
557 and Paul Eggert <eggert@cs.ucla.edu>
558
559 Remove some arbitrary limits on goto numbers and relations.
560 * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
561 initial values, since they're never used.
562 (set_goto_map): ngotos is now unsigned, so test for overflow
563 by seeing whether it wraps around to zero.
564 * src/lalr.h (goto_number): Now size_t, not short int.
565 (GOTO_NUMBER_MAXIMUM): Remove.
566 * src/relation.c (relation_print, traverse, relation_transpose):
567 Check for END_NODE rather than looking at sign.
568 * src/relation.h (END_NODE): New macro.
569 (relation_node): Now size_t, not short int.
570
dba08b04
PE
5712004-10-22 Paul Eggert <eggert@cs.ucla.edu>
572
573 * doc/bison.texinfo (Language and Grammar): In example, "int" is a
574 keyword, not an identifier. Problem reported by Baron Schwartz in
575 <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
576
df09ef2e
AD
5772004-10-11 Akim Demaille <akim@epita.fr>
578
579 * src/symtab.c (symbol_check_alias_consistency): Also check
580 type names, destructors, and printers.
581 Reported by Alexandre Duret-Lutz.
582 Recode the handling of associativity and precedence in terms
583 of symbol_precedence_set.
584 Accept no redeclaration at all, not even equal to the previous
585 value.
586 (redeclaration): New.
587 Use it to factor redeclaration complaints.
588 (symbol_make_alias): Don't set the type of the alias, let
589 symbol_check_alias_consistency do it as for other features.
590 * src/symtab.h (symbol): Add new member prec_location, and
591 type_location.
592 * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
593 * tests/input.at (Incompatible Aliases): New.
594
146bc99d
PE
5952004-10-09 Paul Eggert <eggert@cs.ucla.edu>
596
597 .cvsignore fixes to accommodate gnulib changes,
598 and the practice of naming build directories "_build".
599 * .cvsignore: Add "_*". Sort.
600 * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
601 * m4/.cvsignore: Add "*_gl.m4".
602
e503aa60
AD
6032004-10-06 Akim Demaille <akim@epita.fr>
604
605 * src/parse-gram.y (add_param): Fix the truncation of trailing
606 spaces.
607
b4a20338
AD
6082004-10-05 Akim Demaille <akim@epita.fr>
609
610 In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
611 whether the reducion was empty or not. This leaves room to
612 improve the use of YYLLOC_DEFAULT in such a case.
613 lalr1.cc is still experimental, so changing this is acceptable.
614 And finally, there are probably not many users who changed the
615 handling of locations in GLR, so changing is admissible too.
616
617 * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
618 empty reduction, set @$ to an empty location ending the previously
619 stacked symbol.
620 Adjust uses to make sure the code is triggered on empty
621 reductions.
622 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
623 expected output: empty reductions have empty locations.
624
f85a5e6f
AD
6252004-09-29 Akim Demaille <akim@epita.fr>
626
627 * data/lalr1.cc: Move towards a more standard C++ coding style
628 for templates: Class < T > -> Class<T>.
629
b203fc2c
AD
6302004-09-29 Akim Demaille <akim@epita.fr>
631
632 * data/lalr1.cc: Reinstall the former ctor, for sake of
633 compatibility, but warn it will be removed.
634 Move towards a more standard C++ coding style (i.e., type *var ->
635 type* var).
636
5b7e1e73
PE
6372004-09-27 Paul Eggert <eggert@cs.ucla.edu>
638
3fee967f
PE
639 * src/parse-gram.y (add_param): Rewrite to avoid strchr,
640 since it's less likely to work if NULs are involved in the future.
5b7e1e73 641
0dcca5c2
AD
6422004-09-27 Akim Demaille <akim@epita.fr>
643
644 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
645
6dde1c82
AD
6462004-09-27 Akim Demaille <akim@epita.fr>
647
648 * data/lalr1.cc (b4_parse_param_decl_1): New.
b203fc2c 649 (b4_parse_param_decl): Use it to have different names between attribute
6dde1c82
AD
650 and argument names.
651 (b4_cc_constructor_call): Likewise.
652
b233d555
AD
6532004-09-24 Akim Demaille <akim@epita.fr>
654
655 * src/parse-gram.y (add_param): Strip the leading and trailing
656 blanks from a formal argument declaration.
657 (YY_LOCATION_PRINT): New.
658
619404e3
AD
6592004-09-24 Akim Demaille <akim@epita.fr>
660
661 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
662 after the location.
663
dd8d9022
AD
6642004-09-24 Akim Demaille <akim@epita.fr>
665
666 * doc/bison.texinfo (Table of Symbols): Sort.
667
0092f063
AD
6682004-09-21 Akim Demaille <akim@epita.fr>
669
670 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
671 the useless parentheses.
672 Suggested by Paul Eggert.
673
451364ed
AD
6742004-09-20 Akim Demaille <akim@epita.fr>
675
676 Let the initial-action act on the look-ahead, and use it for the
677 "initial push" (corresponding to an hypothetical beginning-of-file).
678 And let lalr1.cc honor %initial-action.
679
680 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
681 example.
682 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
683 (Parser::Parser): Remove the ctor that used to initialize it.
684 (Parser::parse): Like in the other skeletons, issue the "starting
685 parse" message before any action.
686 Honor %initial-action.
687 Initialize the stacks with the lookahead.
688 * data/yacc.c: Let $$ and @$ in %initial-action designate the
689 look-ahead.
690 Push them in the stacks.
691 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
692
18d192f0
AD
6932004-09-20 Akim Demaille <akim@epita.fr>
694
695 * doc/bison.texinfo (Initial Action Decl): New.
696
b8458aa5
AD
6972004-09-20 Akim Demaille <akim@epita.fr>
698
699 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
700 clearer criterion to define it.
701 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
702 When reducing on an empty RHS, use the latest stacked location as
703 location.
704 yylloc is not always available.
705 * data/glr.c: Likewise.
706 Also, honor initial-actions.
707
3fc16193
AD
7082004-09-20 Akim Demaille <akim@epita.fr>
709
710 * data/yacc.c (YY_LOCATION_PRINT): New.
711 Define when we know YYLTYPE's structure, i.e., when the default
712 YYLLOC_DEFAULT is used.
713 * data/c.m4 (b4_yysymprint_generate): Use it.
714 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
715 value of the result.
716 (error_start_): Replace with...
717 (error_range_): this location array.
718 This allows to replace code relying on the implementation of
719 locations by portable code.
720 * data/yacc.c (yylerrsp): Replace with...
721 (yyerror_range): this.
722 Every time a token is popped, update yyerror_range[0], to have an
723 accurate location for the error token.
724 * data/glr.c (YY_LOCATION_PRINT): New.
725 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
726 deference a pointer.
727 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
728 report the location in %printers.
729
730 * src/scan-skel.l: Instead of abort, report error messages to ease
731 understanding skeleton scanning failures.
732
ecfe33e7
AD
7332004-09-16 Akim Demaille <akim@epita.fr>
734
735 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
736 (iterator, const_iterator): these, to be more in the C++ spirit.
737 Also, return reverse iterators so that when displaying the stack
738 we display its bottom first.
739 (Parser::stack_print_, Parser::reduce_print_): Match the messages
740 from yacc.c.
741 We should probably use vector here though.
742
1576d44d
AD
7432004-09-16 Akim Demaille <akim@epita.fr>
744
745 Have more complete shift traces.
746
747 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
748 to report Shifts instead of ad hoc YYDPRINTF invocations,
749 including for the error token.
750 * data/lalr1.cc (symprint_): Output the location.
751 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
752 output the location within the %printer.
753 Activate GLR tests, at least to make sure they compile properly.
754 They still don't pass though.
755 * tests/calc.at: Adjust expect verbose output, since now "Entering
756 state..." is on a different line than the "Shifting" message.
757
9c66f418
AD
7582004-09-08 Akim Demaille <akim@epita.fr>
759
760 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
761 Bison directive from the Bison file to the invocation of this
762 macro, so that these directives are passed to
763 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
764 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
765 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
766 the extra Bison directives instead of the whole series.
767 Change the grammar so that there are recoverable errors, and
768 unrecoverable errors. Now we can have the parser give up before
769 consuming the whole input. As a result we now can observe that
770 the lookahead is freed when needed.
771 Change the parser source to parse argv[1] instead of a hard coded
772 string.
773 Simplify yylex, and give a value and location to EOF.
774 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
775 passed directives already coded in the file.
776 Add some tests to check the location of "error".
777 For some tests, the C++ parser is correct, and not yacc.c.
778 For other tests, they provide different, but unsatisfying, values,
779 so keep the C++ value so that at least one parser is "correct"
780 according to the test suite.
781 (Actions after errors): Remove, this is subsumed by the
782 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
783
52d5733f
AD
7842004-09-06 Akim Demaille <akim@epita.fr>
785
786 * data/lalr1.cc: Adjust the indentation of the labels.
787 (Parser::pop): New.
788 Use it.
789
a0e68930
AD
7902004-09-06 Akim Demaille <akim@epita.fr>
791
792 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
793 argument, an informative message.
794 Call YY_SYMBOL_PRINT.
795 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
796 * data/lalr1.cc (destruct_): Likewise.
797 In addition, no longer depend on b4_yysymprint_generate and
798 b4_yydestruct_generate to generate these functions, do it "by
799 hand".
800
e757bb10
AD
8012004-09-03 Akim Demaille <akim@epita.fr>
802
803 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
804 invoked, yydestruct the lookahead.
805 * tests/calc.at (Calculator $1): Update the expected lengths of
806 traces: there is an added line for the discarded lookahead.
807 * doc/bison.texinfo (Destructor Decl): Some rewording.
808 Define "discarded" symbols.
809
0fe1f06d
AD
8102004-09-02 Akim Demaille <akim@epita.fr>
811
812 * data/lalr1.cc (translate_, destruct_): No reason to be static.
813
284acc8b
AD
8142004-09-02 Akim Demaille <akim@epita.fr>
815
816 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
817 (YYDSYMPRINTF): Rename as...
818 (YY_SYMBOL_PRINT): this.
819 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
820 two.
821 Use it instead of direct symprint_ calls.
822 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
823 one.
824
a5eb1ed2
AD
8252004-09-02 Akim Demaille <akim@epita.fr>
826
b7c72fe1
AD
827 * data/lalr1.cc (b4_yysymprint_generate): New.
828 (symprint_): New member function, defined when YYDEBUG.
829 Use it consistently instead of token/nterm debugging output by
830 hand.
a5eb1ed2
AD
831 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
832 %printer calls to use cdebug_ when using lalr1.cc.
833
417141dd
AD
8342004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
835
836 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
837 with #ifdef YYDEBUG.
838
2fa09258
AD
8392004-08-26 Akim Demaille <akim@epita.fr>
840
841 * doc/bison.texinfo (Implementing Loops): Rename as...
842 (Implementing Gotos/Loops): this.
843
9378b508
PE
8442004-08-13 Paul Eggert <eggert@cs.ucla.edu>
845
846 Adjust to latest gnulib.
847 * bootstrap (gnulib_modules): Add xalloc-die.
848 Set LC_ALL=C so that file names sort consistently.
849 Prefer the gnulib copies of gettext.m4, glibc21.m4,
850 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
851 uintmax_t.m4, ulonglong.m4.
852 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
853 po.m4 since we are now using _gl.m4 instead.
854
87a8ad5c
PE
8552004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
856
857 * src/scan-action.l: Remove. Scanning of semantic actions is
858 handled in scan-gram.l.
859
dca81a78
PE
8602004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
861
862 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
863
864 * src/location.h (struct): The file member is a uniqstr.
865 (equal_boundaries): Use UNIQSTR_EQ for comparison.
866
c9cbf7c5
PE
8672004-07-22 Paul Eggert <eggert@cs.ucla.edu>
868
869 Fix bug with non-%union parsers that have printers or destructors,
870 which led to a Bison core dump. Reported by Peter Fales in
871 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
2fa09258 872
c9cbf7c5
PE
873 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
874 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
875 not to our own type.
876 * src/output.c (symbol_destructors_output, symbol_printers_output):
877 Don't assume %union.
878 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
879 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
880 UNION-FLAG. All callers changed.
881 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
882 Use type char, not unsigned int, when declaring an array of char;
883 this lets us remove a cast.
884 (Printers and Destructors): Add non-%union test cases.
885
fa7e68c3
PE
8862004-06-21 Paul Eggert <eggert@cs.ucla.edu>
887
888 * doc/bison.texinfo: Minor editorial changes, mostly to the new
889 GLR writeups. E.g., avoid frenchspacing and the future tense,
890 change "lookahead" to "look-ahead", and change "wrt" to "with
891 respect to".
2fa09258 892
fa7e68c3
PE
8932004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
894
895 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
896 New sections, split off from the GLR Parsers section. Put the new
897 Simple GLR Parser near the start of the GLR section, for clarity.
898 Rewrite connective text.
899
99a9344e
PE
9002004-06-21 Frank Heckenbach <frank@g-n-u.de>
901
902 * doc/bison.texinfo (Simple GLR Parsers): New section.
903
8dd162d3
PE
9042004-06-21 Paul Eggert <eggert@cs.ucla.edu>
905
906 * NEWS, TODO, doc/bison.texinfo:
907 Use "look-ahead" instead of "lookahead", to be consistent.
908 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
909 while we're fixing "look-ahead".
910 * src/conflicts.c (shift_set): Renamed from shiftset.
911 (look_ahead_set): Renamed from lookaheadset.
912 * src/print.c: Likewise.
913 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
914 name for "lookahead".
915 (report_types, usage): Likewise.
916 * src/getargs.h (report_look_ahead_tokens): Renamed from
917 report_lookaheads.
918 * src/lalr.c (compute_look_ahead_tokens): Renamed from
919 compute_lookaheads.
920 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
921 (look_ahead_tokens_print): Renamed from lookaheads_print.
922 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
923 state_rule_lookaheads_print.
924 * src/state.h: Likewise.
925 (reductions.look_ahead_tokens): Renamed from lookaheads.
926 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
927 AT_DATA_LOOKAHEADS_GRAMMAR.
928
57a90331
PE
9292004-06-03 Paul Eggert <eggert@cs.ucla.edu>
930
931 * README: Update location of patched M4 distribution.
932
8ed3234a
PE
9332004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
934
935 Don't assume the C++ compiler takes the same arguments as the C compiler
936 (trivial change).
937 * configure.ac (O0CXXFLAGS): New var.
938 * tests/atlocal.in (CXXFLAGS): Use it.
939
07971983
PE
9402004-05-29 Paul Eggert <eggert@cs.ucla.edu>
941
942 Fix some "make check" problems with C++ reported by
943 Albert Chin-A-Young for Tru64 C++ in this thread:
944 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
945
946 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
947 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
948 Output to a .cc file for C++, not to a .c file.
949 * tests/calc.at (AT_CHECK_CALC): Likewise.
950 * tests/regression.at (AT_CHECK_DANCER): Likewise.
951 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
952
29058652
PE
9532004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
954
955 * tests/calc.at, tests/actions.at: Workaround for SGI
956 C++ compiler. (trivial change)
957
62cb8a99
PE
9582004-05-27 Paul Eggert <eggert@cs.ucla.edu>
959
fd418816
PE
960 Spent a few hours checking out which prerequisite versions the
961 current sources actually require. I went all the way back to
962 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
963 a seemingly endless set of combinations of versions more recent
964 than that. The bottom line is that the current sources require
965 fairly recent versions of the build tools, and it'll be some work
966 to change this.
967 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
968 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
969 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
970 Add comments explaining why those particular versions are
971 currently needed.
2fa09258 972
62cb8a99
PE
973 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
974 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
161a71f3 975 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
62cb8a99
PE
976
977 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
978 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
979
caa52c10
PE
9802004-05-26 Paul Eggert <eggert@cs.ucla.edu>
981
982 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
983 0.11.5. Suggested by Bruno Haible.
984 * bootstrap: Remove gettext version checking.
985
986 * doc/bison.texinfo (Decl Summary): Also mention that %union
987 can depend on prerequisite types. Problem reported by Tim
988 Van Holder.
989
4bfd5e4e
PE
9902004-05-25 Paul Eggert <eggert@cs.ucla.edu>
991
2cef3017
PE
992 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
993 * README-alpha: Don't tell people not to package this.
994
b9c85d5c
PE
995 * bootstrap: Don't assume $(...) works; use `...` instead.
996 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
997 gettext better.
998
4bfd5e4e
PE
999 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
1000 put into the -d output file, and mention what to do if YYSTYPE is
1001 defined as a macro.
1002
6a36ff94
PE
10032004-05-24 Paul Eggert <eggert@cs.ucla.edu>
1004
6712933e
PE
1005 Undo change made earlier today: it caused autopoint to not bring
1006 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
1007 autopoint's.
1008
1009 * bootstrap: Check that gettext version matches what's in
1010 configure.ac. Warn users to ignore robots.txt ERROR 404.
1011 * bootstrap: Undo today's earlier change (logged below).
1012 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
b9c85d5c 1013
6a36ff94
PE
1014 The gettext version checking is causing more trouble than it's
1015 curing; remove it. Problem reported by Paul Hilfinger.
1016
1017 * bootstrap: Issue a warning that one can expect a message
1018 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
1019 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
1020
209ea708
PE
10212004-05-23 Paul Eggert <eggert@cs.ucla.edu>
1022
1023 Ensure that the C++ compiler used for testing actually works on a
1024 simple test program; if not, skip the C++-related tests. Problem
1025 reported by Vin Shelton in:
161a71f3 1026 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
209ea708
PE
1027
1028 * m4/cxx.m4: New file.
1029 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
1030 * tests/atlocal.in (BISON_CXX_WORKS): Add.
1031 * tests/local.at (AT_COMPILE_CXX): Use it.
1032
41ca2549
PE
10332004-05-21 Paul Eggert <eggert@cs.ucla.edu>
1034
383e69dc
PE
1035 * data/glr.c (yylloc): Output this macro even if locations are not
1036 being generated, as the GLR parser needs it even in that case.
1037 Problem reported by Troy A. Johnson
1038 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
1039
41ca2549
PE
1040 * configure.ac (AC_INIT): Update to 1.875e.
1041
e476c87d
PE
10422004-05-21 Paul Eggert <eggert@cs.ucla.edu>
1043
1044 * NEWS: Version 1.875d.
1045 * configure.ac (AC_INIT): Likewise.
1046 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
1047
1048 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
1049 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
1050 lalr1.cc runs afoul of the first, and the last two are no longer
1051 supported by GCC 3.4.0.
1052 * README: Mention GNU m4 1.4 or later; mention m4 patches.
1053 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
1054
233a88ad
PE
10552004-05-06 Paul Eggert <eggert@cs.ucla.edu>
1056
1057 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
1058 unsigned int, for compatibility with latest gnulib hash module.
1059 * src/state.c (state_hash, state_hasher): Likewise.
1060 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
1061 * src/uniqstr.c (hash_uniqstr): Likewise.
e476c87d 1062
12ffdd28
PE
10632004-05-03 Paul Eggert <eggert@cs.ucla.edu>
1064
1065 * NEWS: Unescaped newlines are no longer allowed in char & strings.
1066
1067 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
1068 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
1069 character and string literals.
1070 (unexpected_end): New function.
1071 (unexpected_eof): Use it.
1072 (unexpected_newline): New function.
1073 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
1074 actions.
e476c87d 1075
12ffdd28
PE
1076 * NEWS: Document %expect-rr.
1077
1078 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
1079 Fix typo by replacing $1 with $option.
1080 Remove more 'intl'-related files.
9668e2be 1081 Don't DEFUN AM_INTL_SUBDIR twice.
12ffdd28
PE
1082
1083 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
1084 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
1085 strtoul.c.
1086 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
1087 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
1088 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
1089 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
1090 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
1091 * src/.cvsignore: Add *.output.
1092
1093 * src/parse-gram.y: Put copyright notice inside %{ %} so it
1094 gets copied to the output file.
e476c87d 1095
1f65350a
PE
10962004-04-28 Paul Eggert <eggert@twinsun.com>
1097
1098 Get files from the gnulib and po repositories, instead of relying
1099 on them being in our CVS. Upgrade to latest versions of gnulib
1100 and Automake.
1101
1102 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
1103 * bootstrap: Bootstrap from gnulib and po repositories.
1104 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
1105 * README-cvs: Document these changes. Remove version numbers from
1106 mentions of build tools, since they change so often. Mention Flex.
1107
1108 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
1109 (gl_USE_SYSTEM_EXTENSIONS): Add.
12ffdd28
PE
1110 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
1111 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1f65350a 1112 does this for us.
12ffdd28
PE
1113 (AC_ISC_POSIX): Remove; we no longer support this
1114 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1f65350a
PE
1115 (AC_HEADER_STDC): Remove: we now assume C89 or better.
1116 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
1117 Do not check for C89 headers, except for locale.h which is used
1118 by the Yacc library and must port to K&R hosts.
1119 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
1120 Do not check for C89 functions, except for setlocale which is
1121 used by the Yacc library.
1122 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
1123 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
1124 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
1125 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
1126 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
1127 AM_GNU_GETTEXT): Remove; now done by:
1128 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
1129 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
1130 for us.
1131
1132 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
1133 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
1134 Define to empty, as gnulib.mk will do the rest for us.
1135 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
1136 for us.
1137 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
1138 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
1139
1140 * src/files.c: Include gnulib's xstrndup.h.
1141
1142 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
1143 (REALLOC): Use xnrealloc, for likewise.
1144 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
1145 (strnlen, memrchr): Remove decls; functions no longer used.
1146 Include <stpcpy.h>.
1147
1148 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
1149 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
1150 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
1151 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
1152 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
1153 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
1154 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
1155 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
1156 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
1157 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
1158 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
1159 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
1160 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
1161 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
1162 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
1163 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
1164 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
1165 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
1166 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
1167 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
1168 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
1169 Remove, as these files are now generated automatically
1170 by bootstrap or automake.
1171
1172 * po/ChangeLog: Remove: all but one entry was a duplicate
1173 of this file, and I moved that 2000-11-02 entry here.
1174
1175 * config/.cvsignore: Add Makefile, depcomp, install-sh.
1176 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
1177 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
1178 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
1179 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
1180 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
1181 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
1182 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
1183 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
1184 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
1185 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
1186 xstrndup.h.
1187 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
1188 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
1189 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
1190 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
1191 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
1192 * src/.cvsignore: Remove *_.c.
1193
1194
1195 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
1196 support it. (The latest stable gzip doesn't.)
1197
11982004-04-27 Paul Eggert <eggert@twinsun.com>
1199
1200 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
1201 case, as stos_ is now used by destructors due to the 2004-02-09
1202 change.
1203
1204 Remove more K&R C support.
1205 * lib/libiberty.y (PARAMS): Remove. All uses removed.
1206 * lib/subpipe.c (errno): Remove decl.
1207 Include <stdlib.h> unconditionally.
1208 (EXIT_FAILURE): Remove macro.
1209 * src/complain.c (vfprintf, strerror): Remove.
1210 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
1211 unconditionally.
1212 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
1213 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
1214 (strchr, strspn, memchr): Remove decls.
1215 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
1216 unconditionally. Do not declare perror.
1217 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
1218 unconditionally.
1219
1220 * src/complain.c (_): Remove useless defn, as system.h defines this.
1221
1222 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
1223 with latest obstack.h.
1224 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
1225 to procedure types, as obstack.h now does that for us.
1226 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
1227
1228 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
1229 so that this include file can stand alone.
1230 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
1231 does this now. Include subpipe.h first after config.h, to
1232 test whether it can stand alone.
1233
1234 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
1235 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
1236 unused declaration.
1237
1238 * tests/synclines.at (%union synch line): Put a dummy member in
1239 the union, because empty unions aren't allowed in C. Caught
1240 by GCC 3.4.0.
1241
4f16766c
PE
12422004-04-13 Jim Meyering <jim@meyering.net>
1243
1244 * src/conflicts.c (conflicts_print): Correct format string typo:
1245 use `%%' to produce literal `%'. (trivial change)
1246
779e7ceb
PE
12472004-03-30 Paul Eggert <eggert@twinsun.com>
1248
1249 * src/getargs.c (version): Update copyright year to 2004.
1250
1251 * data/c.m4 (b4_int_type): Use 'short int' rather than
1252 'short', and similarly for 'long', 'unsigned', etc.
1253 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
1254 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
1255 yy_yypstack, yydumpstack): Likewise.
1256 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
1257 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
1258 Likewise.
1259 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
1260 yy_stack_print, yyparse): Likewise.
1261 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
1262 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
1263 * lib/bitset.c (bitset_print): Likewise.
1264 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
1265 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
1266 * lib/bitsetv.c (bitsetv_dump): Likewise.
1267 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
1268 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
1269 Likewise.
1270 * src/LR0.c (allocate_itemsets): Likewise.
1271 * src/gram.h (rule_number, rule): Likewise.
1272 * src/lalr.h (goto_number): Likewise.
1273 * src/nullable.c (nullable_compute): Likewise.
1274 * src/output.c (prepare_rules): Likewise.
1275 * src/relation.c (relation_print, relation_digraph): Likewise.
1276 * src/relation.h (relation_node): Likewise.
1277 * src/state.h (state_number, transitions, errs, reductions,
1278 struct state): Likewise.
1279 * src/symtab.h (symbol_number, struct symbol): Likewise.
1280 * src/tables.c (vector_number, tally, action_number,
1281 default_goto, goto_actions): Likewise.
1282 * tests/existing.at (GNU Cim Grammar): Likewise.
1283 * tests/regression.at (Web2c Actions): Likewise.
1284
1285 * src/output.c (muscle_insert_short_int_table): Renamed from
1286 muscle_insert_short_table. All uses changed.
1287
d6328241
PH
12882004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1289
1290 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
1291 (declaration): Replace expected_conflicts with expected_sr_conflicts.
1292 Add %expect-rr rule.
4f16766c 1293
d6328241
PH
1294 * src/scan-gram.l: Recognize %expect-rr.
1295
4f16766c 1296 * src/conflicts.h (expected_sr_conflicts): Rename from
d6328241 1297 expected_conflicts.
4f16766c 1298 (expected_rr_conflicts): Declare.
d6328241
PH
1299
1300 * src/conflicts.c (expected_sr_conflicts): Rename from
1301 expected_conflicts.
1302 (expected_rr_conflicts): Define.
1303 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
1304 for GLR parsers.
1305 Use expected_sr_conflicts in place of expected_conflicts.
1306 Warn if expected_rr_conflicts used in non-GLR parser.
4f16766c 1307
d6328241 1308 * doc/bison.texinfo: Add documentation for %expect-rr.
4f16766c 1309
1452af69
PE
13102004-03-08 Paul Eggert <eggert@gnu.org>
1311
1312 Add support for hex token numbers. Suggested by Odd Arild Olsen in
161a71f3 1313 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
1452af69
PE
1314
1315 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
1316 in lalr1.cc.
1317 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
1318 * src/scan-gram.l (scan_integer): New function.
1319 ({int}): Use it.
1320 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
1321 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
1322 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
1323 Say "long int", not "long", for uniformity with GNU style.
1324
006d217d
PE
13252004-02-25 Paul Eggert <eggert@twinsun.com>
1326
1327 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
1328 compilers. This fixes a problem with Intel's C++ compiler being
1329 chatty, reported by Guido Trentalancia in
161a71f3 1330 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
006d217d 1331
c2729758
ADL
13322004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
1333
1334 Support %destructor and merge error locations in lalr1.cc.
1335
1336 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
1337 (Parser::stos_): Define unconditionally.
1338 (Parser::destruct_): New method. Generate its body with
1339 b4_yydestruct_generate.
1340 (Parser::error_start_): New attribute.
1341 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
1342 token which are discarded.
1343 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
1344 error_start_ when erroneous token are discarded.
1345 (Parser::parse) <yyerrlab1>: Compute the location of the error
1346 token so that it covers all the discarded tokens.
1347 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
1348 it can be called with `%skeleton "lalr1.cc"', and do that.
1349
dd0e0635
PE
13502004-02-02 Paul Eggert <eggert@twinsun.com>
1351
1352 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
1353 $(top_srcdir)/lib and ../lib. This fixes a bug reported
1354 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
1355 There's no need to mention top_builddir since Automake does that
1356 for us.
1357 (INCLUDES): Remove, as Automake says it's obsolescent.
1358 Contents migrated into AM_CPPFLAGS as described above.
1359 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
1360
13612004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
1362
1363 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
1364 (yyreportSyntaxError): Handle case where lookahead token is
1365 YYEMPTY.
1366
be16239b
PH
13672004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1368
1369 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
1370 resulting parsers are compilable with C++.
1371
5fa90832
PE
13722003-12-23 Paul Eggert <eggert@twinsun.com>
1373
1374 * config/depcomp, config/install-sh: Sync with Automake 1.8.
1375 * src/output.c (output_skeleton): Rename local var.
1376 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
1377 Bison tokens, as this runs afoul of the 2003-10-07 change that
1378 disallowed NUL bytes in character constants or string literals.
1379
1380 * tests/local.at: Require Autoconf 2.59's Autotest.
1381 * tests/testsuite.at: Don't include local.at, since we now assume
1382 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
1383 including it.
1384 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
1385 multiple inclusion warnings.
dd0e0635 1386
b165c324
AD
13872003-12-02 Akim Demaille <akim@epita.fr>
1388
1389 * doc/bison.texinfo (How Can I Reset the Parser): More about start
1390 conditions.
1391 From Bruno Haible.
1392
26e06a21
ADL
13932003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
1394
1395 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
1396
92ac3705
PE
13972003-10-07 Paul Eggert <eggert@twinsun.com>
1398
6a5ecb38
PE
1399 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
1400 if testsuite doesn't exist.
1401
92ac3705
PE
1402 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
1403 literals, unfortunately.
1404 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
1405 Complain about NUL bytes in character constants or string literals.
1406
91d2c560
PE
14072003-10-05 Paul Eggert <eggert@twinsun.com>
1408
1409 * NEWS: Don't document %no-default-prec, as it's still
1410 too experimental.
1411 * doc/bison.texinfo: Document %no-default-prec only if
1412 the defaultprec flag is set. Normally it's not.
1413
0cc3da3a
PE
14142003-10-04 Paul Eggert <eggert@twinsun.com>
1415
1416 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
1417 non-modifiable lvalue, instead of a modifiable one.
1418 * doc/bison.texinfo (Actions): Document that $$ can
1419 be assigned to. Do not claim that $$ and $N are
1420 array element references: user code should not rely on this.
1421
22fccf95
PE
14222003-10-01 Paul Eggert <eggert@twinsun.com>
1423
1424 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
1425 (grammar_declaration): Use it.
1426 * src/scan-gram.l: New token %no-default-prec.
1427 * tests/conflicts.at: Revamp tests to use %no-default-prec.
1428 * NEWS, doc/bison.texinfo: Document the above.
1429
fc8f2965
AD
14302003-10-01 Akim Demaille <akim@epita.fr>
1431
1432 VCG no longer supports long_straight_phase.
1433
1434 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
1435 * src/print_graph.c (print_graph): Adjust.
1436
39a06c25
PE
14372003-09-30 Frank Heckenbach <frank@g-n-u.de>
1438 and Paul Eggert <eggert@twinsun.com>
1439
1440 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
1441 Table of Symbols): Document %default-prec.
1442 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
1443 (grammar_declaration): Set default_prec on %default-prec.
1444 * src/scan-gram.l (%default-prec): New token.
1445 * src/reader.h (default_prec): New flag.
1446 * src/reader.c: Likewise.
1447 (packgram): Handle it.
1448 * tests/conflicts.at (%default-prec without %prec,
1449 %default-prec with %prec, %default-prec 1): New tests.
fc8f2965 1450
39a06c25
PE
14512003-09-30 Paul Eggert <eggert@twinsun.com>
1452
1453 * tests/testsuite.at: Include local.at, not input.at, fixing
1454 a typo in the 2003-08-25 patch.
1455
62b6aef9
AD
14562003-08-27 Akim Demaille <akim@epita.fr>
1457
1458 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
1459 GCC warnings.
1460
89e1cc61
AD
14612003-08-26 Akim Demaille <akim@epita.fr>
1462
1463 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
1464 "<\#" to avoid magic from Gnus when posting parts of this script.
1465
a08460b0
AD
14662003-08-26 Akim Demaille <akim@epita.fr>
1467
1468 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
1469 (Parser::parse): here.
1470 Adjust: nerrs and errstatus is now replaced by...
1471 (Parser::nerrs_, Parser::errstatus_): New.
1472
603f1cfd
AD
14732003-08-25 Akim Demaille <akim@epita.fr>
1474
1475 * config/announce-gen, Makefile.cfg: New.
1476 * Makefile.am: Adjust.
1477 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
1478 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
1479
cd3684cf
AD
14802003-08-25 Akim Demaille <akim@epita.fr>
1481
1482 When reducing initial empty rules, Bison parser read an initial
1483 location that is not defined. This results in garbage, and that
1484 affects Bison's own parser. Therefore we need (i) to extend Bison
1485 to support a means to initialize this location, and (ii) to use
1486 this CVS Bison to fix CVS Bison's parser.
1487
1488 * src/reader.h, reader.c (epilogue_augment): Remove, replace
1489 with...
1490 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
1491 * src/parse-gram.y: Adjust.
1492 (%initial-action): New.
1493 (%error-verbose): Since we require CVS Bison, there is no reason
1494 not to use it.
1495 * src/scan-gram.l: Adjust.
1496 * src/Makefile.am (YACC): New, to make sure we use our own parser.
1497 * data/yacc.c (yyparse): Use b4_initial_action.
1498
4e03e201
AD
14992003-08-25 Akim Demaille <akim@epita.fr>
1500
1501 * doc/bison.texinfo: Don't promote stdout for error messages.
1502
8c182d05
AD
15032003-08-25 Akim Demaille <akim@epita.fr>
1504
1505 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
1506 From Alexandre Duret-Lutz.
1507
6a60c4cf
PE
15082003-08-25 Akim Demaille <akim@epita.fr>
1509
1510 Version 1.875c.
1511
25f66e1a
AD
15122003-08-25 Akim Demaille <akim@epita.fr>
1513
1514 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
1515 Use them.
1516
5348bfbe
AD
15172003-08-25 Akim Demaille <akim@epita.fr>
1518
1519 * data/lalr1.cc (Parser::reduce_print_): New.
1520 Use it.
1521
47301314
AD
15222003-08-25 Akim Demaille <akim@epita.fr>
1523
1524 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
1525 error recovery loops. This patch is based on
161a71f3 1526 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
47301314
AD
1527 Also, augment the similarity between lalr1.cc and yacc.c.
1528 Note: the locations of error recovery rules are not correct yet.
1529
1530 * data/lalr1.cc: Comment changes to augment the similarity between
1531 lalr1.cc and yacc.c.
1532 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
1533 (yyerrlab1): Remove, but where it used to be (now the bottom part of
1534 yyerrlab), when hitting EOF, pop the whole stack here instead of
1535 merely falling thru the default error handling mechanism.
1536 (yyerrorlab): New label, with the old contents of YYERROR,
1537 plus the following change: pop the stack of rhs corresponding
1538 to the production that invoked YYERROR. That is how Yacc
1539 behaves (required by POSIX).
1540 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
1541 fail.
1542
1f7a61ff
AD
15432003-08-25 Akim Demaille <akim@epita.fr>
1544
1545 Tune local.at so that people can "autom4te -l autotest calc.at -o
1546 calc" for instance, to extract a sub test suite.
1547
1548 * tests/testsuite.at: Move the initialization, Autotest version
1549 requirement, and AT_TESTED invocation into...
1550 * tests/local.at: here.
1551 * tests/testsuite.at: Include it for compatibility with Autoconf
1552 2.57.
1553 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
1554 be ignore.
1555
327b5b56
PE
15562003-08-04 Paul Eggert <eggert@twinsun.com>
1557
1558 Rework code slightly to avoid gcc -Wtraditional warnings.
1559 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
1560 The returned value is now stored in *YY0. All callers changed.
1561 * src/output.c (merge_output): Adjust to the above change.
1562
0051e3ed
PE
15632003-07-26 Paul Eggert <eggert@twinsun.com>
1564
1565 * data/glr.c (YYASSERT): New macro.
1566 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
1567 yyresolveStates, yyprocessOneStack):
1568 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
1569 Derived from a suggestion by Frank Heckenbach.
1f7a61ff 1570
137437c6
PE
15712003-07-25 Paul Eggert <eggert@twinsun.com>
1572
5b620e06
PE
1573 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
1574 for portability to K&R C (after ansi2knr, presumably). See
161a71f3 1575 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
5b620e06
PE
1576 by Frank Heckenbach, though I have omitted the structure-initialization
1577 part of his glr-knr.diff patch since I recall that the Portable
1578 C Compiler didn't require that change.
1579
137437c6
PE
1580 Let the user specify how to allocate and free memory.
1581 Derived from a suggestion by Frank Heckenbach in
161a71f3 1582 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
137437c6
PE
1583 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
1584 All uses of free, malloc, realloc changed to use these macros,
1585 and unnecessary casts removed.
1586 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
1587
ddb85ca5
PE
15882003-07-06 Matthias Mann <MatthiasMann@gmx.de>
1589
1590 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
1591 use s.empty() rather than s == "" to test for empty string; see
161a71f3 1592 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
ddb85ca5
PE
1593 (trivial change)
1594
39910e09
AD
15952003-06-25 Akim Demaille <akim@epita.fr>
1596
1597 * config/depcomp, config/install-sh: Update from masters.
1598
0ae99356
PE
15992003-06-20 Paul Eggert <eggert@twinsun.com>
1600
1601 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
1602 and return properly parenthesized result.
1603 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
1604 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
1605 Remove unnecessary parentheses from uses.
1606 * doc/bison.texinfo (Location Default Action): Describe the
1607 conventions for parentheses.
1608
cd05d13c
PE
16092003-06-19 Paul Eggert <eggert@twinsun.com>
1610
81fd08ca
PE
1611 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
1612 yyreportTree): Do not assume that size_t is the same width as int,
1613 when printing sizes. Print sizes using an unsigned format.
1614 Problem reported by Frank Heckenbach in
161a71f3 1615 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
4dcf140b 1616
cd05d13c
PE
1617 Port to Forte Developer 7 C compiler.
1618 * data/glr.c (struct YYLTYPE): If locations are not being used,
1619 declare a single dummy member, as empty structs do not conform
1620 to the C standard.
1621 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
1622 the Forte Developer 7 C compiler complains that end-of-loop
1623 code is not reached.
1624
4dcf140b
PE
16252003-06-17 Paul Eggert <eggert@twinsun.com>
1626
1627 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
1628 avoid warnings from picky compilers about redefinition of PARAMS.
1629
8dd76bee
PE
16302003-06-17 Paul Eggert <eggert@twinsun.com>
1631
1632 Version 1.875b.
1633
1634 * NEWS: Document 1.875b.
1635
1636 * lib/bbitset.h: Do not include config.h; that's the includer's job.
1637 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
1638 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
1639 Don't use 'index' in comments, as it's a builtin fn on some hosts.
1640 * lib/bitset_stats.c: Include gettext.h unconditionally, as
1641 per recent gettext manual's suggestion.
1642 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
1643 Use prototypes, not old-style definitions.
1644 * lib/lbitset.c (lbitset_unused_clear): Likewise.
1645 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
1646 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
1647 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
1648 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
1649 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
1650 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
1651 vbitset_or_and_cmp, vbitset_copy): Likewise.
1652
1653 * lib/libiberty.h: Do not include config.h; that's the includer's job.
1654 Do not include <stdlib.h>.
1655 (PARAMS): Define unconditionally for C89.
1656 (ATTRIBUTE_NORETURN): Remove.
1657 (ATTRIBUTE_UNUSED): Define unconditionally.
1658
1659 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
161a71f3 1660 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
8dd76bee
PE
1661 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
1662 * lib/vbitset.c, lib/vbitset.h: New files.
1663 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
1664 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
1665 from libbitset.
1666
1667 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
1668 `How Can I Reset @code{yyparse}', since texinfo does not allow
1669 arbitrary @ in node names.
1670
1671 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
1672 shouldn't be needed according to the gettext 0.12.1 documentation
1673 but which seem to be needed anyway: codeset.m4 glibc21.m4
f8e8262e 1674 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
8dd76bee 1675 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
f8e8262e 1676 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
cd05d13c 1677
8dd76bee
PE
1678 * lib/.cvsignore: Add stdbool.h.
1679 * m4/.cvsignore: Add nls.m4, po.m4.
1680
1681 Upgrade to CVS gnulib.
1682 * stdbool_.h: File renamed from stdbool.h.in.
1683 * configure.ac (AM_STDBOOL_H): Invoke this instead of
1684 AC_HEADER_STDBOOL.
1685 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
1686 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
1687 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
1688 (MOSTLYCLEANFILES): New var.
1689 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
1690 (stdbool.h): New rule.
1691 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
1692 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
1693 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
1694 m4/quote.m4: Upgrade to today's gnulib.
1695
1696 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
1697 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
1698 the tests right now.
1699 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
1700 yyerror are declared before use; C99 requires this.
1701
25005f6a
PH
17022003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1703
1704 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
1705 first.
1706 (yyrecoverSyntaxError): Correct the logic for setting and testing
1707 yyerrState.
1708 Correct comment on handling EOF.
1709 Allow states with only a default reduction, rather than failing
8dd76bee 1710 (I can't quite reconstruct why these were not allowed before).
25005f6a 1711
137437c6 1712 Fixes to avoid problem that $-N rules in GLR parsers can cause
25005f6a 1713 buffer overruns, corrupting state.
8dd76bee
PE
1714
1715 * src/output.c (prepare_rules): Output max_left_semantic_context
25005f6a
PH
1716 definition.
1717 * src/reader.h (max_left_semantic_context): New variable declaration.
1718 * src/scan-gram.l (max_left_semantic_context): Define.
1719 (handle_action_dollar): Update max_left_semantic_context.
1720 * data/glr.c (YYMAXLEFT): New definition.
1721 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
1722 (yyresolveAction): Ditto.
1723
1724 Fixes to problems with location handling in GLR parsers reported by
1725 Frank Heckenbach (2003/06/05).
1726
1727 * data/glr.c (YYLTYPE): Make trivial if locations not used.
1728 (YYRHSLOC): Add parentheses, and define only if locations used.
1729 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
1730 locations not used.
1731 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
1732 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
8dd76bee 1733
25005f6a
PH
1734 * tests/cxx-type.at: Exercise location information; update tests
1735 to differentiate output with and without locations.
8dd76bee 1736 Remove forward declarations of yylex and yyerror---caused errors
25005f6a
PH
1737 because default YYLTYPE not yet defined.
1738 Change semantic actions to compute strings, rather than printing
1739 them directly (to test proper passing of semantics values). Change
1740 output to prefix notation and update test data and expected results.
1741 (yylex): Track locations.
1742 (stmtMerge): Return value rather than printing, and include arguments
1743 in value.
8dd76bee 1744
711f40b7
PE
17452003-06-03 Paul Eggert <eggert@twinsun.com>
1746
1747 Avoid warnings generated by GCC 2.95.4 when Bison is
1748 configured with --enable-gcc-warnings.
1749 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
1750 yy::]b4_parser_class_name[::translate_,
1751 yy::Stack::operator[] (unsigned),
1752 yy::Stack::operator[] (unsigned) const,
1753 yy::Slice::operator[] (unsigned),
1754 yy::Slice::operator[] (unsigned) const):
1755 Rename local vars to avoid warnings.
1756 * tests/glr-regression.at (Improper handling of embedded actions
1757 and $-N in GLR parsers): Remove unused local variable from yylex.
1758 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
1759 (void) as arg when not pure, since we now assume C89 when building
1760 Bison. Pacify GCC by using parameter.
1761
ac695f7d
PE
17622003-06-02 Paul Eggert <eggert@twinsun.com>
1763
1764 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
1765 yy::Location::lines, yy::Location::columns): Rename arguments
1766 to avoid shadowing; this removes a warning generated by GCC 3.3.
1767
26ec81e0
PE
17682003-06-01 Paul Eggert <eggert@twinsun.com>
1769
1770 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
1771 to g++, as GCC 3.3 complains if you do it.
1772 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
1773 everything that WARNING_CFLAGS has, except omit warnings
1774 not suitable for C++.
1775 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
1776 * tests/atlocal.in (CXXFLAGS): New var.
1777 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
1778
1779 Fix a GLR parser bug I reported in February; see
161a71f3 1780 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
26ec81e0
PE
1781 The problem was that GLR parsers did not conform to the C standard,
1782 because actions like { $1 = $2 + $3; } expanded to expressions
1783 that invoked YYFILL in separate subexpressions, and YYFILL assigned
1784 to a local variable. The C standard says that expressions
1785 like (var = f ()) + (var = f ()) have undefined behavior.
1786 Another problem was that GCC sometimes issues warnings that
1787 yyfill and its parameters are unused.
1788
1789 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
1790 as possibly unused.
1791 (yyfill): New function.
1792 (YYFILL): Use it.
1793 (yyuserAction): Change type of yynormal to bool, so that it matches
1794 the new yyfill signature. Mark it as possibly unused.
1795
1796
1797 Follow up on a bug I reported in February, where a Bison-generated
1798 parser can loop. Provide a test case and a fix for yacc.c. I
1799 don't have a fix for lalr1.cc or for glr.c, unfortunately.
1800 The original bug report is in:
161a71f3 1801 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
26ec81e0
PE
1802
1803 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
1804 macro's size was becoming unwieldy.
1805 (yyerrlab): Do not discard an empty lookahead symbol, as this
1806 might destroy garbage.
1807 (yyerrorlab): New label, with the old contents of YYERROR,
1808 plus the following change: pop the stack of rhs corresponding
1809 to the production that invoked YYERROR. That is how Yacc
1810 behaves, and POSIX requires this behavior.
1811 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
1812 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
1813 Define 'alarm' to do nothing if unistd.h is not available.
1814 Add a new rule "exp: '-' error;" to test the above change to
1815 data/yacc.c. Use 'alarm' to abort any test taking longer than
1816 10 seconds, as it's probably looping.
1817 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
1818 Also, the new yacc.c generates two fewer diagnostics for an
1819 existing test.
1820
d0829076
PE
18212003-05-24 Paul Eggert <eggert@twinsun.com>
1822
c6ae27df
PE
1823 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
1824 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
1825 This fixes a problem reported by John Bowman when the Compaq/HP
1826 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
1827 -ansi -Wall -gall).
1828 * data/yacc.c (union yyalloc): Likewise.
1829 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
26ec81e0 1830
d0829076
PE
1831 Switch from 'int' to 'bool' where that makes sense.
1832
1833 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
1834 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
1835 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
1836 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
1837 Return or accept bool, not int. All callers changed.
1838 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
1839 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
1840 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
1841 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
1842 bitset_or_and_cmp_): Likewise.
1843 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
1844 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
1845 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
1846 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
1847 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
1848 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
1849 bitset_stats_or_and_cmp): Likewise.
1850 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
1851 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
1852 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
1853 ebitset_xor_cmp): Likewise.
1854 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
1855 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
1856 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
1857 lbitset_xor_cmp): Likewise.
1858 * lib/bbitset.h: Include <stdbool.h>.
1859 (struct bitset_vtable): The following members now return bool, not
1860 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
1861 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
1862 or_and_cmp).
1863 * src/conflicts.c (count_rr_conflicts): Likewise.
1864 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
1865 All uses changed.
1866 * lib/ebitset.c (ebitset_obstack_init): Likewise.
1867 * lib/lbitset.c (lbitset_obstack_init): Likewise.
1868 * src/getargs.c (debug_flag, defines_flag, locations_flag,
1869 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1870 graph_flag): Likewise.
1871 * src/getargs.h (debug_flag, defines_flag, locations_flag,
1872 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1873 graph_flag): Likewise.
1874 * src/output.c (error_verbose): Likewise.
1875 * src/output.h (error_verbose): Likewise.
1876 * src/reader.c (start_flag, typed): Likewise.
1877 * src/reader.h (typed): Likewise.
1878 * src/getargs.c (LOCATIONS_OPTION): New constant.
1879 (long_options, getargs): Use it.
1880 * src/lalr.c (build_relations): Use bool, not int.
1881 * src/nullable.c (nullable_compute): Likewise.
1882 * src/print.c (print_reductions): Likewise.
1883 * src/tables.c (action_row, pack_vector): Likewise.
1884 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
1885 * src/output.c (prepare): Use it.
1886 * src/output.c (token_definitions_output,
1887 symbol_destructors_output, symbol_destructors_output): Use string,
1888 not boolean integer, to keep track of whether to output separator.
1889 * src/print_graph.c (print_core): Likewise.
1890 * src/state.c (state_rule_lookaheads_print): Likewise.
1891
1892 * config/install-sh: Sync from automake 1.7.5.
1893
6b2584b7
PE
18942003-05-14 Paul Eggert <eggert@twinsun.com>
1895
1896 * src/parse-gram.y (rules_or_grammar_declaration): Require a
1897 semicolon after a grammar declaration, in the interest of possible
1898 future changes to the Bison input language.
1899 Do not allow a stray semicolon at the start of the grammar.
1900 (rhses.1): Allow one or more semicolons after any rule, including
1901 just before "|" as required by POSIX.
1902 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
1903 grammar.
1904
caf37a36
ADL
19052003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
1906
1907 %parse-param support for lalr1.cc.
1908
1909 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
1910 b4_cc_constructor_calls, b4_cc_constructor_call,
1911 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
1912 definitions.
1913 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
1914 parse-param arguments.
1915 (yy::b4_parser_class_name): Declare instance variables to
1916 hold parse-param arguments.
1917 * tests/calc.at: s/value/semantic_value/ because value clashes
1918 with a member of yy::b4_parser_class_name. Adjust C++ code
1919 to handle %parse-param. Enable %parse-param test in C++.
1920
3ab37077
PE
19212003-05-12 Paul Eggert <eggert@twinsun.com>
1922
1923 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
1924 English a bit. Fix fclose typo. Change "const char" to "char
1925 const", and use ANSI C rather than K&R for "main". Suggest
1926 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
1927 and suggest yy_switch_to_buffer.
1928
19292003-05-05 Paul Eggert <eggert@twinsun.com>
163ab321
PE
1930
1931 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
1932 C89. This avoids a diagnostic on compilers that define __STDC__
1933 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
161a71f3 1934 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
163ab321 1935
e743727f
PE
19362003-05-03 Paul Eggert <eggert@twinsun.com>
1937
1938 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
1939 Do not overrun array bounds.
1940 This should fix a bug reported today by Olatunji Oluwabukunmi in
161a71f3 1941 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
e743727f 1942
916708d5
AD
19432003-04-29 Akim Demaille <akim@epita.fr>
1944
1945 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
1946 * src/getargs.c, src/getargs.h: here, as bool, not int.
1947 (nondeterministic_parser): New.
1948 * src/parse-gram.y, src/scan-gram.l: Support
1949 %nondeterministic-parser.
1950 * src/output.c (prepare): Use nondeterministic_parser instead
1951 of glr_parser where appropriate.
1952 * src/tables.c (conflict_row, action_row, save_row)
1953 (token_actions, token_actions, pack_vector): Ditto.
1954
a06ea4aa
AD
19552003-04-29 Akim Demaille <akim@epita.fr>
1956
1957 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
1958
211074ca
AD
19592003-04-29 Akim Demaille <akim@epita.fr>
1960
1961 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
1962 with %pure-parser and %locations to exercise the patch from Yakov
1963 Markovitch below.
1964
6175ffe3
PE
19652003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
1966
1967 * data/yacc.c: (b4_lex_param): Corrected for the case where
1968 %lex-param is provided and %pure-parser isn't.
1969
b1e95857
PE
19702003-04-27 Paul Eggert <eggert@twinsun.com>
1971
1972 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
161a71f3 1973 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
b1e95857
PE
1974 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
1975 if it is not defined.
1976 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
1977
acda9df6
PE
19782003-04-26 Paul Eggert <eggert@twinsun.com>
1979
3470c57b
PE
1980 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
1981 Declare to be of type suitable for the ninf value itself, not of
1982 type suitable for the corresponding table, since the latter might
1983 be unsigned but the ninf value might be negative. This fixes a
1984 bug reported by Alexandre Duret-Lutz in
161a71f3 1985 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
3470c57b 1986
acda9df6
PE
1987 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
1988 invokes it. We shouldn't invoke it twice because it will attempt
1989 to put error.o in the archive twice. This fixes a glitch reported
1990 by Martin Mokrejs in
161a71f3 1991 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
acda9df6 1992
b5250f26
PE
19932003-04-21 Paul Eggert <eggert@twinsun.com>
1994
1995 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
1996 to gnulib.
1997
089ac0f1
PE
19982003-04-21 Yakov Markovitch <Markovitch@iso.ru>
1999
2000 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
2001 Fix obvious typo that results in uncompilable GLR parsers
2002 when both %pure-parser and %locations are used. (trivial change)
2003
5ededac6
PE
20042003-04-17 Paul Eggert <eggert@twinsun.com>
2005
1b8f2fff
PE
2006 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
2007 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
2008 Do not insert the expected token via unput, as this runs afoul
2009 of a POSIX-compatibility bug in flex 2.5.31.
2010 All uses changed to BEGIN the parent state,
2011 since we no longer insert the expected token via unput.
2012 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
2013 that is no longer emitted after the above change.
2014
5ededac6
PE
2015 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
2016 the first one. This change is from Paul Hilfinger, and it fixes
2017 regression reported by Werner Lemberg in
161a71f3 2018 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
5ededac6
PE
2019
2020 (resolve_sr_conflict): Don't invoke state_errs_set
2021 unless one or more tokens have been explicitly made errors.
2022 Otherwise, the above change causes Bison to abort.
2023
2024 * tests/existing.at (GNU pic Grammar): New test case, taken from
2025 Lemberg's email.
2026
b8be9132
AD
20272003-03-31 Akim Demaille <akim@epita.fr>
2028
2029 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
2030
d423d460
AD
20312003-03-31 Akim Demaille <akim@epita.fr>
2032
2033 * src/output.c (prepare_symbols): Avoid trailing spaces in the
2034 output.
2035
c7e441b4
AD
20362003-03-31 Akim Demaille <akim@epita.fr>
2037
2038 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
2039 From Paul Hilfinger.
2040
231897ad
AD
20412003-03-29 Akim Demaille <akim@epita.fr>
2042
2043 * m4/error.m4: Do not put under dynamic conditions some code which
2044 expansion is under static control.
2045
5b066063
AD
20462003-03-29 Akim Demaille <akim@epita.fr>
2047
2048 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
2049
22a74fec
AD
20502003-03-29 Akim Demaille <akim@epita.fr>
2051
2052 * doc/bison.texinfo (Strings are Destroyed): New.
2053
0eee27e7
PE
20542003-03-13 Paul Eggert <eggert@twinsun.com>
2055
2056 * .cvsignore: Add configure.lineno.
2057 * src/.cvsignore: Add yacc.
2058 * tests/.cvsignore: Add testsuite.log.
2059 * doc/fdl.texi: Sync with latest FSF version.
2060
f61aad93
PE
20612003-03-12 Paul Eggert <eggert@twinsun.com>
2062
537636c7
PE
2063 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
2064 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
2065 cursor, instead of leaving it undefined. This fixes a bug
2066 reported by Tim Van Holder in
161a71f3 2067 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
537636c7
PE
2068 * tests/input.at (Torturing the Scanner): Test the scanner on
2069 an empty input file, which was Tim Van Holder's test case.
2070
2071 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
2072 <sys/resource.h> can be included, include sys/time.h and
2073 sys/times.h first, if available. This works around the SunOS
2074 4.1.4 porting bug reported by Bruce Becker in
161a71f3 2075 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
537636c7
PE
2076
2077 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
2078 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
2079 AC_HEADER_SYS_WAIT.
2080
f61aad93
PE
2081 Merge changes from gnulib. This was prompted because the CVS
2082 snapshot didn't build on Solaris 7 due to strnlen problems.
2083
2084 These changes need to be merged back into gnulib:
2085 * lib/hash.c: Include <stdbool.h> unconditionally.
2086 * m4/onceonly.m4 (m4_quote): New macro.
2087 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
2088 Quote AC_FOREACH variable-expansions properly.
2089 The 2003-01-03 obstack.h change also needs merging.
2090 {end of changes requiring merging}
5b066063 2091
f61aad93
PE
2092 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
2093 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
2094 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
2095 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
2096 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
2097 New files, imported from gnulib.
2098 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
2099 above.
2100
2101 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
2102 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
2103 gnulib sources.
2104
2105 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
2106 Add.
2107 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
2108 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
2109 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
2110 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
2111 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
2112 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
2113 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
2114 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
2115 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
2116 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
2117 (jm_PREREQ_ARGMATCH): Remove.
2118 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
2119 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
2120
2121 * src/system.h: Include <stdbool.h> unconditionally.
2122
2123 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
2124 assuming at least C89 in the bitset code for some time now.
2125
d2ffe116
AD
21262003-03-03 Akim Demaille <akim@epita.fr>
2127
2128 * ro.po: New.
2129
052826fd
AD
21302003-03-02 Akim Demaille <akim@epita.fr>
2131
2132 * doc/bison.texinfo (Table of Symbols): Reactivate the
2133 documentation for %lex-param, and %parse-param.
2134
c4749565
AD
21352003-03-02 Akim Demaille <akim@epita.fr>
2136
2137 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
2138 generate verbose error messages.
2139 Use the number of tokens as an upper bound in yytname, as it
2140 cannot be a non terminal.
2141
d5286af1
AD
21422003-03-02 Akim Demaille <akim@epita.fr>
2143
2144 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
2145 message.
2146
22e304a6
AD
21472003-03-02 Akim Demaille <akim@epita.fr>
2148
22e304a6
AD
2149 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
2150 Use them to exercise yycheck overrun.
2151 Based on Andrew Suffield's grammar.
2152
67a25fed
AD
21532003-03-02 Akim Demaille <akim@epita.fr>
2154
2155 Create tests/local.at for Bison generic testing macros.
2156
2157 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
2158 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
2159 This new file.
2160 * tests/calc.at (AT_CHECK_CALC): Adjust.
2161 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
2162 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
2163 * tests/local.at: here.
2164 (AT_COMPILE_CXX): Tags the tests using it as c++.
2165 Ignore the test if CXX is not functional.
2166
9c2b381f
PE
21672003-03-01 Paul Eggert <eggert@twinsun.com>
2168
2169 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
2170 not loc->end, since loc->end might contain garbage and this leads
2171 to undefined behavior on some platforms.
2172 (id_loc, token_start): Use (IF_LINTed) initial values that do not
2173 depend on *loc, so that the reader doesn't give the the false
2174 impression that *loc is initialized.
2175 (<INITIAL>"%%"): Do not bother setting code_start, since its value
2176 does not survive the return.
2177
0433ba88
AD
21782003-03-01 Akim Demaille <akim@epita.fr>
2179
2180 * src/scan-gram.l (code_start): Always initialize it when entering
2181 into yylex, as SC_EPILOGUE is activated *before* the corresponding
2182 yylex invocation. An alternative would be making it static, but
2183 then it starts with the second %%'s beginning, instead of its end.
2184
b305ea69
PE
21852003-02-28 Paul Eggert <eggert@twinsun.com>
2186
2187 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
2188 around a UnixWare 7.1.1 porting bug reported by John Hughes in
161a71f3 2189 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
b305ea69 2190
c3d25e01
PE
21912003-02-26 Paul Eggert <eggert@twinsun.com>
2192
2193 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
2194 Remove Sequent/Pyramid discussion (nobody uses them any more).
2195 Merge VMS and MS-DOS discussion; these ports may well be dead
2196 but let's keep mentioning them for now. Put <> around email
2197 addresses. Add copyright notice.
2198
c267ffbc
PE
21992003-02-24 Paul Eggert <eggert@twinsun.com>
2200
2201 * data/glr.c (yy_reduce_print): yylineno -> yylno,
2202 to avoid collision with flex use of yylineno.
2203 Problem reported by Bruce Lilly in
161a71f3 2204 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
c267ffbc
PE
2205 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
2206 * data/yacc.c (yy_reduce_print): Likewise.
2207
2208 * config/depcomp: Sync with Automake 1.7.3.
2209
f939fc12
AD
22102003-02-21 Akim Demaille <akim@epita.fr>
2211
2212 * data/lalr1.cc: Use temporary variables instead of casts to
2213 change integer types.
2214 Suggested by Paul Eggert.
2215
95923bd6
AD
22162003-02-21 Akim Demaille <akim@epita.fr>
2217
2218 * doc/bison.texinfo: Use "location" consistently to refer to @n,
2219 to avoid confusions with lalr1.cc's notion of Position.
2220 Suggested by Paul Eggert.
2221
2cdc240e
AD
22222003-02-20 Akim Demaille <akim@epita.fr>
2223
2224 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
2225 before initial_columns.
2226 (location.hh): Use consistent variable names when defining the
2227 operator<<.
2228 Use "last" so that we subtract from Positions, not from unsigned.
2229
5d003116
AD
22302003-02-20 Akim Demaille <akim@epita.fr>
2231
2232 * data/lalr1.cc (position.hh): New subfile, including the extended
2233 and Doxygen'ed documentation of class Position.
2234 (location.hh): Use it.
2235 Document a` la Doxygen.
ba1ecc07 2236 With the help of Benoit Perrot.
5d003116 2237
d02b25f9
AD
22382003-02-20 Akim Demaille <akim@epita.fr>
2239
2240 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
2241 AT_YACC_IF.
2242 Redefine AT_YYERROR_SEES_LOC_IF using it.
2243 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
2244 not defined.
2245 Don't use the location in yy::Parser::error_ and
2246 yy::Parser::print_ when not %locations.
2247 Activate more lalr1.cc tests.
2248
0d1c3a04
AD
22492003-02-19 Akim Demaille <akim@epita.fr>
2250
2251 * data/lalr1.cc: When displaying a line number, be sure to make it
2252 an int.
2253
60a777aa
AD
22542003-02-19 Akim Demaille <akim@epita.fr>
2255
2256 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
2257 Remove, useless.
2258 (YYABORT, YYACCEPT, YYERROR): New.
2259 * tests/calc.at: Renable the lalr1.cc test.
2260
0b86fc41
AD
22612003-02-19 Akim Demaille <akim@epita.fr>
2262
2263 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
2264 error recovery, mixing with/without pops and discarding of the
2265 lookahead.
2266 Exercise YYERROR.
2267 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
2268
da99a5dc
PE
22692003-02-17 Paul Eggert <eggert@twinsun.com>
2270
2271 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
2272 * tests/testsuite.at (AT_COMPILE): Use them.
2273 This fixes the testsuite problem reported by Robert Lentz in
161a71f3 2274 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
da99a5dc 2275
93b8c255
PE
22762003-02-12 Paul Eggert <eggert@twinsun.com>
2277
2278 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
2279 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
161a71f3 2280 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
93b8c255
PE
2281 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
2282 Check for malloc failure, for consistency with yacc.c.
2283 (yytname_size): Remove, for consistency with yacc.c.
2284
2285 The bug still remains in data/lalr1.cc, as I didn't have time
2286 to fix it there.
2287
7548fed2
AD
22882003-02-06 Akim Demaille <akim@epita.fr>
2289
2290 * configure.ac (GXX): Rename as...
2291 (CXX): this, to keep the original Autoconf semantics.
2292 Require 2.57.
2293 * data/lalr1.cc: Fix b4_copyright invocations.
2294 If YYDEBUG is not defined, don't depend upon name_ being defined.
2295 (location.hh): Include string and iostream.
2296 (Position::filename): New member.
2297 (Position::Position ()): New.
2298 (operator<< (Position)): New.
2299 (operator- (Position, int)): New.
2300 (Location::first, Location::last): Rename as...
2301 (Location::begin, Location::end): these, to mock the conventional
2302 iterator names.
2303 (operator<< (Location)): New.
2304 * tests/atlocal.in (CXX): New.
2305 * tests/testsuite.at (AT_COMPILE_CXX): New.
2306 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
2307 locations in a more synthetic way.
2308 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
2309 lalr1.cc is used.
2310 Adjust the C locations to match those from Emacs: first column is
2311 column 0.
2312 Change all the expected results.
2313 Conform to the GCS: simplify the locations when applicable.
2314 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
2315 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
2316 these CPP macros with the m4 macros new defined by...
2317 (AT_CHECK_PUSHDEFS): this, i.e.:
2318 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
d02b25f9 2319 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
2320 New macros.
2321 (AT_CHECK_POPDEFS): Undefine them.
2322 (AT_CHECK_CALC_LALR1_CC): New.
2323 Use it for the first lalr1.cc test.
2324
43a176ef
AD
23252003-02-04 Akim Demaille <akim@epita.fr>
2326
2327 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
2328 Location as is defined.
2329
fc049e9c
AD
23302003-02-04 Akim Demaille <akim@epita.fr>
2331
2332 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
2333 name_ being defined.
2334
a737b216
PE
23352003-02-03 Paul Eggert <eggert@twinsun.com>
2336
2337 * src/gram.h (start_symbol): Remove unused decl.
2338
2339 Use more-consistent naming conventions for local vars.
2340
2341 * src/derives.c (derives_compute): Change type of local var from
2342 int to rule_number.
2343 * src/gram.c (grammar_rules_partial_print): Likewise.
2344 * src/print.c (print_core): Likewise.
2345 * src/reduce.c (reduce_grammar_tables): Likewise.
2346
2347 * src/gram.c (grammar_dump): Change name of item_number *
2348 local var from r to rp.
2349 * src/nullable.c (nullable_compute): Likewise.
2350
2351 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
2352
2353 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
2354 for symbol or symbol_number var.
2355 * src/reader.c (grammar_start_symbol_set): Likewise.
2356 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
2357 Likewise.
2358 * src/state.c (transitions_to): Likewise.
2359 * src/state.h: Likewise.
2360 * src/tables.c (symbol_number_to_vector_number): Likewise.
2361
2362 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
2363 char * var.
2364
2365 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
2366 var.
2367
2368 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
2369 var.
2370
2371 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
2372 Use str, not s, for char * var. Use ch, not c, for character var.
2373 Use size for size var.
2374
2375 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
2376 char * var.
2377 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
2378 uniqstr var.
2379 * src/uniqstr.h: Likewise.
2380
2381 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
2382 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
2383 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
2384 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
2385 param to have same name as that of enum, so that we don't use
2386 "s" to stand for a non-state.
2387
68e93ad5
AD
23882003-02-02 Akim Demaille <akim@epita.fr>
2389
2390 * src/scan-skel.l: Scan more than one inert character per yylex
2391 invocation.
2392
92898986
PE
23932003-02-01 Paul Eggert <eggert@twinsun.com>
2394
2395 Version 1.875a.
2396
1d9d5d71
PE
2397 * po/LINGUAS: Add ms.
2398
0435d061
AD
23992003-01-30 Akim Demaille <akim@epita.fr>
2400
2401 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
2402
6029a57f
PH
24032003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2404
2405 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
2406 of $1.
0435d061
AD
2407
2408 Changes in response to error report by S. Eken: GLR mode does not
6029a57f 2409 handle negative $ indices or $ indices in embedded rules correctly.
161a71f3 2410 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 2411
6029a57f
PH
2412 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
2413 (b4_rhs_location): Ditto.
0435d061 2414 (yyfill): New function to copy from stack tree into array
6029a57f 2415 incrementally.
0435d061
AD
2416 (yyuserAction): Modify to allow incremental move of semantic values
2417 to rhs array when in GLR mode.
2418 Define YYFILL to use in user-defined actions to fill semantic array
6029a57f
PH
2419 as needed.
2420 Remove dummy use of yystack, as there is now a guaranteed use.
2421 (yydoAction): Modify to allow incremental move of semantic values
2422 to rhs array when in GLR mode.
2423 (yyresolveAction): Ditto.
2424 (yyglrShiftDefer): Update comment.
0435d061 2425 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
2426 (yyglrReduce): Ditto.
2427 (yydoAction): Ditto
0435d061 2428
6029a57f
PH
2429 * tests/glr-regr1.at: Rename to ...
2430 * tests/glr-regression.at: Add new regression test for the problems
2431 described above (adapted from S. Eken).
2432 Update copyright notice.
2433 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
2434 * tests/Makefile.am: Ditto.
2435
6cee6297
PE
24362003-01-28 Paul Eggert <eggert@twinsun.com>
2437
2438 * data/lalr1.cc: Do not use @output_header_name@ unless
2439 b4_defines_flag is set. This fixes two bugs reported by
2440 Tim Van Holder in
161a71f3
PE
2441 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
2442 and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
6cee6297 2443
b2a836b5
PE
24442003-01-21 Paul Eggert <eggert@twinsun.com>
2445
2446 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
2447 we don't need to worry about yyerrlab1 being reported as an
2448 "unused label" by non-GCC C compilers. The downside is that if
2449 locations are used then a couple of statements are duplicated each
2450 time YYERROR is invoked, but the upside is that the warnings
2451 should vanish.
2452 (yyerrlab1): Move code to YERROR.
2453 (yyerrlab2): Remove. Change uses back to yyerrlab1.
2454 This reverts some of the 2002-12-27 change.
2455
4196b931
PE
24562003-01-17 Paul Eggert <eggert@twinsun.com>
2457
2458 * src/output.c (symbol_printers_output): Fix typo that led
2459 to core dump. Problem reported by Antonio Rus in
161a71f3 2460 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
4196b931 2461
3ae831b4
AD
24622003-01-13 Akim Demaille <akim@epita.fr>,
2463 Quoc Peyrot <chojin@lrde.epita.fr>,
2464 Robert Anisko <anisko_r@lrde.epita.fr>
2465
2466 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
2467 when the stacks contain one element, as the loop would otherwise
2468 free the last state, and then use the top state (the one we just
2469 popped). This means that the initial elements will not be freed
2470 explicitly, as is the case in yacc.c; it is not a problem, as
2471 these elements have fake values.
2472
e3aa65c5
PE
24732003-01-11 Paul Eggert <eggert@twinsun.com>
2474
2475 * NEWS: %expect-violations are now just warnings, reverting
2476 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
2477 bootstrapping problem reported by Matthias Klose; see
161a71f3 2478 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
e3aa65c5
PE
2479 * src/conflicts.c (conflicts_print): Likewise.
2480 * tests/conflicts.at (%expect not enough, %expect too much,
2481 %expect with reduce conflicts): Likewise.
2482 * doc/bison.texinfo (Expect Decl): Document this. Also mention
2483 that the warning is enabled if the number of conflicts changes
2484 (not necessarily increases).
2485
2486 * src/getargs.c (version): Update copyright year.
2487
f0057011
AD
24882003-01-09 Akim Demaille <akim@epita.fr>
2489
2490 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
2491
1ee6d2a0
PE
24922003-01-08 Paul Eggert <eggert@twinsun.com>
2493
2494 * Makefile.maint (WGETFLAGS):
2495 New macro, containing "-C off" to disable proxy caches.
2496 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
2497 (rel-check): Use $(WGET) instead of wget.
2498
d4fd77c4
PE
24992003-01-06 Paul Eggert <eggert@twinsun.com>
2500
2501 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
2502 the GLR paper of Scott, Johnstone and Hussain.
2503
464c6927
PE
25042003-01-04 Paul Eggert <eggert@twinsun.com>
2505
d600ee67
PE
2506 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
2507 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
2508 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
2509 (EXTRA_LIBRARIES): New var, for liby.a.
2510 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
2511 (EXTRA_SCRIPTS): New var, for yacc.
2512
464c6927
PE
2513 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
2514 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
2515 Problem reported by Nelson H. F. Beebe.
2516
25172003-01-03 Paul Eggert <eggert@twinsun.com>
2518
2519 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
2520 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
2521 when compiling Bison 1.875's `bitset bset = obstack_alloc
2522 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
2523
2524 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
2525 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
2526 grow to a huge size with typical invocation.
d600ee67 2527
464c6927
PE
2528 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
2529 Use the pattern recommended by Autoconf 2.57, except also protect
2530 against double-definition.
2531 * src/system.h: Likewise.
2532 Portability issues reported by Nelson H. F. Beebe.
d600ee67 2533
464c6927
PE
2534 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
2535 All uses changed. Provide a definition in both C and C++.
2536 (yytrue, yyfalse): Define even if defined (__cplusplus).
2537
2538 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
2539 Reported by Nelson H. F. Beebe.
d600ee67 2540
464c6927
PE
2541 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
2542
0f42c7d5
PE
25432003-01-02 Paul Eggert <eggert@twinsun.com>
2544
2545 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
2546 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
2547 Bug reported by Nelson H. F. Beebe.
2548
dc546b0f
PE
25492003-01-01 Paul Eggert <eggert@twinsun.com>
2550
2551 * Version 1.875.
2552
2c09b6a7
PE
25532002-12-30 Paul Eggert <eggert@twinsun.com>
2554
2555 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
2556 Moved here from...
2557 (<INITIAL>","): Here. This causes stray "," to be treated
2558 more uniformly.
2559
dc546b0f 2560 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
2561 last brace in braced code when not in Yacc mode, for compatibility
2562 with Bison 1.35. This resurrects the 2001-12-15 patch to
2563 src/reader.c.
2564
2565 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
2566 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
2567
535c0f63
PE
25682002-12-28 Paul Eggert <eggert@twinsun.com>
2569
2570 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
2571 that of SYM's type. This fixes Debian bug 168069, reported by
2572 Thomas Olsson.
d600ee67 2573
963fcc17
PE
25742002-12-28 Paul Eggert <eggert@twinsun.com>
2575
2576 Version 1.75f.
2577
2578 Switch back to the Yacc style of conflict reports, undoing some
2579 of the 2002-07-30 change.
2580 * doc/bison.texinfo (Understanding): Use Yacc style for
2581 conflict reports. Also, use new way of locating rules.
2582 * src/conflicts.c (conflict_report):
2583 Renamed from conflict_report_yacc, removing the old
2584 'conflict_report'. Translate the entire conflict report at once,
2585 so that we don't assume that "," has the same interpretation in
2586 all languages.
2587 (conflicts_output): Use Yacc-style conflict report for each state,
2588 instead of our more-complicated style.
2589 (conflicts_print): Use Yacc-style conflict report, except print
2590 the input file name when not emulating Yacc.
2591 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
2592 Conflicted Reduction, %expect not enough, %expect too much,
2593 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
2594 * tests/existing.at (GNU Cim Grammar): Likewise.
2595 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
2596
2597 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
2598 fatal): Don't invoke fflush; it's not needed and it might even be
2599 harmful for stdout, as stdout might not be open.
2600 * src/reduce.c (reduce_print): Likewise.
2601
b1efe548
PE
26022002-12-27 Paul Eggert <eggert@twinsun.com>
2603
2604 Fix a bug where error locations were not being recorded correctly.
2605 This problem was originally reported by Paul Hilfinger in
161a71f3 2606 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
2607
2608 * data/yacc.c (yyparse): New local var yylerrsp, to record the
2609 top of the location stack's error locations.
2610 (yyerrlab): Set it. When discarding a token, push its location
2611 onto yylerrsp so that we don't lose track of the error's end.
2612 (yyerrlab1): Now is only the target of YYERROR, so that we can
2613 properly record the location of the action that failed. For GCC
2614 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
2615 GCC warning about yyerrlab1 being unused if YYERROR is unused.
2616 (yyerrlab2): New label, which yyerrlab now falls through to.
2617 Compute the error's location by applying YYLLOC_DEFAULT to
2618 the locations of all the symbols that went into the error.
2619 * doc/bison.texinfo (Location Default Action): Mention that
2620 YYLLOC_DEFAULT is also invoked for syntax errors.
2621 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
2622 Error locations include the locations of all the tokens that were
2623 discarded, not just the last token.
d600ee67 2624
983c5c2c
PE
26252002-12-26 Paul Eggert <eggert@twinsun.com>
2626
b1efe548
PE
2627 * src/files.c: Include quote.h.
2628 (compute_output_file_names): Warn if we detect conflicting
2629 outputs to the same file. This should catch the misunderstanding
2630 exemplified by Debian Bug 165349, reported by Bruce Stephens..
2631
2632 * src/conflicts.c (conflicts_print): If the user specifies
2633 "%expect N", report an error if there are any reduce/reduce
2634 conflicts. This is what the manual says should happen.
2635 This fixes Debian bug 130890, reported by Anthony DeRobertis.
2636 * tests/conflicts.at (%expect with reduce conflicts): New test.
2637
983c5c2c
PE
2638 Don't use m4_include on relative file names, as it doesn't work as
2639 desired if there happens to be a file with that name under ".".
d600ee67 2640
983c5c2c
PE
2641 * m4sugar/version.m4: Remove; it was included but it wasn't used.
2642 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
2643 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
2644 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
2645 * src/output.c (output_skeleton): Use full path names when
2646 specifying a file to include; don't rely on include path, as
2647 it's unreliable when the working file contains a file with
2648 that name.
d600ee67 2649
983c5c2c
PE
26502002-12-25 Paul Eggert <eggert@twinsun.com>
2651
2652 Remove obsolete references to bison.simple and bison.hairy.
2653 Problem mentioned by Aubin Mahe in
161a71f3 2654 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
2655 * data/glr.c: Comment fix.
2656 * doc/bison.1: Remove references. Also, mention "yacc".
2657
2658 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
2659 with -g option.
2660
2661 * src/parse-gram.y (declaration): Use enum "report_states" rather
2662 than its numeric value 1.
2663
2664 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
2665 opening a new one. This fixes Debian bug 165349, reported by
2666 Bruce Stephens.
2667
23f2d9dc
PE
26682002-12-24 Paul Eggert <eggert@twinsun.com>
2669
2670 Version 1.75e.
2671
2672 * Makefile.maint (cvs-update): Don't assume that the shell
2673 supports $(...), as Solaris sh doesn't.
2674
2675 * src/parse-gram.y (lloc_default): Remove test for empty
2676 nonterminals at the end, since it didn't change the result.
2677
26782002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
2679
2680 If the user does not define YYSTYPE as a macro, Bison now declares it
2681 using typedef instead of defining it as a macro. POSIX requires this.
2682 For consistency, YYLTYPE is also declared instead of defined.
2683
2684 %union directives can now have a tag before the `{', e.g., the
2685 directive `%union foo {...}' now generates the C code
2686 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
2687 The default union tag is `YYSTYPE', for compatibility with Solaris 9
2688 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
2689 instead of `yyltype'.
2690
2691 `yystype' and `yyltype' are now obsolescent macros instead of being
2692 typedefs or tags; they are no longer documented and will be
2693 withdrawn in a future release.
2694
2695 * data/glr.c (b4_location_type): Remove.
2696 (YYSTYPE): Renamed from yystype.
2697 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
2698 (struct YYLTYPE): Renamed from struct yyltype.
2699 (YYLTYPE): Renamed from yyltype.
2700 (yyltype, yystype): New (and obsolescent) macros,
2701 for backward compatibility.
2702 * data/yacc.c: Likewise.
2703
2704 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
2705 does not specify a union tag. This is for compatibility with
2706 Solaris 9 yacc.
2707
2708 * src/parse-gram.y (add_param): 2nd arg is now char * not char
2709 const *, since it is now modified by stripping surrounding { }.
2710 (current_braced_code): Remove.
2711 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
2712 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
2713 trailing " {...}". Now of type <chars>.
2714 (grammar_declaration): Adjust to bundled tokens.
2715 (code_content): Remove; stripping is now done by add_param.
2716 (print_token_value): Print contents of bundled tokens.
2717 (token_name): New function.
2718
2719 * src/reader.h (braced_code, current_braced_code): Remove.
2720 (token_name): New decl.
2721
2722 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
2723 token_type, not braced_code code_kind. All uses changed.
2724 (SC_PRE_CODE): New state, for scanning after a keyword that
2725 has (or usually has) an immediately-following braced code.
2726 (token_type): New local var, to keep track of which token type
2727 to return when scanning braced code.
2728 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
dc546b0f 2729 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
2730 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
2731 instead of returning a token type immediately.
2732 (<INITIAL>"{"): Set token type.
2733 (<SC_BRACED_CODE>"}"): Use it.
2734 (handle_action_dollar, handle_action_at): Now returns bool
2735 indicating success. Fail if ! current_rule; this prevents a core dump.
2736 (handle_symbol_code_dollar, handle_symbol_code_at):
2737 Remove; merge body into caller.
2738 (handle_dollar, handle_at): Complain in invalid contexts.
2739
2740 * NEWS, doc/bison.texinfo: Document the above.
2741 * NEWS: Fix years and program names in copyright notice.
2742
879ca4f8
PE
27432002-12-17 Paul Eggert <eggert@twinsun.com>
2744
2745 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
2746 Reporting, Table of Symbols): Omit mentions of %lex-param and
2747 %parse-param from the documentation for now.
2748
1c5fe69d
PE
27492002-12-15 Paul Eggert <eggert@twinsun.com>
2750
2751 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
2752 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
2753 lookahead symbol, and which sets yychar in parser actions) and it
7ea9026a
PE
2754 disagreed with the Bison documentation. Bug
2755 reported by Andrew Walrond.
d600ee67 2756
1c5fe69d
PE
2757 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
2758 as the caller now does that.
2759 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
2760 (YYEMPTY): Parenthesize right hand side, since others use it.
2761 (yyparse): Don't assume that our generated code is the only code
2762 that sets yychar.
2763
d1de5372
PE
27642002-12-13 Paul Eggert <eggert@twinsun.com>
2765
2766 Version 1.75d.
2767
2768 POSIX requires a "yacc" command.
2769 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
2770 (MOSTLYCLEANFILES): Add yacc.
2771 (yacc): New rule.
1c5fe69d 2772 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
2773 as an alias for bison y.
2774
2775 * po/LINGUAS: Add da.
d600ee67 2776
d1de5372
PE
2777 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
2778 problem with latest <getopt.h>.
2779 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
2780
2781 * doc/fdl.texi: Upgrade to 1.2.
2782 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
2783 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
2784 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
2785 gnulib.
2786 * config/install-sh: Sync with autotools.
2787
2788 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
161a71f3 2789 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
2790 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
2791 locations are requested.
2792 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
2793 locations are requested.
2794
d0f3fe23
PE
27952002-12-12 Paul Eggert <eggert@twinsun.com>
2796
2797 Remove unportable casts and storage allocation tricks.
2798 While we're at it, remove almost all casts, since they
2799 usually aren't needed and are a sign of trouble.
2800
2801 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
2802
2803 * src/derives.c (derives_compute): Do not subtract NTOKENS from
2804 the pointer DSET returned by malloc; this isn't portable.
2805 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
2806 Similarly for DERIVES.
2807 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
2808 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
2809 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
2810
2811 * src/derives.c (derives_compute): Do not bother invoking
2812 int_of_rule_number, since rule numbers are integers.
2813
2814 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
2815 rather than XMALLOC (char, N).
2816
2817 * src/files.c (filename_split): Rewrite to avoid cast.
2818
2819 * src/gram.h (symbol_number_as_item_number,
2820 item_number_as_symbol_number, rule_number_as_item_number,
2821 item_number_as_rule_number):
2822 Now inline functions rather than macros, to avoid casts.
2823 * src/state.h (state_number_as_int): Likewise.
2824 * src/tables.c (state_number_to_vector_number,
2825 symbol_number_to_vector_number): Likewise.
2826
2827 * src/gram.h (int_of_rule_number): Remove; no longer used.
2828
2829 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
2830 since the resulting storage is always stored into.
2831
2832 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
2833 where it's needed.
2834
2835 * src/muscle_tab.c (muscle_m4_output):
2836 Now inline. Return bool, not int.
2837 * src/state.c (state_compare): Likewise.
2838 * src/symtab.c (symbol_check_defined,
2839 symbol_check_alias_consistency, symbol_pack, symbol_translation,
2840 hash_compare_symbol, hash_symbol):
2841 Likewise.
2842 * src/uniqstr.c (uniqstr_print): Likewise.
2843 * src/muscle_tab.c (muscle_m4_output_processor):
2844 New function, to avoid casts.
2845 * src/state.c (state_comparator, stage_hasher): Likewise.
2846 * src/symtab.c (symbol_check_defined_processor,
2847 symbol_check_alias_consistency_processor, symbol_pack_processor,
2848 symbol_translation_processor, hash_symbol_comparator,
2849 hash_symbol_hasher): Likewise.
2850 * src/uniqstr.c (uniqstr_print_processor): Likewise.
2851 * src/muscle_tab.c (muscles_m4_output):
2852 Use new functions instead of casting old functions unportably.
2853 * src/state.c (state_hash_new): Likewise.
2854 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
2855 symbols_token_translations_init):
2856 Likewise.
2857 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
2858
2859 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
2860 var instead of casting to long, to avoid casts.
2861 (prepare_states): Use MALLOC rather than alloca, so that we don't
2862 have to worry about alloca.
2863 * src/state.c (state_hash_lookup): Likewise.
2864
2865 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
2866 local var instead of casting to unsigned char, to avoid casts.
2867
2868 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
2869 STATE_ALLOC): Remove.
2870 (transitions_new, errs_new, reductions_new, state_new): Use malloc
2871 rather than calloc, and use offsetof to avoid allocating slightly
2872 too much storage.
2873 (state_new): Initialize all members.
2874
2875 * src/state.c (state_hash): Use unsigned accumulator, not signed.
2876
2877 * src/symtab.c (symbol_free): Remove; unused.
2878 (symbol_get): Remove cast in lhs of assignment.
2879 (symbols_do): Now static. Accept generic arguments, not
2880 hashing-related ones.
2881
2882 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
2883 (symbol_processor): Remove.
2884 (symbols_do): Remove decl; now static.
2885
2886 * src/system.h (alloca): Remove; decl no longer needed.
2887 (<stddef.h>): Include, for offsetof.
2888 (<inttypes.>, <stdint.h>): Include if available.
2889 (uintptr_t): New type, if system lacks it.
2890 (CALLOC, MALLOC, REALLOC): New macros.
2891 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
2892 new macros.
2893
2894 * src/tables.c (table_size): Now int, to pacify GCC.
2895 (table_grow, table_ninf_remap): Use signed table size.
2896 (save_row): Don't bother initializing locals when not needed.
2897 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
2898 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
2899
2900 * src/vcg.h: Correct misspellings.
2901
2902 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
2903
2904
2905 * src/getargs.c (getargs): Don't assume EOF == -1.
2906
26b4a969
PE
29072002-12-09 Paul Eggert <eggert@twinsun.com>
2908
2909 Change identifier spellings to avoid collisions with names
2910 that are reserved by POSIX.
2911
2912 Don't use names ending in _t, since POSIX reserves them.
2913 For consistency, remove _e and _s endings -- they're weren't
2914 needed to remove ambiguity. All uses changed.
2915 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
2916 turn was just renamed from struniq_t.
2917 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
2918 which in turn was just renamed from struniq_processor_t.
2919 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
2920 in turn was renamed from hash_compare_struniq_t.
2921 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
2922 (state_list): Renamed from state_list_t.
2923 * src/assoc.h (assoc): Renamed from assoc_t.
2924 * src/conflicts.c (enum conflict_resolution): Renamed from
2925 enum conflict_resolution_e.
2926 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
2927 (rule_list): Renamed from rule_list_t.
2928 * src/getargs.h (enum trace): Renamed from enum trace_e.
2929 (enum report): Renamed from enum report_e.
2930 * src/gram.h (item_number): Renamed from item_number_t.
2931 (rule_number): Renamed from rule_number_t.
2932 (struct rule_s): Remove the "rule_s" part; not used.
2933 (rule): Renamed from rule_t.
2934 (rule_filter): Renamed from rule_filter_t.
2935 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
2936 (goto_list): Renamed from goto_list_t.
2937 * src/lalr.h (goto_number): Renamed from goto_number_t.
2938 * src/location.h (location): Renamed from location_t.
2939 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
2940 and moved here from:
2941 * src/muscle_tab.h (muscle_entry_t): here.
2942 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
2943 (rule_list): Renamed from rule_list_t.
2944 * src/print_graph.c (static_graph): Renamed from graph.
2945 * src/reader.h (braced_code): Renamed from braced_code_t.
2946 Remove brace_code_e tag.
2947 * src/relation.h (relation_node): Renamed from relation_node_t.
2948 (relation_nodes): Renamed from relation_nodes_t.
2949 (relation): Renamed from relation_t.
2950 * src/state.h (state_number): Renamed from state_number_t.
2951 (struct state): Renamed from struct state_s.
2952 (state): Renamed from state_t.
2953 (transitions): Renamed from transitions_t. Unused (and
2954 misspelled) transtion_s tag removed.
2955 (errs): Renamed from errs_t. Unused errs_s tag removed.
2956 (reductions): Renamed from reductions_t. Unused tag
2957 reductions_s removed.
2958 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
2959 (struct symbol_list): Renamed from struct symbol_list_s.
2960 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
2961 (struct symbol): Renamed from struct symbol_s.
2962 (symbol): Renamed from symbol_t.
2963 * src/tables.c (vector_number): Renamed from vector_number_t.
2964 (action_number): Renamed from action_t.
2965 * src/tables.h (base_number): Renamed from base_t.
2966 * src/vcg.h (enum color): Renamed from enum color_e.
2967 (enum textmode): Renamed from enum textmode_e.
2968 (enum shape): Renamed from enum shape_e.
2969 (struct colorentry): Renamed from struct colorentry_s.
2970 (struct classname): Renamed from struct classname_s.
2971 (struct infoname): Renamed from struct infoname_s.
2972 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
2973 (enum decision): Renamed from enum decision_e.
2974 (enum orientation): Renamed from enum orientation_e.
2975 (enum alignment): Renamed from enum alignment_e.
2976 (enum arrow_mode): Renamed from enum arrow_mode_e.
2977 (enum crossing_type): Renamed from enum crossing_type_e.
2978 (enum view): Renamed from enum view_e.
2979 (struct node): Renamed from struct node_s.
2980 (node): Renamed from node_t.
2981 (enum linestyle): Renamed from enum linestyle_e.
2982 (enum arrowstyle): Renamed from enum arrowstyle_e.
2983 (struct edge): Renamed from struct edge.
2984 (edge): Renamed from edge_t.
2985 (struct graph): Renamed from struct graph_s.
2986 (graph): Renamed from graph_t.
2987 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
2988 Rename value_t -> value.
2989 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
2990 value_t_as_yystype -> value_as_yystype.
2991
2992 Don't include <errno.h> in the mainstream code, since it
2993 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
2994 * lib/get-errno.c, lib/get-errno.h: New files.
2995 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
2996 get-errno.c.
2997 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
2998 * src/output.c (output_skeleton): Likewise.
2999 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
3000 instead of errno.
3001 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
3002 Likewise.
3003 (handle_action_dollar, handle_action_at): Likewise.
3004 * src/system.h: Do not include <errno.h>.
3005 (TAB_EXT): Renamed from EXT_TAB.
3006 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
3007
3008 Avoid str[a-z]*, since <string.h> reserves that name space.
3009 Change all instances of "struniq" in names to "uniqstr", and
3010 likewise for "STRUNIQ" and "UNIQSTR".
3011 * src/uniqstr.c: Renamed from src/struniq.c.
3012 * src/uniqstr.h: Renamed from src/struniq.h.
3013 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
3014 * src/files.c (strsuffix): Remove; unused.
3015 (concat2): Renamed from stringappend. Now static.
3016 * src/files.h (strsuffix, stringappend): Remove; unused.
3017 * src/parse-gram.y (<chars>): Renamed from <string>.
3018 (<uniqstr>): Renamed from <struniq>.
3019 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
3020 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
3021 (struct graph_s.expand): Renamed from struct graph_s.stretch.
3022 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
3023 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
3024 (N_EXPAND): Renamed from N_STRETCH.
3025
3026 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
3027 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
3028 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
3029 Remove; unused.
3030 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
3031 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
3032 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
3033 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
3034 (BASE_MAXIMUM): Renamed from BASE_MAX.
3035 (BASE_MINIMUM): Renamed from BASE_MIN.
3036 (ACTION_MAX): Remove; unused.
3037 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
3038 Unnecessary casts removed from above defines.
3039
3040
3041 Fix misspelling in names.
3042 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
3043 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
3044 G_NODE_ALIGNEMENT.
3045
3046
3047 * lib/timevar.c (timevar_report): Renamed from time_report,
3048 for consistency with other names.
3049 * lib/timevar.h (timevar_report): New decl.
3050 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
3051
3052
3053 Sort include-file uses.
3054
3055 Reorder all include files under src to be in the order "system.h".
3056 then the ../lib include files in angle brackets (alphabetized),
3057 then the . include files in double-quotes (alphabetized). Fix
3058 dependency breakages encountered in this process, as follows:
3059 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
3060 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
3061 * src/state.h: Include "symtab.h".
3062
996b1c7e
PE
30632002-12-08 Paul Eggert <eggert@twinsun.com>
3064
3065 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
3066 since this causes problems when __file__ contains character
3067 sequences like "@" that are treated specially by src/scan-skel.l.
3068 Instead, just use the file's basename. This fixes the bug
3069 reported by Martin Mokrejs in
161a71f3 3070 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 3071
e19c4e5d
PE
30722002-12-06 Paul Eggert <eggert@twinsun.com>
3073
3074 Add support for rules that do not have trailing semicolons, as
3075 POSIX requires. Improve the quality of locations in Bison
3076 diagnostics.
26b4a969 3077
e19c4e5d
PE
3078 * src/location.c: Include <quotearg.h>.
3079 (empty_location): Now const.
3080 (location_print): New function. Follow the recommendation of the
3081 GNU Coding Standards for locations that span file boundaries.
3082 * src/location.h: Do not include <quotearg.h>; no longer needed.
3083 (boundary): New type.
3084 (location_t): Use it. This allows locations to span file boundaries.
3085 All member uses changed: file -> start.file or end.file (as needed),
3086 first_line -> start.line, first_column -> start.column,
3087 last_line -> end.line, last_column -> end.column.
3088 (equal_boundaries): New function.
3089 (LOCATION_RESET, LOCATION_STEP): Remove.
3090 (LOCATION_PRINT): Remove. All callers changed to use location_print.
3091 (empty_location): Now const.
3092 (location_print): New decl.
3093 * src/parse-gram.y (lloc_default): New function, which handles
3094 empty locations more accurately.
3095 (YYLLOC_DEFAULT): Use it.
3096 (%token COLON): Remove.
3097 (%token ID_COLON): New token.
26b4a969 3098 (rules): Use it.
e19c4e5d
PE
3099 (declarations, rules): Remove trailing semicolon.
3100 (declaration, rules_or_grammar_declaration):
3101 Allow empty (";") declaration.
3102 (symbol_def): Remove empty actions; no longer needed.
3103 (rules_or_grammar_declaration): Remove trailing semicolon.
3104 (semi_colon.opt): Remove.
3105 * src/reader.h: Include location.h.
3106 (scanner_cursor): New decl.
3107 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
3108 rolling our own.
3109 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
3110 of *loc.
3111 (STEP): Remove. No longer needed, now that adjust_location does
3112 the work. All uses removed.
3113 (scanner_cursor): New var.
3114 (adjust_location): Renamed from extend_location. It now sets
3115 *loc and adjusts the scanner cursor. All uses changed.
3116 Don't bother testing for CR.
3117 (handle_syncline): Remove location arg; now updates scanner cursor.
3118 All callers changed.
3119 (unexpected_end_of_file): Now accepts start boundary of token or
3120 comment, not location. All callers changed. Update scanner cursor,
3121 not the location.
3122 (SC_AFTER_IDENTIFIER): New state.
3123 (context_state): Renamed from c_context. All uses changed.
3124 (id_loc, code_start, token_start): New local vars.
3125 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
3126 processing of Yacc white space and equivalents here.
3127 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
3128 instead of returning ID immediately, since we need to search for
3129 a subsequent colon.
3130 (<INITIAL>"'", "\""): Save token_start.
3131 (<INITIAL>"%{", "{", "%%"): Save code_start.
3132 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
3133 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
3134 BEGIN context_state at end, not INITIAL.
3135 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
3136 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
3137 Return correct token start.
3138 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
3139 the start of a character, string or multiline comment is found.
3140 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
3141 Reduction): Adjust reported locations to match the more-precise
3142 results now expected.
3143 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
3144 * tests/reduce.at (Useless Rules, Reduced Automaton,
3145 Underivable Rules): Likewise.
3146 * tests/regression.at (Invalid inputs): No longer `expecting ";"
3147 or "|"' now that so many other tokens are allowed by the new grammar.
3148
3149 * src/complain.h (current_file): Remove duplicate decl;
3150 current_file is now owned by files.h.
3151 * src/complain.c, src/scan-gram.l: Include files.h.
3152
31532002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 3154
e19c4e5d
PE
3155 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
3156 promotes to int; it might be unsigned int.
3157 * data/yacc.c (yy_reduce_print): Likewise.
3158
3159 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
3160 be #defined in the prologue, not in the Bison declarations.
3161 This fixes Debian Bug 102878, reported by Shaul Karl.
26b4a969 3162
b64755e3
PE
31632002-12-02 Paul Eggert <eggert@twinsun.com>
3164
3165 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
3166 * lib/strtoul.c: New file, from gnulib.
3167 This fixes a porting bug reported by Peter Klein in
161a71f3 3168 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 3169
6e746484
PE
31702002-11-30 Paul Eggert <eggert@twinsun.com>
3171
b64755e3
PE
3172 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
3173 and put only a forward declaration in the prologue. This is for
3174 consistency with the other scanner helper functions.
3175
6ba55592
PE
3176 Type clashes now generate warnings, not errors, since it
3177 appears that POSIX may allow some grammars with type clashes.
3178 * src/reader.c (grammar_current_rule_check): Warn about
3179 type clashes instead of complaining.
3180 * tests/input.at (Type Clashes): Expect warnings, not complaints.
3181
6e746484
PE
3182 Add Yacc library, since POSIX requires it.
3183 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
3184 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
3185 * lib/main.c, lib/yyerror.c: New files.
3186
3187 gram_error can be static; it need not be extern.
3188 * src/reader.h (gram_error): Remove decl.
3189 * src/parse-gram.y (gram_error): Now static. Add static decl.
3190 (print_token_value): Omit parameter names from forward decl,
3191 for consistency.
3192
88510f9c
PE
31932002-11-29 Paul Eggert <eggert@twinsun.com>
3194
6e746484
PE
3195 * doc/bison.texinfo: Emphasize that yylex and yyerror must
3196 be declared before being used. E.g., one should typically
3197 declare them in the prologue. Use GNU coding style in examples.
3198 Put "const" consistently after the type it modifies. Mention
3199 that C99 supports "inline". Mention that yyerror traditionally
3200 returns "int".
3201
88510f9c
PE
3202 %parse-param and %lex-param now take just one argument, the
3203 declaration; the argument name is deduced from the declaration.
3204
3205 * doc/bison.texinfo (Parser Function, Pure Calling, Error
3206 Reporting, Table of Symbols): Document this.
3207 * src/parse-gram.y (add_param): New function.
3208 (COMMA): Remove.
3209 (declaration): Implement new rule for %parse-param and %lex-param.
3210 * src/scan-gram.l: "," now elicits a warning, rather than being
3211 a token; this is more compatible with byacc.
3212 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
3213
bb92250c
PE
32142002-11-27 Paul Eggert <eggert@twinsun.com>
3215
3216 Rename identifiers to avoid real and potential collisions.
3217
3218 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
3219 to avoid collision with lex macro described by Bruce Lilly in
161a71f3 3220 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
3221 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
3222 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
3223 * src/parse-gram.y (print_token_value): Renamed from yyprint.
3224 All uses changed.
3225 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
3226 The name "yycontrol" violates the name space rules, and this stuff
3227 wasn't being used anyway.
3228 (input): Remove action; this stuff wasn't being used.
3229 (gram_error): Rename local variable yylloc -> loc.
3230 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
3231 (YY_DECL): Don't use "yy" at start of local variables.
3232 All uses changed, e.g., yylloc -> loc.
3233 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
3234 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
3235 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
3236 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
3237
3238 * src/parse-gram.y (gram_error): loc is now const *.
3239 * src/reader.h (gram_error): Likewise.
3240
3af4feb2
PE
32412002-11-24 Paul Eggert <eggert@twinsun.com>
3242
3243 Version 1.75c.
3244
3245 * tests/actions.at (Actions after errors): Use an output format
3246 more similar to that of the Printers and Destructors test.
3247 Test the position of the ';' token too.
3248 (Printers and Destructors): Likewise.
3249 (Printers and Destructors: %glr-parser): Remove for now, to avoid
3250 unnecessarily alarming people when the test fails.
3251
3252 * data/yacc.c (yyerrlab1): Move this label down, so that the
3253 parser does not discard the lookahead token if the user code
3254 invokes YYERROR. This change is required for POSIX conformance.
3255
3256 * lib/error.c: Sync with gnulib.
3257
32582002-11-22 Paul Eggert <eggert@twinsun.com>
3259
3260 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
3261 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
3262 * lib/xmalloc.c: Likewise.
26b4a969 3263
58004308
PE
32642002-11-20 Paul Eggert <eggert@twinsun.com>
3265
3266 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
3267
32682002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 3269
58004308
PE
3270 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
3271 should use `if (! x) abort ();' rather than `assert (x);', and
3272 anyway it's one less thing to worry about configuring.
3273
3274 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
3275 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
3276 and replace all instances of assert with abort.
3277 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
3278 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
3279
3280 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
3281 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
3282 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
3283 hash_find_entry, hash_rehash, hash_insert): Likewise.
3284 * src/conflicts.c (resolve_sr_conflict): Likewise.
3285 * src/lalr.c (set_goto_map, map_goto): Likewise.
3286 * src/nullable.c (nullable_compute): Likewise.
3287 * src/output.c (prepare_rules, token_definitions_output): Likewise.
3288 * src/reader.c (packgram, reader): Likewise.
3289 * src/state.c (state_new, state_free, state_transitions_set,
3290 state_reduction_find): Likewise.
3291 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
3292 symbol_pack): Likewise.
3293 * src/tables.c (conflict_row, pack_vector): Likewise.
3294 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
3295 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
3296 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
3297 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
3298
3299 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
3300 (ARGMATCH_CONSTRAINT): New macro.
3301 (ARGMATCH_ASSERT): Use it.
3302
3303 * src/system.h (verify): New macro.
3304 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
3305 rather than assert.
3306 * src/tables.c (tables_generate): Likewise.
3307
3308 * src/struniq.c (struniq_assert): Now returns void, and aborts
3309 if the assertion is false.
3310 (struniq_assert_p): Remove.
3311 * src/struniq.h: Likewise.
3312
76ae8198
PE
33132002-11-18 Paul Eggert <eggert@twinsun.com>
3314
3315 * data/glr.c (yygetLRActions): Replace `yyindex' with
3316 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
3317 This fixes the regression with Sun ONE Studio 7 cc that I reported in
161a71f3 3318 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 3319
d3c4e709
AD
33202002-11-18 Akim Demaille <akim@epita.fr>
3321
3322 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
3323 space.
3324 From Tim Van Holder.
3325
8d8a7238
PE
33262002-11-17 Paul Eggert <eggert@twinsun.com>
3327
3328 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
3329 to "SyntaxError" for consistency with my 2002-11-15 change.
3330
3331 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
3332 not define to {}, since this breaks the common use of `YYDPRINTF
3333 ((...));' if a single statement is desired (e.g. before `else').
3334 Work around GCC warnings by surrounding corresponding calls with
3335 {} if needed.
3336 (yyhasResolvedValue): Remove unused function.
3337 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
3338 loop body.
3339 (yyreportSyntaxError): Renamed from yyreportParseError.
3340 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
3341 All uses changed.
3342 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
3343 extern when possible. Remove unused initializations.
3344
b0937b22
AD
33452002-11-16 Akim Demaille <akim@epita.fr>
3346
3347 Augment the similarity between GLR and LALR traces.
3348
3349 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
3350 (YY_REDUCE_PRINT): New.
3351 (yyparse): Use them.
3352 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
3353 YYDPRINT here.
3354 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
3355 state reached after the reduction/recovery, since...
3356 (yyparse, yyprocessOneStack): Report the state we are entering in.
3357
c5e3e510
AD
33582002-11-16 Akim Demaille <akim@epita.fr>
3359
3360 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
3361 Add support for --trace=skeleton.
3362 * src/scan-skel.l: %option debug.
3363 Scan strings of non-@ or \n instead of character by character.
3364 (scan_skel): Handle trace_skeleton.
3365 (QPUTS): New.
3366 (@output_parser_name@, @output_header_name@): ``Restore'' their
3367 support (used to be M4 macros).
3368 * data/yacc.c: Quote larger chunks, a la glr.c.
3369 * data/lalr1.cc: Likewise.
3370 The header guards are no longer available, so use some other
3371 string than `YYLSP_NEEDED'.
3372
4c6cc1db
AD
33732002-11-16 Akim Demaille <akim@epita.fr>
3374
3375 Make the ``Printers and Destructors'' test more verbose, taking
3376 `yacc.c''s behavior as (possibly wrong) reference.
3377
3378 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
3379 instead of fprint on stdout.
3380 Set and report the last_line of the symbols.
3381 Consistently display values and locations.
3382
6d9e8019
PE
33832002-11-16 Paul Eggert <eggert@twinsun.com>
3384
3385 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
3386
6e649e65
PE
33872002-11-15 Paul Eggert <eggert@twinsun.com>
3388
b25d88f6
PE
3389 * tests/actions.at (Actions after errors): New test case.
3390
6e649e65
PE
3391 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
3392 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
3393 tests/action.at, tests/calc.at, tests/conflicts.at,
3394 tests/cxx-type.at, tests/regression.at:
3395 "parse error" -> "syntax error" for POSIX compatibility.
3396 "parsing stack overflow..." -> "parser stack overflow" so
3397 that code matches Bison documentation.
3398
0f39aab9
AD
33992002-11-15 Akim Demaille <akim@epita.fr>
3400
3401 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
3402 take two BRACED_CODE, not two string_content.
3403 Free the scanner's obstack when we are done.
3404 (code_content): New.
3405 * tests/calc.at: Adjust.
3406 * doc/bison.texinfo: Adjust.
3407 Also, make sure to include the `,' for these declarations.
3408
761c1926
AD
34092002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
3410
3411 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
3412 definition; avoids potential autoreconf problems.
3413
b0f98b10
AD
34142002-11-15 Akim Demaille <akim@epita.fr>
3415
3416 Always check the value returned by yyparse.
3417
3418 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
3419 returned by yyparse.
3420 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
3421 Adjust calls.
3422 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
3423 returned by yyparse.
3424
970785f1
PH
34252002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3426
3427 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
3428 on input.at test.
3429
8fcc7db1
PE
34302002-11-14 Paul Eggert <eggert@twinsun.com>
3431
7ec1b48e
PE
3432 * src/output.c (output_skeleton): Call xfopen instead of
3433 duplicating xfopen's body.
3434
cfff7583 3435 Fix bugs reported by Nelson H. F. Beebe in
161a71f3 3436 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 3437
8fcc7db1
PE
3438 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
3439 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
3440 Group compiler. Instead, use "$CC -E bar.c". Include the .h
3441 file twice in the grammar, as an extra check.
3442
3443 * tests/input.at (Torturing the Scanner): Surround the
3444 backslash-newline tests with "#if 0", to make it less likely that
3445 we'll run into compiler bugs. Bring back solitary \ inside
3446 comment, but add a closing comment to work around HP C bug. Don't
e3aa65c5 3447 test backslash-newline in C character constant.
8fcc7db1 3448
4e8d992c
AD
34492002-11-14 Akim Demaille <akim@epita.fr>
3450
3451 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
3452 status of the compiler.
f32b346d 3453 Calling `exit 1' is no longer needed.
4e8d992c
AD
3454 Reported by Nelson H. F. Beebe.
3455
9501dc6e
AD
34562002-11-14 Akim Demaille <akim@epita.fr>
3457
3458 * tests/atlocal.in (CPPFLAGS): We have config.h.
3459 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
3460 New.
3461 * tests/actions.at, tests/calc.at, tests/conflicts.at,
3462 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
3463 * tests/regression.at, tests/torture.at: Use them for all the
3464 grammars that are to be compiled.
3465 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
3466 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
3467 * doc/bison.texinfo (GLR Parsers): Document `inline'.
3468
18b519c0
AD
34692002-11-14 Akim Demaille <akim@epita.fr>
3470
3471 * doc/bison.texinfo: Various formatting changes (alignments in
3472 samples, additional @group/@end group, GCS in samples.
3473 Use @deffn instead of simple @table to define the directives,
3474 macros, variables etc.
3475
9a86cdb9
PE
34762002-11-13 Paul Eggert <eggert@twinsun.com>
3477
daa33def 3478 Fix some bugs reported by Albert Chin-A-Young in
161a71f3 3479 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 3480
daa33def 3481 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 3482 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
3483 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
3484 * tests/headers.at (export YYLTYPE): Likewise.
3485
3486 * tests/input.at (Torturing the Scanner): Remove lines containing
8fcc7db1 3487 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 3488
9a86cdb9
PE
3489 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
3490 comments, since they're not portable. Use GNU coding style.
3491
9c1e26bd
AD
34922002-11-13 Akim Demaille <akim@epita.fr>
3493
3494 * data/yacc.c: Leave bigger chunks of quoted text.
3495 (YYDSYMPRINTF): New.
3496 Use it to report symbol activities.
3497 * data/glr.c (YYDSYMPRINTF): New.
3498 Use it.
3499
87f721cc
PE
35002002-11-12 Paul Eggert <eggert@twinsun.com>
3501
3502 Version 1.75b.
3503
3504 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
3505 (yyglrReduce): Return yyok, not 0.
3506 This should avoid the enumerated-type warnings reported
464c6927 3507 by Nelson H. F. Beebe in
161a71f3 3508 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
3509
3510 * lib/bbitset.h (BITSET_INLINE): Remove.
3511 * lib/bitset.h [! BITSET_INLINE]: Remove.
3512 (bitset_set, bitset_reset, bitset_test): Rename local vars
3513 to avoid shadowing warnings by GCC.
3514
3515 * data/glr.c (inline): Remove #define. It's the user's
3516 responsibility to #define it away, just like 'const'.
464c6927 3517 This fixes one of the bugs reported by Nelson H. F. Beebe in
161a71f3 3518 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 3519
87f721cc
PE
3520 * Makefile.maint (po-check): Scan .l and .y files instead of the
3521 .c and the .h files that they generate. This fixes the bug
3522 reported by Tim Van Holder in:
161a71f3 3523 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
3524 Look for N_ as well as for _. Try to avoid matching #define for
3525 N_ and _.
3526 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
3527 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
3528 * src/scan-gram.l: Revamp regular expressions so that " and '
3529 do not confuse xgettext.
3530
3531 * src/struniq.h (struniq_new): Do not declare the return type
3532 to be 'const'; this violates the C standard.
3533 * src/struniq.c (struniq_new): Likewise.
3534
be14ade5
AD
35352002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
3536
3537 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
3538 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
3539 linker.
3540
05291fbc
AD
35412002-11-12 Akim Demaille <akim@epita.fr>
3542
3543 * Makefile.maint: Sync with Autoconf:
3544 (local_updates): New.
3545
1f5fd52e
AD
35462002-11-12 Akim Demaille <akim@epita.fr>
3547
3548 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
3549
283f1e64
AD
35502002-11-12 Akim Demaille <akim@epita.fr>
3551
3552 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
3553 locations.
3554
886b69d1
AD
35552002-11-12 Akim Demaille <akim@epita.fr>
3556
3557 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
3558 not yyvalue.
3559
3df37415
AD
35602002-11-12 Akim Demaille <akim@epita.fr>
3561
3562 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
3563 Use it to test the GLR parser.
3564
7bd6c77e
AD
35652002-11-12 Akim Demaille <akim@epita.fr>
3566
3567 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
3568 defines it.
3569 * data/glr.c (yystos): New.
3570 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
3571 (YYDSYMPRINT): New.
3572 (yyval): Don't define it, it is handled via M4.
3573 (yyrecoverParseError): Free verbosely the discarded symbols.
3574 * data/yacc.c (yysymprint): Remove, rather...
3575 (b4_yysymprint_generate): invoke.
3576 * data/c.m4 (b4_yysymprint_generate): New.
3577 Accept pointers as arguments, as opposed to the version from
3578 yacc.c.
3579 (b4_yydestruct_generate): Likewise.
3580 * tests/cations.at (Printers and Destructors): Use Bison directives
3581 instead of CPP macros.
3582 Don't rely on internal details.
3583
b0400cc6
AD
35842002-11-12 Akim Demaille <akim@epita.fr>
3585
3586 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
3587 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
3588 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
3589 it against YYEMPTY and so forth), work on yytoken (i.e., set
3590 it to YYEMPTY etc.).
3591 (yydestruct): Replace with a b4_yydestruct_generate invocation.
3592 (b4_symbol_actions): Remove.
3593 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
3594 for 0, end-of-input.
3595
72f889cc
AD
35962002-11-12 Akim Demaille <akim@epita.fr>
3597
3598 * doc/bison.texinfo (Destructor Decl): New.
3599
b1ae9233
AD
36002002-11-12 Akim Demaille <akim@epita.fr>
3601
3602 * src/tables.c (tables_generate): Use free for pointers that
3603 cannot be NULL, not XFREE.
3604 (pack_vector): Use assert, not fatal, for bound violations.
3605 * src/state.c (state_new): Likewise.
3606 * src/reader.c (reader): Likewise.
3607 * src/lalr.c (set_goto_map): Likewise.
72f889cc 3608 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
3609 the file name.
3610
7ec2d4cd
AD
36112002-11-12 Akim Demaille <akim@epita.fr>
3612
3613 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
3614 Restore.
3615 * src/scan-gram.l (last_string): Is global to the file, not to
3616 yylex.
3617 * src/parse-gram.y (input): Don't append the epilogue here,
3618 (epilogue.opt): do it here, and free the scanner's obstack.
3619 * src/reader.c (epilogue_set): Rename as...
3620 (epilogue_augment): this.
3621 * data/c.m4 (b4_epilogue): Defaults to empty.
3622
573a6cd3
AD
36232002-11-12 Akim Demaille <akim@epita.fr>
3624
3625 * src/getargs.c (long_options): Remove duplicates.
3626 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
3627 Remove.
3628 * doc/bison.rnh: Remove.
3629 * doc/bison.texinfo (VMS Invocation): Remove.
3630
95612cfa
AD
36312002-11-12 Akim Demaille <akim@epita.fr>
3632
3633 * src/struniq.h, src/struniq.c (struniq_t): Is const.
3634 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
3635
3636 Use struniq for symbols.
3637
3638 * src/symtab.h (symbol_t): The tag member is a struniq.
3639 (symbol_type_set): Adjust.
3640 * src/symtab.c (symbol_new): Takes a struniq.
3641 (symbol_free): Don't free the tag member.
3642 (hash_compare_symbol_t, hash_symbol_t): Rename as...
3643 (hash_compare_symbol, hash_symbol): these.
3644 Use the fact that tags as struniqs.
3645 (symbol_get): Use struniq_new.
3646 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
3647 Returns a strniq.
3648 * src/reader.h (merger_list, grammar_currentmerge_set): The name
3649 and type members are struniqs.
3650 * src/reader.c (get_merge_function)
3651 (grammar_current_rule_merge_set): Adjust.
3652 (TYPE, current_type): Are struniq.
3653
3654 Use struniq for file names.
3655
3656 * src/files.h, src/files.c (infile): Split into...
3657 (grammar_file, current_file): these.
3658 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
3659 * src/reduce.c (reduce_print): Likewise.
3660 * src/getargs.c (getargs): Likewise.
3661 * src/complain.h, src/complain.c: Likewise.
3662 * src/main.c (main): Call struniqs_new early enough to use it for
3663 file names.
3664 Don't free the input file name.
3665
3e6656f9
AD
36662002-11-12 Akim Demaille <akim@epita.fr>
3667
3668 * src/symtab.c (symbol_free): Remove dead deactivated code:
3669 type_name are properly removed.
3670 Don't use XFREE to free items that cannot be NULL.
3671 * src/struniq.h, src/struniq.c: New.
3672 * src/main.c (main): Initialize/free struniqs.
3673 * src/parse-gram.y (%union): Add astruniq member.
3674 (yyprint): Adjust.
3675 * src/scan-gram.l (<{tag}>): Return a struniq.
3676 Free the obstack bit that used to store it.
3677 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
3678
7672019c
PE
36792002-11-11 Paul Eggert <eggert@twinsun.com>
3680
3681 Revamp to fix many (but not all) of the C- and M4-related quoting
3682 problems. Among other things, this fixes the Bison bug reported
3683 by Jan Hubicka when processing the Bash grammar; see:
161a71f3 3684 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
3685
3686 Use new @ escapes consistently. Represent brackets with @{ and @}
3687 rather than @<:@ and @:>@, since this works a bit better with dumb
3688 editors like vi. Represent @ with @@, since @ is now consistently
3689 an escape. Use @oline@ and @ofile@ rather than __oline__ and
3690 __ofile__, to avoid unexpected expansions. Similarly, use @output
3691 rather than #output.
3692
3693 * data/c.m4 (b4_copyright): Omit file name from comment, since
3694 the file name could contain "*/".
3695 (b4_synclines_flag): Don't quote the 2nd argument; it should already
3696 be quoted. All uses changed.
3697
3698 * data/glr.c: Use new @ escapes consistently.
3699 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
3700 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
3701 Remove, since they couldn't handle arbitrary characters in file
3702 names.
3703 * data/lalr1.cc: Likewise.
3704 * data/yacc.c: Likewise.
3705
3706 * src/files.c (output_infix): Remove; all uses removed.
3707 * src/files.h: Likewise.
3708
3709 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
3710 mishandled funny characters in file names, and anyway it isn't
3711 needed any more.
3712 * data/yacc.c: Likewise.
3713 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
3714
3715 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
3716 * data/yacc.c: Likewise.
3717
3718 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
3719 strings now.
3720 (muscle_init): Quote filename as a C string.
3721 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
3722 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
3723 * src/output.c (escaped_file_name_output): New function.
3724 (prepare_symbols): Quote tokens for M4.
3725 (prepare): Don't insert output_infix, output_prefix,
3726 output_parser_name, output_header_name; this is now down by scan-skel.
3727 Insert skeleton as a C string.
3728
3729 * src/output.c (user_actions_output, symbol_destructors_output,
3730 symbol_printers_output): Quote filenames for C and M4.
3731 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3732
3733 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
3734 escapes other than \\ and \'; this simplifies the code.
3735 (<SC_STRING>): Likewise, for \\ and \".
3736 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
3737 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
3738 Use new escapes @{ and @} for [ and ].
3739
3740 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
3741 them with auto vars.
3742 Switch to new escape scheme, where @ is the escape character uniformly.
3743 Abort if a stray escape character is found. Avoid unbounded input
3744 buffer when parsing non-escaped text.
3745
3746 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
3747 __oline__, #output, $@, and @{ do not have unintended meanings.
3748
acea4f3b
PE
37492002-11-09 Paul Eggert <eggert@twinsun.com>
3750
3751 Fix the test failure due to GCC warnings described in
161a71f3 3752 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
3753 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
3754 evaluate to 0 if it's impossible for NINF to be in the respective
3755 table.
3756 (yygetLRActions, yyrecoverParseError): Use them.
3757
3758 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
3759 counted in the token inserted at end of file. Now takes
3760 location_t *, not location_t, so that the location can be
3761 adjusted. All uses changed.
3762
3763 * tests/regression.at (Invalid inputs): Adjust wording in
3764 diagnostic to match the new behavior.
3765
3766 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
3767 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
3768 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
3769 abort ();'. This reduces the runtime of the "Many lookaheads"
3770 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
3771 GCC 3.2.
3772
20ef1ad5
PE
37732002-11-07 Paul Eggert <eggert@twinsun.com>
3774
3775 * src/parse-gram.y (CHARACTER): Remove unused token.
3776 All uses removed.
3777
3778 * src/scan-gram.l: Remove stack option. We no longer use the
3779 stack, since the stack was never deeper than 1; instead, use the
3780 new auto var c_context to record the stacked value.
3781
3782 Remove nounput option. At an unexpected end of file, we now unput
3783 the minimal input necessary to end cleanly; this simplifies the
3784 code.
3785
3786 Avoid unbounded token sizes where this is easy.
3787
3788 (unexpected_end_of_file): New function.
3789 Use it to systematize the error message on unexpected EOF.
3790 (last-string): Now auto, not static.
3791 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
3792 (scanner_last_string_free): Remove; not used.
3793 (percent_percent_count): Move decl to just before use.
3794 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
3795 not the (never otherwised-used) CHARACTER.
3796
93724f13
AD
37972002-11-07 Akim Demaille <akim@epita.fr>
3798
3799 Let yyerror always receive the msg as last argument, so that
3800 yyerror can be variadic.
3801
3802 * data/yacc.c (b4_yyerror_args): New.
3803 Use it when calling yyerror.
3804 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
3805 Use it when calling yyerror.
3806 * doc/bison.texinfo (Error Reporting): Adjust.
3807 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
3808 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
3809
6e40b4eb
AD
38102002-11-06 Akim Demaille <akim@epita.fr>
3811
3812 #line should have quoted strings.
3813 Ideally, this should be done by m4_quotearg.
3814
3815 * src/scan-skel.l: Include quotearg.h.
3816 Quote __ofile__.
3817 * src/output.c (symbol_printers_output)
3818 (symbol_destructors_output): Quote the file name.
3819
2dfbfc12
AD
38202002-11-06 Akim Demaille <akim@epita.fr>
3821
3822 * tests/regression.at (Invalid inputs): Adjust to the recent
3823 messages.
3824
437c2d80
AD
38252002-11-06 Akim Demaille <akim@epita.fr>
3826
3827 Restore --no-lines.
3828 Reported by Jim Kent.
3829
3830 * data/c.m4 (b4_syncline): New.
3831 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
3832 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
3833 * src/output.c (user_actions_output): Likewise.
3834 (prepare): Define 'b4_synclines_flag'.
2dfbfc12 3835 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 3836
900c5db5
AD
38372002-11-06 Akim Demaille <akim@epita.fr>
3838
3839 * src/main.c (main): Free `infile'.
3840 * src/scan-gram.l (handle_syncline): New.
3841 Recognize `#line'.
3842 * src/output.c (user_actions_output, symbol_destructors_output)
3843 (symbol_printers_output): Use the location's file name, not
3844 infile.
3845 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3846
e183b123 38472002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 3848
e183b123 3849 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 3850 either has GLR conflict entries.
e183b123 3851
193eb6b7
PE
38522002-11-05 Paul Eggert <eggert@twinsun.com>
3853
e183b123
PE
3854 * src/scan-gram.l: Use more accurate diagnostics, e.g.
3855 "integer out of range" rather than "invalid value".
3856 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
3857 accordingly.
3858
193eb6b7
PE
3859 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
3860 Also, remove one static variable in the scanner.
3861
3862 * src/scan-gram.l (braces_level): Now auto, not static.
3863 Initialize to zero if the compiler is being picky.
3864 (INITIAL): Clear braces_level instead of incrementing it.
3865 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
3866 as POSIX 1003.1-2001 requires.
3867 * src/system.h (IF_LINT): New macro, taken from coreutils.
3868 * configure.ac: Define "lint" if --enable-gcc-warnings.
3869
29c01725
AD
38702002-11-05 Akim Demaille <akim@epita.fr>
3871
3872 * src/scan-gram.l: When it starts with `%', complain about the
3873 whole directive, not just that `invalid character: %'.
3874
8aeac3ca
AD
38752002-11-04 Akim Demaille <akim@epita.fr>
3876
3877 * Makefile.maint: Update from Autoconf.
3878 (update, cvs-update, po-update, do-po-update): New.
3879
793a58bb
AD
38802002-11-04 Akim Demaille <akim@epita.fr>
3881
3882 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
3883 and yyerror.
3884 Have yyerror `use' its arguments.
3885 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
3886 returns true when location & yacc & pure & parse-param.
3887 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
3888
c4d720cd
AD
38892002-11-04 Akim Demaille <akim@epita.fr>
3890
3891 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
3892 clashes.
3893 * src/scan-gram.l: Use [\'] instead of ['] to pacify
3894 font-lock-mode.
3895 Use complain_at.
3896 Use quote, not quote_n since LOCATION_PRINT no longer uses the
3897 slot 0.
3898
613a0dc5
PE
38992002-11-03 Paul Eggert <eggert@twinsun.com>
3900
3901 * src/reader.c (get_merge_function, grammar_current_rule_check):
3902 Use consistent diagnostics for reporting type name clashes.
3903 Quote the types with <>, for consistency with Yacc.
3904 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
3905
2a8d363a
AD
39062002-11-03 Akim Demaille <akim@epita.fr>
3907
3908 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
3909 New.
3910 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
3911 (b4_parse_param): Remove.
3912 Use b4_identification.
3913 Propagate b4_pure_args where needed to pass them to yyerror.
3914 * data/glr.m4 (b4_parse_param): Remove.
3915 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
3916 (b4_lpure_formals): New.
3917 Use b4_identification.
3918 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
3919 b4_user_formals and b4_user_args.
3920 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
3921 (yyreportAmbiguity): When using a pure parser, also need
3922 the location, and the parse-params.
3923 Adjust callers.
3924 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
3925 When using a pure parser, also need the parse-params.
3926 Adjust callers.
3927 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
3928 (%pure-parser + %parse-param) LALR and GLR parsers.
3929 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
3930 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
3931 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
3932 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
3933 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
3934 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
3935 * doc/bison.texinfo: Untabify the whole file.
3936 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
3937 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
3938 (Error Reporting): Adjust to these new directives.
3939 Document %error-verbose, deprecate YYERROR_VERBOSE.
3940
9e32add8
AD
39412002-11-03 Akim Demaille <akim@epita.fr>
3942
3943 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
3944 AT_CHECK_CALC_GLR invocations to use % directives, instead of
3945 command line options.
3946 * tests/cxx-type.at: Formatting changes.
3947
b02d90a5
PE
39482002-11-03 Paul Eggert <eggert@twinsun.com>
3949
3950 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
3951 to count columns correctly, and to check for invalid inputs.
9e32add8 3952
b02d90a5
PE
3953 Use mbsnwidth to count columns correctly. Account for tabs, too.
3954 Include mbswidth.h.
3955 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
3956 (extend_location): New function.
3957 (YY_LINES): Remove.
3958
3959 Handle CRLF in C code rather than in Lex code.
3960 (YY_INPUT): New macro.
3961 (no_cr_read): New function.
3962
3963 Scan UCNs, even though we don't fully handle them yet.
3964 (convert_ucn_to_byte): New function.
3965
3966 Handle backslash-newline correctly in C code.
3967 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
3968 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
3969 all uses changed.
3970 (tag, splice): New EREs. Do not allow NUL or newline in tags.
3971 Use {splice} wherever C allows backslash-newline.
3972 YY_STEP after space, newline, vertical-tab.
3973 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
9e32add8 3974
b02d90a5
PE
3975 (letter, id): Don't assume ASCII; e.g., spell out a-z.
3976
3977 ({int}, handle_action_dollar, handle_action_at): Check for integer
3978 overflow.
9e32add8 3979
b02d90a5
PE
3980 (YY_STEP): Omit trailing semicolon, so that it's more like C.
3981
3982 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
3983 as well as \000. Check for UCHAR_MAX, not 255.
3984 Allow \x with an arbitrary positive number of digits, as in C.
3985 Check for overflow here.
3986 Allow \? and UCNs, for compatibility with C.
3987
3988 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
3989 with quote slot used by complain_at.
3990
3991 * tests/input.at: Add tests for backslash-newline, m4 quotes
3992 in symbols, long literals, and funny escapes in strings.
3993
3994 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
3995 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
3996 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
3997 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
3998 * m4/mbswidth.m4: New file, from GNU coreutils.
3999
4000 * doc/bison.texinfo (Grammar Outline): Document // comments.
4001 (Symbols): Document that trigraphs have no special meaning in Bison,
4002 nor is backslash-newline allowed.
4003 (Actions): Document that trigraphs have no special meaning.
4004
4005 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
4006 no longer used.
4007
40082002-11-02 Paul Eggert <eggert@twinsun.com>
4009
4010 * src/reader.c: Don't include quote.h; not needed.
4011 (get_merge_function): Reword warning to be consistent with
4012 type clash diagnostic in grammar_current_rule_check.
4013
4014 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
4015 bug in trigraph handling.
4016
4017 * src/output.c (prepare_symbols): When printing token names,
4018 escape "[" as "@<:@" and likewise for "]".
4019
4020 * src/system.h (errno): Remove declaration, as we are now
4021 assuming C89 or better, and C89 guarantees errno.
4022
762b212b
PE
40232002-10-30 Paul Eggert <eggert@twinsun.com>
4024
4025 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
4026 Check for close failures.
4027 * src/files.h (xfclose): Return void, not int, since it always
4028 returned zero.
4029 * src/files.c (xfclose): Likewise. Report I/O error if ferror
4030 indicates one.
4031 * src/output.c (output_skeleton): Use xfclose rather than fclose
4032 and ferror. xfclose now checks ferror.
4033
4034 * data/glr.c (YYLEFTMOST_STATE): Remove.
4035 (yyreportTree): Use a stack-based leftmost state. This avoids
4036 our continuing battles with bogus warnings about initializers.
4037
56100c60
AD
40382002-10-30 Akim Demaille <akim@epita.fr>
4039
4040 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
4041 #if.
4042
51b4a04c
PH
40432002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
4044
4045 * tests/glr-regr1.at: New test for reported regressions.
4046 * tests/testsuite.at: Add glr-regr1.at test.
4047 * tests/Makefile.am: Add glr-regr1.at test.
e183b123 4048
bf1ebda2
PE
40492002-10-24 Paul Eggert <eggert@twinsun.com>
4050
5c16c6b1
PE
4051 Version 1.75a.
4052
bf1ebda2
PE
4053 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
4054 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
4055 we use malloc. Don't assume 'A' through 'Z' are contiguous.
4056 Don't assume strdup exists; POSIX says its an XSI extension.
4057 Check for buffer overflow on input.
4058
b526ee61
AD
40592002-10-24 Akim Demaille <akim@epita.fr>
4060
4061 * src/output.c (output_skeleton): Don't disable M4sugar comments
4062 too soon: it results in comments being expanded.
4063 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
4064 first output.
4065
f1886bb2
AD
40662002-10-24 Akim Demaille <akim@epita.fr>
4067
4068 * data/yacc.c (m4_int_type): New.
4069 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
4070 char' as only yacc.c wants K&R portability.
4071 * data/glr.c (yysigned_char): Remove.
4072 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
4073 Reported by Quoc Peyrot.
4074
c5576256
PE
40752002-10-23 Paul Eggert <eggert@twinsun.com>
4076
4077 * src/main.c (main): With --trace=time, report times even if a
4078 non-fatal error occurs. Formerly, the times were reported in some
4079 such cases but not in others.
4080 * src/reader.c (reader): Just return if a complaint has been issued,
4081 instead of exiting, so that 'main' can report times.
4082
27b0ffea
AD
40832002-10-22 Akim Demaille <akim@epita.fr>
4084
4085 * src/system.h: Include sys/types.
4086 Reported by Bert Deknuydt.
4087
223a7883
PE
40882002-10-23 Paul Eggert <eggert@twinsun.com>
4089
4090 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
4091 Suggested by Art Haas.
4092
40932002-10-22 Paul Eggert <eggert@twinsun.com>
4094
4095 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
4096 decl; not needed any more.
4097 * src/main.c (main): Use return to exit, undoing yesterday's change.
4098 The last OS that we could find where this wouldn't work is
4099 SunOS 3.5, and that's too old to worry about now.
4100
4101 * data/glr.c (struct yyltype): Define members even when not
4102 doing locations. This is more consistent with yacc.c, and it
4103 works around the following bug reports:
161a71f3
PE
4104 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
4105 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
27b0ffea 4106
223a7883
PE
4107 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
4108 @acronym consistently. Standardize on "Yacc" instead of "YACC",
4109 "Algol" instead of "ALGOL". Give a bit more history about BNF.
4110
8b76775a
AD
41112002-10-22 Akim Demaille <akim@epita.fr>
4112
4113 * data/README: New.
4114
6db10d14
PE
41152002-10-21 Paul Eggert <eggert@twinsun.com>
4116
4117 Be consistent about 'bool'; the old code used an enum in one
4118 module and an int in another, and this violates the C standard.
4119 * m4/stdbool.m4: New file, from coreutils 4.5.3.
4120 * configure.ac (AC_HEADER_STDBOOL): Add.
4121 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
4122 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
4123 * src/symtab.c (hash_compare_symbol_t): Likewise.
4124 * src/system.h (bool, false, true): Use a definition consistent
4125 with ../lib/hash.c. All uses changed.
4126
4127 * src/complain.c (warning_issued): Renamed from warn_message_count,
4128 so that we needn't worry about integer overflow (!).
4129 Now of type bool. All uses changed.
4130 (complaint_issued): Renamed from complain_message_count; likewise.
4131
4132 * src/main.c (main): Use exit to exit with failure.
27b0ffea 4133
6db10d14
PE
4134 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
4135 rather than 1 and 0.
4136 * src/main.c (main): Likewise.
4137 * src/getargs.c (getargs): Likewise.
4138 * src/reader.c (reader): Likewise.
4139
4140 * src/getarg.c (getargs): Remove duplicate code for
4141 "Try `bison --help'".
4142
4143 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
4144 What was that "2" for?
4145
4146 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
4147 * src/getargs.c (usage): Likewise.
4148
4149 * src/getargs.c (getargs): When there are too few operands, report
4150 the last one. When there are too many, report the first extra
4151 one. This is how diffutils does it.
4152
92a060fd
PE
41532002-10-20 Paul Eggert <eggert@twinsun.com>
4154
4155 Remove K&R vestiges.
4156 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
4157 * src/complain.c (VA_START): Remove. Assume prototypes.
4158 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
4159 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
4160 fatal): Assume prototypes.
4161 * src/complain.h: Assume prototypes.
4162 * src/system.h (PARAMS): Remove.
4163 Include <limits.h> unconditionally, since it's guaranteeed even
4164 for a freestanding C89 compiler.
4165 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
4166 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
8b76775a 4167
e7cb57c0
AD
41682002-10-20 Akim Demaille <akim@epita.fr>
4169
4170 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
4171 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
4172 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
4173 (yyresolveStates, yyresolveAction, yyresolveStack)
4174 (yyprocessOneStack): Use them.
4175 (yy_reduce_print): New.
4176 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
4177
0245f82d
AD
41782002-10-20 Akim Demaille <akim@epita.fr>
4179
4180 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
4181 arguments and output `void'.
4182 (b4_c_function): Rename as...
4183 (b4_c_function_def): this.
4184 (b4_c_function_decl, b4_c_ansi_function_def)
4185 (b4_c_ansi_function_decl): New.
4186 Change the interpretation of the arguments: before `int, foo', now
4187 `int foo, foo'.
4188 * data/yacc.c (yyparse): Prototype and define thanks to these.
4189 Adjust b4_c_function_def uses.
4190 * data/glr.c (yyparse): Likewise, but ANSI only.
4191
39912f52
AD
41922002-10-20 Akim Demaille <akim@epita.fr>
4193
4194 * src/output.c (prepare): Move the definition of `tokens_number',
4195 `nterms_number', `undef_token_number', `user_token_number_max'
4196 to...
4197 (prepare_tokens): Here.
4198 (prepare_tokens): Rename as...
4199 (prepare_symbols): this.
4200 (prepare): Move the definition of `rules_number' to...
4201 (prepare_rules): here.
4202 (prepare): Move the definition of `last', `final_state_number',
4203 `states_number' to...
4204 (prepare_states): here.
4205 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
4206
20c1e2ad
AD
42072002-10-20 Akim Demaille <akim@epita.fr>
4208
4209 * src/tables.h, src/tables.c, src/output.c: Comment changes.
4210
21964f43
AD
42112002-10-20 Akim Demaille <akim@epita.fr>
4212
4213 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
4214 * data/c.m4: here.
4215
66d30cd4
AD
42162002-10-20 Akim Demaille <akim@epita.fr>
4217
4218 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
4219 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
4220 `pair'.
4221 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
4222 `name' to...
4223 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
4224 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
4225 These.
4226
95f2c9fe
PE
42272002-10-19 Paul Eggert <eggert@twinsun.com>
4228
4229 Do not create a temporary file, as that involves security and
4230 cleanup headaches. Instead, use a pair of pipes.
4231 Derived from a suggestion by Florian Krohm.
4232 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
4233 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
4234 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
4235 (BISON_PREREQ_SUBPIPE): Add.
4236 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
4237 Add subpipe.h, subpipe.c.
4238 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
4239 * po/POTFILES.in: Add lib/subpipe.c.
4240 * src/output.c: Include "subpipe.h".
4241 (m4_invoke): Remove decl.
4242 (scan_skel): New decl.
4243 (output_skeleton): Use pipe rather than temporary file for m4 input.
4244 Check that m4sugar.m4 is readable, to avoid deadlock.
4245 Check for pipe I/O error.
4246 * src/scan-skel.l (readpipe): Remove decl.
4247 (scan_skel): New function, to be used in place of m4_invoke.
4248 Read from stream rather than file.
66d30cd4 4249
95f2c9fe
PE
4250 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
4251 float, as this generates a warning on Solaris 8 + GCC 3.2 with
4252 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
4253 this generates a more-accurate value anyway.
4254
4255 * lib/timevar.c (timervar_accumulate): Rename locals to
4256 avoid confusion with similarly-named more-global.
4257 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
4258
4259 * src/output.c (prepare): Use xstrdup to convert char const *
4260 to char *, to avoid GCC warning.
4261
c19988b7
AD
42622002-10-19 Akim Demaille <akim@epita.fr>
4263
4264 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
4265 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
4266 Use them to have `calc.y' ready for %pure-parser.
4267 * data/yacc.c (YYLEX): Pass a yylex return type to
4268 b4_c_function_call.
4269
ae7453f2
AD
42702002-10-19 Akim Demaille <akim@epita.fr>
4271
4272 Prototype support of %lex-param and %parse-param.
4273
4274 * src/parse-gram.y: Add the definition of the %lex-param and
4275 %parse-param tokens, plus their rules.
4276 Drop the `_' version of %glr-parser.
4277 Add the "," token.
4278 * src/scan-gram.l (INITIAL): Scan them.
4279 * src/muscle_tab.c: Comment changes.
4280 (muscle_insert, muscle_find): Rename `pair' as `probe'.
4281 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
4282 (muscle_entry_s): The `value' member is no longer const.
4283 Adjust all dependencies.
4284 * src/muscle_tab.c (muscle_init): Adjust: use
4285 MUSCLE_INSERT_STRING.
4286 Initialize the obstack earlier.
4287 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
4288 (muscle_pair_list_grow): New.
4289 * data/c.m4 (b4_c_function_call, b4_c_args): New.
4290 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
4291 * tests/calc.at: Use %locations, not --locations.
4292 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
4293
0e575721
AD
42942002-10-19 Akim Demaille <akim@epita.fr>
4295
4296 * src/getargs.c (usage): Take status as argument and exit
4297 accordingly.
4298 Report the traditional `Try ... --help' message when status != 0.
4299 (usage, version): Don't take a FILE * as arg, it is pointless.
4300 (getargs): When there is an incorrect number of arguments, make it
4301 an error, and report it GNUlically thanks to `usage ()'.
4302
724ce7f5
PE
43032002-10-18 Paul Eggert <eggert@twinsun.com>
4304
3a781eb2
PE
4305 * data/glr.c (yyreportParseError): Don't assume that sprintf
4306 yields the length of the printed string, as this is not true
4307 on SunOS 4.1.4. Reported by Peter Klein.
4308
724ce7f5
PE
4309 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
4310 * tests/conflicts.at (%nonassoc and eof): Likewise.
4311 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
4312
473d0a75
AD
43132002-10-17 Akim Demaille <akim@epita.fr>
4314
4315 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
4316 * src/getargs.c (trace_types, trace_args): Adjust.
4317 * src/reader.c (grammar_current_rule_prec_set)
4318 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
4319 Standardize error messages.
4320 And s/@prec/%prec/!
4321 (reader): Use trace_flag to enable scanner/parser debugging,
4322 instead of an adhoc scheme.
4323 * src/scan-gram.l: Remove trailing debugging code.
4324
e76d2469
PE
43252002-10-16 Paul Eggert <eggert@twinsun.com>
4326
93e2236a
PE
4327 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
4328 MUSCLE_TAB_H.
4329
e76d2469
PE
4330 * NEWS: Officially drop support for building Bison with K&R C,
4331 since it didn't work anyway and it's not worth worrying about.
4332 * Makefile.maint (wget_files): Remove ansi2knr.c.
4333 (ansi2knr.c-url_prefix): Remove.
4334 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
4335 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
4336 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
4337
5bd1c419
PE
43382002-10-15 Paul Eggert <eggert@twinsun.com>
4339
4340 Stop using the "enum_" trick for K&R-style function definitions;
4341 it confused me, and I was the author! Instead, assume that people
4342 who want to use K&R C compilers (when using these modules in GCC,
4343 perhaps?) will run ansi2knr.
4344
4345 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
4346 All uses of "enum_" changed to "enum ".
4347 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
4348 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
e76d2469 4349
5bd1c419
PE
4350 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
4351 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
4352 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
4353 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
4354 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
4355 abitset_not, abitset_ones, abitset_or, abitset_or_and,
4356 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
4357 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
4358 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
4359 Use function prototypes; this removes the need for declaring
4360 static functions simply to provide their prototypes.
4361 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
4362 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
4363 bitset_count_, bitset_create, bitset_dump, bitset_first,
4364 bitset_free, bitset_init, bitset_last, bitset_next,
4365 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
4366 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
4367 bitset_print, bitset_release_memory, bitset_toggle_,
4368 bitset_type_choose, bitset_type_get, bitset_type_name_get,
4369 debug_bitset): Likewise.
4370 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
4371 * lib/bitset_stats.c (bitset_log_histogram_print,
4372 bitset_percent_histogram_print, bitset_stats_and,
4373 bitset_stats_and_cmp, bitset_stats_and_or,
4374 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
4375 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
4376 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
4377 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
4378 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
4379 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
4380 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
4381 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
4382 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
4383 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
4384 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
4385 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
4386 bitset_stats_zero): Likewise.
4387 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4388 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4389 bitsetv_dump, debug_bitsetv): Likewise.
4390 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
4391 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
4392 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
4393 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
4394 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
4395 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
4396 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
4397 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
4398 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
4399 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
4400 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
4401 Likewise.
4402 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
4403 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
4404 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
4405 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
4406 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
4407 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
4408 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
4409 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
4410 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
4411 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
4412 lbitset_xor_cmp, lbitset_zero): Likewise.
e76d2469 4413
ae26e1f0
AD
44142002-10-14 Akim Demaille <akim@epita.fr>
4415
4416 Version 1.75.
4417
d43baf71
AD
44182002-10-14 Akim Demaille <akim@epita.fr>
4419
4420 * tests/Makefile.am (maintainer-check-posix): New.
4421
7ebc83e3
AD
44222002-10-14 Akim Demaille <akim@epita.fr>
4423
4424 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
4425 member.
4426
05846dae
AD
44272002-10-14 Akim Demaille <akim@epita.fr>
4428
4429 * src/tables.c (table_ninf_remap): base -> tab.
4430 Reported by Matt Rosing.
4431
1318e37d
PE
44322002-10-14 Paul Eggert <eggert@twinsun.com>
4433
447fbb17
PE
4434 * tests/action.at, tests/calc.at, tests/conflicts.at,
4435 tests/cxx-type.at, tests/headers.at, tests/input.at,
4436 tests/regression.at, tests/synclines.at, tests/torture.at:
4437 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
4438 so that the tests still work even if POSIXLY_CORRECT is set.
4439 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
05846dae 4440
1318e37d
PE
4441 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
4442 for portability to K&R hosts. Fix typo: signed char is guaranteed
4443 only to 127, not to 128.
4444 * data/glr.c (yysigned_char): New type.
4445 * data/yacc.c (yysigned_char): Likewise.
4446 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
4447
cc0f0794
PE
44482002-10-13 Paul Eggert <eggert@twinsun.com>
4449
5038f418
PE
4450 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
4451 true due to limited range of data type" warning from GCC.
4452
cc0f0794
PE
4453 * data/c.m4 (b4_token_defines): Protect against double-inclusion
4454 by wrapping enum yytokentype's definition inside #ifndef
4455 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
4456
6fed0802
AD
44572002-10-13 Akim Demaille <akim@epita.fr>
4458
4459 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
4460 Un yy- yyrhs to avoid the name clash with the global YYRHS.
4461
32f0598d
AD
44622002-10-13 Akim Demaille <akim@epita.fr>
4463
4464 * Makefile.maint: Update from Autoconf 2.54.
4465 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
4466
7ea9a33f
AD
44672002-10-13 Akim Demaille <akim@epita.fr>
4468
4469 * src/print.c (print_state): Separate the list of solved conflicts
4470 from the other items.
4471 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
4472
ea99527d
AD
44732002-10-13 Akim Demaille <akim@epita.fr>
4474
4475 Let nondeterministic skeletons be usable with deterministic
4476 tables.
4477
4478 With the patch, GAWK compiled by GCC without -O2 passes its test
4479 suite using a GLR parser driven by LALR tables. It fails with -O2
4480 because `struct stat' gives two different answers on my machine:
4481 88 (definition of an auto var) and later 96 (memset on this var).
4482 Hence the stack is badly corrumpted. The headers inclusion is to
4483 blame: if I move the awk.h inclusion before GLR's system header
4484 inclusion, the two struct stat have the same size.
4485
4486 * src/tables.c (pack_table): Always create conflict_table.
4487 (token_actions): Always create conflict_list.
4488 * data/glr.c (YYFLAG): Remove, unused.
4489
f377f69f
AD
44902002-10-13 Akim Demaille <akim@epita.fr>
4491
4492 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
4493 (O0FLAGS): New.
4494 (VALGRIND, GXX): New.
4495 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
4496 * tests/bison.in: Run $PREBISON a pre-command.
4497 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
4498 (maintainer-check-g++): New.
4499 * Makefile.am (maintainer-check): New.
4500
2a1fe6ed
AD
45012002-10-13 Akim Demaille <akim@epita.fr>
4502
4503 * data/glr.c: Formatting changes.
4504 Tweak some trace messages to match yacc.c's.
4505
f50adbbd
AD
45062002-10-13 Akim Demaille <akim@epita.fr>
4507
4508 GLR parsers sometimes raise parse errors instead of performing the
4509 default reduction.
4510 Reported by Charles-Henry de Boysson.
4511
4512 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
4513 check the length of the traces when %glr.
4514 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
4515 GLR's traces.
4516 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
4517 Test GLR parsers.
4518 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
4519 (yyltype): Remove the yy prefix from the member names.
4520 (yytable): Complete its comment.
4521 (yygetLRActions): Map error action number from YYTABLE from
4522 YYTABLE_NINF to 0.
4523 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
4524 (which was a bug: it should have been YYTABEL_NINF, and yet it was
4525 not satisfying as we could compare an YYACTION computed from
4526 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
4527 only value for error actions.
4528 (yyreportParseError): In verbose parse error messages, don't issue
4529 `error' in the list of expected tokens.
4530 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
4531 next action to perform to match glr.c's decoding.
4532 (yytable): Complete its comment.
4533
bcbad5b9
PE
45342002-10-13 Paul Eggert <eggert@twinsun.com>
4535
4536 Fix problem reported by Henrik Grubbstroem in
161a71f3 4537 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
4538 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
4539 because the Bison parser reads the second action before reducing
4540 the first one.
4541 * src/scan-gram.l (rule_length): New static var.
4542 Use it to keep track of the rule length in the scanner, since
4543 we can't expect the parser to be in lock-step sync with the scanner.
4544 (handle_action_dollar, handle_action_at): Use this var.
4545 * tests/actions.at (Exotic Dollars): Test for the problem.
05846dae 4546
14904b89
PE
45472002-10-12 Paul Eggert <eggert@twinsun.com>
4548
1fe611e5
PE
4549 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
4550 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
4551 Include <sys/time.h> when checking for clock_t and struct tms.
4552 Use same include order as source.
4553 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
161a71f3 4554 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 4555
1fe611e5
PE
4556 * lib/timevar.c: Update copyright date and clarify comments.
4557 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 4558
1fe611e5
PE
4559 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
4560 GCC version as of today, then merge Bison's changes.
4561 Change "GCC" to "Bison" in copyright notice. timevar.def's
4562 author is Akim, so change that too.
4563
98194095
PE
4564 * src/reader.c (grammar_current_rule_check):
4565 Don't worry about the default action if $$ is untyped.
4566 Prevents bogus warnings reported by Jim Gifford in
161a71f3 4567 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 4568
14904b89
PE
4569 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
4570 * data/glr.c, data/lalr1.cc, data/yacc.c:
4571 Output token definitions before the first part of user declarations.
4572 Fixes compatibility problem reported by Jim Gifford for kbd in
161a71f3 4573 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 4574
ff6dca18
PE
45752002-10-11 Paul Eggert <eggert@twinsun.com>
4576
4577 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
4578 (yyparse): here. This undoes some of the 2002-07-25 change.
4579 Compatibility problem reported by Ralf S. Engelschall with
4580 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
4581
eb714592
AD
45822002-10-11 Akim Demaille <akim@epita.fr>
4583
4584 * tests/regression.at Characters Escapes): New.
4585 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
4586 characters.
4587 Reported by Jan Nieuwenhuizen.
4588
b7195100
AD
45892002-10-11 Akim Demaille <akim@epita.fr>
4590
4591 * po/id.po: New.
4592
f28a0f2d
PE
45932002-10-10 Paul Eggert <eggert@twinsun.com>
4594
4595 Portability fixes for bitsets; this also avoids several GCC
4596 warnings.
4597
4598 * lib/abitset.c: Include <stddef.h>, for offsetof.
4599 * lib/lbitset.c: Likewise.
4600
4601 * lib/abitset.c (abitset_bytes): Return a size that is aligned
4602 properly for vectors of objects. Do not assume that adding a
4603 header size to a multiple of a word size yields a value that is
4604 properly aligned for the whole union.
4605 * lib/bitsetv.c (bitsetv_alloc): Likewise.
4606
4607 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
4608 unique names for structures.
4609 * lib/ebitset.c (ebitset_bytes): Likewise.
4610 * lib/lbitset.c (lbitset_bytes): Likewise.
4611
4612 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
4613 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
4614 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
4615 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
4616 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
4617 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
4618 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
4619 to improve the type-checking that GCC can do.
4620 * lib/bitset.c (bitset_op4_cmp): Likewise.
4621 * lib/bitset_stats.c (bitset_stats_count,
4622 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
4623 bitset_stats_copy, bitset_stats_disjoint_p,
4624 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
4625 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
4626 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
4627 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
4628 bitset_stats_and_or_cmp, bitset_stats_andn_or,
4629 bitset_stats_andn_or_cmp, bitset_stats_or_and,
4630 bitset_stats_or_and_cmp): Likewise.
4631 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
4632 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
4633 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
4634 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
4635
4636 * lib/abitset.h: Include bitset.h, not bbitset.h.
4637 * lib/ebitset.h: Likewise.
4638 * lib/lbitset.h: Likewise.
4639
4640 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
4641 All instances of parameters of type enum bitset_opts are now of
4642 type enum_bitset_opts, to conform to the C Standard, and similarly
4643 for enum_bitset_type.
4644 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
4645 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
4646
4647 Do not use "struct bitset_struct" to mean different things in
4648 different modules. Not only is this confusing, it violates
4649 the C Standard, which requires that structure types in different
4650 modules must be compatible if one is to be passed to the other.
4651 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
4652 All instances of "struct bitset_struct *" replaced with "bitset".
4653 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
4654 (union bitset_union, struct abitset_struct, struct ebitset_struct,
4655 struct lbitset_struct, struct bitset_stats_struct): New types.
4656 All uses of struct bitset_struct changed to union bitset_union,
4657 etc.
4658 * lib/abitset.c (struct abitset_struct, abitset,
4659 struct bitset_struct): Remove.
4660 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
4661 struct bitset_struct): Remove.
4662 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
4663 bitset_struct): Remove.
4664 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
4665 Likewise.
4666
4667 Do not call a function of type T using a call that assumes the
4668 function is of a different type U. Standard C requires that a
4669 function must be called with a type that is compatible with its
4670 definition.
4671 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4672 New decls.
4673 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4674 New functions.
4675 * lib/ebitset.c (PFV): Remove.
4676 * lib/lbitset.c (PFV): Likewise.
4677 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
4678 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
4679 decls.
4680 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
4681 (ebitset_vtable): Use them.
4682 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
4683 lbitset_xor): New functions.
4684 (lbitset_vtable): Use them.
4685
4686 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
4687 Declare.
4688
4689 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
4690 GCC warning.
4691 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
4692 Use offsetof, for simplicity.
4693
6fbe4984
PE
46942002-10-06 Paul Eggert <eggert@twinsun.com>
4695
4696 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
4697 the same width as int. This reapplies a hunk of the 2002-08-12 patch
161a71f3 4698 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
4699 which was inadvertently undone by the 2002-09-30 patch.
4700 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
4701 the same width as int.
4702
420f93c8
PE
47032002-10-04 Paul Eggert <eggert@twinsun.com>
4704
4705 Version 1.50.
4706
4707 * configure.ac (AC_INIT), NEWS: Increment version number.
4708
4709 * doc/bison.texinfo: Minor spelling, grammar, and white space
4710 fixes.
4711 (Symbols): Mention that any negative value returned from yylex
4712 signifies end-of-input. Warn about negative chars. Mention
4713 the portable Standard C character set.
4714
4715 The GNU coding standard says CFLAGS and YFLAGS are reserved
4716 for the installer to set.
4717 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
4718 * src/Makefile.am (AM_CFLAGS): Likewise.
4719 (AM_YFLAGS): Renamed from YFLAGS.
4720
4721 Fix some MAX and MIN problems.
4722 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
4723 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
4724 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
4725 * src/reader.c (reader): Use it.
4726
4727 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
4728 POSIX 1003.1-2001 has removed fgrep.
4729
47302002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4731
4732 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
4733 interpreted as signed.
4734 * lib/ebitset.c (ebitset_list): Fix bug.
4735
ff68026d
PE
47362002-10-01 Paul Eggert <eggert@twinsun.com>
4737
4738 More fixes for 64-bit hosts and large bitsets.
4739
4740 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
4741 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
4742 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
4743 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
4744 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
4745 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
4746 bitset_count_): Likewise.
4747 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
4748 bitset_first, bitset_last): Likewise.
4749 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
4750 bitset_stats_list_reverse, bitset_stats_size,
4751 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
4752 Likewise.
4753 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4754 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4755 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4756 bitsetv_reflexive_transitive_closure): Likewise.
4757 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
4758 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
4759 Likewise.
4760 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
4761 Likewise.
420f93c8 4762
ff68026d
PE
4763 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
4764 Use size_t, not unsigned int, to count bytes.
4765 * lib/abitset.h (abitset_bytes): Likewise.
4766 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
4767 Likewise.
4768 * lib/bitset.h (bitset_bytes): Likewise.
4769 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
4770 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
4771 * lib/bitsetv.c (bitsetv_alloc): Likewise.
4772 * lib/ebitset.c (ebitset_bytes): Likewise.
4773 * lib/ebitset.h (ebitset_bytes): Likewise.
4774 * lib/lbitset.c (lbitset_bytes): Likewise.
4775 * lib/lbitset.h (lbitset_bytes): Likewise.
420f93c8 4776
ff68026d
PE
4777 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
4778 abitset_subset_p, abitset_disjoint_p, abitset_and,
4779 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
4780 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
4781 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
4782 abitset_or_and, abitset_or_and_cmp):
4783 Use bitset_windex instead of unsigned int.
4784 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4785 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
4786 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
4787 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
4788 Likewise.
4789 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
420f93c8 4790
ff68026d
PE
4791 * lib/bitset.c (bitset_print):
4792 Use proper printf formats for widths of integer types.
4793 * lib/bitset_stats.c (bitset_percent_histogram_print,
4794 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
4795 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4796 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4797 * lib/lbitset.c (lbitset_bytes): Likewise.
420f93c8 4798
ff68026d
PE
4799 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
4800 BITSET_SIZE_MAX): New macros.
4801 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
4802 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
4803 to BITSET_WINDEX_MAX.
4804
4805 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
4806 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
4807 since we now return the bitset_bindex type (not int).
4808
4809 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
4810 when computing sizes.
4811 * lib/ebitset.c (ebitset_elts_grow): Likewise.
4812
4813 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
4814 and avoid cast to unsigned.
4815
6aa452a6
AD
48162002-09-30 Akim Demaille <akim@epita.fr>
4817
4818 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
4819 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
4820 Updates from Michael Hayes.
4821
927f7817
AD
48222002-09-30 Art Haas <ahaas@neosoft.com>
4823
4824 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
4825 invocations.
4826 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
4827 defined.
4828
9738f41e
AD
48292002-09-27 Akim Demaille <akim@epita.fr>
4830
4831 Version 1.49c.
4832
a5c75d7f
AD
48332002-09-27 Akim Demaille <akim@epita.fr>
4834
4835 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
4836 (Because of AC_LIBSOURCE).
4837
8280e179
AD
48382002-09-27 Akim Demaille <akim@epita.fr>
4839
4840 Playing with Autoscan.
4841
4842 * configure.ac: Remove the old LIBOBJ tweaks.
4843 (AC_REPLACE_FUNCS): Add strrchr and strtol.
4844 * lib/strrchr.c: New.
4845 * lib/strtol.c: New, from the Coreutils 4.5.1.
4846
ae64af35
AD
48472002-09-27 Akim Demaille <akim@epita.fr>
4848
4849 Playing with Autoscan.
4850
4851 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
4852 * lib/Makefile.am (libbison_a_SOURCES): No longer include
4853 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
4854 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
4855 Coreutils 4.5.1.
4856
d1a1114f
AD
48572002-09-24 Akim Demaille <akim@epita.fr>
4858
4859 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
4860 (Frequently Asked Questions, Parser Stack Overflow): New.
4861
b906441c
AD
48622002-09-13 Akim Demaille <akim@epita.fr>
4863
4864 Playing with autoscan.
4865
4866 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
4867 * src/files.c (skeleton_find): Remove, unused.
4868 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
4869 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
4870
bd701811
AD
48712002-09-13 Akim Demaille <akim@epita.fr>
4872
4873 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
4874 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
4875
e0a13e7b
AD
48762002-09-13 Akim Demaille <akim@epita.fr>
4877
4878 * configure.ac: Require 2.54.
4879 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
4880 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
4881 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
4882 Remove, provided by Autoconf macros.
4883
c97011bf
AD
48842002-09-12 Akim Demaille <akim@epita.fr>
4885
4886 * m4/prereq.m4: Update, from Coreutils 4.5.1.
4887
d862b1be
AD
48882002-09-12 Akim Demaille <akim@epita.fr>
4889
4890 * m4/prereq.m4: Update, from Fileutils 4.1.5.
4891 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
4892 Reported by Martin Mokrejs.
4893
3d38c03a
AD
48942002-09-10 Akim Demaille <akim@epita.fr>
4895
4896 * src/parse-gram.y: Associate a human readable string to each
4897 token type.
4898 * tests/regression.at (Invalid inputs): Adjust.
4899
b6347355
AD
49002002-09-10 Gary V. Vaughan <gary@gnu.org>
4901
4902 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
4903 with an Autoconf-2.5x style configure.ac.
4904
09ba4ab2
PE
49052002-09-06 Paul Eggert <eggert@twinsun.com>
4906
4907 * doc/bison.texinfo (Conditions): Make explicit that the GPL
4908 exception applies only to yacc.c. This is a modification of a
4909 patch originally suggested by Akim Demaille.
4910
21846f69
AD
49112002-09-06 Akim Demaille <akim@epita.fr>
4912
09ba4ab2
PE
4913 * data/c.m4 (b4_copyright): Move the GPL exception comment from
4914 here to...
4915 * data/yacc.c: here.
4916
21846f69
AD
4917 * data/lalr1.cc (struct yyltype): Don't define it, since we use
4918 LocationType.
4919 (b4_ltype): Default to yy::Location from location.hh.
4920
c0ad8bf3
AD
49212002-09-04 Jim Meyering <jim@meyering.net>
4922
4923 * data/yacc.c: Guard the declaration of yytoknum also with
4924 `#ifdef YYPRINT', so it is declared only when used.
4925
3a93251e
AD
49262002-09-04 Akim Demaille <akim@epita.fr>
4927
4928 * configure.in: Rename as...
4929 * configure.ac: this.
4930 Bump to 1.49c.
4931
427c0dda
AD
49322002-09-04 Akim Demaille <akim@epita.fr>
4933
4934 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
4935 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
4936 translate maintainer only messages.
4937
6a254321
PE
49382002-08-12 Paul Eggert <eggert@twinsun.com>
4939
645e30d1
PE
4940 Version 1.49b.
4941
6a254321
PE
4942 * Makefile.am (SUBDIRS): Remove intl.
4943 (DISTCLEANFILES): Remove.
4944 * NEWS: Mention that GNU M4 is now required. Clarify what is
4945 meant by "larger grammars". Mention the pt_BR translation.
4946 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
4947 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
4948 Bump version from 0.11.2 to 0.11.5.
4949 (BISON_PREREQ_STAGE): Remove.
4950 (AM_GNU_GETTEXT): Use external gettext.
4951 (AC_OUTPUT): Remove intl/Makefile.
4952
4953 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
4954
4955 * data/glr.c: Include string.h, for strlen.
4956 (yyreportParseError): Use size_t for yysize.
4957 (yy_yypstack): No longer nested inside yypstates, as nested
4958 functions are not portable. Do not assume size_t is the
4959 same width as int.
4960 (yypstates): Do not assume that ptrdiff_t is the same width
4961 as int, and similarly for yyposn and YYINDEX.
4962
4963 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
4964
4965 * lib/Makefile.am (INCLUDES): Do not include from the intl
4966 directory, which has been removed.
4967 * src/Makefile.am (INCLUDES): Likewise.
4968
4969 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
4970 (bitsets_sources, additional_bitsets_sources, timevars_sources):
4971 New vars.
4972
4973 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
4974 * tests/Makefile.am (EXTRA_DIST): Likewise.
4975
4976 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
4977 Do not assume that bitset_windex is the same width as unsigned.
4978
4979 * lib/abitset.c (abitset_unused_clear): Do not assume that
4980 bitset_word is the same width as int.
4981 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
4982 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
4983 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
4984 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
4985 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
4986
4987 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
4988 portability to one's complement hosts!).
4989 * lib/ebitset.c (ebitset_op1): Likewise.
4990 * lib/lbitset.c (lbitset_op1): Likewise.
4991
4992 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
4993 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
4994 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
4995 Sync with fileutils.
4996 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
4997 lib/gettext.h: Sync with diffutils.
4998
4999 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
5000 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
5001
5002 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
5003 PROTOTYPES to check for prototypes, and "defined __STDC__" to
5004 check for void *.
5005
5006 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
5007 size_t; the old version tried to do this but casted improperly.
5008 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
5009 (bitset_test): Now returns int, not unsigned long.
5010
5011 * lib/bitset_stats.c: Include "gettext.h".
5012 (_): New macro.
5013 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
5014 name locals "index", as it generates unnecessary warnings on some
5015 hosts that have an "index" function.
5016
5017 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
5018 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
5019 they need translation.
5020 * src/LR0.c (state_list_append, new_itemsets, get_state,
5021 append_states, generate_states): Likewise.
5022 * src/assoc.c (assoc_to_string): Likewise.
5023 * src/closure.c (print_closure, set_firsts, closure): Likewise.
5024 * src/gram.c (grammar_dump): Likewise.
5025 * src/injections.c (injections_compute): Likewise.
5026 * src/lalr.c (lookaheads_print): Likewise.
5027 * src/relation.c (relation_transpose): Likewise.
5028 * src/scan-gram.l: Likewise.
5029 * src/tables.c (table_grow, pack_vector): Likewise.
5030
5031 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
5032 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
5033 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
5034 * m4/mbstate_t.m4: Sync with fileutils.
5035 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
5036
5037 * po/LINGUAS: Add pt_BR.
5038 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
5039 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
5040 lib/timevar.c.
5041 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
5042 manual recommends.
5043 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
5044
5045 * src/complain.c (strerror_r): Remove decl; not needed.
5046 (strerror): Use same pattern as ../lib/error.c.
5047
5048 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
5049
5050 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
5051
5052 * src/main.c (main): Cast result of bindtextdomain and textdomain
5053 to void, to avoid a GCC warning when --disable-nls is in effect.
5054
5055 * src/scan-gram.l: Use strings rather than escapes when possible,
5056 to minimize the number of warnings from xgettext.
5057 (handle_action_dollar, handle_action_at): Don't use isdigit,
5058 as it mishandles negative chars and it may not work as expected
5059 outside the C locale.
5060
5061 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
5062 this is a GCC extension and is not portable to other compilers.
5063
5064 * src/system.h (alloca): Use same pattern as ../lib/error.c.
5065 Do not include <ctype.h>; no longer needed.
5066 Do not include <malloc.h>; no longer needed (and generates
5067 warnings on OpenBSD 3.0).
5068
5069 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
5070 it's not portable.
5071
5072 * tests/regression.at: Do not use 'cc -c input.c -o input';
5073 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
5074
5075 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
5076 exit status as failure, not just exit status 1. Sun C exits
5077 with status 2 sometimes.
5078
5079 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
5080 Use it for the two large tests.
5081
c8f002c7
AD
50822002-08-02 Akim Demaille <akim@epita.fr>
5083
5084 * src/conflicts.c (conflicts_output): Don't output rules never
5085 reduced here, since anyway that computation doesn't work.
5086 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
5087 (rule_useless_p, rule_never_reduced_p): New.
5088 (grammar_rules_partial_print): Use a filter instead of a range.
5089 Display the title only if needed.
5090 (grammar_rules_print): Adjust.
5091 (grammar_rules_never_reduced_report): New.
5092 * src/tables.c (action_row): Move the computation of rules never
5093 reduced to...
5094 (token_actions): here.
5095 * src/main.c (main): Make the parser before making the report, so
5096 that rules never reduced are computed.
5097 Call grammar_rules_never_reduced_report.
5098 * src/print.c (print_results): Report rules never reduced.
5099 * tests/conflicts.at, tests/reduce.at: Adjust.
5100
cd08e51e
AD
51012002-08-01 Akim Demaille <akim@epita.fr>
5102
5103 Instead of attaching lookaheads and duplicating the rules being
5104 reduced by a state, attach the lookaheads to the reductions.
5105
5106 * src/state.h (state_t): Remove the `lookaheads',
5107 `lookaheads_rule' member.
5108 (reductions_t): Add a `lookaheads' member.
5109 Use a regular array for the `rules'.
5110 * src/state.c (reductions_new): Initialize the lookaheads member
5111 to 0.
5112 (state_rule_lookaheads_print): Adjust.
5113 * src/state.h, src/state.c (state_reductions_find): New.
5114 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
5115 (count_rr_conflicts): Adjust.
5116 * src/lalr.c (LArule): Remove.
5117 (add_lookback_edge): Adjust.
5118 (state_lookaheads_count): New.
5119 (states_lookaheads_initialize): Merge into...
5120 (initialize_LA): this.
5121 (lalr_free): Adjust.
5122 * src/main.c (main): Don't free nullable and derives too early: it
5123 is used by --verbose.
5124 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
5125
bb0027a9
AD
51262002-08-01 Akim Demaille <akim@epita.fr>
5127
5128 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
5129 `rule_number_t**'.
5130 (set_derives, free_derives): Rename as...
5131 (derives_compute, derives_free): this.
5132 Adjust all dependencies.
5133 * src/nullable.c (set_nullable, free_nullable): Rename as...
5134 (nullable_compute, nullable_free): these.
5135 (rule_list_t): Store rule_t *, not rule_number_t.
5136 * src/state.c (state_rule_lookaheads_print): Directly compare rule
5137 pointers, instead of their numbers.
5138 * src/main.c (main): Call nullable_free, and derives_free earlier,
5139 as they were lo longer used.
5140
3325ddc4
AD
51412002-08-01 Akim Demaille <akim@epita.fr>
5142
5143 * lib/timevar.c (get_time): Include children time.
5144 * src/lalr.h (LA, LArule): Don't export them: used with the
5145 state_t.
5146 * src/lalr.c (LA, LArule): Static.
5147 * src/lalr.h, src/lalr.c (lalr_free): New.
5148 * src/main.c (main): Call it.
5149 * src/tables.c (pack_vector): Check whether loc is >= to the
5150 table_size, not >.
5151 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
5152 (tables_generate): do it, since that's also it which allocates
5153 them.
5154 Don't free LA and LArule, main does.
5155
c6f1a33c
AD
51562002-07-31 Akim Demaille <akim@epita.fr>
5157
5158 Separate parser tables computation and output.
5159
5160 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
5161 (conflict_list, conflict_list_cnt, table, check, table_ninf)
5162 (yydefgoto, yydefact, high): Move to...
5163 * src/tables.h, src/tables.c: here.
5164 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
5165 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
5166 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
5167 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
5168 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
5169 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
5170 (action_row, save_row, token_actions, save_column, default_goto)
5171 (goto_actions, sort_actions, matching_state, pack_vector)
5172 (table_ninf_remap, pack_table, prepare_actions): Move to...
5173 * src/tables.c: here.
5174 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
5175 * src/output.c (token_actions, output_base, output_conflicts)
5176 (output_check): Merge into...
5177 (prepare_actions): this.
5178 (actions_output): Rename as...
5179 (user_actions_output): this.
5180 * src/main.c (main): Call tables_generate and tables_free.
5181
1509d42f
AD
51822002-07-31 Akim Demaille <akim@epita.fr>
5183
5184 Steal GCC's --time-report support.
5185
5186 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
5187 stolen/adjusted from GCC.
5188 * m4/stage.m4: Remove time related checks.
5189 * m4/timevar.m4: New.
5190 * configure.in: Adjust.
5191 * src/system.h: Adjust to using timevar.h.
5192 * src/getargs.h, src/getargs.c: Support trace_time for
5193 --trace=time.
5194 * src/main.c (stage): Remove.
5195 (main): Replace `stage' invocations with timevar calls.
5196 * src/output.c: Insert pertinent timevar calls.
5197
273a74fa
AD
51982002-07-31 Akim Demaille <akim@epita.fr>
5199
5200 Let --trace have arguments.
5201
5202 * src/getargs.h (enum trace_e): New.
5203 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
5204 (long_options, short_options): --trace/-T takes an optional
5205 argument.
5206 Change all the uses of trace_flag to reflect the new flags.
5207 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
5208
5209 Strengthen `stage' portability.
5210
5211 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
5212 * configure.in: Use it.
5213 Don't check for malloc.h and sys/times.h.
5214 * src/system.h: Include them when appropriate.
5215 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
5216 times and struct tms are available.
5217
217598da
AD
52182002-07-30 Akim Demaille <akim@epita.fr>
5219
5220 In verbose parse error message, don't report `error' as an
5221 expected token.
5222 * tests/actions.at (Printers and Destructors): Adjust.
5223 * tests/calc.at (Calculator $1): Adjust.
5224 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
5225 error message, do not report the parser accepts the error token in
5226 that state.
5227
52489d44
AD
52282002-07-30 Akim Demaille <akim@epita.fr>
5229
5230 Normalize conflict related messages.
5231
5232 * src/complain.h, src/complain.c (warn, complain): New.
5233 * src/conflicts.c (conflicts_print): Use them.
5234 (conflict_report_yacc): New, extracted from...
5235 (conflicts_print): here.
5236 * tests/conflicts.at, tests/existing.at: Adjust.
5237
e8832397
AD
52382002-07-30 Akim Demaille <akim@epita.fr>
5239
5240 Report rules which are never reduced by the parser: those hidden
5241 by conflicts.
5242
5243 * src/LR0.c (save_reductions): Don't make the final state too
5244 different: save its reduction (accept) instead of having a state
5245 without any action (no shift or goto, no reduce).
5246 Note: the final state is now a ``regular'' state, i.e., the
5247 parsers now contain `reduce 0' as default reduction.
5248 Nevertheless, since they decide to `accept' when yystate =
5249 final_state, they still will not reduce rule 0.
5250 * src/print.c (print_actions, print_reduction): Adjust.
5251 * src/output.c (action_row): Track reduced rules.
5252 (token_actions): Report rules never reduced.
5253 * tests/conflicts.at, tests/regression.at: Adjust.
5254
caf23d24
AD
52552002-07-30 Akim Demaille <akim@epita.fr>
5256
5257 `stage' was accidently included in a previous patch.
5258 Initiate its autoconfiscation.
5259
5260 * configure.in: Look for malloc.h and sys/times.h.
5261 * src/main.c (stage): Adjust.
5262 Report only when trace_flag.
5263
640748ee
AD
52642002-07-29 Akim Demaille <akim@epita.fr>
5265
5266 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
5267 state_number_t.
5268 (errs_t): symbol_t*, not symbol_number_t.
5269 (reductions_t): rule_t*, not rule_number_t.
5270 (FOR_EACH_SHIFT): New.
5271 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
5272 * src/print.c, src/print_graph.c: Adjust.
5273
88bce5a2
AD
52742002-07-29 Akim Demaille <akim@epita.fr>
5275
5276 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
5277
5278 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
5279 (endtoken, accept): these.
5280 * src/reader.c (reader): Set endtoken's default tag to "$end".
5281 Set undeftoken's tag to "$undefined" instead of "$undefined.".
5282 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
5283 Adjust.
5284
1bfb97db
AD
52852002-07-29 Akim Demaille <akim@epita.fr>
5286
5287 * src/reduce.c (reduce_grammar): When the language is empty,
5288 complain about the start symbol, not the axiom.
5289 Use its location.
5290 * tests/reduce.at (Empty Language): New.
5291
fc5734fe
AD
52922002-07-26 Akim Demaille <akim@epita.fr>
5293
5294 * src/reader.h, src/reader.c (gram_error): ... can't get
5295 yycontrol without making too strong assumptions on the parser
5296 itself.
5297 * src/output.c (prepare_tokens): Use the real 0th value of
5298 token_translations instead of `0'.
5299 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
5300 visible here.
5301 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
5302 for the time being: %locations ought to provide it to yyerror.
5303
3650b4b8
AD
53042002-07-25 Akim Demaille <akim@epita.fr>
5305
5306 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
5307 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
5308 * tests/regression.at (Web2c Actions): Adjust.
5309
4b3d3a8e
AD
53102002-07-25 Akim Demaille <akim@epita.fr>
5311
5312 Stop storing rules from 1 to nrules + 1.
5313
5314 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
5315 * src/nullable.c, src/output.c, src/print.c, src/reader.c
5316 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
5317 Iterate from 0 to nrules.
5318 Use rule_number_as_item_number and item_number_as_rule_number.
5319 Adjust to `derive' now containing possibly 0.
5320 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
5321 Handle the `- 1' part in rule numbers from/to item numbers.
5322 * src/conflicts.c (log_resolution): Fix the message which reversed
5323 shift and reduce.
5324 * src/output.c (action_row): Initialize default_rule to -1.
5325 (token_actions): Adjust.
5326 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
5327 expected output.
5328 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
5329
4a2a22f4
AD
53302002-07-25 Akim Demaille <akim@epita.fr>
5331
5332 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
5333 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
5334 (b4_c_knr_arg_decl): New.
5335 * data/yacc.c: Use it to define yysymprint, yydestruct, and
5336 yyreport_parse_error.
5337
b8df3223
AD
53382002-07-25 Akim Demaille <akim@epita.fr>
5339
5340 * data/yacc.c (yyreport_parse_error): New, extracted from...
5341 (yyparse): here.
5342 (yydestruct, yysymprint): Move above yyparse.
5343 Be K&R compliant.
5344
a762e609
AD
53452002-07-25 Akim Demaille <akim@epita.fr>
5346
5347 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
5348 replace...
5349 (b4_sint_type, b4_uint_type): these.
5350 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
5351 * tests/regression.at (Web2c Actions): Adjust.
5352
12b0043a
AD
53532002-07-25 Akim Demaille <akim@epita.fr>
5354
5355 * src/gram.h (TIEM_NUMBER_MAX): New.
5356 (item_number_of_rule_number, rule_number_of_item_number): Rename
5357 as...
5358 (rule_number_as_item_number, item_number_as_rule_number): these.
5359 Adjust dependencies.
5360 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
5361 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
5362 (symbol_number_to_vector_number): New.
5363 (order): Of vector_number_t* type.
5364 (base_t, BASE_MAX, BASE_MIN): New.
5365 (froms, tos, width, pos, check): Of base_t type.
5366 (action_number_t, ACTION_MIN, ACTION_MAX): New.
5367 (actrow): Of action_number_t type.
5368 (conflrow): Of unsigned int type.
5369 (table_ninf, base_ninf): New.
5370 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
5371 (muscle_insert_int_table, muscle_insert_base_table)
5372 (muscle_insert_rule_number_table): New.
5373 (prepare_tokens): Output `toknum' as int_table.
5374 (action_row): Returns a rule_number_t.
5375 Use ACTION_MIN, not SHRT_MIN.
5376 (token_actions): yydefact is rule_number_t*.
5377 (table_ninf_remap): New.
5378 (pack_table): Use it for `base' and `table'.
5379 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
5380 replaced with...
5381 (YYPACT_NINF, YYTABLE_NINF): these.
5382 (yypact, yytable): Compute their types instead of hard-coded
5383 `short'.
5384 * tests/regression.at (Web2c Actions): Adjust.
5385
5dde258a
AD
53862002-07-19 Akim Demaille <akim@epita.fr>
5387
5388 * src/scan-gram.l (id): Can start with an underscore.
5389
a945ec39
AD
53902002-07-16 Akim Demaille <akim@epita.fr>
5391
5392 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
5393 Adjust all former `associativity' dependencies.
5394 * src/symtab.c (symbol_new): Default associativity is `undef', not
5395 `right'.
5396 (symbol_check_alias_consistence): Adjust.
5397
fae437e8
AD
53982002-07-09 Akim Demaille <akim@epita.fr>
5399
5400 * doc/bison.texinfo: Properly set the ``header'' part.
5401 Use @dircategory ``GNU programming tools'' as per Texinfo's
5402 documentation.
5403 Use @copying.
5404
1a715ef2
AD
54052002-07-09 Akim Demaille <akim@epita.fr>
5406
5407 * lib/quotearg.h: Protect against multiple inclusions.
5408 * src/location.h (location_t): Add a `file' member.
5409 (LOCATION_RESET, LOCATION_PRINT): Adjust.
5410 * src/complain.c (warn_at, complain_at, fatal_at): Drop
5411 `error_one_per_line' support.
5412
a5d50994
AD
54132002-07-09 Akim Demaille <akim@epita.fr>
5414
5415 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
5416 * src/reader.c (lineno): Remove.
5417 Adjust all dependencies.
5418 (get_merge_function): Take a location and use complain_at.
5419 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
5420 * tests/regression.at (Invalid inputs, Mixing %token styles):
5421 Adjust.
5422
b275314e
AD
54232002-07-09 Akim Demaille <akim@epita.fr>
5424
5425 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
5426 recovery rule, and forbid extensions when --yacc.
5427 (gram_error): Use complain_at.
5428 * src/reader.c (reader): Exit if there were parse errors.
5429
865b9df1
AD
54302002-07-09 Akim Demaille <akim@epita.fr>
5431
5432 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
5433 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
5434 Reported by R Blake <blakers@mac.com>.
5435
c76e14da
AD
54362002-07-09 Akim Demaille <akim@epita.fr>
5437
5438 * data/yacc.c: Output the copyright notive in the header.
5439
7db2ed2d
AD
54402002-07-03 Akim Demaille <akim@epita.fr>
5441
5442 * src/output.c (froms, tos): Are state_number_t.
5443 (save_column): sp, sp1, and sp2 are state_number_t.
5444 (prepare): Rename `final' as `final_state_number', `nnts' as
5445 `nterms_number', `nrules' as `rules_number', `nstates' as
5446 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
5447 unused.
5448 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
5449 * data/lalr1.cc (nsym_): Remove, unused.
5450
e68e0410
AD
54512002-07-03 Akim Demaille <akim@epita.fr>
5452
5453 * src/lalr.h, src/lalr.c (goto_number_t): New.
5454 * src/lalr.c (goto_list_t): New.
5455 Propagate them.
5456 * src/nullable.c (rule_list_t): New.
5457 Propagate.
5458 * src/types.h: Remove.
5459
e1a4f3a4
AD
54602002-07-03 Akim Demaille <akim@epita.fr>
5461
5462 * src/closure.c (print_fderives): Use rule_rhs_print.
5463 * src/derives.c (print_derives): Use rule_rhs_print.
5464 (rule_list_t): New, replaces `shorts'.
5465 (set_derives): Add comments.
5466 * tests/sets.at (Nullable, Firsts): Adjust.
5467
536545f3
AD
54682002-07-03 Akim Demaille <akim@epita.fr>
5469
5470 * src/output.c (prepare_actions): Free `tally' and `width'.
5471 (prepare_actions): Allocate and free `order'.
5472 * src/symtab.c (symbols_free): Free `symbols'.
5473 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
5474 * src/output.c (m4_invoke): Move to...
5475 * src/scan-skel.l: here.
5476 (<<EOF>>): Close yyout, and free its name.
5477
8b752b00
AD
54782002-07-03 Akim Demaille <akim@epita.fr>
5479
5480 Fix some memory leaks, and fix a bug: state 0 was examined twice.
5481
5482 * src/LR0.c (new_state): Merge into...
5483 (state_list_append): this.
5484 (new_states): Merge into...
5485 (generate_states): here.
5486 (set_states): Don't ensure a proper `errs' state member here, do it...
5487 * src/conflicts.c (conflicts_solve): here.
5488 * src/state.h, src/state.c: Comment changes.
5489 (state_t): Rename member `shifts' as `transitions'.
5490 Adjust all dependencies.
5491 (errs_new): For consistency, also take the values as argument.
5492 (errs_dup): Remove.
5493 (state_errs_set): New.
5494 (state_reductions_set, state_transitions_set): Assert that no
5495 previous value was assigned.
5496 (state_free): New.
5497 (states_free): Use it.
5498 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
5499 temporary storage: use `errs' and `nerrs' as elsewhere.
5500 (set_conflicts): Allocate and free this `errs'.
5501
613f5e1a
AD
55022002-07-02 Akim Demaille <akim@epita.fr>
5503
5504 * lib/libiberty.h: New.
5505 * lib: Update the bitset implementation from upstream.
5506 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
5507 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
5508 * src/main.c: Adjust bitset stats calls.
5509
26e0cadc
PE
55102002-07-01 Paul Eggert <eggert@twinsun.com>
5511
5512 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
5513 char, so that negative chars don't collide with $.
5514
1154cced
AD
55152002-06-30 Akim Demaille <akim@epita.fr>
5516
5517 Have the GLR tests be `warning' checked, and fix the warnings.
5518
5519 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
5520 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
5521 (yyremoveDeletes): `yyi' and `yyj' are size_t.
5522 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
5523 (yyaddDeferredAction): static.
5524 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
5525 (yyreportParseError): yyprefix is const.
5526 yytokenp is used only when verbose.
5527 (yy__GNUC__): Replace with __GNUC__.
5528 (yypdumpstack): yyi is size_t.
5529 (yypreference): Un-yy local variables and arguments, to avoid
5530 clashes with `yyr1'. Anyway, we are not in the user name space.
5531 (yytname_size): be an int, as is compared with ints.
5532 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
5533 Use them.
5534 * tests/cxx-gram.at: Use quotation to protect $1.
5535 Use AT_COMPILE to enable warnings hunts.
5536 Prototype yylex and yyerror.
5537 `Use' argc.
5538 Include `string.h', not `strings.h'.
5539 Produce and prototype stmtMerge only when used.
5540 yylex takes a location.
5541
97650f4e
AD
55422002-06-30 Akim Demaille <akim@epita.fr>
5543
5544 We spend a lot of time in quotearg, in particular when --verbose.
5545
5546 * src/symtab.c (symbol_get): Store a quoted version of the key.
5547 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
5548 Adjust all callers.
5549
d2576365
AD
55502002-06-30 Akim Demaille <akim@epita.fr>
5551
5552 * src/state.h (reductions_t): Rename member `nreds' as num.
5553 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
5554 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
5555
ccaf65bc
AD
55562002-06-30 Akim Demaille <akim@epita.fr>
5557
5558 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
5559 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
5560 (shifts_to): Rename as...
5561 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
5562 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
5563 (TRANSITION_IS_DISABLED, transitions_to): these.
5564
87675353
AD
55652002-06-30 Akim Demaille <akim@epita.fr>
5566
5567 * src/print.c (print_shifts, print_gotos): Merge into...
5568 (print_transitions): this.
5569 (print_transitions, print_errs, print_reductions): Align the
5570 lookaheads columns.
5571 (print_core, print_transitions, print_errs, print_state,
5572 print_grammar): Output empty lines separator before, not after.
5573 (state_default_rule_compute): Rename as...
5574 (state_default_rule): this.
5575 * tests/conflicts.at (Defaulted Conflicted Reduction),
5576 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
5577 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
5578
ce4ccb4b
AD
55792002-06-30 Akim Demaille <akim@epita.fr>
5580
5581 Display items as we display rules.
5582
5583 * src/gram.h, src/gram.c (rule_lhs_print): New.
5584 * src/gram.c (grammar_rules_partial_print): Use it.
5585 * src/print.c (print_core): Likewise.
5586 * tests/conflicts.at (Defaulted Conflicted Reduction),
5587 (Unresolved SR Conflicts): Adjust.
5588 (Unresolved SR Conflicts): Adjust and rename as...
5589 (Resolved SR Conflicts): this, as was meant.
5590 * tests/regression.at (Web2c Report): Adjust.
5591
bc933ef1
AD
55922002-06-30 Akim Demaille <akim@epita.fr>
5593
5594 * src/print.c (state_default_rule_compute): New, extracted from...
5595 (print_reductions): here.
5596 Pessimize, but clarify the code.
5597 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
5598
53d4308d
AD
55992002-06-30 Akim Demaille <akim@epita.fr>
5600
5601 * src/output.c (action_row): Let default_rule be always a rule
5602 number.
5603
574fb2d5
AD
56042002-06-30 Akim Demaille <akim@epita.fr>
5605
5606 * src/closure.c (print_firsts, print_fderives, closure):
5607 Use BITSET_EXECUTE.
5608 * src/lalr.c (lookaheads_print): Likewise.
5609 * src/state.c (state_rule_lookaheads_print): Likewise.
5610 * src/print_graph.c (print_core): Likewise.
5611 * src/print.c (print_reductions): Likewise.
5612 * src/output.c (action_row): Likewise.
5613 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
5614
05811fd7
AD
56152002-06-30 Akim Demaille <akim@epita.fr>
5616
5617 * src/print_graph.c: Use report_flag.
5618
0e4d5753
AD
56192002-06-30 Akim Demaille <akim@epita.fr>
5620
5621 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
5622 to...
5623 * src/relation.h, src/relation.c (traverse, relation_digraph)
5624 (relation_print, relation_transpose): New.
5625
24c7d800
AD
56262002-06-30 Akim Demaille <akim@epita.fr>
5627
5628 * src/state.h, src/state.c (shifts_to): New.
5629 * src/lalr.c (build_relations): Use it.
5630
9222837b
AD
56312002-06-30 Akim Demaille <akim@epita.fr>
5632
5633 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
5634 (item_number_of_rule_number, rule_number_of_item_number): New.
5635 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
5636 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
5637 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
5638 Propagate their use.
5639 Much remains to be done, in particular wrt `shorts' from types.h.
5640
260008e5
AD
56412002-06-30 Akim Demaille <akim@epita.fr>
5642
5643 * src/symtab.c (symbol_new): Initialize the `printer' member.
5644
8a731ca8
AD
56452002-06-30 Akim Demaille <akim@epita.fr>
5646
5647 * src/LR0.c (save_reductions): Remove, replaced by...
5648 * src/state.h, src/state.c (state_reductions_set): New.
5649 (reductions, errs): Rename as...
5650 (reductions_t, errs_t): these.
5651 Adjust all dependencies.
5652
32e1e0a4
AD
56532002-06-30 Akim Demaille <akim@epita.fr>
5654
5655 * src/LR0.c (state_list_t, state_list_append): New.
5656 (first_state, last_state): Now symbol_list_t.
5657 (this_state): Remove.
5658 (new_itemsets, append_states, save_reductions): Take a state_t as
5659 argument.
5660 (set_states, generate_states): Adjust.
5661 (save_shifts): Remove, replaced by...
5662 * src/state.h, src/state.c (state_shifts_set): New.
5663 (shifts): Rename as...
5664 (shifts_t): this.
5665 Adjust all dependencies.
5666 * src/state.h (state_t): Remove the `next' member.
5667
e5fb6710
AD
56682002-06-30 Akim Demaille <akim@epita.fr>
5669
5670 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
5671 escaped in slot 0.
5672
c7ca99d4
AD
56732002-06-30 Akim Demaille <akim@epita.fr>
5674
5675 Use hash.h for the state hash table.
5676
5677 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
5678 (allocate_storage): Use state_hash_new.
5679 (free_storage): Use state_hash_free.
5680 (new_state, get_state): Adjust.
5681 * src/lalr.h, src/lalr.c (states): Move to...
5682 * src/states.h (state_t): Remove the `link' member, no longer
5683 used.
5684 * src/states.h, src/states.c: here.
5685 (state_hash_new, state_hash_free, state_hash_lookup)
5686 (state_hash_insert, states_free): New.
5687 * src/states.c (state_table, state_compare, state_hash): New.
5688 * src/output.c (output_actions): Do not free states now, since we
5689 still need to know the final_state number in `prepare', called
5690 afterwards. Do it...
5691 * src/main.c (main): here: call states_free after `output'.
5692
df0e7316
AD
56932002-06-30 Akim Demaille <akim@epita.fr>
5694
5695 * src/state.h, src/state.c (state_new): New, extracted from...
5696 * src/LR0.c (new_state): here.
5697 * src/state.h (STATE_ALLOC): Move to...
5698 * src/state.c: here.
5699 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
5700 * src/state.h, src/state.c: here.
5701
39f41916
AD
57022002-06-30 Akim Demaille <akim@epita.fr>
5703
5704 * src/reader.c (gensym): Rename as...
5705 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
5706 (getsym): Rename as...
5707 (symbol_get): this.
5708
d57650a5
AD
57092002-06-30 Akim Demaille <akim@epita.fr>
5710
5711 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
5712 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
5713 * src/output.c, src/print.c, src/print_graph.c: Propagate.
5714 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
5715
5a08f1ce
AD
57162002-06-30 Akim Demaille <akim@epita.fr>
5717
5718 Make the test suite pass with warnings checked.
5719
5720 * tests/actions.at (Printers and Destructors): Improve.
5721 Avoid unsigned vs. signed issues.
5722 * tests/calc.at: Don't exercise the scanner here, do it...
5723 * tests/input.at (Torturing the Scanner): here.
5724
720623af
PH
57252002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5726
88e7e941 5727 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
5728 reorganize first lines parallel to yacc.c.
5729
fb8135fa
AD
57302002-06-28 Akim Demaille <akim@epita.fr>
5731
5732 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
5733 (b4_token_enum, b4_token_defines): New, factored from...
5734 * data/lalr1.cc, data/yacc.c, glr.c: here.
5735
41442480
AD
57362002-06-28 Akim Demaille <akim@epita.fr>
5737
5738 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
5739 unused variables.
5740 * src/output.c (merger_output): static.
5741
e0e5bf84
AD
57422002-06-28 Akim Demaille <akim@epita.fr>
5743
5744 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
5745 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
5746 pacify GCC.
5747 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 5748
676385e2
PH
57492002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5750
5751 Accumulated changelog for new GLR parsing features.
5752
6a254321 5753 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
5754 conflicts_total_count.
5755 * src/conflicts.h: Ditto.
5756 * src/output.c (token_actions): Use the new name.
5757 (output_conflicts): Change conflp => conflict_list_heads, and
5758 confl => conflict_list for better readability.
5759 * data/glr.c: Use the new names.
5760 * NEWS: Add self to GLR announcement.
e0e5bf84 5761
676385e2
PH
5762 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
5763
5764 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
5765 Akim Demaille.
5766
5767 * data/bison.glr: Change name to glr.c
5768 * data/glr.c: Renamed from bison.glr.
5769 * data/Makefile.am: Add glr.c
e0e5bf84
AD
5770
5771 * src/getargs.c:
5772
676385e2
PH
5773 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
5774 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 5775
676385e2
PH
5776 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5777
5778 * data/bison.glr: Be sure to restore the
5779 current #line when returning to the skeleton contents after having
5780 exposed the input file's #line.
5781
5782 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5783
5784 * data/bison.glr: Bring up to date with changes to bison.simple.
5785
5786 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5787
5788 * data/bison.glr: Correct definitions that use b4_prefix.
5789 Various reformatting.
5790 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
5791 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
5792 yytokenp argument; now part of stack.
5793 (yychar): Define to behave as documented.
5794 (yyclearin): Ditto.
e0e5bf84 5795
676385e2
PH
5796 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5797
5798 * src/reader.h: Add declaration for free_merger_functions.
5799
5800 * src/reader.c (merge_functions): New variable.
5801 (get_merge_function): New function.
5802 (free_merger_functions): New function.
5803 (readgram): Check for %prec that is not followed by a symbol.
5804 Handle %dprec and %merge declarations.
5805 (packgram): Initialize dprec and merger fields in rules array.
5806
5807 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
5808 conflict_list_cnt, conflict_list_free): New variables.
5809 (table_grow): Also grow conflict_table.
e0e5bf84 5810 (prepare_rules): Output dprec and merger tables.
676385e2 5811 (conflict_row): New function.
e0e5bf84 5812 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
5813 default reduction in conflicted states for GLR parser so that there
5814 are spaces for the conflict lists.
5815 (save_row): Also save conflict information.
5816 (token_actions): Allocate conflict list.
5817 (merger_output): New function.
5818 (pack_vector): Pack conflict table, too.
5819 (output_conflicts): New function to output yyconflp and yyconfl.
5820 (output_check): Allocate conflict_tos.
5821 (output_actions): Output conflict tables, also.
5822 (output_skeleton): Output b4_mergers definition.
5823 (prepare): Output b4_max_rhs_length definition.
5824 Use 'bison.glr' as default skeleton for GLR parsers.
5825
5826 * src/gram.c (glr_parser): New flag.
5827 (grammar_free): Call free_merger_functions.
5828
5829 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
5830 all pairs of conflicting reductions, rather than just all tokens
5831 causing conflicts. Needed to size conflict tables.
e0e5bf84 5832 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
5833 interface.
5834 (conflicts_print): Ditto.
5835 (count_total_conflicts): New function.
5836
5837 * src/reader.h (merger_list): New type.
5838 (merge_functions): New variable.
5839
5840 * src/lex.h (tok_dprec, tok_merge): New token types.
5841
5842 * src/gram.h (rule_s): Add dprec and merger fields.
5843 (glr_parser): New flag.
5844
5845 * src/conflicts.h (count_total_conflicts): New function.
5846
5847 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
5848
5849 * doc/bison.texinfo (Generalized LR Parsing): New section.
5850 (GLR Parsers): New section.
5851 (Language and Grammar): Mention GLR parsing.
5852 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
5853 Correct typo ("tge" -> "the").
5854
5855 * data/bison.glr: New skeleton for GLR parsing.
5856
5857 * tests/cxx-gram.at: New tests for GLR parsing.
5858
5859 * tests/testsuite.at: Include cxx-gram.at.
5860
5861 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 5862
676385e2
PH
5863 * src/parse-gram.y:
5864
5865 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
5866
5867 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 5868
b5480d74 58692002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
5870
5871 * src/options.h, src/options.c: Remove.
5872 * src/getargs.c (short_options, long_options): New.
5873
60491a94
AD
58742002-06-27 Akim Demaille <akim@epita.fr>
5875
5876 * data/bison.simple, data/bison.c++: Rename as...
5877 * data/yacc.c, data/lalr1.cc: these.
5878 * doc/bison.texinfo (Environment Variables): Remove.
5879
9be0c25b
AD
58802002-06-25 Raja R Harinath <harinath@cs.umn.edu>
5881
5882 * src/getargs.c (report_argmatch): Initialize strtok().
5883
1ae72863
AD
58842002-06-20 Akim Demaille <akim@epita.fr>
5885
5886 * data/bison.simple (b4_symbol_actions): New, replaces...
5887 (b4_symbol_destructor, b4_symbol_printer): these.
5888 (yysymprint): Be sure to call YYPRINT only for tokens, and using
5889 user token numbers.
5890
87542d29
AD
58912002-06-20 Akim Demaille <akim@epita.fr>
5892
5893 * data/bison.simple (yydestructor): Rename as...
5894 (yydestruct): this.
5895
1a31ed21
AD
58962002-06-20 Akim Demaille <akim@epita.fr>
5897
5898 * src/symtab.h, src/symtab.c (symbol_type_set)
5899 (symbol_destructor_set, symbol_precedence_set): The location is
5900 the last argument.
5901 Adjust all callers.
5902
e776192e
AD
59032002-06-20 Akim Demaille <akim@epita.fr>
5904
5905 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
5906 internals.
5907 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
5908 Takes a location.
5909 * src/symtab.h, src/symtab.c (symbol_class_set)
5910 (symbol_user_token_number_set): Likewise.
5911 Adjust all callers.
5912 Promote complain_at.
5913 * tests/input.at (Type Clashes): Adjust.
5914
5c1180b3
AD
59152002-06-20 Akim Demaille <akim@epita.fr>
5916
5917 * data/bison.simple (YYLEX): Fix the declaration when
5918 %pure-parser.
5919
e3170060
AD
59202002-06-20 Akim Demaille <akim@epita.fr>
5921
5922 * data/bison.simple (yysymprint): Don't print the token number,
5923 just its name.
5924 * tests/actions.at (Destructors): Rename as...
5925 (Printers and Destructors): this.
5926 Also exercise %printer.
5927
253862fd
AD
59282002-06-20 Akim Demaille <akim@epita.fr>
5929
5930 * data/bison.simple (YYDSYMPRINT): New.
5931 Use it to remove many of the #if YYDEBUG/if (yydebug).
5932
366eea36
AD
59332002-06-20 Akim Demaille <akim@epita.fr>
5934
5935 * src/symtab.h, src/symtab.c (symbol_t): printer and
5936 printer_location are new members.
5937 (symbol_printer_set): New.
5938 * src/parse-gram.y (PERCENT_PRINTER): New token.
5939 Handle its associated rule.
5940 * src/scan-gram.l: Adjust.
5941 (handle_destructor_at, handle_destructor_dollar): Rename as...
5942 (handle_symbol_code_at, handle_symbol_code_dollar): these.
5943 * src/output.c (symbol_printers_output): New.
5944 (output_skeleton): Call it.
5945 * data/bison.simple (yysymprint): New. Cannot be named yyprint
5946 since there are already many grammar files with a user `yyprint'.
5947 Replace the calls to YYPRINT to calls to yysymprint.
5948 * tests/calc.at: Adjust.
5949 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
5950 taking advantage of parser very internal details (stack size!).
5951
4f25ebb0
AD
59522002-06-20 Akim Demaille <akim@epita.fr>
5953
5954 * src/scan-gram.l: Complete the scanner with the missing patterns
5955 to pacify Flex.
5956 Use `quote' and `symbol_tag_get' where appropriate.
5957
93b68a0e
AD
59582002-06-19 Akim Demaille <akim@epita.fr>
5959
5960 * tests/actions.at (Destructors): Augment to test locations.
5961 * data/bison.simple (yydestructor): Pass it the current location
5962 if locations are enabled.
5963 Prototype only when __STDC__ or C++.
5964 Change the argument names to move into the yy name space: there is
5965 user code here.
5966
58612f1d
AD
59672002-06-19 Akim Demaille <akim@epita.fr>
5968
74310291
AD
5969 * data/bison.simple (b4_pure_if): New.
5970 Use it instead of #ifdef YYPURE.
5971
59722002-06-19 Akim Demaille <akim@epita.fr>
5973
5974 * data/bison.simple (b4_location_if): New.
58612f1d
AD
5975 Use it instead of #ifdef YYLSP_NEEDED.
5976
f25bfb75
AD
59772002-06-19 Akim Demaille <akim@epita.fr>
5978
5979 Prepare @$ in %destructor, but currently don't bind it in the
5980 skeleton, as %location use is not cleaned up yet.
5981
5982 * src/scan-gram.l (handle_dollar, handle_destructor_at)
5983 (handle_action_at): New.
5984 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
5985 a braced_code_t and a location as additional arguments.
5986 (handle_destructor_dollar): Instead of requiring `b4_eval', just
5987 unquote one when outputting `b4_dollar_dollar'.
5988 Adjust callers.
5989 * data/bison.simple (b4_eval): Remove.
5990 (b4_symbol_destructor): Adjust.
5991 * tests/input.at (Invalid @n): Adjust.
5992
c732d2c6
AD
59932002-06-19 Zack Weinberg <zack@codesourcery.com>
5994
5995 * doc/bison.texinfo: Document ability to have multiple
5996 prologue sections.
5997
8c165d89
AD
59982002-06-18 Akim Demaille <akim@epita.fr>
5999
6000 * src/files.c (compute_base_names): When computing the output file
6001 names from the input file name, strip the directory part.
6002
ca98bf57
AD
60032002-06-18 Akim Demaille <akim@epita.fr>
6004
6005 * data/bison.simple.new: Comment changes.
6006 Reported by Andreas Schwab.
6007
0bfb02ff
AD
60082002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
6009
6010 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
6011 there are no `label `yyoverflowlab' defined but not used' warnings
6012 when yyoverflow is defined.
6013
24c0aad7
AD
60142002-06-18 Akim Demaille <akim@epita.fr>
6015
6016 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
6017 new member.
6018 (symbol_destructor_set): Adjust.
6019 * src/output.c (symbol_destructors_output): Output the destructor
6020 locations.
6021 Output the symbol name.
6022 * data/bison.simple (b4_symbol_destructor): Adjust.
6023
5719c109
AD
60242002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
6025 and Akim Demaille <akim@epita.fr>
6026
6027 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
6028 what's left on the stack when the error recovery hits EOF.
6029 * tests/actions.at (Destructors): Complete to exercise this case.
6030
9280d3ef
AD
60312002-06-17 Akim Demaille <akim@epita.fr>
6032
6033 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
6034 arguments is really empty, not only equal to `[]'.
6035 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
6036 member.
6037 (symbol_destructor_set): New.
6038 * src/output.c (symbol_destructors_output): New.
6039 * src/reader.h (brace_code_t, current_braced_code): New.
6040 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
6041 (handle_dollar): Rename as...
6042 (handle_action_dollar): this.
6043 (handle_destructor_dollar): New.
6044 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
6045 (grammar_declaration): Use it.
6046 * data/bison.simple (yystos): Is always defined.
6047 (yydestructor): New.
6048 * tests/actions.at (Destructors): New.
6049 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
6050
dafdc66f
AD
60512002-06-17 Akim Demaille <akim@epita.fr>
6052
6053 * src/symlist.h, src/symlist.c (symbol_list_length): New.
6054 * src/scan-gram.l (handle_dollar, handle_at): Compute the
6055 rule_length only when needed.
6056 * src/output.c (actions_output, token_definitions_output): Output
6057 the full M4 block.
6058 * src/symtab.c: Don't access directly to the symbol tag, use
6059 symbol_tag_get.
6060 * src/parse-gram.y: Use symbol_list_free.
6061
56c47203
AD
60622002-06-17 Akim Demaille <akim@epita.fr>
6063
6064 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
6065 (symbol_list_prepend, get_type_name): Move to...
6066 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
6067 (symbol_list_prepend, symbol_list_n_type_name_get): here.
6068 Adjust all callers.
6069 (symbol_list_free): New.
6070 * src/scan-gram.l (handle_dollar): Takes a location.
6071 * tests/input.at (Invalid $n): Adjust.
6072
1e0bab92
AD
60732002-06-17 Akim Demaille <akim@epita.fr>
6074
6075 * src/reader.h, src/reader.c (symbol_list_new): Export it.
6076 (symbol_list_prepend): New.
6077 * src/parse-gram.y (%union): `list' is a new member.
6078 (symbols.1): New, replaces...
6079 (terms_to_prec.1, nterms_to_type.1): these.
6080 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
6081 Take a location as additional argument.
6082 Adjust all callers.
6083
04e60654
AD
60842002-06-15 Akim Demaille <akim@epita.fr>
6085
6086 * src/parse-gram.y: Move %token in the declaration section so that
6087 we don't depend upon CVS Bison.
6088
10e5b8bd
AD
60892002-06-15 Akim Demaille <akim@epita.fr>
6090
6091 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
6092 * src/print.c (print_core): Use it.
6093
9801d40c
AD
60942002-06-15 Akim Demaille <akim@epita.fr>
6095
6096 * src/conflicts.c (log_resolution): Accept the rule involved in
6097 the sr conflicts instead of the lookahead number that points to
6098 that rule.
6099 (flush_reduce): Accept the current lookahead vector as argument,
6100 instead of the index in LA.
6101 (resolve_sr_conflict): Accept the current number of lookahead
6102 bitset to consider for the STATE, instead of the index in LA.
6103 (set_conflicts): Adjust.
6104 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
6105
c0263492
AD
61062002-06-15 Akim Demaille <akim@epita.fr>
6107
6108 * src/state.h (state_t): Replace the `lookaheadsp' member, a
6109 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
6110 Adjust all dependencies.
6111 * src/lalr.c (initialize_lookaheads): Split into...
6112 (states_lookaheads_count, states_lookaheads_initialize): these.
6113 (lalr): Adjust.
6114
9757c359
AD
61152002-06-15 Akim Demaille <akim@epita.fr>
6116
6117 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
6118 out of...
6119 (grammar_rules_print): here.
6120 * src/reduce.c (reduce_output): Use it.
6121 * tests/reduce.at (Useless Rules, Reduced Automaton)
6122 (Underivable Rules): Adjust.
6123
6b98e4b5
AD
61242002-06-15 Akim Demaille <akim@epita.fr>
6125
6126 Copy BYacc's nice way to report the grammar.
6127
6128 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
6129 New.
6130 Don't print the rules' location, it is confusing and useless.
6131 (rule_print): Use grammar_rhs_print.
6132 * src/print.c (print_grammar): Use grammar_rules_print.
6133
6b98e4b5
AD
61342002-06-15 Akim Demaille <akim@epita.fr>
6135
6136 Complete and rationalize `useless thing' warnings.
6137
6138 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
6139 (symbol_tag_print): New.
6140 Use them everywhere in place of accessing directly the tag member.
6141 * src/gram.h, src/gram.c (rule_print): New.
6142 Use it where a rule used to be printed `by hand'.
6143 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
6144 (reduce_grammar_tables): Report the useless rules.
6145 (reduce_print): Useless things are a warning, not an error.
6146 Report it as such.
6147 * tests/reduce.at (Useless Nonterminals, Useless Rules):
6148 (Reduced Automaton, Underivable Rules): Adjust.
6149 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
6150 * tests/conflicts.at (Unresolved SR Conflicts)
6151 (Solved SR Conflicts): Adjust.
6152
ee000ba4
AD
61532002-06-15 Akim Demaille <akim@epita.fr>
6154
6155 Let symbols have a location.
6156
6157 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
6158 (getsym): Adjust.
6159 Adjust all callers.
6160 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
6161 Use location_t, not int.
6162 * src/symtab.c (symbol_check_defined): Take advantage of the
6163 location.
6164 * tests/regression.at (Invalid inputs): Adjust.
6165
8efe435c
AD
61662002-06-15 Akim Demaille <akim@epita.fr>
6167
6168 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
6169 (input): Don't try to initialize yylloc here, do it in the
6170 scanner.
6171 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
6172 * src/gram.h (rule_t): Change line and action_line into location
6173 and action_location, of location_t type.
6174 Adjust all dependencies.
6175 * src/location.h, src/location.c (empty_location): New.
6176 * src/reader.h, src/reader.c (grammar_start_symbol_set)
6177 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
6178 (grammar_current_rule_symbol_append)
6179 (grammar_current_rule_action_append): Expect a location as argument.
6180 * src/reader.c (grammar_midrule_action): Adjust to attach an
6181 action's location as dummy symbol location.
6182 * src/symtab.h, src/symtab.c (startsymbol_location): New.
6183 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
6184 the line numbers.
6185
1921f1d7
AD
61862002-06-14 Akim Demaille <akim@epita.fr>
6187
6188 Grammar declarations may be found in the grammar section.
6189
6190 * src/parse-gram.y (rules_or_grammar_declaration): New.
6191 (declarations): Each declaration may end with a semicolon, not
6192 just...
6193 (grammar_declaration): `"%union"'.
6194 (grammar): Branch to rules_or_grammar_declaration.
6195
4515534c
AD
61962002-06-14 Akim Demaille <akim@epita.fr>
6197
6198 * src/main.c (main): Invoke scanner_free.
6199
f958596b
AD
62002002-06-14 Akim Demaille <akim@epita.fr>
6201
6202 * src/output.c (m4_invoke): Extracted from...
6203 (output_skeleton): here.
6204 Free tempfile.
6205
2c569025
AD
62062002-06-14 Akim Demaille <akim@epita.fr>
6207
6208 * src/parse-gram.y (directives, directive, gram)
6209 (grammar_directives, precedence_directives, precedence_directive):
6210 Rename as...
6211 (declarations, declaration, grammar, grammar_declaration)
6212 (precedence_declaration, precedence_declarator): these.
6213 (symbol_declaration): New.
6214
592e8d4d
AD
62152002-06-14 Akim Demaille <akim@epita.fr>
6216
6217 * src/files.c (action_obstack): Remove, unused.
6218 (output_obstack): Remove it, and all its dependencies, as it is no
6219 longer needed.
6220 * src/reader.c (epilogue_set): Build the epilogue in the
6221 muscle_obstack.
6222 * src/output.h, src/output.c (muscle_obstack): Move to...
6223 * src/muscle_tab.h, src/muscle_tab.h: here.
6224 (muscle_init): Initialize muscle_obstack.
6225 (muscle_free): New.
6226 * src/main.c (main): Call it.
6227
0c15323d
AD
62282002-06-14 Akim Demaille <akim@epita.fr>
6229
6230 * src/location.h: New, extracted from...
6231 * src/reader.h: here.
6232 * src/Makefile.am (noinst_HEADERS): Merge into
6233 (bison_SOURCES): this.
6234 Add location.h.
6235 * src/parse-gram.y: Use location_t instead of Bison's.
6236 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
6237 Use location_t instead of ints.
6238
e96c9728
AD
62392002-06-14 Akim Demaille <akim@epita.fr>
6240
6241 * data/bison.simple, data/bison.c++: Be sure to restore the
6242 current #line when returning to the skeleton contents after having
6243 exposed the input file's #line.
6244
75d1fe16
AD
62452002-06-12 Akim Demaille <akim@epita.fr>
6246
6247 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
6248 eager.
6249 * tests/actions.at (Exotic Dollars): New.
6250
6c35d22c
AD
62512002-06-12 Akim Demaille <akim@epita.fr>
6252
6253 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
6254 ['"/] too eagerly.
6255 * tests/input.at (Torturing the Scanner): New.
6256
1d6412ad
AD
62572002-06-11 Akim Demaille <akim@epita.fr>
6258
6259 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
6260 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
6261 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
6262 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
6263 * src/reader.c (reader): Use it.
6264
4cdb01db
AD
62652002-06-11 Akim Demaille <akim@epita.fr>
6266
6267 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
6268 Adjust all callers.
6269 (scanner_last_string_free): New.
6270
44995b2e
AD
62712002-06-11 Akim Demaille <akim@epita.fr>
6272
6273 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
6274 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
6275 (last_string, YY_OBS_FREE): New.
6276 Use them when returning an ID.
6277
e9955c83
AD
62782002-06-11 Akim Demaille <akim@epita.fr>
6279
6280 Have Bison grammars parsed by a Bison grammar.
6281
6282 * src/reader.c, src/reader.h (prologue_augment): New.
6283 * src/reader.c (copy_definition): Remove.
6284
6285 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
6286 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
6287 (grammar_current_rule_prec_set, grammar_current_rule_check)
6288 (grammar_current_rule_symbol_append)
6289 (grammar_current_rule_action_append): Export.
6290 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
6291 (symbol_list_action_append): Remove.
6292 Hook the routines from reader.
6293 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
6294 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
6295
6296 * src/reader.c (read_declarations): Remove, unused.
6297
6298 * src/parse-gram.y: Handle the epilogue.
6299 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
6300 (grammar_start_symbol_set): this.
6301 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
6302 * src/reader.c (readgram): Remove, unused.
6303 (reader): Adjust to insert eoftoken and axiom where appropriate.
6304
6305 * src/reader.c (copy_dollar): Replace with...
6306 * src/scan-gram.h (handle_dollar): this.
6307 * src/parse-gram.y: Remove `%thong'.
6308
6309 * src/reader.c (copy_at): Replace with...
6310 * src/scan-gram.h (handle_at): this.
6311
6312 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
6313 New.
6314
6315 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
6316 time being.
6317
6318 * src/reader.h, src/reader.c (grammar_rule_end): New.
6319
6320 * src/parse.y (current_type, current_class): New.
6321 Implement `%nterm', `%token' support.
6322 Merge `%term' into `%token'.
6323 (string_as_id): New.
6324 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
6325 type name.
6326
6327 * src/parse-gram.y: Be sure to handle properly the beginning of
6328 rules.
6329
6330 * src/parse-gram.y: Handle %type.
6331 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
6332
6333 * src/parse-gram.y: More directives support.
6334 * src/options.c: No longer handle source directives.
6335
6336 * src/parse-gram.y: Fix %output.
6337
6338 * src/parse-gram.y: Handle %union.
6339 Use the prologue locations.
6340 * src/reader.c (parse_union_decl): Remove.
6341
6342 * src/reader.h, src/reader.c (epilogue_set): New.
6343 * src/parse-gram.y: Use it.
6344
6345 * data/bison.simple, data/bison.c++: b4_stype is now either not
6346 defined, then default to int, or to the contents of %union,
6347 without `union' itself.
6348 Adjust.
6349 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
6350
6351 * src/output.c (actions_output): Don't output braces, as they are
6352 already handled by the scanner.
6353
6354 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
6355 characters to themselves.
6356
6357 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
6358 that the epilogue has a proper #line.
6359
6360 * src/parse-gram.y: Handle precedence/associativity.
6361
6362 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
6363 a terminal.
6364 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
6365 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
6366 at all to define terminals that cannot be emitted.
6367
6368 * src/scan-gram.l: Escape M4 characters.
6369
6370 * src/scan-gram.l: Working properly with escapes in user
6371 strings/characters.
6372
6373 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
6374 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
6375 grammar.
6376 Use more modest sizes, as for the time being the parser does not
6377 release memory, and therefore the process swallows a huge amount
6378 of memory.
6379
6380 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
6381 stricter %token grammar.
6382
6383 * src/symtab.h (associativity): Add `undef_assoc'.
6384 (symbol_precedence_set): Do nothing when passed an undef_assoc.
6385 * src/symtab.c (symbol_check_alias_consistence): Adjust.
6386
6387 * tests/regression.at (Invalid %directive): Remove, as it is now
6388 meaningless.
6389 (Invalid inputs): Adjust to the new error messages.
6390 (Token definitions): The new grammar doesn't allow too many
6391 eccentricities.
6392
6393 * src/lex.h, src/lex.c: Remove.
6394 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
6395 (copy_character, copy_string2, copy_string, copy_identifier)
6396 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
6397 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
6398 (parse_action): Remove.
6399 * po/POTFILES.in: Adjust.
6400
2e047461
AD
64012002-06-11 Akim Demaille <akim@epita.fr>
6402
cd05d13c 6403 * src/reader.c (parse_action): Don't store directly into the
2e047461
AD
6404 rule's action member: return the action as a string.
6405 Don't require `rule_length' as an argument: compute it.
6406 (grammar_current_rule_symbol_append)
6407 (grammar_current_rule_action_append): New, eved out from
6408 (readgram): here.
6409 Remove `action_flag', `rulelength', unused now.
6410
9af3fbce
AD
64112002-06-11 Akim Demaille <akim@epita.fr>
6412
6413 * src/reader.c (grammar_current_rule_prec_set).
6414 (grammar_current_rule_check): New, eved out from...
6415 (readgram): here.
6416 Remove `xaction', `first_rhs': useless.
6417 * tests/input.at (Type clashes): New.
6418 * tests/existing.at (GNU Cim Grammar): Adjust.
6419
1485e106
AD
64202002-06-11 Akim Demaille <akim@epita.fr>
6421
6422 * src/reader.c (grammar_midrule_action): New, Eved out from
6423 (readgram): here.
6424
da4160c3
AD
64252002-06-11 Akim Demaille <akim@epita.fr>
6426
6427 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
6428 New.
6429 (readgram): Use them as replacement of inlined code, crule and
6430 crule1.
6431
f6d0f937
AD
64322002-06-11 Akim Demaille <akim@epita.fr>
6433
6434 * src/reader.c (grammar_end, grammar_symbol_append): New.
6435 (readgram): Use them.
6436 Make the use of `p' as local as possible.
6437
69078d4b
AD
64382002-06-10 Akim Demaille <akim@epita.fr>
6439
6440 GCJ's parser requires the tokens to be defined before the prologue.
6441
6442 * data/bison.simple: Output the token definition before the user's
6443 prologue.
6444 * tests/regression.at (Braces parsing, Duplicate string)
6445 (Mixing %token styles): Check the output from bison.
6446 (Early token definitions): New.
6447
5e424082
AD
64482002-06-10 Akim Demaille <akim@epita.fr>
6449
6450 * src/symtab.c (symbol_user_token_number_set): Don't complain when
6451 assigning twice the same user number to a token, so that we can
6452 use it in...
6453 * src/lex.c (lex): here.
6454 Also use `symbol_class_set' instead of hand written code.
6455 * src/reader.c (parse_assoc_decl): Likewise.
6456
44536b35
AD
64572002-06-10 Akim Demaille <akim@epita.fr>
6458
6459 * src/symtab.c, src/symtab.c (symbol_class_set)
6460 (symbol_user_token_number_set): New.
6461 * src/reader.c (parse_token_decl): Use them.
6462 Use a switch instead of ifs.
6463 Use a single argument.
6464
8b9f2372
AD
64652002-06-10 Akim Demaille <akim@epita.fr>
6466
6467 Remove `%thong' support as it is undocumented, unused, duplicates
6468 `%token's job, and creates useless e-mail traffic with people who
6469 want to know what it is, why it is undocumented, unused, and
6470 duplicates `%token's job.
6471
6472 * src/reader.c (parse_thong_decl): Remove.
6473 * src/options.c (option_table): Remove "thong".
6474 * src/lex.h (tok_thong): Remove.
6475
3ae2b51f
AD
64762002-06-10 Akim Demaille <akim@epita.fr>
6477
6478 * src/symtab.c, src/symtab.c (symbol_type_set)
6479 (symbol_precedence_set): New.
6480 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
6481 (value_components_used): Remove, unused.
6482
2f1afb73
AD
64832002-06-09 Akim Demaille <akim@epita.fr>
6484
6485 Move symbols handling code out of the reader.
6486
6487 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
6488 (axiom): Move to...
6489 * src/symtab.h, src/symtab.c: here.
6490
6491 * src/gram.c (start_symbol): Remove: use startsymbol->number.
6492 * src/reader.c (startval): Rename as...
6493 * src/symtab.h, src/symtab.c (startsymbol): this.
6494 * src/reader.c: Adjust.
6495
6496 * src/reader.c (symbol_check_defined, symbol_make_alias)
6497 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
6498 (token_translations_init)
6499 Move to...
6500 * src/symtab.c: here.
6501 * src/reader.c (packsymbols): Move to...
6502 * src/symtab.h, src/symtab.c (symbols_pack): here.
6503 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
6504 argument.
6505
e9bca3ad
AD
65062002-06-03 Akim Demaille <akim@epita.fr>
6507
6508 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
6509 then statements.
6510
86eff183
AD
65112002-06-03 Akim Demaille <akim@epita.fr>
6512
6513 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
6514 structs with non literals.
6515 * src/scan-skel.l: never-interactive.
6516 * src/conflicts.c (enum conflict_resolution_e): No trailing
6517 comma.
6518 * src/getargs.c (usage): Split long literal strings.
6519 Reported by Hans Aberg.
6520
717be197
AD
65212002-05-28 Akim Demaille <akim@epita.fr>
6522
6523 * data/bison.c++: Use C++ ostreams.
6524 (cdebug_): New member.
6525
670ddffd
AD
65262002-05-28 Akim Demaille <akim@epita.fr>
6527
6528 * src/output.c (output_skeleton): Be sure to allocate enough room
6529 for `/' _and_ for `\0' in full_skeleton.
6530
769b430f
AD
65312002-05-28 Akim Demaille <akim@epita.fr>
6532
6533 * data/bison.c++: Catch up with bison.simple:
6534 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6535 and Paul Eggert <eggert@twinsun.com>: `error' handing.
6536 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
6537 and popping traces.
6538
7067cb36
PH
65392002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6540
6541 * src/output.c (output_skeleton): Put an explicit path in front of
6542 the skeleton file name, rather than relying on the -I directory,
6543 to partially alleviate effects of having a skeleton file lying around
6544 in the current directory.
769b430f 6545
4a713ec2
PH
65462002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6547
769b430f 6548 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
6549 obstack_printf should be obstack_fgrow1.
6550
b408954b
AD
65512002-05-26 Akim Demaille <akim@epita.fr>
6552
6553 * src/state.h (state_t): `solved_conflicts' is a new member.
6554 * src/LR0.c (new_state): Set it to 0.
6555 * src/conflicts.h, src/conflicts.c (print_conflicts)
6556 (free_conflicts, solve_conflicts): Rename as...
6557 (conflicts_print, conflicts_free, conflicts_solve): these.
6558 Adjust callers.
6559 * src/conflicts.c (enum conflict_resolution_e)
6560 (solved_conflicts_obstack): New, used by...
6561 (log_resolution): this.
6562 Adjust to attach the conflict resolution to each state.
6563 Complete the description with the precedence/associativity
6564 information.
6565 (resolve_sr_conflict): Adjust.
6566 * src/print.c (print_state): Output its solved_conflicts.
6567 * tests/conflicts.at (Unresolved SR Conflicts)
6568 (Solved SR Conflicts): Exercise --report=all.
6569
a49aecd5
AD
65702002-05-26 Akim Demaille <akim@epita.fr>
6571
6572 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6573 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
6574 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
6575 (token_number_t, item_number_as_token_number)
6576 (token_number_as_item_number, muscle_insert_token_number_table):
6577 Rename as...
6578 (symbol_number_t, item_number_as_symbol_number)
6579 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
6580 these, since it is more appropriate.
6581
5504898e
AD
65822002-05-26 Akim Demaille <akim@epita.fr>
6583
6584 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
6585 `Error:' lines.
6586 * data/bison.simple (yystos) [YYDEBUG]: New.
6587 (yyparse) [YYDEBUG]: Display the symbols which are popped during
6588 error recovery.
6589 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
6590
ec3bc396
AD
65912002-05-25 Akim Demaille <akim@epita.fr>
6592
6593 * doc/bison.texinfo (Debugging): Split into...
6594 (Tracing): this new section, its former contents, and...
6595 (Understanding): this new section.
6596 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
6597 by...
6598 (report_flag): this.
6599 Adjust all dependencies.
6600 (report_args, report_types, report_argmatch): New.
6601 (usage, getargs): Report/support -r, --report.
6602 * src/options.h
6603 (struct option_table_struct): Rename as..,
6604 (struct option_table_s): this.
6605 Rename the `set_flag' member to `flag' to match with getopt_long's
6606 struct.
6607 * src/options.c (option_table): Split verbose into an entry for
6608 %verbose, and another for --verbose.
6609 Support --report/-r, so remove -r from the obsolete --raw.
6610 * src/print.c: Attach full item sets and lookaheads reports to
6611 report_flag instead of trace_flag.
6612 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
6613
78df8250
PE
66142002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6615 and Paul Eggert <eggert@twinsun.com>
769b430f 6616
78df8250
PE
6617 * data/bison.simple (yyparse): Correct error handling to conform to
6618 POSIX and yacc. Specifically, after syntax error is discovered,
6619 do not reduce further before shifting the error token.
6620 Clean up the code a bit by removing the labels yyerrdefault,
6621 yyerrhandle, yyerrpop.
6622 * NEWS: Document the above.
6623
c0c9ea05
PH
66242002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6625
6626 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
6627 type; it isn't always big enough, since it doesn't necessarily
6628 include non-terminals.
769b430f 6629 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
6630 the latter can be removed.
6631 (yy_token_number_type): Remove, only one use.
6632 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
6633 don't use TokenNumberType as element type.
769b430f 6634
c0c9ea05
PH
6635 * tests/regression.at: Modify expected output to agree with change
6636 to yyr1 and yytranslate.
769b430f 6637
6390a83f
FK
66382002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
6639
6640 * src/reader.c (parse_action): Use copy_character instead of
6641 obstack_1grow.
6642
db7c8e9a
AD
66432002-05-13 Akim Demaille <akim@epita.fr>
6644
6645 * tests/regression.at (Token definitions): Prototype yylex and
6646 yyerror.
6647
fcc61800
PH
66482002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6649
158c687b 6650 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
6651 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
6652 32-bit arithmetic.
6653 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
6654
5683e9b2
AD
66552002-05-07 Akim Demaille <akim@epita.fr>
6656
6657 * tests/synclines.at: Be sure to prototype yylex and yyerror to
6658 avoid GCC warnings.
6659
0c2d3f4c
AD
66602002-05-07 Akim Demaille <akim@epita.fr>
6661
6662 Kill GCC warnings.
6663
6664 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
6665 over the RHS of each rule.
6666 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
6667 * src/state.h (state_t): Member `nitems' is unsigned short.
6668 * src/LR0.c (get_state): Adjust.
6669 * src/reader.c (packgram): Likewise.
6670 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
6671 `Type'.
6672 (muscle_insert_int_table): Remove, unused.
6673 (prepare_rules): Remove `max'.
6674
1565b720
AD
66752002-05-06 Akim Demaille <akim@epita.fr>
6676
6677 * src/closure.c (print_firsts): Display of the symbol tags.
6678 (bitmatrix_print): Move to...
6679 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
6680 here.
6681 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
6682
cfaee611
AD
66832002-05-06 Akim Demaille <akim@epita.fr>
6684
6685 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
6686 hash_do_for_each.
6687
458be8e0
AD
66882002-05-06 Akim Demaille <akim@epita.fr>
6689
6690 * src/LR0.c (new_state, get_state): Instead of using the global
6691 `kernel_size' and `kernel_base', have two new arguments:
6692 `core_size' and `core'.
6693 Adjust callers.
6694
a900a624
AD
66952002-05-06 Akim Demaille <akim@epita.fr>
6696
6697 * src/reader.c (packgram): No longer end `ritem' with a 0
6698 sentinel: it is not used.
6699
d4e7d3a1
AD
67002002-05-05 Akim Demaille <akim@epita.fr>
6701
6702 New experimental feature: display the lookaheads in the report and
6703 graph.
6704
6705 * src/print (print_core): When --trace-flag, display the rules
6706 lookaheads.
6707 * src/print_graph.c (print_core): Likewise.
6708 Swap the arguments.
6709 Adjust caller.
6710
39ceb25b
AD
67112002-05-05 Akim Demaille <akim@epita.fr>
6712
6713 * tests/torture.at (Many lookaheads): New test.
6714
5372019f
AD
67152002-05-05 Akim Demaille <akim@epita.fr>
6716
6717 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
6718 (GENERATE_MUSCLE_INSERT_TABLE): this.
6719 (output_int_table, output_unsigned_int_table, output_short_table)
6720 (output_token_number_table, output_item_number_table): Replace with...
6721 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
6722 (muscle_insert_short_table, muscle_insert_token_number_table)
6723 (muscle_insert_item_number_table): these.
6724 Adjust all callers.
6725 (prepare_tokens): Don't free `translations', since...
6726 * src/reader.h, src/reader.c (grammar_free): do it.
6727 Move to...
6728 * src/gram.h, src/gram.c (grammar_free): here.
6729 * data/bison.simple, data/bison.c++: b4_token_number_max is now
6730 b4_translate_max.
6731
5df5f6d5
AD
67322002-05-05 Akim Demaille <akim@epita.fr>
6733
6734 * src/output.c (output_unsigned_int_table): New.
6735 (prepare_rules): `i' is unsigned.
6736 `prhs', `rline', `r2' are unsigned int.
6737 Rename muscle `rhs_number_max' as `rhs_max'.
6738 Output muscles `prhs_max', `rline_max', and `r2_max'.
6739 Free rline and r1.
6740 * data/bison.simple, data/bison.c++: Adjust to use these muscles
6741 to compute types instead of constant types.
6742 * tests/regression.at (Web2c Actions): Adjust.
6743
b87f8b21
AD
67442002-05-04 Akim Demaille <akim@epita.fr>
6745
6746 * src/symtab.h (SALIAS, SUNDEF): Rename as...
6747 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
6748 Adjust dependencies.
6749 * src/output.c (token_definitions_output): Be sure not to output a
6750 `#define 'a'' when fed with `%token 'a' "a"'.
6751 * tests/regression.at (Token definitions): New.
6752
8bb936e4
PE
67532002-05-03 Paul Eggert <eggert@twinsun.com>
6754
6755 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
6756 for K&R C.
6757
67582002-05-03 gettextize <bug-gnu-gettext@gnu.org>
6759
6760 * Makefile.am (SUBDIRS): Remove intl.
6761 (EXTRA_DIST): Add config/config.rpath.
6762
53c71a12
AD
67632002-05-03 Akim Demaille <akim@epita.fr>
6764
6765 * data/bison.simple (m4_if): Don't output empty enums.
6766 And actually, output valid enum definitions :(.
6767
289dd0cf
AD
67682002-05-03 Akim Demaille <akim@epita.fr>
6769
6770 * configure.bat: Remove, completely obsolete.
6771 * Makefile.am (EXTRA_DIST): Adjust.
6772 Don't distribute config.rpath...
6773 * config/Makefile.am (EXTRA_DIST): Do it.
6774
db85e524
AD
67752002-05-03 Akim Demaille <akim@epita.fr>
6776
6777 * configure.in (GETTEXT_VERSION): New.
6778 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
6779
83ccf991
AD
67802002-05-03 Akim Demaille <akim@epita.fr>
6781
6782 * data/bison.simple (b4_token_enum): New.
6783 (b4_token_defines): Use it to output tokens both as #define and
6784 enums.
6785 Suggested by Paul Eggert.
6786 * src/output.c (token_definitions_output): Don't output spurious
6787 white spaces.
6788
1f418995
AD
67892002-05-03 Akim Demaille <akim@epita.fr>
6790
6791 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6792
45119f04
RA
67932002-05-02 Robert Anisko <robert@lrde.epita.fr>
6794
6795 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
6796 Update the stack class, give a try to deque as the default container.
6797
b2d52318
AD
67982002-05-02 Akim Demaille <akim@epita.fr>
6799
6800 * data/bison.simple (yyparse): Do not implement @$ = @1.
6801 (YYLLOC_DEFAULT): Adjust to do it.
6802 * doc/bison.texinfo (Location Default Action): Fix.
6803
3a8b4109
AD
68042002-05-02 Akim Demaille <akim@epita.fr>
6805
6806 * src/reader.c (parse_braces): Merge into...
6807 (parse_action): this.
6808
84614e13
AD
68092002-05-02 Akim Demaille <akim@epita.fr>
6810
6811 * configure.in (ALL_LINGUAS): Remove.
6812 * po/LINGUAS, hr.po: New.
6813
fdbcd8e2
AD
68142002-05-02 Akim Demaille <akim@epita.fr>
6815
6816 Remove the so called hairy (semantic) parsers.
6817
6818 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
6819 * src/gram.h, src/gram.c (semantic_parser): Remove.
6820 (rule_t): Remove the guard and guard_line members.
6821 * src/lex.h (token_t): remove tok_guard.
6822 * src/options.c (option_table): Remove %guard and %semantic_parser
6823 support.
6824 * src/output.c, src/output.h (guards_output): Remove.
6825 (prepare): Adjust.
6826 (token_definitions_output): Don't output the `T'
6827 tokens (???).
6828 (output_skeleton): Don't output the guards.
6829 * src/files.c, src/files.c (attrsfile): Remove.
6830 * src/reader.c (symbol_list): Remove the guard and guard_line
6831 members.
6832 Adjust dependencies.
6833 (parse_guard): Remove.
6834 * data/bison.hairy: Remove.
6835 * doc/bison.texinfo (Environment Variables): Remove occurrences of
6836 BISON_HAIRY.
6837
82b6cb3f
AD
68382002-05-02 Akim Demaille <akim@epita.fr>
6839
6840 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
6841 (parse_guard): Rename the formal argument `stack_offset' as
6842 `rule_length', which is more readable.
6843 Adjust callers.
6844 (copy_at, copy_dollar): Instead of outputting the hard coded
6845 values of $$, $n and so forth, output invocation to b4_lhs_value,
6846 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
6847 Note: this patch partially drops `semantic-parser' support: it
6848 always does `rule_length - n', where semantic parsers ought to
6849 always use `-n'.
82b6cb3f
AD
6850 * data/bison.simple, data/bison.c++ (b4_lhs_value)
6851 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
6852
6cbfbcc5
AD
68532002-05-02 Akim Demaille <akim@epita.fr>
6854
6855 * configure.in (AC_INIT): Bump to 1.49b.
6856 (AM_INIT_AUTOMAKE): Short invocation.
6857
b8548114
AD
68582002-05-02 Akim Demaille <akim@epita.fr>
6859
6860 Version 1.49a.
6861
c20cd1fa
AD
68622002-05-01 Akim Demaille <akim@epita.fr>
6863
6864 * src/skeleton.h: Remove.
6865
8a9566d4
AD
68662002-05-01 Akim Demaille <akim@epita.fr>
6867
6868 * src/skeleton.h: Fix the #endif.
6869 Reported by Magnus Fromreide.
6870
8c6d399a
PE
68712002-04-26 Paul Eggert <eggert@twinsun.com>
6872
6873 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
6874 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 6875 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 6876
2b7ed18a
RA
68772002-04-25 Robert Anisko <robert@lrde.epita.fr>
6878
6879 * src/scan-skel.l: Postprocess quadrigraphs.
6880
6881 * src/reader.c (copy_character): New function, used to output
6882 single characters while replacing `[' and `]' with quadrigraphs, to
6883 avoid troubles with M4 quotes.
6884 (copy_comment): Output characters with copy_character.
6885 (read_additionnal_code): Likewise.
6886 (copy_string2): Likewise.
6887 (copy_definition): Likewise.
6888
6889 * tests/calc.at: Exercise M4 quoting.
6890
34a89c50
AD
68912002-04-25 Akim Demaille <akim@epita.fr>
6892
6893 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
6894 between `!' and the command.
6895 Reported by Paul Eggert.
6896
0dd1580a
RA
68972002-04-24 Robert Anisko <robert@lrde.epita.fr>
6898
6899 * tests/calc.at: Exercise prologue splitting.
6900
6901 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
6902 `b4_post_prologue' instead of `b4_prologue'.
6903
6904 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
6905 muscles.
6906 (output): Free pre_prologue_obstack and post_prologue_obstack.
6907 * src/files.h, src/files.c (attrs_obstack): Remove.
6908 (pre_prologue_obstack, post_prologue_obstack): New.
6909 * src/reader.c (copy_definition): Add a parameter to specify the
6910 obstack to fill, instead of using attrs_obstack unconditionally.
6911 (read_declarations): Pass pre_prologue_obstack to copy_definition if
6912 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
6913
83c1796f
PE
69142002-04-23 Paul Eggert <eggert@twinsun.com>
6915
6916 * data/bison.simple: Remove unnecessary commentary and white
6917 space differences from 1_29-branch.
6918 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
6919
6920 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
6921 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
6922 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
6923 constructors or destructors.
6924
6925 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
6926
1207eeac
AD
69272002-04-23 Akim Demaille <akim@epita.fr>
6928
6929 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
6930 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
6931 location with columns.
6932 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
6933 All reported by Paul Eggert.
6934
78ab8f67
AD
69352002-04-22 Akim Demaille <akim@epita.fr>
6936
6937 * src/reduce.c (dump_grammar): Move to...
6938 * src/gram.h, src/gram.c (grammar_dump): here.
6939 Be sure to separate long item numbers.
6940 Don't read the members of a rule's prec if its nil.
6941
133c20e2
AD
69422002-04-22 Akim Demaille <akim@epita.fr>
6943
6944 * src/output.c (table_size, table_grow): New.
6945 (MAXTABLE): Remove, replace uses with table_size.
6946 (pack_vector): Instead of dying when the table is too big, grow it.
6947
9515e8a7
AD
69482002-04-22 Akim Demaille <akim@epita.fr>
6949
6950 * data/bison.simple (yyr1): Its type is that of a token number.
6951 * data/bison.c++ (r1_): Likewise.
6952 * tests/regression.at (Web2c Actions): Adjust.
6953
23c5a174
AD
69542002-04-22 Akim Demaille <akim@epita.fr>
6955
6956 * src/reader.c (token_translations_init): 256 is now the default
6957 value for the error token, i.e., it will be assigned another
6958 number if the user assigned 256 to one of her tokens.
6959 (reader): Don't force 256 to error.
6960 * doc/bison.texinfo (Symbols): Adjust.
6961 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
6962 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
6963 etc. instead of 10, 20, 30 (which was used to `jump' over error
6964 (256) and undefined (2)).
6965
5fbb0954
AD
69662002-04-22 Akim Demaille <akim@epita.fr>
6967
6968 Propagate more token_number_t.
6969
6970 * src/gram.h (token_number_as_item_number)
6971 (item_number_as_token_number): New.
6972 * src/output.c (GENERATE_OUTPUT_TABLE): New.
6973 Use it to create output_item_number_table and
6974 output_token_number_table.
6975 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6976 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
6977 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
6978 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
6979
4f940944
AD
69802002-04-22 Akim Demaille <akim@epita.fr>
6981
6982 * src/output.h, src/output.c (get_lines_number): Remove.
6983
3ded9a63
AD
69842002-04-19 Akim Demaille <akim@epita.fr>
6985
6986 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
6987 as Lex/Flex'.
6988 (Debugging): More details about enabling the debugging features.
6989 (Table of Symbols): Describe $$, $n, @$, and @n.
6990 Suggested by Tim Josling.
6991
e0c471a9
AD
69922002-04-19 Akim Demaille <akim@epita.fr>
6993
6994 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
6995
fecc10cd
AD
69962002-04-10 Akim Demaille <akim@epita.fr>
6997
6998 * src/system.h: Rely on HAVE_LIMITS_H.
6999 Suggested by Paul Eggert.
7000
51dec47b
AD
70012002-04-09 Akim Demaille <akim@epita.fr>
7002
7003 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
7004 full stderr, and strip it according to the bison options, instead
7005 of composing the error message from different bits.
7006 This makes it easier to check for several error messages.
7007 Adjust all the invocations.
7008 Add an invocation exercising the error token.
7009 Add an invocation demonstrating a stupid error message.
7010 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
7011 Adjust the tests.
7012 Error message are for stderr, not stdout.
7013
007a50a4
AD
70142002-04-09 Akim Demaille <akim@epita.fr>
7015
7016 * src/gram.h, src/gram.c (error_token_number): Remove, use
7017 errtoken->number.
7018 * src/reader.c (reader): Don't specify the user token number (2)
7019 for $undefined, as it uselessly prevents using it.
7020 * src/gram.h (token_number_t): Move to...
7021 * src/symtab.h: here.
7022 (state_t.number): Is a token_number_t.
7023 * src/print.c, src/reader.c: Use undeftoken->number instead of
7024 hard coded 2.
7025 (Even though this 2 is not the same as above: the number of the
7026 undeftoken remains being 2, it is its user token number which
7027 might not be 2).
7028 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
7029 `user_token_number_max'.
7030 Output `undef_token_number'.
7031 * data/bison.simple, data/bison.c++: Use them.
7032 Be sure to map invalid yylex return values to
7033 `undef_token_number'. This saves us from gratuitous SEGV.
7034
7035 * tests/conflicts.at (Solved SR Conflicts)
7036 (Unresolved SR Conflicts): Adjust.
7037 * tests/regression.at (Web2c Actions): Adjust.
7038
06446ccf
AD
70392002-04-08 Akim Demaille <akim@epita.fr>
7040
7041 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
7042 Adding #line.
7043 Remove the duplicate `typedefs'.
7044 (RhsNumberType): Fix the declaration and various other typos.
7045 Use __ofile__.
7046 * data/bison.simple: Use __ofile__.
7047 * src/scan-skel.l: Handle __ofile__.
7048
62a3e4f0
AD
70492002-04-08 Akim Demaille <akim@epita.fr>
7050
7051 * src/gram.h (item_number_t): New, the type of item numbers in
7052 RITEM. Note that it must be able to code symbol numbers as
7053 positive number, and the negation of rule numbers as negative
7054 numbers.
7055 Adjust all dependencies (pretty many).
7056 * src/reduce.c (rule): Remove this `short *' pointer: use
7057 item_number_t.
7058 * src/system.h (MINSHORT, MAXSHORT): Remove.
7059 Include `limits.h'.
7060 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
7061 (shortcpy): Remove.
7062 (MAXTABLE): Move to...
7063 * src/output.c (MAXTABLE): here.
7064 (prepare_rules): Use output_int_table to output rhs.
7065 * data/bison.simple, data/bison.c++: Adjust.
7066 * tests/torture.at (Big triangle): Move the limit from 254 to
7067 500.
7068 * tests/regression.at (Web2c Actions): Ajust.
7069
7070 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
7071 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
7072 passes, but produces negative #line number, once fixed, GCC is
7073 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
7074 C), it passes.
7075 * src/state.h (state_h): Code input lines on ints, not shorts.
7076
bb88b0fc
AD
70772002-04-08 Akim Demaille <akim@epita.fr>
7078
7079 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
7080 and then the grammar.
7081
9a636f47
AD
70822002-04-08 Akim Demaille <akim@epita.fr>
7083
7084 * src/system.h: No longer using strndup.
7085
680e8701
AD
70862002-04-07 Akim Demaille <akim@epita.fr>
7087
7088 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
7089 * src/output.c (output_table_data): Return the longest number.
7090 (prepare_tokens): Output `token_number_max').
7091 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
7092 New.
7093 Use them to define yy_token_number_type/TokenNumberType.
7094 Use this type for yytranslate.
7095 * tests/torture.at (Big triangle): Push the limit from 124 to
7096 253.
7097 * tests/regression.at (Web2c Actions): Adjust.
7098
817e9f41
AD
70992002-04-07 Akim Demaille <akim@epita.fr>
7100
7101 * tests/torture.at (Big triangle): New.
7102 (GNU AWK Grammar, GNU Cim Grammar): Move to...
7103 * tests/existing.at: here.
7104
5123689b
AD
71052002-04-07 Akim Demaille <akim@epita.fr>
7106
7107 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
7108 nritems.
7109 Adjust dependencies.
7110
f3849179
AD
71112002-04-07 Akim Demaille <akim@epita.fr>
7112
7113 * src/reader.c: Normalize increments to prefix form.
7114
bd02036a
AD
71152002-04-07 Akim Demaille <akim@epita.fr>
7116
7117 * src/reader.c, symtab.c: Remove debugging code.
7118
db8837cb
AD
71192002-04-07 Akim Demaille <akim@epita.fr>
7120
7121 Rename all the `bucket's as `symbol_t'.
7122
7123 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
7124 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
7125 * src/symtab.c, src/symtab.h (bucket): Rename as...
7126 (symbol_t): this.
7127 (symbol_list_new, bucket_check_defined, bucket_make_alias)
7128 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
7129 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
7130 (buckets_new, buckets_free, buckets_do): Rename as...
7131 (symbol_list_new, symbol_check_defined, symbol_make_alias)
7132 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
7133 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
7134 (symbols_new, symbols_free, symbols_do): these.
7135
72a23c97
AD
71362002-04-07 Akim Demaille <akim@epita.fr>
7137
7138 Use lib/hash for the symbol table.
7139
7140 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
7141 EOF.
7142 * src/lex.c (lex): Set the `number' member of new terminals.
7143 * src/reader.c (bucket_check_defined, bucket_make_alias)
7144 (bucket_check_alias_consistence, bucket_translation): New.
7145 (reader, grammar_free, readgram, token_translations_init)
7146 (packsymbols): Adjust.
7147 (reader): Number the predefined tokens.
7148 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
7149 for predefined tokens.
7150 * src/symtab.h (bucket): Remove all the hash table related
7151 members.
7152 * src/symtab.c (symtab): Replace by...
7153 (bucket_table): this.
7154 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
7155 (buckets_new, buckets_do): New.
7156
280a38c3
AD
71572002-04-07 Akim Demaille <akim@epita.fr>
7158
7159 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
7160 (start_symbol, max_user_token_number, semantic_parser)
7161 (error_token_number): Initialize.
7162 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
7163 Initialize.
7164 (reader): Don't.
7165 (errtoken, eoftoken, undeftoken, axiom): Extern.
7166
03b31c0c
AD
71672002-04-07 Akim Demaille <akim@epita.fr>
7168
7169 * src/gram.h (rule_s): prec and precsym are now pointers
7170 to the bucket giving the priority/associativity.
7171 Member `associativity' removed: useless.
7172 * src/reduce.c, src/conflicts.c: Adjust.
7173
8b3df748
AD
71742002-04-07 Akim Demaille <akim@epita.fr>
7175
7176 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
7177 Properly escape the symbols' TAG when outputting them.
7178
e601aa1d
AD
71792002-04-07 Akim Demaille <akim@epita.fr>
7180
7181 * src/lalr.h (LA): Is a bitsetv, not bitset*.
7182
b0299a2e
AD
71832002-04-07 Akim Demaille <akim@epita.fr>
7184
7185 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
7186 (LArule): this, which is an array to rule_t*.
7187 * src/print.c, src/conflicts.c: Adjust.
7188
d7e1f00c
AD
71892002-04-07 Akim Demaille <akim@epita.fr>
7190
7191 * src/gram.h (rule_t): Rename `number' as `user_number'.
7192 `number' is a new member.
7193 Adjust dependencies.
7194 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
7195
cc9305dd
AD
71962002-04-07 Akim Demaille <akim@epita.fr>
7197
7198 As a result of the previous patch, it is no longer needed
7199 to reorder ritem itself.
7200
7201 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
7202
b0940840
AD
72032002-04-07 Akim Demaille <akim@epita.fr>
7204
7205 Be sure never to walk through RITEMS, but use only data related to
7206 the rules themselves. RITEMS should be banished.
7207
7208 * src/output.c (output_token_translations): Rename as...
7209 (prepare_tokens): this.
7210 In addition to `translate', prepare the muscles `tname' and
7211 `toknum', which were handled by...
7212 (output_rule_data): this.
7213 Remove, and move the remainder of its outputs into...
7214 (prepare_rules): this new routines, which also merges content from
7215 (output_gram): this.
7216 (prepare_rules): Be sure never to walk through RITEMS.
7217 (output_stos): Rename as...
7218 (prepare_stos): this.
7219 (output): Always invoke prepare_states, after all, just don't use it
7220 in the output if you don't need it.
7221
643a5994
AD
72222002-04-07 Akim Demaille <akim@epita.fr>
7223
7224 * src/LR0.c (new_state): Display `nstates' as the name of the
7225 newly created state.
7226 Adjust to initialize first_state and last_state if needed.
7227 Be sure to distinguish the initial from the final state.
7228 (new_states): Create the itemset of the initial state, and use
7229 new_state.
7230 * src/closure.c (closure): Now that the initial state has its
7231 items properly set, there is no need for a special case when
7232 creating `ruleset'.
7233
7234 As a result, now the rule 0, reducing to $axiom, is visible in the
7235 outputs. Adjust the test suite.
7236
7237 * tests/conflicts.at (Solved SR Conflicts)
7238 (Unresolved SR Conflicts): Adjust.
7239 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
7240 * tests/conflicts.at (S/R in initial): New.
7241
b4c4ccc2
AD
72422002-04-07 Akim Demaille <akim@epita.fr>
7243
7244 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
7245 the RHS of the rules.
7246 * src/output.c (output_gram): Likewise.
7247
bba97eb2
AD
72482002-04-07 Akim Demaille <akim@epita.fr>
7249
7250 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
7251 bucket.
7252 Adjust all dependencies.
7253 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
7254 `number' of the buckets too.
7255 * src/gram.h: Include `symtab.h'.
7256 (associativity): Move to...
7257 * src/symtab.h: here.
7258 No longer include `gram.h'.
7259
c3b407f4
AD
72602002-04-07 Akim Demaille <akim@epita.fr>
7261
7262 * src/gram.h, src/gram.c (rules_rhs_length): New.
7263 (ritem_longest_rhs): Use it.
7264 * src/gram.h (rule_t): `number' is a new member.
7265 * src/reader.c (packgram): Set it.
7266 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
7267 the end of `rules', and count them out of `nrules'.
7268 (reduce_output, dump_grammar): Adjust.
7269 * src/print.c (print_grammar): It is no longer needed to check for
7270 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
7271 * tests/reduce.at (Reduced Automaton): New test.
7272
11652ab3
AD
72732002-04-07 Akim Demaille <akim@epita.fr>
7274
7275 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
7276 lacking `+ 1' to nrules, Bison reported as useless a token if it
7277 was used solely to set the precedence of the last rule...
7278
26b23c1a
AD
72792002-04-07 Akim Demaille <akim@epita.fr>
7280
7281 * data/bison.c++, data/bison.simple: Don't output the current file
7282 name in #line, to avoid useless diffs between two identical
7283 outputs under different names.
7284
18bcecb0
AD
72852002-04-07 Akim Demaille <akim@epita.fr>
7286
7287 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
7288 Normalize loops to using `< nrules + 1', not `<= nrules'.
7289
fa770c86
AD
72902002-04-07 Akim Demaille <akim@epita.fr>
7291
7292 * TODO: Update.
7293
d9b739c3
AD
72942002-04-07 Akim Demaille <akim@epita.fr>
7295
7296 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
7297 bucket.value as bucket.number.
7298
99013900
AD
72992002-04-07 Akim Demaille <akim@epita.fr>
7300
7301 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
7302 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
7303 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
7304 RHS, instead of being an index in RITEMS.
7305
e966383b
PE
73062002-04-04 Paul Eggert <eggert@twinsun.com>
7307
7308 * doc/bison.texinfo: Update copyright date.
7309 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
7310 (Symbols): Warn about running Bison in one character set,
7311 but compiling and/or running in an incompatible one.
7312 Warn about character code 256, too.
7313
73142002-04-03 Paul Eggert <eggert@twinsun.com>
7315
7316 * src/bison.data (YYSTACK_ALLOC): Depend on whether
7317 YYERROR_VERBOSE is nonzero, not whether it is defined.
7318
7319 Merge changes from bison-1_29-branch.
c307773e 7320
8d6c48b9
PE
73212002-03-20 Paul Eggert <eggert@twinsun.com>
7322
7323 Merge fixes from Debian bison_1.34-1.diff.
7324
7325 * configure.in (AC_PREREQ): 2.53.
7326
e53c6322
AD
73272002-03-20 Akim Demaille <akim@epita.fr>
7328
7329 * src/conflicts.c (log_resolution): Argument `resolution' is const.
7330
9ffbeca7
PE
73312002-03-19 Paul Eggert <eggert@twinsun.com>
7332
21db0b2a
PE
7333 * src/bison.simple (YYCOPY): New macro.
7334 (YYSTACK_RELOCATE): Use it.
7335 Remove Type arg; no longer needed. All callers changed.
7336 (yymemcpy): Remove; no longer needed.
7337
9ffbeca7
PE
7338 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
7339 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
7340
642cb8f8
AD
73412002-03-19 Akim Demaille <akim@epita.fr>
7342
7343 Test and fix the #line outputs.
7344
7345 * tests/atlocal.at (GCC): New.
7346 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
7347 (Prologue synch line, ,%union synch line, Postprologue synch line)
7348 (Action synch line, Epilogue synch line): New tests.
7349 * src/reader.c (parse_union_decl): Define the muscle stype_line.
7350 * data/bison.simple, data/bison.c++: Use it.
7351
3c31a486
AD
73522002-03-19 Akim Demaille <akim@epita.fr>
7353
7354 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
7355 (Solved SR Conflicts, %expect not enough, %expect right)
7356 (%expect too much): Move to...
7357 * tests/conflicts.at: this new file.
7358
0d8bed56
AD
73592002-03-19 Akim Demaille <akim@epita.fr>
7360
7361 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
7362 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
7363 that we can move to enums for instance.
7364 * src/output.c (token_definitions_output): Output a list of
7365 `token-name, token-number' instead of the #define.
7366 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
7367
9208d17f
AD
73682002-03-14 Akim Demaille <akim@epita.fr>
7369
7370 Use Gettext 0.11.1.
7371
af27eacb
RA
73722002-03-09 Robert Anisko <robert@lrde.epita.fr>
7373
7374 * data/bison.c++: Make the user able to add members to the generated
7375 parser by subclassing.
7376
9101a310
RA
73772002-03-05 Robert Anisko <robert@lrde.epita.fr>
7378
7379 * src/reader.c (read_additionnal_code): `c' should be an integer, not
7380 a character.
7381 Reported by Nicolas Tisserand and Nicolas Burrus.
7382
fff9bf0b
RA
73832002-03-04 Robert Anisko <robert@lrde.epita.fr>
7384
7385 * src/reader.c: Warn about lacking semi-colons, do not complain.
7386
64dba31e
RA
73872002-03-04 Robert Anisko <robert@lrde.epita.fr>
7388
7389 * data/bison.c++: Remove a debug line.
7390
374f5a14
RA
73912002-03-04 Robert Anisko <robert@lrde.epita.fr>
7392
7393 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
7394 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
7395 provide a default implementation.
7396
bfcf1f3a
AD
73972002-03-04 Akim Demaille <akim@epita.fr>
7398
7399 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
7400 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
7401 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
7402 * tests/semantic.at (Parsing Guards): Similarly.
7403 * src/reader.at (readgram): Complain if the last rule is not ended
7404 with a semi-colon.
7405
65ccf9fc
AD
74062002-03-04 Akim Demaille <akim@epita.fr>
7407
7408 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
7409 * src/closure.c: here.
7410 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
7411 RTC.
7412 * src/warshall.h, src/warshall.c: Remove.
7413 * tests/sets.at (Broken Closure): Adjust.
7414
d0039cbc
AD
74152002-03-04 Akim Demaille <akim@epita.fr>
7416
7417 * src/output.c (output_skeleton): tempdir is const.
7418 bytes_read is unused.
7419
345cea78
AD
74202002-03-04 Akim Demaille <akim@epita.fr>
7421
7422 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
7423 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
7424 Update.
7425 From Michael Hayes.
7426
564801f7
AD
74272002-03-04 Akim Demaille <akim@epita.fr>
7428
7429 * src/closure.c (closure): `r' is unused.
7430
e5352bc7
AD
74312002-03-04 Akim Demaille <akim@epita.fr>
7432
7433 * tests/sets.at (Broken Closure): Add the ending `;'.
7434 * src/reader.at (readgram): Complain if a rule is not ended with a
7435 semi-colon.
7436
914feea9
AD
74372002-03-04 Akim Demaille <akim@epita.fr>
7438
7439 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
7440 (count_sr_conflicts): Use bitset_count.
7441 * src/reduce.c (inaccessable_symbols): Ditto.
7442 (bits_size): Remove.
7443 * src/warshall.h, src/warshall.c: Convert to bitsetv.
7444
f0250de6
AD
74452002-03-04 Akim Demaille <akim@epita.fr>
7446
7447 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
7448 * src/reduce.c: Remove the `bitset_zero's following the
7449 `bitset_create's, as now it is performed by the latter.
7450
ef017502
AD
74512002-03-04 Akim Demaille <akim@epita.fr>
7452
7453 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
7454 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
7455 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
7456 latest sources from Michael.
7457
76514394
AD
74582002-03-04 Akim Demaille <akim@epita.fr>
7459
7460 * src/output.c (output): Don't free the grammar.
7461 * src/reader.c (grammar_free): New.
7462 * src/main.c (main): Call it and don't free symtab here.
7463
55024580
AD
74642002-03-04 Akim Demaille <akim@epita.fr>
7465
7466 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
7467 before returning.
7468 Reported by Benoit Perrot.
7469
f9abaa2c
AD
74702002-03-04 Akim Demaille <akim@epita.fr>
7471
7472 Use bitset operations when possible, not loops over bits.
7473
7474 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
7475 bitset_or.
7476 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
7477 * src/reduce.c (useless_nonterminals): Formatting changes.
7478 * src/warshall.c (TC): Use bitset_or.
7479
0e721e75
AD
74802002-03-04 Akim Demaille <akim@epita.fr>
7481
7482 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
7483 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
7484 Ditto.
7485
0fb1ffb1
AD
74862002-03-04 Akim Demaille <akim@epita.fr>
7487
7488 * src/lalr.c (F): Now a bitset*.
7489 Adjust all dependencies.
7490
b86796bf
AD
74912002-03-04 Akim Demaille <akim@epita.fr>
7492
7493 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
7494 Adjust all dependencies.
7495
602bbf31
AD
74962002-03-04 Akim Demaille <akim@epita.fr>
7497
7498 * src/L0.c, src/LR0.h (nstates): Be size_t.
7499 Adjust comparisons (signed vs unsigned).
7500 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
7501 bitset*.
7502 Adjust all dependencies.
7503
d8a0245c
AD
75042002-03-04 Akim Demaille <akim@epita.fr>
7505
7506 * src/closure.c (firsts): Now, also a bitset.
7507 Adjust all dependencies.
7508 (varsetsize): Remove, now unused.
7509 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
7510
34ba9743
AD
75112002-03-04 Akim Demaille <akim@epita.fr>
7512
7513 * src/print.c: Convert to use bitset.h, not hand coded iterations
7514 over ints.
7515
ed86e78c
AD
75162002-03-04 Akim Demaille <akim@epita.fr>
7517
7518 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
7519
dfdb1797
AD
75202002-03-04 Akim Demaille <akim@epita.fr>
7521
7522 * src/closure.c (ruleset): Be a bitset.
7523 (rulesetsize): Remove.
7524
7086e707
AD
75252002-03-04 Akim Demaille <akim@epita.fr>
7526
7527 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
7528 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
7529 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
7530 * src/closure.c (fderives): Be an array of bitsets.
7531
98254360
RA
75322002-02-28 Robert Anisko <robert@lrde.epita.fr>
7533
7534 * data/bison.c++: Merge the two generated headers. Insert a copyright
7535 notice in each output file.
7536
a75c057f
AD
75372002-02-28 Akim Demaille <akim@epita.fr>
7538
7539 * data/bison.c++: Copy the prologue of bison.simple to fetch
7540 useful M4 definitions, such as b4_header_guard.
7541
06b00abc
AD
75422002-02-25 Akim Demaille <akim@epita.fr>
7543
7544 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
7545 translator friendly scheme for the bgr
7546 copyright notice.
06b00abc 7547
70e7d534
AD
75482002-02-25 Akim Demaille <akim@epita.fr>
7549
7550 * src/output.c (header_output): Remove, now handled completely via
7551 M4.
7552
abe017f6
AD
75532002-02-25 Akim Demaille <akim@epita.fr>
7554
7555 * m4/m4.m4: New, from CVS Autoconf.
7556 * configure.in: Invoke it.
7557 * src/output.c (output_skeleton): Use its result instead of the
7558 hard coded name.
7559
381fb12e
AD
75602002-02-25 Akim Demaille <akim@epita.fr>
7561
7562 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
7563 Fileutils 4.1.5.
7564 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
7565 * src/output.c (output_skeleton): Use mkstemp to create a real
7566 temporary file.
7567 Move the filling of `skeleton' and its muscle to...
7568 (prepare): here.
7569 (output): Move the definition of the prologue muscle to...
7570 (prepare): here.
7571 * src/system.h (DEFAULT_TMPDIR): New.
7572
6f38107f
PE
75732002-02-14 Paul Eggert <eggert@twinsun.com>
7574
7575 Remove the support for C++ namespace cleanliness; it was
7576 causing more problems than it was curing, since it didn't work
7577 properly on some nonstandard C++ compilers. This can wait
7578 for a proper C++ parser.
7579
7580 * NEWS: Document this.
7581 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
7582 of C++, as it's treated like C now.
7583 * src/bison.simple (YYSTD): Remove.
7584 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
7585 Treat C++ just like Standard C instead of trying to support
7586 namespace cleanliness.
7587
80cce3da
AD
75882002-02-14 Akim Demaille <akim@epita.fr>
7589
7590 * tests/regression.at (else): Adjust to Andreas' change.
7591
842e8679
AD
75922002-02-14 Akim Demaille <akim@epita.fr>
7593
7594 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
7595
4bda3f10
AD
75962002-02-13 Andreas Schwab <schwab@suse.de>
7597
7598 * src/output.c (output_rule_data): Don't output NULL, it might
7599 not be defined yet.
7600
4162fa07 76012002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 7602
4162fa07
RA
7603 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
7604 (Copyright notice): Update.
b418ecd8 7605
bd16a5dc
AD
76062002-02-11 Akim Demaille <akim@epita.fr>
7607
7608 * tests/regression.at (%nonassoc and eof): Don't include
7609 nonportable headers.
7610
8d69a1a3
RA
76112002-02-08 Robert Anisko <robert@lrde.epita.fr>
7612
7613 * data/bison.c++: Correct error recovery. Make the user able to
7614 initialize the starting location.
7615
9b2d0677
AD
76162002-02-07 Akim Demaille <akim@epita.fr>
7617
7618 * tests/input.at: New.
7619
69e2658b
RA
76202002-02-07 Robert Anisko <robert@lrde.epita.fr>
7621
7622 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 7623 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
7624 directives around tables only needed for debugging.
7625
4aacc3a7
RA
76262002-02-07 Robert Anisko <robert@lrde.epita.fr>
7627
7628 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
7629 C++ parsers.
7630 (yy::b4_name::parse): Use print_.
7631
762a801e
RA
76322002-02-07 Robert Anisko <robert@lrde.epita.fr>
7633
7634 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
7635
4bb2bc3f
RA
76362002-02-07 Robert Anisko <robert@lrde.epita.fr>
7637
7638 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
7639 C++ parsers.
7640 (yy::b4_name::parse): Build verbose error messages, and use error_.
7641
6b45a3ca
RA
76422002-02-06 Robert Anisko <robert@lrde.epita.fr>
7643
7644 * data/bison.c++: Fix m4 quoting in comments.
7645
50997c6e
RA
76462002-02-06 Robert Anisko <robert@lrde.epita.fr>
7647
7648 * data/bison.c++: Adjust the parser code. Fix some muscles that were
7649 not expanded by m4.
7650
3f3eed27
AD
76512002-02-05 Akim Demaille <akim@epita.fr>
7652
7653 * data/bison.c++: Adjust to the M4 back end.
7654 More is certainly needed.
7655
be2a1a68
AD
76562002-02-05 Akim Demaille <akim@epita.fr>
7657
7658 Give a try to M4 as a back end.
7659
7660 * lib/readpipe.c: New, from wdiff.
7661 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
7662 BISON_HAIRY.
7663 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
7664 specific values. Now it is m4 that performs the lookup.
7665 * src/parse-skel.y: Remove.
7666 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
7667 * src/output.c (actions_output, guards_output)
7668 (token_definitions_output): No longer keeps track of the output
7669 line number, hence remove the second argument.
7670 (guards_output): Check against the guard member of a rule, not the
7671 action member.
7672 Adjust callers.
7673 (output_skeleton): Don't look for the skeleton location, let m4 do
7674 that.
7675 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
7676 file will be used.
7677 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
7678 (prepare): Given that for the time being changesyntax is not
7679 usable in M4, rename the muscles using `-' to `_'.
7680 Define `defines_flag', `output_parser_name' and `output_header_name'.
7681 * src/output.h (actions_output, guards_output)
7682 (token_definitions_output): Adjust prototypes.
7683 * src/scan-skel.l: Instead of scanning the skeletons, it now
7684 processes the output of m4: `__oline__' and `#output'.
7685 * data/bison.simple: Adjust to be used by M4(sugar).
7686 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
7687 to date.
7688 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
7689 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
7690 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
7691 shamelessly stolen from CVS Autoconf.
7692
beda758b
AD
76932002-02-05 Akim Demaille <akim@epita.fr>
7694
7695 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
7696 * configure.in: Check for the declarations of free and malloc.
7697 * src/muscle_tab.c: Adjust.
7698
5ece6d43
AD
76992002-02-05 Akim Demaille <akim@epita.fr>
7700
7701 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
7702 which have no values.
7703
5bb18f9a
AD
77042002-02-05 Akim Demaille <akim@epita.fr>
7705
7706 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
7707 * data/: here.
7708
894dd62e
PE
77092002-01-29 Paul Eggert <eggert@twinsun.com>
7710
7711 * src/bison.simple (YYSIZE_T): Do not define merely because
7712 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
7713 On some platforms, <alloca.h> does not declare YYSTD (size_t).
7714
82841af7
AD
77152002-01-27 Akim Demaille <akim@epita.fr>
7716
7717 Fix `%nonassoc and eof'.
7718
7719 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
7720 which were not properly copied! Replace
7721 memcpy (res->errs, src->errs, src->nerrs);
7722 with
7723 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
7724 !!!
7725 * tests/regression.at (%nonassoc and eof): Adjust to newest
7726 Autotest: `.' is not in the PATH.
7727
318b76e9
AD
77282002-01-27 Akim Demaille <akim@epita.fr>
7729
7730 * tests/sets.at (AT_EXTRACT_SETS): New.
7731 (Nullable): Use it.
7732 (Firsts): New.
7733
30d2f3d5
AD
77342002-01-26 Akim Demaille <akim@epita.fr>
7735
7736 * tests/actions.at, tests/calc.at, tests/headers.at,
7737 * tests/torture.at: Adjust to the newest Autotest which no longer
7738 forces `.' in the PATH.
7739
30f8c395
AD
77402002-01-25 Akim Demaille <akim@epita.fr>
7741
7742 * tests/regression.at (%nonassoc and eof): New.
7743 Suggested by Robert Anisko.
7744
29ae55f1
AD
77452002-01-24 Akim Demaille <akim@epita.fr>
7746
7747 Bison dumps core when trying to complain about broken input files.
7748 Reported by Cris van Pelt.
7749
7750 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
7751 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
7752 into...
7753 (Invalid inputs): Strengthen: exercise parse_percent_token.
7754
2b548aa6
RA
77552002-01-24 Robert Anisko <robert.anisko@epita.fr>
7756
7757 * src/Makefile.am: Add bison.c++.
7758 * src/bison.c++: New skeleton.
7759
bb0146c2
AD
77602002-01-21 Paolo Bonzini <bonzini@gnu.org>
7761
7762 * po/it.po: New.
7763
bec30531
AD
77642002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
7765
7766 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
7767
fc6edc45
MA
77682002-01-20 Marc Autret <marc@gnu.org>
7769
7770 * src/files.c (compute_output_file_names): Fix
7771
5e5d5415
MA
77722002-01-20 Marc Autret <marc@gnu.org>
7773
7774 * tests/output.at: New test.
7775 * src/files.c (compute_base_names): Don't map extensions when
7776 the YACC flag is set, use defaults.
7777 Reported by Evgeny Stambulchik.
7778
44ea3fbd
MA
77792002-01-20 Marc Autret <marc@gnu.org>
7780
bb0146c2 7781 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
7782 compilers as well (i.e. the vendor C compiler).
7783 Suggested by Albert Chin-A-Young.
7784
338963d1
TVH
77852002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
7786
7787 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
7788 canonical definition.
7789 * src/system.h: Use the canonical definition for PARAMS (avoids
7790 a conflict with the macro from lib/hash.h).
7791
c57b2479
AD
77922002-01-11 Akim Demaille <akim@epita.fr>
7793
7794 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 7795 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 7796
b85810ae
AD
77972002-01-09 Akim Demaille <akim@epita.fr>
7798
7799 * src/files.c, src/files.h (output_infix): New.
7800 (tab_extension): Remove.
7801 (compute_base_names): Compute the former, drop the latter.
7802 * src/output.c (prepare): Insert the muscles `output-infix', and
7803 `output-suffix'.
7804 * src/parse-skel.y (string, string.1): New.
7805 (section.header): Use it.
7806 (section.yacc): Remove.
7807 (prefix): Remove too.
7808 * src/scan-skel.l: Adjust.
7809 * src/bison.simple, src/bison.hairy: Adjust.
7810
cae60122
AD
78112002-01-09 Akim Demaille <akim@epita.fr>
7812
7813 * configure.in (WERROR_CFLAGS): Compute it.
7814 * src/Makefile.am (CFLAGS): Pass it.
7815 * tests/atlocal.in (CFLAGS): Idem.
7816 * src/files.c: Fix a few warnings.
7817 (get_extension_index): Remove, unused.
7818
ae404801
AD
78192002-01-08 Akim Demaille <akim@epita.fr>
7820
7821 * src/getargs.c (AS_FILE_NAME): New.
7822 (getargs): Use it to convert DOSish file names.
7823 * src/files.c (base_name): Rename as full_base_name to avoid
7824 clashes with `base_name ()'.
7825 (filename_split): New.
7826 (compute_base_names): N-th rewrite, using filename_split.
7827
22312b71
AD
78282002-01-08 Akim Demaille <akim@epita.fr>
7829
7830 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
7831 New, stolen from the Fileutils 4.1.
7832 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7833 * configure.in: Check for the presence of memrchr, and of its
7834 prototype.
7835
a67cef01
TVH
78362002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
7837
7838 * lib/hash.h (__P): Added definition for this macro.
7839 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
7840 BUILT_SOURCES, to ensure they are generated first.
7841 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
7842 %error-verbose to allow bootstrapping with bison 1.30x.
7843
2b25d624
AD
78442002-01-06 Akim Demaille <akim@epita.fr>
7845
7846 * src/reader.c (parse_braces): Don't fetch the next char, the
7847 convention is to fetch on entry.
7848 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
7849 'switch' without a following semicolon.
7850 * tests/regression.at (braces parsing): New.
7851
3460813b
AD
78522002-01-06 Akim Demaille <akim@epita.fr>
7853
7854 Bison is dead wrong in its RR conflict reports.
7855
7856 * tests/torture.at (GNU Cim Grammar): New.
7857 * src/conflicts.c (count_rr_conflicts): Fix.
7858
73784c64
AD
78592002-01-06 Akim Demaille <akim@epita.fr>
7860
7861 Creating package.m4 from configure.ac causes too many problems.
7862
7863 * tests/Makefile.am (package.m4): Create it by hand,
7864 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
7865
25d81090
AD
78662002-01-06 Akim Demaille <akim@epita.fr>
7867
7868 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
7869 skeleton.h.
7870
a9b8959e
PE
78712002-01-04 Paul Eggert <eggert@twinsun.com>
7872
7873 * doc/bison.texinfo (Debugging):
7874 Remove YYSTDERR; it's no longer defined or used.
7875 Also, s/cstdio.h/cstdio/.
7876
25d81090
AD
78772002-01-03 Akim Demaille <akim@epita.fr>
7878
7879 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
7880
1109455c
AD
78812002-01-03 Akim Demaille <akim@epita.fr>
7882
7883 * src/parse-skel.y (process_skeleton): Don't bind the parser's
7884 tracing code to --trace, wait for a better --trace option, with
7885 args.
7886
7ea5e977
AD
78872002-01-03 Akim Demaille <akim@epita.fr>
7888
7889 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
7890 The ISO C++ standard is extremely clear about it: stderr is
7891 considered a macro, not a regular symbol (see table 94 `Header
7892 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
7893 Therefore std:: does not apply to it. It still does with fprintf.
7894 Also, s/cstdio.h/cstdio/.
7895
fab5b110
AD
78962002-01-03 Akim Demaille <akim@epita.fr>
7897
7898 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
7899 for non system headers.
7900
aed7fd9b
AD
79012002-01-02 Akim Demaille <akim@epita.fr>
7902
7903 Equip the skeleton chain with location tracking, runtime trace,
7904 pure parser and scanner.
7905
7906 * src/parse-skel.y: Request a pure parser, locations, and prefix
7907 renaming.
7908 (%union): Having several members with the same type does not help
7909 type mismatches, simplify.
7910 (YYPRINT, yyprint): New.
7911 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
7912 (skel_error): this.
7913 Handle locations.
7914 * src/scan-skel.l: Adjust to these changes.
7915 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
7916 (LOCATION_PRINT, skel_control_t): New.
7917
24fad99e
AD
79182001-12-30 Akim Demaille <akim@epita.fr>
7919
7920 * src/parse-skel.y: Get rid of the shift/reduce conflict:
7921 replace `gb' with BLANKS.
7922 * src/scan-skel.l: Adjust.
7923
a4b36db4
AD
79242001-12-30 Akim Demaille <akim@epita.fr>
7925
7926 * src/system.h: We don't need nor want bcopy.
7927 Throw away MS-DOS crap: we don't need getpid.
7928 * configure.in: We don't need strndup. It was even causing
7929 problems: because Flex includes the headers *before* us,
7930 _GNU_SOURCE is not defined by config.h, and therefore strndup was
7931 not visible.
7932 * lib/xstrndup.c: New.
7933 * src/scan-skel.l: Use it.
7934 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
7935 * src/parse-skel.y: Use %directives instead of #defines.
7936
1239777d
AD
79372001-12-30 Akim Demaille <akim@epita.fr>
7938
7939 * src/skeleton.h: New.
7940 * src/output.c (output_parser, output_master_parser): Remove, dead
7941 code.
7942 * src/output.h (get_lines_number, actions_output, guards_output)
7943 (token_definitions_output): Prototype them.
7944 * src/parse-skel.y: Add the license notice.
7945 Include output.h and skeleton.h.
7946 (process_skeleton): Returns void, and takes a single parameter.
7947 * src/scan-skel.l: Add the license notice.
7948 Include skeleton.h.
7949 Don't use %option yylineno: it seems that then Flex imagines
7950 REJECT has been used, and therefore it won't reallocate its
7951 buffers (which makes no other sense to me than a bug). It results
7952 in warnings for `unused: yy_flex_realloc'.
7953
9b3add5b
RA
79542001-12-30 Robert Anisko <robert.anisko@epita.fr>
7955
7956 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7957 (MUSCLE_INSERT_PREFIX): ...to there.
7958 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7959 (MUSCLE_INSERT_PREFIX): Move from here...
7960
7961 * src/bison.hairy: Add a section directive. Put braces around muscle
7962 names. This parser skeleton is still broken, but Bison should not
7963 choke on a bad muscle 'syntax'.
7964 * src/bison.simple: Add a section directive. Put braces around muscle
7965 names.
7966
7967 * src/files.h (strsuffix, stringappend): Add declarations.
7968 (tab_extension): Add declaration.
7969 (short_base_name): Add declaration.
7970
7971 * src/files.c (strsuffix, stringappend): No longer static. These
7972 functions are used in the skeleton parser.
7973 (tab_extension): New.
7974 (compute_base_names): Use the computations done in this function
fab5b110 7975 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
7976 names.
7977 (short_base_name): No longer static.
7978
7979 * src/output.c (output_skeleton): New.
7980 (output): Disable call to output_master_parser, and give a try to
7981 a new skeleton handling system.
7982 (guards_output, actions_output): No longer static.
7983 (token_definitions_output, get_lines_number): No longer static.
7984
7985 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
7986
fab5b110 7987 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
7988 parse-skel.y.
7989
7990 * src/parse-skel.y: New file.
7991 * src/scan-skel.l: New file.
7992
b5b61c61
AD
79932001-12-29 Akim Demaille <akim@epita.fr>
7994
7995 %name-prefix is broken.
7996
7997 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
7998 Adjust all dependencies.
7999 * tests/headers.at (export YYLTYPE): Strengthen this test: use
8000 %name-prefix.
8001
8002 Renaming yylval but not yylloc is not consistent. Now we do.
8003
8004 * src/bison.simple: Prefix yylloc if used.
8005 * doc/bison.texinfo (Decl Summary): Document that.
8006
8c9a50be
AD
80072001-12-29 Akim Demaille <akim@epita.fr>
8008
8009 * doc/bison.texinfo: Promote `%long-directive' over
8010 `%long_directive'.
8011 Remove all references to fixed-output-files, yacc is enough.
8012
d99361e6
AD
80132001-12-29 Akim Demaille <akim@epita.fr>
8014
8015 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
8016 user prologue. These are defaults.
8017 * tests/actions.at (Mid-rule actions): Make sure the user can
8018 define YYDEBUG and YYERROR_VERBOSE.
8019
b9cecb91
AD
80202001-12-29 Akim Demaille <akim@epita.fr>
8021
8022 * src/output.c (header_output): Don't forget to export YYLTYPE and
8023 yylloc.
8024 * tests/headers.at (export YYLTYPE): New, make sure it does.
8025 * tests/regression.at (%union and --defines, Invalid CPP headers):
8026 Move to...
8027 * tests/headers.at: here.
8028
aea13e97
AD
80292001-12-29 Akim Demaille <akim@epita.fr>
8030
8031 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
8032
931394cb
AD
80332001-12-29 Akim Demaille <akim@epita.fr>
8034
8035 * tests/actions.at (Mid-rule actions): Output on a single line
8036 instead of several.
8037
704a47c4
AD
80382001-12-29 Akim Demaille <akim@epita.fr>
8039
8040 * doc/bison.texinfo: Formatting changes.
8041
091e20bb
AD
80422001-12-29 Akim Demaille <akim@epita.fr>
8043
8044 Don't store the token defs in a muscle, just be ready to output it
8045 on command. Now possible via `symbols'. Fixes a memory leak.
8046
8047 * src/output.c (token_definitions_output): New.
8048 (output_parser, header_output): Use it.
8049 * src/reader.c (symbols_save): Remove.
8050
cce71710
AD
80512001-12-29 Akim Demaille <akim@epita.fr>
8052
8053 * src/bison.simple: Do not provide a default for YYSTYPE and
8054 YYLTYPE before the user's prologue. Otherwise it's hardly... a
8055 default.
8056
82c035a8
AD
80572001-12-29 Akim Demaille <akim@epita.fr>
8058
8059 Mid-rule actions are simply... ignored!
8060
8061 * src/reader.c (readgram): Be sure to attach mid-rule actions to
8062 the empty-rule associated to the dummy symbol, not to the host
8063 rule.
8064 * tests/actions.at (Mid-rule actions): New.
8065
8419d367
AD
80662001-12-29 Akim Demaille <akim@epita.fr>
8067
8068 Memory leak.
8069
8070 * src/reader.c (reader): Free grammar.
8071
375d5806
AD
80722001-12-29 Akim Demaille <akim@epita.fr>
8073
8074 Memory leak.
8075
8076 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
8077 since it allocates it for each state, although only one is needed.
8078 (allocate_storage): Do it here.
8079
f51cb8ff
AD
80802001-12-29 Akim Demaille <akim@epita.fr>
8081
8082 * src/options.h, src/options.c (create_long_option_table): Rename
8083 as...
8084 (long_option_table_new): this, with a clearer prototype.
8085 (percent_table): Remove, unused,
8086 * src/getargs.c (getargs): Adjust.
8087
29e88316
AD
80882001-12-29 Akim Demaille <akim@epita.fr>
8089
8090 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
8091 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
8092 as states.
8093
b9f71f19
AD
80942001-12-29 Akim Demaille <akim@epita.fr>
8095
8096 * src/lalr.c (build_relations): Rename `states' as `states1'.
8097 Sorry, I don't understand exactly what it is, no better name...
8098
1a2b5d37
AD
80992001-12-29 Akim Demaille <akim@epita.fr>
8100
8101 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
8102 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
8103 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
8104 as rules.
8105
1cca533e
AD
81062001-12-29 Akim Demaille <akim@epita.fr>
8107
8108 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
8109 ago.
8110
c03ae966
AD
81112001-12-29 Akim Demaille <akim@epita.fr>
8112
8113 * src/reader.c, src/reader.h (user_toknums): Remove.
8114 Adjust all users to use symbols[i]->user_token_number.
8115
5a670b1e
AD
81162001-12-29 Akim Demaille <akim@epita.fr>
8117
8118 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
8119 Adjust all users to use symbols[i]->prec or ->assoc.
8120
ad949da9
AD
81212001-12-29 Akim Demaille <akim@epita.fr>
8122
8123 * src/reader.c, src/reader.h (tags): Remove.
8124 Adjust all users to use symbols[i]->tag.
8125
0e78e603
AD
81262001-12-29 Akim Demaille <akim@epita.fr>
8127
8128 * src/gram.h, src/gram.c (symbols): New, similar to state_table
8129 and rule_table.
8130 * src/reader.c (packsymbols): Fill this table.
8131 Drop sprec.
8132 * src/conflicts.c (resolve_sr_conflict): Adjust.
8133 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
8134 single table.
8135 Use symbols[i]->tag instead of tags[i].
8136
213e640e
AD
81372001-12-29 Akim Demaille <akim@epita.fr>
8138
8139 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
8140 In addition, put a comment in there, to replace...
8141 * tests/regression.at (%union and C comments): Remove.
8142
e7b8bef1
AD
81432001-12-29 Akim Demaille <akim@epita.fr>
8144
8145 * tests/regression.at (Web2c Actions): Blindly move the actual
8146 output as expected output. The contents *seem* right to me, but I
8147 can't pretend reading perfectly parser tables... Nonetheless, all
8148 the other tests pass correctly, the table look OK, even though the
8149 presence of `$axiom' is to be noted: AFAICS it is useless (but
8150 harmless).
8151
b68e7744
AD
81522001-12-29 Akim Demaille <akim@epita.fr>
8153
8154 * src/reader.c (readgram): Don't add the rule 0 if there were no
8155 rules read. In other words, add it _after_ having performed
8156 grammar sanity checks.
8157 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
8158
78d5bae9
AD
81592001-12-29 Akim Demaille <akim@epita.fr>
8160
8161 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
8162 visible, and some states have now a different number.
8163
ff442794
AD
81642001-12-29 Akim Demaille <akim@epita.fr>
8165
8166 * src/reader.c (readgram): Bind the initial rule's lineno to that
8167 of the first rule.
8168 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
8169 (Solved SR Conflicts): Adjust rule 0's line number.
8170
610ab194
AD
81712001-12-29 Akim Demaille <akim@epita.fr>
8172
8173 Fix the `GAWK Grammar' failure.
8174
8175 * src/LR0.c (final_state): Initialize to -1 so that we do compute
8176 the reductions of the first state which was mistakenly confused
8177 with the final state because precisely final_state was initialized
8178 to 0.
8179 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
8180 now noticed by Bison.
8181 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
8182 have a reduction on $default.
8183
29d29c8f
AD
81842001-12-29 Akim Demaille <akim@epita.fr>
8185
8186 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
8187 rule line numbers.
8188 * src/closure.c (print_closure): Likewise.
8189 * src/derives.c (print_derives): Likewise.
8190 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
8191 now.
8192
7c6b64d0
AD
81932001-12-29 Akim Demaille <akim@epita.fr>
8194
8195 * src/lalr.c (lookaheads_print): New.
8196 (lalr): Call it when --trace-flag.
8197 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
8198 are dumped.
8199
3d4daee3
AD
82002001-12-29 Akim Demaille <akim@epita.fr>
8201
8202 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
8203 when walking through ritem, even via rule->rhs.
8204 * src/reduce.c (dump_grammar, useful_production, reduce_output)
8205 (useful_production, useless_nonterminals): Likewise.
8206 (reduce_grammar_tables): Likewise, plus update nritems.
8207 * src/nullable.c (set_nullable): Likewise.
8208 * src/lalr.c (build_relations): Likewise.
8209 * tests/sets.at (Nullable): Adjust.
8210 Fortunately, now, the $axiom is no longer nullable.
8211
9e7f6bbd
AD
82122001-12-29 Akim Demaille <akim@epita.fr>
8213
8214 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
8215 the 0-sentinel.
8216 * src/gram.c (ritem_longest_rhs): Likewise.
8217 * src/reduce.c (nonterminals_reduce): Likewise.
8218 * src/print_graph.c (print_graph): Likewise.
8219 * src/output.c (output_rule_data): Likewise.
8220 * src/nullable.c (set_nullable): Likewise.
8221
255ef638
AD
82222001-12-29 Akim Demaille <akim@epita.fr>
8223
8224 * src/output.c: Comment changes.
8225
0d8a7363
AD
82262001-12-27 Paul Eggert <eggert@twinsun.com>
8227
8228 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
8229 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
8230 Sparc, as they were causing more porting problems than the
8231 (minor) performance improvement was worth.
8232
8233 Also, catch up with 1.31's YYSTD.
8234
3db472b9
AD
82352001-12-27 Akim Demaille <akim@epita.fr>
8236
8237 * src/output.c (output_gram): Rely on nritems, not the
8238 0-sentinel. See below.
8239 Use -1 as separator, not 0.
8240 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
8241 Rely on -1 as separator in yyrhs, instead of 0.
8242 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
8243 twice `Now at end of input', therefore there are two lines less to
8244 expect.
8245
b365aa05
AD
82462001-12-27 Akim Demaille <akim@epita.fr>
8247
8248 * tests/regression.at (Unresolved SR Conflicts):
8249 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
8250 below.
8251
30171f79
AD
82522001-12-27 Akim Demaille <akim@epita.fr>
8253
8254 * src/LR0.c (new_state): Recognize the final state by the fact it
8255 is reached by eoftoken.
8256 (insert_start_shifting_state, insert_eof_shifting_state)
8257 (insert_accepting_state, augment_automaton): Remove, since now
8258 these states are automatically computed from the initial state.
8259 (generate_states): Adjust.
8260 * src/print.c: When reporting a rule number to the user, substract
8261 1, so that the axiom rule is rule 0, and the first user rule is 1.
8262 * src/reduce.c: Likewise.
8263 * src/print_graph.c (print_core): For the time being, just as for
8264 the report, depend upon --trace-flags to dump the full set of
8265 items.
8266 * src/reader.c (readgram): Once the grammar read, insert the rule
8267 0: `$axiom: START-SYMBOL $'.
8268 * tests/set.at: Adjust: rule 0 is now displayed, and since the
8269 number of the states has changed (the final state is no longer
8270 necessarily the last), catch up.
8271
75142d45
AD
82722001-12-27 Akim Demaille <akim@epita.fr>
8273
8274 Try to make the use of the eoftoken valid. Given that its value
8275 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
8276 is used instead of > 0 where appropriate, (ii), depend upon nritems
8277 instead of the 0-sentinel.
8278
8279 * src/gram.h, src/gram.c (nritems): New.
8280 Expected to be duplication of nitems, but for the time being...
8281 * src/reader.c (packgram): Assert nritems and nitems are equal.
8282 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
8283 * src/closure.c (print_closure, print_fderives): Likewise.
8284 * src/gram.c (ritem_print): Likewise.
8285 * src/print.c (print_core, print_grammar): Likewise.
8286 * src/print_graph.c: Likewise.
8287
b7c49edf
AD
82882001-12-27 Akim Demaille <akim@epita.fr>
8289
8290 * src/main.c (main): If there are complains after grammar
8291 reductions, then output the report anyway if requested, then die.
8292 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
8293 * src/reader.c (eoftoken): New.
8294 (parse_token_decl): If the token being defined has value `0', it
8295 is the eoftoken.
8296 (packsymbols): No longer hack `tags' to insert `$' by hand.
8297 Be sure to preserve the value of the eoftoken.
8298 (reader): Make sure eoftoken is defined.
8299 Initialize nsyms to 0: now eoftoken is created just like the others.
8300 * src/print.c (print_grammar): Don't special case the eof token.
8301 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
8302 lie anyway, albeit pleasant.
8303 * tests/calc.at: Exercise error messages with eoftoken.
8304 Change the grammar so that empty input is invalid.
8305 Adjust expectations.
8306 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
8307
ec2da99f
AD
83082001-12-27 Akim Demaille <akim@epita.fr>
8309
8310 * configure.in: Check the protos of strchr ans strspn.
8311 Replace strchr if needed.
8312 * src/system.h: Provide the protos of strchr, strspn and memchr if
8313 missing.
8314 * lib/strchr.c: New.
8315 * src/reader.c (symbols_save): Use strchr.
8316
8adfa272
AD
83172001-12-27 Akim Demaille <akim@epita.fr>
8318
8319 * src/print.c, src/print_graph.c (escape): New.
8320 Use it to quote the TAGS outputs.
8321 * src/print_graph.c (print_state): Now errors are in red, and
8322 reductions in green.
8323 Prefer high to wide: output the state number on a line of its own.
8324
80dac38c
AD
83252001-12-27 Akim Demaille <akim@epita.fr>
8326
8327 * src/state.h, src/state.c (reductions_new): New.
8328 * src/LR0.c (set_state_table): Let all the states have a
8329 `reductions', even if reduced to 0.
8330 (save_reductions): Adjust.
8331 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
8332 * src/print.c (print_reductions, print_actions): Adjust.
8333 * src/output.c (action_row): Adjust.
8334
2cec70b9
AD
83352001-12-27 Akim Demaille <akim@epita.fr>
8336
8337 * src/state.h, src/state.c (errs_new, errs_dup): New.
8338 * src/LR0.c (set_state_table): Let all the states have an errs,
8339 even if reduced to 0.
8340 * src/print.c (print_errs, print_reductions): Adjust.
8341 * src/output.c (output_actions, action_row): Adjust.
8342 * src/conflicts.c (resolve_sr_conflict): Adjust.
8343
13ca549a
AD
83442001-12-27 Akim Demaille <akim@epita.fr>
8345
8346 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
8347
5092aba5
AD
83482001-12-27 Akim Demaille <akim@epita.fr>
8349
8350 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
8351 * src/print.c: here.
8352 (lookaheadset, shiftset): New, used as additional storage by
8353 print_reductions.
8354 (print_results): Adjust.
8355 (print_shifts, print_gotos, print_errs): New, extracted from...
8356 (print_actions): here.
8357 * src/print_graph.c (print_actions): Remove dead code.
8358
11e2beca
AD
83592001-12-27 Akim Demaille <akim@epita.fr>
8360
8361 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
8362 `$n' and `@n'.
8363
dac3c910
AD
83642001-12-27 Akim Demaille <akim@epita.fr>
8365
8366 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
8367 (build_relations): Adjust.
8368
d0b0fefa
AD
83692001-12-27 Akim Demaille <akim@epita.fr>
8370
8371 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
8372 duplication.
8373
adc8c848
AD
83742001-12-27 Akim Demaille <akim@epita.fr>
8375
8376 * src/reader.c (packgram): Catch nitems overflows.
8377
14d293ac
AD
83782001-12-27 Akim Demaille <akim@epita.fr>
8379
8380 * src/files.c, src/files.h (guard_obstack): Remove.
8381 * src/output.c (output): Adjust.
8382 * src/reader.c (parse_braces): New, factoring...
8383 (copy_action, copy_guard): these two which are renamed as...
8384 (parse_action, parse_guard): these.
8385 As a voluntary consequence, using braces around guards is now
8386 mandatory.
8387
f499b062
AD
83882001-12-27 Akim Demaille <akim@epita.fr>
8389
8390 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
8391 * src/reader.c (symbol_list): `guard' and `guard_line' are new
8392 members.
8393 (symbol_list_new): Adjust.
8394 (copy_action): action_line is the first line, not the last.
8395 (copy_guard): Just as for actions, store the `action' only, not
8396 the switch/case/break flesh.
8397 Don't parse the user action that might follow the guard, let...
8398 (readgram): do it, i.e., now, there can be an action after a
8399 guard.
8400 In other words the guard is just explicitly optional.
8401 (packgram): Adjust.
8402 * src/output.c (guards_output): New.
8403 (output_parser): Call it when needed.
8404 (output): Also free the guard and attrs obstacks.
8405 * src/files.c, src/files.h (obstack_save): Remove.
8406 (output_files): Remove.
8407 As a result, if one needs the former `.act' file, using an
8408 appropriate skeleton which requires actions and guards is now
8409 required.
8410 * src/main.c (main): Adjust.
8411 * tests/semantic.at: New.
8412 * tests/regression.at: Use `input.y' as input file name.
8413 Avoid 8+3 problems by requiring input.c when the test needs the
8414 parser.
8415
d945f5cd
AD
84162001-12-27 Akim Demaille <akim@epita.fr>
8417
8418 * src/reader.c (symbol_list_new): Be sure to initialize all the
8419 fields.
8420
d200e455
AD
84212001-12-27 Akim Demaille <akim@epita.fr>
8422
8423 All the hacks using a final pseudo state are now useless.
8424
8425 * src/LR0.c (set_state_table): state_table holds exactly nstates.
8426 * src/lalr.c (nLA): New.
8427 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
8428 instead of lookaheadsp from the pseudo state (nstate + 1).
8429
f9507c28
AD
84302001-12-27 Akim Demaille <akim@epita.fr>
8431
8432 * src/output.c (action_row, token_actions): Use a state_t instead
8433 of a integer, and nlookaheads instead of the following state's
8434 lookaheadsp.
8435
065fbd27
AD
84362001-12-27 Akim Demaille <akim@epita.fr>
8437
8438 * src/conflicts.c (log_resolution, flush_shift)
8439 (resolve_sr_conflict, set_conflicts, solve_conflicts)
8440 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
8441 (conflicts_print, print_reductions): Use a state_t instead of an
8442 integer when referring to a state.
8443 As much as possible, depend upon nlookaheads, instead of the
8444 `lookaheadsp' member of the following state (since lookaheads of
8445 successive states are successive, the difference between state n + 1
8446 and n served as the number of lookaheads for state n).
8447 * src/lalr.c (add_lookback_edge): Likewise.
8448 * src/print.c (print_core, print_actions, print_state)
8449 (print_results): Likewise.
8450 * src/print_graph.c (print_core, print_actions, print_state)
8451 (print_graph): Likewise.
8452 * src/conflicts.h: Adjust.
8453
1b177bd7
AD
84542001-12-27 Akim Demaille <akim@epita.fr>
8455
8456 * src/bison.hairy: Formatting/comment changes.
8457 ANSIfy.
8458 Remove `register' indications.
8459 Add plenty of `static'.
8460
7742ddeb
AD
84612001-12-27 Akim Demaille <akim@epita.fr>
8462
8463 * src/output.c (prepare): Drop the muscle `ntbase' which
8464 duplicates ntokens.
8465 * src/bison.simple: Formatting/comment changes.
8466 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
8467 is an undocumented synonym.
8468
1fa14068
AD
84692001-12-22 Akim Demaille <akim@epita.fr>
8470
8471 * src/output.c (output_table_data): Change the prototype to use
8472 `int' for array ranges: some invocations do pass an int, not a
8473 short.
8474 Reported by Wayne Green.
8475
b9752825
AD
84762001-12-22 Akim Demaille <akim@epita.fr>
8477
8478 Some actions of web2c.y are improperly triggered.
8479 Reported by Mike Castle.
8480
8481 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
8482 * tests/regression.at (Web2c): Rename as...
8483 (Web2c Report): this.
8484 (Web2c Actions): New.
8485
776209d6
AD
84862001-12-22 Akim Demaille <akim@epita.fr>
8487
8488 Reductions in web2c.y are improperly reported.
8489 Reported by Mike Castle.
8490
8491 * src/conflicts.c (print_reductions): Fix.
8492 * tests/regression.at (Web2c): New.
8493
275fc3ad
AD
84942001-12-18 Akim Demaille <akim@epita.fr>
8495
8496 Some host fail on `assert (!"foo")', which expands to
8497 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
8498 Reported by Nelson Beebee.
8499
8500 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
8501 `#define it_succeeded 0' and `assert (it_succeeded)'.
8502
897668ee
MA
85032001-12-17 Marc Autret <autret_m@epita.fr>
8504
8505 * src/bison.simple: Don't hard code the skeleton line and filename.
8506 * src/output.c (output_parser): Rename 'line' as 'output_line'.
8507 New line counter 'skeleton_line' (skeleton-line muscle).
8508
ab3399e0
PE
85092001-12-17 Paul Eggert <eggert@twinsun.com>
8510
8511 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
8512 YYDEBUG must be defined to a nonzero value.
8513
8514 * src/bison.simple (yytname): Do not assume that the user defines
8515 YYDEBUG to a properly parenthesized expression.
8516
3877f72b
AD
85172001-12-17 Akim Demaille <akim@epita.fr>
8518
8519 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
8520 nlookaheads is a new member.
8521 Adjust all users.
8522 * src/lalr.h (nlookaheads): Remove this orphan declaration.
8523 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
8524 state.
776209d6 8525
331dbc1b
AD
85262001-12-17 Akim Demaille <akim@epita.fr>
8527
8528 * src/files.h, src/files.c (open_files, close_files): Remove.
8529 * src/main.c (main): Don't open/close files, nor invoke lex_free,
8530 let...
8531 * src/reader.c (reader): Do it.
776209d6 8532
be750e4c
AD
85332001-12-17 Akim Demaille <akim@epita.fr>
8534
8535 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 8536
709ae8c6
AD
85372001-12-17 Akim Demaille <akim@epita.fr>
8538
8539 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
8540 (flush_reduce): New.
8541 (resolve_sr_conflict): Adjust.
776209d6 8542
f87685c3
AD
85432001-12-17 Akim Demaille <akim@epita.fr>
8544
8545 * src/output.c (output_obstack): Be static and rename as...
8546 (format_obstack): this, to avoid any confusion with files.c's
8547 output_obstack.
8548 * src/reader.h (muscle_obstack): Move to...
8549 * src/output.h: here, since it's defined in output.c.
8550
837491d8
AD
85512001-12-17 Akim Demaille <akim@epita.fr>
8552
8553 * src/output.c (action_row, save_column, default_goto)
8554 (sort_actions, matching_state, pack_vector): Better variable
8555 locality.
8556
796d61fb
AD
85572001-12-17 Akim Demaille <akim@epita.fr>
8558
8559 * src/output.c: Various formatting changes.
776209d6 8560
64d15509
AD
85612001-12-17 Akim Demaille <akim@epita.fr>
8562
8563 * src/files.c (output_files): Free the output_obstack.
8564 * src/main.c (main): Call print and print_graph conditionally.
8565 * src/print.c (print): Work unconditionally.
8566 * src/print_graph.c (print_graph): Work unconditionally.
8567 * src/conflicts.c (log_resolution): Output only if verbose_flag.
8568
fbc8ecb7
MA
85692001-12-16 Marc Autret <autret_m@epita.fr>
8570
8571 * src/output.c (actions_output): Fix. When we use %no-lines,
8572 there is one less line per action.
8573
f0440388
MA
85742001-12-16 Marc Autret <autret_m@epita.fr>
8575
8576 * src/bison.simple: Remove a useless #line directive.
8577 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
8578 * src/output.c (get_lines_number): New.
776209d6 8579 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
8580 output muscles.
8581 Fix line numbering.
8582 (actions_output): Computes the number of lines taken by actions.
8583 (output_master_parser): Insert new skeleton which is the name of
8584 the output parser file name.
8585
a79986b8
MA
85862001-12-15 Marc Autret <autret_m@epita.fr>
8587
8588 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
8589
4ec8e00f
MA
85902001-12-15 Marc Autret <autret_m@epita.fr>
8591
8592 * src/output.c (output_gram): Keep track of the hairy one.
8593
1a4648ff
AD
85942001-12-15 Akim Demaille <akim@epita.fr>
8595
8596 Make `make distcheck' work.
8597
8598 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
8599 system.h which uses libgettext.h.
8600
9c2c67e6
AD
86012001-12-15 Akim Demaille <akim@epita.fr>
8602
8603 * src/nullable.c (set_nullable): Useless rules must be skipped,
8604 otherwise, since we range over their symbols, we might look at a
8605 nonterminal which no longer ``exists'', i.e., it is not counted in
8606 `nvars', hence we overflow our arrays.
8607
93ede233
AD
86082001-12-15 Akim Demaille <akim@epita.fr>
8609
8610 The header can also be produced directly, without any obstack!
8611 Yahoo!
8612
8613 * src/files.c, src/files.h (defines_obstack): Remove.
8614 (compute_header_macro): Global.
8615 (defines_obstack_save): Remove.
8616 * src/reader.c (parse_union_decl): No longer output to
8617 defines_obstack: its content can be found in the `stype' muscle
8618 anyway.
8619 (output_token_translations): Merge into...
8620 (symbols_output): this.
8621 Rename as...
8622 (symbols_save): this.
8623 (reader): Adjust.
8624 * src/output.c (header_output): New.
8625 (output): Call it.
8626
2666f928
AD
86272001-12-15 Akim Demaille <akim@epita.fr>
8628
8629 * src/reader.c (parse_union_decl): Instead of handling two obstack
8630 simultaneously, use one to define the `stype' muscle, and use the
8631 value of the latter to fill defines_obstack.
8632 (copy_comment): Remove.
8633 (copy_comment2): Work for a single obstack.
8634 Rename as...
8635 (copy_comment): this.
8636
428046f8
AD
86372001-12-15 Akim Demaille <akim@epita.fr>
8638
8639 * src/lex.c, src/lex.h (xgetc): No longer static.
8640 * src/reader.c (parse_union_decl): Revamp.
8641
ea52d706
AD
86422001-12-15 Akim Demaille <akim@epita.fr>
8643
8644 Still making progress in separating Bison into (i) input, (ii)
8645 process, (iii) output: now we can directly output the parser file
8646 without using table_obstack at all.
8647
8648 * src/files.c, src/files.h (table_obstack): Bye bye.
8649 (parser_file_name): New.
8650 * src/files.c (compute_output_file_names): Compute it.
8651 * src/output.c (actions_output, output_parser)
8652 (output_master_parser): To a file instead of an obstack.
8653
3f96f4dc
AD
86542001-12-15 Akim Demaille <akim@epita.fr>
8655
8656 Attach actions to rules, instead of pre-outputting them to
8657 actions_obstack.
8658
8659 * src/gram.h (rule_t): action and action_line are new members.
8660 * src/reader.c (symbol_list): Likewise.
8661 (copy_action): Save the actions within the rule.
8662 (packgram): Save them in rule_table.
8663 * src/output.c (actions_output): New.
8664 (output_parser): Use it on `%%actions'.
8665 (output_rule_data): Don't free rule_table.
8666 (output): Do it.
8667 (prepare): Don't save the `action' muscle.
8668 * src/bison.simple: s/%%action/%%actions/.
8669
51576fb3
AD
86702001-12-15 Akim Demaille <akim@epita.fr>
8671
8672 * src/reader.c (copy_action): When --yacc, don't append a `;'
8673 to the user action: let it fail if lacking.
dee049eb 8674 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 8675
2648a72d
AD
86762001-12-14 Akim Demaille <akim@epita.fr>
8677
8678 * src/lex.c (literalchar): Simply return the char you decoded, non
8679 longer mess around with obstacks and int pointers.
8680 Adjust all callers.
8681
92790e5b
AD
86822001-12-14 Akim Demaille <akim@epita.fr>
8683
8684 * src/lex.c (literalchar): Don't escape the special characters,
8685 just decode them, and keep them as char (before, eol was output as
8686 the 2 char string `\n' etc.).
8687 * src/output.c (output_rule_data): Use quotearg to output the
8688 token strings.
8689
927c1557
PE
86902001-12-13 Paul Eggert <eggert@twinsun.com>
8691
8692 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
8693 Do not infringe on the global user namespace when using C++.
8694 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
8695 All uses of `fprintf' and `stderr' changed.
8696
8697 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
8698
ed8e1f68
AD
86992001-12-13 Akim Demaille <akim@epita.fr>
8700
8701 The computation of nullable is broken: it doesn't handle empty
8702 RHS's properly.
8703
8704 * tests/torture.at (GNU AWK Grammar): New.
8705 * tests/sets.at (Nullable): New.
8706 * src/nullable.c (set_nullable): Instead of blindly looping over
8707 `ritems', loop over the rules, and then over their rhs's.
8708
8709 Work around Autotest bugs.
8710
8711 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
8712 frame, because Autotest understand lines starting with a `+' as
8713 traces from the shell. Then, they are not processed properly.
8714 Admittedly an Autotest bug, but we don't have time to wait for
8715 Autotest to catch up.
8716 * tests/regression.at (Broken Closure): Adjust to the new table
8717 frames.
8718 Move to...
8719 * tests/sets.at: here.
8720
cb581495
AD
87212001-12-13 Akim Demaille <akim@epita.fr>
8722
8723 * src/closure.c (closure): Use nrules instead of playing tricks
8724 with BITS_PER_WORD.
8725
2e729273
AD
87262001-12-13 Akim Demaille <akim@epita.fr>
8727
8728 * src/print.c (print_actions): Output the handling of `$' as the
8729 traces do: shifting the token EOF. Before EOF was treated as a
8730 nonterminal.
8731 * tests/regression.at: Adjust some tests.
8732 * src/print_graph.c (print_core): Complete the set of items via
8733 closure. The next-to-final and final states are still unsatisfying,
8734 but that's to be addressed elsewhere.
8735 No longer output the rule numbers, but do output the state number.
8736 A single loop for the shifts + gotos is enough, but picked a
8737 distinct color for each.
8738 (print_graph): Initialize and finalize closure.
8739
107f7dfb
AD
87402001-12-13 Akim Demaille <akim@epita.fr>
8741
8742 * src/reader.c (readgram): Remove dead code, an strip useless
8743 braces.
8744 (get_type): Remove, unused.
8745
9b53a24f
AD
87462001-12-12 Akim Demaille <akim@epita.fr>
8747
8748 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
8749 on that of lib/error.c.
8750
dbfb6dcd
AD
87512001-12-12 Akim Demaille <akim@epita.fr>
8752
8753 Some hosts don't like `/' in includes.
8754
8755 * src/system.h: Include libgettext.h without qualifying the path.
8756 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
8757 $(top_srcdir).
8758
c25fb648
MA
87592001-12-11 Marc Autret <autret_m@epita.fr>
8760
8761 * src/output.c (output_parser): Remove useless muscle.
8762
710ddc4f
MA
87632001-12-11 Marc Autret <autret_m@epita.fr>
8764
8765 * src/bison.simple: Remove #line just before %%epilogue. It
8766 is now handled in ...
8767 * src/reader.c (read_additionnal_code): Add the output of a
8768 #line for the epilogue.
8769
e83d80b8
MA
87702001-12-10 Marc Autret <autret_m@epita.fr>
8771
927c1557 8772 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
8773 replace precedent remove.
8774 * src/bison.simple: Remove #line before %%prologue because
8775 %%input-line is wrong at this time.
8776
971d5158
MA
87772001-12-10 Marc Autret <autret_m@epita.fr>
8778
8779 * src/reader.c (symbols_output): Clean up.
927c1557 8780 * src/output.c (output_gram, output): Clean up.
971d5158 8781
5edafffd
AD
87822001-12-10 Akim Demaille <akim@epita.fr>
8783
8784 * src/lalr.c (initialize_lookaheads): New. Extracted from...
8785 * src/LR0.c (set_state_table): here.
8786 * src/lalr.c (lalr): Call it.
8787
0279f8e9
AD
87882001-12-10 Akim Demaille <akim@epita.fr>
8789
8790 * src/state.h (shifts): Remove the `number' member: shifts are
8791 attached to state, hence no longer need to be labelled with a
8792 state number.
8793
190c4f5f
AD
87942001-12-10 Akim Demaille <akim@epita.fr>
8795
8796 Now that states have a complete set of members, the linked list of
8797 shifts is useless: just fill directly the state's shifts member.
8798
8799 * src/state.h (shifts): Remove the `next' member.
8800 * src/LR0.c (first_state, last_state): Remove.
8801 Adjust the callers.
8802 (augment_automaton): Don't look for the shifts that must be added
8803 a shift on EOF: it is those of the state we looked for! But now,
8804 since shifts are attached, it is no longer needed to looking
8805 merely by its id: its number.
8806
2a73b93d
AD
88072001-12-10 Akim Demaille <akim@epita.fr>
8808
8809 * src/LR0.c (augment_automaton): Better variable locality.
8810 Remove an impossible branch: if there is a state corresponding to
8811 the start symbol being shifted, then there is shift for the start
8812 symbol from the initial state.
8813
74392f6a
AD
88142001-12-10 Akim Demaille <akim@epita.fr>
8815
8816 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
8817 only when appropriate: when insert_start_shifting_state' is not
8818 invoked.
8819 * tests/regression.at (Rule Line Numbers): Adjust.
8820
37c82725
AD
88212001-12-10 Akim Demaille <akim@epita.fr>
8822
8823 * src/LR0.c (augment_automaton): Now that all states have shifts,
8824 merge the two cases addition shifts to the initial state.
8825
6a164e0c
AD
88262001-12-10 Akim Demaille <akim@epita.fr>
8827
8828 * src/lalr.c (set_state_table): Move to...
8829 * src/LR0.c: here.
8830 * src/lalr.c (lalr): Don't call it...
8831 * src/LR0.c (generate_states): do it.
8832 * src/LR0.h (first_state): Remove, only the table is used.
8833
7215de24
AD
88342001-12-10 Akim Demaille <akim@epita.fr>
8835
8836 * src/LR0.h (first_shift, first_reduction): Remove.
8837 * src/lalr.c: Don't use first_shift: find shifts through the
8838 states.
8839
80e25d4d
AD
88402001-12-10 Akim Demaille <akim@epita.fr>
8841
8842 * src/LR0.c: Attach shifts to states as soon as they are
8843 computed.
8844 * src/lalr.c (set_state_table): Instead of assigning shifts to
8845 state, just assert that the mapping was properly done.
8846
0ab3728b
AD
88472001-12-10 Akim Demaille <akim@epita.fr>
8848
8849 * src/LR0.c (insert_start_shift): Rename as...
8850 (insert_start_shifting_state): this.
8851 (insert_eof_shifting_state, insert_accepting_state): New.
8852 (augment_automaton): Adjust.
8853 Better locality of the variables.
8854 When looking if the start_symbol is shifted from the initial
8855 state, using `while (... symbol != start_symbol ...)' sounds
8856 better than `while (... symbol < start_symbol ...)': If fail
8857 to see how the order between symbols could be relevant!
8858
78af9bbc
AD
88592001-12-10 Akim Demaille <akim@epita.fr>
8860
8861 * src/getargs.h: Don't declare `spec_name_prefix' and
8862 `spec_file_prefix', declared by src/files.h.
8863 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
8864 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
8865 * src/output.c (prepare): Adjust.
8866 * src/reader.c (symbols_output): Likewise.
8867 * src/vmsgetargs.c: Vaguely adjust, but who cares?
8868
bdef2a41
AD
88692001-12-10 Akim Demaille <akim@epita.fr>
8870
8871 * src/muscle_tab.c (muscle_init): NULL is a better default than
8872 `"0"'.
8873
3735969c
AD
88742001-12-10 Akim Demaille <akim@epita.fr>
8875
8876 * src/reader.c (reader): Calling symbols_output once is enough.
8877
49701457
AD
88782001-12-10 Akim Demaille <akim@epita.fr>
8879
8880 Now that states have a complete set of members, the linked list of
8881 reductions is useless: just fill directly the state's reductions
8882 member.
8883
8884 * src/state.h (struct reductions): Remove member `number' and
8885 `next'.
8886 * src/LR0.c (first_reduction, last_reduction): Remove.
8887 (save_reductions): Don't link the new reductions, store them in
8888 this_state.
8889 * src/lalr.c (set_state_table): No need to attach reductions to
8890 states, it's already done.
8891 * src/output.c (output_actions): No longer free the shifts, then
8892 the reductions, then the states: free all the states and their
8893 members.
8894
0edad749
AD
88952001-12-10 Akim Demaille <akim@epita.fr>
8896
8897 * src/options.c (OPTN, DRTV, BOTH): New.
8898 (option_table): Use them.
8899
0edad749
AD
8900 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
8901 the job of system.h.
8902 * src/options.c: Don't include stdio.h and xalloc.h for the same
8903 reasons.
8904
5449dd0f
AD
89052001-12-10 Akim Demaille <akim@epita.fr>
8906
8907 * src/output.c (output, prepare): Make sure the values of the
8908 muscles `action' and `prologue' are 0-terminated.
8909
a870c567
AD
89102001-12-10 Akim Demaille <akim@epita.fr>
8911
8912 Clean up GCC warnings.
8913
8914 * src/reader.c (copy_action): `buf' is not used.
8915 (parse_skel_decl): Be static.
8916 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
8917 * src/options.h (create_long_option_table): Have a real prototype.
8918 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
8919 (hash_delete_at): Return const void *.
8920 Adjust casts to preserve the const.
8921
80df8768
AD
89222001-12-10 Akim Demaille <akim@epita.fr>
8923
8924 * configure.in: Require 2.52g.
8925 M4 is not needed, but AUTOM4TE is.
8926 * m4/m4.m4: Remove.
8927 * tests/Makefile.am: Adjust.
8928
f693ad14
AD
89292001-12-10 Akim Demaille <akim@epita.fr>
8930
8931 One structure for states is enough, even though theoretically
8932 there are LR(0) states and LALR(1) states.
8933
8934 * src/lalr.h (state_t): Remove.
8935 (state_table): Be state_t **, not state_t *.
8936 * src/state.h (core, CORE_ALLOC): Rename as...
8937 (state_t, STATE_ALLOC): this.
8938 Add the LALR(1) members: shifts, reductions, errs.
8939 * src/LR0.c (state_table): Rename as...
8940 (state_hash): this, to avoid name clashes with the global
8941 `state_table'.
8942 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
8943 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
8944
74ffbcb6
AD
89452001-12-10 Akim Demaille <akim@epita.fr>
8946
8947 Bison dumps core on bash.y.
8948 Reported by Pascal Bart.
8949
8950 * src/warshall.c (bitmatrix_print): New.
8951 (TC): Use it.
8952 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
8953 j must be the outer loop.
8954 * tests/regression.at (Broken Closure): New.
8955
07708e19
AD
89562001-12-05 Akim Demaille <akim@epita.fr>
8957
8958 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
8959 its argument.
ba1ecc07 8960 Reported by Peter Hamorsky.
07708e19 8961
92b16366
AD
89622001-12-05 Akim Demaille <akim@epita.fr>
8963
8964 * src/conflicts.c (err_table): Remove.
8965 (resolve_sr_conflict): Adjust.
8966 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
8967 Rename as...
8968 (state_t.reductions, state_t.shifts): this.
8969
076ab033
AD
89702001-12-05 Akim Demaille <akim@epita.fr>
8971
8972 * src/reduce.c (reduce_grammar_tables): No longer disable the
8973 removal of useless rules via CPP but via `if (0)', so that the
8974 compiler still check the code is valid.
8975 For instance, it should have noticed `rline' no longer exists: use
8976 the `line' member of rule_t.
8977 * src/gram.c (dummy, rline): Remove, unused.
8978
3843c413
AD
89792001-12-05 Akim Demaille <akim@epita.fr>
8980
8981 * src/output.c (pack_vector): Use assert, not berror.
8982 * src/main.c (berror): Remove, unused.
8983
43168960
AD
89842001-12-05 Akim Demaille <akim@epita.fr>
8985
8986 New experimental feature: if --verbose --trace output all the
8987 items of a state, not only its kernel.
8988
8989 * src/print.c (print_core): If `trace_flag', then invoke closure
8990 before outputting the items of the state (print_core is no longer
8991 a correct name them).
8992 (print_results): Invoke new_closure/free_closure if needed.
8993
b2872512
AD
89942001-12-05 Akim Demaille <akim@epita.fr>
8995
8996 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
8997 * src/closure.c, src/closure.h (itemsetsize): Rename as...
8998 (nitemset): for consistency with the rest of the project.
8999
23cbcc6c
AD
90002001-12-05 Akim Demaille <akim@epita.fr>
9001
9002 * src/closure.c (print_closure): Improve.
9003 (closure): Use it for printing input and output.
9004
03ec521c
AD
90052001-12-05 Akim Demaille <akim@epita.fr>
9006
9007 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
9008 indexed by nonterminals.
9009
3a7456dd
AD
90102001-12-05 Akim Demaille <akim@epita.fr>
9011
9012 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
9013 what it was!).
9014 * src/warshall.h: Remove accidental duplication of the content.
9015
1cbcf2e7
AD
90162001-12-05 Akim Demaille <akim@epita.fr>
9017
9018 * src/closure.c (set_fderives): De-obfuscate.
9019
84182270
AD
90202001-12-05 Akim Demaille <akim@epita.fr>
9021
9022 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
9023
3f6f053c
AD
90242001-12-05 Akim Demaille <akim@epita.fr>
9025
9026 * src/closure.c (set_firsts): De-obfuscate.
9027
7a5350ba
AD
90282001-12-05 Akim Demaille <akim@epita.fr>
9029
9030 * src/output.c (action_row): De-obfuscate
9031 using the good o' techniques: arrays not pointers, variable
9032 locality, BITISSET, RESETBIT etc.
9033
d954473d
AD
90342001-12-05 Akim Demaille <akim@epita.fr>
9035
9036 Pessimize the code to simplify it: from now on, all the states
9037 have a valid SHIFTS, which NSHIFTS is possibly 0.
9038
9039 * src/LR0.c (shifts_new): Be global and move to..
9040 * src/state.c, src/state.h: here.
9041 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
9042 * src/print_graph: Adjust.
9043
9839bbe5
AD
90442001-12-05 Akim Demaille <akim@epita.fr>
9045
9046 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
9047 * src/conflicts.c: Use it.
9048 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
9049 incorrectly ``simplified''.
9050
9f136c07
AD
90512001-12-05 Akim Demaille <akim@epita.fr>
9052
9053 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
9054 using the good o' techniques: arrays not pointers, variable
9055 locality, BITISSET, RESETBIT etc.
9056
b608206e
AD
90572001-12-05 Akim Demaille <akim@epita.fr>
9058
9059 * src/state.h (SHIFT_SYMBOL): New.
9060 * src/conflicts.c: Use it to deobfuscate.
9061
52afa962
AD
90622001-12-05 Akim Demaille <akim@epita.fr>
9063
9064 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
9065 (print_reductions): De-obfuscate using the good o' techniques:
9066 arrays not pointers, variable locality, BITISSET.
9067
e74dc321
AD
90682001-12-05 Akim Demaille <akim@epita.fr>
9069
9070 * src/conflicts.c (print_reductions): Arrays, not pointers.
9071 Use BITISSET.
9072
768fca83
AD
90732001-12-05 Akim Demaille <akim@epita.fr>
9074
9075 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9076
a17e599f
AD
90772001-12-05 Akim Demaille <akim@epita.fr>
9078
9079 * src/conflicts.c (print_reductions): Improve variable locality.
9080
a04bc341
AD
90812001-12-05 Akim Demaille <akim@epita.fr>
9082
9083 * src/conflicts.c (print_reductions): Pessimize, but clarify.
9084
c8ea038e
AD
90852001-12-05 Akim Demaille <akim@epita.fr>
9086
9087 * src/conflicts.c (print_reductions): Improve variable locality.
9088
aa2aab3c
AD
90892001-12-05 Akim Demaille <akim@epita.fr>
9090
9091 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
9092 * src/lalr.c: Use them.
9093
b178c8cc
AD
90942001-12-05 Akim Demaille <akim@epita.fr>
9095
9096 * src/LR0.c (augment_automaton): Formatting changes.
9097 Better variable locality.
9098
f67d13aa
AD
90992001-12-05 Akim Demaille <akim@epita.fr>
9100
9101 * src/lalr.c (matrix_print): New.
9102 (transpose): Use it.
9103 Use arrays instead of pointers.
9104
c2713865
AD
91052001-12-05 Akim Demaille <akim@epita.fr>
9106
9107 * src/lalr.c (maxrhs): Move to...
9108 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
9109 * src/lalr.c (build_relations): Adjust.
9110
9887c18a
AD
91112001-12-05 Akim Demaille <akim@epita.fr>
9112
9113 * src/lalr.c (transpose): Free the memory allocated to the
9114 argument, as it is replaced by the results by the unique caller.
9115 (build_relations): Merely invoke transpose: it handles the memory
9116 deallocation.
9117 Improve variable locality.
9118 Avoid variables used as mere abbreviations.
9119 (compute_lookaheads): Use arrays instead of pointers.
9120
4d4f699c
AD
91212001-12-05 Akim Demaille <akim@epita.fr>
9122
9123 * src/lalr.c (initialize_F): Improve variable locality.
9124 Avoid variables used as mere abbreviations.
9125
80a69750
AD
91262001-12-05 Akim Demaille <akim@epita.fr>
9127
9128 * src/derives.c (print_derives): Display the ruleno.
9129 * src/lalr.c (initialize_F, transpose): Better variable locality
9130 to improve readability.
9131 Avoid variables used as mere abbreviations.
9132
fe961097
AD
91332001-12-05 Akim Demaille <akim@epita.fr>
9134
9135 * src/lalr.c (traverse): Use arrays instead of pointers.
9136
e3e4e814
AD
91372001-12-05 Akim Demaille <akim@epita.fr>
9138
9139 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
9140 the handling of squeue.
9141 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
9142
630e182b
AD
91432001-12-05 Akim Demaille <akim@epita.fr>
9144
9145 Because useless nonterminals are now kept alive (instead of being
9146 `destroyed'), we now sometimes examine them, and store information
9147 related to them. Hence we need to know their number, and adjust
9148 memory allocations.
9149
9150 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
9151 static.
9152 * src/LR0.c (allocate_itemsets): The memory allocated to
9153 `symbol_count' was used for two different purpose: once to count
9154 the number of occurrences of each symbol, and later reassigned to
9155 `shift_symbol', containing the symbol that can be shifted from a
9156 given state.
9157 Deobfuscate, i.e., allocate, use and free `symbol_count' here
9158 only, and...
9159 (new_itemsets): Allocate `shift_symbol' here.
9160 (allocate_itemsets): symbol_count includes useless nonterminals.
9161 Make room for them.
9162 (free_storage): Use `free', not `XFREE', for pointers that cannot
9163 be null.
9164
81b51460
AD
91652001-12-05 Akim Demaille <akim@epita.fr>
9166
9167 * src/nullable.c (set_nullable): Deobfuscate the handling of
9168 ritem.
9169 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
9170
3067fbef
AD
91712001-12-05 Akim Demaille <akim@epita.fr>
9172
9173 * src/gram.c, src/gram.h (ritem_print): New.
9174 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
9175 (This useless function was defined only to work around VMS linkers
9176 that can't handle compilation units with variables only).
9177 * src/reduce.c (dump_grammar): Use it to trace the construction of
9178 ritem.
9179
c2bea5f9
PE
91802001-12-04 Paul Eggert <eggert@twinsun.com>
9181
7d27c823
PE
9182 * src/bison.simple (union yyalloc): Change member names
9183 to be the same as the stack names.
9184 (yyparse): yyptr is now union yyalloc *, not char *.
9185 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
9186 and may generate better code on some machines.
c2bea5f9
PE
9187 (yystpcpy): Use prototype if __STDC__ is defined, not just
9188 if __cplusplus is defined.
35687a9d 9189
2c8a9dfa
AD
91902001-11-30 Akim Demaille <akim@epita.fr>
9191
9192 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
9193 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
9194 Gettext doesn't compile cleanly, and dies with -Werror.
9195 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
9196 Include WARNING_CFLAGS here.
9197 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
9198 before being defined.
9199
f4e421e6
AD
92002001-11-27 Paul Eggert <eggert@twinsun.com>
9201
9202 * lib/quotearg.h (quotearg_n, quotearg_n_style):
9203 First arg is int, not unsigned.
9204 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
9205 (SIZE_MAX, UINT_MAX): New macros.
9206 (quotearg_n_options): Abort if N is negative.
9207 Avoid overflow check on hosts where size_t is 64 bits and int
9208 is 32 bits, as overflow is impossible there.
9209 Fix off-by-one typo that caused unnecessary reallocation.
9210
7093d0f5
AD
92112001-11-29 Paul Eggert <eggert@twinsun.com>
9212
9213 Name space cleanup in generated parser.
9214
9215 * doc/bison.texinfo (Bison Parser): Discuss system headers
9216 and their effect on the user name space.
9217
9218 * src/bison.simple:
9219 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
9220 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
9221 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
9222
9223 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
9224 on user names when possible.
9225
9226 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
9227 Simplify test for whather <alloca.h> exists.
9228
9229 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
9230
9231 (<stdio.h>): Include if YYDEBUG.
9232
9233 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
9234 ! defined (yyoverflow) && ! defined (yymemcpy).
9235
9236 (yymemcpy, yyparse): Rename local variables as needed so that
9237 they all begin with 'yy'.
9238
9239 (yystrlen, yystpcpy): New functions.
9240
9241 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
9242 All uses changed.
9243
9244 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
9245 instead of relying on string.h functions. Use YYSTACK_ALLOC
9246 and YYSTACK_FREE instead of malloc and free.
9247
fd51e5ff
AD
92482001-11-30 Akim Demaille <akim@epita.fr>
9249
9250 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
9251 before their first uses.
9252 (YYBISON, YYPURE): Move to the top of the output.
9253
7d13ff5f
AD
92542001-11-30 Akim Demaille <akim@epita.fr>
9255
9256 * tests/reduce.at (Useless Nonterminals): Fix.
9257
892a3995
AD
92582001-11-30 Akim Demaille <akim@epita.fr>
9259
9260 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
9261 if body instead of `;' to pacify GCC's warnings.
9262
68f1e3ed
AD
92632001-11-30 Akim Demaille <akim@epita.fr>
9264
9265 Instead of mapping the LHS of unused rules to -1, keep the LHS
9266 valid, but flag the rules as invalid.
9267
9268 * src/gram.h (rule_t): `useful' is a new member.
9269 * src/print.c (print_grammar): Adjust.
9270 * src/derives.c (set_derives): Likewise.
9271 * src/reader.c (packgram, reduce_output): Likewise.
9272 * src/reduce.c (reduce_grammar_tables): Likewise.
9273 * tests/reduce.at (Underivable Rules, Useless Rules): New.
9274
d2d1b42b
AD
92752001-11-30 Akim Demaille <akim@epita.fr>
9276
9277 * src/reduce.c (reduce_output): Formatting changes.
9278 * src/print.c (print_results, print_grammar): Likewise.
9279 * tests/regression.at (Rule Line Numbers)
9280 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
9281
760b53a8
AD
92822001-11-30 Akim Demaille <akim@epita.fr>
9283
9284 * src/reduce.c (nonterminals_reduce): Instead of throwing away
9285 useless nonterminals, move them at the end of the symbol arrays.
9286 (reduce_output): Adjust.
9287 * tests/reduce.at (Useless Nonterminals): Adjust.
9288
00238958
AD
92892001-11-30 Akim Demaille <akim@epita.fr>
9290
9291 * src/reduce.c: Various comment/formatting changes.
9292 (nonterminals_reduce): New, extracted from...
9293 (reduce_grammar_tables): here.
9294 (reduce_grammar): Call nonterminals_reduce.
9295
396452de
PE
92962001-11-29 Paul Eggert <eggert@twinsun.com>
9297
9298 * src/bison.simple (YYSTACK_REALLOC): Remove.
9299 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
9300 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
9301 New macros.
9302 (union yyalloc): New type.
9303 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
9304 an arbitrary restriction on hosts where size_t is wider than int.
9305
9306 (yyparse): Don't dump core if alloca or malloc fails; instead, report
9307 a parser stack overflow. Allocate just one block of memory for all
9308 three stacks, instead of allocating three blocks; this typically is
9309 faster and reduces fragmentation.
9310
9311 Do not limit the number of items in the stack to a value that fits
9312 in 'int', as this is an arbitrary limit on hosts with 64-bit
9313 size_t and 32-bit int.
9314
147e184c
MA
93152001-11-29 Marc Autret <autret_m@epita.fr>
9316
9317 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
9318 of defining YYERROR_VERBOSE.
9319 [AT_DATA]: $4 is now out of C declarations in the prologue.
9320
426cf563
MA
93212001-11-28 Marc Autret <autret_m@epita.fr>
9322
9323 * src/reader.c (parse_dquoted_param): New.
9324 (parse_skel_decl): Use it.
9325 * src/lex.h: Add its prototype.
9326 * src/lex.c (literalchar): Become not static.
9327
c7925b99
MA
93282001-11-28 Marc Autret <autret_m@epita.fr>
9329
9330 * src/output.h: And put its extern declaration here.
9331 * src/output.c (error_verbose): Define here.
9332 (prepare): Echo name modification.
9333 * src/getargs.h: Clean its extern declaration.
9334 * src/getargs.c (error_verbose_flag): Remove.
9335 (getargs): Remove case 'e'.
9336 * src/options.c (option_table): 'error-verbose' is now seen as simple
9337 percent option.
9338 Include output.h.
9339
9340 * src/reader.c (read_declarations): Remove case tok_include.
9341 (parse_include_decl): Remove.
9342 * src/lex.h (token_t): Remove tok_include.
9343 * src/options.c (option_table): 'include' is now a simple command line
9344 option.
9345
5b5d1929
MA
93462001-11-28 Marc Autret <autret_m@epita.fr>
9347
9348 * src/bison.simple: Adjust muscle names.
9349 * src/muscle_tab.c (muscle_init): Also rename the muscles.
9350 * src/output.c (prepare): s/_/-/ for the muscles names.
9351 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
9352
8850be4b
MA
93532001-11-28 Marc Autret <autret_m@epita.fr>
9354
9355 * src/bison.simple: Fix debug.
9356 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
9357
4a38e613
AD
93582001-11-28 Akim Demaille <akim@epita.fr>
9359
9360 * src/LR0.c (shifts_new): New.
9361 (save_shifts, insert_start_shift, augment_automaton): Use it.
9362
4b35e1c1
AD
93632001-11-28 Akim Demaille <akim@epita.fr>
9364
9365 * src/closure.c (closure): `b' and `ruleno' denote the same value:
9366 keep ruleno only.
9367
d2b04478
AD
93682001-11-28 Akim Demaille <akim@epita.fr>
9369
9370 * src/closure.c (closure): Instead of looping over word in array
9371 then bits in words, loop over bits in array.
9372
2c4c30aa
AD
93732001-11-28 Akim Demaille <akim@epita.fr>
9374
9375 * src/closure.c (closure): No longer optimize the special case
9376 where all the bits of `ruleset[r]' are set to 0, to make the code
9377 clearer.
9378
576890b7
AD
93792001-11-28 Akim Demaille <akim@epita.fr>
9380
9381 * src/closure.c (closure): `r' and `c' are new variables, used to
9382 de-obfuscate accesses to RULESET and CORE.
9383
cb487d7d
AD
93842001-11-28 Akim Demaille <akim@epita.fr>
9385
9386 * src/reduce.c (reduce_print): Use ngettext.
9387 (dump_grammar): Improve the trace accuracy.
9388
6013d43f
AD
93892001-11-28 Akim Demaille <akim@epita.fr>
9390
9391 * src/reduce.c (dump_grammar): Don't translate trace messages.
9392
cb4956ee
AD
93932001-11-28 Akim Demaille <akim@epita.fr>
9394
9395 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
9396 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
9397 as all tags are free'ed afterwards.
9398 From Enrico Scholz.
9399
648185ab
PE
94002001-11-27 Paul Eggert <eggert@twinsun.com>
9401
9402 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
9403 use alloca when we didn't want to, and vice versa.
9404
68254a03
MA
94052001-11-27 Marc Autret <autret_m@epita.fr>
9406
9113b58f
AD
9407 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
9408 initialization.
68254a03
MA
9409 * src/output.c (prepare): Remove its update.
9410
04d843a2
MA
94112001-11-27 Marc Autret <autret_m@epita.fr>
9412
9413 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
9414 Use %error-verbose.
9415
d2079671 94162001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
9417
9418 * src/bison.simple: Remove YYERROR_VERBOSE using.
9419 Use %%error_verbose.
9420 (yyparse): Likewise.
9421 * src/output.c (prepare): Give its final value.
9422 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
9423 * src/getargs.h: Add its extern declaration.
9424 * src/getargs.c (error_verbose_flag): New int.
9425 (getargs): Update to catch new case.
9426 * src/options.c (option_table): 'error-verbose' is a new option.
9427 (shortopts): Update.
9428
e0327bc8
AD
94292001-11-27 Akim Demaille <akim@epita.fr>
9430
9431 * src/system.h: Use intl/libgettext.h.
9432 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
9433
000f1a3c
AD
94342001-11-27 Akim Demaille <akim@epita.fr>
9435
9436 * tests/torture.at (Exploding the Stack Size with Malloc):
9437 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
9438
26cfe0be
AD
94392001-11-27 Akim Demaille <akim@epita.fr>
9440
9441 * src/files.c: Include error.h.
9442 Reported by Hans Aberg.
9443
f6bd5427
MA
94442001-11-26 Marc Autret <autret_m@epita.fr>
9445
d2079671 9446 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
9447 (read_declarations): Add case tok_include.
9448 * src/getargs.h (include): Add its extern definition.
9449 * src/getargs.c (include): New const char *.
9450 (getargs): Add case '-I'.
9451 * src/options.c (option_table): Add include as command line and
9452 percent option.
9453 * src/lex.h (token_t): Add tok_include.
9454
2ca209c1
AD
94552001-11-26 Akim Demaille <akim@epita.fr>
9456
9457 * src/reader.c (readgram): Make sure rules for mid-rule actions
9458 have a lineno equal to that of their host rule.
9459 Reported by Hans Aberg.
9460 * tests/regression.at (Rule Line Numbers): New.
9461
0e41b407
AD
94622001-11-26 Akim Demaille <akim@epita.fr>
9463
9464 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
9465 size_ts.
9466
94672001-11-26 Akim Demaille <akim@epita.fr>
9468
9469 * src/complain.c, src/complain.h (error): Remove, provided by
9470 lib/error.[ch].
9471
e0c40012
AD
94722001-11-26 Akim Demaille <akim@epita.fr>
9473
9474 * src/reader.c (read_declarations): Don't abort on tok_illegal,
9475 issue an error message.
9476 * tests/regression.at (Invalid %directive): New.
9477 Reported by Hans Aberg.
9478
5e147124
AD
94792001-11-26 Akim Demaille <akim@epita.fr>
9480
9481 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
9482 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
9483
a034c8b8
AD
94842001-11-26 Akim Demaille <akim@epita.fr>
9485
9486 * src/conflicts.c (conflicts_print): Don't complain at all when
9487 there are no reduce/reduce conflicts, and as many shift/reduce
9488 conflicts as expected.
9489 * tests/regression.at (%expect right): Adjust.
9490
c64a20f3
AD
94912001-11-23 Akim Demaille <akim@epita.fr>
9492
9493 * lib/alloca.c: Update, from fileutils.
9494
5b0d29bb
AD
94952001-11-23 Akim Demaille <akim@epita.fr>
9496
9497 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
9498
722c4bfe
AD
94992001-11-23 Akim Demaille <akim@epita.fr>
9500
9501 * src/system.h: Include alloca.h.
9502 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
9503
6255b435
AD
95042001-11-23 Akim Demaille <akim@epita.fr>
9505
9506 * src/print_graph.c (print_actions): Remove `rule', unused.
9507 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
9508 pacify GCC's signed < unsigned warnings.
9509 * src/closure.c (itemsetsize): Likewise.
9510 * src/reader.c (symbol_list_new): Static.
9511
b29b2ed5
AD
95122001-11-23 Akim Demaille <akim@epita.fr>
9513
9514 Attaching lineno to buckets is stupid, since only one copy of each
9515 symbol is kept, only the line of the first occurrence is kept too.
9516
9517 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
9518 * src/reader.c (rline_allocated): Remove, unused.
9519 (symbol_list): Have a `line' member.
9520 (symbol_list_new): New.
9521 (readgram): Use it.
9522 * src/print.c (print_grammar): Output the rule line numbers.
9523 * tests/regression.at (Solved SR Conflicts)
9524 (Unresolved SR Conflicts): Adjust.
9525 Reported by Hans Aberg.
9526
a81b1d4a
MA
95272001-11-22 Marc Autret <autret_m@epita.fr>
9528
9529 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
9530
c1ecb3c1
MA
95312001-11-22 Marc Autret <autret_m@epita.fr>
9532
9533 * src/muscle_tab.c (muscle_init): Remove initialization of
9534 skeleton muscle.
9535 * src/output.c (output_master_parser): Do it here.
9536
fbe01355
AD
95372001-11-20 Akim Demaille <akim@epita.fr>
9538
9539 * po/sv.po: New.
9540 * configure.in (ALL_LINGUAS): Adjust.
9541 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
9542 longer contains strings to translate.
9543
81e895c0
AD
95442001-11-19 Akim Demaille <akim@epita.fr>
9545
9546 * src/conflicts.c (conflicts_print): Add a missing \n.
9547
6bb1878b
AD
95482001-11-19 Akim Demaille <akim@epita.fr>
9549
9550 * src/nullable.c (nullable_print): New.
9551 (set_nullable): Call it when tracing.
9552 Better locality of variables.
9553
d9ec2d07
AD
95542001-11-19 Akim Demaille <akim@epita.fr>
9555
9556 * src/print.c (print_actions): Better locality of variables.
9557
720e5c1b
AD
95582001-11-19 Akim Demaille <akim@epita.fr>
9559
9560 * src/derives.c (print_derives): Fix and enrich.
9561 * src/closure.c (print_fderives): Likewise.
9562
fb908786
AD
95632001-11-19 Akim Demaille <akim@epita.fr>
9564
9565 * src/closure.c (itemsetend): Remove, replaced with...
9566 (itemsetsize): new.
9567
125ecb56
AD
95682001-11-19 Akim Demaille <akim@epita.fr>
9569
9570 * src/LR0.c (kernel_end): Remove, replaced with...
9571 (kernel_size): new.
9572
d8cf039f
AD
95732001-11-19 Akim Demaille <akim@epita.fr>
9574
9575 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
9576 to clarify.
9577
7bec0760
AD
95782001-11-19 Akim Demaille <akim@epita.fr>
9579
9580 * src/closure.c (closure): Use arrays instead of pointers to clarify.
9581
c87d4863
AD
95822001-11-19 Akim Demaille <akim@epita.fr>
9583
9584 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
9585 trace messages.
9586 * src/LR0.c: Likewise.
9587 (allocate_itemsets): Use arrays instead of pointers to clarify.
9588
9bfe901c
AD
95892001-11-19 Akim Demaille <akim@epita.fr>
9590
9591 * src/getargs.c (statistics_flag): Replace with...
9592 (trace_flag): New.
9593 (longopts): Accept --trace instead of --statistics.
9594 * src/getargs.h, src/options.c: Adjust.
9595 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
9596 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
9597
97db7bd4
AD
95982001-11-19 Akim Demaille <akim@epita.fr>
9599
cc72668c 9600 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
9601 pointers to clarify the code.
9602 (save_reductions, save_shifts): Factor common parts of alternatives.
9603
2c5f66ed
AD
96042001-11-19 Akim Demaille <akim@epita.fr>
9605
9606 * src/LR0.c (new_state, get_state): Complete TRACE code.
9607 * src/closure.c: Include `reader.h' to get `tags', needed by the
9608 trace code.
9609 Rename the conditional DEBUG as TRACE.
9610 Output consistently TRACEs to stderr, not stdout.
9611 * src/derives.c: Likewise.
9612 * src/reduce.c: (inaccessable_symbols): Using if is better style
9613 than goto.
9614 Use `#if TRACE' instead of `#if 0' for tracing code.
9615
300f275f
AD
96162001-11-19 Akim Demaille <akim@epita.fr>
9617
9618 * src/system.h (LIST_FREE, shortcpy): New.
9619 * src/LR0.c: Use them.
9620 * src/output.c (free_itemsets, free_reductions, free_shifts):
9621 Remove, replaced by LIST_FREE.
9622
f59c437a
AD
96232001-11-19 Akim Demaille <akim@epita.fr>
9624
9625 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
9626 (REDUCTIONS_ALLOC): New.
9627 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
9628 allocation.
9629
6986fd9e
AD
96302001-11-19 Akim Demaille <akim@epita.fr>
9631
9632 * src/LR0.c (new_state): Complete trace code.
9633 * src/nullable.c (set_nullable): Don't translate traces.
9634
4bc30f78
AD
96352001-11-19 Akim Demaille <akim@epita.fr>
9636
9637 * src/print_graph.c (print_core): Better locality of variables.
9638 * src/print.c (print_core): Likewise.
9639
08a946e0
AD
96402001-11-19 Akim Demaille <akim@epita.fr>
9641
9642 * src/vcg.c: You do the output, so you are responsible of the
9643 handling of VCG syntax, in particular: use quotearg.
9644 * src/print_graph.c: Don't.
9645 (print_actions): Don't output the actions as part of the nodes,
9646 since that's the job of the edges.
9647 (print_state): Don't output by hand: fill the node description,
9bfe901c 9648 and ask for its output.
08a946e0 9649
f0473484
AD
96502001-11-19 Akim Demaille <akim@epita.fr>
9651
cc72668c
AD
9652 * src/bison.simple (yyparse): When verbosely reporting an error,
9653 no longer put additional quotes around token names.
f0473484
AD
9654 * tests/calc.at: Adjust.
9655
e41dc700
AD
96562001-11-19 Akim Demaille <akim@epita.fr>
9657
9658 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
9659 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
9660 * src/output.c: Adjust.
9661
652a871c
AD
96622001-11-19 Akim Demaille <akim@epita.fr>
9663
9664 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
9665 (rule_t): this.
9666 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
9667
b2ed6e58
AD
96682001-11-19 Akim Demaille <akim@epita.fr>
9669
9670 * src/gram.h (rule_t): New.
9671 (rule_table): New.
9672 (rrhs, rlhs): Remove, part of state_t.
9673 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
9674 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
9675 * src/reader.c, src/reduce.c: Adjust.
9676
edad7067
AD
96772001-11-19 Akim Demaille <akim@epita.fr>
9678
9679 * src/reader.c (symbols_output): New, extracted from...
9680 (packsymbols): Here.
9681 (reader): Call it.
9682
3feec034
AD
96832001-11-19 Akim Demaille <akim@epita.fr>
9684
9685 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
9686 (maxrhs): this new function.
9687
ddcd5fdf
AD
96882001-11-19 Akim Demaille <akim@epita.fr>
9689
cc72668c 9690 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
9691 Adjust.
9692
bb527fc2
AD
96932001-11-19 Akim Demaille <akim@epita.fr>
9694
cc72668c 9695 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
9696 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9697 * src/lalr.c: Adjust.
9698
a845a697
AD
96992001-11-19 Akim Demaille <akim@epita.fr>
9700
9701 * src/lalr.c (initialize_LA): Only initialize LA. Let...
9702 (set_state_table): handle the `lookaheads' members.
9703
f004bf6a
AD
97042001-11-19 Akim Demaille <akim@epita.fr>
9705
cc72668c
AD
9706 * src/lalr.h (lookaheads): Removed array, whose contents is now
9707 a member of...
f004bf6a
AD
9708 (state_t): this structure.
9709 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9710 Adjust.
9711
de326cc0
AD
97122001-11-19 Akim Demaille <akim@epita.fr>
9713
cc72668c
AD
9714 * src/lalr.h (consistent): Removed array, whose contents is now
9715 a member of...
de326cc0
AD
9716 (state_t): this structure.
9717 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9718 Adjust.
9719
90b4416b
AD
97202001-11-19 Akim Demaille <akim@epita.fr>
9721
cc72668c
AD
9722 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
9723 contents are now members of...
90b4416b
AD
9724 (state_t): this structure.
9725 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9726 Adjust.
9727
9703cc49
AD
97282001-11-19 Akim Demaille <akim@epita.fr>
9729
9730 * src/lalr.h (state_t): New.
9731 (state_table): Be a state_t * instead of a core **.
9732 (accessing_symbol): Remove, part of state_t.
9733 * src/lalr.c: Adjust.
9734 (set_accessing_symbol): Merge into...
9735 (set_state_table): this.
9736 * src/print_graph.c, src/conflicts.c: Adjust.
9737
d803322e
AD
97382001-11-14 Akim Demaille <akim@epita.fr>
9739
9740 * tests/calc.at, tests/output.at, tests/regression.at,
9741 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
9742 now the tests are run in private dirs, therefore AC_CLEANUP and
9743 family can be simplified to 0-ary.
9744 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
9745 use abs. path to find config.h.
9746 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
9747 stderr, there can be way too much random noise.
9748 Instead pass -Werror to GCC and rely on the exit status.
9749 Reported by Wolfram Wagner.
9750
3d76b07d
AD
97512001-11-14 Akim Demaille <akim@epita.fr>
9752
9753 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
9754 defined only if yyoverflow is defined, to avoid `warning: unused
9755 variable `yyvs1''.
9756 Reported by The Test Suite.
9757
09b503c8
AD
97582001-11-14 Akim Demaille <akim@epita.fr>
9759
9760 * src/print.c: Include reduce.h.
9761 Reported by Hans Aberg.
9762
97632001-11-14 Akim Demaille <akim@epita.fr>
9764
9765 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
9766 Revert a previous patch: these are really const.
9767 * src/conflicts.c (conflict_report): Additional useless pair of
9768 braces to pacify GCC's warnings for `if () if () {} else {}'.
9769 * src/lex.c (parse_percent_token): Replace equal_offset with
9770 arg_offset.
9771 arg is const.
9772 Be sure to strdup `arg' when used, since there is no reason for
9773 token_buffer not to change.
9774
0f37a994
AD
97752001-11-14 Akim Demaille <akim@epita.fr>
9776
9777 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
9778 definition.
9779 * src/main.c (main): Use them.
9780 Suggested by Hans Aberg.
9781
d39d93b8
AD
97822001-11-12 Akim Demaille <akim@epita.fr>
9783
9784 * src/system.h (ngettext): Now that we use ngettext, be sure to
9785 provide a default definition when NLS are not used.
9786
9edcd895
AD
97872001-11-12 Akim Demaille <akim@epita.fr>
9788
9789 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
9790 Use @kbd to denote user input.
9791 (Language and Grammar): ANSIfy the example.
9792 Adjust its layout for info/notinfo.
9793 (Location Tracking Calc): Output error messages to stderr.
9794 Output locations in a more GNUtically correct way.
9795 Fix a couple of Englishos.
9796 Adjust @group/@end group pairs.
9797
7da99ede
AD
97982001-11-12 Akim Demaille <akim@epita.fr>
9799
e3aa65c5 9800 %expect was not functioning at all.
7da99ede
AD
9801
9802 * src/conflicts.c (expected_conflicts): Set to -1.
9803 (conflict_report): Use ngettext.
9804 (conflicts_print): Check %expect and make its violation an error.
9805 * doc/bison.texinfo (Expect Decl): Adjust.
9806 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
9807 * tests/regression.at (%expect not enough, %expect right)
9808 (%expect too much): New.
9809
ba9dda1a
AD
98102001-11-12 Akim Demaille <akim@epita.fr>
9811
9812 * tests/regression.at (Conflicts): Rename as...
9813 (Unresolved SR Conflicts): this.
9814 (Solved SR Conflicts): New.
9815
337c5bd1
AD
98162001-11-12 Akim Demaille <akim@epita.fr>
9817
9818 * src/reduce.c (print_results): Rename as...
9819 (reduce_output): This.
9820 Output to OUT, passed as argument, instead of output_obstack.
9821 (dump_grammar): Likewise.
9822 (reduce_free): New.
9823 Also free V1.
9824 (reduce_grammar): No longer call reduce_output, since...
9825 * src/print.c (print_results): do it.
9826 * src/main.c (main): Call reduce_free;
9827
c73a41af
AD
98282001-11-12 Akim Demaille <akim@epita.fr>
9829
9830 * src/conflicts.c (print_reductions): Accept OUT as argument.
9831 Output to it, not to output_obstack.
9832 * src/print.c (print_actions): Adjust.
9833
0df87bb6
AD
98342001-11-12 Akim Demaille <akim@epita.fr>
9835
9836 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
9837 the result instead of using...
9838 (src_total, rrc_total, src_count, rrc_count): Remove.
9839 (any_conflicts): Remove.
9840 (print_conflicts): Split into...
9841 (conflicts_print, conflicts_output): New.
9842 * src/conflicts.h: Adjust.
9843 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
0f37a994 9844 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
9845 * tests/regression.at (Conflicts): New.
9846 Reported by Tom Lane.
9847
e4d3d4de
AD
98482001-11-12 Akim Demaille <akim@epita.fr>
9849
9850 * tests/regression.at (Invalid input): Remove, duplicate with
9851 ``Invalid input: 1''.
9852
6d7d248e
AD
98532001-11-12 Akim Demaille <akim@epita.fr>
9854
9855 * tests/torture.at (AT_DATA_STACK_TORTURE)
9856 (Exploding the Stack Size with Alloca)
9857 (Exploding the Stack Size with Malloc): New.
9858
e9e4c321
AD
98592001-11-12 Akim Demaille <akim@epita.fr>
9860
9861 * src/bison.simple (YYSTACK_REALLOC): New.
9862 (yyparse) [!yyoverflow]: Use it and free the old stack.
0f37a994 9863 Reported by Per Allansson.
e9e4c321 9864
5f7e0832
AD
98652001-11-12 Pascal Bart <pascal.bart@epita.fr>
9866
9867 * src/bison.simple: Define type yystype instead of YYSTYPE, and
9868 define CPP macro, which substitute YYSTYPE by yystype.
9869 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
9870 with yyltype/YYLTYPE. This allows inclusion of the generated
9871 header within the parser if the compiler, such as GGC, accepts
9872 multiple equivalent #defines.
9873 From Akim.
9874
e3f1699f
AD
98752001-11-05 Akim Demaille <akim@epita.fr>
9876
9877 * src/reader.c (symbols_output): New, extracted from...
9878 (packsymbols): here.
9879 (reader): Adjust.
9880
65be0866
AD
98812001-11-05 Akim Demaille <akim@epita.fr>
9882
9883 * src/lex.c (parse_percent_token): s/quotearg/quote/.
9884
e4d910bf
AD
98852001-11-05 Akim Demaille <akim@epita.fr>
9886
9887 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
9888 pattern.
9889
951366c1
AD
98902001-11-05 Akim Demaille <akim@epita.fr>
9891
9892 * src/options.h (struct option_table_struct): set_flags is void*.
9893 * src/options.c (longopts): Support `--output' and `%output'.
9894 (usage): Adjust.
9895 * src/lex.h (tok_setopt): Remove, replaced with...
9896 (tok_intopt, tok_stropt): these new guys.
9897 * src/lex.c (getopt.h): Not needed.
9898 (token_buffer, unlexed_token_buffer): Not const.
9899 (percent_table): Promote `-' over `_' in directive names.
9900 Active `%name-prefix', `file-prefix', and `output'.
9901 (parse_percent_token): Accept possible arguments to directives.
9902 Promote `-' over `_' in directive names.
9903
d8988b2f
AD
99042001-11-04 Akim Demaille <akim@epita.fr>
9905
9906 * doc/bison.texinfo (Decl Summary): Split the list into
9907 `directives for grammars' and `directives for bison'.
9908 Sort'em.
9909 Add description of `%name-prefix', `file-prefix', and `output'.
9910 Promote `-' over `_' in directive names.
9911 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
9912 Simplify the description of `--name-prefix'.
9913 Promote `-' over `_' in directive names.
9914 Promote `--output' over `--output-file'.
9915 Fix the description of `--defines'.
9916 * tests/output.at: Exercise %file-prefix and %output.
9917
6468d18e
AD
99182001-11-02 Akim Demaille <akim@epita.fr>
9919
9920 * doc/refcard.tex: Update.
9921
6b7e85b9
AD
99222001-11-02 Akim Demaille <akim@epita.fr>
9923
9924 * src/symtab.h (SUNDEF): New.
9925 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
9926 stand for `uninitialized', instead of 0.
9927 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
9928 * src/lex.c (lex): Adjust.
9929
9930 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
9931 Number it 0.
9932 Let yylex return it instead of a plain 0.
9933 Reported by Dick Streefland.
9934
cd5aafcf
AD
99352001-11-02 Akim Demaille <akim@epita.fr>
9936
9937 * tests/regression.at (Mixing %token styles): New test.
9938
037ca2f1
AD
99392001-11-02 Akim Demaille <akim@epita.fr>
9940
9941 * src/reader.c (parse_thong_decl): Formatting changes.
9942 (token_translations_init): New, extracted from...
9943 (packsymbols): Here.
9944 Adjust.
9945
270a173c
AD
99462001-11-01 Akim Demaille <akim@epita.fr>
9947
9948 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
9949 Check that `9foo.y' produces correct cpp guards.
9950 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
9951 guards.
9952 Reported by Wwp.
9953
561f9a30
AD
99542001-11-01 Akim Demaille <akim@epita.fr>
9955
9956 * tests/regression.at (Invalid input: 2): New.
9957 * src/lex.c (unlexed_token_buffer): New.
9958 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
9959 too.
9960 Reported by Wwp.
9961
f987e9d2
AD
99622001-11-01 Akim Demaille <akim@epita.fr>
9963
9964 * tests/calc.at: Catch up with 1.30.
9965 * configure.in: Bump to 1.49a.
9966 Adjust to newer Autotest.
9967
0846f581
PB
99682001-10-19 Pascal Bart <pascal.bart@epita.fr>
9969
9970 * src/conflicts.c: Move global variables rrc_total and src_total ...
9971 (print_conflicts): here.
9972 * src/output.c (output): Free global variable user_toknums.
9973 * src/lex.c (token_obstack): Become static.
9974
3c1a79b3
AD
99752001-10-18 Akim Demaille <akim@epita.fr>
9976
9977 * tests/atlocal.in (GCC): Add.
9978 * tests/calc.at: s/m4_match/m4_bmatch/.
9979 s/m4_patsubst/m4_bpatsubst/.
9980 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
9981 * configure.in: AC_SUBST(GCC).
9982
5d52e7d0
MA
99832001-10-14 Marc Autret <autret_m@epita.fr>
9984
9985 * src/options.c (create_long_option_table): Fix.
9986
631aa1d3
AD
99872001-10-10 Akim Demaille <akim@epita.fr>
9988
9989 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
9990
f6ec6d13
AD
99912001-10-04 Akim Demaille <akim@epita.fr>
9992
9993 * src/reader.c (parse_union_decl): Push the caracters in
9994 union_obstack, not attrs_obstack.
9995
342b8b6e
AD
99962001-10-04 Akim Demaille <akim@epita.fr>
9997
9998 Merge in the branch 1.29.
9999
10000 * src/reader.c (packsymbols): Use a temporary obstack for
10001 `%%tokendef', since output_stack is already used elsewhere.
10002
10003 2001-10-02 Akim Demaille <akim@epita.fr>
10004
10005 Bump 1.29d.
10006
10007 2001-10-02 Akim Demaille <akim@epita.fr>
10008
10009 Version 1.29c.
10010
10011 2001-10-02 Akim Demaille <akim@epita.fr>
10012
10013 * tests/regression.at (Invalid CPP headers): New.
10014 From Alexander Belopolsky.
10015 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
10016
10017 2001-10-02 Akim Demaille <akim@epita.fr>
10018
10019 * tests/regression.at (Invalid input): New.
10020 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
10021 Reported by Shura.
10022
10023 2001-10-02 Akim Demaille <akim@epita.fr>
10024
10025 * tests/calc.at: Now that --debug works, the tests must be adjusted.
10026
10027 2001-10-02 Akim Demaille <akim@epita.fr>
10028
10029 * src/output.c (output_parser): Assert `skeleton'.
10030 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
10031 systems.
10032 From Shura.
10033
10034 2001-10-01 Marc Autret <autret_m@epita.fr>
10035
10036 * src/lex.h: Echo modifications.
10037 * src/lex.c (unlex): Parameter is now token_t.
10038 From Hans Aberg.
10039
10040 2001-10-01 Marc Autret <autret_m@epita.fr>
10041
10042 * src/main.c: Include lex.h.
10043 From Hans Aberg.
10044
10045 2001-09-29 Akim Demaille <akim@epita.fr>
10046
10047 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
10048
10049 2001-09-28 Akim Demaille <akim@epita.fr>
10050
10051 * tests/testsuite.at: Update to newer Autotest.
10052 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
10053
10054 2001-09-27 Akim Demaille <akim@epita.fr>
10055
10056 Position independent wrapper.
10057
10058 * tests/bison: Remove.
10059 * tests/bison.in: New.
10060 * configure.in: Adjust.
10061
10062 2001-09-27 Paul Eggert <eggert@twinsun.com>
10063
10064 Port quotearg fixes from tar 1.13.24.
10065
10066 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
10067 tm to be declared.
10068 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
10069 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
10070
10071 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
10072 * m4/mbrtowc.m4: New file.
10073 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
10074 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
10075
10076 2001-09-27 Akim Demaille <akim@epita.fr>
10077
10078 Bump to 1.29c.
10079
10080 2001-09-27 Akim Demaille <akim@epita.fr>
10081
10082 Version 1.29b.
10083
10084 2001-09-25 Akim Demaille <akim@epita.fr>
10085
10086 * src/system.h: Include `xalloc.h'.
10087 Remove it from the C files.
10088 * src/files.c (output_files): Free the obstacks.
10089 * src/lex.c (init_lex): Rename as...
10090 (lex_init): this.
10091 (lex_free): New.
10092 * src/main.c (main): Use it.
10093
10094 2001-09-24 Marc Autret <autret_m@epita.fr>
10095
10096 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
10097 to output informations in fout (FILE*).
10098 (open_graph, close_graph): Likewise.
10099 (output_graph, output_edge, output_node): Likewise.
10100 * src/vcg.h: Update function prototypes.
10101 * src/print_graph.c (print_graph): Open output graph file.
10102 (print_actions): Adjust.
10103 * src/files.h: Remove extern declaration.
10104 * src/files.c: Remove graph_obstack declaration.
10105 (open_files): Remove graph_obstack initialization.
10106 (output_files): Remove graph_obstack saving.
10107
10108 2001-09-24 Marc Autret <autret_m@epita.fr>
10109
10110 * src/files.c (compute_output_file_names): Fix.
10111
10112 2001-09-24 Marc Autret <autret_m@epita.fr>,
10113 Akim Demaille <akim@epita.fr>
10114
10115 * src/reader.c (reader): Remove call to free_symtab ().
10116 * src/main.c (main): Call it here.
10117 Include symtab.h.
10118 * src/conflicts.c (initialize_conflicts): Rename as...
10119 (solve_conflicts): this.
10120 * src/print.c (print_core, print_actions, print_state)
10121 (print_grammar): Dump to a file instead a `output_obstack'.
10122 (print_results): Dump `output_obstack', and then proceed with the
10123 FILE *.
10124 * src/files.c (compute_output_file_names, close_files): New.
10125 (output_files): Adjust.
10126 * src/main.c (main): Adjust.
10127
10128 2001-09-23 Marc Autret <autret_m@epita.fr>
10129
10130 * src/files.c (compute_header_macro): Computes header macro name
10131 from spec_defines_file when given.
10132
10133 2001-09-23 Marc Autret <autret_m@epita.fr>
10134
10135 * src/files.c (output_files): Add default extensions.
10136
10137 2001-09-22 Akim Demaille <akim@epita.fr>
10138
10139 * src/conflicts.c (finalize_conflicts): Rename as...
10140 (free_conflicts): this.
10141
10142 2001-09-22 Akim Demaille <akim@epita.fr>
10143
10144 * src/gram.c (gram_free): Rename back as...
10145 (dummy): this.
10146 (output_token_translations): Free `token_translations'.
10147 * src/symtab.c (free_symtab): Free the tag field.
10148
10149 2001-09-22 Akim Demaille <akim@epita.fr>
10150
10151 Remove `translations' as it is always set to true.
10152
10153 * src/gram.h: Adjust.
10154 * src/reader.c (packsymbols, parse_token_decl): Adjust
10155 * src/print.c (print_grammar): Adjust.
10156 * src/output.c (output_token_translations): Adjust.
10157 * src/lex.c (lex): Adjust.
10158 * src/gram.c: Be sure the set pointers to NULL.
10159 (dummy): Rename as...
10160 (gram_free): this.
10161
10162 2001-09-22 Akim Demaille <akim@epita.fr>
10163
10164 * configure.in: Invoke AM_LIB_DMALLOC.
10165 * src/system.h: Use dmalloc.
10166 * src/LR0.c: Be sure to have pointers initialized to NULL.
10167 (allocate_itemsets): Allocate kernel_items only if needed.
10168
10169 2001-09-22 Akim Demaille <akim@epita.fr>
10170
10171 * configure.in: Bump to 1.29b.
10172 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
10173 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
10174 need xmalloc.c in calc.y.
10175 From Pascal Bart.
10176
10177 2001-09-21 Akim Demaille <akim@epita.fr>
10178
10179 Version 1.29a.
10180 * Makefile.maint, config/config.guess, config/config.sub,
10181 * config/missing: Update from masters.
10182 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
10183 upon package.m4.
10184 * configure.in (ALL_LINGUAS): Add `tr'.
10185
10186 2001-09-21 Akim Demaille <akim@epita.fr>
10187
10188 * tests/Makefile.am (package.m4): Move to...
10189 ($(srcdir)/$(TESTSUITE)): here.
10190
10191 2001-09-20 Akim Demaille <akim@epita.fr>
10192
10193 * src/complain.c: No longer try to be standalone: use system.h.
10194 Don't assume __STDC__ is defined to 1. Just test if it is defined.
10195 * src/complain.h: Likewise.
10196 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
10197 Remove the unused variable `n'.
10198 From Albert Chin-A-Young.
10199
10200 2001-09-18 Marc Autret <autret_m@epita.fr>
10201
10202 * doc/bison.1: Update.
10203 * doc/bison.texinfo (Bison Options): Update --defines and --graph
10204 descriptions.
10205 (Option Cross Key): Update.
10206 Add --graph.
10207
10208 2001-09-18 Marc Autret <autret_m@epita.fr>
10209
10210 * tests/regression.at: New test (comment in %union).
10211
10212 2001-09-18 Marc Autret <autret_m@epita.fr>
10213
10214 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
10215 do that.
10216 Reported by Keith Browne.
10217
10218 2001-09-18 Marc Autret <autret_m@epita.fr>
10219
10220 * tests/output.at: Add tests for --defines and --graph.
10221
10222 2001-09-18 Marc Autret <autret_m@epita.fr>
10223
10224 * tests/output.at: Removes tests of %{header,src}_extension features.
10225
10226 2001-09-18 Akim Demaille <akim@epita.fr>
10227
10228 * tests/Makefile.am (package.m4): New.
10229 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
10230 (_AT_CHECK_CALC_ERROR): Likewise.
10231 Factor the `, ' part of verbose error messages.
10232
10233 2001-09-18 Marc Autret <autret_m@epita.fr>
10234
10235 * src/getargs.c (longopts): Declare --defines and --graph as options
10236 with optional arguments.
10237 * src/files.h: Add extern declarations.
10238 * src/files.c (spec_graph_file, spec_defines_file): New.
10239 (output_files): Update.
10240 Remove CPP-outed code.
10241
10242 2001-09-18 Marc Autret <autret_m@epita.fr>
10243
10244 Turn off %{source,header}_extension feature.
10245
10246 * src/files.c (compute_exts_from_gf): Update.
10247 (compute_exts_from_src): Update.
10248 (output_files): CPP-out useless code.
10249 * src/files.h: Remove {header,source}_extension extern declarations.
10250 * src/reader.c (parse_dquoted_param): CPP-out.
10251 (parse_header_extension_decl): Remove.
10252 (parse_source_extension_decl): Remove.
10253 (read_declarations): Remove cases tok_{hdrext,srcext}.
10254 * src/lex.c (percent_table): Remove {header,source}_extension entries.
10255 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
10256
10257 2001-09-10 Akim Demaille <akim@epita.fr>
10258
10259 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
10260 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
10261 (AT_CHECK_OUTPUT): this.
10262 Merely check ls' exit status, its output is useless.
10263
10264 2001-09-10 Akim Demaille <akim@epita.fr>
10265
10266 * tests/calc.at: Use m4_match.
10267 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
10268
10269 2001-09-10 Marc Autret <autret_m@epita.fr>,
10270 Akim Demaille <akim@epita.fr>
10271
10272 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
10273 enum color_e.
10274 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
10275 to `normal'.
10276 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
10277 * src/lex.h: Adjust prototype.
10278 (token_t): Add `tok_undef'.
10279 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
10280 (parse_percent_token): Now returns token_t.
10281 Add default statement in switch.
10282 (lex): Separate `c' as an input variable, from the token_t result
10283 part.
10284 (unlexed): Is a token_t.
10285
10286 2001-09-10 Akim Demaille <akim@epita.fr>
10287
10288 * configure.in: Bump to 1.29a.
10289
10290 2001-09-07 Akim Demaille <akim@epita.fr>
10291
10292 Version 1.29.
10293
10294 2001-08-30 Akim Demaille <akim@epita.fr>
10295
10296 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
10297 * m4/atconfig.m4: Remove.
10298 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
10299 * tests/bison: New.
10300 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
10301 m4_if, m4_patsubst, and m4_regexp.
10302 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
10303 `input' file instead of echo.
10304
10305 2001-08-29 Akim Demaille <akim@epita.fr>
10306
10307 Bump to 1.28e.
10308
10309 2001-08-29 Akim Demaille <akim@epita.fr>
10310
10311 Version 1.28d.
10312
10313 2001-08-29 Paul Eggert <eggert@twinsun.com>
10314
10315 * src/bison.simple (yyparse): Don't take the address of an
10316 item before the start of an array, as that doesn't conform to
10317 the C Standard.
10318
10319 2001-08-29 Robert Anisko <anisko_r@epita.fr>
10320
10321 * doc/bison.texinfo (Location Tracking Calc): New node.
10322
10323 2001-08-29 Paul Eggert <eggert@twinsun.com>
10324
10325 * src/output.c (output): Do not define const, as this now
10326 causes more problems than it cures.
10327
10328 2001-08-29 Akim Demaille <akim@epita.fr>
10329
10330 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
10331 the nodes.
10332 Be sure to tag the `detailmenu'.
10333
10334 2001-08-29 Akim Demaille <akim@epita.fr>
10335
10336 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
10337 download in a tmp dir.
10338
10339 2001-08-28 Marc Autret <autret_m@epita.fr>
10340
10341 * config/depcomp: New file.
10342
10343 2001-08-28 Marc Autret <autret_m@epita.fr>
10344
10345 * doc/bison.1 (mandoc): Adjust.
10346 From Juan Manuel Guerrero.
10347
10348 2001-08-28 Marc Autret <autret_m@epita.fr>
10349
10350 * src/print_graph.c (print_state): Fix.
10351
10352 2001-08-27 Marc Autret <autret_m@epita.fr>
10353
10354 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
10355 char * members.
10356 Echo modifications to the functions prototypes.
10357 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
10358
10359 2001-08-27 Marc Autret <autret_m@epita.fr>
10360
10361 * src/vcg.c: Include `xalloc.h'.
10362 (add_colorentry): New.
10363 (add_classname): New.
10364 (add_infoname): New.
10365 * src/vcg.h: Add new prototypes.
10366
10367 2001-08-27 Akim Demaille <akim@epita.fr>
10368
10369 * Makefile.maint: Sync. again with CVS Autoconf.
10370
10371 2001-08-27 Akim Demaille <akim@epita.fr>
10372
10373 * Makefile.maint: Formatting changes.
10374 (po-update, cvs-update, update): New targets.
10375 (AMTAR): Remove.
10376
10377 2001-08-27 Akim Demaille <akim@epita.fr>
10378
10379 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10380 * Makefile.maint: Sync. with CVS Autoconf.
10381
10382 2001-08-27 Marc Autret <autret_m@epita.fr>
10383
10384 * src/vcg.h (struct infoname_s): New.
10385 (struct colorentry_s): New.
10386 (graph_s): New fields {vertical,horizontal}_order in structure.
10387 Add `infoname' field.
10388 Add `colorentry' field;
10389 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
10390 (G_HORIZONTAL_ORDER): New.
10391 (G_INFONAME): New.
10392 (G_COLORENTRY): New.
10393 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
10394 Add output of `infoname'.
10395 Add output of `colorentry'.
10396
10397 2001-08-27 Marc Autret <autret_m@epita.fr>
10398
10399 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
10400 This one shadowed a global parameter.
10401
10402 2001-08-24 Marc Autret <autret_m@epita.fr>
10403
10404 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
10405 instead of `unsigned'.
10406 (print_state): Do not call obstack_object_size () in obstack_grow ()
10407 to avoid macro variables shadowing.
10408
10409 2001-08-23 Marc Autret <autret_m@epita.fr>
10410
10411 * src/lex.c (percent_table): Typo: s/naem/name/.
10412 Add graph option.
10413 Normalize new options declarations.
10414
10415 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
10416
10417 * tests/suite.at: Exercise %header_extension and %source_extension.
10418
10419 2001-08-16 Marc Autret <autret_m@epita.fr>
10420
10421 * src/reader.c (parse_dquoted_param): New.
10422 (parse_header_extension_decl): Use it.
10423 (parse_source_extension_decl): Likewise.
10424
10425 2001-08-16 Marc Autret <autret_m@epita.fr>
10426
10427 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
10428 (get_xxxx_str): Use assert () instead of complain ().
10429 Remove return invokations in default cases.
10430 (get_decision_str): Modify default behaviour. Remove second argument.
10431 Echo modifications on calls.
10432 (output_graph): Fix.
10433
10434 2001-08-16 Marc Autret <autret_m@epita.fr>
10435
10436 * src/getargs.c (usage): Update with ``-g, --graph''.
10437
10438 2001-08-16 Marc Autret <autret_m@epita.fr>
10439
10440 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
10441 (Option Cross Key): Likewise.
10442 * doc/bison.1: Update.
10443
1c8c2190
PB
104442001-09-25 Pascal Bart <pascal.bart@epita.fr>
10445
10446 * src/output.c (output_master_parser): Don't finish action_obstack.
10447 (output_parser): Don't care about the muscle action, here.
10448 (prepare): Copy the action_obstack in the action muscle.
10449 (output): Free action_obstack.
10450
180d45ba
PB
104512001-09-23 Pascal Bart <pascal.bart@epita.fr>
10452
10453 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
10454 will contain `%union' declaration.
10455 (parse_union_decl): Delete #line directive output.
10456 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
10457 informations about %union.
10458 (parse_union_decl): Copy the union_obstack in the muscle stype.
10459 * src/bison.simple: Add new #line directive.
10460 Add typdef %%stype YYSTYPE.
10461
c51d1a19
PB
104622001-09-23 Pascal Bart <pascal.bart@epita.fr>
10463
10464 * src/bison.simple: Add new `#line' directive.
10465
6f9344da
PB
104662001-09-22 Pascal Bart <pascal.bart@epita.fr>
10467
10468 * src/bison.simple: New `#line' directive.
10469 * src/output.c (output_parser): Support new dynamic muscle input_line.
10470
652def80
MA
104712001-09-22 Marc Autret <autret_m@epita.fr>
10472
10473 * src/output.c (output_master_parser): New.
10474 (output_parser): Be more re-entrant.
10475
25b222fa
MA
104762001-09-21 Marc Autret <autret_m@epita.fr>
10477
10478 * src/reader.c (copy_definition, parse_union_decl): Update and use
10479 `linef' muscle.
10480 (copy_action): Likewise.
10481 Use obstack_1grow ().
10482 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
10483
6bc35ae5
MA
104842001-09-21 Marc Autret <autret_m@epita.fr>
10485
10486 * src/options.c (option_table): Adjust.
10487 * src/lex.c (parse_percent_token): Fix.
10488
c0629aa1
PB
104892001-09-20 Pascal Bart <pascal.bart@epita.fr>
10490
10491 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 10492
82b6d266
PB
104932001-09-20 Pascal Bart <pascal.bart@epita.fr>
10494
10495 * src/lex.c (parse_percent_token): Change type of variable `tx', which
10496 is now an option_table_struct*.
10497 (option_strcmp): New function option_strcmp.
10498 (parse_percent_token): Call option_strcmp.
10499 * src/getargs.c (xalloc.h, options.h): Include it.
10500 (getargs): Call create_long_option_table.
10501 (getargs): Free longopts at the end of the function.
10502 (shortopts): Move in options.c.
10503 * src/options.c (create_long_option_table): New function. Convert
10504 information from option_table to option structure.
10505 * src/reader.c (options.h): Include it.
10506
10507 * src/Makefile.am: Adjust.
10508 * src/options.c (option_table): Create from longopts and percent_table.
10509 * src/getargs.c (longopts): Delete.
10510 * src/lex.c (struct percent_table_struct): Delete.
10511 (percent_table): Delete.
10512 (options.h): Include it.
10513 * src/options.c: Create.
10514 * src/options.h: Create.
10515 Declare enum opt_access_e.
10516 Define struct option_table_struct.
10517
75f5aaea
MA
105182001-09-20 Marc Autret <autret_m@epita.fr>
10519
10520 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
10521 sections of Bison.
10522
f508cb0a
PB
105232001-09-19 Pascal Bart <pascal.bart@epita.fr>
10524
10525 * src/bison.simple: s/%%filename/%%skeleton.
10526 * src/muscle_tab.c (getargs.h): Include it.
10527 (muscle_init): Insert new muscle skeleton.
10528
13105fc1
PB
105292001-09-18 Pascal Bart <pascal.bart@epita.fr>
10530
10531 * src/output.c (output_parser): Delete unused variable actions_dumped.
10532
b0c4483e
PB
105332001-09-07 Pascal Bart <pascal.bart@epita.fr>
10534
10535 * src/output.c (output): Delete call to reader_output_yylsp.
10536 * src/reader.c (reader): Likewise.
10537 * src/reader.h: Delete declaration of reader_output_yylsp.
342b8b6e 10538
11d82f03
MA
105392001-09-02 Marc Autret <autret_m@epita.fr>
10540
10541 * src/reader.c: Include muscle_tab.h.
10542 (parse_union_decl): Update.
10543 (parse_macro_decl): Rename parse_muscle_decl.
10544 Update to use renamed functions and variable.
10545 (read_declarations, copy_action, read_additionnal_code, : Updated
10546 with correct variables and functions names.
10547 (packsymbols, reader): Likewise.
342b8b6e 10548
11d82f03 10549 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 10550
11d82f03
MA
10551 * src/output.c: Include muscle_tab.h
10552 In all functions using macro_insert, change by using muscle_insert ().
10553 (macro_obstack): Rename muscle_obstack.
10554 Echo modifications in the whole file.
10555 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
10556 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
10557 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
10558
10559 * src/muscle_tab.h: Update double inclusion macros.
10560 (macro_entry_s): Rename muscle_entry_s.
10561 Update prototypes.
342b8b6e 10562
11d82f03
MA
10563 * src/muscle_tab.c: Include muscle_tab.h.
10564 Rename macro_tabble to muscle_table.
10565 (mhash1, mhash2, mcmp): Use muscle_entry.
10566 (macro_init): Rename muscle_init. Update.
10567 (macro_insert): Rename muscle_insert. Update.
10568 (macro_find): Rename muscle_find. Update.
10569
10570 * src/main.c: Include muscle_tab.h.
10571 (main): Call muscle_init ().
10572 * src/Makefile.am (bison_SOURCES): Echo modifications.
10573
93a37297
MA
105742001-09-02 Marc Autret <autret_m@epita.fr>
10575
f753cd62 10576 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 10577
f753cd62
MA
10578 * src/muscle_tab.c, src/muscle_tab.h: Add files.
10579
105802001-09-02 Marc Autret <autret_m@epita.fr>
10581
10582 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 10583
682d48cd
PB
105842001-09-01 Pascal Bart <pascal.bart@epita.fr>
10585
342b8b6e 10586 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
10587 filename.
10588
087c8fda
MA
105892001-09-01 Marc Autret <autret_m@epita.fr>
10590
10591 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
10592 to an explicit value to activate the feature. We do it here.
10593
dda680cb
PB
105942001-08-31 Pascal Bart <pascal.bart@epita.fr>
10595
10596 * src/output.c (prepare): Delete the `filename' muscule insertion.
10597 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
10598 (parse_union_decl): Likewise.
10599 * src/macrotab.c (macro_init): Initialize filename by infile.
10600
9e644e64
MA
106012001-08-31 Marc Autret <autret_m@epita.fr>
10602
10603 * src/bison.simple (YYLSP_NEEDED): New definition.
10604 * src/output.c (prepare): Add macro insertion of `locations_flag'
10605
17da6427
PB
106062001-08-31 Pascal Bart <pascal.bart@epita.fr>
10607
10608 * src/output.c (prepare): Delete insertion of previous muscles,
10609 and insert the `prefix' muscles.
10610 * src/macrotab.c (macro_init): Likewise.
10611 (macro_init): Initialization prefix directive by `yy'.
342b8b6e 10612 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
10613 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
10614 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 10615 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
10616 name_prefix.
10617
e8cb70b9
PB
106182001-08-31 Pascal Bart <pascal.bart@epita.fr>
10619
10620 * src/main.c (main): Standardize.
10621 * src/output.c (output_table_data, output_parser): Likewise.
10622 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
10623
63c2d5de
MA
106242001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
10625
342b8b6e 10626 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
10627 %%epilogue.
10628 * src/output.c (output): Rename %%declarations to %%prologue.
10629 * src/bison.simple: Echo modifications.
342b8b6e 10630
d8cb5183
MA
106312001-08-31 Marc Autret <autret_m@epita.fr>
10632
10633 * src/reader.c (readgram): CleanUp.
10634 (output_token_defines): Likewise.
10635 (packsymbols): Likewise.
10636 (reader): Likewise.
10637 * src/output.c (output): CPP-out useless code.
10638
6c686258
PB
106392001-08-31 Pascal Bart <pascal.bart@epita.fr>
10640
342b8b6e 10641 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
10642 output_trailers and output_headers.
10643 * src/output.h: Remove obsolete functions prototypes of output_headers
10644 and output_trailers.
10645
8f451ef7
PB
106462001-08-30 Pascal Bart <pascal.bart@epita.fr>
10647
10648 * src/main.c: Include macrotab.h.
342b8b6e 10649 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
10650 Adjust functions prototypes.
10651 * src/macrotab.c (macro_insert): Constify key and value.
10652 (macro_find): Constify key.
10653 (macro_insert): Include 'xalloc.h'
10654 (macro_insert): Use XMALLOC.
10655 (macro_find): Constify return value.
10656 * src/output.c (output_table_data): Rename table to table_data.
10657 (output_parser): Constify macro_key, macro_value.
10658
997b6fd0 106592001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
10660
10661 * src/reader.c (parse_skel_decl): New.
342b8b6e 10662 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
10663 * src/lex.h (token_t): New token `tok_skel'.
10664 * src/lex.c (percent_table): Add skeleton option entry.
10665 Standardize.
10666
ff48177d
MA
106672001-08-29 Marc Autret <autret_m@epita.fr>
10668
10669 * src/bison.simple: Add %%user_code directive at the end.
10670 * src/reader.c (read_additionnal_code): New.
10671 (reader): Use it.
10672 * src/output.c (output_program): Remove.
10673 (output): Update.
10674
b33160bf
MA
106752001-08-28 Marc Autret <autret_m@epita.fr>
10676
10677 * src/output.c (output_actions): Clean up.
4e5caae2 10678 (output_gram): CPP-out useless code.
b33160bf
MA
10679 * src/reader.c (reader): Clean up, CPP-out useless code.
10680
d1a2daf7
PB
106812001-08-28 Pascal Bart <pascal.bart@epita.fr>
10682
342b8b6e 10683 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 10684 directive.
d1a2daf7
PB
10685 * src/bison.simple: Add `%%definitions'.
10686
2b763dfe
MA
106872001-08-28 Marc Autret <autret_m@epita.fr>
10688
10689 * config/depcomp: New file.
10690
f1a87ef6
PE
106912001-08-27 Paul Eggert <eggert@twinsun.com>
10692
10693 * src/bison.simple (yyparse): Don't take the address of an
10694 item before the start of an array, as that doesn't conform to
10695 the C Standard.
10696
82e236e2
RA
106972001-08-27 Robert Anisko <robert.anisko@epita.fr>
10698
f1a87ef6 10699 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
10700 obstack. It was done too late here.
10701
10702 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
10703 completely wrong.
10704 (reader): Initialize the macro obstack here, since we need it to grow
10705 '%define' directives.
10706
10707 * src/reader.h: Declare the macro obstack as extern.
10708
b0cfa28a
RA
107092001-08-27 Robert Anisko <robert.anisko@epita.fr>
10710
10711 * src/output.c (output_parser): Fix. Store single '%' characters in
10712 the output obstack instead of throwing them away.
10713
6fc74234
AD
107142001-08-27 Akim Demaille <akim@epita.fr>
10715
10716 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10717
9c76d118
RA
107182001-08-25 Robert Anisko <robert.anisko@epita.fr>
10719
10720 * lib/Makefile.am: Adjust.
10721
a8289c62
RA
107222001-08-25 Robert Anisko <robert.anisko@epita.fr>
10723
10724 * src/bison.simple: Update and add '%%' directives.
10725
b6610515
RA
107262001-08-25 Robert Anisko <robert.anisko@epita.fr>
10727
10728 * src/reader.c (reader): Remove calls to 'output_headers' and
10729 'output_trailers'. Remove some C output.
10730 (readgram): Disable a piece of code that was writing a default
10731 definition for 'YYSTYPE'.
10732 (reader_output_yylsp): Remove.
10733 (packsymbols): Output token defintions to a macro.
10734 (copy_definition): Disable C output.
6fc74234 10735
b6610515
RA
10736 * src/reader.c (parse_macro_decl): New function used to parse macro
10737 declarations.
10738 (copy_string2): Put the body of copy_string into this new function.
10739 Add a parameter to let the caller choose whether he wants to copy the
10740 string delimiters or not.
10741 (copy_string): Be a simple call to copy_string2 with the last argument
10742 bound to true.
10743 (read_declarations): Add case for macro definition.
10744 (copy_identifier): New.
6fc74234 10745 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
10746 rather than lex.
10747
26f609ff
RA
107482001-08-25 Robert Anisko <robert.anisko@epita.fr>
10749
10750 * src/output.c (prepare): Add prefixed names.
10751 (output_parser): Output semantic actions.
10752 (output_parser): Fix bug on '%%line' directives.
6fc74234 10753
26f609ff
RA
10754 * src/output.c (output_headers): Remove. The C code printed by this
10755 function should now be in the skeletons.
10756 (output_trailers): Remove.
10757 (output): Disable call to 'reader_output_yylsp'.
10758 (output_rule_data): Do not output tables to the table obstack.
10759
10760 * src/output.c: Remove some C dedicated output.
10761 Improve the use of macro and output obstacks.
10762 (output_defines): Remove.
6fc74234 10763
26f609ff
RA
10764 * src/output.c (output_token_translations): Associate 'translate'
10765 table with a macro. No output to the table obstack.
10766 (output_gram): Same for 'rhs' and 'prhs'.
10767 (output_stos): Same for 'stos'.
10768 (output_rule_data): Same for 'r1' and 'r2'.
10769 (token_actions): Same for 'defact'.
10770 (goto_actions): Same for 'defgoto'.
10771 (output_base): Same for 'pact' and 'pgoto'.
10772 (output_table): Same for 'table'.
10773 (output_check): Same for 'check'.
6fc74234 10774
26f609ff
RA
10775 * src/output.c (output_table_data): New function.
10776 (output_short_table): Remove.
10777 (output_short_or_char_table): Remove.
6fc74234 10778
26f609ff
RA
10779 * src/output.c (output_parser): Replace most of the skeleton copy code
10780 with something new. Skeletons are now processed character by character
10781 rather than line by line, and Bison looks for '%%' macros. This is the
10782 first step in making Bison's output process (a lot) more flexible.
10783 (output_parser): Use the macro table.
10784
6f43b113
RA
107852001-08-25 Robert Anisko <robert.anisko@epita.fr>
10786
10787 * src/main.c (main): Initialize the macro table.
10788
dd3127cf
RA
107892001-08-25 Robert Anisko <robert.anisko@epita.fr>
10790
10791 * src/lex.c (percent_table): Add tok_define.
10792 * src/lex.h: Add tok_define.
10793
aa321494
RA
107942001-08-25 Robert Anisko <robert.anisko@epita.fr>
10795
10796 * src/macrotab.c: New file.
10797 * src/macrotab.h: New file.
10798 * src/Makefile.am: Update.
10799
68bd3b6b
RA
108002001-08-25 Robert Anisko <robert.anisko@epita.fr>
10801
10802 * lib/hash.c: New file.
10803 * lib/hash.h: New file.
10804 * lib/Makefile.am: Update.
10805
45f8dd1e
AD
108062001-08-15 Akim Demaille <akim@epita.fr>
10807
10808 Version 1.28c.
10809
40a64a7a 108102001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
10811
10812 * src/reader.c (readgram): Indent output macro YYSTYPE.
10813 (packsymbols): Likewise.
10814 (output_token_defines): Likewise.
10815 * src/files.c: Standardize.
10816 (compute_header_macro): New.
10817 (defines_obstack_save): New. Use compute_header_macro.
10818 (output_files): Update. Use defines_obstack_save.
10819
f9a8293a
AD
108202001-08-15 Akim Demaille <akim@epita.fr>
10821
10822 * doc/bison.texinfo (Table of Symbols): Document
10823 YYSTACK_USE_ALLOCA.
10824
150ca7a7
AD
108252001-08-15 Akim Demaille <akim@epita.fr>
10826
10827 * missing: Update from CVS Automake.
10828 * config/config.guess, config/config.sub, config/texinfo.tex:
10829 Update from gnu.org.
10830
69b5cec4
AD
108312001-08-15 Akim Demaille <akim@epita.fr>
10832
10833 * Makefile.maint: Sync with CVS Autoconf.
10834
f2b5126e
PB
108352001-08-14 Pascal Bart <pascal.bart@epita.fr>
10836
69b5cec4 10837 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
10838 `fdl.texi'.
10839 * doc/fdl.texi: Add to package.
10840
4ecbf796
MA
108412001-08-14 Marc Autret <autret_m@epita.fr>
10842
10843 Turn on %{source,header}_extension features.
10844
69b5cec4 10845 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
10846 source_extension.
10847 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 10848 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
10849 between options.
10850
95fb5662
MA
108512001-08-14 Marc Autret <autret_m@epita.fr>
10852
10853 * src/files.c (compute_base_names): Add extensions computing when
10854 `--file-prefix' used.
10855 Standardize function calls.
10856
78d09da9
MA
108572001-08-13 Marc Autret <autret_m@epita.fr>
10858
69b5cec4 10859 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
10860 defining it (defined but null disables alloca).
10861
5a009f2c
MA
108622001-08-13 Marc Autret <autret_m@epita.fr>
10863
10864 * src/bison.simple (_yy_memcpy): CPP reformat.
10865
1e41465a
PB
108662001-08-13 Pascal Bart <pascal.bart@epita.fr>
10867
10868 * tests/atconfig.in (CPPFLAGS): Fix.
10869
c67a198d
PB
108702001-08-10 Pascal Bart <pascal.bart@epita.fr>
10871
79282c6c 10872 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
10873 `gpl.texi'.
10874 * doc/gpl.texi: Add to package.
10875
09a6de7e
MA
108762001-08-10 Marc Autret <autret_m@epita.fr>
10877
10878 * src/print_graph.h: Fix.
10879 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
10880
b77b9ee0
AD
108812001-08-10 Akim Demaille <akim@epita.fr>
10882
10883 * src/system.h: Provide default declarations for stpcpy, strndup,
10884 and strnlen.
10885
3e259915
MA
108862001-08-10 Robert Anisko <anisko_r@epita.fr>
10887
10888 * doc/bison.texinfo (Locations): Update @$ stuff.
10889
ca96bc2d
MA
108902001-08-09 Robert Anisko <anisko_r@epita.fr>
10891
10892 * src/bison.simple (YYLLOC_DEFAULT): Update.
10893 (yyparse): Adjust.
10894
fdc6758b
MA
108952001-08-08 Marc Autret <autret_m@epita.fr>
10896
b77b9ee0 10897 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
10898 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
10899 Reported by Fabrice Bauzac.
957d4dbf 10900
600cad3b
MA
109012001-08-08 Marc Autret <autret_m@epita.fr>
10902
10903 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
10904 * src/vcg.c (output_node): Fix.
10905 * src/vcg.h: Cleanup.
10906 * src/print_graph.c: Add comments.
b77b9ee0 10907 (node_output_size): New global variable. Simplify the formatting of
600cad3b 10908 the VCG graph output.
b77b9ee0 10909 (print_actions): Unused code is now used. It notifies the final state
600cad3b 10910 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 10911 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
10912 blue.
10913 Get the current node name and node_obstack by argument.
10914 (node_obstack): New variable.
10915 (print_state): Manage node_obstack.
10916 (print_core): Use node_obstack given by argument.
10917 A node is not only computed here but in print_actions also.
10918 (print_graph): CPP out useless code instead of commenting it.
10919
976e528f
AD
109202001-08-07 Pascal Bart <pascal.bart@epita.fr>
10921
10922 * tests/atconfig.in (CPPFLAGS): Fix.
10923
20e8e5ca
AD
109242001-08-07 Akim Demaille <akim@epita.fr>
10925
10926 * src/print_graph.c (quote): New.
10927 (print_core): Use it.
10928
957d4dbf 109292001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 10930
3e3da797
AD
10931 * src/vcg.c (complain.h): Include it.
10932 Unepitaize `return' invocations.
c4b66126 10933 [NDEBUG] (main): Remove.
79282c6c 10934 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
10935 * src/files.c (open_files): Initialize graph_obstack.
10936 * src/print_graph.c (print_actions): CPP out useless code.
10937 (print_core): Don't output the last `\n' in labels.
10938 Use `quote'.
10939 * src/files.c (output_files): Output the VCG file.
10940 * src/main.c (main): Invoke print_graph ();
3e3da797 10941
957d4dbf 109422001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
10943
10944 Automaton VCG graph output.
10945 Using option ``-g'' or long option ``--graph'', you can generate
10946 a gram_filename.vcg file containing a VCG description of the LALR (1)
10947 automaton of your grammar.
10948
10949 * src/main.c: Call to print_graph() function.
10950 * src/getargs.h: Update.
10951 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
10952 (graph_flag): New flag.
10953 (longopts): Update.
10954 (getargs): Add case `g'.
10955 * src/files.c (graph_obstack): New obstack struct.
10956 (open_files): Initialize new obstack.
10957 (output_files): Saves graph_obstack if required.
10958 * src/files.h (graph_obstack): New extern declaration.
10959 * src/Makefile.am: Add new source files.
10960
927c1557 109612001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
10962
10963 * src/print_graph.c, src/print_graph.h (graph): New.
10964 * src/vcg.h: New file.
10965 * src/vcg.c: New file, VCG graph handling.
10966
7333d403
AD
109672001-08-06 Marc Autret <autret_m@epita.fr>
10968
10969 Add of %source_extension and %header_extension which specify
10970 the source or/and the header output file extension.
10971
10972 * src/files.c (compute_base_names): Remove initialisation of
10973 src_extension and header_extension.
10974 (compute_exts_from_gf): Update.
10975 (compute_exts_from_src): Update.
10976 (output_files): Update.
10977 * src/reader.c (parse_header_extension_decl): New.
10978 (parse_source_extension_decl): New.
10979 (read_declarations): New case statements for the new tokens.
10980 * src/lex.c (percent_table): Add entries for %source_extension
10981 and %header_extension.
10982 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
10983
84163231
AD
109842001-08-06 Marc Autret <autret_m@epita.fr>
10985
10986 * configure.in: Bump to 1.28c.
10987 * doc/bison.texinfo: Texinfo thingies.
10988
8303fc42
AD
109892001-08-04 Pascal Bart <pascal.bart@epita.fr>
10990
10991 * tests/atconfig.in (CPPFLAGS): Add.
10992 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
10993
70a84437
AD
109942001-08-03 Akim Demaille <akim@epita.fr>
10995
10996 Version 1.28b.
10997
2ce10144
AD
109982001-08-03 Akim Demaille <akim@epita.fr>
10999
11000 * tests/Makefile.am (check-local): Ship testsuite.
11001 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
11002 Include `string.h'.
11003
1e3e4bc1
AD
110042001-08-03 Akim Demaille <akim@epita.fr>
11005
11006 * configure.in: Try using -Wformat when compiling.
11007
42b45b7f
AD
110082001-08-03 Akim Demaille <akim@epita.fr>
11009
11010 * configure.in: Bump to 1.28b.
11011
8f13fe33
AD
110122001-08-03 Akim Demaille <akim@epita.fr>
11013
11014 * src/complain.c: Adjust strerror_r portability issues.
11015
b37ba92c
AD
110162001-08-03 Akim Demaille <akim@epita.fr>
11017
11018 Version 1.28a.
11019
b0ce6046
AD
110202001-08-03 Akim Demaille <akim@epita.fr>
11021
11022 * src/getargs.c, src/getarg.h (skeleton)): Constify.
11023 * src/lex.c (literalchar): Avoid name clashes on `buf'.
11024 * src/getargs.c: Include complain.h.
11025 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
11026 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
11027
d01c415b
AD
110282001-08-03 Akim Demaille <akim@epita.fr>
11029
11030 * src/reader.c (readgram): Display hidden chars in error messages.
11031
459dd1a6
AD
110322001-08-03 Akim Demaille <akim@epita.fr>
11033
11034 Update to gettext 0.10.39.
11035
53b74c0c
AD
110362001-08-03 Akim Demaille <akim@epita.fr>
11037
11038 * lib/strspn.c: New.
11039
234a3be3
AD
110402001-08-01 Marc Autret <autret_m@epita.fr>
11041
11042 * doc/bison.texinfo: Update.
11043 * doc/bison.1 (mandoc): Update.
11044 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
11045 * src/files.c: Support output files extensions computing.
11046 (src_extension): New static variable.
11047 (header_extension): New static variable.
11048 (tr): New function.
11049 (get_extension_index): New function, gets the index of an extension
11050 filename in a string.
11051 (compute_exts_from_gf): New function, computes extensions from the
11052 grammar file extension.
11053 (compute_exts_from_src): New functions, computes extensions from the
11054 C source file extension, file given by ``-o'' option.
11055 (compute_base_names): Update.
11056 (output_files): Update.
11057
847bf1f5
AD
110582001-08-01 Robert Anisko <anisko_r@epita.fr>
11059
d995fee7 11060 * doc/bison.texi: Document @$.
847bf1f5
AD
11061 (Locations): New section.
11062
d074a105
AD
110632001-07-18 Akim Demaille <akim@epita.fr>
11064
11065 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
11066 * config/prev-version.txt, config/move-if-change: New.
11067 * Makefile.am: Adjust.
11068
3419715d
AD
110692001-07-08 Pascal Bart <pascal.bart@epita.fr>
11070
11071 * src/bison.simple (yyparse): Suppress warning `comparaison
11072 between signed and unsigned'.
11073
62ab6972
AD
110742001-07-05 Pascal Bart <pascal.bart@epita.fr>
11075
11076 * src/getargs.h (raw_flag): Remove.
11077 * src/getargs.c: Die on `-r'/`--raw'.
11078 * src/lex.c (parse_percent_token): Die on `%raw'.
11079 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
11080 * tests/calc.at: Suppress test with option `--raw'.
11081
1e24cc5b
AD
110822001-07-14 Akim Demaille <akim@epita.fr>
11083
11084 * config/: New.
11085 * configure.in: Require Autoconf 2.50.
11086 Update to gettext 0.10.38.
11087
32dfccf8
AD
110882001-03-16 Akim Demaille <akim@epita.fr>
11089
11090 * doc/bison.texinfo: ANSIfy the examples.
11091
cd5bd6ac
AD
110922001-03-16 Akim Demaille <akim@epita.fr>
11093
11094 * getargs.c (skeleton): New variable.
11095 (longopts): --skeleton is a new option.
11096 (shortopts, getargs): -S is a new option.
11097 * getargs.h: Declare skeleton.
11098 * output.c (output_parser): Use it.
11099
5141b016
AD
111002001-03-16 Akim Demaille <akim@epita.fr>
11101
11102 * m4/strerror_r.m4: New.
11103 * m4/error.m4: Run AC_FUNC_STRERROR_R.
11104 * lib/error.h, lib/error.c: Update.
11105
447992b9
AD
111062001-03-16 Akim Demaille <akim@epita.fr>
11107
11108 * src/getargs.c (longopts): Clean up.
11109
274d42ce
AD
111102001-02-21 Akim Demaille <akim@epita.fr>
11111
11112 * src/reader.c (gensym): `gensym_count' is your own.
11113 Use a static buf to create the symbol name, as token_buffer is no
11114 longer a buffer.
11115
22c821f3
AD
111162001-02-08 Akim Demaille <akim@epita.fr>
11117
11118 * src/conflicts.c (conflict_report): Be sure not to append to res
11119 between two calls, which could happen if both first sprintf were
11120 skipped, but not the first cp += strlen.
11121
18569462
AD
111222001-02-08 Akim Demaille <akim@epita.fr>
11123
11124 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
11125 New, from fileutils 4.0.37.
11126 * configure.in: Require Autoconf 2.49c. I took some time before
11127 making this decision. This is the only way out for portability
11128 issues in Bison, it would mean way too much duplicate effort to
11129 import in Bison features implemented in 2.49c since 2.13.
11130 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
11131
0d8f3c8a
AD
111322001-02-02 Akim Demaille <akim@epita.fr>
11133
11134 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 11135 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 11136
f17bcd1f
AD
111372001-01-19 Akim Demaille <akim@epita.fr>
11138
11139 Get rid of the ad hoc handling of token_buffer in the scanner: use
11140 the obstacks.
11141
11142 * src/lex.c (token_obstack): New.
11143 (init_lex): Initialize it. No longer call...
11144 (grow_token_buffer): this. Remove it.
11145 Adjust all the places which used it to use the obstack.
11146
511e79b3
AD
111472001-01-19 Akim Demaille <akim@epita.fr>
11148
11149 * src/lex.h: Rename all the tokens:
11150 s/\bENDFILE\b/tok_eof/g;
11151 s/\bIDENTIFIER\b/tok_identifier/g;
11152 etc.
11153 Let them be enums, not #define, to ease debugging.
11154 Adjust all the code.
11155
0d6508ef
AD
111562001-01-18 Akim Demaille <akim@epita.fr>
11157
11158 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
11159 * src/lex.c (maxtoken, grow_token_buffer): Static.
11160
6deb4447
AD
111612001-01-18 Akim Demaille <akim@epita.fr>
11162
11163 Since we now use obstacks, more % directives can be enabled.
11164
11165 * src/lex.c (percent_table): Also accept `%yacc',
11166 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
11167 `%debug'.
11168 Handle the actions for `%semantic_parser' and `%pure_parser' here,
11169 instead of returning a token.
11170 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
11171 * src/reader.c (read_declarations): Adjust.
11172 * src/files.c (open_files): Don't call `compute_base_names', don't
11173 compute `attrsfile' since they depend upon data which might be
11174 *in* the input file now.
11175 (output_files): Do it here.
11176 * src/output.c (output_headers): Document the fact that this patch
11177 introduces a guaranteed SEGV for semantic parsers.
11178 * doc/bison.texinfo: Document them.
11179 * tests/suite.at: Exercise these %options.
11180
ff4423cc
AD
111812000-12-20 Akim Demaille <akim@epita.fr>
11182
11183 Also handle the output file (--verbose) with obstacks.
11184
11185 * files.c (foutput): Remove.
11186 (output_obstack): New.
11187 Adjust all dependencies.
11188 * src/conflicts.c: Return a string.
11189 * src/system.h (obstack_grow_string): Rename as...
11190 (obstack_sgrow): this. Be ready to work with non literals.
11191 (obstack_fgrow4): New.
11192
956dba3a
AD
111932000-12-20 Akim Demaille <akim@epita.fr>
11194
11195 * src/files.c (open_files): Fix the computation of short_base_name
11196 in the case of `-o foo.tab.c'.
11197
337bab46
AD
111982000-12-20 Akim Demaille <akim@epita.fr>
11199
11200 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
11201 (copy_dollar): Now that everything uses obstacks, get rid of the
11202 FILE * parameters.
11203
5d3214b8
AD
112042000-12-20 Akim Demaille <akim@epita.fr>
11205
11206 * src/files.c (open_files): Actually the `.output' file is based
11207 on the short_base_name, not base_name.
11208 * tests/suite.at (Checking output file names): Adjust.
11209
29092a57
AD
112102000-12-20 Akim Demaille <akim@epita.fr>
11211
11212 * src/bison.s1: Remove, we now use directly...
11213 * src/bison.simple: this.
11214 * src/Makefile.am: Use pkgdata instead of data.
11215
ea5607fd
AD
112162000-12-20 Akim Demaille <akim@epita.fr>
11217
11218 * src/files.c (guard_obstack): New.
11219 (open_files): Initialize it.
11220 (output_files): Dump it...
11221 * src/files.h: Export it.
11222 * src/reader.c (copy_guard): Use it.
11223
27110317
AD
112242000-12-19 Akim Demaille <akim@epita.fr>
11225
11226 * src/files.c (outfile, defsfile, actfile): Removed as global
11227 vars.
11228 (open_files): Don't compute them.
11229 (output_files): Adjust.
11230 (base_name, short_base_name): Be global.
11231 Adjust dependencies.
11232
19c50364
AD
112332000-12-19 Akim Demaille <akim@epita.fr>
11234
11235 * src/files.c (strsuffix): New.
11236 (stringappend): Be just like strcat but allocate.
11237 (base_names): Eve out from open_files.
11238 Try to simplify the rather hairy computation of base_name and
11239 short_base_name.
11240 (open_files): Use it.
11241 * tests/suite.at (Checking output file names): New test.
11242
573c1d9f
AD
112432000-12-19 Akim Demaille <akim@epita.fr>
11244
11245 * src/system.h (obstack_grow_literal_string): Rename as...
11246 (obstack_grow_string): this.
11247 * src/output.c (output_parser): Recognize `%% actions' instead of
11248 `$'.
11249 * src/bison.s1: s/$/%% actions/.
11250 * src/bison.hairy: Likewise.
11251
ef7ddedd
AD
112522000-12-19 Akim Demaille <akim@epita.fr>
11253
11254 * src/output.c (output_parser): Compute the `#line' lines when
11255 there are.
11256 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
11257 Suggested by Hans Aberg.
11258
ff61dabd
AD
112592000-12-19 Akim Demaille <akim@epita.fr>
11260
11261 Let the handling of the skeleton files be local to the procedures
11262 that use it.
11263
11264 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
11265 longer static.
11266 (fparser, open_extra_files): Remove.
11267 (open_files, output_files): Don't take care of fparser.
11268 * src/files.h: Adjust.
11269 * src/output.c (output_parser): Open and close the file to the
11270 skeleton.
11271 * src/reader.c (read_declarations): When %semantic_parser, open
11272 fguard.
11273
55b96341
AD
112742000-12-19 Akim Demaille <akim@epita.fr>
11275
11276 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
11277 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
11278
358c15b7
AD
112792000-12-19 Akim Demaille <akim@epita.fr>
11280
11281 * src/files.c (open_files): Yipee! We no longer need all the code
11282 looking for `/tmp' since we have no tmp file.
11283
7de3329e
AD
112842000-12-19 Akim Demaille <akim@epita.fr>
11285
11286 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
11287 New macros.
11288 * src/files.c (open_files): Less dependency on MSDOS etc.
11289
3abcd459
AD
112902000-12-14 Akim Demaille <akim@epita.fr>
11291
11292 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
11293 Provide a default definition.
11294 Use it when executing the default @ action.
11295 * src/reader.c (reader_output_yylsp): No longer include
11296 `timestamp' and `text' in the default YYLTYPE.
11297
2a91a95e
AD
112982000-12-12 Akim Demaille <akim@epita.fr>
11299
11300 * src/reader.c (copy_definition, parse_union_decl, copy_action)
11301 (copy_guard): Quote the file names.
11302 Reported by Laurent Mascherpa.
11303
14d3eb9b
AD
113042000-12-12 Akim Demaille <akim@epita.fr>
11305
11306 * src/output.c (output_headers, output_program, output): Be sure
11307 to escape special characters when outputting filenames.
11308 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
11309 (output_headers): Don't depend on them, Use ACTSTR.
11310
d7045ec6
AD
113112000-11-17 Akim Demaille <akim@epita.fr>
11312
11313 * lib/obstack.h: Formatting changes.
11314 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
11315 prevents type checking.
11316 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
11317 cast the value to (void *): assigning a `foo *' to a `void *'
11318 variable is valid.
11319 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
11320 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
11321 append characters.
11322
6fd54b73
AD
113232000-11-17 Akim Demaille <akim@epita.fr>
11324
11325 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
11326 as...
11327 (suite.m4, regression.m4, calc.m4): these.
11328 * tests/atgeneral.m4: Update from CVS Autoconf.
11329
4c50eae6
AD
113302000-11-17 Akim Demaille <akim@epita.fr>
11331
11332 * tests/regression.m4 (%union and --defines): New test,
11333 demonstrating a current bug in the obstack implementation.
11334
a35f64ea
AD
113352000-11-17 Akim Demaille <akim@epita.fr>
11336
11337 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
11338 macros.
11339 Use them to declare the variables which are global or local to
11340 `yyparse'.
11341
7de23534
AD
113422000-11-17 Akim Demaille <akim@epita.fr>
11343
11344 * acconfig.h: Remove, no longer used.
11345
aa7815f5
AD
113462000-11-07 Akim Demaille <akim@epita.fr>
11347
11348 * src: s/Copyright (C)/Copyright/g.
11349
5af1f549
AD
113502000-11-07 Akim Demaille <akim@epita.fr>
11351
11352 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
11353 defining.
11354 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
11355
553e2b22
AD
113562000-11-07 Akim Demaille <akim@epita.fr>
11357
11358 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
11359 Merge in a single CPP if/else.
11360
8a4f41d6
AD
113612000-11-07 Akim Demaille <akim@epita.fr>
11362
11363 * src/output.c (output): Remove useless variables.
11364 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
11365 argument `data' for consistency with the prototypes.
11366 Qualify it `const'.
11367 (obstack_copy, obstack_copy0): Rename the second argument as
11368 `address' for consistency. Qualify it `const'.
11369 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
11370 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
11371 `const' their input argument (`data' or `address').
11372 Adjust the corresponding macros to include `const' in casts.
11373
095a3fb5
AD
113742000-11-03 Akim Demaille <akim@epita.fr>
11375
11376 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
11377 s/PFILE1/BISON_HAIRY/.
11378 Adjust dependencies.
11379
d1cdce7c
AD
113802000-11-03 Akim Demaille <akim@epita.fr>
11381
090c5ebf 11382 For some reason, this was not applied.
d1cdce7c
AD
11383
11384 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11385 `unlink': it's no longer used.
11386
9311529b
AD
113872000-11-03 Akim Demaille <akim@epita.fr>
11388
11389 * src/files.c (skeleton_find): New function, eved out of...
11390 (open_files, open_extra_files): here.
11391
d8880f69
AD
113922000-11-03 Akim Demaille <akim@epita.fr>
11393
11394 Don't use `atexit'.
11395
11396 * src/files.c (obstack_save): New function.
11397 (done): Rename as...
11398 (output_files): this.
11399 Use `obstack_save'.
11400 * src/main.c (main): Don't use `atexit' to register `done', since
11401 it no longer has to remove tmp files, just call `output_files'
11402 when there are no errors.
11403
0dbb648e
AD
114042000-11-02 Akim Demaille <akim@epita.fr>
11405
11406 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11407 `unlink': it's no longer used.
11408 * src/files.h: Formatting changes.
11409
896fe5c1
AD
114102000-11-02 Akim Demaille <akim@epita.fr>
11411
11412 Remove the last uses of mktemp and unlink/delete.
11413
11414 * src/files.c (fdefines, ftable): Removed.
11415 (defines_ostack, table_obstack): New.
11416 Adjust dependencies of the former into uses of the latter.
11417 * src/output.c (output_short_or_char_table, output_short_table):
11418 Convert to using obstacks.
11419 * src/reader.c (copy_comment2): Accept one FILE * and two
11420 obstacks.
11421 (output_token_defines, reader_output_yylsp): Use obstacks.
11422 * src/system.h (obstack_fgrow3): New.
1f65350a 11423 * po/POTFILES.in: Adjust.
896fe5c1 11424
dd60faec
AD
114252000-11-01 Akim Demaille <akim@epita.fr>
11426
11427 Change each use of `fattrs' into a use of `attrs_obstack'.
11428
11429 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
11430 * src/files.c (fattrs): Remove.
11431 (attrs_obstack): New.
11432 Adjust all dependencies.
11433 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
11434
8c7ebe49
AD
114352000-11-01 Akim Demaille <akim@epita.fr>
11436
11437 Introduce obstacks.
11438 Change each use of `faction' into a use of `action_obstack'.
11439
11440 * lib/obstack.h, lib/obstack.c: New files.
11441 * src/files.c (faction): Remove.
11442 (action_obstack): New.
11443 Adjust all dependencies.
11444
77aee789
AD
114452000-10-20 Akim Demaille <akim@epita.fr>
11446
11447 * lib/quote.h (PARAMS): New macro. Use it.
11448
43591cec
AD
114492000-10-16 Akim Demaille <akim@epita.fr>
11450
11451 * src/output.c (output_short_or_char_table): New function.
11452 (output_short_table, output_token_translations): Use it.
11453 (goto_actions): Use output_short_table.
11454
1e9798d5
AD
114552000-10-16 Akim Demaille <akim@epita.fr>
11456
11457 * src/symtab.c (bucket_new): New function.
11458 (getsym): Use it.
11459
11460 * src/output.c (output_short_table): New argument to display the
11461 comment associated with the table.
11462 Adjust dependencies.
11463 (output_gram): Use it.
11464 (output_rule_data): Nicer output layout for YYTNAME.
11465
f282676b
AD
114662000-10-16 Akim Demaille <akim@epita.fr>
11467
11468 * src/lex.c (read_typename): New function.
11469 (lex): Use it.
11470 * src/reader.c (copy_dollar): Likewise.
11471
550a72a3
AD
114722000-10-16 Akim Demaille <akim@epita.fr>
11473
11474 * src/reader.c (copy_comment2): Expect the input stream to be on
11475 the `/' which is suspected to open a comment, instead of being
11476 called after `//' or `/*' was read.
11477 (copy_comment, copy_definition, parse_union_decl, copy_action)
11478 (copy_guard): Adjust.
11479
131e2fef
AD
114802000-10-16 Akim Demaille <akim@epita.fr>
11481
11482 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
11483 `read_signed_integer'.
11484
79282c5a
AD
114852000-10-16 Akim Demaille <akim@epita.fr>
11486
11487 * src/reader.c (copy_dollar): New function.
11488 (copy_guard, copy_action): Use it.
11489
ff4a34be
AD
114902000-10-16 Akim Demaille <akim@epita.fr>
11491
11492 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
11493 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
11494 New files, from Fileutils 4.0.27.
11495 * src/main.c (printable_version): Remove.
11496 * src/lex.c, src/reader.c: Use `quote'.
11497
114982000-10-04 Akim Demaille <akim@epita.fr>
11499
11500 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
11501
14ded682
AD
115022000-10-04 Akim Demaille <akim@epita.fr>
11503
11504 * doc/bison.texinfo: Various typos spotted by Neil Booth.
11505
8e03724b
AD
115062000-10-04 Akim Demaille <akim@epita.fr>
11507
11508 When a literal string is used to define two different tokens,
11509 `bison -v' segfaults.
11510 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
11511
11512 * tests/regression.m4: New file.
11513 Include the core of the sample provided by Piotr Gackiewicz.
11514 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
11515 properly.
11516
a9e64249
AD
115172000-10-04 Akim Demaille <akim@epita.fr>
11518
11519 * src/reader.c (parse_expect_decl): Keep `count' within the size
11520 of `buffer'.
11521 From Neil Booth.
11522
da9abf43
AD
115232000-10-02 Paul Eggert <eggert@twinsun.com>
11524
11525 * bison.s1 (yyparse): Assign the default value
11526 unconditionally, to avoid a GCC warning and make the parser a
11527 tad smaller.
11528
c33638bb
AD
115292000-10-02 Akim Demaille <akim@epita.fr>
11530
11531 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
11532 options.
11533
444c570a
AD
115342000-10-02 Akim Demaille <akim@epita.fr>
11535
11536 * src/derives.c, src/print.c, src/reduce.c: To ease the
11537 translation, move some `\n' out of the translated strings.
11538
89cab50d
AD
115392000-10-02 Akim Demaille <akim@epita.fr>
11540
11541 The location tracking mechanism is precious for parse error
11542 messages. Nevertheless, it is enabled only when `@n' is used in
11543 the grammar, which is a different issue (you can use it in error
11544 message, but not in the grammar per se). Therefore, there should
11545 be another means to enable it.
11546
11547 * src/getargs.c (getargs): Support `--locations'.
11548 (usage): Report it.
11549 * src/getargs.h (locationsflag): Export it.
11550 * src/lex.c (percent_table): Support `%locations'.
11551 * src/reader.c (yylsp_needed): Remove this variable, now replaced
11552 with `locationsflag'.
11553 * doc/bison.texinfo: Document `--locations' and `%locations'.
11554 Sort the options.
11555 * tests/calc.m4: Test it.
11556
11557 For regularity of the names, replace each
11558 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
11559 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
11560 In addition replace each `flag' with `_flag'.
11561
d6c2cba0
AD
115622000-10-02 Akim Demaille <akim@epita.fr>
11563
11564 Also test parse error messages, including with YYERROR_VERBOSE.
11565
11566 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
11567 associative).
11568 Use it to check the computations.
11569 Use it to check `nonassoc' is honored.
11570 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
11571 `--yyerror-verbose'.
11572 (_AT_CHECK_CALC): Adjust to this option.
11573 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
11574
5a35a6cb
AD
115752000-10-02 Akim Demaille <akim@epita.fr>
11576
11577 Test also `--verbose', `--defines' and `--name-prefix'. Testing
11578 the latter demonstrates a flaw in the handling of non debugging
11579 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
11580 was used in order to simplify:
11581
11582 #if YYDEBUG
11583 if (yydebug)
11584 {
11585 ...
11586 }
11587 #endif
11588
11589 into
11590
11591 if (yydebug)
11592 {
11593 ...
11594 }
11595
11596 unfortunately this leads to a CPP conflict when
11597 `--name-prefix=foo' is used since it produces `#define yydebug
11598 foodebug'.
11599
11600 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
11601 (YYDPRINTF): New macro.
11602 Spread its use.
11603 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
11604 the bison options.
11605 Also test `--verbose', `--defines' and `--name-prefix'.
11606
71da9eea
AD
116072000-10-02 Akim Demaille <akim@epita.fr>
11608
11609 Improve the readability of the produced parsers.
11610
11611 * src/bison.s1: Formatting changes.
11612 Improve the comment related to the `$' mark.
11613 (yydefault): Don't fall through to `yyresume': `goto' there.
11614 * src/output.c (output_parser): When the `$' is met, skip the end
11615 of its line.
11616 New variable, `number_of_dollar_signs', to check there's exactly
11617 one `$' in the parser skeleton.
11618
95e36146
AD
116192000-10-02 Akim Demaille <akim@epita.fr>
11620
11621 * lib/xstrdup.c: New file, from the fileutils.
11622 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
11623 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
11624 instead of strlen + xmalloc + strcpy.
11625 * src/symtab.c (copys): Remove, use xstrdup instead.
11626
d7020c20
AD
116272000-10-02 Akim Demaille <akim@epita.fr>
11628
11629 * src/gram.h (associativity): New enum type which replaces the
11630 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
11631 `right_assoc', `left_assoc' and `non_assoc'.
11632 Adjust all dependencies.
11633 * src/reader.c: Formatting changes.
11634 (LTYPESTR): Don't define it, use it as a literal in
11635 `reader_output_yylsp'.
11636 * src/symtab.h (symbol_class): New enum type which replaces the
11637 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
11638 `sunknown', `stoken and `snterm'.
11639
1916f98e
AD
116402000-10-02 Akim Demaille <akim@epita.fr>
11641
11642 * src/getargs.c (fixed_outfiles): Rename as...
11643 (yaccflag): for consistency and accuracy.
11644 Adjust dependencies.
11645
d7913476
AD
116462000-10-02 Akim Demaille <akim@epita.fr>
11647
11648 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
11649 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
11650 difficult and introduced a lot of core dump. It turns out that
11651 Bison used an implementation of `xmalloc' based on `calloc', and
11652 at various places it does depend upon the initialization to 0. I
11653 have not tried to isolate the pertinent places, and all the former
11654 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
11655 someone should address this issue.
11656
11657 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
11658 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
11659 files.
11660 Adjust dependencies.
11661 * src/warshall.h: New file.
11662 Propagate.
11663
340ef489
AD
116642000-10-02 Akim Demaille <akim@epita.fr>
11665
11666 Various anti-`extern in *.c' changes.
11667
11668 * src/system.h: Include `assert.h'.
11669
b2ca4022
AD
116702000-10-02 Akim Demaille <akim@epita.fr>
11671
11672 * src/state.h (nstates, final_state, first_state, first_shift)
11673 (first_reduction): Move their exportation from here...
11674 * src/LR0.h: to here.
11675 Adjust dependencies.
11676 * src/getargs.c (statisticsflag): New variable.
11677 Add support for `--statistics'.
11678 Adjust dependencies.
11679
11680 Remove a lot of now useless `extern' statements in most files.
11681
403b315b
AD
116822000-10-02 Akim Demaille <akim@epita.fr>
11683
11684 * src/LR0.h: New file.
11685 Propagate its use.
11686
07a58c13
AD
116872000-10-02 Akim Demaille <akim@epita.fr>
11688
11689 * src/print.h: New file.
11690 Propagate its use.
11691 * src/print.c: Formatting and ordering changes.
11692 (verbose, terse): Replace with...
11693 (print_results): this new function.
11694 Adjust dependencies.
11695
0619caf0
AD
116962000-10-02 Akim Demaille <akim@epita.fr>
11697
11698 * src/conflicts.c (conflict_report): New function.
11699 (conflict_log, verbose_conflict_log): Replace with...
11700 (print_conflicts): this function.
11701 Adjust dependencies.
11702 * src/conflicts.h: New file.
11703 Propagate its inclusion.
11704
3519ec76
AD
117052000-10-02 Akim Demaille <akim@epita.fr>
11706
11707 * src/nullable.h: New file.
11708 Propagate its inclusion.
11709 * src/nullable.c: Formatting changes.
11710
015acc48
AD
117112000-10-02 Akim Demaille <akim@epita.fr>
11712
11713 * src/reduce.h: New file.
11714 Propagate its inclusion.
11715 * src/reduce.c: Topological sort and other formatting changes.
11716 (bool, TRUE, FALSE): Move their definition to...
11717 * src/system.h: here.
11718
8963a27b
AD
117192000-10-02 Akim Demaille <akim@epita.fr>
11720
11721 * src/files.c: Formatting changes.
11722 (tryopen, tryclose, openfiles): Rename as...
11723 (xfopen, xfclose, open_files): this.
11724 (stringappend): static.
11725 * src/files.h: Complete the list of exported symbols.
11726 Propagate its use.
11727
a70083a3
AD
117282000-10-02 Akim Demaille <akim@epita.fr>
11729
11730 * src/reader.h: New file.
11731 Propagate its use instead of tedious list of `extern' and
11732 prototypes.
11733 * src/reader.c: Formatting changes, topological sort,
11734 s/register//.
11735
abadc117
AD
117362000-10-02 Akim Demaille <akim@epita.fr>
11737
11738 * src/lex.h: Prototype `lex.c' exported functions.
11739 * src/reader.c: Adjust.
11740 * src/lex.c: Formatting changes.
11741 (safegetc): Rename as...
11742 (xgetc): this.
11743
720d742f
AD
117442000-10-02 Akim Demaille <akim@epita.fr>
11745
11746 * src/lalr.h: New file.
11747 Propagate its inclusion instead of prototypes and `extern'.
11748 * src/lalr.c: Formatting changes, topological sorting etc.
11749
f2acea59
AD
117502000-10-02 Akim Demaille <akim@epita.fr>
11751
11752 * src/output.c (token_actions): Introduce a temporary array,
11753 YYDEFACT, that makes it possible for this function to use
11754 output_short_table.
11755
d019d655
AD
117562000-10-02 Akim Demaille <akim@epita.fr>
11757
11758 `user_toknums' is output as a `short[]' in `output.c', while it is
11759 defined as a `int[]' in `reader.c'. For consistency with the
11760 other output tables, `user_toknums' is now defined as a table of
11761 shorts.
11762
11763 * src/reader.c (user_toknums): Be a short table instead of an int
11764 table.
11765 Adjust dependencies.
11766
11767 Factor the short table outputs.
11768
11769 * src/output.c (output_short_table): New function.
11770 * src/output.c (output_gram, output_stos, output_rule_data)
11771 (output_base, output_table, output_check): Use it.
11772
6c89f1c1
AD
117732000-10-02 Akim Demaille <akim@epita.fr>
11774
11775 * src/output.c (output): Topological sort of the functions, in
11776 order to get rid of the `static' prototypes.
11777 No longer use `register'.
11778 * src/output.h: New file.
11779 Propagate its inclusion in files explicitly prototyping functions
11780 from output.c.
11781
d9efd181
AD
117822000-09-21 Akim Demaille <akim@epita.fr>
11783
11784 * src/atgeneral.m4: Update from Autoconf.
11785
c29240e7 117862000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
11787
11788 * src/closure.h: New file.
11789 * src/closure.c: Formatting changes, topological sort over the
11790 functions, use of closure.h.
11791 (initialize_closure, finalize_closure): Rename as...
11792 (new_closure, free_closure): these. Adjust dependencies.
11793 * src/LR0.c: Formatting changes, topological sort, use of
11794 cloture.h.
11795 (initialize_states): Rename as...
11796 (new_states): this.
11797 * src/Makefile.am (noinst_HEADERS): Adjust.
11798
499daa50
AD
117992000-09-20 Akim Demaille <akim@epita.fr>
11800
11801 * src/acconfig.h: Don't protect config.h against multiple
11802 inclusion.
11803 Don't define PARAMS.
11804 * src/system.h: Define PARAMS.
11805 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
11806 purpose of config.h. system.h must not try to fix wrong
11807 definitions in config.h.
11808
cc84fd5d
AD
118092000-09-20 Akim Demaille <akim@epita.fr>
11810
11811 * src/derives.h: New file.
11812 * src/main.c, src/derives.h: Use it.
11813 Formatting changes.
11814 * src/Makefile.am (noinst_HEADERS): Adjust.
11815
db5b3a89
AD
118162000-09-20 Akim Demaille <akim@epita.fr>
11817
11818 * tests/atgeneral.m4: Update from Autoconf.
11819 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
11820 (AT_CHECK_CALC): New macros.
11821 Use these macros to test bison with options `', `--raw',
11822 `--debug', `--yacc', `--yacc --debug'.
11823
ceed8467
AD
118242000-09-19 Akim Demaille <akim@epita.fr>
11825
11826 * src/output.c: Formatting changes.
11827 * src/machine.h: Remove, leaving its contents in...
11828 * src/system.h: here.
11829 Include stdio.h.
11830 Adjust all dependencies on stdio.h and machine.h.
11831 * src/getargs.h: New file.
11832 Let all `extern' declarations about getargs.c be replaced with
11833 inclusion of `getargs.h'.
11834 * src/Makefile.am (noinst_HEADERS): Adjust.
11835
11836 * tests/calc.m4 (yyin): Be initialized in main, not on the global
11837 scope.
11838 (yyerror): Returns void, not int.
11839 * doc/bison.texinfo: Formatting changes.
11840
05a1d24b
AD
118412000-09-19 Akim Demaille <akim@epita.fr>
11842
11843 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
11844 portable.
11845
cbd25751
AD
118462000-09-18 Akim Demaille <akim@epita.fr>
11847
11848 * configure.in: Append WARNING_CFLAGS to CFLAGS.
11849 * src/Makefile.am (INCLUDES): Don't.
11850 Be ready to fetch headers in lib/.
11851
13863333
AD
118522000-09-18 Akim Demaille <akim@epita.fr>
11853
11854 * doc/bison.texinfo: Update the copyright.
11855 ANSIfy and GNUify the examples.
11856 Remove the old menu.
11857
0d533154
AD
118582000-09-18 Akim Demaille <akim@epita.fr>
11859
11860 First set of tests: use the `calc' example from the documentation.
11861
11862 * src/bison.s1 (yyparse): Condition the code using `yytname' which
11863 is defined only when YYDEBUG is.
11864 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
11865 * src/files.c (tryopen, tryclose): Formatting changes.
11866 Move to the top and be static.
11867 * src/reader.c (read_signed_integer): Likewise.
11868 * tests/calc.m4: New file.
11869 * Makefile.am, suite.m4: Adjust.
11870 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
11871
e79137ac
AD
118722000-09-18 Akim Demaille <akim@epita.fr>
11873
11874 Add support for an Autotest test suite for Bison.
11875
11876 * m4/m4.m4, m4/atconfig.m4: New files.
11877 * m4/Makefile.am (EXTRA_DIST): Adjust.
11878 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
11879 files.
11880 * src/getargs.c: Display a more standard --version message.
11881 * src/reader.c (reader): Formatting changes.
11882 No longer depend upon VERSION_STRING.
11883 * configure.in: No longer use `dnl'.
11884 Set up the test suite and the new directory `tests/.
11885 (VERSION_STRING): Remove.
11886
27821bff
AD
118872000-04-14 Akim Demaille <akim@epita.fr>
11888
11889 * src/reader.c (copy_comment2): New function, same as former
11890 `copy_comment', but outputs into two FILE *.
11891 (copy_comment): Use it.
11892 (parse_union_decl): Use it.
11893 (get_type, parse_start_decl): Use the same `invalid' message.
11894 (parse_start_decl, parse_union_decl): Use the same `multiple'
11895 message.
11896 (parse_union_decl, copy_guard, copy_action): Use the same
11897 `unmatched' message.
11898 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
11899
cfe5fbc0
AD
119002000-03-31 Akim Demaille <akim@epita.fr>
11901
11902 * src/files.c (tryopen, tryclose): Move to the top.
11903 Be static.
11904
cb7db13e
AD
119052000-03-31 Akim Demaille <akim@epita.fr>
11906
11907 * src/main.c (main): Don't call `done', exit does it.
11908
a0f6b076
AD
119092000-03-31 Akim Demaille <akim@epita.fr>
11910
36281465
AD
11911 * allocate.c: s/return (foo)/return foo/.
11912 * lalr.c: Likewise.
11913 * LR0.c: Likewise.
11914 * output.c: Likewise.
11915 * reader.c: Likewise.
11916 * symtab.c: Likewise.
11917 * vmsgetargs.c: Likewise.
11918
119192000-03-31 Akim Demaille <akim@epita.fr>
11920
11921 Clean up the error reporting functions.
a0f6b076
AD
11922
11923 * src/report.c: New file.
11924 * src/report.h: Likewise.
11925 * src/Makefile.am: Adjust.
11926 * m4/error.m4: New file.
11927 * m4/Makefile.am: Adjust.
11928 * configure.in (jm_PREREQ_ERROR): Call it.
11929 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
11930 Remove.
11931 (fatal, fatals): Remove. All callers use complain.c::fatal.
11932 (warn, warni, warns, warnss, warnss): Remove. All callers use
11933 complain.c::complain.
11934 (toomany): Remove, use fatal instead.
11935 * src/files.c (done): No argument, use complain_message_count.
11936 * src/main.c (main): Register `done' to `atexit'.
11937
11938 * src/getargs.c (usage): More `fputs', less `fprintf'.
11939
18539825
AD
119402000-03-28 Akim Demaille <akim@epita.fr>
11941
11942 * lib/: New directory.
11943 * Makefile.am (SUBDIRS): Adjust.
11944 * configure.in: Adjust.
11945 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
11946 useless.
11947 * src/alloca.c: Moved to lib/.
11948 * src/getopt.c: Likewise.
11949 * src/getopt1.c: Likewise.
11950 * src/getopt.h: Likewise.
11951 * src/ansi2knr.c: Likewise.
11952 * src/ansi2knr.1: Likewise.
11953 * src/Makefile.am: Adjust.
11954 * lib/Makefile.am: New file.
11955
9f306f2a
AD
119562000-03-28 Akim Demaille <akim@epita.fr>
11957
11958 * src/getargs.c (usage): Refresh the help message.
11959
0ba347b6
AD
119602000-03-17 Akim Demaille <akim@epita.fr>
11961
11962 * src/getopt1.c: Updated from textutils 2.0e
11963 * src/getopt.c: Likewise.
11964 * src/getopt.h: Likewise.
11965
dbe7f271
AD
119662000-03-17 Akim Demaille <akim@epita.fr>
11967
11968 * src/Makefile.am (bison.simple): Fix the awk program: quote only
11969 the file name, not the whole `#line LINE FILE'.
11970
75bbe78d
AD
119712000-03-17 Akim Demaille <akim@epita.fr>
11972
11973 On syntax errors, report the token on which we choked.
11974
aa5fd0ee
AD
11975 * src/bison.s1 (yyparse): In the label yyerrlab, when
11976 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 11977
7b306f52
AD
119782000-03-17 Akim Demaille <akim@epita.fr>
11979
aa5fd0ee 11980 * src/reader.c (copy_at): New function.
7b306f52
AD
11981 (copy_guard): Use it.
11982 (copy_action): Use it.
11983
e87b5700
AD
119842000-03-17 Akim Demaille <akim@epita.fr>
11985
11986 Be kind to translators, save some useless translations.
11987
aa5fd0ee 11988 * src/main.c (banner): New function.
e87b5700
AD
11989 (fatal_banner): Use it.
11990 (warn_banner): Use it.
11991
ae3c3164
AD
119922000-03-17 Akim Demaille <akim@epita.fr>
11993
aa5fd0ee
AD
11994 * src/reader.c (copy_definition): Use copy_string and
11995 copy_comment. Removed now unused `match', `ended',
11996 `cplus_comment'.
ae3c3164
AD
11997 (copy_comment, copy_string): Moved, to be visible from
11998 copy_definition.
11999
4dc58e7c
AD
120002000-03-17 Akim Demaille <akim@epita.fr>
12001
aa5fd0ee
AD
12002 * src/reader.c (copy_string): Declare `static inline'. No
12003 problems with inline, since it is checked by configure.
4dc58e7c
AD
12004 (copy_comment): Likewise.
12005
0a6384c4
AD
120062000-03-17 Akim Demaille <akim@epita.fr>
12007
aa5fd0ee 12008 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 12009
3cef001a
AD
120102000-03-17 Akim Demaille <akim@epita.fr>
12011
aa5fd0ee 12012 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
12013 (copy_action): Use it. Removed now unused `match', `ended',
12014 `cplus_comment'.
12015 (copy_guard): Likewise.
12016
ca36d2ef
AD
120172000-03-17 Akim Demaille <akim@epita.fr>
12018
aa5fd0ee 12019 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
12020 (copy_action): Use it.
12021 (copy_guard): Likewise.
12022
6666f98f
AD
120232000-03-17 Akim Demaille <akim@epita.fr>
12024
12025 Change the handling of @s so that they behave exactly like $s.
12026 There is now a pseudo variable @$ (readble and writable), location
12027 of the lhs of the rule (by default ranging from the location of
12028 the first symbol of the rhs, to the location of the last symbol,
12029 or, if the rhs is empty, YYLLOC).
12030
12031 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
12032 yyval.
12033 (yyparse): When providing a default semantic action, provide a
12034 default location action.
12035 (after the $): No longer change `*YYLSP', just stack YYLOC the
12036 same way you stack YYVAL.
12037 * src/reader.c (read_declarations): Use warns.
12038 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
12039 (copy_action, case '@'): Likewise.
12040 Use a standard error message, to save useless work from
12041 translators.
12042
41aca2e0
AD
120432000-03-17 Akim Demaille <akim@epita.fr>
12044
aa5fd0ee
AD
12045 * src/bison.s1: Formatting and cosmetics changes.
12046 * src/reader.c: Likewise.
41aca2e0
AD
12047 Update the Copyright notice.
12048
dc08c1d5
AD
120492000-03-17 Akim Demaille <akim@epita.fr>
12050
aa5fd0ee
AD
12051 * src/bison.s1 (#line): All set to `#line' only, since the
12052 Makefile now handles them.
dc08c1d5 12053
9ee3c97b
AD
120542000-03-16 Akim Demaille <akim@epita.fr>
12055
12056 * src/output.c (output_rule_data): Output the documentation of
12057 some of the tables.
12058 (Copyright notice): Update.
12059 Formatting changes.
12060
0de741ca
AD
120612000-03-16 Akim Demaille <akim@epita.fr>
12062
12063 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
12064 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
12065 One `#if YYDEBUG' remains, since it uses variables which are
12066 defined only if `YYDEBUG != 0'.
12067
bb10be54
AD
120682000-03-16 Akim Demaille <akim@epita.fr>
12069
12070 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
12071 and related variables so that the similarities are highlighted.
12072
b07b484a
AD
120732000-03-16 Akim Demaille <akim@epita.fr>
12074
12075 * src/bison.s1: Properly indent CPP directives.
12076
361f60b3
AD
120772000-03-16 Akim Demaille <akim@epita.fr>
12078
12079 * src/bison.s1: Properly indent the `alloca' CPP section.
12080
8c44d3ec
AD
120812000-03-16 Akim Demaille <akim@epita.fr>
12082
12083 Do not hard code values of directories in `configure.in'.
12084 Update the `configure' tool chain.
12085
12086 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
12087 src/makefile.am.
12088 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
12089 (AC_OUTPUT): Add m4/Makefile.
12090 Bump to bison 1.28a, 1.29 has never been released.
12091 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
12092 handled via src/Makefile.am.
12093 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
12094 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
12095 autoheader.
12096 * Makefile.am (SUBDIRS): Add m4.
12097 (ACLOCAL_AM_FLAGS): New variable.
12098 (AUTOMAKE_OPTIONS): Add check-news.
12099 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
12100 the proper line number and file name.
12101 (DEFS): Propagate the location of bison library files and of the
12102 locale files.
12103 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
12104 builddir.
12105 * acinclude.m4: Remove, replaced by the directory m4.
12106 * m4/Makefile.am (EXTRA_DIST): New variable.
12107 * m4/gettext.m4: New file, from the fileutils.
12108 * m4/lcmessage.m4: Likewise
12109 * m4/progtest.m4: Likewise.
12110 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
12111
f95997e7
AD
121122000-03-10 Akim Demaille <akim@epita.fr>
12113
12114 * src/closure.c:
12115 Formatting changes of various comments.
12116 Respect the GNU coding standards at various places.
12117 Don't use `_()' when no translation is needed.
12118
121191999-12-13 Jesse Thilo <jthilo@gnu.org>
12120
12121 * src/files.c:
12122 OS/2 honors TMPDIR environment variable.
12123
121241999-12-13 Jesse Thilo <jthilo@gnu.org>
12125
12126 * doc/bison.texinfo: Tweaked spelling and grammar.
12127 Updated ISBN.
12128 Removed reference to price of printed copy.
12129 Mention BISON_SIMPLE and BISON_HAIRY.
12130
121311999-12-13 Jesse Thilo <jthilo@gnu.org>
12132
12133 * configure.in, NEWS:
12134 Bison 1.29 released.
12135
121361999-10-27 Jesse Thilo <jthilo@gnu.org>
12137
12138 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
12139 Added reference card.
12140
121411999-07-26 Jesse Thilo <jthilo@gnu.org>
12142
12143 * po/ru.po: Added Russian translation.
12144
121451999-07-26 Jesse Thilo <jthilo@gnu.org>
12146
12147 * configure.in: Added Russian translation.
12148
121491999-07-06 Jesse Thilo <jthilo@gnu.org>
12150
12151 * configure.in, NEWS, README:
12152 Released version 1.28.
12153
121541999-06-14 Jesse Thilo <jthilo@gnu.org>
12155
12156 * src/system.h:
12157 Squashed redefinition warning on some systems.
12158
12159 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
12160 Have configure build version string instead of relying on ANSI string
12161 concatentation.
12162
121631999-06-14 Jesse Thilo <jthilo@gnu.org>
12164
12165 * po/POTFILES.in: Got rid of version.c.
12166
121671999-06-14 Jesse Thilo <jthilo@gnu.org>
12168
12169 * acconfig.h, configure.in:
12170 Have configure build version string instead of relying on ANSI string
12171 concatentation.
12172
121731999-06-08 Jesse Thilo <jthilo@gnu.org>
12174
12175 * doc/bison.1:
12176 Dropped mention of `+' for long-named options.
12177
121781999-05-30 Jesse Thilo <jthilo@gnu.org>
12179
12180 * src/files.c: Added <unistd.h> for unlink().
12181
12182 * src/Makefile.am, src/system.h:
12183 I18n fixes.
12184
121851999-05-30 Jesse Thilo <jthilo@gnu.org>
12186
12187 * README: Added a FAQ list.
12188
12189 * configure.in, acconfig.h:
12190 I18n fixes.
12191
121921999-05-30 Jesse Thilo <jthilo@gnu.org>
12193
12194 * doc/FAQ, doc/Makefile.am:
12195 Added a FAQ list.
12196
121971999-05-19 Jesse Thilo <jthilo@gnu.org>
12198
12199 * src/alloc.h, src/symtab.h, src/version.c:
12200 Protected inclusion of "config.h" with HAVE_CONFIG_H.
12201
122021999-04-18 Jesse Thilo <jthilo@gnu.org>
12203
12204 * src/.cvsignore, src/Makefile.am:
12205 Reorganized: sources in `src', documentation in `doc'.
12206
12207 * src/lex.c (literalchar):
12208 fixed the code for escaping double quotes (thanks
12209 Jonathan Czisny.)
12210
122111999-04-18 Jesse Thilo <jthilo@gnu.org>
12212
12213 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
12214 Adjusted paths to reflect directory reorganization.
12215
122161999-04-18 Jesse Thilo <jthilo@gnu.org>
12217
12218 * doc/.cvsignore, doc/Makefile.am:
12219 Reorganized: sources in `src', documentation in `doc'.
12220
122211999-04-18 Jesse Thilo <jthilo@gnu.org>
12222
12223 * configure.in:
12224 Updated AC_INIT file to reflect directory reorganization.
12225
12226 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
12227 Reorganized: sources in `src', documentation in `doc'.
12228
122291999-04-13 Jesse Thilo <jthilo@gnu.org>
12230
12231 * src/allocate.c:
12232 Don't declare calloc() and realloc() if not necessary.
12233
122341999-04-13 Jesse Thilo <jthilo@gnu.org>
12235
12236 * configure.in, acconfig.h, acinclude.m4:
12237 Don't declare calloc() and realloc() if not necessary.
12238
122391999-03-23 Jesse Thilo <jthilo@gnu.org>
12240
12241 * po/.cvsignore: Added i18n support.
12242
122431999-03-23 Jesse Thilo <jthilo@gnu.org>
12244
12245 * acconfig.h, configure.in, Makefile.am:
12246 Added i18n support.
12247
122481999-03-22 Jesse Thilo <jthilo@gnu.org>
12249
12250 * src/bison.s1: Fixed #line numbers.
12251
122521999-03-15 Jesse Thilo <jthilo@gnu.org>
12253
12254 * po/es.po, po/fr.po, po/nl.po, po/de.po:
12255 Added PO files from Translation Project.
12256
122571999-03-03 Jesse Thilo <jthilo@gnu.org>
12258
12259 * Makefile.am:
12260 Added support for non-ANSI compilers (ansi2knr).
12261
122621999-02-16 Jesse Thilo <jthilo@gnu.org>
12263
12264 * configure.in: Bumped version number to 1.27.
12265
12266 * Makefile.am:
12267 Added `bison.simple' to list of files removed by `make distclean'.
12268
122691999-02-12 Jesse Thilo <jthilo@gnu.org>
12270
12271 * src/files.c, src/files.h:
12272 Defined locations of parser files in config.h instead of Makefile.
12273
122741999-02-12 Jesse Thilo <jthilo@gnu.org>
12275
12276 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
12277 Defined locations of parser files in config.h instead of Makefile.
12278
122791999-02-09 Jesse Thilo <jthilo@gnu.org>
12280
12281 * Makefile.am:
12282 Removed inappropriate use of $< macro.
12283
122841999-02-05 Jesse Thilo <jthilo@gnu.org>
12285
12286 * po/Makefile.in.in, po/POTFILES.in:
12287 Add `po' directory skeleton.
12288
122891999-01-27 Jesse Thilo <jthilo@gnu.org>
12290
12291 * README: Document help-bison list.
12292
12293 * configure.in: Add check for mkstemp().
12294
122951999-01-20 Jesse Thilo <jthilo@gnu.org>
12296
12297 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
12298 Hush a few compiler warnings.
12299
12300 * src/files.c:
12301 Add tryclose(), which verifies that fclose was successful.
12302 Hush a couple of compiler warnings.
12303
123041999-01-20 Jesse Thilo <jthilo@gnu.org>
12305
12306 * Makefile.am, OChangeLog:
12307 ChangeLog is now automatically generated. Include the old version as
12308 OChangeLog.
12309
123101999-01-14 Jesse Thilo <jthilo@gnu.org>
12311
12312 * 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:
12313 Update FSF address.
12314
123151999-01-14 Jesse Thilo <jthilo@gnu.org>
12316
12317 * doc/bison.texinfo: Fix formatting glitch.
12318
12319 * doc/bison.texinfo: Update FSF address.
12320
123211999-01-14 Jesse Thilo <jthilo@gnu.org>
12322
12323 * acconfig.h: Update FSF address.
12324
123251999-01-08 Jesse Thilo <jthilo@gnu.org>
12326
12327 * src/system.h:
12328 Don't define PACKAGE here, since config.h defines it.
12329
123301998-12-30 Jesse Thilo <jthilo@gnu.org>
12331
12332 * src/reader.c: Update copyright date.
12333
12334 * src/main.c:
12335 Ditch sprintf to statically-sized buffers in fatal/warn functions in
12336 favor of output directly to stderr (avoids buffer overruns).
12337
12338 * src/reader.c: Some checks for premature EOF.
12339
12340 * 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:
12341 Use prototypes if the compiler understands them.
12342
12343 * src/files.c: Honor TMPDIR on Unix hosts.
12344 Use prototypes if the compiler understands them.
12345
12346 * src/reader.c:
12347 Fix a couple of buffer overrun bugs.
12348 Use prototypes if the compiler understands them.
12349
12350 * src/system.h: Include unistd.h and ctype.h.
12351 Use #ifdef instead of #if for NLS symbols.
12352
123531998-12-30 Jesse Thilo <jthilo@gnu.org>
12354
12355 * doc/bison.texinfo:
12356 Delete comment "consider using @set for edition number, etc..." since
12357 we now are doing so.
12358
123591998-12-30 Jesse Thilo <jthilo@gnu.org>
12360
12361 * configure.in:
12362 Use prototypes if the compiler understands them.
12363
12364 * NEWS: Document 1.26 highlights.
12365
12366 * Makefile.am: Require Automake 1.3 or later.
12367
12368 * acconfig.h:
12369 Use prototypes if the compiler understands them.
12370
123711998-12-29 Jesse Thilo <jthilo@gnu.org>
12372
12373 * src/version.c:
12374 Use VERSION symbol from automake for version number.
12375
123761998-12-29 Jesse Thilo <jthilo@gnu.org>
12377
12378 * acconfig.h, configure.in, version.cin:
12379 Use VERSION symbol from automake for version number.
12380
123811998-11-28 Jesse Thilo <jthilo@gnu.org>
12382
12383 * Makefile.am:
12384 Distribute original version of simple parser (bison.s1), not built
12385 version (bison.simple).
12386
123871998-11-28 Jesse Thilo <jthilo@gnu.org>
12388
12389 * doc/bison.texinfo: Add info dir entry.
12390
12391 * doc/bison.texinfo:
12392 Let automake put version number into documentation.
12393
123941998-11-26 Jesse Thilo <jthilo@gnu.org>
12395
12396 * src/bison.cld, src/build.com, src/vmshlp.mar:
12397 Add non-RCS files from /gd/gnu/bison.
12398
123991998-11-26 Jesse Thilo <jthilo@gnu.org>
12400
12401 * doc/bison.1:
12402 Document the BISON_HAIRY and BISON_SIMPLE variables.
12403
124041998-11-25 Jesse Thilo <jthilo@gnu.org>
12405
12406 * src/version.c: Build version.c automatically.
12407
12408 * src/reader.c:
12409 Fix token numbering (used to start at 258, not 257).
12410
12411 * src/system.h: Include config.h.
12412
12413 * src/getargs.c: Update bug report address.
12414
12415 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
12416 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
12417
124181998-11-25 Jesse Thilo <jthilo@gnu.org>
12419
12420 * Makefile.am:
12421 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
12422
12423 * configure.in, version.cin:
12424 Build version.c automatically.
12425
12426 * AUTHORS: Add AUTHORS file.
12427
12428 * README: Update bug report address.
12429
12430 * bison.simple:
12431 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
12432
12433 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
12434 Add automake stuff.
12435
124361998-11-25 Jesse Thilo <jthilo@gnu.org>
12437
12438 * doc/bison.texinfo: Clean up some formatting.
12439
124401998-05-05 Richard Stallman <rms@gnu.org>
12441
12442 * doc/bison.texinfo:
12443 Explain better why to make a pure parser.
12444
124451998-01-05 Richard Stallman <rms@gnu.org>
12446
12447 * src/files.c (openfiles):
12448 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
12449 find a temporary directory, if possible. Do not unlink files while
12450 they are open.
12451
124521997-08-25 Richard Stallman <rms@gnu.org>
12453
12454 * src/reader.c (stack_offset;):
12455 Change some warni to warns.
12456
12457 * src/lex.c (literalchar): Use warns, not warni.
12458
124591997-06-28 Richard Stallman <rms@gnu.org>
12460
12461 * src/bison.s1: Add a Bison version comment.
12462
12463 * src/main.c (fatal, warn, berror):
12464 Use program_name.
12465
124661997-06-28 Richard Stallman <rms@gnu.org>
12467
12468 * Makefile.in (bison_version): New variable.
12469 (dist): Use that variable.
12470 (bison.s1): Substitute the Bison version into bison.simple.
12471
12472 * bison.simple: Add a Bison version comment.
12473
124741997-06-18 Richard Stallman <rms@gnu.org>
12475
12476 * src/main.c (fatal, warn, berror):
12477 Make error messages standard.
12478 (toomany): Improve error message text.
12479
12480 * 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:
12481 new.h renamed to alloc.h.
12482
124831997-06-18 Richard Stallman <rms@gnu.org>
12484
12485 * Makefile.in: new.h renamed to alloc.h.
12486
124871997-05-24 Richard Stallman <rms@gnu.org>
12488
12489 * src/lex.c (literalchar):
12490 Fix the code for escaping \, " and '.
12491
12492 (lex): Avoid trouble when there are many chars
12493 to discard in a char literal with just several chars in it.
12494
124951997-05-17 Richard Stallman <rms@gnu.org>
12496
12497 * src/bison.s1:
12498 Use malloc, if using alloca is troublesome.
12499 (YYSTACK_USE_ALLOCA): New flag macro.
12500 Define it for some systems and compilers.
12501 (YYSTACK_ALLOC): New macro.
12502 (yyparse): Use YYSTACK_ALLOC to allocate stack.
12503 If it was malloc'd, free it.
12504
125051997-05-17 Richard Stallman <rms@gnu.org>
12506
12507 * bison.simple:
12508 Use malloc, if using alloca is troublesome.
12509 (YYSTACK_USE_ALLOCA): New flag macro.
12510 Define it for some systems and compilers.
12511 (YYSTACK_ALLOC): New macro.
12512 (yyparse): Use YYSTACK_ALLOC to allocate stack.
12513 If it was malloc'd, free it.
12514
125151997-04-23 Richard Stallman <rms@gnu.org>
12516
12517 * src/bison.s1:
12518 (alloca) [__hpux]: Always define as __builtin_alloca.
12519
125201997-04-23 Richard Stallman <rms@gnu.org>
12521
12522 * bison.simple:
12523 (alloca) [__hpux]: Always define as __builtin_alloca.
12524
125251997-04-22 Richard Stallman <rms@gnu.org>
12526
12527 * src/bison.s1:
12528 [__hpux]: Include alloca.h (right for HPUX 10)
12529 instead of declaring alloca (right for HPUX 9).
12530
12531 * src/bison.s1 (__yy_memcpy):
12532 Declare arg `count' as unsigned int.
12533 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
12534
125351997-04-22 Richard Stallman <rms@gnu.org>
12536
12537 * bison.simple:
12538 [__hpux]: Include alloca.h (right for HPUX 10)
12539 instead of declaring alloca (right for HPUX 9).
12540
12541 * bison.simple (__yy_memcpy):
12542 Declare arg `count' as unsigned int.
12543 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
12544
125451997-01-03 Richard Stallman <rms@gnu.org>
12546
12547 * src/allocate.c: [__STDC__ or _MSC_VER]:
12548 Declare calloc and realloc to return void *.
12549
125501997-01-02 Richard Stallman <rms@gnu.org>
12551
12552 * src/system.h:
12553 [_MSC_VER]: Include stdlib.h and process.h.
12554 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
12555
12556 * src/main.c (main): Return FAILURE as a value.
12557 (printable_version): Declare arg as int, not char.
12558
125591997-01-02 Richard Stallman <rms@gnu.org>
12560
12561 * Makefile.in (dist):
12562 Explicitly check for symlinks, and copy them.
12563
125641996-12-19 Richard Stallman <rms@gnu.org>
12565
12566 * src/files.c:
12567 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
12568
125691996-12-18 Paul Eggert <eggert@gnu.org>
12570
12571 * src/bison.s1 (yyparse):
12572 If __GNUC__ and YYPARSE_PARAM are both defined,
12573 declare yyparse to have a void * argument.
12574
125751996-12-18 Paul Eggert <eggert@gnu.org>
12576
12577 * bison.simple (yyparse):
12578 If __GNUC__ and YYPARSE_PARAM are both defined,
12579 declare yyparse to have a void * argument.
12580
125811996-12-17 Richard Stallman <rms@gnu.org>
12582
12583 * src/reduce.c (nbits): Add some casts.
12584
125851996-08-12 Richard Stallman <rms@gnu.org>
12586
12587 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
12588
125891996-08-12 Richard Stallman <rms@gnu.org>
12590
12591 * bison.simple: Test _MSDOS as well as _MSDOS_.
12592
125931996-07-31 Richard Stallman <rms@gnu.org>
12594
12595 * src/bison.s1:
12596 [__sun && __i386]: Include alloca.h.
12597
125981996-07-31 Richard Stallman <rms@gnu.org>
12599
12600 * bison.simple:
12601 [__sun && __i386]: Include alloca.h.
12602
126031996-07-30 Richard Stallman <rms@gnu.org>
12604
12605 * src/bison.s1: Comment change.
12606
12607 * src/bison.s1: Test _MSDOS_, not MSDOS.
12608
126091996-07-30 Richard Stallman <rms@gnu.org>
12610
12611 * bison.simple: Comment change.
12612
12613 * bison.simple: Test _MSDOS_, not MSDOS.
12614
126151996-06-01 Richard Stallman <rms@gnu.org>
12616
12617 * 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:
12618 Insert `_' macro around many string constants.
12619
12620 * src/main.c:
12621 Insert `_' macro around many string constants.
12622
12623 (main): Call setlocale, bindtextdomain and textdomain.
12624
12625 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
12626 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
12627 [ENABLE_NLS]: Include libintl.h.
12628 [ENABLE_NLS] (gettext): Define.
12629 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
12630 (N_, PACKAGE, LOCALEDIR): New macros.
12631
126321996-06-01 Richard Stallman <rms@gnu.org>
12633
12634 * POTFILES.in: New file.
12635
12636 * Makefile.in (allocate.o):
12637 Define target explicitly.
12638
12639 * Makefile.in (CFLAGS): Set to @CFLAGS@.
12640 (LDFLAGS): Set to @LDFLAGS@.
12641 (configure): Run autoconf only if preceding `cd' succeeds.
12642 (bison.s1): Redirect output to temporary file then move the
12643 temporary to the target, rather than redirecting directly to bison.s1.
12644 (clean): Remove config.status and config.log.
12645 (distclean): Don't remove config.status here.
12646
126471996-05-12 Richard Stallman <rms@gnu.org>
12648
12649 * src/bison.s1:
12650 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12651
126521996-05-12 Richard Stallman <rms@gnu.org>
12653
12654 * bison.simple:
12655 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12656
126571996-05-11 Richard Stallman <rms@gnu.org>
12658
12659 * src/bison.s1 (__yy_memcpy):
12660 Really reorder the args, as was supposedly done on Feb 14 1995.
12661 (yyparse): Calls changed accordingly.
12662
126631996-05-11 Richard Stallman <rms@gnu.org>
12664
12665 * Makefile.in (dist): Don't use $(srcdir).
12666
12667 * bison.simple (__yy_memcpy):
12668 Really reorder the args, as was supposedly done on Feb 14 1995.
12669 (yyparse): Calls changed accordingly.
12670
126711996-01-27 Richard Stallman <rms@gnu.org>
12672
12673 * src/output.c (output_rule_data):
12674 Test YYERROR_VERBOSE in the conditional
12675 around the definition of ttyname.
12676
126771995-12-29 Richard Stallman <rms@gnu.org>
12678
12679 * src/bison.s1:
12680 Fix line numbers in #line commands.
12681
126821995-12-29 Richard Stallman <rms@gnu.org>
12683
12684 * bison.simple:
12685 Fix line numbers in #line commands.
12686
126871995-12-27 Richard Stallman <rms@gnu.org>
12688
12689 * src/bison.s1 (YYPARSE_PARAM_DECL):
12690 In C++, make it always null.
12691 (YYPARSE_PARAM_ARG): New macro.
12692 (yyparse): Use YYPARSE_PARAM_ARG.
12693
126941995-12-27 Richard Stallman <rms@gnu.org>
12695
12696 * bison.simple (YYPARSE_PARAM_DECL):
12697 In C++, make it always null.
12698 (YYPARSE_PARAM_ARG): New macro.
12699 (yyparse): Use YYPARSE_PARAM_ARG.
12700
127011995-11-29 Richard Stallman <rms@gnu.org>
12702
12703 * doc/bison.texinfo:
12704 Describe literal string tokens, %raw, %no_lines, %token_table.
12705
127061995-11-29 Daniel Hagerty <hag@gnu.org>
12707
12708 * doc/bison.texinfo: Fixed update date
12709
127101995-10-16 Richard Stallman <rms@gnu.org>
12711
12712 * src/version.c: Version 1.25.
12713
127141995-10-16 Richard Stallman <rms@gnu.org>
12715
12716 * NEWS: *** empty log message ***
12717
127181995-10-16 Richard Stallman <rms@gnu.org>
12719
12720 * doc/bison.1, doc/bison.rnh:
12721 Add new options.
12722
127231995-10-15 Richard Stallman <rms@gnu.org>
12724
12725 * src/vmsgetargs.c, src/getargs.c:
12726 Added -n, -k, and -raw switches.
12727 (noparserflag, toknumflag, rawtoknumflag): New variables.
12728
12729 * src/symtab.h (SALIAS):
12730 New #define for adding aliases to %token.
12731 (struct bucket): Added `alias' field.
12732
12733 * src/reduce.c (reduce_grammar):
12734 Revise error message.
12735 (print_notices): Remove final `.' from error message.
12736
12737 * src/reader.c (reader_output_yylsp):
12738 New function.
12739 (readgram): Use `#if 0' around code that accepted %command
12740 inside grammar rules: The documentation doesn't allow it,
12741 and it will fail since the %command processors scan for the next %.
12742 (parse_token_decl): Extended the %token
12743 declaration to allow a multi-character symbol as an alias.
12744 (parse_thong_decl): New function.
12745 (read_declarations): Added %thong declarations.
12746 (read_declarations): Handle NOOP to deal with allowing
12747 % declarations as another means to specify the flags.
12748 (readgram): Allow %prec prior to semantics embedded in a rule.
12749 (skip_to_char, read_declarations, copy_definition)
12750 (parse_token_decl, parse_start_decl, parse_type_decl)
12751 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
12752 (get_type_name, copy_guard, copy_action, readgram)
12753 (get_type, packsymbols): Revised most error messages.
12754 Changed `fatal' to `warnxxx' to avoid aborting for error.
12755 Revised and use multiple warnxxx functions to avoid using VARARGS1.
12756 (read_declarations): Improve the error message for
12757 an invalid character. Do not abort.
12758 (read_declarations, copy_guard, copy_action): Use
12759 printable_version to avoid unprintable characters in printed output.
12760 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
12761 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
12762 Allow the type of a non-terminal can be given
12763 more than once, as long as all specifications give the same type.
12764
12765 * src/output.c:
12766 (output_headers, output_trailers, output, output_gram)
12767 (output_rule_data): Implement noparserflag variable.
12768 Implement toknumflag variable.
12769 (output): Call reader_output_yylsp to output LTYPESTR.
12770
12771 * src/main.c (main):
12772 If reader sees an error, don't process the grammar.
12773 (fatals): Updated to not use VARARGS1.
12774 (printable_version, int_to_string, warn, warni, warns, warnss)
12775 (warnsss): New error reporting functions. Avoid abort for error.
12776
12777 * src/lex.h:
12778 Added THONG and NOOP for alias processing.
12779 Added SETOPT for the new code that allows setting options with %flags.
12780
12781 * src/lex.c:
12782 Include getopt.h. Add some extern decls.
12783 (safegetc): New function to deal with EOF gracefully.
12784 (literalchar); new function to deal with reading \ escapes.
12785 (lex): Use literalchar.
12786 (lex): Implemented "..." tokens.
12787 (literalchar, lex, parse_percent_token): Made tokenbuffer
12788 always contain the token. This includes growing the token
12789 buffer while reading an integer.
12790 (parse_percent_token): Replaced if-else statement with percent_table.
12791 (parse_percent_token): Added % declarations as another
12792 way to specify the flags -n, -l, and -r. Also added hooks for
12793 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
12794 major changes to files.c.
12795 (lex) Retain in the incoming stream a character following
12796 an incorrect '/'.
12797 (skip_white_space, lex): Revised most error messages
12798 and changed fatal to warn to avoid aborting.
12799 (percent_table): Added %thong declarations.
12800
12801 * src/gram.h: Comment changes.
12802
12803 * src/files.c (openfiles, open_extra_files, done):
12804 Add faction flag
12805 and actfile file. Handle noparserflag. Both for -n switch.
12806
12807 * src/conflicts.c (resolve_sr_conflict):
12808 Remove use of alloca.
12809
128101995-06-01 Jim Meyering <meyering@gnu.org>
12811
12812 * doc/bison.texinfo: *** empty log message ***
12813
128141995-05-06 Richard Stallman <rms@gnu.org>
12815
12816 * src/bison.s1: Comment change.
12817
128181995-05-06 Richard Stallman <rms@gnu.org>
12819
12820 * bison.simple: Comment change.
12821
128221995-05-03 Richard Stallman <rms@gnu.org>
12823
12824 * src/version.c: Version now 1.24.
12825
12826 * src/bison.s1: Change distribution terms.
12827
12828 * src/version.c: Version now 1.23.
12829
128301995-05-03 Richard Stallman <rms@gnu.org>
12831
12832 * doc/bison.texinfo:
12833 Rewrite "Conditions for Using Bison".
12834 Update version to 1.24.
12835
128361995-05-03 Richard Stallman <rms@gnu.org>
12837
12838 * bison.simple: Change distribution terms.
12839
128401995-02-23 Richard Stallman <rms@gnu.org>
12841
12842 * src/files.c: Test __VMS_POSIX as well as VMS.
12843
128441995-02-14 Jim Meyering <meyering@gnu.org>
12845
12846 * src/bison.s1 (__yy_memcpy):
12847 Renamed from __yy_bcopy to avoid
12848 confusion. Reverse FROM and TO arguments to be consistent with
12849 those of memcpy.
12850
128511995-02-14 Jim Meyering <meyering@gnu.org>
12852
12853 * bison.simple (__yy_memcpy):
12854 Renamed from __yy_bcopy to avoid
12855 confusion. Reverse FROM and TO arguments to be consistent with
12856 those of memcpy.
12857
128581994-11-10 David J. MacKenzie <djm@gnu.org>
12859
12860 * NEWS: reformat
12861
12862 * NEWS: New file.
12863
12864 * Makefile.in (DISTFILES): Include NEWS.
12865
12866 * Makefile.in (DISTFILES):
12867 Include install-sh, not install.sh.
12868
12869 * configure.in: Update to Autoconf v2 macro names.
12870
128711994-10-05 David J. MacKenzie <djm@gnu.org>
12872
12873 * Makefile.in: fix typo
12874
12875 * Makefile.in (prefix, exec_prefix):
12876 Let configure set them.
12877
128781994-09-28 David J. MacKenzie <djm@gnu.org>
12879
12880 * Makefile.in: Set datadir to $(prefix)/share.
12881
128821994-09-15 Richard Stallman <rms@gnu.org>
12883
12884 * src/bison.s1:
12885 Update copyright notice and GPL version.
12886
128871994-09-15 Richard Stallman <rms@gnu.org>
12888
12889 * bison.simple:
12890 Update copyright notice and GPL version.
12891
128921994-07-12 Richard Stallman <rms@gnu.org>
12893
12894 * src/reduce.c, src/reader.c:
12895 entered into RCS
12896
128971994-05-05 David J. MacKenzie <djm@gnu.org>
12898
12899 * Makefile.in: entered into RCS
12900
129011994-03-26 Richard Stallman <rms@gnu.org>
12902
12903 * src/bison.s1: entered into RCS
12904
129051994-03-26 Richard Stallman <rms@gnu.org>
12906
12907 * bison.simple: entered into RCS
12908
129091994-03-25 Richard Stallman <rms@gnu.org>
12910
12911 * src/main.c: entered into RCS
12912
129131994-03-24 Richard Stallman <rms@gnu.org>
12914
12915 * src/conflicts.c: entered into RCS
12916
129171994-01-02 Richard Stallman <rms@gnu.org>
12918
12919 * Makefile.in: *** empty log message ***
12920
129211993-11-21 Richard Stallman <rms@gnu.org>
12922
12923 * src/bison.s1: *** empty log message ***
12924
129251993-11-21 Richard Stallman <rms@gnu.org>
12926
12927 * doc/bison.texinfo: entered into RCS
12928
12929 * doc/bison.texinfo: *** empty log message ***
12930
129311993-11-21 Richard Stallman <rms@gnu.org>
12932
12933 * bison.simple: *** empty log message ***
12934
129351993-10-25 David J. MacKenzie <djm@gnu.org>
12936
12937 * doc/bison.texinfo: *** empty log message ***
12938
129391993-10-19 Richard Stallman <rms@gnu.org>
12940
12941 * src/bison.s1: *** empty log message ***
12942
129431993-10-19 Richard Stallman <rms@gnu.org>
12944
12945 * bison.simple: *** empty log message ***
12946
129471993-10-14 Richard Stallman <rms@gnu.org>
12948
12949 * src/bison.s1: *** empty log message ***
12950
129511993-10-14 Richard Stallman <rms@gnu.org>
12952
12953 * bison.simple: *** empty log message ***
12954
129551993-09-14 David J. MacKenzie <djm@gnu.org>
12956
12957 * doc/bison.texinfo: *** empty log message ***
12958
129591993-09-13 Noah Friedman <friedman@gnu.org>
12960
12961 * Makefile.in: *** empty log message ***
12962
129631993-09-10 Richard Stallman <rms@gnu.org>
12964
12965 * src/conflicts.c: *** empty log message ***
12966
12967 * src/system.h: entered into RCS
12968
129691993-09-10 Richard Stallman <rms@gnu.org>
12970
12971 * doc/bison.1: entered into RCS
12972
129731993-09-06 Noah Friedman <friedman@gnu.org>
12974
12975 * src/version.c: entered into RCS
12976
129771993-09-06 Noah Friedman <friedman@gnu.org>
12978
12979 * Makefile.in: *** empty log message ***
12980
129811993-07-30 David J. MacKenzie <djm@gnu.org>
12982
12983 * Makefile.in: *** empty log message ***
12984
129851993-07-24 Richard Stallman <rms@gnu.org>
12986
12987 * src/bison.s1: *** empty log message ***
12988
129891993-07-24 Richard Stallman <rms@gnu.org>
12990
12991 * bison.simple: *** empty log message ***
12992
129931993-07-08 David J. MacKenzie <djm@gnu.org>
12994
12995 * Makefile.in: *** empty log message ***
12996
129971993-07-04 Richard Stallman <rms@gnu.org>
12998
12999 * src/bison.s1: *** empty log message ***
13000
130011993-07-04 Richard Stallman <rms@gnu.org>
13002
13003 * bison.simple: *** empty log message ***
13004
130051993-06-26 David J. MacKenzie <djm@gnu.org>
13006
13007 * src/getargs.c: entered into RCS
13008
130091993-06-26 David J. MacKenzie <djm@gnu.org>
13010
13011 * doc/bison.texinfo: *** empty log message ***
13012
13013 * doc/bison.1: New file.
13014
130151993-06-25 Richard Stallman <rms@gnu.org>
13016
13017 * src/getargs.c: New file.
13018
130191993-06-16 Richard Stallman <rms@gnu.org>
13020
13021 * src/bison.s1: *** empty log message ***
13022
130231993-06-16 Richard Stallman <rms@gnu.org>
13024
13025 * bison.simple: *** empty log message ***
13026
130271993-06-03 Richard Stallman <rms@gnu.org>
13028
13029 * src/bison.s1: New file.
13030
130311993-06-03 Richard Stallman <rms@gnu.org>
13032
13033 * doc/bison.texinfo: *** empty log message ***
13034
130351993-06-03 Richard Stallman <rms@gnu.org>
13036
13037 * bison.simple: New file.
13038
130391993-05-19 Richard Stallman <rms@gnu.org>
13040
13041 * doc/bison.texinfo: New file.
13042
130431993-05-07 Noah Friedman <friedman@gnu.org>
13044
13045 * Makefile.in: *** empty log message ***
13046
130471993-04-28 Noah Friedman <friedman@gnu.org>
13048
13049 * src/reader.c: *** empty log message ***
13050
130511993-04-23 Noah Friedman <friedman@gnu.org>
13052
13053 * src/alloc.h: entered into RCS
13054
130551993-04-20 David J. MacKenzie <djm@gnu.org>
13056
13057 * src/version.c: *** empty log message ***
13058
13059 * src/files.c, src/allocate.c:
13060 entered into RCS
13061
13062 * src/reader.c: *** empty log message ***
13063
13064 * src/lex.c: entered into RCS
13065
13066 * src/conflicts.c: New file.
13067
13068 * src/symtab.c: entered into RCS
13069
13070 * src/alloc.h: New file.
13071
13072 * src/LR0.c: entered into RCS
13073
130741993-04-18 Noah Friedman <friedman@gnu.org>
13075
13076 * src/reader.c: New file.
13077
13078 * src/version.c: *** empty log message ***
13079
130801993-04-18 Noah Friedman <friedman@gnu.org>
13081
13082 * Makefile.in: *** empty log message ***
13083
130841993-04-17 Noah Friedman <friedman@gnu.org>
13085
13086 * Makefile.in: *** empty log message ***
13087
130881993-04-15 Richard Stallman <rms@gnu.org>
13089
13090 * src/main.c, src/files.c:
13091 New file.
13092
130931993-04-15 Noah Friedman <friedman@gnu.org>
13094
13095 * configure.in: entered into RCS
13096
13097 * configure.in: *** empty log message ***
13098
13099 * configure.in: New file.
13100
131011993-04-14 Richard Stallman <rms@gnu.org>
13102
13103 * Makefile.in: New file.
13104
131051993-04-13 Richard Stallman <rms@gnu.org>
13106
13107 * src/version.c: New file.
13108
131091993-03-25 Richard Stallman <rms@gnu.org>
13110
13111 * src/output.c: entered into RCS
13112
131131992-09-25 Richard Stallman <rms@gnu.org>
13114
13115 * configure.bat: entered into RCS
13116
131171992-06-22 Richard Stallman <rms@gnu.org>
13118
13119 * src/vmsgetargs.c: entered into RCS
13120
131211992-06-22 Richard Stallman <rms@gnu.org>
13122
13123 * doc/bison.rnh: entered into RCS
13124
131251992-04-20 David J. MacKenzie <djm@gnu.org>
13126
13127 * README: entered into RCS
13128
131291992-01-22 Richard Stallman <rms@gnu.org>
13130
13131 * src/machine.h: entered into RCS
13132
131331991-12-21 Richard Stallman <rms@gnu.org>
13134
13135 * src/lalr.c, src/closure.c:
13136 entered into RCS
13137
131381991-12-20 Richard Stallman <rms@gnu.org>
13139
13140 * src/state.h: entered into RCS
13141
131421991-12-18 Richard Stallman <rms@gnu.org>
13143
13144 * src/print.c, src/nullable.c, src/derives.c:
13145 entered into RCS
13146
131471991-11-03 David J. MacKenzie <djm@gnu.org>
13148
13149 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
13150 entered into RCS
13151
131521988-09-09 Richard Stallman <rms@gnu.org>
13153
13154 * src/bison.hairy: entered into RCS
13155
131561987-12-16 Richard Stallman <rms@gnu.org>
13157
13158 * REFERENCES: entered into RCS
dc546b0f 13159
f294a2c2
AD
13160-----
13161
33167b8b 13162Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
dd0e0635 131631998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
f294a2c2 13164
33167b8b 13165This file is part of Bison, the GNU Compiler Compiler.
f294a2c2 13166
33167b8b 13167Bison is free software; you can redistribute it and/or modify
f294a2c2
AD
13168it under the terms of the GNU General Public License as published by
13169the Free Software Foundation; either version 2, or (at your option)
13170any later version.
13171
33167b8b 13172Bison is distributed in the hope that it will be useful,
f294a2c2
AD
13173but WITHOUT ANY WARRANTY; without even the implied warranty of
13174MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13175GNU General Public License for more details.
13176
13177You should have received a copy of the GNU General Public License
33167b8b 13178along with Bison; see the file COPYING. If not, write to
f294a2c2
AD
13179the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
13180Boston, MA 02111-1307, USA.