]> git.saurik.com Git - bison.git/blame_incremental - ChangeLog
* configure.ac (AC_INIT): Bump version to 1.875f.
[bison.git] / ChangeLog
... / ...
CommitLineData
12004-12-10 Paul Eggert <eggert@cs.ucla.edu>
2
3 * configure.ac (AC_INIT): Bump version to 1.875f.
4
52004-12-10 Paul Eggert <eggert@cs.ucla.edu>
6
7 * NEWS: Version 1.875e.
8 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
9
10 * src/scan-skel.l: Include "complain.h", for "fatal".
11
12 * src/relation.h (relation_print, relation_digraph):
13 Relation sizes are of type relation_node, not size_t (this is
14 merely a doc fix, since the two types are equivalent).
15 (relation_transpose): Relation sizes are of type relation_node,
16 not int.
17 * src/relation.c: Likewise.
18 (top, infinity): Now of type relation_node, not int.
19 (traverse, relation_transpose): Use relation_node, not int.
20
21 * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
22 with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
23 (yyparse): Remove unused local introduced in 2004-10-25 patch.
24
25 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
26 specifying whether the test should be skipped. Use it tp
27 specify that the [%defines %skeleton "lalr1.cc"] tests currently
28 fail on some hosts, and should be skipped.
29
302004-12-08 Paul Eggert <eggert@cs.ucla.edu>
31
32 * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers
33 changed to use xcalloc, xnmalloc, xnrealloc, respectively,
34 unless otherwise specified below.
35
36 * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
37 to allocate kernel_base, kernel_items, kernel_size, since
38 they needn't be initialized to 0.
39 (allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
40 * src/closure.c (new_closure): Likewise, for itemset.
41 * src/derives.c (derives_compute): Likewise, for delts, derives, q.
42 * src/lalr.c (set_goto_map): Likewise, for temp_map.
43 (initialize_F): Likewise, for reads, edge, reads[i], includes[i].
44 (build_relations): Likewise for edge, states1, includes.
45 * src/nullable.c (nullable_compute): Likewise, for squeue, relts.
46 * src/reader.c (packgram): Likewise, for ritem, rules.
47 * src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
48 * src/relation.c (relation_digraph): Likewise for VERTICES.
49 (relation_transpose): Likewise for new_R, end_R.
50 * src/symtab.c (symbols_token_translations_init): Likewise for
51 token_translations.
52 * src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
53 (token_actions): Likewise for yydefact, actrow, conflrow,
54 conflict_list.
55 (save_column): Likewise for froms[symno], tos[symno].
56 (goto_actions): Likewise for state_count.
57 (pack_table): Likewise for base, pos, check.
58 (tables_generate): Likewise for width.
59
60 * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
61 for initial core. Just have a separate core, so we needn't worry
62 about whether kernel_size and kernel_base are initialized.
63
64 * src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
65 kernel_size, kernel_items): Remove unnecessary initialization.
66 * src/conflicts.c (conflicts): Likewise.
67 * src/derives.c (derives): Likewise.
68 * src/muscle_tablc (muscle_insert): Likewise.
69 * src/relation.c (relation_digraph): Likewise.
70 * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
71 conflrow, conflict_table, conflict_list, table, check):
72 Likewise.
73
74 * src/closure.c (new_closure): Arg is of type unsigned int, not int.
75 This is because all callers pass unsigned int.
76 * src/closure.h (new_closure): Likewise.
77
78 * src/lalr.c (initialize_F): Initialize reads[i] in all cases.
79 (build_relations): Initialize includes[i] in all cases.
80 * src/reader.c (packgram): Always initialize rules[ruleno].prec
81 and rules[ruleno].precsym. Initialize members in order.
82 * src/relation.c (relation_transpose): Always initialize new_R[i]
83 and end_R[i].
84 * src/table.c (conflict_row): Initialize 0 at end of conflict_list.
85
86 * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
87 conflict_list[0] was always 0, but now it isn't initialized.
88
89 * src/table.c (table_grow): When conflict_table grew, the grown
90 area wasn't cleared. Fix this.
91
92 * lib/.cvsignore: Add strdup.c, strdup.h.
93 * m4/.cvsignore: Add strdup.m4.
94
952004-12-07 Paul Eggert <eggert@cs.ucla.edu>
96
97 * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
98 * src/lalr.c (set_goto_map): Don't allow ngotos to equal
99 GOTO_NUMBER_MAXIMUM, since we occasionally compute
100 ngotos + 1 without checking for overflow.
101 (build_relations): Use END_NODE, not -1, to denote end of edges.
102 * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
103 build_relations): Use goto_number, not int, for goto numbers.
104 * src/tables.c (save_column, default_goto): Likewise.
105
1062004-11-23 Akim Demaille <akim@epita.fr>
107
108 * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
109 of #defining from yystype.
110 Don't typedef yystype, C++ does not need it.
111 This lets it possible to forward declare it as union.
112
1132004-11-23 Paul Eggert <eggert@cs.ucla.edu>
114
115 * bootstrap (gnulib_modules): Add extensions.
116 Problem reported by Jim Meyering.
117
1182004-11-22 Paul Eggert <eggert@cs.ucla.edu>
119
120 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
121 src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
122 src/system.h, src/tables.c: XFREE -> free, to accommodate
123 recent change to gnulib xalloc.h.
124 Problem reported by Jim Meyering.
125
1262004-11-17 Akim Demaille <akim@epita.fr>
127
128 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
129
1302004-10-28 Akim Demaille <akim@epita.fr>,
131 Alexandre Duret-Lutz <adl@gnu.org>
132
133 * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
134 changes.
135 (YYCDEBUG): Adjust.
136 Use it instead of cdebug_.
137 (Parser::debug_stream, Parser::set_debug_stream): New.
138 (Parser::symprint_): Define cdebug_ for temporary backward
139 compatibility.
140 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
141 debug_stream ().
142
1432004-11-17 Akim Demaille <akim@epita.fr>
144
145 * data/lalr1.cc (Parser:print_): Remove, use %printer instead.
146 * tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
147 * tests/calc.at (_AT_DATA_CALC_Y): Ditto.
148 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
149
1502004-10-27 Paul Eggert <eggert@cs.ucla.edu>
151
152 * data/glr.c (yyloc_default): Remove; not used.
153 Problem reported by Frank Heckenbach.
154
1552004-10-25 Akim Demaille <akim@epita.fr>
156
157 * data/glr.c (YYRHSLOC): Move its definition next to its uses.
158 Introduce another definition to address simple location arrays.
159 (yyGLRStack): New member: yyerror_range.
160 (yyrecoverSyntaxError, yyparse): Update it.
161 (yyrecoverSyntaxError): Use it when shifting the error token to
162 have an accurate range, equivalent to the one computed by both
163 yacc.c and lalr1.cc.
164 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
165 that column numbers start at column 0, as per GNU Coding
166 Standards, the others tests, and the doc.
167 (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
168 Adjust to the above change (first column is 0).
169 And adjust the location of the "<error>", now covering the whole
170 line.
171
1722004-10-22 Akim Demaille <akim@epita.fr>
173 and Paul Eggert <eggert@cs.ucla.edu>
174
175 Remove some arbitrary limits on goto numbers and relations.
176 * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
177 initial values, since they're never used.
178 (set_goto_map): ngotos is now unsigned, so test for overflow
179 by seeing whether it wraps around to zero.
180 * src/lalr.h (goto_number): Now size_t, not short int.
181 (GOTO_NUMBER_MAXIMUM): Remove.
182 * src/relation.c (relation_print, traverse, relation_transpose):
183 Check for END_NODE rather than looking at sign.
184 * src/relation.h (END_NODE): New macro.
185 (relation_node): Now size_t, not short int.
186
1872004-10-22 Paul Eggert <eggert@cs.ucla.edu>
188
189 * doc/bison.texinfo (Language and Grammar): In example, "int" is a
190 keyword, not an identifier. Problem reported by Baron Schwartz in
191 <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
192
1932004-10-11 Akim Demaille <akim@epita.fr>
194
195 * src/symtab.c (symbol_check_alias_consistency): Also check
196 type names, destructors, and printers.
197 Reported by Alexandre Duret-Lutz.
198 Recode the handling of associativity and precedence in terms
199 of symbol_precedence_set.
200 Accept no redeclaration at all, not even equal to the previous
201 value.
202 (redeclaration): New.
203 Use it to factor redeclaration complaints.
204 (symbol_make_alias): Don't set the type of the alias, let
205 symbol_check_alias_consistency do it as for other features.
206 * src/symtab.h (symbol): Add new member prec_location, and
207 type_location.
208 * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
209 * tests/input.at (Incompatible Aliases): New.
210
2112004-10-09 Paul Eggert <eggert@cs.ucla.edu>
212
213 .cvsignore fixes to accommodate gnulib changes,
214 and the practice of naming build directories "_build".
215 * .cvsignore: Add "_*". Sort.
216 * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
217 * m4/.cvsignore: Add "*_gl.m4".
218
2192004-10-06 Akim Demaille <akim@epita.fr>
220
221 * src/parse-gram.y (add_param): Fix the truncation of trailing
222 spaces.
223
2242004-10-05 Akim Demaille <akim@epita.fr>
225
226 In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
227 whether the reducion was empty or not. This leaves room to
228 improve the use of YYLLOC_DEFAULT in such a case.
229 lalr1.cc is still experimental, so changing this is acceptable.
230 And finally, there are probably not many users who changed the
231 handling of locations in GLR, so changing is admissible too.
232
233 * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
234 empty reduction, set @$ to an empty location ending the previously
235 stacked symbol.
236 Adjust uses to make sure the code is triggered on empty
237 reductions.
238 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
239 expected output: empty reductions have empty locations.
240
2412004-09-29 Akim Demaille <akim@epita.fr>
242
243 * data/lalr1.cc: Move towards a more standard C++ coding style
244 for templates: Class < T > -> Class<T>.
245
2462004-09-29 Akim Demaille <akim@epita.fr>
247
248 * data/lalr1.cc: Reinstall the former ctor, for sake of
249 compatibility, but warn it will be removed.
250 Move towards a more standard C++ coding style (i.e., type *var ->
251 type* var).
252
2532004-09-27 Paul Eggert <eggert@cs.ucla.edu>
254
255 * src/parse-gram.y (add_param): Rewrite to avoid strchr,
256 since it's less likely to work if NULs are involved in the future.
257
2582004-09-27 Akim Demaille <akim@epita.fr>
259
260 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
261
2622004-09-27 Akim Demaille <akim@epita.fr>
263
264 * data/lalr1.cc (b4_parse_param_decl_1): New.
265 (b4_parse_param_decl): Use it to have different names between attribute
266 and argument names.
267 (b4_cc_constructor_call): Likewise.
268
2692004-09-24 Akim Demaille <akim@epita.fr>
270
271 * src/parse-gram.y (add_param): Strip the leading and trailing
272 blanks from a formal argument declaration.
273 (YY_LOCATION_PRINT): New.
274
2752004-09-24 Akim Demaille <akim@epita.fr>
276
277 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
278 after the location.
279
2802004-09-24 Akim Demaille <akim@epita.fr>
281
282 * doc/bison.texinfo (Table of Symbols): Sort.
283
2842004-09-21 Akim Demaille <akim@epita.fr>
285
286 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
287 the useless parentheses.
288 Suggested by Paul Eggert.
289
2902004-09-20 Akim Demaille <akim@epita.fr>
291
292 Let the initial-action act on the look-ahead, and use it for the
293 "initial push" (corresponding to an hypothetical beginning-of-file).
294 And let lalr1.cc honor %initial-action.
295
296 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
297 example.
298 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
299 (Parser::Parser): Remove the ctor that used to initialize it.
300 (Parser::parse): Like in the other skeletons, issue the "starting
301 parse" message before any action.
302 Honor %initial-action.
303 Initialize the stacks with the lookahead.
304 * data/yacc.c: Let $$ and @$ in %initial-action designate the
305 look-ahead.
306 Push them in the stacks.
307 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
308
3092004-09-20 Akim Demaille <akim@epita.fr>
310
311 * doc/bison.texinfo (Initial Action Decl): New.
312
3132004-09-20 Akim Demaille <akim@epita.fr>
314
315 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
316 clearer criterion to define it.
317 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
318 When reducing on an empty RHS, use the latest stacked location as
319 location.
320 yylloc is not always available.
321 * data/glr.c: Likewise.
322 Also, honor initial-actions.
323
3242004-09-20 Akim Demaille <akim@epita.fr>
325
326 * data/yacc.c (YY_LOCATION_PRINT): New.
327 Define when we know YYLTYPE's structure, i.e., when the default
328 YYLLOC_DEFAULT is used.
329 * data/c.m4 (b4_yysymprint_generate): Use it.
330 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
331 value of the result.
332 (error_start_): Replace with...
333 (error_range_): this location array.
334 This allows to replace code relying on the implementation of
335 locations by portable code.
336 * data/yacc.c (yylerrsp): Replace with...
337 (yyerror_range): this.
338 Every time a token is popped, update yyerror_range[0], to have an
339 accurate location for the error token.
340 * data/glr.c (YY_LOCATION_PRINT): New.
341 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
342 deference a pointer.
343 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
344 report the location in %printers.
345
346 * src/scan-skel.l: Instead of abort, report error messages to ease
347 understanding skeleton scanning failures.
348
3492004-09-16 Akim Demaille <akim@epita.fr>
350
351 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
352 (iterator, const_iterator): these, to be more in the C++ spirit.
353 Also, return reverse iterators so that when displaying the stack
354 we display its bottom first.
355 (Parser::stack_print_, Parser::reduce_print_): Match the messages
356 from yacc.c.
357 We should probably use vector here though.
358
3592004-09-16 Akim Demaille <akim@epita.fr>
360
361 Have more complete shift traces.
362
363 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
364 to report Shifts instead of ad hoc YYDPRINTF invocations,
365 including for the error token.
366 * data/lalr1.cc (symprint_): Output the location.
367 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
368 output the location within the %printer.
369 Activate GLR tests, at least to make sure they compile properly.
370 They still don't pass though.
371 * tests/calc.at: Adjust expect verbose output, since now "Entering
372 state..." is on a different line than the "Shifting" message.
373
3742004-09-08 Akim Demaille <akim@epita.fr>
375
376 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
377 Bison directive from the Bison file to the invocation of this
378 macro, so that these directives are passed to
379 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
380 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
381 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
382 the extra Bison directives instead of the whole series.
383 Change the grammar so that there are recoverable errors, and
384 unrecoverable errors. Now we can have the parser give up before
385 consuming the whole input. As a result we now can observe that
386 the lookahead is freed when needed.
387 Change the parser source to parse argv[1] instead of a hard coded
388 string.
389 Simplify yylex, and give a value and location to EOF.
390 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
391 passed directives already coded in the file.
392 Add some tests to check the location of "error".
393 For some tests, the C++ parser is correct, and not yacc.c.
394 For other tests, they provide different, but unsatisfying, values,
395 so keep the C++ value so that at least one parser is "correct"
396 according to the test suite.
397 (Actions after errors): Remove, this is subsumed by the
398 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
399
4002004-09-06 Akim Demaille <akim@epita.fr>
401
402 * data/lalr1.cc: Adjust the indentation of the labels.
403 (Parser::pop): New.
404 Use it.
405
4062004-09-06 Akim Demaille <akim@epita.fr>
407
408 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
409 argument, an informative message.
410 Call YY_SYMBOL_PRINT.
411 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
412 * data/lalr1.cc (destruct_): Likewise.
413 In addition, no longer depend on b4_yysymprint_generate and
414 b4_yydestruct_generate to generate these functions, do it "by
415 hand".
416
4172004-09-03 Akim Demaille <akim@epita.fr>
418
419 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
420 invoked, yydestruct the lookahead.
421 * tests/calc.at (Calculator $1): Update the expected lengths of
422 traces: there is an added line for the discarded lookahead.
423 * doc/bison.texinfo (Destructor Decl): Some rewording.
424 Define "discarded" symbols.
425
4262004-09-02 Akim Demaille <akim@epita.fr>
427
428 * data/lalr1.cc (translate_, destruct_): No reason to be static.
429
4302004-09-02 Akim Demaille <akim@epita.fr>
431
432 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
433 (YYDSYMPRINTF): Rename as...
434 (YY_SYMBOL_PRINT): this.
435 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
436 two.
437 Use it instead of direct symprint_ calls.
438 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
439 one.
440
4412004-09-02 Akim Demaille <akim@epita.fr>
442
443 * data/lalr1.cc (b4_yysymprint_generate): New.
444 (symprint_): New member function, defined when YYDEBUG.
445 Use it consistently instead of token/nterm debugging output by
446 hand.
447 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
448 %printer calls to use cdebug_ when using lalr1.cc.
449
4502004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
451
452 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
453 with #ifdef YYDEBUG.
454
4552004-08-26 Akim Demaille <akim@epita.fr>
456
457 * doc/bison.texinfo (Implementing Loops): Rename as...
458 (Implementing Gotos/Loops): this.
459
4602004-08-13 Paul Eggert <eggert@cs.ucla.edu>
461
462 Adjust to latest gnulib.
463 * bootstrap (gnulib_modules): Add xalloc-die.
464 Set LC_ALL=C so that file names sort consistently.
465 Prefer the gnulib copies of gettext.m4, glibc21.m4,
466 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
467 uintmax_t.m4, ulonglong.m4.
468 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
469 po.m4 since we are now using _gl.m4 instead.
470
4712004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
472
473 * src/scan-action.l: Remove. Scanning of semantic actions is
474 handled in scan-gram.l.
475
4762004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
477
478 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
479
480 * src/location.h (struct): The file member is a uniqstr.
481 (equal_boundaries): Use UNIQSTR_EQ for comparison.
482
4832004-07-22 Paul Eggert <eggert@cs.ucla.edu>
484
485 Fix bug with non-%union parsers that have printers or destructors,
486 which led to a Bison core dump. Reported by Peter Fales in
487 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
488
489 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
490 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
491 not to our own type.
492 * src/output.c (symbol_destructors_output, symbol_printers_output):
493 Don't assume %union.
494 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
495 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
496 UNION-FLAG. All callers changed.
497 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
498 Use type char, not unsigned int, when declaring an array of char;
499 this lets us remove a cast.
500 (Printers and Destructors): Add non-%union test cases.
501
5022004-06-21 Paul Eggert <eggert@cs.ucla.edu>
503
504 * doc/bison.texinfo: Minor editorial changes, mostly to the new
505 GLR writeups. E.g., avoid frenchspacing and the future tense,
506 change "lookahead" to "look-ahead", and change "wrt" to "with
507 respect to".
508
5092004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
510
511 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
512 New sections, split off from the GLR Parsers section. Put the new
513 Simple GLR Parser near the start of the GLR section, for clarity.
514 Rewrite connective text.
515
5162004-06-21 Frank Heckenbach <frank@g-n-u.de>
517
518 * doc/bison.texinfo (Simple GLR Parsers): New section.
519
5202004-06-21 Paul Eggert <eggert@cs.ucla.edu>
521
522 * NEWS, TODO, doc/bison.texinfo:
523 Use "look-ahead" instead of "lookahead", to be consistent.
524 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
525 while we're fixing "look-ahead".
526 * src/conflicts.c (shift_set): Renamed from shiftset.
527 (look_ahead_set): Renamed from lookaheadset.
528 * src/print.c: Likewise.
529 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
530 name for "lookahead".
531 (report_types, usage): Likewise.
532 * src/getargs.h (report_look_ahead_tokens): Renamed from
533 report_lookaheads.
534 * src/lalr.c (compute_look_ahead_tokens): Renamed from
535 compute_lookaheads.
536 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
537 (look_ahead_tokens_print): Renamed from lookaheads_print.
538 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
539 state_rule_lookaheads_print.
540 * src/state.h: Likewise.
541 (reductions.look_ahead_tokens): Renamed from lookaheads.
542 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
543 AT_DATA_LOOKAHEADS_GRAMMAR.
544
5452004-06-03 Paul Eggert <eggert@cs.ucla.edu>
546
547 * README: Update location of patched M4 distribution.
548
5492004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
550
551 Don't assume the C++ compiler takes the same arguments as the C compiler
552 (trivial change).
553 * configure.ac (O0CXXFLAGS): New var.
554 * tests/atlocal.in (CXXFLAGS): Use it.
555
5562004-05-29 Paul Eggert <eggert@cs.ucla.edu>
557
558 Fix some "make check" problems with C++ reported by
559 Albert Chin-A-Young for Tru64 C++ in this thread:
560 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
561
562 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
563 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
564 Output to a .cc file for C++, not to a .c file.
565 * tests/calc.at (AT_CHECK_CALC): Likewise.
566 * tests/regression.at (AT_CHECK_DANCER): Likewise.
567 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
568
5692004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
570
571 * tests/calc.at, tests/actions.at: Workaround for SGI
572 C++ compiler. (trivial change)
573
5742004-05-27 Paul Eggert <eggert@cs.ucla.edu>
575
576 Spent a few hours checking out which prerequisite versions the
577 current sources actually require. I went all the way back to
578 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
579 a seemingly endless set of combinations of versions more recent
580 than that. The bottom line is that the current sources require
581 fairly recent versions of the build tools, and it'll be some work
582 to change this.
583 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
584 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
585 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
586 Add comments explaining why those particular versions are
587 currently needed.
588
589 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
590 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
591 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
592
593 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
594 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
595
5962004-05-26 Paul Eggert <eggert@cs.ucla.edu>
597
598 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
599 0.11.5. Suggested by Bruno Haible.
600 * bootstrap: Remove gettext version checking.
601
602 * doc/bison.texinfo (Decl Summary): Also mention that %union
603 can depend on prerequisite types. Problem reported by Tim
604 Van Holder.
605
6062004-05-25 Paul Eggert <eggert@cs.ucla.edu>
607
608 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
609 * README-alpha: Don't tell people not to package this.
610
611 * bootstrap: Don't assume $(...) works; use `...` instead.
612 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
613 gettext better.
614
615 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
616 put into the -d output file, and mention what to do if YYSTYPE is
617 defined as a macro.
618
6192004-05-24 Paul Eggert <eggert@cs.ucla.edu>
620
621 Undo change made earlier today: it caused autopoint to not bring
622 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
623 autopoint's.
624
625 * bootstrap: Check that gettext version matches what's in
626 configure.ac. Warn users to ignore robots.txt ERROR 404.
627 * bootstrap: Undo today's earlier change (logged below).
628 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
629
630 The gettext version checking is causing more trouble than it's
631 curing; remove it. Problem reported by Paul Hilfinger.
632
633 * bootstrap: Issue a warning that one can expect a message
634 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
635 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
636
6372004-05-23 Paul Eggert <eggert@cs.ucla.edu>
638
639 Ensure that the C++ compiler used for testing actually works on a
640 simple test program; if not, skip the C++-related tests. Problem
641 reported by Vin Shelton in:
642 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
643
644 * m4/cxx.m4: New file.
645 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
646 * tests/atlocal.in (BISON_CXX_WORKS): Add.
647 * tests/local.at (AT_COMPILE_CXX): Use it.
648
6492004-05-21 Paul Eggert <eggert@cs.ucla.edu>
650
651 * data/glr.c (yylloc): Output this macro even if locations are not
652 being generated, as the GLR parser needs it even in that case.
653 Problem reported by Troy A. Johnson
654 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
655
656 * configure.ac (AC_INIT): Update to 1.875e.
657
6582004-05-21 Paul Eggert <eggert@cs.ucla.edu>
659
660 * NEWS: Version 1.875d.
661 * configure.ac (AC_INIT): Likewise.
662 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
663
664 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
665 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
666 lalr1.cc runs afoul of the first, and the last two are no longer
667 supported by GCC 3.4.0.
668 * README: Mention GNU m4 1.4 or later; mention m4 patches.
669 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
670
6712004-05-06 Paul Eggert <eggert@cs.ucla.edu>
672
673 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
674 unsigned int, for compatibility with latest gnulib hash module.
675 * src/state.c (state_hash, state_hasher): Likewise.
676 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
677 * src/uniqstr.c (hash_uniqstr): Likewise.
678
6792004-05-03 Paul Eggert <eggert@cs.ucla.edu>
680
681 * NEWS: Unescaped newlines are no longer allowed in char & strings.
682
683 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
684 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
685 character and string literals.
686 (unexpected_end): New function.
687 (unexpected_eof): Use it.
688 (unexpected_newline): New function.
689 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
690 actions.
691
692 * NEWS: Document %expect-rr.
693
694 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
695 Fix typo by replacing $1 with $option.
696 Remove more 'intl'-related files.
697 Don't DEFUN AM_INTL_SUBDIR twice.
698
699 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
700 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
701 strtoul.c.
702 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
703 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
704 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
705 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
706 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
707 * src/.cvsignore: Add *.output.
708
709 * src/parse-gram.y: Put copyright notice inside %{ %} so it
710 gets copied to the output file.
711
7122004-04-28 Paul Eggert <eggert@twinsun.com>
713
714 Get files from the gnulib and po repositories, instead of relying
715 on them being in our CVS. Upgrade to latest versions of gnulib
716 and Automake.
717
718 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
719 * bootstrap: Bootstrap from gnulib and po repositories.
720 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
721 * README-cvs: Document these changes. Remove version numbers from
722 mentions of build tools, since they change so often. Mention Flex.
723
724 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
725 (gl_USE_SYSTEM_EXTENSIONS): Add.
726 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
727 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
728 does this for us.
729 (AC_ISC_POSIX): Remove; we no longer support this
730 ancient OS, as it gets in the way of latest Autoconf & gnulib.
731 (AC_HEADER_STDC): Remove: we now assume C89 or better.
732 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
733 Do not check for C89 headers, except for locale.h which is used
734 by the Yacc library and must port to K&R hosts.
735 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
736 Do not check for C89 functions, except for setlocale which is
737 used by the Yacc library.
738 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
739 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
740 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
741 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
742 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
743 AM_GNU_GETTEXT): Remove; now done by:
744 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
745 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
746 for us.
747
748 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
749 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
750 Define to empty, as gnulib.mk will do the rest for us.
751 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
752 for us.
753 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
754 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
755
756 * src/files.c: Include gnulib's xstrndup.h.
757
758 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
759 (REALLOC): Use xnrealloc, for likewise.
760 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
761 (strnlen, memrchr): Remove decls; functions no longer used.
762 Include <stpcpy.h>.
763
764 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
765 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
766 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
767 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
768 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
769 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
770 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
771 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
772 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
773 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
774 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
775 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
776 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
777 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
778 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
779 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
780 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
781 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
782 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
783 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
784 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
785 Remove, as these files are now generated automatically
786 by bootstrap or automake.
787
788 * po/ChangeLog: Remove: all but one entry was a duplicate
789 of this file, and I moved that 2000-11-02 entry here.
790
791 * config/.cvsignore: Add Makefile, depcomp, install-sh.
792 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
793 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
794 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
795 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
796 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
797 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
798 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
799 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
800 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
801 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
802 xstrndup.h.
803 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
804 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
805 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
806 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
807 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
808 * src/.cvsignore: Remove *_.c.
809
810
811 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
812 support it. (The latest stable gzip doesn't.)
813
8142004-04-27 Paul Eggert <eggert@twinsun.com>
815
816 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
817 case, as stos_ is now used by destructors due to the 2004-02-09
818 change.
819
820 Remove more K&R C support.
821 * lib/libiberty.y (PARAMS): Remove. All uses removed.
822 * lib/subpipe.c (errno): Remove decl.
823 Include <stdlib.h> unconditionally.
824 (EXIT_FAILURE): Remove macro.
825 * src/complain.c (vfprintf, strerror): Remove.
826 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
827 unconditionally.
828 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
829 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
830 (strchr, strspn, memchr): Remove decls.
831 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
832 unconditionally. Do not declare perror.
833 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
834 unconditionally.
835
836 * src/complain.c (_): Remove useless defn, as system.h defines this.
837
838 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
839 with latest obstack.h.
840 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
841 to procedure types, as obstack.h now does that for us.
842 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
843
844 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
845 so that this include file can stand alone.
846 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
847 does this now. Include subpipe.h first after config.h, to
848 test whether it can stand alone.
849
850 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
851 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
852 unused declaration.
853
854 * tests/synclines.at (%union synch line): Put a dummy member in
855 the union, because empty unions aren't allowed in C. Caught
856 by GCC 3.4.0.
857
8582004-04-13 Jim Meyering <jim@meyering.net>
859
860 * src/conflicts.c (conflicts_print): Correct format string typo:
861 use `%%' to produce literal `%'. (trivial change)
862
8632004-03-30 Paul Eggert <eggert@twinsun.com>
864
865 * src/getargs.c (version): Update copyright year to 2004.
866
867 * data/c.m4 (b4_int_type): Use 'short int' rather than
868 'short', and similarly for 'long', 'unsigned', etc.
869 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
870 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
871 yy_yypstack, yydumpstack): Likewise.
872 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
873 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
874 Likewise.
875 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
876 yy_stack_print, yyparse): Likewise.
877 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
878 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
879 * lib/bitset.c (bitset_print): Likewise.
880 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
881 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
882 * lib/bitsetv.c (bitsetv_dump): Likewise.
883 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
884 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
885 Likewise.
886 * src/LR0.c (allocate_itemsets): Likewise.
887 * src/gram.h (rule_number, rule): Likewise.
888 * src/lalr.h (goto_number): Likewise.
889 * src/nullable.c (nullable_compute): Likewise.
890 * src/output.c (prepare_rules): Likewise.
891 * src/relation.c (relation_print, relation_digraph): Likewise.
892 * src/relation.h (relation_node): Likewise.
893 * src/state.h (state_number, transitions, errs, reductions,
894 struct state): Likewise.
895 * src/symtab.h (symbol_number, struct symbol): Likewise.
896 * src/tables.c (vector_number, tally, action_number,
897 default_goto, goto_actions): Likewise.
898 * tests/existing.at (GNU Cim Grammar): Likewise.
899 * tests/regression.at (Web2c Actions): Likewise.
900
901 * src/output.c (muscle_insert_short_int_table): Renamed from
902 muscle_insert_short_table. All uses changed.
903
9042004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
905
906 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
907 (declaration): Replace expected_conflicts with expected_sr_conflicts.
908 Add %expect-rr rule.
909
910 * src/scan-gram.l: Recognize %expect-rr.
911
912 * src/conflicts.h (expected_sr_conflicts): Rename from
913 expected_conflicts.
914 (expected_rr_conflicts): Declare.
915
916 * src/conflicts.c (expected_sr_conflicts): Rename from
917 expected_conflicts.
918 (expected_rr_conflicts): Define.
919 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
920 for GLR parsers.
921 Use expected_sr_conflicts in place of expected_conflicts.
922 Warn if expected_rr_conflicts used in non-GLR parser.
923
924 * doc/bison.texinfo: Add documentation for %expect-rr.
925
9262004-03-08 Paul Eggert <eggert@gnu.org>
927
928 Add support for hex token numbers. Suggested by Odd Arild Olsen in
929 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
930
931 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
932 in lalr1.cc.
933 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
934 * src/scan-gram.l (scan_integer): New function.
935 ({int}): Use it.
936 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
937 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
938 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
939 Say "long int", not "long", for uniformity with GNU style.
940
9412004-02-25 Paul Eggert <eggert@twinsun.com>
942
943 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
944 compilers. This fixes a problem with Intel's C++ compiler being
945 chatty, reported by Guido Trentalancia in
946 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
947
9482004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
949
950 Support %destructor and merge error locations in lalr1.cc.
951
952 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
953 (Parser::stos_): Define unconditionally.
954 (Parser::destruct_): New method. Generate its body with
955 b4_yydestruct_generate.
956 (Parser::error_start_): New attribute.
957 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
958 token which are discarded.
959 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
960 error_start_ when erroneous token are discarded.
961 (Parser::parse) <yyerrlab1>: Compute the location of the error
962 token so that it covers all the discarded tokens.
963 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
964 it can be called with `%skeleton "lalr1.cc"', and do that.
965
9662004-02-02 Paul Eggert <eggert@twinsun.com>
967
968 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
969 $(top_srcdir)/lib and ../lib. This fixes a bug reported
970 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
971 There's no need to mention top_builddir since Automake does that
972 for us.
973 (INCLUDES): Remove, as Automake says it's obsolescent.
974 Contents migrated into AM_CPPFLAGS as described above.
975 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
976
9772004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
978
979 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
980 (yyreportSyntaxError): Handle case where lookahead token is
981 YYEMPTY.
982
9832004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
984
985 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
986 resulting parsers are compilable with C++.
987
9882003-12-23 Paul Eggert <eggert@twinsun.com>
989
990 * config/depcomp, config/install-sh: Sync with Automake 1.8.
991 * src/output.c (output_skeleton): Rename local var.
992 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
993 Bison tokens, as this runs afoul of the 2003-10-07 change that
994 disallowed NUL bytes in character constants or string literals.
995
996 * tests/local.at: Require Autoconf 2.59's Autotest.
997 * tests/testsuite.at: Don't include local.at, since we now assume
998 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
999 including it.
1000 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
1001 multiple inclusion warnings.
1002
10032003-12-02 Akim Demaille <akim@epita.fr>
1004
1005 * doc/bison.texinfo (How Can I Reset the Parser): More about start
1006 conditions.
1007 From Bruno Haible.
1008
10092003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
1010
1011 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
1012
10132003-10-07 Paul Eggert <eggert@twinsun.com>
1014
1015 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
1016 if testsuite doesn't exist.
1017
1018 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
1019 literals, unfortunately.
1020 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
1021 Complain about NUL bytes in character constants or string literals.
1022
10232003-10-05 Paul Eggert <eggert@twinsun.com>
1024
1025 * NEWS: Don't document %no-default-prec, as it's still
1026 too experimental.
1027 * doc/bison.texinfo: Document %no-default-prec only if
1028 the defaultprec flag is set. Normally it's not.
1029
10302003-10-04 Paul Eggert <eggert@twinsun.com>
1031
1032 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
1033 non-modifiable lvalue, instead of a modifiable one.
1034 * doc/bison.texinfo (Actions): Document that $$ can
1035 be assigned to. Do not claim that $$ and $N are
1036 array element references: user code should not rely on this.
1037
10382003-10-01 Paul Eggert <eggert@twinsun.com>
1039
1040 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
1041 (grammar_declaration): Use it.
1042 * src/scan-gram.l: New token %no-default-prec.
1043 * tests/conflicts.at: Revamp tests to use %no-default-prec.
1044 * NEWS, doc/bison.texinfo: Document the above.
1045
10462003-10-01 Akim Demaille <akim@epita.fr>
1047
1048 VCG no longer supports long_straight_phase.
1049
1050 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
1051 * src/print_graph.c (print_graph): Adjust.
1052
10532003-09-30 Frank Heckenbach <frank@g-n-u.de>
1054 and Paul Eggert <eggert@twinsun.com>
1055
1056 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
1057 Table of Symbols): Document %default-prec.
1058 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
1059 (grammar_declaration): Set default_prec on %default-prec.
1060 * src/scan-gram.l (%default-prec): New token.
1061 * src/reader.h (default_prec): New flag.
1062 * src/reader.c: Likewise.
1063 (packgram): Handle it.
1064 * tests/conflicts.at (%default-prec without %prec,
1065 %default-prec with %prec, %default-prec 1): New tests.
1066
10672003-09-30 Paul Eggert <eggert@twinsun.com>
1068
1069 * tests/testsuite.at: Include local.at, not input.at, fixing
1070 a typo in the 2003-08-25 patch.
1071
10722003-08-27 Akim Demaille <akim@epita.fr>
1073
1074 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
1075 GCC warnings.
1076
10772003-08-26 Akim Demaille <akim@epita.fr>
1078
1079 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
1080 "<\#" to avoid magic from Gnus when posting parts of this script.
1081
10822003-08-26 Akim Demaille <akim@epita.fr>
1083
1084 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
1085 (Parser::parse): here.
1086 Adjust: nerrs and errstatus is now replaced by...
1087 (Parser::nerrs_, Parser::errstatus_): New.
1088
10892003-08-25 Akim Demaille <akim@epita.fr>
1090
1091 * config/announce-gen, Makefile.cfg: New.
1092 * Makefile.am: Adjust.
1093 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
1094 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
1095
10962003-08-25 Akim Demaille <akim@epita.fr>
1097
1098 When reducing initial empty rules, Bison parser read an initial
1099 location that is not defined. This results in garbage, and that
1100 affects Bison's own parser. Therefore we need (i) to extend Bison
1101 to support a means to initialize this location, and (ii) to use
1102 this CVS Bison to fix CVS Bison's parser.
1103
1104 * src/reader.h, reader.c (epilogue_augment): Remove, replace
1105 with...
1106 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
1107 * src/parse-gram.y: Adjust.
1108 (%initial-action): New.
1109 (%error-verbose): Since we require CVS Bison, there is no reason
1110 not to use it.
1111 * src/scan-gram.l: Adjust.
1112 * src/Makefile.am (YACC): New, to make sure we use our own parser.
1113 * data/yacc.c (yyparse): Use b4_initial_action.
1114
11152003-08-25 Akim Demaille <akim@epita.fr>
1116
1117 * doc/bison.texinfo: Don't promote stdout for error messages.
1118
11192003-08-25 Akim Demaille <akim@epita.fr>
1120
1121 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
1122 From Alexandre Duret-Lutz.
1123
11242003-08-25 Akim Demaille <akim@epita.fr>
1125
1126 Version 1.875c.
1127
11282003-08-25 Akim Demaille <akim@epita.fr>
1129
1130 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
1131 Use them.
1132
11332003-08-25 Akim Demaille <akim@epita.fr>
1134
1135 * data/lalr1.cc (Parser::reduce_print_): New.
1136 Use it.
1137
11382003-08-25 Akim Demaille <akim@epita.fr>
1139
1140 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
1141 error recovery loops. This patch is based on
1142 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
1143 Also, augment the similarity between lalr1.cc and yacc.c.
1144 Note: the locations of error recovery rules are not correct yet.
1145
1146 * data/lalr1.cc: Comment changes to augment the similarity between
1147 lalr1.cc and yacc.c.
1148 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
1149 (yyerrlab1): Remove, but where it used to be (now the bottom part of
1150 yyerrlab), when hitting EOF, pop the whole stack here instead of
1151 merely falling thru the default error handling mechanism.
1152 (yyerrorlab): New label, with the old contents of YYERROR,
1153 plus the following change: pop the stack of rhs corresponding
1154 to the production that invoked YYERROR. That is how Yacc
1155 behaves (required by POSIX).
1156 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
1157 fail.
1158
11592003-08-25 Akim Demaille <akim@epita.fr>
1160
1161 Tune local.at so that people can "autom4te -l autotest calc.at -o
1162 calc" for instance, to extract a sub test suite.
1163
1164 * tests/testsuite.at: Move the initialization, Autotest version
1165 requirement, and AT_TESTED invocation into...
1166 * tests/local.at: here.
1167 * tests/testsuite.at: Include it for compatibility with Autoconf
1168 2.57.
1169 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
1170 be ignore.
1171
11722003-08-04 Paul Eggert <eggert@twinsun.com>
1173
1174 Rework code slightly to avoid gcc -Wtraditional warnings.
1175 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
1176 The returned value is now stored in *YY0. All callers changed.
1177 * src/output.c (merge_output): Adjust to the above change.
1178
11792003-07-26 Paul Eggert <eggert@twinsun.com>
1180
1181 * data/glr.c (YYASSERT): New macro.
1182 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
1183 yyresolveStates, yyprocessOneStack):
1184 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
1185 Derived from a suggestion by Frank Heckenbach.
1186
11872003-07-25 Paul Eggert <eggert@twinsun.com>
1188
1189 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
1190 for portability to K&R C (after ansi2knr, presumably). See
1191 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
1192 by Frank Heckenbach, though I have omitted the structure-initialization
1193 part of his glr-knr.diff patch since I recall that the Portable
1194 C Compiler didn't require that change.
1195
1196 Let the user specify how to allocate and free memory.
1197 Derived from a suggestion by Frank Heckenbach in
1198 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
1199 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
1200 All uses of free, malloc, realloc changed to use these macros,
1201 and unnecessary casts removed.
1202 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
1203
12042003-07-06 Matthias Mann <MatthiasMann@gmx.de>
1205
1206 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
1207 use s.empty() rather than s == "" to test for empty string; see
1208 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
1209 (trivial change)
1210
12112003-06-25 Akim Demaille <akim@epita.fr>
1212
1213 * config/depcomp, config/install-sh: Update from masters.
1214
12152003-06-20 Paul Eggert <eggert@twinsun.com>
1216
1217 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
1218 and return properly parenthesized result.
1219 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
1220 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
1221 Remove unnecessary parentheses from uses.
1222 * doc/bison.texinfo (Location Default Action): Describe the
1223 conventions for parentheses.
1224
12252003-06-19 Paul Eggert <eggert@twinsun.com>
1226
1227 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
1228 yyreportTree): Do not assume that size_t is the same width as int,
1229 when printing sizes. Print sizes using an unsigned format.
1230 Problem reported by Frank Heckenbach in
1231 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
1232
1233 Port to Forte Developer 7 C compiler.
1234 * data/glr.c (struct YYLTYPE): If locations are not being used,
1235 declare a single dummy member, as empty structs do not conform
1236 to the C standard.
1237 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
1238 the Forte Developer 7 C compiler complains that end-of-loop
1239 code is not reached.
1240
12412003-06-17 Paul Eggert <eggert@twinsun.com>
1242
1243 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
1244 avoid warnings from picky compilers about redefinition of PARAMS.
1245
12462003-06-17 Paul Eggert <eggert@twinsun.com>
1247
1248 Version 1.875b.
1249
1250 * NEWS: Document 1.875b.
1251
1252 * lib/bbitset.h: Do not include config.h; that's the includer's job.
1253 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
1254 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
1255 Don't use 'index' in comments, as it's a builtin fn on some hosts.
1256 * lib/bitset_stats.c: Include gettext.h unconditionally, as
1257 per recent gettext manual's suggestion.
1258 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
1259 Use prototypes, not old-style definitions.
1260 * lib/lbitset.c (lbitset_unused_clear): Likewise.
1261 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
1262 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
1263 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
1264 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
1265 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
1266 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
1267 vbitset_or_and_cmp, vbitset_copy): Likewise.
1268
1269 * lib/libiberty.h: Do not include config.h; that's the includer's job.
1270 Do not include <stdlib.h>.
1271 (PARAMS): Define unconditionally for C89.
1272 (ATTRIBUTE_NORETURN): Remove.
1273 (ATTRIBUTE_UNUSED): Define unconditionally.
1274
1275 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
1276 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
1277 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
1278 * lib/vbitset.c, lib/vbitset.h: New files.
1279 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
1280 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
1281 from libbitset.
1282
1283 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
1284 `How Can I Reset @code{yyparse}', since texinfo does not allow
1285 arbitrary @ in node names.
1286
1287 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
1288 shouldn't be needed according to the gettext 0.12.1 documentation
1289 but which seem to be needed anyway: codeset.m4 glibc21.m4
1290 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
1291 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
1292 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
1293
1294 * lib/.cvsignore: Add stdbool.h.
1295 * m4/.cvsignore: Add nls.m4, po.m4.
1296
1297 Upgrade to CVS gnulib.
1298 * stdbool_.h: File renamed from stdbool.h.in.
1299 * configure.ac (AM_STDBOOL_H): Invoke this instead of
1300 AC_HEADER_STDBOOL.
1301 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
1302 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
1303 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
1304 (MOSTLYCLEANFILES): New var.
1305 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
1306 (stdbool.h): New rule.
1307 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
1308 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
1309 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
1310 m4/quote.m4: Upgrade to today's gnulib.
1311
1312 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
1313 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
1314 the tests right now.
1315 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
1316 yyerror are declared before use; C99 requires this.
1317
13182003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
1319
1320 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
1321 first.
1322 (yyrecoverSyntaxError): Correct the logic for setting and testing
1323 yyerrState.
1324 Correct comment on handling EOF.
1325 Allow states with only a default reduction, rather than failing
1326 (I can't quite reconstruct why these were not allowed before).
1327
1328 Fixes to avoid problem that $-N rules in GLR parsers can cause
1329 buffer overruns, corrupting state.
1330
1331 * src/output.c (prepare_rules): Output max_left_semantic_context
1332 definition.
1333 * src/reader.h (max_left_semantic_context): New variable declaration.
1334 * src/scan-gram.l (max_left_semantic_context): Define.
1335 (handle_action_dollar): Update max_left_semantic_context.
1336 * data/glr.c (YYMAXLEFT): New definition.
1337 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
1338 (yyresolveAction): Ditto.
1339
1340 Fixes to problems with location handling in GLR parsers reported by
1341 Frank Heckenbach (2003/06/05).
1342
1343 * data/glr.c (YYLTYPE): Make trivial if locations not used.
1344 (YYRHSLOC): Add parentheses, and define only if locations used.
1345 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
1346 locations not used.
1347 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
1348 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
1349
1350 * tests/cxx-type.at: Exercise location information; update tests
1351 to differentiate output with and without locations.
1352 Remove forward declarations of yylex and yyerror---caused errors
1353 because default YYLTYPE not yet defined.
1354 Change semantic actions to compute strings, rather than printing
1355 them directly (to test proper passing of semantics values). Change
1356 output to prefix notation and update test data and expected results.
1357 (yylex): Track locations.
1358 (stmtMerge): Return value rather than printing, and include arguments
1359 in value.
1360
13612003-06-03 Paul Eggert <eggert@twinsun.com>
1362
1363 Avoid warnings generated by GCC 2.95.4 when Bison is
1364 configured with --enable-gcc-warnings.
1365 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
1366 yy::]b4_parser_class_name[::translate_,
1367 yy::Stack::operator[] (unsigned),
1368 yy::Stack::operator[] (unsigned) const,
1369 yy::Slice::operator[] (unsigned),
1370 yy::Slice::operator[] (unsigned) const):
1371 Rename local vars to avoid warnings.
1372 * tests/glr-regression.at (Improper handling of embedded actions
1373 and $-N in GLR parsers): Remove unused local variable from yylex.
1374 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
1375 (void) as arg when not pure, since we now assume C89 when building
1376 Bison. Pacify GCC by using parameter.
1377
13782003-06-02 Paul Eggert <eggert@twinsun.com>
1379
1380 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
1381 yy::Location::lines, yy::Location::columns): Rename arguments
1382 to avoid shadowing; this removes a warning generated by GCC 3.3.
1383
13842003-06-01 Paul Eggert <eggert@twinsun.com>
1385
1386 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
1387 to g++, as GCC 3.3 complains if you do it.
1388 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
1389 everything that WARNING_CFLAGS has, except omit warnings
1390 not suitable for C++.
1391 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
1392 * tests/atlocal.in (CXXFLAGS): New var.
1393 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
1394
1395 Fix a GLR parser bug I reported in February; see
1396 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
1397 The problem was that GLR parsers did not conform to the C standard,
1398 because actions like { $1 = $2 + $3; } expanded to expressions
1399 that invoked YYFILL in separate subexpressions, and YYFILL assigned
1400 to a local variable. The C standard says that expressions
1401 like (var = f ()) + (var = f ()) have undefined behavior.
1402 Another problem was that GCC sometimes issues warnings that
1403 yyfill and its parameters are unused.
1404
1405 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
1406 as possibly unused.
1407 (yyfill): New function.
1408 (YYFILL): Use it.
1409 (yyuserAction): Change type of yynormal to bool, so that it matches
1410 the new yyfill signature. Mark it as possibly unused.
1411
1412
1413 Follow up on a bug I reported in February, where a Bison-generated
1414 parser can loop. Provide a test case and a fix for yacc.c. I
1415 don't have a fix for lalr1.cc or for glr.c, unfortunately.
1416 The original bug report is in:
1417 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
1418
1419 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
1420 macro's size was becoming unwieldy.
1421 (yyerrlab): Do not discard an empty lookahead symbol, as this
1422 might destroy garbage.
1423 (yyerrorlab): New label, with the old contents of YYERROR,
1424 plus the following change: pop the stack of rhs corresponding
1425 to the production that invoked YYERROR. That is how Yacc
1426 behaves, and POSIX requires this behavior.
1427 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
1428 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
1429 Define 'alarm' to do nothing if unistd.h is not available.
1430 Add a new rule "exp: '-' error;" to test the above change to
1431 data/yacc.c. Use 'alarm' to abort any test taking longer than
1432 10 seconds, as it's probably looping.
1433 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
1434 Also, the new yacc.c generates two fewer diagnostics for an
1435 existing test.
1436
14372003-05-24 Paul Eggert <eggert@twinsun.com>
1438
1439 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
1440 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
1441 This fixes a problem reported by John Bowman when the Compaq/HP
1442 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
1443 -ansi -Wall -gall).
1444 * data/yacc.c (union yyalloc): Likewise.
1445 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
1446
1447 Switch from 'int' to 'bool' where that makes sense.
1448
1449 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
1450 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
1451 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
1452 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
1453 Return or accept bool, not int. All callers changed.
1454 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
1455 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
1456 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
1457 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
1458 bitset_or_and_cmp_): Likewise.
1459 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
1460 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
1461 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
1462 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
1463 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
1464 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
1465 bitset_stats_or_and_cmp): Likewise.
1466 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
1467 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
1468 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
1469 ebitset_xor_cmp): Likewise.
1470 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
1471 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
1472 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
1473 lbitset_xor_cmp): Likewise.
1474 * lib/bbitset.h: Include <stdbool.h>.
1475 (struct bitset_vtable): The following members now return bool, not
1476 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
1477 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
1478 or_and_cmp).
1479 * src/conflicts.c (count_rr_conflicts): Likewise.
1480 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
1481 All uses changed.
1482 * lib/ebitset.c (ebitset_obstack_init): Likewise.
1483 * lib/lbitset.c (lbitset_obstack_init): Likewise.
1484 * src/getargs.c (debug_flag, defines_flag, locations_flag,
1485 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1486 graph_flag): Likewise.
1487 * src/getargs.h (debug_flag, defines_flag, locations_flag,
1488 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
1489 graph_flag): Likewise.
1490 * src/output.c (error_verbose): Likewise.
1491 * src/output.h (error_verbose): Likewise.
1492 * src/reader.c (start_flag, typed): Likewise.
1493 * src/reader.h (typed): Likewise.
1494 * src/getargs.c (LOCATIONS_OPTION): New constant.
1495 (long_options, getargs): Use it.
1496 * src/lalr.c (build_relations): Use bool, not int.
1497 * src/nullable.c (nullable_compute): Likewise.
1498 * src/print.c (print_reductions): Likewise.
1499 * src/tables.c (action_row, pack_vector): Likewise.
1500 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
1501 * src/output.c (prepare): Use it.
1502 * src/output.c (token_definitions_output,
1503 symbol_destructors_output, symbol_destructors_output): Use string,
1504 not boolean integer, to keep track of whether to output separator.
1505 * src/print_graph.c (print_core): Likewise.
1506 * src/state.c (state_rule_lookaheads_print): Likewise.
1507
1508 * config/install-sh: Sync from automake 1.7.5.
1509
15102003-05-14 Paul Eggert <eggert@twinsun.com>
1511
1512 * src/parse-gram.y (rules_or_grammar_declaration): Require a
1513 semicolon after a grammar declaration, in the interest of possible
1514 future changes to the Bison input language.
1515 Do not allow a stray semicolon at the start of the grammar.
1516 (rhses.1): Allow one or more semicolons after any rule, including
1517 just before "|" as required by POSIX.
1518 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
1519 grammar.
1520
15212003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
1522
1523 %parse-param support for lalr1.cc.
1524
1525 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
1526 b4_cc_constructor_calls, b4_cc_constructor_call,
1527 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
1528 definitions.
1529 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
1530 parse-param arguments.
1531 (yy::b4_parser_class_name): Declare instance variables to
1532 hold parse-param arguments.
1533 * tests/calc.at: s/value/semantic_value/ because value clashes
1534 with a member of yy::b4_parser_class_name. Adjust C++ code
1535 to handle %parse-param. Enable %parse-param test in C++.
1536
15372003-05-12 Paul Eggert <eggert@twinsun.com>
1538
1539 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
1540 English a bit. Fix fclose typo. Change "const char" to "char
1541 const", and use ANSI C rather than K&R for "main". Suggest
1542 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
1543 and suggest yy_switch_to_buffer.
1544
15452003-05-05 Paul Eggert <eggert@twinsun.com>
1546
1547 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
1548 C89. This avoids a diagnostic on compilers that define __STDC__
1549 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
1550 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1551
15522003-05-03 Paul Eggert <eggert@twinsun.com>
1553
1554 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
1555 Do not overrun array bounds.
1556 This should fix a bug reported today by Olatunji Oluwabukunmi in
1557 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
1558
15592003-04-29 Akim Demaille <akim@epita.fr>
1560
1561 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
1562 * src/getargs.c, src/getargs.h: here, as bool, not int.
1563 (nondeterministic_parser): New.
1564 * src/parse-gram.y, src/scan-gram.l: Support
1565 %nondeterministic-parser.
1566 * src/output.c (prepare): Use nondeterministic_parser instead
1567 of glr_parser where appropriate.
1568 * src/tables.c (conflict_row, action_row, save_row)
1569 (token_actions, token_actions, pack_vector): Ditto.
1570
15712003-04-29 Akim Demaille <akim@epita.fr>
1572
1573 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
1574
15752003-04-29 Akim Demaille <akim@epita.fr>
1576
1577 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
1578 with %pure-parser and %locations to exercise the patch from Yakov
1579 Markovitch below.
1580
15812003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
1582
1583 * data/yacc.c: (b4_lex_param): Corrected for the case where
1584 %lex-param is provided and %pure-parser isn't.
1585
15862003-04-27 Paul Eggert <eggert@twinsun.com>
1587
1588 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
1589 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
1590 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
1591 if it is not defined.
1592 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
1593
15942003-04-26 Paul Eggert <eggert@twinsun.com>
1595
1596 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
1597 Declare to be of type suitable for the ninf value itself, not of
1598 type suitable for the corresponding table, since the latter might
1599 be unsigned but the ninf value might be negative. This fixes a
1600 bug reported by Alexandre Duret-Lutz in
1601 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
1602
1603 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
1604 invokes it. We shouldn't invoke it twice because it will attempt
1605 to put error.o in the archive twice. This fixes a glitch reported
1606 by Martin Mokrejs in
1607 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
1608
16092003-04-21 Paul Eggert <eggert@twinsun.com>
1610
1611 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
1612 to gnulib.
1613
16142003-04-21 Yakov Markovitch <Markovitch@iso.ru>
1615
1616 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
1617 Fix obvious typo that results in uncompilable GLR parsers
1618 when both %pure-parser and %locations are used. (trivial change)
1619
16202003-04-17 Paul Eggert <eggert@twinsun.com>
1621
1622 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
1623 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
1624 Do not insert the expected token via unput, as this runs afoul
1625 of a POSIX-compatibility bug in flex 2.5.31.
1626 All uses changed to BEGIN the parent state,
1627 since we no longer insert the expected token via unput.
1628 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
1629 that is no longer emitted after the above change.
1630
1631 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
1632 the first one. This change is from Paul Hilfinger, and it fixes
1633 regression reported by Werner Lemberg in
1634 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
1635
1636 (resolve_sr_conflict): Don't invoke state_errs_set
1637 unless one or more tokens have been explicitly made errors.
1638 Otherwise, the above change causes Bison to abort.
1639
1640 * tests/existing.at (GNU pic Grammar): New test case, taken from
1641 Lemberg's email.
1642
16432003-03-31 Akim Demaille <akim@epita.fr>
1644
1645 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
1646
16472003-03-31 Akim Demaille <akim@epita.fr>
1648
1649 * src/output.c (prepare_symbols): Avoid trailing spaces in the
1650 output.
1651
16522003-03-31 Akim Demaille <akim@epita.fr>
1653
1654 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
1655 From Paul Hilfinger.
1656
16572003-03-29 Akim Demaille <akim@epita.fr>
1658
1659 * m4/error.m4: Do not put under dynamic conditions some code which
1660 expansion is under static control.
1661
16622003-03-29 Akim Demaille <akim@epita.fr>
1663
1664 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
1665
16662003-03-29 Akim Demaille <akim@epita.fr>
1667
1668 * doc/bison.texinfo (Strings are Destroyed): New.
1669
16702003-03-13 Paul Eggert <eggert@twinsun.com>
1671
1672 * .cvsignore: Add configure.lineno.
1673 * src/.cvsignore: Add yacc.
1674 * tests/.cvsignore: Add testsuite.log.
1675 * doc/fdl.texi: Sync with latest FSF version.
1676
16772003-03-12 Paul Eggert <eggert@twinsun.com>
1678
1679 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
1680 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
1681 cursor, instead of leaving it undefined. This fixes a bug
1682 reported by Tim Van Holder in
1683 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
1684 * tests/input.at (Torturing the Scanner): Test the scanner on
1685 an empty input file, which was Tim Van Holder's test case.
1686
1687 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
1688 <sys/resource.h> can be included, include sys/time.h and
1689 sys/times.h first, if available. This works around the SunOS
1690 4.1.4 porting bug reported by Bruce Becker in
1691 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
1692
1693 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
1694 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
1695 AC_HEADER_SYS_WAIT.
1696
1697 Merge changes from gnulib. This was prompted because the CVS
1698 snapshot didn't build on Solaris 7 due to strnlen problems.
1699
1700 These changes need to be merged back into gnulib:
1701 * lib/hash.c: Include <stdbool.h> unconditionally.
1702 * m4/onceonly.m4 (m4_quote): New macro.
1703 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
1704 Quote AC_FOREACH variable-expansions properly.
1705 The 2003-01-03 obstack.h change also needs merging.
1706 {end of changes requiring merging}
1707
1708 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
1709 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
1710 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
1711 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
1712 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
1713 New files, imported from gnulib.
1714 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
1715 above.
1716
1717 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
1718 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
1719 gnulib sources.
1720
1721 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
1722 Add.
1723 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
1724 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
1725 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
1726 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
1727 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
1728 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
1729 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
1730 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
1731 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
1732 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
1733 (jm_PREREQ_ARGMATCH): Remove.
1734 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
1735 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
1736
1737 * src/system.h: Include <stdbool.h> unconditionally.
1738
1739 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
1740 assuming at least C89 in the bitset code for some time now.
1741
17422003-03-03 Akim Demaille <akim@epita.fr>
1743
1744 * ro.po: New.
1745
17462003-03-02 Akim Demaille <akim@epita.fr>
1747
1748 * doc/bison.texinfo (Table of Symbols): Reactivate the
1749 documentation for %lex-param, and %parse-param.
1750
17512003-03-02 Akim Demaille <akim@epita.fr>
1752
1753 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
1754 generate verbose error messages.
1755 Use the number of tokens as an upper bound in yytname, as it
1756 cannot be a non terminal.
1757
17582003-03-02 Akim Demaille <akim@epita.fr>
1759
1760 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
1761 message.
1762
17632003-03-02 Akim Demaille <akim@epita.fr>
1764
1765 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
1766 Use them to exercise yycheck overrun.
1767 Based on Andrew Suffield's grammar.
1768
17692003-03-02 Akim Demaille <akim@epita.fr>
1770
1771 Create tests/local.at for Bison generic testing macros.
1772
1773 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
1774 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
1775 This new file.
1776 * tests/calc.at (AT_CHECK_CALC): Adjust.
1777 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
1778 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
1779 * tests/local.at: here.
1780 (AT_COMPILE_CXX): Tags the tests using it as c++.
1781 Ignore the test if CXX is not functional.
1782
17832003-03-01 Paul Eggert <eggert@twinsun.com>
1784
1785 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
1786 not loc->end, since loc->end might contain garbage and this leads
1787 to undefined behavior on some platforms.
1788 (id_loc, token_start): Use (IF_LINTed) initial values that do not
1789 depend on *loc, so that the reader doesn't give the the false
1790 impression that *loc is initialized.
1791 (<INITIAL>"%%"): Do not bother setting code_start, since its value
1792 does not survive the return.
1793
17942003-03-01 Akim Demaille <akim@epita.fr>
1795
1796 * src/scan-gram.l (code_start): Always initialize it when entering
1797 into yylex, as SC_EPILOGUE is activated *before* the corresponding
1798 yylex invocation. An alternative would be making it static, but
1799 then it starts with the second %%'s beginning, instead of its end.
1800
18012003-02-28 Paul Eggert <eggert@twinsun.com>
1802
1803 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
1804 around a UnixWare 7.1.1 porting bug reported by John Hughes in
1805 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
1806
18072003-02-26 Paul Eggert <eggert@twinsun.com>
1808
1809 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
1810 Remove Sequent/Pyramid discussion (nobody uses them any more).
1811 Merge VMS and MS-DOS discussion; these ports may well be dead
1812 but let's keep mentioning them for now. Put <> around email
1813 addresses. Add copyright notice.
1814
18152003-02-24 Paul Eggert <eggert@twinsun.com>
1816
1817 * data/glr.c (yy_reduce_print): yylineno -> yylno,
1818 to avoid collision with flex use of yylineno.
1819 Problem reported by Bruce Lilly in
1820 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
1821 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
1822 * data/yacc.c (yy_reduce_print): Likewise.
1823
1824 * config/depcomp: Sync with Automake 1.7.3.
1825
18262003-02-21 Akim Demaille <akim@epita.fr>
1827
1828 * data/lalr1.cc: Use temporary variables instead of casts to
1829 change integer types.
1830 Suggested by Paul Eggert.
1831
18322003-02-21 Akim Demaille <akim@epita.fr>
1833
1834 * doc/bison.texinfo: Use "location" consistently to refer to @n,
1835 to avoid confusions with lalr1.cc's notion of Position.
1836 Suggested by Paul Eggert.
1837
18382003-02-20 Akim Demaille <akim@epita.fr>
1839
1840 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
1841 before initial_columns.
1842 (location.hh): Use consistent variable names when defining the
1843 operator<<.
1844 Use "last" so that we subtract from Positions, not from unsigned.
1845
18462003-02-20 Akim Demaille <akim@epita.fr>
1847
1848 * data/lalr1.cc (position.hh): New subfile, including the extended
1849 and Doxygen'ed documentation of class Position.
1850 (location.hh): Use it.
1851 Document a` la Doxygen.
1852 With the help of Benoit Perrot.
1853
18542003-02-20 Akim Demaille <akim@epita.fr>
1855
1856 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
1857 AT_YACC_IF.
1858 Redefine AT_YYERROR_SEES_LOC_IF using it.
1859 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
1860 not defined.
1861 Don't use the location in yy::Parser::error_ and
1862 yy::Parser::print_ when not %locations.
1863 Activate more lalr1.cc tests.
1864
18652003-02-19 Akim Demaille <akim@epita.fr>
1866
1867 * data/lalr1.cc: When displaying a line number, be sure to make it
1868 an int.
1869
18702003-02-19 Akim Demaille <akim@epita.fr>
1871
1872 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
1873 Remove, useless.
1874 (YYABORT, YYACCEPT, YYERROR): New.
1875 * tests/calc.at: Renable the lalr1.cc test.
1876
18772003-02-19 Akim Demaille <akim@epita.fr>
1878
1879 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
1880 error recovery, mixing with/without pops and discarding of the
1881 lookahead.
1882 Exercise YYERROR.
1883 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
1884
18852003-02-17 Paul Eggert <eggert@twinsun.com>
1886
1887 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
1888 * tests/testsuite.at (AT_COMPILE): Use them.
1889 This fixes the testsuite problem reported by Robert Lentz in
1890 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
1891
18922003-02-12 Paul Eggert <eggert@twinsun.com>
1893
1894 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
1895 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
1896 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
1897 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
1898 Check for malloc failure, for consistency with yacc.c.
1899 (yytname_size): Remove, for consistency with yacc.c.
1900
1901 The bug still remains in data/lalr1.cc, as I didn't have time
1902 to fix it there.
1903
19042003-02-06 Akim Demaille <akim@epita.fr>
1905
1906 * configure.ac (GXX): Rename as...
1907 (CXX): this, to keep the original Autoconf semantics.
1908 Require 2.57.
1909 * data/lalr1.cc: Fix b4_copyright invocations.
1910 If YYDEBUG is not defined, don't depend upon name_ being defined.
1911 (location.hh): Include string and iostream.
1912 (Position::filename): New member.
1913 (Position::Position ()): New.
1914 (operator<< (Position)): New.
1915 (operator- (Position, int)): New.
1916 (Location::first, Location::last): Rename as...
1917 (Location::begin, Location::end): these, to mock the conventional
1918 iterator names.
1919 (operator<< (Location)): New.
1920 * tests/atlocal.in (CXX): New.
1921 * tests/testsuite.at (AT_COMPILE_CXX): New.
1922 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
1923 locations in a more synthetic way.
1924 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
1925 lalr1.cc is used.
1926 Adjust the C locations to match those from Emacs: first column is
1927 column 0.
1928 Change all the expected results.
1929 Conform to the GCS: simplify the locations when applicable.
1930 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
1931 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
1932 these CPP macros with the m4 macros new defined by...
1933 (AT_CHECK_PUSHDEFS): this, i.e.:
1934 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
1935 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
1936 New macros.
1937 (AT_CHECK_POPDEFS): Undefine them.
1938 (AT_CHECK_CALC_LALR1_CC): New.
1939 Use it for the first lalr1.cc test.
1940
19412003-02-04 Akim Demaille <akim@epita.fr>
1942
1943 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
1944 Location as is defined.
1945
19462003-02-04 Akim Demaille <akim@epita.fr>
1947
1948 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
1949 name_ being defined.
1950
19512003-02-03 Paul Eggert <eggert@twinsun.com>
1952
1953 * src/gram.h (start_symbol): Remove unused decl.
1954
1955 Use more-consistent naming conventions for local vars.
1956
1957 * src/derives.c (derives_compute): Change type of local var from
1958 int to rule_number.
1959 * src/gram.c (grammar_rules_partial_print): Likewise.
1960 * src/print.c (print_core): Likewise.
1961 * src/reduce.c (reduce_grammar_tables): Likewise.
1962
1963 * src/gram.c (grammar_dump): Change name of item_number *
1964 local var from r to rp.
1965 * src/nullable.c (nullable_compute): Likewise.
1966
1967 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
1968
1969 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
1970 for symbol or symbol_number var.
1971 * src/reader.c (grammar_start_symbol_set): Likewise.
1972 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
1973 Likewise.
1974 * src/state.c (transitions_to): Likewise.
1975 * src/state.h: Likewise.
1976 * src/tables.c (symbol_number_to_vector_number): Likewise.
1977
1978 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
1979 char * var.
1980
1981 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
1982 var.
1983
1984 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
1985 var.
1986
1987 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
1988 Use str, not s, for char * var. Use ch, not c, for character var.
1989 Use size for size var.
1990
1991 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
1992 char * var.
1993 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
1994 uniqstr var.
1995 * src/uniqstr.h: Likewise.
1996
1997 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
1998 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
1999 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
2000 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
2001 param to have same name as that of enum, so that we don't use
2002 "s" to stand for a non-state.
2003
20042003-02-02 Akim Demaille <akim@epita.fr>
2005
2006 * src/scan-skel.l: Scan more than one inert character per yylex
2007 invocation.
2008
20092003-02-01 Paul Eggert <eggert@twinsun.com>
2010
2011 Version 1.875a.
2012
2013 * po/LINGUAS: Add ms.
2014
20152003-01-30 Akim Demaille <akim@epita.fr>
2016
2017 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
2018
20192003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
2020
2021 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
2022 of $1.
2023
2024 Changes in response to error report by S. Eken: GLR mode does not
2025 handle negative $ indices or $ indices in embedded rules correctly.
2026 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
2027
2028 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
2029 (b4_rhs_location): Ditto.
2030 (yyfill): New function to copy from stack tree into array
2031 incrementally.
2032 (yyuserAction): Modify to allow incremental move of semantic values
2033 to rhs array when in GLR mode.
2034 Define YYFILL to use in user-defined actions to fill semantic array
2035 as needed.
2036 Remove dummy use of yystack, as there is now a guaranteed use.
2037 (yydoAction): Modify to allow incremental move of semantic values
2038 to rhs array when in GLR mode.
2039 (yyresolveAction): Ditto.
2040 (yyglrShiftDefer): Update comment.
2041 (yyresolveStates): Use X == NULL for pointers, not !X.
2042 (yyglrReduce): Ditto.
2043 (yydoAction): Ditto
2044
2045 * tests/glr-regr1.at: Rename to ...
2046 * tests/glr-regression.at: Add new regression test for the problems
2047 described above (adapted from S. Eken).
2048 Update copyright notice.
2049 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
2050 * tests/Makefile.am: Ditto.
2051
20522003-01-28 Paul Eggert <eggert@twinsun.com>
2053
2054 * data/lalr1.cc: Do not use @output_header_name@ unless
2055 b4_defines_flag is set. This fixes two bugs reported by
2056 Tim Van Holder in
2057 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
2058 and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
2059
20602003-01-21 Paul Eggert <eggert@twinsun.com>
2061
2062 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
2063 we don't need to worry about yyerrlab1 being reported as an
2064 "unused label" by non-GCC C compilers. The downside is that if
2065 locations are used then a couple of statements are duplicated each
2066 time YYERROR is invoked, but the upside is that the warnings
2067 should vanish.
2068 (yyerrlab1): Move code to YERROR.
2069 (yyerrlab2): Remove. Change uses back to yyerrlab1.
2070 This reverts some of the 2002-12-27 change.
2071
20722003-01-17 Paul Eggert <eggert@twinsun.com>
2073
2074 * src/output.c (symbol_printers_output): Fix typo that led
2075 to core dump. Problem reported by Antonio Rus in
2076 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
2077
20782003-01-13 Akim Demaille <akim@epita.fr>,
2079 Quoc Peyrot <chojin@lrde.epita.fr>,
2080 Robert Anisko <anisko_r@lrde.epita.fr>
2081
2082 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
2083 when the stacks contain one element, as the loop would otherwise
2084 free the last state, and then use the top state (the one we just
2085 popped). This means that the initial elements will not be freed
2086 explicitly, as is the case in yacc.c; it is not a problem, as
2087 these elements have fake values.
2088
20892003-01-11 Paul Eggert <eggert@twinsun.com>
2090
2091 * NEWS: %expect-violations are now just warnings, reverting
2092 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
2093 bootstrapping problem reported by Matthias Klose; see
2094 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
2095 * src/conflicts.c (conflicts_print): Likewise.
2096 * tests/conflicts.at (%expect not enough, %expect too much,
2097 %expect with reduce conflicts): Likewise.
2098 * doc/bison.texinfo (Expect Decl): Document this. Also mention
2099 that the warning is enabled if the number of conflicts changes
2100 (not necessarily increases).
2101
2102 * src/getargs.c (version): Update copyright year.
2103
21042003-01-09 Akim Demaille <akim@epita.fr>
2105
2106 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
2107
21082003-01-08 Paul Eggert <eggert@twinsun.com>
2109
2110 * Makefile.maint (WGETFLAGS):
2111 New macro, containing "-C off" to disable proxy caches.
2112 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
2113 (rel-check): Use $(WGET) instead of wget.
2114
21152003-01-06 Paul Eggert <eggert@twinsun.com>
2116
2117 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
2118 the GLR paper of Scott, Johnstone and Hussain.
2119
21202003-01-04 Paul Eggert <eggert@twinsun.com>
2121
2122 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
2123 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
2124 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
2125 (EXTRA_LIBRARIES): New var, for liby.a.
2126 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
2127 (EXTRA_SCRIPTS): New var, for yacc.
2128
2129 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
2130 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
2131 Problem reported by Nelson H. F. Beebe.
2132
21332003-01-03 Paul Eggert <eggert@twinsun.com>
2134
2135 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
2136 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
2137 when compiling Bison 1.875's `bitset bset = obstack_alloc
2138 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
2139
2140 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
2141 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
2142 grow to a huge size with typical invocation.
2143
2144 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
2145 Use the pattern recommended by Autoconf 2.57, except also protect
2146 against double-definition.
2147 * src/system.h: Likewise.
2148 Portability issues reported by Nelson H. F. Beebe.
2149
2150 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
2151 All uses changed. Provide a definition in both C and C++.
2152 (yytrue, yyfalse): Define even if defined (__cplusplus).
2153
2154 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
2155 Reported by Nelson H. F. Beebe.
2156
2157 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
2158
21592003-01-02 Paul Eggert <eggert@twinsun.com>
2160
2161 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
2162 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
2163 Bug reported by Nelson H. F. Beebe.
2164
21652003-01-01 Paul Eggert <eggert@twinsun.com>
2166
2167 * Version 1.875.
2168
21692002-12-30 Paul Eggert <eggert@twinsun.com>
2170
2171 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
2172 Moved here from...
2173 (<INITIAL>","): Here. This causes stray "," to be treated
2174 more uniformly.
2175
2176 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2177 last brace in braced code when not in Yacc mode, for compatibility
2178 with Bison 1.35. This resurrects the 2001-12-15 patch to
2179 src/reader.c.
2180
2181 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
2182 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
2183
21842002-12-28 Paul Eggert <eggert@twinsun.com>
2185
2186 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
2187 that of SYM's type. This fixes Debian bug 168069, reported by
2188 Thomas Olsson.
2189
21902002-12-28 Paul Eggert <eggert@twinsun.com>
2191
2192 Version 1.75f.
2193
2194 Switch back to the Yacc style of conflict reports, undoing some
2195 of the 2002-07-30 change.
2196 * doc/bison.texinfo (Understanding): Use Yacc style for
2197 conflict reports. Also, use new way of locating rules.
2198 * src/conflicts.c (conflict_report):
2199 Renamed from conflict_report_yacc, removing the old
2200 'conflict_report'. Translate the entire conflict report at once,
2201 so that we don't assume that "," has the same interpretation in
2202 all languages.
2203 (conflicts_output): Use Yacc-style conflict report for each state,
2204 instead of our more-complicated style.
2205 (conflicts_print): Use Yacc-style conflict report, except print
2206 the input file name when not emulating Yacc.
2207 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
2208 Conflicted Reduction, %expect not enough, %expect too much,
2209 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
2210 * tests/existing.at (GNU Cim Grammar): Likewise.
2211 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
2212
2213 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
2214 fatal): Don't invoke fflush; it's not needed and it might even be
2215 harmful for stdout, as stdout might not be open.
2216 * src/reduce.c (reduce_print): Likewise.
2217
22182002-12-27 Paul Eggert <eggert@twinsun.com>
2219
2220 Fix a bug where error locations were not being recorded correctly.
2221 This problem was originally reported by Paul Hilfinger in
2222 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
2223
2224 * data/yacc.c (yyparse): New local var yylerrsp, to record the
2225 top of the location stack's error locations.
2226 (yyerrlab): Set it. When discarding a token, push its location
2227 onto yylerrsp so that we don't lose track of the error's end.
2228 (yyerrlab1): Now is only the target of YYERROR, so that we can
2229 properly record the location of the action that failed. For GCC
2230 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
2231 GCC warning about yyerrlab1 being unused if YYERROR is unused.
2232 (yyerrlab2): New label, which yyerrlab now falls through to.
2233 Compute the error's location by applying YYLLOC_DEFAULT to
2234 the locations of all the symbols that went into the error.
2235 * doc/bison.texinfo (Location Default Action): Mention that
2236 YYLLOC_DEFAULT is also invoked for syntax errors.
2237 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
2238 Error locations include the locations of all the tokens that were
2239 discarded, not just the last token.
2240
22412002-12-26 Paul Eggert <eggert@twinsun.com>
2242
2243 * src/files.c: Include quote.h.
2244 (compute_output_file_names): Warn if we detect conflicting
2245 outputs to the same file. This should catch the misunderstanding
2246 exemplified by Debian Bug 165349, reported by Bruce Stephens..
2247
2248 * src/conflicts.c (conflicts_print): If the user specifies
2249 "%expect N", report an error if there are any reduce/reduce
2250 conflicts. This is what the manual says should happen.
2251 This fixes Debian bug 130890, reported by Anthony DeRobertis.
2252 * tests/conflicts.at (%expect with reduce conflicts): New test.
2253
2254 Don't use m4_include on relative file names, as it doesn't work as
2255 desired if there happens to be a file with that name under ".".
2256
2257 * m4sugar/version.m4: Remove; it was included but it wasn't used.
2258 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
2259 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
2260 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
2261 * src/output.c (output_skeleton): Use full path names when
2262 specifying a file to include; don't rely on include path, as
2263 it's unreliable when the working file contains a file with
2264 that name.
2265
22662002-12-25 Paul Eggert <eggert@twinsun.com>
2267
2268 Remove obsolete references to bison.simple and bison.hairy.
2269 Problem mentioned by Aubin Mahe in
2270 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
2271 * data/glr.c: Comment fix.
2272 * doc/bison.1: Remove references. Also, mention "yacc".
2273
2274 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
2275 with -g option.
2276
2277 * src/parse-gram.y (declaration): Use enum "report_states" rather
2278 than its numeric value 1.
2279
2280 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
2281 opening a new one. This fixes Debian bug 165349, reported by
2282 Bruce Stephens.
2283
22842002-12-24 Paul Eggert <eggert@twinsun.com>
2285
2286 Version 1.75e.
2287
2288 * Makefile.maint (cvs-update): Don't assume that the shell
2289 supports $(...), as Solaris sh doesn't.
2290
2291 * src/parse-gram.y (lloc_default): Remove test for empty
2292 nonterminals at the end, since it didn't change the result.
2293
22942002-12-24 Paul Eggert <eggert@twinsun.com>
2295
2296 If the user does not define YYSTYPE as a macro, Bison now declares it
2297 using typedef instead of defining it as a macro. POSIX requires this.
2298 For consistency, YYLTYPE is also declared instead of defined.
2299
2300 %union directives can now have a tag before the `{', e.g., the
2301 directive `%union foo {...}' now generates the C code
2302 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
2303 The default union tag is `YYSTYPE', for compatibility with Solaris 9
2304 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
2305 instead of `yyltype'.
2306
2307 `yystype' and `yyltype' are now obsolescent macros instead of being
2308 typedefs or tags; they are no longer documented and will be
2309 withdrawn in a future release.
2310
2311 * data/glr.c (b4_location_type): Remove.
2312 (YYSTYPE): Renamed from yystype.
2313 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
2314 (struct YYLTYPE): Renamed from struct yyltype.
2315 (YYLTYPE): Renamed from yyltype.
2316 (yyltype, yystype): New (and obsolescent) macros,
2317 for backward compatibility.
2318 * data/yacc.c: Likewise.
2319
2320 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
2321 does not specify a union tag. This is for compatibility with
2322 Solaris 9 yacc.
2323
2324 * src/parse-gram.y (add_param): 2nd arg is now char * not char
2325 const *, since it is now modified by stripping surrounding { }.
2326 (current_braced_code): Remove.
2327 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
2328 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
2329 trailing " {...}". Now of type <chars>.
2330 (grammar_declaration): Adjust to bundled tokens.
2331 (code_content): Remove; stripping is now done by add_param.
2332 (print_token_value): Print contents of bundled tokens.
2333 (token_name): New function.
2334
2335 * src/reader.h (braced_code, current_braced_code): Remove.
2336 (token_name): New decl.
2337
2338 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
2339 token_type, not braced_code code_kind. All uses changed.
2340 (SC_PRE_CODE): New state, for scanning after a keyword that
2341 has (or usually has) an immediately-following braced code.
2342 (token_type): New local var, to keep track of which token type
2343 to return when scanning braced code.
2344 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
2345 <INITIAL>"%parse-param", <INITIAL>"%printer",
2346 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
2347 instead of returning a token type immediately.
2348 (<INITIAL>"{"): Set token type.
2349 (<SC_BRACED_CODE>"}"): Use it.
2350 (handle_action_dollar, handle_action_at): Now returns bool
2351 indicating success. Fail if ! current_rule; this prevents a core dump.
2352 (handle_symbol_code_dollar, handle_symbol_code_at):
2353 Remove; merge body into caller.
2354 (handle_dollar, handle_at): Complain in invalid contexts.
2355
2356 * NEWS, doc/bison.texinfo: Document the above.
2357 * NEWS: Fix years and program names in copyright notice.
2358
23592002-12-17 Paul Eggert <eggert@twinsun.com>
2360
2361 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
2362 Reporting, Table of Symbols): Omit mentions of %lex-param and
2363 %parse-param from the documentation for now.
2364
23652002-12-15 Paul Eggert <eggert@twinsun.com>
2366
2367 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
2368 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
2369 lookahead symbol, and which sets yychar in parser actions) and it
2370 disagreed with the Bison documentation. Bug
2371 reported by Andrew Walrond.
2372
2373 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
2374 as the caller now does that.
2375 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
2376 (YYEMPTY): Parenthesize right hand side, since others use it.
2377 (yyparse): Don't assume that our generated code is the only code
2378 that sets yychar.
2379
23802002-12-13 Paul Eggert <eggert@twinsun.com>
2381
2382 Version 1.75d.
2383
2384 POSIX requires a "yacc" command.
2385 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
2386 (MOSTLYCLEANFILES): Add yacc.
2387 (yacc): New rule.
2388 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
2389 as an alias for bison y.
2390
2391 * po/LINGUAS: Add da.
2392
2393 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
2394 problem with latest <getopt.h>.
2395 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
2396
2397 * doc/fdl.texi: Upgrade to 1.2.
2398 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
2399 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
2400 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
2401 gnulib.
2402 * config/install-sh: Sync with autotools.
2403
2404 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
2405 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
2406 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
2407 locations are requested.
2408 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
2409 locations are requested.
2410
24112002-12-12 Paul Eggert <eggert@twinsun.com>
2412
2413 Remove unportable casts and storage allocation tricks.
2414 While we're at it, remove almost all casts, since they
2415 usually aren't needed and are a sign of trouble.
2416
2417 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
2418
2419 * src/derives.c (derives_compute): Do not subtract NTOKENS from
2420 the pointer DSET returned by malloc; this isn't portable.
2421 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
2422 Similarly for DERIVES.
2423 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
2424 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
2425 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
2426
2427 * src/derives.c (derives_compute): Do not bother invoking
2428 int_of_rule_number, since rule numbers are integers.
2429
2430 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
2431 rather than XMALLOC (char, N).
2432
2433 * src/files.c (filename_split): Rewrite to avoid cast.
2434
2435 * src/gram.h (symbol_number_as_item_number,
2436 item_number_as_symbol_number, rule_number_as_item_number,
2437 item_number_as_rule_number):
2438 Now inline functions rather than macros, to avoid casts.
2439 * src/state.h (state_number_as_int): Likewise.
2440 * src/tables.c (state_number_to_vector_number,
2441 symbol_number_to_vector_number): Likewise.
2442
2443 * src/gram.h (int_of_rule_number): Remove; no longer used.
2444
2445 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
2446 since the resulting storage is always stored into.
2447
2448 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
2449 where it's needed.
2450
2451 * src/muscle_tab.c (muscle_m4_output):
2452 Now inline. Return bool, not int.
2453 * src/state.c (state_compare): Likewise.
2454 * src/symtab.c (symbol_check_defined,
2455 symbol_check_alias_consistency, symbol_pack, symbol_translation,
2456 hash_compare_symbol, hash_symbol):
2457 Likewise.
2458 * src/uniqstr.c (uniqstr_print): Likewise.
2459 * src/muscle_tab.c (muscle_m4_output_processor):
2460 New function, to avoid casts.
2461 * src/state.c (state_comparator, stage_hasher): Likewise.
2462 * src/symtab.c (symbol_check_defined_processor,
2463 symbol_check_alias_consistency_processor, symbol_pack_processor,
2464 symbol_translation_processor, hash_symbol_comparator,
2465 hash_symbol_hasher): Likewise.
2466 * src/uniqstr.c (uniqstr_print_processor): Likewise.
2467 * src/muscle_tab.c (muscles_m4_output):
2468 Use new functions instead of casting old functions unportably.
2469 * src/state.c (state_hash_new): Likewise.
2470 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
2471 symbols_token_translations_init):
2472 Likewise.
2473 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
2474
2475 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
2476 var instead of casting to long, to avoid casts.
2477 (prepare_states): Use MALLOC rather than alloca, so that we don't
2478 have to worry about alloca.
2479 * src/state.c (state_hash_lookup): Likewise.
2480
2481 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
2482 local var instead of casting to unsigned char, to avoid casts.
2483
2484 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
2485 STATE_ALLOC): Remove.
2486 (transitions_new, errs_new, reductions_new, state_new): Use malloc
2487 rather than calloc, and use offsetof to avoid allocating slightly
2488 too much storage.
2489 (state_new): Initialize all members.
2490
2491 * src/state.c (state_hash): Use unsigned accumulator, not signed.
2492
2493 * src/symtab.c (symbol_free): Remove; unused.
2494 (symbol_get): Remove cast in lhs of assignment.
2495 (symbols_do): Now static. Accept generic arguments, not
2496 hashing-related ones.
2497
2498 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
2499 (symbol_processor): Remove.
2500 (symbols_do): Remove decl; now static.
2501
2502 * src/system.h (alloca): Remove; decl no longer needed.
2503 (<stddef.h>): Include, for offsetof.
2504 (<inttypes.>, <stdint.h>): Include if available.
2505 (uintptr_t): New type, if system lacks it.
2506 (CALLOC, MALLOC, REALLOC): New macros.
2507 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
2508 new macros.
2509
2510 * src/tables.c (table_size): Now int, to pacify GCC.
2511 (table_grow, table_ninf_remap): Use signed table size.
2512 (save_row): Don't bother initializing locals when not needed.
2513 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
2514 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
2515
2516 * src/vcg.h: Correct misspellings.
2517
2518 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
2519
2520
2521 * src/getargs.c (getargs): Don't assume EOF == -1.
2522
25232002-12-09 Paul Eggert <eggert@twinsun.com>
2524
2525 Change identifier spellings to avoid collisions with names
2526 that are reserved by POSIX.
2527
2528 Don't use names ending in _t, since POSIX reserves them.
2529 For consistency, remove _e and _s endings -- they're weren't
2530 needed to remove ambiguity. All uses changed.
2531 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
2532 turn was just renamed from struniq_t.
2533 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
2534 which in turn was just renamed from struniq_processor_t.
2535 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
2536 in turn was renamed from hash_compare_struniq_t.
2537 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
2538 (state_list): Renamed from state_list_t.
2539 * src/assoc.h (assoc): Renamed from assoc_t.
2540 * src/conflicts.c (enum conflict_resolution): Renamed from
2541 enum conflict_resolution_e.
2542 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
2543 (rule_list): Renamed from rule_list_t.
2544 * src/getargs.h (enum trace): Renamed from enum trace_e.
2545 (enum report): Renamed from enum report_e.
2546 * src/gram.h (item_number): Renamed from item_number_t.
2547 (rule_number): Renamed from rule_number_t.
2548 (struct rule_s): Remove the "rule_s" part; not used.
2549 (rule): Renamed from rule_t.
2550 (rule_filter): Renamed from rule_filter_t.
2551 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
2552 (goto_list): Renamed from goto_list_t.
2553 * src/lalr.h (goto_number): Renamed from goto_number_t.
2554 * src/location.h (location): Renamed from location_t.
2555 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
2556 and moved here from:
2557 * src/muscle_tab.h (muscle_entry_t): here.
2558 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
2559 (rule_list): Renamed from rule_list_t.
2560 * src/print_graph.c (static_graph): Renamed from graph.
2561 * src/reader.h (braced_code): Renamed from braced_code_t.
2562 Remove brace_code_e tag.
2563 * src/relation.h (relation_node): Renamed from relation_node_t.
2564 (relation_nodes): Renamed from relation_nodes_t.
2565 (relation): Renamed from relation_t.
2566 * src/state.h (state_number): Renamed from state_number_t.
2567 (struct state): Renamed from struct state_s.
2568 (state): Renamed from state_t.
2569 (transitions): Renamed from transitions_t. Unused (and
2570 misspelled) transtion_s tag removed.
2571 (errs): Renamed from errs_t. Unused errs_s tag removed.
2572 (reductions): Renamed from reductions_t. Unused tag
2573 reductions_s removed.
2574 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
2575 (struct symbol_list): Renamed from struct symbol_list_s.
2576 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
2577 (struct symbol): Renamed from struct symbol_s.
2578 (symbol): Renamed from symbol_t.
2579 * src/tables.c (vector_number): Renamed from vector_number_t.
2580 (action_number): Renamed from action_t.
2581 * src/tables.h (base_number): Renamed from base_t.
2582 * src/vcg.h (enum color): Renamed from enum color_e.
2583 (enum textmode): Renamed from enum textmode_e.
2584 (enum shape): Renamed from enum shape_e.
2585 (struct colorentry): Renamed from struct colorentry_s.
2586 (struct classname): Renamed from struct classname_s.
2587 (struct infoname): Renamed from struct infoname_s.
2588 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
2589 (enum decision): Renamed from enum decision_e.
2590 (enum orientation): Renamed from enum orientation_e.
2591 (enum alignment): Renamed from enum alignment_e.
2592 (enum arrow_mode): Renamed from enum arrow_mode_e.
2593 (enum crossing_type): Renamed from enum crossing_type_e.
2594 (enum view): Renamed from enum view_e.
2595 (struct node): Renamed from struct node_s.
2596 (node): Renamed from node_t.
2597 (enum linestyle): Renamed from enum linestyle_e.
2598 (enum arrowstyle): Renamed from enum arrowstyle_e.
2599 (struct edge): Renamed from struct edge.
2600 (edge): Renamed from edge_t.
2601 (struct graph): Renamed from struct graph_s.
2602 (graph): Renamed from graph_t.
2603 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
2604 Rename value_t -> value.
2605 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
2606 value_t_as_yystype -> value_as_yystype.
2607
2608 Don't include <errno.h> in the mainstream code, since it
2609 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
2610 * lib/get-errno.c, lib/get-errno.h: New files.
2611 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
2612 get-errno.c.
2613 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
2614 * src/output.c (output_skeleton): Likewise.
2615 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
2616 instead of errno.
2617 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
2618 Likewise.
2619 (handle_action_dollar, handle_action_at): Likewise.
2620 * src/system.h: Do not include <errno.h>.
2621 (TAB_EXT): Renamed from EXT_TAB.
2622 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
2623
2624 Avoid str[a-z]*, since <string.h> reserves that name space.
2625 Change all instances of "struniq" in names to "uniqstr", and
2626 likewise for "STRUNIQ" and "UNIQSTR".
2627 * src/uniqstr.c: Renamed from src/struniq.c.
2628 * src/uniqstr.h: Renamed from src/struniq.h.
2629 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
2630 * src/files.c (strsuffix): Remove; unused.
2631 (concat2): Renamed from stringappend. Now static.
2632 * src/files.h (strsuffix, stringappend): Remove; unused.
2633 * src/parse-gram.y (<chars>): Renamed from <string>.
2634 (<uniqstr>): Renamed from <struniq>.
2635 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
2636 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
2637 (struct graph_s.expand): Renamed from struct graph_s.stretch.
2638 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
2639 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
2640 (N_EXPAND): Renamed from N_STRETCH.
2641
2642 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
2643 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
2644 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
2645 Remove; unused.
2646 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
2647 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
2648 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
2649 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
2650 (BASE_MAXIMUM): Renamed from BASE_MAX.
2651 (BASE_MINIMUM): Renamed from BASE_MIN.
2652 (ACTION_MAX): Remove; unused.
2653 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
2654 Unnecessary casts removed from above defines.
2655
2656
2657 Fix misspelling in names.
2658 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
2659 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
2660 G_NODE_ALIGNEMENT.
2661
2662
2663 * lib/timevar.c (timevar_report): Renamed from time_report,
2664 for consistency with other names.
2665 * lib/timevar.h (timevar_report): New decl.
2666 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
2667
2668
2669 Sort include-file uses.
2670
2671 Reorder all include files under src to be in the order "system.h".
2672 then the ../lib include files in angle brackets (alphabetized),
2673 then the . include files in double-quotes (alphabetized). Fix
2674 dependency breakages encountered in this process, as follows:
2675 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
2676 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
2677 * src/state.h: Include "symtab.h".
2678
26792002-12-08 Paul Eggert <eggert@twinsun.com>
2680
2681 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
2682 since this causes problems when __file__ contains character
2683 sequences like "@" that are treated specially by src/scan-skel.l.
2684 Instead, just use the file's basename. This fixes the bug
2685 reported by Martin Mokrejs in
2686 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
2687
26882002-12-06 Paul Eggert <eggert@twinsun.com>
2689
2690 Add support for rules that do not have trailing semicolons, as
2691 POSIX requires. Improve the quality of locations in Bison
2692 diagnostics.
2693
2694 * src/location.c: Include <quotearg.h>.
2695 (empty_location): Now const.
2696 (location_print): New function. Follow the recommendation of the
2697 GNU Coding Standards for locations that span file boundaries.
2698 * src/location.h: Do not include <quotearg.h>; no longer needed.
2699 (boundary): New type.
2700 (location_t): Use it. This allows locations to span file boundaries.
2701 All member uses changed: file -> start.file or end.file (as needed),
2702 first_line -> start.line, first_column -> start.column,
2703 last_line -> end.line, last_column -> end.column.
2704 (equal_boundaries): New function.
2705 (LOCATION_RESET, LOCATION_STEP): Remove.
2706 (LOCATION_PRINT): Remove. All callers changed to use location_print.
2707 (empty_location): Now const.
2708 (location_print): New decl.
2709 * src/parse-gram.y (lloc_default): New function, which handles
2710 empty locations more accurately.
2711 (YYLLOC_DEFAULT): Use it.
2712 (%token COLON): Remove.
2713 (%token ID_COLON): New token.
2714 (rules): Use it.
2715 (declarations, rules): Remove trailing semicolon.
2716 (declaration, rules_or_grammar_declaration):
2717 Allow empty (";") declaration.
2718 (symbol_def): Remove empty actions; no longer needed.
2719 (rules_or_grammar_declaration): Remove trailing semicolon.
2720 (semi_colon.opt): Remove.
2721 * src/reader.h: Include location.h.
2722 (scanner_cursor): New decl.
2723 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
2724 rolling our own.
2725 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
2726 of *loc.
2727 (STEP): Remove. No longer needed, now that adjust_location does
2728 the work. All uses removed.
2729 (scanner_cursor): New var.
2730 (adjust_location): Renamed from extend_location. It now sets
2731 *loc and adjusts the scanner cursor. All uses changed.
2732 Don't bother testing for CR.
2733 (handle_syncline): Remove location arg; now updates scanner cursor.
2734 All callers changed.
2735 (unexpected_end_of_file): Now accepts start boundary of token or
2736 comment, not location. All callers changed. Update scanner cursor,
2737 not the location.
2738 (SC_AFTER_IDENTIFIER): New state.
2739 (context_state): Renamed from c_context. All uses changed.
2740 (id_loc, code_start, token_start): New local vars.
2741 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
2742 processing of Yacc white space and equivalents here.
2743 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
2744 instead of returning ID immediately, since we need to search for
2745 a subsequent colon.
2746 (<INITIAL>"'", "\""): Save token_start.
2747 (<INITIAL>"%{", "{", "%%"): Save code_start.
2748 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
2749 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
2750 BEGIN context_state at end, not INITIAL.
2751 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
2752 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
2753 Return correct token start.
2754 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
2755 the start of a character, string or multiline comment is found.
2756 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
2757 Reduction): Adjust reported locations to match the more-precise
2758 results now expected.
2759 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
2760 * tests/reduce.at (Useless Rules, Reduced Automaton,
2761 Underivable Rules): Likewise.
2762 * tests/regression.at (Invalid inputs): No longer `expecting ";"
2763 or "|"' now that so many other tokens are allowed by the new grammar.
2764
2765 * src/complain.h (current_file): Remove duplicate decl;
2766 current_file is now owned by files.h.
2767 * src/complain.c, src/scan-gram.l: Include files.h.
2768
27692002-12-06 Paul Eggert <eggert@twinsun.com>
2770
2771 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
2772 promotes to int; it might be unsigned int.
2773 * data/yacc.c (yy_reduce_print): Likewise.
2774
2775 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
2776 be #defined in the prologue, not in the Bison declarations.
2777 This fixes Debian Bug 102878, reported by Shaul Karl.
2778
27792002-12-02 Paul Eggert <eggert@twinsun.com>
2780
2781 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
2782 * lib/strtoul.c: New file, from gnulib.
2783 This fixes a porting bug reported by Peter Klein in
2784 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
2785
27862002-11-30 Paul Eggert <eggert@twinsun.com>
2787
2788 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
2789 and put only a forward declaration in the prologue. This is for
2790 consistency with the other scanner helper functions.
2791
2792 Type clashes now generate warnings, not errors, since it
2793 appears that POSIX may allow some grammars with type clashes.
2794 * src/reader.c (grammar_current_rule_check): Warn about
2795 type clashes instead of complaining.
2796 * tests/input.at (Type Clashes): Expect warnings, not complaints.
2797
2798 Add Yacc library, since POSIX requires it.
2799 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
2800 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
2801 * lib/main.c, lib/yyerror.c: New files.
2802
2803 gram_error can be static; it need not be extern.
2804 * src/reader.h (gram_error): Remove decl.
2805 * src/parse-gram.y (gram_error): Now static. Add static decl.
2806 (print_token_value): Omit parameter names from forward decl,
2807 for consistency.
2808
28092002-11-29 Paul Eggert <eggert@twinsun.com>
2810
2811 * doc/bison.texinfo: Emphasize that yylex and yyerror must
2812 be declared before being used. E.g., one should typically
2813 declare them in the prologue. Use GNU coding style in examples.
2814 Put "const" consistently after the type it modifies. Mention
2815 that C99 supports "inline". Mention that yyerror traditionally
2816 returns "int".
2817
2818 %parse-param and %lex-param now take just one argument, the
2819 declaration; the argument name is deduced from the declaration.
2820
2821 * doc/bison.texinfo (Parser Function, Pure Calling, Error
2822 Reporting, Table of Symbols): Document this.
2823 * src/parse-gram.y (add_param): New function.
2824 (COMMA): Remove.
2825 (declaration): Implement new rule for %parse-param and %lex-param.
2826 * src/scan-gram.l: "," now elicits a warning, rather than being
2827 a token; this is more compatible with byacc.
2828 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
2829
28302002-11-27 Paul Eggert <eggert@twinsun.com>
2831
2832 Rename identifiers to avoid real and potential collisions.
2833
2834 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
2835 to avoid collision with lex macro described by Bruce Lilly in
2836 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
2837 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
2838 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
2839 * src/parse-gram.y (print_token_value): Renamed from yyprint.
2840 All uses changed.
2841 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
2842 The name "yycontrol" violates the name space rules, and this stuff
2843 wasn't being used anyway.
2844 (input): Remove action; this stuff wasn't being used.
2845 (gram_error): Rename local variable yylloc -> loc.
2846 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
2847 (YY_DECL): Don't use "yy" at start of local variables.
2848 All uses changed, e.g., yylloc -> loc.
2849 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
2850 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
2851 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
2852 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
2853
2854 * src/parse-gram.y (gram_error): loc is now const *.
2855 * src/reader.h (gram_error): Likewise.
2856
28572002-11-24 Paul Eggert <eggert@twinsun.com>
2858
2859 Version 1.75c.
2860
2861 * tests/actions.at (Actions after errors): Use an output format
2862 more similar to that of the Printers and Destructors test.
2863 Test the position of the ';' token too.
2864 (Printers and Destructors): Likewise.
2865 (Printers and Destructors: %glr-parser): Remove for now, to avoid
2866 unnecessarily alarming people when the test fails.
2867
2868 * data/yacc.c (yyerrlab1): Move this label down, so that the
2869 parser does not discard the lookahead token if the user code
2870 invokes YYERROR. This change is required for POSIX conformance.
2871
2872 * lib/error.c: Sync with gnulib.
2873
28742002-11-22 Paul Eggert <eggert@twinsun.com>
2875
2876 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
2877 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
2878 * lib/xmalloc.c: Likewise.
2879
28802002-11-20 Paul Eggert <eggert@twinsun.com>
2881
2882 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
2883
28842002-11-20 Paul Eggert <eggert@twinsun.com>
2885
2886 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
2887 should use `if (! x) abort ();' rather than `assert (x);', and
2888 anyway it's one less thing to worry about configuring.
2889
2890 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
2891 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
2892 and replace all instances of assert with abort.
2893 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
2894 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
2895
2896 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
2897 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
2898 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
2899 hash_find_entry, hash_rehash, hash_insert): Likewise.
2900 * src/conflicts.c (resolve_sr_conflict): Likewise.
2901 * src/lalr.c (set_goto_map, map_goto): Likewise.
2902 * src/nullable.c (nullable_compute): Likewise.
2903 * src/output.c (prepare_rules, token_definitions_output): Likewise.
2904 * src/reader.c (packgram, reader): Likewise.
2905 * src/state.c (state_new, state_free, state_transitions_set,
2906 state_reduction_find): Likewise.
2907 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
2908 symbol_pack): Likewise.
2909 * src/tables.c (conflict_row, pack_vector): Likewise.
2910 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
2911 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
2912 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
2913 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
2914
2915 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
2916 (ARGMATCH_CONSTRAINT): New macro.
2917 (ARGMATCH_ASSERT): Use it.
2918
2919 * src/system.h (verify): New macro.
2920 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
2921 rather than assert.
2922 * src/tables.c (tables_generate): Likewise.
2923
2924 * src/struniq.c (struniq_assert): Now returns void, and aborts
2925 if the assertion is false.
2926 (struniq_assert_p): Remove.
2927 * src/struniq.h: Likewise.
2928
29292002-11-18 Paul Eggert <eggert@twinsun.com>
2930
2931 * data/glr.c (yygetLRActions): Replace `yyindex' with
2932 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
2933 This fixes the regression with Sun ONE Studio 7 cc that I reported in
2934 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
2935
29362002-11-18 Akim Demaille <akim@epita.fr>
2937
2938 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
2939 space.
2940 From Tim Van Holder.
2941
29422002-11-17 Paul Eggert <eggert@twinsun.com>
2943
2944 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
2945 to "SyntaxError" for consistency with my 2002-11-15 change.
2946
2947 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
2948 not define to {}, since this breaks the common use of `YYDPRINTF
2949 ((...));' if a single statement is desired (e.g. before `else').
2950 Work around GCC warnings by surrounding corresponding calls with
2951 {} if needed.
2952 (yyhasResolvedValue): Remove unused function.
2953 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
2954 loop body.
2955 (yyreportSyntaxError): Renamed from yyreportParseError.
2956 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
2957 All uses changed.
2958 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
2959 extern when possible. Remove unused initializations.
2960
29612002-11-16 Akim Demaille <akim@epita.fr>
2962
2963 Augment the similarity between GLR and LALR traces.
2964
2965 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
2966 (YY_REDUCE_PRINT): New.
2967 (yyparse): Use them.
2968 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
2969 YYDPRINT here.
2970 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
2971 state reached after the reduction/recovery, since...
2972 (yyparse, yyprocessOneStack): Report the state we are entering in.
2973
29742002-11-16 Akim Demaille <akim@epita.fr>
2975
2976 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
2977 Add support for --trace=skeleton.
2978 * src/scan-skel.l: %option debug.
2979 Scan strings of non-@ or \n instead of character by character.
2980 (scan_skel): Handle trace_skeleton.
2981 (QPUTS): New.
2982 (@output_parser_name@, @output_header_name@): ``Restore'' their
2983 support (used to be M4 macros).
2984 * data/yacc.c: Quote larger chunks, a la glr.c.
2985 * data/lalr1.cc: Likewise.
2986 The header guards are no longer available, so use some other
2987 string than `YYLSP_NEEDED'.
2988
29892002-11-16 Akim Demaille <akim@epita.fr>
2990
2991 Make the ``Printers and Destructors'' test more verbose, taking
2992 `yacc.c''s behavior as (possibly wrong) reference.
2993
2994 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
2995 instead of fprint on stdout.
2996 Set and report the last_line of the symbols.
2997 Consistently display values and locations.
2998
29992002-11-16 Paul Eggert <eggert@twinsun.com>
3000
3001 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
3002
30032002-11-15 Paul Eggert <eggert@twinsun.com>
3004
3005 * tests/actions.at (Actions after errors): New test case.
3006
3007 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
3008 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
3009 tests/action.at, tests/calc.at, tests/conflicts.at,
3010 tests/cxx-type.at, tests/regression.at:
3011 "parse error" -> "syntax error" for POSIX compatibility.
3012 "parsing stack overflow..." -> "parser stack overflow" so
3013 that code matches Bison documentation.
3014
30152002-11-15 Akim Demaille <akim@epita.fr>
3016
3017 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
3018 take two BRACED_CODE, not two string_content.
3019 Free the scanner's obstack when we are done.
3020 (code_content): New.
3021 * tests/calc.at: Adjust.
3022 * doc/bison.texinfo: Adjust.
3023 Also, make sure to include the `,' for these declarations.
3024
30252002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
3026
3027 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
3028 definition; avoids potential autoreconf problems.
3029
30302002-11-15 Akim Demaille <akim@epita.fr>
3031
3032 Always check the value returned by yyparse.
3033
3034 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
3035 returned by yyparse.
3036 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
3037 Adjust calls.
3038 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
3039 returned by yyparse.
3040
30412002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3042
3043 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
3044 on input.at test.
3045
30462002-11-14 Paul Eggert <eggert@twinsun.com>
3047
3048 * src/output.c (output_skeleton): Call xfopen instead of
3049 duplicating xfopen's body.
3050
3051 Fix bugs reported by Nelson H. F. Beebe in
3052 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
3053
3054 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
3055 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
3056 Group compiler. Instead, use "$CC -E bar.c". Include the .h
3057 file twice in the grammar, as an extra check.
3058
3059 * tests/input.at (Torturing the Scanner): Surround the
3060 backslash-newline tests with "#if 0", to make it less likely that
3061 we'll run into compiler bugs. Bring back solitary \ inside
3062 comment, but add a closing comment to work around HP C bug. Don't
3063 test backslash-newline in C character constant.
3064
30652002-11-14 Akim Demaille <akim@epita.fr>
3066
3067 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
3068 status of the compiler.
3069 Calling `exit 1' is no longer needed.
3070 Reported by Nelson H. F. Beebe.
3071
30722002-11-14 Akim Demaille <akim@epita.fr>
3073
3074 * tests/atlocal.in (CPPFLAGS): We have config.h.
3075 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
3076 New.
3077 * tests/actions.at, tests/calc.at, tests/conflicts.at,
3078 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
3079 * tests/regression.at, tests/torture.at: Use them for all the
3080 grammars that are to be compiled.
3081 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
3082 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
3083 * doc/bison.texinfo (GLR Parsers): Document `inline'.
3084
30852002-11-14 Akim Demaille <akim@epita.fr>
3086
3087 * doc/bison.texinfo: Various formatting changes (alignments in
3088 samples, additional @group/@end group, GCS in samples.
3089 Use @deffn instead of simple @table to define the directives,
3090 macros, variables etc.
3091
30922002-11-13 Paul Eggert <eggert@twinsun.com>
3093
3094 Fix some bugs reported by Albert Chin-A-Young in
3095 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
3096
3097 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
3098 -o c"; the HP C compiler chatters during compilation.
3099 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
3100 * tests/headers.at (export YYLTYPE): Likewise.
3101
3102 * tests/input.at (Torturing the Scanner): Remove lines containing
3103 solitary backslashes, as they tickle a bug in the HP C compiler.
3104
3105 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
3106 comments, since they're not portable. Use GNU coding style.
3107
31082002-11-13 Akim Demaille <akim@epita.fr>
3109
3110 * data/yacc.c: Leave bigger chunks of quoted text.
3111 (YYDSYMPRINTF): New.
3112 Use it to report symbol activities.
3113 * data/glr.c (YYDSYMPRINTF): New.
3114 Use it.
3115
31162002-11-12 Paul Eggert <eggert@twinsun.com>
3117
3118 Version 1.75b.
3119
3120 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
3121 (yyglrReduce): Return yyok, not 0.
3122 This should avoid the enumerated-type warnings reported
3123 by Nelson H. F. Beebe in
3124 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
3125
3126 * lib/bbitset.h (BITSET_INLINE): Remove.
3127 * lib/bitset.h [! BITSET_INLINE]: Remove.
3128 (bitset_set, bitset_reset, bitset_test): Rename local vars
3129 to avoid shadowing warnings by GCC.
3130
3131 * data/glr.c (inline): Remove #define. It's the user's
3132 responsibility to #define it away, just like 'const'.
3133 This fixes one of the bugs reported by Nelson H. F. Beebe in
3134 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
3135
3136 * Makefile.maint (po-check): Scan .l and .y files instead of the
3137 .c and the .h files that they generate. This fixes the bug
3138 reported by Tim Van Holder in:
3139 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
3140 Look for N_ as well as for _. Try to avoid matching #define for
3141 N_ and _.
3142 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
3143 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
3144 * src/scan-gram.l: Revamp regular expressions so that " and '
3145 do not confuse xgettext.
3146
3147 * src/struniq.h (struniq_new): Do not declare the return type
3148 to be 'const'; this violates the C standard.
3149 * src/struniq.c (struniq_new): Likewise.
3150
31512002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
3152
3153 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
3154 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
3155 linker.
3156
31572002-11-12 Akim Demaille <akim@epita.fr>
3158
3159 * Makefile.maint: Sync with Autoconf:
3160 (local_updates): New.
3161
31622002-11-12 Akim Demaille <akim@epita.fr>
3163
3164 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
3165
31662002-11-12 Akim Demaille <akim@epita.fr>
3167
3168 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
3169 locations.
3170
31712002-11-12 Akim Demaille <akim@epita.fr>
3172
3173 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
3174 not yyvalue.
3175
31762002-11-12 Akim Demaille <akim@epita.fr>
3177
3178 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
3179 Use it to test the GLR parser.
3180
31812002-11-12 Akim Demaille <akim@epita.fr>
3182
3183 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
3184 defines it.
3185 * data/glr.c (yystos): New.
3186 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
3187 (YYDSYMPRINT): New.
3188 (yyval): Don't define it, it is handled via M4.
3189 (yyrecoverParseError): Free verbosely the discarded symbols.
3190 * data/yacc.c (yysymprint): Remove, rather...
3191 (b4_yysymprint_generate): invoke.
3192 * data/c.m4 (b4_yysymprint_generate): New.
3193 Accept pointers as arguments, as opposed to the version from
3194 yacc.c.
3195 (b4_yydestruct_generate): Likewise.
3196 * tests/cations.at (Printers and Destructors): Use Bison directives
3197 instead of CPP macros.
3198 Don't rely on internal details.
3199
32002002-11-12 Akim Demaille <akim@epita.fr>
3201
3202 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
3203 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
3204 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
3205 it against YYEMPTY and so forth), work on yytoken (i.e., set
3206 it to YYEMPTY etc.).
3207 (yydestruct): Replace with a b4_yydestruct_generate invocation.
3208 (b4_symbol_actions): Remove.
3209 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
3210 for 0, end-of-input.
3211
32122002-11-12 Akim Demaille <akim@epita.fr>
3213
3214 * doc/bison.texinfo (Destructor Decl): New.
3215
32162002-11-12 Akim Demaille <akim@epita.fr>
3217
3218 * src/tables.c (tables_generate): Use free for pointers that
3219 cannot be NULL, not XFREE.
3220 (pack_vector): Use assert, not fatal, for bound violations.
3221 * src/state.c (state_new): Likewise.
3222 * src/reader.c (reader): Likewise.
3223 * src/lalr.c (set_goto_map): Likewise.
3224 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
3225 the file name.
3226
32272002-11-12 Akim Demaille <akim@epita.fr>
3228
3229 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
3230 Restore.
3231 * src/scan-gram.l (last_string): Is global to the file, not to
3232 yylex.
3233 * src/parse-gram.y (input): Don't append the epilogue here,
3234 (epilogue.opt): do it here, and free the scanner's obstack.
3235 * src/reader.c (epilogue_set): Rename as...
3236 (epilogue_augment): this.
3237 * data/c.m4 (b4_epilogue): Defaults to empty.
3238
32392002-11-12 Akim Demaille <akim@epita.fr>
3240
3241 * src/getargs.c (long_options): Remove duplicates.
3242 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
3243 Remove.
3244 * doc/bison.rnh: Remove.
3245 * doc/bison.texinfo (VMS Invocation): Remove.
3246
32472002-11-12 Akim Demaille <akim@epita.fr>
3248
3249 * src/struniq.h, src/struniq.c (struniq_t): Is const.
3250 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
3251
3252 Use struniq for symbols.
3253
3254 * src/symtab.h (symbol_t): The tag member is a struniq.
3255 (symbol_type_set): Adjust.
3256 * src/symtab.c (symbol_new): Takes a struniq.
3257 (symbol_free): Don't free the tag member.
3258 (hash_compare_symbol_t, hash_symbol_t): Rename as...
3259 (hash_compare_symbol, hash_symbol): these.
3260 Use the fact that tags as struniqs.
3261 (symbol_get): Use struniq_new.
3262 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
3263 Returns a strniq.
3264 * src/reader.h (merger_list, grammar_currentmerge_set): The name
3265 and type members are struniqs.
3266 * src/reader.c (get_merge_function)
3267 (grammar_current_rule_merge_set): Adjust.
3268 (TYPE, current_type): Are struniq.
3269
3270 Use struniq for file names.
3271
3272 * src/files.h, src/files.c (infile): Split into...
3273 (grammar_file, current_file): these.
3274 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
3275 * src/reduce.c (reduce_print): Likewise.
3276 * src/getargs.c (getargs): Likewise.
3277 * src/complain.h, src/complain.c: Likewise.
3278 * src/main.c (main): Call struniqs_new early enough to use it for
3279 file names.
3280 Don't free the input file name.
3281
32822002-11-12 Akim Demaille <akim@epita.fr>
3283
3284 * src/symtab.c (symbol_free): Remove dead deactivated code:
3285 type_name are properly removed.
3286 Don't use XFREE to free items that cannot be NULL.
3287 * src/struniq.h, src/struniq.c: New.
3288 * src/main.c (main): Initialize/free struniqs.
3289 * src/parse-gram.y (%union): Add astruniq member.
3290 (yyprint): Adjust.
3291 * src/scan-gram.l (<{tag}>): Return a struniq.
3292 Free the obstack bit that used to store it.
3293 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
3294
32952002-11-11 Paul Eggert <eggert@twinsun.com>
3296
3297 Revamp to fix many (but not all) of the C- and M4-related quoting
3298 problems. Among other things, this fixes the Bison bug reported
3299 by Jan Hubicka when processing the Bash grammar; see:
3300 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
3301
3302 Use new @ escapes consistently. Represent brackets with @{ and @}
3303 rather than @<:@ and @:>@, since this works a bit better with dumb
3304 editors like vi. Represent @ with @@, since @ is now consistently
3305 an escape. Use @oline@ and @ofile@ rather than __oline__ and
3306 __ofile__, to avoid unexpected expansions. Similarly, use @output
3307 rather than #output.
3308
3309 * data/c.m4 (b4_copyright): Omit file name from comment, since
3310 the file name could contain "*/".
3311 (b4_synclines_flag): Don't quote the 2nd argument; it should already
3312 be quoted. All uses changed.
3313
3314 * data/glr.c: Use new @ escapes consistently.
3315 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
3316 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
3317 Remove, since they couldn't handle arbitrary characters in file
3318 names.
3319 * data/lalr1.cc: Likewise.
3320 * data/yacc.c: Likewise.
3321
3322 * src/files.c (output_infix): Remove; all uses removed.
3323 * src/files.h: Likewise.
3324
3325 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
3326 mishandled funny characters in file names, and anyway it isn't
3327 needed any more.
3328 * data/yacc.c: Likewise.
3329 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
3330
3331 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
3332 * data/yacc.c: Likewise.
3333
3334 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
3335 strings now.
3336 (muscle_init): Quote filename as a C string.
3337 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
3338 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
3339 * src/output.c (escaped_file_name_output): New function.
3340 (prepare_symbols): Quote tokens for M4.
3341 (prepare): Don't insert output_infix, output_prefix,
3342 output_parser_name, output_header_name; this is now down by scan-skel.
3343 Insert skeleton as a C string.
3344
3345 * src/output.c (user_actions_output, symbol_destructors_output,
3346 symbol_printers_output): Quote filenames for C and M4.
3347 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3348
3349 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
3350 escapes other than \\ and \'; this simplifies the code.
3351 (<SC_STRING>): Likewise, for \\ and \".
3352 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
3353 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
3354 Use new escapes @{ and @} for [ and ].
3355
3356 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
3357 them with auto vars.
3358 Switch to new escape scheme, where @ is the escape character uniformly.
3359 Abort if a stray escape character is found. Avoid unbounded input
3360 buffer when parsing non-escaped text.
3361
3362 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
3363 __oline__, #output, $@, and @{ do not have unintended meanings.
3364
33652002-11-09 Paul Eggert <eggert@twinsun.com>
3366
3367 Fix the test failure due to GCC warnings described in
3368 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
3369 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
3370 evaluate to 0 if it's impossible for NINF to be in the respective
3371 table.
3372 (yygetLRActions, yyrecoverParseError): Use them.
3373
3374 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
3375 counted in the token inserted at end of file. Now takes
3376 location_t *, not location_t, so that the location can be
3377 adjusted. All uses changed.
3378
3379 * tests/regression.at (Invalid inputs): Adjust wording in
3380 diagnostic to match the new behavior.
3381
3382 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
3383 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
3384 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
3385 abort ();'. This reduces the runtime of the "Many lookaheads"
3386 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
3387 GCC 3.2.
3388
33892002-11-07 Paul Eggert <eggert@twinsun.com>
3390
3391 * src/parse-gram.y (CHARACTER): Remove unused token.
3392 All uses removed.
3393
3394 * src/scan-gram.l: Remove stack option. We no longer use the
3395 stack, since the stack was never deeper than 1; instead, use the
3396 new auto var c_context to record the stacked value.
3397
3398 Remove nounput option. At an unexpected end of file, we now unput
3399 the minimal input necessary to end cleanly; this simplifies the
3400 code.
3401
3402 Avoid unbounded token sizes where this is easy.
3403
3404 (unexpected_end_of_file): New function.
3405 Use it to systematize the error message on unexpected EOF.
3406 (last-string): Now auto, not static.
3407 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
3408 (scanner_last_string_free): Remove; not used.
3409 (percent_percent_count): Move decl to just before use.
3410 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
3411 not the (never otherwised-used) CHARACTER.
3412
34132002-11-07 Akim Demaille <akim@epita.fr>
3414
3415 Let yyerror always receive the msg as last argument, so that
3416 yyerror can be variadic.
3417
3418 * data/yacc.c (b4_yyerror_args): New.
3419 Use it when calling yyerror.
3420 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
3421 Use it when calling yyerror.
3422 * doc/bison.texinfo (Error Reporting): Adjust.
3423 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
3424 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
3425
34262002-11-06 Akim Demaille <akim@epita.fr>
3427
3428 #line should have quoted strings.
3429 Ideally, this should be done by m4_quotearg.
3430
3431 * src/scan-skel.l: Include quotearg.h.
3432 Quote __ofile__.
3433 * src/output.c (symbol_printers_output)
3434 (symbol_destructors_output): Quote the file name.
3435
34362002-11-06 Akim Demaille <akim@epita.fr>
3437
3438 * tests/regression.at (Invalid inputs): Adjust to the recent
3439 messages.
3440
34412002-11-06 Akim Demaille <akim@epita.fr>
3442
3443 Restore --no-lines.
3444 Reported by Jim Kent.
3445
3446 * data/c.m4 (b4_syncline): New.
3447 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
3448 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
3449 * src/output.c (user_actions_output): Likewise.
3450 (prepare): Define 'b4_synclines_flag'.
3451 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
3452
34532002-11-06 Akim Demaille <akim@epita.fr>
3454
3455 * src/main.c (main): Free `infile'.
3456 * src/scan-gram.l (handle_syncline): New.
3457 Recognize `#line'.
3458 * src/output.c (user_actions_output, symbol_destructors_output)
3459 (symbol_printers_output): Use the location's file name, not
3460 infile.
3461 * src/reader.c (prologue_augment, epilogue_set): Likewise.
3462
34632002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3464
3465 * src/tables.c (matching_state): Don't allow states to match if
3466 either has GLR conflict entries.
3467
34682002-11-05 Paul Eggert <eggert@twinsun.com>
3469
3470 * src/scan-gram.l: Use more accurate diagnostics, e.g.
3471 "integer out of range" rather than "invalid value".
3472 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
3473 accordingly.
3474
3475 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
3476 Also, remove one static variable in the scanner.
3477
3478 * src/scan-gram.l (braces_level): Now auto, not static.
3479 Initialize to zero if the compiler is being picky.
3480 (INITIAL): Clear braces_level instead of incrementing it.
3481 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
3482 as POSIX 1003.1-2001 requires.
3483 * src/system.h (IF_LINT): New macro, taken from coreutils.
3484 * configure.ac: Define "lint" if --enable-gcc-warnings.
3485
34862002-11-05 Akim Demaille <akim@epita.fr>
3487
3488 * src/scan-gram.l: When it starts with `%', complain about the
3489 whole directive, not just that `invalid character: %'.
3490
34912002-11-04 Akim Demaille <akim@epita.fr>
3492
3493 * Makefile.maint: Update from Autoconf.
3494 (update, cvs-update, po-update, do-po-update): New.
3495
34962002-11-04 Akim Demaille <akim@epita.fr>
3497
3498 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
3499 and yyerror.
3500 Have yyerror `use' its arguments.
3501 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
3502 returns true when location & yacc & pure & parse-param.
3503 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
3504
35052002-11-04 Akim Demaille <akim@epita.fr>
3506
3507 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
3508 clashes.
3509 * src/scan-gram.l: Use [\'] instead of ['] to pacify
3510 font-lock-mode.
3511 Use complain_at.
3512 Use quote, not quote_n since LOCATION_PRINT no longer uses the
3513 slot 0.
3514
35152002-11-03 Paul Eggert <eggert@twinsun.com>
3516
3517 * src/reader.c (get_merge_function, grammar_current_rule_check):
3518 Use consistent diagnostics for reporting type name clashes.
3519 Quote the types with <>, for consistency with Yacc.
3520 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
3521
35222002-11-03 Akim Demaille <akim@epita.fr>
3523
3524 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
3525 New.
3526 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
3527 (b4_parse_param): Remove.
3528 Use b4_identification.
3529 Propagate b4_pure_args where needed to pass them to yyerror.
3530 * data/glr.m4 (b4_parse_param): Remove.
3531 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
3532 (b4_lpure_formals): New.
3533 Use b4_identification.
3534 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
3535 b4_user_formals and b4_user_args.
3536 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
3537 (yyreportAmbiguity): When using a pure parser, also need
3538 the location, and the parse-params.
3539 Adjust callers.
3540 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
3541 When using a pure parser, also need the parse-params.
3542 Adjust callers.
3543 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
3544 (%pure-parser + %parse-param) LALR and GLR parsers.
3545 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
3546 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
3547 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
3548 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
3549 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
3550 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
3551 * doc/bison.texinfo: Untabify the whole file.
3552 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
3553 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
3554 (Error Reporting): Adjust to these new directives.
3555 Document %error-verbose, deprecate YYERROR_VERBOSE.
3556
35572002-11-03 Akim Demaille <akim@epita.fr>
3558
3559 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
3560 AT_CHECK_CALC_GLR invocations to use % directives, instead of
3561 command line options.
3562 * tests/cxx-type.at: Formatting changes.
3563
35642002-11-03 Paul Eggert <eggert@twinsun.com>
3565
3566 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
3567 to count columns correctly, and to check for invalid inputs.
3568
3569 Use mbsnwidth to count columns correctly. Account for tabs, too.
3570 Include mbswidth.h.
3571 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
3572 (extend_location): New function.
3573 (YY_LINES): Remove.
3574
3575 Handle CRLF in C code rather than in Lex code.
3576 (YY_INPUT): New macro.
3577 (no_cr_read): New function.
3578
3579 Scan UCNs, even though we don't fully handle them yet.
3580 (convert_ucn_to_byte): New function.
3581
3582 Handle backslash-newline correctly in C code.
3583 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
3584 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
3585 all uses changed.
3586 (tag, splice): New EREs. Do not allow NUL or newline in tags.
3587 Use {splice} wherever C allows backslash-newline.
3588 YY_STEP after space, newline, vertical-tab.
3589 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
3590
3591 (letter, id): Don't assume ASCII; e.g., spell out a-z.
3592
3593 ({int}, handle_action_dollar, handle_action_at): Check for integer
3594 overflow.
3595
3596 (YY_STEP): Omit trailing semicolon, so that it's more like C.
3597
3598 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
3599 as well as \000. Check for UCHAR_MAX, not 255.
3600 Allow \x with an arbitrary positive number of digits, as in C.
3601 Check for overflow here.
3602 Allow \? and UCNs, for compatibility with C.
3603
3604 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
3605 with quote slot used by complain_at.
3606
3607 * tests/input.at: Add tests for backslash-newline, m4 quotes
3608 in symbols, long literals, and funny escapes in strings.
3609
3610 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
3611 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
3612 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
3613 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
3614 * m4/mbswidth.m4: New file, from GNU coreutils.
3615
3616 * doc/bison.texinfo (Grammar Outline): Document // comments.
3617 (Symbols): Document that trigraphs have no special meaning in Bison,
3618 nor is backslash-newline allowed.
3619 (Actions): Document that trigraphs have no special meaning.
3620
3621 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
3622 no longer used.
3623
36242002-11-02 Paul Eggert <eggert@twinsun.com>
3625
3626 * src/reader.c: Don't include quote.h; not needed.
3627 (get_merge_function): Reword warning to be consistent with
3628 type clash diagnostic in grammar_current_rule_check.
3629
3630 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
3631 bug in trigraph handling.
3632
3633 * src/output.c (prepare_symbols): When printing token names,
3634 escape "[" as "@<:@" and likewise for "]".
3635
3636 * src/system.h (errno): Remove declaration, as we are now
3637 assuming C89 or better, and C89 guarantees errno.
3638
36392002-10-30 Paul Eggert <eggert@twinsun.com>
3640
3641 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
3642 Check for close failures.
3643 * src/files.h (xfclose): Return void, not int, since it always
3644 returned zero.
3645 * src/files.c (xfclose): Likewise. Report I/O error if ferror
3646 indicates one.
3647 * src/output.c (output_skeleton): Use xfclose rather than fclose
3648 and ferror. xfclose now checks ferror.
3649
3650 * data/glr.c (YYLEFTMOST_STATE): Remove.
3651 (yyreportTree): Use a stack-based leftmost state. This avoids
3652 our continuing battles with bogus warnings about initializers.
3653
36542002-10-30 Akim Demaille <akim@epita.fr>
3655
3656 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
3657 #if.
3658
36592002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
3660
3661 * tests/glr-regr1.at: New test for reported regressions.
3662 * tests/testsuite.at: Add glr-regr1.at test.
3663 * tests/Makefile.am: Add glr-regr1.at test.
3664
36652002-10-24 Paul Eggert <eggert@twinsun.com>
3666
3667 Version 1.75a.
3668
3669 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
3670 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
3671 we use malloc. Don't assume 'A' through 'Z' are contiguous.
3672 Don't assume strdup exists; POSIX says its an XSI extension.
3673 Check for buffer overflow on input.
3674
36752002-10-24 Akim Demaille <akim@epita.fr>
3676
3677 * src/output.c (output_skeleton): Don't disable M4sugar comments
3678 too soon: it results in comments being expanded.
3679 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
3680 first output.
3681
36822002-10-24 Akim Demaille <akim@epita.fr>
3683
3684 * data/yacc.c (m4_int_type): New.
3685 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
3686 char' as only yacc.c wants K&R portability.
3687 * data/glr.c (yysigned_char): Remove.
3688 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
3689 Reported by Quoc Peyrot.
3690
36912002-10-23 Paul Eggert <eggert@twinsun.com>
3692
3693 * src/main.c (main): With --trace=time, report times even if a
3694 non-fatal error occurs. Formerly, the times were reported in some
3695 such cases but not in others.
3696 * src/reader.c (reader): Just return if a complaint has been issued,
3697 instead of exiting, so that 'main' can report times.
3698
36992002-10-22 Akim Demaille <akim@epita.fr>
3700
3701 * src/system.h: Include sys/types.
3702 Reported by Bert Deknuydt.
3703
37042002-10-23 Paul Eggert <eggert@twinsun.com>
3705
3706 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
3707 Suggested by Art Haas.
3708
37092002-10-22 Paul Eggert <eggert@twinsun.com>
3710
3711 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
3712 decl; not needed any more.
3713 * src/main.c (main): Use return to exit, undoing yesterday's change.
3714 The last OS that we could find where this wouldn't work is
3715 SunOS 3.5, and that's too old to worry about now.
3716
3717 * data/glr.c (struct yyltype): Define members even when not
3718 doing locations. This is more consistent with yacc.c, and it
3719 works around the following bug reports:
3720 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
3721 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
3722
3723 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
3724 @acronym consistently. Standardize on "Yacc" instead of "YACC",
3725 "Algol" instead of "ALGOL". Give a bit more history about BNF.
3726
37272002-10-22 Akim Demaille <akim@epita.fr>
3728
3729 * data/README: New.
3730
37312002-10-21 Paul Eggert <eggert@twinsun.com>
3732
3733 Be consistent about 'bool'; the old code used an enum in one
3734 module and an int in another, and this violates the C standard.
3735 * m4/stdbool.m4: New file, from coreutils 4.5.3.
3736 * configure.ac (AC_HEADER_STDBOOL): Add.
3737 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
3738 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
3739 * src/symtab.c (hash_compare_symbol_t): Likewise.
3740 * src/system.h (bool, false, true): Use a definition consistent
3741 with ../lib/hash.c. All uses changed.
3742
3743 * src/complain.c (warning_issued): Renamed from warn_message_count,
3744 so that we needn't worry about integer overflow (!).
3745 Now of type bool. All uses changed.
3746 (complaint_issued): Renamed from complain_message_count; likewise.
3747
3748 * src/main.c (main): Use exit to exit with failure.
3749
3750 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
3751 rather than 1 and 0.
3752 * src/main.c (main): Likewise.
3753 * src/getargs.c (getargs): Likewise.
3754 * src/reader.c (reader): Likewise.
3755
3756 * src/getarg.c (getargs): Remove duplicate code for
3757 "Try `bison --help'".
3758
3759 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
3760 What was that "2" for?
3761
3762 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
3763 * src/getargs.c (usage): Likewise.
3764
3765 * src/getargs.c (getargs): When there are too few operands, report
3766 the last one. When there are too many, report the first extra
3767 one. This is how diffutils does it.
3768
37692002-10-20 Paul Eggert <eggert@twinsun.com>
3770
3771 Remove K&R vestiges.
3772 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
3773 * src/complain.c (VA_START): Remove. Assume prototypes.
3774 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
3775 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
3776 fatal): Assume prototypes.
3777 * src/complain.h: Assume prototypes.
3778 * src/system.h (PARAMS): Remove.
3779 Include <limits.h> unconditionally, since it's guaranteeed even
3780 for a freestanding C89 compiler.
3781 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
3782 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
3783
37842002-10-20 Akim Demaille <akim@epita.fr>
3785
3786 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
3787 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
3788 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
3789 (yyresolveStates, yyresolveAction, yyresolveStack)
3790 (yyprocessOneStack): Use them.
3791 (yy_reduce_print): New.
3792 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
3793
37942002-10-20 Akim Demaille <akim@epita.fr>
3795
3796 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
3797 arguments and output `void'.
3798 (b4_c_function): Rename as...
3799 (b4_c_function_def): this.
3800 (b4_c_function_decl, b4_c_ansi_function_def)
3801 (b4_c_ansi_function_decl): New.
3802 Change the interpretation of the arguments: before `int, foo', now
3803 `int foo, foo'.
3804 * data/yacc.c (yyparse): Prototype and define thanks to these.
3805 Adjust b4_c_function_def uses.
3806 * data/glr.c (yyparse): Likewise, but ANSI only.
3807
38082002-10-20 Akim Demaille <akim@epita.fr>
3809
3810 * src/output.c (prepare): Move the definition of `tokens_number',
3811 `nterms_number', `undef_token_number', `user_token_number_max'
3812 to...
3813 (prepare_tokens): Here.
3814 (prepare_tokens): Rename as...
3815 (prepare_symbols): this.
3816 (prepare): Move the definition of `rules_number' to...
3817 (prepare_rules): here.
3818 (prepare): Move the definition of `last', `final_state_number',
3819 `states_number' to...
3820 (prepare_states): here.
3821 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
3822
38232002-10-20 Akim Demaille <akim@epita.fr>
3824
3825 * src/tables.h, src/tables.c, src/output.c: Comment changes.
3826
38272002-10-20 Akim Demaille <akim@epita.fr>
3828
3829 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
3830 * data/c.m4: here.
3831
38322002-10-20 Akim Demaille <akim@epita.fr>
3833
3834 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
3835 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
3836 `pair'.
3837 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
3838 `name' to...
3839 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
3840 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
3841 These.
3842
38432002-10-19 Paul Eggert <eggert@twinsun.com>
3844
3845 Do not create a temporary file, as that involves security and
3846 cleanup headaches. Instead, use a pair of pipes.
3847 Derived from a suggestion by Florian Krohm.
3848 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
3849 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
3850 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
3851 (BISON_PREREQ_SUBPIPE): Add.
3852 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
3853 Add subpipe.h, subpipe.c.
3854 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
3855 * po/POTFILES.in: Add lib/subpipe.c.
3856 * src/output.c: Include "subpipe.h".
3857 (m4_invoke): Remove decl.
3858 (scan_skel): New decl.
3859 (output_skeleton): Use pipe rather than temporary file for m4 input.
3860 Check that m4sugar.m4 is readable, to avoid deadlock.
3861 Check for pipe I/O error.
3862 * src/scan-skel.l (readpipe): Remove decl.
3863 (scan_skel): New function, to be used in place of m4_invoke.
3864 Read from stream rather than file.
3865
3866 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
3867 float, as this generates a warning on Solaris 8 + GCC 3.2 with
3868 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
3869 this generates a more-accurate value anyway.
3870
3871 * lib/timevar.c (timervar_accumulate): Rename locals to
3872 avoid confusion with similarly-named more-global.
3873 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
3874
3875 * src/output.c (prepare): Use xstrdup to convert char const *
3876 to char *, to avoid GCC warning.
3877
38782002-10-19 Akim Demaille <akim@epita.fr>
3879
3880 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
3881 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
3882 Use them to have `calc.y' ready for %pure-parser.
3883 * data/yacc.c (YYLEX): Pass a yylex return type to
3884 b4_c_function_call.
3885
38862002-10-19 Akim Demaille <akim@epita.fr>
3887
3888 Prototype support of %lex-param and %parse-param.
3889
3890 * src/parse-gram.y: Add the definition of the %lex-param and
3891 %parse-param tokens, plus their rules.
3892 Drop the `_' version of %glr-parser.
3893 Add the "," token.
3894 * src/scan-gram.l (INITIAL): Scan them.
3895 * src/muscle_tab.c: Comment changes.
3896 (muscle_insert, muscle_find): Rename `pair' as `probe'.
3897 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
3898 (muscle_entry_s): The `value' member is no longer const.
3899 Adjust all dependencies.
3900 * src/muscle_tab.c (muscle_init): Adjust: use
3901 MUSCLE_INSERT_STRING.
3902 Initialize the obstack earlier.
3903 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
3904 (muscle_pair_list_grow): New.
3905 * data/c.m4 (b4_c_function_call, b4_c_args): New.
3906 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
3907 * tests/calc.at: Use %locations, not --locations.
3908 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
3909
39102002-10-19 Akim Demaille <akim@epita.fr>
3911
3912 * src/getargs.c (usage): Take status as argument and exit
3913 accordingly.
3914 Report the traditional `Try ... --help' message when status != 0.
3915 (usage, version): Don't take a FILE * as arg, it is pointless.
3916 (getargs): When there is an incorrect number of arguments, make it
3917 an error, and report it GNUlically thanks to `usage ()'.
3918
39192002-10-18 Paul Eggert <eggert@twinsun.com>
3920
3921 * data/glr.c (yyreportParseError): Don't assume that sprintf
3922 yields the length of the printed string, as this is not true
3923 on SunOS 4.1.4. Reported by Peter Klein.
3924
3925 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
3926 * tests/conflicts.at (%nonassoc and eof): Likewise.
3927 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
3928
39292002-10-17 Akim Demaille <akim@epita.fr>
3930
3931 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
3932 * src/getargs.c (trace_types, trace_args): Adjust.
3933 * src/reader.c (grammar_current_rule_prec_set)
3934 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
3935 Standardize error messages.
3936 And s/@prec/%prec/!
3937 (reader): Use trace_flag to enable scanner/parser debugging,
3938 instead of an adhoc scheme.
3939 * src/scan-gram.l: Remove trailing debugging code.
3940
39412002-10-16 Paul Eggert <eggert@twinsun.com>
3942
3943 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
3944 MUSCLE_TAB_H.
3945
3946 * NEWS: Officially drop support for building Bison with K&R C,
3947 since it didn't work anyway and it's not worth worrying about.
3948 * Makefile.maint (wget_files): Remove ansi2knr.c.
3949 (ansi2knr.c-url_prefix): Remove.
3950 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
3951 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3952 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
3953
39542002-10-15 Paul Eggert <eggert@twinsun.com>
3955
3956 Stop using the "enum_" trick for K&R-style function definitions;
3957 it confused me, and I was the author! Instead, assume that people
3958 who want to use K&R C compilers (when using these modules in GCC,
3959 perhaps?) will run ansi2knr.
3960
3961 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
3962 All uses of "enum_" changed to "enum ".
3963 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
3964 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
3965
3966 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
3967 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
3968 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
3969 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
3970 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
3971 abitset_not, abitset_ones, abitset_or, abitset_or_and,
3972 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
3973 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
3974 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
3975 Use function prototypes; this removes the need for declaring
3976 static functions simply to provide their prototypes.
3977 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
3978 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
3979 bitset_count_, bitset_create, bitset_dump, bitset_first,
3980 bitset_free, bitset_init, bitset_last, bitset_next,
3981 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
3982 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
3983 bitset_print, bitset_release_memory, bitset_toggle_,
3984 bitset_type_choose, bitset_type_get, bitset_type_name_get,
3985 debug_bitset): Likewise.
3986 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
3987 * lib/bitset_stats.c (bitset_log_histogram_print,
3988 bitset_percent_histogram_print, bitset_stats_and,
3989 bitset_stats_and_cmp, bitset_stats_and_or,
3990 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
3991 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
3992 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
3993 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
3994 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
3995 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
3996 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
3997 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
3998 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
3999 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
4000 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
4001 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
4002 bitset_stats_zero): Likewise.
4003 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4004 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4005 bitsetv_dump, debug_bitsetv): Likewise.
4006 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
4007 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
4008 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
4009 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
4010 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
4011 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
4012 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
4013 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
4014 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
4015 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
4016 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
4017 Likewise.
4018 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
4019 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
4020 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
4021 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
4022 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
4023 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
4024 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
4025 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
4026 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
4027 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
4028 lbitset_xor_cmp, lbitset_zero): Likewise.
4029
40302002-10-14 Akim Demaille <akim@epita.fr>
4031
4032 Version 1.75.
4033
40342002-10-14 Akim Demaille <akim@epita.fr>
4035
4036 * tests/Makefile.am (maintainer-check-posix): New.
4037
40382002-10-14 Akim Demaille <akim@epita.fr>
4039
4040 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
4041 member.
4042
40432002-10-14 Akim Demaille <akim@epita.fr>
4044
4045 * src/tables.c (table_ninf_remap): base -> tab.
4046 Reported by Matt Rosing.
4047
40482002-10-14 Paul Eggert <eggert@twinsun.com>
4049
4050 * tests/action.at, tests/calc.at, tests/conflicts.at,
4051 tests/cxx-type.at, tests/headers.at, tests/input.at,
4052 tests/regression.at, tests/synclines.at, tests/torture.at:
4053 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
4054 so that the tests still work even if POSIXLY_CORRECT is set.
4055 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
4056
4057 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
4058 for portability to K&R hosts. Fix typo: signed char is guaranteed
4059 only to 127, not to 128.
4060 * data/glr.c (yysigned_char): New type.
4061 * data/yacc.c (yysigned_char): Likewise.
4062 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
4063
40642002-10-13 Paul Eggert <eggert@twinsun.com>
4065
4066 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
4067 true due to limited range of data type" warning from GCC.
4068
4069 * data/c.m4 (b4_token_defines): Protect against double-inclusion
4070 by wrapping enum yytokentype's definition inside #ifndef
4071 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
4072
40732002-10-13 Akim Demaille <akim@epita.fr>
4074
4075 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
4076 Un yy- yyrhs to avoid the name clash with the global YYRHS.
4077
40782002-10-13 Akim Demaille <akim@epita.fr>
4079
4080 * Makefile.maint: Update from Autoconf 2.54.
4081 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
4082
40832002-10-13 Akim Demaille <akim@epita.fr>
4084
4085 * src/print.c (print_state): Separate the list of solved conflicts
4086 from the other items.
4087 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
4088
40892002-10-13 Akim Demaille <akim@epita.fr>
4090
4091 Let nondeterministic skeletons be usable with deterministic
4092 tables.
4093
4094 With the patch, GAWK compiled by GCC without -O2 passes its test
4095 suite using a GLR parser driven by LALR tables. It fails with -O2
4096 because `struct stat' gives two different answers on my machine:
4097 88 (definition of an auto var) and later 96 (memset on this var).
4098 Hence the stack is badly corrumpted. The headers inclusion is to
4099 blame: if I move the awk.h inclusion before GLR's system header
4100 inclusion, the two struct stat have the same size.
4101
4102 * src/tables.c (pack_table): Always create conflict_table.
4103 (token_actions): Always create conflict_list.
4104 * data/glr.c (YYFLAG): Remove, unused.
4105
41062002-10-13 Akim Demaille <akim@epita.fr>
4107
4108 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
4109 (O0FLAGS): New.
4110 (VALGRIND, GXX): New.
4111 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
4112 * tests/bison.in: Run $PREBISON a pre-command.
4113 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
4114 (maintainer-check-g++): New.
4115 * Makefile.am (maintainer-check): New.
4116
41172002-10-13 Akim Demaille <akim@epita.fr>
4118
4119 * data/glr.c: Formatting changes.
4120 Tweak some trace messages to match yacc.c's.
4121
41222002-10-13 Akim Demaille <akim@epita.fr>
4123
4124 GLR parsers sometimes raise parse errors instead of performing the
4125 default reduction.
4126 Reported by Charles-Henry de Boysson.
4127
4128 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
4129 check the length of the traces when %glr.
4130 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
4131 GLR's traces.
4132 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
4133 Test GLR parsers.
4134 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
4135 (yyltype): Remove the yy prefix from the member names.
4136 (yytable): Complete its comment.
4137 (yygetLRActions): Map error action number from YYTABLE from
4138 YYTABLE_NINF to 0.
4139 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
4140 (which was a bug: it should have been YYTABEL_NINF, and yet it was
4141 not satisfying as we could compare an YYACTION computed from
4142 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
4143 only value for error actions.
4144 (yyreportParseError): In verbose parse error messages, don't issue
4145 `error' in the list of expected tokens.
4146 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
4147 next action to perform to match glr.c's decoding.
4148 (yytable): Complete its comment.
4149
41502002-10-13 Paul Eggert <eggert@twinsun.com>
4151
4152 Fix problem reported by Henrik Grubbstroem in
4153 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
4154 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
4155 because the Bison parser reads the second action before reducing
4156 the first one.
4157 * src/scan-gram.l (rule_length): New static var.
4158 Use it to keep track of the rule length in the scanner, since
4159 we can't expect the parser to be in lock-step sync with the scanner.
4160 (handle_action_dollar, handle_action_at): Use this var.
4161 * tests/actions.at (Exotic Dollars): Test for the problem.
4162
41632002-10-12 Paul Eggert <eggert@twinsun.com>
4164
4165 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
4166 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
4167 Include <sys/time.h> when checking for clock_t and struct tms.
4168 Use same include order as source.
4169 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
4170 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
4171
4172 * lib/timevar.c: Update copyright date and clarify comments.
4173 (get_time) [IN_GCC]: Keep the GCC version for reference.
4174
4175 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
4176 GCC version as of today, then merge Bison's changes.
4177 Change "GCC" to "Bison" in copyright notice. timevar.def's
4178 author is Akim, so change that too.
4179
4180 * src/reader.c (grammar_current_rule_check):
4181 Don't worry about the default action if $$ is untyped.
4182 Prevents bogus warnings reported by Jim Gifford in
4183 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
4184
4185 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
4186 * data/glr.c, data/lalr1.cc, data/yacc.c:
4187 Output token definitions before the first part of user declarations.
4188 Fixes compatibility problem reported by Jim Gifford for kbd in
4189 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
4190
41912002-10-11 Paul Eggert <eggert@twinsun.com>
4192
4193 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
4194 (yyparse): here. This undoes some of the 2002-07-25 change.
4195 Compatibility problem reported by Ralf S. Engelschall with
4196 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
4197
41982002-10-11 Akim Demaille <akim@epita.fr>
4199
4200 * tests/regression.at Characters Escapes): New.
4201 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
4202 characters.
4203 Reported by Jan Nieuwenhuizen.
4204
42052002-10-11 Akim Demaille <akim@epita.fr>
4206
4207 * po/id.po: New.
4208
42092002-10-10 Paul Eggert <eggert@twinsun.com>
4210
4211 Portability fixes for bitsets; this also avoids several GCC
4212 warnings.
4213
4214 * lib/abitset.c: Include <stddef.h>, for offsetof.
4215 * lib/lbitset.c: Likewise.
4216
4217 * lib/abitset.c (abitset_bytes): Return a size that is aligned
4218 properly for vectors of objects. Do not assume that adding a
4219 header size to a multiple of a word size yields a value that is
4220 properly aligned for the whole union.
4221 * lib/bitsetv.c (bitsetv_alloc): Likewise.
4222
4223 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
4224 unique names for structures.
4225 * lib/ebitset.c (ebitset_bytes): Likewise.
4226 * lib/lbitset.c (lbitset_bytes): Likewise.
4227
4228 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
4229 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
4230 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
4231 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
4232 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
4233 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
4234 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
4235 to improve the type-checking that GCC can do.
4236 * lib/bitset.c (bitset_op4_cmp): Likewise.
4237 * lib/bitset_stats.c (bitset_stats_count,
4238 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
4239 bitset_stats_copy, bitset_stats_disjoint_p,
4240 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
4241 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
4242 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
4243 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
4244 bitset_stats_and_or_cmp, bitset_stats_andn_or,
4245 bitset_stats_andn_or_cmp, bitset_stats_or_and,
4246 bitset_stats_or_and_cmp): Likewise.
4247 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
4248 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
4249 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
4250 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
4251
4252 * lib/abitset.h: Include bitset.h, not bbitset.h.
4253 * lib/ebitset.h: Likewise.
4254 * lib/lbitset.h: Likewise.
4255
4256 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
4257 All instances of parameters of type enum bitset_opts are now of
4258 type enum_bitset_opts, to conform to the C Standard, and similarly
4259 for enum_bitset_type.
4260 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
4261 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
4262
4263 Do not use "struct bitset_struct" to mean different things in
4264 different modules. Not only is this confusing, it violates
4265 the C Standard, which requires that structure types in different
4266 modules must be compatible if one is to be passed to the other.
4267 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
4268 All instances of "struct bitset_struct *" replaced with "bitset".
4269 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
4270 (union bitset_union, struct abitset_struct, struct ebitset_struct,
4271 struct lbitset_struct, struct bitset_stats_struct): New types.
4272 All uses of struct bitset_struct changed to union bitset_union,
4273 etc.
4274 * lib/abitset.c (struct abitset_struct, abitset,
4275 struct bitset_struct): Remove.
4276 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
4277 struct bitset_struct): Remove.
4278 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
4279 bitset_struct): Remove.
4280 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
4281 Likewise.
4282
4283 Do not call a function of type T using a call that assumes the
4284 function is of a different type U. Standard C requires that a
4285 function must be called with a type that is compatible with its
4286 definition.
4287 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4288 New decls.
4289 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
4290 New functions.
4291 * lib/ebitset.c (PFV): Remove.
4292 * lib/lbitset.c (PFV): Likewise.
4293 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
4294 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
4295 decls.
4296 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
4297 (ebitset_vtable): Use them.
4298 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
4299 lbitset_xor): New functions.
4300 (lbitset_vtable): Use them.
4301
4302 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
4303 Declare.
4304
4305 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
4306 GCC warning.
4307 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
4308 Use offsetof, for simplicity.
4309
43102002-10-06 Paul Eggert <eggert@twinsun.com>
4311
4312 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
4313 the same width as int. This reapplies a hunk of the 2002-08-12 patch
4314 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
4315 which was inadvertently undone by the 2002-09-30 patch.
4316 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
4317 the same width as int.
4318
43192002-10-04 Paul Eggert <eggert@twinsun.com>
4320
4321 Version 1.50.
4322
4323 * configure.ac (AC_INIT), NEWS: Increment version number.
4324
4325 * doc/bison.texinfo: Minor spelling, grammar, and white space
4326 fixes.
4327 (Symbols): Mention that any negative value returned from yylex
4328 signifies end-of-input. Warn about negative chars. Mention
4329 the portable Standard C character set.
4330
4331 The GNU coding standard says CFLAGS and YFLAGS are reserved
4332 for the installer to set.
4333 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
4334 * src/Makefile.am (AM_CFLAGS): Likewise.
4335 (AM_YFLAGS): Renamed from YFLAGS.
4336
4337 Fix some MAX and MIN problems.
4338 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
4339 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
4340 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
4341 * src/reader.c (reader): Use it.
4342
4343 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
4344 POSIX 1003.1-2001 has removed fgrep.
4345
43462002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4347
4348 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
4349 interpreted as signed.
4350 * lib/ebitset.c (ebitset_list): Fix bug.
4351
43522002-10-01 Paul Eggert <eggert@twinsun.com>
4353
4354 More fixes for 64-bit hosts and large bitsets.
4355
4356 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
4357 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
4358 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
4359 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
4360 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
4361 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
4362 bitset_count_): Likewise.
4363 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
4364 bitset_first, bitset_last): Likewise.
4365 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
4366 bitset_stats_list_reverse, bitset_stats_size,
4367 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
4368 Likewise.
4369 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4370 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
4371 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
4372 bitsetv_reflexive_transitive_closure): Likewise.
4373 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
4374 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
4375 Likewise.
4376 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
4377 Likewise.
4378
4379 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
4380 Use size_t, not unsigned int, to count bytes.
4381 * lib/abitset.h (abitset_bytes): Likewise.
4382 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
4383 Likewise.
4384 * lib/bitset.h (bitset_bytes): Likewise.
4385 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
4386 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
4387 * lib/bitsetv.c (bitsetv_alloc): Likewise.
4388 * lib/ebitset.c (ebitset_bytes): Likewise.
4389 * lib/ebitset.h (ebitset_bytes): Likewise.
4390 * lib/lbitset.c (lbitset_bytes): Likewise.
4391 * lib/lbitset.h (lbitset_bytes): Likewise.
4392
4393 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
4394 abitset_subset_p, abitset_disjoint_p, abitset_and,
4395 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
4396 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
4397 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
4398 abitset_or_and, abitset_or_and_cmp):
4399 Use bitset_windex instead of unsigned int.
4400 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4401 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
4402 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
4403 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
4404 Likewise.
4405 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
4406
4407 * lib/bitset.c (bitset_print):
4408 Use proper printf formats for widths of integer types.
4409 * lib/bitset_stats.c (bitset_percent_histogram_print,
4410 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
4411 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
4412 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
4413 * lib/lbitset.c (lbitset_bytes): Likewise.
4414
4415 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
4416 BITSET_SIZE_MAX): New macros.
4417 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
4418 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
4419 to BITSET_WINDEX_MAX.
4420
4421 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
4422 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
4423 since we now return the bitset_bindex type (not int).
4424
4425 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
4426 when computing sizes.
4427 * lib/ebitset.c (ebitset_elts_grow): Likewise.
4428
4429 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
4430 and avoid cast to unsigned.
4431
44322002-09-30 Akim Demaille <akim@epita.fr>
4433
4434 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
4435 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
4436 Updates from Michael Hayes.
4437
44382002-09-30 Art Haas <ahaas@neosoft.com>
4439
4440 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
4441 invocations.
4442 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
4443 defined.
4444
44452002-09-27 Akim Demaille <akim@epita.fr>
4446
4447 Version 1.49c.
4448
44492002-09-27 Akim Demaille <akim@epita.fr>
4450
4451 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
4452 (Because of AC_LIBSOURCE).
4453
44542002-09-27 Akim Demaille <akim@epita.fr>
4455
4456 Playing with Autoscan.
4457
4458 * configure.ac: Remove the old LIBOBJ tweaks.
4459 (AC_REPLACE_FUNCS): Add strrchr and strtol.
4460 * lib/strrchr.c: New.
4461 * lib/strtol.c: New, from the Coreutils 4.5.1.
4462
44632002-09-27 Akim Demaille <akim@epita.fr>
4464
4465 Playing with Autoscan.
4466
4467 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
4468 * lib/Makefile.am (libbison_a_SOURCES): No longer include
4469 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
4470 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
4471 Coreutils 4.5.1.
4472
44732002-09-24 Akim Demaille <akim@epita.fr>
4474
4475 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
4476 (Frequently Asked Questions, Parser Stack Overflow): New.
4477
44782002-09-13 Akim Demaille <akim@epita.fr>
4479
4480 Playing with autoscan.
4481
4482 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
4483 * src/files.c (skeleton_find): Remove, unused.
4484 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
4485 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
4486
44872002-09-13 Akim Demaille <akim@epita.fr>
4488
4489 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
4490 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
4491
44922002-09-13 Akim Demaille <akim@epita.fr>
4493
4494 * configure.ac: Require 2.54.
4495 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
4496 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
4497 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
4498 Remove, provided by Autoconf macros.
4499
45002002-09-12 Akim Demaille <akim@epita.fr>
4501
4502 * m4/prereq.m4: Update, from Coreutils 4.5.1.
4503
45042002-09-12 Akim Demaille <akim@epita.fr>
4505
4506 * m4/prereq.m4: Update, from Fileutils 4.1.5.
4507 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
4508 Reported by Martin Mokrejs.
4509
45102002-09-10 Akim Demaille <akim@epita.fr>
4511
4512 * src/parse-gram.y: Associate a human readable string to each
4513 token type.
4514 * tests/regression.at (Invalid inputs): Adjust.
4515
45162002-09-10 Gary V. Vaughan <gary@gnu.org>
4517
4518 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
4519 with an Autoconf-2.5x style configure.ac.
4520
45212002-09-06 Paul Eggert <eggert@twinsun.com>
4522
4523 * doc/bison.texinfo (Conditions): Make explicit that the GPL
4524 exception applies only to yacc.c. This is a modification of a
4525 patch originally suggested by Akim Demaille.
4526
45272002-09-06 Akim Demaille <akim@epita.fr>
4528
4529 * data/c.m4 (b4_copyright): Move the GPL exception comment from
4530 here to...
4531 * data/yacc.c: here.
4532
4533 * data/lalr1.cc (struct yyltype): Don't define it, since we use
4534 LocationType.
4535 (b4_ltype): Default to yy::Location from location.hh.
4536
45372002-09-04 Jim Meyering <jim@meyering.net>
4538
4539 * data/yacc.c: Guard the declaration of yytoknum also with
4540 `#ifdef YYPRINT', so it is declared only when used.
4541
45422002-09-04 Akim Demaille <akim@epita.fr>
4543
4544 * configure.in: Rename as...
4545 * configure.ac: this.
4546 Bump to 1.49c.
4547
45482002-09-04 Akim Demaille <akim@epita.fr>
4549
4550 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
4551 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
4552 translate maintainer only messages.
4553
45542002-08-12 Paul Eggert <eggert@twinsun.com>
4555
4556 Version 1.49b.
4557
4558 * Makefile.am (SUBDIRS): Remove intl.
4559 (DISTCLEANFILES): Remove.
4560 * NEWS: Mention that GNU M4 is now required. Clarify what is
4561 meant by "larger grammars". Mention the pt_BR translation.
4562 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
4563 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
4564 Bump version from 0.11.2 to 0.11.5.
4565 (BISON_PREREQ_STAGE): Remove.
4566 (AM_GNU_GETTEXT): Use external gettext.
4567 (AC_OUTPUT): Remove intl/Makefile.
4568
4569 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
4570
4571 * data/glr.c: Include string.h, for strlen.
4572 (yyreportParseError): Use size_t for yysize.
4573 (yy_yypstack): No longer nested inside yypstates, as nested
4574 functions are not portable. Do not assume size_t is the
4575 same width as int.
4576 (yypstates): Do not assume that ptrdiff_t is the same width
4577 as int, and similarly for yyposn and YYINDEX.
4578
4579 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
4580
4581 * lib/Makefile.am (INCLUDES): Do not include from the intl
4582 directory, which has been removed.
4583 * src/Makefile.am (INCLUDES): Likewise.
4584
4585 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
4586 (bitsets_sources, additional_bitsets_sources, timevars_sources):
4587 New vars.
4588
4589 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
4590 * tests/Makefile.am (EXTRA_DIST): Likewise.
4591
4592 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
4593 Do not assume that bitset_windex is the same width as unsigned.
4594
4595 * lib/abitset.c (abitset_unused_clear): Do not assume that
4596 bitset_word is the same width as int.
4597 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
4598 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
4599 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
4600 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
4601 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
4602
4603 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
4604 portability to one's complement hosts!).
4605 * lib/ebitset.c (ebitset_op1): Likewise.
4606 * lib/lbitset.c (lbitset_op1): Likewise.
4607
4608 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
4609 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
4610 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
4611 Sync with fileutils.
4612 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
4613 lib/gettext.h: Sync with diffutils.
4614
4615 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
4616 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
4617
4618 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
4619 PROTOTYPES to check for prototypes, and "defined __STDC__" to
4620 check for void *.
4621
4622 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
4623 size_t; the old version tried to do this but casted improperly.
4624 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
4625 (bitset_test): Now returns int, not unsigned long.
4626
4627 * lib/bitset_stats.c: Include "gettext.h".
4628 (_): New macro.
4629 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
4630 name locals "index", as it generates unnecessary warnings on some
4631 hosts that have an "index" function.
4632
4633 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
4634 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
4635 they need translation.
4636 * src/LR0.c (state_list_append, new_itemsets, get_state,
4637 append_states, generate_states): Likewise.
4638 * src/assoc.c (assoc_to_string): Likewise.
4639 * src/closure.c (print_closure, set_firsts, closure): Likewise.
4640 * src/gram.c (grammar_dump): Likewise.
4641 * src/injections.c (injections_compute): Likewise.
4642 * src/lalr.c (lookaheads_print): Likewise.
4643 * src/relation.c (relation_transpose): Likewise.
4644 * src/scan-gram.l: Likewise.
4645 * src/tables.c (table_grow, pack_vector): Likewise.
4646
4647 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
4648 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
4649 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
4650 * m4/mbstate_t.m4: Sync with fileutils.
4651 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
4652
4653 * po/LINGUAS: Add pt_BR.
4654 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
4655 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
4656 lib/timevar.c.
4657 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
4658 manual recommends.
4659 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
4660
4661 * src/complain.c (strerror_r): Remove decl; not needed.
4662 (strerror): Use same pattern as ../lib/error.c.
4663
4664 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
4665
4666 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
4667
4668 * src/main.c (main): Cast result of bindtextdomain and textdomain
4669 to void, to avoid a GCC warning when --disable-nls is in effect.
4670
4671 * src/scan-gram.l: Use strings rather than escapes when possible,
4672 to minimize the number of warnings from xgettext.
4673 (handle_action_dollar, handle_action_at): Don't use isdigit,
4674 as it mishandles negative chars and it may not work as expected
4675 outside the C locale.
4676
4677 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
4678 this is a GCC extension and is not portable to other compilers.
4679
4680 * src/system.h (alloca): Use same pattern as ../lib/error.c.
4681 Do not include <ctype.h>; no longer needed.
4682 Do not include <malloc.h>; no longer needed (and generates
4683 warnings on OpenBSD 3.0).
4684
4685 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
4686 it's not portable.
4687
4688 * tests/regression.at: Do not use 'cc -c input.c -o input';
4689 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
4690
4691 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
4692 exit status as failure, not just exit status 1. Sun C exits
4693 with status 2 sometimes.
4694
4695 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
4696 Use it for the two large tests.
4697
46982002-08-02 Akim Demaille <akim@epita.fr>
4699
4700 * src/conflicts.c (conflicts_output): Don't output rules never
4701 reduced here, since anyway that computation doesn't work.
4702 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
4703 (rule_useless_p, rule_never_reduced_p): New.
4704 (grammar_rules_partial_print): Use a filter instead of a range.
4705 Display the title only if needed.
4706 (grammar_rules_print): Adjust.
4707 (grammar_rules_never_reduced_report): New.
4708 * src/tables.c (action_row): Move the computation of rules never
4709 reduced to...
4710 (token_actions): here.
4711 * src/main.c (main): Make the parser before making the report, so
4712 that rules never reduced are computed.
4713 Call grammar_rules_never_reduced_report.
4714 * src/print.c (print_results): Report rules never reduced.
4715 * tests/conflicts.at, tests/reduce.at: Adjust.
4716
47172002-08-01 Akim Demaille <akim@epita.fr>
4718
4719 Instead of attaching lookaheads and duplicating the rules being
4720 reduced by a state, attach the lookaheads to the reductions.
4721
4722 * src/state.h (state_t): Remove the `lookaheads',
4723 `lookaheads_rule' member.
4724 (reductions_t): Add a `lookaheads' member.
4725 Use a regular array for the `rules'.
4726 * src/state.c (reductions_new): Initialize the lookaheads member
4727 to 0.
4728 (state_rule_lookaheads_print): Adjust.
4729 * src/state.h, src/state.c (state_reductions_find): New.
4730 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
4731 (count_rr_conflicts): Adjust.
4732 * src/lalr.c (LArule): Remove.
4733 (add_lookback_edge): Adjust.
4734 (state_lookaheads_count): New.
4735 (states_lookaheads_initialize): Merge into...
4736 (initialize_LA): this.
4737 (lalr_free): Adjust.
4738 * src/main.c (main): Don't free nullable and derives too early: it
4739 is used by --verbose.
4740 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
4741
47422002-08-01 Akim Demaille <akim@epita.fr>
4743
4744 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
4745 `rule_number_t**'.
4746 (set_derives, free_derives): Rename as...
4747 (derives_compute, derives_free): this.
4748 Adjust all dependencies.
4749 * src/nullable.c (set_nullable, free_nullable): Rename as...
4750 (nullable_compute, nullable_free): these.
4751 (rule_list_t): Store rule_t *, not rule_number_t.
4752 * src/state.c (state_rule_lookaheads_print): Directly compare rule
4753 pointers, instead of their numbers.
4754 * src/main.c (main): Call nullable_free, and derives_free earlier,
4755 as they were lo longer used.
4756
47572002-08-01 Akim Demaille <akim@epita.fr>
4758
4759 * lib/timevar.c (get_time): Include children time.
4760 * src/lalr.h (LA, LArule): Don't export them: used with the
4761 state_t.
4762 * src/lalr.c (LA, LArule): Static.
4763 * src/lalr.h, src/lalr.c (lalr_free): New.
4764 * src/main.c (main): Call it.
4765 * src/tables.c (pack_vector): Check whether loc is >= to the
4766 table_size, not >.
4767 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
4768 (tables_generate): do it, since that's also it which allocates
4769 them.
4770 Don't free LA and LArule, main does.
4771
47722002-07-31 Akim Demaille <akim@epita.fr>
4773
4774 Separate parser tables computation and output.
4775
4776 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
4777 (conflict_list, conflict_list_cnt, table, check, table_ninf)
4778 (yydefgoto, yydefact, high): Move to...
4779 * src/tables.h, src/tables.c: here.
4780 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
4781 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
4782 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
4783 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
4784 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
4785 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
4786 (action_row, save_row, token_actions, save_column, default_goto)
4787 (goto_actions, sort_actions, matching_state, pack_vector)
4788 (table_ninf_remap, pack_table, prepare_actions): Move to...
4789 * src/tables.c: here.
4790 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
4791 * src/output.c (token_actions, output_base, output_conflicts)
4792 (output_check): Merge into...
4793 (prepare_actions): this.
4794 (actions_output): Rename as...
4795 (user_actions_output): this.
4796 * src/main.c (main): Call tables_generate and tables_free.
4797
47982002-07-31 Akim Demaille <akim@epita.fr>
4799
4800 Steal GCC's --time-report support.
4801
4802 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
4803 stolen/adjusted from GCC.
4804 * m4/stage.m4: Remove time related checks.
4805 * m4/timevar.m4: New.
4806 * configure.in: Adjust.
4807 * src/system.h: Adjust to using timevar.h.
4808 * src/getargs.h, src/getargs.c: Support trace_time for
4809 --trace=time.
4810 * src/main.c (stage): Remove.
4811 (main): Replace `stage' invocations with timevar calls.
4812 * src/output.c: Insert pertinent timevar calls.
4813
48142002-07-31 Akim Demaille <akim@epita.fr>
4815
4816 Let --trace have arguments.
4817
4818 * src/getargs.h (enum trace_e): New.
4819 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
4820 (long_options, short_options): --trace/-T takes an optional
4821 argument.
4822 Change all the uses of trace_flag to reflect the new flags.
4823 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
4824
4825 Strengthen `stage' portability.
4826
4827 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
4828 * configure.in: Use it.
4829 Don't check for malloc.h and sys/times.h.
4830 * src/system.h: Include them when appropriate.
4831 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
4832 times and struct tms are available.
4833
48342002-07-30 Akim Demaille <akim@epita.fr>
4835
4836 In verbose parse error message, don't report `error' as an
4837 expected token.
4838 * tests/actions.at (Printers and Destructors): Adjust.
4839 * tests/calc.at (Calculator $1): Adjust.
4840 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
4841 error message, do not report the parser accepts the error token in
4842 that state.
4843
48442002-07-30 Akim Demaille <akim@epita.fr>
4845
4846 Normalize conflict related messages.
4847
4848 * src/complain.h, src/complain.c (warn, complain): New.
4849 * src/conflicts.c (conflicts_print): Use them.
4850 (conflict_report_yacc): New, extracted from...
4851 (conflicts_print): here.
4852 * tests/conflicts.at, tests/existing.at: Adjust.
4853
48542002-07-30 Akim Demaille <akim@epita.fr>
4855
4856 Report rules which are never reduced by the parser: those hidden
4857 by conflicts.
4858
4859 * src/LR0.c (save_reductions): Don't make the final state too
4860 different: save its reduction (accept) instead of having a state
4861 without any action (no shift or goto, no reduce).
4862 Note: the final state is now a ``regular'' state, i.e., the
4863 parsers now contain `reduce 0' as default reduction.
4864 Nevertheless, since they decide to `accept' when yystate =
4865 final_state, they still will not reduce rule 0.
4866 * src/print.c (print_actions, print_reduction): Adjust.
4867 * src/output.c (action_row): Track reduced rules.
4868 (token_actions): Report rules never reduced.
4869 * tests/conflicts.at, tests/regression.at: Adjust.
4870
48712002-07-30 Akim Demaille <akim@epita.fr>
4872
4873 `stage' was accidently included in a previous patch.
4874 Initiate its autoconfiscation.
4875
4876 * configure.in: Look for malloc.h and sys/times.h.
4877 * src/main.c (stage): Adjust.
4878 Report only when trace_flag.
4879
48802002-07-29 Akim Demaille <akim@epita.fr>
4881
4882 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
4883 state_number_t.
4884 (errs_t): symbol_t*, not symbol_number_t.
4885 (reductions_t): rule_t*, not rule_number_t.
4886 (FOR_EACH_SHIFT): New.
4887 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
4888 * src/print.c, src/print_graph.c: Adjust.
4889
48902002-07-29 Akim Demaille <akim@epita.fr>
4891
4892 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
4893
4894 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
4895 (endtoken, accept): these.
4896 * src/reader.c (reader): Set endtoken's default tag to "$end".
4897 Set undeftoken's tag to "$undefined" instead of "$undefined.".
4898 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
4899 Adjust.
4900
49012002-07-29 Akim Demaille <akim@epita.fr>
4902
4903 * src/reduce.c (reduce_grammar): When the language is empty,
4904 complain about the start symbol, not the axiom.
4905 Use its location.
4906 * tests/reduce.at (Empty Language): New.
4907
49082002-07-26 Akim Demaille <akim@epita.fr>
4909
4910 * src/reader.h, src/reader.c (gram_error): ... can't get
4911 yycontrol without making too strong assumptions on the parser
4912 itself.
4913 * src/output.c (prepare_tokens): Use the real 0th value of
4914 token_translations instead of `0'.
4915 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
4916 visible here.
4917 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
4918 for the time being: %locations ought to provide it to yyerror.
4919
49202002-07-25 Akim Demaille <akim@epita.fr>
4921
4922 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
4923 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
4924 * tests/regression.at (Web2c Actions): Adjust.
4925
49262002-07-25 Akim Demaille <akim@epita.fr>
4927
4928 Stop storing rules from 1 to nrules + 1.
4929
4930 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
4931 * src/nullable.c, src/output.c, src/print.c, src/reader.c
4932 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
4933 Iterate from 0 to nrules.
4934 Use rule_number_as_item_number and item_number_as_rule_number.
4935 Adjust to `derive' now containing possibly 0.
4936 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
4937 Handle the `- 1' part in rule numbers from/to item numbers.
4938 * src/conflicts.c (log_resolution): Fix the message which reversed
4939 shift and reduce.
4940 * src/output.c (action_row): Initialize default_rule to -1.
4941 (token_actions): Adjust.
4942 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
4943 expected output.
4944 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
4945
49462002-07-25 Akim Demaille <akim@epita.fr>
4947
4948 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
4949 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
4950 (b4_c_knr_arg_decl): New.
4951 * data/yacc.c: Use it to define yysymprint, yydestruct, and
4952 yyreport_parse_error.
4953
49542002-07-25 Akim Demaille <akim@epita.fr>
4955
4956 * data/yacc.c (yyreport_parse_error): New, extracted from...
4957 (yyparse): here.
4958 (yydestruct, yysymprint): Move above yyparse.
4959 Be K&R compliant.
4960
49612002-07-25 Akim Demaille <akim@epita.fr>
4962
4963 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
4964 replace...
4965 (b4_sint_type, b4_uint_type): these.
4966 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
4967 * tests/regression.at (Web2c Actions): Adjust.
4968
49692002-07-25 Akim Demaille <akim@epita.fr>
4970
4971 * src/gram.h (TIEM_NUMBER_MAX): New.
4972 (item_number_of_rule_number, rule_number_of_item_number): Rename
4973 as...
4974 (rule_number_as_item_number, item_number_as_rule_number): these.
4975 Adjust dependencies.
4976 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
4977 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
4978 (symbol_number_to_vector_number): New.
4979 (order): Of vector_number_t* type.
4980 (base_t, BASE_MAX, BASE_MIN): New.
4981 (froms, tos, width, pos, check): Of base_t type.
4982 (action_number_t, ACTION_MIN, ACTION_MAX): New.
4983 (actrow): Of action_number_t type.
4984 (conflrow): Of unsigned int type.
4985 (table_ninf, base_ninf): New.
4986 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
4987 (muscle_insert_int_table, muscle_insert_base_table)
4988 (muscle_insert_rule_number_table): New.
4989 (prepare_tokens): Output `toknum' as int_table.
4990 (action_row): Returns a rule_number_t.
4991 Use ACTION_MIN, not SHRT_MIN.
4992 (token_actions): yydefact is rule_number_t*.
4993 (table_ninf_remap): New.
4994 (pack_table): Use it for `base' and `table'.
4995 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
4996 replaced with...
4997 (YYPACT_NINF, YYTABLE_NINF): these.
4998 (yypact, yytable): Compute their types instead of hard-coded
4999 `short'.
5000 * tests/regression.at (Web2c Actions): Adjust.
5001
50022002-07-19 Akim Demaille <akim@epita.fr>
5003
5004 * src/scan-gram.l (id): Can start with an underscore.
5005
50062002-07-16 Akim Demaille <akim@epita.fr>
5007
5008 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
5009 Adjust all former `associativity' dependencies.
5010 * src/symtab.c (symbol_new): Default associativity is `undef', not
5011 `right'.
5012 (symbol_check_alias_consistence): Adjust.
5013
50142002-07-09 Akim Demaille <akim@epita.fr>
5015
5016 * doc/bison.texinfo: Properly set the ``header'' part.
5017 Use @dircategory ``GNU programming tools'' as per Texinfo's
5018 documentation.
5019 Use @copying.
5020
50212002-07-09 Akim Demaille <akim@epita.fr>
5022
5023 * lib/quotearg.h: Protect against multiple inclusions.
5024 * src/location.h (location_t): Add a `file' member.
5025 (LOCATION_RESET, LOCATION_PRINT): Adjust.
5026 * src/complain.c (warn_at, complain_at, fatal_at): Drop
5027 `error_one_per_line' support.
5028
50292002-07-09 Akim Demaille <akim@epita.fr>
5030
5031 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
5032 * src/reader.c (lineno): Remove.
5033 Adjust all dependencies.
5034 (get_merge_function): Take a location and use complain_at.
5035 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
5036 * tests/regression.at (Invalid inputs, Mixing %token styles):
5037 Adjust.
5038
50392002-07-09 Akim Demaille <akim@epita.fr>
5040
5041 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
5042 recovery rule, and forbid extensions when --yacc.
5043 (gram_error): Use complain_at.
5044 * src/reader.c (reader): Exit if there were parse errors.
5045
50462002-07-09 Akim Demaille <akim@epita.fr>
5047
5048 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
5049 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
5050 Reported by R Blake <blakers@mac.com>.
5051
50522002-07-09 Akim Demaille <akim@epita.fr>
5053
5054 * data/yacc.c: Output the copyright notive in the header.
5055
50562002-07-03 Akim Demaille <akim@epita.fr>
5057
5058 * src/output.c (froms, tos): Are state_number_t.
5059 (save_column): sp, sp1, and sp2 are state_number_t.
5060 (prepare): Rename `final' as `final_state_number', `nnts' as
5061 `nterms_number', `nrules' as `rules_number', `nstates' as
5062 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
5063 unused.
5064 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
5065 * data/lalr1.cc (nsym_): Remove, unused.
5066
50672002-07-03 Akim Demaille <akim@epita.fr>
5068
5069 * src/lalr.h, src/lalr.c (goto_number_t): New.
5070 * src/lalr.c (goto_list_t): New.
5071 Propagate them.
5072 * src/nullable.c (rule_list_t): New.
5073 Propagate.
5074 * src/types.h: Remove.
5075
50762002-07-03 Akim Demaille <akim@epita.fr>
5077
5078 * src/closure.c (print_fderives): Use rule_rhs_print.
5079 * src/derives.c (print_derives): Use rule_rhs_print.
5080 (rule_list_t): New, replaces `shorts'.
5081 (set_derives): Add comments.
5082 * tests/sets.at (Nullable, Firsts): Adjust.
5083
50842002-07-03 Akim Demaille <akim@epita.fr>
5085
5086 * src/output.c (prepare_actions): Free `tally' and `width'.
5087 (prepare_actions): Allocate and free `order'.
5088 * src/symtab.c (symbols_free): Free `symbols'.
5089 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
5090 * src/output.c (m4_invoke): Move to...
5091 * src/scan-skel.l: here.
5092 (<<EOF>>): Close yyout, and free its name.
5093
50942002-07-03 Akim Demaille <akim@epita.fr>
5095
5096 Fix some memory leaks, and fix a bug: state 0 was examined twice.
5097
5098 * src/LR0.c (new_state): Merge into...
5099 (state_list_append): this.
5100 (new_states): Merge into...
5101 (generate_states): here.
5102 (set_states): Don't ensure a proper `errs' state member here, do it...
5103 * src/conflicts.c (conflicts_solve): here.
5104 * src/state.h, src/state.c: Comment changes.
5105 (state_t): Rename member `shifts' as `transitions'.
5106 Adjust all dependencies.
5107 (errs_new): For consistency, also take the values as argument.
5108 (errs_dup): Remove.
5109 (state_errs_set): New.
5110 (state_reductions_set, state_transitions_set): Assert that no
5111 previous value was assigned.
5112 (state_free): New.
5113 (states_free): Use it.
5114 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
5115 temporary storage: use `errs' and `nerrs' as elsewhere.
5116 (set_conflicts): Allocate and free this `errs'.
5117
51182002-07-02 Akim Demaille <akim@epita.fr>
5119
5120 * lib/libiberty.h: New.
5121 * lib: Update the bitset implementation from upstream.
5122 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
5123 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
5124 * src/main.c: Adjust bitset stats calls.
5125
51262002-07-01 Paul Eggert <eggert@twinsun.com>
5127
5128 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
5129 char, so that negative chars don't collide with $.
5130
51312002-06-30 Akim Demaille <akim@epita.fr>
5132
5133 Have the GLR tests be `warning' checked, and fix the warnings.
5134
5135 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
5136 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
5137 (yyremoveDeletes): `yyi' and `yyj' are size_t.
5138 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
5139 (yyaddDeferredAction): static.
5140 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
5141 (yyreportParseError): yyprefix is const.
5142 yytokenp is used only when verbose.
5143 (yy__GNUC__): Replace with __GNUC__.
5144 (yypdumpstack): yyi is size_t.
5145 (yypreference): Un-yy local variables and arguments, to avoid
5146 clashes with `yyr1'. Anyway, we are not in the user name space.
5147 (yytname_size): be an int, as is compared with ints.
5148 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
5149 Use them.
5150 * tests/cxx-gram.at: Use quotation to protect $1.
5151 Use AT_COMPILE to enable warnings hunts.
5152 Prototype yylex and yyerror.
5153 `Use' argc.
5154 Include `string.h', not `strings.h'.
5155 Produce and prototype stmtMerge only when used.
5156 yylex takes a location.
5157
51582002-06-30 Akim Demaille <akim@epita.fr>
5159
5160 We spend a lot of time in quotearg, in particular when --verbose.
5161
5162 * src/symtab.c (symbol_get): Store a quoted version of the key.
5163 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
5164 Adjust all callers.
5165
51662002-06-30 Akim Demaille <akim@epita.fr>
5167
5168 * src/state.h (reductions_t): Rename member `nreds' as num.
5169 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
5170 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
5171
51722002-06-30 Akim Demaille <akim@epita.fr>
5173
5174 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
5175 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
5176 (shifts_to): Rename as...
5177 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
5178 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
5179 (TRANSITION_IS_DISABLED, transitions_to): these.
5180
51812002-06-30 Akim Demaille <akim@epita.fr>
5182
5183 * src/print.c (print_shifts, print_gotos): Merge into...
5184 (print_transitions): this.
5185 (print_transitions, print_errs, print_reductions): Align the
5186 lookaheads columns.
5187 (print_core, print_transitions, print_errs, print_state,
5188 print_grammar): Output empty lines separator before, not after.
5189 (state_default_rule_compute): Rename as...
5190 (state_default_rule): this.
5191 * tests/conflicts.at (Defaulted Conflicted Reduction),
5192 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
5193 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
5194
51952002-06-30 Akim Demaille <akim@epita.fr>
5196
5197 Display items as we display rules.
5198
5199 * src/gram.h, src/gram.c (rule_lhs_print): New.
5200 * src/gram.c (grammar_rules_partial_print): Use it.
5201 * src/print.c (print_core): Likewise.
5202 * tests/conflicts.at (Defaulted Conflicted Reduction),
5203 (Unresolved SR Conflicts): Adjust.
5204 (Unresolved SR Conflicts): Adjust and rename as...
5205 (Resolved SR Conflicts): this, as was meant.
5206 * tests/regression.at (Web2c Report): Adjust.
5207
52082002-06-30 Akim Demaille <akim@epita.fr>
5209
5210 * src/print.c (state_default_rule_compute): New, extracted from...
5211 (print_reductions): here.
5212 Pessimize, but clarify the code.
5213 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
5214
52152002-06-30 Akim Demaille <akim@epita.fr>
5216
5217 * src/output.c (action_row): Let default_rule be always a rule
5218 number.
5219
52202002-06-30 Akim Demaille <akim@epita.fr>
5221
5222 * src/closure.c (print_firsts, print_fderives, closure):
5223 Use BITSET_EXECUTE.
5224 * src/lalr.c (lookaheads_print): Likewise.
5225 * src/state.c (state_rule_lookaheads_print): Likewise.
5226 * src/print_graph.c (print_core): Likewise.
5227 * src/print.c (print_reductions): Likewise.
5228 * src/output.c (action_row): Likewise.
5229 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
5230
52312002-06-30 Akim Demaille <akim@epita.fr>
5232
5233 * src/print_graph.c: Use report_flag.
5234
52352002-06-30 Akim Demaille <akim@epita.fr>
5236
5237 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
5238 to...
5239 * src/relation.h, src/relation.c (traverse, relation_digraph)
5240 (relation_print, relation_transpose): New.
5241
52422002-06-30 Akim Demaille <akim@epita.fr>
5243
5244 * src/state.h, src/state.c (shifts_to): New.
5245 * src/lalr.c (build_relations): Use it.
5246
52472002-06-30 Akim Demaille <akim@epita.fr>
5248
5249 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
5250 (item_number_of_rule_number, rule_number_of_item_number): New.
5251 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
5252 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
5253 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
5254 Propagate their use.
5255 Much remains to be done, in particular wrt `shorts' from types.h.
5256
52572002-06-30 Akim Demaille <akim@epita.fr>
5258
5259 * src/symtab.c (symbol_new): Initialize the `printer' member.
5260
52612002-06-30 Akim Demaille <akim@epita.fr>
5262
5263 * src/LR0.c (save_reductions): Remove, replaced by...
5264 * src/state.h, src/state.c (state_reductions_set): New.
5265 (reductions, errs): Rename as...
5266 (reductions_t, errs_t): these.
5267 Adjust all dependencies.
5268
52692002-06-30 Akim Demaille <akim@epita.fr>
5270
5271 * src/LR0.c (state_list_t, state_list_append): New.
5272 (first_state, last_state): Now symbol_list_t.
5273 (this_state): Remove.
5274 (new_itemsets, append_states, save_reductions): Take a state_t as
5275 argument.
5276 (set_states, generate_states): Adjust.
5277 (save_shifts): Remove, replaced by...
5278 * src/state.h, src/state.c (state_shifts_set): New.
5279 (shifts): Rename as...
5280 (shifts_t): this.
5281 Adjust all dependencies.
5282 * src/state.h (state_t): Remove the `next' member.
5283
52842002-06-30 Akim Demaille <akim@epita.fr>
5285
5286 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
5287 escaped in slot 0.
5288
52892002-06-30 Akim Demaille <akim@epita.fr>
5290
5291 Use hash.h for the state hash table.
5292
5293 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
5294 (allocate_storage): Use state_hash_new.
5295 (free_storage): Use state_hash_free.
5296 (new_state, get_state): Adjust.
5297 * src/lalr.h, src/lalr.c (states): Move to...
5298 * src/states.h (state_t): Remove the `link' member, no longer
5299 used.
5300 * src/states.h, src/states.c: here.
5301 (state_hash_new, state_hash_free, state_hash_lookup)
5302 (state_hash_insert, states_free): New.
5303 * src/states.c (state_table, state_compare, state_hash): New.
5304 * src/output.c (output_actions): Do not free states now, since we
5305 still need to know the final_state number in `prepare', called
5306 afterwards. Do it...
5307 * src/main.c (main): here: call states_free after `output'.
5308
53092002-06-30 Akim Demaille <akim@epita.fr>
5310
5311 * src/state.h, src/state.c (state_new): New, extracted from...
5312 * src/LR0.c (new_state): here.
5313 * src/state.h (STATE_ALLOC): Move to...
5314 * src/state.c: here.
5315 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
5316 * src/state.h, src/state.c: here.
5317
53182002-06-30 Akim Demaille <akim@epita.fr>
5319
5320 * src/reader.c (gensym): Rename as...
5321 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
5322 (getsym): Rename as...
5323 (symbol_get): this.
5324
53252002-06-30 Akim Demaille <akim@epita.fr>
5326
5327 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
5328 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
5329 * src/output.c, src/print.c, src/print_graph.c: Propagate.
5330 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
5331
53322002-06-30 Akim Demaille <akim@epita.fr>
5333
5334 Make the test suite pass with warnings checked.
5335
5336 * tests/actions.at (Printers and Destructors): Improve.
5337 Avoid unsigned vs. signed issues.
5338 * tests/calc.at: Don't exercise the scanner here, do it...
5339 * tests/input.at (Torturing the Scanner): here.
5340
53412002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5342
5343 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
5344 reorganize first lines parallel to yacc.c.
5345
53462002-06-28 Akim Demaille <akim@epita.fr>
5347
5348 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
5349 (b4_token_enum, b4_token_defines): New, factored from...
5350 * data/lalr1.cc, data/yacc.c, glr.c: here.
5351
53522002-06-28 Akim Demaille <akim@epita.fr>
5353
5354 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
5355 unused variables.
5356 * src/output.c (merger_output): static.
5357
53582002-06-28 Akim Demaille <akim@epita.fr>
5359
5360 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
5361 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
5362 pacify GCC.
5363 * src/output.c (save_row): Initialize all the variables to pacify GCC.
5364
53652002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5366
5367 Accumulated changelog for new GLR parsing features.
5368
5369 * src/conflicts.c (count_total_conflicts): Change name to
5370 conflicts_total_count.
5371 * src/conflicts.h: Ditto.
5372 * src/output.c (token_actions): Use the new name.
5373 (output_conflicts): Change conflp => conflict_list_heads, and
5374 confl => conflict_list for better readability.
5375 * data/glr.c: Use the new names.
5376 * NEWS: Add self to GLR announcement.
5377
5378 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
5379
5380 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
5381 Akim Demaille.
5382
5383 * data/bison.glr: Change name to glr.c
5384 * data/glr.c: Renamed from bison.glr.
5385 * data/Makefile.am: Add glr.c
5386
5387 * src/getargs.c:
5388
5389 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
5390 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
5391
5392 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5393
5394 * data/bison.glr: Be sure to restore the
5395 current #line when returning to the skeleton contents after having
5396 exposed the input file's #line.
5397
5398 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5399
5400 * data/bison.glr: Bring up to date with changes to bison.simple.
5401
5402 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5403
5404 * data/bison.glr: Correct definitions that use b4_prefix.
5405 Various reformatting.
5406 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
5407 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
5408 yytokenp argument; now part of stack.
5409 (yychar): Define to behave as documented.
5410 (yyclearin): Ditto.
5411
5412 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5413
5414 * src/reader.h: Add declaration for free_merger_functions.
5415
5416 * src/reader.c (merge_functions): New variable.
5417 (get_merge_function): New function.
5418 (free_merger_functions): New function.
5419 (readgram): Check for %prec that is not followed by a symbol.
5420 Handle %dprec and %merge declarations.
5421 (packgram): Initialize dprec and merger fields in rules array.
5422
5423 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
5424 conflict_list_cnt, conflict_list_free): New variables.
5425 (table_grow): Also grow conflict_table.
5426 (prepare_rules): Output dprec and merger tables.
5427 (conflict_row): New function.
5428 (action_row): Output conflict lists for GLR parser. Don't use
5429 default reduction in conflicted states for GLR parser so that there
5430 are spaces for the conflict lists.
5431 (save_row): Also save conflict information.
5432 (token_actions): Allocate conflict list.
5433 (merger_output): New function.
5434 (pack_vector): Pack conflict table, too.
5435 (output_conflicts): New function to output yyconflp and yyconfl.
5436 (output_check): Allocate conflict_tos.
5437 (output_actions): Output conflict tables, also.
5438 (output_skeleton): Output b4_mergers definition.
5439 (prepare): Output b4_max_rhs_length definition.
5440 Use 'bison.glr' as default skeleton for GLR parsers.
5441
5442 * src/gram.c (glr_parser): New flag.
5443 (grammar_free): Call free_merger_functions.
5444
5445 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
5446 all pairs of conflicting reductions, rather than just all tokens
5447 causing conflicts. Needed to size conflict tables.
5448 (conflicts_output): Modify call to count_rr_conflicts for new
5449 interface.
5450 (conflicts_print): Ditto.
5451 (count_total_conflicts): New function.
5452
5453 * src/reader.h (merger_list): New type.
5454 (merge_functions): New variable.
5455
5456 * src/lex.h (tok_dprec, tok_merge): New token types.
5457
5458 * src/gram.h (rule_s): Add dprec and merger fields.
5459 (glr_parser): New flag.
5460
5461 * src/conflicts.h (count_total_conflicts): New function.
5462
5463 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
5464
5465 * doc/bison.texinfo (Generalized LR Parsing): New section.
5466 (GLR Parsers): New section.
5467 (Language and Grammar): Mention GLR parsing.
5468 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
5469 Correct typo ("tge" -> "the").
5470
5471 * data/bison.glr: New skeleton for GLR parsing.
5472
5473 * tests/cxx-gram.at: New tests for GLR parsing.
5474
5475 * tests/testsuite.at: Include cxx-gram.at.
5476
5477 * tests/Makefile.am: Add cxx-gram.at.
5478
5479 * src/parse-gram.y:
5480
5481 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
5482
5483 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
5484
54852002-06-27 Akim Demaille <akim@epita.fr>
5486
5487 * src/options.h, src/options.c: Remove.
5488 * src/getargs.c (short_options, long_options): New.
5489
54902002-06-27 Akim Demaille <akim@epita.fr>
5491
5492 * data/bison.simple, data/bison.c++: Rename as...
5493 * data/yacc.c, data/lalr1.cc: these.
5494 * doc/bison.texinfo (Environment Variables): Remove.
5495
54962002-06-25 Raja R Harinath <harinath@cs.umn.edu>
5497
5498 * src/getargs.c (report_argmatch): Initialize strtok().
5499
55002002-06-20 Akim Demaille <akim@epita.fr>
5501
5502 * data/bison.simple (b4_symbol_actions): New, replaces...
5503 (b4_symbol_destructor, b4_symbol_printer): these.
5504 (yysymprint): Be sure to call YYPRINT only for tokens, and using
5505 user token numbers.
5506
55072002-06-20 Akim Demaille <akim@epita.fr>
5508
5509 * data/bison.simple (yydestructor): Rename as...
5510 (yydestruct): this.
5511
55122002-06-20 Akim Demaille <akim@epita.fr>
5513
5514 * src/symtab.h, src/symtab.c (symbol_type_set)
5515 (symbol_destructor_set, symbol_precedence_set): The location is
5516 the last argument.
5517 Adjust all callers.
5518
55192002-06-20 Akim Demaille <akim@epita.fr>
5520
5521 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
5522 internals.
5523 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
5524 Takes a location.
5525 * src/symtab.h, src/symtab.c (symbol_class_set)
5526 (symbol_user_token_number_set): Likewise.
5527 Adjust all callers.
5528 Promote complain_at.
5529 * tests/input.at (Type Clashes): Adjust.
5530
55312002-06-20 Akim Demaille <akim@epita.fr>
5532
5533 * data/bison.simple (YYLEX): Fix the declaration when
5534 %pure-parser.
5535
55362002-06-20 Akim Demaille <akim@epita.fr>
5537
5538 * data/bison.simple (yysymprint): Don't print the token number,
5539 just its name.
5540 * tests/actions.at (Destructors): Rename as...
5541 (Printers and Destructors): this.
5542 Also exercise %printer.
5543
55442002-06-20 Akim Demaille <akim@epita.fr>
5545
5546 * data/bison.simple (YYDSYMPRINT): New.
5547 Use it to remove many of the #if YYDEBUG/if (yydebug).
5548
55492002-06-20 Akim Demaille <akim@epita.fr>
5550
5551 * src/symtab.h, src/symtab.c (symbol_t): printer and
5552 printer_location are new members.
5553 (symbol_printer_set): New.
5554 * src/parse-gram.y (PERCENT_PRINTER): New token.
5555 Handle its associated rule.
5556 * src/scan-gram.l: Adjust.
5557 (handle_destructor_at, handle_destructor_dollar): Rename as...
5558 (handle_symbol_code_at, handle_symbol_code_dollar): these.
5559 * src/output.c (symbol_printers_output): New.
5560 (output_skeleton): Call it.
5561 * data/bison.simple (yysymprint): New. Cannot be named yyprint
5562 since there are already many grammar files with a user `yyprint'.
5563 Replace the calls to YYPRINT to calls to yysymprint.
5564 * tests/calc.at: Adjust.
5565 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
5566 taking advantage of parser very internal details (stack size!).
5567
55682002-06-20 Akim Demaille <akim@epita.fr>
5569
5570 * src/scan-gram.l: Complete the scanner with the missing patterns
5571 to pacify Flex.
5572 Use `quote' and `symbol_tag_get' where appropriate.
5573
55742002-06-19 Akim Demaille <akim@epita.fr>
5575
5576 * tests/actions.at (Destructors): Augment to test locations.
5577 * data/bison.simple (yydestructor): Pass it the current location
5578 if locations are enabled.
5579 Prototype only when __STDC__ or C++.
5580 Change the argument names to move into the yy name space: there is
5581 user code here.
5582
55832002-06-19 Akim Demaille <akim@epita.fr>
5584
5585 * data/bison.simple (b4_pure_if): New.
5586 Use it instead of #ifdef YYPURE.
5587
55882002-06-19 Akim Demaille <akim@epita.fr>
5589
5590 * data/bison.simple (b4_location_if): New.
5591 Use it instead of #ifdef YYLSP_NEEDED.
5592
55932002-06-19 Akim Demaille <akim@epita.fr>
5594
5595 Prepare @$ in %destructor, but currently don't bind it in the
5596 skeleton, as %location use is not cleaned up yet.
5597
5598 * src/scan-gram.l (handle_dollar, handle_destructor_at)
5599 (handle_action_at): New.
5600 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
5601 a braced_code_t and a location as additional arguments.
5602 (handle_destructor_dollar): Instead of requiring `b4_eval', just
5603 unquote one when outputting `b4_dollar_dollar'.
5604 Adjust callers.
5605 * data/bison.simple (b4_eval): Remove.
5606 (b4_symbol_destructor): Adjust.
5607 * tests/input.at (Invalid @n): Adjust.
5608
56092002-06-19 Zack Weinberg <zack@codesourcery.com>
5610
5611 * doc/bison.texinfo: Document ability to have multiple
5612 prologue sections.
5613
56142002-06-18 Akim Demaille <akim@epita.fr>
5615
5616 * src/files.c (compute_base_names): When computing the output file
5617 names from the input file name, strip the directory part.
5618
56192002-06-18 Akim Demaille <akim@epita.fr>
5620
5621 * data/bison.simple.new: Comment changes.
5622 Reported by Andreas Schwab.
5623
56242002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
5625
5626 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
5627 there are no `label `yyoverflowlab' defined but not used' warnings
5628 when yyoverflow is defined.
5629
56302002-06-18 Akim Demaille <akim@epita.fr>
5631
5632 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
5633 new member.
5634 (symbol_destructor_set): Adjust.
5635 * src/output.c (symbol_destructors_output): Output the destructor
5636 locations.
5637 Output the symbol name.
5638 * data/bison.simple (b4_symbol_destructor): Adjust.
5639
56402002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
5641 and Akim Demaille <akim@epita.fr>
5642
5643 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
5644 what's left on the stack when the error recovery hits EOF.
5645 * tests/actions.at (Destructors): Complete to exercise this case.
5646
56472002-06-17 Akim Demaille <akim@epita.fr>
5648
5649 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
5650 arguments is really empty, not only equal to `[]'.
5651 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
5652 member.
5653 (symbol_destructor_set): New.
5654 * src/output.c (symbol_destructors_output): New.
5655 * src/reader.h (brace_code_t, current_braced_code): New.
5656 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
5657 (handle_dollar): Rename as...
5658 (handle_action_dollar): this.
5659 (handle_destructor_dollar): New.
5660 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
5661 (grammar_declaration): Use it.
5662 * data/bison.simple (yystos): Is always defined.
5663 (yydestructor): New.
5664 * tests/actions.at (Destructors): New.
5665 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
5666
56672002-06-17 Akim Demaille <akim@epita.fr>
5668
5669 * src/symlist.h, src/symlist.c (symbol_list_length): New.
5670 * src/scan-gram.l (handle_dollar, handle_at): Compute the
5671 rule_length only when needed.
5672 * src/output.c (actions_output, token_definitions_output): Output
5673 the full M4 block.
5674 * src/symtab.c: Don't access directly to the symbol tag, use
5675 symbol_tag_get.
5676 * src/parse-gram.y: Use symbol_list_free.
5677
56782002-06-17 Akim Demaille <akim@epita.fr>
5679
5680 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
5681 (symbol_list_prepend, get_type_name): Move to...
5682 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
5683 (symbol_list_prepend, symbol_list_n_type_name_get): here.
5684 Adjust all callers.
5685 (symbol_list_free): New.
5686 * src/scan-gram.l (handle_dollar): Takes a location.
5687 * tests/input.at (Invalid $n): Adjust.
5688
56892002-06-17 Akim Demaille <akim@epita.fr>
5690
5691 * src/reader.h, src/reader.c (symbol_list_new): Export it.
5692 (symbol_list_prepend): New.
5693 * src/parse-gram.y (%union): `list' is a new member.
5694 (symbols.1): New, replaces...
5695 (terms_to_prec.1, nterms_to_type.1): these.
5696 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
5697 Take a location as additional argument.
5698 Adjust all callers.
5699
57002002-06-15 Akim Demaille <akim@epita.fr>
5701
5702 * src/parse-gram.y: Move %token in the declaration section so that
5703 we don't depend upon CVS Bison.
5704
57052002-06-15 Akim Demaille <akim@epita.fr>
5706
5707 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
5708 * src/print.c (print_core): Use it.
5709
57102002-06-15 Akim Demaille <akim@epita.fr>
5711
5712 * src/conflicts.c (log_resolution): Accept the rule involved in
5713 the sr conflicts instead of the lookahead number that points to
5714 that rule.
5715 (flush_reduce): Accept the current lookahead vector as argument,
5716 instead of the index in LA.
5717 (resolve_sr_conflict): Accept the current number of lookahead
5718 bitset to consider for the STATE, instead of the index in LA.
5719 (set_conflicts): Adjust.
5720 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
5721
57222002-06-15 Akim Demaille <akim@epita.fr>
5723
5724 * src/state.h (state_t): Replace the `lookaheadsp' member, a
5725 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
5726 Adjust all dependencies.
5727 * src/lalr.c (initialize_lookaheads): Split into...
5728 (states_lookaheads_count, states_lookaheads_initialize): these.
5729 (lalr): Adjust.
5730
57312002-06-15 Akim Demaille <akim@epita.fr>
5732
5733 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
5734 out of...
5735 (grammar_rules_print): here.
5736 * src/reduce.c (reduce_output): Use it.
5737 * tests/reduce.at (Useless Rules, Reduced Automaton)
5738 (Underivable Rules): Adjust.
5739
57402002-06-15 Akim Demaille <akim@epita.fr>
5741
5742 Copy BYacc's nice way to report the grammar.
5743
5744 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
5745 New.
5746 Don't print the rules' location, it is confusing and useless.
5747 (rule_print): Use grammar_rhs_print.
5748 * src/print.c (print_grammar): Use grammar_rules_print.
5749
57502002-06-15 Akim Demaille <akim@epita.fr>
5751
5752 Complete and rationalize `useless thing' warnings.
5753
5754 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
5755 (symbol_tag_print): New.
5756 Use them everywhere in place of accessing directly the tag member.
5757 * src/gram.h, src/gram.c (rule_print): New.
5758 Use it where a rule used to be printed `by hand'.
5759 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
5760 (reduce_grammar_tables): Report the useless rules.
5761 (reduce_print): Useless things are a warning, not an error.
5762 Report it as such.
5763 * tests/reduce.at (Useless Nonterminals, Useless Rules):
5764 (Reduced Automaton, Underivable Rules): Adjust.
5765 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
5766 * tests/conflicts.at (Unresolved SR Conflicts)
5767 (Solved SR Conflicts): Adjust.
5768
57692002-06-15 Akim Demaille <akim@epita.fr>
5770
5771 Let symbols have a location.
5772
5773 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
5774 (getsym): Adjust.
5775 Adjust all callers.
5776 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
5777 Use location_t, not int.
5778 * src/symtab.c (symbol_check_defined): Take advantage of the
5779 location.
5780 * tests/regression.at (Invalid inputs): Adjust.
5781
57822002-06-15 Akim Demaille <akim@epita.fr>
5783
5784 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
5785 (input): Don't try to initialize yylloc here, do it in the
5786 scanner.
5787 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
5788 * src/gram.h (rule_t): Change line and action_line into location
5789 and action_location, of location_t type.
5790 Adjust all dependencies.
5791 * src/location.h, src/location.c (empty_location): New.
5792 * src/reader.h, src/reader.c (grammar_start_symbol_set)
5793 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
5794 (grammar_current_rule_symbol_append)
5795 (grammar_current_rule_action_append): Expect a location as argument.
5796 * src/reader.c (grammar_midrule_action): Adjust to attach an
5797 action's location as dummy symbol location.
5798 * src/symtab.h, src/symtab.c (startsymbol_location): New.
5799 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
5800 the line numbers.
5801
58022002-06-14 Akim Demaille <akim@epita.fr>
5803
5804 Grammar declarations may be found in the grammar section.
5805
5806 * src/parse-gram.y (rules_or_grammar_declaration): New.
5807 (declarations): Each declaration may end with a semicolon, not
5808 just...
5809 (grammar_declaration): `"%union"'.
5810 (grammar): Branch to rules_or_grammar_declaration.
5811
58122002-06-14 Akim Demaille <akim@epita.fr>
5813
5814 * src/main.c (main): Invoke scanner_free.
5815
58162002-06-14 Akim Demaille <akim@epita.fr>
5817
5818 * src/output.c (m4_invoke): Extracted from...
5819 (output_skeleton): here.
5820 Free tempfile.
5821
58222002-06-14 Akim Demaille <akim@epita.fr>
5823
5824 * src/parse-gram.y (directives, directive, gram)
5825 (grammar_directives, precedence_directives, precedence_directive):
5826 Rename as...
5827 (declarations, declaration, grammar, grammar_declaration)
5828 (precedence_declaration, precedence_declarator): these.
5829 (symbol_declaration): New.
5830
58312002-06-14 Akim Demaille <akim@epita.fr>
5832
5833 * src/files.c (action_obstack): Remove, unused.
5834 (output_obstack): Remove it, and all its dependencies, as it is no
5835 longer needed.
5836 * src/reader.c (epilogue_set): Build the epilogue in the
5837 muscle_obstack.
5838 * src/output.h, src/output.c (muscle_obstack): Move to...
5839 * src/muscle_tab.h, src/muscle_tab.h: here.
5840 (muscle_init): Initialize muscle_obstack.
5841 (muscle_free): New.
5842 * src/main.c (main): Call it.
5843
58442002-06-14 Akim Demaille <akim@epita.fr>
5845
5846 * src/location.h: New, extracted from...
5847 * src/reader.h: here.
5848 * src/Makefile.am (noinst_HEADERS): Merge into
5849 (bison_SOURCES): this.
5850 Add location.h.
5851 * src/parse-gram.y: Use location_t instead of Bison's.
5852 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
5853 Use location_t instead of ints.
5854
58552002-06-14 Akim Demaille <akim@epita.fr>
5856
5857 * data/bison.simple, data/bison.c++: Be sure to restore the
5858 current #line when returning to the skeleton contents after having
5859 exposed the input file's #line.
5860
58612002-06-12 Akim Demaille <akim@epita.fr>
5862
5863 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
5864 eager.
5865 * tests/actions.at (Exotic Dollars): New.
5866
58672002-06-12 Akim Demaille <akim@epita.fr>
5868
5869 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
5870 ['"/] too eagerly.
5871 * tests/input.at (Torturing the Scanner): New.
5872
58732002-06-11 Akim Demaille <akim@epita.fr>
5874
5875 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
5876 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
5877 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
5878 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
5879 * src/reader.c (reader): Use it.
5880
58812002-06-11 Akim Demaille <akim@epita.fr>
5882
5883 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
5884 Adjust all callers.
5885 (scanner_last_string_free): New.
5886
58872002-06-11 Akim Demaille <akim@epita.fr>
5888
5889 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
5890 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
5891 (last_string, YY_OBS_FREE): New.
5892 Use them when returning an ID.
5893
58942002-06-11 Akim Demaille <akim@epita.fr>
5895
5896 Have Bison grammars parsed by a Bison grammar.
5897
5898 * src/reader.c, src/reader.h (prologue_augment): New.
5899 * src/reader.c (copy_definition): Remove.
5900
5901 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
5902 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
5903 (grammar_current_rule_prec_set, grammar_current_rule_check)
5904 (grammar_current_rule_symbol_append)
5905 (grammar_current_rule_action_append): Export.
5906 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
5907 (symbol_list_action_append): Remove.
5908 Hook the routines from reader.
5909 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
5910 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
5911
5912 * src/reader.c (read_declarations): Remove, unused.
5913
5914 * src/parse-gram.y: Handle the epilogue.
5915 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
5916 (grammar_start_symbol_set): this.
5917 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
5918 * src/reader.c (readgram): Remove, unused.
5919 (reader): Adjust to insert eoftoken and axiom where appropriate.
5920
5921 * src/reader.c (copy_dollar): Replace with...
5922 * src/scan-gram.h (handle_dollar): this.
5923 * src/parse-gram.y: Remove `%thong'.
5924
5925 * src/reader.c (copy_at): Replace with...
5926 * src/scan-gram.h (handle_at): this.
5927
5928 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
5929 New.
5930
5931 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
5932 time being.
5933
5934 * src/reader.h, src/reader.c (grammar_rule_end): New.
5935
5936 * src/parse.y (current_type, current_class): New.
5937 Implement `%nterm', `%token' support.
5938 Merge `%term' into `%token'.
5939 (string_as_id): New.
5940 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
5941 type name.
5942
5943 * src/parse-gram.y: Be sure to handle properly the beginning of
5944 rules.
5945
5946 * src/parse-gram.y: Handle %type.
5947 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
5948
5949 * src/parse-gram.y: More directives support.
5950 * src/options.c: No longer handle source directives.
5951
5952 * src/parse-gram.y: Fix %output.
5953
5954 * src/parse-gram.y: Handle %union.
5955 Use the prologue locations.
5956 * src/reader.c (parse_union_decl): Remove.
5957
5958 * src/reader.h, src/reader.c (epilogue_set): New.
5959 * src/parse-gram.y: Use it.
5960
5961 * data/bison.simple, data/bison.c++: b4_stype is now either not
5962 defined, then default to int, or to the contents of %union,
5963 without `union' itself.
5964 Adjust.
5965 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
5966
5967 * src/output.c (actions_output): Don't output braces, as they are
5968 already handled by the scanner.
5969
5970 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
5971 characters to themselves.
5972
5973 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
5974 that the epilogue has a proper #line.
5975
5976 * src/parse-gram.y: Handle precedence/associativity.
5977
5978 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
5979 a terminal.
5980 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
5981 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
5982 at all to define terminals that cannot be emitted.
5983
5984 * src/scan-gram.l: Escape M4 characters.
5985
5986 * src/scan-gram.l: Working properly with escapes in user
5987 strings/characters.
5988
5989 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
5990 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
5991 grammar.
5992 Use more modest sizes, as for the time being the parser does not
5993 release memory, and therefore the process swallows a huge amount
5994 of memory.
5995
5996 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
5997 stricter %token grammar.
5998
5999 * src/symtab.h (associativity): Add `undef_assoc'.
6000 (symbol_precedence_set): Do nothing when passed an undef_assoc.
6001 * src/symtab.c (symbol_check_alias_consistence): Adjust.
6002
6003 * tests/regression.at (Invalid %directive): Remove, as it is now
6004 meaningless.
6005 (Invalid inputs): Adjust to the new error messages.
6006 (Token definitions): The new grammar doesn't allow too many
6007 eccentricities.
6008
6009 * src/lex.h, src/lex.c: Remove.
6010 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
6011 (copy_character, copy_string2, copy_string, copy_identifier)
6012 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
6013 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
6014 (parse_action): Remove.
6015 * po/POTFILES.in: Adjust.
6016
60172002-06-11 Akim Demaille <akim@epita.fr>
6018
6019 * src/reader.c (parse_action): Don't store directly into the
6020 rule's action member: return the action as a string.
6021 Don't require `rule_length' as an argument: compute it.
6022 (grammar_current_rule_symbol_append)
6023 (grammar_current_rule_action_append): New, eved out from
6024 (readgram): here.
6025 Remove `action_flag', `rulelength', unused now.
6026
60272002-06-11 Akim Demaille <akim@epita.fr>
6028
6029 * src/reader.c (grammar_current_rule_prec_set).
6030 (grammar_current_rule_check): New, eved out from...
6031 (readgram): here.
6032 Remove `xaction', `first_rhs': useless.
6033 * tests/input.at (Type clashes): New.
6034 * tests/existing.at (GNU Cim Grammar): Adjust.
6035
60362002-06-11 Akim Demaille <akim@epita.fr>
6037
6038 * src/reader.c (grammar_midrule_action): New, Eved out from
6039 (readgram): here.
6040
60412002-06-11 Akim Demaille <akim@epita.fr>
6042
6043 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
6044 New.
6045 (readgram): Use them as replacement of inlined code, crule and
6046 crule1.
6047
60482002-06-11 Akim Demaille <akim@epita.fr>
6049
6050 * src/reader.c (grammar_end, grammar_symbol_append): New.
6051 (readgram): Use them.
6052 Make the use of `p' as local as possible.
6053
60542002-06-10 Akim Demaille <akim@epita.fr>
6055
6056 GCJ's parser requires the tokens to be defined before the prologue.
6057
6058 * data/bison.simple: Output the token definition before the user's
6059 prologue.
6060 * tests/regression.at (Braces parsing, Duplicate string)
6061 (Mixing %token styles): Check the output from bison.
6062 (Early token definitions): New.
6063
60642002-06-10 Akim Demaille <akim@epita.fr>
6065
6066 * src/symtab.c (symbol_user_token_number_set): Don't complain when
6067 assigning twice the same user number to a token, so that we can
6068 use it in...
6069 * src/lex.c (lex): here.
6070 Also use `symbol_class_set' instead of hand written code.
6071 * src/reader.c (parse_assoc_decl): Likewise.
6072
60732002-06-10 Akim Demaille <akim@epita.fr>
6074
6075 * src/symtab.c, src/symtab.c (symbol_class_set)
6076 (symbol_user_token_number_set): New.
6077 * src/reader.c (parse_token_decl): Use them.
6078 Use a switch instead of ifs.
6079 Use a single argument.
6080
60812002-06-10 Akim Demaille <akim@epita.fr>
6082
6083 Remove `%thong' support as it is undocumented, unused, duplicates
6084 `%token's job, and creates useless e-mail traffic with people who
6085 want to know what it is, why it is undocumented, unused, and
6086 duplicates `%token's job.
6087
6088 * src/reader.c (parse_thong_decl): Remove.
6089 * src/options.c (option_table): Remove "thong".
6090 * src/lex.h (tok_thong): Remove.
6091
60922002-06-10 Akim Demaille <akim@epita.fr>
6093
6094 * src/symtab.c, src/symtab.c (symbol_type_set)
6095 (symbol_precedence_set): New.
6096 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
6097 (value_components_used): Remove, unused.
6098
60992002-06-09 Akim Demaille <akim@epita.fr>
6100
6101 Move symbols handling code out of the reader.
6102
6103 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
6104 (axiom): Move to...
6105 * src/symtab.h, src/symtab.c: here.
6106
6107 * src/gram.c (start_symbol): Remove: use startsymbol->number.
6108 * src/reader.c (startval): Rename as...
6109 * src/symtab.h, src/symtab.c (startsymbol): this.
6110 * src/reader.c: Adjust.
6111
6112 * src/reader.c (symbol_check_defined, symbol_make_alias)
6113 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
6114 (token_translations_init)
6115 Move to...
6116 * src/symtab.c: here.
6117 * src/reader.c (packsymbols): Move to...
6118 * src/symtab.h, src/symtab.c (symbols_pack): here.
6119 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
6120 argument.
6121
61222002-06-03 Akim Demaille <akim@epita.fr>
6123
6124 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
6125 then statements.
6126
61272002-06-03 Akim Demaille <akim@epita.fr>
6128
6129 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
6130 structs with non literals.
6131 * src/scan-skel.l: never-interactive.
6132 * src/conflicts.c (enum conflict_resolution_e): No trailing
6133 comma.
6134 * src/getargs.c (usage): Split long literal strings.
6135 Reported by Hans Aberg.
6136
61372002-05-28 Akim Demaille <akim@epita.fr>
6138
6139 * data/bison.c++: Use C++ ostreams.
6140 (cdebug_): New member.
6141
61422002-05-28 Akim Demaille <akim@epita.fr>
6143
6144 * src/output.c (output_skeleton): Be sure to allocate enough room
6145 for `/' _and_ for `\0' in full_skeleton.
6146
61472002-05-28 Akim Demaille <akim@epita.fr>
6148
6149 * data/bison.c++: Catch up with bison.simple:
6150 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6151 and Paul Eggert <eggert@twinsun.com>: `error' handing.
6152 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
6153 and popping traces.
6154
61552002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6156
6157 * src/output.c (output_skeleton): Put an explicit path in front of
6158 the skeleton file name, rather than relying on the -I directory,
6159 to partially alleviate effects of having a skeleton file lying around
6160 in the current directory.
6161
61622002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6163
6164 * src/conflicts.c (log_resolution): Correct typo:
6165 obstack_printf should be obstack_fgrow1.
6166
61672002-05-26 Akim Demaille <akim@epita.fr>
6168
6169 * src/state.h (state_t): `solved_conflicts' is a new member.
6170 * src/LR0.c (new_state): Set it to 0.
6171 * src/conflicts.h, src/conflicts.c (print_conflicts)
6172 (free_conflicts, solve_conflicts): Rename as...
6173 (conflicts_print, conflicts_free, conflicts_solve): these.
6174 Adjust callers.
6175 * src/conflicts.c (enum conflict_resolution_e)
6176 (solved_conflicts_obstack): New, used by...
6177 (log_resolution): this.
6178 Adjust to attach the conflict resolution to each state.
6179 Complete the description with the precedence/associativity
6180 information.
6181 (resolve_sr_conflict): Adjust.
6182 * src/print.c (print_state): Output its solved_conflicts.
6183 * tests/conflicts.at (Unresolved SR Conflicts)
6184 (Solved SR Conflicts): Exercise --report=all.
6185
61862002-05-26 Akim Demaille <akim@epita.fr>
6187
6188 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6189 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
6190 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
6191 (token_number_t, item_number_as_token_number)
6192 (token_number_as_item_number, muscle_insert_token_number_table):
6193 Rename as...
6194 (symbol_number_t, item_number_as_symbol_number)
6195 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
6196 these, since it is more appropriate.
6197
61982002-05-26 Akim Demaille <akim@epita.fr>
6199
6200 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
6201 `Error:' lines.
6202 * data/bison.simple (yystos) [YYDEBUG]: New.
6203 (yyparse) [YYDEBUG]: Display the symbols which are popped during
6204 error recovery.
6205 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
6206
62072002-05-25 Akim Demaille <akim@epita.fr>
6208
6209 * doc/bison.texinfo (Debugging): Split into...
6210 (Tracing): this new section, its former contents, and...
6211 (Understanding): this new section.
6212 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
6213 by...
6214 (report_flag): this.
6215 Adjust all dependencies.
6216 (report_args, report_types, report_argmatch): New.
6217 (usage, getargs): Report/support -r, --report.
6218 * src/options.h
6219 (struct option_table_struct): Rename as..,
6220 (struct option_table_s): this.
6221 Rename the `set_flag' member to `flag' to match with getopt_long's
6222 struct.
6223 * src/options.c (option_table): Split verbose into an entry for
6224 %verbose, and another for --verbose.
6225 Support --report/-r, so remove -r from the obsolete --raw.
6226 * src/print.c: Attach full item sets and lookaheads reports to
6227 report_flag instead of trace_flag.
6228 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
6229
62302002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6231 and Paul Eggert <eggert@twinsun.com>
6232
6233 * data/bison.simple (yyparse): Correct error handling to conform to
6234 POSIX and yacc. Specifically, after syntax error is discovered,
6235 do not reduce further before shifting the error token.
6236 Clean up the code a bit by removing the labels yyerrdefault,
6237 yyerrhandle, yyerrpop.
6238 * NEWS: Document the above.
6239
62402002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6241
6242 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
6243 type; it isn't always big enough, since it doesn't necessarily
6244 include non-terminals.
6245 (yytranslate): Expand definition of yy_token_number_type, so that
6246 the latter can be removed.
6247 (yy_token_number_type): Remove, only one use.
6248 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
6249 don't use TokenNumberType as element type.
6250
6251 * tests/regression.at: Modify expected output to agree with change
6252 to yyr1 and yytranslate.
6253
62542002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
6255
6256 * src/reader.c (parse_action): Use copy_character instead of
6257 obstack_1grow.
6258
62592002-05-13 Akim Demaille <akim@epita.fr>
6260
6261 * tests/regression.at (Token definitions): Prototype yylex and
6262 yyerror.
6263
62642002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6265
6266 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
6267 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
6268 32-bit arithmetic.
6269 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
6270
62712002-05-07 Akim Demaille <akim@epita.fr>
6272
6273 * tests/synclines.at: Be sure to prototype yylex and yyerror to
6274 avoid GCC warnings.
6275
62762002-05-07 Akim Demaille <akim@epita.fr>
6277
6278 Kill GCC warnings.
6279
6280 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
6281 over the RHS of each rule.
6282 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
6283 * src/state.h (state_t): Member `nitems' is unsigned short.
6284 * src/LR0.c (get_state): Adjust.
6285 * src/reader.c (packgram): Likewise.
6286 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
6287 `Type'.
6288 (muscle_insert_int_table): Remove, unused.
6289 (prepare_rules): Remove `max'.
6290
62912002-05-06 Akim Demaille <akim@epita.fr>
6292
6293 * src/closure.c (print_firsts): Display of the symbol tags.
6294 (bitmatrix_print): Move to...
6295 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
6296 here.
6297 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
6298
62992002-05-06 Akim Demaille <akim@epita.fr>
6300
6301 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
6302 hash_do_for_each.
6303
63042002-05-06 Akim Demaille <akim@epita.fr>
6305
6306 * src/LR0.c (new_state, get_state): Instead of using the global
6307 `kernel_size' and `kernel_base', have two new arguments:
6308 `core_size' and `core'.
6309 Adjust callers.
6310
63112002-05-06 Akim Demaille <akim@epita.fr>
6312
6313 * src/reader.c (packgram): No longer end `ritem' with a 0
6314 sentinel: it is not used.
6315
63162002-05-05 Akim Demaille <akim@epita.fr>
6317
6318 New experimental feature: display the lookaheads in the report and
6319 graph.
6320
6321 * src/print (print_core): When --trace-flag, display the rules
6322 lookaheads.
6323 * src/print_graph.c (print_core): Likewise.
6324 Swap the arguments.
6325 Adjust caller.
6326
63272002-05-05 Akim Demaille <akim@epita.fr>
6328
6329 * tests/torture.at (Many lookaheads): New test.
6330
63312002-05-05 Akim Demaille <akim@epita.fr>
6332
6333 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
6334 (GENERATE_MUSCLE_INSERT_TABLE): this.
6335 (output_int_table, output_unsigned_int_table, output_short_table)
6336 (output_token_number_table, output_item_number_table): Replace with...
6337 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
6338 (muscle_insert_short_table, muscle_insert_token_number_table)
6339 (muscle_insert_item_number_table): these.
6340 Adjust all callers.
6341 (prepare_tokens): Don't free `translations', since...
6342 * src/reader.h, src/reader.c (grammar_free): do it.
6343 Move to...
6344 * src/gram.h, src/gram.c (grammar_free): here.
6345 * data/bison.simple, data/bison.c++: b4_token_number_max is now
6346 b4_translate_max.
6347
63482002-05-05 Akim Demaille <akim@epita.fr>
6349
6350 * src/output.c (output_unsigned_int_table): New.
6351 (prepare_rules): `i' is unsigned.
6352 `prhs', `rline', `r2' are unsigned int.
6353 Rename muscle `rhs_number_max' as `rhs_max'.
6354 Output muscles `prhs_max', `rline_max', and `r2_max'.
6355 Free rline and r1.
6356 * data/bison.simple, data/bison.c++: Adjust to use these muscles
6357 to compute types instead of constant types.
6358 * tests/regression.at (Web2c Actions): Adjust.
6359
63602002-05-04 Akim Demaille <akim@epita.fr>
6361
6362 * src/symtab.h (SALIAS, SUNDEF): Rename as...
6363 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
6364 Adjust dependencies.
6365 * src/output.c (token_definitions_output): Be sure not to output a
6366 `#define 'a'' when fed with `%token 'a' "a"'.
6367 * tests/regression.at (Token definitions): New.
6368
63692002-05-03 Paul Eggert <eggert@twinsun.com>
6370
6371 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
6372 for K&R C.
6373
63742002-05-03 gettextize <bug-gnu-gettext@gnu.org>
6375
6376 * Makefile.am (SUBDIRS): Remove intl.
6377 (EXTRA_DIST): Add config/config.rpath.
6378
63792002-05-03 Akim Demaille <akim@epita.fr>
6380
6381 * data/bison.simple (m4_if): Don't output empty enums.
6382 And actually, output valid enum definitions :(.
6383
63842002-05-03 Akim Demaille <akim@epita.fr>
6385
6386 * configure.bat: Remove, completely obsolete.
6387 * Makefile.am (EXTRA_DIST): Adjust.
6388 Don't distribute config.rpath...
6389 * config/Makefile.am (EXTRA_DIST): Do it.
6390
63912002-05-03 Akim Demaille <akim@epita.fr>
6392
6393 * configure.in (GETTEXT_VERSION): New.
6394 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
6395
63962002-05-03 Akim Demaille <akim@epita.fr>
6397
6398 * data/bison.simple (b4_token_enum): New.
6399 (b4_token_defines): Use it to output tokens both as #define and
6400 enums.
6401 Suggested by Paul Eggert.
6402 * src/output.c (token_definitions_output): Don't output spurious
6403 white spaces.
6404
64052002-05-03 Akim Demaille <akim@epita.fr>
6406
6407 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6408
64092002-05-02 Robert Anisko <robert@lrde.epita.fr>
6410
6411 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
6412 Update the stack class, give a try to deque as the default container.
6413
64142002-05-02 Akim Demaille <akim@epita.fr>
6415
6416 * data/bison.simple (yyparse): Do not implement @$ = @1.
6417 (YYLLOC_DEFAULT): Adjust to do it.
6418 * doc/bison.texinfo (Location Default Action): Fix.
6419
64202002-05-02 Akim Demaille <akim@epita.fr>
6421
6422 * src/reader.c (parse_braces): Merge into...
6423 (parse_action): this.
6424
64252002-05-02 Akim Demaille <akim@epita.fr>
6426
6427 * configure.in (ALL_LINGUAS): Remove.
6428 * po/LINGUAS, hr.po: New.
6429
64302002-05-02 Akim Demaille <akim@epita.fr>
6431
6432 Remove the so called hairy (semantic) parsers.
6433
6434 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
6435 * src/gram.h, src/gram.c (semantic_parser): Remove.
6436 (rule_t): Remove the guard and guard_line members.
6437 * src/lex.h (token_t): remove tok_guard.
6438 * src/options.c (option_table): Remove %guard and %semantic_parser
6439 support.
6440 * src/output.c, src/output.h (guards_output): Remove.
6441 (prepare): Adjust.
6442 (token_definitions_output): Don't output the `T'
6443 tokens (???).
6444 (output_skeleton): Don't output the guards.
6445 * src/files.c, src/files.c (attrsfile): Remove.
6446 * src/reader.c (symbol_list): Remove the guard and guard_line
6447 members.
6448 Adjust dependencies.
6449 (parse_guard): Remove.
6450 * data/bison.hairy: Remove.
6451 * doc/bison.texinfo (Environment Variables): Remove occurrences of
6452 BISON_HAIRY.
6453
64542002-05-02 Akim Demaille <akim@epita.fr>
6455
6456 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
6457 (parse_guard): Rename the formal argument `stack_offset' as
6458 `rule_length', which is more readable.
6459 Adjust callers.
6460 (copy_at, copy_dollar): Instead of outputting the hard coded
6461 values of $$, $n and so forth, output invocation to b4_lhs_value,
6462 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
6463 Note: this patch partially drops `semantic-parser' support: it
6464 always does `rule_length - n', where semantic parsers ought to
6465 always use `-n'.
6466 * data/bison.simple, data/bison.c++ (b4_lhs_value)
6467 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
6468
64692002-05-02 Akim Demaille <akim@epita.fr>
6470
6471 * configure.in (AC_INIT): Bump to 1.49b.
6472 (AM_INIT_AUTOMAKE): Short invocation.
6473
64742002-05-02 Akim Demaille <akim@epita.fr>
6475
6476 Version 1.49a.
6477
64782002-05-01 Akim Demaille <akim@epita.fr>
6479
6480 * src/skeleton.h: Remove.
6481
64822002-05-01 Akim Demaille <akim@epita.fr>
6483
6484 * src/skeleton.h: Fix the #endif.
6485 Reported by Magnus Fromreide.
6486
64872002-04-26 Paul Eggert <eggert@twinsun.com>
6488
6489 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
6490 Define if we define YYSTYPE and YYLTYPE, respectively.
6491 (YYCOPY): Fix [] quoting problem in the non-GCC case.
6492
64932002-04-25 Robert Anisko <robert@lrde.epita.fr>
6494
6495 * src/scan-skel.l: Postprocess quadrigraphs.
6496
6497 * src/reader.c (copy_character): New function, used to output
6498 single characters while replacing `[' and `]' with quadrigraphs, to
6499 avoid troubles with M4 quotes.
6500 (copy_comment): Output characters with copy_character.
6501 (read_additionnal_code): Likewise.
6502 (copy_string2): Likewise.
6503 (copy_definition): Likewise.
6504
6505 * tests/calc.at: Exercise M4 quoting.
6506
65072002-04-25 Akim Demaille <akim@epita.fr>
6508
6509 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
6510 between `!' and the command.
6511 Reported by Paul Eggert.
6512
65132002-04-24 Robert Anisko <robert@lrde.epita.fr>
6514
6515 * tests/calc.at: Exercise prologue splitting.
6516
6517 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
6518 `b4_post_prologue' instead of `b4_prologue'.
6519
6520 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
6521 muscles.
6522 (output): Free pre_prologue_obstack and post_prologue_obstack.
6523 * src/files.h, src/files.c (attrs_obstack): Remove.
6524 (pre_prologue_obstack, post_prologue_obstack): New.
6525 * src/reader.c (copy_definition): Add a parameter to specify the
6526 obstack to fill, instead of using attrs_obstack unconditionally.
6527 (read_declarations): Pass pre_prologue_obstack to copy_definition if
6528 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
6529
65302002-04-23 Paul Eggert <eggert@twinsun.com>
6531
6532 * data/bison.simple: Remove unnecessary commentary and white
6533 space differences from 1_29-branch.
6534 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
6535
6536 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
6537 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
6538 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
6539 constructors or destructors.
6540
6541 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
6542
65432002-04-23 Akim Demaille <akim@epita.fr>
6544
6545 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
6546 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
6547 location with columns.
6548 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
6549 All reported by Paul Eggert.
6550
65512002-04-22 Akim Demaille <akim@epita.fr>
6552
6553 * src/reduce.c (dump_grammar): Move to...
6554 * src/gram.h, src/gram.c (grammar_dump): here.
6555 Be sure to separate long item numbers.
6556 Don't read the members of a rule's prec if its nil.
6557
65582002-04-22 Akim Demaille <akim@epita.fr>
6559
6560 * src/output.c (table_size, table_grow): New.
6561 (MAXTABLE): Remove, replace uses with table_size.
6562 (pack_vector): Instead of dying when the table is too big, grow it.
6563
65642002-04-22 Akim Demaille <akim@epita.fr>
6565
6566 * data/bison.simple (yyr1): Its type is that of a token number.
6567 * data/bison.c++ (r1_): Likewise.
6568 * tests/regression.at (Web2c Actions): Adjust.
6569
65702002-04-22 Akim Demaille <akim@epita.fr>
6571
6572 * src/reader.c (token_translations_init): 256 is now the default
6573 value for the error token, i.e., it will be assigned another
6574 number if the user assigned 256 to one of her tokens.
6575 (reader): Don't force 256 to error.
6576 * doc/bison.texinfo (Symbols): Adjust.
6577 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
6578 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
6579 etc. instead of 10, 20, 30 (which was used to `jump' over error
6580 (256) and undefined (2)).
6581
65822002-04-22 Akim Demaille <akim@epita.fr>
6583
6584 Propagate more token_number_t.
6585
6586 * src/gram.h (token_number_as_item_number)
6587 (item_number_as_token_number): New.
6588 * src/output.c (GENERATE_OUTPUT_TABLE): New.
6589 Use it to create output_item_number_table and
6590 output_token_number_table.
6591 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
6592 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
6593 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
6594 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
6595
65962002-04-22 Akim Demaille <akim@epita.fr>
6597
6598 * src/output.h, src/output.c (get_lines_number): Remove.
6599
66002002-04-19 Akim Demaille <akim@epita.fr>
6601
6602 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
6603 as Lex/Flex'.
6604 (Debugging): More details about enabling the debugging features.
6605 (Table of Symbols): Describe $$, $n, @$, and @n.
6606 Suggested by Tim Josling.
6607
66082002-04-19 Akim Demaille <akim@epita.fr>
6609
6610 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
6611
66122002-04-10 Akim Demaille <akim@epita.fr>
6613
6614 * src/system.h: Rely on HAVE_LIMITS_H.
6615 Suggested by Paul Eggert.
6616
66172002-04-09 Akim Demaille <akim@epita.fr>
6618
6619 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
6620 full stderr, and strip it according to the bison options, instead
6621 of composing the error message from different bits.
6622 This makes it easier to check for several error messages.
6623 Adjust all the invocations.
6624 Add an invocation exercising the error token.
6625 Add an invocation demonstrating a stupid error message.
6626 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
6627 Adjust the tests.
6628 Error message are for stderr, not stdout.
6629
66302002-04-09 Akim Demaille <akim@epita.fr>
6631
6632 * src/gram.h, src/gram.c (error_token_number): Remove, use
6633 errtoken->number.
6634 * src/reader.c (reader): Don't specify the user token number (2)
6635 for $undefined, as it uselessly prevents using it.
6636 * src/gram.h (token_number_t): Move to...
6637 * src/symtab.h: here.
6638 (state_t.number): Is a token_number_t.
6639 * src/print.c, src/reader.c: Use undeftoken->number instead of
6640 hard coded 2.
6641 (Even though this 2 is not the same as above: the number of the
6642 undeftoken remains being 2, it is its user token number which
6643 might not be 2).
6644 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
6645 `user_token_number_max'.
6646 Output `undef_token_number'.
6647 * data/bison.simple, data/bison.c++: Use them.
6648 Be sure to map invalid yylex return values to
6649 `undef_token_number'. This saves us from gratuitous SEGV.
6650
6651 * tests/conflicts.at (Solved SR Conflicts)
6652 (Unresolved SR Conflicts): Adjust.
6653 * tests/regression.at (Web2c Actions): Adjust.
6654
66552002-04-08 Akim Demaille <akim@epita.fr>
6656
6657 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
6658 Adding #line.
6659 Remove the duplicate `typedefs'.
6660 (RhsNumberType): Fix the declaration and various other typos.
6661 Use __ofile__.
6662 * data/bison.simple: Use __ofile__.
6663 * src/scan-skel.l: Handle __ofile__.
6664
66652002-04-08 Akim Demaille <akim@epita.fr>
6666
6667 * src/gram.h (item_number_t): New, the type of item numbers in
6668 RITEM. Note that it must be able to code symbol numbers as
6669 positive number, and the negation of rule numbers as negative
6670 numbers.
6671 Adjust all dependencies (pretty many).
6672 * src/reduce.c (rule): Remove this `short *' pointer: use
6673 item_number_t.
6674 * src/system.h (MINSHORT, MAXSHORT): Remove.
6675 Include `limits.h'.
6676 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
6677 (shortcpy): Remove.
6678 (MAXTABLE): Move to...
6679 * src/output.c (MAXTABLE): here.
6680 (prepare_rules): Use output_int_table to output rhs.
6681 * data/bison.simple, data/bison.c++: Adjust.
6682 * tests/torture.at (Big triangle): Move the limit from 254 to
6683 500.
6684 * tests/regression.at (Web2c Actions): Ajust.
6685
6686 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
6687 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
6688 passes, but produces negative #line number, once fixed, GCC is
6689 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
6690 C), it passes.
6691 * src/state.h (state_h): Code input lines on ints, not shorts.
6692
66932002-04-08 Akim Demaille <akim@epita.fr>
6694
6695 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
6696 and then the grammar.
6697
66982002-04-08 Akim Demaille <akim@epita.fr>
6699
6700 * src/system.h: No longer using strndup.
6701
67022002-04-07 Akim Demaille <akim@epita.fr>
6703
6704 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
6705 * src/output.c (output_table_data): Return the longest number.
6706 (prepare_tokens): Output `token_number_max').
6707 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
6708 New.
6709 Use them to define yy_token_number_type/TokenNumberType.
6710 Use this type for yytranslate.
6711 * tests/torture.at (Big triangle): Push the limit from 124 to
6712 253.
6713 * tests/regression.at (Web2c Actions): Adjust.
6714
67152002-04-07 Akim Demaille <akim@epita.fr>
6716
6717 * tests/torture.at (Big triangle): New.
6718 (GNU AWK Grammar, GNU Cim Grammar): Move to...
6719 * tests/existing.at: here.
6720
67212002-04-07 Akim Demaille <akim@epita.fr>
6722
6723 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
6724 nritems.
6725 Adjust dependencies.
6726
67272002-04-07 Akim Demaille <akim@epita.fr>
6728
6729 * src/reader.c: Normalize increments to prefix form.
6730
67312002-04-07 Akim Demaille <akim@epita.fr>
6732
6733 * src/reader.c, symtab.c: Remove debugging code.
6734
67352002-04-07 Akim Demaille <akim@epita.fr>
6736
6737 Rename all the `bucket's as `symbol_t'.
6738
6739 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
6740 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
6741 * src/symtab.c, src/symtab.h (bucket): Rename as...
6742 (symbol_t): this.
6743 (symbol_list_new, bucket_check_defined, bucket_make_alias)
6744 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
6745 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
6746 (buckets_new, buckets_free, buckets_do): Rename as...
6747 (symbol_list_new, symbol_check_defined, symbol_make_alias)
6748 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
6749 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
6750 (symbols_new, symbols_free, symbols_do): these.
6751
67522002-04-07 Akim Demaille <akim@epita.fr>
6753
6754 Use lib/hash for the symbol table.
6755
6756 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
6757 EOF.
6758 * src/lex.c (lex): Set the `number' member of new terminals.
6759 * src/reader.c (bucket_check_defined, bucket_make_alias)
6760 (bucket_check_alias_consistence, bucket_translation): New.
6761 (reader, grammar_free, readgram, token_translations_init)
6762 (packsymbols): Adjust.
6763 (reader): Number the predefined tokens.
6764 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
6765 for predefined tokens.
6766 * src/symtab.h (bucket): Remove all the hash table related
6767 members.
6768 * src/symtab.c (symtab): Replace by...
6769 (bucket_table): this.
6770 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
6771 (buckets_new, buckets_do): New.
6772
67732002-04-07 Akim Demaille <akim@epita.fr>
6774
6775 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
6776 (start_symbol, max_user_token_number, semantic_parser)
6777 (error_token_number): Initialize.
6778 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
6779 Initialize.
6780 (reader): Don't.
6781 (errtoken, eoftoken, undeftoken, axiom): Extern.
6782
67832002-04-07 Akim Demaille <akim@epita.fr>
6784
6785 * src/gram.h (rule_s): prec and precsym are now pointers
6786 to the bucket giving the priority/associativity.
6787 Member `associativity' removed: useless.
6788 * src/reduce.c, src/conflicts.c: Adjust.
6789
67902002-04-07 Akim Demaille <akim@epita.fr>
6791
6792 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
6793 Properly escape the symbols' TAG when outputting them.
6794
67952002-04-07 Akim Demaille <akim@epita.fr>
6796
6797 * src/lalr.h (LA): Is a bitsetv, not bitset*.
6798
67992002-04-07 Akim Demaille <akim@epita.fr>
6800
6801 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
6802 (LArule): this, which is an array to rule_t*.
6803 * src/print.c, src/conflicts.c: Adjust.
6804
68052002-04-07 Akim Demaille <akim@epita.fr>
6806
6807 * src/gram.h (rule_t): Rename `number' as `user_number'.
6808 `number' is a new member.
6809 Adjust dependencies.
6810 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
6811
68122002-04-07 Akim Demaille <akim@epita.fr>
6813
6814 As a result of the previous patch, it is no longer needed
6815 to reorder ritem itself.
6816
6817 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
6818
68192002-04-07 Akim Demaille <akim@epita.fr>
6820
6821 Be sure never to walk through RITEMS, but use only data related to
6822 the rules themselves. RITEMS should be banished.
6823
6824 * src/output.c (output_token_translations): Rename as...
6825 (prepare_tokens): this.
6826 In addition to `translate', prepare the muscles `tname' and
6827 `toknum', which were handled by...
6828 (output_rule_data): this.
6829 Remove, and move the remainder of its outputs into...
6830 (prepare_rules): this new routines, which also merges content from
6831 (output_gram): this.
6832 (prepare_rules): Be sure never to walk through RITEMS.
6833 (output_stos): Rename as...
6834 (prepare_stos): this.
6835 (output): Always invoke prepare_states, after all, just don't use it
6836 in the output if you don't need it.
6837
68382002-04-07 Akim Demaille <akim@epita.fr>
6839
6840 * src/LR0.c (new_state): Display `nstates' as the name of the
6841 newly created state.
6842 Adjust to initialize first_state and last_state if needed.
6843 Be sure to distinguish the initial from the final state.
6844 (new_states): Create the itemset of the initial state, and use
6845 new_state.
6846 * src/closure.c (closure): Now that the initial state has its
6847 items properly set, there is no need for a special case when
6848 creating `ruleset'.
6849
6850 As a result, now the rule 0, reducing to $axiom, is visible in the
6851 outputs. Adjust the test suite.
6852
6853 * tests/conflicts.at (Solved SR Conflicts)
6854 (Unresolved SR Conflicts): Adjust.
6855 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
6856 * tests/conflicts.at (S/R in initial): New.
6857
68582002-04-07 Akim Demaille <akim@epita.fr>
6859
6860 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
6861 the RHS of the rules.
6862 * src/output.c (output_gram): Likewise.
6863
68642002-04-07 Akim Demaille <akim@epita.fr>
6865
6866 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
6867 bucket.
6868 Adjust all dependencies.
6869 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
6870 `number' of the buckets too.
6871 * src/gram.h: Include `symtab.h'.
6872 (associativity): Move to...
6873 * src/symtab.h: here.
6874 No longer include `gram.h'.
6875
68762002-04-07 Akim Demaille <akim@epita.fr>
6877
6878 * src/gram.h, src/gram.c (rules_rhs_length): New.
6879 (ritem_longest_rhs): Use it.
6880 * src/gram.h (rule_t): `number' is a new member.
6881 * src/reader.c (packgram): Set it.
6882 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
6883 the end of `rules', and count them out of `nrules'.
6884 (reduce_output, dump_grammar): Adjust.
6885 * src/print.c (print_grammar): It is no longer needed to check for
6886 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
6887 * tests/reduce.at (Reduced Automaton): New test.
6888
68892002-04-07 Akim Demaille <akim@epita.fr>
6890
6891 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
6892 lacking `+ 1' to nrules, Bison reported as useless a token if it
6893 was used solely to set the precedence of the last rule...
6894
68952002-04-07 Akim Demaille <akim@epita.fr>
6896
6897 * data/bison.c++, data/bison.simple: Don't output the current file
6898 name in #line, to avoid useless diffs between two identical
6899 outputs under different names.
6900
69012002-04-07 Akim Demaille <akim@epita.fr>
6902
6903 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
6904 Normalize loops to using `< nrules + 1', not `<= nrules'.
6905
69062002-04-07 Akim Demaille <akim@epita.fr>
6907
6908 * TODO: Update.
6909
69102002-04-07 Akim Demaille <akim@epita.fr>
6911
6912 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
6913 bucket.value as bucket.number.
6914
69152002-04-07 Akim Demaille <akim@epita.fr>
6916
6917 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
6918 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
6919 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
6920 RHS, instead of being an index in RITEMS.
6921
69222002-04-04 Paul Eggert <eggert@twinsun.com>
6923
6924 * doc/bison.texinfo: Update copyright date.
6925 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
6926 (Symbols): Warn about running Bison in one character set,
6927 but compiling and/or running in an incompatible one.
6928 Warn about character code 256, too.
6929
69302002-04-03 Paul Eggert <eggert@twinsun.com>
6931
6932 * src/bison.data (YYSTACK_ALLOC): Depend on whether
6933 YYERROR_VERBOSE is nonzero, not whether it is defined.
6934
6935 Merge changes from bison-1_29-branch.
6936
69372002-03-20 Paul Eggert <eggert@twinsun.com>
6938
6939 Merge fixes from Debian bison_1.34-1.diff.
6940
6941 * configure.in (AC_PREREQ): 2.53.
6942
69432002-03-20 Akim Demaille <akim@epita.fr>
6944
6945 * src/conflicts.c (log_resolution): Argument `resolution' is const.
6946
69472002-03-19 Paul Eggert <eggert@twinsun.com>
6948
6949 * src/bison.simple (YYCOPY): New macro.
6950 (YYSTACK_RELOCATE): Use it.
6951 Remove Type arg; no longer needed. All callers changed.
6952 (yymemcpy): Remove; no longer needed.
6953
6954 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
6955 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
6956
69572002-03-19 Akim Demaille <akim@epita.fr>
6958
6959 Test and fix the #line outputs.
6960
6961 * tests/atlocal.at (GCC): New.
6962 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
6963 (Prologue synch line, ,%union synch line, Postprologue synch line)
6964 (Action synch line, Epilogue synch line): New tests.
6965 * src/reader.c (parse_union_decl): Define the muscle stype_line.
6966 * data/bison.simple, data/bison.c++: Use it.
6967
69682002-03-19 Akim Demaille <akim@epita.fr>
6969
6970 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
6971 (Solved SR Conflicts, %expect not enough, %expect right)
6972 (%expect too much): Move to...
6973 * tests/conflicts.at: this new file.
6974
69752002-03-19 Akim Demaille <akim@epita.fr>
6976
6977 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
6978 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
6979 that we can move to enums for instance.
6980 * src/output.c (token_definitions_output): Output a list of
6981 `token-name, token-number' instead of the #define.
6982 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
6983
69842002-03-14 Akim Demaille <akim@epita.fr>
6985
6986 Use Gettext 0.11.1.
6987
69882002-03-09 Robert Anisko <robert@lrde.epita.fr>
6989
6990 * data/bison.c++: Make the user able to add members to the generated
6991 parser by subclassing.
6992
69932002-03-05 Robert Anisko <robert@lrde.epita.fr>
6994
6995 * src/reader.c (read_additionnal_code): `c' should be an integer, not
6996 a character.
6997 Reported by Nicolas Tisserand and Nicolas Burrus.
6998
69992002-03-04 Robert Anisko <robert@lrde.epita.fr>
7000
7001 * src/reader.c: Warn about lacking semi-colons, do not complain.
7002
70032002-03-04 Robert Anisko <robert@lrde.epita.fr>
7004
7005 * data/bison.c++: Remove a debug line.
7006
70072002-03-04 Robert Anisko <robert@lrde.epita.fr>
7008
7009 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
7010 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
7011 provide a default implementation.
7012
70132002-03-04 Akim Demaille <akim@epita.fr>
7014
7015 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
7016 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
7017 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
7018 * tests/semantic.at (Parsing Guards): Similarly.
7019 * src/reader.at (readgram): Complain if the last rule is not ended
7020 with a semi-colon.
7021
70222002-03-04 Akim Demaille <akim@epita.fr>
7023
7024 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
7025 * src/closure.c: here.
7026 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
7027 RTC.
7028 * src/warshall.h, src/warshall.c: Remove.
7029 * tests/sets.at (Broken Closure): Adjust.
7030
70312002-03-04 Akim Demaille <akim@epita.fr>
7032
7033 * src/output.c (output_skeleton): tempdir is const.
7034 bytes_read is unused.
7035
70362002-03-04 Akim Demaille <akim@epita.fr>
7037
7038 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
7039 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
7040 Update.
7041 From Michael Hayes.
7042
70432002-03-04 Akim Demaille <akim@epita.fr>
7044
7045 * src/closure.c (closure): `r' is unused.
7046
70472002-03-04 Akim Demaille <akim@epita.fr>
7048
7049 * tests/sets.at (Broken Closure): Add the ending `;'.
7050 * src/reader.at (readgram): Complain if a rule is not ended with a
7051 semi-colon.
7052
70532002-03-04 Akim Demaille <akim@epita.fr>
7054
7055 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
7056 (count_sr_conflicts): Use bitset_count.
7057 * src/reduce.c (inaccessable_symbols): Ditto.
7058 (bits_size): Remove.
7059 * src/warshall.h, src/warshall.c: Convert to bitsetv.
7060
70612002-03-04 Akim Demaille <akim@epita.fr>
7062
7063 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
7064 * src/reduce.c: Remove the `bitset_zero's following the
7065 `bitset_create's, as now it is performed by the latter.
7066
70672002-03-04 Akim Demaille <akim@epita.fr>
7068
7069 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
7070 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
7071 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
7072 latest sources from Michael.
7073
70742002-03-04 Akim Demaille <akim@epita.fr>
7075
7076 * src/output.c (output): Don't free the grammar.
7077 * src/reader.c (grammar_free): New.
7078 * src/main.c (main): Call it and don't free symtab here.
7079
70802002-03-04 Akim Demaille <akim@epita.fr>
7081
7082 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
7083 before returning.
7084 Reported by Benoit Perrot.
7085
70862002-03-04 Akim Demaille <akim@epita.fr>
7087
7088 Use bitset operations when possible, not loops over bits.
7089
7090 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
7091 bitset_or.
7092 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
7093 * src/reduce.c (useless_nonterminals): Formatting changes.
7094 * src/warshall.c (TC): Use bitset_or.
7095
70962002-03-04 Akim Demaille <akim@epita.fr>
7097
7098 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
7099 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
7100 Ditto.
7101
71022002-03-04 Akim Demaille <akim@epita.fr>
7103
7104 * src/lalr.c (F): Now a bitset*.
7105 Adjust all dependencies.
7106
71072002-03-04 Akim Demaille <akim@epita.fr>
7108
7109 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
7110 Adjust all dependencies.
7111
71122002-03-04 Akim Demaille <akim@epita.fr>
7113
7114 * src/L0.c, src/LR0.h (nstates): Be size_t.
7115 Adjust comparisons (signed vs unsigned).
7116 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
7117 bitset*.
7118 Adjust all dependencies.
7119
71202002-03-04 Akim Demaille <akim@epita.fr>
7121
7122 * src/closure.c (firsts): Now, also a bitset.
7123 Adjust all dependencies.
7124 (varsetsize): Remove, now unused.
7125 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
7126
71272002-03-04 Akim Demaille <akim@epita.fr>
7128
7129 * src/print.c: Convert to use bitset.h, not hand coded iterations
7130 over ints.
7131
71322002-03-04 Akim Demaille <akim@epita.fr>
7133
7134 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
7135
71362002-03-04 Akim Demaille <akim@epita.fr>
7137
7138 * src/closure.c (ruleset): Be a bitset.
7139 (rulesetsize): Remove.
7140
71412002-03-04 Akim Demaille <akim@epita.fr>
7142
7143 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
7144 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
7145 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
7146 * src/closure.c (fderives): Be an array of bitsets.
7147
71482002-02-28 Robert Anisko <robert@lrde.epita.fr>
7149
7150 * data/bison.c++: Merge the two generated headers. Insert a copyright
7151 notice in each output file.
7152
71532002-02-28 Akim Demaille <akim@epita.fr>
7154
7155 * data/bison.c++: Copy the prologue of bison.simple to fetch
7156 useful M4 definitions, such as b4_header_guard.
7157
71582002-02-25 Akim Demaille <akim@epita.fr>
7159
7160 * src/getargs.c (version): Give the name of the authors, and use a
7161 translator friendly scheme for the bgr
7162 copyright notice.
7163
71642002-02-25 Akim Demaille <akim@epita.fr>
7165
7166 * src/output.c (header_output): Remove, now handled completely via
7167 M4.
7168
71692002-02-25 Akim Demaille <akim@epita.fr>
7170
7171 * m4/m4.m4: New, from CVS Autoconf.
7172 * configure.in: Invoke it.
7173 * src/output.c (output_skeleton): Use its result instead of the
7174 hard coded name.
7175
71762002-02-25 Akim Demaille <akim@epita.fr>
7177
7178 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
7179 Fileutils 4.1.5.
7180 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
7181 * src/output.c (output_skeleton): Use mkstemp to create a real
7182 temporary file.
7183 Move the filling of `skeleton' and its muscle to...
7184 (prepare): here.
7185 (output): Move the definition of the prologue muscle to...
7186 (prepare): here.
7187 * src/system.h (DEFAULT_TMPDIR): New.
7188
71892002-02-14 Paul Eggert <eggert@twinsun.com>
7190
7191 Remove the support for C++ namespace cleanliness; it was
7192 causing more problems than it was curing, since it didn't work
7193 properly on some nonstandard C++ compilers. This can wait
7194 for a proper C++ parser.
7195
7196 * NEWS: Document this.
7197 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
7198 of C++, as it's treated like C now.
7199 * src/bison.simple (YYSTD): Remove.
7200 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
7201 Treat C++ just like Standard C instead of trying to support
7202 namespace cleanliness.
7203
72042002-02-14 Akim Demaille <akim@epita.fr>
7205
7206 * tests/regression.at (else): Adjust to Andreas' change.
7207
72082002-02-14 Akim Demaille <akim@epita.fr>
7209
7210 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
7211
72122002-02-13 Andreas Schwab <schwab@suse.de>
7213
7214 * src/output.c (output_rule_data): Don't output NULL, it might
7215 not be defined yet.
7216
72172002-02-11 Robert Anisko <robert@lrde.epita.fr>
7218
7219 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
7220 (Copyright notice): Update.
7221
72222002-02-11 Akim Demaille <akim@epita.fr>
7223
7224 * tests/regression.at (%nonassoc and eof): Don't include
7225 nonportable headers.
7226
72272002-02-08 Robert Anisko <robert@lrde.epita.fr>
7228
7229 * data/bison.c++: Correct error recovery. Make the user able to
7230 initialize the starting location.
7231
72322002-02-07 Akim Demaille <akim@epita.fr>
7233
7234 * tests/input.at: New.
7235
72362002-02-07 Robert Anisko <robert@lrde.epita.fr>
7237
7238 * data/bison.c++: Replace some direct m4 expansions by constants. Be
7239 more consistent when naming methods and variables. Put preprocessor
7240 directives around tables only needed for debugging.
7241
72422002-02-07 Robert Anisko <robert@lrde.epita.fr>
7243
7244 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
7245 C++ parsers.
7246 (yy::b4_name::parse): Use print_.
7247
72482002-02-07 Robert Anisko <robert@lrde.epita.fr>
7249
7250 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
7251
72522002-02-07 Robert Anisko <robert@lrde.epita.fr>
7253
7254 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
7255 C++ parsers.
7256 (yy::b4_name::parse): Build verbose error messages, and use error_.
7257
72582002-02-06 Robert Anisko <robert@lrde.epita.fr>
7259
7260 * data/bison.c++: Fix m4 quoting in comments.
7261
72622002-02-06 Robert Anisko <robert@lrde.epita.fr>
7263
7264 * data/bison.c++: Adjust the parser code. Fix some muscles that were
7265 not expanded by m4.
7266
72672002-02-05 Akim Demaille <akim@epita.fr>
7268
7269 * data/bison.c++: Adjust to the M4 back end.
7270 More is certainly needed.
7271
72722002-02-05 Akim Demaille <akim@epita.fr>
7273
7274 Give a try to M4 as a back end.
7275
7276 * lib/readpipe.c: New, from wdiff.
7277 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
7278 BISON_HAIRY.
7279 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
7280 specific values. Now it is m4 that performs the lookup.
7281 * src/parse-skel.y: Remove.
7282 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
7283 * src/output.c (actions_output, guards_output)
7284 (token_definitions_output): No longer keeps track of the output
7285 line number, hence remove the second argument.
7286 (guards_output): Check against the guard member of a rule, not the
7287 action member.
7288 Adjust callers.
7289 (output_skeleton): Don't look for the skeleton location, let m4 do
7290 that.
7291 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
7292 file will be used.
7293 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
7294 (prepare): Given that for the time being changesyntax is not
7295 usable in M4, rename the muscles using `-' to `_'.
7296 Define `defines_flag', `output_parser_name' and `output_header_name'.
7297 * src/output.h (actions_output, guards_output)
7298 (token_definitions_output): Adjust prototypes.
7299 * src/scan-skel.l: Instead of scanning the skeletons, it now
7300 processes the output of m4: `__oline__' and `#output'.
7301 * data/bison.simple: Adjust to be used by M4(sugar).
7302 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
7303 to date.
7304 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
7305 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
7306 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
7307 shamelessly stolen from CVS Autoconf.
7308
73092002-02-05 Akim Demaille <akim@epita.fr>
7310
7311 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
7312 * configure.in: Check for the declarations of free and malloc.
7313 * src/muscle_tab.c: Adjust.
7314
73152002-02-05 Akim Demaille <akim@epita.fr>
7316
7317 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
7318 which have no values.
7319
73202002-02-05 Akim Demaille <akim@epita.fr>
7321
7322 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
7323 * data/: here.
7324
73252002-01-29 Paul Eggert <eggert@twinsun.com>
7326
7327 * src/bison.simple (YYSIZE_T): Do not define merely because
7328 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
7329 On some platforms, <alloca.h> does not declare YYSTD (size_t).
7330
73312002-01-27 Akim Demaille <akim@epita.fr>
7332
7333 Fix `%nonassoc and eof'.
7334
7335 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
7336 which were not properly copied! Replace
7337 memcpy (res->errs, src->errs, src->nerrs);
7338 with
7339 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
7340 !!!
7341 * tests/regression.at (%nonassoc and eof): Adjust to newest
7342 Autotest: `.' is not in the PATH.
7343
73442002-01-27 Akim Demaille <akim@epita.fr>
7345
7346 * tests/sets.at (AT_EXTRACT_SETS): New.
7347 (Nullable): Use it.
7348 (Firsts): New.
7349
73502002-01-26 Akim Demaille <akim@epita.fr>
7351
7352 * tests/actions.at, tests/calc.at, tests/headers.at,
7353 * tests/torture.at: Adjust to the newest Autotest which no longer
7354 forces `.' in the PATH.
7355
73562002-01-25 Akim Demaille <akim@epita.fr>
7357
7358 * tests/regression.at (%nonassoc and eof): New.
7359 Suggested by Robert Anisko.
7360
73612002-01-24 Akim Demaille <akim@epita.fr>
7362
7363 Bison dumps core when trying to complain about broken input files.
7364 Reported by Cris van Pelt.
7365
7366 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
7367 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
7368 into...
7369 (Invalid inputs): Strengthen: exercise parse_percent_token.
7370
73712002-01-24 Robert Anisko <robert.anisko@epita.fr>
7372
7373 * src/Makefile.am: Add bison.c++.
7374 * src/bison.c++: New skeleton.
7375
73762002-01-21 Paolo Bonzini <bonzini@gnu.org>
7377
7378 * po/it.po: New.
7379
73802002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
7381
7382 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
7383
73842002-01-20 Marc Autret <marc@gnu.org>
7385
7386 * src/files.c (compute_output_file_names): Fix
7387
73882002-01-20 Marc Autret <marc@gnu.org>
7389
7390 * tests/output.at: New test.
7391 * src/files.c (compute_base_names): Don't map extensions when
7392 the YACC flag is set, use defaults.
7393 Reported by Evgeny Stambulchik.
7394
73952002-01-20 Marc Autret <marc@gnu.org>
7396
7397 * src/system.h: Need to define __attribute__ away for non-GCC
7398 compilers as well (i.e. the vendor C compiler).
7399 Suggested by Albert Chin-A-Young.
7400
74012002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
7402
7403 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
7404 canonical definition.
7405 * src/system.h: Use the canonical definition for PARAMS (avoids
7406 a conflict with the macro from lib/hash.h).
7407
74082002-01-11 Akim Demaille <akim@epita.fr>
7409
7410 * configure.in: Use AC_FUNC_STRNLEN.
7411 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
7412
74132002-01-09 Akim Demaille <akim@epita.fr>
7414
7415 * src/files.c, src/files.h (output_infix): New.
7416 (tab_extension): Remove.
7417 (compute_base_names): Compute the former, drop the latter.
7418 * src/output.c (prepare): Insert the muscles `output-infix', and
7419 `output-suffix'.
7420 * src/parse-skel.y (string, string.1): New.
7421 (section.header): Use it.
7422 (section.yacc): Remove.
7423 (prefix): Remove too.
7424 * src/scan-skel.l: Adjust.
7425 * src/bison.simple, src/bison.hairy: Adjust.
7426
74272002-01-09 Akim Demaille <akim@epita.fr>
7428
7429 * configure.in (WERROR_CFLAGS): Compute it.
7430 * src/Makefile.am (CFLAGS): Pass it.
7431 * tests/atlocal.in (CFLAGS): Idem.
7432 * src/files.c: Fix a few warnings.
7433 (get_extension_index): Remove, unused.
7434
74352002-01-08 Akim Demaille <akim@epita.fr>
7436
7437 * src/getargs.c (AS_FILE_NAME): New.
7438 (getargs): Use it to convert DOSish file names.
7439 * src/files.c (base_name): Rename as full_base_name to avoid
7440 clashes with `base_name ()'.
7441 (filename_split): New.
7442 (compute_base_names): N-th rewrite, using filename_split.
7443
74442002-01-08 Akim Demaille <akim@epita.fr>
7445
7446 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
7447 New, stolen from the Fileutils 4.1.
7448 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
7449 * configure.in: Check for the presence of memrchr, and of its
7450 prototype.
7451
74522002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
7453
7454 * lib/hash.h (__P): Added definition for this macro.
7455 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
7456 BUILT_SOURCES, to ensure they are generated first.
7457 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
7458 %error-verbose to allow bootstrapping with bison 1.30x.
7459
74602002-01-06 Akim Demaille <akim@epita.fr>
7461
7462 * src/reader.c (parse_braces): Don't fetch the next char, the
7463 convention is to fetch on entry.
7464 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
7465 'switch' without a following semicolon.
7466 * tests/regression.at (braces parsing): New.
7467
74682002-01-06 Akim Demaille <akim@epita.fr>
7469
7470 Bison is dead wrong in its RR conflict reports.
7471
7472 * tests/torture.at (GNU Cim Grammar): New.
7473 * src/conflicts.c (count_rr_conflicts): Fix.
7474
74752002-01-06 Akim Demaille <akim@epita.fr>
7476
7477 Creating package.m4 from configure.ac causes too many problems.
7478
7479 * tests/Makefile.am (package.m4): Create it by hand,
7480 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
7481
74822002-01-06 Akim Demaille <akim@epita.fr>
7483
7484 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
7485 skeleton.h.
7486
74872002-01-04 Paul Eggert <eggert@twinsun.com>
7488
7489 * doc/bison.texinfo (Debugging):
7490 Remove YYSTDERR; it's no longer defined or used.
7491 Also, s/cstdio.h/cstdio/.
7492
74932002-01-03 Akim Demaille <akim@epita.fr>
7494
7495 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
7496
74972002-01-03 Akim Demaille <akim@epita.fr>
7498
7499 * src/parse-skel.y (process_skeleton): Don't bind the parser's
7500 tracing code to --trace, wait for a better --trace option, with
7501 args.
7502
75032002-01-03 Akim Demaille <akim@epita.fr>
7504
7505 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
7506 The ISO C++ standard is extremely clear about it: stderr is
7507 considered a macro, not a regular symbol (see table 94 `Header
7508 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
7509 Therefore std:: does not apply to it. It still does with fprintf.
7510 Also, s/cstdio.h/cstdio/.
7511
75122002-01-03 Akim Demaille <akim@epita.fr>
7513
7514 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
7515 for non system headers.
7516
75172002-01-02 Akim Demaille <akim@epita.fr>
7518
7519 Equip the skeleton chain with location tracking, runtime trace,
7520 pure parser and scanner.
7521
7522 * src/parse-skel.y: Request a pure parser, locations, and prefix
7523 renaming.
7524 (%union): Having several members with the same type does not help
7525 type mismatches, simplify.
7526 (YYPRINT, yyprint): New.
7527 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
7528 (skel_error): this.
7529 Handle locations.
7530 * src/scan-skel.l: Adjust to these changes.
7531 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
7532 (LOCATION_PRINT, skel_control_t): New.
7533
75342001-12-30 Akim Demaille <akim@epita.fr>
7535
7536 * src/parse-skel.y: Get rid of the shift/reduce conflict:
7537 replace `gb' with BLANKS.
7538 * src/scan-skel.l: Adjust.
7539
75402001-12-30 Akim Demaille <akim@epita.fr>
7541
7542 * src/system.h: We don't need nor want bcopy.
7543 Throw away MS-DOS crap: we don't need getpid.
7544 * configure.in: We don't need strndup. It was even causing
7545 problems: because Flex includes the headers *before* us,
7546 _GNU_SOURCE is not defined by config.h, and therefore strndup was
7547 not visible.
7548 * lib/xstrndup.c: New.
7549 * src/scan-skel.l: Use it.
7550 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
7551 * src/parse-skel.y: Use %directives instead of #defines.
7552
75532001-12-30 Akim Demaille <akim@epita.fr>
7554
7555 * src/skeleton.h: New.
7556 * src/output.c (output_parser, output_master_parser): Remove, dead
7557 code.
7558 * src/output.h (get_lines_number, actions_output, guards_output)
7559 (token_definitions_output): Prototype them.
7560 * src/parse-skel.y: Add the license notice.
7561 Include output.h and skeleton.h.
7562 (process_skeleton): Returns void, and takes a single parameter.
7563 * src/scan-skel.l: Add the license notice.
7564 Include skeleton.h.
7565 Don't use %option yylineno: it seems that then Flex imagines
7566 REJECT has been used, and therefore it won't reallocate its
7567 buffers (which makes no other sense to me than a bug). It results
7568 in warnings for `unused: yy_flex_realloc'.
7569
75702001-12-30 Robert Anisko <robert.anisko@epita.fr>
7571
7572 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7573 (MUSCLE_INSERT_PREFIX): ...to there.
7574 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
7575 (MUSCLE_INSERT_PREFIX): Move from here...
7576
7577 * src/bison.hairy: Add a section directive. Put braces around muscle
7578 names. This parser skeleton is still broken, but Bison should not
7579 choke on a bad muscle 'syntax'.
7580 * src/bison.simple: Add a section directive. Put braces around muscle
7581 names.
7582
7583 * src/files.h (strsuffix, stringappend): Add declarations.
7584 (tab_extension): Add declaration.
7585 (short_base_name): Add declaration.
7586
7587 * src/files.c (strsuffix, stringappend): No longer static. These
7588 functions are used in the skeleton parser.
7589 (tab_extension): New.
7590 (compute_base_names): Use the computations done in this function
7591 to guess if the generated parsers should have '.tab' in their
7592 names.
7593 (short_base_name): No longer static.
7594
7595 * src/output.c (output_skeleton): New.
7596 (output): Disable call to output_master_parser, and give a try to
7597 a new skeleton handling system.
7598 (guards_output, actions_output): No longer static.
7599 (token_definitions_output, get_lines_number): No longer static.
7600
7601 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
7602
7603 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
7604 parse-skel.y.
7605
7606 * src/parse-skel.y: New file.
7607 * src/scan-skel.l: New file.
7608
76092001-12-29 Akim Demaille <akim@epita.fr>
7610
7611 %name-prefix is broken.
7612
7613 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
7614 Adjust all dependencies.
7615 * tests/headers.at (export YYLTYPE): Strengthen this test: use
7616 %name-prefix.
7617
7618 Renaming yylval but not yylloc is not consistent. Now we do.
7619
7620 * src/bison.simple: Prefix yylloc if used.
7621 * doc/bison.texinfo (Decl Summary): Document that.
7622
76232001-12-29 Akim Demaille <akim@epita.fr>
7624
7625 * doc/bison.texinfo: Promote `%long-directive' over
7626 `%long_directive'.
7627 Remove all references to fixed-output-files, yacc is enough.
7628
76292001-12-29 Akim Demaille <akim@epita.fr>
7630
7631 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
7632 user prologue. These are defaults.
7633 * tests/actions.at (Mid-rule actions): Make sure the user can
7634 define YYDEBUG and YYERROR_VERBOSE.
7635
76362001-12-29 Akim Demaille <akim@epita.fr>
7637
7638 * src/output.c (header_output): Don't forget to export YYLTYPE and
7639 yylloc.
7640 * tests/headers.at (export YYLTYPE): New, make sure it does.
7641 * tests/regression.at (%union and --defines, Invalid CPP headers):
7642 Move to...
7643 * tests/headers.at: here.
7644
76452001-12-29 Akim Demaille <akim@epita.fr>
7646
7647 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
7648
76492001-12-29 Akim Demaille <akim@epita.fr>
7650
7651 * tests/actions.at (Mid-rule actions): Output on a single line
7652 instead of several.
7653
76542001-12-29 Akim Demaille <akim@epita.fr>
7655
7656 * doc/bison.texinfo: Formatting changes.
7657
76582001-12-29 Akim Demaille <akim@epita.fr>
7659
7660 Don't store the token defs in a muscle, just be ready to output it
7661 on command. Now possible via `symbols'. Fixes a memory leak.
7662
7663 * src/output.c (token_definitions_output): New.
7664 (output_parser, header_output): Use it.
7665 * src/reader.c (symbols_save): Remove.
7666
76672001-12-29 Akim Demaille <akim@epita.fr>
7668
7669 * src/bison.simple: Do not provide a default for YYSTYPE and
7670 YYLTYPE before the user's prologue. Otherwise it's hardly... a
7671 default.
7672
76732001-12-29 Akim Demaille <akim@epita.fr>
7674
7675 Mid-rule actions are simply... ignored!
7676
7677 * src/reader.c (readgram): Be sure to attach mid-rule actions to
7678 the empty-rule associated to the dummy symbol, not to the host
7679 rule.
7680 * tests/actions.at (Mid-rule actions): New.
7681
76822001-12-29 Akim Demaille <akim@epita.fr>
7683
7684 Memory leak.
7685
7686 * src/reader.c (reader): Free grammar.
7687
76882001-12-29 Akim Demaille <akim@epita.fr>
7689
7690 Memory leak.
7691
7692 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
7693 since it allocates it for each state, although only one is needed.
7694 (allocate_storage): Do it here.
7695
76962001-12-29 Akim Demaille <akim@epita.fr>
7697
7698 * src/options.h, src/options.c (create_long_option_table): Rename
7699 as...
7700 (long_option_table_new): this, with a clearer prototype.
7701 (percent_table): Remove, unused,
7702 * src/getargs.c (getargs): Adjust.
7703
77042001-12-29 Akim Demaille <akim@epita.fr>
7705
7706 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
7707 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
7708 as states.
7709
77102001-12-29 Akim Demaille <akim@epita.fr>
7711
7712 * src/lalr.c (build_relations): Rename `states' as `states1'.
7713 Sorry, I don't understand exactly what it is, no better name...
7714
77152001-12-29 Akim Demaille <akim@epita.fr>
7716
7717 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
7718 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
7719 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
7720 as rules.
7721
77222001-12-29 Akim Demaille <akim@epita.fr>
7723
7724 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
7725 ago.
7726
77272001-12-29 Akim Demaille <akim@epita.fr>
7728
7729 * src/reader.c, src/reader.h (user_toknums): Remove.
7730 Adjust all users to use symbols[i]->user_token_number.
7731
77322001-12-29 Akim Demaille <akim@epita.fr>
7733
7734 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
7735 Adjust all users to use symbols[i]->prec or ->assoc.
7736
77372001-12-29 Akim Demaille <akim@epita.fr>
7738
7739 * src/reader.c, src/reader.h (tags): Remove.
7740 Adjust all users to use symbols[i]->tag.
7741
77422001-12-29 Akim Demaille <akim@epita.fr>
7743
7744 * src/gram.h, src/gram.c (symbols): New, similar to state_table
7745 and rule_table.
7746 * src/reader.c (packsymbols): Fill this table.
7747 Drop sprec.
7748 * src/conflicts.c (resolve_sr_conflict): Adjust.
7749 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
7750 single table.
7751 Use symbols[i]->tag instead of tags[i].
7752
77532001-12-29 Akim Demaille <akim@epita.fr>
7754
7755 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
7756 In addition, put a comment in there, to replace...
7757 * tests/regression.at (%union and C comments): Remove.
7758
77592001-12-29 Akim Demaille <akim@epita.fr>
7760
7761 * tests/regression.at (Web2c Actions): Blindly move the actual
7762 output as expected output. The contents *seem* right to me, but I
7763 can't pretend reading perfectly parser tables... Nonetheless, all
7764 the other tests pass correctly, the table look OK, even though the
7765 presence of `$axiom' is to be noted: AFAICS it is useless (but
7766 harmless).
7767
77682001-12-29 Akim Demaille <akim@epita.fr>
7769
7770 * src/reader.c (readgram): Don't add the rule 0 if there were no
7771 rules read. In other words, add it _after_ having performed
7772 grammar sanity checks.
7773 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
7774
77752001-12-29 Akim Demaille <akim@epita.fr>
7776
7777 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
7778 visible, and some states have now a different number.
7779
77802001-12-29 Akim Demaille <akim@epita.fr>
7781
7782 * src/reader.c (readgram): Bind the initial rule's lineno to that
7783 of the first rule.
7784 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
7785 (Solved SR Conflicts): Adjust rule 0's line number.
7786
77872001-12-29 Akim Demaille <akim@epita.fr>
7788
7789 Fix the `GAWK Grammar' failure.
7790
7791 * src/LR0.c (final_state): Initialize to -1 so that we do compute
7792 the reductions of the first state which was mistakenly confused
7793 with the final state because precisely final_state was initialized
7794 to 0.
7795 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
7796 now noticed by Bison.
7797 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
7798 have a reduction on $default.
7799
78002001-12-29 Akim Demaille <akim@epita.fr>
7801
7802 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
7803 rule line numbers.
7804 * src/closure.c (print_closure): Likewise.
7805 * src/derives.c (print_derives): Likewise.
7806 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
7807 now.
7808
78092001-12-29 Akim Demaille <akim@epita.fr>
7810
7811 * src/lalr.c (lookaheads_print): New.
7812 (lalr): Call it when --trace-flag.
7813 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
7814 are dumped.
7815
78162001-12-29 Akim Demaille <akim@epita.fr>
7817
7818 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
7819 when walking through ritem, even via rule->rhs.
7820 * src/reduce.c (dump_grammar, useful_production, reduce_output)
7821 (useful_production, useless_nonterminals): Likewise.
7822 (reduce_grammar_tables): Likewise, plus update nritems.
7823 * src/nullable.c (set_nullable): Likewise.
7824 * src/lalr.c (build_relations): Likewise.
7825 * tests/sets.at (Nullable): Adjust.
7826 Fortunately, now, the $axiom is no longer nullable.
7827
78282001-12-29 Akim Demaille <akim@epita.fr>
7829
7830 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
7831 the 0-sentinel.
7832 * src/gram.c (ritem_longest_rhs): Likewise.
7833 * src/reduce.c (nonterminals_reduce): Likewise.
7834 * src/print_graph.c (print_graph): Likewise.
7835 * src/output.c (output_rule_data): Likewise.
7836 * src/nullable.c (set_nullable): Likewise.
7837
78382001-12-29 Akim Demaille <akim@epita.fr>
7839
7840 * src/output.c: Comment changes.
7841
78422001-12-27 Paul Eggert <eggert@twinsun.com>
7843
7844 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
7845 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
7846 Sparc, as they were causing more porting problems than the
7847 (minor) performance improvement was worth.
7848
7849 Also, catch up with 1.31's YYSTD.
7850
78512001-12-27 Akim Demaille <akim@epita.fr>
7852
7853 * src/output.c (output_gram): Rely on nritems, not the
7854 0-sentinel. See below.
7855 Use -1 as separator, not 0.
7856 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
7857 Rely on -1 as separator in yyrhs, instead of 0.
7858 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
7859 twice `Now at end of input', therefore there are two lines less to
7860 expect.
7861
78622001-12-27 Akim Demaille <akim@epita.fr>
7863
7864 * tests/regression.at (Unresolved SR Conflicts):
7865 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
7866 below.
7867
78682001-12-27 Akim Demaille <akim@epita.fr>
7869
7870 * src/LR0.c (new_state): Recognize the final state by the fact it
7871 is reached by eoftoken.
7872 (insert_start_shifting_state, insert_eof_shifting_state)
7873 (insert_accepting_state, augment_automaton): Remove, since now
7874 these states are automatically computed from the initial state.
7875 (generate_states): Adjust.
7876 * src/print.c: When reporting a rule number to the user, substract
7877 1, so that the axiom rule is rule 0, and the first user rule is 1.
7878 * src/reduce.c: Likewise.
7879 * src/print_graph.c (print_core): For the time being, just as for
7880 the report, depend upon --trace-flags to dump the full set of
7881 items.
7882 * src/reader.c (readgram): Once the grammar read, insert the rule
7883 0: `$axiom: START-SYMBOL $'.
7884 * tests/set.at: Adjust: rule 0 is now displayed, and since the
7885 number of the states has changed (the final state is no longer
7886 necessarily the last), catch up.
7887
78882001-12-27 Akim Demaille <akim@epita.fr>
7889
7890 Try to make the use of the eoftoken valid. Given that its value
7891 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
7892 is used instead of > 0 where appropriate, (ii), depend upon nritems
7893 instead of the 0-sentinel.
7894
7895 * src/gram.h, src/gram.c (nritems): New.
7896 Expected to be duplication of nitems, but for the time being...
7897 * src/reader.c (packgram): Assert nritems and nitems are equal.
7898 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
7899 * src/closure.c (print_closure, print_fderives): Likewise.
7900 * src/gram.c (ritem_print): Likewise.
7901 * src/print.c (print_core, print_grammar): Likewise.
7902 * src/print_graph.c: Likewise.
7903
79042001-12-27 Akim Demaille <akim@epita.fr>
7905
7906 * src/main.c (main): If there are complains after grammar
7907 reductions, then output the report anyway if requested, then die.
7908 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
7909 * src/reader.c (eoftoken): New.
7910 (parse_token_decl): If the token being defined has value `0', it
7911 is the eoftoken.
7912 (packsymbols): No longer hack `tags' to insert `$' by hand.
7913 Be sure to preserve the value of the eoftoken.
7914 (reader): Make sure eoftoken is defined.
7915 Initialize nsyms to 0: now eoftoken is created just like the others.
7916 * src/print.c (print_grammar): Don't special case the eof token.
7917 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
7918 lie anyway, albeit pleasant.
7919 * tests/calc.at: Exercise error messages with eoftoken.
7920 Change the grammar so that empty input is invalid.
7921 Adjust expectations.
7922 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
7923
79242001-12-27 Akim Demaille <akim@epita.fr>
7925
7926 * configure.in: Check the protos of strchr ans strspn.
7927 Replace strchr if needed.
7928 * src/system.h: Provide the protos of strchr, strspn and memchr if
7929 missing.
7930 * lib/strchr.c: New.
7931 * src/reader.c (symbols_save): Use strchr.
7932
79332001-12-27 Akim Demaille <akim@epita.fr>
7934
7935 * src/print.c, src/print_graph.c (escape): New.
7936 Use it to quote the TAGS outputs.
7937 * src/print_graph.c (print_state): Now errors are in red, and
7938 reductions in green.
7939 Prefer high to wide: output the state number on a line of its own.
7940
79412001-12-27 Akim Demaille <akim@epita.fr>
7942
7943 * src/state.h, src/state.c (reductions_new): New.
7944 * src/LR0.c (set_state_table): Let all the states have a
7945 `reductions', even if reduced to 0.
7946 (save_reductions): Adjust.
7947 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
7948 * src/print.c (print_reductions, print_actions): Adjust.
7949 * src/output.c (action_row): Adjust.
7950
79512001-12-27 Akim Demaille <akim@epita.fr>
7952
7953 * src/state.h, src/state.c (errs_new, errs_dup): New.
7954 * src/LR0.c (set_state_table): Let all the states have an errs,
7955 even if reduced to 0.
7956 * src/print.c (print_errs, print_reductions): Adjust.
7957 * src/output.c (output_actions, action_row): Adjust.
7958 * src/conflicts.c (resolve_sr_conflict): Adjust.
7959
79602001-12-27 Akim Demaille <akim@epita.fr>
7961
7962 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
7963
79642001-12-27 Akim Demaille <akim@epita.fr>
7965
7966 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
7967 * src/print.c: here.
7968 (lookaheadset, shiftset): New, used as additional storage by
7969 print_reductions.
7970 (print_results): Adjust.
7971 (print_shifts, print_gotos, print_errs): New, extracted from...
7972 (print_actions): here.
7973 * src/print_graph.c (print_actions): Remove dead code.
7974
79752001-12-27 Akim Demaille <akim@epita.fr>
7976
7977 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
7978 `$n' and `@n'.
7979
79802001-12-27 Akim Demaille <akim@epita.fr>
7981
7982 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
7983 (build_relations): Adjust.
7984
79852001-12-27 Akim Demaille <akim@epita.fr>
7986
7987 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
7988 duplication.
7989
79902001-12-27 Akim Demaille <akim@epita.fr>
7991
7992 * src/reader.c (packgram): Catch nitems overflows.
7993
79942001-12-27 Akim Demaille <akim@epita.fr>
7995
7996 * src/files.c, src/files.h (guard_obstack): Remove.
7997 * src/output.c (output): Adjust.
7998 * src/reader.c (parse_braces): New, factoring...
7999 (copy_action, copy_guard): these two which are renamed as...
8000 (parse_action, parse_guard): these.
8001 As a voluntary consequence, using braces around guards is now
8002 mandatory.
8003
80042001-12-27 Akim Demaille <akim@epita.fr>
8005
8006 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
8007 * src/reader.c (symbol_list): `guard' and `guard_line' are new
8008 members.
8009 (symbol_list_new): Adjust.
8010 (copy_action): action_line is the first line, not the last.
8011 (copy_guard): Just as for actions, store the `action' only, not
8012 the switch/case/break flesh.
8013 Don't parse the user action that might follow the guard, let...
8014 (readgram): do it, i.e., now, there can be an action after a
8015 guard.
8016 In other words the guard is just explicitly optional.
8017 (packgram): Adjust.
8018 * src/output.c (guards_output): New.
8019 (output_parser): Call it when needed.
8020 (output): Also free the guard and attrs obstacks.
8021 * src/files.c, src/files.h (obstack_save): Remove.
8022 (output_files): Remove.
8023 As a result, if one needs the former `.act' file, using an
8024 appropriate skeleton which requires actions and guards is now
8025 required.
8026 * src/main.c (main): Adjust.
8027 * tests/semantic.at: New.
8028 * tests/regression.at: Use `input.y' as input file name.
8029 Avoid 8+3 problems by requiring input.c when the test needs the
8030 parser.
8031
80322001-12-27 Akim Demaille <akim@epita.fr>
8033
8034 * src/reader.c (symbol_list_new): Be sure to initialize all the
8035 fields.
8036
80372001-12-27 Akim Demaille <akim@epita.fr>
8038
8039 All the hacks using a final pseudo state are now useless.
8040
8041 * src/LR0.c (set_state_table): state_table holds exactly nstates.
8042 * src/lalr.c (nLA): New.
8043 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
8044 instead of lookaheadsp from the pseudo state (nstate + 1).
8045
80462001-12-27 Akim Demaille <akim@epita.fr>
8047
8048 * src/output.c (action_row, token_actions): Use a state_t instead
8049 of a integer, and nlookaheads instead of the following state's
8050 lookaheadsp.
8051
80522001-12-27 Akim Demaille <akim@epita.fr>
8053
8054 * src/conflicts.c (log_resolution, flush_shift)
8055 (resolve_sr_conflict, set_conflicts, solve_conflicts)
8056 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
8057 (conflicts_print, print_reductions): Use a state_t instead of an
8058 integer when referring to a state.
8059 As much as possible, depend upon nlookaheads, instead of the
8060 `lookaheadsp' member of the following state (since lookaheads of
8061 successive states are successive, the difference between state n + 1
8062 and n served as the number of lookaheads for state n).
8063 * src/lalr.c (add_lookback_edge): Likewise.
8064 * src/print.c (print_core, print_actions, print_state)
8065 (print_results): Likewise.
8066 * src/print_graph.c (print_core, print_actions, print_state)
8067 (print_graph): Likewise.
8068 * src/conflicts.h: Adjust.
8069
80702001-12-27 Akim Demaille <akim@epita.fr>
8071
8072 * src/bison.hairy: Formatting/comment changes.
8073 ANSIfy.
8074 Remove `register' indications.
8075 Add plenty of `static'.
8076
80772001-12-27 Akim Demaille <akim@epita.fr>
8078
8079 * src/output.c (prepare): Drop the muscle `ntbase' which
8080 duplicates ntokens.
8081 * src/bison.simple: Formatting/comment changes.
8082 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
8083 is an undocumented synonym.
8084
80852001-12-22 Akim Demaille <akim@epita.fr>
8086
8087 * src/output.c (output_table_data): Change the prototype to use
8088 `int' for array ranges: some invocations do pass an int, not a
8089 short.
8090 Reported by Wayne Green.
8091
80922001-12-22 Akim Demaille <akim@epita.fr>
8093
8094 Some actions of web2c.y are improperly triggered.
8095 Reported by Mike Castle.
8096
8097 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
8098 * tests/regression.at (Web2c): Rename as...
8099 (Web2c Report): this.
8100 (Web2c Actions): New.
8101
81022001-12-22 Akim Demaille <akim@epita.fr>
8103
8104 Reductions in web2c.y are improperly reported.
8105 Reported by Mike Castle.
8106
8107 * src/conflicts.c (print_reductions): Fix.
8108 * tests/regression.at (Web2c): New.
8109
81102001-12-18 Akim Demaille <akim@epita.fr>
8111
8112 Some host fail on `assert (!"foo")', which expands to
8113 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
8114 Reported by Nelson Beebee.
8115
8116 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
8117 `#define it_succeeded 0' and `assert (it_succeeded)'.
8118
81192001-12-17 Marc Autret <autret_m@epita.fr>
8120
8121 * src/bison.simple: Don't hard code the skeleton line and filename.
8122 * src/output.c (output_parser): Rename 'line' as 'output_line'.
8123 New line counter 'skeleton_line' (skeleton-line muscle).
8124
81252001-12-17 Paul Eggert <eggert@twinsun.com>
8126
8127 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
8128 YYDEBUG must be defined to a nonzero value.
8129
8130 * src/bison.simple (yytname): Do not assume that the user defines
8131 YYDEBUG to a properly parenthesized expression.
8132
81332001-12-17 Akim Demaille <akim@epita.fr>
8134
8135 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
8136 nlookaheads is a new member.
8137 Adjust all users.
8138 * src/lalr.h (nlookaheads): Remove this orphan declaration.
8139 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
8140 state.
8141
81422001-12-17 Akim Demaille <akim@epita.fr>
8143
8144 * src/files.h, src/files.c (open_files, close_files): Remove.
8145 * src/main.c (main): Don't open/close files, nor invoke lex_free,
8146 let...
8147 * src/reader.c (reader): Do it.
8148
81492001-12-17 Akim Demaille <akim@epita.fr>
8150
8151 * src/conflicts.c (print_reductions): Formatting changes.
8152
81532001-12-17 Akim Demaille <akim@epita.fr>
8154
8155 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
8156 (flush_reduce): New.
8157 (resolve_sr_conflict): Adjust.
8158
81592001-12-17 Akim Demaille <akim@epita.fr>
8160
8161 * src/output.c (output_obstack): Be static and rename as...
8162 (format_obstack): this, to avoid any confusion with files.c's
8163 output_obstack.
8164 * src/reader.h (muscle_obstack): Move to...
8165 * src/output.h: here, since it's defined in output.c.
8166
81672001-12-17 Akim Demaille <akim@epita.fr>
8168
8169 * src/output.c (action_row, save_column, default_goto)
8170 (sort_actions, matching_state, pack_vector): Better variable
8171 locality.
8172
81732001-12-17 Akim Demaille <akim@epita.fr>
8174
8175 * src/output.c: Various formatting changes.
8176
81772001-12-17 Akim Demaille <akim@epita.fr>
8178
8179 * src/files.c (output_files): Free the output_obstack.
8180 * src/main.c (main): Call print and print_graph conditionally.
8181 * src/print.c (print): Work unconditionally.
8182 * src/print_graph.c (print_graph): Work unconditionally.
8183 * src/conflicts.c (log_resolution): Output only if verbose_flag.
8184
81852001-12-16 Marc Autret <autret_m@epita.fr>
8186
8187 * src/output.c (actions_output): Fix. When we use %no-lines,
8188 there is one less line per action.
8189
81902001-12-16 Marc Autret <autret_m@epita.fr>
8191
8192 * src/bison.simple: Remove a useless #line directive.
8193 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
8194 * src/output.c (get_lines_number): New.
8195 (output_parser): Adjust, now takes care about the lines of a
8196 output muscles.
8197 Fix line numbering.
8198 (actions_output): Computes the number of lines taken by actions.
8199 (output_master_parser): Insert new skeleton which is the name of
8200 the output parser file name.
8201
82022001-12-15 Marc Autret <autret_m@epita.fr>
8203
8204 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
8205
82062001-12-15 Marc Autret <autret_m@epita.fr>
8207
8208 * src/output.c (output_gram): Keep track of the hairy one.
8209
82102001-12-15 Akim Demaille <akim@epita.fr>
8211
8212 Make `make distcheck' work.
8213
8214 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
8215 system.h which uses libgettext.h.
8216
82172001-12-15 Akim Demaille <akim@epita.fr>
8218
8219 * src/nullable.c (set_nullable): Useless rules must be skipped,
8220 otherwise, since we range over their symbols, we might look at a
8221 nonterminal which no longer ``exists'', i.e., it is not counted in
8222 `nvars', hence we overflow our arrays.
8223
82242001-12-15 Akim Demaille <akim@epita.fr>
8225
8226 The header can also be produced directly, without any obstack!
8227 Yahoo!
8228
8229 * src/files.c, src/files.h (defines_obstack): Remove.
8230 (compute_header_macro): Global.
8231 (defines_obstack_save): Remove.
8232 * src/reader.c (parse_union_decl): No longer output to
8233 defines_obstack: its content can be found in the `stype' muscle
8234 anyway.
8235 (output_token_translations): Merge into...
8236 (symbols_output): this.
8237 Rename as...
8238 (symbols_save): this.
8239 (reader): Adjust.
8240 * src/output.c (header_output): New.
8241 (output): Call it.
8242
82432001-12-15 Akim Demaille <akim@epita.fr>
8244
8245 * src/reader.c (parse_union_decl): Instead of handling two obstack
8246 simultaneously, use one to define the `stype' muscle, and use the
8247 value of the latter to fill defines_obstack.
8248 (copy_comment): Remove.
8249 (copy_comment2): Work for a single obstack.
8250 Rename as...
8251 (copy_comment): this.
8252
82532001-12-15 Akim Demaille <akim@epita.fr>
8254
8255 * src/lex.c, src/lex.h (xgetc): No longer static.
8256 * src/reader.c (parse_union_decl): Revamp.
8257
82582001-12-15 Akim Demaille <akim@epita.fr>
8259
8260 Still making progress in separating Bison into (i) input, (ii)
8261 process, (iii) output: now we can directly output the parser file
8262 without using table_obstack at all.
8263
8264 * src/files.c, src/files.h (table_obstack): Bye bye.
8265 (parser_file_name): New.
8266 * src/files.c (compute_output_file_names): Compute it.
8267 * src/output.c (actions_output, output_parser)
8268 (output_master_parser): To a file instead of an obstack.
8269
82702001-12-15 Akim Demaille <akim@epita.fr>
8271
8272 Attach actions to rules, instead of pre-outputting them to
8273 actions_obstack.
8274
8275 * src/gram.h (rule_t): action and action_line are new members.
8276 * src/reader.c (symbol_list): Likewise.
8277 (copy_action): Save the actions within the rule.
8278 (packgram): Save them in rule_table.
8279 * src/output.c (actions_output): New.
8280 (output_parser): Use it on `%%actions'.
8281 (output_rule_data): Don't free rule_table.
8282 (output): Do it.
8283 (prepare): Don't save the `action' muscle.
8284 * src/bison.simple: s/%%action/%%actions/.
8285
82862001-12-15 Akim Demaille <akim@epita.fr>
8287
8288 * src/reader.c (copy_action): When --yacc, don't append a `;'
8289 to the user action: let it fail if lacking.
8290 Suggested by Arnold Robbins and Tom Tromey.
8291
82922001-12-14 Akim Demaille <akim@epita.fr>
8293
8294 * src/lex.c (literalchar): Simply return the char you decoded, non
8295 longer mess around with obstacks and int pointers.
8296 Adjust all callers.
8297
82982001-12-14 Akim Demaille <akim@epita.fr>
8299
8300 * src/lex.c (literalchar): Don't escape the special characters,
8301 just decode them, and keep them as char (before, eol was output as
8302 the 2 char string `\n' etc.).
8303 * src/output.c (output_rule_data): Use quotearg to output the
8304 token strings.
8305
83062001-12-13 Paul Eggert <eggert@twinsun.com>
8307
8308 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
8309 Do not infringe on the global user namespace when using C++.
8310 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
8311 All uses of `fprintf' and `stderr' changed.
8312
8313 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
8314
83152001-12-13 Akim Demaille <akim@epita.fr>
8316
8317 The computation of nullable is broken: it doesn't handle empty
8318 RHS's properly.
8319
8320 * tests/torture.at (GNU AWK Grammar): New.
8321 * tests/sets.at (Nullable): New.
8322 * src/nullable.c (set_nullable): Instead of blindly looping over
8323 `ritems', loop over the rules, and then over their rhs's.
8324
8325 Work around Autotest bugs.
8326
8327 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
8328 frame, because Autotest understand lines starting with a `+' as
8329 traces from the shell. Then, they are not processed properly.
8330 Admittedly an Autotest bug, but we don't have time to wait for
8331 Autotest to catch up.
8332 * tests/regression.at (Broken Closure): Adjust to the new table
8333 frames.
8334 Move to...
8335 * tests/sets.at: here.
8336
83372001-12-13 Akim Demaille <akim@epita.fr>
8338
8339 * src/closure.c (closure): Use nrules instead of playing tricks
8340 with BITS_PER_WORD.
8341
83422001-12-13 Akim Demaille <akim@epita.fr>
8343
8344 * src/print.c (print_actions): Output the handling of `$' as the
8345 traces do: shifting the token EOF. Before EOF was treated as a
8346 nonterminal.
8347 * tests/regression.at: Adjust some tests.
8348 * src/print_graph.c (print_core): Complete the set of items via
8349 closure. The next-to-final and final states are still unsatisfying,
8350 but that's to be addressed elsewhere.
8351 No longer output the rule numbers, but do output the state number.
8352 A single loop for the shifts + gotos is enough, but picked a
8353 distinct color for each.
8354 (print_graph): Initialize and finalize closure.
8355
83562001-12-13 Akim Demaille <akim@epita.fr>
8357
8358 * src/reader.c (readgram): Remove dead code, an strip useless
8359 braces.
8360 (get_type): Remove, unused.
8361
83622001-12-12 Akim Demaille <akim@epita.fr>
8363
8364 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
8365 on that of lib/error.c.
8366
83672001-12-12 Akim Demaille <akim@epita.fr>
8368
8369 Some hosts don't like `/' in includes.
8370
8371 * src/system.h: Include libgettext.h without qualifying the path.
8372 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
8373 $(top_srcdir).
8374
83752001-12-11 Marc Autret <autret_m@epita.fr>
8376
8377 * src/output.c (output_parser): Remove useless muscle.
8378
83792001-12-11 Marc Autret <autret_m@epita.fr>
8380
8381 * src/bison.simple: Remove #line just before %%epilogue. It
8382 is now handled in ...
8383 * src/reader.c (read_additionnal_code): Add the output of a
8384 #line for the epilogue.
8385
83862001-12-10 Marc Autret <autret_m@epita.fr>
8387
8388 * src/reader.c (copy_definition): Re-use CPP-outed code which
8389 replace precedent remove.
8390 * src/bison.simple: Remove #line before %%prologue because
8391 %%input-line is wrong at this time.
8392
83932001-12-10 Marc Autret <autret_m@epita.fr>
8394
8395 * src/reader.c (symbols_output): Clean up.
8396 * src/output.c (output_gram, output): Clean up.
8397
83982001-12-10 Akim Demaille <akim@epita.fr>
8399
8400 * src/lalr.c (initialize_lookaheads): New. Extracted from...
8401 * src/LR0.c (set_state_table): here.
8402 * src/lalr.c (lalr): Call it.
8403
84042001-12-10 Akim Demaille <akim@epita.fr>
8405
8406 * src/state.h (shifts): Remove the `number' member: shifts are
8407 attached to state, hence no longer need to be labelled with a
8408 state number.
8409
84102001-12-10 Akim Demaille <akim@epita.fr>
8411
8412 Now that states have a complete set of members, the linked list of
8413 shifts is useless: just fill directly the state's shifts member.
8414
8415 * src/state.h (shifts): Remove the `next' member.
8416 * src/LR0.c (first_state, last_state): Remove.
8417 Adjust the callers.
8418 (augment_automaton): Don't look for the shifts that must be added
8419 a shift on EOF: it is those of the state we looked for! But now,
8420 since shifts are attached, it is no longer needed to looking
8421 merely by its id: its number.
8422
84232001-12-10 Akim Demaille <akim@epita.fr>
8424
8425 * src/LR0.c (augment_automaton): Better variable locality.
8426 Remove an impossible branch: if there is a state corresponding to
8427 the start symbol being shifted, then there is shift for the start
8428 symbol from the initial state.
8429
84302001-12-10 Akim Demaille <akim@epita.fr>
8431
8432 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
8433 only when appropriate: when insert_start_shifting_state' is not
8434 invoked.
8435 * tests/regression.at (Rule Line Numbers): Adjust.
8436
84372001-12-10 Akim Demaille <akim@epita.fr>
8438
8439 * src/LR0.c (augment_automaton): Now that all states have shifts,
8440 merge the two cases addition shifts to the initial state.
8441
84422001-12-10 Akim Demaille <akim@epita.fr>
8443
8444 * src/lalr.c (set_state_table): Move to...
8445 * src/LR0.c: here.
8446 * src/lalr.c (lalr): Don't call it...
8447 * src/LR0.c (generate_states): do it.
8448 * src/LR0.h (first_state): Remove, only the table is used.
8449
84502001-12-10 Akim Demaille <akim@epita.fr>
8451
8452 * src/LR0.h (first_shift, first_reduction): Remove.
8453 * src/lalr.c: Don't use first_shift: find shifts through the
8454 states.
8455
84562001-12-10 Akim Demaille <akim@epita.fr>
8457
8458 * src/LR0.c: Attach shifts to states as soon as they are
8459 computed.
8460 * src/lalr.c (set_state_table): Instead of assigning shifts to
8461 state, just assert that the mapping was properly done.
8462
84632001-12-10 Akim Demaille <akim@epita.fr>
8464
8465 * src/LR0.c (insert_start_shift): Rename as...
8466 (insert_start_shifting_state): this.
8467 (insert_eof_shifting_state, insert_accepting_state): New.
8468 (augment_automaton): Adjust.
8469 Better locality of the variables.
8470 When looking if the start_symbol is shifted from the initial
8471 state, using `while (... symbol != start_symbol ...)' sounds
8472 better than `while (... symbol < start_symbol ...)': If fail
8473 to see how the order between symbols could be relevant!
8474
84752001-12-10 Akim Demaille <akim@epita.fr>
8476
8477 * src/getargs.h: Don't declare `spec_name_prefix' and
8478 `spec_file_prefix', declared by src/files.h.
8479 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
8480 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
8481 * src/output.c (prepare): Adjust.
8482 * src/reader.c (symbols_output): Likewise.
8483 * src/vmsgetargs.c: Vaguely adjust, but who cares?
8484
84852001-12-10 Akim Demaille <akim@epita.fr>
8486
8487 * src/muscle_tab.c (muscle_init): NULL is a better default than
8488 `"0"'.
8489
84902001-12-10 Akim Demaille <akim@epita.fr>
8491
8492 * src/reader.c (reader): Calling symbols_output once is enough.
8493
84942001-12-10 Akim Demaille <akim@epita.fr>
8495
8496 Now that states have a complete set of members, the linked list of
8497 reductions is useless: just fill directly the state's reductions
8498 member.
8499
8500 * src/state.h (struct reductions): Remove member `number' and
8501 `next'.
8502 * src/LR0.c (first_reduction, last_reduction): Remove.
8503 (save_reductions): Don't link the new reductions, store them in
8504 this_state.
8505 * src/lalr.c (set_state_table): No need to attach reductions to
8506 states, it's already done.
8507 * src/output.c (output_actions): No longer free the shifts, then
8508 the reductions, then the states: free all the states and their
8509 members.
8510
85112001-12-10 Akim Demaille <akim@epita.fr>
8512
8513 * src/options.c (OPTN, DRTV, BOTH): New.
8514 (option_table): Use them.
8515
8516 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
8517 the job of system.h.
8518 * src/options.c: Don't include stdio.h and xalloc.h for the same
8519 reasons.
8520
85212001-12-10 Akim Demaille <akim@epita.fr>
8522
8523 * src/output.c (output, prepare): Make sure the values of the
8524 muscles `action' and `prologue' are 0-terminated.
8525
85262001-12-10 Akim Demaille <akim@epita.fr>
8527
8528 Clean up GCC warnings.
8529
8530 * src/reader.c (copy_action): `buf' is not used.
8531 (parse_skel_decl): Be static.
8532 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
8533 * src/options.h (create_long_option_table): Have a real prototype.
8534 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
8535 (hash_delete_at): Return const void *.
8536 Adjust casts to preserve the const.
8537
85382001-12-10 Akim Demaille <akim@epita.fr>
8539
8540 * configure.in: Require 2.52g.
8541 M4 is not needed, but AUTOM4TE is.
8542 * m4/m4.m4: Remove.
8543 * tests/Makefile.am: Adjust.
8544
85452001-12-10 Akim Demaille <akim@epita.fr>
8546
8547 One structure for states is enough, even though theoretically
8548 there are LR(0) states and LALR(1) states.
8549
8550 * src/lalr.h (state_t): Remove.
8551 (state_table): Be state_t **, not state_t *.
8552 * src/state.h (core, CORE_ALLOC): Rename as...
8553 (state_t, STATE_ALLOC): this.
8554 Add the LALR(1) members: shifts, reductions, errs.
8555 * src/LR0.c (state_table): Rename as...
8556 (state_hash): this, to avoid name clashes with the global
8557 `state_table'.
8558 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
8559 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
8560
85612001-12-10 Akim Demaille <akim@epita.fr>
8562
8563 Bison dumps core on bash.y.
8564 Reported by Pascal Bart.
8565
8566 * src/warshall.c (bitmatrix_print): New.
8567 (TC): Use it.
8568 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
8569 j must be the outer loop.
8570 * tests/regression.at (Broken Closure): New.
8571
85722001-12-05 Akim Demaille <akim@epita.fr>
8573
8574 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
8575 its argument.
8576 Reported by Peter Hamorsky.
8577
85782001-12-05 Akim Demaille <akim@epita.fr>
8579
8580 * src/conflicts.c (err_table): Remove.
8581 (resolve_sr_conflict): Adjust.
8582 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
8583 Rename as...
8584 (state_t.reductions, state_t.shifts): this.
8585
85862001-12-05 Akim Demaille <akim@epita.fr>
8587
8588 * src/reduce.c (reduce_grammar_tables): No longer disable the
8589 removal of useless rules via CPP but via `if (0)', so that the
8590 compiler still check the code is valid.
8591 For instance, it should have noticed `rline' no longer exists: use
8592 the `line' member of rule_t.
8593 * src/gram.c (dummy, rline): Remove, unused.
8594
85952001-12-05 Akim Demaille <akim@epita.fr>
8596
8597 * src/output.c (pack_vector): Use assert, not berror.
8598 * src/main.c (berror): Remove, unused.
8599
86002001-12-05 Akim Demaille <akim@epita.fr>
8601
8602 New experimental feature: if --verbose --trace output all the
8603 items of a state, not only its kernel.
8604
8605 * src/print.c (print_core): If `trace_flag', then invoke closure
8606 before outputting the items of the state (print_core is no longer
8607 a correct name them).
8608 (print_results): Invoke new_closure/free_closure if needed.
8609
86102001-12-05 Akim Demaille <akim@epita.fr>
8611
8612 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
8613 * src/closure.c, src/closure.h (itemsetsize): Rename as...
8614 (nitemset): for consistency with the rest of the project.
8615
86162001-12-05 Akim Demaille <akim@epita.fr>
8617
8618 * src/closure.c (print_closure): Improve.
8619 (closure): Use it for printing input and output.
8620
86212001-12-05 Akim Demaille <akim@epita.fr>
8622
8623 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
8624 indexed by nonterminals.
8625
86262001-12-05 Akim Demaille <akim@epita.fr>
8627
8628 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
8629 what it was!).
8630 * src/warshall.h: Remove accidental duplication of the content.
8631
86322001-12-05 Akim Demaille <akim@epita.fr>
8633
8634 * src/closure.c (set_fderives): De-obfuscate.
8635
86362001-12-05 Akim Demaille <akim@epita.fr>
8637
8638 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
8639
86402001-12-05 Akim Demaille <akim@epita.fr>
8641
8642 * src/closure.c (set_firsts): De-obfuscate.
8643
86442001-12-05 Akim Demaille <akim@epita.fr>
8645
8646 * src/output.c (action_row): De-obfuscate
8647 using the good o' techniques: arrays not pointers, variable
8648 locality, BITISSET, RESETBIT etc.
8649
86502001-12-05 Akim Demaille <akim@epita.fr>
8651
8652 Pessimize the code to simplify it: from now on, all the states
8653 have a valid SHIFTS, which NSHIFTS is possibly 0.
8654
8655 * src/LR0.c (shifts_new): Be global and move to..
8656 * src/state.c, src/state.h: here.
8657 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
8658 * src/print_graph: Adjust.
8659
86602001-12-05 Akim Demaille <akim@epita.fr>
8661
8662 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
8663 * src/conflicts.c: Use it.
8664 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
8665 incorrectly ``simplified''.
8666
86672001-12-05 Akim Demaille <akim@epita.fr>
8668
8669 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
8670 using the good o' techniques: arrays not pointers, variable
8671 locality, BITISSET, RESETBIT etc.
8672
86732001-12-05 Akim Demaille <akim@epita.fr>
8674
8675 * src/state.h (SHIFT_SYMBOL): New.
8676 * src/conflicts.c: Use it to deobfuscate.
8677
86782001-12-05 Akim Demaille <akim@epita.fr>
8679
8680 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
8681 (print_reductions): De-obfuscate using the good o' techniques:
8682 arrays not pointers, variable locality, BITISSET.
8683
86842001-12-05 Akim Demaille <akim@epita.fr>
8685
8686 * src/conflicts.c (print_reductions): Arrays, not pointers.
8687 Use BITISSET.
8688
86892001-12-05 Akim Demaille <akim@epita.fr>
8690
8691 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8692
86932001-12-05 Akim Demaille <akim@epita.fr>
8694
8695 * src/conflicts.c (print_reductions): Improve variable locality.
8696
86972001-12-05 Akim Demaille <akim@epita.fr>
8698
8699 * src/conflicts.c (print_reductions): Pessimize, but clarify.
8700
87012001-12-05 Akim Demaille <akim@epita.fr>
8702
8703 * src/conflicts.c (print_reductions): Improve variable locality.
8704
87052001-12-05 Akim Demaille <akim@epita.fr>
8706
8707 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
8708 * src/lalr.c: Use them.
8709
87102001-12-05 Akim Demaille <akim@epita.fr>
8711
8712 * src/LR0.c (augment_automaton): Formatting changes.
8713 Better variable locality.
8714
87152001-12-05 Akim Demaille <akim@epita.fr>
8716
8717 * src/lalr.c (matrix_print): New.
8718 (transpose): Use it.
8719 Use arrays instead of pointers.
8720
87212001-12-05 Akim Demaille <akim@epita.fr>
8722
8723 * src/lalr.c (maxrhs): Move to...
8724 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
8725 * src/lalr.c (build_relations): Adjust.
8726
87272001-12-05 Akim Demaille <akim@epita.fr>
8728
8729 * src/lalr.c (transpose): Free the memory allocated to the
8730 argument, as it is replaced by the results by the unique caller.
8731 (build_relations): Merely invoke transpose: it handles the memory
8732 deallocation.
8733 Improve variable locality.
8734 Avoid variables used as mere abbreviations.
8735 (compute_lookaheads): Use arrays instead of pointers.
8736
87372001-12-05 Akim Demaille <akim@epita.fr>
8738
8739 * src/lalr.c (initialize_F): Improve variable locality.
8740 Avoid variables used as mere abbreviations.
8741
87422001-12-05 Akim Demaille <akim@epita.fr>
8743
8744 * src/derives.c (print_derives): Display the ruleno.
8745 * src/lalr.c (initialize_F, transpose): Better variable locality
8746 to improve readability.
8747 Avoid variables used as mere abbreviations.
8748
87492001-12-05 Akim Demaille <akim@epita.fr>
8750
8751 * src/lalr.c (traverse): Use arrays instead of pointers.
8752
87532001-12-05 Akim Demaille <akim@epita.fr>
8754
8755 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
8756 the handling of squeue.
8757 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
8758
87592001-12-05 Akim Demaille <akim@epita.fr>
8760
8761 Because useless nonterminals are now kept alive (instead of being
8762 `destroyed'), we now sometimes examine them, and store information
8763 related to them. Hence we need to know their number, and adjust
8764 memory allocations.
8765
8766 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
8767 static.
8768 * src/LR0.c (allocate_itemsets): The memory allocated to
8769 `symbol_count' was used for two different purpose: once to count
8770 the number of occurrences of each symbol, and later reassigned to
8771 `shift_symbol', containing the symbol that can be shifted from a
8772 given state.
8773 Deobfuscate, i.e., allocate, use and free `symbol_count' here
8774 only, and...
8775 (new_itemsets): Allocate `shift_symbol' here.
8776 (allocate_itemsets): symbol_count includes useless nonterminals.
8777 Make room for them.
8778 (free_storage): Use `free', not `XFREE', for pointers that cannot
8779 be null.
8780
87812001-12-05 Akim Demaille <akim@epita.fr>
8782
8783 * src/nullable.c (set_nullable): Deobfuscate the handling of
8784 ritem.
8785 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
8786
87872001-12-05 Akim Demaille <akim@epita.fr>
8788
8789 * src/gram.c, src/gram.h (ritem_print): New.
8790 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
8791 (This useless function was defined only to work around VMS linkers
8792 that can't handle compilation units with variables only).
8793 * src/reduce.c (dump_grammar): Use it to trace the construction of
8794 ritem.
8795
87962001-12-04 Paul Eggert <eggert@twinsun.com>
8797
8798 * src/bison.simple (union yyalloc): Change member names
8799 to be the same as the stack names.
8800 (yyparse): yyptr is now union yyalloc *, not char *.
8801 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
8802 and may generate better code on some machines.
8803 (yystpcpy): Use prototype if __STDC__ is defined, not just
8804 if __cplusplus is defined.
8805
88062001-11-30 Akim Demaille <akim@epita.fr>
8807
8808 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
8809 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
8810 Gettext doesn't compile cleanly, and dies with -Werror.
8811 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
8812 Include WARNING_CFLAGS here.
8813 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
8814 before being defined.
8815
88162001-11-27 Paul Eggert <eggert@twinsun.com>
8817
8818 * lib/quotearg.h (quotearg_n, quotearg_n_style):
8819 First arg is int, not unsigned.
8820 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
8821 (SIZE_MAX, UINT_MAX): New macros.
8822 (quotearg_n_options): Abort if N is negative.
8823 Avoid overflow check on hosts where size_t is 64 bits and int
8824 is 32 bits, as overflow is impossible there.
8825 Fix off-by-one typo that caused unnecessary reallocation.
8826
88272001-11-29 Paul Eggert <eggert@twinsun.com>
8828
8829 Name space cleanup in generated parser.
8830
8831 * doc/bison.texinfo (Bison Parser): Discuss system headers
8832 and their effect on the user name space.
8833
8834 * src/bison.simple:
8835 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
8836 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
8837 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
8838
8839 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
8840 on user names when possible.
8841
8842 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
8843 Simplify test for whather <alloca.h> exists.
8844
8845 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
8846
8847 (<stdio.h>): Include if YYDEBUG.
8848
8849 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
8850 ! defined (yyoverflow) && ! defined (yymemcpy).
8851
8852 (yymemcpy, yyparse): Rename local variables as needed so that
8853 they all begin with 'yy'.
8854
8855 (yystrlen, yystpcpy): New functions.
8856
8857 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
8858 All uses changed.
8859
8860 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
8861 instead of relying on string.h functions. Use YYSTACK_ALLOC
8862 and YYSTACK_FREE instead of malloc and free.
8863
88642001-11-30 Akim Demaille <akim@epita.fr>
8865
8866 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
8867 before their first uses.
8868 (YYBISON, YYPURE): Move to the top of the output.
8869
88702001-11-30 Akim Demaille <akim@epita.fr>
8871
8872 * tests/reduce.at (Useless Nonterminals): Fix.
8873
88742001-11-30 Akim Demaille <akim@epita.fr>
8875
8876 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
8877 if body instead of `;' to pacify GCC's warnings.
8878
88792001-11-30 Akim Demaille <akim@epita.fr>
8880
8881 Instead of mapping the LHS of unused rules to -1, keep the LHS
8882 valid, but flag the rules as invalid.
8883
8884 * src/gram.h (rule_t): `useful' is a new member.
8885 * src/print.c (print_grammar): Adjust.
8886 * src/derives.c (set_derives): Likewise.
8887 * src/reader.c (packgram, reduce_output): Likewise.
8888 * src/reduce.c (reduce_grammar_tables): Likewise.
8889 * tests/reduce.at (Underivable Rules, Useless Rules): New.
8890
88912001-11-30 Akim Demaille <akim@epita.fr>
8892
8893 * src/reduce.c (reduce_output): Formatting changes.
8894 * src/print.c (print_results, print_grammar): Likewise.
8895 * tests/regression.at (Rule Line Numbers)
8896 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
8897
88982001-11-30 Akim Demaille <akim@epita.fr>
8899
8900 * src/reduce.c (nonterminals_reduce): Instead of throwing away
8901 useless nonterminals, move them at the end of the symbol arrays.
8902 (reduce_output): Adjust.
8903 * tests/reduce.at (Useless Nonterminals): Adjust.
8904
89052001-11-30 Akim Demaille <akim@epita.fr>
8906
8907 * src/reduce.c: Various comment/formatting changes.
8908 (nonterminals_reduce): New, extracted from...
8909 (reduce_grammar_tables): here.
8910 (reduce_grammar): Call nonterminals_reduce.
8911
89122001-11-29 Paul Eggert <eggert@twinsun.com>
8913
8914 * src/bison.simple (YYSTACK_REALLOC): Remove.
8915 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
8916 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
8917 New macros.
8918 (union yyalloc): New type.
8919 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
8920 an arbitrary restriction on hosts where size_t is wider than int.
8921
8922 (yyparse): Don't dump core if alloca or malloc fails; instead, report
8923 a parser stack overflow. Allocate just one block of memory for all
8924 three stacks, instead of allocating three blocks; this typically is
8925 faster and reduces fragmentation.
8926
8927 Do not limit the number of items in the stack to a value that fits
8928 in 'int', as this is an arbitrary limit on hosts with 64-bit
8929 size_t and 32-bit int.
8930
89312001-11-29 Marc Autret <autret_m@epita.fr>
8932
8933 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
8934 of defining YYERROR_VERBOSE.
8935 [AT_DATA]: $4 is now out of C declarations in the prologue.
8936
89372001-11-28 Marc Autret <autret_m@epita.fr>
8938
8939 * src/reader.c (parse_dquoted_param): New.
8940 (parse_skel_decl): Use it.
8941 * src/lex.h: Add its prototype.
8942 * src/lex.c (literalchar): Become not static.
8943
89442001-11-28 Marc Autret <autret_m@epita.fr>
8945
8946 * src/output.h: And put its extern declaration here.
8947 * src/output.c (error_verbose): Define here.
8948 (prepare): Echo name modification.
8949 * src/getargs.h: Clean its extern declaration.
8950 * src/getargs.c (error_verbose_flag): Remove.
8951 (getargs): Remove case 'e'.
8952 * src/options.c (option_table): 'error-verbose' is now seen as simple
8953 percent option.
8954 Include output.h.
8955
8956 * src/reader.c (read_declarations): Remove case tok_include.
8957 (parse_include_decl): Remove.
8958 * src/lex.h (token_t): Remove tok_include.
8959 * src/options.c (option_table): 'include' is now a simple command line
8960 option.
8961
89622001-11-28 Marc Autret <autret_m@epita.fr>
8963
8964 * src/bison.simple: Adjust muscle names.
8965 * src/muscle_tab.c (muscle_init): Also rename the muscles.
8966 * src/output.c (prepare): s/_/-/ for the muscles names.
8967 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
8968
89692001-11-28 Marc Autret <autret_m@epita.fr>
8970
8971 * src/bison.simple: Fix debug.
8972 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
8973
89742001-11-28 Akim Demaille <akim@epita.fr>
8975
8976 * src/LR0.c (shifts_new): New.
8977 (save_shifts, insert_start_shift, augment_automaton): Use it.
8978
89792001-11-28 Akim Demaille <akim@epita.fr>
8980
8981 * src/closure.c (closure): `b' and `ruleno' denote the same value:
8982 keep ruleno only.
8983
89842001-11-28 Akim Demaille <akim@epita.fr>
8985
8986 * src/closure.c (closure): Instead of looping over word in array
8987 then bits in words, loop over bits in array.
8988
89892001-11-28 Akim Demaille <akim@epita.fr>
8990
8991 * src/closure.c (closure): No longer optimize the special case
8992 where all the bits of `ruleset[r]' are set to 0, to make the code
8993 clearer.
8994
89952001-11-28 Akim Demaille <akim@epita.fr>
8996
8997 * src/closure.c (closure): `r' and `c' are new variables, used to
8998 de-obfuscate accesses to RULESET and CORE.
8999
90002001-11-28 Akim Demaille <akim@epita.fr>
9001
9002 * src/reduce.c (reduce_print): Use ngettext.
9003 (dump_grammar): Improve the trace accuracy.
9004
90052001-11-28 Akim Demaille <akim@epita.fr>
9006
9007 * src/reduce.c (dump_grammar): Don't translate trace messages.
9008
90092001-11-28 Akim Demaille <akim@epita.fr>
9010
9011 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
9012 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
9013 as all tags are free'ed afterwards.
9014 From Enrico Scholz.
9015
90162001-11-27 Paul Eggert <eggert@twinsun.com>
9017
9018 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
9019 use alloca when we didn't want to, and vice versa.
9020
90212001-11-27 Marc Autret <autret_m@epita.fr>
9022
9023 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
9024 initialization.
9025 * src/output.c (prepare): Remove its update.
9026
90272001-11-27 Marc Autret <autret_m@epita.fr>
9028
9029 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
9030 Use %error-verbose.
9031
90322001-11-27 Marc Autret <autret_m@epita.fr>
9033
9034 * src/bison.simple: Remove YYERROR_VERBOSE using.
9035 Use %%error_verbose.
9036 (yyparse): Likewise.
9037 * src/output.c (prepare): Give its final value.
9038 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
9039 * src/getargs.h: Add its extern declaration.
9040 * src/getargs.c (error_verbose_flag): New int.
9041 (getargs): Update to catch new case.
9042 * src/options.c (option_table): 'error-verbose' is a new option.
9043 (shortopts): Update.
9044
90452001-11-27 Akim Demaille <akim@epita.fr>
9046
9047 * src/system.h: Use intl/libgettext.h.
9048 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
9049
90502001-11-27 Akim Demaille <akim@epita.fr>
9051
9052 * tests/torture.at (Exploding the Stack Size with Malloc):
9053 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
9054
90552001-11-27 Akim Demaille <akim@epita.fr>
9056
9057 * src/files.c: Include error.h.
9058 Reported by Hans Aberg.
9059
90602001-11-26 Marc Autret <autret_m@epita.fr>
9061
9062 * src/reader.c (parse_include_decl): New, not yet implemented.
9063 (read_declarations): Add case tok_include.
9064 * src/getargs.h (include): Add its extern definition.
9065 * src/getargs.c (include): New const char *.
9066 (getargs): Add case '-I'.
9067 * src/options.c (option_table): Add include as command line and
9068 percent option.
9069 * src/lex.h (token_t): Add tok_include.
9070
90712001-11-26 Akim Demaille <akim@epita.fr>
9072
9073 * src/reader.c (readgram): Make sure rules for mid-rule actions
9074 have a lineno equal to that of their host rule.
9075 Reported by Hans Aberg.
9076 * tests/regression.at (Rule Line Numbers): New.
9077
90782001-11-26 Akim Demaille <akim@epita.fr>
9079
9080 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
9081 size_ts.
9082
90832001-11-26 Akim Demaille <akim@epita.fr>
9084
9085 * src/complain.c, src/complain.h (error): Remove, provided by
9086 lib/error.[ch].
9087
90882001-11-26 Akim Demaille <akim@epita.fr>
9089
9090 * src/reader.c (read_declarations): Don't abort on tok_illegal,
9091 issue an error message.
9092 * tests/regression.at (Invalid %directive): New.
9093 Reported by Hans Aberg.
9094
90952001-11-26 Akim Demaille <akim@epita.fr>
9096
9097 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
9098 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
9099
91002001-11-26 Akim Demaille <akim@epita.fr>
9101
9102 * src/conflicts.c (conflicts_print): Don't complain at all when
9103 there are no reduce/reduce conflicts, and as many shift/reduce
9104 conflicts as expected.
9105 * tests/regression.at (%expect right): Adjust.
9106
91072001-11-23 Akim Demaille <akim@epita.fr>
9108
9109 * lib/alloca.c: Update, from fileutils.
9110
91112001-11-23 Akim Demaille <akim@epita.fr>
9112
9113 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
9114
91152001-11-23 Akim Demaille <akim@epita.fr>
9116
9117 * src/system.h: Include alloca.h.
9118 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
9119
91202001-11-23 Akim Demaille <akim@epita.fr>
9121
9122 * src/print_graph.c (print_actions): Remove `rule', unused.
9123 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
9124 pacify GCC's signed < unsigned warnings.
9125 * src/closure.c (itemsetsize): Likewise.
9126 * src/reader.c (symbol_list_new): Static.
9127
91282001-11-23 Akim Demaille <akim@epita.fr>
9129
9130 Attaching lineno to buckets is stupid, since only one copy of each
9131 symbol is kept, only the line of the first occurrence is kept too.
9132
9133 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
9134 * src/reader.c (rline_allocated): Remove, unused.
9135 (symbol_list): Have a `line' member.
9136 (symbol_list_new): New.
9137 (readgram): Use it.
9138 * src/print.c (print_grammar): Output the rule line numbers.
9139 * tests/regression.at (Solved SR Conflicts)
9140 (Unresolved SR Conflicts): Adjust.
9141 Reported by Hans Aberg.
9142
91432001-11-22 Marc Autret <autret_m@epita.fr>
9144
9145 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
9146
91472001-11-22 Marc Autret <autret_m@epita.fr>
9148
9149 * src/muscle_tab.c (muscle_init): Remove initialization of
9150 skeleton muscle.
9151 * src/output.c (output_master_parser): Do it here.
9152
91532001-11-20 Akim Demaille <akim@epita.fr>
9154
9155 * po/sv.po: New.
9156 * configure.in (ALL_LINGUAS): Adjust.
9157 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
9158 longer contains strings to translate.
9159
91602001-11-19 Akim Demaille <akim@epita.fr>
9161
9162 * src/conflicts.c (conflicts_print): Add a missing \n.
9163
91642001-11-19 Akim Demaille <akim@epita.fr>
9165
9166 * src/nullable.c (nullable_print): New.
9167 (set_nullable): Call it when tracing.
9168 Better locality of variables.
9169
91702001-11-19 Akim Demaille <akim@epita.fr>
9171
9172 * src/print.c (print_actions): Better locality of variables.
9173
91742001-11-19 Akim Demaille <akim@epita.fr>
9175
9176 * src/derives.c (print_derives): Fix and enrich.
9177 * src/closure.c (print_fderives): Likewise.
9178
91792001-11-19 Akim Demaille <akim@epita.fr>
9180
9181 * src/closure.c (itemsetend): Remove, replaced with...
9182 (itemsetsize): new.
9183
91842001-11-19 Akim Demaille <akim@epita.fr>
9185
9186 * src/LR0.c (kernel_end): Remove, replaced with...
9187 (kernel_size): new.
9188
91892001-11-19 Akim Demaille <akim@epita.fr>
9190
9191 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
9192 to clarify.
9193
91942001-11-19 Akim Demaille <akim@epita.fr>
9195
9196 * src/closure.c (closure): Use arrays instead of pointers to clarify.
9197
91982001-11-19 Akim Demaille <akim@epita.fr>
9199
9200 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
9201 trace messages.
9202 * src/LR0.c: Likewise.
9203 (allocate_itemsets): Use arrays instead of pointers to clarify.
9204
92052001-11-19 Akim Demaille <akim@epita.fr>
9206
9207 * src/getargs.c (statistics_flag): Replace with...
9208 (trace_flag): New.
9209 (longopts): Accept --trace instead of --statistics.
9210 * src/getargs.h, src/options.c: Adjust.
9211 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
9212 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
9213
92142001-11-19 Akim Demaille <akim@epita.fr>
9215
9216 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
9217 pointers to clarify the code.
9218 (save_reductions, save_shifts): Factor common parts of alternatives.
9219
92202001-11-19 Akim Demaille <akim@epita.fr>
9221
9222 * src/LR0.c (new_state, get_state): Complete TRACE code.
9223 * src/closure.c: Include `reader.h' to get `tags', needed by the
9224 trace code.
9225 Rename the conditional DEBUG as TRACE.
9226 Output consistently TRACEs to stderr, not stdout.
9227 * src/derives.c: Likewise.
9228 * src/reduce.c: (inaccessable_symbols): Using if is better style
9229 than goto.
9230 Use `#if TRACE' instead of `#if 0' for tracing code.
9231
92322001-11-19 Akim Demaille <akim@epita.fr>
9233
9234 * src/system.h (LIST_FREE, shortcpy): New.
9235 * src/LR0.c: Use them.
9236 * src/output.c (free_itemsets, free_reductions, free_shifts):
9237 Remove, replaced by LIST_FREE.
9238
92392001-11-19 Akim Demaille <akim@epita.fr>
9240
9241 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
9242 (REDUCTIONS_ALLOC): New.
9243 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
9244 allocation.
9245
92462001-11-19 Akim Demaille <akim@epita.fr>
9247
9248 * src/LR0.c (new_state): Complete trace code.
9249 * src/nullable.c (set_nullable): Don't translate traces.
9250
92512001-11-19 Akim Demaille <akim@epita.fr>
9252
9253 * src/print_graph.c (print_core): Better locality of variables.
9254 * src/print.c (print_core): Likewise.
9255
92562001-11-19 Akim Demaille <akim@epita.fr>
9257
9258 * src/vcg.c: You do the output, so you are responsible of the
9259 handling of VCG syntax, in particular: use quotearg.
9260 * src/print_graph.c: Don't.
9261 (print_actions): Don't output the actions as part of the nodes,
9262 since that's the job of the edges.
9263 (print_state): Don't output by hand: fill the node description,
9264 and ask for its output.
9265
92662001-11-19 Akim Demaille <akim@epita.fr>
9267
9268 * src/bison.simple (yyparse): When verbosely reporting an error,
9269 no longer put additional quotes around token names.
9270 * tests/calc.at: Adjust.
9271
92722001-11-19 Akim Demaille <akim@epita.fr>
9273
9274 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
9275 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
9276 * src/output.c: Adjust.
9277
92782001-11-19 Akim Demaille <akim@epita.fr>
9279
9280 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
9281 (rule_t): this.
9282 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
9283
92842001-11-19 Akim Demaille <akim@epita.fr>
9285
9286 * src/gram.h (rule_t): New.
9287 (rule_table): New.
9288 (rrhs, rlhs): Remove, part of state_t.
9289 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
9290 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
9291 * src/reader.c, src/reduce.c: Adjust.
9292
92932001-11-19 Akim Demaille <akim@epita.fr>
9294
9295 * src/reader.c (symbols_output): New, extracted from...
9296 (packsymbols): Here.
9297 (reader): Call it.
9298
92992001-11-19 Akim Demaille <akim@epita.fr>
9300
9301 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
9302 (maxrhs): this new function.
9303
93042001-11-19 Akim Demaille <akim@epita.fr>
9305
9306 * src/lalr.c (F): New macro to access the variable F.
9307 Adjust.
9308
93092001-11-19 Akim Demaille <akim@epita.fr>
9310
9311 * src/lalr.h (LA): New macro to access the variable LA.
9312 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9313 * src/lalr.c: Adjust.
9314
93152001-11-19 Akim Demaille <akim@epita.fr>
9316
9317 * src/lalr.c (initialize_LA): Only initialize LA. Let...
9318 (set_state_table): handle the `lookaheads' members.
9319
93202001-11-19 Akim Demaille <akim@epita.fr>
9321
9322 * src/lalr.h (lookaheads): Removed array, whose contents is now
9323 a member of...
9324 (state_t): this structure.
9325 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9326 Adjust.
9327
93282001-11-19 Akim Demaille <akim@epita.fr>
9329
9330 * src/lalr.h (consistent): Removed array, whose contents is now
9331 a member of...
9332 (state_t): this structure.
9333 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9334 Adjust.
9335
93362001-11-19 Akim Demaille <akim@epita.fr>
9337
9338 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
9339 contents are now members of...
9340 (state_t): this structure.
9341 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
9342 Adjust.
9343
93442001-11-19 Akim Demaille <akim@epita.fr>
9345
9346 * src/lalr.h (state_t): New.
9347 (state_table): Be a state_t * instead of a core **.
9348 (accessing_symbol): Remove, part of state_t.
9349 * src/lalr.c: Adjust.
9350 (set_accessing_symbol): Merge into...
9351 (set_state_table): this.
9352 * src/print_graph.c, src/conflicts.c: Adjust.
9353
93542001-11-14 Akim Demaille <akim@epita.fr>
9355
9356 * tests/calc.at, tests/output.at, tests/regression.at,
9357 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
9358 now the tests are run in private dirs, therefore AC_CLEANUP and
9359 family can be simplified to 0-ary.
9360 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
9361 use abs. path to find config.h.
9362 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
9363 stderr, there can be way too much random noise.
9364 Instead pass -Werror to GCC and rely on the exit status.
9365 Reported by Wolfram Wagner.
9366
93672001-11-14 Akim Demaille <akim@epita.fr>
9368
9369 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
9370 defined only if yyoverflow is defined, to avoid `warning: unused
9371 variable `yyvs1''.
9372 Reported by The Test Suite.
9373
93742001-11-14 Akim Demaille <akim@epita.fr>
9375
9376 * src/print.c: Include reduce.h.
9377 Reported by Hans Aberg.
9378
93792001-11-14 Akim Demaille <akim@epita.fr>
9380
9381 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
9382 Revert a previous patch: these are really const.
9383 * src/conflicts.c (conflict_report): Additional useless pair of
9384 braces to pacify GCC's warnings for `if () if () {} else {}'.
9385 * src/lex.c (parse_percent_token): Replace equal_offset with
9386 arg_offset.
9387 arg is const.
9388 Be sure to strdup `arg' when used, since there is no reason for
9389 token_buffer not to change.
9390
93912001-11-14 Akim Demaille <akim@epita.fr>
9392
9393 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
9394 definition.
9395 * src/main.c (main): Use them.
9396 Suggested by Hans Aberg.
9397
93982001-11-12 Akim Demaille <akim@epita.fr>
9399
9400 * src/system.h (ngettext): Now that we use ngettext, be sure to
9401 provide a default definition when NLS are not used.
9402
94032001-11-12 Akim Demaille <akim@epita.fr>
9404
9405 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
9406 Use @kbd to denote user input.
9407 (Language and Grammar): ANSIfy the example.
9408 Adjust its layout for info/notinfo.
9409 (Location Tracking Calc): Output error messages to stderr.
9410 Output locations in a more GNUtically correct way.
9411 Fix a couple of Englishos.
9412 Adjust @group/@end group pairs.
9413
94142001-11-12 Akim Demaille <akim@epita.fr>
9415
9416 %expect was not functioning at all.
9417
9418 * src/conflicts.c (expected_conflicts): Set to -1.
9419 (conflict_report): Use ngettext.
9420 (conflicts_print): Check %expect and make its violation an error.
9421 * doc/bison.texinfo (Expect Decl): Adjust.
9422 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
9423 * tests/regression.at (%expect not enough, %expect right)
9424 (%expect too much): New.
9425
94262001-11-12 Akim Demaille <akim@epita.fr>
9427
9428 * tests/regression.at (Conflicts): Rename as...
9429 (Unresolved SR Conflicts): this.
9430 (Solved SR Conflicts): New.
9431
94322001-11-12 Akim Demaille <akim@epita.fr>
9433
9434 * src/reduce.c (print_results): Rename as...
9435 (reduce_output): This.
9436 Output to OUT, passed as argument, instead of output_obstack.
9437 (dump_grammar): Likewise.
9438 (reduce_free): New.
9439 Also free V1.
9440 (reduce_grammar): No longer call reduce_output, since...
9441 * src/print.c (print_results): do it.
9442 * src/main.c (main): Call reduce_free;
9443
94442001-11-12 Akim Demaille <akim@epita.fr>
9445
9446 * src/conflicts.c (print_reductions): Accept OUT as argument.
9447 Output to it, not to output_obstack.
9448 * src/print.c (print_actions): Adjust.
9449
94502001-11-12 Akim Demaille <akim@epita.fr>
9451
9452 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
9453 the result instead of using...
9454 (src_total, rrc_total, src_count, rrc_count): Remove.
9455 (any_conflicts): Remove.
9456 (print_conflicts): Split into...
9457 (conflicts_print, conflicts_output): New.
9458 * src/conflicts.h: Adjust.
9459 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
9460 * src/print.c (print_grammar): Issue `\n' between two rules.
9461 * tests/regression.at (Conflicts): New.
9462 Reported by Tom Lane.
9463
94642001-11-12 Akim Demaille <akim@epita.fr>
9465
9466 * tests/regression.at (Invalid input): Remove, duplicate with
9467 ``Invalid input: 1''.
9468
94692001-11-12 Akim Demaille <akim@epita.fr>
9470
9471 * tests/torture.at (AT_DATA_STACK_TORTURE)
9472 (Exploding the Stack Size with Alloca)
9473 (Exploding the Stack Size with Malloc): New.
9474
94752001-11-12 Akim Demaille <akim@epita.fr>
9476
9477 * src/bison.simple (YYSTACK_REALLOC): New.
9478 (yyparse) [!yyoverflow]: Use it and free the old stack.
9479 Reported by Per Allansson.
9480
94812001-11-12 Pascal Bart <pascal.bart@epita.fr>
9482
9483 * src/bison.simple: Define type yystype instead of YYSTYPE, and
9484 define CPP macro, which substitute YYSTYPE by yystype.
9485 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
9486 with yyltype/YYLTYPE. This allows inclusion of the generated
9487 header within the parser if the compiler, such as GGC, accepts
9488 multiple equivalent #defines.
9489 From Akim.
9490
94912001-11-05 Akim Demaille <akim@epita.fr>
9492
9493 * src/reader.c (symbols_output): New, extracted from...
9494 (packsymbols): here.
9495 (reader): Adjust.
9496
94972001-11-05 Akim Demaille <akim@epita.fr>
9498
9499 * src/lex.c (parse_percent_token): s/quotearg/quote/.
9500
95012001-11-05 Akim Demaille <akim@epita.fr>
9502
9503 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
9504 pattern.
9505
95062001-11-05 Akim Demaille <akim@epita.fr>
9507
9508 * src/options.h (struct option_table_struct): set_flags is void*.
9509 * src/options.c (longopts): Support `--output' and `%output'.
9510 (usage): Adjust.
9511 * src/lex.h (tok_setopt): Remove, replaced with...
9512 (tok_intopt, tok_stropt): these new guys.
9513 * src/lex.c (getopt.h): Not needed.
9514 (token_buffer, unlexed_token_buffer): Not const.
9515 (percent_table): Promote `-' over `_' in directive names.
9516 Active `%name-prefix', `file-prefix', and `output'.
9517 (parse_percent_token): Accept possible arguments to directives.
9518 Promote `-' over `_' in directive names.
9519
95202001-11-04 Akim Demaille <akim@epita.fr>
9521
9522 * doc/bison.texinfo (Decl Summary): Split the list into
9523 `directives for grammars' and `directives for bison'.
9524 Sort'em.
9525 Add description of `%name-prefix', `file-prefix', and `output'.
9526 Promote `-' over `_' in directive names.
9527 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
9528 Simplify the description of `--name-prefix'.
9529 Promote `-' over `_' in directive names.
9530 Promote `--output' over `--output-file'.
9531 Fix the description of `--defines'.
9532 * tests/output.at: Exercise %file-prefix and %output.
9533
95342001-11-02 Akim Demaille <akim@epita.fr>
9535
9536 * doc/refcard.tex: Update.
9537
95382001-11-02 Akim Demaille <akim@epita.fr>
9539
9540 * src/symtab.h (SUNDEF): New.
9541 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
9542 stand for `uninitialized', instead of 0.
9543 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
9544 * src/lex.c (lex): Adjust.
9545
9546 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
9547 Number it 0.
9548 Let yylex return it instead of a plain 0.
9549 Reported by Dick Streefland.
9550
95512001-11-02 Akim Demaille <akim@epita.fr>
9552
9553 * tests/regression.at (Mixing %token styles): New test.
9554
95552001-11-02 Akim Demaille <akim@epita.fr>
9556
9557 * src/reader.c (parse_thong_decl): Formatting changes.
9558 (token_translations_init): New, extracted from...
9559 (packsymbols): Here.
9560 Adjust.
9561
95622001-11-01 Akim Demaille <akim@epita.fr>
9563
9564 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
9565 Check that `9foo.y' produces correct cpp guards.
9566 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
9567 guards.
9568 Reported by Wwp.
9569
95702001-11-01 Akim Demaille <akim@epita.fr>
9571
9572 * tests/regression.at (Invalid input: 2): New.
9573 * src/lex.c (unlexed_token_buffer): New.
9574 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
9575 too.
9576 Reported by Wwp.
9577
95782001-11-01 Akim Demaille <akim@epita.fr>
9579
9580 * tests/calc.at: Catch up with 1.30.
9581 * configure.in: Bump to 1.49a.
9582 Adjust to newer Autotest.
9583
95842001-10-19 Pascal Bart <pascal.bart@epita.fr>
9585
9586 * src/conflicts.c: Move global variables rrc_total and src_total ...
9587 (print_conflicts): here.
9588 * src/output.c (output): Free global variable user_toknums.
9589 * src/lex.c (token_obstack): Become static.
9590
95912001-10-18 Akim Demaille <akim@epita.fr>
9592
9593 * tests/atlocal.in (GCC): Add.
9594 * tests/calc.at: s/m4_match/m4_bmatch/.
9595 s/m4_patsubst/m4_bpatsubst/.
9596 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
9597 * configure.in: AC_SUBST(GCC).
9598
95992001-10-14 Marc Autret <autret_m@epita.fr>
9600
9601 * src/options.c (create_long_option_table): Fix.
9602
96032001-10-10 Akim Demaille <akim@epita.fr>
9604
9605 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
9606
96072001-10-04 Akim Demaille <akim@epita.fr>
9608
9609 * src/reader.c (parse_union_decl): Push the caracters in
9610 union_obstack, not attrs_obstack.
9611
96122001-10-04 Akim Demaille <akim@epita.fr>
9613
9614 Merge in the branch 1.29.
9615
9616 * src/reader.c (packsymbols): Use a temporary obstack for
9617 `%%tokendef', since output_stack is already used elsewhere.
9618
9619 2001-10-02 Akim Demaille <akim@epita.fr>
9620
9621 Bump 1.29d.
9622
9623 2001-10-02 Akim Demaille <akim@epita.fr>
9624
9625 Version 1.29c.
9626
9627 2001-10-02 Akim Demaille <akim@epita.fr>
9628
9629 * tests/regression.at (Invalid CPP headers): New.
9630 From Alexander Belopolsky.
9631 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
9632
9633 2001-10-02 Akim Demaille <akim@epita.fr>
9634
9635 * tests/regression.at (Invalid input): New.
9636 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
9637 Reported by Shura.
9638
9639 2001-10-02 Akim Demaille <akim@epita.fr>
9640
9641 * tests/calc.at: Now that --debug works, the tests must be adjusted.
9642
9643 2001-10-02 Akim Demaille <akim@epita.fr>
9644
9645 * src/output.c (output_parser): Assert `skeleton'.
9646 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
9647 systems.
9648 From Shura.
9649
9650 2001-10-01 Marc Autret <autret_m@epita.fr>
9651
9652 * src/lex.h: Echo modifications.
9653 * src/lex.c (unlex): Parameter is now token_t.
9654 From Hans Aberg.
9655
9656 2001-10-01 Marc Autret <autret_m@epita.fr>
9657
9658 * src/main.c: Include lex.h.
9659 From Hans Aberg.
9660
9661 2001-09-29 Akim Demaille <akim@epita.fr>
9662
9663 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
9664
9665 2001-09-28 Akim Demaille <akim@epita.fr>
9666
9667 * tests/testsuite.at: Update to newer Autotest.
9668 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
9669
9670 2001-09-27 Akim Demaille <akim@epita.fr>
9671
9672 Position independent wrapper.
9673
9674 * tests/bison: Remove.
9675 * tests/bison.in: New.
9676 * configure.in: Adjust.
9677
9678 2001-09-27 Paul Eggert <eggert@twinsun.com>
9679
9680 Port quotearg fixes from tar 1.13.24.
9681
9682 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
9683 tm to be declared.
9684 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
9685 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
9686
9687 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
9688 * m4/mbrtowc.m4: New file.
9689 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
9690 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
9691
9692 2001-09-27 Akim Demaille <akim@epita.fr>
9693
9694 Bump to 1.29c.
9695
9696 2001-09-27 Akim Demaille <akim@epita.fr>
9697
9698 Version 1.29b.
9699
9700 2001-09-25 Akim Demaille <akim@epita.fr>
9701
9702 * src/system.h: Include `xalloc.h'.
9703 Remove it from the C files.
9704 * src/files.c (output_files): Free the obstacks.
9705 * src/lex.c (init_lex): Rename as...
9706 (lex_init): this.
9707 (lex_free): New.
9708 * src/main.c (main): Use it.
9709
9710 2001-09-24 Marc Autret <autret_m@epita.fr>
9711
9712 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
9713 to output informations in fout (FILE*).
9714 (open_graph, close_graph): Likewise.
9715 (output_graph, output_edge, output_node): Likewise.
9716 * src/vcg.h: Update function prototypes.
9717 * src/print_graph.c (print_graph): Open output graph file.
9718 (print_actions): Adjust.
9719 * src/files.h: Remove extern declaration.
9720 * src/files.c: Remove graph_obstack declaration.
9721 (open_files): Remove graph_obstack initialization.
9722 (output_files): Remove graph_obstack saving.
9723
9724 2001-09-24 Marc Autret <autret_m@epita.fr>
9725
9726 * src/files.c (compute_output_file_names): Fix.
9727
9728 2001-09-24 Marc Autret <autret_m@epita.fr>,
9729 Akim Demaille <akim@epita.fr>
9730
9731 * src/reader.c (reader): Remove call to free_symtab ().
9732 * src/main.c (main): Call it here.
9733 Include symtab.h.
9734 * src/conflicts.c (initialize_conflicts): Rename as...
9735 (solve_conflicts): this.
9736 * src/print.c (print_core, print_actions, print_state)
9737 (print_grammar): Dump to a file instead a `output_obstack'.
9738 (print_results): Dump `output_obstack', and then proceed with the
9739 FILE *.
9740 * src/files.c (compute_output_file_names, close_files): New.
9741 (output_files): Adjust.
9742 * src/main.c (main): Adjust.
9743
9744 2001-09-23 Marc Autret <autret_m@epita.fr>
9745
9746 * src/files.c (compute_header_macro): Computes header macro name
9747 from spec_defines_file when given.
9748
9749 2001-09-23 Marc Autret <autret_m@epita.fr>
9750
9751 * src/files.c (output_files): Add default extensions.
9752
9753 2001-09-22 Akim Demaille <akim@epita.fr>
9754
9755 * src/conflicts.c (finalize_conflicts): Rename as...
9756 (free_conflicts): this.
9757
9758 2001-09-22 Akim Demaille <akim@epita.fr>
9759
9760 * src/gram.c (gram_free): Rename back as...
9761 (dummy): this.
9762 (output_token_translations): Free `token_translations'.
9763 * src/symtab.c (free_symtab): Free the tag field.
9764
9765 2001-09-22 Akim Demaille <akim@epita.fr>
9766
9767 Remove `translations' as it is always set to true.
9768
9769 * src/gram.h: Adjust.
9770 * src/reader.c (packsymbols, parse_token_decl): Adjust
9771 * src/print.c (print_grammar): Adjust.
9772 * src/output.c (output_token_translations): Adjust.
9773 * src/lex.c (lex): Adjust.
9774 * src/gram.c: Be sure the set pointers to NULL.
9775 (dummy): Rename as...
9776 (gram_free): this.
9777
9778 2001-09-22 Akim Demaille <akim@epita.fr>
9779
9780 * configure.in: Invoke AM_LIB_DMALLOC.
9781 * src/system.h: Use dmalloc.
9782 * src/LR0.c: Be sure to have pointers initialized to NULL.
9783 (allocate_itemsets): Allocate kernel_items only if needed.
9784
9785 2001-09-22 Akim Demaille <akim@epita.fr>
9786
9787 * configure.in: Bump to 1.29b.
9788 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
9789 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
9790 need xmalloc.c in calc.y.
9791 From Pascal Bart.
9792
9793 2001-09-21 Akim Demaille <akim@epita.fr>
9794
9795 Version 1.29a.
9796 * Makefile.maint, config/config.guess, config/config.sub,
9797 * config/missing: Update from masters.
9798 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
9799 upon package.m4.
9800 * configure.in (ALL_LINGUAS): Add `tr'.
9801
9802 2001-09-21 Akim Demaille <akim@epita.fr>
9803
9804 * tests/Makefile.am (package.m4): Move to...
9805 ($(srcdir)/$(TESTSUITE)): here.
9806
9807 2001-09-20 Akim Demaille <akim@epita.fr>
9808
9809 * src/complain.c: No longer try to be standalone: use system.h.
9810 Don't assume __STDC__ is defined to 1. Just test if it is defined.
9811 * src/complain.h: Likewise.
9812 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
9813 Remove the unused variable `n'.
9814 From Albert Chin-A-Young.
9815
9816 2001-09-18 Marc Autret <autret_m@epita.fr>
9817
9818 * doc/bison.1: Update.
9819 * doc/bison.texinfo (Bison Options): Update --defines and --graph
9820 descriptions.
9821 (Option Cross Key): Update.
9822 Add --graph.
9823
9824 2001-09-18 Marc Autret <autret_m@epita.fr>
9825
9826 * tests/regression.at: New test (comment in %union).
9827
9828 2001-09-18 Marc Autret <autret_m@epita.fr>
9829
9830 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
9831 do that.
9832 Reported by Keith Browne.
9833
9834 2001-09-18 Marc Autret <autret_m@epita.fr>
9835
9836 * tests/output.at: Add tests for --defines and --graph.
9837
9838 2001-09-18 Marc Autret <autret_m@epita.fr>
9839
9840 * tests/output.at: Removes tests of %{header,src}_extension features.
9841
9842 2001-09-18 Akim Demaille <akim@epita.fr>
9843
9844 * tests/Makefile.am (package.m4): New.
9845 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
9846 (_AT_CHECK_CALC_ERROR): Likewise.
9847 Factor the `, ' part of verbose error messages.
9848
9849 2001-09-18 Marc Autret <autret_m@epita.fr>
9850
9851 * src/getargs.c (longopts): Declare --defines and --graph as options
9852 with optional arguments.
9853 * src/files.h: Add extern declarations.
9854 * src/files.c (spec_graph_file, spec_defines_file): New.
9855 (output_files): Update.
9856 Remove CPP-outed code.
9857
9858 2001-09-18 Marc Autret <autret_m@epita.fr>
9859
9860 Turn off %{source,header}_extension feature.
9861
9862 * src/files.c (compute_exts_from_gf): Update.
9863 (compute_exts_from_src): Update.
9864 (output_files): CPP-out useless code.
9865 * src/files.h: Remove {header,source}_extension extern declarations.
9866 * src/reader.c (parse_dquoted_param): CPP-out.
9867 (parse_header_extension_decl): Remove.
9868 (parse_source_extension_decl): Remove.
9869 (read_declarations): Remove cases tok_{hdrext,srcext}.
9870 * src/lex.c (percent_table): Remove {header,source}_extension entries.
9871 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
9872
9873 2001-09-10 Akim Demaille <akim@epita.fr>
9874
9875 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
9876 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
9877 (AT_CHECK_OUTPUT): this.
9878 Merely check ls' exit status, its output is useless.
9879
9880 2001-09-10 Akim Demaille <akim@epita.fr>
9881
9882 * tests/calc.at: Use m4_match.
9883 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
9884
9885 2001-09-10 Marc Autret <autret_m@epita.fr>,
9886 Akim Demaille <akim@epita.fr>
9887
9888 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
9889 enum color_e.
9890 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
9891 to `normal'.
9892 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
9893 * src/lex.h: Adjust prototype.
9894 (token_t): Add `tok_undef'.
9895 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
9896 (parse_percent_token): Now returns token_t.
9897 Add default statement in switch.
9898 (lex): Separate `c' as an input variable, from the token_t result
9899 part.
9900 (unlexed): Is a token_t.
9901
9902 2001-09-10 Akim Demaille <akim@epita.fr>
9903
9904 * configure.in: Bump to 1.29a.
9905
9906 2001-09-07 Akim Demaille <akim@epita.fr>
9907
9908 Version 1.29.
9909
9910 2001-08-30 Akim Demaille <akim@epita.fr>
9911
9912 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
9913 * m4/atconfig.m4: Remove.
9914 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
9915 * tests/bison: New.
9916 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
9917 m4_if, m4_patsubst, and m4_regexp.
9918 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
9919 `input' file instead of echo.
9920
9921 2001-08-29 Akim Demaille <akim@epita.fr>
9922
9923 Bump to 1.28e.
9924
9925 2001-08-29 Akim Demaille <akim@epita.fr>
9926
9927 Version 1.28d.
9928
9929 2001-08-29 Paul Eggert <eggert@twinsun.com>
9930
9931 * src/bison.simple (yyparse): Don't take the address of an
9932 item before the start of an array, as that doesn't conform to
9933 the C Standard.
9934
9935 2001-08-29 Robert Anisko <anisko_r@epita.fr>
9936
9937 * doc/bison.texinfo (Location Tracking Calc): New node.
9938
9939 2001-08-29 Paul Eggert <eggert@twinsun.com>
9940
9941 * src/output.c (output): Do not define const, as this now
9942 causes more problems than it cures.
9943
9944 2001-08-29 Akim Demaille <akim@epita.fr>
9945
9946 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
9947 the nodes.
9948 Be sure to tag the `detailmenu'.
9949
9950 2001-08-29 Akim Demaille <akim@epita.fr>
9951
9952 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
9953 download in a tmp dir.
9954
9955 2001-08-28 Marc Autret <autret_m@epita.fr>
9956
9957 * config/depcomp: New file.
9958
9959 2001-08-28 Marc Autret <autret_m@epita.fr>
9960
9961 * doc/bison.1 (mandoc): Adjust.
9962 From Juan Manuel Guerrero.
9963
9964 2001-08-28 Marc Autret <autret_m@epita.fr>
9965
9966 * src/print_graph.c (print_state): Fix.
9967
9968 2001-08-27 Marc Autret <autret_m@epita.fr>
9969
9970 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
9971 char * members.
9972 Echo modifications to the functions prototypes.
9973 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
9974
9975 2001-08-27 Marc Autret <autret_m@epita.fr>
9976
9977 * src/vcg.c: Include `xalloc.h'.
9978 (add_colorentry): New.
9979 (add_classname): New.
9980 (add_infoname): New.
9981 * src/vcg.h: Add new prototypes.
9982
9983 2001-08-27 Akim Demaille <akim@epita.fr>
9984
9985 * Makefile.maint: Sync. again with CVS Autoconf.
9986
9987 2001-08-27 Akim Demaille <akim@epita.fr>
9988
9989 * Makefile.maint: Formatting changes.
9990 (po-update, cvs-update, update): New targets.
9991 (AMTAR): Remove.
9992
9993 2001-08-27 Akim Demaille <akim@epita.fr>
9994
9995 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
9996 * Makefile.maint: Sync. with CVS Autoconf.
9997
9998 2001-08-27 Marc Autret <autret_m@epita.fr>
9999
10000 * src/vcg.h (struct infoname_s): New.
10001 (struct colorentry_s): New.
10002 (graph_s): New fields {vertical,horizontal}_order in structure.
10003 Add `infoname' field.
10004 Add `colorentry' field;
10005 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
10006 (G_HORIZONTAL_ORDER): New.
10007 (G_INFONAME): New.
10008 (G_COLORENTRY): New.
10009 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
10010 Add output of `infoname'.
10011 Add output of `colorentry'.
10012
10013 2001-08-27 Marc Autret <autret_m@epita.fr>
10014
10015 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
10016 This one shadowed a global parameter.
10017
10018 2001-08-24 Marc Autret <autret_m@epita.fr>
10019
10020 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
10021 instead of `unsigned'.
10022 (print_state): Do not call obstack_object_size () in obstack_grow ()
10023 to avoid macro variables shadowing.
10024
10025 2001-08-23 Marc Autret <autret_m@epita.fr>
10026
10027 * src/lex.c (percent_table): Typo: s/naem/name/.
10028 Add graph option.
10029 Normalize new options declarations.
10030
10031 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
10032
10033 * tests/suite.at: Exercise %header_extension and %source_extension.
10034
10035 2001-08-16 Marc Autret <autret_m@epita.fr>
10036
10037 * src/reader.c (parse_dquoted_param): New.
10038 (parse_header_extension_decl): Use it.
10039 (parse_source_extension_decl): Likewise.
10040
10041 2001-08-16 Marc Autret <autret_m@epita.fr>
10042
10043 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
10044 (get_xxxx_str): Use assert () instead of complain ().
10045 Remove return invokations in default cases.
10046 (get_decision_str): Modify default behaviour. Remove second argument.
10047 Echo modifications on calls.
10048 (output_graph): Fix.
10049
10050 2001-08-16 Marc Autret <autret_m@epita.fr>
10051
10052 * src/getargs.c (usage): Update with ``-g, --graph''.
10053
10054 2001-08-16 Marc Autret <autret_m@epita.fr>
10055
10056 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
10057 (Option Cross Key): Likewise.
10058 * doc/bison.1: Update.
10059
100602001-09-25 Pascal Bart <pascal.bart@epita.fr>
10061
10062 * src/output.c (output_master_parser): Don't finish action_obstack.
10063 (output_parser): Don't care about the muscle action, here.
10064 (prepare): Copy the action_obstack in the action muscle.
10065 (output): Free action_obstack.
10066
100672001-09-23 Pascal Bart <pascal.bart@epita.fr>
10068
10069 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
10070 will contain `%union' declaration.
10071 (parse_union_decl): Delete #line directive output.
10072 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
10073 informations about %union.
10074 (parse_union_decl): Copy the union_obstack in the muscle stype.
10075 * src/bison.simple: Add new #line directive.
10076 Add typdef %%stype YYSTYPE.
10077
100782001-09-23 Pascal Bart <pascal.bart@epita.fr>
10079
10080 * src/bison.simple: Add new `#line' directive.
10081
100822001-09-22 Pascal Bart <pascal.bart@epita.fr>
10083
10084 * src/bison.simple: New `#line' directive.
10085 * src/output.c (output_parser): Support new dynamic muscle input_line.
10086
100872001-09-22 Marc Autret <autret_m@epita.fr>
10088
10089 * src/output.c (output_master_parser): New.
10090 (output_parser): Be more re-entrant.
10091
100922001-09-21 Marc Autret <autret_m@epita.fr>
10093
10094 * src/reader.c (copy_definition, parse_union_decl): Update and use
10095 `linef' muscle.
10096 (copy_action): Likewise.
10097 Use obstack_1grow ().
10098 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
10099
101002001-09-21 Marc Autret <autret_m@epita.fr>
10101
10102 * src/options.c (option_table): Adjust.
10103 * src/lex.c (parse_percent_token): Fix.
10104
101052001-09-20 Pascal Bart <pascal.bart@epita.fr>
10106
10107 * src/options.c (symtab.h): Include it, need by lex.h.
10108
101092001-09-20 Pascal Bart <pascal.bart@epita.fr>
10110
10111 * src/lex.c (parse_percent_token): Change type of variable `tx', which
10112 is now an option_table_struct*.
10113 (option_strcmp): New function option_strcmp.
10114 (parse_percent_token): Call option_strcmp.
10115 * src/getargs.c (xalloc.h, options.h): Include it.
10116 (getargs): Call create_long_option_table.
10117 (getargs): Free longopts at the end of the function.
10118 (shortopts): Move in options.c.
10119 * src/options.c (create_long_option_table): New function. Convert
10120 information from option_table to option structure.
10121 * src/reader.c (options.h): Include it.
10122
10123 * src/Makefile.am: Adjust.
10124 * src/options.c (option_table): Create from longopts and percent_table.
10125 * src/getargs.c (longopts): Delete.
10126 * src/lex.c (struct percent_table_struct): Delete.
10127 (percent_table): Delete.
10128 (options.h): Include it.
10129 * src/options.c: Create.
10130 * src/options.h: Create.
10131 Declare enum opt_access_e.
10132 Define struct option_table_struct.
10133
101342001-09-20 Marc Autret <autret_m@epita.fr>
10135
10136 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
10137 sections of Bison.
10138
101392001-09-19 Pascal Bart <pascal.bart@epita.fr>
10140
10141 * src/bison.simple: s/%%filename/%%skeleton.
10142 * src/muscle_tab.c (getargs.h): Include it.
10143 (muscle_init): Insert new muscle skeleton.
10144
101452001-09-18 Pascal Bart <pascal.bart@epita.fr>
10146
10147 * src/output.c (output_parser): Delete unused variable actions_dumped.
10148
101492001-09-07 Pascal Bart <pascal.bart@epita.fr>
10150
10151 * src/output.c (output): Delete call to reader_output_yylsp.
10152 * src/reader.c (reader): Likewise.
10153 * src/reader.h: Delete declaration of reader_output_yylsp.
10154
101552001-09-02 Marc Autret <autret_m@epita.fr>
10156
10157 * src/reader.c: Include muscle_tab.h.
10158 (parse_union_decl): Update.
10159 (parse_macro_decl): Rename parse_muscle_decl.
10160 Update to use renamed functions and variable.
10161 (read_declarations, copy_action, read_additionnal_code, : Updated
10162 with correct variables and functions names.
10163 (packsymbols, reader): Likewise.
10164
10165 * src/reader.h (muscle_obstack): Extern declaration update.
10166
10167 * src/output.c: Include muscle_tab.h
10168 In all functions using macro_insert, change by using muscle_insert ().
10169 (macro_obstack): Rename muscle_obstack.
10170 Echo modifications in the whole file.
10171 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
10172 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
10173 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
10174
10175 * src/muscle_tab.h: Update double inclusion macros.
10176 (macro_entry_s): Rename muscle_entry_s.
10177 Update prototypes.
10178
10179 * src/muscle_tab.c: Include muscle_tab.h.
10180 Rename macro_tabble to muscle_table.
10181 (mhash1, mhash2, mcmp): Use muscle_entry.
10182 (macro_init): Rename muscle_init. Update.
10183 (macro_insert): Rename muscle_insert. Update.
10184 (macro_find): Rename muscle_find. Update.
10185
10186 * src/main.c: Include muscle_tab.h.
10187 (main): Call muscle_init ().
10188 * src/Makefile.am (bison_SOURCES): Echo modifications.
10189
101902001-09-02 Marc Autret <autret_m@epita.fr>
10191
10192 Now the files macro_tab.[ch] are named muscle_tab.[ch].
10193
10194 * src/muscle_tab.c, src/muscle_tab.h: Add files.
10195
101962001-09-02 Marc Autret <autret_m@epita.fr>
10197
10198 * src/macrotab.c, src/macrotab.h: Remove.
10199
102002001-09-01 Pascal Bart <pascal.bart@epita.fr>
10201
10202 * src/reader.c (copy_guard): Use muscle to specify the `#line'
10203 filename.
10204
102052001-09-01 Marc Autret <autret_m@epita.fr>
10206
10207 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
10208 to an explicit value to activate the feature. We do it here.
10209
102102001-08-31 Pascal Bart <pascal.bart@epita.fr>
10211
10212 * src/output.c (prepare): Delete the `filename' muscule insertion.
10213 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
10214 (parse_union_decl): Likewise.
10215 * src/macrotab.c (macro_init): Initialize filename by infile.
10216
102172001-08-31 Marc Autret <autret_m@epita.fr>
10218
10219 * src/bison.simple (YYLSP_NEEDED): New definition.
10220 * src/output.c (prepare): Add macro insertion of `locations_flag'
10221
102222001-08-31 Pascal Bart <pascal.bart@epita.fr>
10223
10224 * src/output.c (prepare): Delete insertion of previous muscles,
10225 and insert the `prefix' muscles.
10226 * src/macrotab.c (macro_init): Likewise.
10227 (macro_init): Initialization prefix directive by `yy'.
10228 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
10229 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
10230 yylval, yydebug, yyerror, yynerrs and yyparse.
10231 New directive `#define' to substitute yydebug, ... with option
10232 name_prefix.
10233
102342001-08-31 Pascal Bart <pascal.bart@epita.fr>
10235
10236 * src/main.c (main): Standardize.
10237 * src/output.c (output_table_data, output_parser): Likewise.
10238 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
10239
102402001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
10241
10242 * src/reader.c (read_additionnal_code): Rename %%user_code to
10243 %%epilogue.
10244 * src/output.c (output): Rename %%declarations to %%prologue.
10245 * src/bison.simple: Echo modifications.
10246
102472001-08-31 Marc Autret <autret_m@epita.fr>
10248
10249 * src/reader.c (readgram): CleanUp.
10250 (output_token_defines): Likewise.
10251 (packsymbols): Likewise.
10252 (reader): Likewise.
10253 * src/output.c (output): CPP-out useless code.
10254
102552001-08-31 Pascal Bart <pascal.bart@epita.fr>
10256
10257 * src/reader.c (reader): Delete obsolete call to function
10258 output_trailers and output_headers.
10259 * src/output.h: Remove obsolete functions prototypes of output_headers
10260 and output_trailers.
10261
102622001-08-30 Pascal Bart <pascal.bart@epita.fr>
10263
10264 * src/main.c: Include macrotab.h.
10265 * src/macrotab.h (macro_entry_s): Constify fields.
10266 Adjust functions prototypes.
10267 * src/macrotab.c (macro_insert): Constify key and value.
10268 (macro_find): Constify key.
10269 (macro_insert): Include 'xalloc.h'
10270 (macro_insert): Use XMALLOC.
10271 (macro_find): Constify return value.
10272 * src/output.c (output_table_data): Rename table to table_data.
10273 (output_parser): Constify macro_key, macro_value.
10274
102752001-08-30 Marc Autret <autret_m@epita.fr>
10276
10277 * src/reader.c (parse_skel_decl): New.
10278 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
10279 * src/lex.h (token_t): New token `tok_skel'.
10280 * src/lex.c (percent_table): Add skeleton option entry.
10281 Standardize.
10282
102832001-08-29 Marc Autret <autret_m@epita.fr>
10284
10285 * src/bison.simple: Add %%user_code directive at the end.
10286 * src/reader.c (read_additionnal_code): New.
10287 (reader): Use it.
10288 * src/output.c (output_program): Remove.
10289 (output): Update.
10290
102912001-08-28 Marc Autret <autret_m@epita.fr>
10292
10293 * src/output.c (output_actions): Clean up.
10294 (output_gram): CPP-out useless code.
10295 * src/reader.c (reader): Clean up, CPP-out useless code.
10296
102972001-08-28 Pascal Bart <pascal.bart@epita.fr>
10298
10299 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
10300 directive.
10301 * src/bison.simple: Add `%%definitions'.
10302
103032001-08-28 Marc Autret <autret_m@epita.fr>
10304
10305 * config/depcomp: New file.
10306
103072001-08-27 Paul Eggert <eggert@twinsun.com>
10308
10309 * src/bison.simple (yyparse): Don't take the address of an
10310 item before the start of an array, as that doesn't conform to
10311 the C Standard.
10312
103132001-08-27 Robert Anisko <robert.anisko@epita.fr>
10314
10315 * src/output.c (output): Remove the initialization of the macro
10316 obstack. It was done too late here.
10317
10318 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
10319 completely wrong.
10320 (reader): Initialize the macro obstack here, since we need it to grow
10321 '%define' directives.
10322
10323 * src/reader.h: Declare the macro obstack as extern.
10324
103252001-08-27 Robert Anisko <robert.anisko@epita.fr>
10326
10327 * src/output.c (output_parser): Fix. Store single '%' characters in
10328 the output obstack instead of throwing them away.
10329
103302001-08-27 Akim Demaille <akim@epita.fr>
10331
10332 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
10333
103342001-08-25 Robert Anisko <robert.anisko@epita.fr>
10335
10336 * lib/Makefile.am: Adjust.
10337
103382001-08-25 Robert Anisko <robert.anisko@epita.fr>
10339
10340 * src/bison.simple: Update and add '%%' directives.
10341
103422001-08-25 Robert Anisko <robert.anisko@epita.fr>
10343
10344 * src/reader.c (reader): Remove calls to 'output_headers' and
10345 'output_trailers'. Remove some C output.
10346 (readgram): Disable a piece of code that was writing a default
10347 definition for 'YYSTYPE'.
10348 (reader_output_yylsp): Remove.
10349 (packsymbols): Output token defintions to a macro.
10350 (copy_definition): Disable C output.
10351
10352 * src/reader.c (parse_macro_decl): New function used to parse macro
10353 declarations.
10354 (copy_string2): Put the body of copy_string into this new function.
10355 Add a parameter to let the caller choose whether he wants to copy the
10356 string delimiters or not.
10357 (copy_string): Be a simple call to copy_string2 with the last argument
10358 bound to true.
10359 (read_declarations): Add case for macro definition.
10360 (copy_identifier): New.
10361 (parse_macro_decl): Read macro identifiers using copy_identifier
10362 rather than lex.
10363
103642001-08-25 Robert Anisko <robert.anisko@epita.fr>
10365
10366 * src/output.c (prepare): Add prefixed names.
10367 (output_parser): Output semantic actions.
10368 (output_parser): Fix bug on '%%line' directives.
10369
10370 * src/output.c (output_headers): Remove. The C code printed by this
10371 function should now be in the skeletons.
10372 (output_trailers): Remove.
10373 (output): Disable call to 'reader_output_yylsp'.
10374 (output_rule_data): Do not output tables to the table obstack.
10375
10376 * src/output.c: Remove some C dedicated output.
10377 Improve the use of macro and output obstacks.
10378 (output_defines): Remove.
10379
10380 * src/output.c (output_token_translations): Associate 'translate'
10381 table with a macro. No output to the table obstack.
10382 (output_gram): Same for 'rhs' and 'prhs'.
10383 (output_stos): Same for 'stos'.
10384 (output_rule_data): Same for 'r1' and 'r2'.
10385 (token_actions): Same for 'defact'.
10386 (goto_actions): Same for 'defgoto'.
10387 (output_base): Same for 'pact' and 'pgoto'.
10388 (output_table): Same for 'table'.
10389 (output_check): Same for 'check'.
10390
10391 * src/output.c (output_table_data): New function.
10392 (output_short_table): Remove.
10393 (output_short_or_char_table): Remove.
10394
10395 * src/output.c (output_parser): Replace most of the skeleton copy code
10396 with something new. Skeletons are now processed character by character
10397 rather than line by line, and Bison looks for '%%' macros. This is the
10398 first step in making Bison's output process (a lot) more flexible.
10399 (output_parser): Use the macro table.
10400
104012001-08-25 Robert Anisko <robert.anisko@epita.fr>
10402
10403 * src/main.c (main): Initialize the macro table.
10404
104052001-08-25 Robert Anisko <robert.anisko@epita.fr>
10406
10407 * src/lex.c (percent_table): Add tok_define.
10408 * src/lex.h: Add tok_define.
10409
104102001-08-25 Robert Anisko <robert.anisko@epita.fr>
10411
10412 * src/macrotab.c: New file.
10413 * src/macrotab.h: New file.
10414 * src/Makefile.am: Update.
10415
104162001-08-25 Robert Anisko <robert.anisko@epita.fr>
10417
10418 * lib/hash.c: New file.
10419 * lib/hash.h: New file.
10420 * lib/Makefile.am: Update.
10421
104222001-08-15 Akim Demaille <akim@epita.fr>
10423
10424 Version 1.28c.
10425
104262001-08-15 Marc Autret <autret_m@epita.fr>
10427
10428 * src/reader.c (readgram): Indent output macro YYSTYPE.
10429 (packsymbols): Likewise.
10430 (output_token_defines): Likewise.
10431 * src/files.c: Standardize.
10432 (compute_header_macro): New.
10433 (defines_obstack_save): New. Use compute_header_macro.
10434 (output_files): Update. Use defines_obstack_save.
10435
104362001-08-15 Akim Demaille <akim@epita.fr>
10437
10438 * doc/bison.texinfo (Table of Symbols): Document
10439 YYSTACK_USE_ALLOCA.
10440
104412001-08-15 Akim Demaille <akim@epita.fr>
10442
10443 * missing: Update from CVS Automake.
10444 * config/config.guess, config/config.sub, config/texinfo.tex:
10445 Update from gnu.org.
10446
104472001-08-15 Akim Demaille <akim@epita.fr>
10448
10449 * Makefile.maint: Sync with CVS Autoconf.
10450
104512001-08-14 Pascal Bart <pascal.bart@epita.fr>
10452
10453 * doc/bison.texinfo: Include GNU Free Documentation License from
10454 `fdl.texi'.
10455 * doc/fdl.texi: Add to package.
10456
104572001-08-14 Marc Autret <autret_m@epita.fr>
10458
10459 Turn on %{source,header}_extension features.
10460
10461 * src/lex.c (percent_table): Un-CPP out header_extension and
10462 source_extension.
10463 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
10464 (compute_exts_from_src): Remove conditions. It restores priorities
10465 between options.
10466
104672001-08-14 Marc Autret <autret_m@epita.fr>
10468
10469 * src/files.c (compute_base_names): Add extensions computing when
10470 `--file-prefix' used.
10471 Standardize function calls.
10472
104732001-08-13 Marc Autret <autret_m@epita.fr>
10474
10475 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
10476 defining it (defined but null disables alloca).
10477
104782001-08-13 Marc Autret <autret_m@epita.fr>
10479
10480 * src/bison.simple (_yy_memcpy): CPP reformat.
10481
104822001-08-13 Pascal Bart <pascal.bart@epita.fr>
10483
10484 * tests/atconfig.in (CPPFLAGS): Fix.
10485
104862001-08-10 Pascal Bart <pascal.bart@epita.fr>
10487
10488 * doc/bison.texinfo: Include GNU General Public License from
10489 `gpl.texi'.
10490 * doc/gpl.texi: Add to package.
10491
104922001-08-10 Marc Autret <autret_m@epita.fr>
10493
10494 * src/print_graph.h: Fix.
10495 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
10496
104972001-08-10 Akim Demaille <akim@epita.fr>
10498
10499 * src/system.h: Provide default declarations for stpcpy, strndup,
10500 and strnlen.
10501
105022001-08-10 Robert Anisko <anisko_r@epita.fr>
10503
10504 * doc/bison.texinfo (Locations): Update @$ stuff.
10505
105062001-08-09 Robert Anisko <anisko_r@epita.fr>
10507
10508 * src/bison.simple (YYLLOC_DEFAULT): Update.
10509 (yyparse): Adjust.
10510
105112001-08-08 Marc Autret <autret_m@epita.fr>
10512
10513 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
10514 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
10515 Reported by Fabrice Bauzac.
10516
105172001-08-08 Marc Autret <autret_m@epita.fr>
10518
10519 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
10520 * src/vcg.c (output_node): Fix.
10521 * src/vcg.h: Cleanup.
10522 * src/print_graph.c: Add comments.
10523 (node_output_size): New global variable. Simplify the formatting of
10524 the VCG graph output.
10525 (print_actions): Unused code is now used. It notifies the final state
10526 and no action states in the VCG graph. It also give the reduce actions.
10527 The `shift and goto' edges are red and the `go to state' edges are
10528 blue.
10529 Get the current node name and node_obstack by argument.
10530 (node_obstack): New variable.
10531 (print_state): Manage node_obstack.
10532 (print_core): Use node_obstack given by argument.
10533 A node is not only computed here but in print_actions also.
10534 (print_graph): CPP out useless code instead of commenting it.
10535
105362001-08-07 Pascal Bart <pascal.bart@epita.fr>
10537
10538 * tests/atconfig.in (CPPFLAGS): Fix.
10539
105402001-08-07 Akim Demaille <akim@epita.fr>
10541
10542 * src/print_graph.c (quote): New.
10543 (print_core): Use it.
10544
105452001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
10546
10547 * src/vcg.c (complain.h): Include it.
10548 Unepitaize `return' invocations.
10549 [NDEBUG] (main): Remove.
10550 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
10551 * src/files.c (open_files): Initialize graph_obstack.
10552 * src/print_graph.c (print_actions): CPP out useless code.
10553 (print_core): Don't output the last `\n' in labels.
10554 Use `quote'.
10555 * src/files.c (output_files): Output the VCG file.
10556 * src/main.c (main): Invoke print_graph ();
10557
105582001-08-06 Marc Autret <autret_m@epita.fr>
10559
10560 Automaton VCG graph output.
10561 Using option ``-g'' or long option ``--graph'', you can generate
10562 a gram_filename.vcg file containing a VCG description of the LALR (1)
10563 automaton of your grammar.
10564
10565 * src/main.c: Call to print_graph() function.
10566 * src/getargs.h: Update.
10567 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
10568 (graph_flag): New flag.
10569 (longopts): Update.
10570 (getargs): Add case `g'.
10571 * src/files.c (graph_obstack): New obstack struct.
10572 (open_files): Initialize new obstack.
10573 (output_files): Saves graph_obstack if required.
10574 * src/files.h (graph_obstack): New extern declaration.
10575 * src/Makefile.am: Add new source files.
10576
105772001-08-06 Marc Autret <autret_m@epita.fr>
10578
10579 * src/print_graph.c, src/print_graph.h (graph): New.
10580 * src/vcg.h: New file.
10581 * src/vcg.c: New file, VCG graph handling.
10582
105832001-08-06 Marc Autret <autret_m@epita.fr>
10584
10585 Add of %source_extension and %header_extension which specify
10586 the source or/and the header output file extension.
10587
10588 * src/files.c (compute_base_names): Remove initialisation of
10589 src_extension and header_extension.
10590 (compute_exts_from_gf): Update.
10591 (compute_exts_from_src): Update.
10592 (output_files): Update.
10593 * src/reader.c (parse_header_extension_decl): New.
10594 (parse_source_extension_decl): New.
10595 (read_declarations): New case statements for the new tokens.
10596 * src/lex.c (percent_table): Add entries for %source_extension
10597 and %header_extension.
10598 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
10599
106002001-08-06 Marc Autret <autret_m@epita.fr>
10601
10602 * configure.in: Bump to 1.28c.
10603 * doc/bison.texinfo: Texinfo thingies.
10604
106052001-08-04 Pascal Bart <pascal.bart@epita.fr>
10606
10607 * tests/atconfig.in (CPPFLAGS): Add.
10608 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
10609
106102001-08-03 Akim Demaille <akim@epita.fr>
10611
10612 Version 1.28b.
10613
106142001-08-03 Akim Demaille <akim@epita.fr>
10615
10616 * tests/Makefile.am (check-local): Ship testsuite.
10617 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
10618 Include `string.h'.
10619
106202001-08-03 Akim Demaille <akim@epita.fr>
10621
10622 * configure.in: Try using -Wformat when compiling.
10623
106242001-08-03 Akim Demaille <akim@epita.fr>
10625
10626 * configure.in: Bump to 1.28b.
10627
106282001-08-03 Akim Demaille <akim@epita.fr>
10629
10630 * src/complain.c: Adjust strerror_r portability issues.
10631
106322001-08-03 Akim Demaille <akim@epita.fr>
10633
10634 Version 1.28a.
10635
106362001-08-03 Akim Demaille <akim@epita.fr>
10637
10638 * src/getargs.c, src/getarg.h (skeleton)): Constify.
10639 * src/lex.c (literalchar): Avoid name clashes on `buf'.
10640 * src/getargs.c: Include complain.h.
10641 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
10642 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
10643
106442001-08-03 Akim Demaille <akim@epita.fr>
10645
10646 * src/reader.c (readgram): Display hidden chars in error messages.
10647
106482001-08-03 Akim Demaille <akim@epita.fr>
10649
10650 Update to gettext 0.10.39.
10651
106522001-08-03 Akim Demaille <akim@epita.fr>
10653
10654 * lib/strspn.c: New.
10655
106562001-08-01 Marc Autret <autret_m@epita.fr>
10657
10658 * doc/bison.texinfo: Update.
10659 * doc/bison.1 (mandoc): Update.
10660 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
10661 * src/files.c: Support output files extensions computing.
10662 (src_extension): New static variable.
10663 (header_extension): New static variable.
10664 (tr): New function.
10665 (get_extension_index): New function, gets the index of an extension
10666 filename in a string.
10667 (compute_exts_from_gf): New function, computes extensions from the
10668 grammar file extension.
10669 (compute_exts_from_src): New functions, computes extensions from the
10670 C source file extension, file given by ``-o'' option.
10671 (compute_base_names): Update.
10672 (output_files): Update.
10673
106742001-08-01 Robert Anisko <anisko_r@epita.fr>
10675
10676 * doc/bison.texi: Document @$.
10677 (Locations): New section.
10678
106792001-07-18 Akim Demaille <akim@epita.fr>
10680
10681 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
10682 * config/prev-version.txt, config/move-if-change: New.
10683 * Makefile.am: Adjust.
10684
106852001-07-08 Pascal Bart <pascal.bart@epita.fr>
10686
10687 * src/bison.simple (yyparse): Suppress warning `comparaison
10688 between signed and unsigned'.
10689
106902001-07-05 Pascal Bart <pascal.bart@epita.fr>
10691
10692 * src/getargs.h (raw_flag): Remove.
10693 * src/getargs.c: Die on `-r'/`--raw'.
10694 * src/lex.c (parse_percent_token): Die on `%raw'.
10695 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
10696 * tests/calc.at: Suppress test with option `--raw'.
10697
106982001-07-14 Akim Demaille <akim@epita.fr>
10699
10700 * config/: New.
10701 * configure.in: Require Autoconf 2.50.
10702 Update to gettext 0.10.38.
10703
107042001-03-16 Akim Demaille <akim@epita.fr>
10705
10706 * doc/bison.texinfo: ANSIfy the examples.
10707
107082001-03-16 Akim Demaille <akim@epita.fr>
10709
10710 * getargs.c (skeleton): New variable.
10711 (longopts): --skeleton is a new option.
10712 (shortopts, getargs): -S is a new option.
10713 * getargs.h: Declare skeleton.
10714 * output.c (output_parser): Use it.
10715
107162001-03-16 Akim Demaille <akim@epita.fr>
10717
10718 * m4/strerror_r.m4: New.
10719 * m4/error.m4: Run AC_FUNC_STRERROR_R.
10720 * lib/error.h, lib/error.c: Update.
10721
107222001-03-16 Akim Demaille <akim@epita.fr>
10723
10724 * src/getargs.c (longopts): Clean up.
10725
107262001-02-21 Akim Demaille <akim@epita.fr>
10727
10728 * src/reader.c (gensym): `gensym_count' is your own.
10729 Use a static buf to create the symbol name, as token_buffer is no
10730 longer a buffer.
10731
107322001-02-08 Akim Demaille <akim@epita.fr>
10733
10734 * src/conflicts.c (conflict_report): Be sure not to append to res
10735 between two calls, which could happen if both first sprintf were
10736 skipped, but not the first cp += strlen.
10737
107382001-02-08 Akim Demaille <akim@epita.fr>
10739
10740 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
10741 New, from fileutils 4.0.37.
10742 * configure.in: Require Autoconf 2.49c. I took some time before
10743 making this decision. This is the only way out for portability
10744 issues in Bison, it would mean way too much duplicate effort to
10745 import in Bison features implemented in 2.49c since 2.13.
10746 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
10747
107482001-02-02 Akim Demaille <akim@epita.fr>
10749
10750 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
10751 * lib/xalloc.h, lib/xmalloc.c: Update.
10752
107532001-01-19 Akim Demaille <akim@epita.fr>
10754
10755 Get rid of the ad hoc handling of token_buffer in the scanner: use
10756 the obstacks.
10757
10758 * src/lex.c (token_obstack): New.
10759 (init_lex): Initialize it. No longer call...
10760 (grow_token_buffer): this. Remove it.
10761 Adjust all the places which used it to use the obstack.
10762
107632001-01-19 Akim Demaille <akim@epita.fr>
10764
10765 * src/lex.h: Rename all the tokens:
10766 s/\bENDFILE\b/tok_eof/g;
10767 s/\bIDENTIFIER\b/tok_identifier/g;
10768 etc.
10769 Let them be enums, not #define, to ease debugging.
10770 Adjust all the code.
10771
107722001-01-18 Akim Demaille <akim@epita.fr>
10773
10774 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
10775 * src/lex.c (maxtoken, grow_token_buffer): Static.
10776
107772001-01-18 Akim Demaille <akim@epita.fr>
10778
10779 Since we now use obstacks, more % directives can be enabled.
10780
10781 * src/lex.c (percent_table): Also accept `%yacc',
10782 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
10783 `%debug'.
10784 Handle the actions for `%semantic_parser' and `%pure_parser' here,
10785 instead of returning a token.
10786 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
10787 * src/reader.c (read_declarations): Adjust.
10788 * src/files.c (open_files): Don't call `compute_base_names', don't
10789 compute `attrsfile' since they depend upon data which might be
10790 *in* the input file now.
10791 (output_files): Do it here.
10792 * src/output.c (output_headers): Document the fact that this patch
10793 introduces a guaranteed SEGV for semantic parsers.
10794 * doc/bison.texinfo: Document them.
10795 * tests/suite.at: Exercise these %options.
10796
107972000-12-20 Akim Demaille <akim@epita.fr>
10798
10799 Also handle the output file (--verbose) with obstacks.
10800
10801 * files.c (foutput): Remove.
10802 (output_obstack): New.
10803 Adjust all dependencies.
10804 * src/conflicts.c: Return a string.
10805 * src/system.h (obstack_grow_string): Rename as...
10806 (obstack_sgrow): this. Be ready to work with non literals.
10807 (obstack_fgrow4): New.
10808
108092000-12-20 Akim Demaille <akim@epita.fr>
10810
10811 * src/files.c (open_files): Fix the computation of short_base_name
10812 in the case of `-o foo.tab.c'.
10813
108142000-12-20 Akim Demaille <akim@epita.fr>
10815
10816 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
10817 (copy_dollar): Now that everything uses obstacks, get rid of the
10818 FILE * parameters.
10819
108202000-12-20 Akim Demaille <akim@epita.fr>
10821
10822 * src/files.c (open_files): Actually the `.output' file is based
10823 on the short_base_name, not base_name.
10824 * tests/suite.at (Checking output file names): Adjust.
10825
108262000-12-20 Akim Demaille <akim@epita.fr>
10827
10828 * src/bison.s1: Remove, we now use directly...
10829 * src/bison.simple: this.
10830 * src/Makefile.am: Use pkgdata instead of data.
10831
108322000-12-20 Akim Demaille <akim@epita.fr>
10833
10834 * src/files.c (guard_obstack): New.
10835 (open_files): Initialize it.
10836 (output_files): Dump it...
10837 * src/files.h: Export it.
10838 * src/reader.c (copy_guard): Use it.
10839
108402000-12-19 Akim Demaille <akim@epita.fr>
10841
10842 * src/files.c (outfile, defsfile, actfile): Removed as global
10843 vars.
10844 (open_files): Don't compute them.
10845 (output_files): Adjust.
10846 (base_name, short_base_name): Be global.
10847 Adjust dependencies.
10848
108492000-12-19 Akim Demaille <akim@epita.fr>
10850
10851 * src/files.c (strsuffix): New.
10852 (stringappend): Be just like strcat but allocate.
10853 (base_names): Eve out from open_files.
10854 Try to simplify the rather hairy computation of base_name and
10855 short_base_name.
10856 (open_files): Use it.
10857 * tests/suite.at (Checking output file names): New test.
10858
108592000-12-19 Akim Demaille <akim@epita.fr>
10860
10861 * src/system.h (obstack_grow_literal_string): Rename as...
10862 (obstack_grow_string): this.
10863 * src/output.c (output_parser): Recognize `%% actions' instead of
10864 `$'.
10865 * src/bison.s1: s/$/%% actions/.
10866 * src/bison.hairy: Likewise.
10867
108682000-12-19 Akim Demaille <akim@epita.fr>
10869
10870 * src/output.c (output_parser): Compute the `#line' lines when
10871 there are.
10872 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
10873 Suggested by Hans Aberg.
10874
108752000-12-19 Akim Demaille <akim@epita.fr>
10876
10877 Let the handling of the skeleton files be local to the procedures
10878 that use it.
10879
10880 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
10881 longer static.
10882 (fparser, open_extra_files): Remove.
10883 (open_files, output_files): Don't take care of fparser.
10884 * src/files.h: Adjust.
10885 * src/output.c (output_parser): Open and close the file to the
10886 skeleton.
10887 * src/reader.c (read_declarations): When %semantic_parser, open
10888 fguard.
10889
108902000-12-19 Akim Demaille <akim@epita.fr>
10891
10892 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
10893 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
10894
108952000-12-19 Akim Demaille <akim@epita.fr>
10896
10897 * src/files.c (open_files): Yipee! We no longer need all the code
10898 looking for `/tmp' since we have no tmp file.
10899
109002000-12-19 Akim Demaille <akim@epita.fr>
10901
10902 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
10903 New macros.
10904 * src/files.c (open_files): Less dependency on MSDOS etc.
10905
109062000-12-14 Akim Demaille <akim@epita.fr>
10907
10908 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
10909 Provide a default definition.
10910 Use it when executing the default @ action.
10911 * src/reader.c (reader_output_yylsp): No longer include
10912 `timestamp' and `text' in the default YYLTYPE.
10913
109142000-12-12 Akim Demaille <akim@epita.fr>
10915
10916 * src/reader.c (copy_definition, parse_union_decl, copy_action)
10917 (copy_guard): Quote the file names.
10918 Reported by Laurent Mascherpa.
10919
109202000-12-12 Akim Demaille <akim@epita.fr>
10921
10922 * src/output.c (output_headers, output_program, output): Be sure
10923 to escape special characters when outputting filenames.
10924 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
10925 (output_headers): Don't depend on them, Use ACTSTR.
10926
109272000-11-17 Akim Demaille <akim@epita.fr>
10928
10929 * lib/obstack.h: Formatting changes.
10930 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
10931 prevents type checking.
10932 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
10933 cast the value to (void *): assigning a `foo *' to a `void *'
10934 variable is valid.
10935 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
10936 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
10937 append characters.
10938
109392000-11-17 Akim Demaille <akim@epita.fr>
10940
10941 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
10942 as...
10943 (suite.m4, regression.m4, calc.m4): these.
10944 * tests/atgeneral.m4: Update from CVS Autoconf.
10945
109462000-11-17 Akim Demaille <akim@epita.fr>
10947
10948 * tests/regression.m4 (%union and --defines): New test,
10949 demonstrating a current bug in the obstack implementation.
10950
109512000-11-17 Akim Demaille <akim@epita.fr>
10952
10953 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
10954 macros.
10955 Use them to declare the variables which are global or local to
10956 `yyparse'.
10957
109582000-11-17 Akim Demaille <akim@epita.fr>
10959
10960 * acconfig.h: Remove, no longer used.
10961
109622000-11-07 Akim Demaille <akim@epita.fr>
10963
10964 * src: s/Copyright (C)/Copyright/g.
10965
109662000-11-07 Akim Demaille <akim@epita.fr>
10967
10968 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
10969 defining.
10970 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
10971
109722000-11-07 Akim Demaille <akim@epita.fr>
10973
10974 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
10975 Merge in a single CPP if/else.
10976
109772000-11-07 Akim Demaille <akim@epita.fr>
10978
10979 * src/output.c (output): Remove useless variables.
10980 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
10981 argument `data' for consistency with the prototypes.
10982 Qualify it `const'.
10983 (obstack_copy, obstack_copy0): Rename the second argument as
10984 `address' for consistency. Qualify it `const'.
10985 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
10986 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
10987 `const' their input argument (`data' or `address').
10988 Adjust the corresponding macros to include `const' in casts.
10989
109902000-11-03 Akim Demaille <akim@epita.fr>
10991
10992 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
10993 s/PFILE1/BISON_HAIRY/.
10994 Adjust dependencies.
10995
109962000-11-03 Akim Demaille <akim@epita.fr>
10997
10998 For some reason, this was not applied.
10999
11000 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11001 `unlink': it's no longer used.
11002
110032000-11-03 Akim Demaille <akim@epita.fr>
11004
11005 * src/files.c (skeleton_find): New function, eved out of...
11006 (open_files, open_extra_files): here.
11007
110082000-11-03 Akim Demaille <akim@epita.fr>
11009
11010 Don't use `atexit'.
11011
11012 * src/files.c (obstack_save): New function.
11013 (done): Rename as...
11014 (output_files): this.
11015 Use `obstack_save'.
11016 * src/main.c (main): Don't use `atexit' to register `done', since
11017 it no longer has to remove tmp files, just call `output_files'
11018 when there are no errors.
11019
110202000-11-02 Akim Demaille <akim@epita.fr>
11021
11022 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
11023 `unlink': it's no longer used.
11024 * src/files.h: Formatting changes.
11025
110262000-11-02 Akim Demaille <akim@epita.fr>
11027
11028 Remove the last uses of mktemp and unlink/delete.
11029
11030 * src/files.c (fdefines, ftable): Removed.
11031 (defines_ostack, table_obstack): New.
11032 Adjust dependencies of the former into uses of the latter.
11033 * src/output.c (output_short_or_char_table, output_short_table):
11034 Convert to using obstacks.
11035 * src/reader.c (copy_comment2): Accept one FILE * and two
11036 obstacks.
11037 (output_token_defines, reader_output_yylsp): Use obstacks.
11038 * src/system.h (obstack_fgrow3): New.
11039 * po/POTFILES.in: Adjust.
11040
110412000-11-01 Akim Demaille <akim@epita.fr>
11042
11043 Change each use of `fattrs' into a use of `attrs_obstack'.
11044
11045 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
11046 * src/files.c (fattrs): Remove.
11047 (attrs_obstack): New.
11048 Adjust all dependencies.
11049 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
11050
110512000-11-01 Akim Demaille <akim@epita.fr>
11052
11053 Introduce obstacks.
11054 Change each use of `faction' into a use of `action_obstack'.
11055
11056 * lib/obstack.h, lib/obstack.c: New files.
11057 * src/files.c (faction): Remove.
11058 (action_obstack): New.
11059 Adjust all dependencies.
11060
110612000-10-20 Akim Demaille <akim@epita.fr>
11062
11063 * lib/quote.h (PARAMS): New macro. Use it.
11064
110652000-10-16 Akim Demaille <akim@epita.fr>
11066
11067 * src/output.c (output_short_or_char_table): New function.
11068 (output_short_table, output_token_translations): Use it.
11069 (goto_actions): Use output_short_table.
11070
110712000-10-16 Akim Demaille <akim@epita.fr>
11072
11073 * src/symtab.c (bucket_new): New function.
11074 (getsym): Use it.
11075
11076 * src/output.c (output_short_table): New argument to display the
11077 comment associated with the table.
11078 Adjust dependencies.
11079 (output_gram): Use it.
11080 (output_rule_data): Nicer output layout for YYTNAME.
11081
110822000-10-16 Akim Demaille <akim@epita.fr>
11083
11084 * src/lex.c (read_typename): New function.
11085 (lex): Use it.
11086 * src/reader.c (copy_dollar): Likewise.
11087
110882000-10-16 Akim Demaille <akim@epita.fr>
11089
11090 * src/reader.c (copy_comment2): Expect the input stream to be on
11091 the `/' which is suspected to open a comment, instead of being
11092 called after `//' or `/*' was read.
11093 (copy_comment, copy_definition, parse_union_decl, copy_action)
11094 (copy_guard): Adjust.
11095
110962000-10-16 Akim Demaille <akim@epita.fr>
11097
11098 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
11099 `read_signed_integer'.
11100
111012000-10-16 Akim Demaille <akim@epita.fr>
11102
11103 * src/reader.c (copy_dollar): New function.
11104 (copy_guard, copy_action): Use it.
11105
111062000-10-16 Akim Demaille <akim@epita.fr>
11107
11108 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
11109 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
11110 New files, from Fileutils 4.0.27.
11111 * src/main.c (printable_version): Remove.
11112 * src/lex.c, src/reader.c: Use `quote'.
11113
111142000-10-04 Akim Demaille <akim@epita.fr>
11115
11116 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
11117
111182000-10-04 Akim Demaille <akim@epita.fr>
11119
11120 * doc/bison.texinfo: Various typos spotted by Neil Booth.
11121
111222000-10-04 Akim Demaille <akim@epita.fr>
11123
11124 When a literal string is used to define two different tokens,
11125 `bison -v' segfaults.
11126 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
11127
11128 * tests/regression.m4: New file.
11129 Include the core of the sample provided by Piotr Gackiewicz.
11130 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
11131 properly.
11132
111332000-10-04 Akim Demaille <akim@epita.fr>
11134
11135 * src/reader.c (parse_expect_decl): Keep `count' within the size
11136 of `buffer'.
11137 From Neil Booth.
11138
111392000-10-02 Paul Eggert <eggert@twinsun.com>
11140
11141 * bison.s1 (yyparse): Assign the default value
11142 unconditionally, to avoid a GCC warning and make the parser a
11143 tad smaller.
11144
111452000-10-02 Akim Demaille <akim@epita.fr>
11146
11147 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
11148 options.
11149
111502000-10-02 Akim Demaille <akim@epita.fr>
11151
11152 * src/derives.c, src/print.c, src/reduce.c: To ease the
11153 translation, move some `\n' out of the translated strings.
11154
111552000-10-02 Akim Demaille <akim@epita.fr>
11156
11157 The location tracking mechanism is precious for parse error
11158 messages. Nevertheless, it is enabled only when `@n' is used in
11159 the grammar, which is a different issue (you can use it in error
11160 message, but not in the grammar per se). Therefore, there should
11161 be another means to enable it.
11162
11163 * src/getargs.c (getargs): Support `--locations'.
11164 (usage): Report it.
11165 * src/getargs.h (locationsflag): Export it.
11166 * src/lex.c (percent_table): Support `%locations'.
11167 * src/reader.c (yylsp_needed): Remove this variable, now replaced
11168 with `locationsflag'.
11169 * doc/bison.texinfo: Document `--locations' and `%locations'.
11170 Sort the options.
11171 * tests/calc.m4: Test it.
11172
11173 For regularity of the names, replace each
11174 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
11175 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
11176 In addition replace each `flag' with `_flag'.
11177
111782000-10-02 Akim Demaille <akim@epita.fr>
11179
11180 Also test parse error messages, including with YYERROR_VERBOSE.
11181
11182 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
11183 associative).
11184 Use it to check the computations.
11185 Use it to check `nonassoc' is honored.
11186 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
11187 `--yyerror-verbose'.
11188 (_AT_CHECK_CALC): Adjust to this option.
11189 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
11190
111912000-10-02 Akim Demaille <akim@epita.fr>
11192
11193 Test also `--verbose', `--defines' and `--name-prefix'. Testing
11194 the latter demonstrates a flaw in the handling of non debugging
11195 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
11196 was used in order to simplify:
11197
11198 #if YYDEBUG
11199 if (yydebug)
11200 {
11201 ...
11202 }
11203 #endif
11204
11205 into
11206
11207 if (yydebug)
11208 {
11209 ...
11210 }
11211
11212 unfortunately this leads to a CPP conflict when
11213 `--name-prefix=foo' is used since it produces `#define yydebug
11214 foodebug'.
11215
11216 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
11217 (YYDPRINTF): New macro.
11218 Spread its use.
11219 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
11220 the bison options.
11221 Also test `--verbose', `--defines' and `--name-prefix'.
11222
112232000-10-02 Akim Demaille <akim@epita.fr>
11224
11225 Improve the readability of the produced parsers.
11226
11227 * src/bison.s1: Formatting changes.
11228 Improve the comment related to the `$' mark.
11229 (yydefault): Don't fall through to `yyresume': `goto' there.
11230 * src/output.c (output_parser): When the `$' is met, skip the end
11231 of its line.
11232 New variable, `number_of_dollar_signs', to check there's exactly
11233 one `$' in the parser skeleton.
11234
112352000-10-02 Akim Demaille <akim@epita.fr>
11236
11237 * lib/xstrdup.c: New file, from the fileutils.
11238 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
11239 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
11240 instead of strlen + xmalloc + strcpy.
11241 * src/symtab.c (copys): Remove, use xstrdup instead.
11242
112432000-10-02 Akim Demaille <akim@epita.fr>
11244
11245 * src/gram.h (associativity): New enum type which replaces the
11246 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
11247 `right_assoc', `left_assoc' and `non_assoc'.
11248 Adjust all dependencies.
11249 * src/reader.c: Formatting changes.
11250 (LTYPESTR): Don't define it, use it as a literal in
11251 `reader_output_yylsp'.
11252 * src/symtab.h (symbol_class): New enum type which replaces the
11253 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
11254 `sunknown', `stoken and `snterm'.
11255
112562000-10-02 Akim Demaille <akim@epita.fr>
11257
11258 * src/getargs.c (fixed_outfiles): Rename as...
11259 (yaccflag): for consistency and accuracy.
11260 Adjust dependencies.
11261
112622000-10-02 Akim Demaille <akim@epita.fr>
11263
11264 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
11265 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
11266 difficult and introduced a lot of core dump. It turns out that
11267 Bison used an implementation of `xmalloc' based on `calloc', and
11268 at various places it does depend upon the initialization to 0. I
11269 have not tried to isolate the pertinent places, and all the former
11270 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
11271 someone should address this issue.
11272
11273 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
11274 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
11275 files.
11276 Adjust dependencies.
11277 * src/warshall.h: New file.
11278 Propagate.
11279
112802000-10-02 Akim Demaille <akim@epita.fr>
11281
11282 Various anti-`extern in *.c' changes.
11283
11284 * src/system.h: Include `assert.h'.
11285
112862000-10-02 Akim Demaille <akim@epita.fr>
11287
11288 * src/state.h (nstates, final_state, first_state, first_shift)
11289 (first_reduction): Move their exportation from here...
11290 * src/LR0.h: to here.
11291 Adjust dependencies.
11292 * src/getargs.c (statisticsflag): New variable.
11293 Add support for `--statistics'.
11294 Adjust dependencies.
11295
11296 Remove a lot of now useless `extern' statements in most files.
11297
112982000-10-02 Akim Demaille <akim@epita.fr>
11299
11300 * src/LR0.h: New file.
11301 Propagate its use.
11302
113032000-10-02 Akim Demaille <akim@epita.fr>
11304
11305 * src/print.h: New file.
11306 Propagate its use.
11307 * src/print.c: Formatting and ordering changes.
11308 (verbose, terse): Replace with...
11309 (print_results): this new function.
11310 Adjust dependencies.
11311
113122000-10-02 Akim Demaille <akim@epita.fr>
11313
11314 * src/conflicts.c (conflict_report): New function.
11315 (conflict_log, verbose_conflict_log): Replace with...
11316 (print_conflicts): this function.
11317 Adjust dependencies.
11318 * src/conflicts.h: New file.
11319 Propagate its inclusion.
11320
113212000-10-02 Akim Demaille <akim@epita.fr>
11322
11323 * src/nullable.h: New file.
11324 Propagate its inclusion.
11325 * src/nullable.c: Formatting changes.
11326
113272000-10-02 Akim Demaille <akim@epita.fr>
11328
11329 * src/reduce.h: New file.
11330 Propagate its inclusion.
11331 * src/reduce.c: Topological sort and other formatting changes.
11332 (bool, TRUE, FALSE): Move their definition to...
11333 * src/system.h: here.
11334
113352000-10-02 Akim Demaille <akim@epita.fr>
11336
11337 * src/files.c: Formatting changes.
11338 (tryopen, tryclose, openfiles): Rename as...
11339 (xfopen, xfclose, open_files): this.
11340 (stringappend): static.
11341 * src/files.h: Complete the list of exported symbols.
11342 Propagate its use.
11343
113442000-10-02 Akim Demaille <akim@epita.fr>
11345
11346 * src/reader.h: New file.
11347 Propagate its use instead of tedious list of `extern' and
11348 prototypes.
11349 * src/reader.c: Formatting changes, topological sort,
11350 s/register//.
11351
113522000-10-02 Akim Demaille <akim@epita.fr>
11353
11354 * src/lex.h: Prototype `lex.c' exported functions.
11355 * src/reader.c: Adjust.
11356 * src/lex.c: Formatting changes.
11357 (safegetc): Rename as...
11358 (xgetc): this.
11359
113602000-10-02 Akim Demaille <akim@epita.fr>
11361
11362 * src/lalr.h: New file.
11363 Propagate its inclusion instead of prototypes and `extern'.
11364 * src/lalr.c: Formatting changes, topological sorting etc.
11365
113662000-10-02 Akim Demaille <akim@epita.fr>
11367
11368 * src/output.c (token_actions): Introduce a temporary array,
11369 YYDEFACT, that makes it possible for this function to use
11370 output_short_table.
11371
113722000-10-02 Akim Demaille <akim@epita.fr>
11373
11374 `user_toknums' is output as a `short[]' in `output.c', while it is
11375 defined as a `int[]' in `reader.c'. For consistency with the
11376 other output tables, `user_toknums' is now defined as a table of
11377 shorts.
11378
11379 * src/reader.c (user_toknums): Be a short table instead of an int
11380 table.
11381 Adjust dependencies.
11382
11383 Factor the short table outputs.
11384
11385 * src/output.c (output_short_table): New function.
11386 * src/output.c (output_gram, output_stos, output_rule_data)
11387 (output_base, output_table, output_check): Use it.
11388
113892000-10-02 Akim Demaille <akim@epita.fr>
11390
11391 * src/output.c (output): Topological sort of the functions, in
11392 order to get rid of the `static' prototypes.
11393 No longer use `register'.
11394 * src/output.h: New file.
11395 Propagate its inclusion in files explicitly prototyping functions
11396 from output.c.
11397
113982000-09-21 Akim Demaille <akim@epita.fr>
11399
11400 * src/atgeneral.m4: Update from Autoconf.
11401
114022000-09-21 Akim Demaille <akim@epita.fr>
11403
11404 * src/closure.h: New file.
11405 * src/closure.c: Formatting changes, topological sort over the
11406 functions, use of closure.h.
11407 (initialize_closure, finalize_closure): Rename as...
11408 (new_closure, free_closure): these. Adjust dependencies.
11409 * src/LR0.c: Formatting changes, topological sort, use of
11410 cloture.h.
11411 (initialize_states): Rename as...
11412 (new_states): this.
11413 * src/Makefile.am (noinst_HEADERS): Adjust.
11414
114152000-09-20 Akim Demaille <akim@epita.fr>
11416
11417 * src/acconfig.h: Don't protect config.h against multiple
11418 inclusion.
11419 Don't define PARAMS.
11420 * src/system.h: Define PARAMS.
11421 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
11422 purpose of config.h. system.h must not try to fix wrong
11423 definitions in config.h.
11424
114252000-09-20 Akim Demaille <akim@epita.fr>
11426
11427 * src/derives.h: New file.
11428 * src/main.c, src/derives.h: Use it.
11429 Formatting changes.
11430 * src/Makefile.am (noinst_HEADERS): Adjust.
11431
114322000-09-20 Akim Demaille <akim@epita.fr>
11433
11434 * tests/atgeneral.m4: Update from Autoconf.
11435 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
11436 (AT_CHECK_CALC): New macros.
11437 Use these macros to test bison with options `', `--raw',
11438 `--debug', `--yacc', `--yacc --debug'.
11439
114402000-09-19 Akim Demaille <akim@epita.fr>
11441
11442 * src/output.c: Formatting changes.
11443 * src/machine.h: Remove, leaving its contents in...
11444 * src/system.h: here.
11445 Include stdio.h.
11446 Adjust all dependencies on stdio.h and machine.h.
11447 * src/getargs.h: New file.
11448 Let all `extern' declarations about getargs.c be replaced with
11449 inclusion of `getargs.h'.
11450 * src/Makefile.am (noinst_HEADERS): Adjust.
11451
11452 * tests/calc.m4 (yyin): Be initialized in main, not on the global
11453 scope.
11454 (yyerror): Returns void, not int.
11455 * doc/bison.texinfo: Formatting changes.
11456
114572000-09-19 Akim Demaille <akim@epita.fr>
11458
11459 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
11460 portable.
11461
114622000-09-18 Akim Demaille <akim@epita.fr>
11463
11464 * configure.in: Append WARNING_CFLAGS to CFLAGS.
11465 * src/Makefile.am (INCLUDES): Don't.
11466 Be ready to fetch headers in lib/.
11467
114682000-09-18 Akim Demaille <akim@epita.fr>
11469
11470 * doc/bison.texinfo: Update the copyright.
11471 ANSIfy and GNUify the examples.
11472 Remove the old menu.
11473
114742000-09-18 Akim Demaille <akim@epita.fr>
11475
11476 First set of tests: use the `calc' example from the documentation.
11477
11478 * src/bison.s1 (yyparse): Condition the code using `yytname' which
11479 is defined only when YYDEBUG is.
11480 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
11481 * src/files.c (tryopen, tryclose): Formatting changes.
11482 Move to the top and be static.
11483 * src/reader.c (read_signed_integer): Likewise.
11484 * tests/calc.m4: New file.
11485 * Makefile.am, suite.m4: Adjust.
11486 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
11487
114882000-09-18 Akim Demaille <akim@epita.fr>
11489
11490 Add support for an Autotest test suite for Bison.
11491
11492 * m4/m4.m4, m4/atconfig.m4: New files.
11493 * m4/Makefile.am (EXTRA_DIST): Adjust.
11494 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
11495 files.
11496 * src/getargs.c: Display a more standard --version message.
11497 * src/reader.c (reader): Formatting changes.
11498 No longer depend upon VERSION_STRING.
11499 * configure.in: No longer use `dnl'.
11500 Set up the test suite and the new directory `tests/.
11501 (VERSION_STRING): Remove.
11502
115032000-04-14 Akim Demaille <akim@epita.fr>
11504
11505 * src/reader.c (copy_comment2): New function, same as former
11506 `copy_comment', but outputs into two FILE *.
11507 (copy_comment): Use it.
11508 (parse_union_decl): Use it.
11509 (get_type, parse_start_decl): Use the same `invalid' message.
11510 (parse_start_decl, parse_union_decl): Use the same `multiple'
11511 message.
11512 (parse_union_decl, copy_guard, copy_action): Use the same
11513 `unmatched' message.
11514 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
11515
115162000-03-31 Akim Demaille <akim@epita.fr>
11517
11518 * src/files.c (tryopen, tryclose): Move to the top.
11519 Be static.
11520
115212000-03-31 Akim Demaille <akim@epita.fr>
11522
11523 * src/main.c (main): Don't call `done', exit does it.
11524
115252000-03-31 Akim Demaille <akim@epita.fr>
11526
11527 * allocate.c: s/return (foo)/return foo/.
11528 * lalr.c: Likewise.
11529 * LR0.c: Likewise.
11530 * output.c: Likewise.
11531 * reader.c: Likewise.
11532 * symtab.c: Likewise.
11533 * vmsgetargs.c: Likewise.
11534
115352000-03-31 Akim Demaille <akim@epita.fr>
11536
11537 Clean up the error reporting functions.
11538
11539 * src/report.c: New file.
11540 * src/report.h: Likewise.
11541 * src/Makefile.am: Adjust.
11542 * m4/error.m4: New file.
11543 * m4/Makefile.am: Adjust.
11544 * configure.in (jm_PREREQ_ERROR): Call it.
11545 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
11546 Remove.
11547 (fatal, fatals): Remove. All callers use complain.c::fatal.
11548 (warn, warni, warns, warnss, warnss): Remove. All callers use
11549 complain.c::complain.
11550 (toomany): Remove, use fatal instead.
11551 * src/files.c (done): No argument, use complain_message_count.
11552 * src/main.c (main): Register `done' to `atexit'.
11553
11554 * src/getargs.c (usage): More `fputs', less `fprintf'.
11555
115562000-03-28 Akim Demaille <akim@epita.fr>
11557
11558 * lib/: New directory.
11559 * Makefile.am (SUBDIRS): Adjust.
11560 * configure.in: Adjust.
11561 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
11562 useless.
11563 * src/alloca.c: Moved to lib/.
11564 * src/getopt.c: Likewise.
11565 * src/getopt1.c: Likewise.
11566 * src/getopt.h: Likewise.
11567 * src/ansi2knr.c: Likewise.
11568 * src/ansi2knr.1: Likewise.
11569 * src/Makefile.am: Adjust.
11570 * lib/Makefile.am: New file.
11571
115722000-03-28 Akim Demaille <akim@epita.fr>
11573
11574 * src/getargs.c (usage): Refresh the help message.
11575
115762000-03-17 Akim Demaille <akim@epita.fr>
11577
11578 * src/getopt1.c: Updated from textutils 2.0e
11579 * src/getopt.c: Likewise.
11580 * src/getopt.h: Likewise.
11581
115822000-03-17 Akim Demaille <akim@epita.fr>
11583
11584 * src/Makefile.am (bison.simple): Fix the awk program: quote only
11585 the file name, not the whole `#line LINE FILE'.
11586
115872000-03-17 Akim Demaille <akim@epita.fr>
11588
11589 On syntax errors, report the token on which we choked.
11590
11591 * src/bison.s1 (yyparse): In the label yyerrlab, when
11592 YYERROR_VERBOSE, add yychar in msg.
11593
115942000-03-17 Akim Demaille <akim@epita.fr>
11595
11596 * src/reader.c (copy_at): New function.
11597 (copy_guard): Use it.
11598 (copy_action): Use it.
11599
116002000-03-17 Akim Demaille <akim@epita.fr>
11601
11602 Be kind to translators, save some useless translations.
11603
11604 * src/main.c (banner): New function.
11605 (fatal_banner): Use it.
11606 (warn_banner): Use it.
11607
116082000-03-17 Akim Demaille <akim@epita.fr>
11609
11610 * src/reader.c (copy_definition): Use copy_string and
11611 copy_comment. Removed now unused `match', `ended',
11612 `cplus_comment'.
11613 (copy_comment, copy_string): Moved, to be visible from
11614 copy_definition.
11615
116162000-03-17 Akim Demaille <akim@epita.fr>
11617
11618 * src/reader.c (copy_string): Declare `static inline'. No
11619 problems with inline, since it is checked by configure.
11620 (copy_comment): Likewise.
11621
116222000-03-17 Akim Demaille <akim@epita.fr>
11623
11624 * src/reader.c (packsymbols): Formatting changes.
11625
116262000-03-17 Akim Demaille <akim@epita.fr>
11627
11628 * src/reader.c (copy_comment): New function, factored out from:
11629 (copy_action): Use it. Removed now unused `match', `ended',
11630 `cplus_comment'.
11631 (copy_guard): Likewise.
11632
116332000-03-17 Akim Demaille <akim@epita.fr>
11634
11635 * src/reader.c (copy_string): New function, factored out from:
11636 (copy_action): Use it.
11637 (copy_guard): Likewise.
11638
116392000-03-17 Akim Demaille <akim@epita.fr>
11640
11641 Change the handling of @s so that they behave exactly like $s.
11642 There is now a pseudo variable @$ (readble and writable), location
11643 of the lhs of the rule (by default ranging from the location of
11644 the first symbol of the rhs, to the location of the last symbol,
11645 or, if the rhs is empty, YYLLOC).
11646
11647 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
11648 yyval.
11649 (yyparse): When providing a default semantic action, provide a
11650 default location action.
11651 (after the $): No longer change `*YYLSP', just stack YYLOC the
11652 same way you stack YYVAL.
11653 * src/reader.c (read_declarations): Use warns.
11654 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
11655 (copy_action, case '@'): Likewise.
11656 Use a standard error message, to save useless work from
11657 translators.
11658
116592000-03-17 Akim Demaille <akim@epita.fr>
11660
11661 * src/bison.s1: Formatting and cosmetics changes.
11662 * src/reader.c: Likewise.
11663 Update the Copyright notice.
11664
116652000-03-17 Akim Demaille <akim@epita.fr>
11666
11667 * src/bison.s1 (#line): All set to `#line' only, since the
11668 Makefile now handles them.
11669
116702000-03-16 Akim Demaille <akim@epita.fr>
11671
11672 * src/output.c (output_rule_data): Output the documentation of
11673 some of the tables.
11674 (Copyright notice): Update.
11675 Formatting changes.
11676
116772000-03-16 Akim Demaille <akim@epita.fr>
11678
11679 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
11680 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
11681 One `#if YYDEBUG' remains, since it uses variables which are
11682 defined only if `YYDEBUG != 0'.
11683
116842000-03-16 Akim Demaille <akim@epita.fr>
11685
11686 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
11687 and related variables so that the similarities are highlighted.
11688
116892000-03-16 Akim Demaille <akim@epita.fr>
11690
11691 * src/bison.s1: Properly indent CPP directives.
11692
116932000-03-16 Akim Demaille <akim@epita.fr>
11694
11695 * src/bison.s1: Properly indent the `alloca' CPP section.
11696
116972000-03-16 Akim Demaille <akim@epita.fr>
11698
11699 Do not hard code values of directories in `configure.in'.
11700 Update the `configure' tool chain.
11701
11702 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
11703 src/makefile.am.
11704 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
11705 (AC_OUTPUT): Add m4/Makefile.
11706 Bump to bison 1.28a, 1.29 has never been released.
11707 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
11708 handled via src/Makefile.am.
11709 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
11710 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
11711 autoheader.
11712 * Makefile.am (SUBDIRS): Add m4.
11713 (ACLOCAL_AM_FLAGS): New variable.
11714 (AUTOMAKE_OPTIONS): Add check-news.
11715 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
11716 the proper line number and file name.
11717 (DEFS): Propagate the location of bison library files and of the
11718 locale files.
11719 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
11720 builddir.
11721 * acinclude.m4: Remove, replaced by the directory m4.
11722 * m4/Makefile.am (EXTRA_DIST): New variable.
11723 * m4/gettext.m4: New file, from the fileutils.
11724 * m4/lcmessage.m4: Likewise
11725 * m4/progtest.m4: Likewise.
11726 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
11727
117282000-03-10 Akim Demaille <akim@epita.fr>
11729
11730 * src/closure.c:
11731 Formatting changes of various comments.
11732 Respect the GNU coding standards at various places.
11733 Don't use `_()' when no translation is needed.
11734
117351999-12-13 Jesse Thilo <jthilo@gnu.org>
11736
11737 * src/files.c:
11738 OS/2 honors TMPDIR environment variable.
11739
117401999-12-13 Jesse Thilo <jthilo@gnu.org>
11741
11742 * doc/bison.texinfo: Tweaked spelling and grammar.
11743 Updated ISBN.
11744 Removed reference to price of printed copy.
11745 Mention BISON_SIMPLE and BISON_HAIRY.
11746
117471999-12-13 Jesse Thilo <jthilo@gnu.org>
11748
11749 * configure.in, NEWS:
11750 Bison 1.29 released.
11751
117521999-10-27 Jesse Thilo <jthilo@gnu.org>
11753
11754 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
11755 Added reference card.
11756
117571999-07-26 Jesse Thilo <jthilo@gnu.org>
11758
11759 * po/ru.po: Added Russian translation.
11760
117611999-07-26 Jesse Thilo <jthilo@gnu.org>
11762
11763 * configure.in: Added Russian translation.
11764
117651999-07-06 Jesse Thilo <jthilo@gnu.org>
11766
11767 * configure.in, NEWS, README:
11768 Released version 1.28.
11769
117701999-06-14 Jesse Thilo <jthilo@gnu.org>
11771
11772 * src/system.h:
11773 Squashed redefinition warning on some systems.
11774
11775 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
11776 Have configure build version string instead of relying on ANSI string
11777 concatentation.
11778
117791999-06-14 Jesse Thilo <jthilo@gnu.org>
11780
11781 * po/POTFILES.in: Got rid of version.c.
11782
117831999-06-14 Jesse Thilo <jthilo@gnu.org>
11784
11785 * acconfig.h, configure.in:
11786 Have configure build version string instead of relying on ANSI string
11787 concatentation.
11788
117891999-06-08 Jesse Thilo <jthilo@gnu.org>
11790
11791 * doc/bison.1:
11792 Dropped mention of `+' for long-named options.
11793
117941999-05-30 Jesse Thilo <jthilo@gnu.org>
11795
11796 * src/files.c: Added <unistd.h> for unlink().
11797
11798 * src/Makefile.am, src/system.h:
11799 I18n fixes.
11800
118011999-05-30 Jesse Thilo <jthilo@gnu.org>
11802
11803 * README: Added a FAQ list.
11804
11805 * configure.in, acconfig.h:
11806 I18n fixes.
11807
118081999-05-30 Jesse Thilo <jthilo@gnu.org>
11809
11810 * doc/FAQ, doc/Makefile.am:
11811 Added a FAQ list.
11812
118131999-05-19 Jesse Thilo <jthilo@gnu.org>
11814
11815 * src/alloc.h, src/symtab.h, src/version.c:
11816 Protected inclusion of "config.h" with HAVE_CONFIG_H.
11817
118181999-04-18 Jesse Thilo <jthilo@gnu.org>
11819
11820 * src/.cvsignore, src/Makefile.am:
11821 Reorganized: sources in `src', documentation in `doc'.
11822
11823 * src/lex.c (literalchar):
11824 fixed the code for escaping double quotes (thanks
11825 Jonathan Czisny.)
11826
118271999-04-18 Jesse Thilo <jthilo@gnu.org>
11828
11829 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
11830 Adjusted paths to reflect directory reorganization.
11831
118321999-04-18 Jesse Thilo <jthilo@gnu.org>
11833
11834 * doc/.cvsignore, doc/Makefile.am:
11835 Reorganized: sources in `src', documentation in `doc'.
11836
118371999-04-18 Jesse Thilo <jthilo@gnu.org>
11838
11839 * configure.in:
11840 Updated AC_INIT file to reflect directory reorganization.
11841
11842 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
11843 Reorganized: sources in `src', documentation in `doc'.
11844
118451999-04-13 Jesse Thilo <jthilo@gnu.org>
11846
11847 * src/allocate.c:
11848 Don't declare calloc() and realloc() if not necessary.
11849
118501999-04-13 Jesse Thilo <jthilo@gnu.org>
11851
11852 * configure.in, acconfig.h, acinclude.m4:
11853 Don't declare calloc() and realloc() if not necessary.
11854
118551999-03-23 Jesse Thilo <jthilo@gnu.org>
11856
11857 * po/.cvsignore: Added i18n support.
11858
118591999-03-23 Jesse Thilo <jthilo@gnu.org>
11860
11861 * acconfig.h, configure.in, Makefile.am:
11862 Added i18n support.
11863
118641999-03-22 Jesse Thilo <jthilo@gnu.org>
11865
11866 * src/bison.s1: Fixed #line numbers.
11867
118681999-03-15 Jesse Thilo <jthilo@gnu.org>
11869
11870 * po/es.po, po/fr.po, po/nl.po, po/de.po:
11871 Added PO files from Translation Project.
11872
118731999-03-03 Jesse Thilo <jthilo@gnu.org>
11874
11875 * Makefile.am:
11876 Added support for non-ANSI compilers (ansi2knr).
11877
118781999-02-16 Jesse Thilo <jthilo@gnu.org>
11879
11880 * configure.in: Bumped version number to 1.27.
11881
11882 * Makefile.am:
11883 Added `bison.simple' to list of files removed by `make distclean'.
11884
118851999-02-12 Jesse Thilo <jthilo@gnu.org>
11886
11887 * src/files.c, src/files.h:
11888 Defined locations of parser files in config.h instead of Makefile.
11889
118901999-02-12 Jesse Thilo <jthilo@gnu.org>
11891
11892 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
11893 Defined locations of parser files in config.h instead of Makefile.
11894
118951999-02-09 Jesse Thilo <jthilo@gnu.org>
11896
11897 * Makefile.am:
11898 Removed inappropriate use of $< macro.
11899
119001999-02-05 Jesse Thilo <jthilo@gnu.org>
11901
11902 * po/Makefile.in.in, po/POTFILES.in:
11903 Add `po' directory skeleton.
11904
119051999-01-27 Jesse Thilo <jthilo@gnu.org>
11906
11907 * README: Document help-bison list.
11908
11909 * configure.in: Add check for mkstemp().
11910
119111999-01-20 Jesse Thilo <jthilo@gnu.org>
11912
11913 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
11914 Hush a few compiler warnings.
11915
11916 * src/files.c:
11917 Add tryclose(), which verifies that fclose was successful.
11918 Hush a couple of compiler warnings.
11919
119201999-01-20 Jesse Thilo <jthilo@gnu.org>
11921
11922 * Makefile.am, OChangeLog:
11923 ChangeLog is now automatically generated. Include the old version as
11924 OChangeLog.
11925
119261999-01-14 Jesse Thilo <jthilo@gnu.org>
11927
11928 * 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:
11929 Update FSF address.
11930
119311999-01-14 Jesse Thilo <jthilo@gnu.org>
11932
11933 * doc/bison.texinfo: Fix formatting glitch.
11934
11935 * doc/bison.texinfo: Update FSF address.
11936
119371999-01-14 Jesse Thilo <jthilo@gnu.org>
11938
11939 * acconfig.h: Update FSF address.
11940
119411999-01-08 Jesse Thilo <jthilo@gnu.org>
11942
11943 * src/system.h:
11944 Don't define PACKAGE here, since config.h defines it.
11945
119461998-12-30 Jesse Thilo <jthilo@gnu.org>
11947
11948 * src/reader.c: Update copyright date.
11949
11950 * src/main.c:
11951 Ditch sprintf to statically-sized buffers in fatal/warn functions in
11952 favor of output directly to stderr (avoids buffer overruns).
11953
11954 * src/reader.c: Some checks for premature EOF.
11955
11956 * 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:
11957 Use prototypes if the compiler understands them.
11958
11959 * src/files.c: Honor TMPDIR on Unix hosts.
11960 Use prototypes if the compiler understands them.
11961
11962 * src/reader.c:
11963 Fix a couple of buffer overrun bugs.
11964 Use prototypes if the compiler understands them.
11965
11966 * src/system.h: Include unistd.h and ctype.h.
11967 Use #ifdef instead of #if for NLS symbols.
11968
119691998-12-30 Jesse Thilo <jthilo@gnu.org>
11970
11971 * doc/bison.texinfo:
11972 Delete comment "consider using @set for edition number, etc..." since
11973 we now are doing so.
11974
119751998-12-30 Jesse Thilo <jthilo@gnu.org>
11976
11977 * configure.in:
11978 Use prototypes if the compiler understands them.
11979
11980 * NEWS: Document 1.26 highlights.
11981
11982 * Makefile.am: Require Automake 1.3 or later.
11983
11984 * acconfig.h:
11985 Use prototypes if the compiler understands them.
11986
119871998-12-29 Jesse Thilo <jthilo@gnu.org>
11988
11989 * src/version.c:
11990 Use VERSION symbol from automake for version number.
11991
119921998-12-29 Jesse Thilo <jthilo@gnu.org>
11993
11994 * acconfig.h, configure.in, version.cin:
11995 Use VERSION symbol from automake for version number.
11996
119971998-11-28 Jesse Thilo <jthilo@gnu.org>
11998
11999 * Makefile.am:
12000 Distribute original version of simple parser (bison.s1), not built
12001 version (bison.simple).
12002
120031998-11-28 Jesse Thilo <jthilo@gnu.org>
12004
12005 * doc/bison.texinfo: Add info dir entry.
12006
12007 * doc/bison.texinfo:
12008 Let automake put version number into documentation.
12009
120101998-11-26 Jesse Thilo <jthilo@gnu.org>
12011
12012 * src/bison.cld, src/build.com, src/vmshlp.mar:
12013 Add non-RCS files from /gd/gnu/bison.
12014
120151998-11-26 Jesse Thilo <jthilo@gnu.org>
12016
12017 * doc/bison.1:
12018 Document the BISON_HAIRY and BISON_SIMPLE variables.
12019
120201998-11-25 Jesse Thilo <jthilo@gnu.org>
12021
12022 * src/version.c: Build version.c automatically.
12023
12024 * src/reader.c:
12025 Fix token numbering (used to start at 258, not 257).
12026
12027 * src/system.h: Include config.h.
12028
12029 * src/getargs.c: Update bug report address.
12030
12031 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
12032 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
12033
120341998-11-25 Jesse Thilo <jthilo@gnu.org>
12035
12036 * Makefile.am:
12037 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
12038
12039 * configure.in, version.cin:
12040 Build version.c automatically.
12041
12042 * AUTHORS: Add AUTHORS file.
12043
12044 * README: Update bug report address.
12045
12046 * bison.simple:
12047 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
12048
12049 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
12050 Add automake stuff.
12051
120521998-11-25 Jesse Thilo <jthilo@gnu.org>
12053
12054 * doc/bison.texinfo: Clean up some formatting.
12055
120561998-05-05 Richard Stallman <rms@gnu.org>
12057
12058 * doc/bison.texinfo:
12059 Explain better why to make a pure parser.
12060
120611998-01-05 Richard Stallman <rms@gnu.org>
12062
12063 * src/files.c (openfiles):
12064 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
12065 find a temporary directory, if possible. Do not unlink files while
12066 they are open.
12067
120681997-08-25 Richard Stallman <rms@gnu.org>
12069
12070 * src/reader.c (stack_offset;):
12071 Change some warni to warns.
12072
12073 * src/lex.c (literalchar): Use warns, not warni.
12074
120751997-06-28 Richard Stallman <rms@gnu.org>
12076
12077 * src/bison.s1: Add a Bison version comment.
12078
12079 * src/main.c (fatal, warn, berror):
12080 Use program_name.
12081
120821997-06-28 Richard Stallman <rms@gnu.org>
12083
12084 * Makefile.in (bison_version): New variable.
12085 (dist): Use that variable.
12086 (bison.s1): Substitute the Bison version into bison.simple.
12087
12088 * bison.simple: Add a Bison version comment.
12089
120901997-06-18 Richard Stallman <rms@gnu.org>
12091
12092 * src/main.c (fatal, warn, berror):
12093 Make error messages standard.
12094 (toomany): Improve error message text.
12095
12096 * 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:
12097 new.h renamed to alloc.h.
12098
120991997-06-18 Richard Stallman <rms@gnu.org>
12100
12101 * Makefile.in: new.h renamed to alloc.h.
12102
121031997-05-24 Richard Stallman <rms@gnu.org>
12104
12105 * src/lex.c (literalchar):
12106 Fix the code for escaping \, " and '.
12107
12108 (lex): Avoid trouble when there are many chars
12109 to discard in a char literal with just several chars in it.
12110
121111997-05-17 Richard Stallman <rms@gnu.org>
12112
12113 * src/bison.s1:
12114 Use malloc, if using alloca is troublesome.
12115 (YYSTACK_USE_ALLOCA): New flag macro.
12116 Define it for some systems and compilers.
12117 (YYSTACK_ALLOC): New macro.
12118 (yyparse): Use YYSTACK_ALLOC to allocate stack.
12119 If it was malloc'd, free it.
12120
121211997-05-17 Richard Stallman <rms@gnu.org>
12122
12123 * bison.simple:
12124 Use malloc, if using alloca is troublesome.
12125 (YYSTACK_USE_ALLOCA): New flag macro.
12126 Define it for some systems and compilers.
12127 (YYSTACK_ALLOC): New macro.
12128 (yyparse): Use YYSTACK_ALLOC to allocate stack.
12129 If it was malloc'd, free it.
12130
121311997-04-23 Richard Stallman <rms@gnu.org>
12132
12133 * src/bison.s1:
12134 (alloca) [__hpux]: Always define as __builtin_alloca.
12135
121361997-04-23 Richard Stallman <rms@gnu.org>
12137
12138 * bison.simple:
12139 (alloca) [__hpux]: Always define as __builtin_alloca.
12140
121411997-04-22 Richard Stallman <rms@gnu.org>
12142
12143 * src/bison.s1:
12144 [__hpux]: Include alloca.h (right for HPUX 10)
12145 instead of declaring alloca (right for HPUX 9).
12146
12147 * src/bison.s1 (__yy_memcpy):
12148 Declare arg `count' as unsigned int.
12149 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
12150
121511997-04-22 Richard Stallman <rms@gnu.org>
12152
12153 * bison.simple:
12154 [__hpux]: Include alloca.h (right for HPUX 10)
12155 instead of declaring alloca (right for HPUX 9).
12156
12157 * bison.simple (__yy_memcpy):
12158 Declare arg `count' as unsigned int.
12159 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
12160
121611997-01-03 Richard Stallman <rms@gnu.org>
12162
12163 * src/allocate.c: [__STDC__ or _MSC_VER]:
12164 Declare calloc and realloc to return void *.
12165
121661997-01-02 Richard Stallman <rms@gnu.org>
12167
12168 * src/system.h:
12169 [_MSC_VER]: Include stdlib.h and process.h.
12170 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
12171
12172 * src/main.c (main): Return FAILURE as a value.
12173 (printable_version): Declare arg as int, not char.
12174
121751997-01-02 Richard Stallman <rms@gnu.org>
12176
12177 * Makefile.in (dist):
12178 Explicitly check for symlinks, and copy them.
12179
121801996-12-19 Richard Stallman <rms@gnu.org>
12181
12182 * src/files.c:
12183 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
12184
121851996-12-18 Paul Eggert <eggert@gnu.org>
12186
12187 * src/bison.s1 (yyparse):
12188 If __GNUC__ and YYPARSE_PARAM are both defined,
12189 declare yyparse to have a void * argument.
12190
121911996-12-18 Paul Eggert <eggert@gnu.org>
12192
12193 * bison.simple (yyparse):
12194 If __GNUC__ and YYPARSE_PARAM are both defined,
12195 declare yyparse to have a void * argument.
12196
121971996-12-17 Richard Stallman <rms@gnu.org>
12198
12199 * src/reduce.c (nbits): Add some casts.
12200
122011996-08-12 Richard Stallman <rms@gnu.org>
12202
12203 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
12204
122051996-08-12 Richard Stallman <rms@gnu.org>
12206
12207 * bison.simple: Test _MSDOS as well as _MSDOS_.
12208
122091996-07-31 Richard Stallman <rms@gnu.org>
12210
12211 * src/bison.s1:
12212 [__sun && __i386]: Include alloca.h.
12213
122141996-07-31 Richard Stallman <rms@gnu.org>
12215
12216 * bison.simple:
12217 [__sun && __i386]: Include alloca.h.
12218
122191996-07-30 Richard Stallman <rms@gnu.org>
12220
12221 * src/bison.s1: Comment change.
12222
12223 * src/bison.s1: Test _MSDOS_, not MSDOS.
12224
122251996-07-30 Richard Stallman <rms@gnu.org>
12226
12227 * bison.simple: Comment change.
12228
12229 * bison.simple: Test _MSDOS_, not MSDOS.
12230
122311996-06-01 Richard Stallman <rms@gnu.org>
12232
12233 * 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:
12234 Insert `_' macro around many string constants.
12235
12236 * src/main.c:
12237 Insert `_' macro around many string constants.
12238
12239 (main): Call setlocale, bindtextdomain and textdomain.
12240
12241 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
12242 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
12243 [ENABLE_NLS]: Include libintl.h.
12244 [ENABLE_NLS] (gettext): Define.
12245 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
12246 (N_, PACKAGE, LOCALEDIR): New macros.
12247
122481996-06-01 Richard Stallman <rms@gnu.org>
12249
12250 * POTFILES.in: New file.
12251
12252 * Makefile.in (allocate.o):
12253 Define target explicitly.
12254
12255 * Makefile.in (CFLAGS): Set to @CFLAGS@.
12256 (LDFLAGS): Set to @LDFLAGS@.
12257 (configure): Run autoconf only if preceding `cd' succeeds.
12258 (bison.s1): Redirect output to temporary file then move the
12259 temporary to the target, rather than redirecting directly to bison.s1.
12260 (clean): Remove config.status and config.log.
12261 (distclean): Don't remove config.status here.
12262
122631996-05-12 Richard Stallman <rms@gnu.org>
12264
12265 * src/bison.s1:
12266 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12267
122681996-05-12 Richard Stallman <rms@gnu.org>
12269
12270 * bison.simple:
12271 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
12272
122731996-05-11 Richard Stallman <rms@gnu.org>
12274
12275 * src/bison.s1 (__yy_memcpy):
12276 Really reorder the args, as was supposedly done on Feb 14 1995.
12277 (yyparse): Calls changed accordingly.
12278
122791996-05-11 Richard Stallman <rms@gnu.org>
12280
12281 * Makefile.in (dist): Don't use $(srcdir).
12282
12283 * bison.simple (__yy_memcpy):
12284 Really reorder the args, as was supposedly done on Feb 14 1995.
12285 (yyparse): Calls changed accordingly.
12286
122871996-01-27 Richard Stallman <rms@gnu.org>
12288
12289 * src/output.c (output_rule_data):
12290 Test YYERROR_VERBOSE in the conditional
12291 around the definition of ttyname.
12292
122931995-12-29 Richard Stallman <rms@gnu.org>
12294
12295 * src/bison.s1:
12296 Fix line numbers in #line commands.
12297
122981995-12-29 Richard Stallman <rms@gnu.org>
12299
12300 * bison.simple:
12301 Fix line numbers in #line commands.
12302
123031995-12-27 Richard Stallman <rms@gnu.org>
12304
12305 * src/bison.s1 (YYPARSE_PARAM_DECL):
12306 In C++, make it always null.
12307 (YYPARSE_PARAM_ARG): New macro.
12308 (yyparse): Use YYPARSE_PARAM_ARG.
12309
123101995-12-27 Richard Stallman <rms@gnu.org>
12311
12312 * bison.simple (YYPARSE_PARAM_DECL):
12313 In C++, make it always null.
12314 (YYPARSE_PARAM_ARG): New macro.
12315 (yyparse): Use YYPARSE_PARAM_ARG.
12316
123171995-11-29 Richard Stallman <rms@gnu.org>
12318
12319 * doc/bison.texinfo:
12320 Describe literal string tokens, %raw, %no_lines, %token_table.
12321
123221995-11-29 Daniel Hagerty <hag@gnu.org>
12323
12324 * doc/bison.texinfo: Fixed update date
12325
123261995-10-16 Richard Stallman <rms@gnu.org>
12327
12328 * src/version.c: Version 1.25.
12329
123301995-10-16 Richard Stallman <rms@gnu.org>
12331
12332 * NEWS: *** empty log message ***
12333
123341995-10-16 Richard Stallman <rms@gnu.org>
12335
12336 * doc/bison.1, doc/bison.rnh:
12337 Add new options.
12338
123391995-10-15 Richard Stallman <rms@gnu.org>
12340
12341 * src/vmsgetargs.c, src/getargs.c:
12342 Added -n, -k, and -raw switches.
12343 (noparserflag, toknumflag, rawtoknumflag): New variables.
12344
12345 * src/symtab.h (SALIAS):
12346 New #define for adding aliases to %token.
12347 (struct bucket): Added `alias' field.
12348
12349 * src/reduce.c (reduce_grammar):
12350 Revise error message.
12351 (print_notices): Remove final `.' from error message.
12352
12353 * src/reader.c (reader_output_yylsp):
12354 New function.
12355 (readgram): Use `#if 0' around code that accepted %command
12356 inside grammar rules: The documentation doesn't allow it,
12357 and it will fail since the %command processors scan for the next %.
12358 (parse_token_decl): Extended the %token
12359 declaration to allow a multi-character symbol as an alias.
12360 (parse_thong_decl): New function.
12361 (read_declarations): Added %thong declarations.
12362 (read_declarations): Handle NOOP to deal with allowing
12363 % declarations as another means to specify the flags.
12364 (readgram): Allow %prec prior to semantics embedded in a rule.
12365 (skip_to_char, read_declarations, copy_definition)
12366 (parse_token_decl, parse_start_decl, parse_type_decl)
12367 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
12368 (get_type_name, copy_guard, copy_action, readgram)
12369 (get_type, packsymbols): Revised most error messages.
12370 Changed `fatal' to `warnxxx' to avoid aborting for error.
12371 Revised and use multiple warnxxx functions to avoid using VARARGS1.
12372 (read_declarations): Improve the error message for
12373 an invalid character. Do not abort.
12374 (read_declarations, copy_guard, copy_action): Use
12375 printable_version to avoid unprintable characters in printed output.
12376 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
12377 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
12378 Allow the type of a non-terminal can be given
12379 more than once, as long as all specifications give the same type.
12380
12381 * src/output.c:
12382 (output_headers, output_trailers, output, output_gram)
12383 (output_rule_data): Implement noparserflag variable.
12384 Implement toknumflag variable.
12385 (output): Call reader_output_yylsp to output LTYPESTR.
12386
12387 * src/main.c (main):
12388 If reader sees an error, don't process the grammar.
12389 (fatals): Updated to not use VARARGS1.
12390 (printable_version, int_to_string, warn, warni, warns, warnss)
12391 (warnsss): New error reporting functions. Avoid abort for error.
12392
12393 * src/lex.h:
12394 Added THONG and NOOP for alias processing.
12395 Added SETOPT for the new code that allows setting options with %flags.
12396
12397 * src/lex.c:
12398 Include getopt.h. Add some extern decls.
12399 (safegetc): New function to deal with EOF gracefully.
12400 (literalchar); new function to deal with reading \ escapes.
12401 (lex): Use literalchar.
12402 (lex): Implemented "..." tokens.
12403 (literalchar, lex, parse_percent_token): Made tokenbuffer
12404 always contain the token. This includes growing the token
12405 buffer while reading an integer.
12406 (parse_percent_token): Replaced if-else statement with percent_table.
12407 (parse_percent_token): Added % declarations as another
12408 way to specify the flags -n, -l, and -r. Also added hooks for
12409 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
12410 major changes to files.c.
12411 (lex) Retain in the incoming stream a character following
12412 an incorrect '/'.
12413 (skip_white_space, lex): Revised most error messages
12414 and changed fatal to warn to avoid aborting.
12415 (percent_table): Added %thong declarations.
12416
12417 * src/gram.h: Comment changes.
12418
12419 * src/files.c (openfiles, open_extra_files, done):
12420 Add faction flag
12421 and actfile file. Handle noparserflag. Both for -n switch.
12422
12423 * src/conflicts.c (resolve_sr_conflict):
12424 Remove use of alloca.
12425
124261995-06-01 Jim Meyering <meyering@gnu.org>
12427
12428 * doc/bison.texinfo: *** empty log message ***
12429
124301995-05-06 Richard Stallman <rms@gnu.org>
12431
12432 * src/bison.s1: Comment change.
12433
124341995-05-06 Richard Stallman <rms@gnu.org>
12435
12436 * bison.simple: Comment change.
12437
124381995-05-03 Richard Stallman <rms@gnu.org>
12439
12440 * src/version.c: Version now 1.24.
12441
12442 * src/bison.s1: Change distribution terms.
12443
12444 * src/version.c: Version now 1.23.
12445
124461995-05-03 Richard Stallman <rms@gnu.org>
12447
12448 * doc/bison.texinfo:
12449 Rewrite "Conditions for Using Bison".
12450 Update version to 1.24.
12451
124521995-05-03 Richard Stallman <rms@gnu.org>
12453
12454 * bison.simple: Change distribution terms.
12455
124561995-02-23 Richard Stallman <rms@gnu.org>
12457
12458 * src/files.c: Test __VMS_POSIX as well as VMS.
12459
124601995-02-14 Jim Meyering <meyering@gnu.org>
12461
12462 * src/bison.s1 (__yy_memcpy):
12463 Renamed from __yy_bcopy to avoid
12464 confusion. Reverse FROM and TO arguments to be consistent with
12465 those of memcpy.
12466
124671995-02-14 Jim Meyering <meyering@gnu.org>
12468
12469 * bison.simple (__yy_memcpy):
12470 Renamed from __yy_bcopy to avoid
12471 confusion. Reverse FROM and TO arguments to be consistent with
12472 those of memcpy.
12473
124741994-11-10 David J. MacKenzie <djm@gnu.org>
12475
12476 * NEWS: reformat
12477
12478 * NEWS: New file.
12479
12480 * Makefile.in (DISTFILES): Include NEWS.
12481
12482 * Makefile.in (DISTFILES):
12483 Include install-sh, not install.sh.
12484
12485 * configure.in: Update to Autoconf v2 macro names.
12486
124871994-10-05 David J. MacKenzie <djm@gnu.org>
12488
12489 * Makefile.in: fix typo
12490
12491 * Makefile.in (prefix, exec_prefix):
12492 Let configure set them.
12493
124941994-09-28 David J. MacKenzie <djm@gnu.org>
12495
12496 * Makefile.in: Set datadir to $(prefix)/share.
12497
124981994-09-15 Richard Stallman <rms@gnu.org>
12499
12500 * src/bison.s1:
12501 Update copyright notice and GPL version.
12502
125031994-09-15 Richard Stallman <rms@gnu.org>
12504
12505 * bison.simple:
12506 Update copyright notice and GPL version.
12507
125081994-07-12 Richard Stallman <rms@gnu.org>
12509
12510 * src/reduce.c, src/reader.c:
12511 entered into RCS
12512
125131994-05-05 David J. MacKenzie <djm@gnu.org>
12514
12515 * Makefile.in: entered into RCS
12516
125171994-03-26 Richard Stallman <rms@gnu.org>
12518
12519 * src/bison.s1: entered into RCS
12520
125211994-03-26 Richard Stallman <rms@gnu.org>
12522
12523 * bison.simple: entered into RCS
12524
125251994-03-25 Richard Stallman <rms@gnu.org>
12526
12527 * src/main.c: entered into RCS
12528
125291994-03-24 Richard Stallman <rms@gnu.org>
12530
12531 * src/conflicts.c: entered into RCS
12532
125331994-01-02 Richard Stallman <rms@gnu.org>
12534
12535 * Makefile.in: *** empty log message ***
12536
125371993-11-21 Richard Stallman <rms@gnu.org>
12538
12539 * src/bison.s1: *** empty log message ***
12540
125411993-11-21 Richard Stallman <rms@gnu.org>
12542
12543 * doc/bison.texinfo: entered into RCS
12544
12545 * doc/bison.texinfo: *** empty log message ***
12546
125471993-11-21 Richard Stallman <rms@gnu.org>
12548
12549 * bison.simple: *** empty log message ***
12550
125511993-10-25 David J. MacKenzie <djm@gnu.org>
12552
12553 * doc/bison.texinfo: *** empty log message ***
12554
125551993-10-19 Richard Stallman <rms@gnu.org>
12556
12557 * src/bison.s1: *** empty log message ***
12558
125591993-10-19 Richard Stallman <rms@gnu.org>
12560
12561 * bison.simple: *** empty log message ***
12562
125631993-10-14 Richard Stallman <rms@gnu.org>
12564
12565 * src/bison.s1: *** empty log message ***
12566
125671993-10-14 Richard Stallman <rms@gnu.org>
12568
12569 * bison.simple: *** empty log message ***
12570
125711993-09-14 David J. MacKenzie <djm@gnu.org>
12572
12573 * doc/bison.texinfo: *** empty log message ***
12574
125751993-09-13 Noah Friedman <friedman@gnu.org>
12576
12577 * Makefile.in: *** empty log message ***
12578
125791993-09-10 Richard Stallman <rms@gnu.org>
12580
12581 * src/conflicts.c: *** empty log message ***
12582
12583 * src/system.h: entered into RCS
12584
125851993-09-10 Richard Stallman <rms@gnu.org>
12586
12587 * doc/bison.1: entered into RCS
12588
125891993-09-06 Noah Friedman <friedman@gnu.org>
12590
12591 * src/version.c: entered into RCS
12592
125931993-09-06 Noah Friedman <friedman@gnu.org>
12594
12595 * Makefile.in: *** empty log message ***
12596
125971993-07-30 David J. MacKenzie <djm@gnu.org>
12598
12599 * Makefile.in: *** empty log message ***
12600
126011993-07-24 Richard Stallman <rms@gnu.org>
12602
12603 * src/bison.s1: *** empty log message ***
12604
126051993-07-24 Richard Stallman <rms@gnu.org>
12606
12607 * bison.simple: *** empty log message ***
12608
126091993-07-08 David J. MacKenzie <djm@gnu.org>
12610
12611 * Makefile.in: *** empty log message ***
12612
126131993-07-04 Richard Stallman <rms@gnu.org>
12614
12615 * src/bison.s1: *** empty log message ***
12616
126171993-07-04 Richard Stallman <rms@gnu.org>
12618
12619 * bison.simple: *** empty log message ***
12620
126211993-06-26 David J. MacKenzie <djm@gnu.org>
12622
12623 * src/getargs.c: entered into RCS
12624
126251993-06-26 David J. MacKenzie <djm@gnu.org>
12626
12627 * doc/bison.texinfo: *** empty log message ***
12628
12629 * doc/bison.1: New file.
12630
126311993-06-25 Richard Stallman <rms@gnu.org>
12632
12633 * src/getargs.c: New file.
12634
126351993-06-16 Richard Stallman <rms@gnu.org>
12636
12637 * src/bison.s1: *** empty log message ***
12638
126391993-06-16 Richard Stallman <rms@gnu.org>
12640
12641 * bison.simple: *** empty log message ***
12642
126431993-06-03 Richard Stallman <rms@gnu.org>
12644
12645 * src/bison.s1: New file.
12646
126471993-06-03 Richard Stallman <rms@gnu.org>
12648
12649 * doc/bison.texinfo: *** empty log message ***
12650
126511993-06-03 Richard Stallman <rms@gnu.org>
12652
12653 * bison.simple: New file.
12654
126551993-05-19 Richard Stallman <rms@gnu.org>
12656
12657 * doc/bison.texinfo: New file.
12658
126591993-05-07 Noah Friedman <friedman@gnu.org>
12660
12661 * Makefile.in: *** empty log message ***
12662
126631993-04-28 Noah Friedman <friedman@gnu.org>
12664
12665 * src/reader.c: *** empty log message ***
12666
126671993-04-23 Noah Friedman <friedman@gnu.org>
12668
12669 * src/alloc.h: entered into RCS
12670
126711993-04-20 David J. MacKenzie <djm@gnu.org>
12672
12673 * src/version.c: *** empty log message ***
12674
12675 * src/files.c, src/allocate.c:
12676 entered into RCS
12677
12678 * src/reader.c: *** empty log message ***
12679
12680 * src/lex.c: entered into RCS
12681
12682 * src/conflicts.c: New file.
12683
12684 * src/symtab.c: entered into RCS
12685
12686 * src/alloc.h: New file.
12687
12688 * src/LR0.c: entered into RCS
12689
126901993-04-18 Noah Friedman <friedman@gnu.org>
12691
12692 * src/reader.c: New file.
12693
12694 * src/version.c: *** empty log message ***
12695
126961993-04-18 Noah Friedman <friedman@gnu.org>
12697
12698 * Makefile.in: *** empty log message ***
12699
127001993-04-17 Noah Friedman <friedman@gnu.org>
12701
12702 * Makefile.in: *** empty log message ***
12703
127041993-04-15 Richard Stallman <rms@gnu.org>
12705
12706 * src/main.c, src/files.c:
12707 New file.
12708
127091993-04-15 Noah Friedman <friedman@gnu.org>
12710
12711 * configure.in: entered into RCS
12712
12713 * configure.in: *** empty log message ***
12714
12715 * configure.in: New file.
12716
127171993-04-14 Richard Stallman <rms@gnu.org>
12718
12719 * Makefile.in: New file.
12720
127211993-04-13 Richard Stallman <rms@gnu.org>
12722
12723 * src/version.c: New file.
12724
127251993-03-25 Richard Stallman <rms@gnu.org>
12726
12727 * src/output.c: entered into RCS
12728
127291992-09-25 Richard Stallman <rms@gnu.org>
12730
12731 * configure.bat: entered into RCS
12732
127331992-06-22 Richard Stallman <rms@gnu.org>
12734
12735 * src/vmsgetargs.c: entered into RCS
12736
127371992-06-22 Richard Stallman <rms@gnu.org>
12738
12739 * doc/bison.rnh: entered into RCS
12740
127411992-04-20 David J. MacKenzie <djm@gnu.org>
12742
12743 * README: entered into RCS
12744
127451992-01-22 Richard Stallman <rms@gnu.org>
12746
12747 * src/machine.h: entered into RCS
12748
127491991-12-21 Richard Stallman <rms@gnu.org>
12750
12751 * src/lalr.c, src/closure.c:
12752 entered into RCS
12753
127541991-12-20 Richard Stallman <rms@gnu.org>
12755
12756 * src/state.h: entered into RCS
12757
127581991-12-18 Richard Stallman <rms@gnu.org>
12759
12760 * src/print.c, src/nullable.c, src/derives.c:
12761 entered into RCS
12762
127631991-11-03 David J. MacKenzie <djm@gnu.org>
12764
12765 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
12766 entered into RCS
12767
127681988-09-09 Richard Stallman <rms@gnu.org>
12769
12770 * src/bison.hairy: entered into RCS
12771
127721987-12-16 Richard Stallman <rms@gnu.org>
12773
12774 * REFERENCES: entered into RCS
12775
12776-----
12777
12778Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
127791998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
12780
12781This file is part of Bison, the GNU Compiler Compiler.
12782
12783Bison is free software; you can redistribute it and/or modify
12784it under the terms of the GNU General Public License as published by
12785the Free Software Foundation; either version 2, or (at your option)
12786any later version.
12787
12788Bison is distributed in the hope that it will be useful,
12789but WITHOUT ANY WARRANTY; without even the implied warranty of
12790MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12791GNU General Public License for more details.
12792
12793You should have received a copy of the GNU General Public License
12794along with Bison; see the file COPYING. If not, write to
12795the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
12796Boston, MA 02111-1307, USA.