]> git.saurik.com Git - bison.git/blob - ChangeLog
Simplify last patch slightly.
[bison.git] / ChangeLog
1 2008-11-17 Joel E. Denny <jdenny@ces.clemson.edu>
2
3 Simplify last patch slightly.
4 * src/getargs.c (getargs): Here.
5
6 2008-11-17 Joel E. Denny <jdenny@ces.clemson.edu>
7
8 Fix last warning from --enable-gcc-warnings.
9 * src/getargs.c (getargs): Don't assign const address to non-const
10 pointer.
11
12 2008-11-17 Joel E. Denny <jdenny@ces.clemson.edu>
13
14 Don't let maintainer-*-check targets force a version update.
15 * cfg.mk (_is-dist-target): Implement. maintainer-check* was already
16 handled.
17
18 2008-11-17 Di-an Jan <dianj@freeshell.org>
19
20 * doc/bison.texinfo: Synchronize ``Detail Node Listing''.
21 Align menus. Adjust word wrapping. Use node names for menu names.
22 (Examples): Don't abbreviate node names.
23 (LocalWords): Remove abbreviations.
24 (Copying): Make description a sentence.
25 (Java Action Features): Remove period to match the rest of menu.
26
27 2008-11-17 Di-an Jan <dianj@freeshell.org>
28
29 Handles several --enable-gcc-warnings.
30 * src/getargs.c (command_line_location): Set parameters to void.
31 * src/output.c (symbol_type_name_cmp): Make static.
32 (symbols_by_type_name): Set parameters to void.
33 (symbol_definitions_output): Remove unused parameter. Rename as...
34 (prepare_symbol_definitions): this.
35 (muscles_output): Move symbol_definitions_output to...
36 (output): here as prepare_symbol_definitions.
37 * tests/c++.at (AT_CHECK_VARIANTS): Remove unused parameters of main.
38 (AT_CHECK_NAMESPACE): Make unused parameter lloc unnamed.
39
40 2008-11-17 Di-an Jan <dianj@freeshell.org>
41
42 * tests/c++.at (AT_CHECK_VARIANTS): Fixes tests 198-202.
43 Use AT_DATA_GRAMMAR instead of AT_DATA for compiled tests.
44
45 2008-11-16 Akim Demaille <demaille@gostai.com>
46
47 Add missing $(EXEEXT).
48 * doc/local.mk ($(CROSS_OPTIONS_TEXI)): The target is
49 "src/bison$(EXEEXT)".
50 Reported by Di-an Jan.
51
52 2008-11-15 Akim Demaille <demaille@gostai.com>
53
54 * TODO: Update.
55
56 2008-11-15 Akim Demaille <demaille@gostai.com>
57
58 Formatting changes.
59 * tests/input.at: here.
60
61 2008-11-15 Akim Demaille <demaille@gostai.com>
62
63 Remove duplicate header inclusion.
64 * src/LR0.c: here.
65
66 2008-11-15 Akim Demaille <demaille@gostai.com>
67
68 * src/parse-gram.h, src/parse-gram.c: Regen.
69
70 2008-11-15 Akim Demaille <demaille@gostai.com>
71
72 Support parametric types.
73
74 There are two issues to handle: first scanning nested angle
75 bracket pairs to support types such as std::pair< std::string,
76 std::list<std::string> > >.
77
78 Another issue is to address idiosyncracies of C++: do not glue two
79 closing angle brackets together (otherwise it's operator>>), and
80 avoid sticking blindly a TYPE to the opening <, as it can result
81 in '<:' which is a digraph for '['.
82
83 * src/scan-gram.l (brace_level): Rename as...
84 (nesting): this.
85 (SC_TAG): New.
86 Implement support for complex tags.
87 (tag): Accept
88 , but not <.
89 * data/lalr1.cc (b4_symbol_value, b4_symbol_value_template)
90 (b4_symbol_variant): Leave space around types as parameters.
91 * examples/variant.yy: Use nested template types and leading ::.
92 * src/parse-gram.y (TYPE, TYPE_TAG_ANY, TYPE_TAG_NONE, type.opt):
93 Rename as...
94 (TAG, TAG_ANY, TAG_NONE, tag.opt): these.
95 * tests/c++.at: Test parametric types.
96
97 2008-11-15 Akim Demaille <akim@betelgeuse.gostai.ensta.fr>
98
99 Test token.prefix.
100 This is not sufficient, but we test at least that the make_SYMBOL
101 interface is not affected by token.prefix. A more general test
102 will be implemented when the support of token.prefix is generalized
103 to more skeletons.
104
105 * tests/c++.at: One more variant test, using token.prefix.
106
107 2008-11-15 Akim Demaille <akim@betelgeuse.gostai.ensta.fr>
108
109 Test the make_TOKEN interface.
110 * tests/c++.at (AT_CHECK_VARIANTS): Require and use locations.
111 Factor the common code in yylex.
112 Use it to test "%define lex_symbol".
113
114 2008-11-15 Akim Demaille <akim@betelgeuse.gostai.ensta.fr>
115
116 Formatting change.
117
118 2008-11-15 Akim Demaille <akim@betelgeuse.gostai.ensta.fr>
119
120 Simplify code for variants bench marks.
121 * etc/bench.pl.in (&generate_grammar_list): Define and use
122 location_type.
123 Factor the common code in yylex.
124
125 2008-11-15 Akim Demaille <demaille@gostai.com>
126
127 Better error message.
128 * bootstrap (find_tool): Fix the error message.
129
130 2008-11-15 Akim Demaille <demaille@gostai.com>
131
132 Update variant.yy to newest interface.
133 * examples/variant.yy: Define lex_symbol.
134 Adjust.
135
136 2008-11-15 Akim Demaille <demaille@gostai.com>
137
138 Don't use locations in variant.yy.
139 * examples/variant.yy: Adjust to not using locations.
140
141 2008-11-15 Akim Demaille <demaille@gostai.com>
142
143 Comment changes.
144 * data/local.mk, etc/local.mk, examples/local.mk: Use Automake
145 comments for the license.
146
147 2008-11-15 Akim Demaille <demaille@gostai.com>
148
149 Remove tests/Makefile.am.
150 * tests/Makefile.am: Rename as...
151 * tests/local.mk: this.
152 * Makefile.am, configure.ac: Adjust.
153 * Makefile.am (DISTCLEANFILES): Define.
154 (maintainer-check, maintainer-xml-check, maintainer-push-check):
155 Remove, we no longer need to bounce to the real targets.
156
157 2008-11-15 Akim Demaille <demaille@gostai.com>
158
159 Comment changes.
160
161 2008-11-15 Akim Demaille <demaille@gostai.com>
162
163 djgpp/local.mk.
164 * Makefile.am (EXTRA_DIST): Move djgpp related part to...
165 * djgpp/local.mk: this new file.
166
167 2008-11-15 Akim Demaille <demaille@gostai.com>
168
169 Remove doc/Makefile.am.
170 * doc/Makefile.am: Rename as...
171 * doc/local.mk: this.
172 Adjust paths
173 * Makefile.am, configure.ac: Adjust.
174 * Makefile.am (MOSTLYCLEANFILES): New.
175 * src/local.mk: Adjust.
176
177 2008-11-15 Akim Demaille <demaille@gostai.com>
178
179 Move sc_tight_scope into maint.mk.
180 It does not work, and I don't know how it was supposed to work: it
181 seems to be looking for sources in the build tree. I just moved
182 it at a better place, fixing it is still required.
183
184 * src/local.mk (echo): Remove.
185 (sc_tight_scope): Move to...
186 * maint.mk: here.
187
188 2008-11-15 Akim Demaille <demaille@gostai.com>
189
190 Regen.
191 * src/parse-gram.h, src/parse-gram.h: Regen.
192
193 2008-11-15 Akim Demaille <demaille@gostai.com>
194
195 Remove src/Makefile.am.
196 * src/Makefile.am: Rename as...
197 * src/local.mk: this.
198 Prefix all the paths with src/.
199 (AUTOMAKE_OPTIONS): Build object files in the sub dirs.
200 (AM_CPPFLAGS): Find find in builddir/src.
201 (YACC): Move the flags into...
202 (AM_YFLAGS): here.
203 * maint.mk (sc_tight_scope): Disable.
204 It used to bounce to the version in src/Makefile.am which is now
205 part of this very Makefile.
206 * Makefile.am, configure.ac: Adjust.
207 * src/scan-code-c.c, src/scan-code.l: We can no longer rely on
208 include "..." to find files "here": we are no longer in src/, so
209 qualify the includes with src/.
210 * doc/Makefile.am (PREPATH): No longer include the top_builddir
211 prefix.
212 (.x.1): Adjust to be able to create src/foo from the top level
213 Makefile, instead of going bounce to src/Makefile the creation of
214 foo.
215
216 2008-11-15 Akim Demaille <demaille@gostai.com>
217
218 Remove useless variable.
219 * doc/Makefile.am (srcsrcdir): Remove.
220
221 2008-11-15 Akim Demaille <demaille@gostai.com>
222
223 Remove data/Makefile.am.
224 * data/Makefile.am: Rename as...
225 * data/local.mk: this.
226 Adjust paths.
227 * Makefile.am, configure.ac: Adjust.
228
229 2008-11-15 Akim Demaille <demaille@gostai.com>
230
231 Remove etc/Makefile.am.
232 * etc/Makefile.am: Rename as...
233 * etc/local.mk: this.
234 Adjust.
235 * Makefile.am, configure.ac: Adjust.
236
237 2008-11-15 Akim Demaille <demaille@gostai.com>
238
239 Remove examples/local.mk.
240 examples/calc++/Makefile.am might be interesting to keep as is, since
241 it is an example in itself.
242
243 * examples/Makefile.am: Rename as...
244 * examples/local.mk: this.
245 Adjust.
246 * Makefile.am, configure.ac: Adjust.
247
248 2008-11-15 Akim Demaille <demaille@gostai.com>
249
250 Remove build-aux/Makefile.am.
251 Recursive Makefiles are really way too slow, let's get rid of some of
252 them.
253
254 * build-aux/Makefile.am: Rename as...
255 * build-aux/local.mk: this.
256 Adjust paths.
257 * Makefile.am, configure.ac: Adjust.
258
259 2008-11-15 Akim Demaille <demaille@gostai.com>
260
261 Provide convenience constructors for locations and positions.
262 * data/location.cc (position::position): Accept file, line and
263 column as arguments with default values.
264 Always qualify initial line and column literals as unsigned.
265 (location::location): Provide convenience constructors.
266
267 2008-11-15 Akim Demaille <demaille@gostai.com>
268
269 Instead of using make_symbol<TOK_FOO>, generate make_FOO for each
270 token type.
271 Using template buys us nothing, and makes it uselessly complex to
272 construct a symbol. Besides, it could not be generalized to other
273 languages, while make_FOO would work in C/Java etc.
274
275 * data/lalr1.cc (b4_symbol_): New.
276 (b4_symbol): Use it.
277 (b4_symbol_constructor_declaration_)
278 (b4_symbol_constructor_definition_): Instead of generating
279 specializations of an overloaded template function, just generate
280 several functions whose names are forged from the token names
281 without the token.prefix.
282 (b4_symbol_constructor_declarations): Generate them for all the
283 symbols, not just by class of symbol type, now that instead of
284 specializing a function template by the token, we generate a
285 function named after the token.
286 (b4_symbol_constructor_specialization_)
287 (b4_symbol_constructor_specializations): Remove.
288 * etc/bench.pl.in: Adjust to this new API.
289
290 2008-11-13 Akim Demaille <demaille@gostai.com>
291
292 %define token.prefix.
293 Provide a means to add a prefix to the name of the tokens as
294 output in the generated files. Because of name clashes, it is
295 good to have such a prefix such as TOK_ that protects from names
296 such as EOF, FILE etc. But it clutters the grammar itself.
297
298 * data/bison.m4 (token.prefix): Empty by default.
299 * data/c.m4 (b4_token_enum, b4_token_define): Use it.
300 * data/lalr1.cc (b4_symbol): Ditto.
301
302 2008-11-13 Akim Demaille <demaille@gostai.com>
303
304 Compute at M4 time some of the subtractions.
305 * data/lalr1.cc (b4_subtract): New.
306 (b4_rhs_data): Use it.
307
308 2008-11-13 Akim Demaille <demaille@gostai.com>
309
310 symbol::token.
311 This allows the user to get the type of a token returned by yylex.
312
313 * data/lalr1.cc (symbol::token): New.
314 (yytoknum_): Define when %define lex_symbol, independently of
315 %debug.
316 (yytoken_number_): Move into...
317 (symbol::token): here, since that's the only use.
318 The other one is YYPRINT which was not officially supported
319 by lalr1.cc, and anyway it did not work since YYPRINT uses this
320 array under a different name (yytoknum).
321
322 2008-11-13 Akim Demaille <demaille@gostai.com>
323
324 YYERRCODE.
325 * TODO (YYERRCODE): Mention the case of $undef.
326
327 2008-11-13 Akim Demaille <demaille@gostai.com>
328
329 TODO: YYPRINT.
330 * TODO (YYPRINT): New.
331
332 2008-11-13 Akim Demaille <demaille@gostai.com>
333
334 Comment changes.
335 * data/lalr1.cc, data/yacc.c: Fix the description of the
336 yytranslate and yytoknum tables.
337
338 2008-11-13 Akim Demaille <demaille@gostai.com>
339
340 Define make_symbol in the header.
341 To reach good performances these functions should be inlined (yet
342 this is to measure precisely). To this end they must be available
343 to the caller.
344
345 * data/lalr1.cc (b4_symbol_constructor_definition_): Qualify
346 location_type with the class name.
347 Since will now be output in the header, declare "inline".
348 No longer use b4_symbol_constructor_specializations, but
349 b4_symbol_constructor_definitions in the header.
350 Don't call it in the *.cc file.
351
352 2008-11-13 Akim Demaille <demaille@gostai.com>
353
354 Define yytranslate in the header for lex_symbol.
355 * data/lalr1.cc: Move the invocation of b4_yytranslate_definition
356 into the header file when using %define lex_symbol.
357 (yytranslate_): Declare inline.
358
359 2008-11-13 Akim Demaille <demaille@gostai.com>
360
361 Define the constructors of symbol_type in
362 b4_symbol_constructor_definitions.
363 The constructors are called by the make_symbol functions, which a
364 forthcoming patch will move elsewhere. Hence the interest of
365 putting them together.
366
367 The stack_symbol_type does not need to be moved, it is used only
368 by the parser.
369
370 * data/lalr1.cc: Move symbol_type and symbol_base_type
371 constructors into...
372 (b4_symbol_constructor_definitions): here.
373 Adjust.
374
375 2008-11-13 Akim Demaille <demaille@gostai.com>
376
377 Make it easier to move the definition of yytranslate_.
378 Forthcoming changes will make it possible to use yytranslate_
379 from outside the parser implementation file.
380
381 * data/lalr1.cc (b4_yytranslate_definition): New.
382 Use it.
383
384 2008-11-13 Akim Demaille <demaille@gostai.com>
385
386 Remove useless class specification.
387 * data/lalr1.cc (b4_symbol_constructor_specialization_): No need
388 to refer to the class name to use a type defined by the class for
389 arguments of member functions.
390
391 2008-11-13 Akim Demaille <demaille@gostai.com>
392
393 Finer input type for yytranslate.
394 This patch is debatable: the tradition expects yylex to return an int
395 which happens to correspond to token_number (which is an enum). This
396 allows for instance to return characters (such as '*' etc.). But this
397 goes against the stronger typing I am trying to have with the new
398 lex interface which return a symbol_type. So in this case, feed
399 yytranslate_ with a token_type.
400
401 * data/lalr1.cc (yytranslate_): When in %define lex-symbol,
402 expect a token_type.
403
404 2008-11-13 Akim Demaille <demaille@gostai.com>
405
406 Honor lex-params in %define lex_symbol mode.
407 * data/lalr1.cc: Use b4_lex_param.
408
409 2008-11-13 Akim Demaille <demaille@gostai.com>
410
411 Simplify names.
412 * src/output.c (symbol_definitions_output): Rename symbol
413 attributes type_name and has_type_name as type and has_type.
414 * data/lalr1.cc: Adjust uses.
415
416 2008-11-13 Akim Demaille <demaille@gostai.com>
417
418 Use b4_type_names for the union type.
419 The union used to compute the size of the variant used to iterate
420 over the type of all the symbols, with a lot of redundancy. Now
421 iterate over the lists of symbols having the same type-name.
422
423 * data/lalr1.cc (b4_char_sizeof_): New.
424 (b4_char_sizeof): Use it.
425 Adjust to be called with a list of numbers instead of a single
426 number.
427 Adjust its caller for new-line issues.
428
429 2008-11-13 Akim Demaille <demaille@gostai.com>
430
431 Define the "identifier" of a symbol.
432 Symbols may have several string representations, for instance if
433 they have an alias. What I call its "id" is a string that can be
434 used as an identifier. May not exist.
435
436 Currently the symbols which have the "tag_is_id" flag set are
437 those that don't have an alias. Look harder for the id.
438
439 * src/output.c (is_identifier): Move to...
440 * src/symtab.c (is_identifier): here.
441 * src/symtab.h, src/symtab.c (symbol_id_get): New.
442 * src/output.c (symbol_definitions_output): Use it to define "id"
443 and "has_id".
444 Remove the definition of "tag_is_id".
445 * data/lalr1.cc: Use the "id" and "has_id" whereever "tag" and
446 "tag_is_id" were used to produce code.
447 We still use "tag" for documentation.
448
449 2008-11-11 Akim Demaille <demaille@gostai.com>
450
451 Locations are no longer required by lalr1.cc.
452 * data/lalr1.cc (_b4_args, b4_args): New.
453 Adjust all uses of locations to make them optional.
454 * tests/c++.at (AT_CHECK_VARIANTS): No longer use the locations.
455 (AT_CHECK_NAMESPACE): Check the use of locations.
456 * tests/calc.at (_AT_DATA_CALC_Y): Adjust to be usable with or
457 without locations with lalr1.cc.
458 Test these cases.
459 * tests/output.at: Check lalr1.cc with and without location
460 support.
461 * tests/regression.at (_AT_DATA_EXPECT2_Y, _AT_DATA_DANCER_Y):
462 Don't use locations.
463
464 2008-11-11 Akim Demaille <demaille@gostai.com>
465
466 AT_FULL_COMPILE.
467 * tests/local.at (AT_FULL_COMPILE): New.
468 * tests/actions.at, tests/calc.at, tests/regression.at: Use it.
469
470 2008-11-11 Akim Demaille <demaille@gostai.com>
471
472 Support parens in calc++.
473 * doc/bison.texinfo (Calc++ Scanner, Calc++ Parser): Support parens.
474 * examples/calc++/test (run): Check the expected output.
475 Adjust callers.
476 Check parens too.
477
478 2008-11-11 Akim Demaille <demaille@gostai.com>
479
480 Simplify lalr1.cc since %defines is mandatory.
481 * data/lalr1.cc: Remove useless calls to b4_defines_if.
482
483 2008-11-11 Akim Demaille <demaille@gostai.com>
484
485 TODO: yyfmt.
486 * TODO (yysyntax_error): New item.
487
488 2008-11-11 Akim Demaille <demaille@gostai.com>
489
490 Prefer M4 to CPP.
491 * data/lalr1.cc: Use b4_error_verbose_if instead of #if
492 YYERROR_VERBOSE.
493
494 2008-11-11 Akim Demaille <demaille@gostai.com>
495
496 Support i18n of the parse error messages.
497 * TODO (lalr1.cc/I18n): Remove.
498 * data/lalr1.cc (yysyntax_error_): Support the translation of the
499 error messages, as done in yacc.c.
500 Stay within the yy* pseudo namespace.
501
502 2008-11-11 Akim Demaille <demaille@gostai.com>
503
504 More TODO.
505 * TODO (single stack, yysyntax_error): New.
506
507 2008-11-11 Akim Demaille <demaille@gostai.com>
508
509 Make it possible to return a symbol_type from yylex.
510 * data/lalr1.cc (b4_lex_symbol_if): New.
511 (parse): When lex_symbol is defined, expected yylex to return the
512 complete lookahead.
513 * etc/bench.pl.in (generate_grammar_list): Extend to support this
514 yylex interface.
515 (bench_variant_parser): Exercise it.
516
517 2008-11-11 Akim Demaille <demaille@gostai.com>
518
519 Remove useless bench case.
520 * etc/bench.pl.in (bench_variant_parser): VARIANT_DESTROY is
521 no longer used.
522
523 2008-11-11 Akim Demaille <demaille@gostai.com>
524
525 Improve display of directives.
526 * etc/bench.pl.in (parse_term): Don't add useless eol.
527
528 2008-11-11 Akim Demaille <demaille@gostai.com>
529
530 Use string_cast in the bench.
531 * etc/bench.pl.in (generate_grammar_list): Define and use
532 string_cast.
533
534 2008-11-11 Akim Demaille <demaille@gostai.com>
535
536 Replace yychar with a Boolean.
537 * data/lalr1.cc (parse::yychar): Replace by...
538 (parse::yyempty): this.
539
540 2008-11-11 Akim Demaille <demaille@gostai.com>
541
542 Factor the tables.
543 * TODO: New item.
544
545 2008-11-11 Akim Demaille <demaille@gostai.com>
546
547 Let yytranslate handle the eof case.
548 * data/lalr1.cc (yytranslate_): Handle the EOF case.
549 Adjust callers.
550 No longer expect yychar to be equal to yyeof_, rather, test the
551 lookahead's (translated) kind.
552
553 2008-11-11 Akim Demaille <demaille@gostai.com>
554
555 yychar cannot be empty in yyerrlab.
556 * TODO (yychar == yyempty_): New.
557 * data/lalr1.cc: Remove the handling of this case.
558 This eases forthcoming changes related to yychar and yytranslate.
559
560 2008-11-11 Akim Demaille <demaille@gostai.com>
561
562 Bench: syntactic sugar for %define/#define.
563 * etc/bench.pl.in (parse_dirs): Support %d and #d with arguments.
564 (&bench_push_parser, bench_variant_parser): Use this feature.
565 (&eat): New.
566 Use it.
567
568 2008-11-11 Akim Demaille <demaille@gostai.com>
569
570 Less memory pressure on the "list" bench.
571 * etc/bench.pl.in (generate_grammar_list): Do not accumulate all
572 the values, to limit memory pressure.
573
574 2008-11-11 Akim Demaille <demaille@gostai.com>
575
576 Introduce make_symbol.
577 make_symbol provides a means to construct a full symbol (kind,
578 value, location) in a single shot. It is meant to be a Symbol
579 constructor, parameterized by the symbol kind so that overloading
580 would prevent incorrect kind/value pairs. Unfortunately
581 parameterized constructors do not work well in C++ (unless the
582 parameter also appears as an argument, which is not acceptable),
583 hence the use of a function instead of a constructor.
584
585 * data/lalr1.cc (b4_symbol_constructor_declaration_)
586 (b4_symbol_constructor_declarations)
587 (b4_symbol_constructor_specialization_)
588 (b4_symbol_constructor_specializations)
589 (b4_symbol_constructor_definition_)
590 (b4_symbol_constructor_definitions): New.
591 Use them where appropriate to generate declaration, declaration of
592 the specializations, and implementations of the templated
593 overloaded function "make_symbol".
594 (variant::variant): Always define a default ctor.
595 Also provide a copy ctor.
596 (symbol_base_type, symbol_type): New ctor overloads for value-less
597 symbols.
598 (symbol_type): Now public, so that functions such as yylex can use
599 it.
600
601 2008-11-11 Akim Demaille <demaille@gostai.com>
602
603 Inform m4 whether a tag is a valid id.
604 * src/output.c (is_identifier): New.
605 (symbol_definitions_output): Use it to define tag_is_id.
606 But maybe this should be done at m4 level?
607
608 2008-11-11 Akim Demaille <demaille@gostai.com>
609
610 Test 214 was failing: it greps with a pattern containing [ ]*
611 which obviously meant to catch spaces and tabs, but contained only
612 spaces. Tabulations in sources are a nuisance, so to simplify the
613 matter, get rid of all the tabulations in the Java sources. The
614 other skeletons will be treated equally later.
615
616 * data/java.m4, data/lalr1.java: Untabify.
617 * tests/java.at: Simplify AT_CHECK_JAVA_GREP invocations:
618 tabulations are no longer generated.
619
620 2008-11-11 Paolo Bonzini <bonzini@gnu.org>
621
622 * bootstrap.conf: Replace m4/warning.m4 with warnings module.
623 * configure.ac: Adjust usage.
624 * lib/Makefile.am: Replace $(WARNING_CFLAGS) with $(WARN_CFLAGS).
625 * src/Makefile.am: Replace $(WARNING_CFLAGS) with $(WARN_CFLAGS).
626 * tests/atlocal.in: Replace $(WARNING_*FLAGS) with $(WARN_*FLAGS).
627
628 2008-11-10 Di-an Jan <dianj@freeshell.org>
629
630 Workaround Java's ``code too large'' problem for parser tables
631 in most cases, by using one function per initialization.
632 * data/java.m4 (b4_typed_parser_table, b4_integral_parser_table): New.
633 * data/lalr1.java (yypact_, yydefact_, yypgoto_, yydefgoto_,
634 yytable_, yycheck_, yystos_, yytoken_number_, yyr1_, yyr2_, yyrhs_
635 yyprhs_, yyrline_, yytranslate_table_): Use b4_integral_parser_table.
636 (yytname_): Use b4_typed_parser_table.
637 * doc/bison.texinfo (Java Bison Interface): Add note on Java's
638 ``code too large'' error.
639
640 2008-11-10 Di-an Jan <dianj@freeshell.org>
641
642 * NEWS: Document them.
643
644 General Java skeleton improvements.
645 * configure.ac (gt_JAVACOMP): Request target of 1.4, which allows
646 using gcj < 4.3 in the testsuite, according to comments in
647 gnulib/m4/javacomp.m4.
648 * data/java.m4 (stype, parser_class_name, lex_throws, throws,
649 location_type, position_type): Remove extraneous brackets from
650 b4_percent_define_default.
651 (b4_lex_param, b4_parse_param): Remove extraneous brackets from
652 m4_define and m4_define_default.
653 * data/lalr1.java (b4_pre_prologue): Change to b4_user_post_prologue,
654 which marks the end of user code with appropriate syncline, like all
655 the other skeletons.
656 (b4_user_post_prologue): Add. Don't silently drop.
657 (yylex): Remove.
658 (parse): Inline yylex.
659 * doc/bison.texinfo (bisonVersion, bisonSkeleton): Document.
660 (%{...%}): Fix typo of %code imports.
661 * tests/java.at (AT_JAVA_COMPILE): Add "java" keyword.
662
663 Support annotations on parser class with %define annotations.
664 * data/lalr1.java (annotations): Add to parser class modifier.
665 * doc/bison.texinfo (Java Parser Interface): Document
666 %define annotations.
667 (Java Declarations Summary): Document %define annotations.
668 * tests/java.at (Java parser class modifiers): Test annotations.
669
670 Do not generate code for %error-verbose unless requested.
671 * data/lalr1.java (errorVerbose): Rename to yyErrorVerbose.
672 Make private. Make conditional on %error-verbose.
673 (getErrorVerbose, setErrorVerbose): New.
674 (yytnamerr_): Make conditional on %error-verbose.
675 (yysyntax_error): Make some code conditional on %error-verbose.
676 * doc/bison.texinfo (Java Bison Interface): Remove the parts
677 about %error-verbose having no effect.
678 (getErrorVerbose, setErrorVerbose): Document.
679
680 Move constants for token names to Lexer interface.
681 * data/lalr1.java (Lexer): Move EOF, b4_token_enums(b4_tokens) here.
682 * data/java.m4 (b4_token_enum): Indent for move to Lexer interface.
683 (parse): Qualify EOF to Lexer.EOF.
684 * doc/bison.texinfo (Java Parser Interface): Move documentation of
685 EOF and token names to Java Lexer Interface.
686 * tests/java.at (_AT_DATA_JAVA_CALC_Y): Remove Calc qualifier.
687
688 Make yyerror public.
689 * data/lalr1.java (Lexer.yyerror): Use longer parameter name.
690 (yyerror): Change to public. Add Javadoc comments. Use longer
691 parameter names. Make the body rather than the declarator
692 conditional on %locations.
693 * doc/bison.texinfo (yyerror): Document. Don't mark as protected.
694
695 Allow user to add code to the constructor with %code init.
696 * data/java.m4 (b4_init_throws): New, for %define init_throws.
697 * data/lalr1.java (YYParser.YYParser): Add b4_init_throws.
698 Add %code init to the front of the constructor body.
699 * doc/bison.texinfo (YYParser.YYParser): Document %code init
700 and %define init_throws.
701 (Java Declarations Summary): Document %code init and
702 %define init_throws.
703 * tests/java.at (Java %parse-param and %lex-param): Adjust grep.
704 (Java constructor init and init_throws): Add tests.
705
706 2008-11-10 Akim Demaille <demaille@gostai.com>
707
708 Update TODO.
709 * TODO (-D): is implemented.
710 (associativity): Same precedence must have the same associativity.
711 For instance, how can a * b / c be parsed if * is %left and / is
712 %right?
713 (YYERRORCODE, YYFAIL, YYBACKUP): New.
714
715 2008-11-10 Akim Demaille <demaille@gostai.com>
716
717 Formatting changes.
718
719 2008-11-10 Akim Demaille <demaille@gostai.com>
720
721 More information about the symbols.
722 * src/output.c (type_names_output): Document all the symbols,
723 including those that don't have a type-name.
724 (symbol_definitions_output): Define "is_token" and
725 "has_type_name".
726 * data/lalr1.cc (b4_type_action_): Skip symbols that have an empty
727 type-name, now that they are defined too in b4_type_names.
728
729 2008-11-10 Akim Demaille <demaille@gostai.com>
730
731 Regen.
732
733 2008-11-10 Akim Demaille <demaille@gostai.com>
734
735 Make parser::yytranslate static.
736 Small speedup (1%) on the list grammar. And makes yytranslate_
737 available in non member functions.
738
739 * data/lalr1.cc (yytranslate_): Does not need to be a instance
740 function.
741
742 2008-11-10 Akim Demaille <demaille@gostai.com>
743
744 Avoid trailing spaces.
745 * data/c.m4: b4_comment(TEXT): Don't indent empty lines.
746 * data/lalr1.cc: Don't indent before rule and symbol actions, as
747 they can be empty, and anyway this incorrectly indents the first
748 action.
749
750 2008-11-10 Akim Demaille <demaille@gostai.com>
751
752 Comment changes.
753
754 2008-11-10 Akim Demaille <demaille@gostai.com>
755
756 Use "enum" for integral constants.
757 This is just nicer to read, I observed no speedup.
758
759 * data/lalr1.cc (yyeof_, yylast_, yynnts_, yyempty_, yyfinal_)
760 (yterror_, yyerrcode_, yyntokens_): Define as members of an enum.
761 (yyuser_token_number_max_, yyundef_token_): Move into...
762 (yytranslate_): here.
763
764 2008-11-10 Akim Demaille <demaille@gostai.com>
765
766 Shortcuts in bench directives.
767 * etc/bench.pl.in (parse_dirs): New.
768 Use it.
769 (bench_variant_parser, bench_fusion_parser): Use %s and %d.
770 Create the benches in "benches/".
771
772 2008-11-10 Akim Demaille <demaille@gostai.com>
773
774 Formatting changes.
775 * data/lalr1.cc: here.
776
777 2008-11-10 Akim Demaille <demaille@gostai.com>
778
779 Adjust verbose message to using emacs.
780 * etc/bench.pl.in: Inform compilation-mode when we change the
781 directory.
782 (generate_grammar_list): Recognize %define "variant" in addition
783 to %define variant.
784
785 2008-11-10 Akim Demaille <demaille@gostai.com>
786
787 Classify symbols by type-name.
788 * src/uniqstr.h (UNIQSTR_CMP): New.
789 * src/output.c (symbol_type_name_cmp, symbols_by_type_name)
790 (type_names_output): New.
791 (muscles_output): Use it.
792 * data/lalr1.cc (b4_symbol_action_): Remove.
793 (b4_symbol_case_, b4_type_action_): New.
794 Adjust uses of b4_symbol_action_ to use b4_type_action_.
795
796 2008-11-10 Akim Demaille <demaille@gostai.com>
797
798 Change the handling of the symbols in the skeletons.
799 Before we were using tables which lines were the symbols and which
800 columns were things like number, tag, type-name etc. It is was
801 difficult to extend: each time a column was added, all the numbers had
802 to be updated (you asked for colon $2, not for "tag"). Also, it was
803 hard to filter these tables when only a subset of the symbols (say the
804 tokens, or the nterms, or the tokens that have and external number
805 *and* a type-name) was of interest.
806
807 Now instead of monolithic tables, we define one macro per cell. For
808 instance "b4_symbol(0, tag)" is a macro name which contents is
809 self-decriptive. The macro "b4_symbol" provides easier access to
810 these cells.
811
812 * src/output.c (type_names_output): Remove.
813 (symbol_numbers_output, symbol_definitions_output): New.
814 (muscles_output): Call them.
815 (prepare_symbols): Define b4_symbols_number.
816
817 2008-11-10 Akim Demaille <demaille@gostai.com>
818
819 --trace=muscles
820 * src/getargs.h, src/getargs.c (trace_muscle): New.
821 (trace_types, trace_args): Support it.
822 * src/output.c (output_skeleton): Use it.
823
824 2008-11-10 Akim Demaille <demaille@gostai.com>
825
826 muscles_output.
827 * src/output.c (muscles_output): New, extracted from...
828 (output_skeleton): here.
829 Adjust.
830
831 2008-11-10 Akim Demaille <demaille@gostai.com>
832
833 Formatting changes.
834
835 2008-11-10 Akim Demaille <demaille@gostai.com>
836
837 Update the variant example.
838 * examples/variant.yy: Formatting changes.
839 One stage build.
840
841 2008-11-10 Akim Demaille <demaille@gostai.com>
842
843 Support constructor with an argument.
844 This improves the "list" bench by 2%.
845
846 * data/lalr1.cc (variant::build): Add an overloaded version with
847 an argument.
848 * tests/c++.at (AT_CHECK_VARIANT): Check it.
849
850 2008-11-10 Akim Demaille <demaille@gostai.com>
851
852 Test variants.
853 * tests/c++.at (AT_CHECK_VARIANTS): New.
854 Use it with and without %define assert.
855
856 2008-11-10 Akim Demaille <demaille@gostai.com>
857
858 Add %precedence support.
859 Unfortunately it is not possible to reuse the %prec directive. This
860 is because to please POSIX, we do not require to end the rules with a
861 semicolon. As a result,
862
863 foo: bar %prec baz
864
865 is ambiguous: either a rule which precedence is that of baz, or a rule,
866 and then a declaration of the precedence of the token baz.
867
868 * doc/bison.texinfo: Document %precedence.
869 (Precedence Only): New.
870 * src/assoc.h, src/assoc.c (precedence_assoc): New.
871 * src/conflicts.c (resolve_sr_conflict): Support it.
872 * src/scan-gram.l, src/parse-gram.y (%precedence): New token.
873 Parse it.
874 * tests/calc.at: Use %precedence for NEG.
875 * tests/conflicts.at (%precedence does not suffice)
876 (%precedence suffices): New tests.
877
878 2008-11-09 Akim Demaille <demaille@gostai.com>
879
880 Make benches in a sub dirs.
881 * etc/bench.pl.in ($dir): New.
882 Use it.
883 Check the use of constructors with an argument.
884 (bench_variant_parser): Fix.
885
886 2008-11-09 Akim Demaille <demaille@gostai.com>
887
888 fix eof condition
889
890 2008-11-09 Akim Demaille <demaille@gostai.com>
891
892 Fix --help.
893
894 2008-11-09 Akim Demaille <demaille@gostai.com>
895
896 Require the generation of parse-gram.output.
897 * src/Makefile.am (YACC): Pass --report=all.
898
899 2008-11-09 Akim Demaille <demaille@gostai.com>
900
901 Formatting changes.
902
903 2008-11-09 Akim Demaille <demaille@gostai.com>
904
905 Update TODO.
906 * TODO: Remove obsolete items.
907 Update others.
908
909 2008-11-09 Akim Demaille <demaille@gostai.com>
910
911 Enhance bench.pl.
912 * etc/bench.pl.in (parse, parse_expr, parse_term, parse_fact)
913 (@token, $grammar, $bench): New.
914 (generate_grammar_variant): Rename as...
915 (generate_grammar_list): this.
916 (generate_grammar): Adjust.
917 (bench_grammar): Rename as...
918 (bench): this.
919 Use it in the various bench-marking routines.
920 (-b, -g): New options.
921
922 2008-11-09 Akim Demaille <demaille@gostai.com>
923
924 Use a static hierarchy for symbols in the C++ parser.
925 * data/lalr1.cc (symbol_base_type, symbol_type)
926 (stack_symbol_type): Make it a static hierarchy.
927 Adjust dependencies.
928
929 2008-11-09 Akim Demaille <demaille@gostai.com>
930
931 bench.pl -d, --directive.
932 * etc/bench.pl.in (@directive): New.
933 (&bench_grammar): Use it.
934 (&bench_list_grammar): New, to provide access to the "variant"
935 grammar.
936 Use it.
937 (getopts): Support -d, --directive.
938
939 2008-11-09 Akim Demaille <demaille@gostai.com>
940
941 Use inline for small operations.
942 * data/lalr1.cc (symbol_base_type, symbol_type)
943 (stack_symbol_type): Declare constructor and other operations as
944 inline.
945 (yy_destroy_): Inline.
946
947 2008-11-09 Akim Demaille <demaille@gostai.com>
948
949 Introduce a hierarchy for symbols.
950 * data/lalr1.cc (symbol_base_type, symbol_type): New.
951 (data_type): Rename as...
952 (stack_symbol_type): this.
953 Derive from symbol_base_type.
954 (yy_symbol_value_print_): Merge into...
955 (yy_symbol_print_): this.
956 Rename as...
957 (yy_print_): this.
958 (yydestruct_): Rename as...
959 (yy_destroy_): this.
960 (b4_symbols_actions, YY_SYMBOL_PRINT): Adjust.
961 (parser::parse): yyla is now of symbol_type.
962 Use its type member instead of yytoken.
963
964 2008-11-09 Akim Demaille <demaille@gostai.com>
965
966 Rename data_type and stack_symbol_type.
967 * data/lalr1.cc (data_type): Rename as...
968 (stack_symbol_type): this.
969
970 2008-11-09 Akim Demaille <demaille@gostai.com>
971
972 Handle semantic value and location together.
973 * data/lalr1.cc (b4_symbol_actions): Bounce $$ and @$ to
974 yydata.value and yydata.location.
975 (yy_symbol_value_print_, yy_symbol_print_, yydestruct_)
976 (YY_SYMBOL_PRINT): Now take semantic value and location as a
977 single arg.
978 Adjust all callers.
979 (yydestruct_): New overload for a stack symbol.
980
981 2008-11-09 Akim Demaille <demaille@gostai.com>
982
983 Push a complete symbol, not connected parts.
984 * data/lalr1.cc (yypush_): Take a data_type&, not disconnected
985 state, value and location.
986 Adjust callers.
987
988 2008-11-09 Akim Demaille <demaille@gostai.com>
989
990 Agregate yylval and yylloc.
991 * data/lalr1.cc (parser::yylval, parser::yylloc): Replace by...
992 (parser::yyla): this.
993
994 2008-11-09 Akim Demaille <demaille@gostai.com>
995
996 Rely on the state stack to display reduction traces.
997 To display rhs symbols before a reduction, we used information
998 about the rule reduced, which required the tables yyrhs and
999 yyprhs. Now use rely only on the state stack to get the same
1000 information.
1001
1002 * data/lalr1.cc (b4_rhs_data, b4_rhs_state): New.
1003 Use them.
1004 (parser::yyrhs_, parser::yyprhs_): Remove.
1005 (parser::yy_reduce_print_): Use the state stack.
1006
1007 2008-11-09 Akim Demaille <demaille@gostai.com>
1008
1009 Fuse yyval and yyloc into yylhs.
1010 * data/lalr1.cc (b4_lhs_value, b4_lhs_location): Adjust to using
1011 yylhs.
1012 (parse): Replace yyval and yyloc with yylhs.value and
1013 yylhs.location.
1014 After a user action, compute yylhs.state earlier.
1015 (yyerrlab1): Do not play tricks with yylhs.location, rather, use a
1016 fresh error_token.
1017
1018 2008-11-09 Di-an Jan <dianj@freeshell.org>
1019
1020 Remove unused variable.
1021 * src/output.c (type_names_output): Remove unused variable sep.
1022
1023 2008-11-09 Paolo Bonzini <bonzini@gnu.org>
1024
1025 Change tests/output.at quoting.
1026 * tests/output.at (AT_CHECK_OUTPUT): Use conventional m4 quoting when
1027 expanding arguments.
1028
1029 2008-11-07 Joel E. Denny <jdenny@ces.clemson.edu>
1030
1031 Don't add a semicolon to actions for %skeleton or %language.
1032 It breaks Java test cases as reported by Akim Demaille.
1033 * src/scan-code.l: Implement.
1034
1035 2008-11-07 Joel E. Denny <jdenny@ces.clemson.edu>
1036
1037 Clean up %skeleton and %language priority implementation.
1038 * src/getargs.c (skeleton_prio): Use default_prio rather than 2, and
1039 remove static qualifier because others will soon need to see it.
1040 (language_prio): Likewise.
1041 (getargs): Use command_line_prio rather than 0.
1042 * src/getargs.h (command_line_prio, grammar_prio, default_prio): New
1043 enum fields.
1044 (skeleton_prio): Extern it.
1045 (language_prio): Extern it.
1046 * src/parse-gram.y: Use grammar_prio rather than 1.
1047
1048 2008-11-07 Akim Demaille <demaille@gostai.com>
1049
1050 Moving push traces into yypush_.
1051 * data/lalr1.cc (yypush_): Now takes a optional trace message.
1052 Adjust all uses.
1053
1054 2008-11-07 Akim Demaille <demaille@gostai.com>
1055
1056 The single-stack C++ parser is now the standard one.
1057 * data/lalr1.cc: Rename as...
1058 * data/lalr1-split.cc: this.
1059 * data/lalr1-fusion.cc: Rename as...
1060 * data/lalr1.cc: this.
1061 * etc/bench.pl.in: Adjust.
1062
1063 2008-11-07 Akim Demaille <demaille@gostai.com>
1064
1065 Avoid empty-if warnings.
1066 Reported by Quentin Hocquet.
1067
1068 * data/lalr1-fusion.cc (YY_SYMBOL_PRINT, YY_REDUCE_PRINT)
1069 (YY_STACK_PRINT): Provide some contents even when !YYDEBUG.
1070
1071 2008-11-07 Akim Demaille <demaille@gostai.com>
1072
1073 Pass command line location to skeleton_arg and language_argmatch.
1074 * src/getargs.h, src/getargs.c (skeleton_arg, language_argmatch):
1075 The location argument is now mandatory.
1076 Adjust all dependencies.
1077 (getargs): Use command_line_location.
1078
1079 2008-11-07 Akim Demaille <demaille@gostai.com>
1080
1081 -D, --define.
1082 * src/getargs.c (usage): Document -D.
1083 Fix help string for --locations.
1084 (command_line_location): New.
1085 (short_options, long_options, getargs): Support -D, --define.
1086 (getargs): Move -d support at the right place.
1087 * doc/bison.texinfo (Bison Options): Update.
1088 * tests/input.at (%define, --define): New.
1089
1090 2008-11-07 Akim Demaille <demaille@gostai.com>
1091
1092 Initialize the muscle table before parsing the command line.
1093 * src/getargs.c (quotearg.h, muscle_tab.h): Include.
1094 (getargs): Define file_name.
1095 * src/main.c (main): Initialize muscle_tab before calling
1096 getargs.
1097 * src/muscle_tab.c (muscle_init): No longer define file_name, as
1098 its value is not available yet.
1099
1100 2008-11-07 Akim Demaille <demaille@gostai.com>
1101
1102 Locations without columns for command line arguments.
1103 * src/location.c (location_print): Don't display negative columns.
1104 * src/location.h: Document this.
1105
1106 2008-11-07 Akim Demaille <demaille@gostai.com>
1107
1108 Fix --help.
1109 * src/getargs.c (usage): Fix help string for -W.
1110
1111 2008-11-07 Akim Demaille <demaille@gostai.com>
1112
1113 Handle more general types of option arguments.
1114 * build-aux/cross-options.pl: The argument ends at the first
1115 space, not the first non-symbol character.
1116 Use @var for each word appearing the argument description.
1117
1118 2008-11-07 Akim Demaille <demaille@gostai.com>
1119
1120 Destroy the variants that remain on the stack in case of error.
1121 * data/lalr1-fusion.cc (yydestruct_): Invoke the variant's
1122 destructor.
1123 Display the value only if yymsg is nonnull.
1124 (yyreduce): Invoke yydestruct_ when popping lhs symbols.
1125
1126 2008-11-07 Akim Demaille <demaille@gostai.com>
1127
1128 Add "%define assert" to variants.
1129 This is used to help the user catch cases where some value gets
1130 ovewritten by a new one. This should not happen, as this will
1131 probably leak.
1132
1133 Unfortunately this uncovered a bug in the C++ parser itself: the
1134 lookahead value was not destroyed between two calls to yylex. For
1135 instance if the previous lookahead was a std::string, and then an int,
1136 then the value of the std::string was correctly taken (i.e., the
1137 lookahead was now an empty string), but std::string structure itself
1138 was not reclaimed.
1139
1140 This is now done in variant::build(other&) (which is used to take the
1141 value of the lookahead): other is not only stolen from its value, it
1142 is also destroyed. This incurs a new performance penalty of a few
1143 percent, and union becomes faster again.
1144
1145 * data/lalr1-fusion.cc (variant::build(other&)): Destroy other.
1146 (b4_variant_if): New.
1147 (variant::built): New.
1148 Use it whereever the status of the variant changes.
1149 * etc/bench.pl.in: Check the penalty of %define assert.
1150
1151 2008-11-07 Akim Demaille <demaille@gostai.com>
1152
1153 Use "%define variant" in bench.pl.
1154 * etc/bench.pl.in: No longer use the pseudo directive %variants,
1155 just use %define variants.
1156
1157 2008-11-07 Akim Demaille <demaille@gostai.com>
1158
1159 Regen.
1160 * src/parse-gram.h, src/parse-gram.c: Regen.
1161
1162 2008-11-04 Joel E. Denny <jdenny@ces.clemson.edu>
1163
1164 Fix user actions without a trailing semicolon.
1165 Reported by Sergei Steshenko at
1166 <http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00001.html>.
1167 * THANKS (Sergei Steshenko): Add.
1168 * src/scan-code.l (SC_RULE_ACTION): Fix it.
1169 * tests/regression.at (Fix user actions without a trailing semicolon):
1170 New test case.
1171
1172 2008-11-04 Akim Demaille <demaille@gostai.com>
1173
1174 Use b4_copyright_years.
1175 * data/yacc.c (b4_copyright_years): New.
1176 Fix its value according to the comments in the file.
1177 Use it and undefine it.
1178
1179 2008-11-04 Akim Demaille <demaille@gostai.com>
1180
1181 Formatting changes.
1182 * data/lalr1-fusion.cc, src/parse-gram.y: here.
1183
1184 2008-11-04 Akim Demaille <demaille@gostai.com>
1185
1186 Formatting changes.
1187 * data/lalr1-fusion.cc: here.
1188
1189 2008-11-04 Akim Demaille <demaille@gostai.com>
1190
1191 Use strict on bench.pl.
1192 * etc/bench.pl.in (&run, &generate_grammar): New.
1193 Rename the grammar generating functions for consistency.
1194 Change the interface so that the list of benches to run is passed
1195 as (optionless) arguments.
1196 (&compile): Use &run.
1197
1198 2008-11-04 Akim Demaille <demaille@gostai.com>
1199
1200 Remove spurious initial empty lines.
1201 * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
1202 * data/yacc.c: End the @output lines with an @.
1203
1204 2008-11-04 Akim Demaille <demaille@gostai.com>
1205
1206 Improve the display of sizes.
1207 * etc/bench.p.in: Higher precision.
1208 Sort by decreasing size.
1209
1210 2008-11-04 Akim Demaille <demaille@gostai.com>
1211
1212 Don't memcpy C++ structures.
1213 * data/lalr1-fusion.cc (b4_symbol_variant): Adjust additional
1214 arguments.
1215 (variant::build): New overload for
1216 copy-construction-that-destroys.
1217 (variant::swap): New.
1218 (parser::yypush_): Use it in variant mode.
1219
1220 2008-11-04 Akim Demaille <demaille@gostai.com>
1221
1222 Better defaults for bench.pl.
1223 * etc/bench.pl.in ($verbose, $cflags, $iterations): Change the
1224 default values.
1225 Adjust &verbose uses.
1226 (-q, --quiet): New.
1227
1228 2008-11-04 Akim Demaille <demaille@gostai.com>
1229
1230 Make variant.yy more complex.
1231 std::list cannot be copied via memcpy, they are more demanding than
1232 std::string. Use one std::list to strengthen the test.
1233
1234 * examples/variant.yy: Use lalr1-fusion.cc, not lalr1.cc.
1235 Adjust.
1236 Create a list of strings, instead of a single large string.
1237
1238 2008-11-04 Akim Demaille <demaille@gostai.com>
1239
1240 bench.pl --bench.
1241 * etc/bench.pl.in (--bench, $bench): New.
1242
1243 2008-11-04 Akim Demaille <demaille@gostai.com>
1244
1245 Sort methods.
1246 * data/lalr1-fusion.cc (destroy): Use as() in its definition.
1247 Define it after as().
1248
1249 2008-11-04 Akim Demaille <demaille@gostai.com>
1250
1251 Useless parens.
1252 * data/lalr1-fusion.cc (b4_rhs_location): Remove useless parens.
1253
1254 2008-11-04 Akim Demaille <demaille@gostai.com>
1255
1256 Issue missing synclines after user actions.
1257 * data/c.m4 (b4_case): Issue synclines on the output file.
1258
1259 2008-11-04 Akim Demaille <demaille@gostai.com>
1260
1261 Remove trailing empty line.
1262 * data/lalr1-fusion.cc: Don't add an empty line after the user's
1263 epilogue.
1264
1265 2008-11-04 Akim Demaille <demaille@gostai.com>
1266
1267 Fix output of copyright years.
1268 * data/bison.m4 (b4_copyright): Fix the indentation of the
1269 copyright year paragraph.
1270 Use b4_copyright_years when no years are given.
1271 * data/lalr1.cc, data/lalr1-fusion.cc, data/location.cc
1272 (b4_copyright_years): New.
1273 Use it.
1274
1275 2008-11-04 Akim Demaille <demaille@gostai.com>
1276
1277 Avoid the spurious initial empty line.
1278 * data/lalr1-fusion.cc, data/location.cc: Put a trailing "@" at
1279 the end of @output request to suppress the empty line that
1280 results.
1281
1282 2008-11-04 Akim Demaille <demaille@gostai.com>
1283
1284 Remove parser::rhs_number_type.
1285 * data/lalr1-fusion.cc (rhs_number_type): No longer define it.
1286 (yyrhs_): Use b4_table_define.
1287
1288 2008-11-04 Akim Demaille <demaille@gostai.com>
1289
1290 Fix iteration type.
1291 * data/lalr1-fusion.cc: Use an int to iterate up to an int.
1292
1293 2008-11-04 Akim Demaille <demaille@gostai.com>
1294
1295 Factor the declaration of the integer tables.
1296 * data/lalr1-fusion.cc (b4_table_define): New.
1297 Use it.
1298
1299 2008-11-03 Akim Demaille <demaille@gostai.com>
1300
1301 Fix indentation of tables in lalr1.cc
1302 * data/lalr1-fusion.cc: Fix the indentation.
1303
1304 2008-11-03 Akim Demaille <demaille@gostai.com>
1305
1306 Destroy the lhs symbols after reduction.
1307 * data/lalr1-fusion.cc (parse): After the user action, when in
1308 variant mode, destroy the lhs symbols.
1309
1310 2008-11-03 Akim Demaille <demaille@gostai.com>
1311
1312 Simplify yysyntax_error_ use.
1313 * data/lalr1-fusion.cc (yysyntax_error_): Always pass it the token
1314 type, but make it unnamed in the declaration when it is not used.
1315
1316 2008-11-03 Akim Demaille <demaille@gostai.com>
1317
1318 Let yy::variant::build return an lvalue.
1319 * data/lalr1-fusion.cc (variant::build): Return a reference to the
1320 object.
1321
1322 2008-11-03 Akim Demaille <demaille@gostai.com>
1323
1324 Define yy::variant only when needed.
1325 * data/lalr1-fusion.cc (yy::variant): Define only if variants are
1326 used.
1327
1328 2008-11-03 Akim Demaille <demaille@gostai.com>
1329
1330 Bench the three-stack lalr1.cc.
1331 * etc/bench.pl.in: Bench the three-stack lalr1.cc vs. the
1332 one-stack one.
1333
1334 2008-11-03 Akim Demaille <demaille@gostai.com>
1335
1336 Fail on parse error in calc++.
1337 * doc/bison.texinfo (calc++.cc): Propagate failures to the exit
1338 status.
1339 * examples/calc++/test ($me, $number, $exit, run): New.
1340 Use them to propagate errors to the exit status.
1341
1342 2008-11-03 Akim Demaille <demaille@gostai.com>
1343
1344 Don't specify the skeleton twice in the example.
1345 * examples/calc++/Makefile.am: Don't pass -S to Bison, the grammar
1346 file does what is needed.
1347
1348 2008-11-03 Akim Demaille <demaille@gostai.com>
1349
1350 bench: Improve output.
1351 * etc/bench.pl.in (bench_grammar): Tune the printf format.
1352
1353 2008-11-03 Akim Demaille <demaille@gostai.com>
1354
1355 bench: check impact of %debug on variants.
1356 * etc/bench.pl.in (variant_grammar): Fix the computation of
1357 $variant.
1358 Generate a grammar file that can work with or without %debug.
1359 Do use the @directive.
1360 (bench_variant_parser): Check impact of %debug.
1361 (@directives): Rename all the occurrences to...
1362 (@directive): this, for consistency.
1363
1364 2008-11-03 Akim Demaille <demaille@gostai.com>
1365
1366 bench: report the size too.
1367 * etc/bench.pl.in ($iterations): Defaults to -3.
1368 (&bench_grammar): Require hireswallclock.
1369 Compute and display the size of the result.
1370 More comments.
1371
1372 2008-11-03 Akim Demaille <demaille@gostai.com>
1373
1374 bench: More use of the verbosity level.
1375 * etc/bench.pl.in ($verbose, &verbose): New.
1376 Use them.
1377 More POD documentation.
1378
1379 2008-11-03 Akim Demaille <demaille@gostai.com>
1380
1381 bench.pl: a command line interface
1382 * etc/bench.pl.in: More doc.
1383 Some fixes in the documentation.
1384 ($cflags, $iterations, &help, &getopt): New.
1385 Use them.
1386 (&variant_grammar): Let the number of stages be 10 times what is
1387 specified.
1388
1389 2008-11-03 Akim Demaille <demaille@gostai.com>
1390
1391 Bench the use of Boost.Variants.
1392 * etc/bench.pl.in ($cxx, &variant_grammar, &bench_variant_parser):
1393 New.
1394 (&compile): Be ready to compile C++ parsers.
1395 (&bench_push_parser): Move debug information to the outermost
1396 level.
1397 * THANKS: Add Michiel De Wilde.
1398
1399 2008-11-03 Akim Demaille <demaille@gostai.com>
1400
1401 bench.pl: Pass directives as a list instead of as a string.
1402 * etc/bench.pl.in (&directives): New.
1403 (&triangular_grammar, &calc_grammar): Use it to format the Bison
1404 directives.
1405 (&triangular_grammar): Do use the directives (were ignored).
1406 (&bench_grammar, &bench_push_parser): Adjust to pass lists of
1407 directives.
1408
1409 2008-11-03 Akim Demaille <demaille@gostai.com>
1410
1411 Improve genericity of bench.pl.
1412 * etc/bench.pl.in (&bench_grammar): Take the set of benches as
1413 argument.
1414 (&bench_push_parser): New.
1415 Call it.
1416
1417 2008-11-03 Akim Demaille <demaille@gostai.com>
1418
1419 Add documentation to bench.pl.
1420 * etc/bench.pl.in: Comment changes.
1421
1422 2008-11-03 Akim Demaille <demaille@gostai.com>
1423
1424 Fuse the three stacks into a single one.
1425
1426 In order to make it easy to perform benchmarks to ensure that
1427 there are no performance loss, lalr1.cc is forked into
1428 lalr1-fusion.cc. Eventually, lalr1-fusion.cc will replace
1429 lalr1.cc.
1430
1431 Meanwhile, to make sure that lalr1-fusion.cc is correctly
1432 exercized by the test suite, the user must install a symbolic link
1433 from lalr1.cc to it.
1434
1435 Instead of having three stacks (state, value, location), use a
1436 stack of triples. This considerably simplifies the code (and it
1437 will be easier not to require locations as currently does the C++
1438 parser), and also gives a 10% speedup according to
1439 etc/bench (probably mainly since memory allocation is done once
1440 instead of three times).
1441
1442 Another motivation is to make it easier to destruct properly
1443 semantic values: now that they are bound to their state (hence
1444 symbol type) it will be easier to call the appropriate destructor.
1445
1446 These changes should probably benefit the C parser too.
1447
1448 * data/lalr1.cc: Copy as...
1449 * data/lalr1-fusion.cc: this new file.
1450 (b4_rhs_value, b4_rhs_location): New definitions overriding those
1451 from c++.m4.
1452 (state_stack_type, semantic_stack_type, location_stack_type)
1453 (yystate_stack_, yysemantic_stack_, yylocation_stack_): Remove.
1454 (data_type, stack_type, yystack_): New.
1455 (YYLLOC_DEFAULT, yypush_): Adjust.
1456 (yyerror_range): Now based on data_type, not location_type.
1457
1458 2008-11-03 Akim Demaille <demaille@gostai.com>
1459
1460 Push the state, value, and location at the same time.
1461 This is needed to prepare a forthcoming patch that fuses the three
1462 stacks into one.
1463
1464 * data/lalr1.cc (parser::yypush_): New.
1465 (parser::yynewstate): Change the semantics: instead of arriving to
1466 this label when value and location have been pushed, but yystate
1467 is to be pushed on the state stack, now the three of them must
1468 have been pushed before. yystate still must be the new state.
1469 This allows to use yypush_ everywhere instead of individual
1470 handling of the stacks.
1471
1472 2008-11-03 Akim Demaille <demaille@gostai.com>
1473
1474 Prefer references to pointers.
1475 * data/lalr1.cc (b4_symbol_actions): New, overrides the default C
1476 definition to use references instead of pointers.
1477 (yy_symbol_value_print_, yy_symbol_print_, yydestruct_):
1478 Take the value and location as references.
1479 Adjust callers.
1480
1481 2008-11-03 Akim Demaille <demaille@gostai.com>
1482
1483 stack::size instead of stack::height.
1484 * data/lalr1.cc (stack::height): Rename as...
1485 (stack::size): this.
1486 Fix the output type.
1487 Comment changes.
1488
1489 2008-11-03 Akim Demaille <demaille@gostai.com>
1490
1491 Use variants to support objects as semantic values.
1492 This patch was inspired by work by Michiel De Wilde. But he used
1493 Boost variants which (i) requires Boost on the user side, (ii) is
1494 slow, and (iii) has useless overhead (the parser knows the type of
1495 the semantic value there is no reason to duplicate this
1496 information as Boost.Variants do).
1497
1498 This implementation reserves a buffer large enough to store the
1499 largest objects. yy::variant implements this buffer. It was
1500 implemented with Quentin Hocquet.
1501
1502 * src/output.c (type_names_output): New.
1503 (output_skeleton): Invoke it.
1504 * data/c++.m4 (b4_variant_if): New.
1505 (b4_symbol_value): If needed, provide a definition for variants.
1506 * data/lalr1.cc (b4_symbol_value, b4_symbol_action_)
1507 (b4_symbol_variant, _b4_char_sizeof_counter, _b4_char_sizeof_dummy)
1508 (b4_char_sizeof, yy::variant): New.
1509 (parser::parse): If variants are requested, define
1510 parser::union_type, parser::variant, change the definition of
1511 semantic_type, construct $$ before running the user action instead
1512 of performing a default $$ = $1.
1513 * examples/variant.yy: New.
1514 Based on an example by Michiel De Wilde.
1515
1516 2008-11-03 Akim Demaille <demaille@gostai.com>
1517
1518 Parameterize the extraction of semantic values.
1519 To make future changes easier, no longer rely on ".TYPE" being the
1520 way to get a semantic value.
1521
1522 * data/c.m4 (b4_symbol_value): New.
1523 Use it.
1524 * data/c++.m4, data/yacc.c: Use it.
1525 * data/glr.c: Use b4_symbol_value.
1526 (b4_rhs_data): New.
1527 Use it.
1528
1529 2008-11-03 Akim Demaille <demaille@gostai.com>
1530
1531 Prepare easier M4 changes.
1532 * data/lalr1.cc: Use escaped [] instead of literals to prepare
1533 future changes.
1534
1535 2008-11-02 Joel E. Denny <jdenny@ces.clemson.edu>
1536
1537 Initiate further development.
1538 * NEWS: Create an empty section for new entries.
1539 * gnulib: Update submodule to HEAD.
1540
1541 2008-11-02 Joel E. Denny <jdenny@ces.clemson.edu>
1542
1543 * NEWS: Version 2.4.
1544
1545 2008-11-02 Joel E. Denny <jdenny@ces.clemson.edu>
1546
1547 Prepare for next release.
1548 * NEWS: Briefly mention changes since 2.3b.
1549 * README: Say GNU m4 1.4.6, which we've been requiring in release
1550 announcements already, not 1.4.3, which breaks the build.
1551
1552 2008-11-02 Joel E. Denny <jdenny@ces.clemson.edu>
1553
1554 Say %language is experimental.
1555 We're thinking of extending it's effect on output file naming. See the
1556 thread at
1557 <http://lists.gnu.org/archive/html/bison-patches/2008-10/msg00003.html>.
1558 * NEWS: Say it's experimental.
1559 * doc/bison.texinfo (Decl Summary): Say it's experimental, and so don't
1560 recommend it over %skeleton for now.
1561 (Bison Options): Likewise.
1562 (C++ Bison Interface): Use %skeleton not %language.
1563 (Calc++ Parser): Use %skeleton not %language.
1564 * src/getargs.c (usage): Say it's experimental.
1565
1566 2008-11-01 Di-an Jan <dianj@freeshell.org>
1567 Paolo Bonzini <bonzini@gnu.org>
1568
1569 Support all Java parser class modifiers.
1570 * data/java.m4 (b4_percent_define_get3): New.
1571 (b4_final_if, b4_strictfp_if): New.
1572 * data/lalr1.java (final, strictfp, extends, implements): Support.
1573 * doc/bison.texinfo (final, strictfp, extends, implements): Add
1574 documentation.
1575 * tests/java.at (AT_CHECK_JAVA_MINIMAL): New.
1576 (AT_CHECK_JAVA_MINIMAL_W_LEXER): New.
1577 (AT_CHECK_JAVA_GREP): New.
1578 (Java parser class modifiers): New test.
1579 (Java parser class extends and implements): New test.
1580
1581 Model exception propagation better with throws and lex_throws.
1582 * data/java.m4 (b4_list2): New.
1583 (throws): Change default.
1584 * data/lalr1.java (yyaction): Add throws.
1585 (parse): Add lex_throws in addition to throws.
1586 * doc/bison.texinfo (throws, lex_throws): Add documentation.
1587 * tests/java.at (Java throws specifications): New test.
1588
1589 Improve documentation for Java parsers.
1590 * doc/bison.texinfo (Java Parsers): Add subsections.
1591 Don't quote first argument of %define.
1592 (Java Bison Interface): Document output files. Move documentation
1593 of parser class and merge into Java Parser Interface. Document
1594 features that error out. Document directives with no effect.
1595 Move note about Javadoc higher.
1596 (Java Semantic Values): Explicitly mention stype.
1597 Document that generic types cannot be used.
1598 (Java Location Values): Use @deftypeivar. Document constructors.
1599 Correct return value for toString.
1600 (Java Parser Interface): List undocumented constants/fields.
1601 Move documentation of fields added by %parse-param closer to list
1602 of members. Document that token names are added as fields.
1603 Document constructors accurately. Remove error method.
1604 (Java Scanner Interface): Move note on %pure-parser to Java Bison
1605 Interface. Describe %code lexer and yylex accutately.
1606 Remove documentation that does not match the code.
1607 (Java Action Features): New.
1608 (Java Differences): Add reference. Add item on semantic values.
1609 Add note about @{ ... @}. Clarify %% epilogue placement.
1610 (Java Declarations Summary): New.
1611
1612 Fix Java skeleton.
1613 * data/java.m4 (b4_prefix): Correct quoting for m4_define_default.
1614 (b4_remove_comma): Quote test argument.
1615 (b4_identification): Remove "bison" field.
1616 * tests/java.at (Java parser class and package names): New test.
1617 (Java %parse-param and %lex-param): New test.
1618 (Java stype, position_class and location_class): New test.
1619
1620 2008-10-31 Di-an Jan <dianj@freeshell.org>
1621
1622 * data/lalr1.jave: Update copyright years.
1623 (YYParser): Correct name of "generated from" file in Javadoc:
1624 use b4_file_name instead of @ofile@.
1625 (Location constructor): Correct Javadoc parameter name.
1626 (yylloc): Add missing opening m4 quote after b4_location_if.
1627 This removes a stray [ in the Javadoc of Lexer.getStartPos.
1628 (Lexer.yyerror): Fix incorrect m4 and Javadoc.
1629 (YYParser constructor): Correct Javadoc parameter name.
1630
1631 2008-10-30 Joel E. Denny <jdenny@ces.clemson.edu>
1632
1633 Always put auxiliary code files in the same dir as other output files.
1634 * src/files.c (compute_file_name_parts): When the user specifies
1635 --output but not --file-prefix, extract the directory prefix from the
1636 file prefix not from the grammar file name. This affects the location
1637 of files like location.hh generated by the C++ skeleton. The includes
1638 in the other output files require this fix.
1639 * tests/output.at (AT_CHECK_OUTPUT): Automatically create directories
1640 for expected output files.
1641 (Output files): Add a test for the above.
1642
1643 2008-10-29 Joel E. Denny <jdenny@ces.clemson.edu>
1644
1645 * gnulib: Update submodule to HEAD.
1646
1647 2008-10-28 Joel E. Denny <jdenny@ces.clemson.edu>
1648
1649 Update copyright year.
1650 * src/files.c: Here.
1651
1652 2008-10-28 Di-an Jan <dianj@freeshell.org> (tiny change)
1653
1654 Don't overwrite the input file.
1655 * src/files.c (output_file_name_check): Fatal error if using input file
1656 for output.
1657 * tests/output.at: (AT_CHECK_CONFLICTING_OUTPUT): Add return status
1658 argument.
1659 (Conflicting output files): Add test.
1660
1661 2008-10-28 Akim Demaille <demaille@gostai.com>
1662
1663 Space changes.
1664 * data/lalr1.cc: Formatting changes.
1665
1666 2008-10-28 Akim Demaille <demaille@gostai.com>
1667
1668 Don't define debugging functions when !YYDEBUG.
1669 * data/lalr1.cc (debug_stream, set_debug_stream)
1670 (debug_level_type, debug_level, set_debug_level): Don't
1671 declare them when YYDEBUG is not defined.
1672 The implementation are already YYDEBUG-aware.
1673
1674 2008-10-28 Akim Demaille <demaille@gostai.com>
1675
1676 Prefer "continue" for empty loop bodies.
1677 * etc/bench.pl.in: Use "continue" instead of {}.
1678
1679 2008-10-28 Akim Demaille <demaille@gostai.com>
1680
1681 Space and comments changes.
1682 * data/c++.m4, data/glr.c, data/lalr1.cc: Copyright year changes.
1683 * data/c.m4, data/lalr1.cc: Space changes.
1684
1685 2008-10-28 Akim Demaille <demaille@gostai.com>
1686
1687 Make gnulib a submodule.
1688 * gnulib: New.
1689 * .gitmodules (gnulib): New.
1690
1691 2008-10-18 Joel E. Denny <jdenny@ces.clemson.edu>
1692
1693 Fix yyerror_range for user-defined location type in C++. Reported by
1694 Georg Sauthoff at
1695 <http://lists.gnu.org/archive/html/bug-bison/2008-08/msg00008.html>.
1696 * data/lalr1.cc (parse): Change type of yyerror_range to location_type.
1697 * THANKS (Georg Sauthoff): Add.
1698
1699 2008-10-18 Joel E. Denny <jdenny@ces.clemson.edu>
1700
1701 Update several administrative files mainly to facilitate releasing.
1702 * HACKING (Administrivia): Make the git-merge-changelog notes more
1703 helpful.
1704 (Test suite): Don't say lalr1.cc is not exercised in the test suite.
1705 (Release Procedure): Update for git and add numerous details that were
1706 previously missing.
1707 * Makefile.am (EXTRA_DIST): Remove Makefile.cfg and Makefile.maint.
1708 * maint.mk (announcement): Don't list bison as a bootstrap tool so
1709 that announcements don't claim we bootstrapped with whatever bison
1710 happened to be in PATH. Add flex as a bootstrap tool.
1711 * Makefile.maint: Remove, previously replaced by maint.mk.
1712 * Makefile.cfg: Remove, and migrate settings to...
1713 * cfg.mk: ... here for the sake of `make announcement'.
1714 * bootstrap.conf (gnulib_modules): Add announce-gen.
1715 * README: Say GNU Bison instead of just Bison. Suggested by Karl
1716 Berry.
1717
1718 2008-10-08 Di-an Jan <dianj@freeshell.org> (tiny change)
1719
1720 Small but important bugfixes for the Java skeleton.
1721 * data/lalr1.java (yyerror): Change Location to b4_location_type.
1722 (yy_symbol_print): Call toString on yyvaluep.
1723
1724 2008-08-29 Akim Demaille <demaille@gostai.com>
1725
1726 Clarify UPDATED use.
1727 * doc/bison.texinfo: It refers to the last edition of this file,
1728 not to the release date of Bison.
1729 Reported by Joel E. Denny.
1730
1731 2008-08-29 Akim Demaille <demaille@gostai.com>
1732
1733 * README: Update FAQ pointer.
1734 Reported by Joel E. Denny.
1735
1736 2008-08-27 Eric Blake <ebb9@byu.net>
1737
1738 Resync m4sugar from autoconf.
1739 * data/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine)
1740 (m4_init): Adjust to latest m4.git changes.
1741 (m4_mapall_sep, _m4_list_cmp, m4_version_compare): Reduce side
1742 effects.
1743 * data/m4sugar/foreach.m4 (_m4_shiftn): Fix off-by-one bug.
1744 (_m4_list_cmp): Reduce side effects.
1745
1746 2008-08-27 Akim Demaille <demaille@gostai.com>
1747
1748 Check yyerrok in calc.at.
1749 * tests/calc.at (calc.y): Use yyerrok on "( error )".
1750 (AT_CHECK_CALC): Add a check that ensures that yyerrok works as
1751 expected.
1752
1753 2008-08-27 Akim Demaille <demaille@gostai.com>
1754
1755 Support yyerrok in lalr1.cc.
1756 YYBACKUP is still to import back into lalr1.cc.
1757 * data/lalr1.cc (yyerrork, yyclearin, YYRECOVERING): Define.
1758
1759 2008-08-26 Joel E. Denny <jdenny@ces.clemson.edu>
1760
1761 For maintainer-check*, don't recompile for a $(VERSION) update.
1762 * cfg.mk: New file.
1763 (_is-dist-target): Override the one in GNUmakefile.
1764 * Makefile.am (EXTRA_DIST): Add cfg.mk.
1765
1766 2008-08-26 Joel E. Denny <jdenny@ces.clemson.edu>
1767
1768 Update for recent change to gnulib.
1769 * src/parse-gram.y: Don't include strverscmp.h. It comes from
1770 string.h now.
1771
1772 2008-08-15 Eric Blake <ebb9@byu.net>
1773
1774 Remaining m4sugar merge from autoconf.
1775 * data/m4sugar/m4sugar.m4: Copy entire file from autoconf.
1776 * data/m4sugar/foreach.m4: New file, copied from autoconf.
1777 * data/Makefile.am (dist_m4sugar_DATA): Distribute it.
1778 * src/output.c (output_skeleton): Tell m4 how to find it.
1779
1780 Partial m4sugar merge from autoconf: m4_map.
1781 * data/m4sugar/m4sugar.m4 (m4_fst): Delete.
1782 (m4_map, m4_map_sep, _m4_map): Rewrite more efficiently.
1783 (m4_apply, _m4_apply, m4_mapall, m4_mapall_sep): New macros.
1784 * data/java.m4 (b4_token_enums): Use more efficient short-circuit
1785 for empty list.
1786 * data/c.m4 (b4_token_defines, b4_token_enums, b4_c_ansi_formals):
1787 Likewise.
1788 (b4_parse_param_for): Avoid m4_fst, now that autoconf no longer
1789 declares it.
1790
1791 2008-08-07 Joel E. Denny <jdenny@ces.clemson.edu>
1792
1793 Keep .version and PACKAGE_VERSION in sync.
1794 * Makefile.am ($(top_srcdir)/.version): Declare configure as a
1795 dependency, and add comments justifying this in more detail. Discussed
1796 starting at
1797 <http://lists.gnu.org/archive/html/bison-patches/2008-07/msg00022.html>.
1798
1799 2008-08-06 Eric Blake <ebb9@byu.net>
1800
1801 Partial m4sugar merge from autoconf: m4_shiftn.
1802 * data/m4sugar/m4sugar.m4 (m4_shiftn): Faster implementation.
1803 (m4_shift2, m4_shift3): New macros.
1804 (m4_case, m4_bmatch, m4_bpatsubsts, m4_join): Adjust clients.
1805 * data/c.m4 (b4_c_function_def, b4_c_ansi_function_def)
1806 (b4_c_ansi_function_decl, b4_c_function_call): Likewise.
1807 * data/java.m4 (b4_remove_comma): Likewise.
1808
1809 Partial m4sugar merge from autoconf: m4_wrap vs. m4 1.6.
1810 * data/m4sugar/m4sugar.m4 (m4_unquote, m4_wrap_lifo): New macros.
1811 (m4_wrap): Guarantee FIFO order, in spite of m4 1.6.
1812 (m4_init): Consolidate wrapped text into single m4_wrap.
1813 * data/bison.m4 (b4_check_user_names_wrap): Stick with LIFO order
1814 in wrapped text.
1815
1816 2008-08-05 Eric Blake <ebb9@byu.net>
1817
1818 Partial m4sugar merge from autoconf: builtins, version.m4.
1819 * data/m4sugar/m4sugar.m4 (changeword): Nuke.
1820 (m4_prepend): Remove, as it is unused and inherently quadratic,
1821 whereas m4_append is linear in newer m4.
1822 (m4_mkstemp): New builtin.
1823 (m4_symbols): Make rename conditional.
1824 (m4_version_prereq): Ensure fatal error if used in bison, which
1825 intentionally lacks version.m4.
1826
1827 Fix comments in m4sugar.
1828 * data/m4sugar/m4sugar.m4: Comment changes, borrowed from autoconf.
1829
1830 2008-08-02 Joel E. Denny <jdenny@ces.clemson.edu>
1831
1832 Update for recent .gitignore fix in Gnulib.
1833 * bootstrap: Back out 2008-07-18 hack now that gnulib-tool creates
1834 anchored .gitignore entries.
1835
1836 2008-08-02 Joel E. Denny <jdenny@ces.clemson.edu>
1837
1838 Set gnu or gnits strictness.
1839 * configure.ac (AM_INIT_AUTOMAKE): Set gnu strictness during
1840 development and gnits strictness for releases. Based on Eric Blake's
1841 suggestion at
1842 <http://lists.gnu.org/archive/html/bug-bison/2008-07/msg00019.html>.
1843
1844 2008-07-31 Paolo Bonzini <bonzini@gnu.org>
1845
1846 * NEWS: Clarify documentation of %language.
1847
1848 2008-07-31 Paolo Bonzini <bonzini@gnu.org>
1849
1850 Support usage of git-merge-changelog.
1851 * .gitattributes: New.
1852 * HACKING: Document usage of git-merge-changelog.
1853 * bootstrap: Install git-merge-changelog entries in .git/config
1854 if appropriate.
1855
1856 2008-07-27 Joel E. Denny <jdenny@ces.clemson.edu>
1857
1858 Remove remaining dependence on CVS Id keyword.
1859 * ChangeLog: For the sake of people still using CVS, don't use dollars
1860 when mentioning Id.
1861 * data/xslt/bison.xsl: Remove Id from header comments, where it was
1862 unusual anyway.
1863 * data/xslt/xml2dot.xsl: Likewise.
1864 * data/xslt/xml2text.xsl: Likewise.
1865 * data/xslt/xml2xhtml.xsl: Likewise.
1866 * doc/Doxyfile.in (PROJECT_NUMBER): Don't use ID.
1867 * doc/Makefile.am (neutralize): Remove, no longer needed.
1868 (.x.1): Don't use neutralize.
1869 (edit): Don't substitute for ID.
1870 (Doxyfile): Don't define Id, and thus don't depend on ChangeLog.
1871
1872 2008-07-27 Joel E. Denny <jdenny@ces.clemson.edu>
1873
1874 Fix dependence on computed configure variables.
1875 * doc/Makefile.am (common_dep): Depend on $(top_srcdir)/configure not
1876 $(top_srcdir)/configure.ac so that changes to computed variables, such
1877 as PACKAGE_VERSION, are seen.
1878 * tests/Makefile.am ($(srcdir)/package.m4): Likewise.
1879
1880 2008-07-20 Joel E. Denny <jdenny@ces.clemson.edu>
1881
1882 Update copyright dates for recent changes.
1883 * Makefile.am: Here.
1884 * src/Makefile.am: Here.
1885 * src/reduce.c: Here.
1886 * tests/reduce.at: Here.
1887
1888 2008-07-18 Joel E. Denny <jdenny@ces.clemson.edu>
1889
1890 Use git-version-gen for version names between releases.
1891 * .cvsignore (.tarball-version, GNUmakefile, *~): Add.
1892 * .gitignore (/.tarball-version, /GNUmakefile, /*~): Add.
1893 * .prev-version: New.
1894 * .version.in: Remove.
1895 * ChangeLog: Remove the Id previously used for capturing the CVS
1896 revision.
1897 * GNUmakefile: Remove, now copied from Gnulib.
1898 * Makefile.am: Add code suggested by comments in
1899 build-aux/git-version-gen.
1900 (EXTRA_DIST): Remove GNUmakefile, handled by Gnulib. Add maint.mk,
1901 .prev-version, and .version.
1902 * NEWS (2.3b+): Rename to...
1903 (?.?): ... this because we're dropping the "+" version naming scheme,
1904 but, in general, we still can't be sure of our next release name.
1905 * bootstrap: Add a quick hack to remove from .gitignore the
1906 GNUmakefile entry that gnulib adds. We already have a /GNUmakefile
1907 entry. This should really be fixed in gnulib instead.
1908 * bootstrap.conf (gnulib_modules): Add gnumakefile.
1909 * configure.ac (AC_INIT): Set version name by invoking
1910 build-aux/git-version-gen.
1911 (AC_CONFIG_FILES): Remove .version, now generated by
1912 build-aux/git-version-gen.
1913 * maint.mk: New, copied from coreutils.
1914 * doc/.cvsignore (bison.1): Add.
1915 * doc/.gitignore (/bison.1): Add.
1916 * doc/bison.1: Remove, generated.
1917 * src/.cvsignore (revision.c): Remove.
1918 * src/.gitignore (/revision.c): Remove.
1919 * src/Makefile.am (bison_SOURCES): Remove revision.c and revision.h.
1920 (BUILT_SOURCES): Remove revision.c.
1921 (revision.c): Remove.
1922 * src/getargs.c (version): Don't print revision after the VERSION.
1923 * src/revision.h: Remove.
1924
1925 2008-07-16 Joel E. Denny <jdenny@ces.clemson.edu>
1926
1927 Fix untranslatable composition of sentences. Reported by Goran
1928 Uddeborg at
1929 <http://lists.gnu.org/archive/html/bug-bison/2008-06/msg00000.html>.
1930 * THANKS (Goran Uddeborg): Add.
1931 * src/reduce.c (reduce_print): Report the number of nonterminals and
1932 rules useless in the grammar in separate sentences.
1933 * tests/reduce.at (Useless Rules): Update output.
1934 (Reduced Automaton): Likewise.
1935 (Underivable Rules): Likewise.
1936 (Empty Language): Likewise.
1937
1938 2008-07-15 Joel E. Denny <jdenny@ces.clemson.edu>
1939
1940 Fix some .gitignore and .cvsignore problems.
1941 * bootstrap (insert_sorted_if_absent): Replace all uses with...
1942 (insert_vc_ignore): ... this new function, which prepends `/' to all
1943 .gitignore entries before passing them to insert_sorted_if_absent.
1944 * bootstrap.conf (vc_ignore): Set to '.cvsignore .gitignore' so that
1945 .cvsignore files are maintained even though Bison developers run
1946 bootstrap while using Git.
1947 * .cvsignore (*.patch *.log log patches applied): Remove, apparently
1948 unneeded by Bison.
1949 (gnulib): Add.
1950 * .gitignore (/*.patch *.log log patches applied): Remove, broken and
1951 unneeded. Reported by Eric Blake.
1952 * lib/.gitignore (/*~): Add.
1953 * po/.cvsignore, runtime-po/.cvsignore: Sync with .gitignore.
1954 * examples/calc++/.gitignore (/calc++.exe): Add. Reported by Eric
1955 Blake.
1956 * src/.gitignore (/bison.exe): Add. Reported by Eric Blake.
1957
1958 2008-07-15 Joel E. Denny <jdenny@ces.clemson.edu>
1959
1960 Improve forward-compatibility with GNU M4. Reported by Eric Blake at
1961 <http://lists.gnu.org/archive/html/bug-bison/2008-07/msg00000.html>.
1962 * bootstrap.conf (gnulib_modules): Add unsetenv.
1963 * lib/.gitignore, lib/.cvsignore (/unsetenv.c): Add.
1964 * m4/.gitignore, m4/.cvsignore (/environ.m4): Add.
1965 (/setenv.m4): Add.
1966 * src/output.c (output_skeleton): For the m4 invocation, pass -dV as
1967 the first argument because it may become position-dependent, and unset
1968 POSIXLY_CORRECT so Bison's skeletons have access to GNU M4 extensions.
1969 Add comments explaining these issues in more detail.
1970
1971 2008-07-14 Joel E. Denny <jdenny@ces.clemson.edu>
1972
1973 Add .gitignore everywhere based on .cvsignore.
1974 * .gitignore: New.
1975 * build-aux/.gitignore: New.
1976 * data/.gitignore: New.
1977 * doc/.gitignore: New.
1978 * etc/.gitignore: New.
1979 * examples/.gitignore: New.
1980 * examples/calc++/.gitignore: New.
1981 * lib/.gitignore: New.
1982 * m4/.gitignore: New.
1983 * po/.gitignore: New.
1984 * runtime-po/.gitignore: New.
1985 * src/.gitignore: New.
1986 * tests/.gitignore: New.
1987
1988 2008-05-27 Joel E. Denny <jdenny@ces.clemson.edu>
1989
1990 * NEWS (2.3b+): New section, empty for now.
1991 * configure.ac (AC_INIT): 2.3b -> 2.3b+.
1992
1993 2008-05-27 Joel E. Denny <jdenny@ces.clemson.edu>
1994
1995 * NEWS (2.3b): Update release date since there has been a delay in
1996 getting the announcements and tarballs out.
1997
1998 2008-05-23 Joel E. Denny <jdenny@ces.clemson.edu>
1999
2000 * NEWS: Version 2.3b.
2001 * configure.ac (AC_INIT): Likewise.
2002 (PACKAGE_COPYRIGHT_YEAR): Update to 2008.
2003
2004 2008-05-23 Joel E. Denny <jdenny@ces.clemson.edu>
2005
2006 * HACKING: Don't say don't mention HACKING in the ChangeLog. We've
2007 been doing it for years.
2008 (Test suite): Mention maintainer-push-check and maintainer-xml-check.
2009 (Release Procedure): Add FIXME about make alpha being unmaintained.
2010
2011 2008-05-13 Joel E. Denny <jdenny@ces.clemson.edu>
2012
2013 * data/yacc.c: Reformat m4 a little for readability.
2014 * src/lalr.c (build_relations): Correct comment.
2015
2016 2008-05-12 Juan Manuel Guerrero <juan.guerrero@gmx.de>
2017
2018 DJGPP specific issue.
2019 * djgpp/config.sed: Fixes required to run configure scripts generated
2020 by autoconf 2.62.
2021
2022 2008-05-07 Joel E. Denny <jdenny@ces.clemson.edu>
2023
2024 * HACKING (Release Procedure): translation@iro.umontreal.ca is now
2025 coordinator@translationproject.org.
2026
2027 2008-05-06 Joel E. Denny <jdenny@ces.clemson.edu>
2028
2029 * THANKS: Add Eric Blake.
2030
2031 2008-04-23 Eric Blake <ebb9@byu.net>
2032
2033 Revert prior patch, by working around autoconf regression.
2034 * tests/output.at (m4_expand): Add workaround for autoconf 2.62.
2035 ("Output file name: ("): Uncomment test.
2036 ("Output file name: )"): Likewise.
2037 Based on an idea from Noah Misch.
2038
2039 2008-04-21 Joel E. Denny <jdenny@ces.clemson.edu>
2040
2041 Work-around an Autoconf 2.62 AT_SETUP bug that was not present in
2042 2.61. Reported by Juan Manuel Guerrero at
2043 <http://lists.gnu.org/archive/html/bug-bison/2008-04/msg00011.html>.
2044 * tests/output.at ("Output file name: ("): Comment out test case for
2045 now.
2046 ("Output file name: )"): Likewise.
2047
2048 2008-04-21 Joel E. Denny <jdenny@ces.clemson.edu>
2049
2050 * GNUmakefile: Update git-version-gen invocation so make dist
2051 succeeds.
2052
2053 2008-04-21 Joel E. Denny <jdenny@ces.clemson.edu>
2054
2055 Update to the current gnulib CVS repository, and fix trigraph handling
2056 in Bison.
2057 * bootstrap: Update gnulib CVS repository URL.
2058 (symlink_to_dir): Encapsulate the code that guarantees the destination
2059 directory exists into...
2060 (check_dst_dir): ... this new function, and...
2061 (cp_mark_as_generated): ... reuse it here so that bootstrap doesn't
2062 fail when copying files into lib/uniwidth/.
2063 * src/output.c (prepare_symbols): When writing yytname muscles, where
2064 symbol names will be encoded in C-string literals, tell quotearg to
2065 escape trigraphs. This used to be the default in gnulib.
2066 * tests/regression.at (Token definitions): Because of the change in
2067 gnulib's quotearg behavior, string_as_id in parse-gram.y no longer
2068 escapes trigraphs in symbol names. Thus, yytname no longer has
2069 trigraphs unnecessarily doubly escaped. Update test case output.
2070 Extend test case to be sure Bison's own error messages will no longer
2071 have trigraphs in symbol names unnecessarily escaped once.
2072
2073 2008-04-20 Joel E. Denny <jdenny@ces.clemson.edu>
2074
2075 Fix make dist infinite loop reported by Juan Manuel Guerrero at
2076 <http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00009.html>.
2077 * .cvsignore: Add .version.
2078 * .version.in: New.
2079 * bootstrap.conf (gnulib_modules): Add git-version-gen.
2080 * configure.ac (AC_CONFIG_FILES): Add .version.
2081 * build-aux/.cvsignore: Add git-version-gen.
2082
2083 2008-03-08 Joel E. Denny <jdenny@ces.clemson.edu>
2084
2085 * NEWS (2.3a+): Mention that -g now takes an argument.
2086 * doc/bison.texinfo (Bison Options): Reword -W entry a little for
2087 consistency. Update the -g and -x entries now that they take
2088 arguments. Use brackets to indicate optional arguments.
2089 * src/getargs.c (usage): Explain the relationship between arguments of
2090 long and short options more completely. Document --defines and -d
2091 separately since the former takes an argument but, for POSIX Yacc, the
2092 latter does not.
2093 (short_options): Let -W take an optional argument like --warnings.
2094 (getargs): Sort cases.
2095
2096 2008-02-28 Akim Demaille <demaille@gostai.com>
2097
2098 * doc/bison.texinfo: Fix a few typos.
2099
2100 2008-02-28 Akim Demaille <akim@epita.fr>
2101
2102 * doc/bison.texinfo (Bison Options): Document -W.
2103 Based on Joel E. Denny's NEWS entry, and Automake's documentation.
2104
2105 2008-02-28 Akim Demaille <akim@epita.fr>
2106
2107 * src/getargs.c (short_options): Split and sort for readability.
2108 -g and -x take optional arguments, just like their long options.
2109 * build-aux/cross-options.pl: Use /x to make the regexp easier to
2110 understand.
2111 Fix the handling of $opt which resulted in all the argument to be
2112 considered as optional.
2113
2114 2008-02-22 Joel E. Denny <jdenny@ces.clemson.edu>
2115
2116 * NEWS (2.3a+): Don't say %language is experimental. Mention Java and
2117 say its interface is experimental.
2118 * doc/bison.texinfo (Decl Summary): In the %language entry, mention
2119 Java.
2120 (Bison Options): In the -L and --language entry, mention Java.
2121 (Java Bison Interface): Say the interface is experimental.
2122 * src/getargs.c (usage): Mention -L and --language.
2123
2124 * NEWS (2.3a+): Say the push parsing interface is experimental.
2125 * doc/bison.texinfo (Push Decl): Likewise.
2126 (Decl Summary): Likewise in the "%define api.push_pull" entry.
2127 (Push Parser Function): Likewise.
2128 (Pull Parser Function): Likewise.
2129 (Parser Create Function): Likewise.
2130 (Parser Delete Function): Likewise.
2131 (Table of Symbols): Likewise in the yypstate_delete, yypstate_new,
2132 yypull_parse, and yypush_parse entries.
2133
2134 * NEWS (2.3a+): Mention XML support, and say the schema is
2135 experimental.
2136 * doc/bison.texinfo (Bison Options): Mention -x and --xml.
2137 * src/getargs.c (usage): Say the XML schema is experimental.
2138
2139 * NEWS (2.3a+): Say option instead of flag.
2140
2141 2008-02-21 Wojciech Polak <polak@gnu.org>
2142
2143 * data/xslt/xml2xhtml.xsl (xsl:template match="/"): Change footer
2144 text.
2145
2146 2008-02-20 Joel E. Denny <jdenny@ces.clemson.edu>
2147
2148 Fix impure push parser compile error reported by Bob Rossi at
2149 <http://lists.gnu.org/archive/html/help-bison/2008-02/msg00023.html>.
2150 * data/yacc.c: Clean up whitespace in the output a little.
2151 (yypstate_allocated): Define for impure push parsers regardless of
2152 whether the pull interface is also requested.
2153 * tests/push.at (Push Parsing: Multiple impure instances): Extend to
2154 check impure push parsers without the pull interface.
2155
2156 * data/yacc.c (yypstate_new): Don't try to invoke yyerror since
2157 yyerror takes arguments specified by %parse-param while yypstate_new
2158 does not.
2159 * doc/bison.texinfo (Parser Create Function): Document that
2160 yypstate_new returns 0 for multiple impure parser instances.
2161 * tests/push.at (Push Parsing: Multiple impure instances): Update
2162 expected stderr output.
2163
2164 2008-02-19 Joel E. Denny <jdenny@ces.clemson.edu>
2165
2166 * runtime-po/POTFILES.in (push.c): Remove.
2167
2168 2008-02-17 Joel E. Denny <jdenny@ces.clemson.edu>
2169
2170 * data/Makefile.am (dist_pkgdata_DATA): Remove push.c.
2171 * data/push.c: Rename to...
2172 * data/yacc.c: ... this, overwriting it.
2173 * etc/bench.pl.in (bench_grammar): `%pure-parser'-> `%define api.pure'.
2174 `%push-pull-parser' -> `%define api.push_pull "both"'.
2175 Remove old yacc.c tests, and update push.c tests to yacc.c.
2176
2177 2008-02-17 Joel E. Denny <jdenny@ces.clemson.edu>
2178
2179 * data/bison.m4 (b4_percent_code_get): Output %code block comments like
2180 `"%code top" blocks' instead of `%code "top" blocks'.
2181 * data/push.c: Import yacc.c changes from 2008-01-09 and 2007-08-03.
2182 Clean up whitespace in the output a little.
2183
2184 2008-02-16 Joel E. Denny <jdenny@ces.clemson.edu>
2185
2186 Fix documentation problems reported by Tim Josling at
2187 <http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00013.html>.
2188 * NEWS (2.3a+): Mention removal of --no-parser, -n, and %no-parser.
2189 * doc/bison.texinfo (Token Decl): Token numbers are *nonnegative*
2190 integers. Explain the effect of literal string aliases on error
2191 messages. Copy token 0 documentation from the C++ skeleton
2192 documentation.
2193
2194 2008-02-16 Joel E. Denny <jdenny@ces.clemson.edu>
2195
2196 Accept a token number in a %left, %right, or %nonassoc for POSIX
2197 conformance. Reported by Tim Josling at
2198 <http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00010.html>.
2199 * NEWS (2.3a+): Mention.
2200 * doc/bison.texinfo (Precedence Decl): Describe how literal strings
2201 and code numbers are treated by precedence declarations.
2202 * src/parse-gram.y (precedence_declaration): Use symbols.prec instead
2203 of symbols.1.
2204 (symbols.prec): New, just like symbols.1 but uses symbol.prec instead
2205 of symbol.
2206 (symbol.prec): New, just like symbol but allows INT.
2207 * src/symtab.c (symbol_user_token_number_set): Remove an aver that no
2208 longer holds.
2209 * tests/regression.at (Token number in precedence declaration): New
2210 test case.
2211
2212 2008-02-06 Juan Manuel Guerrero <juan.guerrero@gmx.de>
2213
2214 DJGPP specific issues.
2215 * djgpp/config.bat: Add filenames that are not 8.3 clean and that must
2216 be changed. Copyright timestamp adjusted.
2217 * djgpp/config.sed: Add filenames that are not 8.3 clean and that must
2218 be changed. Copyright timestamp adjusted.
2219 * djgpp/config.site: Copyright timestamp adjusted.
2220 * djgpp/config_h.sed: Copyright timestamp adjusted.
2221 * djgpp/djunpack.bat: Copyright timestamp adjusted.
2222 * djgpp/fnchnage.lst: Add filenames that are not 8.3 clean to the
2223 filename translation list.
2224 * djgpp/subpipe.c (init_subpipe): Check the environment variables
2225 TMPDIR, TMP and TEMP, in that order, to determinate where the temp
2226 files shall be created. Before trying to use the temp dir where the
2227 environment variable points to check that the dir really exists. If
2228 not default to the cwd as temp dir. Copyright timestamp adjusted.
2229 * djgpp/subpipe.h: Copyright timestamp adjusted.
2230 * djgpp/testsuite.sed: Copyright timestamp adjusted.
2231
2232 2008-01-30 Paul Eggert <eggert@cs.ucla.edu>
2233
2234 * doc/bison.texinfo: Update Back-Cover text to reflect new GNU wording.
2235
2236 2008-01-09 Paul Eggert <eggert@cs.ucla.edu>
2237
2238 * data/yacc.c (yyparse): Correct the comment when locations aren't used.
2239 Problem reported by Claudio Saavedra in
2240 <http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00003.html>.
2241
2242 2008-01-05 Wojciech Polak <polak@gnu.org>
2243
2244 * data/xslt/xml2xhtml.xsl (xsl:template match="/"): Precede an XHTML
2245 document's title with the input grammar file name.
2246
2247 2007-12-22 Joel E. Denny <jdenny@ces.clemson.edu>
2248
2249 Automate regression testing of the XML/XSLT implementation. Discussed
2250 starting at
2251 <http://lists.gnu.org/archive/html/bison-patches/2007-11/msg00021.html>.
2252 * configure.ac (XSLTPROC): New substitution.
2253 * Makefile.am (maintainer-xml-check): New phony target invoking...
2254 * tests/Makefile.am (maintainer-xml-check): ... this new phony target
2255 invoking make maintainer-check with BISON_TEST_XML=1.
2256 * tests/atlocal.in (XSLTPROC): New.
2257 * tests/local.at (AT_BISON_CHECK): New macro to (1) instruct Valgrind
2258 not to report reachable memory when Bison is expected to have a
2259 non-zero exit status and (2) to compare XML/XSLT output with --graph
2260 and --report=all output for every working grammar when
2261 BISON_TEST_XML=1.
2262 (AT_BISON_CHECK_NO_XML): Likewise, but skip XML checks.
2263 (AT_BISON_CHECK_XML): New.
2264 (AT_QUELL_VALGRIND): New.
2265 * tests/testsuite.at (ORIGINAL_AT_CHECK): Remove this and...
2266 (AT_CHECK): ... don't redefine this since this was the old way to
2267 quell Valgrind.
2268 * tests/actions.at: Rewrite all AT_CHECK invocations for bison as
2269 AT_BISON_CHECK invocations.
2270 * tests/c++.at: Likewise.
2271 * tests/calc.at: Likewise.
2272 * tests/conflicts.at: Likewise.
2273 * tests/cxx-type.at: Likewise.
2274 * tests/existing.at: Likewise.
2275 * tests/glr-regression.at: Likewise.
2276 * tests/headers.at: Likewise.
2277 * tests/input.at: Likewise.
2278 * tests/java.at: Likewise.
2279 * tests/output.at: Likewise.
2280 * tests/push.at: Likewise.
2281 * tests/reduce.at: Likewise.
2282 * tests/regression.at: Likewise.
2283 * tests/sets.at: Likewise.
2284 * tests/skeletons.at: Likewise.
2285 * tests/synclines.at: Likewise.
2286 * tests/torture.at: Likewise.
2287 (Big triangle): Use AT_BISON_CHECK_NO_XML instead since this grammar
2288 tends to hang xsltproc.
2289 (Big horizontal): Likewise.
2290
2291 2007-12-08 Joel E. Denny <jdenny@ces.clemson.edu>
2292
2293 In XML output, remove redundant class attribute on symbol element.
2294 * data/xslt/bison.xsl (xsl:key name="bison:symbolByName"): New.
2295 * data/xslt/xml2xhtml.xsl (xsl:template match="symbol"): Use it to
2296 look up a symbol to determine whether it's a nonterminal or terminal.
2297 * src/gram.c (rule_rhs_print_xml): Remove class attribute.
2298 * src/state.c (state_rule_lookahead_tokens_print_xml): Likewise.
2299
2300 Add prec/assoc information to XML output.
2301 * src/gram.c (grammar_rules_print_xml): For each rule that has a
2302 %prec, add a percent_prec attribute.
2303 * src/print-xml.c (print_grammar): For each terminal that has a
2304 precedence or associativity, add a prec or assoc attribute.
2305 (xml_indent): New.
2306 (xml_puts): Use xml_indent.
2307 (xml_printf): Use xml_indent.
2308 * src/print-xml.h (xml_indent): Prototype.
2309
2310 * tests/existing.at (GNU pic Grammar): Fix a rule miscopied from
2311 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
2312
2313 2007-12-08 Joel E. Denny <jdenny@ces.clemson.edu>
2314
2315 * data/xslt/bison.xsl (bison:ruleNumber): Rename to...
2316 (bison:ruleByNumber): ... this for clarity.
2317 * data/xslt/xml2dot.xsl (xsl:template match="item"): Update.
2318 * data/xslt/xml2text.xsl (xsl:template match="item"): Update.
2319 (xsl:template match="reduction"): Update.
2320 (xsl:template match="item"): Update.
2321 (xsl:template match="reduction"): Update.
2322
2323 In the XML output, don't print the list of rules where symbols appear.
2324 Compute it in XSLT instead. Discussed at
2325 <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00024.html>.
2326 * data/xslt/bison.xsl (bison:ruleByLhs): New.
2327 (bison:ruleByRhs): New.
2328 * data/xslt/xml2text.xsl (xsl:template match="terminal"): Use
2329 bison:ruleByRhs.
2330 (xsl:template match="terminal/rule"): Remove.
2331 (xsl:template match="nonterminal"): Use bison:ruleByLhs and
2332 bison:ruleByRhs.
2333 (xsl:template match="nonterminal/left/rule|nonterminal/right/rule"):
2334 Remove.
2335 * data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Use
2336 bison:ruleByRhs and mode="number-link" for rule template.
2337 (xsl:template match="terminal/rule"): Remove.
2338 (xsl:template match="nonterminal"): Use bison:ruleByLhs and
2339 bison:ruleByRhs and mode="number-link" for rule template.
2340 (xsl:template match="nonterminal/left/rule|nonterminal/right/rule"):
2341 Rewrite as...
2342 (xsl:template match="rule" mode="number-link"): ... this.
2343 * src/print-xml.c (print_grammar): Don't print the list of rules.
2344
2345 2007-12-01 Joel E. Denny <jdenny@ces.clemson.edu>
2346
2347 Don't let --report affect XML output; always print all information.
2348 Discussed at
2349 <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00020.html>.
2350 * src/conflicts.c (log_resolution): Implement.
2351 * src/print-xml.c (print_core): Implement.
2352 (print_state): Implement.
2353 (print_xml): Implement.
2354
2355 * NEWS (2.3a+): Fix quotes.
2356 * src/parse-gram.y (prologue_declaration): For consistency with -v,
2357 don't let %verbose clear the list specified by --report.
2358
2359 2007-11-26 Akim Demaille <akim@epita.fr>
2360
2361 * data/Makefile.am (dist_pkgdata_DATA): Ship and install bison.xsl.
2362
2363 2007-11-24 Joel E. Denny <jdenny@ces.clemson.edu>
2364
2365 In the XML output, list useless and unused symbols and rules with the
2366 useful ones and add a "usefulness" attribute. Discussed starting at
2367 <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00017.html>.
2368 * src/gram.c (grammar_rules_partial_print_xml): Remove.
2369 (grammar_rules_print_xml): Print all rules instead of just those
2370 useful in the grammar, and add a "usefulness" attribute.
2371 * src/gram.h (grammar_rules_partial_print_xml): Remove prototype.
2372 * src/print-xml.c (print_rules_useless_in_parser): Remove.
2373 (print_grammar): Print all nonterminals instead of just useful ones,
2374 and add a "usefulness" attribute to nonterminals and terminals.
2375 (print_xml): Don't print a separate "reductions" or
2376 "rules-useless-in-parser" element.
2377 * src/reduce.c (reduce_output): Use reduce_token_unused_in_grammar.
2378 (reduce_xml): Remove.
2379 (reduce_token_unused_in_grammar): New.
2380 (reduce_nonterminal_useless_in_grammar): New.
2381 * src/reduce.h (reduce_xml): Remove prototype.
2382 (reduce_token_unused_in_grammar): Add prototype.
2383 (reduce_nonterminal_useless_in_grammar): Add prototype.
2384 * data/xslt/xml2text.xsl: Update for XML changes.
2385 * data/xslt/xml2xhtml.xsl: Update for XML changes.
2386 * tests/reduce.at (Useless Terminals): Update output.
2387 (Useless Rules): Update output.
2388 (Reduced Automaton): Update output.
2389
2390 Say "Terminals unused in grammar" instead of "Unused terminals".
2391 * NEWS (2.3a+): Update.
2392 * doc/bison.texinfo (Understanding): Update example output.
2393 * src/reduce.c (reduce_output): Implement.
2394 * data/xslt/xml2text.xsl: Implement.
2395 * data/xslt/xml2xhtml.xsl: Implement.
2396
2397 2007-11-18 Joel E. Denny <jdenny@ces.clemson.edu>
2398
2399 Accept --report-file=FILE to override the default `.output' filename.
2400 * NEWS (2.3a+): Mention.
2401 * doc/bison.texinfo (Bison Options): Add an entry.
2402 * src/files.c (compute_output_file_names): Don't override
2403 spec_verbose_file if already set.
2404 * src/getargs.c (usage): Document --report-file.
2405 (REPORT_FILE_OPTION): New anonymous enum member.
2406 (long_options): Add entry for it.
2407 (getargs): Add case for it setting spec_verbose_file.
2408
2409 * build-aux/cross-options.pl: Don't record a short option just because
2410 there's an arg.
2411 * doc/.cvsignore: Add yacc.1.
2412
2413 2007-11-14 Akim Demaille <akim@epita.fr>
2414
2415 * doc/yacc.1.in: New.
2416 * configure.ac, doc/Makefile.am: Adjust.
2417 * configure.ac (PACKAGE_COPYRIGHT_YEAR): New substitution, and new
2418 config.h symbol.
2419 Use AC_SUBST for assignments too.
2420 * src/getargs.c (version): Use PACKAGE_COPYRIGHT_YEAR.
2421
2422 2007-11-10 Joel E. Denny <jdenny@ces.clemson.edu>
2423
2424 * src/gram.c: Remove comments that duplicate comments in gram.h.
2425
2426 When reporting useless rules and nonterminals, say "useless in grammar"
2427 instead of "useless", and say "useless in parser" instead of "never
2428 reduced". Discussed starting at
2429 <http://lists.gnu.org/archive/html/bison-patches/2007-10/msg00033.html>.
2430 * NEWS (2.3a+): Mention this change.
2431 * data/xslt/xml2text.xsl: Update output text and expected input XML
2432 element names to match changes below.
2433 * data/xslt/xml2xhtml.xsl: Likewise.
2434 (xsl:template match="bison-xml-report"): Add missing entry in Table of
2435 Contents: "Rules useless in parser due to conflicts".
2436 * doc/bison.texinfo (Decl Summary): Reword a little.
2437 (Understanding): Update example output for changes below.
2438 * src/gram.c: (rule_useful_p): Rename to...
2439 (rule_useful_in_grammar_p): ... this.
2440 (rule_useless_p): Rename to...
2441 (rule_useless_in_grammar_p): ... this.
2442 (rule_never_reduced_p): Rename to...
2443 (rule_useless_in_parser_p): ... this.
2444 (grammar_rules_print): Update for renames.
2445 (grammar_rules_print_xml): Update for renames.
2446 (grammar_rules_never_reduced_report): Rename to...
2447 (grammar_rules_useless_report): ... this since it is used for either
2448 kind of useless rule.
2449 * src/gram.h: Reword comments and update function names in prototypes.
2450 * src/main.c (main): Say "rule useless in parser due to conflicts".
2451 * src/print-xml.c (print_rules_never_reduced): Rename to...
2452 (print_rules_useless_in_parser): ... this, and rename output XML
2453 element "rules-never-reduced" to "rules-useless-in-parser".
2454 (print_xml): Update for rename.
2455 * src/print.c (print_results): Say "Rules useless in parser due to
2456 conflicts".
2457 * src/reduce.c (reduce_grammar_tables): Say "rule useless in grammar".
2458 (nonterminals_reduce): Say "nonterminal useless in grammar".
2459 (reduce_output): Say "Nonterminals useless in grammar".
2460 Say "Rules useless in grammar".
2461 (reduce_xml): Rename output XML element "useless" to
2462 "useless-in-grammar".
2463 (reduce_print): Don't report the count of grammatically useless rules
2464 as "rules never reduced" just because %yacc is specified.
2465 In the correct report of this count, say nonterminal(s) and rule(s)
2466 "useless in grammar".
2467 * tests/conflicts.at (S/R in initial): Update expected output.
2468 (Defaulted Conflicted Reduction): Likewise.
2469 (Unreachable States After Conflict Resolution): Likewise.
2470 * tests/existing.at (GNU pic Grammar): Likewise.
2471 * tests/reduce.at (Useless Nonterminals): Likewise.
2472 (Useless Rules): Likewise.
2473 (Reduced Automaton): Likewise.
2474 (Underivable Rules): Likewise.
2475 (Empty Language): Likewise.
2476
2477 2007-11-09 Joel E. Denny <jdenny@ces.clemson.edu>
2478
2479 * data/bison.m4 (b4_cat): Put a newline after the end delimiter of the
2480 here document and before the EOF so that BSD's implementation of Bourne
2481 shell doesn't parse the delimiter as part of the here document.
2482 * doc/.cvsignore: Add cross-options.texi.
2483 * src/getargs.c (usage): Add a blank line after the warning categories.
2484
2485 2007-11-08 Paolo Bonzini <bonzini@gnu.org>
2486
2487 * data/lalr1.java (Lexer): Remove usage of b4_pure_if.
2488
2489 2007-11-05 Akim Demaille <akim@epita.fr>
2490
2491 Remove Id: from bison.1.
2492 * doc/Makefile.am (remove_time_stamp): Include the sed invocation.
2493 (perl -0777 -pi -e 's/\.PP\nId): New.
2494 (.x.1): Use it to ignore the version control revision.
2495
2496 2007-11-05 Akim Demaille <demaille@gostai.com>
2497
2498 * build-aux/Makefile.am: Ship cross-options.pl.
2499 * doc/Makefile.am: Always refer to cross-options.texi with
2500 $(srcdir).
2501 (MAINTAINERCLEANFILES): Add it.
2502
2503 2007-11-04 Akim Demaille <demaille@gostai.com>
2504
2505 Generate the long/short option cross-table.
2506 * build-aux/cross-options.pl: New.
2507 * doc/Makefile.am (cross-options.texi): New.
2508 * doc/bison.texinfo: Use it.
2509
2510 2007-11-04 Akim Demaille <demaille@gostai.com>
2511
2512 Generate bison.1 using help2man.
2513 * doc/common.x, doc/bison.x: New.
2514 * doc/Makefile.am (bison.1, .x.1): New.
2515 The code is taken from autoconf-2.61/man/Makefile.am.
2516 * configure.ac: Look for help2man.
2517
2518 2007-11-04 Akim Demaille <demaille@gostai.com>
2519
2520 Complete --help.
2521 * src/getargs.c (usage): Document -W, make it clear that -d,
2522 -g and -x have optional arguments.
2523
2524 2007-11-04 Akim Demaille <demaille@gostai.com>
2525
2526 Find sha1sum when named gsha1sum.
2527 * bootstrap (find_tool): New.
2528 ($SHA1SUM): New.
2529
2530 2007-10-28 Joel E. Denny <jdenny@ces.clemson.edu>
2531
2532 Deprecate %pure-parser and add `%define api.pure'. Discussed starting
2533 at
2534 <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00006.html>.
2535 * NEWS (2.3a+): Mention.
2536 * data/bison.m4 (b4_pure_if): Don't define it here.
2537 * data/c.m4 (b4_identification): Depend on individual skeletons to
2538 define b4_pure_flag, b4_push_flag, or b4_pull_flag if they use the
2539 values of the %define variables api.pure or api.push_pull. Define
2540 YYPURE, YYPUSH, and YYPULL accordingly.
2541 * data/glr.c: Define b4_pure_if based on `%define api.pure' unless
2542 glr.cc has already defined b4_pure_flag.
2543 * data/push.c: Define b4_pure_if based on `%define api.pure'.
2544 Remove YYPUSH and YYPULL since they're back in b4_identification again.
2545 * data/yacc.c: Define b4_pure_if based on `%define api.pure'.
2546 * doc/bison.texinfo (Pure Decl): Update.
2547 (Push Decl): Update.
2548 (Decl Summary): Add api.pure to %define entry.
2549 In %pure-parser entry, say it's deprecated and reference %define.
2550 (Pure Calling): Update.
2551 (Error Reporting): Update.
2552 (C++ Scanner Interface): Update.
2553 (How Can I Reset the Parser): Update.
2554 (Table of Symbols): In %pure-parser entry, say it's deprecated and
2555 reference %define.
2556 * src/getargs.c (pure_parser): Remove global variable.
2557 * src/getargs.h (pure_parser): Remove extern.
2558 * src/output.c (prepare): Don't define pure_flag muscle.
2559 * src/parse-gram.y (prologue_declaration): Implement %pure-parser as a
2560 wrapper around `%define api.pure'.
2561 * tests/calc.at (Simple LALR Calculator): Update.
2562 (Simple GLR Calculator): Update.
2563 * tests/cxx-type.at (GLR: Resolve ambiguity, pure, no locations):
2564 Update.
2565 (GLR: Resolve ambiguity, pure, locations): Update.
2566 (GLR: Merge conflicting parses, pure, no locations): Update.
2567 (GLR: Merge conflicting parses, pure, locations): Update.
2568 * tests/glr-regression.at (Uninitialized location when reporting
2569 ambiguity): Update
2570 * tests/input.at (Unused %define api.pure): New test case.
2571 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Update definition for
2572 AT_PURE_IF and AT_PURE_AND_LOC_IF.
2573 * tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update.
2574
2575 2007-10-28 Joel E. Denny <jdenny@ces.clemson.edu>
2576
2577 %define push_pull -> %define api.push_pull. Discussed starting at
2578 <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00005.html>.
2579 * data/push.c: Expect the new name.
2580 * data/yacc.c: Likewise.
2581 * doc/bison.texinfo (Push Decl): Update.
2582 (Decl Summary): Update %define entry.
2583 (Push Parser Function): Update.
2584 (Pull Parser Function): Update.
2585 (Parser Create Function): Update.
2586 (Parser Delete Function): Update.
2587 * tests/calc.at (Simple LALR Calculator): Update.
2588 * tests/input.at (%define enum variables): Update.
2589 * tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update.
2590 (Push Parsing: Multiple impure instances): Update.
2591 (Push Parsing: Unsupported Skeletons): Update.
2592 * tests/torture.at (Exploding the Stack Size with Alloca): Update.
2593 (Exploding the Stack Size with Malloc): Update.
2594
2595 * NEWS (2.3a+): Add an entry for the push parser, and clean up the
2596 other entries some.
2597
2598 2007-10-27 Joel E. Denny <jdenny@ces.clemson.edu>
2599
2600 For the XML output's terminal element, rename @number to @token-number,
2601 and add @symbol-number. In the nonterminal element, rename @number to
2602 @symbol-number. Discussed starting at
2603 <http://lists.gnu.org/archive/html/bison-patches/2007-10/msg00040.html>.
2604 * data/xslt/xml2text.xsl (xsl:template match="terminal"): Update for
2605 renames.
2606 (xsl:template match="nonterminal"): Likewise.
2607 * data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Likewise.
2608 (xsl:template match="nonterminal"): Likewise.
2609 * src/print-xml.c (print_grammar): Implement.
2610
2611 2007-10-21 Joel E. Denny <jdenny@ces.clemson.edu>
2612
2613 * data/xslt/xml2dot.xsl (xsl:template match="automaton/state"): After
2614 2007-10-11 change, the child elements here are items not rules.
2615 (xsl:template match="item"): New.
2616 (xsl:template match="rule"): Update for new reduced itemset.
2617 (xsl:template match="point"): Remove.
2618 (xsl:template match="empty"): For consistency with --graph, don't
2619 output "/* empty */".
2620 * data/xslt/xml2text.xsl (xsl:template match="terminal"): When invoking
2621 line-wrap, don't pass a negative value as first-line-length since this
2622 won't work with the following changes.
2623 (xsl:template name="line-wrap"): Simplify slightly.
2624 (xsl:template name="ws-search"): Eliminate recursion.
2625 * src/print_graph.c (print_core): Don't print a reduction's lookahead
2626 set next to an item whose dot is not at the end of the RHS even if it
2627 happens to be associated with the same rule.
2628
2629 2007-10-19 Joel E. Denny <jdenny@ces.clemson.edu>
2630
2631 Add %define lr.keep_unreachable_states.
2632 * NEWS (2.3a+): Mention it in the entry for unreachable state removal.
2633 * doc/bison.texinfo (Decl Summary): Mention it in the %define entry.
2634 * src/main.c (main): Implement it.
2635 * tests/conflicts.at (Unreachable States After Conflict Resolution):
2636 Extend to test it, and fix a typo.
2637
2638 2007-10-19 Joel E. Denny <jdenny@ces.clemson.edu>
2639
2640 * NEWS (2.3a+): Add entry for recent .output file lookahead set fix.
2641 * doc/bison.texinfo (Understanding): Remove a bogus lookahead set in
2642 the example .output text.
2643 * tests/regression.at (Extra lookahead sets in report): Improve wording
2644 of comments.
2645
2646 2007-10-17 Wojciech Polak <polak@gnu.org>
2647
2648 * src/print-xml.c (print_grammar): Renamed
2649 <terminal> and <nonterminal> attributes:
2650 "type" to "number" and "symbol" to "name".
2651 * data/xslt/xml2text.xsl (xsl:template match="terminal"):
2652 Use new attribute names.
2653 (xsl:template match="nonterminal"): Likewise.
2654 * data/xslt/xml2xhtml.xsl: Likewise.
2655
2656 2007-10-17 Joel E. Denny <jdenny@ces.clemson.edu>
2657
2658 * doc/bison.texinfo (Bison Options): Add entry for --print-datadir.
2659 (Option Cross Key): Likewise.
2660
2661 * src/print-xml.c (print_core): Don't print a reduction's lookahead set
2662 next to an item whose dot is not at the end of the RHS even if it
2663 happens to be associated with the same rule.
2664 * src/print.c (print_core): Likewise.
2665 * tests/conflicts.at (Unresolved SR Conflicts): Update output.
2666 (Resolved SR Conflicts): Update output.
2667 * tests/regression.at (Extra lookahead sets in report): New test case.
2668
2669 2007-10-11 Wojciech Polak <polak@gnu.org>
2670
2671 * src/print-xml.c (print_core): Remove item set
2672 redundancy.
2673 * data/xslt/bison.xsl (bison:ruleNumber): New key.
2674 Improve processing time. Suggested by Joel E. Denny.
2675 * data/xslt/xml2dot.xsl (xsl:template name="escape"):
2676 Write xsl:param "required" attribute as comment.
2677 * data/xslt/xml2text.xsl (xsl:template match="item"): New.
2678 (xsl:template match="rule"): Support new reduced itemset.
2679 (xsl:template match="point"): Remove.
2680 * data/xslt/xml2xhtml.xsl: Likewise.
2681
2682 2007-10-09 Joel E. Denny <jdenny@ces.clemson.edu>
2683
2684 * src/getargs.c (version): Update copyright year.
2685
2686 2007-10-09 Joel E. Denny <jdenny@ces.clemson.edu>
2687
2688 Make xml2dot.xsl and --graph produce the same output.
2689 * data/xslt/xml2dot.xsl (xsl:template match="rule"): Use a `&#10;'
2690 instead of a `\n'. That is, don't add escapes yet or they'll be doubly
2691 escaped later.
2692 (xsl:template name="output-node"): Use the new escape template instead
2693 of the string-replace template directly.
2694 (xsl:template name="output-edge"): Likewise.
2695 (xsl:template name="escape"): New, escapes backslashes and newlines in
2696 addition to quotation marks.
2697 * src/graphviz.c (start_graph, output_node, output_edge): Add
2698 whitespace to output for legibility.
2699
2700 Make xml2text.xsl and --report produce the same output, and remove the
2701 XML "conflicts" element since a conflict summary is easily extracted
2702 from the automaton.
2703 * data/xslt/bison.xsl: New.
2704 (xsl:template match="state" mode="bison:count-conflicts): New.
2705 * data/xslt/xml2text.xsl: Import bison.xsl.
2706 (xsl:template match="bison-xml-report"): Instead of styling the
2707 "conflicts" element, style the "automaton" element with mode
2708 "conflicts". Unlike the former, the latter lists S/R and R/R
2709 conflicts for a state on the same line.
2710 (xsl:template match="conflicts"): Remove.
2711 (xsl:template match="conflict"): Remove.
2712 (xsl:template match="terminal"): Line-wrap the list of rules in which
2713 the terminal is used.
2714 (xsl:template match="nonterminal"): Likewise for nonterminals.
2715 (xsl:template match="automaton" mode="conflicts"): New.
2716 (xsl:template match="state" mode="conflicts"): New.
2717 (xsl:template name="line-wrap"): New.
2718 (xsl:template name="ws-search"): New.
2719 * data/xslt/xml2xhtml.xsl: Import bison.xsl.
2720 (xsl:template match="bison-xml-report"): Instead of styling the
2721 "conflicts" element, style the "automaton" element with mode
2722 "conflicts."
2723 (xsl:template match="conflicts"): Remove.
2724 (xsl:template match="conflict"): Remove.
2725 (xsl:template match="automaton" mode="conflicts"): New.
2726 (xsl:template match="state" mode="conflicts): New.
2727 * src/conflicts.c (conflicts_output_xml): Remove.
2728 * src/conflicts.h (conflicts_output_xml): Remove prototype.
2729 * src/print-xml.c (print_xml): Don't invoke conflicts_output_xml.
2730 * src/print.c (print_grammar): Consistently wrap at the 66th column so
2731 the corresponding XSLT is easier. Also, never wrap between a word and
2732 the comma that follows it.
2733
2734 2007-10-08 Joel E. Denny <jdenny@ces.clemson.edu>
2735
2736 Improve C++ namespace support. Discussed starting at
2737 <http://lists.gnu.org/archive/html/help-bison/2007-09/msg00016.html>.
2738 * data/c++.m4: (b4_namespace_ref, b4_namespace_open,
2739 b4_namespace_close): New macros that interpret the %define variable
2740 "namespace" so its value can contain "::" to indicate nested
2741 namespaces.
2742 * data/glr.cc (b4_namespace): Don't define, and replace all uses with
2743 the above macros.
2744 * data/lalr1.cc (b4_namespace): Likewise.
2745 * data/location.cc (b4_namespace): Likewise.
2746 * doc/bison.texinfo (Decl Summary): Move `%define push_pull' entry
2747 inside a new table in the general %define entry. Document `%define
2748 namespace' there as well. Point the %name-prefix entry to it since it
2749 explains it more completely in the case of C++.
2750 (C++ Bison Interface): Mention `%define namespace' instead of
2751 %name-prefix.
2752 (Table of Symbols): Remove the `%define push_pull' entry. The %define
2753 entry suffices.
2754 * tests/c++.at (Relative namespace references): New test case.
2755 (Absolute namespace references): New test case.
2756 (Syntactically invalid namespace references): New test case.
2757 * tests/input.at (C++ namespace reference errors): New test case.
2758
2759 2007-10-08 Joel E. Denny <jdenny@ces.clemson.edu>
2760
2761 Add syncline support and location accessor to internal %define
2762 interfaces.
2763 * data/bison.m4 (b4_percent_define_get_loc): New.
2764 (b4_percent_define_get_syncline): New.
2765 (b4_percent_define_flag_if): Use b4_percent_define_get_loc.
2766 (b4_percent_define_default): Record defining location as line 1 rather
2767 than 0 for the sake of synchronizing #line's, and define
2768 b4_percent_define_syncline(VARIABLE).
2769 (b4_percent_define_check_values): Use b4_percent_define_get_loc.
2770 * src/muscle_tab.c (muscle_syncline_grow): New.
2771 (muscle_code_grow): Use muscle_syncline_grow.
2772 (muscle_percent_define_insert): Use muscle_percent_define_get_loc, and
2773 define b4_percent_define_syncline(VARIABLE).
2774 (muscle_percent_define_get_loc): New.
2775 (muscle_percent_define_get_syncline): New.
2776 (muscle_percent_define_flag_if): Use muscle_percent_define_get_loc, and
2777 remove some unused variables.
2778 (muscle_percent_define_default): Record defining location as line 1
2779 rather than 0 for the sake of synchronizing #line's, and define
2780 b4_percent_define_syncline(VARIABLE).
2781 (muscle_percent_define_check_values): Use
2782 muscle_percent_define_get_loc.
2783 * src/muscle_tab.h (muscle_percent_define_get_loc): Prototype.
2784 (muscle_percent_define_get_syncline): Prototype.
2785 * tests/skeletons.at (%define Boolean variables: invalid skeleton
2786 defaults): Update output for location change.
2787 (Complaining during macro argument expansion): Extend to test
2788 b4_percent_define_get_loc and b4_percent_define_get_syncline errors.
2789
2790 2007-10-07 Joel E. Denny <jdenny@ces.clemson.edu>
2791
2792 Fix some error-reporting macro bugs.
2793 * data/bison.m4 (b4_cat): New.
2794 (b4_error, b4_error_at): Use b4_cat to send error directives directly
2795 to stdout so they don't become arguments to other macros. Update
2796 comments and add examples.
2797 (b4_warn, b4_warn_at, b4_complain, b4_complain_at): Update comments and
2798 add examples.
2799 (b4_fatal, b4_fatal_at): Likewise, and invoke m4_exit(1) immediately
2800 after printing the error directive so that M4 doesn't report subsequent
2801 problems that are induced by this problem.
2802 * src/scan-skel.l: Recognize @` digraph outside of directive arguments
2803 instead of just in them. Recognize @\n in both places. Both expand to
2804 the empty string. Needed by b4_cat.
2805 * tests/skeletons.at (Complaining during macro argument expansion):
2806 New test case.
2807 (Fatal errors make M4 exit immediately): New test case.
2808
2809 2007-10-04 Joel E. Denny <jdenny@ces.clemson.edu>
2810
2811 Implement --print-datadir.
2812 * src/getargs.c (usage): Mention.
2813 (PRINT_DATADIR_OPTION): New anonymous enum member.
2814 (long_options): Add entry for it.
2815 (getargs): Add case for it calling compute_pkgdatadir.
2816 * src/output.c (output_skeleton): Encapsulate data directory
2817 computation from here...
2818 (prepare): ... and from here...
2819 (compute_pkgdatadir): ... into this new function.
2820 * src/output.h (compute_pkgdatadir): Prototype.
2821
2822 2007-09-29 Joel E. Denny <jdenny@ces.clemson.edu>
2823
2824 * src/print-xml.c (escape_bufs): New static global variable
2825 replacing...
2826 (xml_escape_n): ... the static local variable buf here.
2827 (print_xml): Free memory for escape_bufs.
2828 * src/reduce.c (reduce_xml): XML-escape terminal symbol tags.
2829
2830 2007-09-25 Joel E. Denny <jdenny@ces.clemson.edu>
2831
2832 Replace `%push-parser' and `%push-pull-parser' with
2833 `%define push_pull "push"' and `%define push_pull "both"'.
2834 `%define push_pull "pull"' is the default.
2835 * doc/bison.texinfo (Push Decl, Push Parser Function,
2836 Pull Parser Function, Parser Create Function, Parser Delete Function):
2837 Update declarations.
2838 (Decl Summary, Table of Symbols): Replace %push-parser and
2839 %push-pull-parser entries with a %define push_pull entry.
2840 * data/bison.m4 (b4_percent_define_check_values): New macro.
2841 (b4_pull_if, b4_push_if, b4_use_push_for_pull_if): Move these
2842 definitions...
2843 * data/c.m4 (b4_identification): ... and the YYPUSH and YYPULL cpp
2844 definitions...
2845 * data/push.c: ... to here and compute them from the value of the
2846 %define variable push_pull.
2847 * data/c-skel.m4: Instead of choosing the push.c skeleton for push
2848 parsing requests here...
2849 * data/yacc.c: ... hack this to switch to push.c any time
2850 b4_use_push_pull_flag or the %define variable push_pull is set. This
2851 will go away when we mv push.c yacc.c.
2852 * data/c++-skel.m4, data/glr.c, data/java-skel.m4: Don't report that
2853 push parsing is not supported since unused %define variables are
2854 reported anyway.
2855 * src/getargs.c, src/getargs.h (pull_parser, push_parser): Remove.
2856 * src/muscle_tab.h (muscle_percent_define_check_values): Update
2857 comments for consistency with b4_percent_define_check_values.
2858 * src/output.c (prepare): Don't insert b4_pull_flag and b4_push_flag
2859 muscles.
2860 * src/parse-gram.y (PERCENT_PUSH_PARSER, PERCENT_PUSH_PULL_PARSER):
2861 Remove.
2862 (prologue_declaration): Remove %push-parser and %push-pull-parser
2863 rules.
2864 * src/scan-gram.l (%push-parser, %push-pull-parser): Remove rules.
2865 * tests/calc.at: Update declarations.
2866 * tests/input.at (%define enum variables): New test case.
2867 * tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update
2868 declaration.
2869 (Push Parsing: Multiple impure instances): Update declaration.
2870 (Push Parsing: Unsupported Skeletons): New test case.
2871 * tests/torture.at (Exploding the Stack Size with Alloca): Update
2872 declaration.
2873 (Exploding the Stack Size with Malloc): Update declaration.
2874
2875 2007-09-24 Wojciech Polak <polak@gnu.org>
2876
2877 Add XSLT transformations.
2878
2879 * data/xslt/xml2dot.xsl: Transform XML into DOT.
2880 * data/xslt/xml2text.xsl: Transform XML into plain text.
2881 * data/xslt/xml2xhtml.xsl: Transform XML into XHTML.
2882 * data/Makefile.am (xsltdir): New variable.
2883 (dist_xslt_DATA): Add xslt/*.xsl files.
2884
2885 2007-09-23 Paul Eggert <eggert@cs.ucla.edu>
2886
2887 * src/conflicts.c (log_resolution): Fix indenting bugs I introduced.
2888 Problem reported by Wojciech Polak.
2889 * src/print-xml.c (xml_puts): Work even if LEVEL exceeds INT_MAX/2.
2890 (xml_printf): Undo change I made on 21 September; that is,
2891 indent 2 spaces, not 1.
2892
2893 2007-09-23 Joel E. Denny <jdenny@ces.clemson.edu>
2894
2895 Pacify ./configure --enable-gcc-warnings.
2896 * src/print-xml.c, src/print-xml.h (xml_puts): Make third argument
2897 `char const *' instead of `char *'.
2898 * src/state.c (state_rule_lookahead_tokens_print_xml): Remove unused
2899 local variable `sep'.
2900
2901 2007-09-21 Paul Eggert <eggert@cs.ucla.edu>
2902
2903 * src/gram.c (rule_rhs_print_xml): Now static, since it isn't used
2904 elsewhere.
2905 * src/print-xml.c: Prefer "const" after types; that's more consistent.
2906 (xml_printf): Indent just 1 space for level.
2907 (e_char, xlate_char): Remove.
2908 (xml_escape_string): Rewrite to avoid undefined behavior (used
2909 storage that was freed from the stack).
2910 (xml_escape_n): Don't bother checking for subscript error.
2911
2912 2007-09-21 Wojciech Polak <polak@gnu.org>
2913
2914 Add Bison XML Automaton Report.
2915
2916 Add support for an -x option to generate an XML report.
2917 It is not documented yet.
2918 * src/print-xml.c: New file.
2919 * src/print-xml.h: Likewise.
2920 * lib/timevar.def (TV_XML): New var.
2921 * src/Makefile.am (bison_SOURCES): Add print-xml.c, print-xml.h.
2922 * src/conflicts.c: Include print-xml.h.
2923 (solved_conflicts_xml_obstack): New var.
2924 (log_resolution, conflicts_solve, conflicts_free):
2925 Add support for XML report.
2926 (conflicts_output_val): New function.
2927 * src/conflicts.h (conflicts_output_val): New decl.
2928 * src/files.c (spec_xml_file): New var.
2929 (compute_output_file_names, output_file_names_free): Add XML support.
2930 * src/files.h (spec_xml_file): New decl.
2931 * src/getargs.c (xml_flag): New var.
2932 (usage, short_options, long_options, getargs): Add XML support.
2933 * src/getargs.h (xml_flag): New decl.
2934 * src/gram.c: Include print-xml.h.
2935 (rule_lhs_print_xml, rule_rhs_print_xml):
2936 (grammar_rules_partial_print_xml, grammar_rules_print_xml):
2937 New functions.
2938 * src/gram.h: Declare external ones.
2939 * src/main.c: Include print-xml.h.
2940 (main): Add XML support.
2941 * src/reduce.c: Include print-xml.h.
2942 (reduce_xml): New function.
2943 * src/reduce.h: Declare it.
2944 * src/state.c: Include print-xml.h.
2945 (state_new): Add XML support.
2946 (state_rule_lookahead_tokens_print_xml): New function.
2947 * src/state.h: Declare it.
2948 (struct state): New member solved_conflicts_xml.
2949 * src/symtab.c (symbol_class_get_string): New function.
2950 * src/symtab.h: Declare it.
2951
2952 2007-09-21 Paul Eggert <eggert@cs.ucla.edu>
2953
2954 * GNUmakefile: Switch to coreutils's version.
2955 * bootstrap: Likewise.
2956 * Makefile.cfg: Adjust to new GNUmakefile.
2957 * README-hacking: Likewise.
2958
2959 Import from gnulib:
2960
2961 2006-08-18 Paul Eggert <eggert@cs.ucla.edu>
2962 Bruno Haible <bruno@clisp.org>
2963
2964 * m4/bison-i18n.m4 (BISON_I18N): Also handle the case where yacc exists
2965 and is a script that invokes bison. Tighten the code. Add comments.
2966
2967 2007-08-28 Joel E. Denny <jdenny@ces.clemson.edu>
2968
2969 Spell "boolean" as "Boolean". Reported by Akim Demaille.
2970 * data/bison.m4 (b4_percent_define_flag_if): Fix complaint.
2971 * doc/bison.texinfo (Decl Summary): Fix.
2972 * src/muscle_tab.c (muscle_percent_define_flag_if): Fix complaint.
2973 * tests/input.at (Boolean %define variables): Update output.
2974 * tests/skeletons.at (%define boolean variables: invalid skeleton
2975 defaults): Rename to...
2976 (%define Boolean variables: invalid skeleton defaults): ... this and
2977 update output.
2978
2979 2007-08-17 Joel E. Denny <jdenny@ces.clemson.edu>
2980
2981 In impure push mode, don't allow more than one yypstate to be allocated
2982 since multiple impure parsers would corrupt yynerrs.
2983 * data/push.c (yypstate_allocated): New static global variable
2984 initialized to 0.
2985 (yypull_parse): If yypstate_new returns 0, don't report it as memory
2986 exhaustion if yypstate_allocated is 1, but still return 2.
2987 (yypstate_new): Invoke yyerror and return 0 if yypstate_allocated is
2988 already 1. Otherwise, set it to 1.
2989 (yypstate_delete): Set it to 0.
2990 * tests/push.at (Push Parsing: Multiple impure instances): New test
2991 case.
2992
2993 2007-08-17 Bob Rossi <bob@brasko.net>
2994
2995 * doc/bison.texinfo (Push Decl): Document the push parser.
2996 (Table of Symbols): Ditto.
2997 (Pure Decl): Ditto.
2998 (Decl Summary): Ditto.
2999 (Multiple Parsers, Push Parser Function, Pull Parser Function,
3000 Parser Create Function, Parser Delete Function):
3001 Add new push parser symbols.
3002 (Table of Symbols): Document push-parser, push-pull-parser,
3003 yypush_parse, yypull_parse, yypstate_new and yypstate_delete.
3004
3005 2007-08-15 Paul Eggert <eggert@cs.ucla.edu>
3006
3007 Update to GPLv3.
3008 * doc/gpl-3.0.texi: New file.
3009 * doc/gpl.texi: Remove.
3010 * COPYING, GNUmakefile, HACKING, Makefile.am, Makefile.cfg:
3011 * Makefile.maint, NEWS, PACKAGING, README, README-alpha:
3012 * README-hacking, TODO, bootstrap, bootstrap.conf:
3013 * configure.ac, data/Makefile.am, data/README, data/bison.m4:
3014 * data/c++-skel.m4, data/c++.m4, data/c-skel.m4, data/c.m4:
3015 * data/glr.c, data/glr.cc, data/java-skel.m4, data/java.m4:
3016 * data/lalr1.cc, data/lalr1.java, data/location.cc:
3017 * data/push.c, data/yacc.c, data/m4sugar/m4sugar.m4:
3018 * djgpp/Makefile.maint, djgpp/README.in, djgpp/config.bat:
3019 * djgpp/config.sed, djgpp/config.site, djgpp/config_h.sed:
3020 * djgpp/djunpack.bat, djgpp/subpipe.c, djgpp/subpipe.h:
3021 * djgpp/testsuite.sed, doc/Makefile.am, doc/bison.texinfo:
3022 * doc/fdl.texi, doc/refcard.tex, etc/Makefile.am, etc/README:
3023 * etc/bench.pl.in, examples/Makefile.am, examples/extexi:
3024 * examples/calc++/Makefile.am, lib/Makefile.am, lib/abitset.c:
3025 * lib/abitset.h, lib/bbitset.h, lib/bitset.c, lib/bitset.h:
3026 * lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c:
3027 * lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h:
3028 * lib/ebitset.c, lib/ebitset.h, lib/get-errno.c:
3029 * lib/get-errno.h, lib/lbitset.c, lib/lbitset.h:
3030 * lib/libiberty.h, lib/main.c, lib/subpipe.c, lib/subpipe.h:
3031 * lib/timevar.c, lib/timevar.def, lib/timevar.h:
3032 * lib/vbitset.c, lib/vbitset.h, lib/yyerror.c:
3033 * m4/c-working.m4, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4:
3034 * m4/timevar.m4, src/LR0.c, src/LR0.h, src/Makefile.am:
3035 * src/assoc.c, src/assoc.h, src/closure.c, src/closure.h:
3036 * src/complain.c, src/complain.h, src/conflicts.c:
3037 * src/conflicts.h, src/derives.c, src/derives.h, src/files.c:
3038 * src/files.h, src/flex-scanner.h, src/getargs.c:
3039 * src/getargs.h, src/gram.c, src/gram.h, src/graphviz.c:
3040 * src/lalr.c, src/lalr.h, src/location.c, src/location.h:
3041 * src/main.c, src/muscle_tab.c, src/muscle_tab.h:
3042 * src/nullable.c, src/nullable.h, src/output.c, src/output.h:
3043 * src/parse-gram.c, src/parse-gram.h, src/parse-gram.y:
3044 * src/print.c, src/print.h, src/print_graph.c:
3045 * src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c:
3046 * src/reduce.h, src/relation.c, src/relation.h:
3047 * src/revision.h, src/scan-code.h, src/scan-code.l:
3048 * src/scan-gram.h, src/scan-gram.l, src/scan-skel.h:
3049 * src/scan-skel.l, src/state.c, src/state.h, src/symlist.c:
3050 * src/symlist.h, src/symtab.c, src/symtab.h, src/system.h:
3051 * src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h:
3052 * tests/Makefile.am, tests/actions.at, tests/c++.at:
3053 * tests/calc.at, tests/conflicts.at, tests/cxx-type.at:
3054 * tests/existing.at, tests/glr-regression.at:
3055 * tests/headers.at, tests/input.at, tests/java.at:
3056 * tests/local.at, tests/output.at, tests/push.at:
3057 * tests/reduce.at, tests/regression.at, tests/sets.at:
3058 * tests/skeletons.at, tests/synclines.at, tests/testsuite.at:
3059 * tests/torture.at:
3060 Update to GPLv3.
3061
3062 2007-08-11 Joel E. Denny <jdenny@ces.clemson.edu>
3063
3064 Get rid of broken %no-parser, -n, and --no-parser implementation and
3065 documentation.
3066 * TODO: Don't mention them.
3067 * doc/bison.1: Likewise.
3068 * doc/bison.texinfo (Decl Summary): Likewise.
3069 (Bison Options): Likewise.
3070 (Option Cross Key): Likewise.
3071 * src/getargs.c (no_parser_flag): Remove global variable.
3072 (usage): Don't print description of -n and --no-parser.
3073 (long_options): Remove --no-parser entry here.
3074 (getargs): Remove -n case in the switch here.
3075 * src/getargs.h (no_parser_flag): Remove extern.
3076 * tests/regression.at (Web2c Actions): Remove comment that mentions
3077 --no-parser.
3078
3079 2007-08-11 Joel E. Denny <jdenny@ces.clemson.edu>
3080
3081 * tests/push.at (Push Parsing: Memory Leak for Early Deletion): Do not
3082 name user variables starting with `yy'. Just pass NULL instead of a
3083 dummy local &yylval to yypush_parse.
3084 * tests/torture.at (AT_DATA_STACK_TORTURE): Do not name user variables
3085 starting with `yy'.
3086
3087 2007-08-03 Joel E. Denny <jdenny@ces.clemson.edu>
3088
3089 * data/yacc.c (yyexhaustedlab): Define it when YYERROR_VERBOSE is
3090 true since it's then always used regardless of whether yyoverflow is
3091 defined. Reported by Christian Burger at
3092 <http://lists.gnu.org/archive/html/bug-bison/2007-07/msg00031.html>.
3093 * THANKS: Add Christian Burger.
3094
3095 * ChangeLog: For changes in doc/bison.texinfo, consistently reference
3096 node names: say "Decl Summary" not "Bison Declaration Summary".
3097
3098 2007-07-28 Joel E. Denny <jdenny@ces.clemson.edu>
3099
3100 * src/muscle_tab.c (muscle_percent_define_flag_if): In order to
3101 determine whether this function has already complained about an invalid
3102 value for a %define boolean variable, don't check whether Bison has
3103 ever examined the value. As written, the check was a tautology.
3104 Instead, record and check for this complaint using a separate muscle.
3105
3106 2007-07-27 Joel E. Denny <jdenny@ces.clemson.edu>
3107
3108 Fix push parsing memory leak reported by Brandon Lucia at
3109 <http://lists.gnu.org/archive/html/bug-bison/2007-07/msg00032.html>.
3110 * THANKS: Add Brandon Lucia.
3111 * data/push.c (yypstate_delete): Free the stack if it was reallocated
3112 but the parse never completed and thus freed it.
3113 * tests/Makefile.am (TESTSUITE_AT): Add push.at.
3114 * tests/testsuite.at: Include push.at.
3115 * test/push.at: New.
3116 (Push Parsing: Memory Leak for Early Deletion): New test case.
3117
3118 2007-07-17 Joel E. Denny <jdenny@ces.clemson.edu>
3119
3120 Improve handling of multiple S/R conflicts in the same state and of S/R
3121 conflicts involving multiple reductions.
3122 * src/conflicts.c (resolve_sr_conflict): Don't assign the error action
3123 set for a state here or Bison will abort if it is reassigned on a
3124 later conflicted reduction in the same state.
3125 Similarly, don't finalize and assign the solved conflicts report here
3126 or it will be lost if it is reassigned on a later conflicted reduction
3127 in the same state.
3128 (set_conflicts): Instead, assign them both here after all S/R conflicts
3129 in the state have been fully examined.
3130 * src/print.c (shift_set): Rename to...
3131 (no_reduce_set): ... this.
3132 (print_reductions): Update for rename, and add %nonassoc error action
3133 tokens to no_reduce_set so that, when printing the first remaining
3134 reduction on an error action token, the reduction is enclosed in
3135 brackets.
3136 (print_results): Update for rename.
3137 * tests/conflicts.at (Solved conflicts report for multiple reductions
3138 in a state): New test case.
3139 (%nonassoc error actions for multiple reductions in a state): New test
3140 case.
3141
3142 * src/main.c (main): Don't depend on C99 features.
3143
3144 2007-07-16 Joel E. Denny <jdenny@ces.clemson.edu>
3145
3146 * build-aux/.cvsignore: Add compile.
3147 * lib/.cvsignore: Add charset.alias, ref-add.sed, ref-del.sed, and
3148 uniwidth.
3149
3150 2007-07-10 Joel E. Denny <jdenny@ces.clemson.edu>
3151
3152 * bootstrap (slurp): Create target directories that don't exist.
3153 Specifically, we need lib/uniwidth/ because of recent Gnulib changes.
3154
3155 2007-07-09 Joel E. Denny <jdenny@ces.clemson.edu>
3156
3157 * LR0.c (new_itemsets): Fix wording in comments: say item index rather
3158 than item number.
3159 * closure.c (closure): Likewise.
3160 * state.h (reductions): Comment sorting of rules.
3161 (state): Comment sorting of items.
3162
3163 2007-07-02 Joel E. Denny <jdenny@ces.clemson.edu>
3164
3165 Fix C++ test cases after recent Gnulib changes. Discussed starting at
3166 <http://lists.gnu.org/archive/html/bug-bison/2007-07/msg00000.html>.
3167 * examples/calc++/Makefile.am (DEFAULT_INCLUDES): Override Automake's
3168 definition in order to avoid Gnulib headers since we don't use config.h
3169 here.
3170 * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Use AT_DATA_GRAMMAR
3171 rather than AT_DATA so that config.h is included.
3172
3173 2007-07-01 Joel E. Denny <jdenny@ces.clemson.edu>
3174
3175 * data/glr.c (yy_yypstack, yypstates, yypdumpstack): Use YYFPRINTF
3176 instead of fprintf. Guard these functions with #if YYDEBUG instead of
3177 #ifdef YYDEBUG for consistency with all other uses of YYDEBUG in Bison
3178 and so that YYFPRINTF is guaranteed to be defined here.
3179
3180 2007-05-29 Joel E. Denny <jdenny@ces.clemson.edu>
3181
3182 * src/muscle_tab.c (muscle_percent_define_invalid_value): Replace
3183 with...
3184 (muscle_percent_define_check_values): ... this more helpful function.
3185 Again, it's not used yet, but it will be.
3186 * src/muscle_tab.h: Likewise.
3187
3188 Improve some comments in parser table construction.
3189 * src/LR0.c (new_itemsets): Explain sorting of itemset and kernel_base.
3190 (generate_states): Don't mention ruleset, which is internal to closure.
3191 * src/closure.c (closure): Explain sorting of core and itemset, which
3192 is required for this function to behave correctly.
3193 * src/closure.h (closure): Mention sorting.
3194
3195 2007-05-28 Joel E. Denny <jdenny@ces.clemson.edu>
3196
3197 * src/lalr.c (state_lookahead_tokens_count): For code readability,
3198 move the check for disabled transitions to an aver since conflict
3199 resolution hasn't happened yet.
3200
3201 * src/lalr.c (state_lookahead_tokens_count): Remove the check that
3202 labels a state as inconsistent just because it has error transitions.
3203 The original form of this check appeared in revision 1.1 of lalr.c,
3204 which was committed on 1991-12-21. Now (at least), changing the
3205 consistency label on such a state appears to have no useful effect in
3206 any of the places it is examined, which I enumerate below. The key
3207 point to understanding each item in this enumeration is that a state
3208 with an error transition is labelled consistent in the first place only
3209 if it has no rules, so the check cannot matter for states that have
3210 rules. (1) Labelling a state as inconsistent will cause set_conflicts
3211 to try to identify its conflicts, and a state must have *rules* to have
3212 conflicts. (2) Labelling a state as inconsistent will affect how
3213 action_row sets the default *rule* for the state. (3) Labelling a
3214 state as inconsistent will cause build_relations to add lookback edges
3215 to *rules* in that state.
3216 * src/state.h (struct state): Word the comment for member consistent
3217 more carefully.
3218
3219 2007-05-27 Joel E. Denny <jdenny@ces.clemson.edu>
3220
3221 Don't depend on C99 features.
3222 * src/conflicts.c (conflicts_update_state_numbers): Fix for-loop.
3223 * src/lalr.c (lalr_update_state_numbers): Fix for-loop.
3224 * src/reader.c (check_and_convert_grammar): Fix for-loop.
3225 * src/state.c (state_mark_reachable_states): Fix for-loop.
3226 (state_remove_unreachable_states): Fix for-loop.
3227
3228 Don't widen struct state with member reachable just to temporarily
3229 record reachability. Instead, use a local bitset.
3230 * src/state.h (struct state): Remove member.
3231 * src/state.c (state_new): Don't initialize it.
3232 (state_mark_reachable_states): Rename to...
3233 (state_record_reachable_states): ... this, and use bitset.
3234 (state_remove_unreachable_states): Use bitset.
3235
3236 2007-05-26 Joel E. Denny <jdenny@ces.clemson.edu>
3237
3238 * src/Makefile.am (yacc): Quote target action commands properly so
3239 that the yacc script isn't corrupt. Reported by Hans Aberg at
3240 <http://lists.gnu.org/archive/html/bug-bison/2007-05/msg00003.html>.
3241
3242 * data/glr.c (yylval): As in yacc.c, don't extern in the header for
3243 the case of pure parsers. Reported by Frans Englich at
3244 <http://lists.gnu.org/archive/html/help-bison/2007-05/msg00018.html>.
3245 * THANKS: Add Frans Englich.
3246
3247 * NEWS (2.3a+): In the %code entry, reference section `Bison
3248 Declaration Summary' from the manual now since the %code summary has
3249 moved there.
3250 * doc/bison.texinfo (Prologue Alternatives): Mention that directives
3251 in the rules section must be terminated by semicolons.
3252
3253 2007-05-20 Joel E. Denny <jdenny@ces.clemson.edu>
3254
3255 Extend the front-end API for %define variables to more completely
3256 mirror the back-end. This will be useful in the future.
3257 * data/bison.m4 (b4_percent_define_get, b4_percent_define_ifdef):
3258 Update comments to mention the new front-end counterparts of these
3259 macros.
3260 * src/muscle_tab.c (MUSCLE_COMMON_DECODE): New macro with common code
3261 for muscle_string_decode and muscle_location_decode.
3262 (muscle_string_decode): New static function.
3263 (muscle_location_decode): Use MUSCLE_COMMON_DECODE.
3264 (muscle_percent_define_get, muscle_percent_define_ifdef): New
3265 functions.
3266 (muscle_percent_define_flag_if): Use muscle_percent_define_ifdef and
3267 muscle_percent_define_get to mimic the b4_percent_define_flag_if
3268 implementation more closely.
3269 (muscle_percent_define_invalid_value): New function.
3270 * src/muscle_tab.h (muscle_percent_define_get,
3271 muscle_percent_define_ifdef, muscle_percent_define_invalid_value):
3272 Prototype.
3273
3274 2007-05-07 Joel E. Denny <jdenny@ces.clemson.edu>
3275
3276 * NEWS (2.3a+): Mention yesterday's state-removal change.
3277 (2.3a): Remove the %language entry, which was added after 2.3a.
3278 * src/LR0.c, src/closure.c, src/closure.h, src/conflicts.c,
3279 src/conflicts.h, src/lalr.c, src/lalr.h, src/print.c,
3280 src/print_graph.c, src/state.c, src/state.h, tests/conflicts.at,
3281 tests/existing.at: Update copyright date.
3282
3283 2007-05-06 Joel E. Denny <jdenny@ces.clemson.edu>
3284
3285 If conflict resolution makes states unreachable, remove those states,
3286 report rules that are then unused, and don't report conflicts in those
3287 states.
3288 * src/conflicts.c, src/conflicts.h (conflicts_update_state_numbers):
3289 New global function.
3290 * src/lalr.c, src/lalr.h (lalr_update_state_numbers): New global
3291 function.
3292 * src/main.c (main): After conflict resolution, remove the unreachable
3293 states and update all data structures that reference states by number.
3294 * src/state.c (state_new): Initialize each state's reachable member to
3295 false.
3296 (state_mark_reachable_states): New static function.
3297 (state_remove_unreachable_states): New global function.
3298 * src/state.h (struct state): Add member bool reachable.
3299 (state_remove_unreachable_states): Prototype.
3300 * tests/conflicts.at (Unreachable States After Conflict Resolution):
3301 New test case.
3302 * tests/existing.at (GNU pic Grammar): Update test case output now that
3303 an unused rule is discovered.
3304
3305 2007-05-06 Joel E. Denny <jdenny@ces.clemson.edu>
3306
3307 Minor code cleanup in parser table construction.
3308 * src/LR0.c (new_itemsets): Use item_number_is_symbol_number.
3309 (new_itemsets, save_reductions): Update for rename to nitemset.
3310 * src/closure.c (nritemset): Rename to...
3311 (nitemset): ... this since the "r" appears to meaningless and isn't
3312 used in the comments.
3313 (closure): Update for rename.
3314 * src/closure.h (nritemset): Update extern to...
3315 (nitemset): ... this.
3316 * src/lalr.c (LA): Fix a typo in comments.
3317 * src/print.c (print_core): Update for rename to nitemset.
3318 * src/print_graph.c (print_graph): Likewise.
3319 * src/state.h: Fix some typos in header comments.
3320
3321 2007-04-04 Paul Eggert <eggert@cs.ucla.edu>
3322
3323 * THANKS: Use ASCII for Sebastien Fricker's name. Bison source
3324 still sticks to ASCII. Sorry!
3325
3326 * README-hacking: New file, taken mostly from coreutils, with changes
3327 for Bison. Contains much of the contents of:
3328 * README-cvs: Remove.
3329 * bootstrap: Sync from gnulib.
3330 * build-aux/.cvsignore: Remove *.t, mkinstalldirs.
3331 * lib/.cvsignore: Add wchar.h, wctype.h. Remove exit.h.
3332
3333 2007-03-10 Joel E. Denny <jdenny@ces.clemson.edu>
3334
3335 * doc/bison.texinfo (Destructor Decl): Fix typo reported by Sebastian
3336 Setzer.
3337 (Java Differences): Fix some typos.
3338 * THANKS: Add Sebastian Setzer.
3339
3340 2007-03-07 Paolo Bonzini <bonzini@gnu.org>
3341
3342 * data/java.m4 (b4_single_class_if): Remove.
3343 (b4_abstract_if): Look at "%define abstract".
3344 (b4_lexer_if): New.
3345 (b4_union_name): Rename...
3346 (b4_yystype): ... to this. Map to "%define stype".
3347 (b4_rhs_value, b4_parse_param_decl, b4_lex_param_decl,
3348 b4_maybe_throws): Fix quoting.
3349 (b4_lex_param_call): Move below to keep b4_*_param_decl close.
3350 * data/lalr1.java (Lexer interface): Always define.
3351 (Lexer interface within parser class): Remove.
3352 (YYLexer class): New, used when "%code lexer" is present.
3353 (constructor): When "%code lexer" is used, pass %lex-param
3354 to the lexer constructor.
3355 (yylex, yyparse): Remove %lex-param from method invocations
3356 (YYStack, yyaction, yyparse): Rename b4_union_name to b4_yystype.
3357
3358 * doc/bison.texinfo (Java Bison Interface): Mention "%define
3359 abstract". Rename "%define union_name" to "%define stype".
3360 Rename method names according to previous patch.
3361 (Java Scanner Interface): Describe "%code lexer" instead of
3362 "%pure-parser" and "%define single_class".
3363 (Java Differences): Mention "%code lexer".
3364
3365 * tests/java.at (_AT_DATA_JAVA_CALC_Y): Remove final argument.
3366 Include scanner here, using macros from tests/local.at.
3367 (AT_DATA_CALC_Y): Remove final argument.
3368 (_AT_CHECK_JAVA_CALC): Likewise.
3369 (AT_CHECK_JAVA_CALC): Likewise. Test all four combinations
3370 of %locations and %error-verbose.
3371 (main): Test with and without %lex-param.
3372 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Push AT_LEXPARAM_IF.
3373 (AT_BISON_OPTION_POPDEFS): Pop it.
3374
3375 2007-03-07 Juan Manuel Guerrero <juan.guerrero@gmx.de>
3376
3377 DJGPP spefic issue. Inhibit the use of disallowed characters for
3378 file name genertion on Win98, WinXP, etc. These are |<>":?*\
3379 and concern testsuite case 46.
3380 * Makefile.am: djgpp/testsuite.sed added to EXTRA_DIST
3381 * djgpp/testsuite.sed: Inhibit the use of disallowed characters.
3382 * djgpp/config.bat: Inhibit the use of disallowed characters.
3383
3384 2007-03-02 Joel E. Denny <jdenny@ces.clemson.edu>
3385
3386 Miscellaneous %define and %code cleanup.
3387 * data/bison.m4 (b4_percent_define_flag_if): Correct comments on how
3388 values are interpreted.
3389 * doc/bison.texinfo (Decl Summary): Clean up and extend %define
3390 documentation a little more.
3391 * src/muscle_tab.c (MUSCLE_USER_NAME_CONVERT,
3392 muscle_percent_define_insert, muscle_percent_code_grow): New
3393 functions/macros.
3394 * src/muscle_tab.h (muscle_percent_define_insert,
3395 muscle_percent_code_grow): Prototype.
3396 * src/parse-gram.y (prologue_declaration): Use
3397 muscle_percent_define_insert and muscle_percent_code_grow when parsing
3398 %define and %code directives.
3399
3400 Make it easy to share %define boolean variables between the front-end
3401 and back-end. Though not used yet, this will be useful in the future.
3402 * data/bison.m4 (b4_check_user_names): Rewrite comments to talk about
3403 Bison uses of names rather than just skeleton uses of names.
3404 (b4_percent_define_get, b4_percent_define_ifdef): Rename
3405 b4_percent_define_skeleton_variables(VARIABLE) to
3406 b4_percent_define_bison_variables(VARIABLE).
3407 (b4_percent_code_get, b4_percent_code_ifdef): Rename
3408 b4_percent_code_skeleton_qualifiers(QUALIFIER) to
3409 b4_percent_code_bison_qualifiers(QUALIFIER).
3410 (b4_check_user_names_wrap): Update for renames.
3411 * src/muscle_tab.c, src/muscle_tab.h (muscle_percent_define_flag_if,
3412 muscle_percent_define_default): New functions mimicking
3413 b4_percent_define_flag_if and b4_percent_define_default.
3414
3415 For %define variables, report locations for invalid values and
3416 redefinitions.
3417 * data/bison.m4 (b4_percent_define_flag_if): Read
3418 b4_percent_define_loc(VARIABLE) to report the location of an invalid
3419 value for VARIABLE.
3420 (b4_percent_define_default): Save a special location in
3421 b4_percent_define_loc(VARIABLE) in case the default value for VARIABLE
3422 must later be reported as invalid.
3423 * src/muscle_tab.c (muscle_location_grow, muscle_location_decode): New
3424 functions.
3425 (muscle_percent_define_insert): Record the location of VARIABLE in
3426 muscle percent_define_loc(VARIABLE), and use it to report the previous
3427 location for a redefinition.
3428 (muscle_percent_define_flag_if): Update like b4_percent_define_flag_if.
3429 (muscle_percent_define_default): Update like b4_percent_define_default.
3430 (muscle_grow_user_name_list): Rename to...
3431 (muscle_user_name_list_grow): ... this for consistency and use
3432 muscle_location_grow.
3433 * src/muscle_tab.h (muscle_location_grow): Prototype.
3434 * tests/input.at (%define errors): Update expected output.
3435 * tests/skeletons.at (%define boolean variables: invalid skeleton
3436 defaults): New test case.
3437
3438 2007-02-28 Joel E. Denny <jdenny@ces.clemson.edu>
3439
3440 * src/print.c (lookahead_set, state_default_rule): Remove.
3441 (print_reductions): Replace state_default_rule invocation with
3442 equivalent use of yydefact, which was computed in token_actions in
3443 tables.c.
3444 (print_results): Don't allocate lookahead_set.
3445
3446 2007-02-27 Paolo Bonzini <bonzini@gnu.org>
3447
3448 * data/lalr1.java: Prefix all private members with yy.
3449
3450 2007-02-24 Joel E. Denny <jdenny@ces.clemson.edu>
3451
3452 Use YYFPRINTF instead of fprintf where appropriate. Reported by
3453 Sebastien Fricker at
3454 <http://lists.gnu.org/archive/html/bug-bison/2007-02/msg00035.html>.
3455 * THANKS: Add Sebastien Fricker.
3456 * data/glr.c, data/push.c, data/yacc.c (yy_reduce_print): Implement.
3457 * doc/bison.texinfo (Tracing): Make it clearer that YYFPRINTF must
3458 accept a variable number of arguments.
3459
3460 2007-02-19 Joel E. Denny <jdenny@ces.clemson.edu>
3461
3462 * bootstrap: Remove occurrences of .#bootmp from lib/Makefile.
3463
3464 2007-02-13 Juan Manuel Guerrero <juan.guerrero@gmx.de>
3465
3466 * djgpp/config.bat: Adjustments concerning the use of autoconf 2.61.
3467 * djgpp/config.sed: Adjustments concerning the use of autoconf 2.61.
3468 * djgpp/config.site: Adjustments concerning the use of autoconf 2.61.
3469
3470 2007-02-11 Paul Eggert <eggert@cs.ucla.edu>
3471
3472 Undo my 2007-02-07 change, switching back to the c-strcase module
3473 introduced in the 2007-02-03 change. Bruno Haible reported that
3474 the 2007-02-07 change would be dangerous in Turkish if we add a
3475 language whose name contains "i", since "i" is not lowercase "I"
3476 in Turkish.
3477 * bootstrap.conf (gnulib_modules): Add c-strcase. Remove strcase.
3478 * lib/.cvsignore: Add c-ctype.c, c-ctype.h, c-strcase.h,
3479 c-strcasecomp.c, c-strncasecmp.c. Remove strcasecmp.c, strncasecmp.c.
3480 * m4/.cvsignore: Remove strcase.m4.
3481 * src/getargs.c: Revert 2007-02-07 change, as follows.
3482 Include c-strcase.h.
3483 (language_argmatch): Use c_strcasecmp rather than strcasecmp.
3484
3485 2007-02-11 Bruno Haible <bruno@clisp.org>
3486
3487 Enable the Java related testsuite tests when the only Java compiler
3488 found is a gcj < 4.3. Discussed at
3489 <http://lists.gnu.org/archive/html/bug-bison/2007-02/msg00016.html>.
3490 * configure.ac (gt_JAVACOMP): Don't specify a target_version.
3491
3492 2007-02-11 Joel E. Denny <jdenny@ces.clemson.edu>
3493
3494 * data/Makefile.am: Update copyright date.
3495 * data/push.c (yypull_parse): Report memory exhaustion and return 2 if
3496 yypstate_new returns NULL.
3497 (yypstate_new): Return NULL if malloc does.
3498 * src/reader.c (packgram): Move translation of rule actions from the
3499 beginning of packgram to...
3500 (check_and_convert_grammar): ... here right before packgram is invoked
3501 so it's easier to write more complete comments, and remove redundant
3502 code.
3503
3504 2007-02-10 Joel E. Denny <jdenny@ces.clemson.edu>
3505
3506 As in semantic actions, make @$ in %initial-action, %destructor, and
3507 %printer imply %locations.
3508 * src/scan-code.l (SC_SYMBOL_ACTION): Set locations_flag = true when
3509 scanning @$.
3510 * tests/actions.at (AT_CHECK_ACTION_LOCATIONS): New macro supporting...
3511 (@$ in %initial-action implies %locations,
3512 @$ in %destructor implies %locations,
3513 @$ in %printer implies %locations): ... these new test cases.
3514
3515 2007-02-07 Paul Eggert <eggert@cs.ucla.edu>
3516
3517 Undo most of the 2007-02-03 change, switching to the strcase module
3518 now that gnulib strcase has been fixed.
3519 * bootstrap.conf (gnulib_modules): Remove c-strcase. Add strcase.
3520 * lib/.cvsignore: Remove c-ctype.c, c-ctype.h, c-strcase.h,
3521 c-strcasecomp.c, c-strncasecmp.c. Add strcasecmp.c, strncasecmp.c
3522 * m4/.cvsignore: Add strcase.m4.
3523 * src/getargs.c: Revert 2007-02-03 change, as follows.
3524 Don't include c-strcase.h.
3525 (language_argmatch): Use strcasecmp rather than c_strcasecmp.
3526 strcasecmp has "unspecified behavior" outside the POSIX locale,
3527 but it works fine in practice if at least one argument is ASCII,
3528 as is the case in Bison.
3529
3530 2007-02-07 Paolo Bonzini <bonzini@gnu.org>
3531
3532 * tests/java.at: Skip tests if only one of javac/java is present.
3533 Reported by Joel E. Denny.
3534 * tests/atlocal.in: Adjust copyright years.
3535
3536 2007-02-05 Paolo Bonzini <bonzini@gnu.org>
3537
3538 * data/lalr1.java (Stack): Work around old verifiers that disallow
3539 access to the private fields of an inner class, from the outer class.
3540 We can make Stack's fields public because user code doesn't have access
3541 to the instance of Stack used by parse(). Reported by Paul Eggert.
3542
3543 2007-02-03 Paul Eggert <eggert@cs.ucla.edu>
3544
3545 * .cvsignore: Add javacomp.sh, javaexec.sh. Is this really
3546 the right spot for these files?
3547 * bootstrap.conf (gnulib_modules): Add c-strcase.
3548 * lib/.cvsignore: Add c-ctype.c c-ctype.h, c-strcasecomp.c,
3549 c-strncasecmp.c.
3550 * src/getargs.c: Include c-strcase.h.
3551 (language_argmatch): Use c_strcasecmp rather than strcasecmp,
3552 to avoid unspecified behavior.
3553
3554 2007-02-01 Joel E. Denny <jdenny@ces.clemson.edu>
3555
3556 * doc/bison.texinfo (Decl Summary): Correct typo.
3557
3558 2007-01-30 Paolo Bonzini <bonzini@gnu.org>
3559
3560 * data/bison.m4 (b4_percent_define_flag_if): Don't treat 0 as false.
3561 Complain if the value does not match empty, "true" or "false".
3562 * data/c++.m4: Adjust default definitions of %define variables.
3563 * data/java.m4: Adjust default definitions of %define variables.
3564 * doc/bison.texinfo (Decl Summary): Adjust the %define entry according
3565 to above behavior.
3566 * tests/input.at (Boolean %define variables): Test new behavior.
3567
3568 2007-01-29 Paolo Bonzini <bonzini@gnu.org>
3569
3570 * NEWS: Mention java.
3571 * TODO: Remove things that are done.
3572 * bootstrap.conf: Add javacomp-script and javaexec-script.
3573 * configure.ac: Invoke gt_JAVACOMP and gt_JAVAEXEC.
3574
3575 * data/Makefile.am: Add new files.
3576 * data/java-skel.m4: New.
3577 * data/java.m4: New.
3578 * data/lalr1.java: New.
3579
3580 * doc/bison.texinfo: Put "A Complete C++ Example" under
3581 C++ Parsers. Add Java Parsers. Put C++ Parsers and Java Parsers
3582 under Other Languages.
3583
3584 * src/getargs.c (valid_languages): Add Java.
3585 * src/getargs.h (struct bison_language): Update size of string fields.
3586
3587 * tests/Makefile.am: Add java.at.
3588 * tests/atlocal.in: Add CONF_JAVA and CONF_JAVAC.
3589 * tests/java.at: New.
3590 * tests/testsuite.at: Include it.
3591
3592 2007-01-28 Joel E. Denny <jdenny@ces.clemson.edu>
3593
3594 Clean up.
3595 * src/scan-skel.l (at_directive_perform): Add at_directive_argc and
3596 at_directive_argv arguments so these no longer have to be global
3597 variables. Also, update the implementation for the following changes.
3598 (fail_for_at_directive_too_many_args,
3599 fail_for_at_directive_too_few_args): Add at_directive_name argument.
3600 (at_directive_name): Remove as at_directive_argv[0] will be used for
3601 this now.
3602 (AT_DIRECTIVE_ARGC_MAX): Increment to make space in at_directive_argv
3603 for the directive name.
3604 (at_directive_argc, at_directive_argv): Make these local within
3605 skel_lex instead of global.
3606 (INITIAL): Update directive start action for above changes.
3607 (SC_AT_DIRECTIVE_ARG): Rename to...
3608 (SC_AT_DIRECTIVE_ARGS): ... this, and update for above changes.
3609 (SC_AT_DIRECTIVE_SKIP_WS): Update.
3610 (scan_skel): Move yylex_destroy to...
3611 (skel_scanner_free): ... here.
3612 * tests/skeletons.at (installed skeleton file name): Rename to...
3613 (installed skeleton file names): ... this.
3614
3615 2007-01-27 Joel E. Denny <jdenny@ces.clemson.edu>
3616
3617 * ChangeLog: For changes in doc/bison.texinfo, consistently reference
3618 node names: say "Table of Symbols" not "Bison Symbols", and say "Decl
3619 Summary" not "Directives".
3620 * doc/bison.texinfo (Decl Summary, Calc++ Parser): Cross-reference the
3621 %code entry in "Decl Summary" rather than the one in "Table of Symbols"
3622 since the former is now the more complete one.
3623 (Prologue Alternatives): Likewise and do the same for %defines.
3624 (Table of Symbols): Add summary of %code, add summary of %define, and
3625 move full %code documentation to...
3626 (Decl Summary): ... here for consistency with other entries in these
3627 sections.
3628 Move %define entry in order to keep this list alphabetized.
3629 Reword %define entry a little to put less emphasis on the skeleton
3630 concept, which most users shouldn't have to think about.
3631
3632 2007-01-26 Paul Eggert <eggert@cs.ucla.edu>
3633
3634 Adjust to recent gnulib changes.
3635 * lib/.cvsignore: Remove stpcpy.h, strndup.h, strnlen.h.
3636 Add string.h, string_.h, unistd_.h, wchar_.h.
3637 * m4/.cvsignore: Add gnulib-common.m4, string_h.m4, wchar.m4.
3638 * src/system.h: Don't include <stpcpy.h>; this is now done by
3639 <string.h>.
3640
3641 2007-01-23 Paolo Bonzini <bonzini@gnu.org>
3642
3643 Simplify implementation of unqualified %code, implement macros for
3644 uniform treatment of boolean %define flags. Document %define.
3645 * data/bison.m4 (b4_percent_define_ifdef, b4_percent_define_flag_if,
3646 b4_percent_code_ifdef): New.
3647 (b4_percent_code_get): Map unqualified %code to b4_percent_code().
3648 * data/c++.m4: Define default value for global_tokens_and_yystype.
3649 * data/glr.cc: Likewise.
3650 * data/location.cc: Use b4_percent_define_flag_if.
3651
3652 * doc/bison.texinfo (Decl Summary): Document %define.
3653
3654 * src/parse-gram.y (Unqualified %code): Change muscle name to
3655 b4_percent_code().
3656 (content.opt): Default to empty.
3657
3658 2007-01-17 Joel E. Denny <jdenny@ces.clemson.edu>
3659
3660 Implement support for relative and absolute skeleton file names.
3661 Discussed starting at
3662 <http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00071.html>.
3663 * doc/bison.texinfo (Decl Summary): Document in %skeleton entry.
3664 (Bison Options): Document in --skeleton entry.
3665 * src/output.c (output_skeleton): Use strncpy rather than strcpy since
3666 full_skeleton can't necessarily hold all of pkgdatadir.
3667 If the specified skeleton file name contains a `/', don't prepend
3668 pkgdatadir.
3669 * src/parse-gram.y (prologue_declaration): If the specified skeleton
3670 file name contains a `/', prepend the grammar file directory.
3671 * tests/Makefile.am (TESTSUITE_AT): Add skeletons.at.
3672 * skeletons.at: New file.
3673 (relative skeleton file names): New test case.
3674 (installed skeleton file names): New test case.
3675 * tests/testsuite.at: Include skeletons.at.
3676
3677 * bootstrap: Update copyright to 2007.
3678
3679 2007-01-17 Paolo Bonzini <bonzini@gnu.org>
3680
3681 * bootstrap: Remove occurrences of .#bootmp from the files.
3682
3683 2007-01-17 Akim Demaille <akim@epita.fr>
3684
3685 * doc/bison.texinfo (Calc++ Parser): Don't try to alias
3686 nonterminals.
3687 Use per-type %printer.
3688
3689 2007-01-17 Joel E. Denny <jdenny@ces.clemson.edu>
3690
3691 * NEWS, data/c++-skel.m4, data/c++.m4, data/c-skel.m4, data/c.m4,
3692 data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc,
3693 djgpp/config.site, src/files.c, src/files.h, src/main.c,
3694 src/muscle_tab.c, src/muscle_tab.h, src/parse-gram.y, src/reader.h,
3695 src/scan-skel.h, src/scan-skel.l, tests/actions.at, tests/calc.at,
3696 tests/glr-regression.at, tests/input.at, tests/local.at,
3697 tests/output.at, tests/torture.at: Update copyright to 2007.
3698
3699 2007-01-16 Akim Demaille <akim@epita.fr>
3700
3701 * doc/bison.texinfo (Calc++ Parsing Driver): Let "parse" return an
3702 error code.
3703 (Calc++ Scanner): Exit with failure if we can't open the input
3704 file.
3705 Accept "-" standing for stdin.
3706 (Calc++ Top Level): Print the result only if the parsing was
3707 successful.
3708
3709 2007-01-16 Akim Demaille <akim@epita.fr>
3710
3711 * data/lalr1.cc (yy_reduce_print_): Add a missing end-of-line.
3712
3713 2007-01-15 Paolo Bonzini <bonzini@gnu.org>
3714 and Joel E. Denny <jdenny@ces.clemson.edu>
3715
3716 Clean up %define and %code implementation in M4 some. Most
3717 importantly, rename all related macros to be in the b4_percent_define
3718 and b4_percent_code namespaces. Also, complete support for `.' in
3719 %define variable names and %code qualifiers.
3720 * data/bison.m4 (b4_check_user_names): Check for special
3721 "SKELETON-NAMESPACE(name)" macros instead of using two nested
3722 m4_foreach loops.
3723 (b4_get_percent_define, b4_get_percent_code): Rename to...
3724 (b4_percent_define_get, b4_percent_code_get): ... these.
3725 Extend documentation with examples.
3726 For SKELETON-NAMESPACE (as documented for b4_check_user_names), use
3727 b4_percent_define_skeleton_variables and
3728 b4_percent_code_skeleton_qualifiers.
3729 Expect any value for the %define variable `foo' to be stored in the
3730 macro named `b4_percent_define(foo)'; expect any %code blocks for the
3731 qualifier `foo' to be stored in a macro named `b4_percent_code(foo)';
3732 expect any unqualified %code blocks to be stored in a macro named
3733 `b4_percent_code_unqualified'.
3734 Use m4_indir so that %define variable names and %code qualifiers can
3735 contain `.', which is allowed by the grammar parser.
3736 (b4_percent_define_default): New macro to set a default value for a
3737 %define variable.
3738 (m4_wrap): Update wrapped code, and fix some underquoting.
3739 (b4_check_user_names_wrap): Update and define outside the m4_wrap.
3740 Expect grammar uses of %define variables and %code qualifiers to be
3741 defined in b4_percent_define_user_variables and
3742 b4_percent_code_user_qualifiers.
3743 * data/c++.m4: Use b4_percent_define_default rather than
3744 m4_define_default. Fix some underquoting. Skeleton usage of %define
3745 variable define_location_comparison now implies skeleton usage of
3746 %define variable filename_type.
3747 * data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc,
3748 data/push.c, data/yacc.c: Update macro names.
3749 * src/parse-gram.y (prologue_declaration, grammar_declaration): Update
3750 muscle names.
3751
3752 2007-01-14 Juan Manuel Guerrero <juan.guerrero@gmx.de>
3753
3754 DJGPP specific issues.
3755
3756 * djgpp/config.site: Set ac_cv_path_mkdir to a sane DJGPP specific
3757 default. Set gl_cv_absolute_wctype_h to a sane DJGPP specific default.
3758
3759 2007-01-09 Joel E. Denny <jdenny@ces.clemson.edu>
3760
3761 * tests/glr-regression.at: Use AT_PARSER_CHECK rather than AT_CHECK to
3762 run parsers in all tests so that Valgrind is invoked during
3763 maintainer-check-valgrind.
3764 (Duplicate representation of merged trees): Free all semantic values.
3765 (Duplicated user destructor for lookahead): Likewise.
3766
3767 2007-01-09 Joel E. Denny <jdenny@ces.clemson.edu>
3768
3769 * tests/local.at (AT_PARSER_CHECK): Add a PRE argument to specify a
3770 command-line prefix.
3771 * tests/torture.at (Exploding the Stack Size with Alloca): Stderr is
3772 ignored, so use that PRE to set --log-fd=1 in VALGRIND_OPTS so we don't
3773 miss Valgrind messages.
3774 (Exploding the Stack Size with Malloc): Likewise.
3775
3776 2007-01-09 Joel E. Denny <jdenny@ces.clemson.edu>
3777
3778 Ignore YYSTACK_USE_ALLOCA for push parsers since the stacks can't be
3779 locals. Reported by Juan Manuel Guerrero at
3780 <http://lists.gnu.org/archive/html/bug-bison/2007-01/msg00000.html>.
3781 * data/push.c: Enclose the #ifdef YYSTACK_USE_ALLOCA in b4_push_if.
3782 Fix some indentation also.
3783 * tests/torture.at (Exploding the Stack Size with Alloca): Add comment
3784 explaining this issue.
3785
3786 2007-01-09 Paolo Bonzini <bonzini@gnu.org>
3787 and Joel E. Denny <jdenny@ces.clemson.edu>
3788
3789 Simplify union and prologue handling, and escape union and lex/parse
3790 params with digraphs.
3791 * data/bison.m4 (b4_pre_prologue, b4_post_prologue): Set their default
3792 values to the empty string since these are no longer guaranteed
3793 initialized by the front-end.
3794 * data/glr.c, data/glr.cc, data/lalr1.cc, data/push.c, data/yacc.c: Add
3795 braces around b4_user_stype since this is no longer done by the
3796 front-end.
3797 * src/files.c, src/files.h (pre_prologue_obstack,
3798 post_prologue_obstack): Remove.
3799 * src/muscle_tab.c (muscle_pair_list_grow): Don't duplicate header
3800 comments here. Use MUSCLE_OBSTACK_SGROW so that values are escaped
3801 with digraphs. This fixes lex params and parse params.
3802 * src/muscle_tab.h (muscle_pair_list_grow): Update comments.
3803 * src/output.c (prepare): Remove muscle insertion of the prologues.
3804 (output): Remove freeing of pre_prologue_obstack and
3805 post_prologue_obstack.
3806 * src/parse-gram.y (prologue_declaration): Use muscle_code_grow rather
3807 than prologue_augment for prologue parsing so you don't need prologue
3808 obstacks.
3809 (grammar_declaration): For %union RHS, use `braceless' instead of
3810 "{...}" so that braces are already stripped and code is escaped with
3811 digraphs.
3812 * src/reader.c (prologue_augment): Remove.
3813 (reader): Remove initialization of pre_prologue_obstack and
3814 post_prologue_obstack.
3815 * src/reader.h (prologue_augment): Remove.
3816
3817 * data/c.m4: Remove stray parenthesis.
3818
3819 2007-01-08 Joel E. Denny <jdenny@ces.clemson.edu>
3820
3821 Remove quotes from variables names in %define directives and from
3822 qualifiers in %code directives, and restrict the characters that are
3823 allowed in them to M4-friendly ones. For %define, continue to support
3824 the quoted form as a deprecated feature. Discussed starting at
3825 <http://lists.gnu.org/archive/html/bison-patches/2007-01/msg00023.html>.
3826 * NEWS (2.3a+): Add entry for the change to %define. Update entry for
3827 %code.
3828 * doc/bison.texinfo (Prologue Alternatives): Update.
3829 (Decl Summary): In %defines entry, update mention of `%code requires'
3830 and `%code provides'.
3831 (C++ Location Values): Update %define uses.
3832 (Calc++ Parser Interface): Likewise.
3833 (Calc++ Parser): Likewise, and update `%code requires' uses.
3834 (Table of Symbols): Update %code documentation.
3835 * src/parse-gram.y (prologue_declaration): For %define variables, use
3836 `variable' instead of `STRING'.
3837 (grammar_declaration): For %code qualifiers, use `ID' instead of
3838 `STRING'.
3839 (variable): New nonterminal that takes an `ID' or a `STRING'.
3840 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Update %code
3841 and %define uses.
3842 * tests/calc.at (_AT_DATA_CALC_Y): Update %define use.
3843 * tests/input.at (Reject unused %code qualifiers): Update %code uses.
3844 (%define errors): Update %define uses.
3845
3846 2007-01-08 Joel E. Denny <jdenny@ces.clemson.edu>
3847
3848 * src/parse-gram.y (prologue_declaration): Use MUSCLE_INSERT_STRING
3849 instead of muscle_insert for %define values so that M4-special
3850 characters are replaced with digraphs.
3851 * tests/input.at (%define errors): Extend to check weird values.
3852
3853 2007-01-08 Joel E. Denny <jdenny@ces.clemson.edu>
3854
3855 Instead of having skeletons declare all valid %define variables and
3856 %code qualifiers, provide macros that retrieve the associated values
3857 and build these lists automatically. Thus Bison will now warn when a
3858 variable or qualifier is not used by the skeleton in the current
3859 invocation regardless of whether it might sometimes be used by that
3860 skeleton in other invocations. Also, move all %define value macros to
3861 the b4_percent_define_ namespace, and remove the %define "NAME" {CODE}
3862 form, which is replaced by %code.
3863 * data/bison.m4 (b4_check_for_unrecognized_names): Rename to...
3864 (b4_check_user_names): ... this, and change the series of valid name
3865 arguments to a single list argument for names used in the skeleton
3866 similar to the existing list argument for names used in the grammar.
3867 Warn instead of complaining.
3868 (b4_get_percent_define, b4_get_percent_code): New to retrieve %define
3869 values and %code code, to format %code code properly, and to build
3870 lists of all %define variables and %code qualifiers used in the
3871 skeleton: b4_skeleton_percent_define_variables and
3872 b4_skeleton_percent_code_qualifiers.
3873 (b4_check_percent_define_variables, b4_check_percent_code_qualifiers):
3874 Remove, and...
3875 (m4_wrap): ... m4_wrap b4_check_user_names invocations instead so that
3876 the skeleton names lists can finish building first. In place of
3877 b4_used_percent_define_variables and b4_used_percent_code_qualifiers,
3878 expect the lists b4_user_percent_define_variables and
3879 b4_user_percent_code_qualifiers.
3880 * data/c++.m4: Where setting default values for b4_parser_class_name,
3881 b4_location_type, b4_filename_type, b4_namespace, and
3882 b4_define_location_comparison, update their names to the
3883 b4_percent_define_ namespace.
3884 * data/glr.c: Don't use b4_check_percent_define_variables and
3885 b4_check_percent_code_qualifiers. Use b4_get_percent_code.
3886 * data/glr.cc, data/lalr1.cc: Likewise, and use b4_get_percent_define.
3887 (b4_parser_class_name, b4_namespace): Define these using
3888 b4_get_percent_define for parser_class_name and namespace.
3889 * data/location.cc: Use b4_get_percent_define.
3890 * data/push.c: Don't use b4_check_percent_define_variables and
3891 b4_check_percent_code_qualifiers. Use b4_get_percent_code.
3892 * data/yacc.c: Likewise, and don't call m4_exit in
3893 b4_use_push_for_pull_if or m4_wrap code will never execute.
3894 * src/muscle_tab.c, src/muscle_tab.h (muscle_grow_used_name_list):
3895 Rename to...
3896 (muscle_grow_user_name_list): ... this for consistency with the
3897 terminology used in bison.m4.
3898 * src/parse-gram.y (prologue_declaration): Prepend "percent_define_" to
3899 %define variable names, and rename muscle used_percent_define_variables
3900 to user_percent_define_variables.
3901 (grammar_declaration): Rename muscle used_percent_code_qualifiers to
3902 user_percent_code_qualifiers.
3903 (content): Remove.
3904 (content.opt): Replace content RHS with STRING RHS so %define "NAME"
3905 {CODE} form is no longer accepted.
3906 * tests/input.at (Reject bad %code qualifiers): Rename to...
3907 (Reject unused %code qualifiers): ... this, and update test output.
3908 (%define error): Update test output.
3909
3910 2007-01-07 Joel E. Denny <jdenny@ces.clemson.edu>
3911
3912 Check for unrecognized %define variables similar to checking for
3913 unrecognized %code qualifiers. Check for redefined %define variables.
3914 * data/bison.m4 (b4_check_for_unrecognized_names): New macro that
3915 generalizes...
3916 (b4_check_percent_code_qualifiers): ... this, which now wraps it.
3917 (b4_check_percent_define_variables): New, also wraps it.
3918 * data/glr.c: Unless glr.cc is wrapping glr.c, declare no valid %define
3919 variables using b4_check_percent_define_variables.
3920 * data/glr.cc, data/lalr1.cc: Declare the valid %define variables as
3921 all those exercised in the test suite and all those listed in the
3922 `Default values' section of c++.m4. Are there others?
3923 * data/push.c, data/yacc.c: Declare no valid %define variables.
3924 * src/muscle_tab.c, src/muscle_tab.h (muscle_find_const): New function,
3925 similar to muscle_find, but it works even when the muscle stores a
3926 const value.
3927 (muscle_grow_used_name_list): New function for constructing the used
3928 name list muscles that b4_check_for_unrecognized_names requires.
3929 * src/parse-gram.y (prologue_declaration): Warn if a variable is
3930 %define'd more than once. Define the b4_used_percent_define_variables
3931 muscle with muscle_grow_used_name_list.
3932 (grammar_declaration): Abbreviate %code code with
3933 muscle_grow_used_name_list.
3934 * tests/input.at (%define errors): New.
3935
3936 2007-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
3937
3938 Provide warn_at, complain_at, and fatal_at function callbacks to the
3939 skeletons, and use this for %code qualifier complaints.
3940 * data/bison.m4 (b4_error_at): New, invoked by...
3941 (b4_warn_at, b4_complain_at, b4_fatal_at): ... these new macros to wrap
3942 the skeleton scanner's new @warn_at(...@), @complain_at(...@), and
3943 @fatal_at(...@) directives.
3944 (b4_check_percent_code_qualifiers): Rewrite to expect locations for
3945 qualifiers in b4_used_percent_code_qualifiers and to use
3946 b4_complain_at.
3947 * src/location.c, src/location.h (boundary_set_from_string): New global
3948 function.
3949 * src/muscle_tab.c, src/muscle_tab.h (muscle_boundary_grow): New global
3950 function.
3951 * src/parse-gram.y (grammar_declaration): Add locations for qualifiers
3952 to b4_used_percent_code_qualifiers.
3953 * src/scan-skel.l (fail_for_at_directive_too_few_args): New static
3954 function.
3955 (AT_DIRECTIVE_ARGC_MAX): Increase for boundary arguments.
3956 (lineno): Rename to...
3957 (out_lineno): ... this so I don't misunderstand it again.
3958 (SC_AT_DIRECTIVE_SKIP_WS): Don't increment out_lineno for newlines
3959 here; these newlines are in the input but not the output file.
3960 (SC_AT_DIRECTIVE_ARG): Likewise. Extract directive execution to...
3961 (at_directive_perform): ... this new static function, and add handling
3962 of new @warn_at(...@), @complain_at(...@), and @fatal_at(...@)
3963 directives.
3964 * tests/input.at (Reject bad %code qualifiers): Update test output with
3965 locations and extend.
3966
3967 * tests/output.at (Output file name: [, Output file name: ]): Remove
3968 bogus comment about these tests failing.
3969
3970 2007-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
3971
3972 Clean up b4_check_percent_code_qualifiers a little.
3973 * data/bison.m4 (b4_check_percent_code_qualifiers): Expect qualifiers
3974 in b4_used_percent_code_qualifiers to be double-M4-quoted. Rewrite
3975 documentation and add examples.
3976 * src/parse-gram.y (grammar_declaration): Double-M4-quote those
3977 qualifiers here.
3978
3979 2007-01-05 Joel E. Denny <jdenny@ces.clemson.edu>
3980
3981 Don't use m4_divert since it makes m4_divert_push and m4_divert_pop
3982 unreliable -- especially when they're hidden inside another macro.
3983 * data/bison.m4, data/c++-skel.m4, data/c++.m4, data/c-skel.m4,
3984 data/c.m4: Remove m4_divert(-1).
3985 * data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc,
3986 data/push.c, data/yacc.c: Likewise, and replace m4_divert(0) with
3987 m4_divert_push(0) and m4_divert_pop(0).
3988 * src/output.c (output_skeleton): Don't add an m4_divert_push(0) and
3989 an m4_wrap([m4_divert_pop(0)]) to the M4. Diversion -1, which is
3990 pushed and popped by m4sugar, should be first on the stack.
3991
3992 Provide warn, complain, and fatal function callbacks to the skeletons.
3993 This provides more flexibility than m4_fatal, improves the error
3994 message format, and captures messages for translation. Discussed
3995 starting at
3996 <http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00063.html>.
3997 * data/bison.m4 (b4_error): New, invoked by...
3998 (b4_warn, b4_complain, b4_fatal): ... these new macros to wrap the
3999 skeleton scanner's new @warn(...@), @complain(...@), and @fatal(...@)
4000 directives. Because these M4 macros might be called when the current
4001 diversion is -1 or 0, m4_divert_push and m4_divert_pop is used; thus
4002 the previous removal of uses of m4_divert, which caused trouble.
4003 (b4_check_percent_code_qualifiers): Use b4_complain instead of
4004 m4_fatal to report unrecognized %code qualifiers.
4005 * data/c++-skel.m4: Use b4_complain instead of m4_fatal to report C++
4006 push parser requests.
4007 * data/glr.c: Use b4_complain instead of m4_fatal to report
4008 non-deterministic push parser requests.
4009 Update @output usage to @output(...@) form.
4010 * data/glr.cc, data/lalr1.cc: Use b4_fatal instead of m4_fatal to
4011 report missing %defines. Update @output usage to @output(...@) form.
4012 * data/location.cc, data/push.c, data/yacc.c: Update @output usage to
4013 @output(...@) form.
4014 * src/main.c (main): Invoke skel_scanner_free.
4015 * src/scan-skel.h (skel_scanner_free): Prototype new function.
4016 * src/scan-skel.l (FLEX_NO_OBSTACK): Don't define; we now need the
4017 obstack_for_string from flex-scanner.h.
4018 (YY_DECL): Use to declare skel_lex static.
4019 (decode_at_digraphs): Remove; now handled in the new
4020 SC_AT_DIRECTIVE_ARG start condition.
4021 (fail_for_at_directive_too_many_args, fail_for_invalid_at): New static
4022 functions.
4023 (at_directive_name, AT_DIRECTIVE_ARGC_MAX, at_directive_argc,
4024 at_directive_argv): New static globals.
4025 (INITIAL): Use fail_for_invalid_at.
4026 Don't parse `@output file_name\n' or `@basename(...@)'. Instead,
4027 recognize the start of a generalized `@directive(...@)' form and
4028 start...
4029 (SC_AT_DIRECTIVE_ARG): ... this new start condition to parse the
4030 directive args (using the new obstack_for_string), to decode the
4031 contained @ diagraphs, and to perform the directive. It recognizes
4032 @basename(...@), @warn(...@), @complain(...@), @fatal(...@), and
4033 @output(...@).
4034 (SC_AT_DIRECTIVE_SKIP_WS): New start condition started by
4035 SC_AT_DIRECTIVE_ARG to skip whitespace after the argument delimiter,
4036 `@,'.
4037 (scan_skel): Initialize obstack_for_string on the first call.
4038 (skel_scanner_free): New function to free obstack_for_string.
4039 * tests/input.at (Reject bad %code qualifiers): Update test output.
4040
4041 2007-01-04 Joel E. Denny <jdenny@ces.clemson.edu>
4042
4043 Consolidate the 4 prologue alternative directives (%code, %requires,
4044 %provides, and %code-top) into a single %code directive with an
4045 optional qualifier field. Discussed at
4046 <http://lists.gnu.org/archive/html/bison-patches/2007-01/msg00012.html>.
4047 * NEWS (2.3a+): Rewrite the existing entry for the prologue
4048 alternatives.
4049 * doc/bison.texinfo (Prologue Alternatives): Update.
4050 (Decl Summary): Update to %code "requires" and %code "provides".
4051 (Calc++ Parser): Update to %code "requires".
4052 (Table of Symbols): Remove entries for %requires, %provides, and
4053 %code-top. Rewrite %code entry, and add a %code "QUALIFIER" entry.
4054 * data/bison.m4 (b4_user_provides, b4_user_requires): Remove as these
4055 are replaced by b4_percent_code_provides and b4_percent_code_requires,
4056 which are skeleton-specific.
4057 (b4_check_percent_code_qualifiers): New. A skeleton can use this to
4058 declare what %code qualifiers it supports and to complain if any other
4059 qualifiers were used in the grammar.
4060 * data/glr.cc: Update to use b4_user_code([b4_percent_code_requires])
4061 and b4_user_code([b4_percent_code_provides]) in place of
4062 b4_user_requires and b4_user_provides.
4063 * data/glr.c, data/lalr1.cc, data/push.c, data/yacc.c: Likewise.
4064 Add b4_user_code([b4_percent_code_top]) and
4065 b4_user_code([b4_percent_code]).
4066 Invoke b4_check_percent_code_qualifiers.
4067 * src/parse-gram.y (PERCENT_CODE_TOP, PERCENT_PROVIDES,
4068 PERCENT_REQUIRES): Remove.
4069 (grammar_declaration): Remove RHS's for %code-top, %provides, and
4070 %requires. Rewrite the %code RHS as the unqualified form defining the
4071 muscle b4_percent_code. Add another RHS for the qualified %code form,
4072 which defines muscles of the form b4_percent_code_QUALIFIER and the
4073 b4_used_percent_code_qualifiers muscle.
4074 * src/scan-gram.l (PERCENT_CODE_TOP, PERCENT_PROVIDES,
4075 PERCENT_REQUIRES): Remove.
4076 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Update to use
4077 %code "requires" and %code "provides".
4078 * tests/input.at (Reject bad %code qualifiers): New.
4079
4080 2007-01-03 Joel E. Denny <jdenny@ces.clemson.edu>
4081
4082 Use the new code_props interface for destructors and printers.
4083 * src/symtab.h (symbol, semantic_type): Remove destructor_location and
4084 printer_location members, and change the type of the destructor and
4085 printer members to code_props.
4086 (symbol_destructor_set, symbol_destructor_get, symbol_printer_set,
4087 symbol_printer_get, semantic_type_destructor_set,
4088 semantic_type_printer_set, default_tagged_destructor_set,
4089 default_tagless_destructor_set, default_tagged_printer_set,
4090 default_tagless_printer_set): Use code_props in arguments and return
4091 types in place of char const * and location.
4092 (symbol_destructor_location_get, symbol_printer_location_get): Remove
4093 since the locations are now contained in the return of
4094 symbol_destructor_get and symbol_printer_get.
4095 * src/output.c (symbol_destructors_output, symbol_printers_output):
4096 Replace with...
4097 (symbol_code_props_output): ... this to eliminate duplicate code.
4098 (output_skeleton): Update to use symbol_code_props_output.
4099 * src/reader.c (symbol_should_be_used): Update use of
4100 symbol_destructor_get.
4101 * src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set):
4102 Update uses of the various _destructor_set and _printer_set functions.
4103 * src/symtab.c: (default_tagged_destructor_location,
4104 default_tagless_destructor_location, default_tagged_printer_location,
4105 default_tagless_printer_location): Remove since we...
4106 (default_tagged_destructor, default_tagless_destructor,
4107 default_tagged_printer, default_tagless_printer): ... change the type
4108 of these to code_props.
4109 (symbol_new, semantic_type_new, symbol_destructor_set,
4110 semantic_type_destructor_set, symbol_destructor_get,
4111 symbol_printer_set, semantic_type_printer_set, symbol_printer_get,
4112 symbol_check_alias_consistency, default_tagged_destructor_set,
4113 default_tagless_destructor_set, default_tagged_printer_set,
4114 default_tagless_printer_set): Update.
4115 (symbol_destructor_location_get, symbol_printer_location_get): Remove.
4116 (SYMBOL_CODE_PRINT): New similar to SYMBOL_ATTR_PRINT but for
4117 code_props members.
4118 (symbol_print): Use SYMBOL_CODE_PRINT.
4119
4120 2007-01-03 Joel E. Denny <jdenny@ces.clemson.edu>
4121
4122 Use the new code_props interface for rule actions.
4123 * src/symlist.h (symbol_list): Replace action, action_location, and
4124 used members with a code_props action_props member.
4125 * src/reader.c (symbol_should_be_used, grammar_rule_check,
4126 grammar_midrule_action, grammar_current_rule_merge_set,
4127 grammar_current_rule_symbol_append, packgram): Update.
4128 * src/scan-code.h (translate_rule_action): Remove, no longer used.
4129 * src/scan-code.l (handle_action_dollar): Update.
4130 (translate_rule_action): Remove, no longer used.
4131 * src/symlist.c (symbol_list_sym_new, symbol_list_syms_print): Update.
4132
4133 2007-01-02 Joel E. Denny <jdenny@ces.clemson.edu>
4134
4135 Use the new code_props interface in parse-gram.y.
4136 * src/parse-gram.y (prologue_declaration, braceless, epilogue.opt):
4137 Update all uses of translate_* functions to use the new code_props
4138 interface and to use gram_scanner_last_string_free and
4139 code_scanner_last_string_free where possible.
4140 (grammar_declaration): symbol_list_destructor_set and
4141 symbol_list_printer_set now perform the translation, so don't do it
4142 here. Use gram_scanner_last_string_free where possible.
4143 * src/scan-code.h, src/scan-code.l (translate_symbol_action,
4144 translate_code): Remove, no longer used.
4145 * src/symlist.h, src/symlist.c (symbol_list_destructor_set,
4146 symbol_list_printer_set): Perform code translation here rather than
4147 depending on the caller to do so.
4148
4149 * src/symlist.h (struct symbol_list): Correct some documentation typos.
4150 * src/scan-gram.h (gram_last_string): Remove declaration.
4151 * src/scan-gram.l (last_string): Declare it static.
4152
4153 2007-01-02 Joel E. Denny <jdenny@ces.clemson.edu>
4154
4155 Encapsulate code properties and related functionality for the various
4156 destructors, printers, and actions into a code_props structure and
4157 interface. This patch merely implements code_props in scan-code.h and
4158 scan-code.l. Future patches will rewrite other modules to use it.
4159 Discussed starting at
4160 <http://lists.gnu.org/archive/html/bison-patches/2006-11/msg00020.html>.
4161 * src/location.h (EMPTY_LOCATION_INIT): Define so that it's easier to
4162 consistently initialize const structs that have an empty location
4163 field.
4164 * src/location.c (empty_location): Initialize with EMPTY_LOCATION_INIT
4165 to ensure consistency.
4166 * src/scan-code.h (code_props): New structure.
4167 (code_props_none_init, CODE_PROPS_NONE_INIT, code_props_none): New
4168 function, macro, and const global variable for initializing a
4169 code_props with no code.
4170 (code_props_plain_init, code_props_symbol_action_init,
4171 code_props_rule_action_init, code_props_translate_code): The rest of
4172 the new code_props functional interface. Among other things, the init
4173 functions set the code_props kind field so that
4174 code_props_translate_code will know whether to behave like
4175 translate_symbol_action, translate_rule_action, or translate_code.
4176 These old translate functions must remain until all other modules are
4177 updated to use the new code_props interface.
4178 (code_scanner_last_string_free): New function similar to
4179 gram_scanner_last_string_free.
4180 (code_scanner_free): Add documentation.
4181 * src/scan-code.l: Implement the new interface.
4182 (code_lex): Make it static, add a code_props* argument, and remove the
4183 rule argument.
4184 (last_string): New static global similar to the one in scan-gram.l.
4185 (SC_RULE_ACTION): Update to use the code_props* argument to code_lex
4186 instead of rule.
4187 (SC_SYMBOL_ACTION): For $$, set the is_value_used member of the
4188 code_props since Bison may one day use this information for destructors
4189 and printers.
4190 (<*><<EOF>>): Use STRING_FINISH so that last_string is set.
4191 (handle_action_dollar): Use symbol_list_n_get and set used flag
4192 directly since symbol_list_n_used_set is removed.
4193 (translate_action): Add a code_props* argument and remove the rule,
4194 action, and location arguments. Pass the code_props* on to code_lex.
4195 (translate_rule_action, translate_symbol_action, translate_code):
4196 Rewrite as wrappers around the new code_props interface.
4197 * src/symlist.h, src/symlist.c (symbol_list_n_used_set): Remove since
4198 it would eventually need to break the encapsulation of code_props.
4199
4200 2007-01-01 Joel E. Denny <jdenny@ces.clemson.edu>
4201
4202 * etc/.cvsignore: New.
4203
4204 2007-01-01 Joel E. Denny <jdenny@ces.clemson.edu>
4205
4206 Add maintainer-push-check to run maintainer-check using push parsing in
4207 place of pull parsing where available.
4208 * Makefile.am (maintainer-push-check): New.
4209 * data/bison.m4 (b4_use_push_for_pull_if): New.
4210 * data/push.c: Redefine b4_push_if and b4_use_push_for_pull_if
4211 appropriately based on their existing values.
4212 (yypush_parse): Don't print push-parser-specific diagnostics if push
4213 parsing is being used in place of pull parsing.
4214 * data/yacc.c: If push parsing should replace pull parsing, redirect to
4215 push.c.
4216 * src/output.c (prepare): Check BISON_USE_PUSH_FOR_PULL environment
4217 variable, and insert b4_use_push_for_pull_flag into muscles.
4218 * tests/Makefile.am (maintainer-push-check): New.
4219
4220 2006-12-31 Joel E. Denny <jdenny@ces.clemson.edu>
4221
4222 * data/push.c (yypush_parse): Set yynew = 1 at the end of a parse
4223 (whether successful or failed) so that yypush_parse can be invoked
4224 again to start a new parse using the same yypstate.
4225 * tests/torture.at (AT_DATA_STACK_TORTURE): For push mode, extend to
4226 check multiple yypull_parse invocations on the same yypstate. For pull
4227 mode, extend to check multiple yyparse invocations.
4228 (Exploding the Stack Size with Alloca): Extend to try with
4229 %push-pull-parser.
4230 (Exploding the Stack Size with Malloc): Likewise.
4231
4232 * tests/calc.at (Simple LALR Calculator): Don't specify
4233 %skeleton "push.c" since %push-pull-parser implies that now.
4234 * tests/headers.at (export YYLTYPE): Don't check for the push
4235 declarations. Otherwise, this test case can't be used to see if push
4236 mode can truly emulate pull mode.
4237 * tests/input.at (Torturing the Scanner): Likewise.
4238 * tests/local.at (AT_YACC_OR_PUSH_IF, AT_PUSH_IF): Remove.
4239 (AT_YYERROR_SEES_LOC_IF): Rather than AT_YACC_OR_PUSH_IF, use
4240 AT_YACC_IF, which now includes the case of push mode since %skeleton
4241 need not be used for push mode. This will be more intuitive once
4242 push.c is renamed to yacc.c.
4243
4244 2006-12-31 Joel E. Denny <jdenny@ces.clemson.edu>
4245
4246 For push mode, convert yyparse from a macro to a function, invoke yylex
4247 instead of passing a yylexp argument to yypull_parse, and don't
4248 generate yypull_parse or yyparse unless %push-pull-parser is declared.
4249 Discussed starting at
4250 <http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00163.html>.
4251 * data/bison.m4 (b4_pull_if): New.
4252 * data/c.m4 (b4_identification): Define YYPULL similar to YYPUSH.
4253 * data/push.c: Improve M4 quoting a little.
4254 (b4_generate_macro_args, b4_parenthesize): Remove.
4255 (yyparse): If there's a b4_prefix, #define this to b4_prefix[parse]
4256 any time a pull parser is requested.
4257 Don't #define this as a wrapper around yypull_parse. Instead, when
4258 both push and pull are requested, make it a function that does that
4259 same thing.
4260 (yypull_parse): If there's a b4_prefix, #define this to
4261 b4_prefix[pull_parse] when both push and pull are requested.
4262 Don't define this as a function unless both push and pull are
4263 requested.
4264 Remove the yylexp argument and hard-code yylex invocation instead.
4265 * etc/bench.pl.in (bench_grammar): Use %push-pull-parser instead of
4266 %push-parser.
4267 * src/getargs.c (pull_parser): New global initialized to true.
4268 * getargs.h (pull_parser): extern it.
4269 * src/output.c (prepare): Insert pull_flag muscle.
4270 * src/parse-gram.y (PERCENT_PUSH_PULL_PARSER): New token.
4271 (prologue_declaration): Set both push_parser and pull_parser = true for
4272 %push-pull-parser. Set push_parser = true and pull_parser = false for
4273 %push-parser.
4274 * src/scan-gram.l: Don't accept %push_parser as an alternative to
4275 %push-parser since there's no backward-compatibility concern here.
4276 Scan %push-pull-parser.
4277 * tests/calc.at (Simple LALR(1) Calculator): Use %push-pull-parser
4278 instead of %push-parser.
4279 * tests/headers.at (export YYLTYPE): Make yylex static, and don't
4280 prototype it in the module that calls yyparse.
4281 * tests/input.at (Torturing the Scanner): Likewise.
4282 * tests/local.at (AT_PUSH_IF): Check for %push-pull-parser as well.
4283
4284 2006-12-26 Joel E. Denny <jdenny@ces.clemson.edu>
4285
4286 Update etc/bench.pl. Optimize push mode a little (the yyn change
4287 deserves most of the credit).
4288 * Makefile.am (SUBDIRS): Add etc subdirectory.
4289 * configure.ac (AC_CONFIG_FILES): Add etc/bench.pl and etc/Makefile.
4290 * data/push.c (b4_declare_parser_state_variables): Move yyn, yyresult,
4291 yytoken, yyval, and yyloc declarations to...
4292 (yyparse or yypush_parse): ... here to improve performance. For
4293 yypush_parse invocations after the first, be sure to assign yyn its old
4294 value again.
4295 (yypstate_new): Don't bother initializing the yyresult field since the
4296 initial value isn't used.
4297 (yyn, yyresult, yytoken, yyval, yyloc): For each NAME in this list,
4298 remove the #define that, in push mode, set it to yyps->NAME.
4299 * etc/Makefile.am: New.
4300 * etc/bench.pl: Remove and build it instead from...
4301 * etc/bench.pl.in: ... this new file. Use @abs_top_builddir@ to invoke
4302 "tests/bison" from the build directory by default rather than just
4303 invoking "bison" from $PATH.
4304 (calc_grammar): Update push parser code: don't declare yylval globally,
4305 don't define yyparse_wrapper, and don't #define yyparse.
4306 (bench_grammar): Update to check all working combinations of yacc.c,
4307 push.c, impure, pure, pull, and push.
4308
4309 2006-12-25 Joel E. Denny <jdenny@ces.clemson.edu>
4310
4311 For push mode, add pull wrappers around yypush_parse.
4312 * data/push.c: (b4_generate_macro_args, b4_parenthesize): New macros.
4313 (yypull_parse): New function wrapping yypush_parse.
4314 (yyparse): New #define wrapping yypull_parse.
4315 * tests/calc.at (_AT_DATA_CALC_Y): Call yyparse even when %push-parser
4316 is declared.
4317 * tests/headers.at (export YYLTYPE): Make yylex global. For push mode,
4318 prototype yylex in the module that calls yyparse, and don't prototype
4319 yyparse there. Otherwise, the yyparse expansion won't compile.
4320 * tests/input.at (Torturing the Scanner): Likewise.
4321
4322 2006-12-25 Joel E. Denny <jdenny@ces.clemson.edu>
4323
4324 Enable push parsers to operate in impure mode. Thus, %push-parser no
4325 longer implies %pure-parser. The point of this change is to move
4326 towards being able to test the push parser code by running the entire
4327 test suite as if %push-parser had been declared.
4328 * data/push.c (yypush_parse): For impure mode, remove the
4329 yypushed_char, yypushed_val, and yypushed_loc arguments.
4330 Instead, declare these as local variables initialized to the global
4331 yychar, yylval, and yylloc.
4332 For the first yypush_parse invocation only, restore the initial values
4333 of these global variables when it's time to read a token since they
4334 have been overwritten.
4335 * src/parse-gram.y (prologue_declaration): Don't set pure_parser for
4336 %push-parser.
4337 * tests/calc.at (Simple LALR(1) Calculator): Always declare
4338 %pure-parser along with %push-parser since this test case was designed
4339 for pure push parsers.
4340 * tests/local.at (AT_PURE_OR_PUSH_IF): Remove unused.
4341 (AT_YACC_OR_PUSH_IF): New.
4342 (AT_YYERROR_SEES_LOC_IF): Fix enough that the test suite passes, but
4343 add a note that it's still wrong for some cases (as it has been for a
4344 while).
4345 (AT_PURE_LEX_IF): Use AT_PURE_IF instead of AT_PURE_OR_PUSH_IF since
4346 %push-parser no longer implies %pure-parser.
4347
4348 2006-12-20 Joel E. Denny <jdenny@ces.clemson.edu>
4349
4350 Remove some unnecessary differences between the pull parser code and
4351 the push parser code. This patch enables yynerrs in push mode.
4352 * data/push.c: Reformat M4 a little.
4353 (b4_yyerror_range): Remove and convert all uses to just yyerror_range.
4354 (b4_declare_scanner_communication_variables): Don't omit yynerrs just
4355 because push mode is on. Instead, if pure mode is on, move yynerrs
4356 to...
4357 (b4_declare_parser_state_variables): ... here.
4358 (yynerrs, yyerror_range): For push mode, #define each NAME in this list
4359 to yyps->NAME so it can be used in yypush_parse.
4360 (yypush_parse): Don't omit uses of yynerrs in push mode.
4361
4362 2006-12-20 Joel E. Denny <jdenny@ces.clemson.edu>
4363
4364 Fix bug such that the first pushed token's value and location are
4365 sometimes overwritten (sometimes by %initial-action) before being used.
4366 * data/push.c (yypush_parse): Rename arguments yynchar, yynlval, and
4367 yynlloc to yypushed_char, yypushed_val, and yypushed_loc for clarity.
4368 For the first yypush_parse invocation, initialize yychar to YYEMPTY to
4369 more closely mimic the pull parser logic.
4370 Don't copy the pushed token to yychar, yylval, and yylloc until it's
4371 time to read a token, which is after any initialization of yylval and
4372 yylloc.
4373 (gottoken): Rename label to...
4374 (yyread_pushed_token): ... for clarity and to avoid infringing on the
4375 user namespace.
4376
4377 2006-12-20 Joel E. Denny <jdenny@ces.clemson.edu>
4378
4379 Rearrange initialization of the parser state variables so that the
4380 skeleton doesn't have to have a copy for pull mode and another for push
4381 mode. This patch also fixes at least a bug such that yylloc was not
4382 initialized (with b4_location_initial_line and
4383 b4_location_initial_column) upon calling yypush_parse. However, that
4384 initialization now overwrites the first token's location;
4385 %initial-action assigning @$ already did the same thing, and both bugs
4386 will be fixed in a later patch.
4387 * data/push.c (b4_yyssa): Remove and convert all uses to just yyssa.
4388 (b4_declare_parser_state_variables): Remove initialization of yytoken,
4389 yyss, yyvs, yyls, and yystacksize.
4390 (yypstate_new): Remove initialization of some yypstate fields: yystate,
4391 yyerrstatus, yytoken, yyss, yyvs, yyls, yystacksize, yyssp, yyvsp, and
4392 yylsp.
4393 (yyssa, yyvsa, yylsa): For push mode, #define each NAME in this list to
4394 yyps->NAME so it can be used in yypush_parse.
4395 (yyparse or yypush_parse): For yypush_parse, don't print the
4396 "Starting parse" diagnostic for invocations after the first.
4397 Add initialization of yytoken, yyss, yyvs, yyls, and yystacksize; for
4398 yypush_parse, only do it for the first invocation.
4399 Allow yystate, yyerrstatus, yyssp, yyvsp, yylsp, and yylloc
4400 initialization to occur in yypush_parse but only on the first
4401 invocation.
4402
4403 2006-12-19 Joel E. Denny <jdenny@ces.clemson.edu>
4404
4405 * data/push.c: Add CPP guards around push parser declarations in both
4406 the header and the code file.
4407 In the code file, move the push parser declarations to the same place
4408 they appear in the header file.
4409 Clean up the M4 some, especially the inconsistent underquoting in
4410 some b4_c_function_def and b4_c_function_decl uses.
4411
4412 2006-12-19 Joel E. Denny <jdenny@ces.clemson.edu>
4413
4414 Encapsulate the push parser state variables into an M4 macro so the
4415 push skeleton doesn't have to list them again for pull mode's yyparse.
4416 For push mode, remove yypush_parse's local equivalents of these
4417 variables to eliminate unnecessary copying between the two sets at
4418 run-time. This patch also fixes at least a bug related to multiple
4419 %initial-action invocations in push mode.
4420 * data/push.c (b4_declare_parser_variables): Rename to...
4421 (b4_declare_scanner_communication_variables): ... this for clarity and
4422 update both uses.
4423 (b4_declare_yyparse_variables): Remove and move its contents to the one
4424 spot where it was invoked.
4425 (b4_declare_parser_state_variables): New macro containing the parser
4426 state variables required by push mode.
4427 (struct yypstate): Replace all fields but yynew with
4428 b4_declare_parser_state_variables.
4429 (yystate, yyn, yyresult, yyerrstatus, yytoken, yyss, yyssp, yyvs,
4430 yyvsp, yyls, yylsp, yystacksize, yyval, yyloc): For push mode, #define
4431 each NAME in this list to yyps->NAME so it can be used in yypush_parse.
4432 (yyparse or yypush_parse): For yyparse in pull mode, replace local
4433 parser state variable declarations with
4434 b4_declare_parser_state_variables.
4435 Don't initialize parser state variables when calling yypush_parse since
4436 yypstate_new already does that.
4437 Invoke the user's initial action only upon the first yypush_parse
4438 invocation.
4439 Remove all code that copies between the local parser state variables
4440 and the yypstate.
4441
4442 2006-12-19 Joel E. Denny <jdenny@ces.clemson.edu>
4443
4444 * data/push.c (union yyalloc): Rename yyss, yyvs, and yyls fields to
4445 prevent a name collision in a future patch where these names will
4446 sometimes be #define'd.
4447 (YYSTACK_RELOCATE): Add an argument to select a union yyalloc field
4448 since it no longer has the same name as the existing argument.
4449 (yyparse or yypush_parse): Update all uses of YYSTACK_RELOCATE.
4450
4451 2006-12-19 Paolo Bonzini <bonzini@gnu.org>
4452 and Joel E. Denny <jdenny@ces.clemson.edu>
4453
4454 * doc/bison.texinfo (Decl Summary): In the %language entry, mention
4455 that the argument is case-insensitive, and there's no `=' here.
4456 For the %skeleton entry, mention that %language is better.
4457 (Bison Options): Likewise for --language and --skeleton. Move the
4458 --skeleton entry so that the `Tuning the parser' section is sorted
4459 alphabetically on long options.
4460 (C++ Bison Interface): Don't use the word skeleton. Don't explain the
4461 %language directive in detail here; cross-reference the %language
4462 documentation instead.
4463 (Calc++ Parser): Use `%require "@value{VERSION}"' rather than
4464 `%require "2.3b"' so that the example is always up-to-date.
4465 (Table of Symbols): Add entries for %language and %skeleton.
4466 * examples/extexi (normalize): Instead of replacing every %require
4467 argument with the current Bison version, just substitute for
4468 `@value{VERSION}'. This guarantees that we're testing what actually
4469 appears in the documentation.
4470 * examples/calc++/Makefile.am ($(calc_extracted)): Use `$(VERSION)'
4471 rather than `@VERSION@'.
4472
4473 2006-12-18 Paul Eggert <eggert@cs.ucla.edu>
4474
4475 * NEWS: Reword the %language news a bit, and put it earlier.
4476
4477 * src/getargs.c (skeleton_arg): Last arg is now location const *.
4478 Rewrite to simplify the logic.
4479 (language_argmatch): Likewise.
4480 (program_name): We now own this var.
4481 * src/getargs.h (struct bison_language): Use char[] rather than
4482 const char *.
4483
4484 * doc/bison.texinfo (Decl Summary, Bison Options): Don't claim
4485 Java is supported.
4486 * src/complain.c (program_name): Remove decl; no longer needed.
4487 * src/main.c (program_name): Remove; now belongs to getargs.
4488
4489 2006-12-18 Paolo Bonzini <bonzini@gnu.org>
4490
4491 * NEWS: Document %language.
4492
4493 * data/Makefile.am (dist_pkgdata_DATA): Add c-skel.m4, c++-skel.m4.
4494
4495 * data/c-skel.m4, data/c++-skel.m4: New files.
4496 * data/glr.c: Complain on push parsers.
4497
4498 * doc/bison.texinfo (C++ Parser Interface): Prefer %language
4499 over %skeleton.
4500 (Decl Summary): Document %language and %skeleton.
4501 (Command line): Document -L.
4502
4503 * examples/extexi: Rewrite %require directive.
4504 * examples/calc++/Makefile.am: Pass VERSION to extexi.
4505
4506 * src/files.c (compute_exts_from_gc): Look in language structure
4507 for .y extension.
4508 (compute_file_name_parts): Check whether .tab should be added.
4509 * src/getargs.c (valid_languages, skeleton_prio, language_prio):
4510 (language, skeleton_arg, language_argmatch): New.
4511 (long_options): Add --language.
4512 (getargs): Use skeleton_arg, add -L/--language.
4513 * src/getargs.h: Include location.h.
4514 (struct bison_language, language, skeleton_arg, language_argmatch): New.
4515 * src/output.c (prepare): Pick default skeleton from struct language.
4516 Don't dispatch C skeletons here.
4517 * src/parse-gram.y (PERCENT_LANGUAGE): New.
4518 (prologue_declaration): Add "%language" rule, use skeleton_arg.
4519 * src/scan-gram.l ("%language"): New rule.
4520
4521 * tests/calc.at: Test %skeleton and %language.
4522 * tests/local.at (AT_SKEL_CC_IF): Look for %language.
4523 (AT_GLR_IF): Look for %skeleton "glr.cc".
4524 (AT_LALR1_CC_IF, AT_GLR_CC_IF): Rewrite.
4525 (AT_YACC_IF): Reject %language.
4526
4527 2006-12-18 Paul Eggert <eggert@cs.ucla.edu>
4528
4529 * src/symtab.h (struct semantic_type): Remove the tag 'semantic_type',
4530 since it wasn't used; only the typedef name 'semantic_type' is needed.
4531 Also, omit trailing white space.
4532
4533 * bootstrap: Sync from coreutils.
4534 (gnulib_extra_files): Add build-aux/announce.gen.
4535 (slurp): Adjust .gitignore files like .cvsignore files.
4536 * build-aux/announce-gen: Remove from CVS, since bootstrap
4537 now creates this.
4538
4539 2006-12-16 Joel E. Denny <jdenny@ces.clemson.edu>
4540
4541 Make %push-parser imply %pure-parser. This fixes several bugs; see
4542 <http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00148.html>.
4543 * src/parse-gram.y (prologue_declaration): For %push-parser, also set
4544 pure_parser = true.
4545 * data/push.c: Don't bother testing b4_push_if when deciding whether
4546 to expand b4_declare_parser_variables globally.
4547 (yypush_parse): Likewise in here.
4548
4549 * data/push.c (yypush_parse): Add b4_parse_param to arguments.
4550 (yy_reduce_print): Reformat M4 for readability.
4551
4552 2006-12-15 Bob Rossi <bob@brasko.net>
4553 and Joel Denny <jdenny@ces.clemson.edu>
4554
4555 * data/push.c (yypstate): Add typedef, and update all uses of
4556 struct yypstate to just yypstate.
4557 * tests/calc.at (_AT_DATA_CALC_Y): Update here as well.
4558
4559 2006-12-14 Bob Rossi <bob@brasko.net>
4560
4561 * data/push.c (yypush_parse): Declare prototype regardless of
4562 %locations option.
4563
4564 2006-12-14 Bob Rossi <bob@brasko.net>
4565
4566 * data/push.c (yyparse): Remove the prototype and the #define when in
4567 push-parser mode.
4568
4569 2006-12-13 Bob Rossi <bob@brasko.net>
4570
4571 * data/push.c (yypstate_init): Rename to...
4572 (yypstate_new): ... this and use b4_c_function_def.
4573 (yypstate_delete): New.
4574 (yypush_parse): Change parameters yynval and yynlloc to be const.
4575 * tests/calc.at (_AT_DATA_CALC_Y): Use new yypstate_new and
4576 yypstate_delete functions.
4577
4578 2006-12-13 Joel E. Denny <jdenny@ces.clemson.edu>
4579
4580 * configure.ac (AC_PREREQ): Require Autoconf 2.61 because of our
4581 strange test case titles. Reported by Bob Rossi.
4582
4583 2006-12-13 Paul Eggert <eggert@cs.ucla.edu>
4584
4585 * TODO: Add pointer to Sylvain Schmitz's work on static detection
4586 of potential ambiguities in GLR grammers.
4587
4588 2006-12-12 Joel E. Denny <jdenny@ces.clemson.edu>
4589
4590 * tests/testsuite.at (AT_CHECK): When checking if $1 starts with
4591 `bison ', use m4_index instead of m4_substr since chopping up a string
4592 containing M4-special characters causes problems here.
4593
4594 Fix a couple of bugs related to special characters in user-specified
4595 file names, and make it easier for skeletons to compute output file
4596 names with the same file name prefix as Bison-computed output file
4597 names.
4598 * data/glr.cc, data/push.c, data/yacc.c: In @output, use
4599 b4_parser_file_name and b4_spec_defines_file instead of
4600 @output_parser_name@ and @output_header_name@, which are now redundant.
4601 * data/glr.c, data/lalr1.cc: Likewise. Also, in header #include's, use
4602 b4_parser_file_name, b4_spec_defines_file, and the new
4603 @basename(FILENAME@) instead of @output_parser_name@ and
4604 @output_header_name@, which inappropriately escaped the file names as
4605 C string literals.
4606 * src/files.c (all_but_ext): Remove static qualifier.
4607 (compute_output_file_names): Move `free (all_but_ext)' to...
4608 (output_file_names_free): ... here since all_but_ext is needed later.
4609 * src/files.h (all_but_ext): Extern.
4610 * src/muscle_tab.h (MUSCLE_INSERT_STRING_RAW): New macro that does
4611 exactly what MUSCLE_INSERT_STRING used to do.
4612 (MUSCLE_INSERT_STRING): Use MUSCLE_OBSTACK_SGROW so that M4-special
4613 characters are escaped properly.
4614 * src/output.c (prepare): Define muscle file_name_all_but_ext as
4615 all_but_ext.
4616 For pkgdatadir muscle, maintain previous functionality by using
4617 MUSCLE_INSERT_STRING_RAW instead of MUSCLE_INSERT_STRING. The problem
4618 is that b4_pkgdatadir is used inside m4_include in the skeletons, so
4619 digraphs would never be expanded. Hopefully no one has M4-special
4620 characters in his Bison installation path.
4621 * src/scan-skel.l: Don't parse @output_header_name@ and
4622 @output_parser_name@ anymore since they're now redundant.
4623 In @output, use decode_at_digraphs.
4624 Parse a new @basename command that invokes last_component.
4625 (decode_at_digraphs): New.
4626 (BASE_QPUTS): Remove unused.
4627 * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): New macro.
4628 (Output file name): New tests.
4629
4630 2006-12-09 Joel E. Denny <jdenny@ces.clemson.edu>
4631
4632 Warn about output files that are generated by the skeletons and that
4633 conflict with other output files.
4634 * data/glr.c: Don't generate the header file here when glr.cc does.
4635 * src/files.c (file_names, file_names_count): New static globals.
4636 (compute_output_file_names): Invoke output_file_name_check for files
4637 not generated by the skeletons and remove existing checks.
4638 (output_file_name_check): New function that warns about conflicting
4639 output file names.
4640 (output_file_names_free): Free file_names.
4641 * src/files.h (output_file_name_check): Declare.
4642 * src/scan-skel.l: Invoke output_file_name_check for files generated by
4643 the skeletons.
4644 * tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): New.
4645 (Conflicting output files): New tests.
4646
4647 2006-12-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4648
4649 * doc/bison.texinfo: Fix a couple of typos.
4650
4651 2006-12-08 Bob Rossi <bob@brasko.net>
4652
4653 * data/push.c: (yypvarsinit, yypvars, struct yypvars, yypushparse):
4654 Rename to...
4655 (yypstate_init, yypstate, struct yypstate, yypush_parse): ... these and
4656 update all uses.
4657 (b4_yyssa, b4_yyerror_range, yypstate_init): Rename pv to yyps.
4658 (yypush_parse): Rename yypvars argument to yyps and remove redundant
4659 local pv.
4660 (yypstate_init, yypush_parse): Declare in Bison-generated header file.
4661 * tests/calc.at (_AT_DATA_CALC_Y): Use newly named functions.
4662
4663 2006-12-07 Bob Rossi <bob@brasko.net>
4664 and Joel Denny <jdenny@ces.clemson.edu>
4665
4666 * data/push.c (yypvarsinit): Change return type from void* to struct
4667 yypvars*. No longer cast to void* on return.
4668 (struct yypvars): Remove yylen since it need not be remembered between
4669 yypushparse invocations.
4670 (yypushparse): Don't copy between yylen and pv->yylen.
4671
4672 2006-12-05 Bob Rossi <bob@brasko.net>
4673
4674 * data/push.c (yychar_set, yylval_set, yylloc_set): Delete.
4675 (yypushparse): Add yynchar, yynlval, yynlloc parameters.
4676 (b4_declare_parser_variables): Do not declare yynerrs for push mode.
4677 (struct yypvars): Remove b4_declare_parser_variables.
4678 (yypvarsinit): Remove init code for removed variables.
4679 (global scope): Do not declare b4_declare_parser_variables if
4680 push or pure mode.
4681 (yypushparse): Add b4_declare_parser_variables.
4682 Init new local variables, and remove init code for removed
4683 yypvars variables.
4684 (yyparse): Delete.
4685 * tests/calc.at (_AT_DATA_CALC_Y): Call yypushparse for push mode
4686 and yyparse for other modes.
4687 (AT_CHECK_CALC_LALR): Added '%skeleton "push.c"' for push tests.
4688 * tests/local.at (AT_PUSH_IF, AT_PURE_OR_PUSH_IF): Added.
4689 (AT_YYERROR_SEES_LOC_IF): push-parser makes this false.
4690 (AT_PURE_LEX_IF): True if pure or push parser.
4691
4692 2006-12-05 Joel E. Denny <jdenny@ces.clemson.edu>
4693
4694 Document Yacc prologue alternatives and default %destructor's and
4695 %printer's as experimental. Don't mention Java yet. Discussed at
4696 <http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00002.html>.
4697 * NEWS (2.3a+): Say they're experimental. Remove any mention of Java.
4698 (2.3a): Annotate this entry to say the old forms of these features were
4699 also experimental.
4700 * doc/bison.texinfo (Prologue Alternatives, Freeing Discarded Symbols,
4701 Table of Symbols): Say they're experimental. Comment out any mention
4702 of Java (we'll want this back eventually).
4703
4704 2006-12-01 Joel E. Denny <jdenny@ces.clemson.edu>
4705
4706 Support a file name argument to %defines. Deprecate `=' in
4707 %file-prefix, %name-prefix, and %output. Discussed at
4708 <http://lists.gnu.org/archive/html/help-bison/2006-09/msg00001.html>.
4709 * NEWS (2.3a+): Mention.
4710 * doc/bison.texinfo (Decl Summary, Table of Symbols): Add entry for new
4711 form of %defines, and remove `=' from entries for %file-prefix,
4712 %name-prefix, and %output.
4713 * src/parse-gram.y (prologue_declaration): Implement.
4714 * tests/calc.at (Simple LALR Calculator, Simple GLR Calculator, Simple
4715 LALR1 C++ Calculator, Simple GLR C++ Calculator): Remove the `=' from
4716 all but one occurrence of %name-prefix.
4717 * tests/headers.at (export YYLTYPE): Remove the `=' from %name-prefix.
4718 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Likewise.
4719 * tests/output.at (AT_CHECK_OUTPUT): Remove the `=' from all but one
4720 occurrence of each of %file-prefix and %output. Add check for %defines
4721 with argument.
4722 * tests/reduce.at (Useless Terminals, Useless Nonterminals,
4723 Useless Rules, Reduced Automaton, Underivable Rules, Empty Language):
4724 Remove the `=' from %output.
4725
4726 2006-11-21 Joel E. Denny <jdenny@ces.clemson.edu>
4727
4728 Don't escape $ in test case titles since Autoconf 2.61 now does that
4729 correctly.
4730 * tests/actions.at (Default %printer and %destructor are not for error
4731 or $undefined): Here.
4732 (Default %printer and %destructor are not for $accept): Here.
4733 * tests/input.at (Invalid $n and @n): Here.
4734
4735 2006-11-20 Joel E. Denny <jdenny@ces.clemson.edu>
4736
4737 Rename <!> to <>. Discussed starting at
4738 <http://lists.gnu.org/archive/html/bison-patches/2006-11/msg00039.html>.
4739 * NEWS (2.3a+): Update.
4740 * doc/bison.texinfo (Freeing Discarded Symbols, Table of Symbols):
4741 Update.
4742 * src/parse-gram.y (TYPE_TAG_NONE, generic_symlist_item): Implement.
4743 * src/scan-gram.l (INITIAL): Implement.
4744 * src/symlist.c (symbol_list_default_tagless_new): Update comment.
4745 * src/symlist.h (symbol_list, symbol_list_default_tagless_new): Update
4746 comment.
4747 * tests/actions.at (Default tagless %printer and %destructor,
4748 Default tagged and per-type %printer and %destructor,
4749 Default %printer and %destructor are not for error or $undefined,
4750 Default %printer and %destructor are not for $accept,
4751 Default %printer and %destructor for mid-rule values): Update.
4752 * tests/input.at (Default %printer and %destructor redeclared,
4753 Unused values with default %destructor): Update.
4754
4755 2006-11-17 Joel E. Denny <jdenny@ces.clemson.edu>
4756
4757 Don't let %prec take a nonterminal.
4758 * src/reader.c (grammar_current_rule_prec_set): Make the %prec symbol a
4759 token.
4760 * tests/input.at (%prec takes a token): New test checking that %prec
4761 won't take a nonterminal.
4762
4763 2006-11-10 Joel E. Denny <jdenny@ces.clemson.edu>
4764
4765 * tests/testsuite.at (AT_CHECK): Don't miss an exit value of 0 because
4766 it was double-quoted.
4767 * src/Makefile.am (YACC): Use --warnings=all,error so that Bison's own
4768 grammar is maintained with Bison's highest standards.
4769 * src/getargs.c: Fix some typos in Doxygen comments.
4770
4771 2006-11-10 Joel E. Denny <jdenny@ces.clemson.edu>
4772
4773 Fix memory leaks in scanners generated by at least Flex 2.5.9 and
4774 later. Reported by Paul Eggert in
4775 <http://lists.gnu.org/archive/html/bison-patches/2006-11/msg00014.html>.
4776 * src/flex-scanner.h (yylex_destroy): Define for Flex before 2.5.9.
4777 * src/scan-code.l (translate_action): Don't bother invoking
4778 yy_delete_buffer (YY_CURRENT_BUFFER) before creating the first buffer.
4779 (code_scanner_free): Instead of invoking
4780 yy_delete_buffer (YY_CURRENT_BUFFER) directly, invoke yylex_destroy,
4781 which frees more.
4782 * src/scan-gram.l (gram_scanner_free): Likewise.
4783 * src/scan-skel.l (scan_skel): Likewise.
4784
4785 2006-11-09 Joel E. Denny <jdenny@ces.clemson.edu>
4786
4787 * src/files.c (tr): Change return type to void.
4788 * src/muscle_tab.c (muscle_insert): Free storage in case muscle_grow
4789 has been called previously for the same key.
4790 (muscle_find): Return storage instead of value so that
4791 --enable-gcc-warnings doesn't produce warnings that the return discards
4792 const. aver that the value and storage are the same since storage
4793 could potentially be NULL when value is not.
4794 * tests/testsuite.at (AT_CHECK): Treat an unspecified exit value the
4795 same as 0.
4796
4797 2006-11-08 Paul Eggert <eggert@cs.ucla.edu>
4798
4799 * bootstrap.conf (excluded_files): Exclude m4/codeset.m4 (undoing
4800 the earlier change today), m4/intl.m4, m4/intldir.m4. This gives
4801 us a slightly cleaner distribution, and also works.
4802 * m4/.cvsignore: Add inline.m4, wint_t.m4 to accommodate recent
4803 gnulib changes.
4804
4805 2006-11-08 Joel E. Denny <jdenny@ces.clemson.edu>
4806 and Paul Eggert <eggert@cs.ucla.edu>
4807
4808 Don't let Bison leak memory except when it complains.
4809 * src/files.h (parser_file_name, spec_verbose_file, spec_graph_file):
4810 (spec_defines_file, dir_prefix): Now char *, not const char *,
4811 since they are freed.
4812 * src/files.c: Likewise.
4813 (all_but_ext, all_but_tab_ext, src_extension, header_extension):
4814 Likewise.
4815 (tr): Now operates in-place. All uses changed.
4816 (compute_exts_from_gf, compute_exts_from_src): Don't leak temporary
4817 values.
4818 (compute_file_name_parts, compute_output_file_names): Don't store
4819 read-only data in variables that will be freed.
4820 (compute_output_file_names): Free all_but_ext, all_but_tab_ext,
4821 src_extension, and header_extension.
4822 (output_file_names_free): New public function to free
4823 spec_verbose_file, spec_graph_file, spec_defines_file,
4824 parser_file_name, and dir_prefix.
4825 * src/getargs.c (getargs): Don't store read-only data in variables that
4826 will be freed.
4827 * src/main.c (main): Invoke output_file_names_free, code_scanner_free
4828 (which previously existed but was unused), and quotearg_free.
4829 * src/muscle_tab.h (muscle_insert): value arg is now a `char const *'.
4830 * src/muscle_tab.c: Likewise.
4831 (muscle_entry): Make the value char const *,
4832 and add a new storage member that is char * and can be freed.
4833 (muscle_entry_free): New private function.
4834 (muscle_init): Use it instead of free.
4835 (muscle_insert, muscle_grow): Update and use new storage member.
4836 (muscle_code_grow): Free the string passed to muscle_grow
4837 since it's not needed anymore.
4838 * src/parse-gram.y (%union): Make `chars' member a `char const *', and
4839 add a new `char *code' member.
4840 ("{...}"): Declare semantic type as code.
4841 * src/scan-code.h (translate_rule_action):
4842 (translate_symbol_action, translate_code, translate_action): Return
4843 `char const *' rather than `char *' since external code should not free
4844 these strings.
4845 * src/scan-code.l: Likewise.
4846 * src/scan-gram.l (<SC_BRACED_CODE>): Use val->code for BRACED_CODE,
4847 which is "{...}" in the parser.
4848 * tests/Makefile.am (maintainer-check-valgrind): Set
4849 VALGRIND_OPTS='--leak-check=full --show-reacheable=yes' before invoking
4850 Valgrind.
4851 * tests/calc.at (_AT_DATA_CALC_Y): fclose the FILE* so Valgrind doesn't
4852 complain.
4853 * tests/testsuite.at (AT_CHECK): Redefine so that running Bison and
4854 expecting a non-zero exit status sets --leak-check=summary and
4855 --show-reachable=no for Valgrind. Bison unabashedly leaks memory in
4856 this case, and we don't want to hear about it.
4857
4858 2006-11-08 Paul Eggert <eggert@cs.ucla.edu>
4859
4860 * bootstrap (runtime-po/Makevars): Derive from po/Makevars
4861 instead of from the template, to simplify configuration a bit.
4862 * bootstrap.conf (excluded_files): Don't exclude m4/codeset.m4
4863 and m4/wint_t.m4, as they are needed with the latest gnulib.
4864
4865 2006-10-31 Joel E. Denny <jdenny@ces.clemson.edu>
4866
4867 Disable unset/unused mid-rule value warnings by default, and recognize
4868 --warnings=midrule-values to enable them. Discussed starting at
4869 <http://lists.gnu.org/archive/html/help-bison/2006-10/msg00030.html>.
4870 * NEWS (2.3a+): Mention.
4871 * src/getargs.c, src/getargs.h (warnings_args, warnings_types, enum
4872 warnings): Add entry for midrule-values subargument.
4873 * src/reader.c (symbol_should_be_used): Don't return true just because
4874 the value is a set/used mid-rule value unless
4875 --warnings=midrule-values was specified.
4876 * tests/input.at (Unused values, Unused values before symbol
4877 declarations): Run tests with and without --warnings=midrule-values.
4878
4879 * src/reader.c (check_and_convert_grammar): Use symbol_list_free rather
4880 than LIST_FREE directly.
4881
4882 2006-10-31 Joel E. Denny <jdenny@ces.clemson.edu>
4883
4884 Finish implementing --warnings=error, which should not be implied by
4885 --warnings=all (or by its synonyms -W and --warnings without
4886 subarguments).
4887 * src/complain.c (set_warning_issued): New function to report that
4888 warnings are being treated as errors and to record an error if so.
4889 Invoke...
4890 (warn_at, warn): ... here.
4891 * src/getargs.c (warnings_args, warnings_types): Reorder so that
4892 "error - warnings are errors" does not appear above "all - all of the
4893 above".
4894 (getargs): For -W and --warnings without subarguments, don't let
4895 FLAGS_ARGMATCH set warnings_error in warnings_flag.
4896 * src/getargs.h (enum warnings): Unset warnings_error in warnings_all.
4897
4898 2006-10-31 Joel E. Denny <jdenny@ces.clemson.edu>
4899
4900 * src/getargs.c (flags_argmatch): Don't cause segmentation fault for
4901 empty subargument list. For example: `bison --warnings= parser.y'.
4902
4903 2006-10-21 Joel E. Denny <jdenny@ces.clemson.edu>
4904
4905 * data/push.c, data/yacc.c: Make sure there's a newline at the end of
4906 the parser header file so that gcc doesn't warn.
4907
4908 2006-10-21 Joel E. Denny <jdenny@ces.clemson.edu>
4909
4910 Split the default %destructor/%printer into two kinds: <*> and <!>.
4911 Discussed starting at
4912 <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00060.html>.
4913 * NEWS (2.3a+): Mention.
4914 * doc/bison.texinfo (Freeing Discarded Symbols): Document this and the
4915 previous change today related to mid-rules.
4916 (Table of Symbols): Remove %symbol-default and add <*> and <!>.
4917 * src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): Remove.
4918 (TYPE_TAG_ANY): Add as <*>.
4919 (TYPE_TAG_NONE): Add as <!>.
4920 (generic_symlist_item): Remove RHS for %symbol-default and add RHS's
4921 for <*> and <!>.
4922 * src/scan-gram.l (PERCENT_SYMBOL_DEFAULT): Remove.
4923 (TYPE_TAG_ANY, TYPE_TAG_NONE): Add.
4924 * src/symlist.c (symbol_list_default_new): Split into tagged and
4925 tagless versions.
4926 (symbol_list_destructor_set, symbol_list_printer_set): Split
4927 SYMLIST_DEFAULT case into SYMLIST_DEFAULT_TAGGED and
4928 SYMLIST_DEFAULT_TAGLESS.
4929 * src/symlist.h: Update symbol_list_default*_new prototypes.
4930 (symbol_list.content_type): Split enum value SYMLIST_DEFAULT into
4931 SYMLIST_DEFAULT_TAGGED and SYMLIST_DEFAULT_TAGLESS.
4932 * src/symtab.c (default_destructor, default_destructor_location,
4933 default_printer, default_printer_location): Split each into tagged and
4934 tagless versions.
4935 (symbol_destructor_get, symbol_destructor_location_get,
4936 symbol_printer_get, symbol_printer_location_get): Implement tagged
4937 default and tagless default cases.
4938 (default_destructor_set, default_printer_set): Split each into tagged
4939 and tagless versions.
4940 * src/symtab.h: Update prototypes.
4941 * tests/actions.at (Default %printer and %destructor): Rename to...
4942 (Default tagless %printer and %destructor): ... this, and extend.
4943 (Per-type %printer and %destructor): Rename to...
4944 (Default tagged and per-type %printer and %destructor): ... this, and
4945 extend.
4946 (Default %printer and %destructor for user-defined end token): Extend.
4947 (Default %printer and %destructor are not for error or $undefined):
4948 Update.
4949 (Default %printer and %destructor are not for $accept): Update.
4950 (Default %printer and %destructor for mid-rule values): Extend.
4951 * tests/input.at (Default %printer and %destructor redeclared): Extend.
4952 (Unused values with default %destructor): Extend.
4953
4954 2006-10-21 Joel E. Denny <jdenny@ces.clemson.edu>
4955
4956 Don't apply the default %destructor/%printer to an unreferenced midrule
4957 value. Mentioned at
4958 <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00104.html>.
4959 * src/symtab.c (dummy_symbol_get): Name all dummy symbols initially
4960 like $@n instead of just @n so that the default %destructor/%printer
4961 logic doesn't see them as user-defined symbols.
4962 (symbol_is_dummy): Check for both forms of the name.
4963 * src/reader.c (packgram): Remove the `$' from each midrule symbol
4964 name for which the midrule value is referenced in any action.
4965 * tests/actions.at (Default %printer and %destructor for mid-rule
4966 values): New test.
4967 * tests/regression.at (Rule Line Numbers, Web2c Report): Update output
4968 for change to dummy symbol names.
4969
4970 2006-10-20 Joel E. Denny <jdenny@ces.clemson.edu>
4971
4972 Warn about unset midrule $$ if the corresponding $n is used.
4973 * src/reader.c (symbol_should_be_used): Check midrule parent rule for
4974 $n usage.
4975 (packgram): Before invoking grammar_rule_check on any rule, make sure
4976 all actions have already been scanned in order to set `used' flags.
4977 Otherwise, checking that a midrule's $$ is set will not always work
4978 properly because the midrule check must forward-reference the midrule's
4979 parent rule.
4980 * tests/input.at (AT_CHECK_UNUSED_VALUES): Extend to check the new
4981 warning.
4982
4983 2006-10-20 Joel E. Denny <jdenny@ces.clemson.edu>
4984
4985 More improvements to the documentation of the prologue alternatives:
4986 * NEWS (2.3a+): Mention the new `Prologue Alternatives' section in the
4987 Bison manual.
4988 * doc/bison.texinfo (Prologue Alternatives): Correct some errors. Add
4989 some text to clarify the relative importance of the new directives and
4990 to show how these directives may be viewed as code labels.
4991
4992 2006-10-16 Joel E. Denny <jdenny@ces.clemson.edu>
4993
4994 Similar to the recently removed %before-header, add %code-top as the
4995 alternative to the pre-prologue. Mentioned at
4996 <http://lists.gnu.org/archive/html/bison-patches/2006-10/msg00063.html>.
4997 Also, let the prologue alternatives appear in the grammar section.
4998 * src/parse-gram.y (PERCENT_CODE_TOP): New token.
4999 (prologue_declaration): Move the existing prologue alternatives to...
5000 (grammar_declaration): ... here and add %code-top.
5001 * src/scan-gram.l (PERCENT_CODE_TOP): New token.
5002
5003 Clean up and extend documentation for the prologue alternatives.
5004 * NEWS (2.3a+): Describe prologue alternatives.
5005 * doc/bison.texinfo (Prologue): Move discussion of prologue
5006 alternatives to...
5007 (Prologue Alternatives): ... this new section, and extend it to discuss
5008 all 4 directives in detail.
5009 (Table of Symbols): Clean up discussion of prologue alternatives and
5010 add %code-top.
5011
5012 2006-10-16 Juan Manuel Guerrero <juan.guerrero@gmx.de>
5013
5014 DJGPP specific issues.
5015
5016 * djgpp/config.bat: config.hin has been moved to lib. Adjust
5017 config.bat accordingly.
5018 * djgpp/config.sed: Adjust config.sed for the use of autoconf 2.60.
5019 * djgpp/config.site: Likewise.
5020
5021 2006-10-16 Paolo Bonzini <bonzini@gnu.org>
5022
5023 Replace %*-header with %provides, %requires, %code. See discussion at
5024 http://lists.gnu.org/archive/html/bison-patches/2006-10/msg00002.html
5025
5026 * data/bison.m4 (b4_user_requires, b4_user_provides): New.
5027 (b4_user_start_header): Remove.
5028 * data/glr.c: Use new macros instead of b4_*start_header
5029 and b4_*end_header.
5030 * data/glr.cc: Likewise.
5031 * data/lalr1.cc: Likewise.
5032 * data/push.c: Likewise.
5033 * data/yacc.c: Likewise.
5034
5035 * doc/bison.texinfo: Remove %before-header, rename
5036 %{start,end,after}-header to %requires, %provides, %code.
5037
5038 * src/parse-gram.y: Likewise (also rename token names accordingly).
5039 * src/scan-gram.l: Likewise.
5040 * tests/actions.at: Likewise.
5041
5042 2006-10-14 Paul Eggert <eggert@cs.ucla.edu>
5043
5044 * lib/Makefile.am (AM_CFLAGS): Remove $(WERROR_CFLAGS).
5045 Problem reported by Joel E. Denny.
5046
5047 2006-10-14 Jim Meyering <jim@meyering.net>
5048
5049 (Sync from coreutils.)
5050 Work also when the working directory (with e.g. coreutils sources)
5051 is version controlled with git, rather than CVS.
5052 * bootstrap (CVS_only_file): Test for the existence of README-cvs,
5053 rather than CVS.
5054 In messages and comments, say e.g., "checked-out sources",
5055 rather than "CVS sources".
5056 (version_controlled_file): New function. Work for git as well as
5057 for CVS. Don't use grep's -q option.
5058 (slurp): Call it here, in place of CVS-specific code.
5059
5060 2006-10-14 Joel E. Denny <jdenny@ces.clemson.edu>
5061
5062 Fix testsuite for ./configure --enable-gcc-warnings:
5063 * configure.ac (gcc-warnings): Move -Wall before -Wno-sign-compare.
5064 Otherwise, gcc 4.1.0 (at least) warns about sign comparisons in
5065 __AT_CHECK_PRINTER_AND_DESTRUCTOR in tests/actions.at.
5066 * test/input.at (Torturing the Scanner): #include <stdlib.h> for abort.
5067 * test/regression.at (Diagnostic that expects two alternatives):
5068 Likewise.
5069
5070 2006-10-12 Paul Eggert <eggert@cs.ucla.edu>
5071
5072 * bootstrap.conf (gnulib_modules): Add config-h.
5073 * djgpp/subpipe.c: Include <config.h> unconditionally; don't
5074 worry about HAVE_CONFIG_H.
5075 * lib/abitset.c: Likewise.
5076 * lib/bitset.c: Likewise.
5077 * lib/bitset_stats.c: Likewise.
5078 * lib/bitsetv-print.c: Likewise.
5079 * lib/bitsetv.c: Likewise.
5080 * lib/ebitset.c: Likewise.
5081 * lib/get-errno.c: Likewise.
5082 * lib/lbitset.c: Likewise.
5083 * lib/subpipe.c: Likewise.
5084 * lib/timevar.c: Likewise.
5085 * lib/vbitset.c: Likewise.
5086 * lib/bitset.c: Include "bitset.h" first, to test interface.
5087 * lib/bitset_stats.c: Include "bitset_stats.h" first.
5088 * lib/bitsetv-print.c: Include "bitsetv-print.h" first.
5089 * lib/bitsetv.c: Include "bitsetv.h" first.
5090 * lib/get-errno.c: Include "get-errno.h" first.
5091 * m4/.cvsignore: Add config-h.m4.
5092 * tests/actions.at (Default %printer and %destructor for ...):
5093 Adjust expected line numbers in output to reflect removal of #if
5094 HAVE_CONFIG_H lines.
5095 * tests/glr-regression.at (Missed %merge type warnings when ...):
5096 Likewise.
5097 * tests/regression.at (Braced code in declaration in rules section):
5098 Likewise.
5099 * tests/atlocal.in (CPPFLAGS): Don't define HAVE_CONFIG_H.
5100 * tests/local.at (AT_DATA_GRAMMAR_PROLOGUE):
5101 Include <config.h> unconditionally.
5102
5103 * bootstrap: Sync from coreutils, as follows:
5104
5105 2006-10-11 Paul Eggert <eggert@cs.ucla.edu>
5106
5107 * bootstrap (symlink_to_gnulib): Fix bug: the dot_dots shell
5108 variable was sometimes used without being initialized. This
5109 messed up the installation of the INSTALL file in some cases.
5110
5111 2006-10-09 Paul Eggert <eggert@cs.ucla.edu>
5112
5113 * bootstrap (usage, main program, symlink_to_gnulib): Add option
5114 --copy. Inspired by a suggestion from Bruno Haible.
5115
5116 2006-10-03 Jim Meyering <jim@meyering.net>
5117
5118 * bootstrap: Undo last change to this file, since now gnulib-tool
5119 sticks with the automake default in generating dependencies.
5120
5121 2006-10-12 Paul Eggert <eggert@cs.ucla.edu>
5122
5123 * configure.ac: Use AC_PROG_CC_STDC; this is more modern than
5124 the old AC_PROG_CC / AM_PROG_CC_STDC combination.
5125
5126 * doc/bison.1: Add copyright notice.
5127
5128 * data/glr.c: Don't include <stdarg.h>; not used.
5129
5130 * NEWS: The -g and --graph options now output graphs in Graphviz
5131 DOT format, not VCG format.
5132 * doc/bison.1: Likewise.
5133 * doc/bison.texinfo (Understanding, Bison Options): Likewise.
5134 * THANKS: Add Satya Kiran Popuri, who proposed the initial version
5135 of this change in
5136 <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00158.html>.
5137 * TODO: Remove Graphviz entry.
5138 * src/Makefile.am (bison_SOURCES): Add graphviz.c and graphviz.h;
5139 remove vcg.c, vcg.h, vcg_defaults.h.
5140 * src/vcg.c, src/vcg.h, src/vcg_defaults.h: Remove.
5141 * src/graphviz.c, src/graphviz.h: New files.
5142 * src/files.c (compute_output_file_names): Output .dot, not .vcg.
5143 * src/files.h: Make comment more generic.
5144 * src/main.c (main): Likewise.
5145 * src/print_graph.h: Likewise.
5146 * src/getargs.c (usage): Make usage description more generic.
5147 * src/print_graph.c: Include graphviz.h rather than vcg.h.
5148 (static_graph, fgraph): Remove. All uses changed to pass
5149 arguments instead of sharing a static var.
5150 (print_core, print_actions, print_state, print_graph):
5151 Output graphviz format rather than VCG format.
5152 * tests/.cvsignore: Remove *.vcg; add *.dot.
5153 * tests/output.at: Expect *.dot files, not *.vcg files.
5154
5155 * data/Makefile.am (dist_pkgdata_DATA): Add bison.m4; this
5156 accommodates the 2006-10-08 change.
5157
5158 2006-10-11 Bob Rossi <bob@brasko.net>
5159
5160 * data/push.c (yypushparse, yypvarsinit, yypvars): Wrap in b4_push_if.
5161 (b4_yyssa, b4_yyerror_range): New macros.
5162 (struct yypvars): Remove yyssa_ptr and yyerror_range_ptr fields.
5163 (yypvarsinit): Remove init of removed fields.
5164 (yypushparse): Remove use of removed fields; use new macros instead.
5165
5166 2006-10-11 Paul Eggert <eggert@cs.ucla.edu>
5167
5168 * data/push.c (yypushparse): Fix memory leak if yymsg is malloced
5169 in a push parser. Reindent slightly to match yacc.c better.
5170
5171 2006-10-11 Bob Rossi <bob@brasko.net>
5172
5173 * data/push.c (struct yypvars): Remove yymsgbuf, yymsgbuf_ptr, yymsg,
5174 yymsg_alloc fields.
5175 (yypvarsinit, yypushparse): Remove init of removed fields.
5176 (yypushparse): Use yymsgbuf instead of yymsgbuf_ptr.
5177
5178 2006-10-09 Paul Eggert <eggert@cs.ucla.edu>
5179
5180 * THANKS: Add Paolo Bonzini and Bob Rossi.
5181
5182 2006-10-08 Paolo Bonzini <bonzini@gnu.org>
5183
5184 * data/c.m4 (b4_copyright, b4_epilogue, b4_location_initial_column,
5185 b4_location_initial_line, p4_parse_param, b4_ints_in, b4_flag_if,
5186 b4_define_flag_if and uses, b4_basename, b4_syncline, b4_user_code,
5187 b4_define_user_cde and uses): Remove.
5188 (b4_comment, b4_prefix, b4_sync_start): New.
5189 * data/bison.m4: New file, with most of the content removed from c.m4.
5190 * src/muscle_tab.h: Use "do {...} while(0)" throughout.
5191 * src/output.c (output_skeleton): Pass bison.m4.
5192 (prepare): Pass glr_flag and nondeterministic_flag. Pass prefix
5193 only if specified.
5194
5195 2006-10-05 Paul Eggert <eggert@cs.ucla.edu>
5196
5197 Fix test failure reported by Tom Lane in
5198 <http://lists.gnu.org/archive/html/bug-bison/2006-10/msg00000.html>
5199 and try to make such failures easier to catch in the future.
5200 * data/glr.c (YYTRANSLATE): Don't check for nonpositive arg;
5201 that's now the caller's responsibility.
5202 (yyprocessOneStack, yyrecoverSyntaxError, yyparse):
5203 Set yychar = YYEOF if it's negative.
5204 * tests/actions.at (yylex): Abort if asked to read past EOF.
5205 * tests/conflicts.at (yylex): Likewise.
5206 * tests/cxx-type.at (yylex): Likewise.
5207 * tests/glr-regression.at (yylex): Likewise.
5208 * tests/input.at (yylex): Likewise.
5209 * tests/regression.at (yylex): Likewise.
5210 * tests/torture.at (yylex): Likewise.
5211
5212 2006-10-01 Paul Eggert <eggert@cs.ucla.edu>
5213
5214 Fix problems with translating English-language diagnostics.
5215 * bootstrap: Fix bug introduced in recent bootstrap changes, with
5216 respect to bison-runtime pot generation. The YY_ stuff
5217 wasn't being captured.
5218 * bootstrap.conf (XGETTEXT_OPTIONS_RUNTIME): New var.
5219 * po/POTFILES.in: Add src/location.c, src/scan-code.l.
5220 * runtime-po/POTFILES.in: Add data/push.c.
5221
5222 2006-09-29 Paul Eggert <eggert@cs.ucla.edu>
5223
5224 Merge bootstrap changes from coreutils.
5225
5226 2006-09-28 Jim Meyering <jim@meyering.net>
5227
5228 Automatically generated dependencies are important even
5229 when all of the sources in a directory come from gnulib.
5230 * bootstrap (gnulib_tool): Remove the "no-dependencies" automake
5231 option that gnulib-tool adds to what becomes our lib/gnulib.mk.
5232
5233 2006-09-23 Jim Meyering <jim@meyering.net>
5234
5235 * bootstrap (gnulib_tool_options): Add "--local-dir gl".
5236
5237 2006-09-20 Paul Eggert <eggert@cs.ucla.edu>
5238
5239 * bootstrap: Add support for --force.
5240 (usage): New function. Describe usage less tersely.
5241 (CVS_only_file): New var.
5242
5243 2006-09-21 Paul Eggert <eggert@cs.ucla.edu>
5244
5245 * data/push.c (YYPUSH_MORE): Make it an enum instead.
5246 (yypushparse): Use YYPUSH_MORE instead of the mystery constant.
5247 Adjust white space and comments to match GNU style better.
5248
5249 2006-09-20 Bob Rossi <bob@brasko.net>
5250
5251 * data/push.c (yyresult_get): Remove function.
5252 (YYPUSH_MORE): Add #define.
5253 (yypushparse): Modify return value.
5254
5255 2006-09-20 Paul Eggert <eggert@cs.ucla.edu>
5256
5257 * stamp-h.in: Remove; no longer needed.
5258 * .cvsignore: Replace autom4te.cache and config.cache with *.cache.
5259 Remove config.h, config.hin, intl (no longer created).
5260 * lib/.cvsignore: Add config.h, config.hin, configmake.h, inttypes.h,
5261 stamp-h1.
5262
5263 Sync bootstrap from coreutils, as follows:
5264
5265 2006-09-18 Paul Eggert <eggert@cs.ucla.edu>
5266
5267 * bootstrap (symlink_to_gnulib): New function.
5268 (cp_mark_as_generated): Use it, to prefer symlinks-to-gnulib
5269 to copies-of-gnulib.
5270 (cp_mark_as_generated, slurp, gnulib_files):
5271 Avoid making a copy if it's the same as the old version.
5272 (gnulib_files): Add support for this variable (used by Bison).
5273
5274 2006-09-20 Paul Eggert <eggert@cs.ucla.edu>
5275
5276 * src/getargs.c (usage): Rework to use conventions similar to
5277 coreutils, to make translation a bit easier and the code a bit
5278 smaller. Problem reported by Tim Van Holder.
5279
5280 2006-09-15 Paul Eggert <eggert@cs.ucla.edu>
5281
5282 Use some of gnulib's new modules, taken from coreutils.
5283
5284 * bootstrap: Sync from coreutils, except add support for gnulib_files.
5285 * bootstrap.conf: New file.
5286 (gnulib_modules): Add configmake, inttypes, unistd.
5287 (XGETTEXT_OPTIONS): Add complain, complain_at,
5288 fatal, fatal_at, warn, warn_at, unexpected_end.
5289 * configure.ac (AC_CONFIG_HEADERS): config.h is now in lib, not here.
5290 (gl_USE_SYSTEM_EXTENSIONS): Remove; gl_EARLY now does this.
5291 (gl_EARLY): Add.
5292 (AM_STDBOOL_H): Remove; gl_INIT now dows this.
5293 (gl_INIT): Add
5294 (GNULIB_AUTOCONF_SNIPPET): Remove.
5295 (AM_GNU_GETTEXT): Add; require formatstring macros since that's
5296 the pickiest.
5297 * lib/.cvsignore: Add inttypes_.h.
5298 * lib/Makefile.am: Include gnulib.mk first so we can append to it.
5299 (AM_CFLAGS): Add WERROR_CFLAGS, to be more like coreutils.
5300 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES): Remove
5301 no-longer-necessary initializations.
5302 (lib_SOURCES): Remove, replacing by libbison_a_SOURCES.
5303 * lib/subpipe.c: Include <unistd.h> unconditionally, now that we
5304 use the unistd module.
5305 * src/system.h: Likewise.
5306 * m4/.cvsignore: Remove *_gl.m4, gnulib.m4, inttypes_h.m4, uintmax_t.m4,
5307 ulonglong.m4. Add gettext.m4, gnulib-cache.m4, gnulib-comp.m4,
5308 gnulib-tool.m4, inttypes-h.m4, inttypes-pri.m4, inttypes.m4.
5309 * src/Makefile.am (DEFS): Remove, since configmake does this for us.
5310 (AM_CPPFLAGS): Remove -I../lib, since Automake does that for us.
5311 * src/system.h: Include inttypes.h unconditionally, now that we
5312 use the inttypes module. Don't bother to include stdint.h, since
5313 inttypes.h now does that for us.
5314 (LOCALEDIR): Remove, now that we use the configmake module.
5315 * src/getargs.c: Include configmake.h.
5316 * src/main.c: Likewise.
5317 * src/output.c: Likewise.
5318 * tests/atlocal.in (CPPFLAGS): Include from $abs_top_builddir/lib,
5319 not from $abs_top_builddir, since config.h moved.
5320
5321
5322 Port to GCC 2.95. First two problems reported by Michael Deutschmann in
5323 <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00018.html>.
5324
5325 * src/parse-gram.y (symbol_declaration): Don't put statements
5326 before declarations; it's not portable to C89.
5327 * src/scan-code.l (handle_action_at): Likewise.
5328
5329 * src/scan-code.l: Always initialize braces_level; the old code
5330 left it uninitialized and therefore had undefined behavior.
5331
5332 Don't attempt to redefine 'assert', since it runs afoul of
5333 systems where standard headers (mistakenly) include <assert.h>.
5334 Instead, define and use our own alternative, called 'aver'.
5335 * src/reader.c: Don't include assert.h, since we no longer
5336 use assert.
5337 * src/scan-code.l: Likewise.
5338 * src/system.h (assert): Remove, replacing with....
5339 (aver): New function, taking a bool arg. All uses changed.
5340 * src/tables.c (pack_vector): Ensure that aver arg is bool,
5341 not merely an integer.
5342
5343 2006-09-15 Bob Rossi <bob@brasko.net>
5344
5345 * data/Makefile.am (dist_pkgdata_DATA): Add push.c.
5346 * data/c.m4 (YYPUSH): New.
5347 (b4_push_if): New macro. Use it instead of #ifdef YYPUSH.
5348 * src/getargs.c (push_parser): New var.
5349 * src/getargs.h (push_parser): New declaration.
5350 * src/output.c (prepare): Add macro insertion of `push_flag'.
5351 * src/parse-gram.y (PERCENT_PUSH_PARSER): New token.
5352 (prologue_declaration): Parse %push-parser.
5353 * src/scan-gram.l: Scan new PERCENT_PUSH_PARSER token.
5354 * tests/calc.at (_AT_CHECK_CALC_ERROR): Add "Return" and "Now" to
5355 list of removed lines from the traces observed.
5356 (AT_CHECK_CALC_LALR): Added push parser tests.
5357
5358 2006-09-13 Paul Eggert <eggert@cs.ucla.edu>
5359
5360 * NEWS: Version 2.3a.
5361 * configure.ac (AC_INIT): Likewise.
5362
5363 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Remove
5364 "#define YYSTYPE int" that caused "make maintainer-check" to fail
5365 due to header ordering dependencies. I don't know why the #define
5366 was there.
5367
5368 Fix glr.cc and lalr1.cc's use of YYDEBUG so that there's zero
5369 runtime cost when YYDEBUG is not defined, and so that some tests
5370 that used to fail now work. Problem and initial suggestion by
5371 Paolo Bonzini.
5372 * data/c++.m4 (b4_parse_param_cons): Omit leading ','.
5373 * data/glr.cc (b4_parser_class_name):
5374 Initialize yycdebug_ only if YYDEBUG. Also, initialize yydebug_.
5375 (debug_level, set_debug_level): Affect yydebug_, not ::yydebug.
5376 (yydebug_) [YYDEBUG]: New member.
5377 (yycdebug_): Now defined only if YYDEBUG.
5378 * data/lalr1.cc (yydebug_, yycdebug_): Now defined only if YYDEBUG.
5379 (YYCDEBUG) [!YYDEBUG]: Don't use yydebug_ and yycdebug_.
5380 (b4_parser_class_name): Initialize yydebug_ and yycdebug_ only
5381 if YYYDEBUG.
5382 (debug_stream, set_debug_stream, debug_level, set_debug_level):
5383 Define only if YYDEBUG.
5384 * tests/calc.at (_AT_DATA_CALC_Y) [!YYDEBUG]: Omit call to
5385 set_debug_level.
5386 * tests/regression.at (_AT_DATA_DANCER_Y) [!YYDEBUG]: Likewise.
5387 * tests/calc.at (AT_CHECK_CALC_GLR_CC): Uncomment calls to
5388 AT_CHECK_CALC_GLR_CC that are working now.
5389
5390 2006-09-12 Paul Eggert <eggert@cs.ucla.edu>
5391
5392 * data/glr.cc (YYERROR_VERBOSE, YYTOKEN_TABLE): Remove.
5393 We don't need them in glr.cc, and glr.c defines them.
5394 Defining YYERROR_VERBOSE to 0 here breaks glr.c, since glr.c
5395 assumes that defining it to anything is the same as defining
5396 it to 1. Problem reported by Paolo Bonzini.
5397
5398 2006-09-12 Paolo Bonzini <bonzini@gnu.org> (tiny change)
5399
5400 * data/c.m4 (b4_null, b4_case): Define.
5401 * src/output.c (prepare_symbols): Use b4_null.
5402 (user_actions_output): Use b4_case.
5403
5404 2006-09-11 Paul Eggert <eggert@cs.ucla.edu>
5405
5406 * data/glr.c (b4_shared_declarations): Put start-header first,
5407 before any #includes that we generate, so that feature-test
5408 macros work. Problem reported by Michael Deutschmann in
5409 <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00004.html>.
5410 * data/lalr1.cc: Likewise.
5411 * doc/bison.texinfo (Prologue): Document that feature-test macros
5412 should be defined before any Bison declarations.
5413 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Put defns
5414 that depend on location.hh after, not before, Bison decls, since
5415 we now include location.hh after the first user prologue.
5416
5417 * doc/bison.texinfo (Calc++ Parser): Fix memory leak reported by
5418 Sander Brandenburg in
5419 <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00002.html>.
5420 Also, fix minor white space and comment issues.
5421 (Prologue): Mention that it's better to define feature-test macros
5422 before Bison declarations. Problem reported by Michael Deutschmann.
5423
5424 * README-cvs: Fix typo: "&" should be "&&". Problem reported
5425 by Jim Meyering.
5426 * m4/.cvsignore: Add argmatch.m4. Remove obstack.m4, strerror_r.m4.
5427 This adjusts to recent gnulib changes.
5428
5429 2006-09-04 Joel E. Denny <jdenny@ces.clemson.edu>
5430
5431 Finish implementation of per-type %destructor/%printer. Discussed
5432 starting at
5433 <http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>
5434 and
5435 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>.
5436 * NEWS (2.3+): Add a description of this feature to the default
5437 %destructor/%printer description.
5438 * doc/bison.texinfo (Freeing Discarded Symbols): Likewise.
5439 * src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set):
5440 Invoke semantic_type_destructor_set or semantic_type_printer_set when a
5441 list node contains a semantic type.
5442 * src/symtab.c, src/symtab.h: Extend with a table that associates
5443 semantic types with their %destructor's and %printer's.
5444 (semantic_type_from_uniqstr, semantic_type_get,
5445 semantic_type_destructor_set, semantic_type_printer_set): New functions
5446 composing the public interface of that table.
5447 (symbol_destructor_get, symbol_destructor_location_get,
5448 symbol_printer_get, symbol_printer_location_get): If there's no
5449 per-symbol %destructor/%printer, look up the per-type before trying
5450 the default.
5451 * tests/actions.at (Per-type %printer and %destructor): New test case.
5452 * tests/input.at (Default %printer and %destructor redeclared):
5453 Extend to check that multiple occurrences of %symbol-default in a
5454 single %destructor/%printer declaration is an error.
5455 (Per-type %printer and %destructor redeclared, Unused values with
5456 per-type %destructor): New test cases.
5457
5458 2006-09-04 Joel E. Denny <jdenny@ces.clemson.edu>
5459
5460 Require default %destructor/%printer to be declared using
5461 %symbol-default instead of an empty symbol list, and start working on
5462 new per-type %destructor/%printer. Discussed at
5463 <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00007.html>.
5464 * NEWS (2.3+): Add %symbol-default to example.
5465 * bison.texinfo (Freeing Discarded Symbols): Likewise.
5466 (Table of Symbols): Add entry for %symbol-default.
5467 * src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): New token.
5468 (generic_symlist, generic_symlist_item): New nonterminals for creating
5469 a list in which each item is a symbol, semantic type, or
5470 %symbol-default.
5471 (grammar_declaration): Use generic_symlist in %destructor and %printer
5472 declarations instead of symbols.1 or an empty list.
5473 (symbol_declaration, precedence_declaration, symbols.1): Update actions
5474 for changes to symbol_list.
5475 * src/reader.c: Update for changes to symbol_list.
5476 * src/scan-code.l: Likewise.
5477 * src/scan-gram.l: Scan new PERCENT_SYMBOL_DEFAULT token.
5478 * src/symlist.c, src/symlist.h: Extend such that a list node may
5479 represent a semantic type or a %symbol-default in addition to just an
5480 ordinary symbol. Add switched functions for setting %destructor's and
5481 %printer's.
5482 * tests/actions.at, tests/input.at: Add %symbol-default to all default
5483 %destructor/%printer declarations.
5484
5485 2006-08-23 Joel E. Denny <jdenny@ces.clemson.edu>
5486
5487 Whether the default %destructor/%printer applies to a particular symbol
5488 isn't a question of whether the user *declares* that symbol (in %token,
5489 for example). It's a question of whether the user by any means
5490 *defines* the symbol at all (by simply using a char token, for
5491 example). $end is defined by Bison whereas any other token with token
5492 number 0 is defined by the user. The error token is always defined by
5493 Bison regardless of whether the user declares it with %token, but we
5494 may one day let the user define error as a nonterminal instead.
5495 * NEWS (2.3+): Say "user-defined" instead of "user-declared".
5496 * doc/bison.texinfo (Freeing Discarded Symbols): Likewise, and document
5497 the meaning of "user-defined".
5498 * tests/actions.at (Default %printer and %destructor for user-declared
5499 end token): Rename to...
5500 (Default %printer and %destructor for user-defined end token): ...
5501 this.
5502
5503 * src/symtab.c (symbol_destructor_get, symbol_printer_get): In the
5504 computation of whether to apply the default, don't maintain a list of
5505 every Bison-defined symbol. Instead, just check for a first character
5506 of '$', which a user symbol cannot have, and check for the error token.
5507
5508 2006-08-21 Joel E. Denny <jdenny@ces.clemson.edu>
5509
5510 Don't apply the default %destructor or %printer to the error token,
5511 $undefined, or $accept. This change fits the general rule that the
5512 default %destructor and %printer are only for user-declared symbols,
5513 and it solves several difficulties that are described in the new test
5514 cases listed below.
5515 * src/symtab.c (symbol_destructor_get, symbol_printer_get): Implement.
5516 * tests/actions.at (Default %printer and %destructor are not for error
5517 or $undefined, Default %printer and %destructor are not for $accept):
5518 New test cases.
5519
5520 2006-08-19 Joel E. Denny <jdenny@ces.clemson.edu>
5521
5522 Allow %start after the first rule.
5523 * src/reader.c (grammar_current_rule_begin): Don't set the start symbol
5524 when parsing the first rule.
5525 (check_and_convert_grammar): Search for it here after all grammar
5526 declarations have been parsed. Skip midrules, which have dummy LHS
5527 nonterminals.
5528 * src/symtab.c (symbol_is_dummy): New function.
5529 * src/symtab.h (symbol_is_dummy): Declare it.
5530 * tests/input.at (%start after first rule): New test.
5531
5532 2006-08-18 Joel E. Denny <jdenny@ces.clemson.edu>
5533
5534 Redo some of the previous commit: add back the ability to use
5535 non-aliased/undeclared string literals since it might be useful to
5536 those declaring %token-table.
5537 * src/reader.c (check_and_convert_grammar): Undo changes in previous
5538 commit: don't worry about complaints from symbols_pack.
5539 * src/symtab.c (symbol_new, symbol_class_set,
5540 symbol_check_alias_consistency): Undo changes in previous commit: count
5541 each string literal as a new symbol and token, assign it a symbol
5542 number, and don't complain about non-aliased string literals.
5543 (symbols_pack): Since symbol_make_alias still does not decrement symbol
5544 and token counts but does still set aliased tokens to the same number,
5545 symbol_pack_processor now leaves empty slots in the symbols array.
5546 Remove those slots.
5547 * tests/regression.at (Undeclared string literal): Remove test case
5548 added in previous commit since non-aliased string literals are allowed
5549 again.
5550 (Characters Escapes, Web2c Actions): Undo changes in previous commit:
5551 remove unnecessary string literal declarations.
5552 * tests/sets.at (Firsts): Likewise.
5553
5554 2006-08-18 Joel E. Denny <jdenny@ces.clemson.edu>
5555
5556 Don't allow an undeclared string literal, but allow a string literal to
5557 be used before its declaration.
5558 * src/reader.c (check_and_convert_grammar): Don't invoke packgram if
5559 symbols_pack complained.
5560 * src/symtab.c (symbol_new): Don't count a string literal as a new
5561 symbol.
5562 (symbol_class_set): Don't count a string literal as a new token, and
5563 don't assign it a symbol number since symbol_make_alias does that.
5564 (symbol_make_alias): It's not necessary to decrement the symbol and
5565 token counts anymore. Don't assume that an alias declaration occurs
5566 before any uses of the identifier or string, and thus don't assert that
5567 one of them has the highest symbol number so far.
5568 (symbol_check_alias_consistency): Complain if there's a string literal
5569 that wasn't declared as an alias.
5570 (symbols_pack): Bail if symbol_check_alias_consistency failed since
5571 symbol_pack asserts that every token has been assigned a symbol number
5572 although undeclared string literals have not.
5573 * tests/regression.at (String alias declared after use, Undeclared
5574 string literal): New test cases.
5575 (Characters Escapes, Web2c Actions): Declare string literals as
5576 aliases.
5577 * tests/sets.at (Firsts): Likewise.
5578
5579 2006-08-14 Joel E. Denny <jdenny@ces.clemson.edu>
5580
5581 In the grammar scanner, STRING_FINISH unclosed constructs and return
5582 them to the parser in order to improve error messages.
5583 * src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER,
5584 SC_BRACED_CODE, SC_PROLOGUE): Implement.
5585 * tests/input.at (Unclosed constructs): New test case.
5586 * tests/regression.at (Invalid inputs): Update now that unclosed %{ is
5587 seen.
5588
5589 * src/scan-gram.h, src/scan-gram.l (gram_last_braced_code_loc): Remove
5590 unused global.
5591
5592 2006-08-13 Joel E. Denny <jdenny@ces.clemson.edu>
5593
5594 Handle string aliases for character tokens correctly.
5595 * src/symtab.c (symbol_user_token_number_set): If the token has an
5596 alias, check and set its alias's user token number instead of its own,
5597 which is set to indicate the alias. Previously, every occurrence of
5598 the character token in the grammar overwrote that alias indicator with
5599 the character code.
5600 * tests/input.at (String aliases for character tokens): New test.
5601
5602 2006-08-12 Joel E. Denny <jdenny@ces.clemson.edu>
5603
5604 * src/parse-gram.y: Add `%expect 0' so we don't overlook conflicts.
5605
5606 2006-08-11 Paul Eggert <eggert@cs.ucla.edu>
5607
5608 * bootstrap: Put in need-ngettext argument to AM_GNU_GETTEXT,
5609 to prevent failures when building on older platforms.
5610 Check for autopoint failure.
5611 Set XGETTEXT_OPTIONS to values that check for C format strings,
5612 so that translators are warned about them (this also helps
5613 prevent core dumps).
5614
5615 * lib/subpipe.c (create_subpipe): Use new gnulib pipe_safer
5616 function, since it simplifies our code a bit.
5617
5618 * configure.ac (AC_ARG_ENABLE): Use -Wextra -Wno-sign-compare
5619 rather than -W, so we don't get bogus warnings about sign comparisons.
5620 Add -Wpointer-arith, since that warning is useful (it reports code
5621 that does not conform to C89 and that some compilers reject).
5622 * data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c: Undo latest change,
5623 since it's no longer needed.
5624
5625 2006-08-10 Joel E. Denny <jdenny@ces.clemson.edu>
5626
5627 Clean up scanners a bit.
5628 * src/flex-scanner.h (FLEX_NO_OBSTACK): New macro that blocks obstack
5629 definitions so gcc won't warn when obstack_for_string is unused.
5630 * src/scan-code.l: config.h and system.h are already #include'd by
5631 scan-code-c.c, so get rid of them here.
5632 * src/scan-gram.l: Likewise.
5633 * src/scan-skel.l: Likewise, and use flex-scanner.h without obstack
5634 definitions rather than duplicating the rest of it.
5635 * src/scan-gram-c.c, scan-skel-c.c: #include "system.h".
5636
5637 2006-08-09 Joel E. Denny <jdenny@ces.clemson.edu>
5638
5639 Suppress signed/unsigned comparison warnings for yycheck.
5640 * data/c.m4 (b4_safest_int_type): New macro.
5641 * data/glr.c, data/lalr1.cc: Wherever you compare yycheck[i] against
5642 a signed int type, cast it to b4_safest_int_type first.
5643 * data/yacc.c: Likewise.
5644 (b4_safest_int_type): Overwrite the one from c.m4 since b4_int_type is
5645 also overwritten.
5646
5647 2006-08-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change)
5648
5649 * doc/bison.texinfo: Fix some typos.
5650
5651 2006-08-02 Paul Eggert <eggert@cs.ucla.edu>
5652
5653 * m4/.cvsignore: Add inttypes_h.m4,lib-ld.m4, lib-prefix.m4,
5654 po.m4, stdint_h.m4, uintmax_t.m4, ulonglong.m4, warning.m4.
5655
5656 * bootstrap (gnulib_tool): Stop using --assume-autoconf;
5657 the latest gnulib does this a different way.
5658 (get_translations): Sharuzzaman Ahmat Raslan reported that the ms
5659 translation was patched, so stop omitting it.
5660
5661 2006-07-29 Joel E. Denny <jdenny@ces.clemson.edu>
5662
5663 Enable declaration of default %printer/%destructor. Make the parser
5664 use these for all user-declared grammar symbols for which the user does
5665 not declare a specific %printer/%destructor. Thus, the parser uses it
5666 for token 0 if the user declares it but not if Bison generates it as
5667 $end. Discussed starting at
5668 <http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>,
5669 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>,
5670 and
5671 <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00019.html>.
5672 * NEWS (2.3+): Mention.
5673 * doc/bison.texinfo (Actions in Mid-Rule): It's no longer impossible to
5674 declare a %destructor for a mid-rule's semantic value. It's just
5675 impossible to declare one specific to it.
5676 (Freeing Discarded Symbols): Mention that @$ can be used in %destructor
5677 code. Describe default %destructor form.
5678 * src/parse-gram.y (grammar_declaration): Parse default
5679 %printer/%destructor declarations.
5680 * src/output.c (symbol_destructors_output): Use symbol_destructor_get
5681 and symbol_destructor_location_get rather than accessing the destructor
5682 and destructor_location members of struct symbol.
5683 (symbol_printers_output): Likewise but for %printer's.
5684 * src/reader.c (symbol_should_be_used): Likewise but for %destructor's
5685 again.
5686 * src/symtab.c (default_destructor, default_destructor_location,
5687 default_printer, default_printer_location): New static global
5688 variables to record the default %destructor and %printer.
5689 (symbol_destructor_get, symbol_destructor_location_get,
5690 symbol_printer_get, symbol_printer_location_get): New functions to
5691 compute the appropriate %destructor and %printer for a symbol.
5692 (default_destructor_set, default_printer_set): New functions to set the
5693 default %destructor and %printer.
5694 * src/symtab.h: Prototype all those new functions.
5695 * tests/actions.at (Default %printer and %destructor): New test to
5696 check that the right %printer and %destructor are called, that they're
5697 not called for $end, and that $$ and @$ work correctly.
5698 (Default %printer and %destructor for user-declared end token): New
5699 test to check that the default %printer and %destructor are called for
5700 a user-declared end token.
5701 * tests/input.at (Default %printer and %destructor redeclared, Unused
5702 values with default %destructor): New tests to check related grammar
5703 warnings and errors.
5704
5705 2006-07-29 Joel E. Denny <jdenny@ces.clemson.edu>
5706
5707 Clean up handling of %destructor for the end token (token 0).
5708 Discussed starting at
5709 <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00019.html>
5710 and
5711 <http://lists.gnu.org/archive/html/help-bison/2006-07/msg00013.html>.
5712
5713 Make the skeletons consistent in how they pop the end token and invoke
5714 its %destructor.
5715 * data/glr.c (yyrecoverSyntaxError, yyparse): Don't pop the start
5716 state, which has token number 0, since this would invoke the
5717 %destructor for the end token.
5718 * data/lalr1.cc (yy::parser::parse): Don't check for the final state
5719 until after shifting the end token, or else it won't be popped.
5720 * data/yacc.c (yyparse): Likewise.
5721
5722 * data/glr.c (yyparse): Clear the lookahead after shifting it even when
5723 it's the end token. Upon termination, destroy an unshifted lookahead
5724 even when it's the end token.
5725 * data/lalr1.cc (yy::parser::parse): Likewise.
5726 * data/yacc.c (yyparse): Likewise.
5727
5728 * src/reader.c (packgram): Don't check rule 0. This suppresses unused
5729 value warnings for the end token when the user gives the end token a
5730 %destructor.
5731
5732 * tests/actions.at (Printers and Destructors): Test all the above.
5733
5734 2006-07-24 Paul Eggert <eggert@cs.ucla.edu>
5735
5736 Update to latest gnulib and gettext versions.
5737 * bootstrap (gnulib-modules): Remove hard-locale, stdio-safer.
5738 Add fopen-safer.
5739 (gnulib_files): Add m4/warning.m4. Don't worry about files
5740 overwritten by autopoint.
5741 Replace gt_INTL_SUBDIR_CORE with an empty body in m4/gettext_gl.m4.
5742 Suppress "id", "ms", "tr" translations for now, since gettext 0.15
5743 rejects them.
5744 Don't use autoreconf; instead, invoke autopoint etc. by hand,
5745 so that we can remove the intl files at a better time.
5746 (intl_files_to_remove): Remove aclocal.m4, since it gets
5747 rebuilt anyway. Remove m4/inttypes_h.m4, m4/inttypes.m4,
5748 m4/isc-posix.m4, m4/lib-ld.m4, m4/lib-prefix.m4, m4/po.m4,
5749 m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4.
5750 Add m4/inttypes-h.m4, m4/lock.m4, m4/visibility.m4.
5751 Remove datarootdir hack; no longer needed.
5752 * configure.ac: Use gl_WARNING_CFLAGS rather than BISON_WARNING.
5753 (AM_GNU_GETTEXT_VERSION): Bump from 0.12 to 0.15.
5754 * lib/.cvsignore: Remove hard-locale.c, hard-locale.h, strdup.c,
5755 strdup.h.
5756 * m4/.cvsignore: Remove hard-locale.m4, strdup.m4.
5757 * m4/warning.m4: Remove from CVS, since we now use gnulib's version.
5758
5759 2006-07-20 Paul Eggert <eggert@cs.ucla.edu>
5760
5761 * bootstrap: Adjust to today's change to gnulib-tool by invoking
5762 it with --assume-autoconf='latest-stable'.
5763
5764 2006-07-13 Joel E. Denny <jdenny@ces.clemson.edu>
5765
5766 * src/parse-gram.y (grammar_declaration): Don't confuse Doxygen (at
5767 least 1.4.7 and 1.4.4) by putting a #line between `typedef union
5768 YYSTYPE' and `{'.
5769 * src/muscle_tab.h (muscle_grow): Replace the header comments with
5770 those from muscle_tab.c since the old ones are misleading.
5771
5772 2006-07-13 Akim Demaille <akim@epita.fr>
5773
5774 Support %define "KEY" {VALUE}.
5775 * src/scan-code.h, src/scan-code.l (translate_action)
5776 (translate_rule_action, translate_symbol_action, translate_code):
5777 Return char *, not const char *.
5778 * src/parse-gram.y (declaration): Rename as...
5779 (prologue_declaration): this.
5780 (string_content): Remove this nonterminal, use STRING.
5781 (braceless, content, content.opt): New nonterminal.
5782 Use them.
5783 (%define): Now accept content.opt, i.e., accept also BRACED_CODE
5784 as value.
5785 * src/scan-gram.l (getargs.h): Don't include it.
5786
5787 2006-07-12 Paul Eggert <eggert@cs.ucla.edu>
5788
5789 * data/lalr1.cc (YYCDEBUG): Use 'if (yydebug_) (*yycdebug_)'
5790 rather than a for-loop that declares a local bool variable. This
5791 should work around a compatibility problem with a Cray x1e C++
5792 compiler reported by Hung Nguyen in
5793 <http://lists.gnu.org/archive/html/help-bison/2006-07/msg00022.html>.
5794 The for-loop was introduced in the 2004-11-17 change but I don't
5795 know why it was needed.
5796
5797 2006-07-12 Akim Demaille <akim@epita.fr>
5798
5799 * data/c.m4: Comment changes.
5800
5801 2006-07-10 Akim Demaille <akim@lrde.epita.fr>
5802
5803 * src/complain.c (error_message, ERROR_MESSAGE): New.
5804 To factor...
5805 (fatal_at, fatal, warn_at, warn, complain_at, complain): these.
5806 * src/complain.h, src/complain.c (warning_issued): Remove, unused.
5807
5808 2006-07-09 Paul Eggert <eggert@cs.ucla.edu>
5809
5810 * NEWS: Instead of %union, you can define and use your own union type
5811 YYSTYPE if your grammar contains at least one <type> tag.
5812 Your YYSTYPE need not be a macro; it can be a typedef.
5813 * doc/bison.texinfo (Value Type, Multiple Types, Location Type):
5814 (Union Decl, Decl Summary): Document this.
5815 * data/glr.c (YYSTYPE): Implement this.
5816 * data/glr.cc (YYSTYPE): Likewise.
5817 * data/lalr1.cc (YYSTYPE): Likewise.
5818 * data/yacc.c (YYSTYPE): Likewise.
5819 * src/output.c (prepare): Output tag_seen_flag.
5820 * src/parse-gram.y (declaration, grammar_declaration):
5821 Use 'union_seen' rather than 'typed' to determine whether
5822 %union has been seen, since grammars can now be typed without
5823 %union.
5824 (symbol_declaration, type.opt, symbol_def):
5825 Keep track of whether a tag has been seen.
5826 * src/reader.c (union_seen, tag_seen): New vars.
5827 (typed): remove.
5828 * src/reader.h (union_seen, tag_seen, typed): Likewise.
5829 * src/scan-code.l (untyped_var_seen): New variable.
5830 (handle_action_dollar): Adjust to above changes.
5831 (handle_action_dollar, handle_action_at):
5832 Improve overflow checking for outlandish numbers.
5833 * tests/input.at (AT_CHECK_UNUSED_VALUES): Redo test to
5834 avoid new diagnostics generated by above changes.
5835 * tests/regression.at (YYSTYPE typedef): Add test to check
5836 for type tags without %union.
5837
5838 * src/symlist.c (symbol_list_length): Return int, not unsigned
5839 int, since callers expect int. This may need to get revisited
5840 once we have proper integer overflow checking.
5841
5842 * src/scan-gram.h (gram_scanner_cursor): Remove decl, since this
5843 object is now static.
5844
5845 * src/getargs.c (flags_argmatch): Return void, not int,
5846 to pacify ./configure --enable-gcc-warnings.
5847
5848 * src/flex-scanner.h (STRING_FREE): Don't use FLEX_PREFIX (last_string)
5849 since last_string is already defined to FLEX_PREFIX (last_string).
5850
5851 2006-07-09 Akim Demaille <akim@lrde.epita.fr>
5852
5853 Implement --warnings/-W.
5854 * src/getargs.c (report_argmatch, trace_argmatch): Remove,
5855 replaced by...
5856 (flags_argmatch, FLAGS_ARGMATCH): this new function and macro.
5857 Adjust callers.
5858 * src/getargs.h, src/getargs.c (warnings, warnings_flags)
5859 (warnings_args, warnings_types): New.
5860 (getargs, short_options, long_options): Accept -W/--warnings.
5861 Sort the options by alphabetical order, upper case letter right
5862 before its lower case.
5863
5864 2006-07-09 Joel E. Denny <jdenny@ces.clemson.edu>
5865
5866 Change %merge result type clash warnings to errors. Discussed at
5867 <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00026.html>.
5868 * src/reader.c (record_merge_function_type): Use complain_at.
5869 * tests/glr-regression.at (Missed %merge type warnings when LHS type is
5870 declared later): Update test case results.
5871
5872 2006-07-09 Akim Demaille <akim@lrde.epita.fr>
5873
5874 * src/getargs.h, src/getargs.c: Swap --report and --trace handling
5875 to be in alphabetical order.
5876 (trace_args): Spelling fixes.
5877
5878 2006-07-09 Paul Eggert <eggert@cs.ucla.edu>
5879
5880 * data/yacc.c (YYID, yy_stack_print): Prefix local vars with "yy"
5881 so they don't collide with user-defined macros.
5882 (yy_stack_print): Don't assume that yytype_int16 promotes to int;
5883 this was never guaranteed, and now that we're using gnulib stdint,
5884 which defines int_fast16_t to long int, the problem is exposed.
5885
5886 2006-07-08 Paul Eggert <eggert@cs.ucla.edu>
5887
5888 * data/c.m4 (b4_basename): Simplify a bit, since we don't
5889 need the full POSIX semantics (and weren't implementing them
5890 anyway).
5891
5892 Adjust to Autoconf 2.60 and today's gnulib.
5893 * bootstrap (gnulib_modules): Add stdint.
5894 Remove special case for m4/onceonly_2_57.m4, since gnulib-tool
5895 no longer copies it.
5896 (intl_files_to_remove): Remove m4/longlong.m4 and m4/wchar_t.m4,
5897 since stdint needs the former and wcwidth (which is now required
5898 by mbswidth) needs the latter.
5899 Append 'datarootdir = @datarootdir@' to po/Makefile.in.in, to
5900 work around a compatibility glitch between gettext 0.14.6 and
5901 Autoconf 2.60.
5902 * configure.ac (AC_PREREQ): Require Autoconf 2.60.
5903 Do not check for uintptr_t, since new stdint module does the right
5904 thing.
5905 * lib/.cvsignore: Remove alloca.c, alloca.h, alloca_.h.
5906 Add stdint.h, stdint_.h, wcwidth.h.
5907 * m4/.cvsignore: Remove alloca.m4, onceonly.m4.
5908 Add absolute-header.m4, double-slash-root.m4, longlong.m4,
5909 stdint.m4, wchar_t.m4, wcwidth.m4.
5910 * src/files.c: Include <dirname.h> and <stdio-safer.h> in the
5911 usual order for ../lib/*.h files.
5912 (file_name_split): Use last_component, not base_name, to adjust
5913 to gnulib changes.
5914 * src/parse-gram.h: Include <strverscmp.h> in the usual order
5915 for ../lib/*.h files.
5916 (YYTYPE_INT16, YYTYPE_INT8, YYTYPE_UINT16, YYTYPE_UINT8):
5917 Define unconditionally, since we now assume the stdint module.
5918 * src/scan-skel.l: Include <dirname.h>.
5919 (BASE_QPUTS): Use last_component, not base_name.
5920 * src/system.h: Include <unlocked-io.h> in the usual order
5921 for ../lib/*.h files. Include <stdint.h> unconditionally,
5922 since we now use the stdint module.
5923 (uintptr_t): Declare if UINTPTR_MAX is not defined, not
5924 HAVE_UINTPTR_T, since we now use the stdint module.
5925 (base_name): Remove decl, since files now include <dirname.h>
5926 to get the decl.
5927
5928 2006-07-08 Akim Demaille <akim@lrde.epita.fr>
5929
5930 * data/c.m4 (b4_location_initial_column, b4_location_initial_line):
5931 New, default to 1.
5932 * data/yacc.c, data/glr.c, data/location.cc: Use them.
5933 * NEWS, doc/bison.texinfo: The initial column and line are 1 by
5934 default.
5935 * tests/calc.at: Adjust.
5936
5937 2006-07-08 Akim Demaille <akim@lrde.epita.fr>
5938
5939 * data/c.m4 (b4_basename): New.
5940 (b4_syncline): Also output the location of its invocation (from
5941 the skeleton).
5942 (b4_user_action, b4_define_user_action, b4_user_actions)
5943 (b4_user_initial_action, b4_user_post_prologue, b4_user_start_header)
5944 (b4_user_stype): New.
5945 * data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: Use them.
5946
5947 2006-07-07 Joel E. Denny <jdenny@ces.clemson.edu>
5948
5949 In the grammar file, the first column is 1 not 0 on the first line as
5950 on every other line.
5951 * src/parse-gram.y (%initial-action): Initialize @$ correctly.
5952 * tests/input.at (Torturing the Scanner): Update output.
5953
5954 * src/scan-gram.l (scanner_cursor): Declare it static.
5955
5956 2006-07-07 Joel E. Denny <jdenny@ces.clemson.edu>
5957
5958 In warnings, say "previous declaration" rather than "first
5959 declaration".
5960 * src/symtab.c (redeclaration): Do that here.
5961 * src/reader.c (record_merge_function_type): In the case of a result
5962 type clash, report the previous declaration rather than the very first
5963 one in the grammar file.
5964 * tests/glr-regression.at (Missed %merge type warnings when LHS type is
5965 declared later): Add a third declaration to check this behavior.
5966 * tests/input.at (Incompatible Aliases): Update output.
5967
5968 2006-06-27 Akim Demaille <akim@epita.fr>
5969
5970 * doc/Doxyfile.in: New.
5971 * doc/Makefile.am: Use it.
5972 * src/lalr.h, src/symtab.h: Initial doxygenation.
5973
5974 2006-06-26 Joel E. Denny <jdenny@ces.clemson.edu>
5975
5976 Don't miss %merge result type warnings just because the LHS types are
5977 declared after the %merge. This continues the effort of the previous
5978 patch.
5979 * src/reader.c (get_merge_function): Don't set the merger type yet.
5980 (record_merge_function_type): New function for setting the merger type
5981 and checking for clashes.
5982 (grammar_current_rule_merge_set): Set the location of the %merge for
5983 the current rule.
5984 (packgram): Invoke record_merge_function_type for each rule now that
5985 all symbol type declarations have been parsed.
5986 * src/reader.h (merger_list.type_declaration_location): New member
5987 storing the location of the first %merge from which the type for this
5988 merging function was derived.
5989 * src/symlist.h (symbol_list.merger_declaration_location): New member
5990 storing the location of a rule's %merge, if any.
5991 * tests/glr-regression.at (Missed %merge type warnings when LHS type is
5992 declared later): New test to catch the error fixed by the above patch.
5993
5994 2006-06-26 Joel E. Denny <jdenny@ces.clemson.edu>
5995
5996 Get action warnings (grammar_rule_check) right even when symbol
5997 declarations appear after the rules. Discussed at
5998 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00108.html>
5999 and
6000 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00151.html>.
6001 Don't mistake the type of $$ in a midrule to be that of its parent
6002 rule's $$.
6003 * src/reader.c (grammar_current_rule_end): Don't invoke
6004 grammar_rule_check yet since not all symbol declarations may have been
6005 parsed yet.
6006 (grammar_midrule_action): Likewise.
6007 Don't record whether the midrule's $$ has been used yet since actions
6008 haven't been translated yet.
6009 Record the midrule's parent rule and its RHS index within the parent
6010 rule.
6011 (grammar_current_rule_action_append): Don't translate the action yet
6012 since not all symbol declarations may have been parsed yet and, thus,
6013 warnings about types for $$, $n, @$, and @n can't be reported yet.
6014 (packgram): Translate the action and invoke grammar_rule_check now that
6015 all symbol declarations have been parsed.
6016 * src/scan-code.l (handle_action_dollar): Now that this is invoked
6017 after parsing the entire grammar file, the symbol list here in the case
6018 of a midrule is actually the midrule's empty RHS, so reference its
6019 parent rule's RHS where necessary.
6020 On the other hand, now that you can already know it's a midrule, you
6021 aren't forced to think $$ has the same type as its parent rule's $$.
6022 (handle_action_at): In the case of a midrule, reference the parent rule
6023 where necessary.
6024 * src/symlist.c (symbol_list_new): Initialize new midrule-related
6025 members.
6026 (symbol_list_length): Now that this is invoked after all rules have
6027 been parsed, a NULL symbol (rather than a NULL symbol list node)
6028 terminates a rule. symbol_list_print already does this correctly.
6029 * src/symlist.h (symbol_list.midrule_parent_rule,
6030 symbol_list.midrule_parent_rhs_index): New members so that midrules can
6031 remember their relationships with their parents.
6032 * tests/input.at (Type Clashes): Extend to catch the midrule $$ error
6033 fixed by the above patch.
6034 (_AT_UNUSED_VALUES_DECLARATIONS, AT_CHECK_UNUSED_VALUES): New m4 macros
6035 implementing...
6036 (Unused values): ... this old test case and...
6037 (Unused values before symbol declarations): ... this new test case.
6038 This one is the same as `Unused values' except that all symbol
6039 declarations appear after the rules in order to catch the rest of the
6040 errors fixed by the above patch.
6041
6042 2006-06-26 Joel E. Denny <jdenny@ces.clemson.edu>
6043
6044 More cleanup.
6045 * src/reader.c (current_rule): Declare it static since it's no longer
6046 used outside this file.
6047 (grammar_current_rule_action_append): Remove redundant arguments from
6048 translate_rule_action invocation.
6049 * src/reader.h (current_rule): Remove this unused extern.
6050 * src/scan-code.h (translate_rule_action): Remove redundant arguments.
6051 * src/scan-code.l (translate_rule_action): Likewise.
6052
6053 2006-06-25 Joel E. Denny <jdenny@ces.clemson.edu>
6054
6055 Clean up yesterday's patch.
6056 * parse-gram.y (rhs): Move grammar_midrule_action invocation from here
6057 to...
6058 * src/reader.c (grammar_current_rule_action_append): ... here for
6059 consistency with grammar_current_rule_symbol_append.
6060 * tests/regression.at (Braced code in declaration in rules section):
6061 Make yyerror and yylex static as usual.
6062
6063 2006-06-24 Joel E. Denny <jdenny@ces.clemson.edu>
6064
6065 Fix bug that mistakes braced code in a declaration in the rules section
6066 to be a rule action. Mentioned at
6067 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00105.html>.
6068 * src/scan-gram.l: Move midrule action detection from the start of the
6069 scanning of any braced code to...
6070 * src/parse-gram.y (rhs): ... the parsing of braced code as a rule
6071 action. For readability, use $2 and @2 rather than the equivalent
6072 global variables.
6073 * tests/regression.at (Braced code in declaration in rules section):
6074 New test to catch the error fixed by the above patch.
6075
6076 Work on code readability some.
6077 * src/scan-code.l (current_rule): Get rid of this misleading and
6078 redundant declaration: it's actually extern'ed in reader.h.
6079 (YY_DECL, code_lex, handle_action_dollar, handle_action_at,
6080 translate_action): Add a rule argument and use it instead of the global
6081 current_rule.
6082 (translate_rule_action): This already receives current_rule through an
6083 argument, so pass it on to translate_action instead of assigning
6084 current_rule to current_rule.
6085 (translate_symbol_action, translate_code): Pass rule = NULL to
6086 translate_action.
6087
6088 2006-06-23 Joel E. Denny <jdenny@ces.clemson.edu>
6089
6090 Rename %before-definitions to %start-header and %after-definitions to
6091 %end-header. Don't use these declarations to separate pre-prologue
6092 blocks from post-prologue blocks. Add new order-independent
6093 declarations %before-header and %after-header as alternatives to the
6094 traditional Yacc pre-prologue and post-prologue blocks. Discussed at
6095 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00110.html>.
6096 * NEWS (2.3+): Update for these changes.
6097 * data/glr.c (b4_before_definitions): Update to...
6098 (b4_start_header): ... this.
6099 (b4_after_definitions): Update to...
6100 (b4_end_header): ... this.
6101 * data/glr.cc: Likewise.
6102 * data/lalr1.cc: Likewise.
6103 * data/yacc.c: Likewise.
6104 * doc/bison.texinfo (The prologue): Update names, and replace remaining
6105 prologue blocks with %*-header declarations.
6106 (Calc++ Parser): Likewise.
6107 (Decl Summary): Update names.
6108 (Table of Symbols): Update description.
6109 * src/parse-gram.y (PERCENT_AFTER_DEFINITIONS): Update to...
6110 (PERCENT_END_HEADER): ... this.
6111 (PERCENT_BEFORE_DEFINITIONS): Update to...
6112 (PERCENT_START_HEADER): ... this.
6113 (PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens.
6114 (declaration): Update token names and m4 macro names.
6115 When parsing %end-header and %start-header, invoke translate_code
6116 before muscle_code_grow, and no longer set global booleans to remember
6117 whether these declarations have been seen.
6118 Parse new %after-header and %before-header.
6119 * src/reader.c (before_definitions, after_definitions): Remove.
6120 (prologue_augment): Accept a new bool argument to specify whether to
6121 augment the pre-prologue or post-prologue.
6122 * src/reader.h (before_definitions, after_definitions): Remove these
6123 extern's.
6124 (prologue_augment): Add new bool argument.
6125 * src/scan-gram.l (PERCENT_AFTER_DEFINITIONS): Update to...
6126 (PERCENT_END_HEADER): ... this.
6127 (PERCENT_BEFORE_DEFINITIONS): Update to...
6128 (PERCENT_START_HEADER): ... this.
6129 (PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens.
6130 * tests/actions.at (Printers and Destructors): Update names.
6131
6132 2006-06-22 Joel E. Denny <jdenny@ces.clemson.edu>
6133
6134 Add comparison operators for C++ location classes. Discussed at
6135 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00092.html>.
6136 * data/c++.m4 (b4_define_location_comparison): New boolean %define
6137 declaration indicating whether filename_type has an operator==. If
6138 filename_type is `std::string', it defaults to `1', `0' otherwise.
6139 * data/location.cc: Iff b4_define_location_comparison is `1', add
6140 operator== and operator!= for class position and for class location.
6141
6142 Some minor fixes.
6143 * src/scan-action.l: Remove unused file.
6144 * src/symtab.c (symbol_printer_set): Use printer_location not
6145 destructor_location.
6146 * src/symtab.h (struct symbol): Replace incorrect source comment for
6147 printer members.
6148 * tests/input.at (Incompatible Aliases): Update output with correct
6149 printer location.
6150
6151 2006-06-20 Joel E. Denny <jdenny@ces.clemson.edu>
6152
6153 Don't put the pre-prologue in the header file. For the yacc.c code
6154 file and the glr.c header and code files, move the pre-prologue before
6155 the token definitions. Add new %before-definitions and
6156 %after-definitions to declare code that will go in both the header file
6157 and code file. Discussed at
6158 <http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00000.html>,
6159 <http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00016.html>,
6160 and
6161 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00055.html>.
6162 * NEWS (2.3+): Describe these changes.
6163 * data/glr.c (b4_pre_prologue): Move from within to before...
6164 (b4_shared_declarations): ... this.
6165 Add new b4_before_definitions before b4_token_enums.
6166 Add new b4_after_definitions at the end.
6167 * data/glr.cc (b4_pre_prologue): Replace with...
6168 (b4_before_definitions): ... this in the header file.
6169 (b4_after_definitions): New near the end of the header file.
6170 * data/lalr1.cc (b4_pre_prologue): Move from the header file to the
6171 code file right before including the header file.
6172 (b4_before_definitions): New in the previous position of
6173 b4_pre_prologue in the header file.
6174 (b4_after_definitions): New near the end of the header file.
6175 * data/yacc.c: Clean up some m4 quoting especially in the header file.
6176 (b4_token_enums_defines): In the code file, move to right before
6177 YYSTYPE for consistency with the header file.
6178 (b4_before_definitions): New right before b4_token_enums_defines in
6179 both the header and code file.
6180 (b4_after_definitions): New right after YYLTYPE and yylloc in both the
6181 header and code file.
6182 * doc/bison.texinfo (Prologue): Show use of %before-definitions instead
6183 of prologues for %union dependencies.
6184 (Decl Summary): In %defines description, mention the effect of
6185 %before-definitions and %after-definitions on the header file.
6186 (Calc++ Parser): Forward declare driver in a %before-definitions rather
6187 than in the pre-prologue so that make check succeeds.
6188 (Table of Symbols): Add entries for %before-definitions and
6189 %after-definitions.
6190 * src/parse-gram.y (PERCENT_BEFORE_DEFINITIONS): New token for
6191 %before-definitions.
6192 (PERCENT_AFTER_DEFINITIONS): New token for %after-definitions.
6193 (declaration): Parse those declarations and append to
6194 b4_before_definitions and b4_after_definitions, respectively.
6195 * src/reader.c (before_definitions, after_definitions): New bools to
6196 track whether those declarations have been seen.
6197 (prologue_augment): Add to the post-prologue if %union,
6198 %before-definitions, or %after-definitions has been seen.
6199 * src/reader.h (before_definitions, after_definitions): New extern's.
6200 * src/scan-gram.l: Scan the new declarations.
6201 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Place the second
6202 prologue block in a %before-definitions or a %after-definitions based
6203 on whether the %union is declared.
6204 * tests/regression.at (Early token definitions with --yacc, Early token
6205 definitions without --yacc): Move tests for token definitions into the
6206 post-prologue since token names are no longer defined in the
6207 pre-prologue.
6208
6209 2006-06-20 Akim Demaille <akim@epita.fr>
6210
6211 * src/symtab.h, src/symtab.c (symbol_from_uniqstr): New.
6212 (symbol_get): Use it.
6213 * src/parse-gram.y: Use it.
6214
6215 2006-06-19 Joel E. Denny <jdenny@ces.clemson.edu>
6216
6217 * src/scan-gram.l: Remove unused declaration of last_string_1 so the
6218 build succeeds when configured with --enable-gcc-warnings.
6219
6220 2006-06-19 Paul Eggert <eggert@cs.ucla.edu>
6221
6222 * src/parse-gram.y (char_name): New function.
6223 (CHAR, STRING, string_content): For %printer, properly escape.
6224 (ID): Prefer fputs to fprintf.
6225 (id): Reindent to be consistent with other rules.
6226 Properly quote char.
6227
6228 The Translation Project changed its way of publishing translations
6229 to maintainers. I haven't received any responses to my request
6230 for supporting the old way, or for documenting the new way. I
6231 have modified 'bootstrap' to use screen scraping
6232 (in this case, HTML scraping). This is unreliable and inelegant,
6233 but I don't see any better way. Yuck.
6234 * bootstrap (TP_URL, WGET_COMMAND): New vars.
6235 (get_translations): New function, which uses HTML scraping to
6236 deduce locations of latest translations.
6237 Use this function to grab both bison and bison-runtime .po files.
6238 Don't bother priming the pump for the runtime-po domain any more,
6239 as it's now translated better than bison is.
6240
6241 2006-06-19 Akim Demaille <akim@epita.fr>
6242
6243 * src/scan-gram.l: No longer "parse" things after `%union' until
6244 `{'. Rather, return a single "%union" token.
6245 No longer make symbols: return strings, and leave the conversion
6246 to symbols to the parser.
6247 (SC_PRE_CODE, token_type): Remove.
6248 * src/parse-gram.y (%union): New field `character'.
6249 Sort tokens.
6250 (CHAR): New token.
6251 (ID, ID_COLON): Now that the scanner no longer makes them
6252 identifiers, adjust all uses to invoke symbol_get.
6253 (id_colon): New, wraps the conversion from string to symbol.
6254 (%union): Accept a possible union_name.
6255 (symbol): Now can be a char.
6256 * data/c.m4 (b4_union_name): Leave a default value.
6257 * data/glr.c, data/yacc.c: Use it.
6258
6259 2006-06-11 Joel E. Denny <jdenny@ces.clemson.edu>
6260
6261 For associating token numbers with token names for "yacc.c", don't use
6262 #define statements unless `--yacc' is specified; always use enum
6263 yytokentype. Most important discussions start at:
6264 <http://lists.gnu.org/archive/html/bison-patches/2005-09/msg00053.html>,
6265 <http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00052.html>,
6266 and
6267 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00043.html>.
6268 * NEWS (2.3+): Mention.
6269 * data/c.m4 (b4_yacc_if): New.
6270 (b4_token_enums_defines): Use b4_yacc_if to decide whether to add the
6271 token #define's.
6272 * doc/bison.texinfo (Bison Options): Describe the effect of `--yacc'
6273 on token name definitions.
6274 * src/getargs.c (usage): Capitalize `Yacc' in English.
6275 * src/output.c (prepare): Define b4_yacc_flag.
6276 * tests/regression.at (Early token definitions): Test that tokens names
6277 are defined before the pre-prologue not just before the post-prologue.
6278 Remove this test case and copy to...
6279 (Early token definitions with --yacc): ... this to test #define's.
6280 (Early token definitions without --yacc): ... and this to test enums.
6281
6282 2006-06-11 Paul Eggert <eggert@cs.ucla.edu>
6283
6284 * NEWS: Reword the post-2.3 change to not be so optimistic about
6285 removing the old "look-ahead" spelling.
6286 Update previous look-ahead/lookahead change reports.
6287 * REFERENCES: look-ahead -> lookahead (since that's
6288 what he actually wrote).
6289 * doc/refcard.tex: look ahead -> lookahead,
6290 look-ahead -> lookahead
6291
6292 2006-06-09 Joel E. Denny <jdenny@ces.clemson.edu>
6293
6294 For consistency, use `lookahead' instead of `look-ahead' or
6295 `look_ahead'. Discussed starting at
6296 <http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00049.html>
6297 and then at
6298 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00017.html>.
6299 * NEWS: For the next release, note the change to `--report'.
6300 * TODO, doc/bison.1: Update English.
6301 * doc/bison.texinfo: Update English.
6302 (Understanding Your Parser, Bison Options): Document as
6303 `--report=lookahead' rather than `--report=look-ahead'.
6304 * src/conflicts.c: Update English in comments.
6305 (lookahead_set): Rename from look_ahead_set.
6306 (flush_reduce): Rename argument look_ahead_tokens to lookahead_tokens.
6307 (resolve_sr_conflict): Rename local look_ahead_tokens to
6308 lookahead_tokens, and update other uses.
6309 (flush_shift, set_conflicts, conflicts_solve, count_sr_conflicts,
6310 count_rr_conflicts, conflicts_free): Update uses.
6311 * src/getargs.c (report_args): Move "lookahead" before alternate
6312 spellings.
6313 (report_types): Update uses.
6314 (usage): For `--report' usage description, state `lookahead' spelling
6315 rather than `look-ahead'.
6316 * src/getargs.h (report.report_lookahead_tokens): Rename from
6317 report_look_ahead_tokens.
6318 * src/lalr.c: Update English in comments.
6319 (compute_lookahead_tokens): Rename from compute_look_ahead_tokens.
6320 (state_lookahead_tokens_count): Rename from
6321 state_look_ahead_tokens_count.
6322 Rename local n_look_ahead_tokens to n_lookahead_tokens.
6323 (lookahead_tokens_print): Rename from look_ahead_tokens_print.
6324 Rename local n_look_ahead_tokens to n_lookahead_tokens.
6325 Update other uses.
6326 Update English in output.
6327 (add_lookback_edge, initialize_LA, lalr, lalr_free): Update uses.
6328 * src/print.c: Update English in comments.
6329 (lookahead_set): Rename from look_ahead_set.
6330 (print_reduction): Rename argument lookahead_token from
6331 look_ahead_token.
6332 (print_core, state_default_rule, print_reductions, print_results):
6333 Update uses.
6334 * src/print_graph.c: Update English in comments.
6335 (print_core): Update uses.
6336 * src/state.c: Update English in comments.
6337 (reductions_new): Update uses.
6338 (state_rule_lookahead_tokens_print): Rename from
6339 state_rule_look_ahead_tokens_print, and update other uses.
6340 * src/state.h: Update English in comments.
6341 (reductions.lookahead_tokens): Rename from look_ahead_tokens.
6342 (state_rule_lookahead_tokens_print): Rename from
6343 state_rule_look_ahead_tokens_print.
6344 * src/tables.c: Update English in comments.
6345 (conflict_row, action_row): Update uses.
6346 * tests/glr-regression.at
6347 (Incorrect lookahead during deterministic GLR,
6348 Incorrect lookahead during nondeterministic GLR): Rename
6349 print_look_ahead to print_lookahead.
6350 * tests/torture.at: Update English in comments.
6351 (AT_DATA_LOOKAHEAD_TOKENS_GRAMMAR): Rename from
6352 AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR.
6353 (Many lookahead tokens): Update uses.
6354 * data/glr.c: Update English in comments.
6355 * lalr1.cc: Likewise.
6356 * yacc.c: Likewise.
6357 * src/conflicts.h: Likewise.
6358 * src/lalr.h: Likewise.
6359 * src/main.c: Likewise.
6360 * src/output.c: Likewise.
6361 * src/parse-gram.c: Likewise.
6362 * src/tables.h: Likewise.
6363 * tests/calc.at: Likewise.
6364
6365 2006-06-08 Joel E. Denny <jdenny@ces.clemson.edu>
6366
6367 * src/flex-scanner.h (yytext): Remove stray `*/' in #define.
6368
6369 2006-06-07 Paul Eggert <eggert@cs.ucla.edu>
6370
6371 * TODO: Add request from Nelson H. F. Beebe to be able to install
6372 Bison without installing the yacc script.
6373
6374 2006-06-07 Joel E. Denny <jdenny@ces.clemson.edu>
6375
6376 * src/flex-scanner.h: For the sake of Flex 2.5.4, don't #define yyleng
6377 and yytext if they're already #define'd.
6378 * src/flex-scanner.h, src/location.h: Move #include "system.h" to...
6379 * src/scan-code-c.c: ... here.
6380 * src/scan-code.l, src/scan-gram.l: ... and here. Also #include
6381 <config.h>.
6382
6383 2006-06-07 Joel E. Denny <jdenny@ces.clemson.edu>
6384
6385 Get Bison to build again when configured with --enable-gcc-warnings.
6386 * src/location.c, src/location.h, src/main.c, src/scan-code.l: Add some
6387 missing #include's.
6388 * src/scan-code.l (handle_action_dollar, handle_action_at): Rename
6389 loc argument as it shadows a global.
6390 * src/scan-gram.l: Remove stray comma that prevents boundary_set
6391 invocation.
6392
6393 * src/.cvsignore: Add scan-code.c.
6394
6395 2006-06-07 Akim Demaille <akim@epita.fr>
6396
6397 * src/scan-gram.l: Move the "add a trailing ; to actions" code
6398 to...
6399 * src/scan-code.l: here.
6400 * tests/input.at (Torturing the Scanner): Fix another location
6401 error.
6402
6403 2006-06-07 Akim Demaille <akim@epita.fr>
6404
6405 * src/Makefile.am (BUILT_SOURCES): Fix the trailing backslash.
6406
6407 2006-06-06 Akim Demaille <akim@epita.fr>
6408
6409 Extract the parsing of user actions from the grammar scanner.
6410 As a consequence, the relation between the grammar scanner and
6411 parser is much simpler. We can also split "composite tokens" back
6412 into simple tokens.
6413 * src/gram.h (ITEM_NUMBER_MAX, RULE_NUMBER_MAX): New.
6414 * src/scan-gram.l (add_column_width, adjust_location): Move to and
6415 rename as...
6416 * src/location.h, src/location.c (add_column_width)
6417 (location_compute): these.
6418 Fix the column count: the initial column is 0.
6419 (location_print): Be robust to ending column being 0.
6420 * src/location.h (boundary_set): New.
6421 * src/main.c: Adjust to scanner_free being renamed as
6422 gram_scanner_free.
6423 * src/output.c: Include scan-code.h.
6424 * src/parse-gram.y: Include scan-gram.h and scan-code.h.
6425 Use boundary_set.
6426 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_INITIAL_ACTION)
6427 (PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Remove the {...} part,
6428 which is now, again, a separate token.
6429 Adjust all dependencies.
6430 Whereever actions with $ and @ are used, use translate_code.
6431 (action): Remove this nonterminal which is now useless.
6432 * src/reader.c: Include assert.h, scan-gram.h and scan-code.h.
6433 (grammar_current_rule_action_append): Use translate_code.
6434 (packgram): Bound check ruleno, itemno, and rule_length.
6435 * src/reader.h (gram_in, gram__flex_debug, scanner_cursor)
6436 (last_string, last_braced_code_loc, max_left_semantic_context)
6437 (scanner_initialize, scanner_free, scanner_last_string_free)
6438 (gram_out, gram_lineno, YY_DECL_): Move to...
6439 * src/scan-gram.h: this new file.
6440 (YY_DECL): Rename as...
6441 (GRAM_DECL): this.
6442 * src/scan-code.h, src/scan-code.l, src/scan-code-c.c: New.
6443 * src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
6444 (gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
6445 (gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
6446 Move these declarations, and...
6447 (obstack_for_string, STRING_GROW, STRING_FINISH, STRING_FREE):
6448 these to...
6449 * src/flex-scanner.h: this new file.
6450 * src/scan-gram.l (rule_length, rule_length_overflow)
6451 (increment_rule_length): Remove.
6452 (last_braced_code_loc): Rename as...
6453 (gram_last_braced_code_loc): this.
6454 Adjust to the changes of the parser.
6455 Move all the handling of $ and @ into...
6456 * src/scan-code.l: here.
6457 * src/scan-gram.l (handle_dollar, handle_at): Remove.
6458 (handle_action_dollar, handle_action_at): Move to...
6459 * src/scan-code.l: here.
6460 * src/Makefile.am (bison_SOURCES): Add flex-scanner.h,
6461 scan-code.h, scan-code-c.c, scan-gram.h.
6462 (EXTRA_bison_SOURCES): Add scan-code.l.
6463 (BUILT_SOURCES): Add scan-code.c.
6464 (yacc): Be robust to white spaces.
6465
6466 * tests/conflicts.at, tests/input.at, tests/reduce.at,
6467 * tests/regression.at: Adjust the column numbers.
6468 * tests/regression.at: Adjust the error message.
6469
6470 2006-06-06 Joel E. Denny <jdenny@ces.clemson.edu>
6471
6472 * src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
6473 Use Akim's wording from
6474 <http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00056.html>.
6475
6476 2006-06-06 Joel E. Denny <jdenny@ces.clemson.edu>
6477
6478 Between Bison releases, manually append `+' to the previous Bison
6479 release number, and use that as a signal to automatically print the
6480 ChangeLog's CVS Id keyword from --version. Discussed starting at
6481 <http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00028.html>.
6482 * ChangeLog: Add Id header.
6483 * configure.ac (AC_INIT): Append `+' to `2.3'.
6484 * src/.cvsignore: Add revision.c.
6485 * src/Makefile.am (bison_SOURCES): Add revision.c and revision.h.
6486 (BUILT_SOURCES): Add revision.c.
6487 (revision.c): New target rule. This file defines a new global variable
6488 named revision. It initializes it with either the Id from ChangeLog
6489 or, if VERSION doesn't contain `+', with the empty string.
6490 * src/getargs.c (version): Print the value of revision.
6491 * src/revision.h: Extern revision.
6492
6493 2006-06-05 Paul Eggert <eggert@cs.ucla.edu>
6494
6495 * NEWS: Version 2.3.
6496 * configure.ac (AC_INIT): Likewise.
6497
6498 2006-05-30 Paul Eggert <eggert@cs.ucla.edu>
6499
6500 * data/glr.c (YYRECOVERING): Define to be a function-like macro
6501 with no arguments, not as an object-like macro. This is for
6502 compatibility with data/yacc.c. Problem reported by John P. Hartmann in
6503 <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00059.html>.
6504 * doc/bison.texinfo (Action Features, Error Recovery, Table of Symbols):
6505 Document this.
6506
6507 2006-05-30 Joel E. Denny <jdenny@ces.clemson.edu>
6508
6509 * src/getargs.c (usage): Back out yesterday's modification of the
6510 --help output so that we don't have to wait for translation before
6511 releasing 2.3.
6512
6513 2006-05-29 Paul Eggert <eggert@cs.ucla.edu>
6514
6515 * doc/bison.texinfo (Introduction): Don't say "GLR grammar".
6516 Problem reported by Akim Demaille.
6517
6518 2006-05-29 Joel E. Denny <jdenny@ces.clemson.edu>
6519
6520 * src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
6521
6522 2006-05-26 Paul Eggert <eggert@cs.ucla.edu>
6523
6524 * data/yacc.c (yy_reduce_print): Omit trailing white space in
6525 generated source code. Problem reported by Frans Englich in
6526 <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00049.html>.
6527
6528 2006-05-22 Paul Eggert <eggert@cs.ucla.edu>
6529
6530 * Makefile.maint (gzip_rsyncable, GZIP_ENV): Compute within the
6531 shell, not within 'make', so that 'make' by an ordinary builder
6532 (using GNU make) does not worry about configuring gzip. This also
6533 works around a bug reported independently by Keith Thompson and by
6534 Georg Schwarz, whereby gzip 1.2.4 --help would output usage on
6535 stderr rather than stdout, messing up the build logs.
6536
6537 2006-05-21 Joel E. Denny <jdenny@ces.clemson.edu>
6538
6539 * data/yacc.c (yyparse): Wrap the final return from yyparse inside YYID
6540 to make sure that YYID will never be unused. This fixes a 'make
6541 maintainer-check' failure caused by the recent changes to the 'Trivial
6542 grammars' test case, which caused g++ 4.1.0 to complain that YYID was
6543 not used.
6544 * data/glr.c (yyparse): Wrap yyparse's return inside YYID just in case.
6545
6546 2006-05-21 Joel E. Denny <jdenny@ces.clemson.edu>
6547
6548 * data/glr.c (yyresolveLocations): Remove bogus YYASSERT that the
6549 state before an empty RHS is always resolved here. Only the location
6550 of that state is guaranteed to be resolved, and that's enough. This
6551 fixes the remaining bug reported by Derek M. Jones in
6552 <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
6553 * tests/glr-regression.at (Uninitialized location when reporting
6554 ambiguity): Test the above case.
6555 Also, the embedded comments in this test case claim it checks the case
6556 of an empty RHS that has inherited the initial location. However, the
6557 corresponding LHS was already resolved, so yyresolveLocations didn't
6558 actually have reason to modify it. Fix this by forcing
6559 nondeterministic operation at the beginning of the parse.
6560
6561 2006-05-20 Paul Eggert <eggert@cs.ucla.edu>
6562
6563 * data/c.m4 (b4_yy_symbol_print_generate):
6564 (b4_yy_symbol_print_generate): Use 'YYSTYPE const' rather than
6565 'const YYSTYPE', and similarly for YYLTYPE. This fixes one
6566 of the bugs reported today by Derek M Jones in
6567 <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
6568 * doc/bison.texinfo (Value Type): Document that YYSTYPE must be
6569 defined to be a type name without parens or brackets.
6570 (Location Type): Similarly for YYLTYPE.
6571 * tests/regression.at (Trivial grammars): Put in a test for this
6572 bug that will be caught by 'make maintainer-check' (though not,
6573 alas, by 'make check' unless your compiler is picky).
6574
6575 2006-05-19 Paul Eggert <eggert@cs.ucla.edu>
6576
6577 * NEWS: Version 2.2.
6578 * configure.ac (AC_INIT): Likewise.
6579
6580 2006-05-17 Joel E. Denny <jdenny@ces.clemson.edu>
6581
6582 * data/glr.c (yyreportTree): Make room in yystates for the state
6583 preceding the RHS. This fixes the segmentation fault reported by Derek
6584 M. Jones in
6585 <http://lists.gnu.org/archive/html/help-bison/2006-05/msg00035.html>.
6586 (yyreportTree, yypdumpstack): Subtract 1 from yyrule before printing
6587 to the user. Reported for yyreportTree by Derek M. Jones later in the
6588 same thread.
6589 * THANKS: Add Derek M. Jones.
6590 Update my email address.
6591 Fix typo in Steve Murphy's name.
6592
6593 2006-05-14 Paul Eggert <eggert@cs.ucla.edu>
6594
6595 * data/glr.c (yyreportSyntaxError): Fix off-by-one error in
6596 checking against YYLAST that caused the parser to miss a potential
6597 alternative in its diagnostic.
6598 Problem reported by Maria Jose Moron Fernandez in
6599 <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00024.html>.
6600 * data/lalr1.cc (yysyntax_error_): Likewise.
6601 * data/yacc.c (yysyntax_error): Likewise.
6602 * tests/regression.at (_AT_DATA_DANCER_Y): Use static array for
6603 tokens, in case we run into an older C compiler.
6604 (_AT_DATA_EXPECT2_Y, AT_CHECK_EXPECT2): New macros.
6605 Use them to check for the off-by-one error fixed above.
6606
6607 * data/yacc.c (yytnamerr): Fix typo: local var should be of type
6608 YYSIZE_T, not size_t.
6609 * tests/regression.at (Trivial grammars): New test, to catch
6610 the error fixed by the above patch.
6611
6612 2006-05-14 Akim Demaille <akim@lrde.epita.fr>
6613
6614 * doc/bison.texinfo (C++ Bison Interface): Clarify the naming
6615 scheme.
6616 Reported by Steve Murphy.
6617
6618 2006-05-14 Akim Demaille <akim@lrde.epita.fr>
6619
6620 * data/glr.cc, data/lalr1.cc: Using %defines is mandatory.
6621 * data/glr.cc: b4_location_flag is now b4_locations_flag.
6622
6623 2006-05-14 Akim Demaille <akim@lrde.epita.fr>
6624
6625 Implement --trace=m4.
6626 * src/getargs.c (trace_types, trace_args): Accept trace_m4.
6627 * src/output.c (output_skeleton): When set, pass -dV to m4.
6628
6629 Factor the handling of flags in m4.
6630 * src/output.c (prepare): Rename the muscle names debug, defines,
6631 error_verbose to debug_flag, defines_flag, error_verbose_flag.
6632 * data/c.m4: Adjust.
6633 (_b4_define_flag_if, b4_define_flag_if, b4_defines_if): New.
6634 Use b4_define_flag_if to define other b4_FLAG_if macros.
6635 (b4_location_if): As a consequence, rename as...
6636 (b4_locations_if): this, for consistency.
6637 Adjust all the skeletons.
6638
6639 2006-05-14 Akim Demaille <akim@lrde.epita.fr>
6640
6641 * etc/bench.pm: Shorten bench names.
6642
6643 2006-05-14 Akim Demaille <akim@lrde.epita.fr>
6644
6645 * src/output.h, src/output.c (error_verbose): Move to...
6646 * src/getargs.h, src/getargs.c: here.
6647 Sort the flags.
6648 Adjust dependencies.
6649
6650 2006-05-13 Paul Eggert <eggert@cs.ucla.edu>
6651
6652 * data/c.m4 (b4_copyright): Put the special exception for Bison
6653 skeletons here, so we don't have to put it in each skeleton. All
6654 uses changed. Suggested by Akim Demaille. Also, wrap the
6655 copyright notice, in case it is longer than 80 columns. Replace
6656 comma by newline after title.
6657
6658 2006-05-11 Paul Eggert <eggert@cs.ucla.edu>
6659
6660 * doc/bison.texinfo (Calc++ Scanner): The flex behavior is an
6661 incompatibility, not a bug. Mention that it wasn't fixed as of
6662 flex 2.5.33.
6663
6664 2006-05-11 Akim Demaille <akim@lrde.epita.fr>
6665
6666 * examples/extexi: Enforce the precedence of concatenation over
6667 >>.
6668 Reported by Tommy Nordgren.
6669
6670 2006-05-11 Akim Demaille <akim@lrde.epita.fr>
6671
6672 * data/lalr1.cc (yytranslate_): Rename token as t to avoid clashes
6673 with the member "token".
6674 Reported by Martin Nylin.
6675
6676 2006-05-08 Paul Eggert <eggert@cs.ucla.edu>
6677
6678 * data/glr.c: Switch to Bison 2.2 special-exception language in
6679 the copyright notice. Use more-regular format for titles and
6680 copyright notices.
6681 * data/glr.cc: Likewise.
6682 * data/location.cc: Likewise.
6683 * data/yacc.cc: Likewise.
6684 * doc/bison.texinfo (Conditions): Document this.
6685 * NEWS: likewise. Upgrade version to 2.2.
6686
6687 2006-04-27 Akim Demaille <akim@lrde.epita.fr>
6688
6689 * data/glr.cc: Remove dead code.
6690
6691 2006-04-25 Paul Eggert <eggert@cs.ucla.edu>
6692
6693 * bootstrap: Comment out the AM_CPPFLAGS line, since we don't use
6694 that variable and the line breaks the bootstrap. Problem reported
6695 by Juan M. Guerrero.
6696
6697 2006-04-24 Akim Demaille <akim@lrde.epita.fr>
6698
6699 * doc/bison.texinfo (Multiple start-symbols): New.
6700
6701 2006-04-24 Akim Demaille <akim@lrde.epita.fr>
6702
6703 * etc/README, etc/bench.pl: New.
6704
6705 2006-04-03 Akim Demaille <akim@lrde.epita.fr>
6706
6707 * src/scan-gram.l: Be robust to BRACED_CODE appearing before any
6708 rule.
6709 Reported by Mickael Labau.
6710 * tests/input.at (Torturing the Scanner): Test it.
6711
6712 2006-03-16 Paul Eggert <eggert@cs.ucla.edu>
6713
6714 * doc/bison.texinfo (Decl Summary): Don't mention yylloc twice.
6715 Problem reported by Bob Rossi.
6716
6717 2006-03-13 Paul Eggert <eggert@cs.ucla.edu>
6718
6719 * doc/bison.texinfo: Remove @shorttitlepage stuff; it wasn't used
6720 and didn't really work.
6721 For the index, use @ifnotinfo, not @iftex.
6722 Minor cleanups of spacing and terminology.
6723
6724 2006-03-12 Akim Demaille <akim@lrde.epita.fr>
6725
6726 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Fix the definition
6727 of AT_NAME_PREFIX when %name-prefix is not used.
6728
6729 2006-03-12 Akim Demaille <akim@lrde.epita.fr>
6730
6731 Apply --prefix to C++ skeletons too: they change the namespace.
6732 The test suite already exercize these cases.
6733 * data/c++.m4 (b4_namespace): New.
6734 * data/lalr1.cc, data/glr.cc, data/location.cc: Use it instead of `yy'.
6735 * data/lalr1.cc (yytnameerr_): Move its definition into the namespace.
6736 * data/yacc.c, data/glr.c: Remove a useless `[]'.
6737 * doc/bison.texinfo: Document it.
6738 (Option Cross Key): Use @multitable in all formats. It looks
6739 nicer, even in TeX outputs.
6740 (Rules): Use the same code whatever the output type is.
6741 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS)
6742 (_AT_BISON_OPTION_POPDEFS): Support AT_NAME_PREFIX.
6743 * tests/calc.at: Use it, instead of hard coding `yy'.
6744
6745 2006-03-10 Akim Demaille <akim@lrde.epita.fr>
6746
6747 * TODO: Remove dead items.
6748
6749 2006-03-10 Akim Demaille <akim@lrde.epita.fr>
6750
6751 * doc/FAQ: Remove, merged into...
6752 * doc/bison.texinfo (FAQ): this.
6753 * doc/Makefile.am (EXTRA_DIST): Adjust.
6754
6755 2006-03-10 Akim Demaille <akim@lrde.epita.fr>
6756
6757 * data/c.m4 (b4_token_enum): Always define the enum of tokens,
6758 even if empty.
6759 * data/lalrl1.cc, data/glr.cc (parser::token_type): New.
6760 * doc/bison.texinfo (Calc++ Scanner): Use it.
6761
6762 2006-03-09 Paul Eggert <eggert@cs.ucla.edu>
6763
6764 Fix two nits reported by twlevo, plus one more that I discovered.
6765
6766 * src/assoc.h (assoc_to_string): Give a name to the arg, as
6767 this is the usual Bison style.
6768 * src/location.h (location_print): Likewise.
6769
6770 * src/reader.h (token_name): Likewise.
6771
6772 2006-03-08 Paul Eggert <eggert@cs.ucla.edu>
6773
6774 Fix some nits reported by twlevo.
6775 * doc/FAQ: Remove ancient Y2K FAQ, replacing it with "secure"
6776 and "POSIX". Use more-modern syntax for URLs. Mention C++
6777 and ask for Java. Don't hardwire OS version numbers. Add
6778 copyright notice.
6779 * m4/.cvsignore: Add unistd_h.m4, for latest gnulib.
6780 * src/conflicts.c (solved_conflicts_obstack): Now static.
6781
6782 2006-03-08 Joel E. Denny <jdenny@ces.clemson.edu>
6783
6784 * doc/bison.texinfo (Introduction): Mention GLR and C++ as on the web
6785 page. Say "you can use it" not "you may use it" as on the web page;
6786 we're describing capabilities not granting permission.
6787
6788 2006-03-06 Paul Eggert <eggert@cs.ucla.edu>
6789
6790 * data/glr.c (yyresolveLocations): Rename local variables to avoid
6791 shadowing warnings. Use usual patter for iterating through RHS.
6792 * tests/glr-regression.at
6793 (Uninitialized location when reporting ambiguity):
6794 Modify yylex so that it uses its argument, rather than trying
6795 to rely on ARGSUSED (which doesn't work for gcc with warnings).
6796 const char -> char const.
6797
6798 * tests/Makefile.am ($(srcdir)/package.m4, maintainer-check-valgrind):
6799 Don't use tabs inside commands; it messes up 'ps'.
6800 Problem reported by twlevo.
6801
6802 2006-03-06 Joel E. Denny <jdenny@ces.clemson.edu>
6803
6804 * tests/glr-regression.at (Uninitialized location when reporting
6805 ambiguity): New test case.
6806 * data/glr.c (yyresolveLocations): New function, which uses
6807 YYLLOC_DEFAULT.
6808 (yyresolveValue): Invoke yyresolveLocations before reporting an
6809 ambiguity.
6810 * doc/bison.texinfo (Default Action for Locations): Note
6811 YYLLOC_DEFAULT's usage for ambiguity locations.
6812 (GLR Semantic Actions): Cross-reference those notes.
6813
6814 2006-03-04 Joel E. Denny <jdenny@ces.clemson.edu>
6815
6816 * tests/glr-regression.at (Leaked semantic values when reporting
6817 ambiguity): Remove unnecessary union and type declarations.
6818 (Leaked lookahead after nondeterministic parse syntax error): New test
6819 case.
6820 * data/glr.c (yyparse): Check for zero stacks remaining before
6821 attempting to shift the lookahead so that you don't lose it.
6822
6823 2006-03-02 Joel E. Denny <jdenny@ces.clemson.edu>
6824
6825 Avoid memory leaks by not invoking longjmp in yyreportAmbiguity.
6826 * tests/glr-regression.at (Leaked semantic values when reporting
6827 ambiguity): New test case.
6828 * data/glr.c (yyreportAmbiguity): Invoke yyyerror directly and return
6829 yyabort rather than invoking yyFail, which invokes longjmp. Remove the
6830 now unnecessary yystackp parameter.
6831 (yyresolveValue): Return yyreportAmbiguity's result. Now the necessary
6832 destructors can be called.
6833
6834 * tests/glr-regression.at: Don't invoke bison with `-t' unnecessarily
6835 in existing testcases.
6836
6837 2006-03-02 Joel E. Denny <jdenny@ces.clemson.edu>
6838
6839 Don't leak semantic values for parent RHS when a user action cuts the
6840 parser, and clean up related code a bit.
6841 * tests/glr-regression.at (Leaked merged semantic value if user action
6842 cuts parse): Rename to...
6843 (Leaked semantic values if user action cuts parse): ... this. Add check
6844 for leaked parent RHS values.
6845 * data/glr.c (yydestroyGLRState): In debugging output, distinguish
6846 between an unresolved state (non-empty chain of semantic options) and
6847 an incomplete one (signaled by an empty chain).
6848 (yyresolveStates): Document the interface. Move all manipulation of a
6849 successfully or unsuccessfully resolved yyGLRState to...
6850 (yyresolveValue): ... here so that yyresolveValue always leaves a
6851 yyGLRState with consistent data and thus is easier to understand.
6852 Remove the yyvalp and yylocp parameters since they are always just
6853 taken from the yys parameter. When reporting a discarded merged value
6854 in debugging output, note that it is incompletely merged. Document the
6855 interface.
6856 (yyresolveAction): If resolving any of the RHS states fails, destroy
6857 them all rather than leaking them. Thus, as long as user actions are
6858 written to clean up the RHS correctly, yyresolveAction always cleans up
6859 the RHS of a semantic option. Document the interface.
6860
6861 2006-02-27 Paul Eggert <eggert@cs.ucla.edu>
6862
6863 * data/glr.c (yyexpandGLRStack): Catch an off-by-one error that
6864 led to a segmentation fault in GNU Pascal. Problem reported
6865 by Waldek Hebisch.
6866
6867 2006-02-21 Joel E. Denny <jdenny@ces.clemson.edu>
6868
6869 * doc/bison.texinfo (Mid-Rule Actions): Explain how to bury a
6870 mid-rule action inside a nonterminal symbol in order to declare a
6871 destructor for its semantic value.
6872
6873 2006-02-16 Paul Eggert <eggert@cs.ucla.edu>
6874
6875 * data/yacc.c [(! defined yyoverflow || YYERROR_VERBOSE) && !
6876 YYSTACK_USE_ALLOCA && ! defined YYSTACK_ALLOC && defined
6877 __cplusplus && ! defined _STDLIB_H && !
6878 ((defined YYMALLOC || defined malloc) && (defined YYFREE ||
6879 defined free))]: Include <stdlib.h> rather than rolling our own
6880 declarations of malloc and free, to avoid problems with
6881 incompatible declarations (using 'throw') C++'s stdlib.h. This
6882 should fix Debian bug 340012
6883 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=340012>,
6884 reported by Guillaume Melquiond.
6885
6886 2006-02-13 Paul Eggert <eggert@cs.ucla.edu>
6887
6888 * NEWS: Clarify symbols versus types in unused-value warnings.
6889
6890 * configure.ac (AC_INIT): Bump version number.
6891
6892 2006-02-13 Paul Eggert <eggert@cs.ucla.edu>
6893
6894 * NEWS: Version 2.1a.
6895 * tests/headers.at (AT_TEST_CPP_GUARD_H): Declare yyerror and yylex,
6896 since C99 requires this.
6897
6898 2006-02-11 Paul Eggert <eggert@cs.ucla.edu>
6899
6900 * m4/c-working.m4: New file.
6901 * configure.ac (BISON_TEST_FOR_WORKING_C_COMPILER): Use it.
6902
6903 2006-02-10 Paul Eggert <eggert@cs.ucla.edu>
6904
6905 * Makefile.maint: Merge from coreutils.
6906
6907 2006-02-09 Paul Eggert <eggert@cs.ucla.edu>
6908
6909 More portability fixes for problems summarized by Nelson H. F. Beebe.
6910
6911 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Catch a
6912 configuration screwup "./configure CC=/opt/SUNWspro/bin/c89
6913 CFLAGS="-xarch=generic64" CXX=/opt/SUNWspro/bin/CC
6914 LDFLAGS="-xarch=generic64" with Sun C 5.7 on Solaris 10; this
6915 messes up because C++ code is compiled in 32-bit mode but linked
6916 in 64-bit mode.
6917
6918 2006-02-08 Paul Eggert <eggert@cs.ucla.edu>
6919
6920 More portability fixes for problems summarized by Nelson H. F. Beebe.
6921
6922 * doc/bison.texinfo (Calc++ Scanner): Work around a bug in flex
6923 2.5.31. This resembles the 2005-10-10 patch to src/scan-skel.l.
6924
6925 * examples/calc++/Makefile.am (check_PROGRAMS): Renamed from
6926 nodist_PROGRAMS, since we don't need to actually compile the
6927 example if we're just doing a plain 'make'. This avoids bothering
6928 the installer unnecessarily about problems due to weird C++
6929 compilers.
6930
6931 2006-02-06 Paul Eggert <eggert@cs.ucla.edu>
6932
6933 More portability fixes for problems summarized by Nelson H. F. Beebe.
6934
6935 * tests/headers.at (AT_TEST_CPP_GUARD_H): Use #include <...> rather
6936 than #include "...", and compile with -I'.'. The old method was
6937 not portable, according to Posix and the C standard, and it does
6938 not work with Sun C 5.7, where previous #line directives affect
6939 the working directory used in later #include "..." directives.
6940
6941 2006-02-06 Juan Manuel Guerrero <juan.guerrero@gmx.de>
6942
6943 Various DJGGP specific issues in /djgpp
6944
6945 2006-02-02 Paul Eggert <eggert@cs.ucla.edu>
6946
6947 More portability fixes for problems summarized by Nelson H. F. Beebe.
6948
6949 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check that
6950 '#include <map>' works and that you can apply ++ to iterators.
6951
6952 2006-02-01 Paul Eggert <eggert@cs.ucla.edu>
6953
6954 Work around portability problems summarized by Nelson H. F. Beebe in
6955 <http://lists.gnu.org/archive/html/bug-bison/2005-09/msg00021.html>.
6956
6957 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
6958 that '#include <string>' works.
6959
6960 * data/lalr1.cc (yytranslate_): No longer inline, to work around a
6961 porting problem to g++ 3.4.3 on Darwin 7.9.0, where g++ complained
6962 "warning: sorry: semantics of inline function static data `const
6963 unsigned char translate_table[262]' are wrong (you'll wind up with
6964 multiple copies)".
6965
6966 * lib/bbitset.h (struct bitset_vtable): Rename members not, and,
6967 or, xor to not_, and_, or_, and xor_, respectively. This works
6968 around a bug in GCC 3.4.3 on Irix 6.5, which apparently has a
6969 random system header somewhere that includes the equivalent of
6970 <iso646.h>.
6971
6972 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that "$CC
6973 -E" works; it apparently doesn't work with PathScale EKO Compiler
6974 Suite Version 2.0.
6975
6976 2006-01-30 Joel E. Denny <jdenny@ces.clemson.edu>
6977
6978 During deterministic GLR operation, user actions should be able to
6979 influence the parse by changing yychar. To make this easier to fix and
6980 to make glr.c easier to evolve in general, don't maintain yytoken in
6981 parallel with yychar; just compute yytoken when needed.
6982 * tests/glr-regression.at (Incorrect lookahead during deterministic
6983 GLR): Check that setting yychar in a user action has the intended
6984 effect.
6985 * data/glr.c (yyGLRStack): Remove yytokenp member.
6986 (yyclearin): Don't set *yytokenp.
6987 (yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Examine
6988 yychar rather than *yytokenp to determine the current lookahead.
6989 Compute yytoken locally when needed.
6990 (yyparse): Likewise. Remove the local yytoken that yytokenp used to
6991 point to.
6992
6993 * doc/bison.texinfo (Bison Options): Remove stray sentence fragment
6994 after `--report' documentation.
6995
6996 2006-01-30 Paul Eggert <eggert@cs.ucla.edu>
6997
6998 * src/parse-gram.y (grammar_declaration): Location of printer
6999 symbol is @1, not list->location. Bug reported by twlevo.
7000 * tests/input.at (Incompatible Aliases): Adjust to above change.
7001
7002 2006-01-29 Paul Eggert <eggert@cs.ucla.edu>
7003
7004 * tests/input.at (AT_CHECK_UNUSED_VALUES): Remove. Instead, do
7005 all the test at once. This makes the output easier to read in the
7006 normal case.
7007
7008 Fix a longstanding bug uncovered by bro-0.9a9/src/parse.y, which I
7009 got from <http://bro-ids.org/download.html>. The bug is that
7010 when two actions appeared in succession, the second one was
7011 scanned before the first one was added to the grammar rule
7012 as a midrule action. Bison then output the incorrect warning
7013 "parse.y:905.17-906.36: warning: unused value: $3".
7014 * src/parse-gram.y (BRACED_CODE, action): These are no longer
7015 associated with a value.
7016 (rhs): Don't invoke grammar_current_rule_action_append.
7017 (action): Invoke it here instead.
7018 * src/reader.c (grammar_midrule_action): Now extern.
7019 (grammar_current_rule_action_append): Don't invoke
7020 grammar_midrule_action; that is now the scanner's job.
7021 * src/reader.h (last_string, last_braced_code_loc):
7022 (grammar_midrule_action): New decls.
7023 * src/scan-gram.l (last_string): Now extern, sigh.
7024 (last_braced_code_loc): New extern variable.
7025 (<INITIAL>"{"): Invoke grammar_midrule_action if the current
7026 rule already has an action.
7027 (<SC_BRACED_CODE>"}"): Set last_braced_code_loc before returning.
7028 * tests/input.at (AT_CHECK_UNUSED_VALUES):
7029 Add some tests to check that the above changes fixed the bug.
7030
7031 2006-01-27 Paul Eggert <eggert@cs.ucla.edu>
7032
7033 * src/reader.c (symbol_should_be_used): Renamed from symbol_typed_p.
7034 All used changed. Check whether the symbol has a destructor,
7035 not whether it is typed.
7036 * tests/input.at (AT_CHECK_UNUSED_VALUES): Add a destructor, so
7037 that the values are still reported as unused. All line numbers
7038 adjusted.
7039
7040 2006-01-23 Paul Eggert <eggert@cs.ucla.edu>
7041
7042 Work around a bug in bro 0.8, which underparenthesizes its
7043 definition of YYLLOC_DEFAULT.
7044 * data/glr.c: Change all uses of YYLLOC_DEFAULT to parenthesize
7045 their arguments.
7046 * data/lalr1.cc: Likewise.
7047 * data/yacc.cc: Likewise.
7048
7049 2006-01-22 Paul Eggert <eggert@cs.ucla.edu>
7050
7051 Work around a bug in Pike 7.0, and give the Pike folks a
7052 better way to override the usual int widths.
7053 * data/yacc.c (b4_int_type): Use yytype_uint8, etc., so that the
7054 user can override the types.
7055 (short): #undef, to work around a bug in Pike 7.0.
7056 (yytype_uint8, yytype_int8, yytype_uint16, yytype_int16): New types.
7057 (union yyalloc.yyss): Use yytype_int16 rather than short.
7058 All uses changed.
7059 (yysigned_char): Remove.
7060 * src/parse-gram.y (YYTYPE_UINT8, YYTYPE_INT8, YYTYPE_UINT16):
7061 (YYTYPE_INT16): New macros, to test the new facility in yacc.c.
7062 * tests/regression.at (Web2c Actions): Adjust to above changes.
7063
7064 * src/reader.c (check_and_convert_grammar): New function.
7065 (reader): Close the input file even if something went wrong during
7066 parsing. Minor file descriptor leak reported by twlevo.
7067
7068 * src/assoc.c (assoc_to_string): Use a default: abort (); case
7069 to pacify gcc -Wswitch-default.
7070 * src/scan-gram.l (adjust_location): Use a default: break; case
7071 to pacify gcc -Wswitch-default.
7072 * src/scan-skel.h (skel_get_lineno, skel_get_in, skel_get_out):
7073 (skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
7074 (skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
7075 Move these decls to scan-skel.l, since they don't need to be
7076 visible elsewhere.
7077 * src/scan-skel.l: Accept the above decls.
7078 (skel_lex): New decl, to pacify GCC when unpatched flex 2.5.31
7079 is used.
7080
7081 2006-01-21 Paul Eggert <eggert@cs.ucla.edu>
7082
7083 * Makefile.cfg (local-checks-to-skip): Add changelog-check,
7084 since we don't want to insist on a version number at the start
7085 of the changelog every time.
7086 * Makefile.maint: Sync from coreutils a bit better.
7087 (sc_trailing_blank): Renamed from sc_trailing_space.
7088 All uses changed.
7089 (sc_no_if_have_config_h, sc_require_config_h):
7090 (sc_prohibit_assert_without_use): New rules.
7091 (sc_obsolete_symbols): Don't catch Makefile.maint itself.
7092 (sc_dd_max_sym_length): Fix leading spaces in rule.
7093 (sc_system_h_headers): Prefix with @.
7094 (sc_useless_cpp_parens, m4-check): Output line numbers.
7095 (changelog-check): Allow version only in head.
7096 * data/c.m4: Use "defined FOO" instead of "defined (FOO)", to
7097 satisfy new Makefile.maint rule.
7098 * data/glr.c: Likewise.
7099 * data/glr.cc: Likewise.
7100 * data/lalr1.cc: Likewise.
7101 * data/yacc.c: Likewise.
7102 * lib/ebitsetv.c: Likewise.
7103 * lib/lbitset.c: Likewise.
7104 * lib/subpipe.c: Likewise.
7105 * lib/timevar.c: Likewise.
7106 * src/system.h: Likewise.
7107 * data/yacc.c (YYSTYPE): Don't generate trailing spaces in output.
7108 * djgpp/Makefile.maint: Add copyright notice.
7109 * djgpp/README.in: Likewise.
7110 * djgpp/config.bat: Likewise.
7111 * djgpp/config.site: Likewise.
7112 * djgpp/config_h.sed: Likewise.
7113 * djgpp/djunpack.bat: Likewise.
7114 * djgpp/config.sed: Fix copyright notice to match standard format.
7115 * djgpp/subpipe.h: Likewise.
7116 * lib/bitsetv-print.c: Likewise.
7117 * lib/bitsetv.c: Likewise.
7118 * lib/subpipe.h: Likewise.
7119 * lib/timevar.c: Likewise.
7120 * lib/timevar.h: Likewise.
7121 * djgpp/subpipe.c: Use standard recipe for config.h.
7122 * lib/abitset.c: Likewise.
7123 * lib/bitset.c: Likewise.
7124 * lib/bitset_stats.c: Likewise.
7125 * lib/bitsetv-print.c: Likewise.
7126 * lib/bitsetv.c: Likewise.
7127 * lib/ebitsetv.c: Likewise.
7128 * lib/get-errno.c: Likewise.
7129 * lib/lbitset.c: Likewise.
7130 * lib/subpipe.c: Likewise.
7131 * lib/timevar.c: Likewise.
7132 * lib/vbitset.c: Likewise.
7133 * tests/local.at: Likewise.
7134 * src/scan-gram.l: Don't include verify.h, since system.h does
7135 that for us.
7136 * .x-sc_require_config_h: New file.
7137 * .x-sc_unmarked_diagnostics: New file.
7138
7139 2006-01-20 Paul Eggert <eggert@cs.ucla.edu>
7140
7141 Be a bit more systematic about using 'abort'.
7142 * lib/abitset.c (abitset_test): Remove ATTRIBUTE_UNUSED; not needed.
7143 * lib/bitset.c (bitset_bytes, bitset_init, bitset_op4_cmp):
7144 Put 'default: abort ();' before some other case, to satisfy older
7145 pedantic compilers.
7146 * lib/bitset_stats.c (bitset_stats_init): Likewise.
7147 * lib/ebitset.c (ebitset_elt_find, ebitset_op3_cmp): Likewise.
7148 * lib/lbitset.c (lbitset_elt_find, lbitset_op3_cmp): Likewise.
7149 * src/conflicts.c (resolve_sr_conflict): Likewise.
7150 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str):
7151 (get_decision_str, get_orientation_str, get_node_alignment_str):
7152 (get_arrow_mode_str, get_crossing_type_str, get_view_str):
7153 (get_linestyle_str, get_arrowstyle_str): Likewise.
7154 * src/conflicts.c (resolve_sr_conflict):
7155 Use a default case rather than one for the one remaining enum
7156 value, to catch invalid enum values as well.
7157 * src/lalr.c (set_goto_map, map_goto):
7158 Prefer "assert (FOO);" to "if (!FOO) abort ();".
7159 * src/nullable.c (nullable_compute, token_definitions_output):
7160 Likewise.
7161 * src/reader.c (packgram, reader): Likewise.
7162 * src/state.c (transitions_to, state_new, state_reduction_find):
7163 Likewise.
7164 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias):
7165 (symbol_pack): Likewise.
7166 * src/tables.c (conflict_row, pack_vector): Likewise.
7167 * src/scan-skel.l (QPUTS): Remove unnecessary parens.
7168 (BASE_QPUTS, "@output ".*\n): Remove unnecessary asserts.
7169 * src/system.h: Don't include <assert.h>.
7170 (assert): New macro.
7171
7172 * doc/bison.texinfo (Prologue, Rules, Actions, Union Decl, Action Decl):
7173 (Destructor Decl, Parser Function, Pure Calling):
7174 Describe rules for braces inside C code more carefully.
7175
7176 2006-01-19 Paul Eggert <eggert@cs.ucla.edu>
7177
7178 Fix some porting glitches found by Nelson H. F. Beebe.
7179 * lib/abitset.c (abitset_resize): Rewrite to avoid warnings from
7180 compilers that don't understand that abort () does not return.
7181 * src/state.c (transitions_to): Likewise.
7182 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
7183 that '#include <cstdlib>' works.
7184 * src/system.h (INT8_MIN, INT16_MIN, INT32_MIN, INT8_MAX):
7185 (INT16_MAX, UINT8_MAX, INT32_MAX, UINT16_MAX, UINT32_MAX):
7186 #undef if ! defined __STDC_VERSION__ || __STDC_VERSION__ < 199901,
7187 for the benefit of some pre-C99 compilers.
7188
7189 * bootstrap: Undo changes to gnulib files that autoreconf made.
7190
7191 Minor fixups to get 'make maintainer-check' to work.
7192 * configure.ac: Don't use -Wnested-externs, as it's incompatible
7193 with the new verify.h implementation.
7194 * data/c.m4 (b4_yy_symbol_print_generate): YYUSE (yyoutput).
7195 * data/glr.c (YYUSE): Depend on __GNUC__ as well.
7196 * data/yacc.c (YYUSE): Likewise.
7197 * data/lalr1.cc (yysyntax_error_): YYUSE (yystate).
7198 * lib/subpipe.c (end_of_output_subpipe): The args are unused.
7199 * src/parse-gram.y (declaration): Don't pass a string constant
7200 to a function that expects char *, since GCC might complain
7201 about the constant value.
7202 * src/reader.c (symbol_typed_p): Add parens to pacify GCC.
7203 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): #undef yylloc and yylval
7204 before #defining them.
7205 * tests/glr-regression.at
7206 (Incorrectly initialized location for empty right-hand side in GLR):
7207 In yyerror, use the msg arg.
7208 (Corrupted semantic options if user action cuts parse):
7209 (Incorrect lookahead during deterministic GLR):
7210 (Incorrect lookahead during nondeterministic GLR):
7211 Don't name a local var 'index'; it shadows string.h's 'index'.
7212
7213 2006-01-19 Akim Demaille <akim@epita.fr>
7214
7215 * tests/calc.at (_AT_DATA_CALC_Y): Initialize the whole initial
7216 location, not just parts of it.
7217
7218 2006-01-18 Paul Eggert <eggert@cs.ucla.edu>
7219
7220 * NEWS: Document the fact that multiple %unions are now allowed.
7221 * doc/bison.texinfo (Union Decl): Likewise.
7222 * TODO: This feature is now implemented, so remove it from
7223 the wishlist.
7224
7225 * Makefile.maint: Merge with coreutils Makefile.maint.
7226 (CVS_LIST): Use build-aux version if available.
7227 (VERSION_REGEXP): New macro.
7228 (syntax-check-rules): Add sc_no_if_have_config_h,
7229 sc_prohibit_assert_without_use, sc_require_config_h,
7230 sc_useless_cpp_parens.
7231 (sc_obsolete_symbols): Check for O_NDELAY.
7232 (sc_dd_max_sym_length): Track coreutils.
7233 (sc_unmarked_diagnostics): Look in all files, not just *.c.
7234 (sc_useless_cpp_parens): New rule.
7235 (news-date-check): Look for version or today's date.
7236 (changelog-check): Don't require version number near head.
7237 (copyright-check): Use current year instead of hardwiring 2005.
7238 (my-distcheck): Depend on $(release_archive_dir)/$(prev-tgz).
7239 (announcement): Add --gpg-key-ID.
7240
7241 * djgpp/config.sed: Add copyright notice, and replace "filesystem"
7242 with "file system".
7243
7244 Avoid undefined behavior that addressed just before the start of an
7245 array. Problem reported by twlevo.
7246 * src/reader.c (packgram): Prepend a new sentinel before ritem.
7247 * src/lalr.c (build_relations): Rely on new sentinel.
7248 * src/gram.c (gram_free): Adjust to new sentinel.
7249
7250 2006-01-12 Joel E. Denny <jdenny@ces.clemson.edu>
7251
7252 * data/glr.c (yyGLRStateSet): Rename yylookaheadStatuses to
7253 yylookaheadNeeds. All uses updated.
7254 (yysplitStack): Rename local yynewLookaheadStatuses to
7255 yynewLookaheadNeeds.
7256 * data/glr-regression.at (Incorrect lookahead during nondeterministic
7257 GLR): In comments, change `lookahead status' to `lookahead need'.
7258
7259 2006-01-11 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
7260
7261 * data/glr.c (yysplitStack): A little stylistic rewrite.
7262
7263 2006-01-11 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
7264
7265 * data/glr.c (yyaddDeferredAction): Flesh out the comment.
7266
7267 2006-01-11 Joel E. Denny <jdenny@ces.clemson.edu>
7268
7269 * doc/bison.texinfo: Fix some typos.
7270 (GLR Semantic Actions): New subsection discussing special
7271 considerations because GLR semantic actions might be deferred.
7272 (Actions): Mention look-ahead usage of yylval.
7273 (Actions and Locations): Mention look-ahead usage of yylloc.
7274 (Special Features for Use in Actions): Add YYEOF entry and mention it
7275 in the yychar entry.
7276 In the yychar entry, remove mention of the local yychar case (pure
7277 parser) since this is irrelevant information when writing semantic
7278 actions and since it's already discussed in `Table of Symbols' where
7279 yychar is otherwise described as an external variable.
7280 In the yychar entry, don't call it the `current' look-ahead since it
7281 isn't when semantic actions are deferred.
7282 In the yychar and yyclearin entries, add note about deferred semantic
7283 actions.
7284 Add yylloc and yylval entries discussing look-ahead usage.
7285 (Look-Ahead Tokens): When discussing yychar, don't call it the
7286 `current' look-ahead, and do mention yylval and yylloc.
7287 (Error Recovery): Cross-reference `Action Features' when mentioning
7288 yyclearin.
7289 (Table of Symbols): In the yychar entry, don't call it the `current'
7290 look-ahead.
7291 In the yylloc and yylval entries, mention look-ahead usage.
7292
7293 2006-01-08 Joel E. Denny <jdenny@ces.clemson.edu>
7294
7295 * tests/glr-regression.at: Update copyright year to 2006.
7296
7297 2006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
7298
7299 * data/glr.c (yyGLRStateSet): Add yybool* yylookaheadStatuses member to
7300 use during nondeterministic operation to track which stacks have
7301 actually needed the current lookahead.
7302 (yyinitStateSet, yyfreeStateSet, yyremoveDeletes, yysplitStack):
7303 Allocate, deallocate, resize, and otherwise shuffle space for
7304 yylookaheadStatuses in parallel with yystates member of yyGLRStateSet.
7305 (yysplitStack, yyprocessOneStack, yyparse): Set lookahead status
7306 appropriately during nondeterministic operation.
7307 (yySemanticOption): Add int yyrawchar, YYSTYPE yyval, and YYLTYPE yyloc
7308 members to store the current lookahead to be used by the deferred
7309 user action.
7310 (yyaddDeferredAction): Add size_t yyk parameter specifying the stack
7311 from which the RHS is taken. Set the lookahead members of the new
7312 yySemanticOption according to the lookahead status for stack yyk.
7313 (yyglrShiftDefer, yyglrReduce): Pass yyk parameter on to
7314 yyaddDeferredAction.
7315 (yyresolveAction): Set yychar, yylval, and yylloc to the lookahead
7316 members of yySemanticOption before invoking yyuserAction, and then set
7317 them back to their current values afterward.
7318 (yyparse): Set yychar = YYEMPTY where yytoken = YYEMPTY.
7319 (yyreportAmbiguity): Add /*ARGSUSED*/ to pacify lint.
7320 * tests/glr-regression.at: Remove `.' from the ends of recent test case
7321 titles for consistency.
7322 (Leaked merged semantic value if user action cuts parse): In order to
7323 suppress lint warnings, use arguments in merge function, and assign
7324 char value < 128 in main.
7325 (Incorrect lookahead during deterministic GLR): New test case.
7326 (Incorrect lookahead during nondeterministic GLR): New test case.
7327
7328 2006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
7329
7330 * data/c.m4 (b4_yy_symbol_print_generate): In yy_symbol_print, accept
7331 !yyvaluep as signal that no semantic value is available to print.
7332 * data/glr.c (yydestroyGLRState): If state is not resolved, don't try
7333 to print a semantic value.
7334
7335 2006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
7336
7337 * tests/glr-regression.at: For consistency with my newer test cases,
7338 don't thank myself.
7339
7340 2006-01-05 Joel E. Denny <jdenny@ces.clemson.edu>
7341
7342 * data/glr.c (yyresolveValue): When merging semantic options, if at
7343 least one user action succeeds but a later one cuts the parse, then
7344 destroy the semantic value before returning rather than leaking it.
7345 (yyresolveStates): If a user action cuts the parse and thus
7346 yyresolveValue fails, ignore the (unset) semantic value rather than
7347 corrupting the yyGLRState, and empty the semantic options list since
7348 the user actions should have called all necessary destructors.
7349 Simplify code with YYCHK.
7350 * tests/glr-regression.at (Corrupted semantic options if user action
7351 cuts parse): New test case.
7352 (Undesirable destructors if user action cuts parse): New test case.
7353 Before applying any of this patch, this test case never actually failed
7354 for me... but only because the corrupted semantic options usually
7355 masked this bug.
7356 (Leaked merged semantic value if user action cuts parse): New test
7357 case.
7358
7359 2006-01-05 Akim Demaille <akim@epita.fr>
7360
7361 * src/reader.c, src/symlist.h, src/symlist.c: s/mid_rule/midrule/.
7362
7363 2006-01-04 Paul Eggert <eggert@cs.ucla.edu>
7364
7365 * data/c.m4 (b4_c_modern): New macro, with a new provision for
7366 _MSC_VER. Problem reported by Cenzato Marco.
7367 (b4_c_function_def): Use it.
7368 * data/yacc.c (YYMODERN_C): Remove. All uses replaced by
7369 b4_c_modern.
7370 (yystrlen, yystpcpy, yyparse): Use b4_c_function... macros rather
7371 than rolling our own.
7372
7373 2006-01-04 Akim Demaille <akim@epita.fr>
7374
7375 Also warn about non-used mid-rule values.
7376 * src/symlist.h, src/symlist.c (symbol_list): Add a mid_rule
7377 member.
7378 (symbol_list_new): Adjust.
7379 * src/reader.c (symbol_typed_p): New.
7380 (grammar_rule_check): Use it.
7381 (grammar_midrule_action): Bind a mid-rule LHS to its rule.
7382 Check its rule.
7383 * tests/input.at (AT_CHECK_UNUSED_VALUES): New.
7384 Use it.
7385 * tests/actions.at (Exotic Dollars): Adjust.
7386
7387 2006-01-04 Akim Demaille <akim@epita.fr>
7388
7389 * src/reader.c (grammar_midrule_action): If $$ is set in a
7390 mid-rule, move the `used' bit to its lhs.
7391 * tests/input.at (Unused values): New.
7392 * tests/actions.at (Exotic Dollars): Adjust: exp is not typed.
7393
7394 2006-01-03 Paul Eggert <eggert@cs.ucla.edu>
7395
7396 * doc/bison.texinfo (Bison Options): Say more accurately what
7397 --yacc does.
7398 * src/parse-gram.y (rules_or_grammar_declaration): Don't complain
7399 about declarations in the grammar when in Yacc mode, as POSIX does
7400 not require a diagnostic when the grammar uses extensions.
7401
7402 * src/reduce.c (reduce_grammar): Remove unnecessary cast to bool.
7403
7404 Warn about dubious constructions like "%token T T".
7405 Reported by twlevo.
7406 * src/symtab.h (struct symbol.declared): New member.
7407 * src/symtab.c (symbol_new): Initialize it to false.
7408 (symbol_class_set): New arg DECLARING, specifying whether
7409 this is a declaration that we want to warn about, if there
7410 is more than one of them. All uses changed.
7411
7412 * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c:
7413 Allow multiple %union directives, whose contents concatenate.
7414 * src/parse-gram.y (grammar_declaration): Likewise.
7415 Use muscle_code_grow, so that we don't need stype_line any more.
7416 All uses changed.
7417
7418 * src/muscle_tab.c (muscle_grow): Fix comment.
7419
7420 * ChangeLog, data/c.m4, data/glr.c, data/glr.cc, data/location.cc:
7421 * data/yacc.c, src/getargs.c, src/output.c, tests/cxx-type.at:
7422 Update copyright year to 2006.
7423
7424 2006-01-03 Akim Demaille <akim@epita.fr>
7425
7426 Have glr.cc pass (some of) the calc.at tests.
7427 * data/glr.cc (b4_parse_param_orig): New.
7428 (b4_parse_param): Improve its definition, and bound it more
7429 clearly in the skeleton.
7430 (b4_epilogue): Append, instead of prepending, in order to keep
7431 #line consistency.
7432 Simplify the generation of auxiliary functions: locations and
7433 purity are mandated.
7434 (b4_global_tokens_and_yystype): Honor it.
7435 * data/location.cc (c++.m4): Don't include it.
7436 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Define AT_GLR_CC_IF
7437 and AT_SKEL_CC_IF.
7438 * tests/calc.at (AT_CHECK_CALC): Rely on AT_SKEL_CC_IF instead of
7439 AT_LALR1_CC_IF.
7440 Be sure to initialize the first position's filename.
7441 (AT_CHECK_CALC_LALR1_CC): Add %location and %defines, they are
7442 mandated anyway.
7443 (AT_CHECK_CALC_GLR_CC): New.
7444 Use it to exercise glr.cc as a lalr1.cc drop-in replacement.
7445
7446 2006-01-02 Akim Demaille <akim@epita.fr>
7447
7448 * src/output.c (output_skeleton): Don't hard wire the inclusion of
7449 c.m4.
7450 * data/c++.m4, data/glr.c, data/yacc.c: Include c.m4.
7451 * data/glr.cc: Do not include stack.hh.
7452
7453 2006-01-02 Joel E. Denny <jdenny@ces.clemson.edu>
7454
7455 * data/glr.c: Reformat whitespace with tabs.
7456 (b4_lpure_formals): Remove this unused m4 macro.
7457 * tests/cxx-type.at: Reformat whitespace with tabs.
7458 (_AT_TEST_GLR_CXXTYPES): In union Node, rename node_info to nodeInfo
7459 since it's a member. Rename type to isNterm for clarity.
7460
7461 2005-12-29 Akim <akim@sulaco.local>
7462
7463 Let glr.cc catch up with symbol_value_print.
7464 * data/glr.cc (b4_yysymprint_generate): Replace by...
7465 (b4_yy_symbol_print_generate): this.
7466 (yy_symbol_print, yy_symbol_value_print): Declare them.
7467
7468 2005-12-28 Paul Eggert <eggert@cs.ucla.edu>
7469
7470 * src/location.h (boundary): Note that a line or column equal
7471 to INT_MAX indicates an overflow.
7472 * src/scan-gram.l: Include verify.h. Don't include get-errno.h.
7473 (rule_length_overflow, increment_rule_length, add_column_width):
7474 New functions.
7475 (<INITIAL>{id}, <SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'"):
7476 (<SC_BRACED_CODE>"}"):
7477 Use increment_rule_length rather than incrementing it by hand.
7478 (adjust_location, handle_syncline): Diagnose overflow.
7479 (handle_action_dollar, handle_action_at):
7480 Fix bug with monstrosities like $-2147483648.
7481 Remove now-unnecessary checks.
7482 (scan_integer): Verify assumptions and remove now-unnecessary checks.
7483 (convert_ucn_to_byte): Verify assumptions.
7484 (handle_syncline): New arg LOC. All callers changed.
7485 Don't store through a value derived from char const * pointer.
7486
7487 * src/reader.c (grammar_rule_check): Rewrite slightly to avoid
7488 GCC warnings.
7489
7490 2005-12-27 Paul Eggert <eggert@cs.ucla.edu>
7491
7492 * src/reader.c (grammar_midrule_action, grammar_symbol_append):
7493 Remove unnecessary forward static decls.
7494
7495 2005-12-27 Akim Demaille <akim@epita.fr>
7496
7497 * src/reader.c (grammar_current_rule_check): Also check that $$
7498 is used.
7499 Take the rule to check as argument, hence rename as...
7500 (grammar_rule_check): this.
7501 * src/reader.h, src/reader.c (grammar_rule_begin, grammar_rule_end):
7502 Rename as...
7503 (grammar_rule_begin, grammar_rule_end): these, for consistency.
7504 (grammar_midrule_action, grammar_symbol_append): Now static.
7505 * tests/torture.at (input): Don't rely on the default action
7506 being always performed.
7507 * tests/calc.at: "Set" $$ even when the action is "cut" with
7508 YYERROR or other.
7509 * tests/actions.at (Exotic Dollars): Instead of using unused
7510 values, check that the warning is issued.
7511
7512 2005-12-22 Paul Eggert <eggert@cs.ucla.edu>
7513
7514 * NEWS: Improve wording for unused-value warnings.
7515
7516 2005-12-22 Akim Demaille <akim@epita.fr>
7517
7518 * data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
7519 (b4_yysymprint_generate): Rename as...
7520 (b4_yy_symbol_print_generate): this.
7521 Generate yy_symbol_print instead of yysymprint.
7522 Generate also yy_symbol_value_print, and use it.
7523
7524 2005-12-22 Akim Demaille <akim@epita.fr>
7525
7526 * NEWS: Warn about unused values.
7527 * src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
7528 a `used' member.
7529 (symbol_list_n_get, symbol_list_n_used_set): New.
7530 (symbol_list_n_type_name_get): Use symbol_list_n_get.
7531 * src/scan-gram.l (handle_action_dollar): Flag used symbols.
7532 * src/reader.c (grammar_current_rule_check): Check that values are
7533 used.
7534 * src/symtab.c (symbol_print): Accept 0.
7535 * tests/existing.at: Remove the type information.
7536 Empty the actions.
7537 Remove useless actions (beware of mid-rule actions: perl -000
7538 -pi -e 's/\s*\{\}(?=[\n\s]*[|;])//g').
7539 * tests/actions.at (Exotic Dollars): Use unused values.
7540 * tests/calc.at: Likewise.
7541 * tests/glr-regression.at (No users destructors if stack 0 deleted):
7542 Likewise.
7543
7544 * src/gram.c (rule_useful_p, rule_never_reduced_p): Use
7545 rule_useful_p.
7546
7547 2005-12-21 Paul Eggert <eggert@cs.ucla.edu>
7548
7549 Undo 2005-12-01 tentative license wording change. The wording is
7550 still being reviewed by the lawyers, and we don't want to wait for
7551 them before publishing a test release. For now, revert to the
7552 previous wording.
7553 * NEWS: Undo 2005-12-01 change.
7554 * data/glr.c: Revert to previous license wording.
7555 * data/glr.cc: Likewise.
7556 * data/lalr1.cc: Likewise.
7557 * data/location.cc: Likewise.
7558 * data/yacc.c: Likewise.
7559
7560 * NEWS: Reword %destructor vs YYABORT etc.
7561 * data/glr.c: Use American spacing, for consistency.
7562 * data/glr.cc: Likewise.
7563 * data/lalr1.cc: Likewise.
7564 * data/yacc.c: Likewise.
7565 * data/yacc.c: Reformat comments slightly.
7566 * doc/bison.texinfo: Replace "non-" with "non" when that makes sense,
7567 for consistency. Fix some spelling errors and reword recently-included
7568 text slightly.
7569 * tests/cxx-type.at: Cast results of malloc, for C++.
7570
7571 2005-12-21 Joel E. Denny <address@hidden>
7572
7573 * tests/cxx-type.at: Construct a tree, count the parents of shared
7574 nodes, and free each node once and only once. Previously, the memory
7575 for semantic values was leaked instead.
7576
7577 2005-12-21 Joel E. Denny <address@hidden>
7578
7579 * data/glr.c (struct yyGLRStack): If pure, add yyval and yyloc members.
7580 (yylval, yylloc): If pure, #define to yystackp->yyval and
7581 yystackp->yyloc similar to yychar and yynerrs.
7582 (yyparse): If pure, remove local yylval and yylloc. Add local
7583 yystackp to accommodate pure definitions of yylval and yylloc.
7584 (b4_lex_param, b4_lyyerror_args, b4_lpure_args): If pure, change
7585 yylvalp and yyllocp to &yylval and &yylloc.
7586 (nerrs, char, lval, lloc): If pure, add #define's for b4_prefix[]
7587 namespace. Previously, nerrs and char were missing, but lval and lloc
7588 weren't necessary.
7589 (yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Remove
7590 yylvalp and yyllocp parameters since, if pure, these are now always
7591 accessible through yystackp. If not pure, they are still accessible
7592 globally.
7593 * data/glr.c, data/yacc.c (YYLLOC_DEFAULT): Change `if (N)' to
7594 `if (YYID (N))' to pacify lint.
7595
7596 2005-12-21 Akim Demaille <akim@epita.fr>
7597
7598 YYACCEPT, YYERROR, and YYABORT, as user actions, should not
7599 destroy the RHS symbols of a rule.
7600 * data/yacc.c (yylen): Initialize to 0.
7601 Keep its value to the number of items to possibly shift.
7602 In particular, a regular successful parse that ends on YYFINAL by
7603 a (internal) YYACCEPT must not have yylen != 0.
7604 (yyerrorlab, yyreturn): Pop the RHS.
7605 Reorder a bit to emphasize the `shifting' bits of code.
7606 (YYPOPSTACK): Now accept a number of items to pop.
7607 * data/lalr1.cc: Likewise.
7608 * data/glr.c: Formatting changes.
7609 Use goto instead of fall through.
7610 * doc/bison.texinfo (Destructor Decl): Complete.
7611
7612 2005-12-20 Juan Manuel Guerrero <juan.guerrero@gmx.de>
7613
7614 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
7615 * djgpp/Makefile.maint: Fix PACKAGE variable computation.
7616 * djgpp/config.bat: Replace every occurence of the file name
7617 scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
7618 c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
7619 * djgpp/config.sed: Replace every occurence of the file name
7620 scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
7621 c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
7622 * djgpp/djunpack.bat: DJGPP specific file.
7623 * djgpp/fnchange.lst: DJGPP specific file.
7624 * djgpp/README.in: Add new information about how to unpack the bison
7625 source on MSDOS and other systems which have 8.3 file name restrictions
7626 using djunpack.bat and fnchange.lst.
7627
7628 2005-12-12 Paul Eggert <eggert@cs.ucla.edu>
7629
7630 * bootstrap (build_cvs_prefix): Remove; unused.
7631 (CVS_PREFIX): Adjust to yesterday's Savannah reorganization
7632 when getting gnulib.
7633
7634 2005-12-12 "Joel E. Denny" <jdenny@ces.clemson.edu>
7635
7636 * data/glr.c: Reorder typedef declarations for structs to match order
7637 of struct declarations.
7638 Rename yystack everywhere to yystackp except in yyparse where it's not
7639 a pointer.
7640 (yyglrShift): Change parameter YYSTYPE yysval to YYSTYPE* yyvalp for
7641 consistency.
7642 (yyis_table_ninf): Change 0 to YYID (0) to pacify lint.
7643 (yyreportSyntaxError): Add /*ARGSUSED*/ to pacify lint.
7644 (yyparse): Change while (yytrue) to while ( YYID (yytrue)) to pacify
7645 lint.
7646
7647 2005-12-09 Paul Eggert <eggert@cs.ucla.edu>
7648
7649 * tests/sets.at (Accept): Fix typos in regular expression used to
7650 sed out the final state number.
7651
7652 Work around portability problem on Solaris 10: flex-generated
7653 files include <stdio.h> before <config.h>, which messes up
7654 because the latter defines __EXTENSIONS__. Address the problem
7655 by creating two new little files that include <config.h> first,
7656 then include the flex-generated files. Rewrite everyone else
7657 to include <config.h> first, as well.
7658 * lib/timevar.c: Always include "config.h".
7659 * src/Makefile.am (bison_SOURCES): Replace scan-gram.l with
7660 scan-gram-c.c, and scan-skel.l with scan-skel-c.c.
7661 (EXTRA_bison_SOURCES): New macro.
7662 * src/scan-gram-c.c, src/scan-skel-c.c: New files.
7663 * src/system.h: Don't include config.h.
7664 * src/LR0.c: Include <config.h> first.
7665 * src/assoc.c: Likewise.
7666 * src/closure.c: Likewise.
7667 * src/complain.c: Likewise.
7668 * src/conflicts.c: Likewise.
7669 * src/derives.c: Likewise.
7670 * src/files.c: Likewise.
7671 * src/getargs.c: Likewise.
7672 * src/gram.c: Likewise.
7673 * src/lalr.c: Likewise.
7674 * src/location.c: Likewise.
7675 * src/main.c: Likewise.
7676 * src/muscle_tab.c: Likewise.
7677 * src/nullable.c: Likewise.
7678 * src/output.c: Likewise.
7679 * src/parse-gram.y: Likewise.
7680 * src/print.c: Likewise.
7681 * src/print_graph.c: Likewise.
7682 * src/reader.c: Likewise.
7683 * src/reduce.c: Likewise.
7684 * src/relation.c: Likewise.
7685 * src/state.c: Likewise.
7686 * src/symlist.c: Likewise.
7687 * src/symtab.c: Likewise.
7688 * src/tables.c: Likewise.
7689 * src/uniqstr.c: Likewise.
7690 * src/vcg.c: Likewise.
7691
7692 * src/parse-gram.y: Fix minor problems uncovered by lint.
7693 (current_lhs, current_lhs_location): Now static.
7694 (current_assoc): Remove unused variable.
7695
7696 Cleanups so that Bison-generated parsers have less lint.
7697 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
7698 Prepend /*ARGSUSED*/, for lint's sake.
7699 * data/glr.c (YYUSE): Properly parenthesize, and use an alternate
7700 definition if 'lint' is defined.
7701 (YYID): New macro (or function, if lint).
7702 All uses of /*CONSTCOND*/0 replaced by YYID(0).
7703 * data/yacc.c: Likewise.
7704 * data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
7705 (yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
7706 * data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
7707 is C++ only.
7708 * data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
7709 * data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
7710 Use YYID(0) rather than 0, for lint.
7711 (yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
7712 (yysyntax_error): Rewrite to avoid lint warnings about parenthesization.
7713
7714 2005-12-07 Paul Eggert <eggert@cs.ucla.edu>
7715
7716 * tests/glr-regression.at
7717 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
7718 Close memory leak reported by twlevo.
7719
7720 2005-12-06 "Joel E. Denny" <jdenny@ces.clemson.edu>
7721
7722 * data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for
7723 all stacks.
7724 (yyparse): Iterate another stack in order to call user destructors.
7725 * tests/glr-regression.at (No users destructors if stack 0 deleted):
7726 New test case.
7727 (Duplicated user destructor for lookahead): This test now is expected
7728 to succeed.
7729
7730 2005-12-01 Paul Eggert <eggert@cs.ucla.edu>
7731
7732 * NEWS: Document the following change.
7733 * data/yacc.c: Say "parser skeleton" rather than "file", since
7734 it's no longer just a file.
7735 * data/glr.c: Grant a special exception for C GLR parsers, that
7736 reads like the already-existing exception for C LALR(1) parsers.
7737 * data/glr.cc: Likewise.
7738 * data/lalr1.cc: Likewise.
7739 * data/location.cc: Likewise.
7740 * data/yacc.c: Reword the "written by" statement to clarify that
7741 it was the parser skeleton, not the entire output file.
7742 * data/glr.c: Written by Paul Hilfinger.
7743 * data/glr.cc: Written by Akim Demaille.
7744 * data/lalr1.cc: Likewise.
7745
7746 2005-11-18 Paul Eggert <eggert@cs.ucla.edu>
7747
7748 * data/yacc.c (yy_reduce_print, YY_REDUCE_PRINT):
7749 Fix typos in previous change that broke 'make check'.
7750 YY_REDUCE_PRINT cannot be a pseudo-varargs macro; that isn't
7751 supported in C.
7752 * tests/calc.at (_AT_CHECK_CALC,_AT_CHECK_CALC_ERROR):
7753 Don't check NUM-STDERR-LINES, since the output format is fluctuating.
7754 We can revert this once things settle down.
7755
7756 * src/conflicts.c (conflicts_print): Don't print file name twice
7757 when %expect fails because there were no conflicts.
7758 * doc/bison.texinfo (Expect Decl): Tighten up wording in previous
7759 change.
7760 * tests/conflicts.at (%expect not enough, %expect too much):
7761 (%expect with reduce conflicts): Adjust to new behavior.
7762
7763 2005-11-18 Akim Demaille <akim@epita.fr>
7764
7765 * src/conflicts.c (conflicts_print): Unsatisfied %expectation are
7766 errors.
7767 * NEWS: Document this.
7768 * doc/bison.texinfo (Expect Decl): Likewise.
7769
7770 2005-11-16 Akim Demaille <akim@epita.fr>
7771
7772 Generalize the display of semantic values and locations in traces.
7773 * data/glr.c (yy_reduce_print): Fix indices (again).
7774 * data/c++.m4 (b4_rhs_value, b4_rhs_location): Don't expect
7775 literal integers.
7776 * data/lalr1.cc (yyreduce_print): Rename as...
7777 (yy_reduce_print): this.
7778 Display values and locations.
7779 * data/yacc.c (yy_reduce_print): Likewise.
7780 (YY_REDUCE_PRINT): Adjust to pass the required arguments.
7781 (yysymprint): Move higher to be visible from yy_reduce_print).
7782 (yyparse): Adjust.
7783 * tests/calc.at: Adjust the expected length of the traces.
7784
7785 2005-11-14 Akim Demaille <akim@epita.fr>
7786
7787 * data/glr.c (yy_reduce_print): The loop was quite wrong: type are
7788 from 1 to N, while values and location start at 0.
7789 (b4_rhs_location, b4_rhs_value): Add parens around $1 and $2.
7790
7791 2005-11-14 Akim Demaille <akim@epita.fr>
7792
7793 * data/glr.c (yy_reduce_print): Fix the $ number.
7794
7795 2005-11-14 Akim Demaille <akim@epita.fr>
7796
7797 "Use" parse parameters.
7798 * data/c.m4 (b4_parse_param_for, b4_parse_param_use): New.
7799 * data/glr.c, data/glr.cc: Use them.
7800 * data/glr.c (YYUSE): Have a C++ definition that supports
7801 non-pointer types.
7802
7803 2005-11-14 Akim Demaille <akim@epita.fr>
7804
7805 * data/glr.c (yyexpandGLRStack): Declare only if defined.
7806
7807 2005-11-14 Akim Demaille <akim@epita.fr>
7808
7809 * data/glr.cc: New.
7810 * data/m4sugar/m4sugar.m4 (m4_prepend): New.
7811
7812 2005-11-12 Akim Demaille <akim@epita.fr>
7813
7814 Let position and location be PODs.
7815 * data/location.cc (position::initialize, location::initialize): New.
7816 (position::position, location::location): Define only if
7817 b4_location_constructors is defined.
7818 * data/lalr1.cc (b4_location_constructors): Define it for backward
7819 compatibility.
7820 * doc/bison.texinfo (Initial Action Decl): Use initialize.
7821
7822 2005-11-12 Akim Demaille <akim@epita.fr>
7823
7824 * data/lalr1.cc: Move the body of the ctor and dtor into the
7825 parser file (instead of the header).
7826 Wrap the implementations in a "namespace yy".
7827
7828 2005-11-12 Akim Demaille <akim@epita.fr>
7829
7830 Have glr.c include its header file when created.
7831 * data/glr.c (b4_shared_declarations): New.
7832 Output them verbatim in the parser if !%defines, otherwise
7833 output then in the header file, and include it instead.
7834
7835 2005-11-11 Akim Demaille <akim@epita.fr>
7836
7837 * data/glr.c: Comment changes.
7838
7839 2005-11-11 Akim Demaille <akim@epita.fr>
7840
7841 When yydebug, report semantic and location values for reductions.
7842 * data/glr.c (yy_reduce_print): Report the semantic values and the
7843 locations.
7844 (YY_REDUCE_PRINT): Adjust.
7845 (yyglrReduce): Use them.
7846 (b4_rhs_value, b4_rhs_location): Remove m4_eval invocations.
7847 * data/c.m4 (b4_yysymprint_generate): Specify the const arguments.
7848 * tests/calc.at (_AT_CHECK_CALC_ERROR): Remove the reduction
7849 traces.
7850
7851 2005-11-10 Akim Demaille <akim@epita.fr>
7852
7853 * data/glr.c (yynewGLRStackItem, YY_RESERVE_GLRSTACK): New.
7854 (yyaddDeferredAction, yyglrShift, yyglrShiftDefer): Use them.
7855 (yyexpandGLRStack, YYRELOC): Define only when YYSTACKEXPANDABLE.
7856
7857 2005-11-09 Albert Chin-A-Young <china@thewrittenword.com>
7858
7859 * m4/cxx.m4, examples/Makefile.am: Don't build
7860 examples/calc++ if no C++ compiler is available. (trivial change)
7861
7862 2005-11-09 Akim Demaille <akim@epita.fr>
7863
7864 * src/scan-skel.l: Use a couple of asserts.
7865
7866 2005-11-03 Akim Demaille <akim@epita.fr>
7867
7868 In some (weird) cases, the final state number is incorrect.
7869 Reported by Alexandre Duret-Lutz.
7870 * src/LR0.c (state_list_append): Remove the computation of
7871 final_state.
7872 (save_reductions): Do it here.
7873 (get_state): Alpha conversion.
7874 (generate_states): Use a for loop.
7875 * src/gram.h (item_number_is_rule_number)
7876 (item_number_is_symbol_number): New.
7877 * src/state.c: Use assert.
7878 * src/system.h: Include assert.h.
7879 * tests/sets.at (Accept): New.
7880
7881 2005-10-30 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
7882
7883 * data/glr.c (yyfill): Adjust comment.
7884 (yyresolveAction): Initialize default location properly
7885 for empty right-hand sides.
7886 (yydoAction): Ditto.
7887 Add comment explaining apparently dead code.
7888 * tests/glr-regression.at
7889 (Incorrectly initialized location for empty right-hand side in GLR):
7890 New test.
7891
7892 2005-10-30 Paul Eggert <eggert@cs.ucla.edu>
7893
7894 * bootstrap (cleanup_gnulib): New function. Use it to clean up
7895 gnulib when interrupted. This fixes some race conditions and
7896 works around some portability problems (one noted by Paul
7897 Hilfinger).
7898
7899 2005-10-22 Akim <akim@epita.fr>
7900
7901 * Makefile.cfg: Adjust to config -> build-aux.
7902 Reported by twledo.
7903
7904 2005-10-21 Akim Demaille <akim@epita.fr>
7905
7906 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
7907 the %parse-params.
7908 * data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
7909 * data/yacc.c (b4_Pure_if): Rename as...
7910 (b4_yacc_pure_if): this.
7911 (YY_SYMBOL_PRINT, yyparse): Adjust.
7912 * doc/bison.texinfo: Formatting changes.
7913
7914 2005-10-21 Akim Demaille <akim@epita.fr>
7915
7916 Finish the transition config -> build-aux.
7917 * configure.ac, Makefile.am: Use build-aux.
7918 * config/prev-version, config/announce-gen, config/Makefile.am:
7919 Move to...
7920 * build-aux/prev-version, build-aux/announce-gen,
7921 * build-aux/Makefile.am: here.
7922
7923 2005-10-14 Akim Demaille <akim@epita.fr>
7924
7925 * examples/calc++/test: Use set -x only when VERBOSE.
7926
7927 2005-10-13 Paul Eggert <eggert@cs.ucla.edu>
7928
7929 * NEWS: Bison now warns if it finds a stray `$' or `@' in an action.
7930 * src/scan-gram.l (<SC_BRACED_CODE>[$@]): Implement this.
7931
7932 2005-10-13 Akim Demaille <akim@epita.fr>
7933
7934 * src/scan-skel.l: Output the base name parts of the parser and
7935 header file names.
7936 * tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
7937 additional checks.
7938 Use this to exercise C++ outputs in subdirs.
7939 Reported by Oleg Smolsky.
7940
7941 2005-10-12 Paul Eggert <eggert@cs.ucla.edu>
7942
7943 * data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at
7944 __STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
7945 Problem reported by John P. Hartmann.
7946 * data/yacc.c (YYMODERN_C): Likewise. Don't define if the user has
7947 already defined it.
7948
7949 2005-10-12 Akim Demaille <akim@epita.fr>
7950
7951 * src/parse-gram.y (version_check): Exit 63 to please missing
7952 (stands for "version mismatch).
7953 * tests/input.at, doc/bison.texinfo: Adjust.
7954
7955 2005-10-10 Paul Eggert <eggert@cs.ucla.edu>
7956
7957 Work around portability problems with Visual Age C compiler
7958 (xlc and xlC_r) reported by John P. Hartmann.
7959 * data/location.cc (initial_column, initial_line): Remove.
7960 All uses replaced by 0 and 1.
7961 * src/scan-gram.l (gram_wrap): Redefine to avoid bug in flex 2.5.31
7962 that xlc complains about.
7963 * src/scan-skel.l (skel_wrap): Likewise.
7964 * data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
7965 as __STDC__.
7966 * data/yacc.c (YYMODERN_C): New macro, which also looks at
7967 __STDC_VERSION__. Use it everywhere instead of looking at
7968 __STDC__ and __cplusplus.
7969
7970 2005-10-10 Akim Demaille <akim@epita.fr>
7971
7972 * examples/calc++/test: Be quiet unless VERBOSE.
7973
7974 2005-10-05 Paul Eggert <eggert@cs.ucla.edu>
7975
7976 * data/c.m4 (yydestruct, yysymprint):
7977 Use YYUSE instead of casting to void.
7978 * data/glr.c (YYUSE): New macro.
7979 (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
7980 Use it instead of rolling our own.
7981 (YYLLOC_DEFAULT, YYCHK, YYDPRINTF, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
7982 (YYCHK1):
7983 Use /*CONSTCOND*/ to suppress lint warnings.
7984 * data/lalr1.cc (YYLLOC_DEFAULT, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
7985 (YY_STACK_PRINT): Use 'false' not '0'.
7986 (YYUSE): New macro.
7987 (yysymprint_, yydestruct_): Use it instead of rolling our own.
7988 * data/yacc.c (YYUSE): New macro.
7989 (YYCOPY, YYSTACK_RELOCATE, YYBACKUP, YYLLOC_DEFAULT):
7990 (YYDPRINTF, YY_SYMBOL_PRINT, YY_STACK_PRINT, YY_REDUCE_PRINT):
7991 (yyerrorlab): Use /*CONSTCOND*/ to suppress lint warnings.
7992
7993
7994 * data/m4sugar/m4sugar.m4 (_m4_map): New macro.
7995 (m4_map, m4_map_sep): Use it. Handle the empty list correctly.
7996
7997 2005-10-04 Paul Eggert <eggert@cs.ucla.edu>
7998
7999 Undo the parts of the unlocked-I/O change that substituted
8000 putc or puts for printf. This might hurt performance a bit,
8001 but some people prefer the printf style.
8002 * data/c.m4 (yysymprint): Prefer printf to puts and putc.
8003 * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): Remove.
8004 All uses replaced by YYFPRINTF and YYDPRINTF.
8005 * data/yacc.c: Likewise.
8006 * lib/bitset.c (bitset_print): Likewise.
8007 * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer printf to
8008 putc and puts.
8009 * lib/lbitset.c (debug_lbitset): Likewise.
8010 * src/closure.c (print_firsts, print_fderives): Likewise.
8011 * src/gram.c (grammar_dump): Likewise.
8012 * src/lalr.c (look_ahead_tokens_print): Likewise.
8013 * src/output.c (escaped_output): Likewise.
8014 (user_actions_output): Break apart two printfs.
8015 * src/parse-gram.y (%printer): Prefer printf to putc and puts.
8016 * src/reduce.c (reduce_print): Likewise.
8017 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
8018 * src/system.h: Include unlocked-io.h rathe than stdio.h.
8019
8020 * data/glr.c (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
8021 Use assignments rather than casts-to-void to suppress
8022 unused-variable warnings. This pacifies 'lint'.
8023 * data/lalr1.cc (yysymprint_, yydestruct_): Use a call to suppress
8024 unused-variable warnings.
8025
8026 2005-10-03 Juan Manuel Guerrero <juan.guerrero@gmx.de>
8027
8028 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
8029
8030 2005-10-02 Paul Eggert <eggert@cs.ucla.edu>
8031
8032 Use unlocked I/O for a minor performance improvement on hosts like
8033 GNU/Linux and Solaris that support unlocked I/O. The basic idea
8034 is to use the gnlib unlocked-io module, and to prefer putc and
8035 puts to printf when either will work (since the latter doesn't
8036 come in an unlocked flavor).
8037 * bootstrap (gnulib_modules): Add unlocked-io.
8038 * data/c.m4 (yysymprint): Prefer puts and putc to printf.
8039 * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
8040 Prefer them to YYFPRINTF and YYDPRINTF if either will do,
8041 and similarly for puts and putc and printf.
8042 * data/yacc.c: Likewise.
8043 * lib/bitset.c (bitset_print): Likewise.
8044 * lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
8045 * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
8046 to printf.
8047 * lib/lbitset.c (debug_lbitset): Likewise.
8048 * src/closure.c (print_firsts, print_fderives): Likewise.
8049 * src/gram.c (grammar_dump): Likewise.
8050 * src/lalr.c (look_ahead_tokens_print): Likewise.
8051 * src/output.c (escaped_output): Likewise.
8052 (user_actions_output): Coalesce two printfs.
8053 * src/parse-gram.y (%printer): Prefer putc and puts to printf.
8054 * src/reduce.c (reduce_print): Likewise.
8055 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
8056 * src/system.h: Include unlocked-io.h rather than stdio.h.
8057
8058 * data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
8059 this confuses xgettext.
8060
8061 2005-10-02 Akim Demaille <akim@epita.fr>
8062
8063 * bootstrap (gnulib_modules): Add strverscmp.
8064 * lib/.cvsignore: Add strverscmp.c, strverscmp.h.
8065 * m4/.cvsignore: Add strverscmp.m4.
8066 * src/parse-gram.y (%require): New token, new rule.
8067 (version_check): New.
8068 * src/scan-gram.l (%require): Adjust.
8069 * tests/input.at (AT_REQUIRE): New.
8070 Use it.
8071 * doc/bison.texinfo (Require Decl): New.
8072 (Calc++ Parser): Use %require.
8073
8074 2005-10-02 Akim Demaille <akim@epita.fr>
8075
8076 * data/location.cc: New.
8077
8078 2005-10-02 Paul Eggert <eggert@cs.ucla.edu>,
8079 Akim Demaille <akim@epita.fr>
8080
8081 Make sure -odir/foo.cc creates dir/location.hh etc.
8082 * src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
8083 (spec_file_prefix, spec_verbose_file, spec_graph_file)
8084 (spec_defines_file): Now const.
8085 (dir_prefix): New.
8086 (short_base_name): Remove.
8087 * src/files.c: Adjust.
8088 (dirname.h): Include.
8089 (base_name): Don't prototype it.
8090 (finput): Remove, duplicates gram_in.
8091 (full_base_name, short_base_name): Replace by...
8092 (all_but_ext, all_but_tab_ext): these.
8093 (compute_base_names): Rename as...
8094 (compute_file_name_parts): this.
8095 Update to compute the new variables, including dir_prefix.
8096 Adjust dependencies.
8097 * src/output.c (prepare): Output them.
8098 * src/reader.c: Adjust to use gram_in, not finput.
8099 * src/scan-skel.l (@dir_prefix@): New.
8100
8101 2005-10-02 Juan Manuel Guerrero <juan.guerrero@gmx.de>
8102
8103 * lib/subpipe.c: New function end_of_output_subpipe() added
8104 to allow support for non-posix systems. This is a no-op function
8105 for posix systems.
8106
8107 * lib/subpipe.h: New function end_of_output_subpipe() added
8108 to allow support for non-posix systems. This is a no-op function
8109 for posix systems.
8110
8111 * src/output.c (output_skeleton): Use end_of_output_subpipe() to
8112 handle the lack of pipe/fork functionality on non-posix systems.
8113
8114 * djgpp/Makefile.maint: DJGPP specific file.
8115
8116 * djgpp/README.in: DJGPP specific file.
8117
8118 * djgpp/config.bat: DJGPP specific configuration file.
8119
8120 * djgpp/config.sed: DJGPP specific configuration file.
8121
8122 * djgpp/config.site: DJGPP specific configuration file.
8123
8124 * djgpp/config_h.sed: DJGPP specific configuration file.
8125
8126 * djgpp/subpipe.c: DJGPP specific replacement file for lib/subpipe.c.
8127
8128 * djgpp/subpipe.h: DJGPP specific replacement file for lib/subpipe.h.
8129
8130 2005-10-02 Akim Demaille <akim@epita.fr>
8131
8132 * data/location.cc: New, extract from...
8133 * data/lalr1.cc: here.
8134 (location.hh): Include it after the user prologue, in case the
8135 filename type is defined by the user.
8136 Forward declation location and position before the pre-prologue.
8137 (yyresult_): Rename as...
8138 (yyresult): this, it's a local variable, not an attribute.
8139 * data/Makefile.am (dist_pkgdata_DATA): Adjust.
8140
8141 2005-10-01 Akim Demaille <akim@epita.fr>
8142
8143 * examples/extexi: Restore the #line generation.
8144
8145 2005-09-30 Akim Demaille <akim@epita.fr>,
8146 Alexandre Duret-Lutz <adl@gnu.org>
8147
8148 Move the token type and YYSTYPE in the parser class.
8149 * data/lalr1.cc (stack.hh, location.hh): Include earlier.
8150 (parser::token): New, from the moved free definition of tokens.
8151 (parser::semantic_value): Now a full definition instead of an
8152 indirection to YYSTYPE.
8153 (b4_post_prologue): No longer included in the header file, but
8154 in the implementation file.
8155 * doc/bison.texi (C+ Language Interface): Update.
8156 * src/parse-gram.y: Support unary %define.
8157 * tests/actions.at: Define global_tokens_and_yystype for backward
8158 compatibility until we update the tests.
8159 * tests/calc.at: Idem.
8160 (first_line, first_column, last_line, last_column): Define for lalr1.cc
8161 to simplify the code.
8162
8163 2005-09-29 Paul Eggert <eggert@cs.ucla.edu>
8164
8165 Port to SunOS 4.1.4, which lacks strtoul and strerror.
8166 Ah, the good old days! Problem reported by Peter Klein.
8167 * bootstrap (gnulib_modules): Add strerror, strtoul.
8168 * lib/.cvsignore: Add strerror.c, strtol.c, strtoul.c
8169 * m4/.cvsignore: Add strerror.m4, strtol.m4, strtoul.m4.
8170
8171 2005-09-29 Akim Demaille <akim@epita.fr>
8172
8173 * data/c.m4 (b4_error_verbose_if): New.
8174 * data/lalr1.cc: Use it.
8175 (YYERROR_VERBOSE_IF): Remove.
8176 (yyn_, yylen_, yystate_, yynerrs_, yyerrstatus_): Remove as
8177 parser members, replaced by...
8178 (yyn, yylen, yystate, yynerss, yyerrstatus): these parser::parse
8179 local variables.
8180 (yysyntax_error_): Takes the state number as argument.
8181 (yyreduce_print_): Use the argument yyrule, not the former
8182 attribute yyn_.
8183
8184 2005-09-26 Paul Eggert <eggert@cs.ucla.edu>
8185
8186 * bootstrap (gnulib_modules): Add verify.
8187 * lib/.cvsignore: Add verify.h.
8188 * src/getargs.c: Use ARGMATCH_VERIFY rather than verify.
8189 * src/system.h (verify): Remove.
8190 Include verify.h instead.
8191 * src/tables.c (tables_generate): Use new API for 'verify'.
8192
8193 2005-09-21 Paul Eggert <eggert@cs.ucla.edu>
8194
8195 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Do not use
8196 local variables whose names begin with 'yy'.
8197 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
8198 Trivial changes from Joel E. Denny.
8199
8200 * bootstrap (gnulib_modules): Remove alloca. Bison doesn't need
8201 it itself.
8202 * src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
8203 don't use alloca any more.
8204
8205 * data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
8206 __BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
8207 defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
8208 * tests/torture.at (Exploding the Stack Size with Alloca): Adjust
8209 to match yacc.c, to test more hosts.
8210
8211 2005-09-20 Paul Eggert <eggert@cs.ucla.edu>
8212
8213 * data/yacc.c (YYSIZE_T): Reindent to make it clearer. This
8214 doesn't affect behavior.
8215 (YYSTACK_ALLOC) [YYSTACK_USE_ALLOCA]: Improve support for
8216 Solaris, AIX, MSC.
8217 (_STDLIB_H): Renamed from YYINCLUDED_STDLIB_H. All uses changed.
8218 This works a bit better with glibc, if user code has already included
8219 stdlib.h.
8220 * doc/bison.texinfo (Bison Parser): Document that users can't
8221 arbitrarily use malloc and free for other purposes. Document
8222 that <alloca.h> and <malloc.h> might be included.
8223 (Table of Symbols): Under YYSTACK_USE_ALLOCA, Don't claim that the
8224 user must declare alloca.
8225
8226 * HACKING (release): Forwarn the Translation Project about
8227 stable releses.
8228
8229 2005-09-20 Akim Demaille <akim@epita.fr>
8230
8231 * data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
8232
8233 2005-09-19 Paul Eggert <eggert@cs.ucla.edu>
8234
8235 * data/yacc.c (YYSIZE_MAXIMUM): New macro.
8236 (YYSTACK_ALLOC_MAXIMUM): Use it.
8237 (yysyntax_error): New function.
8238 (yyparse) [YYERROR_VERBOSE]: Don't leak memory indefinitely if
8239 multiple syntax errors are reported, and alloca is being used.
8240 Instead, reallocate buffers twice as big each time, so that
8241 we waste at most half the allocated memory. Start with a small
8242 (128-byte) buffer that will suffice in most cases anyway.
8243 Use yysyntax_error to do most of the work.
8244
8245 * doc/bison.texinfo (Error Reporting, Table of Symbols):
8246 yynerrs is the number of errors reported, not the number of
8247 errors encountered.
8248
8249 * tests/glr-regression.at (Duplicated user destructor for lookahead):
8250 Mark it as expected to fail.
8251 Cast result of malloc; problem reported by twlevo@xs4all.nl.
8252 * tests/actions.at, tests/calc.at, tests/glr-regression.at:
8253 Don't start user-code symbols with "yy", to avoid name space problems.
8254
8255 2005-09-19 Akim Demaille <akim@epita.fr>
8256
8257 Remove the traits, failed experiment.
8258 It never proved useful, and anyway because of the current
8259 definition, it was not possible to have several specialization of
8260 this traits, making it useless.
8261 * data/lalr1.cc (yy:traits): Remove.
8262 Inline its definitions in the parser class.
8263
8264 2005-09-19 Akim Demaille <akim@epita.fr>
8265
8266 * tests/atlocal.in (LIBS): Pass INTLLIBS to address failures on at
8267 least Mac OSX with a /usr/local install of gettext.
8268
8269 2005-09-19 Akim Demaille <akim@epita.fr>
8270
8271 * data/lalr1.cc (yyparse): Rename yylooka and yyilooka as yychar
8272 and yytoken for similarity with the other skeletons.
8273
8274 2005-09-19 Akim Demaille <akim@epita.fr>
8275
8276 * NEWS, configure.ac: update version number to 2.1a.
8277
8278 2005-09-16 Paul Eggert <eggert@cs.ucla.edu>
8279
8280 * NEWS: Version 2.1.
8281
8282 * NEWS: Remove notice of yytname change, since it was never in an
8283 official release.
8284 * data/glr.c (yydestroyGLRState): Rename local var to avoid shadowing
8285 diagnostic.
8286 * src/output.c (prepare): Likewise.
8287 * data/lalr1.cc (YYERROR_VERBOSE_IF): New macro.
8288 (yysyntax_error_): Use it to avoid GCC warning when YYERROR_VERBOSE
8289 is not defined. This is an awful hack, but it's enough for now.
8290 All callers changed.
8291 * tests/glr-regression-at (make_value): Args are const pointers now,
8292 to avoid GCC warning.
8293 (Duplicated user destructor for lookahead): New test. Currently
8294 skipped. It fails on my host but I'm not sure it'll always fail.
8295
8296 2005-09-16 Akim Demaille <akim@epita.fr>
8297
8298 * src/symtab.h (struct symbol): Declare the printer and destructor
8299 as const, to avoid accidental calls to free.
8300 (symbol_destructor_set, symbol_printer_set): Adjust.
8301 * src/symtab.c: Adjust.
8302
8303 2005-09-16 Akim Demaille <akim@epita.fr>
8304
8305 * data/c.m4 (b4_token_enums): New.
8306 (b4_token_defines): Rename as...
8307 (b4_token_enums_defines): this.
8308 (b4_token_defines): New, output only the #defines.
8309 * data/yacc.c, data/glr.c: Adjust.
8310 * data/lalr1.cc: Use b4_token_enums instead of b4_token_enums_defines.
8311 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Define
8312 as default values.
8313
8314 2005-09-16 Akim Demaille <akim@epita.fr>
8315
8316 * data/lalr1.cc (yylex_): Remove, inline its code.
8317 (yyreport_syntax_error_): Remove, replaced by...
8318 (yysyntax_error_): this which returns a string and leaves to the
8319 caller the call to the users' error function.
8320 (yylooka_, yyilooka_, yylval, yylloc, yyerror_range_, yyval, yyloc):
8321 Move from members of the parser object...
8322 (yylooka, yyilooka, yylval, yylloc, yyerror_range, yyval, yyloc):
8323 to local variables of the parse function.
8324
8325 2005-09-16 Akim Demaille <akim@epita.fr>
8326
8327 * doc/bison.texinfo (Calc++ Parser): Don't promote defining YYEOF
8328 since it's in Bison's name space.
8329
8330 2005-09-15 Paul Eggert <eggert@cs.ucla.edu>
8331
8332 * data/glr.c (yyresolveValue): Add default case to pacify
8333 gcc -Wswitch-default. Problem reported by twlevo@xs4all.nl.
8334
8335 * NEWS: Document when yyparse started to return 2.
8336 * doc/bison.texinfo (Parser Function): Document when yyparse
8337 returns 2.
8338
8339 * data/lalr1.cc: Revert part of previous change, as it's incompatible.
8340 (b4_filename_type): Renamed back from b4_file_name_type. All uses
8341 changed.
8342 (class position): file_name -> filename (reverting). All uses changed.
8343
8344 2005-09-14 Paul Eggert <eggert@cs.ucla.edu>
8345
8346 * examples/calc++/Makefile.am ($(calc_sources_generated)): Don't
8347 do anything if $@ exists. This reverts part of the 2005-07-07
8348 patch.
8349
8350 2005-09-11 Paul Eggert <eggert@cs.ucla.edu>
8351
8352 * Makefile.am (EXTRA_DIST): Do not distribute REFERENCES; it
8353 contains obsolete information and isn't worth distributing as a
8354 separate file anyway.
8355 * data/glr.c [defined YYSETJMP]: Don't include <setjmp.h>.
8356 (YYJMP_BUF, YYSETJMP, YYLONGJMP) [!defined YYSETJMP]: New macros.
8357 All uses of jmp_buf, setjmp, longjmp changed to use these instead.
8358 (yyparse): Abort if user code uses longjmp to throw an unexpected
8359 value.
8360
8361 2005-09-09 Paul Eggert <eggert@cs.ucla.edu>
8362
8363 * data/c.m4 (b4_identification): Define YYBISON_VERSION.
8364 Suggested by twlevo@xs4all.nl.
8365
8366 * data/glr.c (YYCHK1): Do not assume YYE is in range.
8367 This avoids a diagnostic from gcc -Wswitch-enum.
8368 Problem reported by twlevo@xs4all.nl.
8369
8370 * doc/bison.texinfo: Don't use "filename", as per GNU coding
8371 standards. Use "file name" or "file" or "name", depending on
8372 the context.
8373 (Invocation): The output of "bison hack/foo.y" goes to foo.tab.c,
8374 not to hack/foo.tab.c.
8375 (Calc++ Top Level): 2nd arg of main is not const.
8376 * data/glr.c: b4_filename -> b4_file_name.
8377 * data/lalr1.cc: Likewise. Also, b4_filename_type -> b4_file_name_type.
8378 All uses changed.
8379 (class position): filename -> file_name. All uses changed.
8380 * data/yacc.c: b4_filename -> b4_file_name.
8381 * lib/bitset.h: filename -> file_name in local vars.
8382 * lib/bitset_stats.c: Likewise.
8383 * src/files.c: Likewise.
8384 * src/scan-skel.l ("@output ".*\n): Likewise.
8385 * src/files.c (file_name_split): Renamed from filename_split.
8386 * src/muscle_tab.c (muscle_init): Output b4_file_name, not b4_filename.
8387
8388 2005-09-08 Paul Eggert <eggert@cs.ucla.edu>
8389
8390 * lib/.cvsignore: Add pipe-safer.c, stdio--.h, unistd--.h,
8391 to accommodate latest gnulib.
8392
8393 * tests/glr-regression.at (Duplicate representation of merged trees):
8394 Add casts to pacify g++. Problem reported by twlevo@xs4all.nl.
8395
8396 * bootstrap: Add comment as to why the AM_LANGINFO_CODESET hack is
8397 needed.
8398
8399 2005-08-26 Paul Eggert <eggert@cs.ucla.edu>
8400
8401 * data/glr.c (yydestroyGLRState): Renamed from yydestroyStackItem.
8402 All uses changed. Invoke user destructor after an error during a
8403 split parse (trivial change from Joel E. Denny).
8404
8405 * tests/glr-regression.at
8406 (User destructor after an error during a split parse): New test case.
8407 Problem reported by Joel E. Denny in:
8408 http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00029.html
8409
8410 2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
8411
8412 * README-cvs: Give URLs for recommended tools.
8413 Mention Gzip version problem, and bootstrapping issues.
8414 Remove troubleshooting section, as it's somewhat obsolete.
8415
8416 * bootstrap (no_cache): New var, to accommodate different wget
8417 variants. Use it instead of '-C off'. Problem reported by
8418 twlevo@xs4all.nl.
8419
8420 * data/glr.c (yydestroyStackItem): New function.
8421 (yyrecoverSyntaxError, yyreturn): Use it to improve quality of
8422 debugging information. Problem reported by Joel E. Denny.
8423
8424 2005-08-25 Akim Demaille <akim@epita.fr>
8425
8426 * tests/local.at (AT_COMPILE_CXX): Pass $LINKS too.
8427
8428 2005-08-24 Paul Eggert <eggert@cs.ucla.edu>
8429
8430 * data/glr.c (yyrecoverSyntaxError, yyreturn):
8431 Don't invoke destructor on unresolved entries.
8432 * tests/glr-regression.at
8433 (User destructor for unresolved GLR semantic value): New test case.
8434 Problem reported by Joel E. Denny in:
8435 http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00016.html
8436
8437 2005-08-21 Paul Eggert <eggert@cs.ucla.edu>
8438
8439 * lib/.cvsignore: Remove realloc.c, strncasecmp.c, xstrdup.c.
8440 Add strnlen.c.
8441 * m4/.cvsignore: Remove codeset.m4, gettext.m4, lib-ld.m4,
8442 lib-prefix.m4, po.m4.
8443
8444 * data/glr.c (yyreturn): Use "Cleanup:" rather than "Error:"
8445 in yydestruct diagnostic, since it might not be an error.
8446 Problem reported by Joel Denny near end of
8447 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
8448 * data/lalr1.cc (yyerturn): Likewise.
8449 * data/yacc.c (yyreturn): Likewise.
8450 * tests/calc.at (_AT_CHECK_CALC_ERROR): Adjust to the above change.
8451
8452 * src/files.c: Remove obsolete FIXME comment.
8453
8454 * data/glr.c (YY_SYMBOL_PRINT): Append a newline, for consistency
8455 with the other templates, and to fix bogus run-on messages such
8456 as the one reported at the end of
8457 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
8458 All callers changed to avoid the newline.
8459 (yyprocessOneStack): Output two lines rather than one, to accommodate
8460 the above change. This changes the debug output format slightly.
8461
8462 * data/glr.c (yyresolveValue): Fix redundant parse tree problem
8463 reported by Joel E. Denny in
8464 <http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00004.html>
8465 (trivial change).
8466 * tests/glr-regression.at (Duplicate representation of merged trees):
8467 New test, from Joel E. Denny in:
8468 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00013.html>.
8469 * THANKS: Add Joel E. Denny.
8470
8471 * configure.ac (AC_INIT): Bump to 2.0c.
8472
8473 2005-07-24 Paul Eggert <eggert@cs.ucla.edu>
8474
8475 * NEWS: Version 2.0b.
8476
8477 * Makefile.am (SUBDIRS): Put examples before tests, so that
8478 "make check" doesn't finish with "All 1 tests passed".
8479
8480 * tests/regression.at (Token definitions): Don't rely on
8481 AT_PARSER_CHECK for data that contains backslashes. It currently
8482 uses 'echo', and 'echo' isn't portable if its argument contains
8483 backslashes. Problem found on OpenBSD 3.4. Also, do not assume
8484 that the byte '\0xff' is not printable in the C locale; it is,
8485 under OpenBSD 3.4 (!). Luckily, '\0x80' through '\0x9e' are
8486 not printable, so use '\0x81' to test.
8487
8488 * data/glr.c (YYOPTIONAL_LOC): Define even if it's not a recent
8489 version of GCC, since the macro is used with non-GCC compilers.
8490
8491 Fix core dump reported by Pablo De Napoli in
8492 <http://lists.gnu.org/archive/html/bug-bison/2005-07/msg00053.html>.
8493 * tests/regression.at (Invalid inputs with {}): New test.
8494 * src/parse-gram.y (token_name): Translate type before using
8495 it as an index.
8496
8497 * data/glr.c (ATTRIBUTE_UNUSED): Remove, since it infringes on
8498 the user's name space. All uses changed to __attribute__
8499 ((__unused__)).
8500 (yyFail, yyMemoryExhausted, yyreportAmbiguity):
8501 Add __attribute__ ((__noreturn__)).
8502
8503 * etc/clcommit: Remove. We weren't using it, and it failed
8504 "make maintainer-distcheck".
8505 * Makefile.maint: Merge from coreutils.
8506 (CVS_LIST, CVS_LIST_EXCEPT): New macros.
8507 (syntax-check-rules): Change list of rules as described below.
8508 (sc_cast_of_alloca_return_value, sc_dd_max_sym_length):
8509 (sc_file_system, sc_obsolete_symbols, sc_prohibit_atoi_atof):
8510 (sc_prohibit_jm_in_m4, sc_root_tests, sc_tight_scope):
8511 (sc_trailing_space): New rules.
8512 (sc_xalloc_h_in_src): Remove.
8513 (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value):
8514 (sc_space_tab, sc_error_exit_success, sc_changelog):
8515 (sc_system_h_headers, sc_sun_os_names, sc_unmarked_diagnostics):
8516 (makefile-check, po-check, author_mark_check):
8517 (makefile_path_separator_check, copyright-check):
8518 Use grep -n, to make it easier to find violations.
8519 Use CVS_LIST and CVS_LIST_EXCEPT.
8520 (header_regexp, h_re): Remove.
8521 (dd_c): New macro.
8522 (sc_dd_max_sym_length, .re-list, news-date-check): New rules.
8523 (my-distcheck): Use more-modern GCC flags.
8524 (signatures, %.asc): Remove.
8525 (rel-files, announcement): Remove signatures.
8526 Restore old updating code, even though we don't use it, so
8527 that we're the same as coreutils.
8528 (alpha, beta, major): Depend on news-date-check.
8529 Make the upload commands.
8530
8531 * data/c.m4, data/lalr1.cc, data/yacc.c: Normalize white space.
8532 * lib/abitset.h, lib/bbitset.h, lib/bitset.h: Likewise.
8533 * lib/bitset_stats.c, lib/ebitset.h, lib/lbitset.c: Likewise.
8534 * lib/libitset.h, lib/timevar.c, lib/vbitset.h: Likewise.
8535 * src/Makefile.am, src/gram.c, src/muscle_tab.h: Likewise.
8536 * src/parse-gram.y, src/system.h, src/tables.c, src/vcg.c: Likewise.
8537 * src/vcg_defaults.h, tests/cxx-type.at, tests/existing.at: Likewise.
8538 * tests/sets.at: Likewise.
8539
8540 * data/m4sugar/m4sugar.m4: Sync from Autoconf, except that
8541 we comment out the Autoconf version number.
8542 * doc/bison.texinfo (Calc++ Scanner): Don't use atoi, as
8543 it's error-prone and "make maintainer-distcheck" rejects it.
8544
8545 * lib/subpipe.c: Include <fcntl.h> without checking for HAVE_FCNTL_H.
8546 Indent calls to "error" to pacify "make maintainer-distcheck",
8547 when the calls are not intended to be translated.
8548 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't check for fcntl.h.
8549
8550 * src/Makefile.am (DEFS): Use +=, to pacify
8551 "make maintainer-distcheck".
8552 (bison_SOURCES): Add scan-skel.h.
8553 (sc_tight_scope): New rule, from coreutils.
8554
8555 * src/files.c (src_extension, header_extension):
8556 Now static, not extern.
8557 * src/getargs.c (short_options): Likewise.
8558 * src/muscle_tab.c (muscle_table): Likewise.
8559 * src/parse-gram.y (current_class, current_type, current_prec):
8560 Likewise.
8561 * src/reader.c (grammar_end, previous_rule_end): Likewise.
8562 * src/getargs.h: Redo comments to pacify "make maintainer-distcheck".
8563 * src/main.c (main): Cast bindtextdomain and textdomain calls to
8564 void, to avoid warning when NLS is disabled.
8565 * src/output.c: Include scan-skel.h.
8566 (scan_skel): Remove decl, since scan-skel.h does this.
8567 (output_skeleton):
8568 Indent calls to "error" to pacify "make maintainer-distcheck".
8569 * src/print_graph.c: Don't include <obstack.h>, as system.h does this.
8570 * src/reader.h (gram_end, gram_lineno): New decls to pacify
8571 "make maintainer-distcheck".
8572 * src/scan-skel.l (skel_lex, skel_get_lineno, skel_get_in):
8573 (skel_get_out, skel_get_leng, skel_get_text, skel_set_lineno):
8574 (skel_set_in, skel_set_out, skel_get_debug, skel_set_debug):
8575 (skel_lex_destroy, scan_skel): Move these decls to...
8576 * src/scan-skel.h: New file.
8577 * src/uniqstr.c (uniqstr_assert):
8578 Indent calls to "error" to pacify "make maintainer-distcheck".
8579
8580 * tests/Makefile.am ($(srcdir)/package.m4): Use $(VAR),
8581 not @VAR@.
8582
8583 * tests/torture.at: Revamp to avoid misuse of atoi that
8584 "make maintainer-distcheck" complained about.
8585
8586 * examples/extexi (message): Don't print a message more than once,
8587 and omit line-number decoration that makes Emacs compile think
8588 that informative messages are worth worrying about.
8589
8590 2005-07-22 Paul Eggert <eggert@cs.ucla.edu>
8591
8592 * configure.ac: Update version number.
8593
8594 * Makefile.am (SUBDIRS): Add examples; somehow this got removed
8595 accidentally.
8596 * examples/calc++/calc++-parser.yy: Remove from CVS, as it's
8597 autogenerated by the maintainer.
8598 * examples/calc++/.cvsignore: Add *.yy.
8599
8600 * lib/bitset.c (bitset_alloc): Don't cast xcalloc result.
8601 * lib/bitset_stats.c (bitset_stats_init): Likewise.
8602 * lib/bitsetv.c (bitsetv_alloc): Likewise.
8603
8604 * po/POTFILES.in: Add lib/xalloc-die.c; remove lib/xmalloc.c.
8605
8606 * src/relation.c (relation_transpose): Rewrite to avoid bogus complaint
8607 from maintainer-distcheck about casting the argument of 'free'.
8608
8609 * NEWS: Mention recent yytname changes.
8610 * THANKS: Add Anthony Heading, twlevo@xs4all.nl.
8611
8612 * bootstrap: For translations that have not yet been upgraded to
8613 the new runtime-po domain, prime the pump by extracting the
8614 relevant strings from the obsolete translations. This code can be
8615 removed once the bison-runtime domain has been translated by each
8616 team.
8617
8618 * src/scan-gram.l (<SC_PRE_CODE>.): Don't double-quote token names,
8619 now that token names are already quoted.
8620
8621 Fix problem reported by Anthony Heading.
8622 * data/glr.c (YYTOKEN_TABLE): New macro.
8623 (yytname): Define if YYTOKEN_TABLE.
8624 * data/yacc.c (YYTOKEN_TABLE, yytname): Likewise.
8625 * data/lalr1.cc (YYTOKEN_TABLE, yytname_): Likewise.
8626 (YYERROR_VERBOSE): Define the same way the other skeletons do.
8627 * src/output.c (prepare_symbols): Output token_table_flag.
8628
8629 2005-07-21 Paul Eggert <eggert@cs.ucla.edu>
8630
8631 * data/glr.c (yyinitGLRStack, yyreturn): Don't call malloc
8632 again if the first call fails.
8633
8634 * data/glr.c (yytnamerr): New function.
8635 (yyreportSyntaxError): Use it to dequote most string literals.
8636 * data/lalr1.c (yytname_): Renamed from yyname_, for compatibility
8637 with other skeletons. All uses changed.
8638 (yytnameerr_): New function.
8639 (yyreport_syntax_error): Use it to dequote most string literals.
8640 * data/yacc.c (yytnamerr): New function.
8641 (yyerrlab): Use it to decode most string literals.
8642 * doc/bison.texinfo (Decl Summary, Calling Convention):
8643 Clarify quoting convention of yytname.
8644 * src/output.c (prepare_symbols): Quote all names. This undoes
8645 the 2005-04-17 change, which is now accomplished (mostly) via
8646 changes in the parsers as described above.
8647 * tests/regression.at (Token definitions, Web2c Actions):
8648 Undo most 2005-04-17 change here, too.
8649
8650 2005-07-20 Paul Eggert <eggert@cs.ucla.edu>
8651
8652 Fix more problems reported by twlevo@xs4all.nl.
8653 * tests/cxx-type.at: Don't pipe output of ./types through sed to
8654 remove trailing spaces. This loses the exit status of ./types,
8655 and isn't needed since ./types shouldn't be emitting trailing
8656 spaces.
8657 * data/glr.c (yyreturn): Don't pop stack if yyinitStateSet failed,
8658 as the stack isn't valid in that case.
8659
8660 * src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
8661 (gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
8662 (gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
8663 Add declarations to pacify "gcc -Wmissing-prototypes" when flex 2.5.31
8664 is used.
8665 * src/scan-skel.l (skel_get_lineno, skel_get_in, skel_get_out):
8666 (skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
8667 (skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
8668 Likewise.
8669
8670 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Work even with
8671 overly-picky compilers that reject 'char *foo = "bar";'.
8672
8673 * src/symtab.c (SYMBOL_ATTR_PRINT, symbol_print): Direct output
8674 to FILE * parameter, not to stderr. This fixes a typo introduced
8675 in the 2005-07-12 change.
8676
8677 * lib/subpipe.c (create_subpipe): Rewrite slightly to avoid
8678 warnings from GCC 4.
8679
8680 * data/glr.c (yyexpandGLRStack, yyaddDeferredAction, yyexpandGLRStack):
8681 (yyglrShiftDefer, yysplitStack):
8682 Remove unused parameters b4_pure_formals. All uses changed.
8683 (yyglrShift): Remove unused parameters b4_user_formals.
8684 All uses changed.
8685 (yyglrReduce): Removed unused parameter yylocp. All uses changed.
8686
8687 2005-07-18 Paul Eggert <eggert@cs.ucla.edu>
8688
8689 Destructor cleanups and regularization among the three skeletons.
8690 * NEWS: Document the behavior changes.
8691 * data/glr.c (yyrecoverSyntaxError): Don't bother to pop the
8692 stack before failing, as the cleanup code will do it for us now.
8693 * data/lalr1.cc (yyerrlab): Likewise.
8694 * data/glr.c (yyparse): Pop everything off the stack before
8695 freeing it, so that destructors get called properly.
8696 * data/lalr1.cc (yyreturn): Likewise.
8697 * data/yacc.c (yyreturn): Pop and destroy the start symbol, too.
8698 This is more consistent.
8699 * doc/bison.texinfo (Destructor Decl): Mention more reasons
8700 why destructors might be called. 1.875 -> 2.1.
8701 (Destructor Decl, Decl Summary, Table of Symbols):
8702 Some English-language cleanups for %destructor.
8703 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
8704 Add output line for destructor of start symbol.
8705 * tests/calc.at (AT_CHECK_CALC): Add one to line counts,
8706 because of that same extra output line.
8707
8708 * NEWS: Document minor wording changes in diagnostics of
8709 Bison-generated parsers.
8710 * data/glr.c (yyMemoryExhausted): Renamed from yyStackOverflow.
8711 Remove unused formals. All uses changed.
8712 (yyreportAmbiguity): "ambiguity detected" -> "syntax is ambiguous".
8713 (yyparse): Rename yyoverflowlab to yyexhaustedlab.
8714 * data/yacc.c (yyparse): "parser stack overflow" -> "memory exhausted".
8715 Rename yyoverflowab to yyexhaustedlab.
8716 When memory exhaustion occurs during syntax-error reporting,
8717 report it separately rather than in a single diagnostic; this
8718 eases translation.
8719 * doc/bison.texinfo (Memory Management): Renamed from Stack Overflow.
8720 (Memory Exhausted): Renamed from Parser Stack Overflow.
8721 Revamp wording slightly to prefer "memory exhaustion".
8722 * tests/actions.at: "parser stack overflow" -> "memory exhausted".
8723
8724 * data/c.m4 (b4_yysymprint_generate): Use YYFPRINTF, not fprintf.
8725
8726 Add i18n support to the GLR skeleton. Partially fix the C++
8727 skeleton; a C++ expert needs to finish this. Remove debugging
8728 msgids; there's little point to having them translated, since they
8729 can be understood only by someone who can read the
8730 (English-language) source code.
8731
8732 Generate runtime-po/bison-runtime.pot automatically, so that we
8733 don't have to worry about garbage getting in that file. We'll
8734 make sure after the next official release that old msgids don't
8735 get lost. See
8736 <http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>.
8737
8738 * runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove.
8739 Now auto-generated.
8740 * PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet.
8741 Fix typos in explanations of the runtime file.
8742 * bootstrap: Change gettext keyword from YYI18N to YY_.
8743 Use standard Makefile.in.in in runtime-po, since we'll arrange
8744 for backward-compatible bison-runtime.po files in a different way.
8745 * data/glr.c (YY_): New macro, from yacc.c.
8746 (yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse):
8747 Translate messages intended for users.
8748 (yyreportSyntaxError): Change "virtual memory" to "memory" to match
8749 the wording in the other skeletons. We don't know that the memory
8750 is virtual.
8751 * data/lalr1.cc (YY_): Renamed from _. All uses changed.
8752 Use same method that yacc.c uses.
8753 Don't translate debugging messages.
8754 (yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff;
8755 it doesn't work (yet), and requires C++ expertise to fix.
8756 * data/yacc.c (YY_): Renamed from YY18N. All uses changed.
8757 Move defn to a more logical place, to be consistent with other
8758 skeletons.
8759 Don't translate debugging messages.
8760 Don't assume line numbers fit in unsigned int; use unsigned long fmts.
8761 * doc/bison.texinfo: Mention <libintl.h>. Change glibc cross reference
8762 to gettext cross reference. Add indexing terms. Mention YYENABLE_NLS.
8763 * runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
8764
8765 Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
8766 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
8767 void, not int.
8768 * tests/glr-regression.at (Badly Collapsed GLR States):
8769 Likewise.
8770 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
8771 yylex should return 0 at EOF rather than aborting.
8772
8773 Improve tests for stack overflow in GLR parser.
8774 Problem reported by twlevo@xs4all.nl.
8775 * data/glr.c (struct yyGLRStack): Remove yyerrflag member.
8776 All uses removed.
8777 (yyStackOverflow): Just longjmp, but with value 2 so that caller
8778 can handle the problem.
8779 (YYCHK1): Use goto (a la yacc.c) rather than setting a flag.
8780 (yyparse): New local variable yyresult to record the result.
8781 Use result of setjmp to set it, rather than storing itinto
8782 struct.
8783 (yyDone): Remove label.
8784 (yyacceptlab, yyabortlab, yyoverflowlab, yyreturn): New labels,
8785 to mimic yacc.c. Do not discard lookahead if it's EOF (possible
8786 if YYABORT is used).
8787 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Exit with
8788 yyparse status; put status > 1 into diagnostic.
8789 Check that status==2 works.
8790 * tests/calc.at, tests/cxx-type.at, tests/glr-regression.at:
8791 Use exit status 3 for failure to open (which shouldn't happen).
8792
8793 2005-07-17 Paul Eggert <eggert@cs.ucla.edu>
8794
8795 * tests/conflicts.at (%nonassoc and eof): Don't exit with status
8796 1 on syntax error; just let yyparse do its thing.
8797 * tests/glr-regression.at (Badly Collapsed GLR States): Likewise.
8798 * tests/torture.at (AT_DATA_STACK_TORTURE): Likewise.
8799 (Exploding the Stack Size with Alloca):
8800 (Exploding the Stack Size with Malloc):
8801 Expect exit status 2, not 1, since the parser is supposed to blow
8802 its stack. Problem reported by twlevo@xs4all.nl.
8803
8804 * data/glr.c (yyparse): Don't assume that the initial calls
8805 to YYMALLOC succeed; in that case, yyparse incorrectly returned 0.
8806 Print a stack-overflow message and fail instead.
8807 Initialize the line-number information before creating the stack,
8808 so that the stack-overflow message can report line zero safely.
8809
8810 2005-07-14 Paul Eggert <eggert@cs.ucla.edu>
8811
8812 Fix problems reported by twlevo@xs4all.nl.
8813 * data/glr.c (YYSTACKEXPANDABLE): Don't define if already defined.
8814 (yyuserMerge): Provide a default case if b4_mergers is empty.
8815 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Define YYSTACKEXPANDABLE.
8816 * tests/glr-regression.at
8817 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
8818 Add casts to pacify C++ compilers.
8819 * tests/glr-regression.at (Improper merging of GLR delayed action
8820 sets): Declare yylex before using it.
8821 * tests/Makefile.am (maintainer-check-g++): Fix a stray
8822 $(GXX) that escaped the renaming of GXX to CXX. Remove bogus
8823 test for valgrind; valgrind is independent of g++.
8824 (maintainer-check-posix): Add _POSIX2_VERSION=200112, to check
8825 for compatibility with POSIX 1003.1-2001 (if running coreutils).
8826 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Port to stricter C++.
8827 Use a destructor, so that we can expand the stack. Change
8828 YYSTYPE to char * so that we can free it. Cast result of malloc.
8829
8830 2005-07-13 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
8831
8832 * data/glr.c (yyuserAction): Fix uninitialized variable that caused
8833 a valgrind failure. Problem reported by twlevo@xs4all.nl.
8834
8835 2005-07-13 Paul Eggert <eggert@cs.ucla.edu>
8836
8837 * PACKAGING: New file, suggested by Bruno Haible and taken from
8838 similar wording in gettext's PACKAGING file.
8839 * NEWS: Mention PACKAGING.
8840 * Makefile.am (EXTRA_DIST): Add PACKAGING.
8841
8842 2005-07-12 Paul Eggert <eggert@cs.ucla.edu>
8843
8844 * NEWS: Document recent i18n improvements.
8845 * bootstrap: Get runtime translations into runtime-po.
8846 Create runtime-po files automatically, if possible.
8847 * configure.ac: Invoke BISON_I18N, so that we eat our own dog food.
8848 * data/yacc.c: Rewrite inclusion of <libintl.h> so that ENABLE_NLS
8849 does not infringe on the user's name space.
8850 (YYENABLE_NLS): Renamed from ENABLE_BISON_NLS.
8851 * doc/bison.texinfo (Internationalization): Revamp the English
8852 and Texinfo syntax a bit, to try to make it clearer.
8853 (Bison Options, Option Cross Key): Mention --print-localedir.
8854 * m4/bison-i18n.m4 (BISON_I18N): Rename ENABLE_BISON_NLS to
8855 YYENABLE_NLS. Quote a bit more.
8856 * runtime-po/.cvsignore: New file.
8857 * runtime-po/Makefile.in.in (mostlyclean): Remove *.old.pot.
8858 * runtime-po/Rules-quot: Remove; now created by bootstrap.
8859 * runtime-po/quot.sed: Likewise.
8860 * runtime-po/boldquot.sed: Likewise.
8861 * runtime-po/en@quot.header: Likewise.
8862 * runtime-po/en@boldquot.header: Likewise.
8863 * runtime-po/insert-header.sin: Likewise.
8864 * runtime-po/remove-potcdate.sin: Likewise.
8865 * runtime-po/Makevars: Likewise.
8866 * runtime-po/LINGUAS: Likewise.
8867 * runtime-po/de.po: Likewise; we will rely on the translation project
8868 to maintain this, so "bootstrap" should get it.
8869 * src/getarg.c (PRINT_LOCALEDIR_OPTION): Let the C compiler determine
8870 its value.
8871 * src/main.c (main): Bind the bison-runtime domain, too.
8872
8873 2005-07-12 Bruno Haible <bruno@clisp.org>
8874
8875 * data/yacc.c: Include <libintl.h> when NLS is enabled.
8876 (YYI18N): Renamed from _. Use dgettext when NLS is enabled.
8877 * po/POTFILES.in: Remove autogenerated file src/parse-gram.c.
8878 * runtime-po: New directory.
8879 * runtime-po/Makefile.in.in: New file, copied from po/, with modified
8880 $(DOMAIN).pot-update rule, so that old messages are never dropped.
8881 * runtime-po/Rules-quot: New file, copied from po/.
8882 * runtime-po/quot.sed: Likewise.
8883 * runtime-po/boldquot.sed: Likewise.
8884 * runtime-po/en@quot.header: Likewise.
8885 * runtime-po/en@boldquot.header: Likewise.
8886 * runtime-po/insert-header.sin: Likewise.
8887 * runtime-po/remove-potcdate.sin: Likewise.
8888 * runtime-po/Makevars: New file.
8889 * runtime-po/POTFILES.in: New file.
8890 * runtime-po/LINGUAS: New file.
8891 * runtime-po/bison-runtime.pot: New file.
8892 * runtime-po/de.po: New file.
8893 * m4/bison.m4: New file.
8894 * Makefile.am (SUBDIRS): Add runtime-po.
8895 (aclocaldir, aclocal_DATA): New variables.
8896 * configure.ac: Add AC_CONFIG_FILES of runtime-po/Makefile.in.
8897 Define aclocaldir.
8898 * src/getargs.c (usage): Document --print-localedir option.
8899 (PRINT_LOCALEDIR_OPTION): New enum item.
8900 (long_options): Add --print-localedir option.
8901 (getargs): Handle --print-localedir option.
8902 * doc/bison.texinfo (Bison Parser): Remove paragraph about _().
8903 (Internationalization): New section.
8904
8905 2005-07-12 Akim Demaille <akim@epita.fr>
8906
8907 * src/symtab.h, src/symtab.c (symbol_print): Swap the arguments,
8908 for consistency with the rest of the code.
8909 * src/symlist.h, src/symlist.c (symbol_list_print): Ditto.
8910 Add separators.
8911
8912 2005-07-12 Akim Demaille <akim@epita.fr>
8913
8914 * src/parse-gram.y: Use %printer instead of YYPRINT.
8915
8916 2005-07-12 Akim Demaille <akim@epita.fr>
8917
8918 * src/symtab.h, src/symtab.c (symbol_print): New.
8919 * src/symlist.h, src/symlist.c (symbol_list_print): New.
8920 * src/symlist.c (symbol_list_n_type_name_get): Report the culprit.
8921
8922 2005-07-12 Akim Demaille <akim@epita.fr>
8923
8924 * data/glr.c (b4_syncline): Fix (swap) the definitions of
8925 b4_at_dollar and b4_dollar_dollar.
8926
8927 2005-07-11 Paul Eggert <eggert@cs.ucla.edu>
8928
8929 * doc/bison.texinfo (Mystery Conflicts): Add reference to DeRemer
8930 and Pennello's paper.
8931
8932 2005-07-09 Paul Eggert <eggert@cs.ucla.edu>
8933
8934 * data/yacc.c (yyparse): Undo previous patch. Instead,
8935 set yylsp[0] and yyvsp[0] only if the initial action
8936 sets yylloc and yylval, respectively.
8937
8938 * data/yacc.c (yyparse): In the initial action, set
8939 yylsp[0] and yyvsp[0] rather than yylloc and yylval.
8940 This avoids the use of undefined variables if the initial
8941 action does not set yylloc and/or yylval.
8942
8943 2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
8944
8945 * examples/calc++/calc++-driver.cc, examples/calc++/calc++-driver.hh:
8946 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc:
8947 Remove from CVS. These files are automatically generated.
8948 * examples/extexi: Clarify that this file is now part of Bison,
8949 not GNU M4, and that it works with any POSIX-compatible Awk.
8950 * examples/calc++/Makefile.am (run_extexi): Remove; not used.
8951 ($(calc_extracted)): Renamed from $(calc_sources_extracted),
8952 so that we also get calc++-parser.yy. Geneate it.
8953 Use $(AWK), not gawk, since any conforming Awk will do.
8954 Put comment before action, since older 'make' can't handle comment
8955 in action.
8956 $(BUILT_SOURCES): List all built sources, not just some of them.
8957 $(MAINTAINERCLEANFILES): Remove *.stamp, and all built sources.
8958 $($(srcdir)/calc++-parser.stamp): Work even if POSIXLY_CORRECT.
8959 $($(calc_sources_generated)): Remove unnecessary test for existence
8960 of target. (This had a shell syntax error anyway; a stray "x".)
8961 (calc_extracted): List $(srcdir)/calc++-parser.yy, not
8962 calc++-parser.yy.
8963 * examples/.cvsignore, examples/calc++/.cvsignore: New files.
8964
8965 * bootstrap (gnulib_modules): Add gettext, now that it's no longer
8966 implied by the other modules.
8967
8968 2005-07-06 Akim Demaille <akim@epita.fr>
8969
8970 Bind examples/calc++ to the package.
8971 * examples/calc++/Makefile: Remove, replaced by...
8972 * examples/calc++/Makefile.am: ... this new file.
8973 * examples/calc++/test: Remove input.
8974 * examples/calc++/compile: Remove.
8975 * examples/Makefile.am: New.
8976 * configure.ac, Makefile.am: Adjust.
8977 * doc/Makefile.am (clean-local): New, for more recent texi2dvis.
8978
8979 2005-07-05 Paul Eggert <eggert@cs.ucla.edu>
8980
8981 * data/glr.c (yyFail): Drastically simplify; since the format argument
8982 never had any % directives, we can simply pass it to yyerror.
8983 (yyparse): Use "t a; a=b;" rather than "t a = b;" when a will
8984 be modified later, as that is the usual style in glr.c.
8985 Problems reported by Paul Hilfinger.
8986
8987 Rewrite GLR parser to catch more buffer overrun, storage exhaustion,
8988 and size overflow errors.
8989 * data/glr.c: Include <stdio.h> etc. after user prolog, not before,
8990 in case the user prolog sets feature-test macros like _GNU_SOURCE.
8991 (YYSIZEMAX): New macro.
8992 (yystpcpy): New function, taken from yacc.c.
8993 (struct yyGLRStack.yyspaceLeft): Now size_t, not int.
8994 (yyinitGLRStack, yyfreeGLRstack): Remove unnecessary forward decls,
8995 so that we don't have to maintain their signatures.
8996 (yyFail): Check for buffer overflow, by using vsnprintf rather
8997 than vsprintf. Allocate a bigger buffer if possible.
8998 Report an error if buffer allocation fails.
8999 (yyStackOverflow): New function.
9000 (yyinitStateSet, yyinitGLRStack): Return a boolean indicating whether
9001 the initialization was successful. It might fail if storage was
9002 exhausted.
9003 (yyexpandGLRStack): Add more checks for storage allocation failure.
9004 Use yyStackOverflow to report failures.
9005 (yymarkStackDeleted, yyglrShift, yyglrShiftDefer, yydoAction):
9006 (yysplitStack, yyprocessOneStack, yyparse, yypstack):
9007 Don't assume stack number fits in int.
9008 (yysplitStack): Check for storage allocation failure.
9009 (yysplitStack, yyprocessOneStack): Add pure_formals, so that we
9010 can print diagnostics on storage allocation failure. All callers
9011 changed.
9012 (yyresolveValue): Use yybool for boolean.
9013 (yyreportSyntaxError): Check for size-calculation overflow.
9014 This code is taken from yacc.c.
9015 (yyparse): Check for storage allocation errors when allocating
9016 the initial stack.
9017
9018 2005-07-05 Akim Demaille <akim@epita.fr>
9019
9020 Extract calc++ from the documentation.
9021 * doc/bison.texinfo (Calc++): Add the extraction marks.
9022 * examples/extexi: New, from the aborted GNU Programming 2E.
9023 Separate the different paragraph of a file with empty lines.
9024 * examples/Makefile: Use it to extract the whole calc++ example.
9025
9026 2005-06-24 Akim Demaille <akim@epita.fr>
9027
9028 * doc/bison.texinfo (C++ Parser Interface): Use defcv to define
9029 class typedefs.
9030
9031 2005-06-22 Akim Demaille <akim@epita.fr>
9032
9033 * doc/bison.texinfo (C++ Language Interface): First stab.
9034 (C++ Parsers): Remove.
9035
9036 2005-06-22 Akim Demaille <akim@epita.fr>
9037
9038 * data/lalr1.cc (yylex_): Honor %lex-param.
9039
9040 2005-06-22 Akim Demaille <akim@epita.fr>
9041
9042 Start a set of simple examples.
9043 * examples/calc++/Makefile, examples/calc++/calc++-driver.cc,
9044 * examples/calc++/calc++-driver.hh,
9045 * examples/calc++/calc++-parser.yy,
9046 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc,
9047 * examples/calc++/compile, examples/calc++/test: New.
9048
9049 2005-06-09 Paul Eggert <eggert@cs.ucla.edu>
9050
9051 * data/yacc.c (malloc, free) [defined __cplusplus]: Wrap inside
9052 extern "C" {}. This fixes a problem reported by Paul Hilfinger,
9053 which stems from the 2005-05-27 patch.
9054
9055 2005-06-06 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
9056
9057 * data/glr.c: Modify treatment of unused parameters to permit use
9058 of g++ (which doesn't allow __attribute__ ((unused)) for parameters).
9059
9060 2005-05-30 Paul Eggert <eggert@cs.ucla.edu>
9061
9062 Fix infringement on user name space reported by Janos Zoltan Szabo.
9063 * data/yacc.c (yyparse): strlen -> yystrlen.
9064
9065 2005-05-30 Akim Demaille <akim@epita.fr>
9066
9067 * data/lalr1.cc (_): New.
9068 Translate the various messages.
9069
9070 2005-05-27 Paul Eggert <eggert@cs.ucla.edu>
9071
9072 Fix infringement on user name space reported by Bruno Haible.
9073 * data/yacc.c (YYSIZE_T): Define first, so that later decls can use it.
9074 Prefer GCC's __SIZE_TYPE__ if available, so that we don't infringe on
9075 the user's name space.
9076 (alloca): Include <stdlib.h> to get it, if it's not built in.
9077 (YYMALLOC, YYFREE): Define only if needed.
9078 (malloc, free): Declare, but only if needed, as this infringes on
9079 the user name space.
9080
9081 2005-05-25 Paul Eggert <eggert@cs.ucla.edu>
9082
9083 Fix BeOS, FreeBSD, MacOS porting problems reported by Bruno Haible.
9084 * lib/bitset.c (bitset_print): Don't assume size_t can be printed
9085 with %d format.
9086 * lib/ebitset.c (min, max): Undef before defining.
9087 * lib/vbitset.c (min, max): Likewise.
9088 * lib/subpipe.c (create_subpipe): Save local variables in case
9089 vfork clobbers them.
9090
9091 2005-05-24 Bruno Haible <bruno@clisp.org>
9092
9093 * tests/synclines.at (AT_SYNCLINES_COMPILE): Add support for the
9094 error message syntax used by gcc-4.0.
9095
9096 2005-05-23 Paul Eggert <eggert@cs.ucla.edu>
9097
9098 * README: Mention m4 1.4.3. Remove obsolete advice about
9099 Sun Forte Developer 6 update 2, VMS, and MS-DOS.
9100
9101 * bootstrap: Remove workaround for problem I encountered with
9102 gettext 0.14.1; it seems to be fixed now.
9103
9104 2005-05-22 Paul Eggert <eggert@cs.ucla.edu>
9105
9106 * NEWS: Version 2.0a.
9107
9108 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
9109 the previous change.
9110
9111 Various maintainer cleanups.
9112 * .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*,
9113 conftest*, for benefit of CVS commands run at the same time as
9114 "configure". Add build-aux, since "bootstrap" now creates it and
9115 its subfiles.
9116 * Makefile.cfg (move_if_change): Remove.
9117 * Makefile.maint: Remove the update stuff; we now use "bootstrap".
9118 (ftp-gnu, www-gnu, move_if_change, local_updates, update):
9119 (po_repo, do-po-update, po-update, wget_files, get-targets):
9120 (config.guess-url_prefix, config.sub-url_prefix):
9121 (ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
9122 (standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url):
9123 ($(get-targets), cvs-files, automake_repo, wget-update, cvs-update):
9124 Remove.
9125 * configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux;
9126 this is now the recommended name.
9127 * config/.cvsignore: Remove config.guess, config.rpath, config.sub,
9128 depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex,
9129 ylwrap. These files now go into build-aux.
9130 * config/move-if-change: Remove.
9131 * config/prev-version.txt: Bump from 1.75 to 2.0.
9132
9133 * bootstrap: Add stdio-safer, unistd-safer modules.
9134 Remove m4/glibc2.m4 (introduced by latest gnulib, but
9135 we don't need it).
9136 * lib/.cvsignore: Add dup-safer.c, fd-safer.c,
9137 fopen-safer.c, stdio-safer.h, unistd-safer.h.
9138 * lib/subpipe.c: Include "unistd-safer.h".
9139 (create_subpipe): Make sure all the newly-created
9140 file descriptors are > 2, so that diagnostics don't
9141 get sent down them (which might cause Bison to hang, in theory).
9142 * m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
9143 * src/files.c (xfopen): Use fopen_safer, not fopen.
9144
9145 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
9146 yesterday's yacc.c fix.
9147
9148 2005-05-21 Paul Eggert <eggert@cs.ucla.edu>
9149
9150 * data/glr.c, data/lalr1.cc: Update copyright date.
9151
9152 Fix a destructor bug reported by Wolfgang Spraul in
9153 <http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
9154 * data/yacc.c (yyabortlab): Don't call destructor, and
9155 don't set yychar to EMPTY.
9156 (yyoverflowlab): Don't call destructor.
9157 (yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
9158 * tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
9159 since we no longer output the message "discarding lookahead token
9160 end of input ()".
9161
9162 2005-05-20 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
9163
9164 * data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
9165 fix a small glitch in debugging output.
9166 (yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
9167 after YY_SYMBOL_PRINT where needed.
9168
9169 (struct yyGLRState): Add some comments.
9170 (struct yySemanticOption): Add some comments.
9171 (union yyGLRStackItem): Add comment.
9172
9173 (yymergeOptionSets): Correct this to properly perform the union,
9174 avoiding infinite reported by Michael Rosien.
9175 Update comment.
9176
9177 * tests/glr-regression.at: Add test for GLR merging error reported
9178 by M. Rosien.
9179
9180 2005-05-13 Paul Eggert <eggert@cs.ucla.edu>
9181
9182 * COPYING, ChangeLog, GNUmakefile, HACKING, Makefile.am,
9183 Makefile.cfg, Makefile.maint, NEWS, README, README-alpha,
9184 README-cvs, TODO, bootstrap, configure.ac, data/Makefile.am,
9185 data/README, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c,
9186 data/m4sugar/m4sugar.m4, doc/Makefile.am, doc/bison.texinfo,
9187 doc/fdl.texi, doc/gpl.texi, doc/refcard.tex, lib/Makefile.am,
9188 lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
9189 lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h,
9190 lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c,
9191 lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c,
9192 lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h,
9193 lib/main.c, lib/subpipe.c, lib/subpipe.h, lib/timevar.c,
9194 lib/timevar.def, lib/timevar.h, lib/vbitset.c, lib/vbitset.h,
9195 lib/yyerror.c, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4, m4/timevar.m4,
9196 m4/warning.m4, src/LR0.c, src/LR0.h, src/Makefile.am, src/assoc.c,
9197 src/assoc.h, src/closure.c, src/closure.h, src/complain.c,
9198 src/complain.h, src/conflicts.c, src/conflicts.h, src/derives.c,
9199 src/derives.h, src/files.c, src/files.h, src/getargs.c,
9200 src/getargs.h, src/gram.c, src/gram.h, src/lalr.c, src/lalr.h,
9201 src/location.c, src/location.h, src/main.c, src/muscle_tab.c,
9202 src/muscle_tab.h, src/nullable.c, src/nullable.h, src/output.c,
9203 src/output.h, src/parse-gram.c, src/parse-gram.h,
9204 src/parse-gram.y, src/print.c, src/print.h, src/print_graph.c,
9205 src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c,
9206 src/reduce.h, src/relation.c, src/relation.h, src/scan-gram.l,
9207 src/scan-skel.l, src/state.c, src/state.h, src/symlist.c,
9208 src/symlist.h, src/symtab.c, src/symtab.h, src/system.h,
9209 src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h,
9210 src/vcg.c, src/vcg.h, src/vcg_defaults.h, tests/Makefile.am,
9211 tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
9212 tests/cxx-type.at, tests/existing.at, tests/glr-regression.at,
9213 tests/headers.at, tests/input.at, tests/local.at, tests/output.at,
9214 tests/reduce.at, tests/regression.at, tests/sets.at,
9215 tests/synclines.at, tests/testsuite.at, tests/torture.at:
9216 Update FSF postal mail address.
9217
9218 2005-05-11 Paul Eggert <eggert@cs.ucla.edu>
9219
9220 * tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
9221 Problem reported by Ralf Menzel.
9222
9223 2005-05-01 Paul Eggert <eggert@cs.ucla.edu>
9224
9225 * tests/actions.at: Test that stack overflow invokes destructors.
9226 From Marcus Holland-Moritz.
9227 * data/yacc.c (yyerrlab): Move the code that destroys the stack
9228 from here....
9229 (yyreturn): to here. That way, destructors are called properly
9230 even if the stack overflows, or the user calls YYACCEPT or
9231 YYABORT. Stack-overflow problem reported by Marcus Holland-Moritz.
9232 (yyoverflowlab): Destroy the lookahead.
9233
9234 2005-04-24 Paul Eggert <eggert@cs.ucla.edu>
9235
9236 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
9237
9238 2005-04-17 Paul Eggert <eggert@cs.ucla.edu>
9239
9240 * NEWS: Bison-generated C parsers no longer quote literal strings
9241 associated with tokens.
9242 * src/output.c (prepare_symbols): Don't escape strings,
9243 since users don't want to see C escapes.
9244 * tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
9245 in diagnostics.
9246 * tests/input.at (Torturing the Scanner): Likewise.
9247 * tests/regression.at (Token definitions, Web2c Actions): Likewise.
9248
9249 2005-04-16 Paul Eggert <eggert@cs.ucla.edu>
9250
9251 * tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
9252 the data size is known to be too small and we can't increase it.
9253 This works around an HP-UX 11.00 glitch reported by Andrew Benham.
9254
9255 2005-04-15 Paul Eggert <eggert@cs.ucla.edu>
9256
9257 * src/parse-gram.y: Include quotearg.h.
9258 (string_as_id): Quote $1 before using it as a key, since the
9259 lexer no longer quotes it for us.
9260 (string_content): Don't strip quotes, since lexer no longer
9261 quotes it for us.
9262 * src/scan-gram.l: Include quotearg.h.
9263 ("\""): Omit quote.
9264 ("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
9265 a key, since the rest of the lexer doesn't quote it.
9266 * src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
9267 * tests/regression.at (Token definitions): Check for backslashes
9268 in token strings.
9269
9270 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): New macro.
9271 (YYSIZE_T): Define to unsigned long int when using an older compiler.
9272 (yyparse): Revamp code to generate long syntax error message, to
9273 make it easier to translate, and to avoid problems with arithmetic
9274 overflow. Change "virtual memory" to "memory" in diagnostic, since
9275 we don't know whether the memory is virtual.
9276
9277 2005-04-13 Paul Eggert <eggert@cs.ucla.edu>
9278
9279 * NEWS: Bison-generated C parsers now use the _ macro to
9280 translate strings.
9281 * data/yacc.c (_) [!defined _]: New macro.
9282 All English strings wrapped inside this macro.
9283 * doc/bison.texinfo (Bison Parser): Document _.
9284 * po/POTFILES.in: Include src/parse-gram.c, since it now
9285 includes translateable strings that parse-gram.y doesn't.
9286
9287 2005-04-12 Paul Eggert <eggert@cs.ucla.edu>
9288
9289 * src/symtab.c (symbol_make_alias): Call symbol_type_set,
9290 reverting the 2004-10-11 change to this function.
9291 (symbol_check_alias_consistency): Don't call symbol_type_set
9292 if the type name is already correct.
9293 * tests/input.at (Typed symbol aliases): New test, from Tim Van Holder.
9294
9295 2005-03-25 Paul Eggert <eggert@cs.ucla.edu>
9296
9297 * tests/regression.at (Token definitions): Don't use a token named
9298 c, as that generates a "#define c ..." that runs afoul of buggy
9299 stdlib.h that uses the identifier c as a member of struct
9300 drand48_data. Problem reported by Horst Wente.
9301
9302 2005-03-21 Paul Eggert <eggert@cs.ucla.edu>
9303
9304 * bootstrap: Change translation URL from
9305 http://www2.iro.umontreal.ca/~gnutra/po/maint/bison/ to
9306 http://www.iro.umontreal.ca/translation/maint/bison/ to avoid
9307 redirection glitches. Problem reported by twlevo@xs4all.nl.
9308
9309 2005-03-20 Paul Eggert <eggert@cs.ucla.edu>
9310
9311 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
9312 after operands; POSIX says this isn't portable for the c99 command.
9313
9314 2005-03-18 Paul Eggert <eggert@cs.ucla.edu>
9315
9316 * tests/glr-regression.at (glr-regr2a.y): Try to dump core
9317 immediately if a data overrun has occurred; this may help us track
9318 down what may be a spurious failure on MacOS.
9319
9320 2005-03-17 Paul Eggert <eggert@cs.ucla.edu>
9321
9322 Respond to problems reported by twlevo@xs4all.nl.
9323
9324 * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
9325
9326 * src/vcg.h: Comment fix.
9327 * src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
9328 (G_CMAX): Change to -1 instead of INT_MAX.
9329
9330 * data/yacc.c (yyparse): Omit spaces before #line.
9331
9332 2005-03-15 Paul Eggert <eggert@cs.ucla.edu>
9333
9334 * src/tables.c (state_number_to_vector_number): Put it inside an
9335 "#if 0", since it's not currently used. Problem reported by
9336 Roland McGrath.
9337
9338 2005-03-06 Paul Eggert <eggert@cs.ucla.edu>
9339
9340 * src/output.c (escaped_output): Renamed from
9341 escaped_file_name_output, since we now use it for symbol tags as
9342 well. All uses changed.
9343 (symbol_destructors_output, symbol_printers_output):
9344 Escape symbol tags too.
9345 Problem reported by Matyas Forstner in
9346 <http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.
9347
9348 * src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
9349 not needed.
9350 * src/output.c (user_actions_output, token_definitions_output,
9351 symbol_destructors_output, symbol_printers_output): Likewise.
9352 * src/reader.c (prologue_augment): Likewise.
9353 * src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
9354
9355 * src/vcg.c (output_edge): Don't quote linestyle arg.
9356 Problem reported by twlevo@xs4all.nl.
9357
9358 2005-02-28 Paul Eggert <eggert@cs.ucla.edu>
9359
9360 * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
9361 example, reported by Derek M Jones. Also, make the example even
9362 more outrageous, to better illustrate how bad the problem is.
9363
9364 2005-02-24 Paul Eggert <eggert@cs.ucla.edu>
9365
9366 * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
9367 putsym. Typo reported by Sebastian Piping.
9368
9369 2005-02-23 Paul Eggert <eggert@cs.ucla.edu>
9370
9371 * doc/bison.texinfo (Language and Grammar): some -> same
9372 (Epilogue): int he -> in the
9373 Typos reported by Sebastian Piping via Justin Pence.
9374
9375 2005-02-07 Paul Eggert <eggert@cs.ucla.edu>
9376
9377 * tests/glr-regression.at (Improper handling of embedded actions
9378 and dollar(-N) in GLR parsers): Renamed from "Improper handling of
9379 embedded actions and $-N in GLR parsers", work around an Autoconf bug
9380 with dollar signs in test names.
9381 * tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
9382 for a similar reason.
9383
9384 2005-01-28 Paul Eggert <eggert@cs.ucla.edu>
9385
9386 * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
9387 wants to redefine G_VIEW.
9388
9389 2005-01-27 Paul Eggert <eggert@cs.ucla.edu>
9390
9391 * src/vcg.c (get_view_str): Remove case for normal_view.
9392 Problem reported by twlevo@xs4all.nl.
9393
9394 2005-01-24 Paul Eggert <eggert@cs.ucla.edu>
9395
9396 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
9397 Problem reported by twlevo@xs4all.nl.
9398
9399 * doc/bison.texinfo: Change @dircategory from "GNU programming
9400 tools" to "Software development". Requested by Richard Stallman
9401 via Karl Berry.
9402
9403 2005-01-23 Paul Eggert <eggert@cs.ucla.edu>
9404
9405 * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
9406 Problem reported by twlevo@xs4all.nl.
9407
9408 2005-01-21 Paul Eggert <eggert@cs.ucla.edu>
9409
9410 * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
9411 keyword; it's not needed with modern compilers, and it doesn't
9412 affect correctness with older compilers. Suggested by
9413 twlevo@xs4all.nl.
9414
9415 2005-01-17 Paul Eggert <eggert@cs.ucla.edu>
9416
9417 * data/glr.c (yyuserAction): Add "default: break;" case to pacify
9418 gcc -Wswitch-default.
9419 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
9420 * data/yacc.c (yyparse): Likewise.
9421
9422 2005-01-12 Paul Eggert <eggert@cs.ucla.edu>
9423
9424 * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
9425 already. Let config.h define any nonstandard values.
9426
9427 2005-01-10 Paul Eggert <eggert@cs.ucla.edu>
9428
9429 * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
9430 for the benefit of slower hosts. Problem reported by
9431 Nelson H. F. Beebe.
9432
9433 2005-01-07 Paul Eggert <eggert@cs.ucla.edu>
9434
9435 * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
9436 being defined and not used.
9437 * data/lalr1.cc (yyparse): Likewise.
9438 Use "if (false)" rather than "if (0)".
9439
9440 2005-01-05 Paul Eggert <eggert@cs.ucla.edu>
9441
9442 * TODO: Mention that we should allow NUL bytes in tokens.
9443
9444 2005-01-02 Paul Eggert <eggert@cs.ucla.edu>
9445
9446 * src/scan-skel.l (<<EOF>>): Don't close standard output.
9447 Problem reported by Hans Aberg.
9448
9449 2005-01-01 Paul Eggert <eggert@cs.ucla.edu>
9450
9451 * src/getargs.c (version): Happy new year; update overall
9452 program copyright date from 2004 to 2005.
9453
9454 * src/scan-skel.l ("@output ".*\n): Don't close standard output.
9455 Problem reported by Hans Aberg.
9456 * tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
9457 (Output file names.): Add a test for the case when standard output
9458 is closed.
9459
9460 2004-12-26 Paul Eggert <eggert@cs.ucla.edu>
9461
9462 * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
9463 to fix an oversight in the Bison 2.0 manual.
9464
9465 2004-12-25 Paul Eggert <eggert@cs.ucla.edu>
9466
9467 * NEWS: Version 2.0. Reformat the existing news items since
9468 1.875, so that related items are grouped together.
9469 * configure.ac (AC_INIT): Bump version to 2.0.
9470 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
9471
9472 * tests/torture.at (Exploding the Stack Size with Alloca): Set
9473 YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
9474 otherwise, we're not testing alloca. Unfortunately there's no
9475 simple way to consult HAVE_ALLOCA here.
9476
9477 * data/lalr1.cc (yydestruct_): Pacify unused variable warning
9478 for yymsg, too.
9479
9480 * src/LR0.c (new_itemsets): Use memset rather than zeroing by
9481 hand. This avoids a warning about comparing int to size_t when
9482 GCC warnings are enabled.
9483
9484 2004-12-22 Paul Eggert <eggert@cs.ucla.edu>
9485
9486 * NEWS: Bison-generated parsers no longer default to using the
9487 alloca function (when available) to extend the parser stack, due
9488 to widespread problems in unchecked stack-overflow detection.
9489 * data/glr.c (YYMAXDEPTH): Remove undef when zero. It's the user's
9490 responsibility to set it to a positive value. This lets the user
9491 specify a value that is not a preprocessor constant.
9492 * data/yacc.c (YYMAXDEPTH): Likewise.
9493 (YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
9494 * doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
9495 to be a compile-time constant. However, explain the constraints on it.
9496 Also, explain the constraints on YYINITDEPTH.
9497 (Table of Symbols): Explain that alloca is no longer the default.
9498 Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
9499 to 1.
9500
9501 * doc/bison.texinfo (Location Default Action): Mention that n must
9502 be zero when k is zero. Suggested by Frank Heckenbach.
9503
9504 2004-12-22 Akim Demaille <akim@epita.fr>
9505
9506 * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
9507 (parser::state_type, parser::semantic_type, parser::location_type):
9508 Private, not public.
9509 (parser::parse): Return ints, not bool.
9510 Returning a bool introduces a problem: 0 corresponds to false, and
9511 it seems weird to return false on success. Returning true changes
9512 the conventions for yyparse.
9513 Alternatively we could return void and send an exception.
9514 There is no clear consensus (yet?).
9515 (state_stack, semantic_stack, location_stack): Rename as...
9516 (state_stack_type, semantic_stack_type, location_stack_type): these.
9517 Private, not public.
9518 * tests/c++.at: New.
9519 * tests/testsuite.at, tests/Makefile.am: Adjust.
9520
9521 2004-12-21 Akim Demaille <akim@epita.fr>
9522
9523 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
9524
9525 2004-12-21 Akim Demaille <akim@epita.fr>
9526
9527 Don't impose std::string for filenames.
9528
9529 * data/lalr1.cc (b4_filename_type): New.
9530 (position::filename): Use it.
9531 (parser.hh): Move the inclusion of stack.hh and location.hh below
9532 the user code, so that needed headers for the filename type can be
9533 included first.
9534 Forward declare them before the user code.
9535 * tests/Makefile.am (check-local, installcheck-local): Pass
9536 TESTSUITEFLAGS to the TESTSUITE.
9537
9538 2004-12-20 Akim Demaille <akim@epita.fr>
9539
9540 Use more STL like names: my_class instead of MyClass.
9541
9542 * data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
9543 (SemanticStack, SemanticType, StateStack, StateType)
9544 (TokenNumberType, Stack, Slice, Traits, Parser::location)
9545 (Parser::value): Rename as...
9546 (location_stack, location_type, rhs_number_type, semantic_stack)
9547 (semantic_type, state_stack, state_type, token_number_type, stack)
9548 (slice, traits, parser::yylloc, parser::yylval): these.
9549
9550 * tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
9551
9552 2004-12-19 Paul Eggert <eggert@cs.ucla.edu>
9553
9554 * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
9555 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
9556
9557 2004-12-17 Paul Eggert <eggert@cs.ucla.edu>
9558
9559 Remove uses of 'short int' and 'unsigned short int'. This raises
9560 some arbitrary limits. It uses more memory but nowadays that's
9561 not much of an issue.
9562
9563 This change does not affect the generated parsers; that's a different
9564 task, as some users will want to conserve memory there.
9565
9566 Ideally we should use size_t to represent all object counts, and
9567 something like ptrdiff_t to represent signed differences of object
9568 counts; but that will require more code-cleanup than I have the
9569 time to do right now.
9570
9571 * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
9572 Use size_t, not int or short int, to count objects.
9573 * src/closure.c (nritemset, closure): Likewise.
9574 * src/closure.h (nritemset, closure): Likewise.
9575 * src/nullable.c (nullable_compute): Likewise.
9576 * src/print.c (print_core): Likewise.
9577 * src/print_graph.c (print_core): Likewise.
9578 * src/state.c (state_compare, state_hash): Likewise.
9579 * src/state.h (struct state): Likewise.
9580 * src/tables.c (default_goto, goto_actions): Likewise.
9581
9582 * src/gram.h (rule_number, rule): Use int, not short int.
9583 * src/output.c (prepare_rules): Likewise.
9584 * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
9585 errs, reductions): Likewise.
9586 * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
9587 Likewise.
9588 * src/tables.c (vector_number, tally, action_number,
9589 ACTION_NUMBER_MINIMUM): Likewise.
9590 * src/output.c (muscle_insert_short_int_table): Remove.
9591
9592 2004-12-17 Akim Demaille <akim@epita.fr>
9593
9594 * data/lalr1.cc: Extensive Doxygenation.
9595 (error_): Rename as...
9596 (error): this, since it is visible to the user.
9597 Adjust callers.
9598 (Parser::message): Now an automatic variable from...
9599 (Parser::yyreport_syntax_error_): here.
9600 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
9601 Parser::error.
9602 * tests/input.at: Escape $.
9603
9604 2004-12-16 Paul Eggert <eggert@cs.ucla.edu>
9605
9606 * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
9607 Parenthesize rhs to avoid obscure problems with mistakes like
9608 "foo$$bar = foo$1bar;". Problem reported by twlevo at xs4all.
9609 * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
9610 b4_rhs_location): Likewise.
9611 * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
9612 b4_rhs_location): Likewise.
9613
9614 2004-12-16 Akim Demaille <akim@epita.fr>
9615
9616 * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
9617 yacc.c: be sure to stay within yycheck_.
9618 * tests/actions.at: Re-enable C++ tests.
9619
9620 2004-12-16 Akim Demaille <akim@epita.fr>
9621
9622 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
9623 real.
9624
9625 2004-12-16 Akim Demaille <akim@epita.fr>
9626
9627 Use #define to handle the %name-prefix.
9628
9629 * data/glr.c, data/yacc.c: Comment changes.
9630 * data/lalr1.cc (yylex): Use #define to select the name of yylex,
9631 so that one can refer to yylex in the parser file, and have it
9632 renamed, as is the case with other skeletons.
9633
9634 2004-12-16 Akim Demaille <akim@epita.fr>
9635
9636 Move lalr1.cc internals into yy*.
9637
9638 * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
9639 (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
9640 (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
9641 (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
9642 (empty_, final_, terror_, errcode_, ntokens_)
9643 (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
9644 (looka_, ilooka_, error_range_, nerrs_):
9645 Rename as...
9646 (yysemantic_stack_, yylocation_stack_, yystate_stack_)
9647 (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
9648 (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
9649 (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
9650 (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
9651 (yyfinal_, yyterror_, yyerrcode_, yyntokens_)
9652 (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
9653 (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
9654 these.
9655
9656 2004-12-15 Paul Eggert <eggert@cs.ucla.edu>
9657
9658 Fix some problems reported by twlevo at xs4all.
9659 * src/symtab.c (symbol_new): Report an error if the input grammar
9660 contains too many symbols. This is better than calling abort() later.
9661 * src/vcg.h (enum layoutalgorithm): Remove. All uses removed.
9662 (struct node, struct graph):
9663 Rename member expand to stretch. All uses changed.
9664 (struct graph): Remove member layoutalgorithm. All uses removed.
9665 * src/vcg.c (get_layoutalgorithm_str): Remove. All uses removed.
9666 * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
9667 All uses changed.
9668 (N_STRETCH): Rename from N_EXPAND. All uses changed.
9669
9670 2004-12-15 Akim Demaille <akim@epita.fr>
9671
9672 * data/lalr1.cc: Normalize /** \brief ... */ to ///.
9673 Add more Doxygen comments.
9674 (symprint_, stack_print_, reduce_print_, destruct_, pop)
9675 (report_syntax_error_, translate_): Rename as...
9676 (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
9677 (yypop_, yyreport_syntax_error_, yytranslate_): this.
9678
9679 2004-12-15 Akim Demaille <akim@epita.fr>
9680
9681 * data/lalr1.cc (lex_): Rename as...
9682 (yylex_): this.
9683 Move the trace here.
9684 Take the %name-prefix into account.
9685 Reported by Alexandre Duret-Lutz.
9686
9687 2004-12-15 Akim Demaille <akim@epita.fr>
9688
9689 Simplify the C++ parser constructor.
9690
9691 * data/lalr1.cc (debug_): Rename as...
9692 (yydebug_): so that the parser's internals are always in the yy*
9693 pseudo namespace.
9694 Adjust uses.
9695 (b4_parse_param_decl): Remove the leading comma as it is now only
9696 called as unique argument list.
9697 (Parser::Parser): Remove the constructor accepting a location and
9698 an initial debugging level.
9699 Remove from the other ctor the argument for the debugging level.
9700 (debug_level_type, debug_level, set_debug_level): New.
9701
9702 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust
9703 constructor calls.
9704
9705 2004-12-15 Akim Demaille <akim@epita.fr>
9706
9707 Remove b4_root related material: failure experiment
9708 (which goal was to allow to derive from a class).
9709
9710 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
9711 definitions and uses.
9712
9713 2004-12-14 Paul Eggert <eggert@cs.ucla.edu>
9714
9715 * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
9716 not 2, since it's not portable to subtract 1 from the start of an
9717 array. The new item 0 is never set or used. All uses changed.
9718
9719 (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
9720 the default definition of YYLLOC_DEFAULT. Problem reported
9721 by Frank Heckenbach.
9722
9723 2004-12-12 Paul Eggert <eggert@cs.ucla.edu>
9724
9725 * data/glr.c (YYRHSLOC): Don't have two definitions, one for
9726 the normal case and one for the error case. Just use the
9727 first one uniformly. Problem reported by Frank Heckenbach.
9728 (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
9729 use exactly the same macro in both places.
9730 (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
9731 so that the normal-case YYRHSLOC works for the error case too.
9732 All uses changed.
9733 * data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
9734 (YYLLOC_DEFAULT): Use the same macro as glr.c.
9735 * doc/bison.texinfo (Location Default Action): Don't claim that
9736 we have an array of locations. Use the same macro for both glr
9737 and lalr parsers. Mention YYRHSLOC. Mention what happens when
9738 the index is 0.
9739
9740 2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
9741
9742 * HACKING: Update email addresses to send announcements to.
9743
9744 * configure.ac (AC_INIT): Bump version to 1.875f.
9745
9746 2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
9747
9748 * NEWS: Version 1.875e.
9749 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
9750
9751 * src/scan-skel.l: Include "complain.h", for "fatal".
9752
9753 * src/relation.h (relation_print, relation_digraph):
9754 Relation sizes are of type relation_node, not size_t (this is
9755 merely a doc fix, since the two types are equivalent).
9756 (relation_transpose): Relation sizes are of type relation_node,
9757 not int.
9758 * src/relation.c: Likewise.
9759 (top, infinity): Now of type relation_node, not int.
9760 (traverse, relation_transpose): Use relation_node, not int.
9761
9762 * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
9763 with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
9764 (yyparse): Remove unused local introduced in 2004-10-25 patch.
9765
9766 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
9767 specifying whether the test should be skipped. Use it tp
9768 specify that the [%defines %skeleton "lalr1.cc"] tests currently
9769 fail on some hosts, and should be skipped.
9770
9771 2004-12-08 Paul Eggert <eggert@cs.ucla.edu>
9772
9773 * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers
9774 changed to use xcalloc, xnmalloc, xnrealloc, respectively,
9775 unless otherwise specified below.
9776
9777 * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
9778 to allocate kernel_base, kernel_items, kernel_size, since
9779 they needn't be initialized to 0.
9780 (allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
9781 * src/closure.c (new_closure): Likewise, for itemset.
9782 * src/derives.c (derives_compute): Likewise, for delts, derives, q.
9783 * src/lalr.c (set_goto_map): Likewise, for temp_map.
9784 (initialize_F): Likewise, for reads, edge, reads[i], includes[i].
9785 (build_relations): Likewise for edge, states1, includes.
9786 * src/nullable.c (nullable_compute): Likewise, for squeue, relts.
9787 * src/reader.c (packgram): Likewise, for ritem, rules.
9788 * src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
9789 * src/relation.c (relation_digraph): Likewise for VERTICES.
9790 (relation_transpose): Likewise for new_R, end_R.
9791 * src/symtab.c (symbols_token_translations_init): Likewise for
9792 token_translations.
9793 * src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
9794 (token_actions): Likewise for yydefact, actrow, conflrow,
9795 conflict_list.
9796 (save_column): Likewise for froms[symno], tos[symno].
9797 (goto_actions): Likewise for state_count.
9798 (pack_table): Likewise for base, pos, check.
9799 (tables_generate): Likewise for width.
9800
9801 * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
9802 for initial core. Just have a separate core, so we needn't worry
9803 about whether kernel_size and kernel_base are initialized.
9804
9805 * src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
9806 kernel_size, kernel_items): Remove unnecessary initialization.
9807 * src/conflicts.c (conflicts): Likewise.
9808 * src/derives.c (derives): Likewise.
9809 * src/muscle_tablc (muscle_insert): Likewise.
9810 * src/relation.c (relation_digraph): Likewise.
9811 * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
9812 conflrow, conflict_table, conflict_list, table, check):
9813 Likewise.
9814
9815 * src/closure.c (new_closure): Arg is of type unsigned int, not int.
9816 This is because all callers pass unsigned int.
9817 * src/closure.h (new_closure): Likewise.
9818
9819 * src/lalr.c (initialize_F): Initialize reads[i] in all cases.
9820 (build_relations): Initialize includes[i] in all cases.
9821 * src/reader.c (packgram): Always initialize rules[ruleno].prec
9822 and rules[ruleno].precsym. Initialize members in order.
9823 * src/relation.c (relation_transpose): Always initialize new_R[i]
9824 and end_R[i].
9825 * src/table.c (conflict_row): Initialize 0 at end of conflict_list.
9826
9827 * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
9828 conflict_list[0] was always 0, but now it isn't initialized.
9829
9830 * src/table.c (table_grow): When conflict_table grew, the grown
9831 area wasn't cleared. Fix this.
9832
9833 * lib/.cvsignore: Add strdup.c, strdup.h.
9834 * m4/.cvsignore: Add strdup.m4.
9835
9836 2004-12-07 Paul Eggert <eggert@cs.ucla.edu>
9837
9838 * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
9839 * src/lalr.c (set_goto_map): Don't allow ngotos to equal
9840 GOTO_NUMBER_MAXIMUM, since we occasionally compute
9841 ngotos + 1 without checking for overflow.
9842 (build_relations): Use END_NODE, not -1, to denote end of edges.
9843 * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
9844 build_relations): Use goto_number, not int, for goto numbers.
9845 * src/tables.c (save_column, default_goto): Likewise.
9846
9847 2004-11-23 Akim Demaille <akim@epita.fr>
9848
9849 * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
9850 of #defining from yystype.
9851 Don't typedef yystype, C++ does not need it.
9852 This lets it possible to forward declare it as union.
9853
9854 2004-11-23 Paul Eggert <eggert@cs.ucla.edu>
9855
9856 * bootstrap (gnulib_modules): Add extensions.
9857 Problem reported by Jim Meyering.
9858
9859 2004-11-22 Paul Eggert <eggert@cs.ucla.edu>
9860
9861 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
9862 src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
9863 src/system.h, src/tables.c: XFREE -> free, to accommodate
9864 recent change to gnulib xalloc.h.
9865 Problem reported by Jim Meyering.
9866
9867 2004-11-17 Akim Demaille <akim@epita.fr>
9868
9869 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
9870
9871 2004-11-17 Akim Demaille <akim@epita.fr>,
9872 Alexandre Duret-Lutz <adl@gnu.org>
9873
9874 * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
9875 changes.
9876 (YYCDEBUG): Adjust.
9877 Use it instead of cdebug_.
9878 (Parser::debug_stream, Parser::set_debug_stream): New.
9879 (Parser::symprint_): Define cdebug_ for temporary backward
9880 compatibility.
9881 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
9882 debug_stream ().
9883
9884 2004-11-17 Akim Demaille <akim@epita.fr>
9885
9886 * data/lalr1.cc (Parser:print_): Remove, use %printer instead.
9887 * tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
9888 * tests/calc.at (_AT_DATA_CALC_Y): Ditto.
9889 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
9890
9891 2004-10-27 Paul Eggert <eggert@cs.ucla.edu>
9892
9893 * data/glr.c (yyloc_default): Remove; not used.
9894 Problem reported by Frank Heckenbach.
9895
9896 2004-10-25 Akim Demaille <akim@epita.fr>
9897
9898 * data/glr.c (YYRHSLOC): Move its definition next to its uses.
9899 Introduce another definition to address simple location arrays.
9900 (yyGLRStack): New member: yyerror_range.
9901 (yyrecoverSyntaxError, yyparse): Update it.
9902 (yyrecoverSyntaxError): Use it when shifting the error token to
9903 have an accurate range, equivalent to the one computed by both
9904 yacc.c and lalr1.cc.
9905 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
9906 that column numbers start at column 0, as per GNU Coding
9907 Standards, the others tests, and the doc.
9908 (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
9909 Adjust to the above change (first column is 0).
9910 And adjust the location of the "<error>", now covering the whole
9911 line.
9912
9913 2004-10-22 Akim Demaille <akim@epita.fr>
9914 and Paul Eggert <eggert@cs.ucla.edu>
9915
9916 Remove some arbitrary limits on goto numbers and relations.
9917 * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
9918 initial values, since they're never used.
9919 (set_goto_map): ngotos is now unsigned, so test for overflow
9920 by seeing whether it wraps around to zero.
9921 * src/lalr.h (goto_number): Now size_t, not short int.
9922 (GOTO_NUMBER_MAXIMUM): Remove.
9923 * src/relation.c (relation_print, traverse, relation_transpose):
9924 Check for END_NODE rather than looking at sign.
9925 * src/relation.h (END_NODE): New macro.
9926 (relation_node): Now size_t, not short int.
9927
9928 2004-10-22 Paul Eggert <eggert@cs.ucla.edu>
9929
9930 * doc/bison.texinfo (Language and Grammar): In example, "int" is a
9931 keyword, not an identifier. Problem reported by Baron Schwartz in
9932 <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
9933
9934 2004-10-11 Akim Demaille <akim@epita.fr>
9935
9936 * src/symtab.c (symbol_check_alias_consistency): Also check
9937 type names, destructors, and printers.
9938 Reported by Alexandre Duret-Lutz.
9939 Recode the handling of associativity and precedence in terms
9940 of symbol_precedence_set.
9941 Accept no redeclaration at all, not even equal to the previous
9942 value.
9943 (redeclaration): New.
9944 Use it to factor redeclaration complaints.
9945 (symbol_make_alias): Don't set the type of the alias, let
9946 symbol_check_alias_consistency do it as for other features.
9947 * src/symtab.h (symbol): Add new member prec_location, and
9948 type_location.
9949 * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
9950 * tests/input.at (Incompatible Aliases): New.
9951
9952 2004-10-09 Paul Eggert <eggert@cs.ucla.edu>
9953
9954 .cvsignore fixes to accommodate gnulib changes,
9955 and the practice of naming build directories "_build".
9956 * .cvsignore: Add "_*". Sort.
9957 * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
9958 * m4/.cvsignore: Add "*_gl.m4".
9959
9960 2004-10-06 Akim Demaille <akim@epita.fr>
9961
9962 * src/parse-gram.y (add_param): Fix the truncation of trailing
9963 spaces.
9964
9965 2004-10-05 Akim Demaille <akim@epita.fr>
9966
9967 In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
9968 whether the reducion was empty or not. This leaves room to
9969 improve the use of YYLLOC_DEFAULT in such a case.
9970 lalr1.cc is still experimental, so changing this is acceptable.
9971 And finally, there are probably not many users who changed the
9972 handling of locations in GLR, so changing is admissible too.
9973
9974 * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
9975 empty reduction, set @$ to an empty location ending the previously
9976 stacked symbol.
9977 Adjust uses to make sure the code is triggered on empty
9978 reductions.
9979 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
9980 expected output: empty reductions have empty locations.
9981
9982 2004-09-29 Akim Demaille <akim@epita.fr>
9983
9984 * data/lalr1.cc: Move towards a more standard C++ coding style
9985 for templates: Class < T > -> Class<T>.
9986
9987 2004-09-29 Akim Demaille <akim@epita.fr>
9988
9989 * data/lalr1.cc: Reinstall the former ctor, for sake of
9990 compatibility, but warn it will be removed.
9991 Move towards a more standard C++ coding style (i.e., type *var ->
9992 type* var).
9993
9994 2004-09-27 Paul Eggert <eggert@cs.ucla.edu>
9995
9996 * src/parse-gram.y (add_param): Rewrite to avoid strchr,
9997 since it's less likely to work if NULs are involved in the future.
9998
9999 2004-09-27 Akim Demaille <akim@epita.fr>
10000
10001 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
10002
10003 2004-09-27 Akim Demaille <akim@epita.fr>
10004
10005 * data/lalr1.cc (b4_parse_param_decl_1): New.
10006 (b4_parse_param_decl): Use it to have different names between attribute
10007 and argument names.
10008 (b4_cc_constructor_call): Likewise.
10009
10010 2004-09-24 Akim Demaille <akim@epita.fr>
10011
10012 * src/parse-gram.y (add_param): Strip the leading and trailing
10013 blanks from a formal argument declaration.
10014 (YY_LOCATION_PRINT): New.
10015
10016 2004-09-24 Akim Demaille <akim@epita.fr>
10017
10018 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
10019 after the location.
10020
10021 2004-09-24 Akim Demaille <akim@epita.fr>
10022
10023 * doc/bison.texinfo (Table of Symbols): Sort.
10024
10025 2004-09-21 Akim Demaille <akim@epita.fr>
10026
10027 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
10028 the useless parentheses.
10029 Suggested by Paul Eggert.
10030
10031 2004-09-20 Akim Demaille <akim@epita.fr>
10032
10033 Let the initial-action act on the look-ahead, and use it for the
10034 "initial push" (corresponding to an hypothetical beginning-of-file).
10035 And let lalr1.cc honor %initial-action.
10036
10037 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
10038 example.
10039 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
10040 (Parser::Parser): Remove the ctor that used to initialize it.
10041 (Parser::parse): Like in the other skeletons, issue the "starting
10042 parse" message before any action.
10043 Honor %initial-action.
10044 Initialize the stacks with the lookahead.
10045 * data/yacc.c: Let $$ and @$ in %initial-action designate the
10046 look-ahead.
10047 Push them in the stacks.
10048 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
10049
10050 2004-09-20 Akim Demaille <akim@epita.fr>
10051
10052 * doc/bison.texinfo (Initial Action Decl): New.
10053
10054 2004-09-20 Akim Demaille <akim@epita.fr>
10055
10056 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
10057 clearer criterion to define it.
10058 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
10059 When reducing on an empty RHS, use the latest stacked location as
10060 location.
10061 yylloc is not always available.
10062 * data/glr.c: Likewise.
10063 Also, honor initial-actions.
10064
10065 2004-09-20 Akim Demaille <akim@epita.fr>
10066
10067 * data/yacc.c (YY_LOCATION_PRINT): New.
10068 Define when we know YYLTYPE's structure, i.e., when the default
10069 YYLLOC_DEFAULT is used.
10070 * data/c.m4 (b4_yysymprint_generate): Use it.
10071 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
10072 value of the result.
10073 (error_start_): Replace with...
10074 (error_range_): this location array.
10075 This allows to replace code relying on the implementation of
10076 locations by portable code.
10077 * data/yacc.c (yylerrsp): Replace with...
10078 (yyerror_range): this.
10079 Every time a token is popped, update yyerror_range[0], to have an
10080 accurate location for the error token.
10081 * data/glr.c (YY_LOCATION_PRINT): New.
10082 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
10083 deference a pointer.
10084 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
10085 report the location in %printers.
10086
10087 * src/scan-skel.l: Instead of abort, report error messages to ease
10088 understanding skeleton scanning failures.
10089
10090 2004-09-16 Akim Demaille <akim@epita.fr>
10091
10092 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
10093 (iterator, const_iterator): these, to be more in the C++ spirit.
10094 Also, return reverse iterators so that when displaying the stack
10095 we display its bottom first.
10096 (Parser::stack_print_, Parser::reduce_print_): Match the messages
10097 from yacc.c.
10098 We should probably use vector here though.
10099
10100 2004-09-16 Akim Demaille <akim@epita.fr>
10101
10102 Have more complete shift traces.
10103
10104 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
10105 to report Shifts instead of ad hoc YYDPRINTF invocations,
10106 including for the error token.
10107 * data/lalr1.cc (symprint_): Output the location.
10108 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
10109 output the location within the %printer.
10110 Activate GLR tests, at least to make sure they compile properly.
10111 They still don't pass though.
10112 * tests/calc.at: Adjust expect verbose output, since now "Entering
10113 state..." is on a different line than the "Shifting" message.
10114
10115 2004-09-08 Akim Demaille <akim@epita.fr>
10116
10117 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
10118 Bison directive from the Bison file to the invocation of this
10119 macro, so that these directives are passed to
10120 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
10121 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
10122 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
10123 the extra Bison directives instead of the whole series.
10124 Change the grammar so that there are recoverable errors, and
10125 unrecoverable errors. Now we can have the parser give up before
10126 consuming the whole input. As a result we now can observe that
10127 the lookahead is freed when needed.
10128 Change the parser source to parse argv[1] instead of a hard coded
10129 string.
10130 Simplify yylex, and give a value and location to EOF.
10131 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
10132 passed directives already coded in the file.
10133 Add some tests to check the location of "error".
10134 For some tests, the C++ parser is correct, and not yacc.c.
10135 For other tests, they provide different, but unsatisfying, values,
10136 so keep the C++ value so that at least one parser is "correct"
10137 according to the test suite.
10138 (Actions after errors): Remove, this is subsumed by the
10139 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
10140
10141 2004-09-06 Akim Demaille <akim@epita.fr>
10142
10143 * data/lalr1.cc: Adjust the indentation of the labels.
10144 (Parser::pop): New.
10145 Use it.
10146
10147 2004-09-06 Akim Demaille <akim@epita.fr>
10148
10149 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
10150 argument, an informative message.
10151 Call YY_SYMBOL_PRINT.
10152 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
10153 * data/lalr1.cc (destruct_): Likewise.
10154 In addition, no longer depend on b4_yysymprint_generate and
10155 b4_yydestruct_generate to generate these functions, do it "by
10156 hand".
10157
10158 2004-09-03 Akim Demaille <akim@epita.fr>
10159
10160 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
10161 invoked, yydestruct the lookahead.
10162 * tests/calc.at (Calculator $1): Update the expected lengths of
10163 traces: there is an added line for the discarded lookahead.
10164 * doc/bison.texinfo (Destructor Decl): Some rewording.
10165 Define "discarded" symbols.
10166
10167 2004-09-02 Akim Demaille <akim@epita.fr>
10168
10169 * data/lalr1.cc (translate_, destruct_): No reason to be static.
10170
10171 2004-09-02 Akim Demaille <akim@epita.fr>
10172
10173 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
10174 (YYDSYMPRINTF): Rename as...
10175 (YY_SYMBOL_PRINT): this.
10176 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
10177 two.
10178 Use it instead of direct symprint_ calls.
10179 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
10180 one.
10181
10182 2004-09-02 Akim Demaille <akim@epita.fr>
10183
10184 * data/lalr1.cc (b4_yysymprint_generate): New.
10185 (symprint_): New member function, defined when YYDEBUG.
10186 Use it consistently instead of token/nterm debugging output by
10187 hand.
10188 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
10189 %printer calls to use cdebug_ when using lalr1.cc.
10190
10191 2004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
10192
10193 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
10194 with #ifdef YYDEBUG.
10195
10196 2004-08-26 Akim Demaille <akim@epita.fr>
10197
10198 * doc/bison.texinfo (Implementing Loops): Rename as...
10199 (Implementing Gotos/Loops): this.
10200
10201 2004-08-13 Paul Eggert <eggert@cs.ucla.edu>
10202
10203 Adjust to latest gnulib.
10204 * bootstrap (gnulib_modules): Add xalloc-die.
10205 Set LC_ALL=C so that file names sort consistently.
10206 Prefer the gnulib copies of gettext.m4, glibc21.m4,
10207 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
10208 uintmax_t.m4, ulonglong.m4.
10209 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
10210 po.m4 since we are now using _gl.m4 instead.
10211
10212 2004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
10213
10214 * src/scan-action.l: Remove. Scanning of semantic actions is
10215 handled in scan-gram.l.
10216
10217 2004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
10218
10219 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
10220
10221 * src/location.h (struct): The file member is a uniqstr.
10222 (equal_boundaries): Use UNIQSTR_EQ for comparison.
10223
10224 2004-07-22 Paul Eggert <eggert@cs.ucla.edu>
10225
10226 Fix bug with non-%union parsers that have printers or destructors,
10227 which led to a Bison core dump. Reported by Peter Fales in
10228 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
10229
10230 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
10231 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
10232 not to our own type.
10233 * src/output.c (symbol_destructors_output, symbol_printers_output):
10234 Don't assume %union.
10235 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
10236 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
10237 UNION-FLAG. All callers changed.
10238 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
10239 Use type char, not unsigned int, when declaring an array of char;
10240 this lets us remove a cast.
10241 (Printers and Destructors): Add non-%union test cases.
10242
10243 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
10244
10245 * doc/bison.texinfo: Minor editorial changes, mostly to the new
10246 GLR writeups. E.g., avoid frenchspacing and the future tense,
10247 change "lookahead" to "look-ahead", and change "wrt" to "with
10248 respect to".
10249
10250 2004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
10251
10252 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
10253 New sections, split off from the GLR Parsers section. Put the new
10254 Simple GLR Parser near the start of the GLR section, for clarity.
10255 Rewrite connective text.
10256
10257 2004-06-21 Frank Heckenbach <frank@g-n-u.de>
10258
10259 * doc/bison.texinfo (Simple GLR Parsers): New section.
10260
10261 2004-06-21 Paul Eggert <eggert@cs.ucla.edu>
10262
10263 * NEWS, TODO, doc/bison.texinfo:
10264 Use "look-ahead" instead of "lookahead", to be consistent.
10265 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
10266 while we're fixing "look-ahead".
10267 * src/conflicts.c (shift_set): Renamed from shiftset.
10268 (look_ahead_set): Renamed from lookaheadset.
10269 * src/print.c: Likewise.
10270 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
10271 name for "lookahead".
10272 (report_types, usage): Likewise.
10273 * src/getargs.h (report_look_ahead_tokens): Renamed from
10274 report_lookaheads.
10275 * src/lalr.c (compute_look_ahead_tokens): Renamed from
10276 compute_lookaheads.
10277 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
10278 (look_ahead_tokens_print): Renamed from lookaheads_print.
10279 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
10280 state_rule_lookaheads_print.
10281 * src/state.h: Likewise.
10282 (reductions.look_ahead_tokens): Renamed from lookaheads.
10283 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
10284 AT_DATA_LOOKAHEADS_GRAMMAR.
10285
10286 2004-06-03 Paul Eggert <eggert@cs.ucla.edu>
10287
10288 * README: Update location of patched M4 distribution.
10289
10290 2004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
10291
10292 Don't assume the C++ compiler takes the same arguments as the C compiler
10293 (trivial change).
10294 * configure.ac (O0CXXFLAGS): New var.
10295 * tests/atlocal.in (CXXFLAGS): Use it.
10296
10297 2004-05-29 Paul Eggert <eggert@cs.ucla.edu>
10298
10299 Fix some "make check" problems with C++ reported by
10300 Albert Chin-A-Young for Tru64 C++ in this thread:
10301 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
10302
10303 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
10304 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
10305 Output to a .cc file for C++, not to a .c file.
10306 * tests/calc.at (AT_CHECK_CALC): Likewise.
10307 * tests/regression.at (AT_CHECK_DANCER): Likewise.
10308 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
10309
10310 2004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
10311
10312 * tests/calc.at, tests/actions.at: Workaround for SGI
10313 C++ compiler. (trivial change)
10314
10315 2004-05-27 Paul Eggert <eggert@cs.ucla.edu>
10316
10317 Spent a few hours checking out which prerequisite versions the
10318 current sources actually require. I went all the way back to
10319 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
10320 a seemingly endless set of combinations of versions more recent
10321 than that. The bottom line is that the current sources require
10322 fairly recent versions of the build tools, and it'll be some work
10323 to change this.
10324 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
10325 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
10326 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
10327 Add comments explaining why those particular versions are
10328 currently needed.
10329
10330 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
10331 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
10332 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
10333
10334 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
10335 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
10336
10337 2004-05-26 Paul Eggert <eggert@cs.ucla.edu>
10338
10339 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
10340 0.11.5. Suggested by Bruno Haible.
10341 * bootstrap: Remove gettext version checking.
10342
10343 * doc/bison.texinfo (Decl Summary): Also mention that %union
10344 can depend on prerequisite types. Problem reported by Tim
10345 Van Holder.
10346
10347 2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
10348
10349 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
10350 * README-alpha: Don't tell people not to package this.
10351
10352 * bootstrap: Don't assume $(...) works; use `...` instead.
10353 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
10354 gettext better.
10355
10356 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
10357 put into the -d output file, and mention what to do if YYSTYPE is
10358 defined as a macro.
10359
10360 2004-05-24 Paul Eggert <eggert@cs.ucla.edu>
10361
10362 Undo change made earlier today: it caused autopoint to not bring
10363 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
10364 autopoint's.
10365
10366 * bootstrap: Check that gettext version matches what's in
10367 configure.ac. Warn users to ignore robots.txt ERROR 404.
10368 * bootstrap: Undo today's earlier change (logged below).
10369 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
10370
10371 The gettext version checking is causing more trouble than it's
10372 curing; remove it. Problem reported by Paul Hilfinger.
10373
10374 * bootstrap: Issue a warning that one can expect a message
10375 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
10376 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
10377
10378 2004-05-23 Paul Eggert <eggert@cs.ucla.edu>
10379
10380 Ensure that the C++ compiler used for testing actually works on a
10381 simple test program; if not, skip the C++-related tests. Problem
10382 reported by Vin Shelton in:
10383 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
10384
10385 * m4/cxx.m4: New file.
10386 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
10387 * tests/atlocal.in (BISON_CXX_WORKS): Add.
10388 * tests/local.at (AT_COMPILE_CXX): Use it.
10389
10390 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
10391
10392 * data/glr.c (yylloc): Output this macro even if locations are not
10393 being generated, as the GLR parser needs it even in that case.
10394 Problem reported by Troy A. Johnson
10395 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
10396
10397 * configure.ac (AC_INIT): Update to 1.875e.
10398
10399 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
10400
10401 * NEWS: Version 1.875d.
10402 * configure.ac (AC_INIT): Likewise.
10403 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
10404
10405 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
10406 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
10407 lalr1.cc runs afoul of the first, and the last two are no longer
10408 supported by GCC 3.4.0.
10409 * README: Mention GNU m4 1.4 or later; mention m4 patches.
10410 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
10411
10412 2004-05-06 Paul Eggert <eggert@cs.ucla.edu>
10413
10414 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
10415 unsigned int, for compatibility with latest gnulib hash module.
10416 * src/state.c (state_hash, state_hasher): Likewise.
10417 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
10418 * src/uniqstr.c (hash_uniqstr): Likewise.
10419
10420 2004-05-03 Paul Eggert <eggert@cs.ucla.edu>
10421
10422 * NEWS: Unescaped newlines are no longer allowed in char & strings.
10423
10424 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
10425 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
10426 character and string literals.
10427 (unexpected_end): New function.
10428 (unexpected_eof): Use it.
10429 (unexpected_newline): New function.
10430 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
10431 actions.
10432
10433 * NEWS: Document %expect-rr.
10434
10435 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
10436 Fix typo by replacing $1 with $option.
10437 Remove more 'intl'-related files.
10438 Don't DEFUN AM_INTL_SUBDIR twice.
10439
10440 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
10441 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
10442 strtoul.c.
10443 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
10444 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
10445 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
10446 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
10447 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
10448 * src/.cvsignore: Add *.output.
10449
10450 * src/parse-gram.y: Put copyright notice inside %{ %} so it
10451 gets copied to the output file.
10452
10453 2004-04-28 Paul Eggert <eggert@twinsun.com>
10454
10455 Get files from the gnulib and po repositories, instead of relying
10456 on them being in our CVS. Upgrade to latest versions of gnulib
10457 and Automake.
10458
10459 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
10460 * bootstrap: Bootstrap from gnulib and po repositories.
10461 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
10462 * README-cvs: Document these changes. Remove version numbers from
10463 mentions of build tools, since they change so often. Mention Flex.
10464
10465 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
10466 (gl_USE_SYSTEM_EXTENSIONS): Add.
10467 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
10468 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
10469 does this for us.
10470 (AC_ISC_POSIX): Remove; we no longer support this
10471 ancient OS, as it gets in the way of latest Autoconf & gnulib.
10472 (AC_HEADER_STDC): Remove: we now assume C89 or better.
10473 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
10474 Do not check for C89 headers, except for locale.h which is used
10475 by the Yacc library and must port to K&R hosts.
10476 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
10477 Do not check for C89 functions, except for setlocale which is
10478 used by the Yacc library.
10479 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
10480 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
10481 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
10482 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
10483 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
10484 AM_GNU_GETTEXT): Remove; now done by:
10485 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
10486 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
10487 for us.
10488
10489 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
10490 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
10491 Define to empty, as gnulib.mk will do the rest for us.
10492 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
10493 for us.
10494 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
10495 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
10496
10497 * src/files.c: Include gnulib's xstrndup.h.
10498
10499 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
10500 (REALLOC): Use xnrealloc, for likewise.
10501 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
10502 (strnlen, memrchr): Remove decls; functions no longer used.
10503 Include <stpcpy.h>.
10504
10505 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
10506 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
10507 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
10508 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
10509 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
10510 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
10511 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
10512 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
10513 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
10514 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
10515 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
10516 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
10517 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
10518 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
10519 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
10520 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
10521 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
10522 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
10523 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
10524 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
10525 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
10526 Remove, as these files are now generated automatically
10527 by bootstrap or automake.
10528
10529 * po/ChangeLog: Remove: all but one entry was a duplicate
10530 of this file, and I moved that 2000-11-02 entry here.
10531
10532 * config/.cvsignore: Add Makefile, depcomp, install-sh.
10533 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
10534 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
10535 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
10536 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
10537 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
10538 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
10539 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
10540 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
10541 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
10542 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
10543 xstrndup.h.
10544 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
10545 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
10546 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
10547 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
10548 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
10549 * src/.cvsignore: Remove *_.c.
10550
10551
10552 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
10553 support it. (The latest stable gzip doesn't.)
10554
10555 2004-04-27 Paul Eggert <eggert@twinsun.com>
10556
10557 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
10558 case, as stos_ is now used by destructors due to the 2004-02-09
10559 change.
10560
10561 Remove more K&R C support.
10562 * lib/libiberty.y (PARAMS): Remove. All uses removed.
10563 * lib/subpipe.c (errno): Remove decl.
10564 Include <stdlib.h> unconditionally.
10565 (EXIT_FAILURE): Remove macro.
10566 * src/complain.c (vfprintf, strerror): Remove.
10567 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
10568 unconditionally.
10569 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
10570 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
10571 (strchr, strspn, memchr): Remove decls.
10572 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
10573 unconditionally. Do not declare perror.
10574 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
10575 unconditionally.
10576
10577 * src/complain.c (_): Remove useless defn, as system.h defines this.
10578
10579 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
10580 with latest obstack.h.
10581 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
10582 to procedure types, as obstack.h now does that for us.
10583 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
10584
10585 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
10586 so that this include file can stand alone.
10587 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
10588 does this now. Include subpipe.h first after config.h, to
10589 test whether it can stand alone.
10590
10591 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
10592 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
10593 unused declaration.
10594
10595 * tests/synclines.at (%union synch line): Put a dummy member in
10596 the union, because empty unions aren't allowed in C. Caught
10597 by GCC 3.4.0.
10598
10599 2004-04-13 Jim Meyering <jim@meyering.net>
10600
10601 * src/conflicts.c (conflicts_print): Correct format string typo:
10602 use `%%' to produce literal `%'. (trivial change)
10603
10604 2004-03-30 Paul Eggert <eggert@twinsun.com>
10605
10606 * src/getargs.c (version): Update copyright year to 2004.
10607
10608 * data/c.m4 (b4_int_type): Use 'short int' rather than
10609 'short', and similarly for 'long', 'unsigned', etc.
10610 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
10611 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
10612 yy_yypstack, yydumpstack): Likewise.
10613 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
10614 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
10615 Likewise.
10616 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
10617 yy_stack_print, yyparse): Likewise.
10618 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
10619 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
10620 * lib/bitset.c (bitset_print): Likewise.
10621 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
10622 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
10623 * lib/bitsetv.c (bitsetv_dump): Likewise.
10624 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
10625 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
10626 Likewise.
10627 * src/LR0.c (allocate_itemsets): Likewise.
10628 * src/gram.h (rule_number, rule): Likewise.
10629 * src/lalr.h (goto_number): Likewise.
10630 * src/nullable.c (nullable_compute): Likewise.
10631 * src/output.c (prepare_rules): Likewise.
10632 * src/relation.c (relation_print, relation_digraph): Likewise.
10633 * src/relation.h (relation_node): Likewise.
10634 * src/state.h (state_number, transitions, errs, reductions,
10635 struct state): Likewise.
10636 * src/symtab.h (symbol_number, struct symbol): Likewise.
10637 * src/tables.c (vector_number, tally, action_number,
10638 default_goto, goto_actions): Likewise.
10639 * tests/existing.at (GNU Cim Grammar): Likewise.
10640 * tests/regression.at (Web2c Actions): Likewise.
10641
10642 * src/output.c (muscle_insert_short_int_table): Renamed from
10643 muscle_insert_short_table. All uses changed.
10644
10645 2004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
10646
10647 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
10648 (declaration): Replace expected_conflicts with expected_sr_conflicts.
10649 Add %expect-rr rule.
10650
10651 * src/scan-gram.l: Recognize %expect-rr.
10652
10653 * src/conflicts.h (expected_sr_conflicts): Rename from
10654 expected_conflicts.
10655 (expected_rr_conflicts): Declare.
10656
10657 * src/conflicts.c (expected_sr_conflicts): Rename from
10658 expected_conflicts.
10659 (expected_rr_conflicts): Define.
10660 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
10661 for GLR parsers.
10662 Use expected_sr_conflicts in place of expected_conflicts.
10663 Warn if expected_rr_conflicts used in non-GLR parser.
10664
10665 * doc/bison.texinfo: Add documentation for %expect-rr.
10666
10667 2004-03-08 Paul Eggert <eggert@gnu.org>
10668
10669 Add support for hex token numbers. Suggested by Odd Arild Olsen in
10670 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
10671
10672 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
10673 in lalr1.cc.
10674 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
10675 * src/scan-gram.l (scan_integer): New function.
10676 ({int}): Use it.
10677 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
10678 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
10679 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
10680 Say "long int", not "long", for uniformity with GNU style.
10681
10682 2004-02-25 Paul Eggert <eggert@twinsun.com>
10683
10684 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
10685 compilers. This fixes a problem with Intel's C++ compiler being
10686 chatty, reported by Guido Trentalancia in
10687 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
10688
10689 2004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
10690
10691 Support %destructor and merge error locations in lalr1.cc.
10692
10693 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
10694 (Parser::stos_): Define unconditionally.
10695 (Parser::destruct_): New method. Generate its body with
10696 b4_yydestruct_generate.
10697 (Parser::error_start_): New attribute.
10698 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
10699 token which are discarded.
10700 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
10701 error_start_ when erroneous token are discarded.
10702 (Parser::parse) <yyerrlab1>: Compute the location of the error
10703 token so that it covers all the discarded tokens.
10704 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
10705 it can be called with `%skeleton "lalr1.cc"', and do that.
10706
10707 2004-02-02 Paul Eggert <eggert@twinsun.com>
10708
10709 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
10710 $(top_srcdir)/lib and ../lib. This fixes a bug reported
10711 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
10712 There's no need to mention top_builddir since Automake does that
10713 for us.
10714 (INCLUDES): Remove, as Automake says it's obsolescent.
10715 Contents migrated into AM_CPPFLAGS as described above.
10716 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
10717
10718 2004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
10719
10720 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
10721 (yyreportSyntaxError): Handle case where lookahead token is
10722 YYEMPTY.
10723
10724 2004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
10725
10726 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
10727 resulting parsers are compilable with C++.
10728
10729 2003-12-23 Paul Eggert <eggert@twinsun.com>
10730
10731 * config/depcomp, config/install-sh: Sync with Automake 1.8.
10732 * src/output.c (output_skeleton): Rename local var.
10733 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
10734 Bison tokens, as this runs afoul of the 2003-10-07 change that
10735 disallowed NUL bytes in character constants or string literals.
10736
10737 * tests/local.at: Require Autoconf 2.59's Autotest.
10738 * tests/testsuite.at: Don't include local.at, since we now assume
10739 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
10740 including it.
10741 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
10742 multiple inclusion warnings.
10743
10744 2003-12-02 Akim Demaille <akim@epita.fr>
10745
10746 * doc/bison.texinfo (How Can I Reset the Parser): More about start
10747 conditions.
10748 From Bruno Haible.
10749
10750 2003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
10751
10752 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
10753
10754 2003-10-07 Paul Eggert <eggert@twinsun.com>
10755
10756 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
10757 if testsuite doesn't exist.
10758
10759 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
10760 literals, unfortunately.
10761 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
10762 Complain about NUL bytes in character constants or string literals.
10763
10764 2003-10-05 Paul Eggert <eggert@twinsun.com>
10765
10766 * NEWS: Don't document %no-default-prec, as it's still
10767 too experimental.
10768 * doc/bison.texinfo: Document %no-default-prec only if
10769 the defaultprec flag is set. Normally it's not.
10770
10771 2003-10-04 Paul Eggert <eggert@twinsun.com>
10772
10773 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
10774 non-modifiable lvalue, instead of a modifiable one.
10775 * doc/bison.texinfo (Actions): Document that $$ can
10776 be assigned to. Do not claim that $$ and $N are
10777 array element references: user code should not rely on this.
10778
10779 2003-10-01 Paul Eggert <eggert@twinsun.com>
10780
10781 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
10782 (grammar_declaration): Use it.
10783 * src/scan-gram.l: New token %no-default-prec.
10784 * tests/conflicts.at: Revamp tests to use %no-default-prec.
10785 * NEWS, doc/bison.texinfo: Document the above.
10786
10787 2003-10-01 Akim Demaille <akim@epita.fr>
10788
10789 VCG no longer supports long_straight_phase.
10790
10791 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
10792 * src/print_graph.c (print_graph): Adjust.
10793
10794 2003-09-30 Frank Heckenbach <frank@g-n-u.de>
10795 and Paul Eggert <eggert@twinsun.com>
10796
10797 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
10798 Table of Symbols): Document %default-prec.
10799 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
10800 (grammar_declaration): Set default_prec on %default-prec.
10801 * src/scan-gram.l (%default-prec): New token.
10802 * src/reader.h (default_prec): New flag.
10803 * src/reader.c: Likewise.
10804 (packgram): Handle it.
10805 * tests/conflicts.at (%default-prec without %prec,
10806 %default-prec with %prec, %default-prec 1): New tests.
10807
10808 2003-09-30 Paul Eggert <eggert@twinsun.com>
10809
10810 * tests/testsuite.at: Include local.at, not input.at, fixing
10811 a typo in the 2003-08-25 patch.
10812
10813 2003-08-27 Akim Demaille <akim@epita.fr>
10814
10815 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
10816 GCC warnings.
10817
10818 2003-08-26 Akim Demaille <akim@epita.fr>
10819
10820 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
10821 "<\#" to avoid magic from Gnus when posting parts of this script.
10822
10823 2003-08-26 Akim Demaille <akim@epita.fr>
10824
10825 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
10826 (Parser::parse): here.
10827 Adjust: nerrs and errstatus is now replaced by...
10828 (Parser::nerrs_, Parser::errstatus_): New.
10829
10830 2003-08-25 Akim Demaille <akim@epita.fr>
10831
10832 * config/announce-gen, Makefile.cfg: New.
10833 * Makefile.am: Adjust.
10834 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
10835 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
10836
10837 2003-08-25 Akim Demaille <akim@epita.fr>
10838
10839 When reducing initial empty rules, Bison parser read an initial
10840 location that is not defined. This results in garbage, and that
10841 affects Bison's own parser. Therefore we need (i) to extend Bison
10842 to support a means to initialize this location, and (ii) to use
10843 this CVS Bison to fix CVS Bison's parser.
10844
10845 * src/reader.h, reader.c (epilogue_augment): Remove, replace
10846 with...
10847 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
10848 * src/parse-gram.y: Adjust.
10849 (%initial-action): New.
10850 (%error-verbose): Since we require CVS Bison, there is no reason
10851 not to use it.
10852 * src/scan-gram.l: Adjust.
10853 * src/Makefile.am (YACC): New, to make sure we use our own parser.
10854 * data/yacc.c (yyparse): Use b4_initial_action.
10855
10856 2003-08-25 Akim Demaille <akim@epita.fr>
10857
10858 * doc/bison.texinfo: Don't promote stdout for error messages.
10859
10860 2003-08-25 Akim Demaille <akim@epita.fr>
10861
10862 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
10863 From Alexandre Duret-Lutz.
10864
10865 2003-08-25 Akim Demaille <akim@epita.fr>
10866
10867 Version 1.875c.
10868
10869 2003-08-25 Akim Demaille <akim@epita.fr>
10870
10871 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
10872 Use them.
10873
10874 2003-08-25 Akim Demaille <akim@epita.fr>
10875
10876 * data/lalr1.cc (Parser::reduce_print_): New.
10877 Use it.
10878
10879 2003-08-25 Akim Demaille <akim@epita.fr>
10880
10881 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
10882 error recovery loops. This patch is based on
10883 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
10884 Also, augment the similarity between lalr1.cc and yacc.c.
10885 Note: the locations of error recovery rules are not correct yet.
10886
10887 * data/lalr1.cc: Comment changes to augment the similarity between
10888 lalr1.cc and yacc.c.
10889 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
10890 (yyerrlab1): Remove, but where it used to be (now the bottom part of
10891 yyerrlab), when hitting EOF, pop the whole stack here instead of
10892 merely falling thru the default error handling mechanism.
10893 (yyerrorlab): New label, with the old contents of YYERROR,
10894 plus the following change: pop the stack of rhs corresponding
10895 to the production that invoked YYERROR. That is how Yacc
10896 behaves (required by POSIX).
10897 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
10898 fail.
10899
10900 2003-08-25 Akim Demaille <akim@epita.fr>
10901
10902 Tune local.at so that people can "autom4te -l autotest calc.at -o
10903 calc" for instance, to extract a sub test suite.
10904
10905 * tests/testsuite.at: Move the initialization, Autotest version
10906 requirement, and AT_TESTED invocation into...
10907 * tests/local.at: here.
10908 * tests/testsuite.at: Include it for compatibility with Autoconf
10909 2.57.
10910 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
10911 be ignore.
10912
10913 2003-08-04 Paul Eggert <eggert@twinsun.com>
10914
10915 Rework code slightly to avoid gcc -Wtraditional warnings.
10916 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
10917 The returned value is now stored in *YY0. All callers changed.
10918 * src/output.c (merge_output): Adjust to the above change.
10919
10920 2003-07-26 Paul Eggert <eggert@twinsun.com>
10921
10922 * data/glr.c (YYASSERT): New macro.
10923 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
10924 yyresolveStates, yyprocessOneStack):
10925 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
10926 Derived from a suggestion by Frank Heckenbach.
10927
10928 2003-07-25 Paul Eggert <eggert@twinsun.com>
10929
10930 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
10931 for portability to K&R C (after ansi2knr, presumably). See
10932 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
10933 by Frank Heckenbach, though I have omitted the structure-initialization
10934 part of his glr-knr.diff patch since I recall that the Portable
10935 C Compiler didn't require that change.
10936
10937 Let the user specify how to allocate and free memory.
10938 Derived from a suggestion by Frank Heckenbach in
10939 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
10940 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
10941 All uses of free, malloc, realloc changed to use these macros,
10942 and unnecessary casts removed.
10943 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
10944
10945 2003-07-06 Matthias Mann <MatthiasMann@gmx.de>
10946
10947 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
10948 use s.empty() rather than s == "" to test for empty string; see
10949 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
10950 (trivial change)
10951
10952 2003-06-25 Akim Demaille <akim@epita.fr>
10953
10954 * config/depcomp, config/install-sh: Update from masters.
10955
10956 2003-06-20 Paul Eggert <eggert@twinsun.com>
10957
10958 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
10959 and return properly parenthesized result.
10960 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
10961 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
10962 Remove unnecessary parentheses from uses.
10963 * doc/bison.texinfo (Location Default Action): Describe the
10964 conventions for parentheses.
10965
10966 2003-06-19 Paul Eggert <eggert@twinsun.com>
10967
10968 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
10969 yyreportTree): Do not assume that size_t is the same width as int,
10970 when printing sizes. Print sizes using an unsigned format.
10971 Problem reported by Frank Heckenbach in
10972 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
10973
10974 Port to Forte Developer 7 C compiler.
10975 * data/glr.c (struct YYLTYPE): If locations are not being used,
10976 declare a single dummy member, as empty structs do not conform
10977 to the C standard.
10978 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
10979 the Forte Developer 7 C compiler complains that end-of-loop
10980 code is not reached.
10981
10982 2003-06-17 Paul Eggert <eggert@twinsun.com>
10983
10984 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
10985 avoid warnings from picky compilers about redefinition of PARAMS.
10986
10987 2003-06-17 Paul Eggert <eggert@twinsun.com>
10988
10989 Version 1.875b.
10990
10991 * NEWS: Document 1.875b.
10992
10993 * lib/bbitset.h: Do not include config.h; that's the includer's job.
10994 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
10995 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
10996 Don't use 'index' in comments, as it's a builtin fn on some hosts.
10997 * lib/bitset_stats.c: Include gettext.h unconditionally, as
10998 per recent gettext manual's suggestion.
10999 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
11000 Use prototypes, not old-style definitions.
11001 * lib/lbitset.c (lbitset_unused_clear): Likewise.
11002 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
11003 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
11004 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
11005 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
11006 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
11007 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
11008 vbitset_or_and_cmp, vbitset_copy): Likewise.
11009
11010 * lib/libiberty.h: Do not include config.h; that's the includer's job.
11011 Do not include <stdlib.h>.
11012 (PARAMS): Define unconditionally for C89.
11013 (ATTRIBUTE_NORETURN): Remove.
11014 (ATTRIBUTE_UNUSED): Define unconditionally.
11015
11016 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
11017 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
11018 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
11019 * lib/vbitset.c, lib/vbitset.h: New files.
11020 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
11021 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
11022 from libbitset.
11023
11024 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
11025 `How Can I Reset @code{yyparse}', since texinfo does not allow
11026 arbitrary @ in node names.
11027
11028 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
11029 shouldn't be needed according to the gettext 0.12.1 documentation
11030 but which seem to be needed anyway: codeset.m4 glibc21.m4
11031 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
11032 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
11033 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
11034
11035 * lib/.cvsignore: Add stdbool.h.
11036 * m4/.cvsignore: Add nls.m4, po.m4.
11037
11038 Upgrade to CVS gnulib.
11039 * stdbool_.h: File renamed from stdbool.h.in.
11040 * configure.ac (AM_STDBOOL_H): Invoke this instead of
11041 AC_HEADER_STDBOOL.
11042 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
11043 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
11044 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
11045 (MOSTLYCLEANFILES): New var.
11046 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
11047 (stdbool.h): New rule.
11048 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
11049 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
11050 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
11051 m4/quote.m4: Upgrade to today's gnulib.
11052
11053 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
11054 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
11055 the tests right now.
11056 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
11057 yyerror are declared before use; C99 requires this.
11058
11059 2003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
11060
11061 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
11062 first.
11063 (yyrecoverSyntaxError): Correct the logic for setting and testing
11064 yyerrState.
11065 Correct comment on handling EOF.
11066 Allow states with only a default reduction, rather than failing
11067 (I can't quite reconstruct why these were not allowed before).
11068
11069 Fixes to avoid problem that $-N rules in GLR parsers can cause
11070 buffer overruns, corrupting state.
11071
11072 * src/output.c (prepare_rules): Output max_left_semantic_context
11073 definition.
11074 * src/reader.h (max_left_semantic_context): New variable declaration.
11075 * src/scan-gram.l (max_left_semantic_context): Define.
11076 (handle_action_dollar): Update max_left_semantic_context.
11077 * data/glr.c (YYMAXLEFT): New definition.
11078 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
11079 (yyresolveAction): Ditto.
11080
11081 Fixes to problems with location handling in GLR parsers reported by
11082 Frank Heckenbach (2003/06/05).
11083
11084 * data/glr.c (YYLTYPE): Make trivial if locations not used.
11085 (YYRHSLOC): Add parentheses, and define only if locations used.
11086 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
11087 locations not used.
11088 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
11089 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
11090
11091 * tests/cxx-type.at: Exercise location information; update tests
11092 to differentiate output with and without locations.
11093 Remove forward declarations of yylex and yyerror---caused errors
11094 because default YYLTYPE not yet defined.
11095 Change semantic actions to compute strings, rather than printing
11096 them directly (to test proper passing of semantics values). Change
11097 output to prefix notation and update test data and expected results.
11098 (yylex): Track locations.
11099 (stmtMerge): Return value rather than printing, and include arguments
11100 in value.
11101
11102 2003-06-03 Paul Eggert <eggert@twinsun.com>
11103
11104 Avoid warnings generated by GCC 2.95.4 when Bison is
11105 configured with --enable-gcc-warnings.
11106 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
11107 yy::]b4_parser_class_name[::translate_,
11108 yy::Stack::operator[] (unsigned),
11109 yy::Stack::operator[] (unsigned) const,
11110 yy::Slice::operator[] (unsigned),
11111 yy::Slice::operator[] (unsigned) const):
11112 Rename local vars to avoid warnings.
11113 * tests/glr-regression.at (Improper handling of embedded actions
11114 and $-N in GLR parsers): Remove unused local variable from yylex.
11115 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
11116 (void) as arg when not pure, since we now assume C89 when building
11117 Bison. Pacify GCC by using parameter.
11118
11119 2003-06-02 Paul Eggert <eggert@twinsun.com>
11120
11121 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
11122 yy::Location::lines, yy::Location::columns): Rename arguments
11123 to avoid shadowing; this removes a warning generated by GCC 3.3.
11124
11125 2003-06-01 Paul Eggert <eggert@twinsun.com>
11126
11127 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
11128 to g++, as GCC 3.3 complains if you do it.
11129 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
11130 everything that WARNING_CFLAGS has, except omit warnings
11131 not suitable for C++.
11132 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
11133 * tests/atlocal.in (CXXFLAGS): New var.
11134 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
11135
11136 Fix a GLR parser bug I reported in February; see
11137 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
11138 The problem was that GLR parsers did not conform to the C standard,
11139 because actions like { $1 = $2 + $3; } expanded to expressions
11140 that invoked YYFILL in separate subexpressions, and YYFILL assigned
11141 to a local variable. The C standard says that expressions
11142 like (var = f ()) + (var = f ()) have undefined behavior.
11143 Another problem was that GCC sometimes issues warnings that
11144 yyfill and its parameters are unused.
11145
11146 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
11147 as possibly unused.
11148 (yyfill): New function.
11149 (YYFILL): Use it.
11150 (yyuserAction): Change type of yynormal to bool, so that it matches
11151 the new yyfill signature. Mark it as possibly unused.
11152
11153
11154 Follow up on a bug I reported in February, where a Bison-generated
11155 parser can loop. Provide a test case and a fix for yacc.c. I
11156 don't have a fix for lalr1.cc or for glr.c, unfortunately.
11157 The original bug report is in:
11158 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
11159
11160 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
11161 macro's size was becoming unwieldy.
11162 (yyerrlab): Do not discard an empty lookahead symbol, as this
11163 might destroy garbage.
11164 (yyerrorlab): New label, with the old contents of YYERROR,
11165 plus the following change: pop the stack of rhs corresponding
11166 to the production that invoked YYERROR. That is how Yacc
11167 behaves, and POSIX requires this behavior.
11168 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
11169 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
11170 Define 'alarm' to do nothing if unistd.h is not available.
11171 Add a new rule "exp: '-' error;" to test the above change to
11172 data/yacc.c. Use 'alarm' to abort any test taking longer than
11173 10 seconds, as it's probably looping.
11174 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
11175 Also, the new yacc.c generates two fewer diagnostics for an
11176 existing test.
11177
11178 2003-05-24 Paul Eggert <eggert@twinsun.com>
11179
11180 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
11181 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
11182 This fixes a problem reported by John Bowman when the Compaq/HP
11183 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
11184 -ansi -Wall -gall).
11185 * data/yacc.c (union yyalloc): Likewise.
11186 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
11187
11188 Switch from 'int' to 'bool' where that makes sense.
11189
11190 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
11191 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
11192 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
11193 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
11194 Return or accept bool, not int. All callers changed.
11195 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
11196 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
11197 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
11198 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
11199 bitset_or_and_cmp_): Likewise.
11200 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
11201 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
11202 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
11203 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
11204 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
11205 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
11206 bitset_stats_or_and_cmp): Likewise.
11207 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
11208 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
11209 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
11210 ebitset_xor_cmp): Likewise.
11211 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
11212 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
11213 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
11214 lbitset_xor_cmp): Likewise.
11215 * lib/bbitset.h: Include <stdbool.h>.
11216 (struct bitset_vtable): The following members now return bool, not
11217 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
11218 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
11219 or_and_cmp).
11220 * src/conflicts.c (count_rr_conflicts): Likewise.
11221 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
11222 All uses changed.
11223 * lib/ebitset.c (ebitset_obstack_init): Likewise.
11224 * lib/lbitset.c (lbitset_obstack_init): Likewise.
11225 * src/getargs.c (debug_flag, defines_flag, locations_flag,
11226 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
11227 graph_flag): Likewise.
11228 * src/getargs.h (debug_flag, defines_flag, locations_flag,
11229 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
11230 graph_flag): Likewise.
11231 * src/output.c (error_verbose): Likewise.
11232 * src/output.h (error_verbose): Likewise.
11233 * src/reader.c (start_flag, typed): Likewise.
11234 * src/reader.h (typed): Likewise.
11235 * src/getargs.c (LOCATIONS_OPTION): New constant.
11236 (long_options, getargs): Use it.
11237 * src/lalr.c (build_relations): Use bool, not int.
11238 * src/nullable.c (nullable_compute): Likewise.
11239 * src/print.c (print_reductions): Likewise.
11240 * src/tables.c (action_row, pack_vector): Likewise.
11241 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
11242 * src/output.c (prepare): Use it.
11243 * src/output.c (token_definitions_output,
11244 symbol_destructors_output, symbol_destructors_output): Use string,
11245 not boolean integer, to keep track of whether to output separator.
11246 * src/print_graph.c (print_core): Likewise.
11247 * src/state.c (state_rule_lookaheads_print): Likewise.
11248
11249 * config/install-sh: Sync from automake 1.7.5.
11250
11251 2003-05-14 Paul Eggert <eggert@twinsun.com>
11252
11253 * src/parse-gram.y (rules_or_grammar_declaration): Require a
11254 semicolon after a grammar declaration, in the interest of possible
11255 future changes to the Bison input language.
11256 Do not allow a stray semicolon at the start of the grammar.
11257 (rhses.1): Allow one or more semicolons after any rule, including
11258 just before "|" as required by POSIX.
11259 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
11260 grammar.
11261
11262 2003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
11263
11264 %parse-param support for lalr1.cc.
11265
11266 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
11267 b4_cc_constructor_calls, b4_cc_constructor_call,
11268 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
11269 definitions.
11270 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
11271 parse-param arguments.
11272 (yy::b4_parser_class_name): Declare instance variables to
11273 hold parse-param arguments.
11274 * tests/calc.at: s/value/semantic_value/ because value clashes
11275 with a member of yy::b4_parser_class_name. Adjust C++ code
11276 to handle %parse-param. Enable %parse-param test in C++.
11277
11278 2003-05-12 Paul Eggert <eggert@twinsun.com>
11279
11280 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
11281 English a bit. Fix fclose typo. Change "const char" to "char
11282 const", and use ANSI C rather than K&R for "main". Suggest
11283 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
11284 and suggest yy_switch_to_buffer.
11285
11286 2003-05-05 Paul Eggert <eggert@twinsun.com>
11287
11288 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
11289 C89. This avoids a diagnostic on compilers that define __STDC__
11290 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
11291 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
11292
11293 2003-05-03 Paul Eggert <eggert@twinsun.com>
11294
11295 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
11296 Do not overrun array bounds.
11297 This should fix a bug reported today by Olatunji Oluwabukunmi in
11298 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
11299
11300 2003-04-29 Akim Demaille <akim@epita.fr>
11301
11302 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
11303 * src/getargs.c, src/getargs.h: here, as bool, not int.
11304 (nondeterministic_parser): New.
11305 * src/parse-gram.y, src/scan-gram.l: Support
11306 %nondeterministic-parser.
11307 * src/output.c (prepare): Use nondeterministic_parser instead
11308 of glr_parser where appropriate.
11309 * src/tables.c (conflict_row, action_row, save_row)
11310 (token_actions, token_actions, pack_vector): Ditto.
11311
11312 2003-04-29 Akim Demaille <akim@epita.fr>
11313
11314 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
11315
11316 2003-04-29 Akim Demaille <akim@epita.fr>
11317
11318 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
11319 with %pure-parser and %locations to exercise the patch from Yakov
11320 Markovitch below.
11321
11322 2003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
11323
11324 * data/yacc.c: (b4_lex_param): Corrected for the case where
11325 %lex-param is provided and %pure-parser isn't.
11326
11327 2003-04-27 Paul Eggert <eggert@twinsun.com>
11328
11329 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
11330 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
11331 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
11332 if it is not defined.
11333 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
11334
11335 2003-04-26 Paul Eggert <eggert@twinsun.com>
11336
11337 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
11338 Declare to be of type suitable for the ninf value itself, not of
11339 type suitable for the corresponding table, since the latter might
11340 be unsigned but the ninf value might be negative. This fixes a
11341 bug reported by Alexandre Duret-Lutz in
11342 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
11343
11344 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
11345 invokes it. We shouldn't invoke it twice because it will attempt
11346 to put error.o in the archive twice. This fixes a glitch reported
11347 by Martin Mokrejs in
11348 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
11349
11350 2003-04-21 Paul Eggert <eggert@twinsun.com>
11351
11352 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
11353 to gnulib.
11354
11355 2003-04-21 Yakov Markovitch <Markovitch@iso.ru>
11356
11357 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
11358 Fix obvious typo that results in uncompilable GLR parsers
11359 when both %pure-parser and %locations are used. (trivial change)
11360
11361 2003-04-17 Paul Eggert <eggert@twinsun.com>
11362
11363 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
11364 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
11365 Do not insert the expected token via unput, as this runs afoul
11366 of a POSIX-compatibility bug in flex 2.5.31.
11367 All uses changed to BEGIN the parent state,
11368 since we no longer insert the expected token via unput.
11369 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
11370 that is no longer emitted after the above change.
11371
11372 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
11373 the first one. This change is from Paul Hilfinger, and it fixes
11374 regression reported by Werner Lemberg in
11375 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
11376
11377 (resolve_sr_conflict): Don't invoke state_errs_set
11378 unless one or more tokens have been explicitly made errors.
11379 Otherwise, the above change causes Bison to abort.
11380
11381 * tests/existing.at (GNU pic Grammar): New test case, taken from
11382 Lemberg's email.
11383
11384 2003-03-31 Akim Demaille <akim@epita.fr>
11385
11386 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
11387
11388 2003-03-31 Akim Demaille <akim@epita.fr>
11389
11390 * src/output.c (prepare_symbols): Avoid trailing spaces in the
11391 output.
11392
11393 2003-03-31 Akim Demaille <akim@epita.fr>
11394
11395 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
11396 From Paul Hilfinger.
11397
11398 2003-03-29 Akim Demaille <akim@epita.fr>
11399
11400 * m4/error.m4: Do not put under dynamic conditions some code which
11401 expansion is under static control.
11402
11403 2003-03-29 Akim Demaille <akim@epita.fr>
11404
11405 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
11406
11407 2003-03-29 Akim Demaille <akim@epita.fr>
11408
11409 * doc/bison.texinfo (Strings are Destroyed): New.
11410
11411 2003-03-13 Paul Eggert <eggert@twinsun.com>
11412
11413 * .cvsignore: Add configure.lineno.
11414 * src/.cvsignore: Add yacc.
11415 * tests/.cvsignore: Add testsuite.log.
11416 * doc/fdl.texi: Sync with latest FSF version.
11417
11418 2003-03-12 Paul Eggert <eggert@twinsun.com>
11419
11420 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
11421 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
11422 cursor, instead of leaving it undefined. This fixes a bug
11423 reported by Tim Van Holder in
11424 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
11425 * tests/input.at (Torturing the Scanner): Test the scanner on
11426 an empty input file, which was Tim Van Holder's test case.
11427
11428 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
11429 <sys/resource.h> can be included, include sys/time.h and
11430 sys/times.h first, if available. This works around the SunOS
11431 4.1.4 porting bug reported by Bruce Becker in
11432 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
11433
11434 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
11435 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
11436 AC_HEADER_SYS_WAIT.
11437
11438 Merge changes from gnulib. This was prompted because the CVS
11439 snapshot didn't build on Solaris 7 due to strnlen problems.
11440
11441 These changes need to be merged back into gnulib:
11442 * lib/hash.c: Include <stdbool.h> unconditionally.
11443 * m4/onceonly.m4 (m4_quote): New macro.
11444 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
11445 Quote AC_FOREACH variable-expansions properly.
11446 The 2003-01-03 obstack.h change also needs merging.
11447 {end of changes requiring merging}
11448
11449 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
11450 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
11451 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
11452 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
11453 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
11454 New files, imported from gnulib.
11455 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
11456 above.
11457
11458 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
11459 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
11460 gnulib sources.
11461
11462 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
11463 Add.
11464 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
11465 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
11466 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
11467 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
11468 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
11469 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
11470 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
11471 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
11472 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
11473 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
11474 (jm_PREREQ_ARGMATCH): Remove.
11475 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
11476 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
11477
11478 * src/system.h: Include <stdbool.h> unconditionally.
11479
11480 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
11481 assuming at least C89 in the bitset code for some time now.
11482
11483 2003-03-03 Akim Demaille <akim@epita.fr>
11484
11485 * ro.po: New.
11486
11487 2003-03-02 Akim Demaille <akim@epita.fr>
11488
11489 * doc/bison.texinfo (Table of Symbols): Reactivate the
11490 documentation for %lex-param, and %parse-param.
11491
11492 2003-03-02 Akim Demaille <akim@epita.fr>
11493
11494 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
11495 generate verbose error messages.
11496 Use the number of tokens as an upper bound in yytname, as it
11497 cannot be a non terminal.
11498
11499 2003-03-02 Akim Demaille <akim@epita.fr>
11500
11501 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
11502 message.
11503
11504 2003-03-02 Akim Demaille <akim@epita.fr>
11505
11506 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
11507 Use them to exercise yycheck overrun.
11508 Based on Andrew Suffield's grammar.
11509
11510 2003-03-02 Akim Demaille <akim@epita.fr>
11511
11512 Create tests/local.at for Bison generic testing macros.
11513
11514 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
11515 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
11516 This new file.
11517 * tests/calc.at (AT_CHECK_CALC): Adjust.
11518 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
11519 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
11520 * tests/local.at: here.
11521 (AT_COMPILE_CXX): Tags the tests using it as c++.
11522 Ignore the test if CXX is not functional.
11523
11524 2003-03-01 Paul Eggert <eggert@twinsun.com>
11525
11526 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
11527 not loc->end, since loc->end might contain garbage and this leads
11528 to undefined behavior on some platforms.
11529 (id_loc, token_start): Use (IF_LINTed) initial values that do not
11530 depend on *loc, so that the reader doesn't give the the false
11531 impression that *loc is initialized.
11532 (<INITIAL>"%%"): Do not bother setting code_start, since its value
11533 does not survive the return.
11534
11535 2003-03-01 Akim Demaille <akim@epita.fr>
11536
11537 * src/scan-gram.l (code_start): Always initialize it when entering
11538 into yylex, as SC_EPILOGUE is activated *before* the corresponding
11539 yylex invocation. An alternative would be making it static, but
11540 then it starts with the second %%'s beginning, instead of its end.
11541
11542 2003-02-28 Paul Eggert <eggert@twinsun.com>
11543
11544 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
11545 around a UnixWare 7.1.1 porting bug reported by John Hughes in
11546 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
11547
11548 2003-02-26 Paul Eggert <eggert@twinsun.com>
11549
11550 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
11551 Remove Sequent/Pyramid discussion (nobody uses them any more).
11552 Merge VMS and MS-DOS discussion; these ports may well be dead
11553 but let's keep mentioning them for now. Put <> around email
11554 addresses. Add copyright notice.
11555
11556 2003-02-24 Paul Eggert <eggert@twinsun.com>
11557
11558 * data/glr.c (yy_reduce_print): yylineno -> yylno,
11559 to avoid collision with flex use of yylineno.
11560 Problem reported by Bruce Lilly in
11561 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
11562 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
11563 * data/yacc.c (yy_reduce_print): Likewise.
11564
11565 * config/depcomp: Sync with Automake 1.7.3.
11566
11567 2003-02-21 Akim Demaille <akim@epita.fr>
11568
11569 * data/lalr1.cc: Use temporary variables instead of casts to
11570 change integer types.
11571 Suggested by Paul Eggert.
11572
11573 2003-02-21 Akim Demaille <akim@epita.fr>
11574
11575 * doc/bison.texinfo: Use "location" consistently to refer to @n,
11576 to avoid confusions with lalr1.cc's notion of Position.
11577 Suggested by Paul Eggert.
11578
11579 2003-02-20 Akim Demaille <akim@epita.fr>
11580
11581 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
11582 before initial_columns.
11583 (location.hh): Use consistent variable names when defining the
11584 operator<<.
11585 Use "last" so that we subtract from Positions, not from unsigned.
11586
11587 2003-02-20 Akim Demaille <akim@epita.fr>
11588
11589 * data/lalr1.cc (position.hh): New subfile, including the extended
11590 and Doxygen'ed documentation of class Position.
11591 (location.hh): Use it.
11592 Document a` la Doxygen.
11593 With the help of Benoit Perrot.
11594
11595 2003-02-20 Akim Demaille <akim@epita.fr>
11596
11597 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
11598 AT_YACC_IF.
11599 Redefine AT_YYERROR_SEES_LOC_IF using it.
11600 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
11601 not defined.
11602 Don't use the location in yy::Parser::error_ and
11603 yy::Parser::print_ when not %locations.
11604 Activate more lalr1.cc tests.
11605
11606 2003-02-19 Akim Demaille <akim@epita.fr>
11607
11608 * data/lalr1.cc: When displaying a line number, be sure to make it
11609 an int.
11610
11611 2003-02-19 Akim Demaille <akim@epita.fr>
11612
11613 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
11614 Remove, useless.
11615 (YYABORT, YYACCEPT, YYERROR): New.
11616 * tests/calc.at: Renable the lalr1.cc test.
11617
11618 2003-02-19 Akim Demaille <akim@epita.fr>
11619
11620 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
11621 error recovery, mixing with/without pops and discarding of the
11622 lookahead.
11623 Exercise YYERROR.
11624 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
11625
11626 2003-02-17 Paul Eggert <eggert@twinsun.com>
11627
11628 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
11629 * tests/testsuite.at (AT_COMPILE): Use them.
11630 This fixes the testsuite problem reported by Robert Lentz in
11631 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
11632
11633 2003-02-12 Paul Eggert <eggert@twinsun.com>
11634
11635 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
11636 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
11637 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
11638 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
11639 Check for malloc failure, for consistency with yacc.c.
11640 (yytname_size): Remove, for consistency with yacc.c.
11641
11642 The bug still remains in data/lalr1.cc, as I didn't have time
11643 to fix it there.
11644
11645 2003-02-06 Akim Demaille <akim@epita.fr>
11646
11647 * configure.ac (GXX): Rename as...
11648 (CXX): this, to keep the original Autoconf semantics.
11649 Require 2.57.
11650 * data/lalr1.cc: Fix b4_copyright invocations.
11651 If YYDEBUG is not defined, don't depend upon name_ being defined.
11652 (location.hh): Include string and iostream.
11653 (Position::filename): New member.
11654 (Position::Position ()): New.
11655 (operator<< (Position)): New.
11656 (operator- (Position, int)): New.
11657 (Location::first, Location::last): Rename as...
11658 (Location::begin, Location::end): these, to mock the conventional
11659 iterator names.
11660 (operator<< (Location)): New.
11661 * tests/atlocal.in (CXX): New.
11662 * tests/testsuite.at (AT_COMPILE_CXX): New.
11663 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
11664 locations in a more synthetic way.
11665 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
11666 lalr1.cc is used.
11667 Adjust the C locations to match those from Emacs: first column is
11668 column 0.
11669 Change all the expected results.
11670 Conform to the GCS: simplify the locations when applicable.
11671 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
11672 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
11673 these CPP macros with the m4 macros new defined by...
11674 (AT_CHECK_PUSHDEFS): this, i.e.:
11675 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
11676 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
11677 New macros.
11678 (AT_CHECK_POPDEFS): Undefine them.
11679 (AT_CHECK_CALC_LALR1_CC): New.
11680 Use it for the first lalr1.cc test.
11681
11682 2003-02-04 Akim Demaille <akim@epita.fr>
11683
11684 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
11685 Location as is defined.
11686
11687 2003-02-04 Akim Demaille <akim@epita.fr>
11688
11689 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
11690 name_ being defined.
11691
11692 2003-02-03 Paul Eggert <eggert@twinsun.com>
11693
11694 * src/gram.h (start_symbol): Remove unused decl.
11695
11696 Use more-consistent naming conventions for local vars.
11697
11698 * src/derives.c (derives_compute): Change type of local var from
11699 int to rule_number.
11700 * src/gram.c (grammar_rules_partial_print): Likewise.
11701 * src/print.c (print_core): Likewise.
11702 * src/reduce.c (reduce_grammar_tables): Likewise.
11703
11704 * src/gram.c (grammar_dump): Change name of item_number *
11705 local var from r to rp.
11706 * src/nullable.c (nullable_compute): Likewise.
11707
11708 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
11709
11710 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
11711 for symbol or symbol_number var.
11712 * src/reader.c (grammar_start_symbol_set): Likewise.
11713 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
11714 Likewise.
11715 * src/state.c (transitions_to): Likewise.
11716 * src/state.h: Likewise.
11717 * src/tables.c (symbol_number_to_vector_number): Likewise.
11718
11719 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
11720 char * var.
11721
11722 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
11723 var.
11724
11725 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
11726 var.
11727
11728 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
11729 Use str, not s, for char * var. Use ch, not c, for character var.
11730 Use size for size var.
11731
11732 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
11733 char * var.
11734 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
11735 uniqstr var.
11736 * src/uniqstr.h: Likewise.
11737
11738 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
11739 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
11740 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
11741 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
11742 param to have same name as that of enum, so that we don't use
11743 "s" to stand for a non-state.
11744
11745 2003-02-02 Akim Demaille <akim@epita.fr>
11746
11747 * src/scan-skel.l: Scan more than one inert character per yylex
11748 invocation.
11749
11750 2003-02-01 Paul Eggert <eggert@twinsun.com>
11751
11752 Version 1.875a.
11753
11754 * po/LINGUAS: Add ms.
11755
11756 2003-01-30 Akim Demaille <akim@epita.fr>
11757
11758 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
11759
11760 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
11761
11762 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
11763 of $1.
11764
11765 Changes in response to error report by S. Eken: GLR mode does not
11766 handle negative $ indices or $ indices in embedded rules correctly.
11767 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
11768
11769 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
11770 (b4_rhs_location): Ditto.
11771 (yyfill): New function to copy from stack tree into array
11772 incrementally.
11773 (yyuserAction): Modify to allow incremental move of semantic values
11774 to rhs array when in GLR mode.
11775 Define YYFILL to use in user-defined actions to fill semantic array
11776 as needed.
11777 Remove dummy use of yystack, as there is now a guaranteed use.
11778 (yydoAction): Modify to allow incremental move of semantic values
11779 to rhs array when in GLR mode.
11780 (yyresolveAction): Ditto.
11781 (yyglrShiftDefer): Update comment.
11782 (yyresolveStates): Use X == NULL for pointers, not !X.
11783 (yyglrReduce): Ditto.
11784 (yydoAction): Ditto
11785
11786 * tests/glr-regr1.at: Rename to ...
11787 * tests/glr-regression.at: Add new regression test for the problems
11788 described above (adapted from S. Eken).
11789 Update copyright notice.
11790 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
11791 * tests/Makefile.am: Ditto.
11792
11793 2003-01-28 Paul Eggert <eggert@twinsun.com>
11794
11795 * data/lalr1.cc: Do not use @output_header_name@ unless
11796 b4_defines_flag is set. This fixes two bugs reported by
11797 Tim Van Holder in
11798 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
11799 and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
11800
11801 2003-01-21 Paul Eggert <eggert@twinsun.com>
11802
11803 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
11804 we don't need to worry about yyerrlab1 being reported as an
11805 "unused label" by non-GCC C compilers. The downside is that if
11806 locations are used then a couple of statements are duplicated each
11807 time YYERROR is invoked, but the upside is that the warnings
11808 should vanish.
11809 (yyerrlab1): Move code to YERROR.
11810 (yyerrlab2): Remove. Change uses back to yyerrlab1.
11811 This reverts some of the 2002-12-27 change.
11812
11813 2003-01-17 Paul Eggert <eggert@twinsun.com>
11814
11815 * src/output.c (symbol_printers_output): Fix typo that led
11816 to core dump. Problem reported by Antonio Rus in
11817 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
11818
11819 2003-01-13 Akim Demaille <akim@epita.fr>,
11820 Quoc Peyrot <chojin@lrde.epita.fr>,
11821 Robert Anisko <anisko_r@lrde.epita.fr>
11822
11823 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
11824 when the stacks contain one element, as the loop would otherwise
11825 free the last state, and then use the top state (the one we just
11826 popped). This means that the initial elements will not be freed
11827 explicitly, as is the case in yacc.c; it is not a problem, as
11828 these elements have fake values.
11829
11830 2003-01-11 Paul Eggert <eggert@twinsun.com>
11831
11832 * NEWS: %expect-violations are now just warnings, reverting
11833 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
11834 bootstrapping problem reported by Matthias Klose; see
11835 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
11836 * src/conflicts.c (conflicts_print): Likewise.
11837 * tests/conflicts.at (%expect not enough, %expect too much,
11838 %expect with reduce conflicts): Likewise.
11839 * doc/bison.texinfo (Expect Decl): Document this. Also mention
11840 that the warning is enabled if the number of conflicts changes
11841 (not necessarily increases).
11842
11843 * src/getargs.c (version): Update copyright year.
11844
11845 2003-01-09 Akim Demaille <akim@epita.fr>
11846
11847 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
11848
11849 2003-01-08 Paul Eggert <eggert@twinsun.com>
11850
11851 * Makefile.maint (WGETFLAGS):
11852 New macro, containing "-C off" to disable proxy caches.
11853 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
11854 (rel-check): Use $(WGET) instead of wget.
11855
11856 2003-01-06 Paul Eggert <eggert@twinsun.com>
11857
11858 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
11859 the GLR paper of Scott, Johnstone and Hussain.
11860
11861 2003-01-04 Paul Eggert <eggert@twinsun.com>
11862
11863 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
11864 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
11865 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
11866 (EXTRA_LIBRARIES): New var, for liby.a.
11867 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
11868 (EXTRA_SCRIPTS): New var, for yacc.
11869
11870 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
11871 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
11872 Problem reported by Nelson H. F. Beebe.
11873
11874 2003-01-03 Paul Eggert <eggert@twinsun.com>
11875
11876 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
11877 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
11878 when compiling Bison 1.875's `bitset bset = obstack_alloc
11879 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
11880
11881 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
11882 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
11883 grow to a huge size with typical invocation.
11884
11885 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
11886 Use the pattern recommended by Autoconf 2.57, except also protect
11887 against double-definition.
11888 * src/system.h: Likewise.
11889 Portability issues reported by Nelson H. F. Beebe.
11890
11891 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
11892 All uses changed. Provide a definition in both C and C++.
11893 (yytrue, yyfalse): Define even if defined (__cplusplus).
11894
11895 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
11896 Reported by Nelson H. F. Beebe.
11897
11898 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
11899
11900 2003-01-02 Paul Eggert <eggert@twinsun.com>
11901
11902 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
11903 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
11904 Bug reported by Nelson H. F. Beebe.
11905
11906 2003-01-01 Paul Eggert <eggert@twinsun.com>
11907
11908 * Version 1.875.
11909
11910 2002-12-30 Paul Eggert <eggert@twinsun.com>
11911
11912 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
11913 Moved here from...
11914 (<INITIAL>","): Here. This causes stray "," to be treated
11915 more uniformly.
11916
11917 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
11918 last brace in braced code when not in Yacc mode, for compatibility
11919 with Bison 1.35. This resurrects the 2001-12-15 patch to
11920 src/reader.c.
11921
11922 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
11923 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
11924
11925 2002-12-28 Paul Eggert <eggert@twinsun.com>
11926
11927 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
11928 that of SYM's type. This fixes Debian bug 168069, reported by
11929 Thomas Olsson.
11930
11931 2002-12-28 Paul Eggert <eggert@twinsun.com>
11932
11933 Version 1.75f.
11934
11935 Switch back to the Yacc style of conflict reports, undoing some
11936 of the 2002-07-30 change.
11937 * doc/bison.texinfo (Understanding): Use Yacc style for
11938 conflict reports. Also, use new way of locating rules.
11939 * src/conflicts.c (conflict_report):
11940 Renamed from conflict_report_yacc, removing the old
11941 'conflict_report'. Translate the entire conflict report at once,
11942 so that we don't assume that "," has the same interpretation in
11943 all languages.
11944 (conflicts_output): Use Yacc-style conflict report for each state,
11945 instead of our more-complicated style.
11946 (conflicts_print): Use Yacc-style conflict report, except print
11947 the input file name when not emulating Yacc.
11948 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
11949 Conflicted Reduction, %expect not enough, %expect too much,
11950 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
11951 * tests/existing.at (GNU Cim Grammar): Likewise.
11952 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
11953
11954 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
11955 fatal): Don't invoke fflush; it's not needed and it might even be
11956 harmful for stdout, as stdout might not be open.
11957 * src/reduce.c (reduce_print): Likewise.
11958
11959 2002-12-27 Paul Eggert <eggert@twinsun.com>
11960
11961 Fix a bug where error locations were not being recorded correctly.
11962 This problem was originally reported by Paul Hilfinger in
11963 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
11964
11965 * data/yacc.c (yyparse): New local var yylerrsp, to record the
11966 top of the location stack's error locations.
11967 (yyerrlab): Set it. When discarding a token, push its location
11968 onto yylerrsp so that we don't lose track of the error's end.
11969 (yyerrlab1): Now is only the target of YYERROR, so that we can
11970 properly record the location of the action that failed. For GCC
11971 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
11972 GCC warning about yyerrlab1 being unused if YYERROR is unused.
11973 (yyerrlab2): New label, which yyerrlab now falls through to.
11974 Compute the error's location by applying YYLLOC_DEFAULT to
11975 the locations of all the symbols that went into the error.
11976 * doc/bison.texinfo (Location Default Action): Mention that
11977 YYLLOC_DEFAULT is also invoked for syntax errors.
11978 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
11979 Error locations include the locations of all the tokens that were
11980 discarded, not just the last token.
11981
11982 2002-12-26 Paul Eggert <eggert@twinsun.com>
11983
11984 * src/files.c: Include quote.h.
11985 (compute_output_file_names): Warn if we detect conflicting
11986 outputs to the same file. This should catch the misunderstanding
11987 exemplified by Debian Bug 165349, reported by Bruce Stephens..
11988
11989 * src/conflicts.c (conflicts_print): If the user specifies
11990 "%expect N", report an error if there are any reduce/reduce
11991 conflicts. This is what the manual says should happen.
11992 This fixes Debian bug 130890, reported by Anthony DeRobertis.
11993 * tests/conflicts.at (%expect with reduce conflicts): New test.
11994
11995 Don't use m4_include on relative file names, as it doesn't work as
11996 desired if there happens to be a file with that name under ".".
11997
11998 * m4sugar/version.m4: Remove; it was included but it wasn't used.
11999 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
12000 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
12001 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
12002 * src/output.c (output_skeleton): Use full path names when
12003 specifying a file to include; don't rely on include path, as
12004 it's unreliable when the working file contains a file with
12005 that name.
12006
12007 2002-12-25 Paul Eggert <eggert@twinsun.com>
12008
12009 Remove obsolete references to bison.simple and bison.hairy.
12010 Problem mentioned by Aubin Mahe in
12011 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
12012 * data/glr.c: Comment fix.
12013 * doc/bison.1: Remove references. Also, mention "yacc".
12014
12015 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
12016 with -g option.
12017
12018 * src/parse-gram.y (declaration): Use enum "report_states" rather
12019 than its numeric value 1.
12020
12021 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
12022 opening a new one. This fixes Debian bug 165349, reported by
12023 Bruce Stephens.
12024
12025 2002-12-24 Paul Eggert <eggert@twinsun.com>
12026
12027 Version 1.75e.
12028
12029 * Makefile.maint (cvs-update): Don't assume that the shell
12030 supports $(...), as Solaris sh doesn't.
12031
12032 * src/parse-gram.y (lloc_default): Remove test for empty
12033 nonterminals at the end, since it didn't change the result.
12034
12035 2002-12-24 Paul Eggert <eggert@twinsun.com>
12036
12037 If the user does not define YYSTYPE as a macro, Bison now declares it
12038 using typedef instead of defining it as a macro. POSIX requires this.
12039 For consistency, YYLTYPE is also declared instead of defined.
12040
12041 %union directives can now have a tag before the `{', e.g., the
12042 directive `%union foo {...}' now generates the C code
12043 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
12044 The default union tag is `YYSTYPE', for compatibility with Solaris 9
12045 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
12046 instead of `yyltype'.
12047
12048 `yystype' and `yyltype' are now obsolescent macros instead of being
12049 typedefs or tags; they are no longer documented and will be
12050 withdrawn in a future release.
12051
12052 * data/glr.c (b4_location_type): Remove.
12053 (YYSTYPE): Renamed from yystype.
12054 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
12055 (struct YYLTYPE): Renamed from struct yyltype.
12056 (YYLTYPE): Renamed from yyltype.
12057 (yyltype, yystype): New (and obsolescent) macros,
12058 for backward compatibility.
12059 * data/yacc.c: Likewise.
12060
12061 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
12062 does not specify a union tag. This is for compatibility with
12063 Solaris 9 yacc.
12064
12065 * src/parse-gram.y (add_param): 2nd arg is now char * not char
12066 const *, since it is now modified by stripping surrounding { }.
12067 (current_braced_code): Remove.
12068 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
12069 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
12070 trailing " {...}". Now of type <chars>.
12071 (grammar_declaration): Adjust to bundled tokens.
12072 (code_content): Remove; stripping is now done by add_param.
12073 (print_token_value): Print contents of bundled tokens.
12074 (token_name): New function.
12075
12076 * src/reader.h (braced_code, current_braced_code): Remove.
12077 (token_name): New decl.
12078
12079 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
12080 token_type, not braced_code code_kind. All uses changed.
12081 (SC_PRE_CODE): New state, for scanning after a keyword that
12082 has (or usually has) an immediately-following braced code.
12083 (token_type): New local var, to keep track of which token type
12084 to return when scanning braced code.
12085 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
12086 <INITIAL>"%parse-param", <INITIAL>"%printer",
12087 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
12088 instead of returning a token type immediately.
12089 (<INITIAL>"{"): Set token type.
12090 (<SC_BRACED_CODE>"}"): Use it.
12091 (handle_action_dollar, handle_action_at): Now returns bool
12092 indicating success. Fail if ! current_rule; this prevents a core dump.
12093 (handle_symbol_code_dollar, handle_symbol_code_at):
12094 Remove; merge body into caller.
12095 (handle_dollar, handle_at): Complain in invalid contexts.
12096
12097 * NEWS, doc/bison.texinfo: Document the above.
12098 * NEWS: Fix years and program names in copyright notice.
12099
12100 2002-12-17 Paul Eggert <eggert@twinsun.com>
12101
12102 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
12103 Reporting, Table of Symbols): Omit mentions of %lex-param and
12104 %parse-param from the documentation for now.
12105
12106 2002-12-15 Paul Eggert <eggert@twinsun.com>
12107
12108 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
12109 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
12110 lookahead symbol, and which sets yychar in parser actions) and it
12111 disagreed with the Bison documentation. Bug
12112 reported by Andrew Walrond.
12113
12114 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
12115 as the caller now does that.
12116 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
12117 (YYEMPTY): Parenthesize right hand side, since others use it.
12118 (yyparse): Don't assume that our generated code is the only code
12119 that sets yychar.
12120
12121 2002-12-13 Paul Eggert <eggert@twinsun.com>
12122
12123 Version 1.75d.
12124
12125 POSIX requires a "yacc" command.
12126 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
12127 (MOSTLYCLEANFILES): Add yacc.
12128 (yacc): New rule.
12129 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
12130 as an alias for bison y.
12131
12132 * po/LINGUAS: Add da.
12133
12134 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
12135 problem with latest <getopt.h>.
12136 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
12137
12138 * doc/fdl.texi: Upgrade to 1.2.
12139 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
12140 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
12141 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
12142 gnulib.
12143 * config/install-sh: Sync with autotools.
12144
12145 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
12146 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
12147 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
12148 locations are requested.
12149 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
12150 locations are requested.
12151
12152 2002-12-12 Paul Eggert <eggert@twinsun.com>
12153
12154 Remove unportable casts and storage allocation tricks.
12155 While we're at it, remove almost all casts, since they
12156 usually aren't needed and are a sign of trouble.
12157
12158 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
12159
12160 * src/derives.c (derives_compute): Do not subtract NTOKENS from
12161 the pointer DSET returned by malloc; this isn't portable.
12162 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
12163 Similarly for DERIVES.
12164 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
12165 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
12166 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
12167
12168 * src/derives.c (derives_compute): Do not bother invoking
12169 int_of_rule_number, since rule numbers are integers.
12170
12171 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
12172 rather than XMALLOC (char, N).
12173
12174 * src/files.c (filename_split): Rewrite to avoid cast.
12175
12176 * src/gram.h (symbol_number_as_item_number,
12177 item_number_as_symbol_number, rule_number_as_item_number,
12178 item_number_as_rule_number):
12179 Now inline functions rather than macros, to avoid casts.
12180 * src/state.h (state_number_as_int): Likewise.
12181 * src/tables.c (state_number_to_vector_number,
12182 symbol_number_to_vector_number): Likewise.
12183
12184 * src/gram.h (int_of_rule_number): Remove; no longer used.
12185
12186 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
12187 since the resulting storage is always stored into.
12188
12189 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
12190 where it's needed.
12191
12192 * src/muscle_tab.c (muscle_m4_output):
12193 Now inline. Return bool, not int.
12194 * src/state.c (state_compare): Likewise.
12195 * src/symtab.c (symbol_check_defined,
12196 symbol_check_alias_consistency, symbol_pack, symbol_translation,
12197 hash_compare_symbol, hash_symbol):
12198 Likewise.
12199 * src/uniqstr.c (uniqstr_print): Likewise.
12200 * src/muscle_tab.c (muscle_m4_output_processor):
12201 New function, to avoid casts.
12202 * src/state.c (state_comparator, stage_hasher): Likewise.
12203 * src/symtab.c (symbol_check_defined_processor,
12204 symbol_check_alias_consistency_processor, symbol_pack_processor,
12205 symbol_translation_processor, hash_symbol_comparator,
12206 hash_symbol_hasher): Likewise.
12207 * src/uniqstr.c (uniqstr_print_processor): Likewise.
12208 * src/muscle_tab.c (muscles_m4_output):
12209 Use new functions instead of casting old functions unportably.
12210 * src/state.c (state_hash_new): Likewise.
12211 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
12212 symbols_token_translations_init):
12213 Likewise.
12214 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
12215
12216 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
12217 var instead of casting to long, to avoid casts.
12218 (prepare_states): Use MALLOC rather than alloca, so that we don't
12219 have to worry about alloca.
12220 * src/state.c (state_hash_lookup): Likewise.
12221
12222 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
12223 local var instead of casting to unsigned char, to avoid casts.
12224
12225 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
12226 STATE_ALLOC): Remove.
12227 (transitions_new, errs_new, reductions_new, state_new): Use malloc
12228 rather than calloc, and use offsetof to avoid allocating slightly
12229 too much storage.
12230 (state_new): Initialize all members.
12231
12232 * src/state.c (state_hash): Use unsigned accumulator, not signed.
12233
12234 * src/symtab.c (symbol_free): Remove; unused.
12235 (symbol_get): Remove cast in lhs of assignment.
12236 (symbols_do): Now static. Accept generic arguments, not
12237 hashing-related ones.
12238
12239 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
12240 (symbol_processor): Remove.
12241 (symbols_do): Remove decl; now static.
12242
12243 * src/system.h (alloca): Remove; decl no longer needed.
12244 (<stddef.h>): Include, for offsetof.
12245 (<inttypes.>, <stdint.h>): Include if available.
12246 (uintptr_t): New type, if system lacks it.
12247 (CALLOC, MALLOC, REALLOC): New macros.
12248 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
12249 new macros.
12250
12251 * src/tables.c (table_size): Now int, to pacify GCC.
12252 (table_grow, table_ninf_remap): Use signed table size.
12253 (save_row): Don't bother initializing locals when not needed.
12254 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
12255 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
12256
12257 * src/vcg.h: Correct misspellings.
12258
12259 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
12260
12261
12262 * src/getargs.c (getargs): Don't assume EOF == -1.
12263
12264 2002-12-09 Paul Eggert <eggert@twinsun.com>
12265
12266 Change identifier spellings to avoid collisions with names
12267 that are reserved by POSIX.
12268
12269 Don't use names ending in _t, since POSIX reserves them.
12270 For consistency, remove _e and _s endings -- they're weren't
12271 needed to remove ambiguity. All uses changed.
12272 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
12273 turn was just renamed from struniq_t.
12274 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
12275 which in turn was just renamed from struniq_processor_t.
12276 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
12277 in turn was renamed from hash_compare_struniq_t.
12278 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
12279 (state_list): Renamed from state_list_t.
12280 * src/assoc.h (assoc): Renamed from assoc_t.
12281 * src/conflicts.c (enum conflict_resolution): Renamed from
12282 enum conflict_resolution_e.
12283 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
12284 (rule_list): Renamed from rule_list_t.
12285 * src/getargs.h (enum trace): Renamed from enum trace_e.
12286 (enum report): Renamed from enum report_e.
12287 * src/gram.h (item_number): Renamed from item_number_t.
12288 (rule_number): Renamed from rule_number_t.
12289 (struct rule_s): Remove the "rule_s" part; not used.
12290 (rule): Renamed from rule_t.
12291 (rule_filter): Renamed from rule_filter_t.
12292 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
12293 (goto_list): Renamed from goto_list_t.
12294 * src/lalr.h (goto_number): Renamed from goto_number_t.
12295 * src/location.h (location): Renamed from location_t.
12296 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
12297 and moved here from:
12298 * src/muscle_tab.h (muscle_entry_t): here.
12299 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
12300 (rule_list): Renamed from rule_list_t.
12301 * src/print_graph.c (static_graph): Renamed from graph.
12302 * src/reader.h (braced_code): Renamed from braced_code_t.
12303 Remove brace_code_e tag.
12304 * src/relation.h (relation_node): Renamed from relation_node_t.
12305 (relation_nodes): Renamed from relation_nodes_t.
12306 (relation): Renamed from relation_t.
12307 * src/state.h (state_number): Renamed from state_number_t.
12308 (struct state): Renamed from struct state_s.
12309 (state): Renamed from state_t.
12310 (transitions): Renamed from transitions_t. Unused (and
12311 misspelled) transtion_s tag removed.
12312 (errs): Renamed from errs_t. Unused errs_s tag removed.
12313 (reductions): Renamed from reductions_t. Unused tag
12314 reductions_s removed.
12315 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
12316 (struct symbol_list): Renamed from struct symbol_list_s.
12317 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
12318 (struct symbol): Renamed from struct symbol_s.
12319 (symbol): Renamed from symbol_t.
12320 * src/tables.c (vector_number): Renamed from vector_number_t.
12321 (action_number): Renamed from action_t.
12322 * src/tables.h (base_number): Renamed from base_t.
12323 * src/vcg.h (enum color): Renamed from enum color_e.
12324 (enum textmode): Renamed from enum textmode_e.
12325 (enum shape): Renamed from enum shape_e.
12326 (struct colorentry): Renamed from struct colorentry_s.
12327 (struct classname): Renamed from struct classname_s.
12328 (struct infoname): Renamed from struct infoname_s.
12329 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
12330 (enum decision): Renamed from enum decision_e.
12331 (enum orientation): Renamed from enum orientation_e.
12332 (enum alignment): Renamed from enum alignment_e.
12333 (enum arrow_mode): Renamed from enum arrow_mode_e.
12334 (enum crossing_type): Renamed from enum crossing_type_e.
12335 (enum view): Renamed from enum view_e.
12336 (struct node): Renamed from struct node_s.
12337 (node): Renamed from node_t.
12338 (enum linestyle): Renamed from enum linestyle_e.
12339 (enum arrowstyle): Renamed from enum arrowstyle_e.
12340 (struct edge): Renamed from struct edge.
12341 (edge): Renamed from edge_t.
12342 (struct graph): Renamed from struct graph_s.
12343 (graph): Renamed from graph_t.
12344 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
12345 Rename value_t -> value.
12346 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
12347 value_t_as_yystype -> value_as_yystype.
12348
12349 Don't include <errno.h> in the mainstream code, since it
12350 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
12351 * lib/get-errno.c, lib/get-errno.h: New files.
12352 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
12353 get-errno.c.
12354 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
12355 * src/output.c (output_skeleton): Likewise.
12356 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
12357 instead of errno.
12358 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
12359 Likewise.
12360 (handle_action_dollar, handle_action_at): Likewise.
12361 * src/system.h: Do not include <errno.h>.
12362 (TAB_EXT): Renamed from EXT_TAB.
12363 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
12364
12365 Avoid str[a-z]*, since <string.h> reserves that name space.
12366 Change all instances of "struniq" in names to "uniqstr", and
12367 likewise for "STRUNIQ" and "UNIQSTR".
12368 * src/uniqstr.c: Renamed from src/struniq.c.
12369 * src/uniqstr.h: Renamed from src/struniq.h.
12370 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
12371 * src/files.c (strsuffix): Remove; unused.
12372 (concat2): Renamed from stringappend. Now static.
12373 * src/files.h (strsuffix, stringappend): Remove; unused.
12374 * src/parse-gram.y (<chars>): Renamed from <string>.
12375 (<uniqstr>): Renamed from <struniq>.
12376 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
12377 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
12378 (struct graph_s.expand): Renamed from struct graph_s.stretch.
12379 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
12380 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
12381 (N_EXPAND): Renamed from N_STRETCH.
12382
12383 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
12384 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
12385 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
12386 Remove; unused.
12387 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
12388 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
12389 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
12390 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
12391 (BASE_MAXIMUM): Renamed from BASE_MAX.
12392 (BASE_MINIMUM): Renamed from BASE_MIN.
12393 (ACTION_MAX): Remove; unused.
12394 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
12395 Unnecessary casts removed from above defines.
12396
12397
12398 Fix misspelling in names.
12399 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
12400 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
12401 G_NODE_ALIGNEMENT.
12402
12403
12404 * lib/timevar.c (timevar_report): Renamed from time_report,
12405 for consistency with other names.
12406 * lib/timevar.h (timevar_report): New decl.
12407 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
12408
12409
12410 Sort include-file uses.
12411
12412 Reorder all include files under src to be in the order "system.h".
12413 then the ../lib include files in angle brackets (alphabetized),
12414 then the . include files in double-quotes (alphabetized). Fix
12415 dependency breakages encountered in this process, as follows:
12416 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
12417 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
12418 * src/state.h: Include "symtab.h".
12419
12420 2002-12-08 Paul Eggert <eggert@twinsun.com>
12421
12422 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
12423 since this causes problems when __file__ contains character
12424 sequences like "@" that are treated specially by src/scan-skel.l.
12425 Instead, just use the file's basename. This fixes the bug
12426 reported by Martin Mokrejs in
12427 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
12428
12429 2002-12-06 Paul Eggert <eggert@twinsun.com>
12430
12431 Add support for rules that do not have trailing semicolons, as
12432 POSIX requires. Improve the quality of locations in Bison
12433 diagnostics.
12434
12435 * src/location.c: Include <quotearg.h>.
12436 (empty_location): Now const.
12437 (location_print): New function. Follow the recommendation of the
12438 GNU Coding Standards for locations that span file boundaries.
12439 * src/location.h: Do not include <quotearg.h>; no longer needed.
12440 (boundary): New type.
12441 (location_t): Use it. This allows locations to span file boundaries.
12442 All member uses changed: file -> start.file or end.file (as needed),
12443 first_line -> start.line, first_column -> start.column,
12444 last_line -> end.line, last_column -> end.column.
12445 (equal_boundaries): New function.
12446 (LOCATION_RESET, LOCATION_STEP): Remove.
12447 (LOCATION_PRINT): Remove. All callers changed to use location_print.
12448 (empty_location): Now const.
12449 (location_print): New decl.
12450 * src/parse-gram.y (lloc_default): New function, which handles
12451 empty locations more accurately.
12452 (YYLLOC_DEFAULT): Use it.
12453 (%token COLON): Remove.
12454 (%token ID_COLON): New token.
12455 (rules): Use it.
12456 (declarations, rules): Remove trailing semicolon.
12457 (declaration, rules_or_grammar_declaration):
12458 Allow empty (";") declaration.
12459 (symbol_def): Remove empty actions; no longer needed.
12460 (rules_or_grammar_declaration): Remove trailing semicolon.
12461 (semi_colon.opt): Remove.
12462 * src/reader.h: Include location.h.
12463 (scanner_cursor): New decl.
12464 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
12465 rolling our own.
12466 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
12467 of *loc.
12468 (STEP): Remove. No longer needed, now that adjust_location does
12469 the work. All uses removed.
12470 (scanner_cursor): New var.
12471 (adjust_location): Renamed from extend_location. It now sets
12472 *loc and adjusts the scanner cursor. All uses changed.
12473 Don't bother testing for CR.
12474 (handle_syncline): Remove location arg; now updates scanner cursor.
12475 All callers changed.
12476 (unexpected_end_of_file): Now accepts start boundary of token or
12477 comment, not location. All callers changed. Update scanner cursor,
12478 not the location.
12479 (SC_AFTER_IDENTIFIER): New state.
12480 (context_state): Renamed from c_context. All uses changed.
12481 (id_loc, code_start, token_start): New local vars.
12482 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
12483 processing of Yacc white space and equivalents here.
12484 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
12485 instead of returning ID immediately, since we need to search for
12486 a subsequent colon.
12487 (<INITIAL>"'", "\""): Save token_start.
12488 (<INITIAL>"%{", "{", "%%"): Save code_start.
12489 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
12490 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
12491 BEGIN context_state at end, not INITIAL.
12492 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
12493 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
12494 Return correct token start.
12495 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
12496 the start of a character, string or multiline comment is found.
12497 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
12498 Reduction): Adjust reported locations to match the more-precise
12499 results now expected.
12500 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
12501 * tests/reduce.at (Useless Rules, Reduced Automaton,
12502 Underivable Rules): Likewise.
12503 * tests/regression.at (Invalid inputs): No longer `expecting ";"
12504 or "|"' now that so many other tokens are allowed by the new grammar.
12505
12506 * src/complain.h (current_file): Remove duplicate decl;
12507 current_file is now owned by files.h.
12508 * src/complain.c, src/scan-gram.l: Include files.h.
12509
12510 2002-12-06 Paul Eggert <eggert@twinsun.com>
12511
12512 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
12513 promotes to int; it might be unsigned int.
12514 * data/yacc.c (yy_reduce_print): Likewise.
12515
12516 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
12517 be #defined in the prologue, not in the Bison declarations.
12518 This fixes Debian Bug 102878, reported by Shaul Karl.
12519
12520 2002-12-02 Paul Eggert <eggert@twinsun.com>
12521
12522 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
12523 * lib/strtoul.c: New file, from gnulib.
12524 This fixes a porting bug reported by Peter Klein in
12525 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
12526
12527 2002-11-30 Paul Eggert <eggert@twinsun.com>
12528
12529 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
12530 and put only a forward declaration in the prologue. This is for
12531 consistency with the other scanner helper functions.
12532
12533 Type clashes now generate warnings, not errors, since it
12534 appears that POSIX may allow some grammars with type clashes.
12535 * src/reader.c (grammar_current_rule_check): Warn about
12536 type clashes instead of complaining.
12537 * tests/input.at (Type Clashes): Expect warnings, not complaints.
12538
12539 Add Yacc library, since POSIX requires it.
12540 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
12541 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
12542 * lib/main.c, lib/yyerror.c: New files.
12543
12544 gram_error can be static; it need not be extern.
12545 * src/reader.h (gram_error): Remove decl.
12546 * src/parse-gram.y (gram_error): Now static. Add static decl.
12547 (print_token_value): Omit parameter names from forward decl,
12548 for consistency.
12549
12550 2002-11-29 Paul Eggert <eggert@twinsun.com>
12551
12552 * doc/bison.texinfo: Emphasize that yylex and yyerror must
12553 be declared before being used. E.g., one should typically
12554 declare them in the prologue. Use GNU coding style in examples.
12555 Put "const" consistently after the type it modifies. Mention
12556 that C99 supports "inline". Mention that yyerror traditionally
12557 returns "int".
12558
12559 %parse-param and %lex-param now take just one argument, the
12560 declaration; the argument name is deduced from the declaration.
12561
12562 * doc/bison.texinfo (Parser Function, Pure Calling, Error
12563 Reporting, Table of Symbols): Document this.
12564 * src/parse-gram.y (add_param): New function.
12565 (COMMA): Remove.
12566 (declaration): Implement new rule for %parse-param and %lex-param.
12567 * src/scan-gram.l: "," now elicits a warning, rather than being
12568 a token; this is more compatible with byacc.
12569 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
12570
12571 2002-11-27 Paul Eggert <eggert@twinsun.com>
12572
12573 Rename identifiers to avoid real and potential collisions.
12574
12575 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
12576 to avoid collision with lex macro described by Bruce Lilly in
12577 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
12578 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
12579 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
12580 * src/parse-gram.y (print_token_value): Renamed from yyprint.
12581 All uses changed.
12582 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
12583 The name "yycontrol" violates the name space rules, and this stuff
12584 wasn't being used anyway.
12585 (input): Remove action; this stuff wasn't being used.
12586 (gram_error): Rename local variable yylloc -> loc.
12587 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
12588 (YY_DECL): Don't use "yy" at start of local variables.
12589 All uses changed, e.g., yylloc -> loc.
12590 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
12591 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
12592 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
12593 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
12594
12595 * src/parse-gram.y (gram_error): loc is now const *.
12596 * src/reader.h (gram_error): Likewise.
12597
12598 2002-11-24 Paul Eggert <eggert@twinsun.com>
12599
12600 Version 1.75c.
12601
12602 * tests/actions.at (Actions after errors): Use an output format
12603 more similar to that of the Printers and Destructors test.
12604 Test the position of the ';' token too.
12605 (Printers and Destructors): Likewise.
12606 (Printers and Destructors: %glr-parser): Remove for now, to avoid
12607 unnecessarily alarming people when the test fails.
12608
12609 * data/yacc.c (yyerrlab1): Move this label down, so that the
12610 parser does not discard the lookahead token if the user code
12611 invokes YYERROR. This change is required for POSIX conformance.
12612
12613 * lib/error.c: Sync with gnulib.
12614
12615 2002-11-22 Paul Eggert <eggert@twinsun.com>
12616
12617 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
12618 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
12619 * lib/xmalloc.c: Likewise.
12620
12621 2002-11-20 Paul Eggert <eggert@twinsun.com>
12622
12623 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
12624
12625 2002-11-20 Paul Eggert <eggert@twinsun.com>
12626
12627 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
12628 should use `if (! x) abort ();' rather than `assert (x);', and
12629 anyway it's one less thing to worry about configuring.
12630
12631 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
12632 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
12633 and replace all instances of assert with abort.
12634 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
12635 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
12636
12637 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
12638 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
12639 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
12640 hash_find_entry, hash_rehash, hash_insert): Likewise.
12641 * src/conflicts.c (resolve_sr_conflict): Likewise.
12642 * src/lalr.c (set_goto_map, map_goto): Likewise.
12643 * src/nullable.c (nullable_compute): Likewise.
12644 * src/output.c (prepare_rules, token_definitions_output): Likewise.
12645 * src/reader.c (packgram, reader): Likewise.
12646 * src/state.c (state_new, state_free, state_transitions_set,
12647 state_reduction_find): Likewise.
12648 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
12649 symbol_pack): Likewise.
12650 * src/tables.c (conflict_row, pack_vector): Likewise.
12651 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
12652 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
12653 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
12654 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
12655
12656 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
12657 (ARGMATCH_CONSTRAINT): New macro.
12658 (ARGMATCH_ASSERT): Use it.
12659
12660 * src/system.h (verify): New macro.
12661 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
12662 rather than assert.
12663 * src/tables.c (tables_generate): Likewise.
12664
12665 * src/struniq.c (struniq_assert): Now returns void, and aborts
12666 if the assertion is false.
12667 (struniq_assert_p): Remove.
12668 * src/struniq.h: Likewise.
12669
12670 2002-11-18 Paul Eggert <eggert@twinsun.com>
12671
12672 * data/glr.c (yygetLRActions): Replace `yyindex' with
12673 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
12674 This fixes the regression with Sun ONE Studio 7 cc that I reported in
12675 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
12676
12677 2002-11-18 Akim Demaille <akim@epita.fr>
12678
12679 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
12680 space.
12681 From Tim Van Holder.
12682
12683 2002-11-17 Paul Eggert <eggert@twinsun.com>
12684
12685 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
12686 to "SyntaxError" for consistency with my 2002-11-15 change.
12687
12688 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
12689 not define to {}, since this breaks the common use of `YYDPRINTF
12690 ((...));' if a single statement is desired (e.g. before `else').
12691 Work around GCC warnings by surrounding corresponding calls with
12692 {} if needed.
12693 (yyhasResolvedValue): Remove unused function.
12694 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
12695 loop body.
12696 (yyreportSyntaxError): Renamed from yyreportParseError.
12697 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
12698 All uses changed.
12699 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
12700 extern when possible. Remove unused initializations.
12701
12702 2002-11-16 Akim Demaille <akim@epita.fr>
12703
12704 Augment the similarity between GLR and LALR traces.
12705
12706 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
12707 (YY_REDUCE_PRINT): New.
12708 (yyparse): Use them.
12709 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
12710 YYDPRINT here.
12711 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
12712 state reached after the reduction/recovery, since...
12713 (yyparse, yyprocessOneStack): Report the state we are entering in.
12714
12715 2002-11-16 Akim Demaille <akim@epita.fr>
12716
12717 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
12718 Add support for --trace=skeleton.
12719 * src/scan-skel.l: %option debug.
12720 Scan strings of non-@ or \n instead of character by character.
12721 (scan_skel): Handle trace_skeleton.
12722 (QPUTS): New.
12723 (@output_parser_name@, @output_header_name@): ``Restore'' their
12724 support (used to be M4 macros).
12725 * data/yacc.c: Quote larger chunks, a la glr.c.
12726 * data/lalr1.cc: Likewise.
12727 The header guards are no longer available, so use some other
12728 string than `YYLSP_NEEDED'.
12729
12730 2002-11-16 Akim Demaille <akim@epita.fr>
12731
12732 Make the ``Printers and Destructors'' test more verbose, taking
12733 `yacc.c''s behavior as (possibly wrong) reference.
12734
12735 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
12736 instead of fprint on stdout.
12737 Set and report the last_line of the symbols.
12738 Consistently display values and locations.
12739
12740 2002-11-16 Paul Eggert <eggert@twinsun.com>
12741
12742 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
12743
12744 2002-11-15 Paul Eggert <eggert@twinsun.com>
12745
12746 * tests/actions.at (Actions after errors): New test case.
12747
12748 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
12749 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
12750 tests/action.at, tests/calc.at, tests/conflicts.at,
12751 tests/cxx-type.at, tests/regression.at:
12752 "parse error" -> "syntax error" for POSIX compatibility.
12753 "parsing stack overflow..." -> "parser stack overflow" so
12754 that code matches Bison documentation.
12755
12756 2002-11-15 Akim Demaille <akim@epita.fr>
12757
12758 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
12759 take two BRACED_CODE, not two string_content.
12760 Free the scanner's obstack when we are done.
12761 (code_content): New.
12762 * tests/calc.at: Adjust.
12763 * doc/bison.texinfo: Adjust.
12764 Also, make sure to include the `,' for these declarations.
12765
12766 2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
12767
12768 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
12769 definition; avoids potential autoreconf problems.
12770
12771 2002-11-15 Akim Demaille <akim@epita.fr>
12772
12773 Always check the value returned by yyparse.
12774
12775 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
12776 returned by yyparse.
12777 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
12778 Adjust calls.
12779 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
12780 returned by yyparse.
12781
12782 2002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
12783
12784 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
12785 on input.at test.
12786
12787 2002-11-14 Paul Eggert <eggert@twinsun.com>
12788
12789 * src/output.c (output_skeleton): Call xfopen instead of
12790 duplicating xfopen's body.
12791
12792 Fix bugs reported by Nelson H. F. Beebe in
12793 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
12794
12795 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
12796 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
12797 Group compiler. Instead, use "$CC -E bar.c". Include the .h
12798 file twice in the grammar, as an extra check.
12799
12800 * tests/input.at (Torturing the Scanner): Surround the
12801 backslash-newline tests with "#if 0", to make it less likely that
12802 we'll run into compiler bugs. Bring back solitary \ inside
12803 comment, but add a closing comment to work around HP C bug. Don't
12804 test backslash-newline in C character constant.
12805
12806 2002-11-14 Akim Demaille <akim@epita.fr>
12807
12808 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
12809 status of the compiler.
12810 Calling `exit 1' is no longer needed.
12811 Reported by Nelson H. F. Beebe.
12812
12813 2002-11-14 Akim Demaille <akim@epita.fr>
12814
12815 * tests/atlocal.in (CPPFLAGS): We have config.h.
12816 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
12817 New.
12818 * tests/actions.at, tests/calc.at, tests/conflicts.at,
12819 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
12820 * tests/regression.at, tests/torture.at: Use them for all the
12821 grammars that are to be compiled.
12822 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
12823 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
12824 * doc/bison.texinfo (GLR Parsers): Document `inline'.
12825
12826 2002-11-14 Akim Demaille <akim@epita.fr>
12827
12828 * doc/bison.texinfo: Various formatting changes (alignments in
12829 samples, additional @group/@end group, GCS in samples.
12830 Use @deffn instead of simple @table to define the directives,
12831 macros, variables etc.
12832
12833 2002-11-13 Paul Eggert <eggert@twinsun.com>
12834
12835 Fix some bugs reported by Albert Chin-A-Young in
12836 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
12837
12838 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
12839 -o c"; the HP C compiler chatters during compilation.
12840 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
12841 * tests/headers.at (export YYLTYPE): Likewise.
12842
12843 * tests/input.at (Torturing the Scanner): Remove lines containing
12844 solitary backslashes, as they tickle a bug in the HP C compiler.
12845
12846 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
12847 comments, since they're not portable. Use GNU coding style.
12848
12849 2002-11-13 Akim Demaille <akim@epita.fr>
12850
12851 * data/yacc.c: Leave bigger chunks of quoted text.
12852 (YYDSYMPRINTF): New.
12853 Use it to report symbol activities.
12854 * data/glr.c (YYDSYMPRINTF): New.
12855 Use it.
12856
12857 2002-11-12 Paul Eggert <eggert@twinsun.com>
12858
12859 Version 1.75b.
12860
12861 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
12862 (yyglrReduce): Return yyok, not 0.
12863 This should avoid the enumerated-type warnings reported
12864 by Nelson H. F. Beebe in
12865 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
12866
12867 * lib/bbitset.h (BITSET_INLINE): Remove.
12868 * lib/bitset.h [! BITSET_INLINE]: Remove.
12869 (bitset_set, bitset_reset, bitset_test): Rename local vars
12870 to avoid shadowing warnings by GCC.
12871
12872 * data/glr.c (inline): Remove #define. It's the user's
12873 responsibility to #define it away, just like 'const'.
12874 This fixes one of the bugs reported by Nelson H. F. Beebe in
12875 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
12876
12877 * Makefile.maint (po-check): Scan .l and .y files instead of the
12878 .c and the .h files that they generate. This fixes the bug
12879 reported by Tim Van Holder in:
12880 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
12881 Look for N_ as well as for _. Try to avoid matching #define for
12882 N_ and _.
12883 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
12884 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
12885 * src/scan-gram.l: Revamp regular expressions so that " and '
12886 do not confuse xgettext.
12887
12888 * src/struniq.h (struniq_new): Do not declare the return type
12889 to be 'const'; this violates the C standard.
12890 * src/struniq.c (struniq_new): Likewise.
12891
12892 2002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
12893
12894 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
12895 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
12896 linker.
12897
12898 2002-11-12 Akim Demaille <akim@epita.fr>
12899
12900 * Makefile.maint: Sync with Autoconf:
12901 (local_updates): New.
12902
12903 2002-11-12 Akim Demaille <akim@epita.fr>
12904
12905 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
12906
12907 2002-11-12 Akim Demaille <akim@epita.fr>
12908
12909 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
12910 locations.
12911
12912 2002-11-12 Akim Demaille <akim@epita.fr>
12913
12914 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
12915 not yyvalue.
12916
12917 2002-11-12 Akim Demaille <akim@epita.fr>
12918
12919 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
12920 Use it to test the GLR parser.
12921
12922 2002-11-12 Akim Demaille <akim@epita.fr>
12923
12924 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
12925 defines it.
12926 * data/glr.c (yystos): New.
12927 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
12928 (YYDSYMPRINT): New.
12929 (yyval): Don't define it, it is handled via M4.
12930 (yyrecoverParseError): Free verbosely the discarded symbols.
12931 * data/yacc.c (yysymprint): Remove, rather...
12932 (b4_yysymprint_generate): invoke.
12933 * data/c.m4 (b4_yysymprint_generate): New.
12934 Accept pointers as arguments, as opposed to the version from
12935 yacc.c.
12936 (b4_yydestruct_generate): Likewise.
12937 * tests/cations.at (Printers and Destructors): Use Bison directives
12938 instead of CPP macros.
12939 Don't rely on internal details.
12940
12941 2002-11-12 Akim Demaille <akim@epita.fr>
12942
12943 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
12944 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
12945 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
12946 it against YYEMPTY and so forth), work on yytoken (i.e., set
12947 it to YYEMPTY etc.).
12948 (yydestruct): Replace with a b4_yydestruct_generate invocation.
12949 (b4_symbol_actions): Remove.
12950 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
12951 for 0, end-of-input.
12952
12953 2002-11-12 Akim Demaille <akim@epita.fr>
12954
12955 * doc/bison.texinfo (Destructor Decl): New.
12956
12957 2002-11-12 Akim Demaille <akim@epita.fr>
12958
12959 * src/tables.c (tables_generate): Use free for pointers that
12960 cannot be NULL, not XFREE.
12961 (pack_vector): Use assert, not fatal, for bound violations.
12962 * src/state.c (state_new): Likewise.
12963 * src/reader.c (reader): Likewise.
12964 * src/lalr.c (set_goto_map): Likewise.
12965 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
12966 the file name.
12967
12968 2002-11-12 Akim Demaille <akim@epita.fr>
12969
12970 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
12971 Restore.
12972 * src/scan-gram.l (last_string): Is global to the file, not to
12973 yylex.
12974 * src/parse-gram.y (input): Don't append the epilogue here,
12975 (epilogue.opt): do it here, and free the scanner's obstack.
12976 * src/reader.c (epilogue_set): Rename as...
12977 (epilogue_augment): this.
12978 * data/c.m4 (b4_epilogue): Defaults to empty.
12979
12980 2002-11-12 Akim Demaille <akim@epita.fr>
12981
12982 * src/getargs.c (long_options): Remove duplicates.
12983 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
12984 Remove.
12985 * doc/bison.rnh: Remove.
12986 * doc/bison.texinfo (VMS Invocation): Remove.
12987
12988 2002-11-12 Akim Demaille <akim@epita.fr>
12989
12990 * src/struniq.h, src/struniq.c (struniq_t): Is const.
12991 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
12992
12993 Use struniq for symbols.
12994
12995 * src/symtab.h (symbol_t): The tag member is a struniq.
12996 (symbol_type_set): Adjust.
12997 * src/symtab.c (symbol_new): Takes a struniq.
12998 (symbol_free): Don't free the tag member.
12999 (hash_compare_symbol_t, hash_symbol_t): Rename as...
13000 (hash_compare_symbol, hash_symbol): these.
13001 Use the fact that tags as struniqs.
13002 (symbol_get): Use struniq_new.
13003 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
13004 Returns a strniq.
13005 * src/reader.h (merger_list, grammar_currentmerge_set): The name
13006 and type members are struniqs.
13007 * src/reader.c (get_merge_function)
13008 (grammar_current_rule_merge_set): Adjust.
13009 (TYPE, current_type): Are struniq.
13010
13011 Use struniq for file names.
13012
13013 * src/files.h, src/files.c (infile): Split into...
13014 (grammar_file, current_file): these.
13015 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
13016 * src/reduce.c (reduce_print): Likewise.
13017 * src/getargs.c (getargs): Likewise.
13018 * src/complain.h, src/complain.c: Likewise.
13019 * src/main.c (main): Call struniqs_new early enough to use it for
13020 file names.
13021 Don't free the input file name.
13022
13023 2002-11-12 Akim Demaille <akim@epita.fr>
13024
13025 * src/symtab.c (symbol_free): Remove dead deactivated code:
13026 type_name are properly removed.
13027 Don't use XFREE to free items that cannot be NULL.
13028 * src/struniq.h, src/struniq.c: New.
13029 * src/main.c (main): Initialize/free struniqs.
13030 * src/parse-gram.y (%union): Add astruniq member.
13031 (yyprint): Adjust.
13032 * src/scan-gram.l (<{tag}>): Return a struniq.
13033 Free the obstack bit that used to store it.
13034 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
13035
13036 2002-11-11 Paul Eggert <eggert@twinsun.com>
13037
13038 Revamp to fix many (but not all) of the C- and M4-related quoting
13039 problems. Among other things, this fixes the Bison bug reported
13040 by Jan Hubicka when processing the Bash grammar; see:
13041 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
13042
13043 Use new @ escapes consistently. Represent brackets with @{ and @}
13044 rather than @<:@ and @:>@, since this works a bit better with dumb
13045 editors like vi. Represent @ with @@, since @ is now consistently
13046 an escape. Use @oline@ and @ofile@ rather than __oline__ and
13047 __ofile__, to avoid unexpected expansions. Similarly, use @output
13048 rather than #output.
13049
13050 * data/c.m4 (b4_copyright): Omit file name from comment, since
13051 the file name could contain "*/".
13052 (b4_synclines_flag): Don't quote the 2nd argument; it should already
13053 be quoted. All uses changed.
13054
13055 * data/glr.c: Use new @ escapes consistently.
13056 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
13057 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
13058 Remove, since they couldn't handle arbitrary characters in file
13059 names.
13060 * data/lalr1.cc: Likewise.
13061 * data/yacc.c: Likewise.
13062
13063 * src/files.c (output_infix): Remove; all uses removed.
13064 * src/files.h: Likewise.
13065
13066 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
13067 mishandled funny characters in file names, and anyway it isn't
13068 needed any more.
13069 * data/yacc.c: Likewise.
13070 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
13071
13072 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
13073 * data/yacc.c: Likewise.
13074
13075 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
13076 strings now.
13077 (muscle_init): Quote filename as a C string.
13078 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
13079 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
13080 * src/output.c (escaped_file_name_output): New function.
13081 (prepare_symbols): Quote tokens for M4.
13082 (prepare): Don't insert output_infix, output_prefix,
13083 output_parser_name, output_header_name; this is now down by scan-skel.
13084 Insert skeleton as a C string.
13085
13086 * src/output.c (user_actions_output, symbol_destructors_output,
13087 symbol_printers_output): Quote filenames for C and M4.
13088 * src/reader.c (prologue_augment, epilogue_set): Likewise.
13089
13090 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
13091 escapes other than \\ and \'; this simplifies the code.
13092 (<SC_STRING>): Likewise, for \\ and \".
13093 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
13094 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
13095 Use new escapes @{ and @} for [ and ].
13096
13097 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
13098 them with auto vars.
13099 Switch to new escape scheme, where @ is the escape character uniformly.
13100 Abort if a stray escape character is found. Avoid unbounded input
13101 buffer when parsing non-escaped text.
13102
13103 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
13104 __oline__, #output, $@, and @{ do not have unintended meanings.
13105
13106 2002-11-09 Paul Eggert <eggert@twinsun.com>
13107
13108 Fix the test failure due to GCC warnings described in
13109 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
13110 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
13111 evaluate to 0 if it's impossible for NINF to be in the respective
13112 table.
13113 (yygetLRActions, yyrecoverParseError): Use them.
13114
13115 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
13116 counted in the token inserted at end of file. Now takes
13117 location_t *, not location_t, so that the location can be
13118 adjusted. All uses changed.
13119
13120 * tests/regression.at (Invalid inputs): Adjust wording in
13121 diagnostic to match the new behavior.
13122
13123 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
13124 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
13125 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
13126 abort ();'. This reduces the runtime of the "Many lookaheads"
13127 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
13128 GCC 3.2.
13129
13130 2002-11-07 Paul Eggert <eggert@twinsun.com>
13131
13132 * src/parse-gram.y (CHARACTER): Remove unused token.
13133 All uses removed.
13134
13135 * src/scan-gram.l: Remove stack option. We no longer use the
13136 stack, since the stack was never deeper than 1; instead, use the
13137 new auto var c_context to record the stacked value.
13138
13139 Remove nounput option. At an unexpected end of file, we now unput
13140 the minimal input necessary to end cleanly; this simplifies the
13141 code.
13142
13143 Avoid unbounded token sizes where this is easy.
13144
13145 (unexpected_end_of_file): New function.
13146 Use it to systematize the error message on unexpected EOF.
13147 (last-string): Now auto, not static.
13148 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
13149 (scanner_last_string_free): Remove; not used.
13150 (percent_percent_count): Move decl to just before use.
13151 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
13152 not the (never otherwised-used) CHARACTER.
13153
13154 2002-11-07 Akim Demaille <akim@epita.fr>
13155
13156 Let yyerror always receive the msg as last argument, so that
13157 yyerror can be variadic.
13158
13159 * data/yacc.c (b4_yyerror_args): New.
13160 Use it when calling yyerror.
13161 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
13162 Use it when calling yyerror.
13163 * doc/bison.texinfo (Error Reporting): Adjust.
13164 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
13165 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
13166
13167 2002-11-06 Akim Demaille <akim@epita.fr>
13168
13169 #line should have quoted strings.
13170 Ideally, this should be done by m4_quotearg.
13171
13172 * src/scan-skel.l: Include quotearg.h.
13173 Quote __ofile__.
13174 * src/output.c (symbol_printers_output)
13175 (symbol_destructors_output): Quote the file name.
13176
13177 2002-11-06 Akim Demaille <akim@epita.fr>
13178
13179 * tests/regression.at (Invalid inputs): Adjust to the recent
13180 messages.
13181
13182 2002-11-06 Akim Demaille <akim@epita.fr>
13183
13184 Restore --no-lines.
13185 Reported by Jim Kent.
13186
13187 * data/c.m4 (b4_syncline): New.
13188 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
13189 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
13190 * src/output.c (user_actions_output): Likewise.
13191 (prepare): Define 'b4_synclines_flag'.
13192 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
13193
13194 2002-11-06 Akim Demaille <akim@epita.fr>
13195
13196 * src/main.c (main): Free `infile'.
13197 * src/scan-gram.l (handle_syncline): New.
13198 Recognize `#line'.
13199 * src/output.c (user_actions_output, symbol_destructors_output)
13200 (symbol_printers_output): Use the location's file name, not
13201 infile.
13202 * src/reader.c (prologue_augment, epilogue_set): Likewise.
13203
13204 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
13205
13206 * src/tables.c (matching_state): Don't allow states to match if
13207 either has GLR conflict entries.
13208
13209 2002-11-05 Paul Eggert <eggert@twinsun.com>
13210
13211 * src/scan-gram.l: Use more accurate diagnostics, e.g.
13212 "integer out of range" rather than "invalid value".
13213 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
13214 accordingly.
13215
13216 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
13217 Also, remove one static variable in the scanner.
13218
13219 * src/scan-gram.l (braces_level): Now auto, not static.
13220 Initialize to zero if the compiler is being picky.
13221 (INITIAL): Clear braces_level instead of incrementing it.
13222 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
13223 as POSIX 1003.1-2001 requires.
13224 * src/system.h (IF_LINT): New macro, taken from coreutils.
13225 * configure.ac: Define "lint" if --enable-gcc-warnings.
13226
13227 2002-11-05 Akim Demaille <akim@epita.fr>
13228
13229 * src/scan-gram.l: When it starts with `%', complain about the
13230 whole directive, not just that `invalid character: %'.
13231
13232 2002-11-04 Akim Demaille <akim@epita.fr>
13233
13234 * Makefile.maint: Update from Autoconf.
13235 (update, cvs-update, po-update, do-po-update): New.
13236
13237 2002-11-04 Akim Demaille <akim@epita.fr>
13238
13239 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
13240 and yyerror.
13241 Have yyerror `use' its arguments.
13242 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
13243 returns true when location & yacc & pure & parse-param.
13244 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
13245
13246 2002-11-04 Akim Demaille <akim@epita.fr>
13247
13248 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
13249 clashes.
13250 * src/scan-gram.l: Use [\'] instead of ['] to pacify
13251 font-lock-mode.
13252 Use complain_at.
13253 Use quote, not quote_n since LOCATION_PRINT no longer uses the
13254 slot 0.
13255
13256 2002-11-03 Paul Eggert <eggert@twinsun.com>
13257
13258 * src/reader.c (get_merge_function, grammar_current_rule_check):
13259 Use consistent diagnostics for reporting type name clashes.
13260 Quote the types with <>, for consistency with Yacc.
13261 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
13262
13263 2002-11-03 Akim Demaille <akim@epita.fr>
13264
13265 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
13266 New.
13267 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
13268 (b4_parse_param): Remove.
13269 Use b4_identification.
13270 Propagate b4_pure_args where needed to pass them to yyerror.
13271 * data/glr.m4 (b4_parse_param): Remove.
13272 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
13273 (b4_lpure_formals): New.
13274 Use b4_identification.
13275 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
13276 b4_user_formals and b4_user_args.
13277 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
13278 (yyreportAmbiguity): When using a pure parser, also need
13279 the location, and the parse-params.
13280 Adjust callers.
13281 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
13282 When using a pure parser, also need the parse-params.
13283 Adjust callers.
13284 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
13285 (%pure-parser + %parse-param) LALR and GLR parsers.
13286 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
13287 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
13288 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
13289 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
13290 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
13291 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
13292 * doc/bison.texinfo: Untabify the whole file.
13293 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
13294 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
13295 (Error Reporting): Adjust to these new directives.
13296 Document %error-verbose, deprecate YYERROR_VERBOSE.
13297
13298 2002-11-03 Akim Demaille <akim@epita.fr>
13299
13300 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
13301 AT_CHECK_CALC_GLR invocations to use % directives, instead of
13302 command line options.
13303 * tests/cxx-type.at: Formatting changes.
13304
13305 2002-11-03 Paul Eggert <eggert@twinsun.com>
13306
13307 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
13308 to count columns correctly, and to check for invalid inputs.
13309
13310 Use mbsnwidth to count columns correctly. Account for tabs, too.
13311 Include mbswidth.h.
13312 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
13313 (extend_location): New function.
13314 (YY_LINES): Remove.
13315
13316 Handle CRLF in C code rather than in Lex code.
13317 (YY_INPUT): New macro.
13318 (no_cr_read): New function.
13319
13320 Scan UCNs, even though we don't fully handle them yet.
13321 (convert_ucn_to_byte): New function.
13322
13323 Handle backslash-newline correctly in C code.
13324 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
13325 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
13326 all uses changed.
13327 (tag, splice): New EREs. Do not allow NUL or newline in tags.
13328 Use {splice} wherever C allows backslash-newline.
13329 YY_STEP after space, newline, vertical-tab.
13330 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
13331
13332 (letter, id): Don't assume ASCII; e.g., spell out a-z.
13333
13334 ({int}, handle_action_dollar, handle_action_at): Check for integer
13335 overflow.
13336
13337 (YY_STEP): Omit trailing semicolon, so that it's more like C.
13338
13339 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
13340 as well as \000. Check for UCHAR_MAX, not 255.
13341 Allow \x with an arbitrary positive number of digits, as in C.
13342 Check for overflow here.
13343 Allow \? and UCNs, for compatibility with C.
13344
13345 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
13346 with quote slot used by complain_at.
13347
13348 * tests/input.at: Add tests for backslash-newline, m4 quotes
13349 in symbols, long literals, and funny escapes in strings.
13350
13351 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
13352 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
13353 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
13354 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
13355 * m4/mbswidth.m4: New file, from GNU coreutils.
13356
13357 * doc/bison.texinfo (Grammar Outline): Document // comments.
13358 (Symbols): Document that trigraphs have no special meaning in Bison,
13359 nor is backslash-newline allowed.
13360 (Actions): Document that trigraphs have no special meaning.
13361
13362 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
13363 no longer used.
13364
13365 2002-11-02 Paul Eggert <eggert@twinsun.com>
13366
13367 * src/reader.c: Don't include quote.h; not needed.
13368 (get_merge_function): Reword warning to be consistent with
13369 type clash diagnostic in grammar_current_rule_check.
13370
13371 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
13372 bug in trigraph handling.
13373
13374 * src/output.c (prepare_symbols): When printing token names,
13375 escape "[" as "@<:@" and likewise for "]".
13376
13377 * src/system.h (errno): Remove declaration, as we are now
13378 assuming C89 or better, and C89 guarantees errno.
13379
13380 2002-10-30 Paul Eggert <eggert@twinsun.com>
13381
13382 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
13383 Check for close failures.
13384 * src/files.h (xfclose): Return void, not int, since it always
13385 returned zero.
13386 * src/files.c (xfclose): Likewise. Report I/O error if ferror
13387 indicates one.
13388 * src/output.c (output_skeleton): Use xfclose rather than fclose
13389 and ferror. xfclose now checks ferror.
13390
13391 * data/glr.c (YYLEFTMOST_STATE): Remove.
13392 (yyreportTree): Use a stack-based leftmost state. This avoids
13393 our continuing battles with bogus warnings about initializers.
13394
13395 2002-10-30 Akim Demaille <akim@epita.fr>
13396
13397 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
13398 #if.
13399
13400 2002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
13401
13402 * tests/glr-regr1.at: New test for reported regressions.
13403 * tests/testsuite.at: Add glr-regr1.at test.
13404 * tests/Makefile.am: Add glr-regr1.at test.
13405
13406 2002-10-24 Paul Eggert <eggert@twinsun.com>
13407
13408 Version 1.75a.
13409
13410 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
13411 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
13412 we use malloc. Don't assume 'A' through 'Z' are contiguous.
13413 Don't assume strdup exists; POSIX says its an XSI extension.
13414 Check for buffer overflow on input.
13415
13416 2002-10-24 Akim Demaille <akim@epita.fr>
13417
13418 * src/output.c (output_skeleton): Don't disable M4sugar comments
13419 too soon: it results in comments being expanded.
13420 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
13421 first output.
13422
13423 2002-10-24 Akim Demaille <akim@epita.fr>
13424
13425 * data/yacc.c (m4_int_type): New.
13426 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
13427 char' as only yacc.c wants K&R portability.
13428 * data/glr.c (yysigned_char): Remove.
13429 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
13430 Reported by Quoc Peyrot.
13431
13432 2002-10-23 Paul Eggert <eggert@twinsun.com>
13433
13434 * src/main.c (main): With --trace=time, report times even if a
13435 non-fatal error occurs. Formerly, the times were reported in some
13436 such cases but not in others.
13437 * src/reader.c (reader): Just return if a complaint has been issued,
13438 instead of exiting, so that 'main' can report times.
13439
13440 2002-10-22 Akim Demaille <akim@epita.fr>
13441
13442 * src/system.h: Include sys/types.
13443 Reported by Bert Deknuydt.
13444
13445 2002-10-23 Paul Eggert <eggert@twinsun.com>
13446
13447 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
13448 Suggested by Art Haas.
13449
13450 2002-10-22 Paul Eggert <eggert@twinsun.com>
13451
13452 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
13453 decl; not needed any more.
13454 * src/main.c (main): Use return to exit, undoing yesterday's change.
13455 The last OS that we could find where this wouldn't work is
13456 SunOS 3.5, and that's too old to worry about now.
13457
13458 * data/glr.c (struct yyltype): Define members even when not
13459 doing locations. This is more consistent with yacc.c, and it
13460 works around the following bug reports:
13461 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
13462 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
13463
13464 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
13465 @acronym consistently. Standardize on "Yacc" instead of "YACC",
13466 "Algol" instead of "ALGOL". Give a bit more history about BNF.
13467
13468 2002-10-22 Akim Demaille <akim@epita.fr>
13469
13470 * data/README: New.
13471
13472 2002-10-21 Paul Eggert <eggert@twinsun.com>
13473
13474 Be consistent about 'bool'; the old code used an enum in one
13475 module and an int in another, and this violates the C standard.
13476 * m4/stdbool.m4: New file, from coreutils 4.5.3.
13477 * configure.ac (AC_HEADER_STDBOOL): Add.
13478 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
13479 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
13480 * src/symtab.c (hash_compare_symbol_t): Likewise.
13481 * src/system.h (bool, false, true): Use a definition consistent
13482 with ../lib/hash.c. All uses changed.
13483
13484 * src/complain.c (warning_issued): Renamed from warn_message_count,
13485 so that we needn't worry about integer overflow (!).
13486 Now of type bool. All uses changed.
13487 (complaint_issued): Renamed from complain_message_count; likewise.
13488
13489 * src/main.c (main): Use exit to exit with failure.
13490
13491 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
13492 rather than 1 and 0.
13493 * src/main.c (main): Likewise.
13494 * src/getargs.c (getargs): Likewise.
13495 * src/reader.c (reader): Likewise.
13496
13497 * src/getarg.c (getargs): Remove duplicate code for
13498 "Try `bison --help'".
13499
13500 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
13501 What was that "2" for?
13502
13503 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
13504 * src/getargs.c (usage): Likewise.
13505
13506 * src/getargs.c (getargs): When there are too few operands, report
13507 the last one. When there are too many, report the first extra
13508 one. This is how diffutils does it.
13509
13510 2002-10-20 Paul Eggert <eggert@twinsun.com>
13511
13512 Remove K&R vestiges.
13513 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
13514 * src/complain.c (VA_START): Remove. Assume prototypes.
13515 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
13516 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
13517 fatal): Assume prototypes.
13518 * src/complain.h: Assume prototypes.
13519 * src/system.h (PARAMS): Remove.
13520 Include <limits.h> unconditionally, since it's guaranteeed even
13521 for a freestanding C89 compiler.
13522 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
13523 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
13524
13525 2002-10-20 Akim Demaille <akim@epita.fr>
13526
13527 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
13528 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
13529 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
13530 (yyresolveStates, yyresolveAction, yyresolveStack)
13531 (yyprocessOneStack): Use them.
13532 (yy_reduce_print): New.
13533 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
13534
13535 2002-10-20 Akim Demaille <akim@epita.fr>
13536
13537 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
13538 arguments and output `void'.
13539 (b4_c_function): Rename as...
13540 (b4_c_function_def): this.
13541 (b4_c_function_decl, b4_c_ansi_function_def)
13542 (b4_c_ansi_function_decl): New.
13543 Change the interpretation of the arguments: before `int, foo', now
13544 `int foo, foo'.
13545 * data/yacc.c (yyparse): Prototype and define thanks to these.
13546 Adjust b4_c_function_def uses.
13547 * data/glr.c (yyparse): Likewise, but ANSI only.
13548
13549 2002-10-20 Akim Demaille <akim@epita.fr>
13550
13551 * src/output.c (prepare): Move the definition of `tokens_number',
13552 `nterms_number', `undef_token_number', `user_token_number_max'
13553 to...
13554 (prepare_tokens): Here.
13555 (prepare_tokens): Rename as...
13556 (prepare_symbols): this.
13557 (prepare): Move the definition of `rules_number' to...
13558 (prepare_rules): here.
13559 (prepare): Move the definition of `last', `final_state_number',
13560 `states_number' to...
13561 (prepare_states): here.
13562 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
13563
13564 2002-10-20 Akim Demaille <akim@epita.fr>
13565
13566 * src/tables.h, src/tables.c, src/output.c: Comment changes.
13567
13568 2002-10-20 Akim Demaille <akim@epita.fr>
13569
13570 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
13571 * data/c.m4: here.
13572
13573 2002-10-20 Akim Demaille <akim@epita.fr>
13574
13575 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
13576 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
13577 `pair'.
13578 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
13579 `name' to...
13580 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
13581 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
13582 These.
13583
13584 2002-10-19 Paul Eggert <eggert@twinsun.com>
13585
13586 Do not create a temporary file, as that involves security and
13587 cleanup headaches. Instead, use a pair of pipes.
13588 Derived from a suggestion by Florian Krohm.
13589 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
13590 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
13591 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
13592 (BISON_PREREQ_SUBPIPE): Add.
13593 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
13594 Add subpipe.h, subpipe.c.
13595 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
13596 * po/POTFILES.in: Add lib/subpipe.c.
13597 * src/output.c: Include "subpipe.h".
13598 (m4_invoke): Remove decl.
13599 (scan_skel): New decl.
13600 (output_skeleton): Use pipe rather than temporary file for m4 input.
13601 Check that m4sugar.m4 is readable, to avoid deadlock.
13602 Check for pipe I/O error.
13603 * src/scan-skel.l (readpipe): Remove decl.
13604 (scan_skel): New function, to be used in place of m4_invoke.
13605 Read from stream rather than file.
13606
13607 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
13608 float, as this generates a warning on Solaris 8 + GCC 3.2 with
13609 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
13610 this generates a more-accurate value anyway.
13611
13612 * lib/timevar.c (timervar_accumulate): Rename locals to
13613 avoid confusion with similarly-named more-global.
13614 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
13615
13616 * src/output.c (prepare): Use xstrdup to convert char const *
13617 to char *, to avoid GCC warning.
13618
13619 2002-10-19 Akim Demaille <akim@epita.fr>
13620
13621 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
13622 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
13623 Use them to have `calc.y' ready for %pure-parser.
13624 * data/yacc.c (YYLEX): Pass a yylex return type to
13625 b4_c_function_call.
13626
13627 2002-10-19 Akim Demaille <akim@epita.fr>
13628
13629 Prototype support of %lex-param and %parse-param.
13630
13631 * src/parse-gram.y: Add the definition of the %lex-param and
13632 %parse-param tokens, plus their rules.
13633 Drop the `_' version of %glr-parser.
13634 Add the "," token.
13635 * src/scan-gram.l (INITIAL): Scan them.
13636 * src/muscle_tab.c: Comment changes.
13637 (muscle_insert, muscle_find): Rename `pair' as `probe'.
13638 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
13639 (muscle_entry_s): The `value' member is no longer const.
13640 Adjust all dependencies.
13641 * src/muscle_tab.c (muscle_init): Adjust: use
13642 MUSCLE_INSERT_STRING.
13643 Initialize the obstack earlier.
13644 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
13645 (muscle_pair_list_grow): New.
13646 * data/c.m4 (b4_c_function_call, b4_c_args): New.
13647 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
13648 * tests/calc.at: Use %locations, not --locations.
13649 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
13650
13651 2002-10-19 Akim Demaille <akim@epita.fr>
13652
13653 * src/getargs.c (usage): Take status as argument and exit
13654 accordingly.
13655 Report the traditional `Try ... --help' message when status != 0.
13656 (usage, version): Don't take a FILE * as arg, it is pointless.
13657 (getargs): When there is an incorrect number of arguments, make it
13658 an error, and report it GNUlically thanks to `usage ()'.
13659
13660 2002-10-18 Paul Eggert <eggert@twinsun.com>
13661
13662 * data/glr.c (yyreportParseError): Don't assume that sprintf
13663 yields the length of the printed string, as this is not true
13664 on SunOS 4.1.4. Reported by Peter Klein.
13665
13666 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
13667 * tests/conflicts.at (%nonassoc and eof): Likewise.
13668 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
13669
13670 2002-10-17 Akim Demaille <akim@epita.fr>
13671
13672 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
13673 * src/getargs.c (trace_types, trace_args): Adjust.
13674 * src/reader.c (grammar_current_rule_prec_set)
13675 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
13676 Standardize error messages.
13677 And s/@prec/%prec/!
13678 (reader): Use trace_flag to enable scanner/parser debugging,
13679 instead of an adhoc scheme.
13680 * src/scan-gram.l: Remove trailing debugging code.
13681
13682 2002-10-16 Paul Eggert <eggert@twinsun.com>
13683
13684 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
13685 MUSCLE_TAB_H.
13686
13687 * NEWS: Officially drop support for building Bison with K&R C,
13688 since it didn't work anyway and it's not worth worrying about.
13689 * Makefile.maint (wget_files): Remove ansi2knr.c.
13690 (ansi2knr.c-url_prefix): Remove.
13691 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
13692 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
13693 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
13694
13695 2002-10-15 Paul Eggert <eggert@twinsun.com>
13696
13697 Stop using the "enum_" trick for K&R-style function definitions;
13698 it confused me, and I was the author! Instead, assume that people
13699 who want to use K&R C compilers (when using these modules in GCC,
13700 perhaps?) will run ansi2knr.
13701
13702 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
13703 All uses of "enum_" changed to "enum ".
13704 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
13705 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
13706
13707 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
13708 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
13709 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
13710 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
13711 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
13712 abitset_not, abitset_ones, abitset_or, abitset_or_and,
13713 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
13714 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
13715 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
13716 Use function prototypes; this removes the need for declaring
13717 static functions simply to provide their prototypes.
13718 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
13719 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
13720 bitset_count_, bitset_create, bitset_dump, bitset_first,
13721 bitset_free, bitset_init, bitset_last, bitset_next,
13722 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
13723 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
13724 bitset_print, bitset_release_memory, bitset_toggle_,
13725 bitset_type_choose, bitset_type_get, bitset_type_name_get,
13726 debug_bitset): Likewise.
13727 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
13728 * lib/bitset_stats.c (bitset_log_histogram_print,
13729 bitset_percent_histogram_print, bitset_stats_and,
13730 bitset_stats_and_cmp, bitset_stats_and_or,
13731 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
13732 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
13733 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
13734 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
13735 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
13736 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
13737 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
13738 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
13739 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
13740 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
13741 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
13742 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
13743 bitset_stats_zero): Likewise.
13744 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
13745 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
13746 bitsetv_dump, debug_bitsetv): Likewise.
13747 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
13748 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
13749 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
13750 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
13751 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
13752 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
13753 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
13754 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
13755 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
13756 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
13757 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
13758 Likewise.
13759 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
13760 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
13761 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
13762 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
13763 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
13764 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
13765 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
13766 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
13767 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
13768 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
13769 lbitset_xor_cmp, lbitset_zero): Likewise.
13770
13771 2002-10-14 Akim Demaille <akim@epita.fr>
13772
13773 Version 1.75.
13774
13775 2002-10-14 Akim Demaille <akim@epita.fr>
13776
13777 * tests/Makefile.am (maintainer-check-posix): New.
13778
13779 2002-10-14 Akim Demaille <akim@epita.fr>
13780
13781 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
13782 member.
13783
13784 2002-10-14 Akim Demaille <akim@epita.fr>
13785
13786 * src/tables.c (table_ninf_remap): base -> tab.
13787 Reported by Matt Rosing.
13788
13789 2002-10-14 Paul Eggert <eggert@twinsun.com>
13790
13791 * tests/action.at, tests/calc.at, tests/conflicts.at,
13792 tests/cxx-type.at, tests/headers.at, tests/input.at,
13793 tests/regression.at, tests/synclines.at, tests/torture.at:
13794 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
13795 so that the tests still work even if POSIXLY_CORRECT is set.
13796 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
13797
13798 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
13799 for portability to K&R hosts. Fix typo: signed char is guaranteed
13800 only to 127, not to 128.
13801 * data/glr.c (yysigned_char): New type.
13802 * data/yacc.c (yysigned_char): Likewise.
13803 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
13804
13805 2002-10-13 Paul Eggert <eggert@twinsun.com>
13806
13807 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
13808 true due to limited range of data type" warning from GCC.
13809
13810 * data/c.m4 (b4_token_defines): Protect against double-inclusion
13811 by wrapping enum yytokentype's definition inside #ifndef
13812 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
13813
13814 2002-10-13 Akim Demaille <akim@epita.fr>
13815
13816 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
13817 Un yy- yyrhs to avoid the name clash with the global YYRHS.
13818
13819 2002-10-13 Akim Demaille <akim@epita.fr>
13820
13821 * Makefile.maint: Update from Autoconf 2.54.
13822 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
13823
13824 2002-10-13 Akim Demaille <akim@epita.fr>
13825
13826 * src/print.c (print_state): Separate the list of solved conflicts
13827 from the other items.
13828 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
13829
13830 2002-10-13 Akim Demaille <akim@epita.fr>
13831
13832 Let nondeterministic skeletons be usable with deterministic
13833 tables.
13834
13835 With the patch, GAWK compiled by GCC without -O2 passes its test
13836 suite using a GLR parser driven by LALR tables. It fails with -O2
13837 because `struct stat' gives two different answers on my machine:
13838 88 (definition of an auto var) and later 96 (memset on this var).
13839 Hence the stack is badly corrumpted. The headers inclusion is to
13840 blame: if I move the awk.h inclusion before GLR's system header
13841 inclusion, the two struct stat have the same size.
13842
13843 * src/tables.c (pack_table): Always create conflict_table.
13844 (token_actions): Always create conflict_list.
13845 * data/glr.c (YYFLAG): Remove, unused.
13846
13847 2002-10-13 Akim Demaille <akim@epita.fr>
13848
13849 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
13850 (O0FLAGS): New.
13851 (VALGRIND, GXX): New.
13852 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
13853 * tests/bison.in: Run $PREBISON a pre-command.
13854 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
13855 (maintainer-check-g++): New.
13856 * Makefile.am (maintainer-check): New.
13857
13858 2002-10-13 Akim Demaille <akim@epita.fr>
13859
13860 * data/glr.c: Formatting changes.
13861 Tweak some trace messages to match yacc.c's.
13862
13863 2002-10-13 Akim Demaille <akim@epita.fr>
13864
13865 GLR parsers sometimes raise parse errors instead of performing the
13866 default reduction.
13867 Reported by Charles-Henry de Boysson.
13868
13869 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
13870 check the length of the traces when %glr.
13871 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
13872 GLR's traces.
13873 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
13874 Test GLR parsers.
13875 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
13876 (yyltype): Remove the yy prefix from the member names.
13877 (yytable): Complete its comment.
13878 (yygetLRActions): Map error action number from YYTABLE from
13879 YYTABLE_NINF to 0.
13880 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
13881 (which was a bug: it should have been YYTABEL_NINF, and yet it was
13882 not satisfying as we could compare an YYACTION computed from
13883 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
13884 only value for error actions.
13885 (yyreportParseError): In verbose parse error messages, don't issue
13886 `error' in the list of expected tokens.
13887 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
13888 next action to perform to match glr.c's decoding.
13889 (yytable): Complete its comment.
13890
13891 2002-10-13 Paul Eggert <eggert@twinsun.com>
13892
13893 Fix problem reported by Henrik Grubbstroem in
13894 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
13895 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
13896 because the Bison parser reads the second action before reducing
13897 the first one.
13898 * src/scan-gram.l (rule_length): New static var.
13899 Use it to keep track of the rule length in the scanner, since
13900 we can't expect the parser to be in lock-step sync with the scanner.
13901 (handle_action_dollar, handle_action_at): Use this var.
13902 * tests/actions.at (Exotic Dollars): Test for the problem.
13903
13904 2002-10-12 Paul Eggert <eggert@twinsun.com>
13905
13906 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
13907 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
13908 Include <sys/time.h> when checking for clock_t and struct tms.
13909 Use same include order as source.
13910 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
13911 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
13912
13913 * lib/timevar.c: Update copyright date and clarify comments.
13914 (get_time) [IN_GCC]: Keep the GCC version for reference.
13915
13916 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
13917 GCC version as of today, then merge Bison's changes.
13918 Change "GCC" to "Bison" in copyright notice. timevar.def's
13919 author is Akim, so change that too.
13920
13921 * src/reader.c (grammar_current_rule_check):
13922 Don't worry about the default action if $$ is untyped.
13923 Prevents bogus warnings reported by Jim Gifford in
13924 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
13925
13926 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
13927 * data/glr.c, data/lalr1.cc, data/yacc.c:
13928 Output token definitions before the first part of user declarations.
13929 Fixes compatibility problem reported by Jim Gifford for kbd in
13930 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
13931
13932 2002-10-11 Paul Eggert <eggert@twinsun.com>
13933
13934 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
13935 (yyparse): here. This undoes some of the 2002-07-25 change.
13936 Compatibility problem reported by Ralf S. Engelschall with
13937 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
13938
13939 2002-10-11 Akim Demaille <akim@epita.fr>
13940
13941 * tests/regression.at Characters Escapes): New.
13942 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
13943 characters.
13944 Reported by Jan Nieuwenhuizen.
13945
13946 2002-10-11 Akim Demaille <akim@epita.fr>
13947
13948 * po/id.po: New.
13949
13950 2002-10-10 Paul Eggert <eggert@twinsun.com>
13951
13952 Portability fixes for bitsets; this also avoids several GCC
13953 warnings.
13954
13955 * lib/abitset.c: Include <stddef.h>, for offsetof.
13956 * lib/lbitset.c: Likewise.
13957
13958 * lib/abitset.c (abitset_bytes): Return a size that is aligned
13959 properly for vectors of objects. Do not assume that adding a
13960 header size to a multiple of a word size yields a value that is
13961 properly aligned for the whole union.
13962 * lib/bitsetv.c (bitsetv_alloc): Likewise.
13963
13964 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
13965 unique names for structures.
13966 * lib/ebitset.c (ebitset_bytes): Likewise.
13967 * lib/lbitset.c (lbitset_bytes): Likewise.
13968
13969 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
13970 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
13971 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
13972 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
13973 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
13974 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
13975 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
13976 to improve the type-checking that GCC can do.
13977 * lib/bitset.c (bitset_op4_cmp): Likewise.
13978 * lib/bitset_stats.c (bitset_stats_count,
13979 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
13980 bitset_stats_copy, bitset_stats_disjoint_p,
13981 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
13982 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
13983 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
13984 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
13985 bitset_stats_and_or_cmp, bitset_stats_andn_or,
13986 bitset_stats_andn_or_cmp, bitset_stats_or_and,
13987 bitset_stats_or_and_cmp): Likewise.
13988 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
13989 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
13990 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
13991 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
13992
13993 * lib/abitset.h: Include bitset.h, not bbitset.h.
13994 * lib/ebitset.h: Likewise.
13995 * lib/lbitset.h: Likewise.
13996
13997 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
13998 All instances of parameters of type enum bitset_opts are now of
13999 type enum_bitset_opts, to conform to the C Standard, and similarly
14000 for enum_bitset_type.
14001 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
14002 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
14003
14004 Do not use "struct bitset_struct" to mean different things in
14005 different modules. Not only is this confusing, it violates
14006 the C Standard, which requires that structure types in different
14007 modules must be compatible if one is to be passed to the other.
14008 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
14009 All instances of "struct bitset_struct *" replaced with "bitset".
14010 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
14011 (union bitset_union, struct abitset_struct, struct ebitset_struct,
14012 struct lbitset_struct, struct bitset_stats_struct): New types.
14013 All uses of struct bitset_struct changed to union bitset_union,
14014 etc.
14015 * lib/abitset.c (struct abitset_struct, abitset,
14016 struct bitset_struct): Remove.
14017 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
14018 struct bitset_struct): Remove.
14019 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
14020 bitset_struct): Remove.
14021 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
14022 Likewise.
14023
14024 Do not call a function of type T using a call that assumes the
14025 function is of a different type U. Standard C requires that a
14026 function must be called with a type that is compatible with its
14027 definition.
14028 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
14029 New decls.
14030 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
14031 New functions.
14032 * lib/ebitset.c (PFV): Remove.
14033 * lib/lbitset.c (PFV): Likewise.
14034 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
14035 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
14036 decls.
14037 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
14038 (ebitset_vtable): Use them.
14039 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
14040 lbitset_xor): New functions.
14041 (lbitset_vtable): Use them.
14042
14043 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
14044 Declare.
14045
14046 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
14047 GCC warning.
14048 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
14049 Use offsetof, for simplicity.
14050
14051 2002-10-06 Paul Eggert <eggert@twinsun.com>
14052
14053 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
14054 the same width as int. This reapplies a hunk of the 2002-08-12 patch
14055 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
14056 which was inadvertently undone by the 2002-09-30 patch.
14057 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
14058 the same width as int.
14059
14060 2002-10-04 Paul Eggert <eggert@twinsun.com>
14061
14062 Version 1.50.
14063
14064 * configure.ac (AC_INIT), NEWS: Increment version number.
14065
14066 * doc/bison.texinfo: Minor spelling, grammar, and white space
14067 fixes.
14068 (Symbols): Mention that any negative value returned from yylex
14069 signifies end-of-input. Warn about negative chars. Mention
14070 the portable Standard C character set.
14071
14072 The GNU coding standard says CFLAGS and YFLAGS are reserved
14073 for the installer to set.
14074 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
14075 * src/Makefile.am (AM_CFLAGS): Likewise.
14076 (AM_YFLAGS): Renamed from YFLAGS.
14077
14078 Fix some MAX and MIN problems.
14079 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
14080 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
14081 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
14082 * src/reader.c (reader): Use it.
14083
14084 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
14085 POSIX 1003.1-2001 has removed fgrep.
14086
14087 2002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14088
14089 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
14090 interpreted as signed.
14091 * lib/ebitset.c (ebitset_list): Fix bug.
14092
14093 2002-10-01 Paul Eggert <eggert@twinsun.com>
14094
14095 More fixes for 64-bit hosts and large bitsets.
14096
14097 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
14098 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
14099 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
14100 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
14101 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
14102 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
14103 bitset_count_): Likewise.
14104 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
14105 bitset_first, bitset_last): Likewise.
14106 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
14107 bitset_stats_list_reverse, bitset_stats_size,
14108 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
14109 Likewise.
14110 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
14111 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
14112 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
14113 bitsetv_reflexive_transitive_closure): Likewise.
14114 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
14115 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
14116 Likewise.
14117 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
14118 Likewise.
14119
14120 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
14121 Use size_t, not unsigned int, to count bytes.
14122 * lib/abitset.h (abitset_bytes): Likewise.
14123 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
14124 Likewise.
14125 * lib/bitset.h (bitset_bytes): Likewise.
14126 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
14127 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
14128 * lib/bitsetv.c (bitsetv_alloc): Likewise.
14129 * lib/ebitset.c (ebitset_bytes): Likewise.
14130 * lib/ebitset.h (ebitset_bytes): Likewise.
14131 * lib/lbitset.c (lbitset_bytes): Likewise.
14132 * lib/lbitset.h (lbitset_bytes): Likewise.
14133
14134 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
14135 abitset_subset_p, abitset_disjoint_p, abitset_and,
14136 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
14137 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
14138 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
14139 abitset_or_and, abitset_or_and_cmp):
14140 Use bitset_windex instead of unsigned int.
14141 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
14142 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
14143 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
14144 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
14145 Likewise.
14146 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
14147
14148 * lib/bitset.c (bitset_print):
14149 Use proper printf formats for widths of integer types.
14150 * lib/bitset_stats.c (bitset_percent_histogram_print,
14151 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
14152 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
14153 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
14154 * lib/lbitset.c (lbitset_bytes): Likewise.
14155
14156 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
14157 BITSET_SIZE_MAX): New macros.
14158 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
14159 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
14160 to BITSET_WINDEX_MAX.
14161
14162 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
14163 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
14164 since we now return the bitset_bindex type (not int).
14165
14166 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
14167 when computing sizes.
14168 * lib/ebitset.c (ebitset_elts_grow): Likewise.
14169
14170 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
14171 and avoid cast to unsigned.
14172
14173 2002-09-30 Akim Demaille <akim@epita.fr>
14174
14175 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
14176 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
14177 Updates from Michael Hayes.
14178
14179 2002-09-30 Art Haas <ahaas@neosoft.com>
14180
14181 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
14182 invocations.
14183 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
14184 defined.
14185
14186 2002-09-27 Akim Demaille <akim@epita.fr>
14187
14188 Version 1.49c.
14189
14190 2002-09-27 Akim Demaille <akim@epita.fr>
14191
14192 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
14193 (Because of AC_LIBSOURCE).
14194
14195 2002-09-27 Akim Demaille <akim@epita.fr>
14196
14197 Playing with Autoscan.
14198
14199 * configure.ac: Remove the old LIBOBJ tweaks.
14200 (AC_REPLACE_FUNCS): Add strrchr and strtol.
14201 * lib/strrchr.c: New.
14202 * lib/strtol.c: New, from the Coreutils 4.5.1.
14203
14204 2002-09-27 Akim Demaille <akim@epita.fr>
14205
14206 Playing with Autoscan.
14207
14208 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
14209 * lib/Makefile.am (libbison_a_SOURCES): No longer include
14210 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
14211 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
14212 Coreutils 4.5.1.
14213
14214 2002-09-24 Akim Demaille <akim@epita.fr>
14215
14216 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
14217 (Frequently Asked Questions, Parser Stack Overflow): New.
14218
14219 2002-09-13 Akim Demaille <akim@epita.fr>
14220
14221 Playing with autoscan.
14222
14223 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
14224 * src/files.c (skeleton_find): Remove, unused.
14225 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
14226 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
14227
14228 2002-09-13 Akim Demaille <akim@epita.fr>
14229
14230 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
14231 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
14232
14233 2002-09-13 Akim Demaille <akim@epita.fr>
14234
14235 * configure.ac: Require 2.54.
14236 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
14237 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
14238 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
14239 Remove, provided by Autoconf macros.
14240
14241 2002-09-12 Akim Demaille <akim@epita.fr>
14242
14243 * m4/prereq.m4: Update, from Coreutils 4.5.1.
14244
14245 2002-09-12 Akim Demaille <akim@epita.fr>
14246
14247 * m4/prereq.m4: Update, from Fileutils 4.1.5.
14248 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
14249 Reported by Martin Mokrejs.
14250
14251 2002-09-10 Akim Demaille <akim@epita.fr>
14252
14253 * src/parse-gram.y: Associate a human readable string to each
14254 token type.
14255 * tests/regression.at (Invalid inputs): Adjust.
14256
14257 2002-09-10 Gary V. Vaughan <gary@gnu.org>
14258
14259 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
14260 with an Autoconf-2.5x style configure.ac.
14261
14262 2002-09-06 Paul Eggert <eggert@twinsun.com>
14263
14264 * doc/bison.texinfo (Conditions): Make explicit that the GPL
14265 exception applies only to yacc.c. This is a modification of a
14266 patch originally suggested by Akim Demaille.
14267
14268 2002-09-06 Akim Demaille <akim@epita.fr>
14269
14270 * data/c.m4 (b4_copyright): Move the GPL exception comment from
14271 here to...
14272 * data/yacc.c: here.
14273
14274 * data/lalr1.cc (struct yyltype): Don't define it, since we use
14275 LocationType.
14276 (b4_ltype): Default to yy::Location from location.hh.
14277
14278 2002-09-04 Jim Meyering <jim@meyering.net>
14279
14280 * data/yacc.c: Guard the declaration of yytoknum also with
14281 `#ifdef YYPRINT', so it is declared only when used.
14282
14283 2002-09-04 Akim Demaille <akim@epita.fr>
14284
14285 * configure.in: Rename as...
14286 * configure.ac: this.
14287 Bump to 1.49c.
14288
14289 2002-09-04 Akim Demaille <akim@epita.fr>
14290
14291 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
14292 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
14293 translate maintainer only messages.
14294
14295 2002-08-12 Paul Eggert <eggert@twinsun.com>
14296
14297 Version 1.49b.
14298
14299 * Makefile.am (SUBDIRS): Remove intl.
14300 (DISTCLEANFILES): Remove.
14301 * NEWS: Mention that GNU M4 is now required. Clarify what is
14302 meant by "larger grammars". Mention the pt_BR translation.
14303 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
14304 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
14305 Bump version from 0.11.2 to 0.11.5.
14306 (BISON_PREREQ_STAGE): Remove.
14307 (AM_GNU_GETTEXT): Use external gettext.
14308 (AC_OUTPUT): Remove intl/Makefile.
14309
14310 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
14311
14312 * data/glr.c: Include string.h, for strlen.
14313 (yyreportParseError): Use size_t for yysize.
14314 (yy_yypstack): No longer nested inside yypstates, as nested
14315 functions are not portable. Do not assume size_t is the
14316 same width as int.
14317 (yypstates): Do not assume that ptrdiff_t is the same width
14318 as int, and similarly for yyposn and YYINDEX.
14319
14320 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
14321
14322 * lib/Makefile.am (INCLUDES): Do not include from the intl
14323 directory, which has been removed.
14324 * src/Makefile.am (INCLUDES): Likewise.
14325
14326 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
14327 (bitsets_sources, additional_bitsets_sources, timevars_sources):
14328 New vars.
14329
14330 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
14331 * tests/Makefile.am (EXTRA_DIST): Likewise.
14332
14333 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
14334 Do not assume that bitset_windex is the same width as unsigned.
14335
14336 * lib/abitset.c (abitset_unused_clear): Do not assume that
14337 bitset_word is the same width as int.
14338 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
14339 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
14340 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
14341 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
14342 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
14343
14344 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
14345 portability to one's complement hosts!).
14346 * lib/ebitset.c (ebitset_op1): Likewise.
14347 * lib/lbitset.c (lbitset_op1): Likewise.
14348
14349 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
14350 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
14351 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
14352 Sync with fileutils.
14353 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
14354 lib/gettext.h: Sync with diffutils.
14355
14356 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
14357 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
14358
14359 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
14360 PROTOTYPES to check for prototypes, and "defined __STDC__" to
14361 check for void *.
14362
14363 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
14364 size_t; the old version tried to do this but casted improperly.
14365 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
14366 (bitset_test): Now returns int, not unsigned long.
14367
14368 * lib/bitset_stats.c: Include "gettext.h".
14369 (_): New macro.
14370 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
14371 name locals "index", as it generates unnecessary warnings on some
14372 hosts that have an "index" function.
14373
14374 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
14375 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
14376 they need translation.
14377 * src/LR0.c (state_list_append, new_itemsets, get_state,
14378 append_states, generate_states): Likewise.
14379 * src/assoc.c (assoc_to_string): Likewise.
14380 * src/closure.c (print_closure, set_firsts, closure): Likewise.
14381 * src/gram.c (grammar_dump): Likewise.
14382 * src/injections.c (injections_compute): Likewise.
14383 * src/lalr.c (lookaheads_print): Likewise.
14384 * src/relation.c (relation_transpose): Likewise.
14385 * src/scan-gram.l: Likewise.
14386 * src/tables.c (table_grow, pack_vector): Likewise.
14387
14388 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
14389 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
14390 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
14391 * m4/mbstate_t.m4: Sync with fileutils.
14392 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
14393
14394 * po/LINGUAS: Add pt_BR.
14395 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
14396 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
14397 lib/timevar.c.
14398 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
14399 manual recommends.
14400 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
14401
14402 * src/complain.c (strerror_r): Remove decl; not needed.
14403 (strerror): Use same pattern as ../lib/error.c.
14404
14405 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
14406
14407 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
14408
14409 * src/main.c (main): Cast result of bindtextdomain and textdomain
14410 to void, to avoid a GCC warning when --disable-nls is in effect.
14411
14412 * src/scan-gram.l: Use strings rather than escapes when possible,
14413 to minimize the number of warnings from xgettext.
14414 (handle_action_dollar, handle_action_at): Don't use isdigit,
14415 as it mishandles negative chars and it may not work as expected
14416 outside the C locale.
14417
14418 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
14419 this is a GCC extension and is not portable to other compilers.
14420
14421 * src/system.h (alloca): Use same pattern as ../lib/error.c.
14422 Do not include <ctype.h>; no longer needed.
14423 Do not include <malloc.h>; no longer needed (and generates
14424 warnings on OpenBSD 3.0).
14425
14426 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
14427 it's not portable.
14428
14429 * tests/regression.at: Do not use 'cc -c input.c -o input';
14430 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
14431
14432 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
14433 exit status as failure, not just exit status 1. Sun C exits
14434 with status 2 sometimes.
14435
14436 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
14437 Use it for the two large tests.
14438
14439 2002-08-02 Akim Demaille <akim@epita.fr>
14440
14441 * src/conflicts.c (conflicts_output): Don't output rules never
14442 reduced here, since anyway that computation doesn't work.
14443 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
14444 (rule_useless_p, rule_never_reduced_p): New.
14445 (grammar_rules_partial_print): Use a filter instead of a range.
14446 Display the title only if needed.
14447 (grammar_rules_print): Adjust.
14448 (grammar_rules_never_reduced_report): New.
14449 * src/tables.c (action_row): Move the computation of rules never
14450 reduced to...
14451 (token_actions): here.
14452 * src/main.c (main): Make the parser before making the report, so
14453 that rules never reduced are computed.
14454 Call grammar_rules_never_reduced_report.
14455 * src/print.c (print_results): Report rules never reduced.
14456 * tests/conflicts.at, tests/reduce.at: Adjust.
14457
14458 2002-08-01 Akim Demaille <akim@epita.fr>
14459
14460 Instead of attaching lookaheads and duplicating the rules being
14461 reduced by a state, attach the lookaheads to the reductions.
14462
14463 * src/state.h (state_t): Remove the `lookaheads',
14464 `lookaheads_rule' member.
14465 (reductions_t): Add a `lookaheads' member.
14466 Use a regular array for the `rules'.
14467 * src/state.c (reductions_new): Initialize the lookaheads member
14468 to 0.
14469 (state_rule_lookaheads_print): Adjust.
14470 * src/state.h, src/state.c (state_reductions_find): New.
14471 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
14472 (count_rr_conflicts): Adjust.
14473 * src/lalr.c (LArule): Remove.
14474 (add_lookback_edge): Adjust.
14475 (state_lookaheads_count): New.
14476 (states_lookaheads_initialize): Merge into...
14477 (initialize_LA): this.
14478 (lalr_free): Adjust.
14479 * src/main.c (main): Don't free nullable and derives too early: it
14480 is used by --verbose.
14481 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
14482
14483 2002-08-01 Akim Demaille <akim@epita.fr>
14484
14485 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
14486 `rule_number_t**'.
14487 (set_derives, free_derives): Rename as...
14488 (derives_compute, derives_free): this.
14489 Adjust all dependencies.
14490 * src/nullable.c (set_nullable, free_nullable): Rename as...
14491 (nullable_compute, nullable_free): these.
14492 (rule_list_t): Store rule_t *, not rule_number_t.
14493 * src/state.c (state_rule_lookaheads_print): Directly compare rule
14494 pointers, instead of their numbers.
14495 * src/main.c (main): Call nullable_free, and derives_free earlier,
14496 as they were lo longer used.
14497
14498 2002-08-01 Akim Demaille <akim@epita.fr>
14499
14500 * lib/timevar.c (get_time): Include children time.
14501 * src/lalr.h (LA, LArule): Don't export them: used with the
14502 state_t.
14503 * src/lalr.c (LA, LArule): Static.
14504 * src/lalr.h, src/lalr.c (lalr_free): New.
14505 * src/main.c (main): Call it.
14506 * src/tables.c (pack_vector): Check whether loc is >= to the
14507 table_size, not >.
14508 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
14509 (tables_generate): do it, since that's also it which allocates
14510 them.
14511 Don't free LA and LArule, main does.
14512
14513 2002-07-31 Akim Demaille <akim@epita.fr>
14514
14515 Separate parser tables computation and output.
14516
14517 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
14518 (conflict_list, conflict_list_cnt, table, check, table_ninf)
14519 (yydefgoto, yydefact, high): Move to...
14520 * src/tables.h, src/tables.c: here.
14521 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
14522 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
14523 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
14524 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
14525 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
14526 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
14527 (action_row, save_row, token_actions, save_column, default_goto)
14528 (goto_actions, sort_actions, matching_state, pack_vector)
14529 (table_ninf_remap, pack_table, prepare_actions): Move to...
14530 * src/tables.c: here.
14531 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
14532 * src/output.c (token_actions, output_base, output_conflicts)
14533 (output_check): Merge into...
14534 (prepare_actions): this.
14535 (actions_output): Rename as...
14536 (user_actions_output): this.
14537 * src/main.c (main): Call tables_generate and tables_free.
14538
14539 2002-07-31 Akim Demaille <akim@epita.fr>
14540
14541 Steal GCC's --time-report support.
14542
14543 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
14544 stolen/adjusted from GCC.
14545 * m4/stage.m4: Remove time related checks.
14546 * m4/timevar.m4: New.
14547 * configure.in: Adjust.
14548 * src/system.h: Adjust to using timevar.h.
14549 * src/getargs.h, src/getargs.c: Support trace_time for
14550 --trace=time.
14551 * src/main.c (stage): Remove.
14552 (main): Replace `stage' invocations with timevar calls.
14553 * src/output.c: Insert pertinent timevar calls.
14554
14555 2002-07-31 Akim Demaille <akim@epita.fr>
14556
14557 Let --trace have arguments.
14558
14559 * src/getargs.h (enum trace_e): New.
14560 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
14561 (long_options, short_options): --trace/-T takes an optional
14562 argument.
14563 Change all the uses of trace_flag to reflect the new flags.
14564 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
14565
14566 Strengthen `stage' portability.
14567
14568 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
14569 * configure.in: Use it.
14570 Don't check for malloc.h and sys/times.h.
14571 * src/system.h: Include them when appropriate.
14572 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
14573 times and struct tms are available.
14574
14575 2002-07-30 Akim Demaille <akim@epita.fr>
14576
14577 In verbose parse error message, don't report `error' as an
14578 expected token.
14579 * tests/actions.at (Printers and Destructors): Adjust.
14580 * tests/calc.at (Calculator $1): Adjust.
14581 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
14582 error message, do not report the parser accepts the error token in
14583 that state.
14584
14585 2002-07-30 Akim Demaille <akim@epita.fr>
14586
14587 Normalize conflict related messages.
14588
14589 * src/complain.h, src/complain.c (warn, complain): New.
14590 * src/conflicts.c (conflicts_print): Use them.
14591 (conflict_report_yacc): New, extracted from...
14592 (conflicts_print): here.
14593 * tests/conflicts.at, tests/existing.at: Adjust.
14594
14595 2002-07-30 Akim Demaille <akim@epita.fr>
14596
14597 Report rules which are never reduced by the parser: those hidden
14598 by conflicts.
14599
14600 * src/LR0.c (save_reductions): Don't make the final state too
14601 different: save its reduction (accept) instead of having a state
14602 without any action (no shift or goto, no reduce).
14603 Note: the final state is now a ``regular'' state, i.e., the
14604 parsers now contain `reduce 0' as default reduction.
14605 Nevertheless, since they decide to `accept' when yystate =
14606 final_state, they still will not reduce rule 0.
14607 * src/print.c (print_actions, print_reduction): Adjust.
14608 * src/output.c (action_row): Track reduced rules.
14609 (token_actions): Report rules never reduced.
14610 * tests/conflicts.at, tests/regression.at: Adjust.
14611
14612 2002-07-30 Akim Demaille <akim@epita.fr>
14613
14614 `stage' was accidently included in a previous patch.
14615 Initiate its autoconfiscation.
14616
14617 * configure.in: Look for malloc.h and sys/times.h.
14618 * src/main.c (stage): Adjust.
14619 Report only when trace_flag.
14620
14621 2002-07-29 Akim Demaille <akim@epita.fr>
14622
14623 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
14624 state_number_t.
14625 (errs_t): symbol_t*, not symbol_number_t.
14626 (reductions_t): rule_t*, not rule_number_t.
14627 (FOR_EACH_SHIFT): New.
14628 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
14629 * src/print.c, src/print_graph.c: Adjust.
14630
14631 2002-07-29 Akim Demaille <akim@epita.fr>
14632
14633 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
14634
14635 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
14636 (endtoken, accept): these.
14637 * src/reader.c (reader): Set endtoken's default tag to "$end".
14638 Set undeftoken's tag to "$undefined" instead of "$undefined.".
14639 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
14640 Adjust.
14641
14642 2002-07-29 Akim Demaille <akim@epita.fr>
14643
14644 * src/reduce.c (reduce_grammar): When the language is empty,
14645 complain about the start symbol, not the axiom.
14646 Use its location.
14647 * tests/reduce.at (Empty Language): New.
14648
14649 2002-07-26 Akim Demaille <akim@epita.fr>
14650
14651 * src/reader.h, src/reader.c (gram_error): ... can't get
14652 yycontrol without making too strong assumptions on the parser
14653 itself.
14654 * src/output.c (prepare_tokens): Use the real 0th value of
14655 token_translations instead of `0'.
14656 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
14657 visible here.
14658 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
14659 for the time being: %locations ought to provide it to yyerror.
14660
14661 2002-07-25 Akim Demaille <akim@epita.fr>
14662
14663 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
14664 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
14665 * tests/regression.at (Web2c Actions): Adjust.
14666
14667 2002-07-25 Akim Demaille <akim@epita.fr>
14668
14669 Stop storing rules from 1 to nrules + 1.
14670
14671 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
14672 * src/nullable.c, src/output.c, src/print.c, src/reader.c
14673 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
14674 Iterate from 0 to nrules.
14675 Use rule_number_as_item_number and item_number_as_rule_number.
14676 Adjust to `derive' now containing possibly 0.
14677 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
14678 Handle the `- 1' part in rule numbers from/to item numbers.
14679 * src/conflicts.c (log_resolution): Fix the message which reversed
14680 shift and reduce.
14681 * src/output.c (action_row): Initialize default_rule to -1.
14682 (token_actions): Adjust.
14683 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
14684 expected output.
14685 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
14686
14687 2002-07-25 Akim Demaille <akim@epita.fr>
14688
14689 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
14690 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
14691 (b4_c_knr_arg_decl): New.
14692 * data/yacc.c: Use it to define yysymprint, yydestruct, and
14693 yyreport_parse_error.
14694
14695 2002-07-25 Akim Demaille <akim@epita.fr>
14696
14697 * data/yacc.c (yyreport_parse_error): New, extracted from...
14698 (yyparse): here.
14699 (yydestruct, yysymprint): Move above yyparse.
14700 Be K&R compliant.
14701
14702 2002-07-25 Akim Demaille <akim@epita.fr>
14703
14704 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
14705 replace...
14706 (b4_sint_type, b4_uint_type): these.
14707 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
14708 * tests/regression.at (Web2c Actions): Adjust.
14709
14710 2002-07-25 Akim Demaille <akim@epita.fr>
14711
14712 * src/gram.h (TIEM_NUMBER_MAX): New.
14713 (item_number_of_rule_number, rule_number_of_item_number): Rename
14714 as...
14715 (rule_number_as_item_number, item_number_as_rule_number): these.
14716 Adjust dependencies.
14717 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
14718 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
14719 (symbol_number_to_vector_number): New.
14720 (order): Of vector_number_t* type.
14721 (base_t, BASE_MAX, BASE_MIN): New.
14722 (froms, tos, width, pos, check): Of base_t type.
14723 (action_number_t, ACTION_MIN, ACTION_MAX): New.
14724 (actrow): Of action_number_t type.
14725 (conflrow): Of unsigned int type.
14726 (table_ninf, base_ninf): New.
14727 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
14728 (muscle_insert_int_table, muscle_insert_base_table)
14729 (muscle_insert_rule_number_table): New.
14730 (prepare_tokens): Output `toknum' as int_table.
14731 (action_row): Returns a rule_number_t.
14732 Use ACTION_MIN, not SHRT_MIN.
14733 (token_actions): yydefact is rule_number_t*.
14734 (table_ninf_remap): New.
14735 (pack_table): Use it for `base' and `table'.
14736 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
14737 replaced with...
14738 (YYPACT_NINF, YYTABLE_NINF): these.
14739 (yypact, yytable): Compute their types instead of hard-coded
14740 `short'.
14741 * tests/regression.at (Web2c Actions): Adjust.
14742
14743 2002-07-19 Akim Demaille <akim@epita.fr>
14744
14745 * src/scan-gram.l (id): Can start with an underscore.
14746
14747 2002-07-16 Akim Demaille <akim@epita.fr>
14748
14749 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
14750 Adjust all former `associativity' dependencies.
14751 * src/symtab.c (symbol_new): Default associativity is `undef', not
14752 `right'.
14753 (symbol_check_alias_consistence): Adjust.
14754
14755 2002-07-09 Akim Demaille <akim@epita.fr>
14756
14757 * doc/bison.texinfo: Properly set the ``header'' part.
14758 Use @dircategory ``GNU programming tools'' as per Texinfo's
14759 documentation.
14760 Use @copying.
14761
14762 2002-07-09 Akim Demaille <akim@epita.fr>
14763
14764 * lib/quotearg.h: Protect against multiple inclusions.
14765 * src/location.h (location_t): Add a `file' member.
14766 (LOCATION_RESET, LOCATION_PRINT): Adjust.
14767 * src/complain.c (warn_at, complain_at, fatal_at): Drop
14768 `error_one_per_line' support.
14769
14770 2002-07-09 Akim Demaille <akim@epita.fr>
14771
14772 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
14773 * src/reader.c (lineno): Remove.
14774 Adjust all dependencies.
14775 (get_merge_function): Take a location and use complain_at.
14776 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
14777 * tests/regression.at (Invalid inputs, Mixing %token styles):
14778 Adjust.
14779
14780 2002-07-09 Akim Demaille <akim@epita.fr>
14781
14782 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
14783 recovery rule, and forbid extensions when --yacc.
14784 (gram_error): Use complain_at.
14785 * src/reader.c (reader): Exit if there were parse errors.
14786
14787 2002-07-09 Akim Demaille <akim@epita.fr>
14788
14789 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
14790 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
14791 Reported by R Blake <blakers@mac.com>.
14792
14793 2002-07-09 Akim Demaille <akim@epita.fr>
14794
14795 * data/yacc.c: Output the copyright notive in the header.
14796
14797 2002-07-03 Akim Demaille <akim@epita.fr>
14798
14799 * src/output.c (froms, tos): Are state_number_t.
14800 (save_column): sp, sp1, and sp2 are state_number_t.
14801 (prepare): Rename `final' as `final_state_number', `nnts' as
14802 `nterms_number', `nrules' as `rules_number', `nstates' as
14803 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
14804 unused.
14805 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
14806 * data/lalr1.cc (nsym_): Remove, unused.
14807
14808 2002-07-03 Akim Demaille <akim@epita.fr>
14809
14810 * src/lalr.h, src/lalr.c (goto_number_t): New.
14811 * src/lalr.c (goto_list_t): New.
14812 Propagate them.
14813 * src/nullable.c (rule_list_t): New.
14814 Propagate.
14815 * src/types.h: Remove.
14816
14817 2002-07-03 Akim Demaille <akim@epita.fr>
14818
14819 * src/closure.c (print_fderives): Use rule_rhs_print.
14820 * src/derives.c (print_derives): Use rule_rhs_print.
14821 (rule_list_t): New, replaces `shorts'.
14822 (set_derives): Add comments.
14823 * tests/sets.at (Nullable, Firsts): Adjust.
14824
14825 2002-07-03 Akim Demaille <akim@epita.fr>
14826
14827 * src/output.c (prepare_actions): Free `tally' and `width'.
14828 (prepare_actions): Allocate and free `order'.
14829 * src/symtab.c (symbols_free): Free `symbols'.
14830 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
14831 * src/output.c (m4_invoke): Move to...
14832 * src/scan-skel.l: here.
14833 (<<EOF>>): Close yyout, and free its name.
14834
14835 2002-07-03 Akim Demaille <akim@epita.fr>
14836
14837 Fix some memory leaks, and fix a bug: state 0 was examined twice.
14838
14839 * src/LR0.c (new_state): Merge into...
14840 (state_list_append): this.
14841 (new_states): Merge into...
14842 (generate_states): here.
14843 (set_states): Don't ensure a proper `errs' state member here, do it...
14844 * src/conflicts.c (conflicts_solve): here.
14845 * src/state.h, src/state.c: Comment changes.
14846 (state_t): Rename member `shifts' as `transitions'.
14847 Adjust all dependencies.
14848 (errs_new): For consistency, also take the values as argument.
14849 (errs_dup): Remove.
14850 (state_errs_set): New.
14851 (state_reductions_set, state_transitions_set): Assert that no
14852 previous value was assigned.
14853 (state_free): New.
14854 (states_free): Use it.
14855 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
14856 temporary storage: use `errs' and `nerrs' as elsewhere.
14857 (set_conflicts): Allocate and free this `errs'.
14858
14859 2002-07-02 Akim Demaille <akim@epita.fr>
14860
14861 * lib/libiberty.h: New.
14862 * lib: Update the bitset implementation from upstream.
14863 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
14864 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
14865 * src/main.c: Adjust bitset stats calls.
14866
14867 2002-07-01 Paul Eggert <eggert@twinsun.com>
14868
14869 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
14870 char, so that negative chars don't collide with $.
14871
14872 2002-06-30 Akim Demaille <akim@epita.fr>
14873
14874 Have the GLR tests be `warning' checked, and fix the warnings.
14875
14876 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
14877 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
14878 (yyremoveDeletes): `yyi' and `yyj' are size_t.
14879 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
14880 (yyaddDeferredAction): static.
14881 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
14882 (yyreportParseError): yyprefix is const.
14883 yytokenp is used only when verbose.
14884 (yy__GNUC__): Replace with __GNUC__.
14885 (yypdumpstack): yyi is size_t.
14886 (yypreference): Un-yy local variables and arguments, to avoid
14887 clashes with `yyr1'. Anyway, we are not in the user name space.
14888 (yytname_size): be an int, as is compared with ints.
14889 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
14890 Use them.
14891 * tests/cxx-gram.at: Use quotation to protect $1.
14892 Use AT_COMPILE to enable warnings hunts.
14893 Prototype yylex and yyerror.
14894 `Use' argc.
14895 Include `string.h', not `strings.h'.
14896 Produce and prototype stmtMerge only when used.
14897 yylex takes a location.
14898
14899 2002-06-30 Akim Demaille <akim@epita.fr>
14900
14901 We spend a lot of time in quotearg, in particular when --verbose.
14902
14903 * src/symtab.c (symbol_get): Store a quoted version of the key.
14904 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
14905 Adjust all callers.
14906
14907 2002-06-30 Akim Demaille <akim@epita.fr>
14908
14909 * src/state.h (reductions_t): Rename member `nreds' as num.
14910 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
14911 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
14912
14913 2002-06-30 Akim Demaille <akim@epita.fr>
14914
14915 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
14916 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
14917 (shifts_to): Rename as...
14918 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
14919 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
14920 (TRANSITION_IS_DISABLED, transitions_to): these.
14921
14922 2002-06-30 Akim Demaille <akim@epita.fr>
14923
14924 * src/print.c (print_shifts, print_gotos): Merge into...
14925 (print_transitions): this.
14926 (print_transitions, print_errs, print_reductions): Align the
14927 lookaheads columns.
14928 (print_core, print_transitions, print_errs, print_state,
14929 print_grammar): Output empty lines separator before, not after.
14930 (state_default_rule_compute): Rename as...
14931 (state_default_rule): this.
14932 * tests/conflicts.at (Defaulted Conflicted Reduction),
14933 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
14934 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
14935
14936 2002-06-30 Akim Demaille <akim@epita.fr>
14937
14938 Display items as we display rules.
14939
14940 * src/gram.h, src/gram.c (rule_lhs_print): New.
14941 * src/gram.c (grammar_rules_partial_print): Use it.
14942 * src/print.c (print_core): Likewise.
14943 * tests/conflicts.at (Defaulted Conflicted Reduction),
14944 (Unresolved SR Conflicts): Adjust.
14945 (Unresolved SR Conflicts): Adjust and rename as...
14946 (Resolved SR Conflicts): this, as was meant.
14947 * tests/regression.at (Web2c Report): Adjust.
14948
14949 2002-06-30 Akim Demaille <akim@epita.fr>
14950
14951 * src/print.c (state_default_rule_compute): New, extracted from...
14952 (print_reductions): here.
14953 Pessimize, but clarify the code.
14954 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
14955
14956 2002-06-30 Akim Demaille <akim@epita.fr>
14957
14958 * src/output.c (action_row): Let default_rule be always a rule
14959 number.
14960
14961 2002-06-30 Akim Demaille <akim@epita.fr>
14962
14963 * src/closure.c (print_firsts, print_fderives, closure):
14964 Use BITSET_EXECUTE.
14965 * src/lalr.c (lookaheads_print): Likewise.
14966 * src/state.c (state_rule_lookaheads_print): Likewise.
14967 * src/print_graph.c (print_core): Likewise.
14968 * src/print.c (print_reductions): Likewise.
14969 * src/output.c (action_row): Likewise.
14970 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
14971
14972 2002-06-30 Akim Demaille <akim@epita.fr>
14973
14974 * src/print_graph.c: Use report_flag.
14975
14976 2002-06-30 Akim Demaille <akim@epita.fr>
14977
14978 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
14979 to...
14980 * src/relation.h, src/relation.c (traverse, relation_digraph)
14981 (relation_print, relation_transpose): New.
14982
14983 2002-06-30 Akim Demaille <akim@epita.fr>
14984
14985 * src/state.h, src/state.c (shifts_to): New.
14986 * src/lalr.c (build_relations): Use it.
14987
14988 2002-06-30 Akim Demaille <akim@epita.fr>
14989
14990 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
14991 (item_number_of_rule_number, rule_number_of_item_number): New.
14992 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
14993 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
14994 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
14995 Propagate their use.
14996 Much remains to be done, in particular wrt `shorts' from types.h.
14997
14998 2002-06-30 Akim Demaille <akim@epita.fr>
14999
15000 * src/symtab.c (symbol_new): Initialize the `printer' member.
15001
15002 2002-06-30 Akim Demaille <akim@epita.fr>
15003
15004 * src/LR0.c (save_reductions): Remove, replaced by...
15005 * src/state.h, src/state.c (state_reductions_set): New.
15006 (reductions, errs): Rename as...
15007 (reductions_t, errs_t): these.
15008 Adjust all dependencies.
15009
15010 2002-06-30 Akim Demaille <akim@epita.fr>
15011
15012 * src/LR0.c (state_list_t, state_list_append): New.
15013 (first_state, last_state): Now symbol_list_t.
15014 (this_state): Remove.
15015 (new_itemsets, append_states, save_reductions): Take a state_t as
15016 argument.
15017 (set_states, generate_states): Adjust.
15018 (save_shifts): Remove, replaced by...
15019 * src/state.h, src/state.c (state_shifts_set): New.
15020 (shifts): Rename as...
15021 (shifts_t): this.
15022 Adjust all dependencies.
15023 * src/state.h (state_t): Remove the `next' member.
15024
15025 2002-06-30 Akim Demaille <akim@epita.fr>
15026
15027 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
15028 escaped in slot 0.
15029
15030 2002-06-30 Akim Demaille <akim@epita.fr>
15031
15032 Use hash.h for the state hash table.
15033
15034 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
15035 (allocate_storage): Use state_hash_new.
15036 (free_storage): Use state_hash_free.
15037 (new_state, get_state): Adjust.
15038 * src/lalr.h, src/lalr.c (states): Move to...
15039 * src/states.h (state_t): Remove the `link' member, no longer
15040 used.
15041 * src/states.h, src/states.c: here.
15042 (state_hash_new, state_hash_free, state_hash_lookup)
15043 (state_hash_insert, states_free): New.
15044 * src/states.c (state_table, state_compare, state_hash): New.
15045 * src/output.c (output_actions): Do not free states now, since we
15046 still need to know the final_state number in `prepare', called
15047 afterwards. Do it...
15048 * src/main.c (main): here: call states_free after `output'.
15049
15050 2002-06-30 Akim Demaille <akim@epita.fr>
15051
15052 * src/state.h, src/state.c (state_new): New, extracted from...
15053 * src/LR0.c (new_state): here.
15054 * src/state.h (STATE_ALLOC): Move to...
15055 * src/state.c: here.
15056 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
15057 * src/state.h, src/state.c: here.
15058
15059 2002-06-30 Akim Demaille <akim@epita.fr>
15060
15061 * src/reader.c (gensym): Rename as...
15062 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
15063 (getsym): Rename as...
15064 (symbol_get): this.
15065
15066 2002-06-30 Akim Demaille <akim@epita.fr>
15067
15068 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
15069 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
15070 * src/output.c, src/print.c, src/print_graph.c: Propagate.
15071 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
15072
15073 2002-06-30 Akim Demaille <akim@epita.fr>
15074
15075 Make the test suite pass with warnings checked.
15076
15077 * tests/actions.at (Printers and Destructors): Improve.
15078 Avoid unsigned vs. signed issues.
15079 * tests/calc.at: Don't exercise the scanner here, do it...
15080 * tests/input.at (Torturing the Scanner): here.
15081
15082 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
15083
15084 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
15085 reorganize first lines parallel to yacc.c.
15086
15087 2002-06-28 Akim Demaille <akim@epita.fr>
15088
15089 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
15090 (b4_token_enum, b4_token_defines): New, factored from...
15091 * data/lalr1.cc, data/yacc.c, glr.c: here.
15092
15093 2002-06-28 Akim Demaille <akim@epita.fr>
15094
15095 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
15096 unused variables.
15097 * src/output.c (merger_output): static.
15098
15099 2002-06-28 Akim Demaille <akim@epita.fr>
15100
15101 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
15102 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
15103 pacify GCC.
15104 * src/output.c (save_row): Initialize all the variables to pacify GCC.
15105
15106 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
15107
15108 Accumulated changelog for new GLR parsing features.
15109
15110 * src/conflicts.c (count_total_conflicts): Change name to
15111 conflicts_total_count.
15112 * src/conflicts.h: Ditto.
15113 * src/output.c (token_actions): Use the new name.
15114 (output_conflicts): Change conflp => conflict_list_heads, and
15115 confl => conflict_list for better readability.
15116 * data/glr.c: Use the new names.
15117 * NEWS: Add self to GLR announcement.
15118
15119 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
15120
15121 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
15122 Akim Demaille.
15123
15124 * data/bison.glr: Change name to glr.c
15125 * data/glr.c: Renamed from bison.glr.
15126 * data/Makefile.am: Add glr.c
15127
15128 * src/getargs.c:
15129
15130 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
15131 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
15132
15133 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
15134
15135 * data/bison.glr: Be sure to restore the
15136 current #line when returning to the skeleton contents after having
15137 exposed the input file's #line.
15138
15139 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
15140
15141 * data/bison.glr: Bring up to date with changes to bison.simple.
15142
15143 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
15144
15145 * data/bison.glr: Correct definitions that use b4_prefix.
15146 Various reformatting.
15147 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
15148 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
15149 yytokenp argument; now part of stack.
15150 (yychar): Define to behave as documented.
15151 (yyclearin): Ditto.
15152
15153 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
15154
15155 * src/reader.h: Add declaration for free_merger_functions.
15156
15157 * src/reader.c (merge_functions): New variable.
15158 (get_merge_function): New function.
15159 (free_merger_functions): New function.
15160 (readgram): Check for %prec that is not followed by a symbol.
15161 Handle %dprec and %merge declarations.
15162 (packgram): Initialize dprec and merger fields in rules array.
15163
15164 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
15165 conflict_list_cnt, conflict_list_free): New variables.
15166 (table_grow): Also grow conflict_table.
15167 (prepare_rules): Output dprec and merger tables.
15168 (conflict_row): New function.
15169 (action_row): Output conflict lists for GLR parser. Don't use
15170 default reduction in conflicted states for GLR parser so that there
15171 are spaces for the conflict lists.
15172 (save_row): Also save conflict information.
15173 (token_actions): Allocate conflict list.
15174 (merger_output): New function.
15175 (pack_vector): Pack conflict table, too.
15176 (output_conflicts): New function to output yyconflp and yyconfl.
15177 (output_check): Allocate conflict_tos.
15178 (output_actions): Output conflict tables, also.
15179 (output_skeleton): Output b4_mergers definition.
15180 (prepare): Output b4_max_rhs_length definition.
15181 Use 'bison.glr' as default skeleton for GLR parsers.
15182
15183 * src/gram.c (glr_parser): New flag.
15184 (grammar_free): Call free_merger_functions.
15185
15186 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
15187 all pairs of conflicting reductions, rather than just all tokens
15188 causing conflicts. Needed to size conflict tables.
15189 (conflicts_output): Modify call to count_rr_conflicts for new
15190 interface.
15191 (conflicts_print): Ditto.
15192 (count_total_conflicts): New function.
15193
15194 * src/reader.h (merger_list): New type.
15195 (merge_functions): New variable.
15196
15197 * src/lex.h (tok_dprec, tok_merge): New token types.
15198
15199 * src/gram.h (rule_s): Add dprec and merger fields.
15200 (glr_parser): New flag.
15201
15202 * src/conflicts.h (count_total_conflicts): New function.
15203
15204 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
15205
15206 * doc/bison.texinfo (Generalized LR Parsing): New section.
15207 (GLR Parsers): New section.
15208 (Language and Grammar): Mention GLR parsing.
15209 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
15210 Correct typo ("tge" -> "the").
15211
15212 * data/bison.glr: New skeleton for GLR parsing.
15213
15214 * tests/cxx-gram.at: New tests for GLR parsing.
15215
15216 * tests/testsuite.at: Include cxx-gram.at.
15217
15218 * tests/Makefile.am: Add cxx-gram.at.
15219
15220 * src/parse-gram.y:
15221
15222 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
15223
15224 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
15225
15226 2002-06-27 Akim Demaille <akim@epita.fr>
15227
15228 * src/options.h, src/options.c: Remove.
15229 * src/getargs.c (short_options, long_options): New.
15230
15231 2002-06-27 Akim Demaille <akim@epita.fr>
15232
15233 * data/bison.simple, data/bison.c++: Rename as...
15234 * data/yacc.c, data/lalr1.cc: these.
15235 * doc/bison.texinfo (Environment Variables): Remove.
15236
15237 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
15238
15239 * src/getargs.c (report_argmatch): Initialize strtok().
15240
15241 2002-06-20 Akim Demaille <akim@epita.fr>
15242
15243 * data/bison.simple (b4_symbol_actions): New, replaces...
15244 (b4_symbol_destructor, b4_symbol_printer): these.
15245 (yysymprint): Be sure to call YYPRINT only for tokens, and using
15246 user token numbers.
15247
15248 2002-06-20 Akim Demaille <akim@epita.fr>
15249
15250 * data/bison.simple (yydestructor): Rename as...
15251 (yydestruct): this.
15252
15253 2002-06-20 Akim Demaille <akim@epita.fr>
15254
15255 * src/symtab.h, src/symtab.c (symbol_type_set)
15256 (symbol_destructor_set, symbol_precedence_set): The location is
15257 the last argument.
15258 Adjust all callers.
15259
15260 2002-06-20 Akim Demaille <akim@epita.fr>
15261
15262 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
15263 internals.
15264 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
15265 Takes a location.
15266 * src/symtab.h, src/symtab.c (symbol_class_set)
15267 (symbol_user_token_number_set): Likewise.
15268 Adjust all callers.
15269 Promote complain_at.
15270 * tests/input.at (Type Clashes): Adjust.
15271
15272 2002-06-20 Akim Demaille <akim@epita.fr>
15273
15274 * data/bison.simple (YYLEX): Fix the declaration when
15275 %pure-parser.
15276
15277 2002-06-20 Akim Demaille <akim@epita.fr>
15278
15279 * data/bison.simple (yysymprint): Don't print the token number,
15280 just its name.
15281 * tests/actions.at (Destructors): Rename as...
15282 (Printers and Destructors): this.
15283 Also exercise %printer.
15284
15285 2002-06-20 Akim Demaille <akim@epita.fr>
15286
15287 * data/bison.simple (YYDSYMPRINT): New.
15288 Use it to remove many of the #if YYDEBUG/if (yydebug).
15289
15290 2002-06-20 Akim Demaille <akim@epita.fr>
15291
15292 * src/symtab.h, src/symtab.c (symbol_t): printer and
15293 printer_location are new members.
15294 (symbol_printer_set): New.
15295 * src/parse-gram.y (PERCENT_PRINTER): New token.
15296 Handle its associated rule.
15297 * src/scan-gram.l: Adjust.
15298 (handle_destructor_at, handle_destructor_dollar): Rename as...
15299 (handle_symbol_code_at, handle_symbol_code_dollar): these.
15300 * src/output.c (symbol_printers_output): New.
15301 (output_skeleton): Call it.
15302 * data/bison.simple (yysymprint): New. Cannot be named yyprint
15303 since there are already many grammar files with a user `yyprint'.
15304 Replace the calls to YYPRINT to calls to yysymprint.
15305 * tests/calc.at: Adjust.
15306 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
15307 taking advantage of parser very internal details (stack size!).
15308
15309 2002-06-20 Akim Demaille <akim@epita.fr>
15310
15311 * src/scan-gram.l: Complete the scanner with the missing patterns
15312 to pacify Flex.
15313 Use `quote' and `symbol_tag_get' where appropriate.
15314
15315 2002-06-19 Akim Demaille <akim@epita.fr>
15316
15317 * tests/actions.at (Destructors): Augment to test locations.
15318 * data/bison.simple (yydestructor): Pass it the current location
15319 if locations are enabled.
15320 Prototype only when __STDC__ or C++.
15321 Change the argument names to move into the yy name space: there is
15322 user code here.
15323
15324 2002-06-19 Akim Demaille <akim@epita.fr>
15325
15326 * data/bison.simple (b4_pure_if): New.
15327 Use it instead of #ifdef YYPURE.
15328
15329 2002-06-19 Akim Demaille <akim@epita.fr>
15330
15331 * data/bison.simple (b4_location_if): New.
15332 Use it instead of #ifdef YYLSP_NEEDED.
15333
15334 2002-06-19 Akim Demaille <akim@epita.fr>
15335
15336 Prepare @$ in %destructor, but currently don't bind it in the
15337 skeleton, as %location use is not cleaned up yet.
15338
15339 * src/scan-gram.l (handle_dollar, handle_destructor_at)
15340 (handle_action_at): New.
15341 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
15342 a braced_code_t and a location as additional arguments.
15343 (handle_destructor_dollar): Instead of requiring `b4_eval', just
15344 unquote one when outputting `b4_dollar_dollar'.
15345 Adjust callers.
15346 * data/bison.simple (b4_eval): Remove.
15347 (b4_symbol_destructor): Adjust.
15348 * tests/input.at (Invalid @n): Adjust.
15349
15350 2002-06-19 Zack Weinberg <zack@codesourcery.com>
15351
15352 * doc/bison.texinfo: Document ability to have multiple
15353 prologue sections.
15354
15355 2002-06-18 Akim Demaille <akim@epita.fr>
15356
15357 * src/files.c (compute_base_names): When computing the output file
15358 names from the input file name, strip the directory part.
15359
15360 2002-06-18 Akim Demaille <akim@epita.fr>
15361
15362 * data/bison.simple.new: Comment changes.
15363 Reported by Andreas Schwab.
15364
15365 2002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
15366
15367 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
15368 there are no `label `yyoverflowlab' defined but not used' warnings
15369 when yyoverflow is defined.
15370
15371 2002-06-18 Akim Demaille <akim@epita.fr>
15372
15373 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
15374 new member.
15375 (symbol_destructor_set): Adjust.
15376 * src/output.c (symbol_destructors_output): Output the destructor
15377 locations.
15378 Output the symbol name.
15379 * data/bison.simple (b4_symbol_destructor): Adjust.
15380
15381 2002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
15382 and Akim Demaille <akim@epita.fr>
15383
15384 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
15385 what's left on the stack when the error recovery hits EOF.
15386 * tests/actions.at (Destructors): Complete to exercise this case.
15387
15388 2002-06-17 Akim Demaille <akim@epita.fr>
15389
15390 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
15391 arguments is really empty, not only equal to `[]'.
15392 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
15393 member.
15394 (symbol_destructor_set): New.
15395 * src/output.c (symbol_destructors_output): New.
15396 * src/reader.h (brace_code_t, current_braced_code): New.
15397 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
15398 (handle_dollar): Rename as...
15399 (handle_action_dollar): this.
15400 (handle_destructor_dollar): New.
15401 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
15402 (grammar_declaration): Use it.
15403 * data/bison.simple (yystos): Is always defined.
15404 (yydestructor): New.
15405 * tests/actions.at (Destructors): New.
15406 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
15407
15408 2002-06-17 Akim Demaille <akim@epita.fr>
15409
15410 * src/symlist.h, src/symlist.c (symbol_list_length): New.
15411 * src/scan-gram.l (handle_dollar, handle_at): Compute the
15412 rule_length only when needed.
15413 * src/output.c (actions_output, token_definitions_output): Output
15414 the full M4 block.
15415 * src/symtab.c: Don't access directly to the symbol tag, use
15416 symbol_tag_get.
15417 * src/parse-gram.y: Use symbol_list_free.
15418
15419 2002-06-17 Akim Demaille <akim@epita.fr>
15420
15421 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
15422 (symbol_list_prepend, get_type_name): Move to...
15423 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
15424 (symbol_list_prepend, symbol_list_n_type_name_get): here.
15425 Adjust all callers.
15426 (symbol_list_free): New.
15427 * src/scan-gram.l (handle_dollar): Takes a location.
15428 * tests/input.at (Invalid $n): Adjust.
15429
15430 2002-06-17 Akim Demaille <akim@epita.fr>
15431
15432 * src/reader.h, src/reader.c (symbol_list_new): Export it.
15433 (symbol_list_prepend): New.
15434 * src/parse-gram.y (%union): `list' is a new member.
15435 (symbols.1): New, replaces...
15436 (terms_to_prec.1, nterms_to_type.1): these.
15437 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
15438 Take a location as additional argument.
15439 Adjust all callers.
15440
15441 2002-06-15 Akim Demaille <akim@epita.fr>
15442
15443 * src/parse-gram.y: Move %token in the declaration section so that
15444 we don't depend upon CVS Bison.
15445
15446 2002-06-15 Akim Demaille <akim@epita.fr>
15447
15448 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
15449 * src/print.c (print_core): Use it.
15450
15451 2002-06-15 Akim Demaille <akim@epita.fr>
15452
15453 * src/conflicts.c (log_resolution): Accept the rule involved in
15454 the sr conflicts instead of the lookahead number that points to
15455 that rule.
15456 (flush_reduce): Accept the current lookahead vector as argument,
15457 instead of the index in LA.
15458 (resolve_sr_conflict): Accept the current number of lookahead
15459 bitset to consider for the STATE, instead of the index in LA.
15460 (set_conflicts): Adjust.
15461 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
15462
15463 2002-06-15 Akim Demaille <akim@epita.fr>
15464
15465 * src/state.h (state_t): Replace the `lookaheadsp' member, a
15466 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
15467 Adjust all dependencies.
15468 * src/lalr.c (initialize_lookaheads): Split into...
15469 (states_lookaheads_count, states_lookaheads_initialize): these.
15470 (lalr): Adjust.
15471
15472 2002-06-15 Akim Demaille <akim@epita.fr>
15473
15474 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
15475 out of...
15476 (grammar_rules_print): here.
15477 * src/reduce.c (reduce_output): Use it.
15478 * tests/reduce.at (Useless Rules, Reduced Automaton)
15479 (Underivable Rules): Adjust.
15480
15481 2002-06-15 Akim Demaille <akim@epita.fr>
15482
15483 Copy BYacc's nice way to report the grammar.
15484
15485 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
15486 New.
15487 Don't print the rules' location, it is confusing and useless.
15488 (rule_print): Use grammar_rhs_print.
15489 * src/print.c (print_grammar): Use grammar_rules_print.
15490
15491 2002-06-15 Akim Demaille <akim@epita.fr>
15492
15493 Complete and rationalize `useless thing' warnings.
15494
15495 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
15496 (symbol_tag_print): New.
15497 Use them everywhere in place of accessing directly the tag member.
15498 * src/gram.h, src/gram.c (rule_print): New.
15499 Use it where a rule used to be printed `by hand'.
15500 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
15501 (reduce_grammar_tables): Report the useless rules.
15502 (reduce_print): Useless things are a warning, not an error.
15503 Report it as such.
15504 * tests/reduce.at (Useless Nonterminals, Useless Rules):
15505 (Reduced Automaton, Underivable Rules): Adjust.
15506 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
15507 * tests/conflicts.at (Unresolved SR Conflicts)
15508 (Solved SR Conflicts): Adjust.
15509
15510 2002-06-15 Akim Demaille <akim@epita.fr>
15511
15512 Let symbols have a location.
15513
15514 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
15515 (getsym): Adjust.
15516 Adjust all callers.
15517 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
15518 Use location_t, not int.
15519 * src/symtab.c (symbol_check_defined): Take advantage of the
15520 location.
15521 * tests/regression.at (Invalid inputs): Adjust.
15522
15523 2002-06-15 Akim Demaille <akim@epita.fr>
15524
15525 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
15526 (input): Don't try to initialize yylloc here, do it in the
15527 scanner.
15528 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
15529 * src/gram.h (rule_t): Change line and action_line into location
15530 and action_location, of location_t type.
15531 Adjust all dependencies.
15532 * src/location.h, src/location.c (empty_location): New.
15533 * src/reader.h, src/reader.c (grammar_start_symbol_set)
15534 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
15535 (grammar_current_rule_symbol_append)
15536 (grammar_current_rule_action_append): Expect a location as argument.
15537 * src/reader.c (grammar_midrule_action): Adjust to attach an
15538 action's location as dummy symbol location.
15539 * src/symtab.h, src/symtab.c (startsymbol_location): New.
15540 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
15541 the line numbers.
15542
15543 2002-06-14 Akim Demaille <akim@epita.fr>
15544
15545 Grammar declarations may be found in the grammar section.
15546
15547 * src/parse-gram.y (rules_or_grammar_declaration): New.
15548 (declarations): Each declaration may end with a semicolon, not
15549 just...
15550 (grammar_declaration): `"%union"'.
15551 (grammar): Branch to rules_or_grammar_declaration.
15552
15553 2002-06-14 Akim Demaille <akim@epita.fr>
15554
15555 * src/main.c (main): Invoke scanner_free.
15556
15557 2002-06-14 Akim Demaille <akim@epita.fr>
15558
15559 * src/output.c (m4_invoke): Extracted from...
15560 (output_skeleton): here.
15561 Free tempfile.
15562
15563 2002-06-14 Akim Demaille <akim@epita.fr>
15564
15565 * src/parse-gram.y (directives, directive, gram)
15566 (grammar_directives, precedence_directives, precedence_directive):
15567 Rename as...
15568 (declarations, declaration, grammar, grammar_declaration)
15569 (precedence_declaration, precedence_declarator): these.
15570 (symbol_declaration): New.
15571
15572 2002-06-14 Akim Demaille <akim@epita.fr>
15573
15574 * src/files.c (action_obstack): Remove, unused.
15575 (output_obstack): Remove it, and all its dependencies, as it is no
15576 longer needed.
15577 * src/reader.c (epilogue_set): Build the epilogue in the
15578 muscle_obstack.
15579 * src/output.h, src/output.c (muscle_obstack): Move to...
15580 * src/muscle_tab.h, src/muscle_tab.h: here.
15581 (muscle_init): Initialize muscle_obstack.
15582 (muscle_free): New.
15583 * src/main.c (main): Call it.
15584
15585 2002-06-14 Akim Demaille <akim@epita.fr>
15586
15587 * src/location.h: New, extracted from...
15588 * src/reader.h: here.
15589 * src/Makefile.am (noinst_HEADERS): Merge into
15590 (bison_SOURCES): this.
15591 Add location.h.
15592 * src/parse-gram.y: Use location_t instead of Bison's.
15593 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
15594 Use location_t instead of ints.
15595
15596 2002-06-14 Akim Demaille <akim@epita.fr>
15597
15598 * data/bison.simple, data/bison.c++: Be sure to restore the
15599 current #line when returning to the skeleton contents after having
15600 exposed the input file's #line.
15601
15602 2002-06-12 Akim Demaille <akim@epita.fr>
15603
15604 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
15605 eager.
15606 * tests/actions.at (Exotic Dollars): New.
15607
15608 2002-06-12 Akim Demaille <akim@epita.fr>
15609
15610 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
15611 ['"/] too eagerly.
15612 * tests/input.at (Torturing the Scanner): New.
15613
15614 2002-06-11 Akim Demaille <akim@epita.fr>
15615
15616 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
15617 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
15618 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
15619 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
15620 * src/reader.c (reader): Use it.
15621
15622 2002-06-11 Akim Demaille <akim@epita.fr>
15623
15624 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
15625 Adjust all callers.
15626 (scanner_last_string_free): New.
15627
15628 2002-06-11 Akim Demaille <akim@epita.fr>
15629
15630 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
15631 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
15632 (last_string, YY_OBS_FREE): New.
15633 Use them when returning an ID.
15634
15635 2002-06-11 Akim Demaille <akim@epita.fr>
15636
15637 Have Bison grammars parsed by a Bison grammar.
15638
15639 * src/reader.c, src/reader.h (prologue_augment): New.
15640 * src/reader.c (copy_definition): Remove.
15641
15642 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
15643 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
15644 (grammar_current_rule_prec_set, grammar_current_rule_check)
15645 (grammar_current_rule_symbol_append)
15646 (grammar_current_rule_action_append): Export.
15647 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
15648 (symbol_list_action_append): Remove.
15649 Hook the routines from reader.
15650 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
15651 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
15652
15653 * src/reader.c (read_declarations): Remove, unused.
15654
15655 * src/parse-gram.y: Handle the epilogue.
15656 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
15657 (grammar_start_symbol_set): this.
15658 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
15659 * src/reader.c (readgram): Remove, unused.
15660 (reader): Adjust to insert eoftoken and axiom where appropriate.
15661
15662 * src/reader.c (copy_dollar): Replace with...
15663 * src/scan-gram.h (handle_dollar): this.
15664 * src/parse-gram.y: Remove `%thong'.
15665
15666 * src/reader.c (copy_at): Replace with...
15667 * src/scan-gram.h (handle_at): this.
15668
15669 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
15670 New.
15671
15672 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
15673 time being.
15674
15675 * src/reader.h, src/reader.c (grammar_rule_end): New.
15676
15677 * src/parse.y (current_type, current_class): New.
15678 Implement `%nterm', `%token' support.
15679 Merge `%term' into `%token'.
15680 (string_as_id): New.
15681 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
15682 type name.
15683
15684 * src/parse-gram.y: Be sure to handle properly the beginning of
15685 rules.
15686
15687 * src/parse-gram.y: Handle %type.
15688 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
15689
15690 * src/parse-gram.y: More directives support.
15691 * src/options.c: No longer handle source directives.
15692
15693 * src/parse-gram.y: Fix %output.
15694
15695 * src/parse-gram.y: Handle %union.
15696 Use the prologue locations.
15697 * src/reader.c (parse_union_decl): Remove.
15698
15699 * src/reader.h, src/reader.c (epilogue_set): New.
15700 * src/parse-gram.y: Use it.
15701
15702 * data/bison.simple, data/bison.c++: b4_stype is now either not
15703 defined, then default to int, or to the contents of %union,
15704 without `union' itself.
15705 Adjust.
15706 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
15707
15708 * src/output.c (actions_output): Don't output braces, as they are
15709 already handled by the scanner.
15710
15711 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
15712 characters to themselves.
15713
15714 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
15715 that the epilogue has a proper #line.
15716
15717 * src/parse-gram.y: Handle precedence/associativity.
15718
15719 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
15720 a terminal.
15721 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
15722 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
15723 at all to define terminals that cannot be emitted.
15724
15725 * src/scan-gram.l: Escape M4 characters.
15726
15727 * src/scan-gram.l: Working properly with escapes in user
15728 strings/characters.
15729
15730 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
15731 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
15732 grammar.
15733 Use more modest sizes, as for the time being the parser does not
15734 release memory, and therefore the process swallows a huge amount
15735 of memory.
15736
15737 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
15738 stricter %token grammar.
15739
15740 * src/symtab.h (associativity): Add `undef_assoc'.
15741 (symbol_precedence_set): Do nothing when passed an undef_assoc.
15742 * src/symtab.c (symbol_check_alias_consistence): Adjust.
15743
15744 * tests/regression.at (Invalid %directive): Remove, as it is now
15745 meaningless.
15746 (Invalid inputs): Adjust to the new error messages.
15747 (Token definitions): The new grammar doesn't allow too many
15748 eccentricities.
15749
15750 * src/lex.h, src/lex.c: Remove.
15751 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
15752 (copy_character, copy_string2, copy_string, copy_identifier)
15753 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
15754 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
15755 (parse_action): Remove.
15756 * po/POTFILES.in: Adjust.
15757
15758 2002-06-11 Akim Demaille <akim@epita.fr>
15759
15760 * src/reader.c (parse_action): Don't store directly into the
15761 rule's action member: return the action as a string.
15762 Don't require `rule_length' as an argument: compute it.
15763 (grammar_current_rule_symbol_append)
15764 (grammar_current_rule_action_append): New, eved out from
15765 (readgram): here.
15766 Remove `action_flag', `rulelength', unused now.
15767
15768 2002-06-11 Akim Demaille <akim@epita.fr>
15769
15770 * src/reader.c (grammar_current_rule_prec_set).
15771 (grammar_current_rule_check): New, eved out from...
15772 (readgram): here.
15773 Remove `xaction', `first_rhs': useless.
15774 * tests/input.at (Type clashes): New.
15775 * tests/existing.at (GNU Cim Grammar): Adjust.
15776
15777 2002-06-11 Akim Demaille <akim@epita.fr>
15778
15779 * src/reader.c (grammar_midrule_action): New, Eved out from
15780 (readgram): here.
15781
15782 2002-06-11 Akim Demaille <akim@epita.fr>
15783
15784 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
15785 New.
15786 (readgram): Use them as replacement of inlined code, crule and
15787 crule1.
15788
15789 2002-06-11 Akim Demaille <akim@epita.fr>
15790
15791 * src/reader.c (grammar_end, grammar_symbol_append): New.
15792 (readgram): Use them.
15793 Make the use of `p' as local as possible.
15794
15795 2002-06-10 Akim Demaille <akim@epita.fr>
15796
15797 GCJ's parser requires the tokens to be defined before the prologue.
15798
15799 * data/bison.simple: Output the token definition before the user's
15800 prologue.
15801 * tests/regression.at (Braces parsing, Duplicate string)
15802 (Mixing %token styles): Check the output from bison.
15803 (Early token definitions): New.
15804
15805 2002-06-10 Akim Demaille <akim@epita.fr>
15806
15807 * src/symtab.c (symbol_user_token_number_set): Don't complain when
15808 assigning twice the same user number to a token, so that we can
15809 use it in...
15810 * src/lex.c (lex): here.
15811 Also use `symbol_class_set' instead of hand written code.
15812 * src/reader.c (parse_assoc_decl): Likewise.
15813
15814 2002-06-10 Akim Demaille <akim@epita.fr>
15815
15816 * src/symtab.c, src/symtab.c (symbol_class_set)
15817 (symbol_user_token_number_set): New.
15818 * src/reader.c (parse_token_decl): Use them.
15819 Use a switch instead of ifs.
15820 Use a single argument.
15821
15822 2002-06-10 Akim Demaille <akim@epita.fr>
15823
15824 Remove `%thong' support as it is undocumented, unused, duplicates
15825 `%token's job, and creates useless e-mail traffic with people who
15826 want to know what it is, why it is undocumented, unused, and
15827 duplicates `%token's job.
15828
15829 * src/reader.c (parse_thong_decl): Remove.
15830 * src/options.c (option_table): Remove "thong".
15831 * src/lex.h (tok_thong): Remove.
15832
15833 2002-06-10 Akim Demaille <akim@epita.fr>
15834
15835 * src/symtab.c, src/symtab.c (symbol_type_set)
15836 (symbol_precedence_set): New.
15837 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
15838 (value_components_used): Remove, unused.
15839
15840 2002-06-09 Akim Demaille <akim@epita.fr>
15841
15842 Move symbols handling code out of the reader.
15843
15844 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
15845 (axiom): Move to...
15846 * src/symtab.h, src/symtab.c: here.
15847
15848 * src/gram.c (start_symbol): Remove: use startsymbol->number.
15849 * src/reader.c (startval): Rename as...
15850 * src/symtab.h, src/symtab.c (startsymbol): this.
15851 * src/reader.c: Adjust.
15852
15853 * src/reader.c (symbol_check_defined, symbol_make_alias)
15854 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
15855 (token_translations_init)
15856 Move to...
15857 * src/symtab.c: here.
15858 * src/reader.c (packsymbols): Move to...
15859 * src/symtab.h, src/symtab.c (symbols_pack): here.
15860 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
15861 argument.
15862
15863 2002-06-03 Akim Demaille <akim@epita.fr>
15864
15865 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
15866 then statements.
15867
15868 2002-06-03 Akim Demaille <akim@epita.fr>
15869
15870 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
15871 structs with non literals.
15872 * src/scan-skel.l: never-interactive.
15873 * src/conflicts.c (enum conflict_resolution_e): No trailing
15874 comma.
15875 * src/getargs.c (usage): Split long literal strings.
15876 Reported by Hans Aberg.
15877
15878 2002-05-28 Akim Demaille <akim@epita.fr>
15879
15880 * data/bison.c++: Use C++ ostreams.
15881 (cdebug_): New member.
15882
15883 2002-05-28 Akim Demaille <akim@epita.fr>
15884
15885 * src/output.c (output_skeleton): Be sure to allocate enough room
15886 for `/' _and_ for `\0' in full_skeleton.
15887
15888 2002-05-28 Akim Demaille <akim@epita.fr>
15889
15890 * data/bison.c++: Catch up with bison.simple:
15891 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
15892 and Paul Eggert <eggert@twinsun.com>: `error' handing.
15893 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
15894 and popping traces.
15895
15896 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
15897
15898 * src/output.c (output_skeleton): Put an explicit path in front of
15899 the skeleton file name, rather than relying on the -I directory,
15900 to partially alleviate effects of having a skeleton file lying around
15901 in the current directory.
15902
15903 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
15904
15905 * src/conflicts.c (log_resolution): Correct typo:
15906 obstack_printf should be obstack_fgrow1.
15907
15908 2002-05-26 Akim Demaille <akim@epita.fr>
15909
15910 * src/state.h (state_t): `solved_conflicts' is a new member.
15911 * src/LR0.c (new_state): Set it to 0.
15912 * src/conflicts.h, src/conflicts.c (print_conflicts)
15913 (free_conflicts, solve_conflicts): Rename as...
15914 (conflicts_print, conflicts_free, conflicts_solve): these.
15915 Adjust callers.
15916 * src/conflicts.c (enum conflict_resolution_e)
15917 (solved_conflicts_obstack): New, used by...
15918 (log_resolution): this.
15919 Adjust to attach the conflict resolution to each state.
15920 Complete the description with the precedence/associativity
15921 information.
15922 (resolve_sr_conflict): Adjust.
15923 * src/print.c (print_state): Output its solved_conflicts.
15924 * tests/conflicts.at (Unresolved SR Conflicts)
15925 (Solved SR Conflicts): Exercise --report=all.
15926
15927 2002-05-26 Akim Demaille <akim@epita.fr>
15928
15929 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
15930 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
15931 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
15932 (token_number_t, item_number_as_token_number)
15933 (token_number_as_item_number, muscle_insert_token_number_table):
15934 Rename as...
15935 (symbol_number_t, item_number_as_symbol_number)
15936 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
15937 these, since it is more appropriate.
15938
15939 2002-05-26 Akim Demaille <akim@epita.fr>
15940
15941 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
15942 `Error:' lines.
15943 * data/bison.simple (yystos) [YYDEBUG]: New.
15944 (yyparse) [YYDEBUG]: Display the symbols which are popped during
15945 error recovery.
15946 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
15947
15948 2002-05-25 Akim Demaille <akim@epita.fr>
15949
15950 * doc/bison.texinfo (Debugging): Split into...
15951 (Tracing): this new section, its former contents, and...
15952 (Understanding): this new section.
15953 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
15954 by...
15955 (report_flag): this.
15956 Adjust all dependencies.
15957 (report_args, report_types, report_argmatch): New.
15958 (usage, getargs): Report/support -r, --report.
15959 * src/options.h
15960 (struct option_table_struct): Rename as..,
15961 (struct option_table_s): this.
15962 Rename the `set_flag' member to `flag' to match with getopt_long's
15963 struct.
15964 * src/options.c (option_table): Split verbose into an entry for
15965 %verbose, and another for --verbose.
15966 Support --report/-r, so remove -r from the obsolete --raw.
15967 * src/print.c: Attach full item sets and lookaheads reports to
15968 report_flag instead of trace_flag.
15969 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
15970
15971 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
15972 and Paul Eggert <eggert@twinsun.com>
15973
15974 * data/bison.simple (yyparse): Correct error handling to conform to
15975 POSIX and yacc. Specifically, after syntax error is discovered,
15976 do not reduce further before shifting the error token.
15977 Clean up the code a bit by removing the labels yyerrdefault,
15978 yyerrhandle, yyerrpop.
15979 * NEWS: Document the above.
15980
15981 2002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
15982
15983 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
15984 type; it isn't always big enough, since it doesn't necessarily
15985 include non-terminals.
15986 (yytranslate): Expand definition of yy_token_number_type, so that
15987 the latter can be removed.
15988 (yy_token_number_type): Remove, only one use.
15989 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
15990 don't use TokenNumberType as element type.
15991
15992 * tests/regression.at: Modify expected output to agree with change
15993 to yyr1 and yytranslate.
15994
15995 2002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
15996
15997 * src/reader.c (parse_action): Use copy_character instead of
15998 obstack_1grow.
15999
16000 2002-05-13 Akim Demaille <akim@epita.fr>
16001
16002 * tests/regression.at (Token definitions): Prototype yylex and
16003 yyerror.
16004
16005 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
16006
16007 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
16008 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
16009 32-bit arithmetic.
16010 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
16011
16012 2002-05-07 Akim Demaille <akim@epita.fr>
16013
16014 * tests/synclines.at: Be sure to prototype yylex and yyerror to
16015 avoid GCC warnings.
16016
16017 2002-05-07 Akim Demaille <akim@epita.fr>
16018
16019 Kill GCC warnings.
16020
16021 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
16022 over the RHS of each rule.
16023 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
16024 * src/state.h (state_t): Member `nitems' is unsigned short.
16025 * src/LR0.c (get_state): Adjust.
16026 * src/reader.c (packgram): Likewise.
16027 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
16028 `Type'.
16029 (muscle_insert_int_table): Remove, unused.
16030 (prepare_rules): Remove `max'.
16031
16032 2002-05-06 Akim Demaille <akim@epita.fr>
16033
16034 * src/closure.c (print_firsts): Display of the symbol tags.
16035 (bitmatrix_print): Move to...
16036 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
16037 here.
16038 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
16039
16040 2002-05-06 Akim Demaille <akim@epita.fr>
16041
16042 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
16043 hash_do_for_each.
16044
16045 2002-05-06 Akim Demaille <akim@epita.fr>
16046
16047 * src/LR0.c (new_state, get_state): Instead of using the global
16048 `kernel_size' and `kernel_base', have two new arguments:
16049 `core_size' and `core'.
16050 Adjust callers.
16051
16052 2002-05-06 Akim Demaille <akim@epita.fr>
16053
16054 * src/reader.c (packgram): No longer end `ritem' with a 0
16055 sentinel: it is not used.
16056
16057 2002-05-05 Akim Demaille <akim@epita.fr>
16058
16059 New experimental feature: display the lookaheads in the report and
16060 graph.
16061
16062 * src/print (print_core): When --trace-flag, display the rules
16063 lookaheads.
16064 * src/print_graph.c (print_core): Likewise.
16065 Swap the arguments.
16066 Adjust caller.
16067
16068 2002-05-05 Akim Demaille <akim@epita.fr>
16069
16070 * tests/torture.at (Many lookaheads): New test.
16071
16072 2002-05-05 Akim Demaille <akim@epita.fr>
16073
16074 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
16075 (GENERATE_MUSCLE_INSERT_TABLE): this.
16076 (output_int_table, output_unsigned_int_table, output_short_table)
16077 (output_token_number_table, output_item_number_table): Replace with...
16078 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
16079 (muscle_insert_short_table, muscle_insert_token_number_table)
16080 (muscle_insert_item_number_table): these.
16081 Adjust all callers.
16082 (prepare_tokens): Don't free `translations', since...
16083 * src/reader.h, src/reader.c (grammar_free): do it.
16084 Move to...
16085 * src/gram.h, src/gram.c (grammar_free): here.
16086 * data/bison.simple, data/bison.c++: b4_token_number_max is now
16087 b4_translate_max.
16088
16089 2002-05-05 Akim Demaille <akim@epita.fr>
16090
16091 * src/output.c (output_unsigned_int_table): New.
16092 (prepare_rules): `i' is unsigned.
16093 `prhs', `rline', `r2' are unsigned int.
16094 Rename muscle `rhs_number_max' as `rhs_max'.
16095 Output muscles `prhs_max', `rline_max', and `r2_max'.
16096 Free rline and r1.
16097 * data/bison.simple, data/bison.c++: Adjust to use these muscles
16098 to compute types instead of constant types.
16099 * tests/regression.at (Web2c Actions): Adjust.
16100
16101 2002-05-04 Akim Demaille <akim@epita.fr>
16102
16103 * src/symtab.h (SALIAS, SUNDEF): Rename as...
16104 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
16105 Adjust dependencies.
16106 * src/output.c (token_definitions_output): Be sure not to output a
16107 `#define 'a'' when fed with `%token 'a' "a"'.
16108 * tests/regression.at (Token definitions): New.
16109
16110 2002-05-03 Paul Eggert <eggert@twinsun.com>
16111
16112 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
16113 for K&R C.
16114
16115 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
16116
16117 * Makefile.am (SUBDIRS): Remove intl.
16118 (EXTRA_DIST): Add config/config.rpath.
16119
16120 2002-05-03 Akim Demaille <akim@epita.fr>
16121
16122 * data/bison.simple (m4_if): Don't output empty enums.
16123 And actually, output valid enum definitions :(.
16124
16125 2002-05-03 Akim Demaille <akim@epita.fr>
16126
16127 * configure.bat: Remove, completely obsolete.
16128 * Makefile.am (EXTRA_DIST): Adjust.
16129 Don't distribute config.rpath...
16130 * config/Makefile.am (EXTRA_DIST): Do it.
16131
16132 2002-05-03 Akim Demaille <akim@epita.fr>
16133
16134 * configure.in (GETTEXT_VERSION): New.
16135 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
16136
16137 2002-05-03 Akim Demaille <akim@epita.fr>
16138
16139 * data/bison.simple (b4_token_enum): New.
16140 (b4_token_defines): Use it to output tokens both as #define and
16141 enums.
16142 Suggested by Paul Eggert.
16143 * src/output.c (token_definitions_output): Don't output spurious
16144 white spaces.
16145
16146 2002-05-03 Akim Demaille <akim@epita.fr>
16147
16148 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
16149
16150 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
16151
16152 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
16153 Update the stack class, give a try to deque as the default container.
16154
16155 2002-05-02 Akim Demaille <akim@epita.fr>
16156
16157 * data/bison.simple (yyparse): Do not implement @$ = @1.
16158 (YYLLOC_DEFAULT): Adjust to do it.
16159 * doc/bison.texinfo (Location Default Action): Fix.
16160
16161 2002-05-02 Akim Demaille <akim@epita.fr>
16162
16163 * src/reader.c (parse_braces): Merge into...
16164 (parse_action): this.
16165
16166 2002-05-02 Akim Demaille <akim@epita.fr>
16167
16168 * configure.in (ALL_LINGUAS): Remove.
16169 * po/LINGUAS, hr.po: New.
16170
16171 2002-05-02 Akim Demaille <akim@epita.fr>
16172
16173 Remove the so called hairy (semantic) parsers.
16174
16175 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
16176 * src/gram.h, src/gram.c (semantic_parser): Remove.
16177 (rule_t): Remove the guard and guard_line members.
16178 * src/lex.h (token_t): remove tok_guard.
16179 * src/options.c (option_table): Remove %guard and %semantic_parser
16180 support.
16181 * src/output.c, src/output.h (guards_output): Remove.
16182 (prepare): Adjust.
16183 (token_definitions_output): Don't output the `T'
16184 tokens (???).
16185 (output_skeleton): Don't output the guards.
16186 * src/files.c, src/files.c (attrsfile): Remove.
16187 * src/reader.c (symbol_list): Remove the guard and guard_line
16188 members.
16189 Adjust dependencies.
16190 (parse_guard): Remove.
16191 * data/bison.hairy: Remove.
16192 * doc/bison.texinfo (Environment Variables): Remove occurrences of
16193 BISON_HAIRY.
16194
16195 2002-05-02 Akim Demaille <akim@epita.fr>
16196
16197 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
16198 (parse_guard): Rename the formal argument `stack_offset' as
16199 `rule_length', which is more readable.
16200 Adjust callers.
16201 (copy_at, copy_dollar): Instead of outputting the hard coded
16202 values of $$, $n and so forth, output invocation to b4_lhs_value,
16203 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
16204 Note: this patch partially drops `semantic-parser' support: it
16205 always does `rule_length - n', where semantic parsers ought to
16206 always use `-n'.
16207 * data/bison.simple, data/bison.c++ (b4_lhs_value)
16208 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
16209
16210 2002-05-02 Akim Demaille <akim@epita.fr>
16211
16212 * configure.in (AC_INIT): Bump to 1.49b.
16213 (AM_INIT_AUTOMAKE): Short invocation.
16214
16215 2002-05-02 Akim Demaille <akim@epita.fr>
16216
16217 Version 1.49a.
16218
16219 2002-05-01 Akim Demaille <akim@epita.fr>
16220
16221 * src/skeleton.h: Remove.
16222
16223 2002-05-01 Akim Demaille <akim@epita.fr>
16224
16225 * src/skeleton.h: Fix the #endif.
16226 Reported by Magnus Fromreide.
16227
16228 2002-04-26 Paul Eggert <eggert@twinsun.com>
16229
16230 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
16231 Define if we define YYSTYPE and YYLTYPE, respectively.
16232 (YYCOPY): Fix [] quoting problem in the non-GCC case.
16233
16234 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
16235
16236 * src/scan-skel.l: Postprocess quadrigraphs.
16237
16238 * src/reader.c (copy_character): New function, used to output
16239 single characters while replacing `[' and `]' with quadrigraphs, to
16240 avoid troubles with M4 quotes.
16241 (copy_comment): Output characters with copy_character.
16242 (read_additionnal_code): Likewise.
16243 (copy_string2): Likewise.
16244 (copy_definition): Likewise.
16245
16246 * tests/calc.at: Exercise M4 quoting.
16247
16248 2002-04-25 Akim Demaille <akim@epita.fr>
16249
16250 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
16251 between `!' and the command.
16252 Reported by Paul Eggert.
16253
16254 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
16255
16256 * tests/calc.at: Exercise prologue splitting.
16257
16258 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
16259 `b4_post_prologue' instead of `b4_prologue'.
16260
16261 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
16262 muscles.
16263 (output): Free pre_prologue_obstack and post_prologue_obstack.
16264 * src/files.h, src/files.c (attrs_obstack): Remove.
16265 (pre_prologue_obstack, post_prologue_obstack): New.
16266 * src/reader.c (copy_definition): Add a parameter to specify the
16267 obstack to fill, instead of using attrs_obstack unconditionally.
16268 (read_declarations): Pass pre_prologue_obstack to copy_definition if
16269 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
16270
16271 2002-04-23 Paul Eggert <eggert@twinsun.com>
16272
16273 * data/bison.simple: Remove unnecessary commentary and white
16274 space differences from 1_29-branch.
16275 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
16276
16277 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
16278 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
16279 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
16280 constructors or destructors.
16281
16282 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
16283
16284 2002-04-23 Akim Demaille <akim@epita.fr>
16285
16286 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
16287 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
16288 location with columns.
16289 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
16290 All reported by Paul Eggert.
16291
16292 2002-04-22 Akim Demaille <akim@epita.fr>
16293
16294 * src/reduce.c (dump_grammar): Move to...
16295 * src/gram.h, src/gram.c (grammar_dump): here.
16296 Be sure to separate long item numbers.
16297 Don't read the members of a rule's prec if its nil.
16298
16299 2002-04-22 Akim Demaille <akim@epita.fr>
16300
16301 * src/output.c (table_size, table_grow): New.
16302 (MAXTABLE): Remove, replace uses with table_size.
16303 (pack_vector): Instead of dying when the table is too big, grow it.
16304
16305 2002-04-22 Akim Demaille <akim@epita.fr>
16306
16307 * data/bison.simple (yyr1): Its type is that of a token number.
16308 * data/bison.c++ (r1_): Likewise.
16309 * tests/regression.at (Web2c Actions): Adjust.
16310
16311 2002-04-22 Akim Demaille <akim@epita.fr>
16312
16313 * src/reader.c (token_translations_init): 256 is now the default
16314 value for the error token, i.e., it will be assigned another
16315 number if the user assigned 256 to one of her tokens.
16316 (reader): Don't force 256 to error.
16317 * doc/bison.texinfo (Symbols): Adjust.
16318 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
16319 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
16320 etc. instead of 10, 20, 30 (which was used to `jump' over error
16321 (256) and undefined (2)).
16322
16323 2002-04-22 Akim Demaille <akim@epita.fr>
16324
16325 Propagate more token_number_t.
16326
16327 * src/gram.h (token_number_as_item_number)
16328 (item_number_as_token_number): New.
16329 * src/output.c (GENERATE_OUTPUT_TABLE): New.
16330 Use it to create output_item_number_table and
16331 output_token_number_table.
16332 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
16333 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
16334 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
16335 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
16336
16337 2002-04-22 Akim Demaille <akim@epita.fr>
16338
16339 * src/output.h, src/output.c (get_lines_number): Remove.
16340
16341 2002-04-19 Akim Demaille <akim@epita.fr>
16342
16343 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
16344 as Lex/Flex'.
16345 (Debugging): More details about enabling the debugging features.
16346 (Table of Symbols): Describe $$, $n, @$, and @n.
16347 Suggested by Tim Josling.
16348
16349 2002-04-19 Akim Demaille <akim@epita.fr>
16350
16351 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
16352
16353 2002-04-10 Akim Demaille <akim@epita.fr>
16354
16355 * src/system.h: Rely on HAVE_LIMITS_H.
16356 Suggested by Paul Eggert.
16357
16358 2002-04-09 Akim Demaille <akim@epita.fr>
16359
16360 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
16361 full stderr, and strip it according to the bison options, instead
16362 of composing the error message from different bits.
16363 This makes it easier to check for several error messages.
16364 Adjust all the invocations.
16365 Add an invocation exercising the error token.
16366 Add an invocation demonstrating a stupid error message.
16367 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
16368 Adjust the tests.
16369 Error message are for stderr, not stdout.
16370
16371 2002-04-09 Akim Demaille <akim@epita.fr>
16372
16373 * src/gram.h, src/gram.c (error_token_number): Remove, use
16374 errtoken->number.
16375 * src/reader.c (reader): Don't specify the user token number (2)
16376 for $undefined, as it uselessly prevents using it.
16377 * src/gram.h (token_number_t): Move to...
16378 * src/symtab.h: here.
16379 (state_t.number): Is a token_number_t.
16380 * src/print.c, src/reader.c: Use undeftoken->number instead of
16381 hard coded 2.
16382 (Even though this 2 is not the same as above: the number of the
16383 undeftoken remains being 2, it is its user token number which
16384 might not be 2).
16385 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
16386 `user_token_number_max'.
16387 Output `undef_token_number'.
16388 * data/bison.simple, data/bison.c++: Use them.
16389 Be sure to map invalid yylex return values to
16390 `undef_token_number'. This saves us from gratuitous SEGV.
16391
16392 * tests/conflicts.at (Solved SR Conflicts)
16393 (Unresolved SR Conflicts): Adjust.
16394 * tests/regression.at (Web2c Actions): Adjust.
16395
16396 2002-04-08 Akim Demaille <akim@epita.fr>
16397
16398 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
16399 Adding #line.
16400 Remove the duplicate `typedefs'.
16401 (RhsNumberType): Fix the declaration and various other typos.
16402 Use __ofile__.
16403 * data/bison.simple: Use __ofile__.
16404 * src/scan-skel.l: Handle __ofile__.
16405
16406 2002-04-08 Akim Demaille <akim@epita.fr>
16407
16408 * src/gram.h (item_number_t): New, the type of item numbers in
16409 RITEM. Note that it must be able to code symbol numbers as
16410 positive number, and the negation of rule numbers as negative
16411 numbers.
16412 Adjust all dependencies (pretty many).
16413 * src/reduce.c (rule): Remove this `short *' pointer: use
16414 item_number_t.
16415 * src/system.h (MINSHORT, MAXSHORT): Remove.
16416 Include `limits.h'.
16417 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
16418 (shortcpy): Remove.
16419 (MAXTABLE): Move to...
16420 * src/output.c (MAXTABLE): here.
16421 (prepare_rules): Use output_int_table to output rhs.
16422 * data/bison.simple, data/bison.c++: Adjust.
16423 * tests/torture.at (Big triangle): Move the limit from 254 to
16424 500.
16425 * tests/regression.at (Web2c Actions): Ajust.
16426
16427 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
16428 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
16429 passes, but produces negative #line number, once fixed, GCC is
16430 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
16431 C), it passes.
16432 * src/state.h (state_h): Code input lines on ints, not shorts.
16433
16434 2002-04-08 Akim Demaille <akim@epita.fr>
16435
16436 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
16437 and then the grammar.
16438
16439 2002-04-08 Akim Demaille <akim@epita.fr>
16440
16441 * src/system.h: No longer using strndup.
16442
16443 2002-04-07 Akim Demaille <akim@epita.fr>
16444
16445 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
16446 * src/output.c (output_table_data): Return the longest number.
16447 (prepare_tokens): Output `token_number_max').
16448 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
16449 New.
16450 Use them to define yy_token_number_type/TokenNumberType.
16451 Use this type for yytranslate.
16452 * tests/torture.at (Big triangle): Push the limit from 124 to
16453 253.
16454 * tests/regression.at (Web2c Actions): Adjust.
16455
16456 2002-04-07 Akim Demaille <akim@epita.fr>
16457
16458 * tests/torture.at (Big triangle): New.
16459 (GNU AWK Grammar, GNU Cim Grammar): Move to...
16460 * tests/existing.at: here.
16461
16462 2002-04-07 Akim Demaille <akim@epita.fr>
16463
16464 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
16465 nritems.
16466 Adjust dependencies.
16467
16468 2002-04-07 Akim Demaille <akim@epita.fr>
16469
16470 * src/reader.c: Normalize increments to prefix form.
16471
16472 2002-04-07 Akim Demaille <akim@epita.fr>
16473
16474 * src/reader.c, symtab.c: Remove debugging code.
16475
16476 2002-04-07 Akim Demaille <akim@epita.fr>
16477
16478 Rename all the `bucket's as `symbol_t'.
16479
16480 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
16481 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
16482 * src/symtab.c, src/symtab.h (bucket): Rename as...
16483 (symbol_t): this.
16484 (symbol_list_new, bucket_check_defined, bucket_make_alias)
16485 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
16486 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
16487 (buckets_new, buckets_free, buckets_do): Rename as...
16488 (symbol_list_new, symbol_check_defined, symbol_make_alias)
16489 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
16490 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
16491 (symbols_new, symbols_free, symbols_do): these.
16492
16493 2002-04-07 Akim Demaille <akim@epita.fr>
16494
16495 Use lib/hash for the symbol table.
16496
16497 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
16498 EOF.
16499 * src/lex.c (lex): Set the `number' member of new terminals.
16500 * src/reader.c (bucket_check_defined, bucket_make_alias)
16501 (bucket_check_alias_consistence, bucket_translation): New.
16502 (reader, grammar_free, readgram, token_translations_init)
16503 (packsymbols): Adjust.
16504 (reader): Number the predefined tokens.
16505 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
16506 for predefined tokens.
16507 * src/symtab.h (bucket): Remove all the hash table related
16508 members.
16509 * src/symtab.c (symtab): Replace by...
16510 (bucket_table): this.
16511 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
16512 (buckets_new, buckets_do): New.
16513
16514 2002-04-07 Akim Demaille <akim@epita.fr>
16515
16516 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
16517 (start_symbol, max_user_token_number, semantic_parser)
16518 (error_token_number): Initialize.
16519 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
16520 Initialize.
16521 (reader): Don't.
16522 (errtoken, eoftoken, undeftoken, axiom): Extern.
16523
16524 2002-04-07 Akim Demaille <akim@epita.fr>
16525
16526 * src/gram.h (rule_s): prec and precsym are now pointers
16527 to the bucket giving the priority/associativity.
16528 Member `associativity' removed: useless.
16529 * src/reduce.c, src/conflicts.c: Adjust.
16530
16531 2002-04-07 Akim Demaille <akim@epita.fr>
16532
16533 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
16534 Properly escape the symbols' TAG when outputting them.
16535
16536 2002-04-07 Akim Demaille <akim@epita.fr>
16537
16538 * src/lalr.h (LA): Is a bitsetv, not bitset*.
16539
16540 2002-04-07 Akim Demaille <akim@epita.fr>
16541
16542 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
16543 (LArule): this, which is an array to rule_t*.
16544 * src/print.c, src/conflicts.c: Adjust.
16545
16546 2002-04-07 Akim Demaille <akim@epita.fr>
16547
16548 * src/gram.h (rule_t): Rename `number' as `user_number'.
16549 `number' is a new member.
16550 Adjust dependencies.
16551 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
16552
16553 2002-04-07 Akim Demaille <akim@epita.fr>
16554
16555 As a result of the previous patch, it is no longer needed
16556 to reorder ritem itself.
16557
16558 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
16559
16560 2002-04-07 Akim Demaille <akim@epita.fr>
16561
16562 Be sure never to walk through RITEMS, but use only data related to
16563 the rules themselves. RITEMS should be banished.
16564
16565 * src/output.c (output_token_translations): Rename as...
16566 (prepare_tokens): this.
16567 In addition to `translate', prepare the muscles `tname' and
16568 `toknum', which were handled by...
16569 (output_rule_data): this.
16570 Remove, and move the remainder of its outputs into...
16571 (prepare_rules): this new routines, which also merges content from
16572 (output_gram): this.
16573 (prepare_rules): Be sure never to walk through RITEMS.
16574 (output_stos): Rename as...
16575 (prepare_stos): this.
16576 (output): Always invoke prepare_states, after all, just don't use it
16577 in the output if you don't need it.
16578
16579 2002-04-07 Akim Demaille <akim@epita.fr>
16580
16581 * src/LR0.c (new_state): Display `nstates' as the name of the
16582 newly created state.
16583 Adjust to initialize first_state and last_state if needed.
16584 Be sure to distinguish the initial from the final state.
16585 (new_states): Create the itemset of the initial state, and use
16586 new_state.
16587 * src/closure.c (closure): Now that the initial state has its
16588 items properly set, there is no need for a special case when
16589 creating `ruleset'.
16590
16591 As a result, now the rule 0, reducing to $axiom, is visible in the
16592 outputs. Adjust the test suite.
16593
16594 * tests/conflicts.at (Solved SR Conflicts)
16595 (Unresolved SR Conflicts): Adjust.
16596 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
16597 * tests/conflicts.at (S/R in initial): New.
16598
16599 2002-04-07 Akim Demaille <akim@epita.fr>
16600
16601 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
16602 the RHS of the rules.
16603 * src/output.c (output_gram): Likewise.
16604
16605 2002-04-07 Akim Demaille <akim@epita.fr>
16606
16607 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
16608 bucket.
16609 Adjust all dependencies.
16610 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
16611 `number' of the buckets too.
16612 * src/gram.h: Include `symtab.h'.
16613 (associativity): Move to...
16614 * src/symtab.h: here.
16615 No longer include `gram.h'.
16616
16617 2002-04-07 Akim Demaille <akim@epita.fr>
16618
16619 * src/gram.h, src/gram.c (rules_rhs_length): New.
16620 (ritem_longest_rhs): Use it.
16621 * src/gram.h (rule_t): `number' is a new member.
16622 * src/reader.c (packgram): Set it.
16623 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
16624 the end of `rules', and count them out of `nrules'.
16625 (reduce_output, dump_grammar): Adjust.
16626 * src/print.c (print_grammar): It is no longer needed to check for
16627 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
16628 * tests/reduce.at (Reduced Automaton): New test.
16629
16630 2002-04-07 Akim Demaille <akim@epita.fr>
16631
16632 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
16633 lacking `+ 1' to nrules, Bison reported as useless a token if it
16634 was used solely to set the precedence of the last rule...
16635
16636 2002-04-07 Akim Demaille <akim@epita.fr>
16637
16638 * data/bison.c++, data/bison.simple: Don't output the current file
16639 name in #line, to avoid useless diffs between two identical
16640 outputs under different names.
16641
16642 2002-04-07 Akim Demaille <akim@epita.fr>
16643
16644 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
16645 Normalize loops to using `< nrules + 1', not `<= nrules'.
16646
16647 2002-04-07 Akim Demaille <akim@epita.fr>
16648
16649 * TODO: Update.
16650
16651 2002-04-07 Akim Demaille <akim@epita.fr>
16652
16653 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
16654 bucket.value as bucket.number.
16655
16656 2002-04-07 Akim Demaille <akim@epita.fr>
16657
16658 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
16659 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
16660 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
16661 RHS, instead of being an index in RITEMS.
16662
16663 2002-04-04 Paul Eggert <eggert@twinsun.com>
16664
16665 * doc/bison.texinfo: Update copyright date.
16666 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
16667 (Symbols): Warn about running Bison in one character set,
16668 but compiling and/or running in an incompatible one.
16669 Warn about character code 256, too.
16670
16671 2002-04-03 Paul Eggert <eggert@twinsun.com>
16672
16673 * src/bison.data (YYSTACK_ALLOC): Depend on whether
16674 YYERROR_VERBOSE is nonzero, not whether it is defined.
16675
16676 Merge changes from bison-1_29-branch.
16677
16678 2002-03-20 Paul Eggert <eggert@twinsun.com>
16679
16680 Merge fixes from Debian bison_1.34-1.diff.
16681
16682 * configure.in (AC_PREREQ): 2.53.
16683
16684 2002-03-20 Akim Demaille <akim@epita.fr>
16685
16686 * src/conflicts.c (log_resolution): Argument `resolution' is const.
16687
16688 2002-03-19 Paul Eggert <eggert@twinsun.com>
16689
16690 * src/bison.simple (YYCOPY): New macro.
16691 (YYSTACK_RELOCATE): Use it.
16692 Remove Type arg; no longer needed. All callers changed.
16693 (yymemcpy): Remove; no longer needed.
16694
16695 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
16696 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
16697
16698 2002-03-19 Akim Demaille <akim@epita.fr>
16699
16700 Test and fix the #line outputs.
16701
16702 * tests/atlocal.at (GCC): New.
16703 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
16704 (Prologue synch line, %union synch line, Postprologue synch line)
16705 (Action synch line, Epilogue synch line): New tests.
16706 * src/reader.c (parse_union_decl): Define the muscle stype_line.
16707 * data/bison.simple, data/bison.c++: Use it.
16708
16709 2002-03-19 Akim Demaille <akim@epita.fr>
16710
16711 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
16712 (Solved SR Conflicts, %expect not enough, %expect right)
16713 (%expect too much): Move to...
16714 * tests/conflicts.at: this new file.
16715
16716 2002-03-19 Akim Demaille <akim@epita.fr>
16717
16718 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
16719 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
16720 that we can move to enums for instance.
16721 * src/output.c (token_definitions_output): Output a list of
16722 `token-name, token-number' instead of the #define.
16723 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
16724
16725 2002-03-14 Akim Demaille <akim@epita.fr>
16726
16727 Use Gettext 0.11.1.
16728
16729 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
16730
16731 * data/bison.c++: Make the user able to add members to the generated
16732 parser by subclassing.
16733
16734 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
16735
16736 * src/reader.c (read_additionnal_code): `c' should be an integer, not
16737 a character.
16738 Reported by Nicolas Tisserand and Nicolas Burrus.
16739
16740 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
16741
16742 * src/reader.c: Warn about lacking semi-colons, do not complain.
16743
16744 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
16745
16746 * data/bison.c++: Remove a debug line.
16747
16748 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
16749
16750 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
16751 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
16752 provide a default implementation.
16753
16754 2002-03-04 Akim Demaille <akim@epita.fr>
16755
16756 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
16757 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
16758 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
16759 * tests/semantic.at (Parsing Guards): Similarly.
16760 * src/reader.at (readgram): Complain if the last rule is not ended
16761 with a semi-colon.
16762
16763 2002-03-04 Akim Demaille <akim@epita.fr>
16764
16765 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
16766 * src/closure.c: here.
16767 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
16768 RTC.
16769 * src/warshall.h, src/warshall.c: Remove.
16770 * tests/sets.at (Broken Closure): Adjust.
16771
16772 2002-03-04 Akim Demaille <akim@epita.fr>
16773
16774 * src/output.c (output_skeleton): tempdir is const.
16775 bytes_read is unused.
16776
16777 2002-03-04 Akim Demaille <akim@epita.fr>
16778
16779 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
16780 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
16781 Update.
16782 From Michael Hayes.
16783
16784 2002-03-04 Akim Demaille <akim@epita.fr>
16785
16786 * src/closure.c (closure): `r' is unused.
16787
16788 2002-03-04 Akim Demaille <akim@epita.fr>
16789
16790 * tests/sets.at (Broken Closure): Add the ending `;'.
16791 * src/reader.at (readgram): Complain if a rule is not ended with a
16792 semi-colon.
16793
16794 2002-03-04 Akim Demaille <akim@epita.fr>
16795
16796 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
16797 (count_sr_conflicts): Use bitset_count.
16798 * src/reduce.c (inaccessable_symbols): Ditto.
16799 (bits_size): Remove.
16800 * src/warshall.h, src/warshall.c: Convert to bitsetv.
16801
16802 2002-03-04 Akim Demaille <akim@epita.fr>
16803
16804 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
16805 * src/reduce.c: Remove the `bitset_zero's following the
16806 `bitset_create's, as now it is performed by the latter.
16807
16808 2002-03-04 Akim Demaille <akim@epita.fr>
16809
16810 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
16811 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
16812 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
16813 latest sources from Michael.
16814
16815 2002-03-04 Akim Demaille <akim@epita.fr>
16816
16817 * src/output.c (output): Don't free the grammar.
16818 * src/reader.c (grammar_free): New.
16819 * src/main.c (main): Call it and don't free symtab here.
16820
16821 2002-03-04 Akim Demaille <akim@epita.fr>
16822
16823 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
16824 before returning.
16825 Reported by Benoit Perrot.
16826
16827 2002-03-04 Akim Demaille <akim@epita.fr>
16828
16829 Use bitset operations when possible, not loops over bits.
16830
16831 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
16832 bitset_or.
16833 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
16834 * src/reduce.c (useless_nonterminals): Formatting changes.
16835 * src/warshall.c (TC): Use bitset_or.
16836
16837 2002-03-04 Akim Demaille <akim@epita.fr>
16838
16839 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
16840 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
16841 Ditto.
16842
16843 2002-03-04 Akim Demaille <akim@epita.fr>
16844
16845 * src/lalr.c (F): Now a bitset*.
16846 Adjust all dependencies.
16847
16848 2002-03-04 Akim Demaille <akim@epita.fr>
16849
16850 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
16851 Adjust all dependencies.
16852
16853 2002-03-04 Akim Demaille <akim@epita.fr>
16854
16855 * src/L0.c, src/LR0.h (nstates): Be size_t.
16856 Adjust comparisons (signed vs unsigned).
16857 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
16858 bitset*.
16859 Adjust all dependencies.
16860
16861 2002-03-04 Akim Demaille <akim@epita.fr>
16862
16863 * src/closure.c (firsts): Now, also a bitset.
16864 Adjust all dependencies.
16865 (varsetsize): Remove, now unused.
16866 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
16867
16868 2002-03-04 Akim Demaille <akim@epita.fr>
16869
16870 * src/print.c: Convert to use bitset.h, not hand coded iterations
16871 over ints.
16872
16873 2002-03-04 Akim Demaille <akim@epita.fr>
16874
16875 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
16876
16877 2002-03-04 Akim Demaille <akim@epita.fr>
16878
16879 * src/closure.c (ruleset): Be a bitset.
16880 (rulesetsize): Remove.
16881
16882 2002-03-04 Akim Demaille <akim@epita.fr>
16883
16884 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
16885 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
16886 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
16887 * src/closure.c (fderives): Be an array of bitsets.
16888
16889 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
16890
16891 * data/bison.c++: Merge the two generated headers. Insert a copyright
16892 notice in each output file.
16893
16894 2002-02-28 Akim Demaille <akim@epita.fr>
16895
16896 * data/bison.c++: Copy the prologue of bison.simple to fetch
16897 useful M4 definitions, such as b4_header_guard.
16898
16899 2002-02-25 Akim Demaille <akim@epita.fr>
16900
16901 * src/getargs.c (version): Give the name of the authors, and use a
16902 translator friendly scheme for the bgr
16903 copyright notice.
16904
16905 2002-02-25 Akim Demaille <akim@epita.fr>
16906
16907 * src/output.c (header_output): Remove, now handled completely via
16908 M4.
16909
16910 2002-02-25 Akim Demaille <akim@epita.fr>
16911
16912 * m4/m4.m4: New, from CVS Autoconf.
16913 * configure.in: Invoke it.
16914 * src/output.c (output_skeleton): Use its result instead of the
16915 hard coded name.
16916
16917 2002-02-25 Akim Demaille <akim@epita.fr>
16918
16919 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
16920 Fileutils 4.1.5.
16921 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
16922 * src/output.c (output_skeleton): Use mkstemp to create a real
16923 temporary file.
16924 Move the filling of `skeleton' and its muscle to...
16925 (prepare): here.
16926 (output): Move the definition of the prologue muscle to...
16927 (prepare): here.
16928 * src/system.h (DEFAULT_TMPDIR): New.
16929
16930 2002-02-14 Paul Eggert <eggert@twinsun.com>
16931
16932 Remove the support for C++ namespace cleanliness; it was
16933 causing more problems than it was curing, since it didn't work
16934 properly on some nonstandard C++ compilers. This can wait
16935 for a proper C++ parser.
16936
16937 * NEWS: Document this.
16938 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
16939 of C++, as it's treated like C now.
16940 * src/bison.simple (YYSTD): Remove.
16941 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
16942 Treat C++ just like Standard C instead of trying to support
16943 namespace cleanliness.
16944
16945 2002-02-14 Akim Demaille <akim@epita.fr>
16946
16947 * tests/regression.at (else): Adjust to Andreas' change.
16948
16949 2002-02-14 Akim Demaille <akim@epita.fr>
16950
16951 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
16952
16953 2002-02-13 Andreas Schwab <schwab@suse.de>
16954
16955 * src/output.c (output_rule_data): Don't output NULL, it might
16956 not be defined yet.
16957
16958 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
16959
16960 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
16961 (Copyright notice): Update.
16962
16963 2002-02-11 Akim Demaille <akim@epita.fr>
16964
16965 * tests/regression.at (%nonassoc and eof): Don't include
16966 nonportable headers.
16967
16968 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
16969
16970 * data/bison.c++: Correct error recovery. Make the user able to
16971 initialize the starting location.
16972
16973 2002-02-07 Akim Demaille <akim@epita.fr>
16974
16975 * tests/input.at: New.
16976
16977 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
16978
16979 * data/bison.c++: Replace some direct m4 expansions by constants. Be
16980 more consistent when naming methods and variables. Put preprocessor
16981 directives around tables only needed for debugging.
16982
16983 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
16984
16985 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
16986 C++ parsers.
16987 (yy::b4_name::parse): Use print_.
16988
16989 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
16990
16991 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
16992
16993 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
16994
16995 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
16996 C++ parsers.
16997 (yy::b4_name::parse): Build verbose error messages, and use error_.
16998
16999 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
17000
17001 * data/bison.c++: Fix m4 quoting in comments.
17002
17003 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
17004
17005 * data/bison.c++: Adjust the parser code. Fix some muscles that were
17006 not expanded by m4.
17007
17008 2002-02-05 Akim Demaille <akim@epita.fr>
17009
17010 * data/bison.c++: Adjust to the M4 back end.
17011 More is certainly needed.
17012
17013 2002-02-05 Akim Demaille <akim@epita.fr>
17014
17015 Give a try to M4 as a back end.
17016
17017 * lib/readpipe.c: New, from wdiff.
17018 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
17019 BISON_HAIRY.
17020 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
17021 specific values. Now it is m4 that performs the lookup.
17022 * src/parse-skel.y: Remove.
17023 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
17024 * src/output.c (actions_output, guards_output)
17025 (token_definitions_output): No longer keeps track of the output
17026 line number, hence remove the second argument.
17027 (guards_output): Check against the guard member of a rule, not the
17028 action member.
17029 Adjust callers.
17030 (output_skeleton): Don't look for the skeleton location, let m4 do
17031 that.
17032 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
17033 file will be used.
17034 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
17035 (prepare): Given that for the time being changesyntax is not
17036 usable in M4, rename the muscles using `-' to `_'.
17037 Define `defines_flag', `output_parser_name' and `output_header_name'.
17038 * src/output.h (actions_output, guards_output)
17039 (token_definitions_output): Adjust prototypes.
17040 * src/scan-skel.l: Instead of scanning the skeletons, it now
17041 processes the output of m4: `__oline__' and `#output'.
17042 * data/bison.simple: Adjust to be used by M4(sugar).
17043 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
17044 to date.
17045 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
17046 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
17047 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
17048 shamelessly stolen from CVS Autoconf.
17049
17050 2002-02-05 Akim Demaille <akim@epita.fr>
17051
17052 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
17053 * configure.in: Check for the declarations of free and malloc.
17054 * src/muscle_tab.c: Adjust.
17055
17056 2002-02-05 Akim Demaille <akim@epita.fr>
17057
17058 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
17059 which have no values.
17060
17061 2002-02-05 Akim Demaille <akim@epita.fr>
17062
17063 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
17064 * data/: here.
17065
17066 2002-01-29 Paul Eggert <eggert@twinsun.com>
17067
17068 * src/bison.simple (YYSIZE_T): Do not define merely because
17069 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
17070 On some platforms, <alloca.h> does not declare YYSTD (size_t).
17071
17072 2002-01-27 Akim Demaille <akim@epita.fr>
17073
17074 Fix `%nonassoc and eof'.
17075
17076 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
17077 which were not properly copied! Replace
17078 memcpy (res->errs, src->errs, src->nerrs);
17079 with
17080 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
17081 !!!
17082 * tests/regression.at (%nonassoc and eof): Adjust to newest
17083 Autotest: `.' is not in the PATH.
17084
17085 2002-01-27 Akim Demaille <akim@epita.fr>
17086
17087 * tests/sets.at (AT_EXTRACT_SETS): New.
17088 (Nullable): Use it.
17089 (Firsts): New.
17090
17091 2002-01-26 Akim Demaille <akim@epita.fr>
17092
17093 * tests/actions.at, tests/calc.at, tests/headers.at,
17094 * tests/torture.at: Adjust to the newest Autotest which no longer
17095 forces `.' in the PATH.
17096
17097 2002-01-25 Akim Demaille <akim@epita.fr>
17098
17099 * tests/regression.at (%nonassoc and eof): New.
17100 Suggested by Robert Anisko.
17101
17102 2002-01-24 Akim Demaille <akim@epita.fr>
17103
17104 Bison dumps core when trying to complain about broken input files.
17105 Reported by Cris van Pelt.
17106
17107 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
17108 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
17109 into...
17110 (Invalid inputs): Strengthen: exercise parse_percent_token.
17111
17112 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
17113
17114 * src/Makefile.am: Add bison.c++.
17115 * src/bison.c++: New skeleton.
17116
17117 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
17118
17119 * po/it.po: New.
17120
17121 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
17122
17123 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
17124
17125 2002-01-20 Marc Autret <marc@gnu.org>
17126
17127 * src/files.c (compute_output_file_names): Fix
17128
17129 2002-01-20 Marc Autret <marc@gnu.org>
17130
17131 * tests/output.at: New test.
17132 * src/files.c (compute_base_names): Don't map extensions when
17133 the YACC flag is set, use defaults.
17134 Reported by Evgeny Stambulchik.
17135
17136 2002-01-20 Marc Autret <marc@gnu.org>
17137
17138 * src/system.h: Need to define __attribute__ away for non-GCC
17139 compilers as well (i.e., the vendor C compiler).
17140 Suggested by Albert Chin-A-Young.
17141
17142 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
17143
17144 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
17145 canonical definition.
17146 * src/system.h: Use the canonical definition for PARAMS (avoids
17147 a conflict with the macro from lib/hash.h).
17148
17149 2002-01-11 Akim Demaille <akim@epita.fr>
17150
17151 * configure.in: Use AC_FUNC_STRNLEN.
17152 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
17153
17154 2002-01-09 Akim Demaille <akim@epita.fr>
17155
17156 * src/files.c, src/files.h (output_infix): New.
17157 (tab_extension): Remove.
17158 (compute_base_names): Compute the former, drop the latter.
17159 * src/output.c (prepare): Insert the muscles `output-infix', and
17160 `output-suffix'.
17161 * src/parse-skel.y (string, string.1): New.
17162 (section.header): Use it.
17163 (section.yacc): Remove.
17164 (prefix): Remove too.
17165 * src/scan-skel.l: Adjust.
17166 * src/bison.simple, src/bison.hairy: Adjust.
17167
17168 2002-01-09 Akim Demaille <akim@epita.fr>
17169
17170 * configure.in (WERROR_CFLAGS): Compute it.
17171 * src/Makefile.am (CFLAGS): Pass it.
17172 * tests/atlocal.in (CFLAGS): Idem.
17173 * src/files.c: Fix a few warnings.
17174 (get_extension_index): Remove, unused.
17175
17176 2002-01-08 Akim Demaille <akim@epita.fr>
17177
17178 * src/getargs.c (AS_FILE_NAME): New.
17179 (getargs): Use it to convert DOSish file names.
17180 * src/files.c (base_name): Rename as full_base_name to avoid
17181 clashes with `base_name ()'.
17182 (filename_split): New.
17183 (compute_base_names): N-th rewrite, using filename_split.
17184
17185 2002-01-08 Akim Demaille <akim@epita.fr>
17186
17187 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
17188 New, stolen from the Fileutils 4.1.
17189 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
17190 * configure.in: Check for the presence of memrchr, and of its
17191 prototype.
17192
17193 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
17194
17195 * lib/hash.h (__P): Added definition for this macro.
17196 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
17197 BUILT_SOURCES, to ensure they are generated first.
17198 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
17199 %error-verbose to allow bootstrapping with bison 1.30x.
17200
17201 2002-01-06 Akim Demaille <akim@epita.fr>
17202
17203 * src/reader.c (parse_braces): Don't fetch the next char, the
17204 convention is to fetch on entry.
17205 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
17206 'switch' without a following semicolon.
17207 * tests/regression.at (braces parsing): New.
17208
17209 2002-01-06 Akim Demaille <akim@epita.fr>
17210
17211 Bison is dead wrong in its RR conflict reports.
17212
17213 * tests/torture.at (GNU Cim Grammar): New.
17214 * src/conflicts.c (count_rr_conflicts): Fix.
17215
17216 2002-01-06 Akim Demaille <akim@epita.fr>
17217
17218 Creating package.m4 from configure.ac causes too many problems.
17219
17220 * tests/Makefile.am (package.m4): Create it by hand,
17221 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
17222
17223 2002-01-06 Akim Demaille <akim@epita.fr>
17224
17225 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
17226 skeleton.h.
17227
17228 2002-01-04 Paul Eggert <eggert@twinsun.com>
17229
17230 * doc/bison.texinfo (Debugging):
17231 Remove YYSTDERR; it's no longer defined or used.
17232 Also, s/cstdio.h/cstdio/.
17233
17234 2002-01-03 Akim Demaille <akim@epita.fr>
17235
17236 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
17237
17238 2002-01-03 Akim Demaille <akim@epita.fr>
17239
17240 * src/parse-skel.y (process_skeleton): Don't bind the parser's
17241 tracing code to --trace, wait for a better --trace option, with
17242 args.
17243
17244 2002-01-03 Akim Demaille <akim@epita.fr>
17245
17246 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
17247 The ISO C++ standard is extremely clear about it: stderr is
17248 considered a macro, not a regular symbol (see table 94 `Header
17249 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
17250 Therefore std:: does not apply to it. It still does with fprintf.
17251 Also, s/cstdio.h/cstdio/.
17252
17253 2002-01-03 Akim Demaille <akim@epita.fr>
17254
17255 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
17256 for non system headers.
17257
17258 2002-01-02 Akim Demaille <akim@epita.fr>
17259
17260 Equip the skeleton chain with location tracking, runtime trace,
17261 pure parser and scanner.
17262
17263 * src/parse-skel.y: Request a pure parser, locations, and prefix
17264 renaming.
17265 (%union): Having several members with the same type does not help
17266 type mismatches, simplify.
17267 (YYPRINT, yyprint): New.
17268 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
17269 (skel_error): this.
17270 Handle locations.
17271 * src/scan-skel.l: Adjust to these changes.
17272 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
17273 (LOCATION_PRINT, skel_control_t): New.
17274
17275 2001-12-30 Akim Demaille <akim@epita.fr>
17276
17277 * src/parse-skel.y: Get rid of the shift/reduce conflict:
17278 replace `gb' with BLANKS.
17279 * src/scan-skel.l: Adjust.
17280
17281 2001-12-30 Akim Demaille <akim@epita.fr>
17282
17283 * src/system.h: We don't need nor want bcopy.
17284 Throw away MS-DOS crap: we don't need getpid.
17285 * configure.in: We don't need strndup. It was even causing
17286 problems: because Flex includes the headers *before* us,
17287 _GNU_SOURCE is not defined by config.h, and therefore strndup was
17288 not visible.
17289 * lib/xstrndup.c: New.
17290 * src/scan-skel.l: Use it.
17291 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
17292 * src/parse-skel.y: Use %directives instead of #defines.
17293
17294 2001-12-30 Akim Demaille <akim@epita.fr>
17295
17296 * src/skeleton.h: New.
17297 * src/output.c (output_parser, output_master_parser): Remove, dead
17298 code.
17299 * src/output.h (get_lines_number, actions_output, guards_output)
17300 (token_definitions_output): Prototype them.
17301 * src/parse-skel.y: Add the license notice.
17302 Include output.h and skeleton.h.
17303 (process_skeleton): Returns void, and takes a single parameter.
17304 * src/scan-skel.l: Add the license notice.
17305 Include skeleton.h.
17306 Don't use %option yylineno: it seems that then Flex imagines
17307 REJECT has been used, and therefore it won't reallocate its
17308 buffers (which makes no other sense to me than a bug). It results
17309 in warnings for `unused: yy_flex_realloc'.
17310
17311 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
17312
17313 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
17314 (MUSCLE_INSERT_PREFIX): ...to there.
17315 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
17316 (MUSCLE_INSERT_PREFIX): Move from here...
17317
17318 * src/bison.hairy: Add a section directive. Put braces around muscle
17319 names. This parser skeleton is still broken, but Bison should not
17320 choke on a bad muscle 'syntax'.
17321 * src/bison.simple: Add a section directive. Put braces around muscle
17322 names.
17323
17324 * src/files.h (strsuffix, stringappend): Add declarations.
17325 (tab_extension): Add declaration.
17326 (short_base_name): Add declaration.
17327
17328 * src/files.c (strsuffix, stringappend): No longer static. These
17329 functions are used in the skeleton parser.
17330 (tab_extension): New.
17331 (compute_base_names): Use the computations done in this function
17332 to guess if the generated parsers should have '.tab' in their
17333 names.
17334 (short_base_name): No longer static.
17335
17336 * src/output.c (output_skeleton): New.
17337 (output): Disable call to output_master_parser, and give a try to
17338 a new skeleton handling system.
17339 (guards_output, actions_output): No longer static.
17340 (token_definitions_output, get_lines_number): No longer static.
17341
17342 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
17343
17344 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
17345 parse-skel.y.
17346
17347 * src/parse-skel.y: New file.
17348 * src/scan-skel.l: New file.
17349
17350 2001-12-29 Akim Demaille <akim@epita.fr>
17351
17352 %name-prefix is broken.
17353
17354 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
17355 Adjust all dependencies.
17356 * tests/headers.at (export YYLTYPE): Strengthen this test: use
17357 %name-prefix.
17358
17359 Renaming yylval but not yylloc is not consistent. Now we do.
17360
17361 * src/bison.simple: Prefix yylloc if used.
17362 * doc/bison.texinfo (Decl Summary): Document that.
17363
17364 2001-12-29 Akim Demaille <akim@epita.fr>
17365
17366 * doc/bison.texinfo: Promote `%long-directive' over
17367 `%long_directive'.
17368 Remove all references to fixed-output-files, yacc is enough.
17369
17370 2001-12-29 Akim Demaille <akim@epita.fr>
17371
17372 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
17373 user prologue. These are defaults.
17374 * tests/actions.at (Mid-rule actions): Make sure the user can
17375 define YYDEBUG and YYERROR_VERBOSE.
17376
17377 2001-12-29 Akim Demaille <akim@epita.fr>
17378
17379 * src/output.c (header_output): Don't forget to export YYLTYPE and
17380 yylloc.
17381 * tests/headers.at (export YYLTYPE): New, make sure it does.
17382 * tests/regression.at (%union and --defines, Invalid CPP headers):
17383 Move to...
17384 * tests/headers.at: here.
17385
17386 2001-12-29 Akim Demaille <akim@epita.fr>
17387
17388 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
17389
17390 2001-12-29 Akim Demaille <akim@epita.fr>
17391
17392 * tests/actions.at (Mid-rule actions): Output on a single line
17393 instead of several.
17394
17395 2001-12-29 Akim Demaille <akim@epita.fr>
17396
17397 * doc/bison.texinfo: Formatting changes.
17398
17399 2001-12-29 Akim Demaille <akim@epita.fr>
17400
17401 Don't store the token defs in a muscle, just be ready to output it
17402 on command. Now possible via `symbols'. Fixes a memory leak.
17403
17404 * src/output.c (token_definitions_output): New.
17405 (output_parser, header_output): Use it.
17406 * src/reader.c (symbols_save): Remove.
17407
17408 2001-12-29 Akim Demaille <akim@epita.fr>
17409
17410 * src/bison.simple: Do not provide a default for YYSTYPE and
17411 YYLTYPE before the user's prologue. Otherwise it's hardly... a
17412 default.
17413
17414 2001-12-29 Akim Demaille <akim@epita.fr>
17415
17416 Mid-rule actions are simply... ignored!
17417
17418 * src/reader.c (readgram): Be sure to attach mid-rule actions to
17419 the empty-rule associated to the dummy symbol, not to the host
17420 rule.
17421 * tests/actions.at (Mid-rule actions): New.
17422
17423 2001-12-29 Akim Demaille <akim@epita.fr>
17424
17425 Memory leak.
17426
17427 * src/reader.c (reader): Free grammar.
17428
17429 2001-12-29 Akim Demaille <akim@epita.fr>
17430
17431 Memory leak.
17432
17433 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
17434 since it allocates it for each state, although only one is needed.
17435 (allocate_storage): Do it here.
17436
17437 2001-12-29 Akim Demaille <akim@epita.fr>
17438
17439 * src/options.h, src/options.c (create_long_option_table): Rename
17440 as...
17441 (long_option_table_new): this, with a clearer prototype.
17442 (percent_table): Remove, unused,
17443 * src/getargs.c (getargs): Adjust.
17444
17445 2001-12-29 Akim Demaille <akim@epita.fr>
17446
17447 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
17448 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
17449 as states.
17450
17451 2001-12-29 Akim Demaille <akim@epita.fr>
17452
17453 * src/lalr.c (build_relations): Rename `states' as `states1'.
17454 Sorry, I don't understand exactly what it is, no better name...
17455
17456 2001-12-29 Akim Demaille <akim@epita.fr>
17457
17458 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
17459 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
17460 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
17461 as rules.
17462
17463 2001-12-29 Akim Demaille <akim@epita.fr>
17464
17465 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
17466 ago.
17467
17468 2001-12-29 Akim Demaille <akim@epita.fr>
17469
17470 * src/reader.c, src/reader.h (user_toknums): Remove.
17471 Adjust all users to use symbols[i]->user_token_number.
17472
17473 2001-12-29 Akim Demaille <akim@epita.fr>
17474
17475 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
17476 Adjust all users to use symbols[i]->prec or ->assoc.
17477
17478 2001-12-29 Akim Demaille <akim@epita.fr>
17479
17480 * src/reader.c, src/reader.h (tags): Remove.
17481 Adjust all users to use symbols[i]->tag.
17482
17483 2001-12-29 Akim Demaille <akim@epita.fr>
17484
17485 * src/gram.h, src/gram.c (symbols): New, similar to state_table
17486 and rule_table.
17487 * src/reader.c (packsymbols): Fill this table.
17488 Drop sprec.
17489 * src/conflicts.c (resolve_sr_conflict): Adjust.
17490 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
17491 single table.
17492 Use symbols[i]->tag instead of tags[i].
17493
17494 2001-12-29 Akim Demaille <akim@epita.fr>
17495
17496 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
17497 In addition, put a comment in there, to replace...
17498 * tests/regression.at (%union and C comments): Remove.
17499
17500 2001-12-29 Akim Demaille <akim@epita.fr>
17501
17502 * tests/regression.at (Web2c Actions): Blindly move the actual
17503 output as expected output. The contents *seem* right to me, but I
17504 can't pretend reading perfectly parser tables... Nonetheless, all
17505 the other tests pass correctly, the table look OK, even though the
17506 presence of `$axiom' is to be noted: AFAICS it is useless (but
17507 harmless).
17508
17509 2001-12-29 Akim Demaille <akim@epita.fr>
17510
17511 * src/reader.c (readgram): Don't add the rule 0 if there were no
17512 rules read. In other words, add it _after_ having performed
17513 grammar sanity checks.
17514 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
17515
17516 2001-12-29 Akim Demaille <akim@epita.fr>
17517
17518 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
17519 visible, and some states have now a different number.
17520
17521 2001-12-29 Akim Demaille <akim@epita.fr>
17522
17523 * src/reader.c (readgram): Bind the initial rule's lineno to that
17524 of the first rule.
17525 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
17526 (Solved SR Conflicts): Adjust rule 0's line number.
17527
17528 2001-12-29 Akim Demaille <akim@epita.fr>
17529
17530 Fix the `GAWK Grammar' failure.
17531
17532 * src/LR0.c (final_state): Initialize to -1 so that we do compute
17533 the reductions of the first state which was mistakenly confused
17534 with the final state because precisely final_state was initialized
17535 to 0.
17536 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
17537 now noticed by Bison.
17538 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
17539 have a reduction on $default.
17540
17541 2001-12-29 Akim Demaille <akim@epita.fr>
17542
17543 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
17544 rule line numbers.
17545 * src/closure.c (print_closure): Likewise.
17546 * src/derives.c (print_derives): Likewise.
17547 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
17548 now.
17549
17550 2001-12-29 Akim Demaille <akim@epita.fr>
17551
17552 * src/lalr.c (lookaheads_print): New.
17553 (lalr): Call it when --trace-flag.
17554 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
17555 are dumped.
17556
17557 2001-12-29 Akim Demaille <akim@epita.fr>
17558
17559 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
17560 when walking through ritem, even via rule->rhs.
17561 * src/reduce.c (dump_grammar, useful_production, reduce_output)
17562 (useful_production, useless_nonterminals): Likewise.
17563 (reduce_grammar_tables): Likewise, plus update nritems.
17564 * src/nullable.c (set_nullable): Likewise.
17565 * src/lalr.c (build_relations): Likewise.
17566 * tests/sets.at (Nullable): Adjust.
17567 Fortunately, now, the $axiom is no longer nullable.
17568
17569 2001-12-29 Akim Demaille <akim@epita.fr>
17570
17571 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
17572 the 0-sentinel.
17573 * src/gram.c (ritem_longest_rhs): Likewise.
17574 * src/reduce.c (nonterminals_reduce): Likewise.
17575 * src/print_graph.c (print_graph): Likewise.
17576 * src/output.c (output_rule_data): Likewise.
17577 * src/nullable.c (set_nullable): Likewise.
17578
17579 2001-12-29 Akim Demaille <akim@epita.fr>
17580
17581 * src/output.c: Comment changes.
17582
17583 2001-12-27 Paul Eggert <eggert@twinsun.com>
17584
17585 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
17586 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
17587 Sparc, as they were causing more porting problems than the
17588 (minor) performance improvement was worth.
17589
17590 Also, catch up with 1.31's YYSTD.
17591
17592 2001-12-27 Akim Demaille <akim@epita.fr>
17593
17594 * src/output.c (output_gram): Rely on nritems, not the
17595 0-sentinel. See below.
17596 Use -1 as separator, not 0.
17597 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
17598 Rely on -1 as separator in yyrhs, instead of 0.
17599 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
17600 twice `Now at end of input', therefore there are two lines less to
17601 expect.
17602
17603 2001-12-27 Akim Demaille <akim@epita.fr>
17604
17605 * tests/regression.at (Unresolved SR Conflicts):
17606 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
17607 below.
17608
17609 2001-12-27 Akim Demaille <akim@epita.fr>
17610
17611 * src/LR0.c (new_state): Recognize the final state by the fact it
17612 is reached by eoftoken.
17613 (insert_start_shifting_state, insert_eof_shifting_state)
17614 (insert_accepting_state, augment_automaton): Remove, since now
17615 these states are automatically computed from the initial state.
17616 (generate_states): Adjust.
17617 * src/print.c: When reporting a rule number to the user, substract
17618 1, so that the axiom rule is rule 0, and the first user rule is 1.
17619 * src/reduce.c: Likewise.
17620 * src/print_graph.c (print_core): For the time being, just as for
17621 the report, depend upon --trace-flags to dump the full set of
17622 items.
17623 * src/reader.c (readgram): Once the grammar read, insert the rule
17624 0: `$axiom: START-SYMBOL $'.
17625 * tests/set.at: Adjust: rule 0 is now displayed, and since the
17626 number of the states has changed (the final state is no longer
17627 necessarily the last), catch up.
17628
17629 2001-12-27 Akim Demaille <akim@epita.fr>
17630
17631 Try to make the use of the eoftoken valid. Given that its value
17632 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
17633 is used instead of > 0 where appropriate, (ii), depend upon nritems
17634 instead of the 0-sentinel.
17635
17636 * src/gram.h, src/gram.c (nritems): New.
17637 Expected to be duplication of nitems, but for the time being...
17638 * src/reader.c (packgram): Assert nritems and nitems are equal.
17639 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
17640 * src/closure.c (print_closure, print_fderives): Likewise.
17641 * src/gram.c (ritem_print): Likewise.
17642 * src/print.c (print_core, print_grammar): Likewise.
17643 * src/print_graph.c: Likewise.
17644
17645 2001-12-27 Akim Demaille <akim@epita.fr>
17646
17647 * src/main.c (main): If there are complains after grammar
17648 reductions, then output the report anyway if requested, then die.
17649 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
17650 * src/reader.c (eoftoken): New.
17651 (parse_token_decl): If the token being defined has value `0', it
17652 is the eoftoken.
17653 (packsymbols): No longer hack `tags' to insert `$' by hand.
17654 Be sure to preserve the value of the eoftoken.
17655 (reader): Make sure eoftoken is defined.
17656 Initialize nsyms to 0: now eoftoken is created just like the others.
17657 * src/print.c (print_grammar): Don't special case the eof token.
17658 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
17659 lie anyway, albeit pleasant.
17660 * tests/calc.at: Exercise error messages with eoftoken.
17661 Change the grammar so that empty input is invalid.
17662 Adjust expectations.
17663 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
17664
17665 2001-12-27 Akim Demaille <akim@epita.fr>
17666
17667 * configure.in: Check the protos of strchr ans strspn.
17668 Replace strchr if needed.
17669 * src/system.h: Provide the protos of strchr, strspn and memchr if
17670 missing.
17671 * lib/strchr.c: New.
17672 * src/reader.c (symbols_save): Use strchr.
17673
17674 2001-12-27 Akim Demaille <akim@epita.fr>
17675
17676 * src/print.c, src/print_graph.c (escape): New.
17677 Use it to quote the TAGS outputs.
17678 * src/print_graph.c (print_state): Now errors are in red, and
17679 reductions in green.
17680 Prefer high to wide: output the state number on a line of its own.
17681
17682 2001-12-27 Akim Demaille <akim@epita.fr>
17683
17684 * src/state.h, src/state.c (reductions_new): New.
17685 * src/LR0.c (set_state_table): Let all the states have a
17686 `reductions', even if reduced to 0.
17687 (save_reductions): Adjust.
17688 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
17689 * src/print.c (print_reductions, print_actions): Adjust.
17690 * src/output.c (action_row): Adjust.
17691
17692 2001-12-27 Akim Demaille <akim@epita.fr>
17693
17694 * src/state.h, src/state.c (errs_new, errs_dup): New.
17695 * src/LR0.c (set_state_table): Let all the states have an errs,
17696 even if reduced to 0.
17697 * src/print.c (print_errs, print_reductions): Adjust.
17698 * src/output.c (output_actions, action_row): Adjust.
17699 * src/conflicts.c (resolve_sr_conflict): Adjust.
17700
17701 2001-12-27 Akim Demaille <akim@epita.fr>
17702
17703 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
17704
17705 2001-12-27 Akim Demaille <akim@epita.fr>
17706
17707 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
17708 * src/print.c: here.
17709 (lookaheadset, shiftset): New, used as additional storage by
17710 print_reductions.
17711 (print_results): Adjust.
17712 (print_shifts, print_gotos, print_errs): New, extracted from...
17713 (print_actions): here.
17714 * src/print_graph.c (print_actions): Remove dead code.
17715
17716 2001-12-27 Akim Demaille <akim@epita.fr>
17717
17718 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
17719 `$n' and `@n'.
17720
17721 2001-12-27 Akim Demaille <akim@epita.fr>
17722
17723 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
17724 (build_relations): Adjust.
17725
17726 2001-12-27 Akim Demaille <akim@epita.fr>
17727
17728 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
17729 duplication.
17730
17731 2001-12-27 Akim Demaille <akim@epita.fr>
17732
17733 * src/reader.c (packgram): Catch nitems overflows.
17734
17735 2001-12-27 Akim Demaille <akim@epita.fr>
17736
17737 * src/files.c, src/files.h (guard_obstack): Remove.
17738 * src/output.c (output): Adjust.
17739 * src/reader.c (parse_braces): New, factoring...
17740 (copy_action, copy_guard): these two which are renamed as...
17741 (parse_action, parse_guard): these.
17742 As a voluntary consequence, using braces around guards is now
17743 mandatory.
17744
17745 2001-12-27 Akim Demaille <akim@epita.fr>
17746
17747 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
17748 * src/reader.c (symbol_list): `guard' and `guard_line' are new
17749 members.
17750 (symbol_list_new): Adjust.
17751 (copy_action): action_line is the first line, not the last.
17752 (copy_guard): Just as for actions, store the `action' only, not
17753 the switch/case/break flesh.
17754 Don't parse the user action that might follow the guard, let...
17755 (readgram): do it, i.e., now, there can be an action after a
17756 guard.
17757 In other words the guard is just explicitly optional.
17758 (packgram): Adjust.
17759 * src/output.c (guards_output): New.
17760 (output_parser): Call it when needed.
17761 (output): Also free the guard and attrs obstacks.
17762 * src/files.c, src/files.h (obstack_save): Remove.
17763 (output_files): Remove.
17764 As a result, if one needs the former `.act' file, using an
17765 appropriate skeleton which requires actions and guards is now
17766 required.
17767 * src/main.c (main): Adjust.
17768 * tests/semantic.at: New.
17769 * tests/regression.at: Use `input.y' as input file name.
17770 Avoid 8+3 problems by requiring input.c when the test needs the
17771 parser.
17772
17773 2001-12-27 Akim Demaille <akim@epita.fr>
17774
17775 * src/reader.c (symbol_list_new): Be sure to initialize all the
17776 fields.
17777
17778 2001-12-27 Akim Demaille <akim@epita.fr>
17779
17780 All the hacks using a final pseudo state are now useless.
17781
17782 * src/LR0.c (set_state_table): state_table holds exactly nstates.
17783 * src/lalr.c (nLA): New.
17784 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
17785 instead of lookaheadsp from the pseudo state (nstate + 1).
17786
17787 2001-12-27 Akim Demaille <akim@epita.fr>
17788
17789 * src/output.c (action_row, token_actions): Use a state_t instead
17790 of a integer, and nlookaheads instead of the following state's
17791 lookaheadsp.
17792
17793 2001-12-27 Akim Demaille <akim@epita.fr>
17794
17795 * src/conflicts.c (log_resolution, flush_shift)
17796 (resolve_sr_conflict, set_conflicts, solve_conflicts)
17797 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
17798 (conflicts_print, print_reductions): Use a state_t instead of an
17799 integer when referring to a state.
17800 As much as possible, depend upon nlookaheads, instead of the
17801 `lookaheadsp' member of the following state (since lookaheads of
17802 successive states are successive, the difference between state n + 1
17803 and n served as the number of lookaheads for state n).
17804 * src/lalr.c (add_lookback_edge): Likewise.
17805 * src/print.c (print_core, print_actions, print_state)
17806 (print_results): Likewise.
17807 * src/print_graph.c (print_core, print_actions, print_state)
17808 (print_graph): Likewise.
17809 * src/conflicts.h: Adjust.
17810
17811 2001-12-27 Akim Demaille <akim@epita.fr>
17812
17813 * src/bison.hairy: Formatting/comment changes.
17814 ANSIfy.
17815 Remove `register' indications.
17816 Add plenty of `static'.
17817
17818 2001-12-27 Akim Demaille <akim@epita.fr>
17819
17820 * src/output.c (prepare): Drop the muscle `ntbase' which
17821 duplicates ntokens.
17822 * src/bison.simple: Formatting/comment changes.
17823 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
17824 is an undocumented synonym.
17825
17826 2001-12-22 Akim Demaille <akim@epita.fr>
17827
17828 * src/output.c (output_table_data): Change the prototype to use
17829 `int' for array ranges: some invocations do pass an int, not a
17830 short.
17831 Reported by Wayne Green.
17832
17833 2001-12-22 Akim Demaille <akim@epita.fr>
17834
17835 Some actions of web2c.y are improperly triggered.
17836 Reported by Mike Castle.
17837
17838 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
17839 * tests/regression.at (Web2c): Rename as...
17840 (Web2c Report): this.
17841 (Web2c Actions): New.
17842
17843 2001-12-22 Akim Demaille <akim@epita.fr>
17844
17845 Reductions in web2c.y are improperly reported.
17846 Reported by Mike Castle.
17847
17848 * src/conflicts.c (print_reductions): Fix.
17849 * tests/regression.at (Web2c): New.
17850
17851 2001-12-18 Akim Demaille <akim@epita.fr>
17852
17853 Some host fail on `assert (!"foo")', which expands to
17854 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
17855 Reported by Nelson Beebee.
17856
17857 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
17858 `#define it_succeeded 0' and `assert (it_succeeded)'.
17859
17860 2001-12-17 Marc Autret <autret_m@epita.fr>
17861
17862 * src/bison.simple: Don't hard code the skeleton line and filename.
17863 * src/output.c (output_parser): Rename 'line' as 'output_line'.
17864 New line counter 'skeleton_line' (skeleton-line muscle).
17865
17866 2001-12-17 Paul Eggert <eggert@twinsun.com>
17867
17868 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
17869 YYDEBUG must be defined to a nonzero value.
17870
17871 * src/bison.simple (yytname): Do not assume that the user defines
17872 YYDEBUG to a properly parenthesized expression.
17873
17874 2001-12-17 Akim Demaille <akim@epita.fr>
17875
17876 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
17877 nlookaheads is a new member.
17878 Adjust all users.
17879 * src/lalr.h (nlookaheads): Remove this orphan declaration.
17880 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
17881 state.
17882
17883 2001-12-17 Akim Demaille <akim@epita.fr>
17884
17885 * src/files.h, src/files.c (open_files, close_files): Remove.
17886 * src/main.c (main): Don't open/close files, nor invoke lex_free,
17887 let...
17888 * src/reader.c (reader): Do it.
17889
17890 2001-12-17 Akim Demaille <akim@epita.fr>
17891
17892 * src/conflicts.c (print_reductions): Formatting changes.
17893
17894 2001-12-17 Akim Demaille <akim@epita.fr>
17895
17896 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
17897 (flush_reduce): New.
17898 (resolve_sr_conflict): Adjust.
17899
17900 2001-12-17 Akim Demaille <akim@epita.fr>
17901
17902 * src/output.c (output_obstack): Be static and rename as...
17903 (format_obstack): this, to avoid any confusion with files.c's
17904 output_obstack.
17905 * src/reader.h (muscle_obstack): Move to...
17906 * src/output.h: here, since it's defined in output.c.
17907
17908 2001-12-17 Akim Demaille <akim@epita.fr>
17909
17910 * src/output.c (action_row, save_column, default_goto)
17911 (sort_actions, matching_state, pack_vector): Better variable
17912 locality.
17913
17914 2001-12-17 Akim Demaille <akim@epita.fr>
17915
17916 * src/output.c: Various formatting changes.
17917
17918 2001-12-17 Akim Demaille <akim@epita.fr>
17919
17920 * src/files.c (output_files): Free the output_obstack.
17921 * src/main.c (main): Call print and print_graph conditionally.
17922 * src/print.c (print): Work unconditionally.
17923 * src/print_graph.c (print_graph): Work unconditionally.
17924 * src/conflicts.c (log_resolution): Output only if verbose_flag.
17925
17926 2001-12-16 Marc Autret <autret_m@epita.fr>
17927
17928 * src/output.c (actions_output): Fix. When we use %no-lines,
17929 there is one less line per action.
17930
17931 2001-12-16 Marc Autret <autret_m@epita.fr>
17932
17933 * src/bison.simple: Remove a useless #line directive.
17934 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
17935 * src/output.c (get_lines_number): New.
17936 (output_parser): Adjust, now takes care about the lines of a
17937 output muscles.
17938 Fix line numbering.
17939 (actions_output): Computes the number of lines taken by actions.
17940 (output_master_parser): Insert new skeleton which is the name of
17941 the output parser file name.
17942
17943 2001-12-15 Marc Autret <autret_m@epita.fr>
17944
17945 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
17946
17947 2001-12-15 Marc Autret <autret_m@epita.fr>
17948
17949 * src/output.c (output_gram): Keep track of the hairy one.
17950
17951 2001-12-15 Akim Demaille <akim@epita.fr>
17952
17953 Make `make distcheck' work.
17954
17955 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
17956 system.h which uses libgettext.h.
17957
17958 2001-12-15 Akim Demaille <akim@epita.fr>
17959
17960 * src/nullable.c (set_nullable): Useless rules must be skipped,
17961 otherwise, since we range over their symbols, we might look at a
17962 nonterminal which no longer ``exists'', i.e., it is not counted in
17963 `nvars', hence we overflow our arrays.
17964
17965 2001-12-15 Akim Demaille <akim@epita.fr>
17966
17967 The header can also be produced directly, without any obstack!
17968 Yahoo!
17969
17970 * src/files.c, src/files.h (defines_obstack): Remove.
17971 (compute_header_macro): Global.
17972 (defines_obstack_save): Remove.
17973 * src/reader.c (parse_union_decl): No longer output to
17974 defines_obstack: its content can be found in the `stype' muscle
17975 anyway.
17976 (output_token_translations): Merge into...
17977 (symbols_output): this.
17978 Rename as...
17979 (symbols_save): this.
17980 (reader): Adjust.
17981 * src/output.c (header_output): New.
17982 (output): Call it.
17983
17984 2001-12-15 Akim Demaille <akim@epita.fr>
17985
17986 * src/reader.c (parse_union_decl): Instead of handling two obstack
17987 simultaneously, use one to define the `stype' muscle, and use the
17988 value of the latter to fill defines_obstack.
17989 (copy_comment): Remove.
17990 (copy_comment2): Work for a single obstack.
17991 Rename as...
17992 (copy_comment): this.
17993
17994 2001-12-15 Akim Demaille <akim@epita.fr>
17995
17996 * src/lex.c, src/lex.h (xgetc): No longer static.
17997 * src/reader.c (parse_union_decl): Revamp.
17998
17999 2001-12-15 Akim Demaille <akim@epita.fr>
18000
18001 Still making progress in separating Bison into (i) input, (ii)
18002 process, (iii) output: now we can directly output the parser file
18003 without using table_obstack at all.
18004
18005 * src/files.c, src/files.h (table_obstack): Bye bye.
18006 (parser_file_name): New.
18007 * src/files.c (compute_output_file_names): Compute it.
18008 * src/output.c (actions_output, output_parser)
18009 (output_master_parser): To a file instead of an obstack.
18010
18011 2001-12-15 Akim Demaille <akim@epita.fr>
18012
18013 Attach actions to rules, instead of pre-outputting them to
18014 actions_obstack.
18015
18016 * src/gram.h (rule_t): action and action_line are new members.
18017 * src/reader.c (symbol_list): Likewise.
18018 (copy_action): Save the actions within the rule.
18019 (packgram): Save them in rule_table.
18020 * src/output.c (actions_output): New.
18021 (output_parser): Use it on `%%actions'.
18022 (output_rule_data): Don't free rule_table.
18023 (output): Do it.
18024 (prepare): Don't save the `action' muscle.
18025 * src/bison.simple: s/%%action/%%actions/.
18026
18027 2001-12-15 Akim Demaille <akim@epita.fr>
18028
18029 * src/reader.c (copy_action): When --yacc, don't append a `;'
18030 to the user action: let it fail if lacking.
18031 Suggested by Arnold Robbins and Tom Tromey.
18032
18033 2001-12-14 Akim Demaille <akim@epita.fr>
18034
18035 * src/lex.c (literalchar): Simply return the char you decoded, non
18036 longer mess around with obstacks and int pointers.
18037 Adjust all callers.
18038
18039 2001-12-14 Akim Demaille <akim@epita.fr>
18040
18041 * src/lex.c (literalchar): Don't escape the special characters,
18042 just decode them, and keep them as char (before, eol was output as
18043 the 2 char string `\n' etc.).
18044 * src/output.c (output_rule_data): Use quotearg to output the
18045 token strings.
18046
18047 2001-12-13 Paul Eggert <eggert@twinsun.com>
18048
18049 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
18050 Do not infringe on the global user namespace when using C++.
18051 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
18052 All uses of `fprintf' and `stderr' changed.
18053
18054 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
18055
18056 2001-12-13 Akim Demaille <akim@epita.fr>
18057
18058 The computation of nullable is broken: it doesn't handle empty
18059 RHS's properly.
18060
18061 * tests/torture.at (GNU AWK Grammar): New.
18062 * tests/sets.at (Nullable): New.
18063 * src/nullable.c (set_nullable): Instead of blindly looping over
18064 `ritems', loop over the rules, and then over their rhs's.
18065
18066 Work around Autotest bugs.
18067
18068 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
18069 frame, because Autotest understand lines starting with a `+' as
18070 traces from the shell. Then, they are not processed properly.
18071 Admittedly an Autotest bug, but we don't have time to wait for
18072 Autotest to catch up.
18073 * tests/regression.at (Broken Closure): Adjust to the new table
18074 frames.
18075 Move to...
18076 * tests/sets.at: here.
18077
18078 2001-12-13 Akim Demaille <akim@epita.fr>
18079
18080 * src/closure.c (closure): Use nrules instead of playing tricks
18081 with BITS_PER_WORD.
18082
18083 2001-12-13 Akim Demaille <akim@epita.fr>
18084
18085 * src/print.c (print_actions): Output the handling of `$' as the
18086 traces do: shifting the token EOF. Before EOF was treated as a
18087 nonterminal.
18088 * tests/regression.at: Adjust some tests.
18089 * src/print_graph.c (print_core): Complete the set of items via
18090 closure. The next-to-final and final states are still unsatisfying,
18091 but that's to be addressed elsewhere.
18092 No longer output the rule numbers, but do output the state number.
18093 A single loop for the shifts + gotos is enough, but picked a
18094 distinct color for each.
18095 (print_graph): Initialize and finalize closure.
18096
18097 2001-12-13 Akim Demaille <akim@epita.fr>
18098
18099 * src/reader.c (readgram): Remove dead code, an strip useless
18100 braces.
18101 (get_type): Remove, unused.
18102
18103 2001-12-12 Akim Demaille <akim@epita.fr>
18104
18105 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
18106 on that of lib/error.c.
18107
18108 2001-12-12 Akim Demaille <akim@epita.fr>
18109
18110 Some hosts don't like `/' in includes.
18111
18112 * src/system.h: Include libgettext.h without qualifying the path.
18113 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
18114 $(top_srcdir).
18115
18116 2001-12-11 Marc Autret <autret_m@epita.fr>
18117
18118 * src/output.c (output_parser): Remove useless muscle.
18119
18120 2001-12-11 Marc Autret <autret_m@epita.fr>
18121
18122 * src/bison.simple: Remove #line just before %%epilogue. It
18123 is now handled in ...
18124 * src/reader.c (read_additionnal_code): Add the output of a
18125 #line for the epilogue.
18126
18127 2001-12-10 Marc Autret <autret_m@epita.fr>
18128
18129 * src/reader.c (copy_definition): Re-use CPP-outed code which
18130 replace precedent remove.
18131 * src/bison.simple: Remove #line before %%prologue because
18132 %%input-line is wrong at this time.
18133
18134 2001-12-10 Marc Autret <autret_m@epita.fr>
18135
18136 * src/reader.c (symbols_output): Clean up.
18137 * src/output.c (output_gram, output): Clean up.
18138
18139 2001-12-10 Akim Demaille <akim@epita.fr>
18140
18141 * src/lalr.c (initialize_lookaheads): New. Extracted from...
18142 * src/LR0.c (set_state_table): here.
18143 * src/lalr.c (lalr): Call it.
18144
18145 2001-12-10 Akim Demaille <akim@epita.fr>
18146
18147 * src/state.h (shifts): Remove the `number' member: shifts are
18148 attached to state, hence no longer need to be labelled with a
18149 state number.
18150
18151 2001-12-10 Akim Demaille <akim@epita.fr>
18152
18153 Now that states have a complete set of members, the linked list of
18154 shifts is useless: just fill directly the state's shifts member.
18155
18156 * src/state.h (shifts): Remove the `next' member.
18157 * src/LR0.c (first_state, last_state): Remove.
18158 Adjust the callers.
18159 (augment_automaton): Don't look for the shifts that must be added
18160 a shift on EOF: it is those of the state we looked for! But now,
18161 since shifts are attached, it is no longer needed to looking
18162 merely by its id: its number.
18163
18164 2001-12-10 Akim Demaille <akim@epita.fr>
18165
18166 * src/LR0.c (augment_automaton): Better variable locality.
18167 Remove an impossible branch: if there is a state corresponding to
18168 the start symbol being shifted, then there is shift for the start
18169 symbol from the initial state.
18170
18171 2001-12-10 Akim Demaille <akim@epita.fr>
18172
18173 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
18174 only when appropriate: when insert_start_shifting_state' is not
18175 invoked.
18176 * tests/regression.at (Rule Line Numbers): Adjust.
18177
18178 2001-12-10 Akim Demaille <akim@epita.fr>
18179
18180 * src/LR0.c (augment_automaton): Now that all states have shifts,
18181 merge the two cases addition shifts to the initial state.
18182
18183 2001-12-10 Akim Demaille <akim@epita.fr>
18184
18185 * src/lalr.c (set_state_table): Move to...
18186 * src/LR0.c: here.
18187 * src/lalr.c (lalr): Don't call it...
18188 * src/LR0.c (generate_states): do it.
18189 * src/LR0.h (first_state): Remove, only the table is used.
18190
18191 2001-12-10 Akim Demaille <akim@epita.fr>
18192
18193 * src/LR0.h (first_shift, first_reduction): Remove.
18194 * src/lalr.c: Don't use first_shift: find shifts through the
18195 states.
18196
18197 2001-12-10 Akim Demaille <akim@epita.fr>
18198
18199 * src/LR0.c: Attach shifts to states as soon as they are
18200 computed.
18201 * src/lalr.c (set_state_table): Instead of assigning shifts to
18202 state, just assert that the mapping was properly done.
18203
18204 2001-12-10 Akim Demaille <akim@epita.fr>
18205
18206 * src/LR0.c (insert_start_shift): Rename as...
18207 (insert_start_shifting_state): this.
18208 (insert_eof_shifting_state, insert_accepting_state): New.
18209 (augment_automaton): Adjust.
18210 Better locality of the variables.
18211 When looking if the start_symbol is shifted from the initial
18212 state, using `while (... symbol != start_symbol ...)' sounds
18213 better than `while (... symbol < start_symbol ...)': If fail
18214 to see how the order between symbols could be relevant!
18215
18216 2001-12-10 Akim Demaille <akim@epita.fr>
18217
18218 * src/getargs.h: Don't declare `spec_name_prefix' and
18219 `spec_file_prefix', declared by src/files.h.
18220 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
18221 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
18222 * src/output.c (prepare): Adjust.
18223 * src/reader.c (symbols_output): Likewise.
18224 * src/vmsgetargs.c: Vaguely adjust, but who cares?
18225
18226 2001-12-10 Akim Demaille <akim@epita.fr>
18227
18228 * src/muscle_tab.c (muscle_init): NULL is a better default than
18229 `"0"'.
18230
18231 2001-12-10 Akim Demaille <akim@epita.fr>
18232
18233 * src/reader.c (reader): Calling symbols_output once is enough.
18234
18235 2001-12-10 Akim Demaille <akim@epita.fr>
18236
18237 Now that states have a complete set of members, the linked list of
18238 reductions is useless: just fill directly the state's reductions
18239 member.
18240
18241 * src/state.h (struct reductions): Remove member `number' and
18242 `next'.
18243 * src/LR0.c (first_reduction, last_reduction): Remove.
18244 (save_reductions): Don't link the new reductions, store them in
18245 this_state.
18246 * src/lalr.c (set_state_table): No need to attach reductions to
18247 states, it's already done.
18248 * src/output.c (output_actions): No longer free the shifts, then
18249 the reductions, then the states: free all the states and their
18250 members.
18251
18252 2001-12-10 Akim Demaille <akim@epita.fr>
18253
18254 * src/options.c (OPTN, DRTV, BOTH): New.
18255 (option_table): Use them.
18256
18257 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
18258 the job of system.h.
18259 * src/options.c: Don't include stdio.h and xalloc.h for the same
18260 reasons.
18261
18262 2001-12-10 Akim Demaille <akim@epita.fr>
18263
18264 * src/output.c (output, prepare): Make sure the values of the
18265 muscles `action' and `prologue' are 0-terminated.
18266
18267 2001-12-10 Akim Demaille <akim@epita.fr>
18268
18269 Clean up GCC warnings.
18270
18271 * src/reader.c (copy_action): `buf' is not used.
18272 (parse_skel_decl): Be static.
18273 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
18274 * src/options.h (create_long_option_table): Have a real prototype.
18275 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
18276 (hash_delete_at): Return const void *.
18277 Adjust casts to preserve the const.
18278
18279 2001-12-10 Akim Demaille <akim@epita.fr>
18280
18281 * configure.in: Require 2.52g.
18282 M4 is not needed, but AUTOM4TE is.
18283 * m4/m4.m4: Remove.
18284 * tests/Makefile.am: Adjust.
18285
18286 2001-12-10 Akim Demaille <akim@epita.fr>
18287
18288 One structure for states is enough, even though theoretically
18289 there are LR(0) states and LALR(1) states.
18290
18291 * src/lalr.h (state_t): Remove.
18292 (state_table): Be state_t **, not state_t *.
18293 * src/state.h (core, CORE_ALLOC): Rename as...
18294 (state_t, STATE_ALLOC): this.
18295 Add the LALR(1) members: shifts, reductions, errs.
18296 * src/LR0.c (state_table): Rename as...
18297 (state_hash): this, to avoid name clashes with the global
18298 `state_table'.
18299 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
18300 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
18301
18302 2001-12-10 Akim Demaille <akim@epita.fr>
18303
18304 Bison dumps core on bash.y.
18305 Reported by Pascal Bart.
18306
18307 * src/warshall.c (bitmatrix_print): New.
18308 (TC): Use it.
18309 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
18310 j must be the outer loop.
18311 * tests/regression.at (Broken Closure): New.
18312
18313 2001-12-05 Akim Demaille <akim@epita.fr>
18314
18315 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
18316 its argument.
18317 Reported by Peter Hamorsky.
18318
18319 2001-12-05 Akim Demaille <akim@epita.fr>
18320
18321 * src/conflicts.c (err_table): Remove.
18322 (resolve_sr_conflict): Adjust.
18323 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
18324 Rename as...
18325 (state_t.reductions, state_t.shifts): this.
18326
18327 2001-12-05 Akim Demaille <akim@epita.fr>
18328
18329 * src/reduce.c (reduce_grammar_tables): No longer disable the
18330 removal of useless rules via CPP but via `if (0)', so that the
18331 compiler still check the code is valid.
18332 For instance, it should have noticed `rline' no longer exists: use
18333 the `line' member of rule_t.
18334 * src/gram.c (dummy, rline): Remove, unused.
18335
18336 2001-12-05 Akim Demaille <akim@epita.fr>
18337
18338 * src/output.c (pack_vector): Use assert, not berror.
18339 * src/main.c (berror): Remove, unused.
18340
18341 2001-12-05 Akim Demaille <akim@epita.fr>
18342
18343 New experimental feature: if --verbose --trace output all the
18344 items of a state, not only its kernel.
18345
18346 * src/print.c (print_core): If `trace_flag', then invoke closure
18347 before outputting the items of the state (print_core is no longer
18348 a correct name them).
18349 (print_results): Invoke new_closure/free_closure if needed.
18350
18351 2001-12-05 Akim Demaille <akim@epita.fr>
18352
18353 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
18354 * src/closure.c, src/closure.h (itemsetsize): Rename as...
18355 (nitemset): for consistency with the rest of the project.
18356
18357 2001-12-05 Akim Demaille <akim@epita.fr>
18358
18359 * src/closure.c (print_closure): Improve.
18360 (closure): Use it for printing input and output.
18361
18362 2001-12-05 Akim Demaille <akim@epita.fr>
18363
18364 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
18365 indexed by nonterminals.
18366
18367 2001-12-05 Akim Demaille <akim@epita.fr>
18368
18369 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
18370 what it was!).
18371 * src/warshall.h: Remove accidental duplication of the content.
18372
18373 2001-12-05 Akim Demaille <akim@epita.fr>
18374
18375 * src/closure.c (set_fderives): De-obfuscate.
18376
18377 2001-12-05 Akim Demaille <akim@epita.fr>
18378
18379 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
18380
18381 2001-12-05 Akim Demaille <akim@epita.fr>
18382
18383 * src/closure.c (set_firsts): De-obfuscate.
18384
18385 2001-12-05 Akim Demaille <akim@epita.fr>
18386
18387 * src/output.c (action_row): De-obfuscate
18388 using the good o' techniques: arrays not pointers, variable
18389 locality, BITISSET, RESETBIT etc.
18390
18391 2001-12-05 Akim Demaille <akim@epita.fr>
18392
18393 Pessimize the code to simplify it: from now on, all the states
18394 have a valid SHIFTS, which NSHIFTS is possibly 0.
18395
18396 * src/LR0.c (shifts_new): Be global and move to..
18397 * src/state.c, src/state.h: here.
18398 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
18399 * src/print_graph: Adjust.
18400
18401 2001-12-05 Akim Demaille <akim@epita.fr>
18402
18403 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
18404 * src/conflicts.c: Use it.
18405 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
18406 incorrectly ``simplified''.
18407
18408 2001-12-05 Akim Demaille <akim@epita.fr>
18409
18410 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
18411 using the good o' techniques: arrays not pointers, variable
18412 locality, BITISSET, RESETBIT etc.
18413
18414 2001-12-05 Akim Demaille <akim@epita.fr>
18415
18416 * src/state.h (SHIFT_SYMBOL): New.
18417 * src/conflicts.c: Use it to deobfuscate.
18418
18419 2001-12-05 Akim Demaille <akim@epita.fr>
18420
18421 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
18422 (print_reductions): De-obfuscate using the good o' techniques:
18423 arrays not pointers, variable locality, BITISSET.
18424
18425 2001-12-05 Akim Demaille <akim@epita.fr>
18426
18427 * src/conflicts.c (print_reductions): Arrays, not pointers.
18428 Use BITISSET.
18429
18430 2001-12-05 Akim Demaille <akim@epita.fr>
18431
18432 * src/conflicts.c (print_reductions): Pessimize, but clarify.
18433
18434 2001-12-05 Akim Demaille <akim@epita.fr>
18435
18436 * src/conflicts.c (print_reductions): Improve variable locality.
18437
18438 2001-12-05 Akim Demaille <akim@epita.fr>
18439
18440 * src/conflicts.c (print_reductions): Pessimize, but clarify.
18441
18442 2001-12-05 Akim Demaille <akim@epita.fr>
18443
18444 * src/conflicts.c (print_reductions): Improve variable locality.
18445
18446 2001-12-05 Akim Demaille <akim@epita.fr>
18447
18448 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
18449 * src/lalr.c: Use them.
18450
18451 2001-12-05 Akim Demaille <akim@epita.fr>
18452
18453 * src/LR0.c (augment_automaton): Formatting changes.
18454 Better variable locality.
18455
18456 2001-12-05 Akim Demaille <akim@epita.fr>
18457
18458 * src/lalr.c (matrix_print): New.
18459 (transpose): Use it.
18460 Use arrays instead of pointers.
18461
18462 2001-12-05 Akim Demaille <akim@epita.fr>
18463
18464 * src/lalr.c (maxrhs): Move to...
18465 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
18466 * src/lalr.c (build_relations): Adjust.
18467
18468 2001-12-05 Akim Demaille <akim@epita.fr>
18469
18470 * src/lalr.c (transpose): Free the memory allocated to the
18471 argument, as it is replaced by the results by the unique caller.
18472 (build_relations): Merely invoke transpose: it handles the memory
18473 deallocation.
18474 Improve variable locality.
18475 Avoid variables used as mere abbreviations.
18476 (compute_lookaheads): Use arrays instead of pointers.
18477
18478 2001-12-05 Akim Demaille <akim@epita.fr>
18479
18480 * src/lalr.c (initialize_F): Improve variable locality.
18481 Avoid variables used as mere abbreviations.
18482
18483 2001-12-05 Akim Demaille <akim@epita.fr>
18484
18485 * src/derives.c (print_derives): Display the ruleno.
18486 * src/lalr.c (initialize_F, transpose): Better variable locality
18487 to improve readability.
18488 Avoid variables used as mere abbreviations.
18489
18490 2001-12-05 Akim Demaille <akim@epita.fr>
18491
18492 * src/lalr.c (traverse): Use arrays instead of pointers.
18493
18494 2001-12-05 Akim Demaille <akim@epita.fr>
18495
18496 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
18497 the handling of squeue.
18498 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
18499
18500 2001-12-05 Akim Demaille <akim@epita.fr>
18501
18502 Because useless nonterminals are now kept alive (instead of being
18503 `destroyed'), we now sometimes examine them, and store information
18504 related to them. Hence we need to know their number, and adjust
18505 memory allocations.
18506
18507 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
18508 static.
18509 * src/LR0.c (allocate_itemsets): The memory allocated to
18510 `symbol_count' was used for two different purpose: once to count
18511 the number of occurrences of each symbol, and later reassigned to
18512 `shift_symbol', containing the symbol that can be shifted from a
18513 given state.
18514 Deobfuscate, i.e., allocate, use and free `symbol_count' here
18515 only, and...
18516 (new_itemsets): Allocate `shift_symbol' here.
18517 (allocate_itemsets): symbol_count includes useless nonterminals.
18518 Make room for them.
18519 (free_storage): Use `free', not `XFREE', for pointers that cannot
18520 be null.
18521
18522 2001-12-05 Akim Demaille <akim@epita.fr>
18523
18524 * src/nullable.c (set_nullable): Deobfuscate the handling of
18525 ritem.
18526 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
18527
18528 2001-12-05 Akim Demaille <akim@epita.fr>
18529
18530 * src/gram.c, src/gram.h (ritem_print): New.
18531 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
18532 (This useless function was defined only to work around VMS linkers
18533 that can't handle compilation units with variables only).
18534 * src/reduce.c (dump_grammar): Use it to trace the construction of
18535 ritem.
18536
18537 2001-12-04 Paul Eggert <eggert@twinsun.com>
18538
18539 * src/bison.simple (union yyalloc): Change member names
18540 to be the same as the stack names.
18541 (yyparse): yyptr is now union yyalloc *, not char *.
18542 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
18543 and may generate better code on some machines.
18544 (yystpcpy): Use prototype if __STDC__ is defined, not just
18545 if __cplusplus is defined.
18546
18547 2001-11-30 Akim Demaille <akim@epita.fr>
18548
18549 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
18550 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
18551 Gettext doesn't compile cleanly, and dies with -Werror.
18552 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
18553 Include WARNING_CFLAGS here.
18554 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
18555 before being defined.
18556
18557 2001-11-27 Paul Eggert <eggert@twinsun.com>
18558
18559 * lib/quotearg.h (quotearg_n, quotearg_n_style):
18560 First arg is int, not unsigned.
18561 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
18562 (SIZE_MAX, UINT_MAX): New macros.
18563 (quotearg_n_options): Abort if N is negative.
18564 Avoid overflow check on hosts where size_t is 64 bits and int
18565 is 32 bits, as overflow is impossible there.
18566 Fix off-by-one typo that caused unnecessary reallocation.
18567
18568 2001-11-29 Paul Eggert <eggert@twinsun.com>
18569
18570 Name space cleanup in generated parser.
18571
18572 * doc/bison.texinfo (Bison Parser): Discuss system headers
18573 and their effect on the user name space.
18574
18575 * src/bison.simple:
18576 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
18577 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
18578 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
18579
18580 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
18581 on user names when possible.
18582
18583 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
18584 Simplify test for whather <alloca.h> exists.
18585
18586 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
18587
18588 (<stdio.h>): Include if YYDEBUG.
18589
18590 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
18591 ! defined (yyoverflow) && ! defined (yymemcpy).
18592
18593 (yymemcpy, yyparse): Rename local variables as needed so that
18594 they all begin with 'yy'.
18595
18596 (yystrlen, yystpcpy): New functions.
18597
18598 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
18599 All uses changed.
18600
18601 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
18602 instead of relying on string.h functions. Use YYSTACK_ALLOC
18603 and YYSTACK_FREE instead of malloc and free.
18604
18605 2001-11-30 Akim Demaille <akim@epita.fr>
18606
18607 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
18608 before their first uses.
18609 (YYBISON, YYPURE): Move to the top of the output.
18610
18611 2001-11-30 Akim Demaille <akim@epita.fr>
18612
18613 * tests/reduce.at (Useless Nonterminals): Fix.
18614
18615 2001-11-30 Akim Demaille <akim@epita.fr>
18616
18617 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
18618 if body instead of `;' to pacify GCC's warnings.
18619
18620 2001-11-30 Akim Demaille <akim@epita.fr>
18621
18622 Instead of mapping the LHS of unused rules to -1, keep the LHS
18623 valid, but flag the rules as invalid.
18624
18625 * src/gram.h (rule_t): `useful' is a new member.
18626 * src/print.c (print_grammar): Adjust.
18627 * src/derives.c (set_derives): Likewise.
18628 * src/reader.c (packgram, reduce_output): Likewise.
18629 * src/reduce.c (reduce_grammar_tables): Likewise.
18630 * tests/reduce.at (Underivable Rules, Useless Rules): New.
18631
18632 2001-11-30 Akim Demaille <akim@epita.fr>
18633
18634 * src/reduce.c (reduce_output): Formatting changes.
18635 * src/print.c (print_results, print_grammar): Likewise.
18636 * tests/regression.at (Rule Line Numbers)
18637 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
18638
18639 2001-11-30 Akim Demaille <akim@epita.fr>
18640
18641 * src/reduce.c (nonterminals_reduce): Instead of throwing away
18642 useless nonterminals, move them at the end of the symbol arrays.
18643 (reduce_output): Adjust.
18644 * tests/reduce.at (Useless Nonterminals): Adjust.
18645
18646 2001-11-30 Akim Demaille <akim@epita.fr>
18647
18648 * src/reduce.c: Various comment/formatting changes.
18649 (nonterminals_reduce): New, extracted from...
18650 (reduce_grammar_tables): here.
18651 (reduce_grammar): Call nonterminals_reduce.
18652
18653 2001-11-29 Paul Eggert <eggert@twinsun.com>
18654
18655 * src/bison.simple (YYSTACK_REALLOC): Remove.
18656 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
18657 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
18658 New macros.
18659 (union yyalloc): New type.
18660 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
18661 an arbitrary restriction on hosts where size_t is wider than int.
18662
18663 (yyparse): Don't dump core if alloca or malloc fails; instead, report
18664 a parser stack overflow. Allocate just one block of memory for all
18665 three stacks, instead of allocating three blocks; this typically is
18666 faster and reduces fragmentation.
18667
18668 Do not limit the number of items in the stack to a value that fits
18669 in 'int', as this is an arbitrary limit on hosts with 64-bit
18670 size_t and 32-bit int.
18671
18672 2001-11-29 Marc Autret <autret_m@epita.fr>
18673
18674 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
18675 of defining YYERROR_VERBOSE.
18676 [AT_DATA]: $4 is now out of C declarations in the prologue.
18677
18678 2001-11-28 Marc Autret <autret_m@epita.fr>
18679
18680 * src/reader.c (parse_dquoted_param): New.
18681 (parse_skel_decl): Use it.
18682 * src/lex.h: Add its prototype.
18683 * src/lex.c (literalchar): Become not static.
18684
18685 2001-11-28 Marc Autret <autret_m@epita.fr>
18686
18687 * src/output.h: And put its extern declaration here.
18688 * src/output.c (error_verbose): Define here.
18689 (prepare): Echo name modification.
18690 * src/getargs.h: Clean its extern declaration.
18691 * src/getargs.c (error_verbose_flag): Remove.
18692 (getargs): Remove case 'e'.
18693 * src/options.c (option_table): 'error-verbose' is now seen as simple
18694 percent option.
18695 Include output.h.
18696
18697 * src/reader.c (read_declarations): Remove case tok_include.
18698 (parse_include_decl): Remove.
18699 * src/lex.h (token_t): Remove tok_include.
18700 * src/options.c (option_table): 'include' is now a simple command line
18701 option.
18702
18703 2001-11-28 Marc Autret <autret_m@epita.fr>
18704
18705 * src/bison.simple: Adjust muscle names.
18706 * src/muscle_tab.c (muscle_init): Also rename the muscles.
18707 * src/output.c (prepare): s/_/-/ for the muscles names.
18708 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
18709
18710 2001-11-28 Marc Autret <autret_m@epita.fr>
18711
18712 * src/bison.simple: Fix debug.
18713 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
18714
18715 2001-11-28 Akim Demaille <akim@epita.fr>
18716
18717 * src/LR0.c (shifts_new): New.
18718 (save_shifts, insert_start_shift, augment_automaton): Use it.
18719
18720 2001-11-28 Akim Demaille <akim@epita.fr>
18721
18722 * src/closure.c (closure): `b' and `ruleno' denote the same value:
18723 keep ruleno only.
18724
18725 2001-11-28 Akim Demaille <akim@epita.fr>
18726
18727 * src/closure.c (closure): Instead of looping over word in array
18728 then bits in words, loop over bits in array.
18729
18730 2001-11-28 Akim Demaille <akim@epita.fr>
18731
18732 * src/closure.c (closure): No longer optimize the special case
18733 where all the bits of `ruleset[r]' are set to 0, to make the code
18734 clearer.
18735
18736 2001-11-28 Akim Demaille <akim@epita.fr>
18737
18738 * src/closure.c (closure): `r' and `c' are new variables, used to
18739 de-obfuscate accesses to RULESET and CORE.
18740
18741 2001-11-28 Akim Demaille <akim@epita.fr>
18742
18743 * src/reduce.c (reduce_print): Use ngettext.
18744 (dump_grammar): Improve the trace accuracy.
18745
18746 2001-11-28 Akim Demaille <akim@epita.fr>
18747
18748 * src/reduce.c (dump_grammar): Don't translate trace messages.
18749
18750 2001-11-28 Akim Demaille <akim@epita.fr>
18751
18752 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
18753 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
18754 as all tags are free'ed afterwards.
18755 From Enrico Scholz.
18756
18757 2001-11-27 Paul Eggert <eggert@twinsun.com>
18758
18759 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
18760 use alloca when we didn't want to, and vice versa.
18761
18762 2001-11-27 Marc Autret <autret_m@epita.fr>
18763
18764 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
18765 initialization.
18766 * src/output.c (prepare): Remove its update.
18767
18768 2001-11-27 Marc Autret <autret_m@epita.fr>
18769
18770 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
18771 Use %error-verbose.
18772
18773 2001-11-27 Marc Autret <autret_m@epita.fr>
18774
18775 * src/bison.simple: Remove YYERROR_VERBOSE using.
18776 Use %%error_verbose.
18777 (yyparse): Likewise.
18778 * src/output.c (prepare): Give its final value.
18779 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
18780 * src/getargs.h: Add its extern declaration.
18781 * src/getargs.c (error_verbose_flag): New int.
18782 (getargs): Update to catch new case.
18783 * src/options.c (option_table): 'error-verbose' is a new option.
18784 (shortopts): Update.
18785
18786 2001-11-27 Akim Demaille <akim@epita.fr>
18787
18788 * src/system.h: Use intl/libgettext.h.
18789 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
18790
18791 2001-11-27 Akim Demaille <akim@epita.fr>
18792
18793 * tests/torture.at (Exploding the Stack Size with Malloc):
18794 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
18795
18796 2001-11-27 Akim Demaille <akim@epita.fr>
18797
18798 * src/files.c: Include error.h.
18799 Reported by Hans Aberg.
18800
18801 2001-11-26 Marc Autret <autret_m@epita.fr>
18802
18803 * src/reader.c (parse_include_decl): New, not yet implemented.
18804 (read_declarations): Add case tok_include.
18805 * src/getargs.h (include): Add its extern definition.
18806 * src/getargs.c (include): New const char *.
18807 (getargs): Add case '-I'.
18808 * src/options.c (option_table): Add include as command line and
18809 percent option.
18810 * src/lex.h (token_t): Add tok_include.
18811
18812 2001-11-26 Akim Demaille <akim@epita.fr>
18813
18814 * src/reader.c (readgram): Make sure rules for mid-rule actions
18815 have a lineno equal to that of their host rule.
18816 Reported by Hans Aberg.
18817 * tests/regression.at (Rule Line Numbers): New.
18818
18819 2001-11-26 Akim Demaille <akim@epita.fr>
18820
18821 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
18822 size_ts.
18823
18824 2001-11-26 Akim Demaille <akim@epita.fr>
18825
18826 * src/complain.c, src/complain.h (error): Remove, provided by
18827 lib/error.[ch].
18828
18829 2001-11-26 Akim Demaille <akim@epita.fr>
18830
18831 * src/reader.c (read_declarations): Don't abort on tok_illegal,
18832 issue an error message.
18833 * tests/regression.at (Invalid %directive): New.
18834 Reported by Hans Aberg.
18835
18836 2001-11-26 Akim Demaille <akim@epita.fr>
18837
18838 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
18839 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
18840
18841 2001-11-26 Akim Demaille <akim@epita.fr>
18842
18843 * src/conflicts.c (conflicts_print): Don't complain at all when
18844 there are no reduce/reduce conflicts, and as many shift/reduce
18845 conflicts as expected.
18846 * tests/regression.at (%expect right): Adjust.
18847
18848 2001-11-23 Akim Demaille <akim@epita.fr>
18849
18850 * lib/alloca.c: Update, from fileutils.
18851
18852 2001-11-23 Akim Demaille <akim@epita.fr>
18853
18854 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
18855
18856 2001-11-23 Akim Demaille <akim@epita.fr>
18857
18858 * src/system.h: Include alloca.h.
18859 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
18860
18861 2001-11-23 Akim Demaille <akim@epita.fr>
18862
18863 * src/print_graph.c (print_actions): Remove `rule', unused.
18864 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
18865 pacify GCC's signed < unsigned warnings.
18866 * src/closure.c (itemsetsize): Likewise.
18867 * src/reader.c (symbol_list_new): Static.
18868
18869 2001-11-23 Akim Demaille <akim@epita.fr>
18870
18871 Attaching lineno to buckets is stupid, since only one copy of each
18872 symbol is kept, only the line of the first occurrence is kept too.
18873
18874 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
18875 * src/reader.c (rline_allocated): Remove, unused.
18876 (symbol_list): Have a `line' member.
18877 (symbol_list_new): New.
18878 (readgram): Use it.
18879 * src/print.c (print_grammar): Output the rule line numbers.
18880 * tests/regression.at (Solved SR Conflicts)
18881 (Unresolved SR Conflicts): Adjust.
18882 Reported by Hans Aberg.
18883
18884 2001-11-22 Marc Autret <autret_m@epita.fr>
18885
18886 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
18887
18888 2001-11-22 Marc Autret <autret_m@epita.fr>
18889
18890 * src/muscle_tab.c (muscle_init): Remove initialization of
18891 skeleton muscle.
18892 * src/output.c (output_master_parser): Do it here.
18893
18894 2001-11-20 Akim Demaille <akim@epita.fr>
18895
18896 * po/sv.po: New.
18897 * configure.in (ALL_LINGUAS): Adjust.
18898 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
18899 longer contains strings to translate.
18900
18901 2001-11-19 Akim Demaille <akim@epita.fr>
18902
18903 * src/conflicts.c (conflicts_print): Add a missing \n.
18904
18905 2001-11-19 Akim Demaille <akim@epita.fr>
18906
18907 * src/nullable.c (nullable_print): New.
18908 (set_nullable): Call it when tracing.
18909 Better locality of variables.
18910
18911 2001-11-19 Akim Demaille <akim@epita.fr>
18912
18913 * src/print.c (print_actions): Better locality of variables.
18914
18915 2001-11-19 Akim Demaille <akim@epita.fr>
18916
18917 * src/derives.c (print_derives): Fix and enrich.
18918 * src/closure.c (print_fderives): Likewise.
18919
18920 2001-11-19 Akim Demaille <akim@epita.fr>
18921
18922 * src/closure.c (itemsetend): Remove, replaced with...
18923 (itemsetsize): new.
18924
18925 2001-11-19 Akim Demaille <akim@epita.fr>
18926
18927 * src/LR0.c (kernel_end): Remove, replaced with...
18928 (kernel_size): new.
18929
18930 2001-11-19 Akim Demaille <akim@epita.fr>
18931
18932 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
18933 to clarify.
18934
18935 2001-11-19 Akim Demaille <akim@epita.fr>
18936
18937 * src/closure.c (closure): Use arrays instead of pointers to clarify.
18938
18939 2001-11-19 Akim Demaille <akim@epita.fr>
18940
18941 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
18942 trace messages.
18943 * src/LR0.c: Likewise.
18944 (allocate_itemsets): Use arrays instead of pointers to clarify.
18945
18946 2001-11-19 Akim Demaille <akim@epita.fr>
18947
18948 * src/getargs.c (statistics_flag): Replace with...
18949 (trace_flag): New.
18950 (longopts): Accept --trace instead of --statistics.
18951 * src/getargs.h, src/options.c: Adjust.
18952 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
18953 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
18954
18955 2001-11-19 Akim Demaille <akim@epita.fr>
18956
18957 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
18958 pointers to clarify the code.
18959 (save_reductions, save_shifts): Factor common parts of alternatives.
18960
18961 2001-11-19 Akim Demaille <akim@epita.fr>
18962
18963 * src/LR0.c (new_state, get_state): Complete TRACE code.
18964 * src/closure.c: Include `reader.h' to get `tags', needed by the
18965 trace code.
18966 Rename the conditional DEBUG as TRACE.
18967 Output consistently TRACEs to stderr, not stdout.
18968 * src/derives.c: Likewise.
18969 * src/reduce.c: (inaccessable_symbols): Using if is better style
18970 than goto.
18971 Use `#if TRACE' instead of `#if 0' for tracing code.
18972
18973 2001-11-19 Akim Demaille <akim@epita.fr>
18974
18975 * src/system.h (LIST_FREE, shortcpy): New.
18976 * src/LR0.c: Use them.
18977 * src/output.c (free_itemsets, free_reductions, free_shifts):
18978 Remove, replaced by LIST_FREE.
18979
18980 2001-11-19 Akim Demaille <akim@epita.fr>
18981
18982 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
18983 (REDUCTIONS_ALLOC): New.
18984 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
18985 allocation.
18986
18987 2001-11-19 Akim Demaille <akim@epita.fr>
18988
18989 * src/LR0.c (new_state): Complete trace code.
18990 * src/nullable.c (set_nullable): Don't translate traces.
18991
18992 2001-11-19 Akim Demaille <akim@epita.fr>
18993
18994 * src/print_graph.c (print_core): Better locality of variables.
18995 * src/print.c (print_core): Likewise.
18996
18997 2001-11-19 Akim Demaille <akim@epita.fr>
18998
18999 * src/vcg.c: You do the output, so you are responsible of the
19000 handling of VCG syntax, in particular: use quotearg.
19001 * src/print_graph.c: Don't.
19002 (print_actions): Don't output the actions as part of the nodes,
19003 since that's the job of the edges.
19004 (print_state): Don't output by hand: fill the node description,
19005 and ask for its output.
19006
19007 2001-11-19 Akim Demaille <akim@epita.fr>
19008
19009 * src/bison.simple (yyparse): When verbosely reporting an error,
19010 no longer put additional quotes around token names.
19011 * tests/calc.at: Adjust.
19012
19013 2001-11-19 Akim Demaille <akim@epita.fr>
19014
19015 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
19016 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
19017 * src/output.c: Adjust.
19018
19019 2001-11-19 Akim Demaille <akim@epita.fr>
19020
19021 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
19022 (rule_t): this.
19023 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
19024
19025 2001-11-19 Akim Demaille <akim@epita.fr>
19026
19027 * src/gram.h (rule_t): New.
19028 (rule_table): New.
19029 (rrhs, rlhs): Remove, part of state_t.
19030 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
19031 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
19032 * src/reader.c, src/reduce.c: Adjust.
19033
19034 2001-11-19 Akim Demaille <akim@epita.fr>
19035
19036 * src/reader.c (symbols_output): New, extracted from...
19037 (packsymbols): Here.
19038 (reader): Call it.
19039
19040 2001-11-19 Akim Demaille <akim@epita.fr>
19041
19042 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
19043 (maxrhs): this new function.
19044
19045 2001-11-19 Akim Demaille <akim@epita.fr>
19046
19047 * src/lalr.c (F): New macro to access the variable F.
19048 Adjust.
19049
19050 2001-11-19 Akim Demaille <akim@epita.fr>
19051
19052 * src/lalr.h (LA): New macro to access the variable LA.
19053 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
19054 * src/lalr.c: Adjust.
19055
19056 2001-11-19 Akim Demaille <akim@epita.fr>
19057
19058 * src/lalr.c (initialize_LA): Only initialize LA. Let...
19059 (set_state_table): handle the `lookaheads' members.
19060
19061 2001-11-19 Akim Demaille <akim@epita.fr>
19062
19063 * src/lalr.h (lookaheads): Removed array, whose contents is now
19064 a member of...
19065 (state_t): this structure.
19066 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
19067 Adjust.
19068
19069 2001-11-19 Akim Demaille <akim@epita.fr>
19070
19071 * src/lalr.h (consistent): Removed array, whose contents is now
19072 a member of...
19073 (state_t): this structure.
19074 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
19075 Adjust.
19076
19077 2001-11-19 Akim Demaille <akim@epita.fr>
19078
19079 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
19080 contents are now members of...
19081 (state_t): this structure.
19082 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
19083 Adjust.
19084
19085 2001-11-19 Akim Demaille <akim@epita.fr>
19086
19087 * src/lalr.h (state_t): New.
19088 (state_table): Be a state_t * instead of a core **.
19089 (accessing_symbol): Remove, part of state_t.
19090 * src/lalr.c: Adjust.
19091 (set_accessing_symbol): Merge into...
19092 (set_state_table): this.
19093 * src/print_graph.c, src/conflicts.c: Adjust.
19094
19095 2001-11-14 Akim Demaille <akim@epita.fr>
19096
19097 * tests/calc.at, tests/output.at, tests/regression.at,
19098 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
19099 now the tests are run in private dirs, therefore AC_CLEANUP and
19100 family can be simplified to 0-ary.
19101 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
19102 use abs. path to find config.h.
19103 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
19104 stderr, there can be way too much random noise.
19105 Instead pass -Werror to GCC and rely on the exit status.
19106 Reported by Wolfram Wagner.
19107
19108 2001-11-14 Akim Demaille <akim@epita.fr>
19109
19110 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
19111 defined only if yyoverflow is defined, to avoid `warning: unused
19112 variable `yyvs1''.
19113 Reported by The Test Suite.
19114
19115 2001-11-14 Akim Demaille <akim@epita.fr>
19116
19117 * src/print.c: Include reduce.h.
19118 Reported by Hans Aberg.
19119
19120 2001-11-14 Akim Demaille <akim@epita.fr>
19121
19122 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
19123 Revert a previous patch: these are really const.
19124 * src/conflicts.c (conflict_report): Additional useless pair of
19125 braces to pacify GCC's warnings for `if () if () {} else {}'.
19126 * src/lex.c (parse_percent_token): Replace equal_offset with
19127 arg_offset.
19128 arg is const.
19129 Be sure to strdup `arg' when used, since there is no reason for
19130 token_buffer not to change.
19131
19132 2001-11-14 Akim Demaille <akim@epita.fr>
19133
19134 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
19135 definition.
19136 * src/main.c (main): Use them.
19137 Suggested by Hans Aberg.
19138
19139 2001-11-12 Akim Demaille <akim@epita.fr>
19140
19141 * src/system.h (ngettext): Now that we use ngettext, be sure to
19142 provide a default definition when NLS are not used.
19143
19144 2001-11-12 Akim Demaille <akim@epita.fr>
19145
19146 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
19147 Use @kbd to denote user input.
19148 (Language and Grammar): ANSIfy the example.
19149 Adjust its layout for info/notinfo.
19150 (Location Tracking Calc): Output error messages to stderr.
19151 Output locations in a more GNUtically correct way.
19152 Fix a couple of Englishos.
19153 Adjust @group/@end group pairs.
19154
19155 2001-11-12 Akim Demaille <akim@epita.fr>
19156
19157 %expect was not functioning at all.
19158
19159 * src/conflicts.c (expected_conflicts): Set to -1.
19160 (conflict_report): Use ngettext.
19161 (conflicts_print): Check %expect and make its violation an error.
19162 * doc/bison.texinfo (Expect Decl): Adjust.
19163 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
19164 * tests/regression.at (%expect not enough, %expect right)
19165 (%expect too much): New.
19166
19167 2001-11-12 Akim Demaille <akim@epita.fr>
19168
19169 * tests/regression.at (Conflicts): Rename as...
19170 (Unresolved SR Conflicts): this.
19171 (Solved SR Conflicts): New.
19172
19173 2001-11-12 Akim Demaille <akim@epita.fr>
19174
19175 * src/reduce.c (print_results): Rename as...
19176 (reduce_output): This.
19177 Output to OUT, passed as argument, instead of output_obstack.
19178 (dump_grammar): Likewise.
19179 (reduce_free): New.
19180 Also free V1.
19181 (reduce_grammar): No longer call reduce_output, since...
19182 * src/print.c (print_results): do it.
19183 * src/main.c (main): Call reduce_free;
19184
19185 2001-11-12 Akim Demaille <akim@epita.fr>
19186
19187 * src/conflicts.c (print_reductions): Accept OUT as argument.
19188 Output to it, not to output_obstack.
19189 * src/print.c (print_actions): Adjust.
19190
19191 2001-11-12 Akim Demaille <akim@epita.fr>
19192
19193 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
19194 the result instead of using...
19195 (src_total, rrc_total, src_count, rrc_count): Remove.
19196 (any_conflicts): Remove.
19197 (print_conflicts): Split into...
19198 (conflicts_print, conflicts_output): New.
19199 * src/conflicts.h: Adjust.
19200 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
19201 * src/print.c (print_grammar): Issue `\n' between two rules.
19202 * tests/regression.at (Conflicts): New.
19203 Reported by Tom Lane.
19204
19205 2001-11-12 Akim Demaille <akim@epita.fr>
19206
19207 * tests/regression.at (Invalid input): Remove, duplicate with
19208 ``Invalid input: 1''.
19209
19210 2001-11-12 Akim Demaille <akim@epita.fr>
19211
19212 * tests/torture.at (AT_DATA_STACK_TORTURE)
19213 (Exploding the Stack Size with Alloca)
19214 (Exploding the Stack Size with Malloc): New.
19215
19216 2001-11-12 Akim Demaille <akim@epita.fr>
19217
19218 * src/bison.simple (YYSTACK_REALLOC): New.
19219 (yyparse) [!yyoverflow]: Use it and free the old stack.
19220 Reported by Per Allansson.
19221
19222 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
19223
19224 * src/bison.simple: Define type yystype instead of YYSTYPE, and
19225 define CPP macro, which substitute YYSTYPE by yystype.
19226 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
19227 with yyltype/YYLTYPE. This allows inclusion of the generated
19228 header within the parser if the compiler, such as GGC, accepts
19229 multiple equivalent #defines.
19230 From Akim.
19231
19232 2001-11-05 Akim Demaille <akim@epita.fr>
19233
19234 * src/reader.c (symbols_output): New, extracted from...
19235 (packsymbols): here.
19236 (reader): Adjust.
19237
19238 2001-11-05 Akim Demaille <akim@epita.fr>
19239
19240 * src/lex.c (parse_percent_token): s/quotearg/quote/.
19241
19242 2001-11-05 Akim Demaille <akim@epita.fr>
19243
19244 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
19245 pattern.
19246
19247 2001-11-05 Akim Demaille <akim@epita.fr>
19248
19249 * src/options.h (struct option_table_struct): set_flags is void*.
19250 * src/options.c (longopts): Support `--output' and `%output'.
19251 (usage): Adjust.
19252 * src/lex.h (tok_setopt): Remove, replaced with...
19253 (tok_intopt, tok_stropt): these new guys.
19254 * src/lex.c (getopt.h): Not needed.
19255 (token_buffer, unlexed_token_buffer): Not const.
19256 (percent_table): Promote `-' over `_' in directive names.
19257 Active `%name-prefix', `file-prefix', and `output'.
19258 (parse_percent_token): Accept possible arguments to directives.
19259 Promote `-' over `_' in directive names.
19260
19261 2001-11-04 Akim Demaille <akim@epita.fr>
19262
19263 * doc/bison.texinfo (Decl Summary): Split the list into
19264 `directives for grammars' and `directives for bison'.
19265 Sort'em.
19266 Add description of `%name-prefix', `file-prefix', and `output'.
19267 Promote `-' over `_' in directive names.
19268 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
19269 Simplify the description of `--name-prefix'.
19270 Promote `-' over `_' in directive names.
19271 Promote `--output' over `--output-file'.
19272 Fix the description of `--defines'.
19273 * tests/output.at: Exercise %file-prefix and %output.
19274
19275 2001-11-02 Akim Demaille <akim@epita.fr>
19276
19277 * doc/refcard.tex: Update.
19278
19279 2001-11-02 Akim Demaille <akim@epita.fr>
19280
19281 * src/symtab.h (SUNDEF): New.
19282 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
19283 stand for `uninitialized', instead of 0.
19284 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
19285 * src/lex.c (lex): Adjust.
19286
19287 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
19288 Number it 0.
19289 Let yylex return it instead of a plain 0.
19290 Reported by Dick Streefland.
19291
19292 2001-11-02 Akim Demaille <akim@epita.fr>
19293
19294 * tests/regression.at (Mixing %token styles): New test.
19295
19296 2001-11-02 Akim Demaille <akim@epita.fr>
19297
19298 * src/reader.c (parse_thong_decl): Formatting changes.
19299 (token_translations_init): New, extracted from...
19300 (packsymbols): Here.
19301 Adjust.
19302
19303 2001-11-01 Akim Demaille <akim@epita.fr>
19304
19305 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
19306 Check that `9foo.y' produces correct cpp guards.
19307 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
19308 guards.
19309 Reported by Wwp.
19310
19311 2001-11-01 Akim Demaille <akim@epita.fr>
19312
19313 * tests/regression.at (Invalid input: 2): New.
19314 * src/lex.c (unlexed_token_buffer): New.
19315 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
19316 too.
19317 Reported by Wwp.
19318
19319 2001-11-01 Akim Demaille <akim@epita.fr>
19320
19321 * tests/calc.at: Catch up with 1.30.
19322 * configure.in: Bump to 1.49a.
19323 Adjust to newer Autotest.
19324
19325 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
19326
19327 * src/conflicts.c: Move global variables rrc_total and src_total ...
19328 (print_conflicts): here.
19329 * src/output.c (output): Free global variable user_toknums.
19330 * src/lex.c (token_obstack): Become static.
19331
19332 2001-10-18 Akim Demaille <akim@epita.fr>
19333
19334 * tests/atlocal.in (GCC): Add.
19335 * tests/calc.at: s/m4_match/m4_bmatch/.
19336 s/m4_patsubst/m4_bpatsubst/.
19337 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
19338 * configure.in: AC_SUBST(GCC).
19339
19340 2001-10-14 Marc Autret <autret_m@epita.fr>
19341
19342 * src/options.c (create_long_option_table): Fix.
19343
19344 2001-10-10 Akim Demaille <akim@epita.fr>
19345
19346 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
19347
19348 2001-10-04 Akim Demaille <akim@epita.fr>
19349
19350 * src/reader.c (parse_union_decl): Push the caracters in
19351 union_obstack, not attrs_obstack.
19352
19353 2001-10-04 Akim Demaille <akim@epita.fr>
19354
19355 Merge in the branch 1.29.
19356
19357 * src/reader.c (packsymbols): Use a temporary obstack for
19358 `%%tokendef', since output_stack is already used elsewhere.
19359
19360 2001-10-02 Akim Demaille <akim@epita.fr>
19361
19362 Bump 1.29d.
19363
19364 2001-10-02 Akim Demaille <akim@epita.fr>
19365
19366 Version 1.29c.
19367
19368 2001-10-02 Akim Demaille <akim@epita.fr>
19369
19370 * tests/regression.at (Invalid CPP headers): New.
19371 From Alexander Belopolsky.
19372 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
19373
19374 2001-10-02 Akim Demaille <akim@epita.fr>
19375
19376 * tests/regression.at (Invalid input): New.
19377 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
19378 Reported by Shura.
19379
19380 2001-10-02 Akim Demaille <akim@epita.fr>
19381
19382 * tests/calc.at: Now that --debug works, the tests must be adjusted.
19383
19384 2001-10-02 Akim Demaille <akim@epita.fr>
19385
19386 * src/output.c (output_parser): Assert `skeleton'.
19387 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
19388 systems.
19389 From Shura.
19390
19391 2001-10-01 Marc Autret <autret_m@epita.fr>
19392
19393 * src/lex.h: Echo modifications.
19394 * src/lex.c (unlex): Parameter is now token_t.
19395 From Hans Aberg.
19396
19397 2001-10-01 Marc Autret <autret_m@epita.fr>
19398
19399 * src/main.c: Include lex.h.
19400 From Hans Aberg.
19401
19402 2001-09-29 Akim Demaille <akim@epita.fr>
19403
19404 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
19405
19406 2001-09-28 Akim Demaille <akim@epita.fr>
19407
19408 * tests/testsuite.at: Update to newer Autotest.
19409 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
19410
19411 2001-09-27 Akim Demaille <akim@epita.fr>
19412
19413 Position independent wrapper.
19414
19415 * tests/bison: Remove.
19416 * tests/bison.in: New.
19417 * configure.in: Adjust.
19418
19419 2001-09-27 Paul Eggert <eggert@twinsun.com>
19420
19421 Port quotearg fixes from tar 1.13.24.
19422
19423 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
19424 tm to be declared.
19425 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
19426 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
19427
19428 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
19429 * m4/mbrtowc.m4: New file.
19430 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
19431 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
19432
19433 2001-09-27 Akim Demaille <akim@epita.fr>
19434
19435 Bump to 1.29c.
19436
19437 2001-09-27 Akim Demaille <akim@epita.fr>
19438
19439 Version 1.29b.
19440
19441 2001-09-25 Akim Demaille <akim@epita.fr>
19442
19443 * src/system.h: Include `xalloc.h'.
19444 Remove it from the C files.
19445 * src/files.c (output_files): Free the obstacks.
19446 * src/lex.c (init_lex): Rename as...
19447 (lex_init): this.
19448 (lex_free): New.
19449 * src/main.c (main): Use it.
19450
19451 2001-09-24 Marc Autret <autret_m@epita.fr>
19452
19453 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
19454 to output informations in fout (FILE*).
19455 (open_graph, close_graph): Likewise.
19456 (output_graph, output_edge, output_node): Likewise.
19457 * src/vcg.h: Update function prototypes.
19458 * src/print_graph.c (print_graph): Open output graph file.
19459 (print_actions): Adjust.
19460 * src/files.h: Remove extern declaration.
19461 * src/files.c: Remove graph_obstack declaration.
19462 (open_files): Remove graph_obstack initialization.
19463 (output_files): Remove graph_obstack saving.
19464
19465 2001-09-24 Marc Autret <autret_m@epita.fr>
19466
19467 * src/files.c (compute_output_file_names): Fix.
19468
19469 2001-09-24 Marc Autret <autret_m@epita.fr>,
19470 Akim Demaille <akim@epita.fr>
19471
19472 * src/reader.c (reader): Remove call to free_symtab ().
19473 * src/main.c (main): Call it here.
19474 Include symtab.h.
19475 * src/conflicts.c (initialize_conflicts): Rename as...
19476 (solve_conflicts): this.
19477 * src/print.c (print_core, print_actions, print_state)
19478 (print_grammar): Dump to a file instead a `output_obstack'.
19479 (print_results): Dump `output_obstack', and then proceed with the
19480 FILE *.
19481 * src/files.c (compute_output_file_names, close_files): New.
19482 (output_files): Adjust.
19483 * src/main.c (main): Adjust.
19484
19485 2001-09-23 Marc Autret <autret_m@epita.fr>
19486
19487 * src/files.c (compute_header_macro): Computes header macro name
19488 from spec_defines_file when given.
19489
19490 2001-09-23 Marc Autret <autret_m@epita.fr>
19491
19492 * src/files.c (output_files): Add default extensions.
19493
19494 2001-09-22 Akim Demaille <akim@epita.fr>
19495
19496 * src/conflicts.c (finalize_conflicts): Rename as...
19497 (free_conflicts): this.
19498
19499 2001-09-22 Akim Demaille <akim@epita.fr>
19500
19501 * src/gram.c (gram_free): Rename back as...
19502 (dummy): this.
19503 (output_token_translations): Free `token_translations'.
19504 * src/symtab.c (free_symtab): Free the tag field.
19505
19506 2001-09-22 Akim Demaille <akim@epita.fr>
19507
19508 Remove `translations' as it is always set to true.
19509
19510 * src/gram.h: Adjust.
19511 * src/reader.c (packsymbols, parse_token_decl): Adjust
19512 * src/print.c (print_grammar): Adjust.
19513 * src/output.c (output_token_translations): Adjust.
19514 * src/lex.c (lex): Adjust.
19515 * src/gram.c: Be sure the set pointers to NULL.
19516 (dummy): Rename as...
19517 (gram_free): this.
19518
19519 2001-09-22 Akim Demaille <akim@epita.fr>
19520
19521 * configure.in: Invoke AM_LIB_DMALLOC.
19522 * src/system.h: Use dmalloc.
19523 * src/LR0.c: Be sure to have pointers initialized to NULL.
19524 (allocate_itemsets): Allocate kernel_items only if needed.
19525
19526 2001-09-22 Akim Demaille <akim@epita.fr>
19527
19528 * configure.in: Bump to 1.29b.
19529 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
19530 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
19531 need xmalloc.c in calc.y.
19532 From Pascal Bart.
19533
19534 2001-09-21 Akim Demaille <akim@epita.fr>
19535
19536 Version 1.29a.
19537 * Makefile.maint, config/config.guess, config/config.sub,
19538 * config/missing: Update from masters.
19539 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
19540 upon package.m4.
19541 * configure.in (ALL_LINGUAS): Add `tr'.
19542
19543 2001-09-21 Akim Demaille <akim@epita.fr>
19544
19545 * tests/Makefile.am (package.m4): Move to...
19546 ($(srcdir)/$(TESTSUITE)): here.
19547
19548 2001-09-20 Akim Demaille <akim@epita.fr>
19549
19550 * src/complain.c: No longer try to be standalone: use system.h.
19551 Don't assume __STDC__ is defined to 1. Just test if it is defined.
19552 * src/complain.h: Likewise.
19553 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
19554 Remove the unused variable `n'.
19555 From Albert Chin-A-Young.
19556
19557 2001-09-18 Marc Autret <autret_m@epita.fr>
19558
19559 * doc/bison.1: Update.
19560 * doc/bison.texinfo (Bison Options): Update --defines and --graph
19561 descriptions.
19562 (Option Cross Key): Update.
19563 Add --graph.
19564
19565 2001-09-18 Marc Autret <autret_m@epita.fr>
19566
19567 * tests/regression.at: New test (comment in %union).
19568
19569 2001-09-18 Marc Autret <autret_m@epita.fr>
19570
19571 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
19572 do that.
19573 Reported by Keith Browne.
19574
19575 2001-09-18 Marc Autret <autret_m@epita.fr>
19576
19577 * tests/output.at: Add tests for --defines and --graph.
19578
19579 2001-09-18 Marc Autret <autret_m@epita.fr>
19580
19581 * tests/output.at: Removes tests of %{header,src}_extension features.
19582
19583 2001-09-18 Akim Demaille <akim@epita.fr>
19584
19585 * tests/Makefile.am (package.m4): New.
19586 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
19587 (_AT_CHECK_CALC_ERROR): Likewise.
19588 Factor the `, ' part of verbose error messages.
19589
19590 2001-09-18 Marc Autret <autret_m@epita.fr>
19591
19592 * src/getargs.c (longopts): Declare --defines and --graph as options
19593 with optional arguments.
19594 * src/files.h: Add extern declarations.
19595 * src/files.c (spec_graph_file, spec_defines_file): New.
19596 (output_files): Update.
19597 Remove CPP-outed code.
19598
19599 2001-09-18 Marc Autret <autret_m@epita.fr>
19600
19601 Turn off %{source,header}_extension feature.
19602
19603 * src/files.c (compute_exts_from_gf): Update.
19604 (compute_exts_from_src): Update.
19605 (output_files): CPP-out useless code.
19606 * src/files.h: Remove {header,source}_extension extern declarations.
19607 * src/reader.c (parse_dquoted_param): CPP-out.
19608 (parse_header_extension_decl): Remove.
19609 (parse_source_extension_decl): Remove.
19610 (read_declarations): Remove cases tok_{hdrext,srcext}.
19611 * src/lex.c (percent_table): Remove {header,source}_extension entries.
19612 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
19613
19614 2001-09-10 Akim Demaille <akim@epita.fr>
19615
19616 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
19617 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
19618 (AT_CHECK_OUTPUT): this.
19619 Merely check ls' exit status, its output is useless.
19620
19621 2001-09-10 Akim Demaille <akim@epita.fr>
19622
19623 * tests/calc.at: Use m4_match.
19624 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
19625
19626 2001-09-10 Marc Autret <autret_m@epita.fr>,
19627 Akim Demaille <akim@epita.fr>
19628
19629 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
19630 enum color_e.
19631 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
19632 to `normal'.
19633 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
19634 * src/lex.h: Adjust prototype.
19635 (token_t): Add `tok_undef'.
19636 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
19637 (parse_percent_token): Now returns token_t.
19638 Add default statement in switch.
19639 (lex): Separate `c' as an input variable, from the token_t result
19640 part.
19641 (unlexed): Is a token_t.
19642
19643 2001-09-10 Akim Demaille <akim@epita.fr>
19644
19645 * configure.in: Bump to 1.29a.
19646
19647 2001-09-07 Akim Demaille <akim@epita.fr>
19648
19649 Version 1.29.
19650
19651 2001-08-30 Akim Demaille <akim@epita.fr>
19652
19653 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
19654 * m4/atconfig.m4: Remove.
19655 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
19656 * tests/bison: New.
19657 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
19658 m4_if, m4_patsubst, and m4_regexp.
19659 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
19660 `input' file instead of echo.
19661
19662 2001-08-29 Akim Demaille <akim@epita.fr>
19663
19664 Bump to 1.28e.
19665
19666 2001-08-29 Akim Demaille <akim@epita.fr>
19667
19668 Version 1.28d.
19669
19670 2001-08-29 Paul Eggert <eggert@twinsun.com>
19671
19672 * src/bison.simple (yyparse): Don't take the address of an
19673 item before the start of an array, as that doesn't conform to
19674 the C Standard.
19675
19676 2001-08-29 Robert Anisko <anisko_r@epita.fr>
19677
19678 * doc/bison.texinfo (Location Tracking Calc): New node.
19679
19680 2001-08-29 Paul Eggert <eggert@twinsun.com>
19681
19682 * src/output.c (output): Do not define const, as this now
19683 causes more problems than it cures.
19684
19685 2001-08-29 Akim Demaille <akim@epita.fr>
19686
19687 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
19688 the nodes.
19689 Be sure to tag the `detailmenu'.
19690
19691 2001-08-29 Akim Demaille <akim@epita.fr>
19692
19693 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
19694 download in a tmp dir.
19695
19696 2001-08-28 Marc Autret <autret_m@epita.fr>
19697
19698 * config/depcomp: New file.
19699
19700 2001-08-28 Marc Autret <autret_m@epita.fr>
19701
19702 * doc/bison.1 (mandoc): Adjust.
19703 From Juan Manuel Guerrero.
19704
19705 2001-08-28 Marc Autret <autret_m@epita.fr>
19706
19707 * src/print_graph.c (print_state): Fix.
19708
19709 2001-08-27 Marc Autret <autret_m@epita.fr>
19710
19711 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
19712 char * members.
19713 Echo modifications to the functions prototypes.
19714 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
19715
19716 2001-08-27 Marc Autret <autret_m@epita.fr>
19717
19718 * src/vcg.c: Include `xalloc.h'.
19719 (add_colorentry): New.
19720 (add_classname): New.
19721 (add_infoname): New.
19722 * src/vcg.h: Add new prototypes.
19723
19724 2001-08-27 Akim Demaille <akim@epita.fr>
19725
19726 * Makefile.maint: Sync. again with CVS Autoconf.
19727
19728 2001-08-27 Akim Demaille <akim@epita.fr>
19729
19730 * Makefile.maint: Formatting changes.
19731 (po-update, cvs-update, update): New targets.
19732 (AMTAR): Remove.
19733
19734 2001-08-27 Akim Demaille <akim@epita.fr>
19735
19736 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
19737 * Makefile.maint: Sync. with CVS Autoconf.
19738
19739 2001-08-27 Marc Autret <autret_m@epita.fr>
19740
19741 * src/vcg.h (struct infoname_s): New.
19742 (struct colorentry_s): New.
19743 (graph_s): New fields {vertical,horizontal}_order in structure.
19744 Add `infoname' field.
19745 Add `colorentry' field;
19746 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
19747 (G_HORIZONTAL_ORDER): New.
19748 (G_INFONAME): New.
19749 (G_COLORENTRY): New.
19750 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
19751 Add output of `infoname'.
19752 Add output of `colorentry'.
19753
19754 2001-08-27 Marc Autret <autret_m@epita.fr>
19755
19756 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
19757 This one shadowed a global parameter.
19758
19759 2001-08-24 Marc Autret <autret_m@epita.fr>
19760
19761 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
19762 instead of `unsigned'.
19763 (print_state): Do not call obstack_object_size () in obstack_grow ()
19764 to avoid macro variables shadowing.
19765
19766 2001-08-23 Marc Autret <autret_m@epita.fr>
19767
19768 * src/lex.c (percent_table): Typo: s/naem/name/.
19769 Add graph option.
19770 Normalize new options declarations.
19771
19772 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
19773
19774 * tests/suite.at: Exercise %header_extension and %source_extension.
19775
19776 2001-08-16 Marc Autret <autret_m@epita.fr>
19777
19778 * src/reader.c (parse_dquoted_param): New.
19779 (parse_header_extension_decl): Use it.
19780 (parse_source_extension_decl): Likewise.
19781
19782 2001-08-16 Marc Autret <autret_m@epita.fr>
19783
19784 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
19785 (get_xxxx_str): Use assert () instead of complain ().
19786 Remove return invokations in default cases.
19787 (get_decision_str): Modify default behaviour. Remove second argument.
19788 Echo modifications on calls.
19789 (output_graph): Fix.
19790
19791 2001-08-16 Marc Autret <autret_m@epita.fr>
19792
19793 * src/getargs.c (usage): Update with ``-g, --graph''.
19794
19795 2001-08-16 Marc Autret <autret_m@epita.fr>
19796
19797 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
19798 (Option Cross Key): Likewise.
19799 * doc/bison.1: Update.
19800
19801 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
19802
19803 * src/output.c (output_master_parser): Don't finish action_obstack.
19804 (output_parser): Don't care about the muscle action, here.
19805 (prepare): Copy the action_obstack in the action muscle.
19806 (output): Free action_obstack.
19807
19808 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
19809
19810 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
19811 will contain `%union' declaration.
19812 (parse_union_decl): Delete #line directive output.
19813 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
19814 informations about %union.
19815 (parse_union_decl): Copy the union_obstack in the muscle stype.
19816 * src/bison.simple: Add new #line directive.
19817 Add typdef %%stype YYSTYPE.
19818
19819 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
19820
19821 * src/bison.simple: Add new `#line' directive.
19822
19823 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
19824
19825 * src/bison.simple: New `#line' directive.
19826 * src/output.c (output_parser): Support new dynamic muscle input_line.
19827
19828 2001-09-22 Marc Autret <autret_m@epita.fr>
19829
19830 * src/output.c (output_master_parser): New.
19831 (output_parser): Be more re-entrant.
19832
19833 2001-09-21 Marc Autret <autret_m@epita.fr>
19834
19835 * src/reader.c (copy_definition, parse_union_decl): Update and use
19836 `linef' muscle.
19837 (copy_action): Likewise.
19838 Use obstack_1grow ().
19839 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
19840
19841 2001-09-21 Marc Autret <autret_m@epita.fr>
19842
19843 * src/options.c (option_table): Adjust.
19844 * src/lex.c (parse_percent_token): Fix.
19845
19846 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
19847
19848 * src/options.c (symtab.h): Include it, need by lex.h.
19849
19850 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
19851
19852 * src/lex.c (parse_percent_token): Change type of variable `tx', which
19853 is now an option_table_struct*.
19854 (option_strcmp): New function option_strcmp.
19855 (parse_percent_token): Call option_strcmp.
19856 * src/getargs.c (xalloc.h, options.h): Include it.
19857 (getargs): Call create_long_option_table.
19858 (getargs): Free longopts at the end of the function.
19859 (shortopts): Move in options.c.
19860 * src/options.c (create_long_option_table): New function. Convert
19861 information from option_table to option structure.
19862 * src/reader.c (options.h): Include it.
19863
19864 * src/Makefile.am: Adjust.
19865 * src/options.c (option_table): Create from longopts and percent_table.
19866 * src/getargs.c (longopts): Delete.
19867 * src/lex.c (struct percent_table_struct): Delete.
19868 (percent_table): Delete.
19869 (options.h): Include it.
19870 * src/options.c: Create.
19871 * src/options.h: Create.
19872 Declare enum opt_access_e.
19873 Define struct option_table_struct.
19874
19875 2001-09-20 Marc Autret <autret_m@epita.fr>
19876
19877 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
19878 sections of Bison.
19879
19880 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
19881
19882 * src/bison.simple: s/%%filename/%%skeleton.
19883 * src/muscle_tab.c (getargs.h): Include it.
19884 (muscle_init): Insert new muscle skeleton.
19885
19886 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
19887
19888 * src/output.c (output_parser): Delete unused variable actions_dumped.
19889
19890 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
19891
19892 * src/output.c (output): Delete call to reader_output_yylsp.
19893 * src/reader.c (reader): Likewise.
19894 * src/reader.h: Delete declaration of reader_output_yylsp.
19895
19896 2001-09-02 Marc Autret <autret_m@epita.fr>
19897
19898 * src/reader.c: Include muscle_tab.h.
19899 (parse_union_decl): Update.
19900 (parse_macro_decl): Rename parse_muscle_decl.
19901 Update to use renamed functions and variable.
19902 (read_declarations, copy_action, read_additionnal_code, : Updated
19903 with correct variables and functions names.
19904 (packsymbols, reader): Likewise.
19905
19906 * src/reader.h (muscle_obstack): Extern declaration update.
19907
19908 * src/output.c: Include muscle_tab.h
19909 In all functions using macro_insert, change by using muscle_insert ().
19910 (macro_obstack): Rename muscle_obstack.
19911 Echo modifications in the whole file.
19912 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
19913 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
19914 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
19915
19916 * src/muscle_tab.h: Update double inclusion macros.
19917 (macro_entry_s): Rename muscle_entry_s.
19918 Update prototypes.
19919
19920 * src/muscle_tab.c: Include muscle_tab.h.
19921 Rename macro_tabble to muscle_table.
19922 (mhash1, mhash2, mcmp): Use muscle_entry.
19923 (macro_init): Rename muscle_init. Update.
19924 (macro_insert): Rename muscle_insert. Update.
19925 (macro_find): Rename muscle_find. Update.
19926
19927 * src/main.c: Include muscle_tab.h.
19928 (main): Call muscle_init ().
19929 * src/Makefile.am (bison_SOURCES): Echo modifications.
19930
19931 2001-09-02 Marc Autret <autret_m@epita.fr>
19932
19933 Now the files macro_tab.[ch] are named muscle_tab.[ch].
19934
19935 * src/muscle_tab.c, src/muscle_tab.h: Add files.
19936
19937 2001-09-02 Marc Autret <autret_m@epita.fr>
19938
19939 * src/macrotab.c, src/macrotab.h: Remove.
19940
19941 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
19942
19943 * src/reader.c (copy_guard): Use muscle to specify the `#line'
19944 filename.
19945
19946 2001-09-01 Marc Autret <autret_m@epita.fr>
19947
19948 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
19949 to an explicit value to activate the feature. We do it here.
19950
19951 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
19952
19953 * src/output.c (prepare): Delete the `filename' muscule insertion.
19954 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
19955 (parse_union_decl): Likewise.
19956 * src/macrotab.c (macro_init): Initialize filename by infile.
19957
19958 2001-08-31 Marc Autret <autret_m@epita.fr>
19959
19960 * src/bison.simple (YYLSP_NEEDED): New definition.
19961 * src/output.c (prepare): Add macro insertion of `locations_flag'
19962
19963 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
19964
19965 * src/output.c (prepare): Delete insertion of previous muscles,
19966 and insert the `prefix' muscles.
19967 * src/macrotab.c (macro_init): Likewise.
19968 (macro_init): Initialization prefix directive by `yy'.
19969 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
19970 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
19971 yylval, yydebug, yyerror, yynerrs and yyparse.
19972 New directive `#define' to substitute yydebug, ... with option
19973 name_prefix.
19974
19975 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
19976
19977 * src/main.c (main): Standardize.
19978 * src/output.c (output_table_data, output_parser): Likewise.
19979 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
19980
19981 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
19982
19983 * src/reader.c (read_additionnal_code): Rename %%user_code to
19984 %%epilogue.
19985 * src/output.c (output): Rename %%declarations to %%prologue.
19986 * src/bison.simple: Echo modifications.
19987
19988 2001-08-31 Marc Autret <autret_m@epita.fr>
19989
19990 * src/reader.c (readgram): CleanUp.
19991 (output_token_defines): Likewise.
19992 (packsymbols): Likewise.
19993 (reader): Likewise.
19994 * src/output.c (output): CPP-out useless code.
19995
19996 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
19997
19998 * src/reader.c (reader): Delete obsolete call to function
19999 output_trailers and output_headers.
20000 * src/output.h: Remove obsolete functions prototypes of output_headers
20001 and output_trailers.
20002
20003 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
20004
20005 * src/main.c: Include macrotab.h.
20006 * src/macrotab.h (macro_entry_s): Constify fields.
20007 Adjust functions prototypes.
20008 * src/macrotab.c (macro_insert): Constify key and value.
20009 (macro_find): Constify key.
20010 (macro_insert): Include 'xalloc.h'
20011 (macro_insert): Use XMALLOC.
20012 (macro_find): Constify return value.
20013 * src/output.c (output_table_data): Rename table to table_data.
20014 (output_parser): Constify macro_key, macro_value.
20015
20016 2001-08-30 Marc Autret <autret_m@epita.fr>
20017
20018 * src/reader.c (parse_skel_decl): New.
20019 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
20020 * src/lex.h (token_t): New token `tok_skel'.
20021 * src/lex.c (percent_table): Add skeleton option entry.
20022 Standardize.
20023
20024 2001-08-29 Marc Autret <autret_m@epita.fr>
20025
20026 * src/bison.simple: Add %%user_code directive at the end.
20027 * src/reader.c (read_additionnal_code): New.
20028 (reader): Use it.
20029 * src/output.c (output_program): Remove.
20030 (output): Update.
20031
20032 2001-08-28 Marc Autret <autret_m@epita.fr>
20033
20034 * src/output.c (output_actions): Clean up.
20035 (output_gram): CPP-out useless code.
20036 * src/reader.c (reader): Clean up, CPP-out useless code.
20037
20038 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
20039
20040 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
20041 directive.
20042 * src/bison.simple: Add `%%definitions'.
20043
20044 2001-08-28 Marc Autret <autret_m@epita.fr>
20045
20046 * config/depcomp: New file.
20047
20048 2001-08-27 Paul Eggert <eggert@twinsun.com>
20049
20050 * src/bison.simple (yyparse): Don't take the address of an
20051 item before the start of an array, as that doesn't conform to
20052 the C Standard.
20053
20054 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
20055
20056 * src/output.c (output): Remove the initialization of the macro
20057 obstack. It was done too late here.
20058
20059 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
20060 completely wrong.
20061 (reader): Initialize the macro obstack here, since we need it to grow
20062 '%define' directives.
20063
20064 * src/reader.h: Declare the macro obstack as extern.
20065
20066 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
20067
20068 * src/output.c (output_parser): Fix. Store single '%' characters in
20069 the output obstack instead of throwing them away.
20070
20071 2001-08-27 Akim Demaille <akim@epita.fr>
20072
20073 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
20074
20075 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
20076
20077 * lib/Makefile.am: Adjust.
20078
20079 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
20080
20081 * src/bison.simple: Update and add '%%' directives.
20082
20083 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
20084
20085 * src/reader.c (reader): Remove calls to 'output_headers' and
20086 'output_trailers'. Remove some C output.
20087 (readgram): Disable a piece of code that was writing a default
20088 definition for 'YYSTYPE'.
20089 (reader_output_yylsp): Remove.
20090 (packsymbols): Output token defintions to a macro.
20091 (copy_definition): Disable C output.
20092
20093 * src/reader.c (parse_macro_decl): New function used to parse macro
20094 declarations.
20095 (copy_string2): Put the body of copy_string into this new function.
20096 Add a parameter to let the caller choose whether he wants to copy the
20097 string delimiters or not.
20098 (copy_string): Be a simple call to copy_string2 with the last argument
20099 bound to true.
20100 (read_declarations): Add case for macro definition.
20101 (copy_identifier): New.
20102 (parse_macro_decl): Read macro identifiers using copy_identifier
20103 rather than lex.
20104
20105 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
20106
20107 * src/output.c (prepare): Add prefixed names.
20108 (output_parser): Output semantic actions.
20109 (output_parser): Fix bug on '%%line' directives.
20110
20111 * src/output.c (output_headers): Remove. The C code printed by this
20112 function should now be in the skeletons.
20113 (output_trailers): Remove.
20114 (output): Disable call to 'reader_output_yylsp'.
20115 (output_rule_data): Do not output tables to the table obstack.
20116
20117 * src/output.c: Remove some C dedicated output.
20118 Improve the use of macro and output obstacks.
20119 (output_defines): Remove.
20120
20121 * src/output.c (output_token_translations): Associate 'translate'
20122 table with a macro. No output to the table obstack.
20123 (output_gram): Same for 'rhs' and 'prhs'.
20124 (output_stos): Same for 'stos'.
20125 (output_rule_data): Same for 'r1' and 'r2'.
20126 (token_actions): Same for 'defact'.
20127 (goto_actions): Same for 'defgoto'.
20128 (output_base): Same for 'pact' and 'pgoto'.
20129 (output_table): Same for 'table'.
20130 (output_check): Same for 'check'.
20131
20132 * src/output.c (output_table_data): New function.
20133 (output_short_table): Remove.
20134 (output_short_or_char_table): Remove.
20135
20136 * src/output.c (output_parser): Replace most of the skeleton copy code
20137 with something new. Skeletons are now processed character by character
20138 rather than line by line, and Bison looks for '%%' macros. This is the
20139 first step in making Bison's output process (a lot) more flexible.
20140 (output_parser): Use the macro table.
20141
20142 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
20143
20144 * src/main.c (main): Initialize the macro table.
20145
20146 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
20147
20148 * src/lex.c (percent_table): Add tok_define.
20149 * src/lex.h: Add tok_define.
20150
20151 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
20152
20153 * src/macrotab.c: New file.
20154 * src/macrotab.h: New file.
20155 * src/Makefile.am: Update.
20156
20157 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
20158
20159 * lib/hash.c: New file.
20160 * lib/hash.h: New file.
20161 * lib/Makefile.am: Update.
20162
20163 2001-08-15 Akim Demaille <akim@epita.fr>
20164
20165 Version 1.28c.
20166
20167 2001-08-15 Marc Autret <autret_m@epita.fr>
20168
20169 * src/reader.c (readgram): Indent output macro YYSTYPE.
20170 (packsymbols): Likewise.
20171 (output_token_defines): Likewise.
20172 * src/files.c: Standardize.
20173 (compute_header_macro): New.
20174 (defines_obstack_save): New. Use compute_header_macro.
20175 (output_files): Update. Use defines_obstack_save.
20176
20177 2001-08-15 Akim Demaille <akim@epita.fr>
20178
20179 * doc/bison.texinfo (Table of Symbols): Document
20180 YYSTACK_USE_ALLOCA.
20181
20182 2001-08-15 Akim Demaille <akim@epita.fr>
20183
20184 * missing: Update from CVS Automake.
20185 * config/config.guess, config/config.sub, config/texinfo.tex:
20186 Update from gnu.org.
20187
20188 2001-08-15 Akim Demaille <akim@epita.fr>
20189
20190 * Makefile.maint: Sync with CVS Autoconf.
20191
20192 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
20193
20194 * doc/bison.texinfo: Include GNU Free Documentation License from
20195 `fdl.texi'.
20196 * doc/fdl.texi: Add to package.
20197
20198 2001-08-14 Marc Autret <autret_m@epita.fr>
20199
20200 Turn on %{source,header}_extension features.
20201
20202 * src/lex.c (percent_table): Un-CPP out header_extension and
20203 source_extension.
20204 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
20205 (compute_exts_from_src): Remove conditions. It restores priorities
20206 between options.
20207
20208 2001-08-14 Marc Autret <autret_m@epita.fr>
20209
20210 * src/files.c (compute_base_names): Add extensions computing when
20211 `--file-prefix' used.
20212 Standardize function calls.
20213
20214 2001-08-13 Marc Autret <autret_m@epita.fr>
20215
20216 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
20217 defining it (defined but null disables alloca).
20218
20219 2001-08-13 Marc Autret <autret_m@epita.fr>
20220
20221 * src/bison.simple (_yy_memcpy): CPP reformat.
20222
20223 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
20224
20225 * tests/atconfig.in (CPPFLAGS): Fix.
20226
20227 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
20228
20229 * doc/bison.texinfo: Include GNU General Public License from
20230 `gpl.texi'.
20231 * doc/gpl.texi: Add to package.
20232
20233 2001-08-10 Marc Autret <autret_m@epita.fr>
20234
20235 * src/print_graph.h: Fix.
20236 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
20237
20238 2001-08-10 Akim Demaille <akim@epita.fr>
20239
20240 * src/system.h: Provide default declarations for stpcpy, strndup,
20241 and strnlen.
20242
20243 2001-08-10 Robert Anisko <anisko_r@epita.fr>
20244
20245 * doc/bison.texinfo (Locations): Update @$ stuff.
20246
20247 2001-08-09 Robert Anisko <anisko_r@epita.fr>
20248
20249 * src/bison.simple (YYLLOC_DEFAULT): Update.
20250 (yyparse): Adjust.
20251
20252 2001-08-08 Marc Autret <autret_m@epita.fr>
20253
20254 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
20255 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
20256 Reported by Fabrice Bauzac.
20257
20258 2001-08-08 Marc Autret <autret_m@epita.fr>
20259
20260 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
20261 * src/vcg.c (output_node): Fix.
20262 * src/vcg.h: Cleanup.
20263 * src/print_graph.c: Add comments.
20264 (node_output_size): New global variable. Simplify the formatting of
20265 the VCG graph output.
20266 (print_actions): Unused code is now used. It notifies the final state
20267 and no action states in the VCG graph. It also give the reduce actions.
20268 The `shift and goto' edges are red and the `go to state' edges are
20269 blue.
20270 Get the current node name and node_obstack by argument.
20271 (node_obstack): New variable.
20272 (print_state): Manage node_obstack.
20273 (print_core): Use node_obstack given by argument.
20274 A node is not only computed here but in print_actions also.
20275 (print_graph): CPP out useless code instead of commenting it.
20276
20277 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
20278
20279 * tests/atconfig.in (CPPFLAGS): Fix.
20280
20281 2001-08-07 Akim Demaille <akim@epita.fr>
20282
20283 * src/print_graph.c (quote): New.
20284 (print_core): Use it.
20285
20286 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
20287
20288 * src/vcg.c (complain.h): Include it.
20289 Unepitaize `return' invocations.
20290 [NDEBUG] (main): Remove.
20291 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
20292 * src/files.c (open_files): Initialize graph_obstack.
20293 * src/print_graph.c (print_actions): CPP out useless code.
20294 (print_core): Don't output the last `\n' in labels.
20295 Use `quote'.
20296 * src/files.c (output_files): Output the VCG file.
20297 * src/main.c (main): Invoke print_graph ();
20298
20299 2001-08-06 Marc Autret <autret_m@epita.fr>
20300
20301 Automaton VCG graph output.
20302 Using option ``-g'' or long option ``--graph'', you can generate
20303 a gram_filename.vcg file containing a VCG description of the LALR (1)
20304 automaton of your grammar.
20305
20306 * src/main.c: Call to print_graph() function.
20307 * src/getargs.h: Update.
20308 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
20309 (graph_flag): New flag.
20310 (longopts): Update.
20311 (getargs): Add case `g'.
20312 * src/files.c (graph_obstack): New obstack struct.
20313 (open_files): Initialize new obstack.
20314 (output_files): Saves graph_obstack if required.
20315 * src/files.h (graph_obstack): New extern declaration.
20316 * src/Makefile.am: Add new source files.
20317
20318 2001-08-06 Marc Autret <autret_m@epita.fr>
20319
20320 * src/print_graph.c, src/print_graph.h (graph): New.
20321 * src/vcg.h: New file.
20322 * src/vcg.c: New file, VCG graph handling.
20323
20324 2001-08-06 Marc Autret <autret_m@epita.fr>
20325
20326 Add of %source_extension and %header_extension which specify
20327 the source or/and the header output file extension.
20328
20329 * src/files.c (compute_base_names): Remove initialisation of
20330 src_extension and header_extension.
20331 (compute_exts_from_gf): Update.
20332 (compute_exts_from_src): Update.
20333 (output_files): Update.
20334 * src/reader.c (parse_header_extension_decl): New.
20335 (parse_source_extension_decl): New.
20336 (read_declarations): New case statements for the new tokens.
20337 * src/lex.c (percent_table): Add entries for %source_extension
20338 and %header_extension.
20339 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
20340
20341 2001-08-06 Marc Autret <autret_m@epita.fr>
20342
20343 * configure.in: Bump to 1.28c.
20344 * doc/bison.texinfo: Texinfo thingies.
20345
20346 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
20347
20348 * tests/atconfig.in (CPPFLAGS): Add.
20349 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
20350
20351 2001-08-03 Akim Demaille <akim@epita.fr>
20352
20353 Version 1.28b.
20354
20355 2001-08-03 Akim Demaille <akim@epita.fr>
20356
20357 * tests/Makefile.am (check-local): Ship testsuite.
20358 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
20359 Include `string.h'.
20360
20361 2001-08-03 Akim Demaille <akim@epita.fr>
20362
20363 * configure.in: Try using -Wformat when compiling.
20364
20365 2001-08-03 Akim Demaille <akim@epita.fr>
20366
20367 * configure.in: Bump to 1.28b.
20368
20369 2001-08-03 Akim Demaille <akim@epita.fr>
20370
20371 * src/complain.c: Adjust strerror_r portability issues.
20372
20373 2001-08-03 Akim Demaille <akim@epita.fr>
20374
20375 Version 1.28a.
20376
20377 2001-08-03 Akim Demaille <akim@epita.fr>
20378
20379 * src/getargs.c, src/getarg.h (skeleton)): Constify.
20380 * src/lex.c (literalchar): Avoid name clashes on `buf'.
20381 * src/getargs.c: Include complain.h.
20382 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
20383 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
20384
20385 2001-08-03 Akim Demaille <akim@epita.fr>
20386
20387 * src/reader.c (readgram): Display hidden chars in error messages.
20388
20389 2001-08-03 Akim Demaille <akim@epita.fr>
20390
20391 Update to gettext 0.10.39.
20392
20393 2001-08-03 Akim Demaille <akim@epita.fr>
20394
20395 * lib/strspn.c: New.
20396
20397 2001-08-01 Marc Autret <autret_m@epita.fr>
20398
20399 * doc/bison.texinfo: Update.
20400 * doc/bison.1 (mandoc): Update.
20401 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
20402 * src/files.c: Support output files extensions computing.
20403 (src_extension): New static variable.
20404 (header_extension): New static variable.
20405 (tr): New function.
20406 (get_extension_index): New function, gets the index of an extension
20407 filename in a string.
20408 (compute_exts_from_gf): New function, computes extensions from the
20409 grammar file extension.
20410 (compute_exts_from_src): New functions, computes extensions from the
20411 C source file extension, file given by ``-o'' option.
20412 (compute_base_names): Update.
20413 (output_files): Update.
20414
20415 2001-08-01 Robert Anisko <anisko_r@epita.fr>
20416
20417 * doc/bison.texi: Document @$.
20418 (Locations): New section.
20419
20420 2001-07-18 Akim Demaille <akim@epita.fr>
20421
20422 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
20423 * config/prev-version.txt, config/move-if-change: New.
20424 * Makefile.am: Adjust.
20425
20426 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
20427
20428 * src/bison.simple (yyparse): Suppress warning `comparaison
20429 between signed and unsigned'.
20430
20431 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
20432
20433 * src/getargs.h (raw_flag): Remove.
20434 * src/getargs.c: Die on `-r'/`--raw'.
20435 * src/lex.c (parse_percent_token): Die on `%raw'.
20436 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
20437 * tests/calc.at: Suppress test with option `--raw'.
20438
20439 2001-07-14 Akim Demaille <akim@epita.fr>
20440
20441 * config/: New.
20442 * configure.in: Require Autoconf 2.50.
20443 Update to gettext 0.10.38.
20444
20445 2001-03-16 Akim Demaille <akim@epita.fr>
20446
20447 * doc/bison.texinfo: ANSIfy the examples.
20448
20449 2001-03-16 Akim Demaille <akim@epita.fr>
20450
20451 * getargs.c (skeleton): New variable.
20452 (longopts): --skeleton is a new option.
20453 (shortopts, getargs): -S is a new option.
20454 * getargs.h: Declare skeleton.
20455 * output.c (output_parser): Use it.
20456
20457 2001-03-16 Akim Demaille <akim@epita.fr>
20458
20459 * m4/strerror_r.m4: New.
20460 * m4/error.m4: Run AC_FUNC_STRERROR_R.
20461 * lib/error.h, lib/error.c: Update.
20462
20463 2001-03-16 Akim Demaille <akim@epita.fr>
20464
20465 * src/getargs.c (longopts): Clean up.
20466
20467 2001-02-21 Akim Demaille <akim@epita.fr>
20468
20469 * src/reader.c (gensym): `gensym_count' is your own.
20470 Use a static buf to create the symbol name, as token_buffer is no
20471 longer a buffer.
20472
20473 2001-02-08 Akim Demaille <akim@epita.fr>
20474
20475 * src/conflicts.c (conflict_report): Be sure not to append to res
20476 between two calls, which could happen if both first sprintf were
20477 skipped, but not the first cp += strlen.
20478
20479 2001-02-08 Akim Demaille <akim@epita.fr>
20480
20481 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
20482 New, from fileutils 4.0.37.
20483 * configure.in: Require Autoconf 2.49c. I took some time before
20484 making this decision. This is the only way out for portability
20485 issues in Bison, it would mean way too much duplicate effort to
20486 import in Bison features implemented in 2.49c since 2.13.
20487 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
20488
20489 2001-02-02 Akim Demaille <akim@epita.fr>
20490
20491 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
20492 * lib/xalloc.h, lib/xmalloc.c: Update.
20493
20494 2001-01-19 Akim Demaille <akim@epita.fr>
20495
20496 Get rid of the ad hoc handling of token_buffer in the scanner: use
20497 the obstacks.
20498
20499 * src/lex.c (token_obstack): New.
20500 (init_lex): Initialize it. No longer call...
20501 (grow_token_buffer): this. Remove it.
20502 Adjust all the places which used it to use the obstack.
20503
20504 2001-01-19 Akim Demaille <akim@epita.fr>
20505
20506 * src/lex.h: Rename all the tokens:
20507 s/\bENDFILE\b/tok_eof/g;
20508 s/\bIDENTIFIER\b/tok_identifier/g;
20509 etc.
20510 Let them be enums, not #define, to ease debugging.
20511 Adjust all the code.
20512
20513 2001-01-18 Akim Demaille <akim@epita.fr>
20514
20515 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
20516 * src/lex.c (maxtoken, grow_token_buffer): Static.
20517
20518 2001-01-18 Akim Demaille <akim@epita.fr>
20519
20520 Since we now use obstacks, more % directives can be enabled.
20521
20522 * src/lex.c (percent_table): Also accept `%yacc',
20523 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
20524 `%debug'.
20525 Handle the actions for `%semantic_parser' and `%pure_parser' here,
20526 instead of returning a token.
20527 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
20528 * src/reader.c (read_declarations): Adjust.
20529 * src/files.c (open_files): Don't call `compute_base_names', don't
20530 compute `attrsfile' since they depend upon data which might be
20531 *in* the input file now.
20532 (output_files): Do it here.
20533 * src/output.c (output_headers): Document the fact that this patch
20534 introduces a guaranteed SEGV for semantic parsers.
20535 * doc/bison.texinfo: Document them.
20536 * tests/suite.at: Exercise these %options.
20537
20538 2000-12-20 Akim Demaille <akim@epita.fr>
20539
20540 Also handle the output file (--verbose) with obstacks.
20541
20542 * files.c (foutput): Remove.
20543 (output_obstack): New.
20544 Adjust all dependencies.
20545 * src/conflicts.c: Return a string.
20546 * src/system.h (obstack_grow_string): Rename as...
20547 (obstack_sgrow): this. Be ready to work with non literals.
20548 (obstack_fgrow4): New.
20549
20550 2000-12-20 Akim Demaille <akim@epita.fr>
20551
20552 * src/files.c (open_files): Fix the computation of short_base_name
20553 in the case of `-o foo.tab.c'.
20554
20555 2000-12-20 Akim Demaille <akim@epita.fr>
20556
20557 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
20558 (copy_dollar): Now that everything uses obstacks, get rid of the
20559 FILE * parameters.
20560
20561 2000-12-20 Akim Demaille <akim@epita.fr>
20562
20563 * src/files.c (open_files): Actually the `.output' file is based
20564 on the short_base_name, not base_name.
20565 * tests/suite.at (Checking output file names): Adjust.
20566
20567 2000-12-20 Akim Demaille <akim@epita.fr>
20568
20569 * src/bison.s1: Remove, we now use directly...
20570 * src/bison.simple: this.
20571 * src/Makefile.am: Use pkgdata instead of data.
20572
20573 2000-12-20 Akim Demaille <akim@epita.fr>
20574
20575 * src/files.c (guard_obstack): New.
20576 (open_files): Initialize it.
20577 (output_files): Dump it...
20578 * src/files.h: Export it.
20579 * src/reader.c (copy_guard): Use it.
20580
20581 2000-12-19 Akim Demaille <akim@epita.fr>
20582
20583 * src/files.c (outfile, defsfile, actfile): Removed as global
20584 vars.
20585 (open_files): Don't compute them.
20586 (output_files): Adjust.
20587 (base_name, short_base_name): Be global.
20588 Adjust dependencies.
20589
20590 2000-12-19 Akim Demaille <akim@epita.fr>
20591
20592 * src/files.c (strsuffix): New.
20593 (stringappend): Be just like strcat but allocate.
20594 (base_names): Eve out from open_files.
20595 Try to simplify the rather hairy computation of base_name and
20596 short_base_name.
20597 (open_files): Use it.
20598 * tests/suite.at (Checking output file names): New test.
20599
20600 2000-12-19 Akim Demaille <akim@epita.fr>
20601
20602 * src/system.h (obstack_grow_literal_string): Rename as...
20603 (obstack_grow_string): this.
20604 * src/output.c (output_parser): Recognize `%% actions' instead of
20605 `$'.
20606 * src/bison.s1: s/$/%% actions/.
20607 * src/bison.hairy: Likewise.
20608
20609 2000-12-19 Akim Demaille <akim@epita.fr>
20610
20611 * src/output.c (output_parser): Compute the `#line' lines when
20612 there are.
20613 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
20614 Suggested by Hans Aberg.
20615
20616 2000-12-19 Akim Demaille <akim@epita.fr>
20617
20618 Let the handling of the skeleton files be local to the procedures
20619 that use it.
20620
20621 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
20622 longer static.
20623 (fparser, open_extra_files): Remove.
20624 (open_files, output_files): Don't take care of fparser.
20625 * src/files.h: Adjust.
20626 * src/output.c (output_parser): Open and close the file to the
20627 skeleton.
20628 * src/reader.c (read_declarations): When %semantic_parser, open
20629 fguard.
20630
20631 2000-12-19 Akim Demaille <akim@epita.fr>
20632
20633 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
20634 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
20635
20636 2000-12-19 Akim Demaille <akim@epita.fr>
20637
20638 * src/files.c (open_files): Yipee! We no longer need all the code
20639 looking for `/tmp' since we have no tmp file.
20640
20641 2000-12-19 Akim Demaille <akim@epita.fr>
20642
20643 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
20644 New macros.
20645 * src/files.c (open_files): Less dependency on MSDOS etc.
20646
20647 2000-12-14 Akim Demaille <akim@epita.fr>
20648
20649 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
20650 Provide a default definition.
20651 Use it when executing the default @ action.
20652 * src/reader.c (reader_output_yylsp): No longer include
20653 `timestamp' and `text' in the default YYLTYPE.
20654
20655 2000-12-12 Akim Demaille <akim@epita.fr>
20656
20657 * src/reader.c (copy_definition, parse_union_decl, copy_action)
20658 (copy_guard): Quote the file names.
20659 Reported by Laurent Mascherpa.
20660
20661 2000-12-12 Akim Demaille <akim@epita.fr>
20662
20663 * src/output.c (output_headers, output_program, output): Be sure
20664 to escape special characters when outputting filenames.
20665 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
20666 (output_headers): Don't depend on them, Use ACTSTR.
20667
20668 2000-11-17 Akim Demaille <akim@epita.fr>
20669
20670 * lib/obstack.h: Formatting changes.
20671 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
20672 prevents type checking.
20673 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
20674 cast the value to (void *): assigning a `foo *' to a `void *'
20675 variable is valid.
20676 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
20677 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
20678 append characters.
20679
20680 2000-11-17 Akim Demaille <akim@epita.fr>
20681
20682 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
20683 as...
20684 (suite.m4, regression.m4, calc.m4): these.
20685 * tests/atgeneral.m4: Update from CVS Autoconf.
20686
20687 2000-11-17 Akim Demaille <akim@epita.fr>
20688
20689 * tests/regression.m4 (%union and --defines): New test,
20690 demonstrating a current bug in the obstack implementation.
20691
20692 2000-11-17 Akim Demaille <akim@epita.fr>
20693
20694 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
20695 macros.
20696 Use them to declare the variables which are global or local to
20697 `yyparse'.
20698
20699 2000-11-17 Akim Demaille <akim@epita.fr>
20700
20701 * acconfig.h: Remove, no longer used.
20702
20703 2000-11-07 Akim Demaille <akim@epita.fr>
20704
20705 * src: s/Copyright (C)/Copyright/g.
20706
20707 2000-11-07 Akim Demaille <akim@epita.fr>
20708
20709 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
20710 defining.
20711 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
20712
20713 2000-11-07 Akim Demaille <akim@epita.fr>
20714
20715 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
20716 Merge in a single CPP if/else.
20717
20718 2000-11-07 Akim Demaille <akim@epita.fr>
20719
20720 * src/output.c (output): Remove useless variables.
20721 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
20722 argument `data' for consistency with the prototypes.
20723 Qualify it `const'.
20724 (obstack_copy, obstack_copy0): Rename the second argument as
20725 `address' for consistency. Qualify it `const'.
20726 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
20727 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
20728 `const' their input argument (`data' or `address').
20729 Adjust the corresponding macros to include `const' in casts.
20730
20731 2000-11-03 Akim Demaille <akim@epita.fr>
20732
20733 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
20734 s/PFILE1/BISON_HAIRY/.
20735 Adjust dependencies.
20736
20737 2000-11-03 Akim Demaille <akim@epita.fr>
20738
20739 For some reason, this was not applied.
20740
20741 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
20742 `unlink': it's no longer used.
20743
20744 2000-11-03 Akim Demaille <akim@epita.fr>
20745
20746 * src/files.c (skeleton_find): New function, eved out of...
20747 (open_files, open_extra_files): here.
20748
20749 2000-11-03 Akim Demaille <akim@epita.fr>
20750
20751 Don't use `atexit'.
20752
20753 * src/files.c (obstack_save): New function.
20754 (done): Rename as...
20755 (output_files): this.
20756 Use `obstack_save'.
20757 * src/main.c (main): Don't use `atexit' to register `done', since
20758 it no longer has to remove tmp files, just call `output_files'
20759 when there are no errors.
20760
20761 2000-11-02 Akim Demaille <akim@epita.fr>
20762
20763 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
20764 `unlink': it's no longer used.
20765 * src/files.h: Formatting changes.
20766
20767 2000-11-02 Akim Demaille <akim@epita.fr>
20768
20769 Remove the last uses of mktemp and unlink/delete.
20770
20771 * src/files.c (fdefines, ftable): Removed.
20772 (defines_ostack, table_obstack): New.
20773 Adjust dependencies of the former into uses of the latter.
20774 * src/output.c (output_short_or_char_table, output_short_table):
20775 Convert to using obstacks.
20776 * src/reader.c (copy_comment2): Accept one FILE * and two
20777 obstacks.
20778 (output_token_defines, reader_output_yylsp): Use obstacks.
20779 * src/system.h (obstack_fgrow3): New.
20780 * po/POTFILES.in: Adjust.
20781
20782 2000-11-01 Akim Demaille <akim@epita.fr>
20783
20784 Change each use of `fattrs' into a use of `attrs_obstack'.
20785
20786 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
20787 * src/files.c (fattrs): Remove.
20788 (attrs_obstack): New.
20789 Adjust all dependencies.
20790 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
20791
20792 2000-11-01 Akim Demaille <akim@epita.fr>
20793
20794 Introduce obstacks.
20795 Change each use of `faction' into a use of `action_obstack'.
20796
20797 * lib/obstack.h, lib/obstack.c: New files.
20798 * src/files.c (faction): Remove.
20799 (action_obstack): New.
20800 Adjust all dependencies.
20801
20802 2000-10-20 Akim Demaille <akim@epita.fr>
20803
20804 * lib/quote.h (PARAMS): New macro. Use it.
20805
20806 2000-10-16 Akim Demaille <akim@epita.fr>
20807
20808 * src/output.c (output_short_or_char_table): New function.
20809 (output_short_table, output_token_translations): Use it.
20810 (goto_actions): Use output_short_table.
20811
20812 2000-10-16 Akim Demaille <akim@epita.fr>
20813
20814 * src/symtab.c (bucket_new): New function.
20815 (getsym): Use it.
20816
20817 * src/output.c (output_short_table): New argument to display the
20818 comment associated with the table.
20819 Adjust dependencies.
20820 (output_gram): Use it.
20821 (output_rule_data): Nicer output layout for YYTNAME.
20822
20823 2000-10-16 Akim Demaille <akim@epita.fr>
20824
20825 * src/lex.c (read_typename): New function.
20826 (lex): Use it.
20827 * src/reader.c (copy_dollar): Likewise.
20828
20829 2000-10-16 Akim Demaille <akim@epita.fr>
20830
20831 * src/reader.c (copy_comment2): Expect the input stream to be on
20832 the `/' which is suspected to open a comment, instead of being
20833 called after `//' or `/*' was read.
20834 (copy_comment, copy_definition, parse_union_decl, copy_action)
20835 (copy_guard): Adjust.
20836
20837 2000-10-16 Akim Demaille <akim@epita.fr>
20838
20839 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
20840 `read_signed_integer'.
20841
20842 2000-10-16 Akim Demaille <akim@epita.fr>
20843
20844 * src/reader.c (copy_dollar): New function.
20845 (copy_guard, copy_action): Use it.
20846
20847 2000-10-16 Akim Demaille <akim@epita.fr>
20848
20849 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
20850 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
20851 New files, from Fileutils 4.0.27.
20852 * src/main.c (printable_version): Remove.
20853 * src/lex.c, src/reader.c: Use `quote'.
20854
20855 2000-10-04 Akim Demaille <akim@epita.fr>
20856
20857 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
20858
20859 2000-10-04 Akim Demaille <akim@epita.fr>
20860
20861 * doc/bison.texinfo: Various typos spotted by Neil Booth.
20862
20863 2000-10-04 Akim Demaille <akim@epita.fr>
20864
20865 When a literal string is used to define two different tokens,
20866 `bison -v' segfaults.
20867 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
20868
20869 * tests/regression.m4: New file.
20870 Include the core of the sample provided by Piotr Gackiewicz.
20871 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
20872 properly.
20873
20874 2000-10-04 Akim Demaille <akim@epita.fr>
20875
20876 * src/reader.c (parse_expect_decl): Keep `count' within the size
20877 of `buffer'.
20878 From Neil Booth.
20879
20880 2000-10-02 Paul Eggert <eggert@twinsun.com>
20881
20882 * bison.s1 (yyparse): Assign the default value
20883 unconditionally, to avoid a GCC warning and make the parser a
20884 tad smaller.
20885
20886 2000-10-02 Akim Demaille <akim@epita.fr>
20887
20888 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
20889 options.
20890
20891 2000-10-02 Akim Demaille <akim@epita.fr>
20892
20893 * src/derives.c, src/print.c, src/reduce.c: To ease the
20894 translation, move some `\n' out of the translated strings.
20895
20896 2000-10-02 Akim Demaille <akim@epita.fr>
20897
20898 The location tracking mechanism is precious for parse error
20899 messages. Nevertheless, it is enabled only when `@n' is used in
20900 the grammar, which is a different issue (you can use it in error
20901 message, but not in the grammar per se). Therefore, there should
20902 be another means to enable it.
20903
20904 * src/getargs.c (getargs): Support `--locations'.
20905 (usage): Report it.
20906 * src/getargs.h (locationsflag): Export it.
20907 * src/lex.c (percent_table): Support `%locations'.
20908 * src/reader.c (yylsp_needed): Remove this variable, now replaced
20909 with `locationsflag'.
20910 * doc/bison.texinfo: Document `--locations' and `%locations'.
20911 Sort the options.
20912 * tests/calc.m4: Test it.
20913
20914 For regularity of the names, replace each
20915 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
20916 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
20917 In addition replace each `flag' with `_flag'.
20918
20919 2000-10-02 Akim Demaille <akim@epita.fr>
20920
20921 Also test parse error messages, including with YYERROR_VERBOSE.
20922
20923 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
20924 associative).
20925 Use it to check the computations.
20926 Use it to check `nonassoc' is honored.
20927 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
20928 `--yyerror-verbose'.
20929 (_AT_CHECK_CALC): Adjust to this option.
20930 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
20931
20932 2000-10-02 Akim Demaille <akim@epita.fr>
20933
20934 Test also `--verbose', `--defines' and `--name-prefix'. Testing
20935 the latter demonstrates a flaw in the handling of non debugging
20936 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
20937 was used in order to simplify:
20938
20939 #if YYDEBUG
20940 if (yydebug)
20941 {
20942 ...
20943 }
20944 #endif
20945
20946 into
20947
20948 if (yydebug)
20949 {
20950 ...
20951 }
20952
20953 unfortunately this leads to a CPP conflict when
20954 `--name-prefix=foo' is used since it produces `#define yydebug
20955 foodebug'.
20956
20957 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
20958 (YYDPRINTF): New macro.
20959 Spread its use.
20960 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
20961 the bison options.
20962 Also test `--verbose', `--defines' and `--name-prefix'.
20963
20964 2000-10-02 Akim Demaille <akim@epita.fr>
20965
20966 Improve the readability of the produced parsers.
20967
20968 * src/bison.s1: Formatting changes.
20969 Improve the comment related to the `$' mark.
20970 (yydefault): Don't fall through to `yyresume': `goto' there.
20971 * src/output.c (output_parser): When the `$' is met, skip the end
20972 of its line.
20973 New variable, `number_of_dollar_signs', to check there's exactly
20974 one `$' in the parser skeleton.
20975
20976 2000-10-02 Akim Demaille <akim@epita.fr>
20977
20978 * lib/xstrdup.c: New file, from the fileutils.
20979 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
20980 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
20981 instead of strlen + xmalloc + strcpy.
20982 * src/symtab.c (copys): Remove, use xstrdup instead.
20983
20984 2000-10-02 Akim Demaille <akim@epita.fr>
20985
20986 * src/gram.h (associativity): New enum type which replaces the
20987 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
20988 `right_assoc', `left_assoc' and `non_assoc'.
20989 Adjust all dependencies.
20990 * src/reader.c: Formatting changes.
20991 (LTYPESTR): Don't define it, use it as a literal in
20992 `reader_output_yylsp'.
20993 * src/symtab.h (symbol_class): New enum type which replaces the
20994 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
20995 `sunknown', `stoken and `snterm'.
20996
20997 2000-10-02 Akim Demaille <akim@epita.fr>
20998
20999 * src/getargs.c (fixed_outfiles): Rename as...
21000 (yaccflag): for consistency and accuracy.
21001 Adjust dependencies.
21002
21003 2000-10-02 Akim Demaille <akim@epita.fr>
21004
21005 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
21006 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
21007 difficult and introduced a lot of core dump. It turns out that
21008 Bison used an implementation of `xmalloc' based on `calloc', and
21009 at various places it does depend upon the initialization to 0. I
21010 have not tried to isolate the pertinent places, and all the former
21011 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
21012 someone should address this issue.
21013
21014 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
21015 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
21016 files.
21017 Adjust dependencies.
21018 * src/warshall.h: New file.
21019 Propagate.
21020
21021 2000-10-02 Akim Demaille <akim@epita.fr>
21022
21023 Various anti-`extern in *.c' changes.
21024
21025 * src/system.h: Include `assert.h'.
21026
21027 2000-10-02 Akim Demaille <akim@epita.fr>
21028
21029 * src/state.h (nstates, final_state, first_state, first_shift)
21030 (first_reduction): Move their exportation from here...
21031 * src/LR0.h: to here.
21032 Adjust dependencies.
21033 * src/getargs.c (statisticsflag): New variable.
21034 Add support for `--statistics'.
21035 Adjust dependencies.
21036
21037 Remove a lot of now useless `extern' statements in most files.
21038
21039 2000-10-02 Akim Demaille <akim@epita.fr>
21040
21041 * src/LR0.h: New file.
21042 Propagate its use.
21043
21044 2000-10-02 Akim Demaille <akim@epita.fr>
21045
21046 * src/print.h: New file.
21047 Propagate its use.
21048 * src/print.c: Formatting and ordering changes.
21049 (verbose, terse): Replace with...
21050 (print_results): this new function.
21051 Adjust dependencies.
21052
21053 2000-10-02 Akim Demaille <akim@epita.fr>
21054
21055 * src/conflicts.c (conflict_report): New function.
21056 (conflict_log, verbose_conflict_log): Replace with...
21057 (print_conflicts): this function.
21058 Adjust dependencies.
21059 * src/conflicts.h: New file.
21060 Propagate its inclusion.
21061
21062 2000-10-02 Akim Demaille <akim@epita.fr>
21063
21064 * src/nullable.h: New file.
21065 Propagate its inclusion.
21066 * src/nullable.c: Formatting changes.
21067
21068 2000-10-02 Akim Demaille <akim@epita.fr>
21069
21070 * src/reduce.h: New file.
21071 Propagate its inclusion.
21072 * src/reduce.c: Topological sort and other formatting changes.
21073 (bool, TRUE, FALSE): Move their definition to...
21074 * src/system.h: here.
21075
21076 2000-10-02 Akim Demaille <akim@epita.fr>
21077
21078 * src/files.c: Formatting changes.
21079 (tryopen, tryclose, openfiles): Rename as...
21080 (xfopen, xfclose, open_files): this.
21081 (stringappend): static.
21082 * src/files.h: Complete the list of exported symbols.
21083 Propagate its use.
21084
21085 2000-10-02 Akim Demaille <akim@epita.fr>
21086
21087 * src/reader.h: New file.
21088 Propagate its use instead of tedious list of `extern' and
21089 prototypes.
21090 * src/reader.c: Formatting changes, topological sort,
21091 s/register//.
21092
21093 2000-10-02 Akim Demaille <akim@epita.fr>
21094
21095 * src/lex.h: Prototype `lex.c' exported functions.
21096 * src/reader.c: Adjust.
21097 * src/lex.c: Formatting changes.
21098 (safegetc): Rename as...
21099 (xgetc): this.
21100
21101 2000-10-02 Akim Demaille <akim@epita.fr>
21102
21103 * src/lalr.h: New file.
21104 Propagate its inclusion instead of prototypes and `extern'.
21105 * src/lalr.c: Formatting changes, topological sorting etc.
21106
21107 2000-10-02 Akim Demaille <akim@epita.fr>
21108
21109 * src/output.c (token_actions): Introduce a temporary array,
21110 YYDEFACT, that makes it possible for this function to use
21111 output_short_table.
21112
21113 2000-10-02 Akim Demaille <akim@epita.fr>
21114
21115 `user_toknums' is output as a `short[]' in `output.c', while it is
21116 defined as a `int[]' in `reader.c'. For consistency with the
21117 other output tables, `user_toknums' is now defined as a table of
21118 shorts.
21119
21120 * src/reader.c (user_toknums): Be a short table instead of an int
21121 table.
21122 Adjust dependencies.
21123
21124 Factor the short table outputs.
21125
21126 * src/output.c (output_short_table): New function.
21127 * src/output.c (output_gram, output_stos, output_rule_data)
21128 (output_base, output_table, output_check): Use it.
21129
21130 2000-10-02 Akim Demaille <akim@epita.fr>
21131
21132 * src/output.c (output): Topological sort of the functions, in
21133 order to get rid of the `static' prototypes.
21134 No longer use `register'.
21135 * src/output.h: New file.
21136 Propagate its inclusion in files explicitly prototyping functions
21137 from output.c.
21138
21139 2000-09-21 Akim Demaille <akim@epita.fr>
21140
21141 * src/atgeneral.m4: Update from Autoconf.
21142
21143 2000-09-21 Akim Demaille <akim@epita.fr>
21144
21145 * src/closure.h: New file.
21146 * src/closure.c: Formatting changes, topological sort over the
21147 functions, use of closure.h.
21148 (initialize_closure, finalize_closure): Rename as...
21149 (new_closure, free_closure): these. Adjust dependencies.
21150 * src/LR0.c: Formatting changes, topological sort, use of
21151 cloture.h.
21152 (initialize_states): Rename as...
21153 (new_states): this.
21154 * src/Makefile.am (noinst_HEADERS): Adjust.
21155
21156 2000-09-20 Akim Demaille <akim@epita.fr>
21157
21158 * src/acconfig.h: Don't protect config.h against multiple
21159 inclusion.
21160 Don't define PARAMS.
21161 * src/system.h: Define PARAMS.
21162 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
21163 purpose of config.h. system.h must not try to fix wrong
21164 definitions in config.h.
21165
21166 2000-09-20 Akim Demaille <akim@epita.fr>
21167
21168 * src/derives.h: New file.
21169 * src/main.c, src/derives.h: Use it.
21170 Formatting changes.
21171 * src/Makefile.am (noinst_HEADERS): Adjust.
21172
21173 2000-09-20 Akim Demaille <akim@epita.fr>
21174
21175 * tests/atgeneral.m4: Update from Autoconf.
21176 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
21177 (AT_CHECK_CALC): New macros.
21178 Use these macros to test bison with options `', `--raw',
21179 `--debug', `--yacc', `--yacc --debug'.
21180
21181 2000-09-19 Akim Demaille <akim@epita.fr>
21182
21183 * src/output.c: Formatting changes.
21184 * src/machine.h: Remove, leaving its contents in...
21185 * src/system.h: here.
21186 Include stdio.h.
21187 Adjust all dependencies on stdio.h and machine.h.
21188 * src/getargs.h: New file.
21189 Let all `extern' declarations about getargs.c be replaced with
21190 inclusion of `getargs.h'.
21191 * src/Makefile.am (noinst_HEADERS): Adjust.
21192
21193 * tests/calc.m4 (yyin): Be initialized in main, not on the global
21194 scope.
21195 (yyerror): Returns void, not int.
21196 * doc/bison.texinfo: Formatting changes.
21197
21198 2000-09-19 Akim Demaille <akim@epita.fr>
21199
21200 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
21201 portable.
21202
21203 2000-09-18 Akim Demaille <akim@epita.fr>
21204
21205 * configure.in: Append WARNING_CFLAGS to CFLAGS.
21206 * src/Makefile.am (INCLUDES): Don't.
21207 Be ready to fetch headers in lib/.
21208
21209 2000-09-18 Akim Demaille <akim@epita.fr>
21210
21211 * doc/bison.texinfo: Update the copyright.
21212 ANSIfy and GNUify the examples.
21213 Remove the old menu.
21214
21215 2000-09-18 Akim Demaille <akim@epita.fr>
21216
21217 First set of tests: use the `calc' example from the documentation.
21218
21219 * src/bison.s1 (yyparse): Condition the code using `yytname' which
21220 is defined only when YYDEBUG is.
21221 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
21222 * src/files.c (tryopen, tryclose): Formatting changes.
21223 Move to the top and be static.
21224 * src/reader.c (read_signed_integer): Likewise.
21225 * tests/calc.m4: New file.
21226 * Makefile.am, suite.m4: Adjust.
21227 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
21228
21229 2000-09-18 Akim Demaille <akim@epita.fr>
21230
21231 Add support for an Autotest test suite for Bison.
21232
21233 * m4/m4.m4, m4/atconfig.m4: New files.
21234 * m4/Makefile.am (EXTRA_DIST): Adjust.
21235 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
21236 files.
21237 * src/getargs.c: Display a more standard --version message.
21238 * src/reader.c (reader): Formatting changes.
21239 No longer depend upon VERSION_STRING.
21240 * configure.in: No longer use `dnl'.
21241 Set up the test suite and the new directory `tests/.
21242 (VERSION_STRING): Remove.
21243
21244 2000-04-14 Akim Demaille <akim@epita.fr>
21245
21246 * src/reader.c (copy_comment2): New function, same as former
21247 `copy_comment', but outputs into two FILE *.
21248 (copy_comment): Use it.
21249 (parse_union_decl): Use it.
21250 (get_type, parse_start_decl): Use the same `invalid' message.
21251 (parse_start_decl, parse_union_decl): Use the same `multiple'
21252 message.
21253 (parse_union_decl, copy_guard, copy_action): Use the same
21254 `unmatched' message.
21255 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
21256
21257 2000-03-31 Akim Demaille <akim@epita.fr>
21258
21259 * src/files.c (tryopen, tryclose): Move to the top.
21260 Be static.
21261
21262 2000-03-31 Akim Demaille <akim@epita.fr>
21263
21264 * src/main.c (main): Don't call `done', exit does it.
21265
21266 2000-03-31 Akim Demaille <akim@epita.fr>
21267
21268 * allocate.c: s/return (foo)/return foo/.
21269 * lalr.c: Likewise.
21270 * LR0.c: Likewise.
21271 * output.c: Likewise.
21272 * reader.c: Likewise.
21273 * symtab.c: Likewise.
21274 * vmsgetargs.c: Likewise.
21275
21276 2000-03-31 Akim Demaille <akim@epita.fr>
21277
21278 Clean up the error reporting functions.
21279
21280 * src/report.c: New file.
21281 * src/report.h: Likewise.
21282 * src/Makefile.am: Adjust.
21283 * m4/error.m4: New file.
21284 * m4/Makefile.am: Adjust.
21285 * configure.in (jm_PREREQ_ERROR): Call it.
21286 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
21287 Remove.
21288 (fatal, fatals): Remove. All callers use complain.c::fatal.
21289 (warn, warni, warns, warnss, warnss): Remove. All callers use
21290 complain.c::complain.
21291 (toomany): Remove, use fatal instead.
21292 * src/files.c (done): No argument, use complain_message_count.
21293 * src/main.c (main): Register `done' to `atexit'.
21294
21295 * src/getargs.c (usage): More `fputs', less `fprintf'.
21296
21297 2000-03-28 Akim Demaille <akim@epita.fr>
21298
21299 * lib/: New directory.
21300 * Makefile.am (SUBDIRS): Adjust.
21301 * configure.in: Adjust.
21302 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
21303 useless.
21304 * src/alloca.c: Moved to lib/.
21305 * src/getopt.c: Likewise.
21306 * src/getopt1.c: Likewise.
21307 * src/getopt.h: Likewise.
21308 * src/ansi2knr.c: Likewise.
21309 * src/ansi2knr.1: Likewise.
21310 * src/Makefile.am: Adjust.
21311 * lib/Makefile.am: New file.
21312
21313 2000-03-28 Akim Demaille <akim@epita.fr>
21314
21315 * src/getargs.c (usage): Refresh the help message.
21316
21317 2000-03-17 Akim Demaille <akim@epita.fr>
21318
21319 * src/getopt1.c: Updated from textutils 2.0e
21320 * src/getopt.c: Likewise.
21321 * src/getopt.h: Likewise.
21322
21323 2000-03-17 Akim Demaille <akim@epita.fr>
21324
21325 * src/Makefile.am (bison.simple): Fix the awk program: quote only
21326 the file name, not the whole `#line LINE FILE'.
21327
21328 2000-03-17 Akim Demaille <akim@epita.fr>
21329
21330 On syntax errors, report the token on which we choked.
21331
21332 * src/bison.s1 (yyparse): In the label yyerrlab, when
21333 YYERROR_VERBOSE, add yychar in msg.
21334
21335 2000-03-17 Akim Demaille <akim@epita.fr>
21336
21337 * src/reader.c (copy_at): New function.
21338 (copy_guard): Use it.
21339 (copy_action): Use it.
21340
21341 2000-03-17 Akim Demaille <akim@epita.fr>
21342
21343 Be kind to translators, save some useless translations.
21344
21345 * src/main.c (banner): New function.
21346 (fatal_banner): Use it.
21347 (warn_banner): Use it.
21348
21349 2000-03-17 Akim Demaille <akim@epita.fr>
21350
21351 * src/reader.c (copy_definition): Use copy_string and
21352 copy_comment. Removed now unused `match', `ended',
21353 `cplus_comment'.
21354 (copy_comment, copy_string): Moved, to be visible from
21355 copy_definition.
21356
21357 2000-03-17 Akim Demaille <akim@epita.fr>
21358
21359 * src/reader.c (copy_string): Declare `static inline'. No
21360 problems with inline, since it is checked by configure.
21361 (copy_comment): Likewise.
21362
21363 2000-03-17 Akim Demaille <akim@epita.fr>
21364
21365 * src/reader.c (packsymbols): Formatting changes.
21366
21367 2000-03-17 Akim Demaille <akim@epita.fr>
21368
21369 * src/reader.c (copy_comment): New function, factored out from:
21370 (copy_action): Use it. Removed now unused `match', `ended',
21371 `cplus_comment'.
21372 (copy_guard): Likewise.
21373
21374 2000-03-17 Akim Demaille <akim@epita.fr>
21375
21376 * src/reader.c (copy_string): New function, factored out from:
21377 (copy_action): Use it.
21378 (copy_guard): Likewise.
21379
21380 2000-03-17 Akim Demaille <akim@epita.fr>
21381
21382 Change the handling of @s so that they behave exactly like $s.
21383 There is now a pseudo variable @$ (readble and writable), location
21384 of the lhs of the rule (by default ranging from the location of
21385 the first symbol of the rhs, to the location of the last symbol,
21386 or, if the rhs is empty, YYLLOC).
21387
21388 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
21389 yyval.
21390 (yyparse): When providing a default semantic action, provide a
21391 default location action.
21392 (after the $): No longer change `*YYLSP', just stack YYLOC the
21393 same way you stack YYVAL.
21394 * src/reader.c (read_declarations): Use warns.
21395 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
21396 (copy_action, case '@'): Likewise.
21397 Use a standard error message, to save useless work from
21398 translators.
21399
21400 2000-03-17 Akim Demaille <akim@epita.fr>
21401
21402 * src/bison.s1: Formatting and cosmetics changes.
21403 * src/reader.c: Likewise.
21404 Update the Copyright notice.
21405
21406 2000-03-17 Akim Demaille <akim@epita.fr>
21407
21408 * src/bison.s1 (#line): All set to `#line' only, since the
21409 Makefile now handles them.
21410
21411 2000-03-16 Akim Demaille <akim@epita.fr>
21412
21413 * src/output.c (output_rule_data): Output the documentation of
21414 some of the tables.
21415 (Copyright notice): Update.
21416 Formatting changes.
21417
21418 2000-03-16 Akim Demaille <akim@epita.fr>
21419
21420 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
21421 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
21422 One `#if YYDEBUG' remains, since it uses variables which are
21423 defined only if `YYDEBUG != 0'.
21424
21425 2000-03-16 Akim Demaille <akim@epita.fr>
21426
21427 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
21428 and related variables so that the similarities are highlighted.
21429
21430 2000-03-16 Akim Demaille <akim@epita.fr>
21431
21432 * src/bison.s1: Properly indent CPP directives.
21433
21434 2000-03-16 Akim Demaille <akim@epita.fr>
21435
21436 * src/bison.s1: Properly indent the `alloca' CPP section.
21437
21438 2000-03-16 Akim Demaille <akim@epita.fr>
21439
21440 Do not hard code values of directories in `configure.in'.
21441 Update the `configure' tool chain.
21442
21443 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
21444 src/makefile.am.
21445 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
21446 (AC_OUTPUT): Add m4/Makefile.
21447 Bump to bison 1.28a, 1.29 has never been released.
21448 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
21449 handled via src/Makefile.am.
21450 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
21451 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
21452 autoheader.
21453 * Makefile.am (SUBDIRS): Add m4.
21454 (ACLOCAL_AM_FLAGS): New variable.
21455 (AUTOMAKE_OPTIONS): Add check-news.
21456 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
21457 the proper line number and file name.
21458 (DEFS): Propagate the location of bison library files and of the
21459 locale files.
21460 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
21461 builddir.
21462 * acinclude.m4: Remove, replaced by the directory m4.
21463 * m4/Makefile.am (EXTRA_DIST): New variable.
21464 * m4/gettext.m4: New file, from the fileutils.
21465 * m4/lcmessage.m4: Likewise
21466 * m4/progtest.m4: Likewise.
21467 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
21468
21469 2000-03-10 Akim Demaille <akim@epita.fr>
21470
21471 * src/closure.c:
21472 Formatting changes of various comments.
21473 Respect the GNU coding standards at various places.
21474 Don't use `_()' when no translation is needed.
21475
21476 1999-12-13 Jesse Thilo <jthilo@gnu.org>
21477
21478 * src/files.c:
21479 OS/2 honors TMPDIR environment variable.
21480
21481 1999-12-13 Jesse Thilo <jthilo@gnu.org>
21482
21483 * doc/bison.texinfo: Tweaked spelling and grammar.
21484 Updated ISBN.
21485 Removed reference to price of printed copy.
21486 Mention BISON_SIMPLE and BISON_HAIRY.
21487
21488 1999-12-13 Jesse Thilo <jthilo@gnu.org>
21489
21490 * configure.in, NEWS:
21491 Bison 1.29 released.
21492
21493 1999-10-27 Jesse Thilo <jthilo@gnu.org>
21494
21495 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
21496 Added reference card.
21497
21498 1999-07-26 Jesse Thilo <jthilo@gnu.org>
21499
21500 * po/ru.po: Added Russian translation.
21501
21502 1999-07-26 Jesse Thilo <jthilo@gnu.org>
21503
21504 * configure.in: Added Russian translation.
21505
21506 1999-07-06 Jesse Thilo <jthilo@gnu.org>
21507
21508 * configure.in, NEWS, README:
21509 Released version 1.28.
21510
21511 1999-06-14 Jesse Thilo <jthilo@gnu.org>
21512
21513 * src/system.h:
21514 Squashed redefinition warning on some systems.
21515
21516 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
21517 Have configure build version string instead of relying on ANSI string
21518 concatentation.
21519
21520 1999-06-14 Jesse Thilo <jthilo@gnu.org>
21521
21522 * po/POTFILES.in: Got rid of version.c.
21523
21524 1999-06-14 Jesse Thilo <jthilo@gnu.org>
21525
21526 * acconfig.h, configure.in:
21527 Have configure build version string instead of relying on ANSI string
21528 concatentation.
21529
21530 1999-06-08 Jesse Thilo <jthilo@gnu.org>
21531
21532 * doc/bison.1:
21533 Dropped mention of `+' for long-named options.
21534
21535 1999-05-30 Jesse Thilo <jthilo@gnu.org>
21536
21537 * src/files.c: Added <unistd.h> for unlink().
21538
21539 * src/Makefile.am, src/system.h:
21540 I18n fixes.
21541
21542 1999-05-30 Jesse Thilo <jthilo@gnu.org>
21543
21544 * README: Added a FAQ list.
21545
21546 * configure.in, acconfig.h:
21547 I18n fixes.
21548
21549 1999-05-30 Jesse Thilo <jthilo@gnu.org>
21550
21551 * doc/FAQ, doc/Makefile.am:
21552 Added a FAQ list.
21553
21554 1999-05-19 Jesse Thilo <jthilo@gnu.org>
21555
21556 * src/alloc.h, src/symtab.h, src/version.c:
21557 Protected inclusion of "config.h" with HAVE_CONFIG_H.
21558
21559 1999-04-18 Jesse Thilo <jthilo@gnu.org>
21560
21561 * src/.cvsignore, src/Makefile.am:
21562 Reorganized: sources in `src', documentation in `doc'.
21563
21564 * src/lex.c (literalchar):
21565 fixed the code for escaping double quotes (thanks
21566 Jonathan Czisny.)
21567
21568 1999-04-18 Jesse Thilo <jthilo@gnu.org>
21569
21570 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
21571 Adjusted paths to reflect directory reorganization.
21572
21573 1999-04-18 Jesse Thilo <jthilo@gnu.org>
21574
21575 * doc/.cvsignore, doc/Makefile.am:
21576 Reorganized: sources in `src', documentation in `doc'.
21577
21578 1999-04-18 Jesse Thilo <jthilo@gnu.org>
21579
21580 * configure.in:
21581 Updated AC_INIT file to reflect directory reorganization.
21582
21583 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
21584 Reorganized: sources in `src', documentation in `doc'.
21585
21586 1999-04-13 Jesse Thilo <jthilo@gnu.org>
21587
21588 * src/allocate.c:
21589 Don't declare calloc() and realloc() if not necessary.
21590
21591 1999-04-13 Jesse Thilo <jthilo@gnu.org>
21592
21593 * configure.in, acconfig.h, acinclude.m4:
21594 Don't declare calloc() and realloc() if not necessary.
21595
21596 1999-03-23 Jesse Thilo <jthilo@gnu.org>
21597
21598 * po/.cvsignore: Added i18n support.
21599
21600 1999-03-23 Jesse Thilo <jthilo@gnu.org>
21601
21602 * acconfig.h, configure.in, Makefile.am:
21603 Added i18n support.
21604
21605 1999-03-22 Jesse Thilo <jthilo@gnu.org>
21606
21607 * src/bison.s1: Fixed #line numbers.
21608
21609 1999-03-15 Jesse Thilo <jthilo@gnu.org>
21610
21611 * po/es.po, po/fr.po, po/nl.po, po/de.po:
21612 Added PO files from Translation Project.
21613
21614 1999-03-03 Jesse Thilo <jthilo@gnu.org>
21615
21616 * Makefile.am:
21617 Added support for non-ANSI compilers (ansi2knr).
21618
21619 1999-02-16 Jesse Thilo <jthilo@gnu.org>
21620
21621 * configure.in: Bumped version number to 1.27.
21622
21623 * Makefile.am:
21624 Added `bison.simple' to list of files removed by `make distclean'.
21625
21626 1999-02-12 Jesse Thilo <jthilo@gnu.org>
21627
21628 * src/files.c, src/files.h:
21629 Defined locations of parser files in config.h instead of Makefile.
21630
21631 1999-02-12 Jesse Thilo <jthilo@gnu.org>
21632
21633 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
21634 Defined locations of parser files in config.h instead of Makefile.
21635
21636 1999-02-09 Jesse Thilo <jthilo@gnu.org>
21637
21638 * Makefile.am:
21639 Removed inappropriate use of $< macro.
21640
21641 1999-02-05 Jesse Thilo <jthilo@gnu.org>
21642
21643 * po/Makefile.in.in, po/POTFILES.in:
21644 Add `po' directory skeleton.
21645
21646 1999-01-27 Jesse Thilo <jthilo@gnu.org>
21647
21648 * README: Document help-bison list.
21649
21650 * configure.in: Add check for mkstemp().
21651
21652 1999-01-20 Jesse Thilo <jthilo@gnu.org>
21653
21654 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
21655 Hush a few compiler warnings.
21656
21657 * src/files.c:
21658 Add tryclose(), which verifies that fclose was successful.
21659 Hush a couple of compiler warnings.
21660
21661 1999-01-20 Jesse Thilo <jthilo@gnu.org>
21662
21663 * Makefile.am, OChangeLog:
21664 ChangeLog is now automatically generated. Include the old version as
21665 OChangeLog.
21666
21667 1999-01-14 Jesse Thilo <jthilo@gnu.org>
21668
21669 * 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:
21670 Update FSF address.
21671
21672 1999-01-14 Jesse Thilo <jthilo@gnu.org>
21673
21674 * doc/bison.texinfo: Fix formatting glitch.
21675
21676 * doc/bison.texinfo: Update FSF address.
21677
21678 1999-01-14 Jesse Thilo <jthilo@gnu.org>
21679
21680 * acconfig.h: Update FSF address.
21681
21682 1999-01-08 Jesse Thilo <jthilo@gnu.org>
21683
21684 * src/system.h:
21685 Don't define PACKAGE here, since config.h defines it.
21686
21687 1998-12-30 Jesse Thilo <jthilo@gnu.org>
21688
21689 * src/reader.c: Update copyright date.
21690
21691 * src/main.c:
21692 Ditch sprintf to statically-sized buffers in fatal/warn functions in
21693 favor of output directly to stderr (avoids buffer overruns).
21694
21695 * src/reader.c: Some checks for premature EOF.
21696
21697 * 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:
21698 Use prototypes if the compiler understands them.
21699
21700 * src/files.c: Honor TMPDIR on Unix hosts.
21701 Use prototypes if the compiler understands them.
21702
21703 * src/reader.c:
21704 Fix a couple of buffer overrun bugs.
21705 Use prototypes if the compiler understands them.
21706
21707 * src/system.h: Include unistd.h and ctype.h.
21708 Use #ifdef instead of #if for NLS symbols.
21709
21710 1998-12-30 Jesse Thilo <jthilo@gnu.org>
21711
21712 * doc/bison.texinfo:
21713 Delete comment "consider using @set for edition number, etc..." since
21714 we now are doing so.
21715
21716 1998-12-30 Jesse Thilo <jthilo@gnu.org>
21717
21718 * configure.in:
21719 Use prototypes if the compiler understands them.
21720
21721 * NEWS: Document 1.26 highlights.
21722
21723 * Makefile.am: Require Automake 1.3 or later.
21724
21725 * acconfig.h:
21726 Use prototypes if the compiler understands them.
21727
21728 1998-12-29 Jesse Thilo <jthilo@gnu.org>
21729
21730 * src/version.c:
21731 Use VERSION symbol from automake for version number.
21732
21733 1998-12-29 Jesse Thilo <jthilo@gnu.org>
21734
21735 * acconfig.h, configure.in, version.cin:
21736 Use VERSION symbol from automake for version number.
21737
21738 1998-11-28 Jesse Thilo <jthilo@gnu.org>
21739
21740 * Makefile.am:
21741 Distribute original version of simple parser (bison.s1), not built
21742 version (bison.simple).
21743
21744 1998-11-28 Jesse Thilo <jthilo@gnu.org>
21745
21746 * doc/bison.texinfo: Add info dir entry.
21747
21748 * doc/bison.texinfo:
21749 Let automake put version number into documentation.
21750
21751 1998-11-26 Jesse Thilo <jthilo@gnu.org>
21752
21753 * src/bison.cld, src/build.com, src/vmshlp.mar:
21754 Add non-RCS files from /gd/gnu/bison.
21755
21756 1998-11-26 Jesse Thilo <jthilo@gnu.org>
21757
21758 * doc/bison.1:
21759 Document the BISON_HAIRY and BISON_SIMPLE variables.
21760
21761 1998-11-25 Jesse Thilo <jthilo@gnu.org>
21762
21763 * src/version.c: Build version.c automatically.
21764
21765 * src/reader.c:
21766 Fix token numbering (used to start at 258, not 257).
21767
21768 * src/system.h: Include config.h.
21769
21770 * src/getargs.c: Update bug report address.
21771
21772 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
21773 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
21774
21775 1998-11-25 Jesse Thilo <jthilo@gnu.org>
21776
21777 * Makefile.am:
21778 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
21779
21780 * configure.in, version.cin:
21781 Build version.c automatically.
21782
21783 * AUTHORS: Add AUTHORS file.
21784
21785 * README: Update bug report address.
21786
21787 * bison.simple:
21788 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
21789
21790 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
21791 Add automake stuff.
21792
21793 1998-11-25 Jesse Thilo <jthilo@gnu.org>
21794
21795 * doc/bison.texinfo: Clean up some formatting.
21796
21797 1998-05-05 Richard Stallman <rms@gnu.org>
21798
21799 * doc/bison.texinfo:
21800 Explain better why to make a pure parser.
21801
21802 1998-01-05 Richard Stallman <rms@gnu.org>
21803
21804 * src/files.c (openfiles):
21805 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
21806 find a temporary directory, if possible. Do not unlink files while
21807 they are open.
21808
21809 1997-08-25 Richard Stallman <rms@gnu.org>
21810
21811 * src/reader.c (stack_offset;):
21812 Change some warni to warns.
21813
21814 * src/lex.c (literalchar): Use warns, not warni.
21815
21816 1997-06-28 Richard Stallman <rms@gnu.org>
21817
21818 * src/bison.s1: Add a Bison version comment.
21819
21820 * src/main.c (fatal, warn, berror):
21821 Use program_name.
21822
21823 1997-06-28 Richard Stallman <rms@gnu.org>
21824
21825 * Makefile.in (bison_version): New variable.
21826 (dist): Use that variable.
21827 (bison.s1): Substitute the Bison version into bison.simple.
21828
21829 * bison.simple: Add a Bison version comment.
21830
21831 1997-06-18 Richard Stallman <rms@gnu.org>
21832
21833 * src/main.c (fatal, warn, berror):
21834 Make error messages standard.
21835 (toomany): Improve error message text.
21836
21837 * 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:
21838 new.h renamed to alloc.h.
21839
21840 1997-06-18 Richard Stallman <rms@gnu.org>
21841
21842 * Makefile.in: new.h renamed to alloc.h.
21843
21844 1997-05-24 Richard Stallman <rms@gnu.org>
21845
21846 * src/lex.c (literalchar):
21847 Fix the code for escaping \, " and '.
21848
21849 (lex): Avoid trouble when there are many chars
21850 to discard in a char literal with just several chars in it.
21851
21852 1997-05-17 Richard Stallman <rms@gnu.org>
21853
21854 * src/bison.s1:
21855 Use malloc, if using alloca is troublesome.
21856 (YYSTACK_USE_ALLOCA): New flag macro.
21857 Define it for some systems and compilers.
21858 (YYSTACK_ALLOC): New macro.
21859 (yyparse): Use YYSTACK_ALLOC to allocate stack.
21860 If it was malloc'd, free it.
21861
21862 1997-05-17 Richard Stallman <rms@gnu.org>
21863
21864 * bison.simple:
21865 Use malloc, if using alloca is troublesome.
21866 (YYSTACK_USE_ALLOCA): New flag macro.
21867 Define it for some systems and compilers.
21868 (YYSTACK_ALLOC): New macro.
21869 (yyparse): Use YYSTACK_ALLOC to allocate stack.
21870 If it was malloc'd, free it.
21871
21872 1997-04-23 Richard Stallman <rms@gnu.org>
21873
21874 * src/bison.s1:
21875 (alloca) [__hpux]: Always define as __builtin_alloca.
21876
21877 1997-04-23 Richard Stallman <rms@gnu.org>
21878
21879 * bison.simple:
21880 (alloca) [__hpux]: Always define as __builtin_alloca.
21881
21882 1997-04-22 Richard Stallman <rms@gnu.org>
21883
21884 * src/bison.s1:
21885 [__hpux]: Include alloca.h (right for HPUX 10)
21886 instead of declaring alloca (right for HPUX 9).
21887
21888 * src/bison.s1 (__yy_memcpy):
21889 Declare arg `count' as unsigned int.
21890 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
21891
21892 1997-04-22 Richard Stallman <rms@gnu.org>
21893
21894 * bison.simple:
21895 [__hpux]: Include alloca.h (right for HPUX 10)
21896 instead of declaring alloca (right for HPUX 9).
21897
21898 * bison.simple (__yy_memcpy):
21899 Declare arg `count' as unsigned int.
21900 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
21901
21902 1997-01-03 Richard Stallman <rms@gnu.org>
21903
21904 * src/allocate.c: [__STDC__ or _MSC_VER]:
21905 Declare calloc and realloc to return void *.
21906
21907 1997-01-02 Richard Stallman <rms@gnu.org>
21908
21909 * src/system.h:
21910 [_MSC_VER]: Include stdlib.h and process.h.
21911 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
21912
21913 * src/main.c (main): Return FAILURE as a value.
21914 (printable_version): Declare arg as int, not char.
21915
21916 1997-01-02 Richard Stallman <rms@gnu.org>
21917
21918 * Makefile.in (dist):
21919 Explicitly check for symlinks, and copy them.
21920
21921 1996-12-19 Richard Stallman <rms@gnu.org>
21922
21923 * src/files.c:
21924 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
21925
21926 1996-12-18 Paul Eggert <eggert@gnu.org>
21927
21928 * src/bison.s1 (yyparse):
21929 If __GNUC__ and YYPARSE_PARAM are both defined,
21930 declare yyparse to have a void * argument.
21931
21932 1996-12-18 Paul Eggert <eggert@gnu.org>
21933
21934 * bison.simple (yyparse):
21935 If __GNUC__ and YYPARSE_PARAM are both defined,
21936 declare yyparse to have a void * argument.
21937
21938 1996-12-17 Richard Stallman <rms@gnu.org>
21939
21940 * src/reduce.c (nbits): Add some casts.
21941
21942 1996-08-12 Richard Stallman <rms@gnu.org>
21943
21944 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
21945
21946 1996-08-12 Richard Stallman <rms@gnu.org>
21947
21948 * bison.simple: Test _MSDOS as well as _MSDOS_.
21949
21950 1996-07-31 Richard Stallman <rms@gnu.org>
21951
21952 * src/bison.s1:
21953 [__sun && __i386]: Include alloca.h.
21954
21955 1996-07-31 Richard Stallman <rms@gnu.org>
21956
21957 * bison.simple:
21958 [__sun && __i386]: Include alloca.h.
21959
21960 1996-07-30 Richard Stallman <rms@gnu.org>
21961
21962 * src/bison.s1: Comment change.
21963
21964 * src/bison.s1: Test _MSDOS_, not MSDOS.
21965
21966 1996-07-30 Richard Stallman <rms@gnu.org>
21967
21968 * bison.simple: Comment change.
21969
21970 * bison.simple: Test _MSDOS_, not MSDOS.
21971
21972 1996-06-01 Richard Stallman <rms@gnu.org>
21973
21974 * 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:
21975 Insert `_' macro around many string constants.
21976
21977 * src/main.c:
21978 Insert `_' macro around many string constants.
21979
21980 (main): Call setlocale, bindtextdomain and textdomain.
21981
21982 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
21983 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
21984 [ENABLE_NLS]: Include libintl.h.
21985 [ENABLE_NLS] (gettext): Define.
21986 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
21987 (N_, PACKAGE, LOCALEDIR): New macros.
21988
21989 1996-06-01 Richard Stallman <rms@gnu.org>
21990
21991 * POTFILES.in: New file.
21992
21993 * Makefile.in (allocate.o):
21994 Define target explicitly.
21995
21996 * Makefile.in (CFLAGS): Set to @CFLAGS@.
21997 (LDFLAGS): Set to @LDFLAGS@.
21998 (configure): Run autoconf only if preceding `cd' succeeds.
21999 (bison.s1): Redirect output to temporary file then move the
22000 temporary to the target, rather than redirecting directly to bison.s1.
22001 (clean): Remove config.status and config.log.
22002 (distclean): Don't remove config.status here.
22003
22004 1996-05-12 Richard Stallman <rms@gnu.org>
22005
22006 * src/bison.s1:
22007 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
22008
22009 1996-05-12 Richard Stallman <rms@gnu.org>
22010
22011 * bison.simple:
22012 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
22013
22014 1996-05-11 Richard Stallman <rms@gnu.org>
22015
22016 * src/bison.s1 (__yy_memcpy):
22017 Really reorder the args, as was supposedly done on Feb 14 1995.
22018 (yyparse): Calls changed accordingly.
22019
22020 1996-05-11 Richard Stallman <rms@gnu.org>
22021
22022 * Makefile.in (dist): Don't use $(srcdir).
22023
22024 * bison.simple (__yy_memcpy):
22025 Really reorder the args, as was supposedly done on Feb 14 1995.
22026 (yyparse): Calls changed accordingly.
22027
22028 1996-01-27 Richard Stallman <rms@gnu.org>
22029
22030 * src/output.c (output_rule_data):
22031 Test YYERROR_VERBOSE in the conditional
22032 around the definition of ttyname.
22033
22034 1995-12-29 Richard Stallman <rms@gnu.org>
22035
22036 * src/bison.s1:
22037 Fix line numbers in #line commands.
22038
22039 1995-12-29 Richard Stallman <rms@gnu.org>
22040
22041 * bison.simple:
22042 Fix line numbers in #line commands.
22043
22044 1995-12-27 Richard Stallman <rms@gnu.org>
22045
22046 * src/bison.s1 (YYPARSE_PARAM_DECL):
22047 In C++, make it always null.
22048 (YYPARSE_PARAM_ARG): New macro.
22049 (yyparse): Use YYPARSE_PARAM_ARG.
22050
22051 1995-12-27 Richard Stallman <rms@gnu.org>
22052
22053 * bison.simple (YYPARSE_PARAM_DECL):
22054 In C++, make it always null.
22055 (YYPARSE_PARAM_ARG): New macro.
22056 (yyparse): Use YYPARSE_PARAM_ARG.
22057
22058 1995-11-29 Richard Stallman <rms@gnu.org>
22059
22060 * doc/bison.texinfo:
22061 Describe literal string tokens, %raw, %no_lines, %token_table.
22062
22063 1995-11-29 Daniel Hagerty <hag@gnu.org>
22064
22065 * doc/bison.texinfo: Fixed update date
22066
22067 1995-10-16 Richard Stallman <rms@gnu.org>
22068
22069 * src/version.c: Version 1.25.
22070
22071 1995-10-16 Richard Stallman <rms@gnu.org>
22072
22073 * NEWS: *** empty log message ***
22074
22075 1995-10-16 Richard Stallman <rms@gnu.org>
22076
22077 * doc/bison.1, doc/bison.rnh:
22078 Add new options.
22079
22080 1995-10-15 Richard Stallman <rms@gnu.org>
22081
22082 * src/vmsgetargs.c, src/getargs.c:
22083 Added -n, -k, and -raw switches.
22084 (noparserflag, toknumflag, rawtoknumflag): New variables.
22085
22086 * src/symtab.h (SALIAS):
22087 New #define for adding aliases to %token.
22088 (struct bucket): Added `alias' field.
22089
22090 * src/reduce.c (reduce_grammar):
22091 Revise error message.
22092 (print_notices): Remove final `.' from error message.
22093
22094 * src/reader.c (reader_output_yylsp):
22095 New function.
22096 (readgram): Use `#if 0' around code that accepted %command
22097 inside grammar rules: The documentation doesn't allow it,
22098 and it will fail since the %command processors scan for the next %.
22099 (parse_token_decl): Extended the %token
22100 declaration to allow a multi-character symbol as an alias.
22101 (parse_thong_decl): New function.
22102 (read_declarations): Added %thong declarations.
22103 (read_declarations): Handle NOOP to deal with allowing
22104 % declarations as another means to specify the flags.
22105 (readgram): Allow %prec prior to semantics embedded in a rule.
22106 (skip_to_char, read_declarations, copy_definition)
22107 (parse_token_decl, parse_start_decl, parse_type_decl)
22108 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
22109 (get_type_name, copy_guard, copy_action, readgram)
22110 (get_type, packsymbols): Revised most error messages.
22111 Changed `fatal' to `warnxxx' to avoid aborting for error.
22112 Revised and use multiple warnxxx functions to avoid using VARARGS1.
22113 (read_declarations): Improve the error message for
22114 an invalid character. Do not abort.
22115 (read_declarations, copy_guard, copy_action): Use
22116 printable_version to avoid unprintable characters in printed output.
22117 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
22118 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
22119 Allow the type of a non-terminal can be given
22120 more than once, as long as all specifications give the same type.
22121
22122 * src/output.c:
22123 (output_headers, output_trailers, output, output_gram)
22124 (output_rule_data): Implement noparserflag variable.
22125 Implement toknumflag variable.
22126 (output): Call reader_output_yylsp to output LTYPESTR.
22127
22128 * src/main.c (main):
22129 If reader sees an error, don't process the grammar.
22130 (fatals): Updated to not use VARARGS1.
22131 (printable_version, int_to_string, warn, warni, warns, warnss)
22132 (warnsss): New error reporting functions. Avoid abort for error.
22133
22134 * src/lex.h:
22135 Added THONG and NOOP for alias processing.
22136 Added SETOPT for the new code that allows setting options with %flags.
22137
22138 * src/lex.c:
22139 Include getopt.h. Add some extern decls.
22140 (safegetc): New function to deal with EOF gracefully.
22141 (literalchar); new function to deal with reading \ escapes.
22142 (lex): Use literalchar.
22143 (lex): Implemented "..." tokens.
22144 (literalchar, lex, parse_percent_token): Made tokenbuffer
22145 always contain the token. This includes growing the token
22146 buffer while reading an integer.
22147 (parse_percent_token): Replaced if-else statement with percent_table.
22148 (parse_percent_token): Added % declarations as another
22149 way to specify the flags -n, -l, and -r. Also added hooks for
22150 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
22151 major changes to files.c.
22152 (lex) Retain in the incoming stream a character following
22153 an incorrect '/'.
22154 (skip_white_space, lex): Revised most error messages
22155 and changed fatal to warn to avoid aborting.
22156 (percent_table): Added %thong declarations.
22157
22158 * src/gram.h: Comment changes.
22159
22160 * src/files.c (openfiles, open_extra_files, done):
22161 Add faction flag
22162 and actfile file. Handle noparserflag. Both for -n switch.
22163
22164 * src/conflicts.c (resolve_sr_conflict):
22165 Remove use of alloca.
22166
22167 1995-06-01 Jim Meyering <meyering@gnu.org>
22168
22169 * doc/bison.texinfo: *** empty log message ***
22170
22171 1995-05-06 Richard Stallman <rms@gnu.org>
22172
22173 * src/bison.s1: Comment change.
22174
22175 1995-05-06 Richard Stallman <rms@gnu.org>
22176
22177 * bison.simple: Comment change.
22178
22179 1995-05-03 Richard Stallman <rms@gnu.org>
22180
22181 * src/version.c: Version now 1.24.
22182
22183 * src/bison.s1: Change distribution terms.
22184
22185 * src/version.c: Version now 1.23.
22186
22187 1995-05-03 Richard Stallman <rms@gnu.org>
22188
22189 * doc/bison.texinfo:
22190 Rewrite "Conditions for Using Bison".
22191 Update version to 1.24.
22192
22193 1995-05-03 Richard Stallman <rms@gnu.org>
22194
22195 * bison.simple: Change distribution terms.
22196
22197 1995-02-23 Richard Stallman <rms@gnu.org>
22198
22199 * src/files.c: Test __VMS_POSIX as well as VMS.
22200
22201 1995-02-14 Jim Meyering <meyering@gnu.org>
22202
22203 * src/bison.s1 (__yy_memcpy):
22204 Renamed from __yy_bcopy to avoid
22205 confusion. Reverse FROM and TO arguments to be consistent with
22206 those of memcpy.
22207
22208 1995-02-14 Jim Meyering <meyering@gnu.org>
22209
22210 * bison.simple (__yy_memcpy):
22211 Renamed from __yy_bcopy to avoid
22212 confusion. Reverse FROM and TO arguments to be consistent with
22213 those of memcpy.
22214
22215 1994-11-10 David J. MacKenzie <djm@gnu.org>
22216
22217 * NEWS: reformat
22218
22219 * NEWS: New file.
22220
22221 * Makefile.in (DISTFILES): Include NEWS.
22222
22223 * Makefile.in (DISTFILES):
22224 Include install-sh, not install.sh.
22225
22226 * configure.in: Update to Autoconf v2 macro names.
22227
22228 1994-10-05 David J. MacKenzie <djm@gnu.org>
22229
22230 * Makefile.in: fix typo
22231
22232 * Makefile.in (prefix, exec_prefix):
22233 Let configure set them.
22234
22235 1994-09-28 David J. MacKenzie <djm@gnu.org>
22236
22237 * Makefile.in: Set datadir to $(prefix)/share.
22238
22239 1994-09-15 Richard Stallman <rms@gnu.org>
22240
22241 * src/bison.s1:
22242 Update copyright notice and GPL version.
22243
22244 1994-09-15 Richard Stallman <rms@gnu.org>
22245
22246 * bison.simple:
22247 Update copyright notice and GPL version.
22248
22249 1994-07-12 Richard Stallman <rms@gnu.org>
22250
22251 * src/reduce.c, src/reader.c:
22252 entered into RCS
22253
22254 1994-05-05 David J. MacKenzie <djm@gnu.org>
22255
22256 * Makefile.in: entered into RCS
22257
22258 1994-03-26 Richard Stallman <rms@gnu.org>
22259
22260 * src/bison.s1: entered into RCS
22261
22262 1994-03-26 Richard Stallman <rms@gnu.org>
22263
22264 * bison.simple: entered into RCS
22265
22266 1994-03-25 Richard Stallman <rms@gnu.org>
22267
22268 * src/main.c: entered into RCS
22269
22270 1994-03-24 Richard Stallman <rms@gnu.org>
22271
22272 * src/conflicts.c: entered into RCS
22273
22274 1994-01-02 Richard Stallman <rms@gnu.org>
22275
22276 * Makefile.in: *** empty log message ***
22277
22278 1993-11-21 Richard Stallman <rms@gnu.org>
22279
22280 * src/bison.s1: *** empty log message ***
22281
22282 1993-11-21 Richard Stallman <rms@gnu.org>
22283
22284 * doc/bison.texinfo: entered into RCS
22285
22286 * doc/bison.texinfo: *** empty log message ***
22287
22288 1993-11-21 Richard Stallman <rms@gnu.org>
22289
22290 * bison.simple: *** empty log message ***
22291
22292 1993-10-25 David J. MacKenzie <djm@gnu.org>
22293
22294 * doc/bison.texinfo: *** empty log message ***
22295
22296 1993-10-19 Richard Stallman <rms@gnu.org>
22297
22298 * src/bison.s1: *** empty log message ***
22299
22300 1993-10-19 Richard Stallman <rms@gnu.org>
22301
22302 * bison.simple: *** empty log message ***
22303
22304 1993-10-14 Richard Stallman <rms@gnu.org>
22305
22306 * src/bison.s1: *** empty log message ***
22307
22308 1993-10-14 Richard Stallman <rms@gnu.org>
22309
22310 * bison.simple: *** empty log message ***
22311
22312 1993-09-14 David J. MacKenzie <djm@gnu.org>
22313
22314 * doc/bison.texinfo: *** empty log message ***
22315
22316 1993-09-13 Noah Friedman <friedman@gnu.org>
22317
22318 * Makefile.in: *** empty log message ***
22319
22320 1993-09-10 Richard Stallman <rms@gnu.org>
22321
22322 * src/conflicts.c: *** empty log message ***
22323
22324 * src/system.h: entered into RCS
22325
22326 1993-09-10 Richard Stallman <rms@gnu.org>
22327
22328 * doc/bison.1: entered into RCS
22329
22330 1993-09-06 Noah Friedman <friedman@gnu.org>
22331
22332 * src/version.c: entered into RCS
22333
22334 1993-09-06 Noah Friedman <friedman@gnu.org>
22335
22336 * Makefile.in: *** empty log message ***
22337
22338 1993-07-30 David J. MacKenzie <djm@gnu.org>
22339
22340 * Makefile.in: *** empty log message ***
22341
22342 1993-07-24 Richard Stallman <rms@gnu.org>
22343
22344 * src/bison.s1: *** empty log message ***
22345
22346 1993-07-24 Richard Stallman <rms@gnu.org>
22347
22348 * bison.simple: *** empty log message ***
22349
22350 1993-07-08 David J. MacKenzie <djm@gnu.org>
22351
22352 * Makefile.in: *** empty log message ***
22353
22354 1993-07-04 Richard Stallman <rms@gnu.org>
22355
22356 * src/bison.s1: *** empty log message ***
22357
22358 1993-07-04 Richard Stallman <rms@gnu.org>
22359
22360 * bison.simple: *** empty log message ***
22361
22362 1993-06-26 David J. MacKenzie <djm@gnu.org>
22363
22364 * src/getargs.c: entered into RCS
22365
22366 1993-06-26 David J. MacKenzie <djm@gnu.org>
22367
22368 * doc/bison.texinfo: *** empty log message ***
22369
22370 * doc/bison.1: New file.
22371
22372 1993-06-25 Richard Stallman <rms@gnu.org>
22373
22374 * src/getargs.c: New file.
22375
22376 1993-06-16 Richard Stallman <rms@gnu.org>
22377
22378 * src/bison.s1: *** empty log message ***
22379
22380 1993-06-16 Richard Stallman <rms@gnu.org>
22381
22382 * bison.simple: *** empty log message ***
22383
22384 1993-06-03 Richard Stallman <rms@gnu.org>
22385
22386 * src/bison.s1: New file.
22387
22388 1993-06-03 Richard Stallman <rms@gnu.org>
22389
22390 * doc/bison.texinfo: *** empty log message ***
22391
22392 1993-06-03 Richard Stallman <rms@gnu.org>
22393
22394 * bison.simple: New file.
22395
22396 1993-05-19 Richard Stallman <rms@gnu.org>
22397
22398 * doc/bison.texinfo: New file.
22399
22400 1993-05-07 Noah Friedman <friedman@gnu.org>
22401
22402 * Makefile.in: *** empty log message ***
22403
22404 1993-04-28 Noah Friedman <friedman@gnu.org>
22405
22406 * src/reader.c: *** empty log message ***
22407
22408 1993-04-23 Noah Friedman <friedman@gnu.org>
22409
22410 * src/alloc.h: entered into RCS
22411
22412 1993-04-20 David J. MacKenzie <djm@gnu.org>
22413
22414 * src/version.c: *** empty log message ***
22415
22416 * src/files.c, src/allocate.c:
22417 entered into RCS
22418
22419 * src/reader.c: *** empty log message ***
22420
22421 * src/lex.c: entered into RCS
22422
22423 * src/conflicts.c: New file.
22424
22425 * src/symtab.c: entered into RCS
22426
22427 * src/alloc.h: New file.
22428
22429 * src/LR0.c: entered into RCS
22430
22431 1993-04-18 Noah Friedman <friedman@gnu.org>
22432
22433 * src/reader.c: New file.
22434
22435 * src/version.c: *** empty log message ***
22436
22437 1993-04-18 Noah Friedman <friedman@gnu.org>
22438
22439 * Makefile.in: *** empty log message ***
22440
22441 1993-04-17 Noah Friedman <friedman@gnu.org>
22442
22443 * Makefile.in: *** empty log message ***
22444
22445 1993-04-15 Richard Stallman <rms@gnu.org>
22446
22447 * src/main.c, src/files.c:
22448 New file.
22449
22450 1993-04-15 Noah Friedman <friedman@gnu.org>
22451
22452 * configure.in: entered into RCS
22453
22454 * configure.in: *** empty log message ***
22455
22456 * configure.in: New file.
22457
22458 1993-04-14 Richard Stallman <rms@gnu.org>
22459
22460 * Makefile.in: New file.
22461
22462 1993-04-13 Richard Stallman <rms@gnu.org>
22463
22464 * src/version.c: New file.
22465
22466 1993-03-25 Richard Stallman <rms@gnu.org>
22467
22468 * src/output.c: entered into RCS
22469
22470 1992-09-25 Richard Stallman <rms@gnu.org>
22471
22472 * configure.bat: entered into RCS
22473
22474 1992-06-22 Richard Stallman <rms@gnu.org>
22475
22476 * src/vmsgetargs.c: entered into RCS
22477
22478 1992-06-22 Richard Stallman <rms@gnu.org>
22479
22480 * doc/bison.rnh: entered into RCS
22481
22482 1992-04-20 David J. MacKenzie <djm@gnu.org>
22483
22484 * README: entered into RCS
22485
22486 1992-01-22 Richard Stallman <rms@gnu.org>
22487
22488 * src/machine.h: entered into RCS
22489
22490 1991-12-21 Richard Stallman <rms@gnu.org>
22491
22492 * src/lalr.c, src/closure.c:
22493 entered into RCS
22494
22495 1991-12-20 Richard Stallman <rms@gnu.org>
22496
22497 * src/state.h: entered into RCS
22498
22499 1991-12-18 Richard Stallman <rms@gnu.org>
22500
22501 * src/print.c, src/nullable.c, src/derives.c:
22502 entered into RCS
22503
22504 1991-11-03 David J. MacKenzie <djm@gnu.org>
22505
22506 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
22507 entered into RCS
22508
22509 1988-09-09 Richard Stallman <rms@gnu.org>
22510
22511 * src/bison.hairy: entered into RCS
22512
22513 1987-12-16 Richard Stallman <rms@gnu.org>
22514
22515 * REFERENCES: entered into RCS
22516
22517
22518 -----
22519
22520 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
22521 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
22522 Free Software Foundation, Inc.
22523
22524 Copying and distribution of this file, with or without
22525 modification, are permitted provided the copyright notice and this
22526 notice are preserved.