]> git.saurik.com Git - bison.git/blob - ChangeLog
3fa682ee9567e47a02963574798d48f41cae17db
[bison.git] / ChangeLog
1 2002-05-06 Akim Demaille <akim@epita.fr>
2
3 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
4 hash_do_for_each.
5
6
7 2002-05-06 Akim Demaille <akim@epita.fr>
8
9 * src/LR0.c (new_state, get_state): Instead of using the global
10 `kernel_size' and `kernel_base', have two new arguments:
11 `core_size' and `core'.
12 Adjust callers.
13
14
15 2002-05-06 Akim Demaille <akim@epita.fr>
16
17 * src/reader.c (packgram): No longer end `ritem' with a 0
18 sentinel: it is not used.
19
20
21 2002-05-05 Akim Demaille <akim@epita.fr>
22
23 New experimental feature: display the lookaheads in the report and
24 graph.
25
26 * src/print (print_core): When --trace-flag, display the rules
27 lookaheads.
28 * src/print_graph.c (print_core): Likewise.
29 Swap the arguments.
30 Adjust caller.
31
32 2002-05-05 Akim Demaille <akim@epita.fr>
33
34 * tests/torture.at (Many lookaheads): New test.
35
36 2002-05-05 Akim Demaille <akim@epita.fr>
37
38 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
39 (GENERATE_MUSCLE_INSERT_TABLE): this.
40 (output_int_table, output_unsigned_int_table, output_short_table)
41 (output_token_number_table, output_item_number_table): Replace with...
42 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
43 (muscle_insert_short_table, muscle_insert_token_number_table)
44 (muscle_insert_item_number_table): these.
45 Adjust all callers.
46 (prepare_tokens): Don't free `translations', since...
47 * src/reader.h, src/reader.c (grammar_free): do it.
48 Move to...
49 * src/gram.h, src/gram.c (grammar_free): here.
50 * data/bison.simple, data/bison.c++: b4_token_number_max is now
51 b4_translate_max.
52
53 2002-05-05 Akim Demaille <akim@epita.fr>
54
55 * src/output.c (output_unsigned_int_table): New.
56 (prepare_rules): `i' is unsigned.
57 `prhs', `rline', `r2' are unsigned int.
58 Rename muscle `rhs_number_max' as `rhs_max'.
59 Output muscles `prhs_max', `rline_max', and `r2_max'.
60 Free rline and r1.
61 * data/bison.simple, data/bison.c++: Adjust to use these muscles
62 to compute types instead of constant types.
63 * tests/regression.at (Web2c Actions): Adjust.
64
65 2002-05-04 Akim Demaille <akim@epita.fr>
66
67 * src/symtab.h (SALIAS, SUNDEF): Rename as...
68 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
69 Adjust dependencies.
70 * src/output.c (token_definitions_output): Be sure not to output a
71 `#define 'a'' when fed with `%token 'a' "a"'.
72 * tests/regression.at (Token definitions): New.
73
74 2002-05-03 Paul Eggert <eggert@twinsun.com>
75
76 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
77 for K&R C.
78
79 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
80
81 * Makefile.am (SUBDIRS): Remove intl.
82 (EXTRA_DIST): Add config/config.rpath.
83
84 2002-05-03 Akim Demaille <akim@epita.fr>
85
86 * data/bison.simple (m4_if): Don't output empty enums.
87 And actually, output valid enum definitions :(.
88
89 2002-05-03 Akim Demaille <akim@epita.fr>
90
91 * configure.bat: Remove, completely obsolete.
92 * Makefile.am (EXTRA_DIST): Adjust.
93 Don't distribute config.rpath...
94 * config/Makefile.am (EXTRA_DIST): Do it.
95
96 2002-05-03 Akim Demaille <akim@epita.fr>
97
98 * configure.in (GETTEXT_VERSION): New.
99 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
100
101 2002-05-03 Akim Demaille <akim@epita.fr>
102
103 * data/bison.simple (b4_token_enum): New.
104 (b4_token_defines): Use it to output tokens both as #define and
105 enums.
106 Suggested by Paul Eggert.
107 * src/output.c (token_definitions_output): Don't output spurious
108 white spaces.
109
110 2002-05-03 Akim Demaille <akim@epita.fr>
111
112 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
113
114 2002-05-02 Robert Anisko <robert@lrde.epita.fr>
115
116 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
117 Update the stack class, give a try to deque as the default container.
118
119 2002-05-02 Akim Demaille <akim@epita.fr>
120
121 * data/bison.simple (yyparse): Do not implement @$ = @1.
122 (YYLLOC_DEFAULT): Adjust to do it.
123 * doc/bison.texinfo (Location Default Action): Fix.
124
125 2002-05-02 Akim Demaille <akim@epita.fr>
126
127 * src/reader.c (parse_braces): Merge into...
128 (parse_action): this.
129
130 2002-05-02 Akim Demaille <akim@epita.fr>
131
132 * configure.in (ALL_LINGUAS): Remove.
133 * po/LINGUAS, hr.po: New.
134
135 2002-05-02 Akim Demaille <akim@epita.fr>
136
137 Remove the so called hairy (semantic) parsers.
138
139 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
140 * src/gram.h, src/gram.c (semantic_parser): Remove.
141 (rule_t): Remove the guard and guard_line members.
142 * src/lex.h (token_t): remove tok_guard.
143 * src/options.c (option_table): Remove %guard and %semantic_parser
144 support.
145 * src/output.c, src/output.h (guards_output): Remove.
146 (prepare): Adjust.
147 (token_definitions_output): Don't output the `T'
148 tokens (???).
149 (output_skeleton): Don't output the guards.
150 * src/files.c, src/files.c (attrsfile): Remove.
151 * src/reader.c (symbol_list): Remove the guard and guard_line
152 members.
153 Adjust dependencies.
154 (parse_guard): Remove.
155 * data/bison.hairy: Remove.
156 * doc/bison.texinfo (Environment Variables): Remove occurrences of
157 BISON_HAIRY.
158
159 2002-05-02 Akim Demaille <akim@epita.fr>
160
161 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
162 (parse_guard): Rename the formal argument `stack_offset' as
163 `rule_length', which is more readable.
164 Adjust callers.
165 (copy_at, copy_dollar): Instead of outputting the hard coded
166 values of $$, $n and so forth, output invocation to b4_lhs_value,
167 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
168 Note: this patch partially drops `semantic-parser' support: it
169 always does `rule_length - n', where semantic parsers ought to
170 always use `-n'.
171 * data/bison.simple, data/bison.c++ (b4_lhs_value)
172 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
173
174 2002-05-02 Akim Demaille <akim@epita.fr>
175
176 * configure.in (AC_INIT): Bump to 1.49b.
177 (AM_INIT_AUTOMAKE): Short invocation.
178
179 2002-05-02 Akim Demaille <akim@epita.fr>
180
181 Version 1.49a.
182
183 2002-05-01 Akim Demaille <akim@epita.fr>
184
185 * src/skeleton.h: Remove.
186
187 2002-05-01 Akim Demaille <akim@epita.fr>
188
189 * src/skeleton.h: Fix the #endif.
190 Reported by Magnus Fromreide.
191
192 2002-04-26 Paul Eggert <eggert@twinsun.com>
193
194 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
195 Define if we define YYSTYPE and YYLTYPE, respectively.
196 (YYCOPY): Fix [] quoting problem in the non-GCC case.
197
198 2002-04-25 Robert Anisko <robert@lrde.epita.fr>
199
200 * src/scan-skel.l: Postprocess quadrigraphs.
201
202 * src/reader.c (copy_character): New function, used to output
203 single characters while replacing `[' and `]' with quadrigraphs, to
204 avoid troubles with M4 quotes.
205 (copy_comment): Output characters with copy_character.
206 (read_additionnal_code): Likewise.
207 (copy_string2): Likewise.
208 (copy_definition): Likewise.
209
210 * tests/calc.at: Exercise M4 quoting.
211
212 2002-04-25 Akim Demaille <akim@epita.fr>
213
214 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
215 between `!' and the command.
216 Reported by Paul Eggert.
217
218 2002-04-24 Robert Anisko <robert@lrde.epita.fr>
219
220 * tests/calc.at: Exercise prologue splitting.
221
222 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
223 `b4_post_prologue' instead of `b4_prologue'.
224
225 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
226 muscles.
227 (output): Free pre_prologue_obstack and post_prologue_obstack.
228 * src/files.h, src/files.c (attrs_obstack): Remove.
229 (pre_prologue_obstack, post_prologue_obstack): New.
230 * src/reader.c (copy_definition): Add a parameter to specify the
231 obstack to fill, instead of using attrs_obstack unconditionally.
232 (read_declarations): Pass pre_prologue_obstack to copy_definition if
233 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
234
235 2002-04-23 Paul Eggert <eggert@twinsun.com>
236
237 * data/bison.simple: Remove unnecessary commentary and white
238 space differences from 1_29-branch.
239 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
240
241 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
242 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
243 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
244 constructors or destructors.
245
246 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
247
248 2002-04-23 Akim Demaille <akim@epita.fr>
249
250 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
251 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
252 location with columns.
253 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
254 All reported by Paul Eggert.
255
256 2002-04-22 Akim Demaille <akim@epita.fr>
257
258 * src/reduce.c (dump_grammar): Move to...
259 * src/gram.h, src/gram.c (grammar_dump): here.
260 Be sure to separate long item numbers.
261 Don't read the members of a rule's prec if its nil.
262
263 2002-04-22 Akim Demaille <akim@epita.fr>
264
265 * src/output.c (table_size, table_grow): New.
266 (MAXTABLE): Remove, replace uses with table_size.
267 (pack_vector): Instead of dying when the table is too big, grow it.
268
269 2002-04-22 Akim Demaille <akim@epita.fr>
270
271 * data/bison.simple (yyr1): Its type is that of a token number.
272 * data/bison.c++ (r1_): Likewise.
273 * tests/regression.at (Web2c Actions): Adjust.
274
275 2002-04-22 Akim Demaille <akim@epita.fr>
276
277 * src/reader.c (token_translations_init): 256 is now the default
278 value for the error token, i.e., it will be assigned another
279 number if the user assigned 256 to one of her tokens.
280 (reader): Don't force 256 to error.
281 * doc/bison.texinfo (Symbols): Adjust.
282 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
283 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
284 etc. instead of 10, 20, 30 (which was used to `jump' over error
285 (256) and undefined (2)).
286
287 2002-04-22 Akim Demaille <akim@epita.fr>
288
289 Propagate more token_number_t.
290
291 * src/gram.h (token_number_as_item_number)
292 (item_number_as_token_number): New.
293 * src/output.c (GENERATE_OUTPUT_TABLE): New.
294 Use it to create output_item_number_table and
295 output_token_number_table.
296 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
297 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
298 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
299 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
300
301 2002-04-22 Akim Demaille <akim@epita.fr>
302
303 * src/output.h, src/output.c (get_lines_number): Remove.
304
305 2002-04-19 Akim Demaille <akim@epita.fr>
306
307 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
308 as Lex/Flex'.
309 (Debugging): More details about enabling the debugging features.
310 (Table of Symbols): Describe $$, $n, @$, and @n.
311 Suggested by Tim Josling.
312
313 2002-04-19 Akim Demaille <akim@epita.fr>
314
315 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
316
317 2002-04-10 Akim Demaille <akim@epita.fr>
318
319 * src/system.h: Rely on HAVE_LIMITS_H.
320 Suggested by Paul Eggert.
321
322 2002-04-09 Akim Demaille <akim@epita.fr>
323
324 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
325 full stderr, and strip it according to the bison options, instead
326 of composing the error message from different bits.
327 This makes it easier to check for several error messages.
328 Adjust all the invocations.
329 Add an invocation exercising the error token.
330 Add an invocation demonstrating a stupid error message.
331 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
332 Adjust the tests.
333 Error message are for stderr, not stdout.
334
335 2002-04-09 Akim Demaille <akim@epita.fr>
336
337 * src/gram.h, src/gram.c (error_token_number): Remove, use
338 errtoken->number.
339 * src/reader.c (reader): Don't specify the user token number (2)
340 for $undefined, as it uselessly prevents using it.
341 * src/gram.h (token_number_t): Move to...
342 * src/symtab.h: here.
343 (state_t.number): Is a token_number_t.
344 * src/print.c, src/reader.c: Use undeftoken->number instead of
345 hard coded 2.
346 (Even though this 2 is not the same as above: the number of the
347 undeftoken remains being 2, it is its user token number which
348 might not be 2).
349 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
350 `user_token_number_max'.
351 Output `undef_token_number'.
352 * data/bison.simple, data/bison.c++: Use them.
353 Be sure to map invalid yylex return values to
354 `undef_token_number'. This saves us from gratuitous SEGV.
355
356 * tests/conflicts.at (Solved SR Conflicts)
357 (Unresolved SR Conflicts): Adjust.
358 * tests/regression.at (Web2c Actions): Adjust.
359
360 2002-04-08 Akim Demaille <akim@epita.fr>
361
362 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
363 Adding #line.
364 Remove the duplicate `typedefs'.
365 (RhsNumberType): Fix the declaration and various other typos.
366 Use __ofile__.
367 * data/bison.simple: Use __ofile__.
368 * src/scan-skel.l: Handle __ofile__.
369
370 2002-04-08 Akim Demaille <akim@epita.fr>
371
372 * src/gram.h (item_number_t): New, the type of item numbers in
373 RITEM. Note that it must be able to code symbol numbers as
374 positive number, and the negation of rule numbers as negative
375 numbers.
376 Adjust all dependencies (pretty many).
377 * src/reduce.c (rule): Remove this `short *' pointer: use
378 item_number_t.
379 * src/system.h (MINSHORT, MAXSHORT): Remove.
380 Include `limits.h'.
381 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
382 (shortcpy): Remove.
383 (MAXTABLE): Move to...
384 * src/output.c (MAXTABLE): here.
385 (prepare_rules): Use output_int_table to output rhs.
386 * data/bison.simple, data/bison.c++: Adjust.
387 * tests/torture.at (Big triangle): Move the limit from 254 to
388 500.
389 * tests/regression.at (Web2c Actions): Ajust.
390
391 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
392 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
393 passes, but produces negative #line number, once fixed, GCC is
394 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
395 C), it passes.
396 * src/state.h (state_h): Code input lines on ints, not shorts.
397
398 2002-04-08 Akim Demaille <akim@epita.fr>
399
400 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
401 and then the grammar.
402
403 2002-04-08 Akim Demaille <akim@epita.fr>
404
405 * src/system.h: No longer using strndup.
406
407 2002-04-07 Akim Demaille <akim@epita.fr>
408
409 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
410 * src/output.c (output_table_data): Return the longest number.
411 (prepare_tokens): Output `token_number_max').
412 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
413 New.
414 Use them to define yy_token_number_type/TokenNumberType.
415 Use this type for yytranslate.
416 * tests/torture.at (Big triangle): Push the limit from 124 to
417 253.
418 * tests/regression.at (Web2c Actions): Adjust.
419
420 2002-04-07 Akim Demaille <akim@epita.fr>
421
422 * tests/torture.at (Big triangle): New.
423 (GNU AWK Grammar, GNU Cim Grammar): Move to...
424 * tests/existing.at: here.
425
426 2002-04-07 Akim Demaille <akim@epita.fr>
427
428 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
429 nritems.
430 Adjust dependencies.
431
432 2002-04-07 Akim Demaille <akim@epita.fr>
433
434 * src/reader.c: Normalize increments to prefix form.
435
436 2002-04-07 Akim Demaille <akim@epita.fr>
437
438 * src/reader.c, symtab.c: Remove debugging code.
439
440 2002-04-07 Akim Demaille <akim@epita.fr>
441
442 Rename all the `bucket's as `symbol_t'.
443
444 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
445 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
446 * src/symtab.c, src/symtab.h (bucket): Rename as...
447 (symbol_t): this.
448 (symbol_list_new, bucket_check_defined, bucket_make_alias)
449 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
450 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
451 (buckets_new, buckets_free, buckets_do): Rename as...
452 (symbol_list_new, symbol_check_defined, symbol_make_alias)
453 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
454 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
455 (symbols_new, symbols_free, symbols_do): these.
456
457 2002-04-07 Akim Demaille <akim@epita.fr>
458
459 Use lib/hash for the symbol table.
460
461 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
462 EOF.
463 * src/lex.c (lex): Set the `number' member of new terminals.
464 * src/reader.c (bucket_check_defined, bucket_make_alias)
465 (bucket_check_alias_consistence, bucket_translation): New.
466 (reader, grammar_free, readgram, token_translations_init)
467 (packsymbols): Adjust.
468 (reader): Number the predefined tokens.
469 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
470 for predefined tokens.
471 * src/symtab.h (bucket): Remove all the hash table related
472 members.
473 * src/symtab.c (symtab): Replace by...
474 (bucket_table): this.
475 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
476 (buckets_new, buckets_do): New.
477
478 2002-04-07 Akim Demaille <akim@epita.fr>
479
480 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
481 (start_symbol, max_user_token_number, semantic_parser)
482 (error_token_number): Initialize.
483 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
484 Initialize.
485 (reader): Don't.
486 (errtoken, eoftoken, undeftoken, axiom): Extern.
487
488 2002-04-07 Akim Demaille <akim@epita.fr>
489
490 * src/gram.h (rule_s): prec and precsym are now pointers
491 to the bucket giving the priority/associativity.
492 Member `associativity' removed: useless.
493 * src/reduce.c, src/conflicts.c: Adjust.
494
495 2002-04-07 Akim Demaille <akim@epita.fr>
496
497 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
498 Properly escape the symbols' TAG when outputting them.
499
500 2002-04-07 Akim Demaille <akim@epita.fr>
501
502 * src/lalr.h (LA): Is a bitsetv, not bitset*.
503
504 2002-04-07 Akim Demaille <akim@epita.fr>
505
506 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
507 (LArule): this, which is an array to rule_t*.
508 * src/print.c, src/conflicts.c: Adjust.
509
510 2002-04-07 Akim Demaille <akim@epita.fr>
511
512 * src/gram.h (rule_t): Rename `number' as `user_number'.
513 `number' is a new member.
514 Adjust dependencies.
515 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
516
517 2002-04-07 Akim Demaille <akim@epita.fr>
518
519 As a result of the previous patch, it is no longer needed
520 to reorder ritem itself.
521
522 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
523
524 2002-04-07 Akim Demaille <akim@epita.fr>
525
526 Be sure never to walk through RITEMS, but use only data related to
527 the rules themselves. RITEMS should be banished.
528
529 * src/output.c (output_token_translations): Rename as...
530 (prepare_tokens): this.
531 In addition to `translate', prepare the muscles `tname' and
532 `toknum', which were handled by...
533 (output_rule_data): this.
534 Remove, and move the remainder of its outputs into...
535 (prepare_rules): this new routines, which also merges content from
536 (output_gram): this.
537 (prepare_rules): Be sure never to walk through RITEMS.
538 (output_stos): Rename as...
539 (prepare_stos): this.
540 (output): Always invoke prepare_states, after all, just don't use it
541 in the output if you don't need it.
542
543 2002-04-07 Akim Demaille <akim@epita.fr>
544
545 * src/LR0.c (new_state): Display `nstates' as the name of the
546 newly created state.
547 Adjust to initialize first_state and last_state if needed.
548 Be sure to distinguish the initial from the final state.
549 (new_states): Create the itemset of the initial state, and use
550 new_state.
551 * src/closure.c (closure): Now that the initial state has its
552 items properly set, there is no need for a special case when
553 creating `ruleset'.
554
555 As a result, now the rule 0, reducing to $axiom, is visible in the
556 outputs. Adjust the test suite.
557
558 * tests/conflicts.at (Solved SR Conflicts)
559 (Unresolved SR Conflicts): Adjust.
560 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
561 * tests/conflicts.at (S/R in initial): New.
562
563 2002-04-07 Akim Demaille <akim@epita.fr>
564
565 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
566 the RHS of the rules.
567 * src/output.c (output_gram): Likewise.
568
569 2002-04-07 Akim Demaille <akim@epita.fr>
570
571 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
572 bucket.
573 Adjust all dependencies.
574 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
575 `number' of the buckets too.
576 * src/gram.h: Include `symtab.h'.
577 (associativity): Move to...
578 * src/symtab.h: here.
579 No longer include `gram.h'.
580
581 2002-04-07 Akim Demaille <akim@epita.fr>
582
583 * src/gram.h, src/gram.c (rules_rhs_length): New.
584 (ritem_longest_rhs): Use it.
585 * src/gram.h (rule_t): `number' is a new member.
586 * src/reader.c (packgram): Set it.
587 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
588 the end of `rules', and count them out of `nrules'.
589 (reduce_output, dump_grammar): Adjust.
590 * src/print.c (print_grammar): It is no longer needed to check for
591 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
592 * tests/reduce.at (Reduced Automaton): New test.
593
594 2002-04-07 Akim Demaille <akim@epita.fr>
595
596 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
597 lacking `+ 1' to nrules, Bison reported as useless a token if it
598 was used solely to set the precedence of the last rule...
599
600 2002-04-07 Akim Demaille <akim@epita.fr>
601
602 * data/bison.c++, data/bison.simple: Don't output the current file
603 name in #line, to avoid useless diffs between two identical
604 outputs under different names.
605
606 2002-04-07 Akim Demaille <akim@epita.fr>
607
608 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
609 Normalize loops to using `< nrules + 1', not `<= nrules'.
610
611 2002-04-07 Akim Demaille <akim@epita.fr>
612
613 * TODO: Update.
614
615 2002-04-07 Akim Demaille <akim@epita.fr>
616
617 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
618 bucket.value as bucket.number.
619
620 2002-04-07 Akim Demaille <akim@epita.fr>
621
622 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
623 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
624 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
625 RHS, instead of being an index in RITEMS.
626
627 2002-04-04 Paul Eggert <eggert@twinsun.com>
628
629 * doc/bison.texinfo: Update copyright date.
630 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
631 (Symbols): Warn about running Bison in one character set,
632 but compiling and/or running in an incompatible one.
633 Warn about character code 256, too.
634
635 2002-04-03 Paul Eggert <eggert@twinsun.com>
636
637 * src/bison.data (YYSTACK_ALLOC): Depend on whether
638 YYERROR_VERBOSE is nonzero, not whether it is defined.
639
640 Merge changes from bison-1_29-branch.
641
642 2002-03-20 Paul Eggert <eggert@twinsun.com>
643
644 Merge fixes from Debian bison_1.34-1.diff.
645
646 * configure.in (AC_PREREQ): 2.53.
647
648 2002-03-20 Akim Demaille <akim@epita.fr>
649
650 * src/conflicts.c (log_resolution): Argument `resolution' is const.
651
652 2002-03-19 Paul Eggert <eggert@twinsun.com>
653
654 * src/bison.simple (YYCOPY): New macro.
655 (YYSTACK_RELOCATE): Use it.
656 Remove Type arg; no longer needed. All callers changed.
657 (yymemcpy): Remove; no longer needed.
658
659 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
660 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
661
662 2002-03-19 Akim Demaille <akim@epita.fr>
663
664 Test and fix the #line outputs.
665
666 * tests/atlocal.at (GCC): New.
667 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
668 (Prologue synch line, ,%union synch line, Postprologue synch line)
669 (Action synch line, Epilogue synch line): New tests.
670 * src/reader.c (parse_union_decl): Define the muscle stype_line.
671 * data/bison.simple, data/bison.c++: Use it.
672
673 2002-03-19 Akim Demaille <akim@epita.fr>
674
675 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
676 (Solved SR Conflicts, %expect not enough, %expect right)
677 (%expect too much): Move to...
678 * tests/conflicts.at: this new file.
679
680 2002-03-19 Akim Demaille <akim@epita.fr>
681
682 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
683 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
684 that we can move to enums for instance.
685 * src/output.c (token_definitions_output): Output a list of
686 `token-name, token-number' instead of the #define.
687 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
688
689 2002-03-14 Akim Demaille <akim@epita.fr>
690
691 Use Gettext 0.11.1.
692
693 2002-03-09 Robert Anisko <robert@lrde.epita.fr>
694
695 * data/bison.c++: Make the user able to add members to the generated
696 parser by subclassing.
697
698 2002-03-05 Robert Anisko <robert@lrde.epita.fr>
699
700 * src/reader.c (read_additionnal_code): `c' should be an integer, not
701 a character.
702 Reported by Nicolas Tisserand and Nicolas Burrus.
703
704 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
705
706 * src/reader.c: Warn about lacking semi-colons, do not complain.
707
708 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
709
710 * data/bison.c++: Remove a debug line.
711
712 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
713
714 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
715 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
716 provide a default implementation.
717
718 2002-03-04 Akim Demaille <akim@epita.fr>
719
720 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
721 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
722 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
723 * tests/semantic.at (Parsing Guards): Similarly.
724 * src/reader.at (readgram): Complain if the last rule is not ended
725 with a semi-colon.
726
727 2002-03-04 Akim Demaille <akim@epita.fr>
728
729 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
730 * src/closure.c: here.
731 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
732 RTC.
733 * src/warshall.h, src/warshall.c: Remove.
734 * tests/sets.at (Broken Closure): Adjust.
735
736 2002-03-04 Akim Demaille <akim@epita.fr>
737
738 * src/output.c (output_skeleton): tempdir is const.
739 bytes_read is unused.
740
741 2002-03-04 Akim Demaille <akim@epita.fr>
742
743 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
744 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
745 Update.
746 From Michael Hayes.
747
748 2002-03-04 Akim Demaille <akim@epita.fr>
749
750 * src/closure.c (closure): `r' is unused.
751
752 2002-03-04 Akim Demaille <akim@epita.fr>
753
754 * tests/sets.at (Broken Closure): Add the ending `;'.
755 * src/reader.at (readgram): Complain if a rule is not ended with a
756 semi-colon.
757
758 2002-03-04 Akim Demaille <akim@epita.fr>
759
760 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
761 (count_sr_conflicts): Use bitset_count.
762 * src/reduce.c (inaccessable_symbols): Ditto.
763 (bits_size): Remove.
764 * src/warshall.h, src/warshall.c: Convert to bitsetv.
765
766 2002-03-04 Akim Demaille <akim@epita.fr>
767
768 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
769 * src/reduce.c: Remove the `bitset_zero's following the
770 `bitset_create's, as now it is performed by the latter.
771
772 2002-03-04 Akim Demaille <akim@epita.fr>
773
774 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
775 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
776 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
777 latest sources from Michael.
778
779 2002-03-04 Akim Demaille <akim@epita.fr>
780
781 * src/output.c (output): Don't free the grammar.
782 * src/reader.c (grammar_free): New.
783 * src/main.c (main): Call it and don't free symtab here.
784
785 2002-03-04 Akim Demaille <akim@epita.fr>
786
787 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
788 before returning.
789 Reported by Benoit Perrot.
790
791 2002-03-04 Akim Demaille <akim@epita.fr>
792
793 Use bitset operations when possible, not loops over bits.
794
795 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
796 bitset_or.
797 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
798 * src/reduce.c (useless_nonterminals): Formatting changes.
799 * src/warshall.c (TC): Use bitset_or.
800
801 2002-03-04 Akim Demaille <akim@epita.fr>
802
803 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
804 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
805 Ditto.
806
807 2002-03-04 Akim Demaille <akim@epita.fr>
808
809 * src/lalr.c (F): Now a bitset*.
810 Adjust all dependencies.
811
812 2002-03-04 Akim Demaille <akim@epita.fr>
813
814 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
815 Adjust all dependencies.
816
817 2002-03-04 Akim Demaille <akim@epita.fr>
818
819 * src/L0.c, src/LR0.h (nstates): Be size_t.
820 Adjust comparisons (signed vs unsigned).
821 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
822 bitset*.
823 Adjust all dependencies.
824
825 2002-03-04 Akim Demaille <akim@epita.fr>
826
827 * src/closure.c (firsts): Now, also a bitset.
828 Adjust all dependencies.
829 (varsetsize): Remove, now unused.
830 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
831
832 2002-03-04 Akim Demaille <akim@epita.fr>
833
834 * src/print.c: Convert to use bitset.h, not hand coded iterations
835 over ints.
836
837 2002-03-04 Akim Demaille <akim@epita.fr>
838
839 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
840
841 2002-03-04 Akim Demaille <akim@epita.fr>
842
843 * src/closure.c (ruleset): Be a bitset.
844 (rulesetsize): Remove.
845
846 2002-03-04 Akim Demaille <akim@epita.fr>
847
848 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
849 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
850 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
851 * src/closure.c (fderives): Be an array of bitsets.
852
853 2002-02-28 Robert Anisko <robert@lrde.epita.fr>
854
855 * data/bison.c++: Merge the two generated headers. Insert a copyright
856 notice in each output file.
857
858 2002-02-28 Akim Demaille <akim@epita.fr>
859
860 * data/bison.c++: Copy the prologue of bison.simple to fetch
861 useful M4 definitions, such as b4_header_guard.
862
863 2002-02-25 Akim Demaille <akim@epita.fr>
864
865 * src/getargs.c (version): Give the name of the authors, and use a
866 translator friendly scheme for the bgr
867 copyright notice.
868
869 2002-02-25 Akim Demaille <akim@epita.fr>
870
871 * src/output.c (header_output): Remove, now handled completely via
872 M4.
873
874 2002-02-25 Akim Demaille <akim@epita.fr>
875
876 * m4/m4.m4: New, from CVS Autoconf.
877 * configure.in: Invoke it.
878 * src/output.c (output_skeleton): Use its result instead of the
879 hard coded name.
880
881 2002-02-25 Akim Demaille <akim@epita.fr>
882
883 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
884 Fileutils 4.1.5.
885 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
886 * src/output.c (output_skeleton): Use mkstemp to create a real
887 temporary file.
888 Move the filling of `skeleton' and its muscle to...
889 (prepare): here.
890 (output): Move the definition of the prologue muscle to...
891 (prepare): here.
892 * src/system.h (DEFAULT_TMPDIR): New.
893
894 2002-02-14 Paul Eggert <eggert@twinsun.com>
895
896 Remove the support for C++ namespace cleanliness; it was
897 causing more problems than it was curing, since it didn't work
898 properly on some nonstandard C++ compilers. This can wait
899 for a proper C++ parser.
900
901 * NEWS: Document this.
902 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
903 of C++, as it's treated like C now.
904 * src/bison.simple (YYSTD): Remove.
905 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
906 Treat C++ just like Standard C instead of trying to support
907 namespace cleanliness.
908
909 2002-02-14 Akim Demaille <akim@epita.fr>
910
911 * tests/regression.at (else): Adjust to Andreas' change.
912
913 2002-02-14 Akim Demaille <akim@epita.fr>
914
915 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
916
917 2002-02-13 Andreas Schwab <schwab@suse.de>
918
919 * src/output.c (output_rule_data): Don't output NULL, it might
920 not be defined yet.
921
922 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
923
924 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
925 (Copyright notice): Update.
926
927 2002-02-11 Akim Demaille <akim@epita.fr>
928
929 * tests/regression.at (%nonassoc and eof): Don't include
930 nonportable headers.
931
932 2002-02-08 Robert Anisko <robert@lrde.epita.fr>
933
934 * data/bison.c++: Correct error recovery. Make the user able to
935 initialize the starting location.
936
937 2002-02-07 Akim Demaille <akim@epita.fr>
938
939 * tests/input.at: New.
940
941 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
942
943 * data/bison.c++: Replace some direct m4 expansions by constants. Be
944 more consistent when naming methods and variables. Put preprocessor
945 directives around tables only needed for debugging.
946
947 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
948
949 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
950 C++ parsers.
951 (yy::b4_name::parse): Use print_.
952
953 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
954
955 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
956
957 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
958
959 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
960 C++ parsers.
961 (yy::b4_name::parse): Build verbose error messages, and use error_.
962
963 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
964
965 * data/bison.c++: Fix m4 quoting in comments.
966
967 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
968
969 * data/bison.c++: Adjust the parser code. Fix some muscles that were
970 not expanded by m4.
971
972 2002-02-05 Akim Demaille <akim@epita.fr>
973
974 * data/bison.c++: Adjust to the M4 back end.
975 More is certainly needed.
976
977 2002-02-05 Akim Demaille <akim@epita.fr>
978
979 Give a try to M4 as a back end.
980
981 * lib/readpipe.c: New, from wdiff.
982 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
983 BISON_HAIRY.
984 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
985 specific values. Now it is m4 that performs the lookup.
986 * src/parse-skel.y: Remove.
987 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
988 * src/output.c (actions_output, guards_output)
989 (token_definitions_output): No longer keeps track of the output
990 line number, hence remove the second argument.
991 (guards_output): Check against the guard member of a rule, not the
992 action member.
993 Adjust callers.
994 (output_skeleton): Don't look for the skeleton location, let m4 do
995 that.
996 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
997 file will be used.
998 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
999 (prepare): Given that for the time being changesyntax is not
1000 usable in M4, rename the muscles using `-' to `_'.
1001 Define `defines_flag', `output_parser_name' and `output_header_name'.
1002 * src/output.h (actions_output, guards_output)
1003 (token_definitions_output): Adjust prototypes.
1004 * src/scan-skel.l: Instead of scanning the skeletons, it now
1005 processes the output of m4: `__oline__' and `#output'.
1006 * data/bison.simple: Adjust to be used by M4(sugar).
1007 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
1008 to date.
1009 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
1010 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
1011 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
1012 shamelessly stolen from CVS Autoconf.
1013
1014 2002-02-05 Akim Demaille <akim@epita.fr>
1015
1016 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
1017 * configure.in: Check for the declarations of free and malloc.
1018 * src/muscle_tab.c: Adjust.
1019
1020 2002-02-05 Akim Demaille <akim@epita.fr>
1021
1022 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
1023 which have no values.
1024
1025 2002-02-05 Akim Demaille <akim@epita.fr>
1026
1027 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
1028 * data/: here.
1029
1030 2002-01-29 Paul Eggert <eggert@twinsun.com>
1031
1032 * src/bison.simple (YYSIZE_T): Do not define merely because
1033 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
1034 On some platforms, <alloca.h> does not declare YYSTD (size_t).
1035
1036 2002-01-27 Akim Demaille <akim@epita.fr>
1037
1038 Fix `%nonassoc and eof'.
1039
1040 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
1041 which were not properly copied! Replace
1042 memcpy (res->errs, src->errs, src->nerrs);
1043 with
1044 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
1045 !!!
1046 * tests/regression.at (%nonassoc and eof): Adjust to newest
1047 Autotest: `.' is not in the PATH.
1048
1049 2002-01-27 Akim Demaille <akim@epita.fr>
1050
1051 * tests/sets.at (AT_EXTRACT_SETS): New.
1052 (Nullable): Use it.
1053 (Firsts): New.
1054
1055 2002-01-26 Akim Demaille <akim@epita.fr>
1056
1057 * tests/actions.at, tests/calc.at, tests/headers.at,
1058 * tests/torture.at: Adjust to the newest Autotest which no longer
1059 forces `.' in the PATH.
1060
1061 2002-01-25 Akim Demaille <akim@epita.fr>
1062
1063 * tests/regression.at (%nonassoc and eof): New.
1064 Suggested by Robert Anisko.
1065
1066 2002-01-24 Akim Demaille <akim@epita.fr>
1067
1068 Bison dumps core when trying to complain about broken input files.
1069 Reported by Cris van Pelt.
1070
1071 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
1072 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
1073 into...
1074 (Invalid inputs): Strengthen: exercise parse_percent_token.
1075
1076 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
1077
1078 * src/Makefile.am: Add bison.c++.
1079 * src/bison.c++: New skeleton.
1080
1081 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
1082
1083 * po/it.po: New.
1084
1085 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
1086
1087 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
1088
1089 2002-01-20 Marc Autret <marc@gnu.org>
1090
1091 * src/files.c (compute_output_file_names): Fix
1092
1093 2002-01-20 Marc Autret <marc@gnu.org>
1094
1095 * tests/output.at: New test.
1096 * src/files.c (compute_base_names): Don't map extensions when
1097 the YACC flag is set, use defaults.
1098 Reported by Evgeny Stambulchik.
1099
1100 2002-01-20 Marc Autret <marc@gnu.org>
1101
1102 * src/system.h: Need to define __attribute__ away for non-GCC
1103 compilers as well (i.e. the vendor C compiler).
1104 Suggested by Albert Chin-A-Young.
1105
1106 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
1107
1108 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
1109 canonical definition.
1110 * src/system.h: Use the canonical definition for PARAMS (avoids
1111 a conflict with the macro from lib/hash.h).
1112
1113 2002-01-11 Akim Demaille <akim@epita.fr>
1114
1115 * configure.in: Use AC_FUNC_STRNLEN.
1116 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
1117
1118 2002-01-09 Akim Demaille <akim@epita.fr>
1119
1120 * src/files.c, src/files.h (output_infix): New.
1121 (tab_extension): Remove.
1122 (compute_base_names): Compute the former, drop the latter.
1123 * src/output.c (prepare): Insert the muscles `output-infix', and
1124 `output-suffix'.
1125 * src/parse-skel.y (string, string.1): New.
1126 (section.header): Use it.
1127 (section.yacc): Remove.
1128 (prefix): Remove too.
1129 * src/scan-skel.l: Adjust.
1130 * src/bison.simple, src/bison.hairy: Adjust.
1131
1132 2002-01-09 Akim Demaille <akim@epita.fr>
1133
1134 * configure.in (WERROR_CFLAGS): Compute it.
1135 * src/Makefile.am (CFLAGS): Pass it.
1136 * tests/atlocal.in (CFLAGS): Idem.
1137 * src/files.c: Fix a few warnings.
1138 (get_extension_index): Remove, unused.
1139
1140 2002-01-08 Akim Demaille <akim@epita.fr>
1141
1142 * src/getargs.c (AS_FILE_NAME): New.
1143 (getargs): Use it to convert DOSish file names.
1144 * src/files.c (base_name): Rename as full_base_name to avoid
1145 clashes with `base_name ()'.
1146 (filename_split): New.
1147 (compute_base_names): N-th rewrite, using filename_split.
1148
1149 2002-01-08 Akim Demaille <akim@epita.fr>
1150
1151 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
1152 New, stolen from the Fileutils 4.1.
1153 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
1154 * configure.in: Check for the presence of memrchr, and of its
1155 prototype.
1156
1157 2002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
1158
1159 * lib/hash.h (__P): Added definition for this macro.
1160 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
1161 BUILT_SOURCES, to ensure they are generated first.
1162 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
1163 %error-verbose to allow bootstrapping with bison 1.30x.
1164
1165 2002-01-06 Akim Demaille <akim@epita.fr>
1166
1167 * src/reader.c (parse_braces): Don't fetch the next char, the
1168 convention is to fetch on entry.
1169 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
1170 'switch' without a following semicolon.
1171 * tests/regression.at (braces parsing): New.
1172
1173 2002-01-06 Akim Demaille <akim@epita.fr>
1174
1175 Bison is dead wrong in its RR conflict reports.
1176
1177 * tests/torture.at (GNU Cim Grammar): New.
1178 * src/conflicts.c (count_rr_conflicts): Fix.
1179
1180 2002-01-06 Akim Demaille <akim@epita.fr>
1181
1182 Creating package.m4 from configure.ac causes too many problems.
1183
1184 * tests/Makefile.am (package.m4): Create it by hand,
1185 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
1186
1187 2002-01-06 Akim Demaille <akim@epita.fr>
1188
1189 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
1190 skeleton.h.
1191
1192 2002-01-04 Paul Eggert <eggert@twinsun.com>
1193
1194 * doc/bison.texinfo (Debugging):
1195 Remove YYSTDERR; it's no longer defined or used.
1196 Also, s/cstdio.h/cstdio/.
1197
1198 2002-01-03 Akim Demaille <akim@epita.fr>
1199
1200 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
1201
1202 2002-01-03 Akim Demaille <akim@epita.fr>
1203
1204 * src/parse-skel.y (process_skeleton): Don't bind the parser's
1205 tracing code to --trace, wait for a better --trace option, with
1206 args.
1207
1208 2002-01-03 Akim Demaille <akim@epita.fr>
1209
1210 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
1211 The ISO C++ standard is extremely clear about it: stderr is
1212 considered a macro, not a regular symbol (see table 94 `Header
1213 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
1214 Therefore std:: does not apply to it. It still does with fprintf.
1215 Also, s/cstdio.h/cstdio/.
1216
1217 2002-01-03 Akim Demaille <akim@epita.fr>
1218
1219 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
1220 for non system headers.
1221
1222 2002-01-02 Akim Demaille <akim@epita.fr>
1223
1224 Equip the skeleton chain with location tracking, runtime trace,
1225 pure parser and scanner.
1226
1227 * src/parse-skel.y: Request a pure parser, locations, and prefix
1228 renaming.
1229 (%union): Having several members with the same type does not help
1230 type mismatches, simplify.
1231 (YYPRINT, yyprint): New.
1232 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
1233 (skel_error): this.
1234 Handle locations.
1235 * src/scan-skel.l: Adjust to these changes.
1236 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
1237 (LOCATION_PRINT, skel_control_t): New.
1238
1239 2001-12-30 Akim Demaille <akim@epita.fr>
1240
1241 * src/parse-skel.y: Get rid of the shift/reduce conflict:
1242 replace `gb' with BLANKS.
1243 * src/scan-skel.l: Adjust.
1244
1245 2001-12-30 Akim Demaille <akim@epita.fr>
1246
1247 * src/system.h: We don't need nor want bcopy.
1248 Throw away MS-DOS crap: we don't need getpid.
1249 * configure.in: We don't need strndup. It was even causing
1250 problems: because Flex includes the headers *before* us,
1251 _GNU_SOURCE is not defined by config.h, and therefore strndup was
1252 not visible.
1253 * lib/xstrndup.c: New.
1254 * src/scan-skel.l: Use it.
1255 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
1256 * src/parse-skel.y: Use %directives instead of #defines.
1257
1258 2001-12-30 Akim Demaille <akim@epita.fr>
1259
1260 * src/skeleton.h: New.
1261 * src/output.c (output_parser, output_master_parser): Remove, dead
1262 code.
1263 * src/output.h (get_lines_number, actions_output, guards_output)
1264 (token_definitions_output): Prototype them.
1265 * src/parse-skel.y: Add the license notice.
1266 Include output.h and skeleton.h.
1267 (process_skeleton): Returns void, and takes a single parameter.
1268 * src/scan-skel.l: Add the license notice.
1269 Include skeleton.h.
1270 Don't use %option yylineno: it seems that then Flex imagines
1271 REJECT has been used, and therefore it won't reallocate its
1272 buffers (which makes no other sense to me than a bug). It results
1273 in warnings for `unused: yy_flex_realloc'.
1274
1275 2001-12-30 Robert Anisko <robert.anisko@epita.fr>
1276
1277 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
1278 (MUSCLE_INSERT_PREFIX): ...to there.
1279 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
1280 (MUSCLE_INSERT_PREFIX): Move from here...
1281
1282 * src/bison.hairy: Add a section directive. Put braces around muscle
1283 names. This parser skeleton is still broken, but Bison should not
1284 choke on a bad muscle 'syntax'.
1285 * src/bison.simple: Add a section directive. Put braces around muscle
1286 names.
1287
1288 * src/files.h (strsuffix, stringappend): Add declarations.
1289 (tab_extension): Add declaration.
1290 (short_base_name): Add declaration.
1291
1292 * src/files.c (strsuffix, stringappend): No longer static. These
1293 functions are used in the skeleton parser.
1294 (tab_extension): New.
1295 (compute_base_names): Use the computations done in this function
1296 to guess if the generated parsers should have '.tab' in their
1297 names.
1298 (short_base_name): No longer static.
1299
1300 * src/output.c (output_skeleton): New.
1301 (output): Disable call to output_master_parser, and give a try to
1302 a new skeleton handling system.
1303 (guards_output, actions_output): No longer static.
1304 (token_definitions_output, get_lines_number): No longer static.
1305
1306 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
1307
1308 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
1309 parse-skel.y.
1310
1311 * src/parse-skel.y: New file.
1312 * src/scan-skel.l: New file.
1313
1314 2001-12-29 Akim Demaille <akim@epita.fr>
1315
1316 %name-prefix is broken.
1317
1318 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
1319 Adjust all dependencies.
1320 * tests/headers.at (export YYLTYPE): Strengthen this test: use
1321 %name-prefix.
1322
1323 Renaming yylval but not yylloc is not consistent. Now we do.
1324
1325 * src/bison.simple: Prefix yylloc if used.
1326 * doc/bison.texinfo (Decl Summary): Document that.
1327
1328 2001-12-29 Akim Demaille <akim@epita.fr>
1329
1330 * doc/bison.texinfo: Promote `%long-directive' over
1331 `%long_directive'.
1332 Remove all references to fixed-output-files, yacc is enough.
1333
1334 2001-12-29 Akim Demaille <akim@epita.fr>
1335
1336 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
1337 user prologue. These are defaults.
1338 * tests/actions.at (Mid-rule actions): Make sure the user can
1339 define YYDEBUG and YYERROR_VERBOSE.
1340
1341 2001-12-29 Akim Demaille <akim@epita.fr>
1342
1343 * src/output.c (header_output): Don't forget to export YYLTYPE and
1344 yylloc.
1345 * tests/headers.at (export YYLTYPE): New, make sure it does.
1346 * tests/regression.at (%union and --defines, Invalid CPP headers):
1347 Move to...
1348 * tests/headers.at: here.
1349
1350 2001-12-29 Akim Demaille <akim@epita.fr>
1351
1352 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
1353
1354 2001-12-29 Akim Demaille <akim@epita.fr>
1355
1356 * tests/actions.at (Mid-rule actions): Output on a single line
1357 instead of several.
1358
1359 2001-12-29 Akim Demaille <akim@epita.fr>
1360
1361 * doc/bison.texinfo: Formatting changes.
1362
1363 2001-12-29 Akim Demaille <akim@epita.fr>
1364
1365 Don't store the token defs in a muscle, just be ready to output it
1366 on command. Now possible via `symbols'. Fixes a memory leak.
1367
1368 * src/output.c (token_definitions_output): New.
1369 (output_parser, header_output): Use it.
1370 * src/reader.c (symbols_save): Remove.
1371
1372 2001-12-29 Akim Demaille <akim@epita.fr>
1373
1374 * src/bison.simple: Do not provide a default for YYSTYPE and
1375 YYLTYPE before the user's prologue. Otherwise it's hardly... a
1376 default.
1377
1378 2001-12-29 Akim Demaille <akim@epita.fr>
1379
1380 Mid-rule actions are simply... ignored!
1381
1382 * src/reader.c (readgram): Be sure to attach mid-rule actions to
1383 the empty-rule associated to the dummy symbol, not to the host
1384 rule.
1385 * tests/actions.at (Mid-rule actions): New.
1386
1387 2001-12-29 Akim Demaille <akim@epita.fr>
1388
1389 Memory leak.
1390
1391 * src/reader.c (reader): Free grammar.
1392
1393 2001-12-29 Akim Demaille <akim@epita.fr>
1394
1395 Memory leak.
1396
1397 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
1398 since it allocates it for each state, although only one is needed.
1399 (allocate_storage): Do it here.
1400
1401 2001-12-29 Akim Demaille <akim@epita.fr>
1402
1403 * src/options.h, src/options.c (create_long_option_table): Rename
1404 as...
1405 (long_option_table_new): this, with a clearer prototype.
1406 (percent_table): Remove, unused,
1407 * src/getargs.c (getargs): Adjust.
1408
1409 2001-12-29 Akim Demaille <akim@epita.fr>
1410
1411 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
1412 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
1413 as states.
1414
1415 2001-12-29 Akim Demaille <akim@epita.fr>
1416
1417 * src/lalr.c (build_relations): Rename `states' as `states1'.
1418 Sorry, I don't understand exactly what it is, no better name...
1419
1420 2001-12-29 Akim Demaille <akim@epita.fr>
1421
1422 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
1423 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
1424 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
1425 as rules.
1426
1427 2001-12-29 Akim Demaille <akim@epita.fr>
1428
1429 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
1430 ago.
1431
1432 2001-12-29 Akim Demaille <akim@epita.fr>
1433
1434 * src/reader.c, src/reader.h (user_toknums): Remove.
1435 Adjust all users to use symbols[i]->user_token_number.
1436
1437 2001-12-29 Akim Demaille <akim@epita.fr>
1438
1439 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
1440 Adjust all users to use symbols[i]->prec or ->assoc.
1441
1442 2001-12-29 Akim Demaille <akim@epita.fr>
1443
1444 * src/reader.c, src/reader.h (tags): Remove.
1445 Adjust all users to use symbols[i]->tag.
1446
1447 2001-12-29 Akim Demaille <akim@epita.fr>
1448
1449 * src/gram.h, src/gram.c (symbols): New, similar to state_table
1450 and rule_table.
1451 * src/reader.c (packsymbols): Fill this table.
1452 Drop sprec.
1453 * src/conflicts.c (resolve_sr_conflict): Adjust.
1454 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
1455 single table.
1456 Use symbols[i]->tag instead of tags[i].
1457
1458 2001-12-29 Akim Demaille <akim@epita.fr>
1459
1460 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
1461 In addition, put a comment in there, to replace...
1462 * tests/regression.at (%union and C comments): Remove.
1463
1464 2001-12-29 Akim Demaille <akim@epita.fr>
1465
1466 * tests/regression.at (Web2c Actions): Blindly move the actual
1467 output as expected output. The contents *seem* right to me, but I
1468 can't pretend reading perfectly parser tables... Nonetheless, all
1469 the other tests pass correctly, the table look OK, even though the
1470 presence of `$axiom' is to be noted: AFAICS it is useless (but
1471 harmless).
1472
1473 2001-12-29 Akim Demaille <akim@epita.fr>
1474
1475 * src/reader.c (readgram): Don't add the rule 0 if there were no
1476 rules read. In other words, add it _after_ having performed
1477 grammar sanity checks.
1478 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
1479
1480 2001-12-29 Akim Demaille <akim@epita.fr>
1481
1482 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
1483 visible, and some states have now a different number.
1484
1485 2001-12-29 Akim Demaille <akim@epita.fr>
1486
1487 * src/reader.c (readgram): Bind the initial rule's lineno to that
1488 of the first rule.
1489 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
1490 (Solved SR Conflicts): Adjust rule 0's line number.
1491
1492 2001-12-29 Akim Demaille <akim@epita.fr>
1493
1494 Fix the `GAWK Grammar' failure.
1495
1496 * src/LR0.c (final_state): Initialize to -1 so that we do compute
1497 the reductions of the first state which was mistakenly confused
1498 with the final state because precisely final_state was initialized
1499 to 0.
1500 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
1501 now noticed by Bison.
1502 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
1503 have a reduction on $default.
1504
1505 2001-12-29 Akim Demaille <akim@epita.fr>
1506
1507 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
1508 rule line numbers.
1509 * src/closure.c (print_closure): Likewise.
1510 * src/derives.c (print_derives): Likewise.
1511 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
1512 now.
1513
1514 2001-12-29 Akim Demaille <akim@epita.fr>
1515
1516 * src/lalr.c (lookaheads_print): New.
1517 (lalr): Call it when --trace-flag.
1518 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
1519 are dumped.
1520
1521 2001-12-29 Akim Demaille <akim@epita.fr>
1522
1523 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
1524 when walking through ritem, even via rule->rhs.
1525 * src/reduce.c (dump_grammar, useful_production, reduce_output)
1526 (useful_production, useless_nonterminals): Likewise.
1527 (reduce_grammar_tables): Likewise, plus update nritems.
1528 * src/nullable.c (set_nullable): Likewise.
1529 * src/lalr.c (build_relations): Likewise.
1530 * tests/sets.at (Nullable): Adjust.
1531 Fortunately, now, the $axiom is no longer nullable.
1532
1533 2001-12-29 Akim Demaille <akim@epita.fr>
1534
1535 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
1536 the 0-sentinel.
1537 * src/gram.c (ritem_longest_rhs): Likewise.
1538 * src/reduce.c (nonterminals_reduce): Likewise.
1539 * src/print_graph.c (print_graph): Likewise.
1540 * src/output.c (output_rule_data): Likewise.
1541 * src/nullable.c (set_nullable): Likewise.
1542
1543 2001-12-29 Akim Demaille <akim@epita.fr>
1544
1545 * src/output.c: Comment changes.
1546
1547 2001-12-27 Paul Eggert <eggert@twinsun.com>
1548
1549 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
1550 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
1551 Sparc, as they were causing more porting problems than the
1552 (minor) performance improvement was worth.
1553
1554 Also, catch up with 1.31's YYSTD.
1555
1556 2001-12-27 Akim Demaille <akim@epita.fr>
1557
1558 * src/output.c (output_gram): Rely on nritems, not the
1559 0-sentinel. See below.
1560 Use -1 as separator, not 0.
1561 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
1562 Rely on -1 as separator in yyrhs, instead of 0.
1563 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
1564 twice `Now at end of input', therefore there are two lines less to
1565 expect.
1566
1567 2001-12-27 Akim Demaille <akim@epita.fr>
1568
1569 * tests/regression.at (Unresolved SR Conflicts):
1570 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
1571 below.
1572
1573 2001-12-27 Akim Demaille <akim@epita.fr>
1574
1575 * src/LR0.c (new_state): Recognize the final state by the fact it
1576 is reached by eoftoken.
1577 (insert_start_shifting_state, insert_eof_shifting_state)
1578 (insert_accepting_state, augment_automaton): Remove, since now
1579 these states are automatically computed from the initial state.
1580 (generate_states): Adjust.
1581 * src/print.c: When reporting a rule number to the user, substract
1582 1, so that the axiom rule is rule 0, and the first user rule is 1.
1583 * src/reduce.c: Likewise.
1584 * src/print_graph.c (print_core): For the time being, just as for
1585 the report, depend upon --trace-flags to dump the full set of
1586 items.
1587 * src/reader.c (readgram): Once the grammar read, insert the rule
1588 0: `$axiom: START-SYMBOL $'.
1589 * tests/set.at: Adjust: rule 0 is now displayed, and since the
1590 number of the states has changed (the final state is no longer
1591 necessarily the last), catch up.
1592
1593 2001-12-27 Akim Demaille <akim@epita.fr>
1594
1595 Try to make the use of the eoftoken valid. Given that its value
1596 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
1597 is used instead of > 0 where appropriate, (ii), depend upon nritems
1598 instead of the 0-sentinel.
1599
1600 * src/gram.h, src/gram.c (nritems): New.
1601 Expected to be duplication of nitems, but for the time being...
1602 * src/reader.c (packgram): Assert nritems and nitems are equal.
1603 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
1604 * src/closure.c (print_closure, print_fderives): Likewise.
1605 * src/gram.c (ritem_print): Likewise.
1606 * src/print.c (print_core, print_grammar): Likewise.
1607 * src/print_graph.c: Likewise.
1608
1609 2001-12-27 Akim Demaille <akim@epita.fr>
1610
1611 * src/main.c (main): If there are complains after grammar
1612 reductions, then output the report anyway if requested, then die.
1613 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
1614 * src/reader.c (eoftoken): New.
1615 (parse_token_decl): If the token being defined has value `0', it
1616 is the eoftoken.
1617 (packsymbols): No longer hack `tags' to insert `$' by hand.
1618 Be sure to preserve the value of the eoftoken.
1619 (reader): Make sure eoftoken is defined.
1620 Initialize nsyms to 0: now eoftoken is created just like the others.
1621 * src/print.c (print_grammar): Don't special case the eof token.
1622 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
1623 lie anyway, albeit pleasant.
1624 * tests/calc.at: Exercise error messages with eoftoken.
1625 Change the grammar so that empty input is invalid.
1626 Adjust expectations.
1627 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
1628
1629 2001-12-27 Akim Demaille <akim@epita.fr>
1630
1631 * configure.in: Check the protos of strchr ans strspn.
1632 Replace strchr if needed.
1633 * src/system.h: Provide the protos of strchr, strspn and memchr if
1634 missing.
1635 * lib/strchr.c: New.
1636 * src/reader.c (symbols_save): Use strchr.
1637
1638 2001-12-27 Akim Demaille <akim@epita.fr>
1639
1640 * src/print.c, src/print_graph.c (escape): New.
1641 Use it to quote the TAGS outputs.
1642 * src/print_graph.c (print_state): Now errors are in red, and
1643 reductions in green.
1644 Prefer high to wide: output the state number on a line of its own.
1645
1646 2001-12-27 Akim Demaille <akim@epita.fr>
1647
1648 * src/state.h, src/state.c (reductions_new): New.
1649 * src/LR0.c (set_state_table): Let all the states have a
1650 `reductions', even if reduced to 0.
1651 (save_reductions): Adjust.
1652 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
1653 * src/print.c (print_reductions, print_actions): Adjust.
1654 * src/output.c (action_row): Adjust.
1655
1656 2001-12-27 Akim Demaille <akim@epita.fr>
1657
1658 * src/state.h, src/state.c (errs_new, errs_dup): New.
1659 * src/LR0.c (set_state_table): Let all the states have an errs,
1660 even if reduced to 0.
1661 * src/print.c (print_errs, print_reductions): Adjust.
1662 * src/output.c (output_actions, action_row): Adjust.
1663 * src/conflicts.c (resolve_sr_conflict): Adjust.
1664
1665 2001-12-27 Akim Demaille <akim@epita.fr>
1666
1667 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
1668
1669 2001-12-27 Akim Demaille <akim@epita.fr>
1670
1671 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
1672 * src/print.c: here.
1673 (lookaheadset, shiftset): New, used as additional storage by
1674 print_reductions.
1675 (print_results): Adjust.
1676 (print_shifts, print_gotos, print_errs): New, extracted from...
1677 (print_actions): here.
1678 * src/print_graph.c (print_actions): Remove dead code.
1679
1680 2001-12-27 Akim Demaille <akim@epita.fr>
1681
1682 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
1683 `$n' and `@n'.
1684
1685 2001-12-27 Akim Demaille <akim@epita.fr>
1686
1687 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
1688 (build_relations): Adjust.
1689
1690 2001-12-27 Akim Demaille <akim@epita.fr>
1691
1692 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
1693 duplication.
1694
1695 2001-12-27 Akim Demaille <akim@epita.fr>
1696
1697 * src/reader.c (packgram): Catch nitems overflows.
1698
1699 2001-12-27 Akim Demaille <akim@epita.fr>
1700
1701 * src/files.c, src/files.h (guard_obstack): Remove.
1702 * src/output.c (output): Adjust.
1703 * src/reader.c (parse_braces): New, factoring...
1704 (copy_action, copy_guard): these two which are renamed as...
1705 (parse_action, parse_guard): these.
1706 As a voluntary consequence, using braces around guards is now
1707 mandatory.
1708
1709 2001-12-27 Akim Demaille <akim@epita.fr>
1710
1711 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
1712 * src/reader.c (symbol_list): `guard' and `guard_line' are new
1713 members.
1714 (symbol_list_new): Adjust.
1715 (copy_action): action_line is the first line, not the last.
1716 (copy_guard): Just as for actions, store the `action' only, not
1717 the switch/case/break flesh.
1718 Don't parse the user action that might follow the guard, let...
1719 (readgram): do it, i.e., now, there can be an action after a
1720 guard.
1721 In other words the guard is just explicitly optional.
1722 (packgram): Adjust.
1723 * src/output.c (guards_output): New.
1724 (output_parser): Call it when needed.
1725 (output): Also free the guard and attrs obstacks.
1726 * src/files.c, src/files.h (obstack_save): Remove.
1727 (output_files): Remove.
1728 As a result, if one needs the former `.act' file, using an
1729 appropriate skeleton which requires actions and guards is now
1730 required.
1731 * src/main.c (main): Adjust.
1732 * tests/semantic.at: New.
1733 * tests/regression.at: Use `input.y' as input file name.
1734 Avoid 8+3 problems by requiring input.c when the test needs the
1735 parser.
1736
1737 2001-12-27 Akim Demaille <akim@epita.fr>
1738
1739 * src/reader.c (symbol_list_new): Be sure to initialize all the
1740 fields.
1741
1742 2001-12-27 Akim Demaille <akim@epita.fr>
1743
1744 All the hacks using a final pseudo state are now useless.
1745
1746 * src/LR0.c (set_state_table): state_table holds exactly nstates.
1747 * src/lalr.c (nLA): New.
1748 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
1749 instead of lookaheadsp from the pseudo state (nstate + 1).
1750
1751 2001-12-27 Akim Demaille <akim@epita.fr>
1752
1753 * src/output.c (action_row, token_actions): Use a state_t instead
1754 of a integer, and nlookaheads instead of the following state's
1755 lookaheadsp.
1756
1757 2001-12-27 Akim Demaille <akim@epita.fr>
1758
1759 * src/conflicts.c (log_resolution, flush_shift)
1760 (resolve_sr_conflict, set_conflicts, solve_conflicts)
1761 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
1762 (conflicts_print, print_reductions): Use a state_t instead of an
1763 integer when referring to a state.
1764 As much as possible, depend upon nlookaheads, instead of the
1765 `lookaheadsp' member of the following state (since lookaheads of
1766 successive states are successive, the difference between state n + 1
1767 and n served as the number of lookaheads for state n).
1768 * src/lalr.c (add_lookback_edge): Likewise.
1769 * src/print.c (print_core, print_actions, print_state)
1770 (print_results): Likewise.
1771 * src/print_graph.c (print_core, print_actions, print_state)
1772 (print_graph): Likewise.
1773 * src/conflicts.h: Adjust.
1774
1775 2001-12-27 Akim Demaille <akim@epita.fr>
1776
1777 * src/bison.hairy: Formatting/comment changes.
1778 ANSIfy.
1779 Remove `register' indications.
1780 Add plenty of `static'.
1781
1782 2001-12-27 Akim Demaille <akim@epita.fr>
1783
1784 * src/output.c (prepare): Drop the muscle `ntbase' which
1785 duplicates ntokens.
1786 * src/bison.simple: Formatting/comment changes.
1787 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
1788 is an undocumented synonym.
1789
1790 2001-12-22 Akim Demaille <akim@epita.fr>
1791
1792 * src/output.c (output_table_data): Change the prototype to use
1793 `int' for array ranges: some invocations do pass an int, not a
1794 short.
1795 Reported by Wayne Green.
1796
1797 2001-12-22 Akim Demaille <akim@epita.fr>
1798
1799 Some actions of web2c.y are improperly triggered.
1800 Reported by Mike Castle.
1801
1802 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
1803 * tests/regression.at (Web2c): Rename as...
1804 (Web2c Report): this.
1805 (Web2c Actions): New.
1806
1807 2001-12-22 Akim Demaille <akim@epita.fr>
1808
1809 Reductions in web2c.y are improperly reported.
1810 Reported by Mike Castle.
1811
1812 * src/conflicts.c (print_reductions): Fix.
1813 * tests/regression.at (Web2c): New.
1814
1815 2001-12-18 Akim Demaille <akim@epita.fr>
1816
1817 Some host fail on `assert (!"foo")', which expands to
1818 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
1819 Reported by Nelson Beebee.
1820
1821 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
1822 `#define it_succeeded 0' and `assert (it_succeeded)'.
1823
1824 2001-12-17 Marc Autret <autret_m@epita.fr>
1825
1826 * src/bison.simple: Don't hard code the skeleton line and filename.
1827 * src/output.c (output_parser): Rename 'line' as 'output_line'.
1828 New line counter 'skeleton_line' (skeleton-line muscle).
1829
1830 2001-12-17 Paul Eggert <eggert@twinsun.com>
1831
1832 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
1833 YYDEBUG must be defined to a nonzero value.
1834
1835 * src/bison.simple (yytname): Do not assume that the user defines
1836 YYDEBUG to a properly parenthesized expression.
1837
1838 2001-12-17 Akim Demaille <akim@epita.fr>
1839
1840 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
1841 nlookaheads is a new member.
1842 Adjust all users.
1843 * src/lalr.h (nlookaheads): Remove this orphan declaration.
1844 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
1845 state.
1846
1847 2001-12-17 Akim Demaille <akim@epita.fr>
1848
1849 * src/files.h, src/files.c (open_files, close_files): Remove.
1850 * src/main.c (main): Don't open/close files, nor invoke lex_free,
1851 let...
1852 * src/reader.c (reader): Do it.
1853
1854 2001-12-17 Akim Demaille <akim@epita.fr>
1855
1856 * src/conflicts.c (print_reductions): Formatting changes.
1857
1858 2001-12-17 Akim Demaille <akim@epita.fr>
1859
1860 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
1861 (flush_reduce): New.
1862 (resolve_sr_conflict): Adjust.
1863
1864 2001-12-17 Akim Demaille <akim@epita.fr>
1865
1866 * src/output.c (output_obstack): Be static and rename as...
1867 (format_obstack): this, to avoid any confusion with files.c's
1868 output_obstack.
1869 * src/reader.h (muscle_obstack): Move to...
1870 * src/output.h: here, since it's defined in output.c.
1871
1872 2001-12-17 Akim Demaille <akim@epita.fr>
1873
1874 * src/output.c (action_row, save_column, default_goto)
1875 (sort_actions, matching_state, pack_vector): Better variable
1876 locality.
1877
1878 2001-12-17 Akim Demaille <akim@epita.fr>
1879
1880 * src/output.c: Various formatting changes.
1881
1882 2001-12-17 Akim Demaille <akim@epita.fr>
1883
1884 * src/files.c (output_files): Free the output_obstack.
1885 * src/main.c (main): Call print and print_graph conditionally.
1886 * src/print.c (print): Work unconditionally.
1887 * src/print_graph.c (print_graph): Work unconditionally.
1888 * src/conflicts.c (log_resolution): Output only if verbose_flag.
1889
1890 2001-12-16 Marc Autret <autret_m@epita.fr>
1891
1892 * src/output.c (actions_output): Fix. When we use %no-lines,
1893 there is one less line per action.
1894
1895 2001-12-16 Marc Autret <autret_m@epita.fr>
1896
1897 * src/bison.simple: Remove a useless #line directive.
1898 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
1899 * src/output.c (get_lines_number): New.
1900 (output_parser): Adjust, now takes care about the lines of a
1901 output muscles.
1902 Fix line numbering.
1903 (actions_output): Computes the number of lines taken by actions.
1904 (output_master_parser): Insert new skeleton which is the name of
1905 the output parser file name.
1906
1907 2001-12-15 Marc Autret <autret_m@epita.fr>
1908
1909 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
1910
1911 2001-12-15 Marc Autret <autret_m@epita.fr>
1912
1913 * src/output.c (output_gram): Keep track of the hairy one.
1914
1915 2001-12-15 Akim Demaille <akim@epita.fr>
1916
1917 Make `make distcheck' work.
1918
1919 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
1920 system.h which uses libgettext.h.
1921
1922 2001-12-15 Akim Demaille <akim@epita.fr>
1923
1924 * src/nullable.c (set_nullable): Useless rules must be skipped,
1925 otherwise, since we range over their symbols, we might look at a
1926 nonterminal which no longer ``exists'', i.e., it is not counted in
1927 `nvars', hence we overflow our arrays.
1928
1929 2001-12-15 Akim Demaille <akim@epita.fr>
1930
1931 The header can also be produced directly, without any obstack!
1932 Yahoo!
1933
1934 * src/files.c, src/files.h (defines_obstack): Remove.
1935 (compute_header_macro): Global.
1936 (defines_obstack_save): Remove.
1937 * src/reader.c (parse_union_decl): No longer output to
1938 defines_obstack: its content can be found in the `stype' muscle
1939 anyway.
1940 (output_token_translations): Merge into...
1941 (symbols_output): this.
1942 Rename as...
1943 (symbols_save): this.
1944 (reader): Adjust.
1945 * src/output.c (header_output): New.
1946 (output): Call it.
1947
1948 2001-12-15 Akim Demaille <akim@epita.fr>
1949
1950 * src/reader.c (parse_union_decl): Instead of handling two obstack
1951 simultaneously, use one to define the `stype' muscle, and use the
1952 value of the latter to fill defines_obstack.
1953 (copy_comment): Remove.
1954 (copy_comment2): Work for a single obstack.
1955 Rename as...
1956 (copy_comment): this.
1957
1958 2001-12-15 Akim Demaille <akim@epita.fr>
1959
1960 * src/lex.c, src/lex.h (xgetc): No longer static.
1961 * src/reader.c (parse_union_decl): Revamp.
1962
1963 2001-12-15 Akim Demaille <akim@epita.fr>
1964
1965 Still making progress in separating Bison into (i) input, (ii)
1966 process, (iii) output: now we can directly output the parser file
1967 without using table_obstack at all.
1968
1969 * src/files.c, src/files.h (table_obstack): Bye bye.
1970 (parser_file_name): New.
1971 * src/files.c (compute_output_file_names): Compute it.
1972 * src/output.c (actions_output, output_parser)
1973 (output_master_parser): To a file instead of an obstack.
1974
1975 2001-12-15 Akim Demaille <akim@epita.fr>
1976
1977 Attach actions to rules, instead of pre-outputting them to
1978 actions_obstack.
1979
1980 * src/gram.h (rule_t): action and action_line are new members.
1981 * src/reader.c (symbol_list): Likewise.
1982 (copy_action): Save the actions within the rule.
1983 (packgram): Save them in rule_table.
1984 * src/output.c (actions_output): New.
1985 (output_parser): Use it on `%%actions'.
1986 (output_rule_data): Don't free rule_table.
1987 (output): Do it.
1988 (prepare): Don't save the `action' muscle.
1989 * src/bison.simple: s/%%action/%%actions/.
1990
1991 2001-12-15 Akim Demaille <akim@epita.fr>
1992
1993 * src/reader.c (copy_action): When --yacc, don't append a `;'
1994 to the user action: let it fail if lacking.
1995 Suggested by Arnold Robbins and Tom Tromey.
1996
1997 2001-12-14 Akim Demaille <akim@epita.fr>
1998
1999 * src/lex.c (literalchar): Simply return the char you decoded, non
2000 longer mess around with obstacks and int pointers.
2001 Adjust all callers.
2002
2003 2001-12-14 Akim Demaille <akim@epita.fr>
2004
2005 * src/lex.c (literalchar): Don't escape the special characters,
2006 just decode them, and keep them as char (before, eol was output as
2007 the 2 char string `\n' etc.).
2008 * src/output.c (output_rule_data): Use quotearg to output the
2009 token strings.
2010
2011 2001-12-13 Paul Eggert <eggert@twinsun.com>
2012
2013 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
2014 Do not infringe on the global user namespace when using C++.
2015 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
2016 All uses of `fprintf' and `stderr' changed.
2017
2018 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
2019
2020 2001-12-13 Akim Demaille <akim@epita.fr>
2021
2022 The computation of nullable is broken: it doesn't handle empty
2023 RHS's properly.
2024
2025 * tests/torture.at (GNU AWK Grammar): New.
2026 * tests/sets.at (Nullable): New.
2027 * src/nullable.c (set_nullable): Instead of blindly looping over
2028 `ritems', loop over the rules, and then over their rhs's.
2029
2030 Work around Autotest bugs.
2031
2032 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
2033 frame, because Autotest understand lines starting with a `+' as
2034 traces from the shell. Then, they are not processed properly.
2035 Admittedly an Autotest bug, but we don't have time to wait for
2036 Autotest to catch up.
2037 * tests/regression.at (Broken Closure): Adjust to the new table
2038 frames.
2039 Move to...
2040 * tests/sets.at: here.
2041
2042 2001-12-13 Akim Demaille <akim@epita.fr>
2043
2044 * src/closure.c (closure): Use nrules instead of playing tricks
2045 with BITS_PER_WORD.
2046
2047 2001-12-13 Akim Demaille <akim@epita.fr>
2048
2049 * src/print.c (print_actions): Output the handling of `$' as the
2050 traces do: shifting the token EOF. Before EOF was treated as a
2051 nonterminal.
2052 * tests/regression.at: Adjust some tests.
2053 * src/print_graph.c (print_core): Complete the set of items via
2054 closure. The next-to-final and final states are still unsatisfying,
2055 but that's to be addressed elsewhere.
2056 No longer output the rule numbers, but do output the state number.
2057 A single loop for the shifts + gotos is enough, but picked a
2058 distinct color for each.
2059 (print_graph): Initialize and finalize closure.
2060
2061 2001-12-13 Akim Demaille <akim@epita.fr>
2062
2063 * src/reader.c (readgram): Remove dead code, an strip useless
2064 braces.
2065 (get_type): Remove, unused.
2066
2067 2001-12-12 Akim Demaille <akim@epita.fr>
2068
2069 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
2070 on that of lib/error.c.
2071
2072 2001-12-12 Akim Demaille <akim@epita.fr>
2073
2074 Some hosts don't like `/' in includes.
2075
2076 * src/system.h: Include libgettext.h without qualifying the path.
2077 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
2078 $(top_srcdir).
2079
2080 2001-12-11 Marc Autret <autret_m@epita.fr>
2081
2082 * src/output.c (output_parser): Remove useless muscle.
2083
2084 2001-12-11 Marc Autret <autret_m@epita.fr>
2085
2086 * src/bison.simple: Remove #line just before %%epilogue. It
2087 is now handled in ...
2088 * src/reader.c (read_additionnal_code): Add the output of a
2089 #line for the epilogue.
2090
2091 2001-12-10 Marc Autret <autret_m@epita.fr>
2092
2093 * src/reader.c (copy_definition): Re-use CPP-outed code which
2094 replace precedent remove.
2095 * src/bison.simple: Remove #line before %%prologue because
2096 %%input-line is wrong at this time.
2097
2098 2001-12-10 Marc Autret <autret_m@epita.fr>
2099
2100 * src/reader.c (symbols_output): Clean up.
2101 * src/output.c (output_gram, output): Clean up.
2102
2103 2001-12-10 Akim Demaille <akim@epita.fr>
2104
2105 * src/lalr.c (initialize_lookaheads): New. Extracted from...
2106 * src/LR0.c (set_state_table): here.
2107 * src/lalr.c (lalr): Call it.
2108
2109 2001-12-10 Akim Demaille <akim@epita.fr>
2110
2111 * src/state.h (shifts): Remove the `number' member: shifts are
2112 attached to state, hence no longer need to be labelled with a
2113 state number.
2114
2115 2001-12-10 Akim Demaille <akim@epita.fr>
2116
2117 Now that states have a complete set of members, the linked list of
2118 shifts is useless: just fill directly the state's shifts member.
2119
2120 * src/state.h (shifts): Remove the `next' member.
2121 * src/LR0.c (first_state, last_state): Remove.
2122 Adjust the callers.
2123 (augment_automaton): Don't look for the shifts that must be added
2124 a shift on EOF: it is those of the state we looked for! But now,
2125 since shifts are attached, it is no longer needed to looking
2126 merely by its id: its number.
2127
2128 2001-12-10 Akim Demaille <akim@epita.fr>
2129
2130 * src/LR0.c (augment_automaton): Better variable locality.
2131 Remove an impossible branch: if there is a state corresponding to
2132 the start symbol being shifted, then there is shift for the start
2133 symbol from the initial state.
2134
2135 2001-12-10 Akim Demaille <akim@epita.fr>
2136
2137 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
2138 only when appropriate: when insert_start_shifting_state' is not
2139 invoked.
2140 * tests/regression.at (Rule Line Numbers): Adjust.
2141
2142 2001-12-10 Akim Demaille <akim@epita.fr>
2143
2144 * src/LR0.c (augment_automaton): Now that all states have shifts,
2145 merge the two cases addition shifts to the initial state.
2146
2147 2001-12-10 Akim Demaille <akim@epita.fr>
2148
2149 * src/lalr.c (set_state_table): Move to...
2150 * src/LR0.c: here.
2151 * src/lalr.c (lalr): Don't call it...
2152 * src/LR0.c (generate_states): do it.
2153 * src/LR0.h (first_state): Remove, only the table is used.
2154
2155 2001-12-10 Akim Demaille <akim@epita.fr>
2156
2157 * src/LR0.h (first_shift, first_reduction): Remove.
2158 * src/lalr.c: Don't use first_shift: find shifts through the
2159 states.
2160
2161 2001-12-10 Akim Demaille <akim@epita.fr>
2162
2163 * src/LR0.c: Attach shifts to states as soon as they are
2164 computed.
2165 * src/lalr.c (set_state_table): Instead of assigning shifts to
2166 state, just assert that the mapping was properly done.
2167
2168 2001-12-10 Akim Demaille <akim@epita.fr>
2169
2170 * src/LR0.c (insert_start_shift): Rename as...
2171 (insert_start_shifting_state): this.
2172 (insert_eof_shifting_state, insert_accepting_state): New.
2173 (augment_automaton): Adjust.
2174 Better locality of the variables.
2175 When looking if the start_symbol is shifted from the initial
2176 state, using `while (... symbol != start_symbol ...)' sounds
2177 better than `while (... symbol < start_symbol ...)': If fail
2178 to see how the order between symbols could be relevant!
2179
2180 2001-12-10 Akim Demaille <akim@epita.fr>
2181
2182 * src/getargs.h: Don't declare `spec_name_prefix' and
2183 `spec_file_prefix', declared by src/files.h.
2184 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
2185 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
2186 * src/output.c (prepare): Adjust.
2187 * src/reader.c (symbols_output): Likewise.
2188 * src/vmsgetargs.c: Vaguely adjust, but who cares?
2189
2190 2001-12-10 Akim Demaille <akim@epita.fr>
2191
2192 * src/muscle_tab.c (muscle_init): NULL is a better default than
2193 `"0"'.
2194
2195 2001-12-10 Akim Demaille <akim@epita.fr>
2196
2197 * src/reader.c (reader): Calling symbols_output once is enough.
2198
2199 2001-12-10 Akim Demaille <akim@epita.fr>
2200
2201 Now that states have a complete set of members, the linked list of
2202 reductions is useless: just fill directly the state's reductions
2203 member.
2204
2205 * src/state.h (struct reductions): Remove member `number' and
2206 `next'.
2207 * src/LR0.c (first_reduction, last_reduction): Remove.
2208 (save_reductions): Don't link the new reductions, store them in
2209 this_state.
2210 * src/lalr.c (set_state_table): No need to attach reductions to
2211 states, it's already done.
2212 * src/output.c (output_actions): No longer free the shifts, then
2213 the reductions, then the states: free all the states and their
2214 members.
2215
2216 2001-12-10 Akim Demaille <akim@epita.fr>
2217
2218 * src/options.c (OPTN, DRTV, BOTH): New.
2219 (option_table): Use them.
2220
2221 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
2222 the job of system.h.
2223 * src/options.c: Don't include stdio.h and xalloc.h for the same
2224 reasons.
2225
2226 2001-12-10 Akim Demaille <akim@epita.fr>
2227
2228 * src/output.c (output, prepare): Make sure the values of the
2229 muscles `action' and `prologue' are 0-terminated.
2230
2231 2001-12-10 Akim Demaille <akim@epita.fr>
2232
2233 Clean up GCC warnings.
2234
2235 * src/reader.c (copy_action): `buf' is not used.
2236 (parse_skel_decl): Be static.
2237 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
2238 * src/options.h (create_long_option_table): Have a real prototype.
2239 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
2240 (hash_delete_at): Return const void *.
2241 Adjust casts to preserve the const.
2242
2243 2001-12-10 Akim Demaille <akim@epita.fr>
2244
2245 * configure.in: Require 2.52g.
2246 M4 is not needed, but AUTOM4TE is.
2247 * m4/m4.m4: Remove.
2248 * tests/Makefile.am: Adjust.
2249
2250 2001-12-10 Akim Demaille <akim@epita.fr>
2251
2252 One structure for states is enough, even though theoretically
2253 there are LR(0) states and LALR(1) states.
2254
2255 * src/lalr.h (state_t): Remove.
2256 (state_table): Be state_t **, not state_t *.
2257 * src/state.h (core, CORE_ALLOC): Rename as...
2258 (state_t, STATE_ALLOC): this.
2259 Add the LALR(1) members: shifts, reductions, errs.
2260 * src/LR0.c (state_table): Rename as...
2261 (state_hash): this, to avoid name clashes with the global
2262 `state_table'.
2263 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
2264 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
2265
2266 2001-12-10 Akim Demaille <akim@epita.fr>
2267
2268 Bison dumps core on bash.y.
2269 Reported by Pascal Bart.
2270
2271 * src/warshall.c (bitmatrix_print): New.
2272 (TC): Use it.
2273 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
2274 j must be the outer loop.
2275 * tests/regression.at (Broken Closure): New.
2276
2277 2001-12-05 Akim Demaille <akim@epita.fr>
2278
2279 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
2280 its argument.
2281 Reported by Peter Hámorský.
2282
2283 2001-12-05 Akim Demaille <akim@epita.fr>
2284
2285 * src/conflicts.c (err_table): Remove.
2286 (resolve_sr_conflict): Adjust.
2287 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
2288 Rename as...
2289 (state_t.reductions, state_t.shifts): this.
2290
2291 2001-12-05 Akim Demaille <akim@epita.fr>
2292
2293 * src/reduce.c (reduce_grammar_tables): No longer disable the
2294 removal of useless rules via CPP but via `if (0)', so that the
2295 compiler still check the code is valid.
2296 For instance, it should have noticed `rline' no longer exists: use
2297 the `line' member of rule_t.
2298 * src/gram.c (dummy, rline): Remove, unused.
2299
2300 2001-12-05 Akim Demaille <akim@epita.fr>
2301
2302 * src/output.c (pack_vector): Use assert, not berror.
2303 * src/main.c (berror): Remove, unused.
2304
2305 2001-12-05 Akim Demaille <akim@epita.fr>
2306
2307 New experimental feature: if --verbose --trace output all the
2308 items of a state, not only its kernel.
2309
2310 * src/print.c (print_core): If `trace_flag', then invoke closure
2311 before outputting the items of the state (print_core is no longer
2312 a correct name them).
2313 (print_results): Invoke new_closure/free_closure if needed.
2314
2315 2001-12-05 Akim Demaille <akim@epita.fr>
2316
2317 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
2318 * src/closure.c, src/closure.h (itemsetsize): Rename as...
2319 (nitemset): for consistency with the rest of the project.
2320
2321 2001-12-05 Akim Demaille <akim@epita.fr>
2322
2323 * src/closure.c (print_closure): Improve.
2324 (closure): Use it for printing input and output.
2325
2326 2001-12-05 Akim Demaille <akim@epita.fr>
2327
2328 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
2329 indexed by nonterminals.
2330
2331 2001-12-05 Akim Demaille <akim@epita.fr>
2332
2333 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
2334 what it was!).
2335 * src/warshall.h: Remove accidental duplication of the content.
2336
2337 2001-12-05 Akim Demaille <akim@epita.fr>
2338
2339 * src/closure.c (set_fderives): De-obfuscate.
2340
2341 2001-12-05 Akim Demaille <akim@epita.fr>
2342
2343 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
2344
2345 2001-12-05 Akim Demaille <akim@epita.fr>
2346
2347 * src/closure.c (set_firsts): De-obfuscate.
2348
2349 2001-12-05 Akim Demaille <akim@epita.fr>
2350
2351 * src/output.c (action_row): De-obfuscate
2352 using the good o' techniques: arrays not pointers, variable
2353 locality, BITISSET, RESETBIT etc.
2354
2355 2001-12-05 Akim Demaille <akim@epita.fr>
2356
2357 Pessimize the code to simplify it: from now on, all the states
2358 have a valid SHIFTS, which NSHIFTS is possibly 0.
2359
2360 * src/LR0.c (shifts_new): Be global and move to..
2361 * src/state.c, src/state.h: here.
2362 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
2363 * src/print_graph: Adjust.
2364
2365 2001-12-05 Akim Demaille <akim@epita.fr>
2366
2367 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
2368 * src/conflicts.c: Use it.
2369 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
2370 incorrectly ``simplified''.
2371
2372 2001-12-05 Akim Demaille <akim@epita.fr>
2373
2374 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
2375 using the good o' techniques: arrays not pointers, variable
2376 locality, BITISSET, RESETBIT etc.
2377
2378 2001-12-05 Akim Demaille <akim@epita.fr>
2379
2380 * src/state.h (SHIFT_SYMBOL): New.
2381 * src/conflicts.c: Use it to deobfuscate.
2382
2383 2001-12-05 Akim Demaille <akim@epita.fr>
2384
2385 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
2386 (print_reductions): De-obfuscate using the good o' techniques:
2387 arrays not pointers, variable locality, BITISSET.
2388
2389 2001-12-05 Akim Demaille <akim@epita.fr>
2390
2391 * src/conflicts.c (print_reductions): Arrays, not pointers.
2392 Use BITISSET.
2393
2394 2001-12-05 Akim Demaille <akim@epita.fr>
2395
2396 * src/conflicts.c (print_reductions): Pessimize, but clarify.
2397
2398 2001-12-05 Akim Demaille <akim@epita.fr>
2399
2400 * src/conflicts.c (print_reductions): Improve variable locality.
2401
2402 2001-12-05 Akim Demaille <akim@epita.fr>
2403
2404 * src/conflicts.c (print_reductions): Pessimize, but clarify.
2405
2406 2001-12-05 Akim Demaille <akim@epita.fr>
2407
2408 * src/conflicts.c (print_reductions): Improve variable locality.
2409
2410 2001-12-05 Akim Demaille <akim@epita.fr>
2411
2412 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
2413 * src/lalr.c: Use them.
2414
2415 2001-12-05 Akim Demaille <akim@epita.fr>
2416
2417 * src/LR0.c (augment_automaton): Formatting changes.
2418 Better variable locality.
2419
2420 2001-12-05 Akim Demaille <akim@epita.fr>
2421
2422 * src/lalr.c (matrix_print): New.
2423 (transpose): Use it.
2424 Use arrays instead of pointers.
2425
2426 2001-12-05 Akim Demaille <akim@epita.fr>
2427
2428 * src/lalr.c (maxrhs): Move to...
2429 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
2430 * src/lalr.c (build_relations): Adjust.
2431
2432 2001-12-05 Akim Demaille <akim@epita.fr>
2433
2434 * src/lalr.c (transpose): Free the memory allocated to the
2435 argument, as it is replaced by the results by the unique caller.
2436 (build_relations): Merely invoke transpose: it handles the memory
2437 deallocation.
2438 Improve variable locality.
2439 Avoid variables used as mere abbreviations.
2440 (compute_lookaheads): Use arrays instead of pointers.
2441
2442 2001-12-05 Akim Demaille <akim@epita.fr>
2443
2444 * src/lalr.c (initialize_F): Improve variable locality.
2445 Avoid variables used as mere abbreviations.
2446
2447 2001-12-05 Akim Demaille <akim@epita.fr>
2448
2449 * src/derives.c (print_derives): Display the ruleno.
2450 * src/lalr.c (initialize_F, transpose): Better variable locality
2451 to improve readability.
2452 Avoid variables used as mere abbreviations.
2453
2454 2001-12-05 Akim Demaille <akim@epita.fr>
2455
2456 * src/lalr.c (traverse): Use arrays instead of pointers.
2457
2458 2001-12-05 Akim Demaille <akim@epita.fr>
2459
2460 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
2461 the handling of squeue.
2462 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
2463
2464 2001-12-05 Akim Demaille <akim@epita.fr>
2465
2466 Because useless nonterminals are now kept alive (instead of being
2467 `destroyed'), we now sometimes examine them, and store information
2468 related to them. Hence we need to know their number, and adjust
2469 memory allocations.
2470
2471 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
2472 static.
2473 * src/LR0.c (allocate_itemsets): The memory allocated to
2474 `symbol_count' was used for two different purpose: once to count
2475 the number of occurrences of each symbol, and later reassigned to
2476 `shift_symbol', containing the symbol that can be shifted from a
2477 given state.
2478 Deobfuscate, i.e., allocate, use and free `symbol_count' here
2479 only, and...
2480 (new_itemsets): Allocate `shift_symbol' here.
2481 (allocate_itemsets): symbol_count includes useless nonterminals.
2482 Make room for them.
2483 (free_storage): Use `free', not `XFREE', for pointers that cannot
2484 be null.
2485
2486 2001-12-05 Akim Demaille <akim@epita.fr>
2487
2488 * src/nullable.c (set_nullable): Deobfuscate the handling of
2489 ritem.
2490 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
2491
2492 2001-12-05 Akim Demaille <akim@epita.fr>
2493
2494 * src/gram.c, src/gram.h (ritem_print): New.
2495 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
2496 (This useless function was defined only to work around VMS linkers
2497 that can't handle compilation units with variables only).
2498 * src/reduce.c (dump_grammar): Use it to trace the construction of
2499 ritem.
2500
2501 2001-12-04 Paul Eggert <eggert@twinsun.com>
2502
2503 * src/bison.simple (union yyalloc): Change member names
2504 to be the same as the stack names.
2505 (yyparse): yyptr is now union yyalloc *, not char *.
2506 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
2507 and may generate better code on some machines.
2508 (yystpcpy): Use prototype if __STDC__ is defined, not just
2509 if __cplusplus is defined.
2510
2511 2001-11-30 Akim Demaille <akim@epita.fr>
2512
2513 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
2514 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
2515 Gettext doesn't compile cleanly, and dies with -Werror.
2516 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
2517 Include WARNING_CFLAGS here.
2518 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
2519 before being defined.
2520
2521 2001-11-27 Paul Eggert <eggert@twinsun.com>
2522
2523 * lib/quotearg.h (quotearg_n, quotearg_n_style):
2524 First arg is int, not unsigned.
2525 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
2526 (SIZE_MAX, UINT_MAX): New macros.
2527 (quotearg_n_options): Abort if N is negative.
2528 Avoid overflow check on hosts where size_t is 64 bits and int
2529 is 32 bits, as overflow is impossible there.
2530 Fix off-by-one typo that caused unnecessary reallocation.
2531
2532 2001-11-29 Paul Eggert <eggert@twinsun.com>
2533
2534 Name space cleanup in generated parser.
2535
2536 * doc/bison.texinfo (Bison Parser): Discuss system headers
2537 and their effect on the user name space.
2538
2539 * src/bison.simple:
2540 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
2541 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
2542 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
2543
2544 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
2545 on user names when possible.
2546
2547 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
2548 Simplify test for whather <alloca.h> exists.
2549
2550 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
2551
2552 (<stdio.h>): Include if YYDEBUG.
2553
2554 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
2555 ! defined (yyoverflow) && ! defined (yymemcpy).
2556
2557 (yymemcpy, yyparse): Rename local variables as needed so that
2558 they all begin with 'yy'.
2559
2560 (yystrlen, yystpcpy): New functions.
2561
2562 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
2563 All uses changed.
2564
2565 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
2566 instead of relying on string.h functions. Use YYSTACK_ALLOC
2567 and YYSTACK_FREE instead of malloc and free.
2568
2569 2001-11-30 Akim Demaille <akim@epita.fr>
2570
2571 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
2572 before their first uses.
2573 (YYBISON, YYPURE): Move to the top of the output.
2574
2575 2001-11-30 Akim Demaille <akim@epita.fr>
2576
2577 * tests/reduce.at (Useless Nonterminals): Fix.
2578
2579 2001-11-30 Akim Demaille <akim@epita.fr>
2580
2581 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
2582 if body instead of `;' to pacify GCC's warnings.
2583
2584 2001-11-30 Akim Demaille <akim@epita.fr>
2585
2586 Instead of mapping the LHS of unused rules to -1, keep the LHS
2587 valid, but flag the rules as invalid.
2588
2589 * src/gram.h (rule_t): `useful' is a new member.
2590 * src/print.c (print_grammar): Adjust.
2591 * src/derives.c (set_derives): Likewise.
2592 * src/reader.c (packgram, reduce_output): Likewise.
2593 * src/reduce.c (reduce_grammar_tables): Likewise.
2594 * tests/reduce.at (Underivable Rules, Useless Rules): New.
2595
2596 2001-11-30 Akim Demaille <akim@epita.fr>
2597
2598 * src/reduce.c (reduce_output): Formatting changes.
2599 * src/print.c (print_results, print_grammar): Likewise.
2600 * tests/regression.at (Rule Line Numbers)
2601 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
2602
2603 2001-11-30 Akim Demaille <akim@epita.fr>
2604
2605 * src/reduce.c (nonterminals_reduce): Instead of throwing away
2606 useless nonterminals, move them at the end of the symbol arrays.
2607 (reduce_output): Adjust.
2608 * tests/reduce.at (Useless Nonterminals): Adjust.
2609
2610 2001-11-30 Akim Demaille <akim@epita.fr>
2611
2612 * src/reduce.c: Various comment/formatting changes.
2613 (nonterminals_reduce): New, extracted from...
2614 (reduce_grammar_tables): here.
2615 (reduce_grammar): Call nonterminals_reduce.
2616
2617 2001-11-29 Paul Eggert <eggert@twinsun.com>
2618
2619 * src/bison.simple (YYSTACK_REALLOC): Remove.
2620 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
2621 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
2622 New macros.
2623 (union yyalloc): New type.
2624 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
2625 an arbitrary restriction on hosts where size_t is wider than int.
2626
2627 (yyparse): Don't dump core if alloca or malloc fails; instead, report
2628 a parser stack overflow. Allocate just one block of memory for all
2629 three stacks, instead of allocating three blocks; this typically is
2630 faster and reduces fragmentation.
2631
2632 Do not limit the number of items in the stack to a value that fits
2633 in 'int', as this is an arbitrary limit on hosts with 64-bit
2634 size_t and 32-bit int.
2635
2636 2001-11-29 Marc Autret <autret_m@epita.fr>
2637
2638 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
2639 of defining YYERROR_VERBOSE.
2640 [AT_DATA]: $4 is now out of C declarations in the prologue.
2641
2642 2001-11-28 Marc Autret <autret_m@epita.fr>
2643
2644 * src/reader.c (parse_dquoted_param): New.
2645 (parse_skel_decl): Use it.
2646 * src/lex.h: Add its prototype.
2647 * src/lex.c (literalchar): Become not static.
2648
2649 2001-11-28 Marc Autret <autret_m@epita.fr>
2650
2651 * src/output.h: And put its extern declaration here.
2652 * src/output.c (error_verbose): Define here.
2653 (prepare): Echo name modification.
2654 * src/getargs.h: Clean its extern declaration.
2655 * src/getargs.c (error_verbose_flag): Remove.
2656 (getargs): Remove case 'e'.
2657 * src/options.c (option_table): 'error-verbose' is now seen as simple
2658 percent option.
2659 Include output.h.
2660
2661 * src/reader.c (read_declarations): Remove case tok_include.
2662 (parse_include_decl): Remove.
2663 * src/lex.h (token_t): Remove tok_include.
2664 * src/options.c (option_table): 'include' is now a simple command line
2665 option.
2666
2667 2001-11-28 Marc Autret <autret_m@epita.fr>
2668
2669 * src/bison.simple: Adjust muscle names.
2670 * src/muscle_tab.c (muscle_init): Also rename the muscles.
2671 * src/output.c (prepare): s/_/-/ for the muscles names.
2672 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
2673
2674 2001-11-28 Marc Autret <autret_m@epita.fr>
2675
2676 * src/bison.simple: Fix debug.
2677 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
2678
2679 2001-11-28 Akim Demaille <akim@epita.fr>
2680
2681 * src/LR0.c (shifts_new): New.
2682 (save_shifts, insert_start_shift, augment_automaton): Use it.
2683
2684 2001-11-28 Akim Demaille <akim@epita.fr>
2685
2686 * src/closure.c (closure): `b' and `ruleno' denote the same value:
2687 keep ruleno only.
2688
2689 2001-11-28 Akim Demaille <akim@epita.fr>
2690
2691 * src/closure.c (closure): Instead of looping over word in array
2692 then bits in words, loop over bits in array.
2693
2694 2001-11-28 Akim Demaille <akim@epita.fr>
2695
2696 * src/closure.c (closure): No longer optimize the special case
2697 where all the bits of `ruleset[r]' are set to 0, to make the code
2698 clearer.
2699
2700 2001-11-28 Akim Demaille <akim@epita.fr>
2701
2702 * src/closure.c (closure): `r' and `c' are new variables, used to
2703 de-obfuscate accesses to RULESET and CORE.
2704
2705 2001-11-28 Akim Demaille <akim@epita.fr>
2706
2707 * src/reduce.c (reduce_print): Use ngettext.
2708 (dump_grammar): Improve the trace accuracy.
2709
2710 2001-11-28 Akim Demaille <akim@epita.fr>
2711
2712 * src/reduce.c (dump_grammar): Don't translate trace messages.
2713
2714 2001-11-28 Akim Demaille <akim@epita.fr>
2715
2716 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
2717 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
2718 as all tags are free'ed afterwards.
2719 From Enrico Scholz.
2720
2721 2001-11-27 Paul Eggert <eggert@twinsun.com>
2722
2723 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
2724 use alloca when we didn't want to, and vice versa.
2725
2726 2001-11-27 Marc Autret <autret_m@epita.fr>
2727
2728 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
2729 initialization.
2730 * src/output.c (prepare): Remove its update.
2731
2732 2001-11-27 Marc Autret <autret_m@epita.fr>
2733
2734 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
2735 Use %error-verbose.
2736
2737 2001-11-27 Marc Autret <autret_m@epita.fr>
2738
2739 * src/bison.simple: Remove YYERROR_VERBOSE using.
2740 Use %%error_verbose.
2741 (yyparse): Likewise.
2742 * src/output.c (prepare): Give its final value.
2743 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
2744 * src/getargs.h: Add its extern declaration.
2745 * src/getargs.c (error_verbose_flag): New int.
2746 (getargs): Update to catch new case.
2747 * src/options.c (option_table): 'error-verbose' is a new option.
2748 (shortopts): Update.
2749
2750 2001-11-27 Akim Demaille <akim@epita.fr>
2751
2752 * src/system.h: Use intl/libgettext.h.
2753 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
2754
2755 2001-11-27 Akim Demaille <akim@epita.fr>
2756
2757 * tests/torture.at (Exploding the Stack Size with Malloc):
2758 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
2759
2760 2001-11-27 Akim Demaille <akim@epita.fr>
2761
2762 * src/files.c: Include error.h.
2763 Reported by Hans Aberg.
2764
2765 2001-11-26 Marc Autret <autret_m@epita.fr>
2766
2767 * src/reader.c (parse_include_decl): New, not yet implemented.
2768 (read_declarations): Add case tok_include.
2769 * src/getargs.h (include): Add its extern definition.
2770 * src/getargs.c (include): New const char *.
2771 (getargs): Add case '-I'.
2772 * src/options.c (option_table): Add include as command line and
2773 percent option.
2774 * src/lex.h (token_t): Add tok_include.
2775
2776 2001-11-26 Akim Demaille <akim@epita.fr>
2777
2778 * src/reader.c (readgram): Make sure rules for mid-rule actions
2779 have a lineno equal to that of their host rule.
2780 Reported by Hans Aberg.
2781 * tests/regression.at (Rule Line Numbers): New.
2782
2783 2001-11-26 Akim Demaille <akim@epita.fr>
2784
2785 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
2786 size_ts.
2787
2788 2001-11-26 Akim Demaille <akim@epita.fr>
2789
2790 * src/complain.c, src/complain.h (error): Remove, provided by
2791 lib/error.[ch].
2792
2793 2001-11-26 Akim Demaille <akim@epita.fr>
2794
2795 * src/reader.c (read_declarations): Don't abort on tok_illegal,
2796 issue an error message.
2797 * tests/regression.at (Invalid %directive): New.
2798 Reported by Hans Aberg.
2799
2800 2001-11-26 Akim Demaille <akim@epita.fr>
2801
2802 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
2803 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
2804
2805 2001-11-26 Akim Demaille <akim@epita.fr>
2806
2807 * src/conflicts.c (conflicts_print): Don't complain at all when
2808 there are no reduce/reduce conflicts, and as many shift/reduce
2809 conflicts as expected.
2810 * tests/regression.at (%expect right): Adjust.
2811
2812 2001-11-23 Akim Demaille <akim@epita.fr>
2813
2814 * lib/alloca.c: Update, from fileutils.
2815
2816 2001-11-23 Akim Demaille <akim@epita.fr>
2817
2818 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
2819
2820 2001-11-23 Akim Demaille <akim@epita.fr>
2821
2822 * src/system.h: Include alloca.h.
2823 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
2824
2825 2001-11-23 Akim Demaille <akim@epita.fr>
2826
2827 * src/print_graph.c (print_actions): Remove `rule', unused.
2828 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
2829 pacify GCC's signed < unsigned warnings.
2830 * src/closure.c (itemsetsize): Likewise.
2831 * src/reader.c (symbol_list_new): Static.
2832
2833 2001-11-23 Akim Demaille <akim@epita.fr>
2834
2835 Attaching lineno to buckets is stupid, since only one copy of each
2836 symbol is kept, only the line of the first occurrence is kept too.
2837
2838 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
2839 * src/reader.c (rline_allocated): Remove, unused.
2840 (symbol_list): Have a `line' member.
2841 (symbol_list_new): New.
2842 (readgram): Use it.
2843 * src/print.c (print_grammar): Output the rule line numbers.
2844 * tests/regression.at (Solved SR Conflicts)
2845 (Unresolved SR Conflicts): Adjust.
2846 Reported by Hans Aberg.
2847
2848 2001-11-22 Marc Autret <autret_m@epita.fr>
2849
2850 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
2851
2852 2001-11-22 Marc Autret <autret_m@epita.fr>
2853
2854 * src/muscle_tab.c (muscle_init): Remove initialization of
2855 skeleton muscle.
2856 * src/output.c (output_master_parser): Do it here.
2857
2858 2001-11-20 Akim Demaille <akim@epita.fr>
2859
2860 * po/sv.po: New.
2861 * configure.in (ALL_LINGUAS): Adjust.
2862 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
2863 longer contains strings to translate.
2864
2865 2001-11-19 Akim Demaille <akim@epita.fr>
2866
2867 * src/conflicts.c (conflicts_print): Add a missing \n.
2868
2869 2001-11-19 Akim Demaille <akim@epita.fr>
2870
2871 * src/nullable.c (nullable_print): New.
2872 (set_nullable): Call it when tracing.
2873 Better locality of variables.
2874
2875 2001-11-19 Akim Demaille <akim@epita.fr>
2876
2877 * src/print.c (print_actions): Better locality of variables.
2878
2879 2001-11-19 Akim Demaille <akim@epita.fr>
2880
2881 * src/derives.c (print_derives): Fix and enrich.
2882 * src/closure.c (print_fderives): Likewise.
2883
2884 2001-11-19 Akim Demaille <akim@epita.fr>
2885
2886 * src/closure.c (itemsetend): Remove, replaced with...
2887 (itemsetsize): new.
2888
2889 2001-11-19 Akim Demaille <akim@epita.fr>
2890
2891 * src/LR0.c (kernel_end): Remove, replaced with...
2892 (kernel_size): new.
2893
2894 2001-11-19 Akim Demaille <akim@epita.fr>
2895
2896 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
2897 to clarify.
2898
2899 2001-11-19 Akim Demaille <akim@epita.fr>
2900
2901 * src/closure.c (closure): Use arrays instead of pointers to clarify.
2902
2903 2001-11-19 Akim Demaille <akim@epita.fr>
2904
2905 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
2906 trace messages.
2907 * src/LR0.c: Likewise.
2908 (allocate_itemsets): Use arrays instead of pointers to clarify.
2909
2910 2001-11-19 Akim Demaille <akim@epita.fr>
2911
2912 * src/getargs.c (statistics_flag): Replace with...
2913 (trace_flag): New.
2914 (longopts): Accept --trace instead of --statistics.
2915 * src/getargs.h, src/options.c: Adjust.
2916 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
2917 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
2918
2919 2001-11-19 Akim Demaille <akim@epita.fr>
2920
2921 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
2922 pointers to clarify the code.
2923 (save_reductions, save_shifts): Factor common parts of alternatives.
2924
2925 2001-11-19 Akim Demaille <akim@epita.fr>
2926
2927 * src/LR0.c (new_state, get_state): Complete TRACE code.
2928 * src/closure.c: Include `reader.h' to get `tags', needed by the
2929 trace code.
2930 Rename the conditional DEBUG as TRACE.
2931 Output consistently TRACEs to stderr, not stdout.
2932 * src/derives.c: Likewise.
2933 * src/reduce.c: (inaccessable_symbols): Using if is better style
2934 than goto.
2935 Use `#if TRACE' instead of `#if 0' for tracing code.
2936
2937 2001-11-19 Akim Demaille <akim@epita.fr>
2938
2939 * src/system.h (LIST_FREE, shortcpy): New.
2940 * src/LR0.c: Use them.
2941 * src/output.c (free_itemsets, free_reductions, free_shifts):
2942 Remove, replaced by LIST_FREE.
2943
2944 2001-11-19 Akim Demaille <akim@epita.fr>
2945
2946 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
2947 (REDUCTIONS_ALLOC): New.
2948 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
2949 allocation.
2950
2951 2001-11-19 Akim Demaille <akim@epita.fr>
2952
2953 * src/LR0.c (new_state): Complete trace code.
2954 * src/nullable.c (set_nullable): Don't translate traces.
2955
2956 2001-11-19 Akim Demaille <akim@epita.fr>
2957
2958 * src/print_graph.c (print_core): Better locality of variables.
2959 * src/print.c (print_core): Likewise.
2960
2961 2001-11-19 Akim Demaille <akim@epita.fr>
2962
2963 * src/vcg.c: You do the output, so you are responsible of the
2964 handling of VCG syntax, in particular: use quotearg.
2965 * src/print_graph.c: Don't.
2966 (print_actions): Don't output the actions as part of the nodes,
2967 since that's the job of the edges.
2968 (print_state): Don't output by hand: fill the node description,
2969 and ask for its output.
2970
2971 2001-11-19 Akim Demaille <akim@epita.fr>
2972
2973 * src/bison.simple (yyparse): When verbosely reporting an error,
2974 no longer put additional quotes around token names.
2975 * tests/calc.at: Adjust.
2976
2977 2001-11-19 Akim Demaille <akim@epita.fr>
2978
2979 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
2980 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
2981 * src/output.c: Adjust.
2982
2983 2001-11-19 Akim Demaille <akim@epita.fr>
2984
2985 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
2986 (rule_t): this.
2987 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
2988
2989 2001-11-19 Akim Demaille <akim@epita.fr>
2990
2991 * src/gram.h (rule_t): New.
2992 (rule_table): New.
2993 (rrhs, rlhs): Remove, part of state_t.
2994 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
2995 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
2996 * src/reader.c, src/reduce.c: Adjust.
2997
2998 2001-11-19 Akim Demaille <akim@epita.fr>
2999
3000 * src/reader.c (symbols_output): New, extracted from...
3001 (packsymbols): Here.
3002 (reader): Call it.
3003
3004 2001-11-19 Akim Demaille <akim@epita.fr>
3005
3006 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
3007 (maxrhs): this new function.
3008
3009 2001-11-19 Akim Demaille <akim@epita.fr>
3010
3011 * src/lalr.c (F): New macro to access the variable F.
3012 Adjust.
3013
3014 2001-11-19 Akim Demaille <akim@epita.fr>
3015
3016 * src/lalr.h (LA): New macro to access the variable LA.
3017 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
3018 * src/lalr.c: Adjust.
3019
3020 2001-11-19 Akim Demaille <akim@epita.fr>
3021
3022 * src/lalr.c (initialize_LA): Only initialize LA. Let...
3023 (set_state_table): handle the `lookaheads' members.
3024
3025 2001-11-19 Akim Demaille <akim@epita.fr>
3026
3027 * src/lalr.h (lookaheads): Removed array, whose contents is now
3028 a member of...
3029 (state_t): this structure.
3030 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
3031 Adjust.
3032
3033 2001-11-19 Akim Demaille <akim@epita.fr>
3034
3035 * src/lalr.h (consistent): Removed array, whose contents is now
3036 a member of...
3037 (state_t): this structure.
3038 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
3039 Adjust.
3040
3041 2001-11-19 Akim Demaille <akim@epita.fr>
3042
3043 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
3044 contents are now members of...
3045 (state_t): this structure.
3046 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
3047 Adjust.
3048
3049 2001-11-19 Akim Demaille <akim@epita.fr>
3050
3051 * src/lalr.h (state_t): New.
3052 (state_table): Be a state_t * instead of a core **.
3053 (accessing_symbol): Remove, part of state_t.
3054 * src/lalr.c: Adjust.
3055 (set_accessing_symbol): Merge into...
3056 (set_state_table): this.
3057 * src/print_graph.c, src/conflicts.c: Adjust.
3058
3059 2001-11-14 Akim Demaille <akim@epita.fr>
3060
3061 * tests/calc.at, tests/output.at, tests/regression.at,
3062 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
3063 now the tests are run in private dirs, therefore AC_CLEANUP and
3064 family can be simplified to 0-ary.
3065 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
3066 use abs. path to find config.h.
3067 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
3068 stderr, there can be way too much random noise.
3069 Instead pass -Werror to GCC and rely on the exit status.
3070 Reported by Wolfram Wagner.
3071
3072 2001-11-14 Akim Demaille <akim@epita.fr>
3073
3074 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
3075 defined only if yyoverflow is defined, to avoid `warning: unused
3076 variable `yyvs1''.
3077 Reported by The Test Suite.
3078
3079 2001-11-14 Akim Demaille <akim@epita.fr>
3080
3081 * src/print.c: Include reduce.h.
3082 Reported by Hans Aberg.
3083
3084 2001-11-14 Akim Demaille <akim@epita.fr>
3085
3086 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
3087 Revert a previous patch: these are really const.
3088 * src/conflicts.c (conflict_report): Additional useless pair of
3089 braces to pacify GCC's warnings for `if () if () {} else {}'.
3090 * src/lex.c (parse_percent_token): Replace equal_offset with
3091 arg_offset.
3092 arg is const.
3093 Be sure to strdup `arg' when used, since there is no reason for
3094 token_buffer not to change.
3095
3096 2001-11-14 Akim Demaille <akim@epita.fr>
3097
3098 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
3099 definition.
3100 * src/main.c (main): Use them.
3101 Suggested by Hans Aberg.
3102
3103 2001-11-12 Akim Demaille <akim@epita.fr>
3104
3105 * src/system.h (ngettext): Now that we use ngettext, be sure to
3106 provide a default definition when NLS are not used.
3107
3108 2001-11-12 Akim Demaille <akim@epita.fr>
3109
3110 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
3111 Use @kbd to denote user input.
3112 (Language and Grammar): ANSIfy the example.
3113 Adjust its layout for info/notinfo.
3114 (Location Tracking Calc): Output error messages to stderr.
3115 Output locations in a more GNUtically correct way.
3116 Fix a couple of Englishos.
3117 Adjust @group/@end group pairs.
3118
3119 2001-11-12 Akim Demaille <akim@epita.fr>
3120
3121 %expext was not functioning at all.
3122
3123 * src/conflicts.c (expected_conflicts): Set to -1.
3124 (conflict_report): Use ngettext.
3125 (conflicts_print): Check %expect and make its violation an error.
3126 * doc/bison.texinfo (Expect Decl): Adjust.
3127 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
3128 * tests/regression.at (%expect not enough, %expect right)
3129 (%expect too much): New.
3130
3131 2001-11-12 Akim Demaille <akim@epita.fr>
3132
3133 * tests/regression.at (Conflicts): Rename as...
3134 (Unresolved SR Conflicts): this.
3135 (Solved SR Conflicts): New.
3136
3137 2001-11-12 Akim Demaille <akim@epita.fr>
3138
3139 * src/reduce.c (print_results): Rename as...
3140 (reduce_output): This.
3141 Output to OUT, passed as argument, instead of output_obstack.
3142 (dump_grammar): Likewise.
3143 (reduce_free): New.
3144 Also free V1.
3145 (reduce_grammar): No longer call reduce_output, since...
3146 * src/print.c (print_results): do it.
3147 * src/main.c (main): Call reduce_free;
3148
3149 2001-11-12 Akim Demaille <akim@epita.fr>
3150
3151 * src/conflicts.c (print_reductions): Accept OUT as argument.
3152 Output to it, not to output_obstack.
3153 * src/print.c (print_actions): Adjust.
3154
3155 2001-11-12 Akim Demaille <akim@epita.fr>
3156
3157 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
3158 the result instead of using...
3159 (src_total, rrc_total, src_count, rrc_count): Remove.
3160 (any_conflicts): Remove.
3161 (print_conflicts): Split into...
3162 (conflicts_print, conflicts_output): New.
3163 * src/conflicts.h: Adjust.
3164 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
3165 * src/print.c (print_grammar): Issue `\n' between two rules.
3166 * tests/regression.at (Conflicts): New.
3167 Reported by Tom Lane.
3168
3169 2001-11-12 Akim Demaille <akim@epita.fr>
3170
3171 * tests/regression.at (Invalid input): Remove, duplicate with
3172 ``Invalid input: 1''.
3173
3174 2001-11-12 Akim Demaille <akim@epita.fr>
3175
3176 * tests/torture.at (AT_DATA_STACK_TORTURE)
3177 (Exploding the Stack Size with Alloca)
3178 (Exploding the Stack Size with Malloc): New.
3179
3180 2001-11-12 Akim Demaille <akim@epita.fr>
3181
3182 * src/bison.simple (YYSTACK_REALLOC): New.
3183 (yyparse) [!yyoverflow]: Use it and free the old stack.
3184 Reported by Per Allansson.
3185
3186 2001-11-12 Pascal Bart <pascal.bart@epita.fr>
3187
3188 * src/bison.simple: Define type yystype instead of YYSTYPE, and
3189 define CPP macro, which substitute YYSTYPE by yystype.
3190 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
3191 with yyltype/YYLTYPE. This allows inclusion of the generated
3192 header within the parser if the compiler, such as GGC, accepts
3193 multiple equivalent #defines.
3194 From Akim.
3195
3196 2001-11-05 Akim Demaille <akim@epita.fr>
3197
3198 * src/reader.c (symbols_output): New, extracted from...
3199 (packsymbols): here.
3200 (reader): Adjust.
3201
3202 2001-11-05 Akim Demaille <akim@epita.fr>
3203
3204 * src/lex.c (parse_percent_token): s/quotearg/quote/.
3205
3206 2001-11-05 Akim Demaille <akim@epita.fr>
3207
3208 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
3209 pattern.
3210
3211 2001-11-05 Akim Demaille <akim@epita.fr>
3212
3213 * src/options.h (struct option_table_struct): set_flags is void*.
3214 * src/options.c (longopts): Support `--output' and `%output'.
3215 (usage): Adjust.
3216 * src/lex.h (tok_setopt): Remove, replaced with...
3217 (tok_intopt, tok_stropt): these new guys.
3218 * src/lex.c (getopt.h): Not needed.
3219 (token_buffer, unlexed_token_buffer): Not const.
3220 (percent_table): Promote `-' over `_' in directive names.
3221 Active `%name-prefix', `file-prefix', and `output'.
3222 (parse_percent_token): Accept possible arguments to directives.
3223 Promote `-' over `_' in directive names.
3224
3225 2001-11-04 Akim Demaille <akim@epita.fr>
3226
3227 * doc/bison.texinfo (Decl Summary): Split the list into
3228 `directives for grammars' and `directives for bison'.
3229 Sort'em.
3230 Add description of `%name-prefix', `file-prefix', and `output'.
3231 Promote `-' over `_' in directive names.
3232 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
3233 Simplify the description of `--name-prefix'.
3234 Promote `-' over `_' in directive names.
3235 Promote `--output' over `--output-file'.
3236 Fix the description of `--defines'.
3237 * tests/output.at: Exercise %file-prefix and %output.
3238
3239 2001-11-02 Akim Demaille <akim@epita.fr>
3240
3241 * doc/refcard.tex: Update.
3242
3243 2001-11-02 Akim Demaille <akim@epita.fr>
3244
3245 * src/symtab.h (SUNDEF): New.
3246 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
3247 stand for `uninitialized', instead of 0.
3248 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
3249 * src/lex.c (lex): Adjust.
3250
3251 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
3252 Number it 0.
3253 Let yylex return it instead of a plain 0.
3254 Reported by Dick Streefland.
3255
3256 2001-11-02 Akim Demaille <akim@epita.fr>
3257
3258 * tests/regression.at (Mixing %token styles): New test.
3259
3260 2001-11-02 Akim Demaille <akim@epita.fr>
3261
3262 * src/reader.c (parse_thong_decl): Formatting changes.
3263 (token_translations_init): New, extracted from...
3264 (packsymbols): Here.
3265 Adjust.
3266
3267 2001-11-01 Akim Demaille <akim@epita.fr>
3268
3269 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
3270 Check that `9foo.y' produces correct cpp guards.
3271 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
3272 guards.
3273 Reported by Wwp.
3274
3275 2001-11-01 Akim Demaille <akim@epita.fr>
3276
3277 * tests/regression.at (Invalid input: 2): New.
3278 * src/lex.c (unlexed_token_buffer): New.
3279 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
3280 too.
3281 Reported by Wwp.
3282
3283 2001-11-01 Akim Demaille <akim@epita.fr>
3284
3285 * tests/calc.at: Catch up with 1.30.
3286 * configure.in: Bump to 1.49a.
3287 Adjust to newer Autotest.
3288
3289 2001-10-19 Pascal Bart <pascal.bart@epita.fr>
3290
3291 * src/conflicts.c: Move global variables rrc_total and src_total ...
3292 (print_conflicts): here.
3293 * src/output.c (output): Free global variable user_toknums.
3294 * src/lex.c (token_obstack): Become static.
3295
3296 2001-10-18 Akim Demaille <akim@epita.fr>
3297
3298 * tests/atlocal.in (GCC): Add.
3299 * tests/calc.at: s/m4_match/m4_bmatch/.
3300 s/m4_patsubst/m4_bpatsubst/.
3301 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
3302 * configure.in: AC_SUBST(GCC).
3303
3304 2001-10-14 Marc Autret <autret_m@epita.fr>
3305
3306 * src/options.c (create_long_option_table): Fix.
3307
3308 2001-10-10 Akim Demaille <akim@epita.fr>
3309
3310 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
3311
3312 2001-10-04 Akim Demaille <akim@epita.fr>
3313
3314 * src/reader.c (parse_union_decl): Push the caracters in
3315 union_obstack, not attrs_obstack.
3316
3317 2001-10-04 Akim Demaille <akim@epita.fr>
3318
3319 Merge in the branch 1.29.
3320
3321 * src/reader.c (packsymbols): Use a temporary obstack for
3322 `%%tokendef', since output_stack is already used elsewhere.
3323
3324 2001-10-02 Akim Demaille <akim@epita.fr>
3325
3326 Bump 1.29d.
3327
3328 2001-10-02 Akim Demaille <akim@epita.fr>
3329
3330 Version 1.29c.
3331
3332 2001-10-02 Akim Demaille <akim@epita.fr>
3333
3334 * tests/regression.at (Invalid CPP headers): New.
3335 From Alexander Belopolsky.
3336 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
3337
3338 2001-10-02 Akim Demaille <akim@epita.fr>
3339
3340 * tests/regression.at (Invalid input): New.
3341 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
3342 Reported by Shura.
3343
3344 2001-10-02 Akim Demaille <akim@epita.fr>
3345
3346 * tests/calc.at: Now that --debug works, the tests must be adjusted.
3347
3348 2001-10-02 Akim Demaille <akim@epita.fr>
3349
3350 * src/output.c (output_parser): Assert `skeleton'.
3351 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
3352 systems.
3353 From Shura.
3354
3355 2001-10-01 Marc Autret <autret_m@epita.fr>
3356
3357 * src/lex.h: Echo modifications.
3358 * src/lex.c (unlex): Parameter is now token_t.
3359 From Hans Aberg.
3360
3361 2001-10-01 Marc Autret <autret_m@epita.fr>
3362
3363 * src/main.c: Include lex.h.
3364 From Hans Aberg.
3365
3366 2001-09-29 Akim Demaille <akim@epita.fr>
3367
3368 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
3369
3370 2001-09-28 Akim Demaille <akim@epita.fr>
3371
3372 * tests/testsuite.at: Update to newer Autotest.
3373 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
3374
3375 2001-09-27 Akim Demaille <akim@epita.fr>
3376
3377 Position independent wrapper.
3378
3379 * tests/bison: Remove.
3380 * tests/bison.in: New.
3381 * configure.in: Adjust.
3382
3383 2001-09-27 Paul Eggert <eggert@twinsun.com>
3384
3385 Port quotearg fixes from tar 1.13.24.
3386
3387 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
3388 tm to be declared.
3389 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
3390 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
3391
3392 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
3393 * m4/mbrtowc.m4: New file.
3394 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
3395 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
3396
3397 2001-09-27 Akim Demaille <akim@epita.fr>
3398
3399 Bump to 1.29c.
3400
3401 2001-09-27 Akim Demaille <akim@epita.fr>
3402
3403 Version 1.29b.
3404
3405 2001-09-25 Akim Demaille <akim@epita.fr>
3406
3407 * src/system.h: Include `xalloc.h'.
3408 Remove it from the C files.
3409 * src/files.c (output_files): Free the obstacks.
3410 * src/lex.c (init_lex): Rename as...
3411 (lex_init): this.
3412 (lex_free): New.
3413 * src/main.c (main): Use it.
3414
3415 2001-09-24 Marc Autret <autret_m@epita.fr>
3416
3417 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
3418 to output informations in fout (FILE*).
3419 (open_graph, close_graph): Likewise.
3420 (output_graph, output_edge, output_node): Likewise.
3421 * src/vcg.h: Update function prototypes.
3422 * src/print_graph.c (print_graph): Open output graph file.
3423 (print_actions): Adjust.
3424 * src/files.h: Remove extern declaration.
3425 * src/files.c: Remove graph_obstack declaration.
3426 (open_files): Remove graph_obstack initialization.
3427 (output_files): Remove graph_obstack saving.
3428
3429 2001-09-24 Marc Autret <autret_m@epita.fr>
3430
3431 * src/files.c (compute_output_file_names): Fix.
3432
3433 2001-09-24 Marc Autret <autret_m@epita.fr>,
3434 Akim Demaille <akim@epita.fr>
3435
3436 * src/reader.c (reader): Remove call to free_symtab ().
3437 * src/main.c (main): Call it here.
3438 Include symtab.h.
3439 * src/conflicts.c (initialize_conflicts): Rename as...
3440 (solve_conflicts): this.
3441 * src/print.c (print_core, print_actions, print_state)
3442 (print_grammar): Dump to a file instead a `output_obstack'.
3443 (print_results): Dump `output_obstack', and then proceed with the
3444 FILE *.
3445 * src/files.c (compute_output_file_names, close_files): New.
3446 (output_files): Adjust.
3447 * src/main.c (main): Adjust.
3448
3449 2001-09-23 Marc Autret <autret_m@epita.fr>
3450
3451 * src/files.c (compute_header_macro): Computes header macro name
3452 from spec_defines_file when given.
3453
3454 2001-09-23 Marc Autret <autret_m@epita.fr>
3455
3456 * src/files.c (output_files): Add default extensions.
3457
3458 2001-09-22 Akim Demaille <akim@epita.fr>
3459
3460 * src/conflicts.c (finalize_conflicts): Rename as...
3461 (free_conflicts): this.
3462
3463 2001-09-22 Akim Demaille <akim@epita.fr>
3464
3465 * src/gram.c (gram_free): Rename back as...
3466 (dummy): this.
3467 (output_token_translations): Free `token_translations'.
3468 * src/symtab.c (free_symtab): Free the tag field.
3469
3470 2001-09-22 Akim Demaille <akim@epita.fr>
3471
3472 Remove `translations' as it is always set to true.
3473
3474 * src/gram.h: Adjust.
3475 * src/reader.c (packsymbols, parse_token_decl): Adjust
3476 * src/print.c (print_grammar): Adjust.
3477 * src/output.c (output_token_translations): Adjust.
3478 * src/lex.c (lex): Adjust.
3479 * src/gram.c: Be sure the set pointers to NULL.
3480 (dummy): Rename as...
3481 (gram_free): this.
3482
3483 2001-09-22 Akim Demaille <akim@epita.fr>
3484
3485 * configure.in: Invoke AM_LIB_DMALLOC.
3486 * src/system.h: Use dmalloc.
3487 * src/LR0.c: Be sure to have pointers initialized to NULL.
3488 (allocate_itemsets): Allocate kernel_items only if needed.
3489
3490 2001-09-22 Akim Demaille <akim@epita.fr>
3491
3492 * configure.in: Bump to 1.29b.
3493 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
3494 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
3495 need xmalloc.c in calc.y.
3496 From Pascal Bart.
3497
3498 2001-09-21 Akim Demaille <akim@epita.fr>
3499
3500 Version 1.29a.
3501 * Makefile.maint, config/config.guess, config/config.sub,
3502 * config/missing: Update from masters.
3503 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
3504 upon package.m4.
3505 * configure.in (ALL_LINGUAS): Add `tr'.
3506
3507 2001-09-21 Akim Demaille <akim@epita.fr>
3508
3509 * tests/Makefile.am (package.m4): Move to...
3510 ($(srcdir)/$(TESTSUITE)): here.
3511
3512 2001-09-20 Akim Demaille <akim@epita.fr>
3513
3514 * src/complain.c: No longer try to be standalone: use system.h.
3515 Don't assume __STDC__ is defined to 1. Just test if it is defined.
3516 * src/complain.h: Likewise.
3517 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
3518 Remove the unused variable `n'.
3519 From Albert Chin-A-Young.
3520
3521 2001-09-18 Marc Autret <autret_m@epita.fr>
3522
3523 * doc/bison.1: Update.
3524 * doc/bison.texinfo (Bison Options): Update --defines and --graph
3525 descriptions.
3526 (Option Cross Key): Update.
3527 Add --graph.
3528
3529 2001-09-18 Marc Autret <autret_m@epita.fr>
3530
3531 * tests/regression.at: New test (comment in %union).
3532
3533 2001-09-18 Marc Autret <autret_m@epita.fr>
3534
3535 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
3536 do that.
3537 Reported by Keith Browne.
3538
3539 2001-09-18 Marc Autret <autret_m@epita.fr>
3540
3541 * tests/output.at: Add tests for --defines and --graph.
3542
3543 2001-09-18 Marc Autret <autret_m@epita.fr>
3544
3545 * tests/output.at: Removes tests of %{header,src}_extension features.
3546
3547 2001-09-18 Akim Demaille <akim@epita.fr>
3548
3549 * tests/Makefile.am (package.m4): New.
3550 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
3551 (_AT_CHECK_CALC_ERROR): Likewise.
3552 Factor the `, ' part of verbose error messages.
3553
3554 2001-09-18 Marc Autret <autret_m@epita.fr>
3555
3556 * src/getargs.c (longopts): Declare --defines and --graph as options
3557 with optional arguments.
3558 * src/files.h: Add extern declarations.
3559 * src/files.c (spec_graph_file, spec_defines_file): New.
3560 (output_files): Update.
3561 Remove CPP-outed code.
3562
3563 2001-09-18 Marc Autret <autret_m@epita.fr>
3564
3565 Turn off %{source,header}_extension feature.
3566
3567 * src/files.c (compute_exts_from_gf): Update.
3568 (compute_exts_from_src): Update.
3569 (output_files): CPP-out useless code.
3570 * src/files.h: Remove {header,source}_extension extern declarations.
3571 * src/reader.c (parse_dquoted_param): CPP-out.
3572 (parse_header_extension_decl): Remove.
3573 (parse_source_extension_decl): Remove.
3574 (read_declarations): Remove cases tok_{hdrext,srcext}.
3575 * src/lex.c (percent_table): Remove {header,source}_extension entries.
3576 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
3577
3578 2001-09-10 Akim Demaille <akim@epita.fr>
3579
3580 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
3581 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
3582 (AT_CHECK_OUTPUT): this.
3583 Merely check ls' exit status, its output is useless.
3584
3585 2001-09-10 Akim Demaille <akim@epita.fr>
3586
3587 * tests/calc.at: Use m4_match.
3588 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
3589
3590 2001-09-10 Marc Autret <autret_m@epita.fr>,
3591 Akim Demaille <akim@epita.fr>
3592
3593 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
3594 enum color_e.
3595 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
3596 to `normal'.
3597 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
3598 * src/lex.h: Adjust prototype.
3599 (token_t): Add `tok_undef'.
3600 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
3601 (parse_percent_token): Now returns token_t.
3602 Add default statement in switch.
3603 (lex): Separate `c' as an input variable, from the token_t result
3604 part.
3605 (unlexed): Is a token_t.
3606
3607 2001-09-10 Akim Demaille <akim@epita.fr>
3608
3609 * configure.in: Bump to 1.29a.
3610
3611 2001-09-07 Akim Demaille <akim@epita.fr>
3612
3613 Version 1.29.
3614
3615 2001-08-30 Akim Demaille <akim@epita.fr>
3616
3617 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
3618 * m4/atconfig.m4: Remove.
3619 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
3620 * tests/bison: New.
3621 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
3622 m4_if, m4_patsubst, and m4_regexp.
3623 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
3624 `input' file instead of echo.
3625
3626 2001-08-29 Akim Demaille <akim@epita.fr>
3627
3628 Bump to 1.28e.
3629
3630 2001-08-29 Akim Demaille <akim@epita.fr>
3631
3632 Version 1.28d.
3633
3634 2001-08-29 Paul Eggert <eggert@twinsun.com>
3635
3636 * src/bison.simple (yyparse): Don't take the address of an
3637 item before the start of an array, as that doesn't conform to
3638 the C Standard.
3639
3640 2001-08-29 Robert Anisko <anisko_r@epita.fr>
3641
3642 * doc/bison.texinfo (Location Tracking Calc): New node.
3643
3644 2001-08-29 Paul Eggert <eggert@twinsun.com>
3645
3646 * src/output.c (output): Do not define const, as this now
3647 causes more problems than it cures.
3648
3649 2001-08-29 Akim Demaille <akim@epita.fr>
3650
3651 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
3652 the nodes.
3653 Be sure to tag the `detailmenu'.
3654
3655 2001-08-29 Akim Demaille <akim@epita.fr>
3656
3657 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
3658 download in a tmp dir.
3659
3660 2001-08-28 Marc Autret <autret_m@epita.fr>
3661
3662 * config/depcomp: New file.
3663
3664 2001-08-28 Marc Autret <autret_m@epita.fr>
3665
3666 * doc/bison.1 (mandoc): Adjust.
3667 From Juan Manuel Guerrero.
3668
3669 2001-08-28 Marc Autret <autret_m@epita.fr>
3670
3671 * src/print_graph.c (print_state): Fix.
3672
3673 2001-08-27 Marc Autret <autret_m@epita.fr>
3674
3675 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
3676 char * members.
3677 Echo modifications to the functions prototypes.
3678 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
3679
3680 2001-08-27 Marc Autret <autret_m@epita.fr>
3681
3682 * src/vcg.c: Include `xalloc.h'.
3683 (add_colorentry): New.
3684 (add_classname): New.
3685 (add_infoname): New.
3686 * src/vcg.h: Add new prototypes.
3687
3688 2001-08-27 Akim Demaille <akim@epita.fr>
3689
3690 * Makefile.maint: Sync. again with CVS Autoconf.
3691
3692 2001-08-27 Akim Demaille <akim@epita.fr>
3693
3694 * Makefile.maint: Formatting changes.
3695 (po-update, cvs-update, update): New targets.
3696 (AMTAR): Remove.
3697
3698 2001-08-27 Akim Demaille <akim@epita.fr>
3699
3700 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
3701 * Makefile.maint: Sync. with CVS Autoconf.
3702
3703 2001-08-27 Marc Autret <autret_m@epita.fr>
3704
3705 * src/vcg.h (struct infoname_s): New.
3706 (struct colorentry_s): New.
3707 (graph_s): New fields {vertical,horizontal}_order in structure.
3708 Add `infoname' field.
3709 Add `colorentry' field;
3710 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
3711 (G_HORIZONTAL_ORDER): New.
3712 (G_INFONAME): New.
3713 (G_COLORENTRY): New.
3714 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
3715 Add output of `infoname'.
3716 Add output of `colorentry'.
3717
3718 2001-08-27 Marc Autret <autret_m@epita.fr>
3719
3720 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
3721 This one shadowed a global parameter.
3722
3723 2001-08-24 Marc Autret <autret_m@epita.fr>
3724
3725 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
3726 instead of `unsigned'.
3727 (print_state): Do not call obstack_object_size () in obstack_grow ()
3728 to avoid macro variables shadowing.
3729
3730 2001-08-23 Marc Autret <autret_m@epita.fr>
3731
3732 * src/lex.c (percent_table): Typo: s/naem/name/.
3733 Add graph option.
3734 Normalize new options declarations.
3735
3736 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
3737
3738 * tests/suite.at: Exercise %header_extension and %source_extension.
3739
3740 2001-08-16 Marc Autret <autret_m@epita.fr>
3741
3742 * src/reader.c (parse_dquoted_param): New.
3743 (parse_header_extension_decl): Use it.
3744 (parse_source_extension_decl): Likewise.
3745
3746 2001-08-16 Marc Autret <autret_m@epita.fr>
3747
3748 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
3749 (get_xxxx_str): Use assert () instead of complain ().
3750 Remove return invokations in default cases.
3751 (get_decision_str): Modify default behaviour. Remove second argument.
3752 Echo modifications on calls.
3753 (output_graph): Fix.
3754
3755 2001-08-16 Marc Autret <autret_m@epita.fr>
3756
3757 * src/getargs.c (usage): Update with ``-g, --graph''.
3758
3759 2001-08-16 Marc Autret <autret_m@epita.fr>
3760
3761 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
3762 (Option Cross Key): Likewise.
3763 * doc/bison.1: Update.
3764
3765 2001-09-25 Pascal Bart <pascal.bart@epita.fr>
3766
3767 * src/output.c (output_master_parser): Don't finish action_obstack.
3768 (output_parser): Don't care about the muscle action, here.
3769 (prepare): Copy the action_obstack in the action muscle.
3770 (output): Free action_obstack.
3771
3772 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
3773
3774 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
3775 will contain `%union' declaration.
3776 (parse_union_decl): Delete #line directive output.
3777 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
3778 informations about %union.
3779 (parse_union_decl): Copy the union_obstack in the muscle stype.
3780 * src/bison.simple: Add new #line directive.
3781 Add typdef %%stype YYSTYPE.
3782
3783 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
3784
3785 * src/bison.simple: Add new `#line' directive.
3786
3787 2001-09-22 Pascal Bart <pascal.bart@epita.fr>
3788
3789 * src/bison.simple: New `#line' directive.
3790 * src/output.c (output_parser): Support new dynamic muscle input_line.
3791
3792 2001-09-22 Marc Autret <autret_m@epita.fr>
3793
3794 * src/output.c (output_master_parser): New.
3795 (output_parser): Be more re-entrant.
3796
3797 2001-09-21 Marc Autret <autret_m@epita.fr>
3798
3799 * src/reader.c (copy_definition, parse_union_decl): Update and use
3800 `linef' muscle.
3801 (copy_action): Likewise.
3802 Use obstack_1grow ().
3803 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
3804
3805 2001-09-21 Marc Autret <autret_m@epita.fr>
3806
3807 * src/options.c (option_table): Adjust.
3808 * src/lex.c (parse_percent_token): Fix.
3809
3810 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
3811
3812 * src/options.c (symtab.h): Include it, need by lex.h.
3813
3814 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
3815
3816 * src/lex.c (parse_percent_token): Change type of variable `tx', which
3817 is now an option_table_struct*.
3818 (option_strcmp): New function option_strcmp.
3819 (parse_percent_token): Call option_strcmp.
3820 * src/getargs.c (xalloc.h, options.h): Include it.
3821 (getargs): Call create_long_option_table.
3822 (getargs): Free longopts at the end of the function.
3823 (shortopts): Move in options.c.
3824 * src/options.c (create_long_option_table): New function. Convert
3825 information from option_table to option structure.
3826 * src/reader.c (options.h): Include it.
3827
3828 * src/Makefile.am: Adjust.
3829 * src/options.c (option_table): Create from longopts and percent_table.
3830 * src/getargs.c (longopts): Delete.
3831 * src/lex.c (struct percent_table_struct): Delete.
3832 (percent_table): Delete.
3833 (options.h): Include it.
3834 * src/options.c: Create.
3835 * src/options.h: Create.
3836 Declare enum opt_access_e.
3837 Define struct option_table_struct.
3838
3839 2001-09-20 Marc Autret <autret_m@epita.fr>
3840
3841 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
3842 sections of Bison.
3843
3844 2001-09-19 Pascal Bart <pascal.bart@epita.fr>
3845
3846 * src/bison.simple: s/%%filename/%%skeleton.
3847 * src/muscle_tab.c (getargs.h): Include it.
3848 (muscle_init): Insert new muscle skeleton.
3849
3850 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
3851
3852 * src/output.c (output_parser): Delete unused variable actions_dumped.
3853
3854 2001-09-07 Pascal Bart <pascal.bart@epita.fr>
3855
3856 * src/output.c (output): Delete call to reader_output_yylsp.
3857 * src/reader.c (reader): Likewise.
3858 * src/reader.h: Delete declaration of reader_output_yylsp.
3859
3860 2001-09-02 Marc Autret <autret_m@epita.fr>
3861
3862 * src/reader.c: Include muscle_tab.h.
3863 (parse_union_decl): Update.
3864 (parse_macro_decl): Rename parse_muscle_decl.
3865 Update to use renamed functions and variable.
3866 (read_declarations, copy_action, read_additionnal_code, : Updated
3867 with correct variables and functions names.
3868 (packsymbols, reader): Likewise.
3869
3870 * src/reader.h (muscle_obstack): Extern declaration update.
3871
3872 * src/output.c: Include muscle_tab.h
3873 In all functions using macro_insert, change by using muscle_insert ().
3874 (macro_obstack): Rename muscle_obstack.
3875 Echo modifications in the whole file.
3876 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
3877 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
3878 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
3879
3880 * src/muscle_tab.h: Update double inclusion macros.
3881 (macro_entry_s): Rename muscle_entry_s.
3882 Update prototypes.
3883
3884 * src/muscle_tab.c: Include muscle_tab.h.
3885 Rename macro_tabble to muscle_table.
3886 (mhash1, mhash2, mcmp): Use muscle_entry.
3887 (macro_init): Rename muscle_init. Update.
3888 (macro_insert): Rename muscle_insert. Update.
3889 (macro_find): Rename muscle_find. Update.
3890
3891 * src/main.c: Include muscle_tab.h.
3892 (main): Call muscle_init ().
3893 * src/Makefile.am (bison_SOURCES): Echo modifications.
3894
3895 2001-09-02 Marc Autret <autret_m@epita.fr>
3896
3897 Now the files macro_tab.[ch] are named muscle_tab.[ch].
3898
3899 * src/muscle_tab.c, src/muscle_tab.h: Add files.
3900
3901 2001-09-02 Marc Autret <autret_m@epita.fr>
3902
3903 * src/macrotab.c, src/macrotab.h: Remove.
3904
3905 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
3906
3907 * src/reader.c (copy_guard): Use muscle to specify the `#line'
3908 filename.
3909
3910 2001-09-01 Marc Autret <autret_m@epita.fr>
3911
3912 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
3913 to an explicit value to activate the feature. We do it here.
3914
3915 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
3916
3917 * src/output.c (prepare): Delete the `filename' muscule insertion.
3918 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
3919 (parse_union_decl): Likewise.
3920 * src/macrotab.c (macro_init): Initialize filename by infile.
3921
3922 2001-08-31 Marc Autret <autret_m@epita.fr>
3923
3924 * src/bison.simple (YYLSP_NEEDED): New definition.
3925 * src/output.c (prepare): Add macro insertion of `locations_flag'
3926
3927 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
3928
3929 * src/output.c (prepare): Delete insertion of previous muscles,
3930 and insert the `prefix' muscles.
3931 * src/macrotab.c (macro_init): Likewise.
3932 (macro_init): Initialization prefix directive by `yy'.
3933 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
3934 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
3935 yylval, yydebug, yyerror, yynerrs and yyparse.
3936 New directive `#define' to substitute yydebug, ... with option
3937 name_prefix.
3938
3939 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
3940
3941 * src/main.c (main): Standardize.
3942 * src/output.c (output_table_data, output_parser): Likewise.
3943 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
3944
3945 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
3946
3947 * src/reader.c (read_additionnal_code): Rename %%user_code to
3948 %%epilogue.
3949 * src/output.c (output): Rename %%declarations to %%prologue.
3950 * src/bison.simple: Echo modifications.
3951
3952 2001-08-31 Marc Autret <autret_m@epita.fr>
3953
3954 * src/reader.c (readgram): CleanUp.
3955 (output_token_defines): Likewise.
3956 (packsymbols): Likewise.
3957 (reader): Likewise.
3958 * src/output.c (output): CPP-out useless code.
3959
3960 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
3961
3962 * src/reader.c (reader): Delete obsolete call to function
3963 output_trailers and output_headers.
3964 * src/output.h: Remove obsolete functions prototypes of output_headers
3965 and output_trailers.
3966
3967 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
3968
3969 * src/main.c: Include macrotab.h.
3970 * src/macrotab.h (macro_entry_s): Constify fields.
3971 Adjust functions prototypes.
3972 * src/macrotab.c (macro_insert): Constify key and value.
3973 (macro_find): Constify key.
3974 (macro_insert): Include 'xalloc.h'
3975 (macro_insert): Use XMALLOC.
3976 (macro_find): Constify return value.
3977 * src/output.c (output_table_data): Rename table to table_data.
3978 (output_parser): Constify macro_key, macro_value.
3979
3980 2001-08-30 Marc Autret <autret_m@epita.fr>
3981
3982 * src/reader.c (parse_skel_decl): New.
3983 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
3984 * src/lex.h (token_t): New token `tok_skel'.
3985 * src/lex.c (percent_table): Add skeleton option entry.
3986 Standardize.
3987
3988 2001-08-29 Marc Autret <autret_m@epita.fr>
3989
3990 * src/bison.simple: Add %%user_code directive at the end.
3991 * src/reader.c (read_additionnal_code): New.
3992 (reader): Use it.
3993 * src/output.c (output_program): Remove.
3994 (output): Update.
3995
3996 2001-08-28 Marc Autret <autret_m@epita.fr>
3997
3998 * src/output.c (output_actions): Clean up.
3999 (output_gram): CPP-out useless code.
4000 * src/reader.c (reader): Clean up, CPP-out useless code.
4001
4002 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
4003
4004 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
4005 directive.
4006 * src/bison.simple: Add `%%definitions'.
4007
4008 2001-08-28 Marc Autret <autret_m@epita.fr>
4009
4010 * config/depcomp: New file.
4011
4012 2001-08-27 Paul Eggert <eggert@twinsun.com>
4013
4014 * src/bison.simple (yyparse): Don't take the address of an
4015 item before the start of an array, as that doesn't conform to
4016 the C Standard.
4017
4018 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
4019
4020 * src/output.c (output): Remove the initialization of the macro
4021 obstack. It was done too late here.
4022
4023 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
4024 completely wrong.
4025 (reader): Initialize the macro obstack here, since we need it to grow
4026 '%define' directives.
4027
4028 * src/reader.h: Declare the macro obstack as extern.
4029
4030 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
4031
4032 * src/output.c (output_parser): Fix. Store single '%' characters in
4033 the output obstack instead of throwing them away.
4034
4035 2001-08-27 Akim Demaille <akim@epita.fr>
4036
4037 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
4038
4039 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
4040
4041 * lib/Makefile.am: Adjust.
4042
4043 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
4044
4045 * src/bison.simple: Update and add '%%' directives.
4046
4047 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
4048
4049 * src/reader.c (reader): Remove calls to 'output_headers' and
4050 'output_trailers'. Remove some C output.
4051 (readgram): Disable a piece of code that was writing a default
4052 definition for 'YYSTYPE'.
4053 (reader_output_yylsp): Remove.
4054 (packsymbols): Output token defintions to a macro.
4055 (copy_definition): Disable C output.
4056
4057 * src/reader.c (parse_macro_decl): New function used to parse macro
4058 declarations.
4059 (copy_string2): Put the body of copy_string into this new function.
4060 Add a parameter to let the caller choose whether he wants to copy the
4061 string delimiters or not.
4062 (copy_string): Be a simple call to copy_string2 with the last argument
4063 bound to true.
4064 (read_declarations): Add case for macro definition.
4065 (copy_identifier): New.
4066 (parse_macro_decl): Read macro identifiers using copy_identifier
4067 rather than lex.
4068
4069 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
4070
4071 * src/output.c (prepare): Add prefixed names.
4072 (output_parser): Output semantic actions.
4073 (output_parser): Fix bug on '%%line' directives.
4074
4075 * src/output.c (output_headers): Remove. The C code printed by this
4076 function should now be in the skeletons.
4077 (output_trailers): Remove.
4078 (output): Disable call to 'reader_output_yylsp'.
4079 (output_rule_data): Do not output tables to the table obstack.
4080
4081 * src/output.c: Remove some C dedicated output.
4082 Improve the use of macro and output obstacks.
4083 (output_defines): Remove.
4084
4085 * src/output.c (output_token_translations): Associate 'translate'
4086 table with a macro. No output to the table obstack.
4087 (output_gram): Same for 'rhs' and 'prhs'.
4088 (output_stos): Same for 'stos'.
4089 (output_rule_data): Same for 'r1' and 'r2'.
4090 (token_actions): Same for 'defact'.
4091 (goto_actions): Same for 'defgoto'.
4092 (output_base): Same for 'pact' and 'pgoto'.
4093 (output_table): Same for 'table'.
4094 (output_check): Same for 'check'.
4095
4096 * src/output.c (output_table_data): New function.
4097 (output_short_table): Remove.
4098 (output_short_or_char_table): Remove.
4099
4100 * src/output.c (output_parser): Replace most of the skeleton copy code
4101 with something new. Skeletons are now processed character by character
4102 rather than line by line, and Bison looks for '%%' macros. This is the
4103 first step in making Bison's output process (a lot) more flexible.
4104 (output_parser): Use the macro table.
4105
4106 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
4107
4108 * src/main.c (main): Initialize the macro table.
4109
4110 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
4111
4112 * src/lex.c (percent_table): Add tok_define.
4113 * src/lex.h: Add tok_define.
4114
4115 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
4116
4117 * src/macrotab.c: New file.
4118 * src/macrotab.h: New file.
4119 * src/Makefile.am: Update.
4120
4121 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
4122
4123 * lib/hash.c: New file.
4124 * lib/hash.h: New file.
4125 * lib/Makefile.am: Update.
4126
4127 2001-08-15 Akim Demaille <akim@epita.fr>
4128
4129 Version 1.28c.
4130
4131 2001-08-15 Marc Autret <autret_m@epita.fr>
4132
4133 * src/reader.c (readgram): Indent output macro YYSTYPE.
4134 (packsymbols): Likewise.
4135 (output_token_defines): Likewise.
4136 * src/files.c: Standardize.
4137 (compute_header_macro): New.
4138 (defines_obstack_save): New. Use compute_header_macro.
4139 (output_files): Update. Use defines_obstack_save.
4140
4141 2001-08-15 Akim Demaille <akim@epita.fr>
4142
4143 * doc/bison.texinfo (Table of Symbols): Document
4144 YYSTACK_USE_ALLOCA.
4145
4146 2001-08-15 Akim Demaille <akim@epita.fr>
4147
4148 * missing: Update from CVS Automake.
4149 * config/config.guess, config/config.sub, config/texinfo.tex:
4150 Update from gnu.org.
4151
4152 2001-08-15 Akim Demaille <akim@epita.fr>
4153
4154 * Makefile.maint: Sync with CVS Autoconf.
4155
4156 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
4157
4158 * doc/bison.texinfo: Include GNU Free Documentation License from
4159 `fdl.texi'.
4160 * doc/fdl.texi: Add to package.
4161
4162 2001-08-14 Marc Autret <autret_m@epita.fr>
4163
4164 Turn on %{source,header}_extension features.
4165
4166 * src/lex.c (percent_table): Un-CPP out header_extension and
4167 source_extension.
4168 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
4169 (compute_exts_from_src): Remove conditions. It restores priorities
4170 between options.
4171
4172 2001-08-14 Marc Autret <autret_m@epita.fr>
4173
4174 * src/files.c (compute_base_names): Add extensions computing when
4175 `--file-prefix' used.
4176 Standardize function calls.
4177
4178 2001-08-13 Marc Autret <autret_m@epita.fr>
4179
4180 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
4181 defining it (defined but null disables alloca).
4182
4183 2001-08-13 Marc Autret <autret_m@epita.fr>
4184
4185 * src/bison.simple (_yy_memcpy): CPP reformat.
4186
4187 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
4188
4189 * tests/atconfig.in (CPPFLAGS): Fix.
4190
4191 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
4192
4193 * doc/bison.texinfo: Include GNU General Public License from
4194 `gpl.texi'.
4195 * doc/gpl.texi: Add to package.
4196
4197 2001-08-10 Marc Autret <autret_m@epita.fr>
4198
4199 * src/print_graph.h: Fix.
4200 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
4201
4202 2001-08-10 Akim Demaille <akim@epita.fr>
4203
4204 * src/system.h: Provide default declarations for stpcpy, strndup,
4205 and strnlen.
4206
4207 2001-08-10 Robert Anisko <anisko_r@epita.fr>
4208
4209 * doc/bison.texinfo (Locations): Update @$ stuff.
4210
4211 2001-08-09 Robert Anisko <anisko_r@epita.fr>
4212
4213 * src/bison.simple (YYLLOC_DEFAULT): Update.
4214 (yyparse): Adjust.
4215
4216 2001-08-08 Marc Autret <autret_m@epita.fr>
4217
4218 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
4219 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
4220 Reported by Fabrice Bauzac.
4221
4222 2001-08-08 Marc Autret <autret_m@epita.fr>
4223
4224 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
4225 * src/vcg.c (output_node): Fix.
4226 * src/vcg.h: Cleanup.
4227 * src/print_graph.c: Add comments.
4228 (node_output_size): New global variable. Simplify the formatting of
4229 the VCG graph output.
4230 (print_actions): Unused code is now used. It notifies the final state
4231 and no action states in the VCG graph. It also give the reduce actions.
4232 The `shift and goto' edges are red and the `go to state' edges are
4233 blue.
4234 Get the current node name and node_obstack by argument.
4235 (node_obstack): New variable.
4236 (print_state): Manage node_obstack.
4237 (print_core): Use node_obstack given by argument.
4238 A node is not only computed here but in print_actions also.
4239 (print_graph): CPP out useless code instead of commenting it.
4240
4241 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
4242
4243 * tests/atconfig.in (CPPFLAGS): Fix.
4244
4245 2001-08-07 Akim Demaille <akim@epita.fr>
4246
4247 * src/print_graph.c (quote): New.
4248 (print_core): Use it.
4249
4250 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
4251
4252 * src/vcg.c (complain.h): Include it.
4253 Unepitaize `return' invocations.
4254 [NDEBUG] (main): Remove.
4255 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
4256 * src/files.c (open_files): Initialize graph_obstack.
4257 * src/print_graph.c (print_actions): CPP out useless code.
4258 (print_core): Don't output the last `\n' in labels.
4259 Use `quote'.
4260 * src/files.c (output_files): Output the VCG file.
4261 * src/main.c (main): Invoke print_graph ();
4262
4263 2001-08-06 Marc Autret <autret_m@epita.fr>
4264
4265 Automaton VCG graph output.
4266 Using option ``-g'' or long option ``--graph'', you can generate
4267 a gram_filename.vcg file containing a VCG description of the LALR (1)
4268 automaton of your grammar.
4269
4270 * src/main.c: Call to print_graph() function.
4271 * src/getargs.h: Update.
4272 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
4273 (graph_flag): New flag.
4274 (longopts): Update.
4275 (getargs): Add case `g'.
4276 * src/files.c (graph_obstack): New obstack struct.
4277 (open_files): Initialize new obstack.
4278 (output_files): Saves graph_obstack if required.
4279 * src/files.h (graph_obstack): New extern declaration.
4280 * src/Makefile.am: Add new source files.
4281
4282 2001-08-06 Marc Autret <autret_m@epita.fr>
4283
4284 * src/print_graph.c, src/print_graph.h (graph): New.
4285 * src/vcg.h: New file.
4286 * src/vcg.c: New file, VCG graph handling.
4287
4288 2001-08-06 Marc Autret <autret_m@epita.fr>
4289
4290 Add of %source_extension and %header_extension which specify
4291 the source or/and the header output file extension.
4292
4293 * src/files.c (compute_base_names): Remove initialisation of
4294 src_extension and header_extension.
4295 (compute_exts_from_gf): Update.
4296 (compute_exts_from_src): Update.
4297 (output_files): Update.
4298 * src/reader.c (parse_header_extension_decl): New.
4299 (parse_source_extension_decl): New.
4300 (read_declarations): New case statements for the new tokens.
4301 * src/lex.c (percent_table): Add entries for %source_extension
4302 and %header_extension.
4303 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
4304
4305 2001-08-06 Marc Autret <autret_m@epita.fr>
4306
4307 * configure.in: Bump to 1.28c.
4308 * doc/bison.texinfo: Texinfo thingies.
4309
4310 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
4311
4312 * tests/atconfig.in (CPPFLAGS): Add.
4313 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
4314
4315 2001-08-03 Akim Demaille <akim@epita.fr>
4316
4317 Version 1.28b.
4318
4319 2001-08-03 Akim Demaille <akim@epita.fr>
4320
4321 * tests/Makefile.am (check-local): Ship testsuite.
4322 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
4323 Include `string.h'.
4324
4325 2001-08-03 Akim Demaille <akim@epita.fr>
4326
4327 * configure.in: Try using -Wformat when compiling.
4328
4329 2001-08-03 Akim Demaille <akim@epita.fr>
4330
4331 * configure.in: Bump to 1.28b.
4332
4333 2001-08-03 Akim Demaille <akim@epita.fr>
4334
4335 * src/complain.c: Adjust strerror_r portability issues.
4336
4337 2001-08-03 Akim Demaille <akim@epita.fr>
4338
4339 Version 1.28a.
4340
4341 2001-08-03 Akim Demaille <akim@epita.fr>
4342
4343 * src/getargs.c, src/getarg.h (skeleton)): Constify.
4344 * src/lex.c (literalchar): Avoid name clashes on `buf'.
4345 * src/getargs.c: Include complain.h.
4346 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
4347 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
4348
4349 2001-08-03 Akim Demaille <akim@epita.fr>
4350
4351 * src/reader.c (readgram): Display hidden chars in error messages.
4352
4353 2001-08-03 Akim Demaille <akim@epita.fr>
4354
4355 Update to gettext 0.10.39.
4356
4357 2001-08-03 Akim Demaille <akim@epita.fr>
4358
4359 * lib/strspn.c: New.
4360
4361 2001-08-01 Marc Autret <autret_m@epita.fr>
4362
4363 * doc/bison.texinfo: Update.
4364 * doc/bison.1 (mandoc): Update.
4365 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
4366 * src/files.c: Support output files extensions computing.
4367 (src_extension): New static variable.
4368 (header_extension): New static variable.
4369 (tr): New function.
4370 (get_extension_index): New function, gets the index of an extension
4371 filename in a string.
4372 (compute_exts_from_gf): New function, computes extensions from the
4373 grammar file extension.
4374 (compute_exts_from_src): New functions, computes extensions from the
4375 C source file extension, file given by ``-o'' option.
4376 (compute_base_names): Update.
4377 (output_files): Update.
4378
4379 2001-08-01 Robert Anisko <anisko_r@epita.fr>
4380
4381 * doc/bison.texi: Document @$.
4382 (Locations): New section.
4383
4384 2001-07-18 Akim Demaille <akim@epita.fr>
4385
4386 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
4387 * config/prev-version.txt, config/move-if-change: New.
4388 * Makefile.am: Adjust.
4389
4390 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
4391
4392 * src/bison.simple (yyparse): Suppress warning `comparaison
4393 between signed and unsigned'.
4394
4395 2001-07-05 Pascal Bart <pascal.bart@epita.fr>
4396
4397 * src/getargs.h (raw_flag): Remove.
4398 * src/getargs.c: Die on `-r'/`--raw'.
4399 * src/lex.c (parse_percent_token): Die on `%raw'.
4400 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
4401 * tests/calc.at: Suppress test with option `--raw'.
4402
4403 2001-07-14 Akim Demaille <akim@epita.fr>
4404
4405 * config/: New.
4406 * configure.in: Require Autoconf 2.50.
4407 Update to gettext 0.10.38.
4408
4409 2001-03-16 Akim Demaille <akim@epita.fr>
4410
4411 * doc/bison.texinfo: ANSIfy the examples.
4412
4413 2001-03-16 Akim Demaille <akim@epita.fr>
4414
4415 * getargs.c (skeleton): New variable.
4416 (longopts): --skeleton is a new option.
4417 (shortopts, getargs): -S is a new option.
4418 * getargs.h: Declare skeleton.
4419 * output.c (output_parser): Use it.
4420
4421 2001-03-16 Akim Demaille <akim@epita.fr>
4422
4423 * m4/strerror_r.m4: New.
4424 * m4/error.m4: Run AC_FUNC_STRERROR_R.
4425 * lib/error.h, lib/error.c: Update.
4426
4427 2001-03-16 Akim Demaille <akim@epita.fr>
4428
4429 * src/getargs.c (longopts): Clean up.
4430
4431 2001-02-21 Akim Demaille <akim@epita.fr>
4432
4433 * src/reader.c (gensym): `gensym_count' is your own.
4434 Use a static buf to create the symbol name, as token_buffer is no
4435 longer a buffer.
4436
4437 2001-02-08 Akim Demaille <akim@epita.fr>
4438
4439 * src/conflicts.c (conflict_report): Be sure not to append to res
4440 between two calls, which could happen if both first sprintf were
4441 skipped, but not the first cp += strlen.
4442
4443 2001-02-08 Akim Demaille <akim@epita.fr>
4444
4445 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
4446 New, from fileutils 4.0.37.
4447 * configure.in: Require Autoconf 2.49c. I took some time before
4448 making this decision. This is the only way out for portability
4449 issues in Bison, it would mean way too much duplicate effort to
4450 import in Bison features implemented in 2.49c since 2.13.
4451 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
4452
4453 2001-02-02 Akim Demaille <akim@epita.fr>
4454
4455 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
4456 * lib/xalloc.h, lib/xmalloc.c: Update.
4457
4458 2001-01-19 Akim Demaille <akim@epita.fr>
4459
4460 Get rid of the ad hoc handling of token_buffer in the scanner: use
4461 the obstacks.
4462
4463 * src/lex.c (token_obstack): New.
4464 (init_lex): Initialize it. No longer call...
4465 (grow_token_buffer): this. Remove it.
4466 Adjust all the places which used it to use the obstack.
4467
4468 2001-01-19 Akim Demaille <akim@epita.fr>
4469
4470 * src/lex.h: Rename all the tokens:
4471 s/\bENDFILE\b/tok_eof/g;
4472 s/\bIDENTIFIER\b/tok_identifier/g;
4473 etc.
4474 Let them be enums, not #define, to ease debugging.
4475 Adjust all the code.
4476
4477 2001-01-18 Akim Demaille <akim@epita.fr>
4478
4479 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
4480 * src/lex.c (maxtoken, grow_token_buffer): Static.
4481
4482 2001-01-18 Akim Demaille <akim@epita.fr>
4483
4484 Since we now use obstacks, more % directives can be enabled.
4485
4486 * src/lex.c (percent_table): Also accept `%yacc',
4487 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
4488 `%debug'.
4489 Handle the actions for `%semantic_parser' and `%pure_parser' here,
4490 instead of returning a token.
4491 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
4492 * src/reader.c (read_declarations): Adjust.
4493 * src/files.c (open_files): Don't call `compute_base_names', don't
4494 compute `attrsfile' since they depend upon data which might be
4495 *in* the input file now.
4496 (output_files): Do it here.
4497 * src/output.c (output_headers): Document the fact that this patch
4498 introduces a guaranteed SEGV for semantic parsers.
4499 * doc/bison.texinfo: Document them.
4500 * tests/suite.at: Exercise these %options.
4501
4502 2000-12-20 Akim Demaille <akim@epita.fr>
4503
4504 Also handle the output file (--verbose) with obstacks.
4505
4506 * files.c (foutput): Remove.
4507 (output_obstack): New.
4508 Adjust all dependencies.
4509 * src/conflicts.c: Return a string.
4510 * src/system.h (obstack_grow_string): Rename as...
4511 (obstack_sgrow): this. Be ready to work with non literals.
4512 (obstack_fgrow4): New.
4513
4514 2000-12-20 Akim Demaille <akim@epita.fr>
4515
4516 * src/files.c (open_files): Fix the computation of short_base_name
4517 in the case of `-o foo.tab.c'.
4518
4519 2000-12-20 Akim Demaille <akim@epita.fr>
4520
4521 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
4522 (copy_dollar): Now that everything uses obstacks, get rid of the
4523 FILE * parameters.
4524
4525 2000-12-20 Akim Demaille <akim@epita.fr>
4526
4527 * src/files.c (open_files): Actually the `.output' file is based
4528 on the short_base_name, not base_name.
4529 * tests/suite.at (Checking output file names): Adjust.
4530
4531 2000-12-20 Akim Demaille <akim@epita.fr>
4532
4533 * src/bison.s1: Remove, we now use directly...
4534 * src/bison.simple: this.
4535 * src/Makefile.am: Use pkgdata instead of data.
4536
4537 2000-12-20 Akim Demaille <akim@epita.fr>
4538
4539 * src/files.c (guard_obstack): New.
4540 (open_files): Initialize it.
4541 (output_files): Dump it...
4542 * src/files.h: Export it.
4543 * src/reader.c (copy_guard): Use it.
4544
4545 2000-12-19 Akim Demaille <akim@epita.fr>
4546
4547 * src/files.c (outfile, defsfile, actfile): Removed as global
4548 vars.
4549 (open_files): Don't compute them.
4550 (output_files): Adjust.
4551 (base_name, short_base_name): Be global.
4552 Adjust dependencies.
4553
4554 2000-12-19 Akim Demaille <akim@epita.fr>
4555
4556 * src/files.c (strsuffix): New.
4557 (stringappend): Be just like strcat but allocate.
4558 (base_names): Eve out from open_files.
4559 Try to simplify the rather hairy computation of base_name and
4560 short_base_name.
4561 (open_files): Use it.
4562 * tests/suite.at (Checking output file names): New test.
4563
4564 2000-12-19 Akim Demaille <akim@epita.fr>
4565
4566 * src/system.h (obstack_grow_literal_string): Rename as...
4567 (obstack_grow_string): this.
4568 * src/output.c (output_parser): Recognize `%% actions' instead of
4569 `$'.
4570 * src/bison.s1: s/$/%% actions/.
4571 * src/bison.hairy: Likewise.
4572
4573 2000-12-19 Akim Demaille <akim@epita.fr>
4574
4575 * src/output.c (output_parser): Compute the `#line' lines when
4576 there are.
4577 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
4578 Suggested by Hans Aberg.
4579
4580 2000-12-19 Akim Demaille <akim@epita.fr>
4581
4582 Let the handling of the skeleton files be local to the procedures
4583 that use it.
4584
4585 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
4586 longer static.
4587 (fparser, open_extra_files): Remove.
4588 (open_files, output_files): Don't take care of fparser.
4589 * src/files.h: Adjust.
4590 * src/output.c (output_parser): Open and close the file to the
4591 skeleton.
4592 * src/reader.c (read_declarations): When %semantic_parser, open
4593 fguard.
4594
4595 2000-12-19 Akim Demaille <akim@epita.fr>
4596
4597 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
4598 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
4599
4600 2000-12-19 Akim Demaille <akim@epita.fr>
4601
4602 * src/files.c (open_files): Yipee! We no longer need all the code
4603 looking for `/tmp' since we have no tmp file.
4604
4605 2000-12-19 Akim Demaille <akim@epita.fr>
4606
4607 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
4608 New macros.
4609 * src/files.c (open_files): Less dependency on MSDOS etc.
4610
4611 2000-12-14 Akim Demaille <akim@epita.fr>
4612
4613 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
4614 Provide a default definition.
4615 Use it when executing the default @ action.
4616 * src/reader.c (reader_output_yylsp): No longer include
4617 `timestamp' and `text' in the default YYLTYPE.
4618
4619 2000-12-12 Akim Demaille <akim@epita.fr>
4620
4621 * src/reader.c (copy_definition, parse_union_decl, copy_action)
4622 (copy_guard): Quote the file names.
4623 Reported by Laurent Mascherpa.
4624
4625 2000-12-12 Akim Demaille <akim@epita.fr>
4626
4627 * src/output.c (output_headers, output_program, output): Be sure
4628 to escape special characters when outputting filenames.
4629 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
4630 (output_headers): Don't depend on them, Use ACTSTR.
4631
4632 2000-11-17 Akim Demaille <akim@epita.fr>
4633
4634 * lib/obstack.h: Formatting changes.
4635 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
4636 prevents type checking.
4637 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
4638 cast the value to (void *): assigning a `foo *' to a `void *'
4639 variable is valid.
4640 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
4641 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
4642 append characters.
4643
4644 2000-11-17 Akim Demaille <akim@epita.fr>
4645
4646 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
4647 as...
4648 (suite.m4, regression.m4, calc.m4): these.
4649 * tests/atgeneral.m4: Update from CVS Autoconf.
4650
4651 2000-11-17 Akim Demaille <akim@epita.fr>
4652
4653 * tests/regression.m4 (%union and --defines): New test,
4654 demonstrating a current bug in the obstack implementation.
4655
4656 2000-11-17 Akim Demaille <akim@epita.fr>
4657
4658 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
4659 macros.
4660 Use them to declare the variables which are global or local to
4661 `yyparse'.
4662
4663 2000-11-17 Akim Demaille <akim@epita.fr>
4664
4665 * acconfig.h: Remove, no longer used.
4666
4667 2000-11-07 Akim Demaille <akim@epita.fr>
4668
4669 * src: s/Copyright (C)/Copyright/g.
4670
4671 2000-11-07 Akim Demaille <akim@epita.fr>
4672
4673 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
4674 defining.
4675 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
4676
4677 2000-11-07 Akim Demaille <akim@epita.fr>
4678
4679 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
4680 Merge in a single CPP if/else.
4681
4682 2000-11-07 Akim Demaille <akim@epita.fr>
4683
4684 * src/output.c (output): Remove useless variables.
4685 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
4686 argument `data' for consistency with the prototypes.
4687 Qualify it `const'.
4688 (obstack_copy, obstack_copy0): Rename the second argument as
4689 `address' for consistency. Qualify it `const'.
4690 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
4691 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
4692 `const' their input argument (`data' or `address').
4693 Adjust the corresponding macros to include `const' in casts.
4694
4695 2000-11-03 Akim Demaille <akim@epita.fr>
4696
4697 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
4698 s/PFILE1/BISON_HAIRY/.
4699 Adjust dependencies.
4700
4701 2000-11-03 Akim Demaille <akim@epita.fr>
4702
4703 For some reason, this was not applied.
4704
4705 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
4706 `unlink': it's no longer used.
4707
4708 2000-11-03 Akim Demaille <akim@epita.fr>
4709
4710 * src/files.c (skeleton_find): New function, eved out of...
4711 (open_files, open_extra_files): here.
4712
4713 2000-11-03 Akim Demaille <akim@epita.fr>
4714
4715 Don't use `atexit'.
4716
4717 * src/files.c (obstack_save): New function.
4718 (done): Rename as...
4719 (output_files): this.
4720 Use `obstack_save'.
4721 * src/main.c (main): Don't use `atexit' to register `done', since
4722 it no longer has to remove tmp files, just call `output_files'
4723 when there are no errors.
4724
4725 2000-11-02 Akim Demaille <akim@epita.fr>
4726
4727 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
4728 `unlink': it's no longer used.
4729 * src/files.h: Formatting changes.
4730
4731 2000-11-02 Akim Demaille <akim@epita.fr>
4732
4733 Remove the last uses of mktemp and unlink/delete.
4734
4735 * src/files.c (fdefines, ftable): Removed.
4736 (defines_ostack, table_obstack): New.
4737 Adjust dependencies of the former into uses of the latter.
4738 * src/output.c (output_short_or_char_table, output_short_table):
4739 Convert to using obstacks.
4740 * src/reader.c (copy_comment2): Accept one FILE * and two
4741 obstacks.
4742 (output_token_defines, reader_output_yylsp): Use obstacks.
4743 * src/system.h (obstack_fgrow3): New.
4744
4745 2000-11-01 Akim Demaille <akim@epita.fr>
4746
4747 Change each use of `fattrs' into a use of `attrs_obstack'.
4748
4749 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
4750 * src/files.c (fattrs): Remove.
4751 (attrs_obstack): New.
4752 Adjust all dependencies.
4753 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
4754
4755 2000-11-01 Akim Demaille <akim@epita.fr>
4756
4757 Introduce obstacks.
4758 Change each use of `faction' into a use of `action_obstack'.
4759
4760 * lib/obstack.h, lib/obstack.c: New files.
4761 * src/files.c (faction): Remove.
4762 (action_obstack): New.
4763 Adjust all dependencies.
4764
4765 2000-10-20 Akim Demaille <akim@epita.fr>
4766
4767 * lib/quote.h (PARAMS): New macro. Use it.
4768
4769 2000-10-16 Akim Demaille <akim@epita.fr>
4770
4771 * src/output.c (output_short_or_char_table): New function.
4772 (output_short_table, output_token_translations): Use it.
4773 (goto_actions): Use output_short_table.
4774
4775 2000-10-16 Akim Demaille <akim@epita.fr>
4776
4777 * src/symtab.c (bucket_new): New function.
4778 (getsym): Use it.
4779
4780 * src/output.c (output_short_table): New argument to display the
4781 comment associated with the table.
4782 Adjust dependencies.
4783 (output_gram): Use it.
4784 (output_rule_data): Nicer output layout for YYTNAME.
4785
4786 2000-10-16 Akim Demaille <akim@epita.fr>
4787
4788 * src/lex.c (read_typename): New function.
4789 (lex): Use it.
4790 * src/reader.c (copy_dollar): Likewise.
4791
4792 2000-10-16 Akim Demaille <akim@epita.fr>
4793
4794 * src/reader.c (copy_comment2): Expect the input stream to be on
4795 the `/' which is suspected to open a comment, instead of being
4796 called after `//' or `/*' was read.
4797 (copy_comment, copy_definition, parse_union_decl, copy_action)
4798 (copy_guard): Adjust.
4799
4800 2000-10-16 Akim Demaille <akim@epita.fr>
4801
4802 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
4803 `read_signed_integer'.
4804
4805 2000-10-16 Akim Demaille <akim@epita.fr>
4806
4807 * src/reader.c (copy_dollar): New function.
4808 (copy_guard, copy_action): Use it.
4809
4810 2000-10-16 Akim Demaille <akim@epita.fr>
4811
4812 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
4813 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
4814 New files, from Fileutils 4.0.27.
4815 * src/main.c (printable_version): Remove.
4816 * src/lex.c, src/reader.c: Use `quote'.
4817
4818 2000-10-04 Akim Demaille <akim@epita.fr>
4819
4820 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
4821
4822 2000-10-04 Akim Demaille <akim@epita.fr>
4823
4824 * doc/bison.texinfo: Various typos spotted by Neil Booth.
4825
4826 2000-10-04 Akim Demaille <akim@epita.fr>
4827
4828 When a literal string is used to define two different tokens,
4829 `bison -v' segfaults.
4830 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
4831
4832 * tests/regression.m4: New file.
4833 Include the core of the sample provided by Piotr Gackiewicz.
4834 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
4835 properly.
4836
4837 2000-10-04 Akim Demaille <akim@epita.fr>
4838
4839 * src/reader.c (parse_expect_decl): Keep `count' within the size
4840 of `buffer'.
4841 From Neil Booth.
4842
4843 2000-10-02 Paul Eggert <eggert@twinsun.com>
4844
4845 * bison.s1 (yyparse): Assign the default value
4846 unconditionally, to avoid a GCC warning and make the parser a
4847 tad smaller.
4848
4849 2000-10-02 Akim Demaille <akim@epita.fr>
4850
4851 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
4852 options.
4853
4854 2000-10-02 Akim Demaille <akim@epita.fr>
4855
4856 * src/derives.c, src/print.c, src/reduce.c: To ease the
4857 translation, move some `\n' out of the translated strings.
4858
4859 2000-10-02 Akim Demaille <akim@epita.fr>
4860
4861 The location tracking mechanism is precious for parse error
4862 messages. Nevertheless, it is enabled only when `@n' is used in
4863 the grammar, which is a different issue (you can use it in error
4864 message, but not in the grammar per se). Therefore, there should
4865 be another means to enable it.
4866
4867 * src/getargs.c (getargs): Support `--locations'.
4868 (usage): Report it.
4869 * src/getargs.h (locationsflag): Export it.
4870 * src/lex.c (percent_table): Support `%locations'.
4871 * src/reader.c (yylsp_needed): Remove this variable, now replaced
4872 with `locationsflag'.
4873 * doc/bison.texinfo: Document `--locations' and `%locations'.
4874 Sort the options.
4875 * tests/calc.m4: Test it.
4876
4877 For regularity of the names, replace each
4878 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
4879 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
4880 In addition replace each `flag' with `_flag'.
4881
4882 2000-10-02 Akim Demaille <akim@epita.fr>
4883
4884 Also test parse error messages, including with YYERROR_VERBOSE.
4885
4886 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
4887 associative).
4888 Use it to check the computations.
4889 Use it to check `nonassoc' is honored.
4890 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
4891 `--yyerror-verbose'.
4892 (_AT_CHECK_CALC): Adjust to this option.
4893 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
4894
4895 2000-10-02 Akim Demaille <akim@epita.fr>
4896
4897 Test also `--verbose', `--defines' and `--name-prefix'. Testing
4898 the latter demonstrates a flaw in the handling of non debugging
4899 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
4900 was used in order to simplify:
4901
4902 #if YYDEBUG
4903 if (yydebug)
4904 {
4905 ...
4906 }
4907 #endif
4908
4909 into
4910
4911 if (yydebug)
4912 {
4913 ...
4914 }
4915
4916 unfortunately this leads to a CPP conflict when
4917 `--name-prefix=foo' is used since it produces `#define yydebug
4918 foodebug'.
4919
4920 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
4921 (YYDPRINTF): New macro.
4922 Spread its use.
4923 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
4924 the bison options.
4925 Also test `--verbose', `--defines' and `--name-prefix'.
4926
4927 2000-10-02 Akim Demaille <akim@epita.fr>
4928
4929 Improve the readability of the produced parsers.
4930
4931 * src/bison.s1: Formatting changes.
4932 Improve the comment related to the `$' mark.
4933 (yydefault): Don't fall through to `yyresume': `goto' there.
4934 * src/output.c (output_parser): When the `$' is met, skip the end
4935 of its line.
4936 New variable, `number_of_dollar_signs', to check there's exactly
4937 one `$' in the parser skeleton.
4938
4939 2000-10-02 Akim Demaille <akim@epita.fr>
4940
4941 * lib/xstrdup.c: New file, from the fileutils.
4942 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
4943 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
4944 instead of strlen + xmalloc + strcpy.
4945 * src/symtab.c (copys): Remove, use xstrdup instead.
4946
4947 2000-10-02 Akim Demaille <akim@epita.fr>
4948
4949 * src/gram.h (associativity): New enum type which replaces the
4950 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
4951 `right_assoc', `left_assoc' and `non_assoc'.
4952 Adjust all dependencies.
4953 * src/reader.c: Formatting changes.
4954 (LTYPESTR): Don't define it, use it as a literal in
4955 `reader_output_yylsp'.
4956 * src/symtab.h (symbol_class): New enum type which replaces the
4957 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
4958 `sunknown', `stoken and `snterm'.
4959
4960 2000-10-02 Akim Demaille <akim@epita.fr>
4961
4962 * src/getargs.c (fixed_outfiles): Rename as...
4963 (yaccflag): for consistency and accuracy.
4964 Adjust dependencies.
4965
4966 2000-10-02 Akim Demaille <akim@epita.fr>
4967
4968 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
4969 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
4970 difficult and introduced a lot of core dump. It turns out that
4971 Bison used an implementation of `xmalloc' based on `calloc', and
4972 at various places it does depend upon the initialization to 0. I
4973 have not tried to isolate the pertinent places, and all the former
4974 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
4975 someone should address this issue.
4976
4977 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
4978 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
4979 files.
4980 Adjust dependencies.
4981 * src/warshall.h: New file.
4982 Propagate.
4983
4984 2000-10-02 Akim Demaille <akim@epita.fr>
4985
4986 Various anti-`extern in *.c' changes.
4987
4988 * src/system.h: Include `assert.h'.
4989
4990 2000-10-02 Akim Demaille <akim@epita.fr>
4991
4992 * src/state.h (nstates, final_state, first_state, first_shift)
4993 (first_reduction): Move their exportation from here...
4994 * src/LR0.h: to here.
4995 Adjust dependencies.
4996 * src/getargs.c (statisticsflag): New variable.
4997 Add support for `--statistics'.
4998 Adjust dependencies.
4999
5000 Remove a lot of now useless `extern' statements in most files.
5001
5002 2000-10-02 Akim Demaille <akim@epita.fr>
5003
5004 * src/LR0.h: New file.
5005 Propagate its use.
5006
5007 2000-10-02 Akim Demaille <akim@epita.fr>
5008
5009 * src/print.h: New file.
5010 Propagate its use.
5011 * src/print.c: Formatting and ordering changes.
5012 (verbose, terse): Replace with...
5013 (print_results): this new function.
5014 Adjust dependencies.
5015
5016 2000-10-02 Akim Demaille <akim@epita.fr>
5017
5018 * src/conflicts.c (conflict_report): New function.
5019 (conflict_log, verbose_conflict_log): Replace with...
5020 (print_conflicts): this function.
5021 Adjust dependencies.
5022 * src/conflicts.h: New file.
5023 Propagate its inclusion.
5024
5025 2000-10-02 Akim Demaille <akim@epita.fr>
5026
5027 * src/nullable.h: New file.
5028 Propagate its inclusion.
5029 * src/nullable.c: Formatting changes.
5030
5031 2000-10-02 Akim Demaille <akim@epita.fr>
5032
5033 * src/reduce.h: New file.
5034 Propagate its inclusion.
5035 * src/reduce.c: Topological sort and other formatting changes.
5036 (bool, TRUE, FALSE): Move their definition to...
5037 * src/system.h: here.
5038
5039 2000-10-02 Akim Demaille <akim@epita.fr>
5040
5041 * src/files.c: Formatting changes.
5042 (tryopen, tryclose, openfiles): Rename as...
5043 (xfopen, xfclose, open_files): this.
5044 (stringappend): static.
5045 * src/files.h: Complete the list of exported symbols.
5046 Propagate its use.
5047
5048 2000-10-02 Akim Demaille <akim@epita.fr>
5049
5050 * src/reader.h: New file.
5051 Propagate its use instead of tedious list of `extern' and
5052 prototypes.
5053 * src/reader.c: Formatting changes, topological sort,
5054 s/register//.
5055
5056 2000-10-02 Akim Demaille <akim@epita.fr>
5057
5058 * src/lex.h: Prototype `lex.c' exported functions.
5059 * src/reader.c: Adjust.
5060 * src/lex.c: Formatting changes.
5061 (safegetc): Rename as...
5062 (xgetc): this.
5063
5064 2000-10-02 Akim Demaille <akim@epita.fr>
5065
5066 * src/lalr.h: New file.
5067 Propagate its inclusion instead of prototypes and `extern'.
5068 * src/lalr.c: Formatting changes, topological sorting etc.
5069
5070 2000-10-02 Akim Demaille <akim@epita.fr>
5071
5072 * src/output.c (token_actions): Introduce a temporary array,
5073 YYDEFACT, that makes it possible for this function to use
5074 output_short_table.
5075
5076 2000-10-02 Akim Demaille <akim@epita.fr>
5077
5078 `user_toknums' is output as a `short[]' in `output.c', while it is
5079 defined as a `int[]' in `reader.c'. For consistency with the
5080 other output tables, `user_toknums' is now defined as a table of
5081 shorts.
5082
5083 * src/reader.c (user_toknums): Be a short table instead of an int
5084 table.
5085 Adjust dependencies.
5086
5087 Factor the short table outputs.
5088
5089 * src/output.c (output_short_table): New function.
5090 * src/output.c (output_gram, output_stos, output_rule_data)
5091 (output_base, output_table, output_check): Use it.
5092
5093 2000-10-02 Akim Demaille <akim@epita.fr>
5094
5095 * src/output.c (output): Topological sort of the functions, in
5096 order to get rid of the `static' prototypes.
5097 No longer use `register'.
5098 * src/output.h: New file.
5099 Propagate its inclusion in files explicitly prototyping functions
5100 from output.c.
5101
5102 2000-09-21 Akim Demaille <akim@epita.fr>
5103
5104 * src/atgeneral.m4: Update from Autoconf.
5105
5106 2000-09-21 Akim Demaille <akim@epita.fr>
5107
5108 * src/closure.h: New file.
5109 * src/closure.c: Formatting changes, topological sort over the
5110 functions, use of closure.h.
5111 (initialize_closure, finalize_closure): Rename as...
5112 (new_closure, free_closure): these. Adjust dependencies.
5113 * src/LR0.c: Formatting changes, topological sort, use of
5114 cloture.h.
5115 (initialize_states): Rename as...
5116 (new_states): this.
5117 * src/Makefile.am (noinst_HEADERS): Adjust.
5118
5119 2000-09-20 Akim Demaille <akim@epita.fr>
5120
5121 * src/acconfig.h: Don't protect config.h against multiple
5122 inclusion.
5123 Don't define PARAMS.
5124 * src/system.h: Define PARAMS.
5125 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
5126 purpose of config.h. system.h must not try to fix wrong
5127 definitions in config.h.
5128
5129 2000-09-20 Akim Demaille <akim@epita.fr>
5130
5131 * src/derives.h: New file.
5132 * src/main.c, src/derives.h: Use it.
5133 Formatting changes.
5134 * src/Makefile.am (noinst_HEADERS): Adjust.
5135
5136 2000-09-20 Akim Demaille <akim@epita.fr>
5137
5138 * tests/atgeneral.m4: Update from Autoconf.
5139 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
5140 (AT_CHECK_CALC): New macros.
5141 Use these macros to test bison with options `', `--raw',
5142 `--debug', `--yacc', `--yacc --debug'.
5143
5144 2000-09-19 Akim Demaille <akim@epita.fr>
5145
5146 * src/output.c: Formatting changes.
5147 * src/machine.h: Remove, leaving its contents in...
5148 * src/system.h: here.
5149 Include stdio.h.
5150 Adjust all dependencies on stdio.h and machine.h.
5151 * src/getargs.h: New file.
5152 Let all `extern' declarations about getargs.c be replaced with
5153 inclusion of `getargs.h'.
5154 * src/Makefile.am (noinst_HEADERS): Adjust.
5155
5156 * tests/calc.m4 (yyin): Be initialized in main, not on the global
5157 scope.
5158 (yyerror): Returns void, not int.
5159 * doc/bison.texinfo: Formatting changes.
5160
5161 2000-09-19 Akim Demaille <akim@epita.fr>
5162
5163 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
5164 portable.
5165
5166 2000-09-18 Akim Demaille <akim@epita.fr>
5167
5168 * configure.in: Append WARNING_CFLAGS to CFLAGS.
5169 * src/Makefile.am (INCLUDES): Don't.
5170 Be ready to fetch headers in lib/.
5171
5172 2000-09-18 Akim Demaille <akim@epita.fr>
5173
5174 * doc/bison.texinfo: Update the copyright.
5175 ANSIfy and GNUify the examples.
5176 Remove the old menu.
5177
5178 2000-09-18 Akim Demaille <akim@epita.fr>
5179
5180 First set of tests: use the `calc' example from the documentation.
5181
5182 * src/bison.s1 (yyparse): Condition the code using `yytname' which
5183 is defined only when YYDEBUG is.
5184 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
5185 * src/files.c (tryopen, tryclose): Formatting changes.
5186 Move to the top and be static.
5187 * src/reader.c (read_signed_integer): Likewise.
5188 * tests/calc.m4: New file.
5189 * Makefile.am, suite.m4: Adjust.
5190 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
5191
5192 2000-09-18 Akim Demaille <akim@epita.fr>
5193
5194 Add support for an Autotest test suite for Bison.
5195
5196 * m4/m4.m4, m4/atconfig.m4: New files.
5197 * m4/Makefile.am (EXTRA_DIST): Adjust.
5198 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
5199 files.
5200 * src/getargs.c: Display a more standard --version message.
5201 * src/reader.c (reader): Formatting changes.
5202 No longer depend upon VERSION_STRING.
5203 * configure.in: No longer use `dnl'.
5204 Set up the test suite and the new directory `tests/.
5205 (VERSION_STRING): Remove.
5206
5207 2000-04-14 Akim Demaille <akim@epita.fr>
5208
5209 * src/reader.c (copy_comment2): New function, same as former
5210 `copy_comment', but outputs into two FILE *.
5211 (copy_comment): Use it.
5212 (parse_union_decl): Use it.
5213 (get_type, parse_start_decl): Use the same `invalid' message.
5214 (parse_start_decl, parse_union_decl): Use the same `multiple'
5215 message.
5216 (parse_union_decl, copy_guard, copy_action): Use the same
5217 `unmatched' message.
5218 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
5219
5220 2000-03-31 Akim Demaille <akim@epita.fr>
5221
5222 * src/files.c (tryopen, tryclose): Move to the top.
5223 Be static.
5224
5225 2000-03-31 Akim Demaille <akim@epita.fr>
5226
5227 * src/main.c (main): Don't call `done', exit does it.
5228
5229 2000-03-31 Akim Demaille <akim@epita.fr>
5230
5231 * allocate.c: s/return (foo)/return foo/.
5232 * lalr.c: Likewise.
5233 * LR0.c: Likewise.
5234 * output.c: Likewise.
5235 * reader.c: Likewise.
5236 * symtab.c: Likewise.
5237 * vmsgetargs.c: Likewise.
5238
5239 2000-03-31 Akim Demaille <akim@epita.fr>
5240
5241 Clean up the error reporting functions.
5242
5243 * src/report.c: New file.
5244 * src/report.h: Likewise.
5245 * src/Makefile.am: Adjust.
5246 * m4/error.m4: New file.
5247 * m4/Makefile.am: Adjust.
5248 * configure.in (jm_PREREQ_ERROR): Call it.
5249 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
5250 Remove.
5251 (fatal, fatals): Remove. All callers use complain.c::fatal.
5252 (warn, warni, warns, warnss, warnss): Remove. All callers use
5253 complain.c::complain.
5254 (toomany): Remove, use fatal instead.
5255 * src/files.c (done): No argument, use complain_message_count.
5256 * src/main.c (main): Register `done' to `atexit'.
5257
5258 * src/getargs.c (usage): More `fputs', less `fprintf'.
5259
5260 2000-03-28 Akim Demaille <akim@epita.fr>
5261
5262 * lib/: New directory.
5263 * Makefile.am (SUBDIRS): Adjust.
5264 * configure.in: Adjust.
5265 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
5266 useless.
5267 * src/alloca.c: Moved to lib/.
5268 * src/getopt.c: Likewise.
5269 * src/getopt1.c: Likewise.
5270 * src/getopt.h: Likewise.
5271 * src/ansi2knr.c: Likewise.
5272 * src/ansi2knr.1: Likewise.
5273 * src/Makefile.am: Adjust.
5274 * lib/Makefile.am: New file.
5275
5276 2000-03-28 Akim Demaille <akim@epita.fr>
5277
5278 * src/getargs.c (usage): Refresh the help message.
5279
5280 2000-03-17 Akim Demaille <akim@epita.fr>
5281
5282 * src/getopt1.c: Updated from textutils 2.0e
5283 * src/getopt.c: Likewise.
5284 * src/getopt.h: Likewise.
5285
5286 2000-03-17 Akim Demaille <akim@epita.fr>
5287
5288 * src/Makefile.am (bison.simple): Fix the awk program: quote only
5289 the file name, not the whole `#line LINE FILE'.
5290
5291 2000-03-17 Akim Demaille <akim@epita.fr>
5292
5293 On syntax errors, report the token on which we choked.
5294
5295 * src/bison.s1 (yyparse): In the label yyerrlab, when
5296 YYERROR_VERBOSE, add yychar in msg.
5297
5298 2000-03-17 Akim Demaille <akim@epita.fr>
5299
5300 * src/reader.c (copy_at): New function.
5301 (copy_guard): Use it.
5302 (copy_action): Use it.
5303
5304 2000-03-17 Akim Demaille <akim@epita.fr>
5305
5306 Be kind to translators, save some useless translations.
5307
5308 * src/main.c (banner): New function.
5309 (fatal_banner): Use it.
5310 (warn_banner): Use it.
5311
5312 2000-03-17 Akim Demaille <akim@epita.fr>
5313
5314 * src/reader.c (copy_definition): Use copy_string and
5315 copy_comment. Removed now unused `match', `ended',
5316 `cplus_comment'.
5317 (copy_comment, copy_string): Moved, to be visible from
5318 copy_definition.
5319
5320 2000-03-17 Akim Demaille <akim@epita.fr>
5321
5322 * src/reader.c (copy_string): Declare `static inline'. No
5323 problems with inline, since it is checked by configure.
5324 (copy_comment): Likewise.
5325
5326 2000-03-17 Akim Demaille <akim@epita.fr>
5327
5328 * src/reader.c (packsymbols): Formatting changes.
5329
5330 2000-03-17 Akim Demaille <akim@epita.fr>
5331
5332 * src/reader.c (copy_comment): New function, factored out from:
5333 (copy_action): Use it. Removed now unused `match', `ended',
5334 `cplus_comment'.
5335 (copy_guard): Likewise.
5336
5337 2000-03-17 Akim Demaille <akim@epita.fr>
5338
5339 * src/reader.c (copy_string): New function, factored out from:
5340 (copy_action): Use it.
5341 (copy_guard): Likewise.
5342
5343 2000-03-17 Akim Demaille <akim@epita.fr>
5344
5345 Change the handling of @s so that they behave exactly like $s.
5346 There is now a pseudo variable @$ (readble and writable), location
5347 of the lhs of the rule (by default ranging from the location of
5348 the first symbol of the rhs, to the location of the last symbol,
5349 or, if the rhs is empty, YYLLOC).
5350
5351 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
5352 yyval.
5353 (yyparse): When providing a default semantic action, provide a
5354 default location action.
5355 (after the $): No longer change `*YYLSP', just stack YYLOC the
5356 same way you stack YYVAL.
5357 * src/reader.c (read_declarations): Use warns.
5358 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
5359 (copy_action, case '@'): Likewise.
5360 Use a standard error message, to save useless work from
5361 translators.
5362
5363 2000-03-17 Akim Demaille <akim@epita.fr>
5364
5365 * src/bison.s1: Formatting and cosmetics changes.
5366 * src/reader.c: Likewise.
5367 Update the Copyright notice.
5368
5369 2000-03-17 Akim Demaille <akim@epita.fr>
5370
5371 * src/bison.s1 (#line): All set to `#line' only, since the
5372 Makefile now handles them.
5373
5374 2000-03-16 Akim Demaille <akim@epita.fr>
5375
5376 * src/output.c (output_rule_data): Output the documentation of
5377 some of the tables.
5378 (Copyright notice): Update.
5379 Formatting changes.
5380
5381 2000-03-16 Akim Demaille <akim@epita.fr>
5382
5383 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
5384 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
5385 One `#if YYDEBUG' remains, since it uses variables which are
5386 defined only if `YYDEBUG != 0'.
5387
5388 2000-03-16 Akim Demaille <akim@epita.fr>
5389
5390 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
5391 and related variables so that the similarities are highlighted.
5392
5393 2000-03-16 Akim Demaille <akim@epita.fr>
5394
5395 * src/bison.s1: Properly indent CPP directives.
5396
5397 2000-03-16 Akim Demaille <akim@epita.fr>
5398
5399 * src/bison.s1: Properly indent the `alloca' CPP section.
5400
5401 2000-03-16 Akim Demaille <akim@epita.fr>
5402
5403 Do not hard code values of directories in `configure.in'.
5404 Update the `configure' tool chain.
5405
5406 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
5407 src/makefile.am.
5408 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
5409 (AC_OUTPUT): Add m4/Makefile.
5410 Bump to bison 1.28a, 1.29 has never been released.
5411 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
5412 handled via src/Makefile.am.
5413 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
5414 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
5415 autoheader.
5416 * Makefile.am (SUBDIRS): Add m4.
5417 (ACLOCAL_AM_FLAGS): New variable.
5418 (AUTOMAKE_OPTIONS): Add check-news.
5419 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
5420 the proper line number and file name.
5421 (DEFS): Propagate the location of bison library files and of the
5422 locale files.
5423 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
5424 builddir.
5425 * acinclude.m4: Remove, replaced by the directory m4.
5426 * m4/Makefile.am (EXTRA_DIST): New variable.
5427 * m4/gettext.m4: New file, from the fileutils.
5428 * m4/lcmessage.m4: Likewise
5429 * m4/progtest.m4: Likewise.
5430 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
5431
5432 2000-03-10 Akim Demaille <akim@epita.fr>
5433
5434 * src/closure.c:
5435 Formatting changes of various comments.
5436 Respect the GNU coding standards at various places.
5437 Don't use `_()' when no translation is needed.
5438
5439 1999-12-13 Jesse Thilo <jthilo@gnu.org>
5440
5441 * src/files.c:
5442 OS/2 honors TMPDIR environment variable.
5443
5444 1999-12-13 Jesse Thilo <jthilo@gnu.org>
5445
5446 * doc/bison.texinfo: Tweaked spelling and grammar.
5447 Updated ISBN.
5448 Removed reference to price of printed copy.
5449 Mention BISON_SIMPLE and BISON_HAIRY.
5450
5451 1999-12-13 Jesse Thilo <jthilo@gnu.org>
5452
5453 * configure.in, NEWS:
5454 Bison 1.29 released.
5455
5456 1999-10-27 Jesse Thilo <jthilo@gnu.org>
5457
5458 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
5459 Added reference card.
5460
5461 1999-07-26 Jesse Thilo <jthilo@gnu.org>
5462
5463 * po/ru.po: Added Russian translation.
5464
5465 1999-07-26 Jesse Thilo <jthilo@gnu.org>
5466
5467 * configure.in: Added Russian translation.
5468
5469 1999-07-06 Jesse Thilo <jthilo@gnu.org>
5470
5471 * configure.in, NEWS, README:
5472 Released version 1.28.
5473
5474 1999-06-14 Jesse Thilo <jthilo@gnu.org>
5475
5476 * src/system.h:
5477 Squashed redefinition warning on some systems.
5478
5479 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
5480 Have configure build version string instead of relying on ANSI string
5481 concatentation.
5482
5483 1999-06-14 Jesse Thilo <jthilo@gnu.org>
5484
5485 * po/POTFILES.in: Got rid of version.c.
5486
5487 1999-06-14 Jesse Thilo <jthilo@gnu.org>
5488
5489 * acconfig.h, configure.in:
5490 Have configure build version string instead of relying on ANSI string
5491 concatentation.
5492
5493 1999-06-08 Jesse Thilo <jthilo@gnu.org>
5494
5495 * doc/bison.1:
5496 Dropped mention of `+' for long-named options.
5497
5498 1999-05-30 Jesse Thilo <jthilo@gnu.org>
5499
5500 * src/files.c: Added <unistd.h> for unlink().
5501
5502 * src/Makefile.am, src/system.h:
5503 I18n fixes.
5504
5505 1999-05-30 Jesse Thilo <jthilo@gnu.org>
5506
5507 * README: Added a FAQ list.
5508
5509 * configure.in, acconfig.h:
5510 I18n fixes.
5511
5512 1999-05-30 Jesse Thilo <jthilo@gnu.org>
5513
5514 * doc/FAQ, doc/Makefile.am:
5515 Added a FAQ list.
5516
5517 1999-05-19 Jesse Thilo <jthilo@gnu.org>
5518
5519 * src/alloc.h, src/symtab.h, src/version.c:
5520 Protected inclusion of "config.h" with HAVE_CONFIG_H.
5521
5522 1999-04-18 Jesse Thilo <jthilo@gnu.org>
5523
5524 * src/.cvsignore, src/Makefile.am:
5525 Reorganized: sources in `src', documentation in `doc'.
5526
5527 * src/lex.c (literalchar):
5528 fixed the code for escaping double quotes (thanks
5529 Jonathan Czisny.)
5530
5531 1999-04-18 Jesse Thilo <jthilo@gnu.org>
5532
5533 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
5534 Adjusted paths to reflect directory reorganization.
5535
5536 1999-04-18 Jesse Thilo <jthilo@gnu.org>
5537
5538 * doc/.cvsignore, doc/Makefile.am:
5539 Reorganized: sources in `src', documentation in `doc'.
5540
5541 1999-04-18 Jesse Thilo <jthilo@gnu.org>
5542
5543 * configure.in:
5544 Updated AC_INIT file to reflect directory reorganization.
5545
5546 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
5547 Reorganized: sources in `src', documentation in `doc'.
5548
5549 1999-04-13 Jesse Thilo <jthilo@gnu.org>
5550
5551 * src/allocate.c:
5552 Don't declare calloc() and realloc() if not necessary.
5553
5554 1999-04-13 Jesse Thilo <jthilo@gnu.org>
5555
5556 * configure.in, acconfig.h, acinclude.m4:
5557 Don't declare calloc() and realloc() if not necessary.
5558
5559 1999-03-23 Jesse Thilo <jthilo@gnu.org>
5560
5561 * po/.cvsignore: Added i18n support.
5562
5563 1999-03-23 Jesse Thilo <jthilo@gnu.org>
5564
5565 * acconfig.h, configure.in, Makefile.am:
5566 Added i18n support.
5567
5568 1999-03-22 Jesse Thilo <jthilo@gnu.org>
5569
5570 * src/bison.s1: Fixed #line numbers.
5571
5572 1999-03-15 Jesse Thilo <jthilo@gnu.org>
5573
5574 * po/es.po, po/fr.po, po/nl.po, po/de.po:
5575 Added PO files from Translation Project.
5576
5577 1999-03-03 Jesse Thilo <jthilo@gnu.org>
5578
5579 * Makefile.am:
5580 Added support for non-ANSI compilers (ansi2knr).
5581
5582 1999-02-16 Jesse Thilo <jthilo@gnu.org>
5583
5584 * configure.in: Bumped version number to 1.27.
5585
5586 * Makefile.am:
5587 Added `bison.simple' to list of files removed by `make distclean'.
5588
5589 1999-02-12 Jesse Thilo <jthilo@gnu.org>
5590
5591 * src/files.c, src/files.h:
5592 Defined locations of parser files in config.h instead of Makefile.
5593
5594 1999-02-12 Jesse Thilo <jthilo@gnu.org>
5595
5596 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
5597 Defined locations of parser files in config.h instead of Makefile.
5598
5599 1999-02-09 Jesse Thilo <jthilo@gnu.org>
5600
5601 * Makefile.am:
5602 Removed inappropriate use of $< macro.
5603
5604 1999-02-05 Jesse Thilo <jthilo@gnu.org>
5605
5606 * po/Makefile.in.in, po/POTFILES.in:
5607 Add `po' directory skeleton.
5608
5609 1999-01-27 Jesse Thilo <jthilo@gnu.org>
5610
5611 * README: Document help-bison list.
5612
5613 * configure.in: Add check for mkstemp().
5614
5615 1999-01-20 Jesse Thilo <jthilo@gnu.org>
5616
5617 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
5618 Hush a few compiler warnings.
5619
5620 * src/files.c:
5621 Add tryclose(), which verifies that fclose was successful.
5622 Hush a couple of compiler warnings.
5623
5624 1999-01-20 Jesse Thilo <jthilo@gnu.org>
5625
5626 * Makefile.am, OChangeLog:
5627 ChangeLog is now automatically generated. Include the old version as
5628 OChangeLog.
5629
5630 1999-01-14 Jesse Thilo <jthilo@gnu.org>
5631
5632 * 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:
5633 Update FSF address.
5634
5635 1999-01-14 Jesse Thilo <jthilo@gnu.org>
5636
5637 * doc/bison.texinfo: Fix formatting glitch.
5638
5639 * doc/bison.texinfo: Update FSF address.
5640
5641 1999-01-14 Jesse Thilo <jthilo@gnu.org>
5642
5643 * acconfig.h: Update FSF address.
5644
5645 1999-01-08 Jesse Thilo <jthilo@gnu.org>
5646
5647 * src/system.h:
5648 Don't define PACKAGE here, since config.h defines it.
5649
5650 1998-12-30 Jesse Thilo <jthilo@gnu.org>
5651
5652 * src/reader.c: Update copyright date.
5653
5654 * src/main.c:
5655 Ditch sprintf to statically-sized buffers in fatal/warn functions in
5656 favor of output directly to stderr (avoids buffer overruns).
5657
5658 * src/reader.c: Some checks for premature EOF.
5659
5660 * 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:
5661 Use prototypes if the compiler understands them.
5662
5663 * src/files.c: Honor TMPDIR on Unix hosts.
5664 Use prototypes if the compiler understands them.
5665
5666 * src/reader.c:
5667 Fix a couple of buffer overrun bugs.
5668 Use prototypes if the compiler understands them.
5669
5670 * src/system.h: Include unistd.h and ctype.h.
5671 Use #ifdef instead of #if for NLS symbols.
5672
5673 1998-12-30 Jesse Thilo <jthilo@gnu.org>
5674
5675 * doc/bison.texinfo:
5676 Delete comment "consider using @set for edition number, etc..." since
5677 we now are doing so.
5678
5679 1998-12-30 Jesse Thilo <jthilo@gnu.org>
5680
5681 * configure.in:
5682 Use prototypes if the compiler understands them.
5683
5684 * NEWS: Document 1.26 highlights.
5685
5686 * Makefile.am: Require Automake 1.3 or later.
5687
5688 * acconfig.h:
5689 Use prototypes if the compiler understands them.
5690
5691 1998-12-29 Jesse Thilo <jthilo@gnu.org>
5692
5693 * src/version.c:
5694 Use VERSION symbol from automake for version number.
5695
5696 1998-12-29 Jesse Thilo <jthilo@gnu.org>
5697
5698 * acconfig.h, configure.in, version.cin:
5699 Use VERSION symbol from automake for version number.
5700
5701 1998-11-28 Jesse Thilo <jthilo@gnu.org>
5702
5703 * Makefile.am:
5704 Distribute original version of simple parser (bison.s1), not built
5705 version (bison.simple).
5706
5707 1998-11-28 Jesse Thilo <jthilo@gnu.org>
5708
5709 * doc/bison.texinfo: Add info dir entry.
5710
5711 * doc/bison.texinfo:
5712 Let automake put version number into documentation.
5713
5714 1998-11-26 Jesse Thilo <jthilo@gnu.org>
5715
5716 * src/bison.cld, src/build.com, src/vmshlp.mar:
5717 Add non-RCS files from /gd/gnu/bison.
5718
5719 1998-11-26 Jesse Thilo <jthilo@gnu.org>
5720
5721 * doc/bison.1:
5722 Document the BISON_HAIRY and BISON_SIMPLE variables.
5723
5724 1998-11-25 Jesse Thilo <jthilo@gnu.org>
5725
5726 * src/version.c: Build version.c automatically.
5727
5728 * src/reader.c:
5729 Fix token numbering (used to start at 258, not 257).
5730
5731 * src/system.h: Include config.h.
5732
5733 * src/getargs.c: Update bug report address.
5734
5735 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
5736 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
5737
5738 1998-11-25 Jesse Thilo <jthilo@gnu.org>
5739
5740 * Makefile.am:
5741 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
5742
5743 * configure.in, version.cin:
5744 Build version.c automatically.
5745
5746 * AUTHORS: Add AUTHORS file.
5747
5748 * README: Update bug report address.
5749
5750 * bison.simple:
5751 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
5752
5753 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
5754 Add automake stuff.
5755
5756 1998-11-25 Jesse Thilo <jthilo@gnu.org>
5757
5758 * doc/bison.texinfo: Clean up some formatting.
5759
5760 1998-05-05 Richard Stallman <rms@gnu.org>
5761
5762 * doc/bison.texinfo:
5763 Explain better why to make a pure parser.
5764
5765 1998-01-05 Richard Stallman <rms@gnu.org>
5766
5767 * src/files.c (openfiles):
5768 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
5769 find a temporary directory, if possible. Do not unlink files while
5770 they are open.
5771
5772 1997-08-25 Richard Stallman <rms@gnu.org>
5773
5774 * src/reader.c (stack_offset;):
5775 Change some warni to warns.
5776
5777 * src/lex.c (literalchar): Use warns, not warni.
5778
5779 1997-06-28 Richard Stallman <rms@gnu.org>
5780
5781 * src/bison.s1: Add a Bison version comment.
5782
5783 * src/main.c (fatal, warn, berror):
5784 Use program_name.
5785
5786 1997-06-28 Richard Stallman <rms@gnu.org>
5787
5788 * Makefile.in (bison_version): New variable.
5789 (dist): Use that variable.
5790 (bison.s1): Substitute the Bison version into bison.simple.
5791
5792 * bison.simple: Add a Bison version comment.
5793
5794 1997-06-18 Richard Stallman <rms@gnu.org>
5795
5796 * src/main.c (fatal, warn, berror):
5797 Make error messages standard.
5798 (toomany): Improve error message text.
5799
5800 * 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:
5801 new.h renamed to alloc.h.
5802
5803 1997-06-18 Richard Stallman <rms@gnu.org>
5804
5805 * Makefile.in: new.h renamed to alloc.h.
5806
5807 1997-05-24 Richard Stallman <rms@gnu.org>
5808
5809 * src/lex.c (literalchar):
5810 Fix the code for escaping \, " and '.
5811
5812 (lex): Avoid trouble when there are many chars
5813 to discard in a char literal with just several chars in it.
5814
5815 1997-05-17 Richard Stallman <rms@gnu.org>
5816
5817 * src/bison.s1:
5818 Use malloc, if using alloca is troublesome.
5819 (YYSTACK_USE_ALLOCA): New flag macro.
5820 Define it for some systems and compilers.
5821 (YYSTACK_ALLOC): New macro.
5822 (yyparse): Use YYSTACK_ALLOC to allocate stack.
5823 If it was malloc'd, free it.
5824
5825 1997-05-17 Richard Stallman <rms@gnu.org>
5826
5827 * bison.simple:
5828 Use malloc, if using alloca is troublesome.
5829 (YYSTACK_USE_ALLOCA): New flag macro.
5830 Define it for some systems and compilers.
5831 (YYSTACK_ALLOC): New macro.
5832 (yyparse): Use YYSTACK_ALLOC to allocate stack.
5833 If it was malloc'd, free it.
5834
5835 1997-04-23 Richard Stallman <rms@gnu.org>
5836
5837 * src/bison.s1:
5838 (alloca) [__hpux]: Always define as __builtin_alloca.
5839
5840 1997-04-23 Richard Stallman <rms@gnu.org>
5841
5842 * bison.simple:
5843 (alloca) [__hpux]: Always define as __builtin_alloca.
5844
5845 1997-04-22 Richard Stallman <rms@gnu.org>
5846
5847 * src/bison.s1:
5848 [__hpux]: Include alloca.h (right for HPUX 10)
5849 instead of declaring alloca (right for HPUX 9).
5850
5851 * src/bison.s1 (__yy_memcpy):
5852 Declare arg `count' as unsigned int.
5853 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
5854
5855 1997-04-22 Richard Stallman <rms@gnu.org>
5856
5857 * bison.simple:
5858 [__hpux]: Include alloca.h (right for HPUX 10)
5859 instead of declaring alloca (right for HPUX 9).
5860
5861 * bison.simple (__yy_memcpy):
5862 Declare arg `count' as unsigned int.
5863 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
5864
5865 1997-01-03 Richard Stallman <rms@gnu.org>
5866
5867 * src/allocate.c: [__STDC__ or _MSC_VER]:
5868 Declare calloc and realloc to return void *.
5869
5870 1997-01-02 Richard Stallman <rms@gnu.org>
5871
5872 * src/system.h:
5873 [_MSC_VER]: Include stdlib.h and process.h.
5874 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
5875
5876 * src/main.c (main): Return FAILURE as a value.
5877 (printable_version): Declare arg as int, not char.
5878
5879 1997-01-02 Richard Stallman <rms@gnu.org>
5880
5881 * Makefile.in (dist):
5882 Explicitly check for symlinks, and copy them.
5883
5884 1996-12-19 Richard Stallman <rms@gnu.org>
5885
5886 * src/files.c:
5887 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
5888
5889 1996-12-18 Paul Eggert <eggert@gnu.org>
5890
5891 * src/bison.s1 (yyparse):
5892 If __GNUC__ and YYPARSE_PARAM are both defined,
5893 declare yyparse to have a void * argument.
5894
5895 1996-12-18 Paul Eggert <eggert@gnu.org>
5896
5897 * bison.simple (yyparse):
5898 If __GNUC__ and YYPARSE_PARAM are both defined,
5899 declare yyparse to have a void * argument.
5900
5901 1996-12-17 Richard Stallman <rms@gnu.org>
5902
5903 * src/reduce.c (nbits): Add some casts.
5904
5905 1996-08-12 Richard Stallman <rms@gnu.org>
5906
5907 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
5908
5909 1996-08-12 Richard Stallman <rms@gnu.org>
5910
5911 * bison.simple: Test _MSDOS as well as _MSDOS_.
5912
5913 1996-07-31 Richard Stallman <rms@gnu.org>
5914
5915 * src/bison.s1:
5916 [__sun && __i386]: Include alloca.h.
5917
5918 1996-07-31 Richard Stallman <rms@gnu.org>
5919
5920 * bison.simple:
5921 [__sun && __i386]: Include alloca.h.
5922
5923 1996-07-30 Richard Stallman <rms@gnu.org>
5924
5925 * src/bison.s1: Comment change.
5926
5927 * src/bison.s1: Test _MSDOS_, not MSDOS.
5928
5929 1996-07-30 Richard Stallman <rms@gnu.org>
5930
5931 * bison.simple: Comment change.
5932
5933 * bison.simple: Test _MSDOS_, not MSDOS.
5934
5935 1996-06-01 Richard Stallman <rms@gnu.org>
5936
5937 * 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:
5938 Insert `_' macro around many string constants.
5939
5940 * src/main.c:
5941 Insert `_' macro around many string constants.
5942
5943 (main): Call setlocale, bindtextdomain and textdomain.
5944
5945 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
5946 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
5947 [ENABLE_NLS]: Include libintl.h.
5948 [ENABLE_NLS] (gettext): Define.
5949 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
5950 (N_, PACKAGE, LOCALEDIR): New macros.
5951
5952 1996-06-01 Richard Stallman <rms@gnu.org>
5953
5954 * POTFILES.in: New file.
5955
5956 * Makefile.in (allocate.o):
5957 Define target explicitly.
5958
5959 * Makefile.in (CFLAGS): Set to @CFLAGS@.
5960 (LDFLAGS): Set to @LDFLAGS@.
5961 (configure): Run autoconf only if preceding `cd' succeeds.
5962 (bison.s1): Redirect output to temporary file then move the
5963 temporary to the target, rather than redirecting directly to bison.s1.
5964 (clean): Remove config.status and config.log.
5965 (distclean): Don't remove config.status here.
5966
5967 1996-05-12 Richard Stallman <rms@gnu.org>
5968
5969 * src/bison.s1:
5970 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
5971
5972 1996-05-12 Richard Stallman <rms@gnu.org>
5973
5974 * bison.simple:
5975 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
5976
5977 1996-05-11 Richard Stallman <rms@gnu.org>
5978
5979 * src/bison.s1 (__yy_memcpy):
5980 Really reorder the args, as was supposedly done on Feb 14 1995.
5981 (yyparse): Calls changed accordingly.
5982
5983 1996-05-11 Richard Stallman <rms@gnu.org>
5984
5985 * Makefile.in (dist): Don't use $(srcdir).
5986
5987 * bison.simple (__yy_memcpy):
5988 Really reorder the args, as was supposedly done on Feb 14 1995.
5989 (yyparse): Calls changed accordingly.
5990
5991 1996-01-27 Richard Stallman <rms@gnu.org>
5992
5993 * src/output.c (output_rule_data):
5994 Test YYERROR_VERBOSE in the conditional
5995 around the definition of ttyname.
5996
5997 1995-12-29 Richard Stallman <rms@gnu.org>
5998
5999 * src/bison.s1:
6000 Fix line numbers in #line commands.
6001
6002 1995-12-29 Richard Stallman <rms@gnu.org>
6003
6004 * bison.simple:
6005 Fix line numbers in #line commands.
6006
6007 1995-12-27 Richard Stallman <rms@gnu.org>
6008
6009 * src/bison.s1 (YYPARSE_PARAM_DECL):
6010 In C++, make it always null.
6011 (YYPARSE_PARAM_ARG): New macro.
6012 (yyparse): Use YYPARSE_PARAM_ARG.
6013
6014 1995-12-27 Richard Stallman <rms@gnu.org>
6015
6016 * bison.simple (YYPARSE_PARAM_DECL):
6017 In C++, make it always null.
6018 (YYPARSE_PARAM_ARG): New macro.
6019 (yyparse): Use YYPARSE_PARAM_ARG.
6020
6021 1995-11-29 Richard Stallman <rms@gnu.org>
6022
6023 * doc/bison.texinfo:
6024 Describe literal string tokens, %raw, %no_lines, %token_table.
6025
6026 1995-11-29 Daniel Hagerty <hag@gnu.org>
6027
6028 * doc/bison.texinfo: Fixed update date
6029
6030 1995-10-16 Richard Stallman <rms@gnu.org>
6031
6032 * src/version.c: Version 1.25.
6033
6034 1995-10-16 Richard Stallman <rms@gnu.org>
6035
6036 * NEWS: *** empty log message ***
6037
6038 1995-10-16 Richard Stallman <rms@gnu.org>
6039
6040 * doc/bison.1, doc/bison.rnh:
6041 Add new options.
6042
6043 1995-10-15 Richard Stallman <rms@gnu.org>
6044
6045 * src/vmsgetargs.c, src/getargs.c:
6046 Added -n, -k, and -raw switches.
6047 (noparserflag, toknumflag, rawtoknumflag): New variables.
6048
6049 * src/symtab.h (SALIAS):
6050 New #define for adding aliases to %token.
6051 (struct bucket): Added `alias' field.
6052
6053 * src/reduce.c (reduce_grammar):
6054 Revise error message.
6055 (print_notices): Remove final `.' from error message.
6056
6057 * src/reader.c (reader_output_yylsp):
6058 New function.
6059 (readgram): Use `#if 0' around code that accepted %command
6060 inside grammar rules: The documentation doesn't allow it,
6061 and it will fail since the %command processors scan for the next %.
6062 (parse_token_decl): Extended the %token
6063 declaration to allow a multi-character symbol as an alias.
6064 (parse_thong_decl): New function.
6065 (read_declarations): Added %thong declarations.
6066 (read_declarations): Handle NOOP to deal with allowing
6067 % declarations as another means to specify the flags.
6068 (readgram): Allow %prec prior to semantics embedded in a rule.
6069 (skip_to_char, read_declarations, copy_definition)
6070 (parse_token_decl, parse_start_decl, parse_type_decl)
6071 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
6072 (get_type_name, copy_guard, copy_action, readgram)
6073 (get_type, packsymbols): Revised most error messages.
6074 Changed `fatal' to `warnxxx' to avoid aborting for error.
6075 Revised and use multiple warnxxx functions to avoid using VARARGS1.
6076 (read_declarations): Improve the error message for
6077 an invalid character. Do not abort.
6078 (read_declarations, copy_guard, copy_action): Use
6079 printable_version to avoid unprintable characters in printed output.
6080 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
6081 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
6082 Allow the type of a non-terminal can be given
6083 more than once, as long as all specifications give the same type.
6084
6085 * src/output.c:
6086 (output_headers, output_trailers, output, output_gram)
6087 (output_rule_data): Implement noparserflag variable.
6088 Implement toknumflag variable.
6089 (output): Call reader_output_yylsp to output LTYPESTR.
6090
6091 * src/main.c (main):
6092 If reader sees an error, don't process the grammar.
6093 (fatals): Updated to not use VARARGS1.
6094 (printable_version, int_to_string, warn, warni, warns, warnss)
6095 (warnsss): New error reporting functions. Avoid abort for error.
6096
6097 * src/lex.h:
6098 Added THONG and NOOP for alias processing.
6099 Added SETOPT for the new code that allows setting options with %flags.
6100
6101 * src/lex.c:
6102 Include getopt.h. Add some extern decls.
6103 (safegetc): New function to deal with EOF gracefully.
6104 (literalchar); new function to deal with reading \ escapes.
6105 (lex): Use literalchar.
6106 (lex): Implemented "..." tokens.
6107 (literalchar, lex, parse_percent_token): Made tokenbuffer
6108 always contain the token. This includes growing the token
6109 buffer while reading an integer.
6110 (parse_percent_token): Replaced if-else statement with percent_table.
6111 (parse_percent_token): Added % declarations as another
6112 way to specify the flags -n, -l, and -r. Also added hooks for
6113 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
6114 major changes to files.c.
6115 (lex) Retain in the incoming stream a character following
6116 an incorrect '/'.
6117 (skip_white_space, lex): Revised most error messages
6118 and changed fatal to warn to avoid aborting.
6119 (percent_table): Added %thong declarations.
6120
6121 * src/gram.h: Comment changes.
6122
6123 * src/files.c (openfiles, open_extra_files, done):
6124 Add faction flag
6125 and actfile file. Handle noparserflag. Both for -n switch.
6126
6127 * src/conflicts.c (resolve_sr_conflict):
6128 Remove use of alloca.
6129
6130 1995-06-01 Jim Meyering <meyering@gnu.org>
6131
6132 * doc/bison.texinfo: *** empty log message ***
6133
6134 1995-05-06 Richard Stallman <rms@gnu.org>
6135
6136 * src/bison.s1: Comment change.
6137
6138 1995-05-06 Richard Stallman <rms@gnu.org>
6139
6140 * bison.simple: Comment change.
6141
6142 1995-05-03 Richard Stallman <rms@gnu.org>
6143
6144 * src/version.c: Version now 1.24.
6145
6146 * src/bison.s1: Change distribution terms.
6147
6148 * src/version.c: Version now 1.23.
6149
6150 1995-05-03 Richard Stallman <rms@gnu.org>
6151
6152 * doc/bison.texinfo:
6153 Rewrite "Conditions for Using Bison".
6154 Update version to 1.24.
6155
6156 1995-05-03 Richard Stallman <rms@gnu.org>
6157
6158 * bison.simple: Change distribution terms.
6159
6160 1995-02-23 Richard Stallman <rms@gnu.org>
6161
6162 * src/files.c: Test __VMS_POSIX as well as VMS.
6163
6164 1995-02-14 Jim Meyering <meyering@gnu.org>
6165
6166 * src/bison.s1 (__yy_memcpy):
6167 Renamed from __yy_bcopy to avoid
6168 confusion. Reverse FROM and TO arguments to be consistent with
6169 those of memcpy.
6170
6171 1995-02-14 Jim Meyering <meyering@gnu.org>
6172
6173 * bison.simple (__yy_memcpy):
6174 Renamed from __yy_bcopy to avoid
6175 confusion. Reverse FROM and TO arguments to be consistent with
6176 those of memcpy.
6177
6178 1994-11-10 David J. MacKenzie <djm@gnu.org>
6179
6180 * NEWS: reformat
6181
6182 * NEWS: New file.
6183
6184 * Makefile.in (DISTFILES): Include NEWS.
6185
6186 * Makefile.in (DISTFILES):
6187 Include install-sh, not install.sh.
6188
6189 * configure.in: Update to Autoconf v2 macro names.
6190
6191 1994-10-05 David J. MacKenzie <djm@gnu.org>
6192
6193 * Makefile.in: fix typo
6194
6195 * Makefile.in (prefix, exec_prefix):
6196 Let configure set them.
6197
6198 1994-09-28 David J. MacKenzie <djm@gnu.org>
6199
6200 * Makefile.in: Set datadir to $(prefix)/share.
6201
6202 1994-09-15 Richard Stallman <rms@gnu.org>
6203
6204 * src/bison.s1:
6205 Update copyright notice and GPL version.
6206
6207 1994-09-15 Richard Stallman <rms@gnu.org>
6208
6209 * bison.simple:
6210 Update copyright notice and GPL version.
6211
6212 1994-07-12 Richard Stallman <rms@gnu.org>
6213
6214 * src/reduce.c, src/reader.c:
6215 entered into RCS
6216
6217 1994-05-05 David J. MacKenzie <djm@gnu.org>
6218
6219 * Makefile.in: entered into RCS
6220
6221 1994-03-26 Richard Stallman <rms@gnu.org>
6222
6223 * src/bison.s1: entered into RCS
6224
6225 1994-03-26 Richard Stallman <rms@gnu.org>
6226
6227 * bison.simple: entered into RCS
6228
6229 1994-03-25 Richard Stallman <rms@gnu.org>
6230
6231 * src/main.c: entered into RCS
6232
6233 1994-03-24 Richard Stallman <rms@gnu.org>
6234
6235 * src/conflicts.c: entered into RCS
6236
6237 1994-01-02 Richard Stallman <rms@gnu.org>
6238
6239 * Makefile.in: *** empty log message ***
6240
6241 1993-11-21 Richard Stallman <rms@gnu.org>
6242
6243 * src/bison.s1: *** empty log message ***
6244
6245 1993-11-21 Richard Stallman <rms@gnu.org>
6246
6247 * doc/bison.texinfo: entered into RCS
6248
6249 * doc/bison.texinfo: *** empty log message ***
6250
6251 1993-11-21 Richard Stallman <rms@gnu.org>
6252
6253 * bison.simple: *** empty log message ***
6254
6255 1993-10-25 David J. MacKenzie <djm@gnu.org>
6256
6257 * doc/bison.texinfo: *** empty log message ***
6258
6259 1993-10-19 Richard Stallman <rms@gnu.org>
6260
6261 * src/bison.s1: *** empty log message ***
6262
6263 1993-10-19 Richard Stallman <rms@gnu.org>
6264
6265 * bison.simple: *** empty log message ***
6266
6267 1993-10-14 Richard Stallman <rms@gnu.org>
6268
6269 * src/bison.s1: *** empty log message ***
6270
6271 1993-10-14 Richard Stallman <rms@gnu.org>
6272
6273 * bison.simple: *** empty log message ***
6274
6275 1993-09-14 David J. MacKenzie <djm@gnu.org>
6276
6277 * doc/bison.texinfo: *** empty log message ***
6278
6279 1993-09-13 Noah Friedman <friedman@gnu.org>
6280
6281 * Makefile.in: *** empty log message ***
6282
6283 1993-09-10 Richard Stallman <rms@gnu.org>
6284
6285 * src/conflicts.c: *** empty log message ***
6286
6287 * src/system.h: entered into RCS
6288
6289 1993-09-10 Richard Stallman <rms@gnu.org>
6290
6291 * doc/bison.1: entered into RCS
6292
6293 1993-09-06 Noah Friedman <friedman@gnu.org>
6294
6295 * src/version.c: entered into RCS
6296
6297 1993-09-06 Noah Friedman <friedman@gnu.org>
6298
6299 * Makefile.in: *** empty log message ***
6300
6301 1993-07-30 David J. MacKenzie <djm@gnu.org>
6302
6303 * Makefile.in: *** empty log message ***
6304
6305 1993-07-24 Richard Stallman <rms@gnu.org>
6306
6307 * src/bison.s1: *** empty log message ***
6308
6309 1993-07-24 Richard Stallman <rms@gnu.org>
6310
6311 * bison.simple: *** empty log message ***
6312
6313 1993-07-08 David J. MacKenzie <djm@gnu.org>
6314
6315 * Makefile.in: *** empty log message ***
6316
6317 1993-07-04 Richard Stallman <rms@gnu.org>
6318
6319 * src/bison.s1: *** empty log message ***
6320
6321 1993-07-04 Richard Stallman <rms@gnu.org>
6322
6323 * bison.simple: *** empty log message ***
6324
6325 1993-06-26 David J. MacKenzie <djm@gnu.org>
6326
6327 * src/getargs.c: entered into RCS
6328
6329 1993-06-26 David J. MacKenzie <djm@gnu.org>
6330
6331 * doc/bison.texinfo: *** empty log message ***
6332
6333 * doc/bison.1: New file.
6334
6335 1993-06-25 Richard Stallman <rms@gnu.org>
6336
6337 * src/getargs.c: New file.
6338
6339 1993-06-16 Richard Stallman <rms@gnu.org>
6340
6341 * src/bison.s1: *** empty log message ***
6342
6343 1993-06-16 Richard Stallman <rms@gnu.org>
6344
6345 * bison.simple: *** empty log message ***
6346
6347 1993-06-03 Richard Stallman <rms@gnu.org>
6348
6349 * src/bison.s1: New file.
6350
6351 1993-06-03 Richard Stallman <rms@gnu.org>
6352
6353 * doc/bison.texinfo: *** empty log message ***
6354
6355 1993-06-03 Richard Stallman <rms@gnu.org>
6356
6357 * bison.simple: New file.
6358
6359 1993-05-19 Richard Stallman <rms@gnu.org>
6360
6361 * doc/bison.texinfo: New file.
6362
6363 1993-05-07 Noah Friedman <friedman@gnu.org>
6364
6365 * Makefile.in: *** empty log message ***
6366
6367 1993-04-28 Noah Friedman <friedman@gnu.org>
6368
6369 * src/reader.c: *** empty log message ***
6370
6371 1993-04-23 Noah Friedman <friedman@gnu.org>
6372
6373 * src/alloc.h: entered into RCS
6374
6375 1993-04-20 David J. MacKenzie <djm@gnu.org>
6376
6377 * src/version.c: *** empty log message ***
6378
6379 * src/files.c, src/allocate.c:
6380 entered into RCS
6381
6382 * src/reader.c: *** empty log message ***
6383
6384 * src/lex.c: entered into RCS
6385
6386 * src/conflicts.c: New file.
6387
6388 * src/symtab.c: entered into RCS
6389
6390 * src/alloc.h: New file.
6391
6392 * src/LR0.c: entered into RCS
6393
6394 1993-04-18 Noah Friedman <friedman@gnu.org>
6395
6396 * src/reader.c: New file.
6397
6398 * src/version.c: *** empty log message ***
6399
6400 1993-04-18 Noah Friedman <friedman@gnu.org>
6401
6402 * Makefile.in: *** empty log message ***
6403
6404 1993-04-17 Noah Friedman <friedman@gnu.org>
6405
6406 * Makefile.in: *** empty log message ***
6407
6408 1993-04-15 Richard Stallman <rms@gnu.org>
6409
6410 * src/main.c, src/files.c:
6411 New file.
6412
6413 1993-04-15 Noah Friedman <friedman@gnu.org>
6414
6415 * configure.in: entered into RCS
6416
6417 * configure.in: *** empty log message ***
6418
6419 * configure.in: New file.
6420
6421 1993-04-14 Richard Stallman <rms@gnu.org>
6422
6423 * Makefile.in: New file.
6424
6425 1993-04-13 Richard Stallman <rms@gnu.org>
6426
6427 * src/version.c: New file.
6428
6429 1993-03-25 Richard Stallman <rms@gnu.org>
6430
6431 * src/output.c: entered into RCS
6432
6433 1992-09-25 Richard Stallman <rms@gnu.org>
6434
6435 * configure.bat: entered into RCS
6436
6437 1992-06-22 Richard Stallman <rms@gnu.org>
6438
6439 * src/vmsgetargs.c: entered into RCS
6440
6441 1992-06-22 Richard Stallman <rms@gnu.org>
6442
6443 * doc/bison.rnh: entered into RCS
6444
6445 1992-04-20 David J. MacKenzie <djm@gnu.org>
6446
6447 * README: entered into RCS
6448
6449 1992-01-22 Richard Stallman <rms@gnu.org>
6450
6451 * src/machine.h: entered into RCS
6452
6453 1991-12-21 Richard Stallman <rms@gnu.org>
6454
6455 * src/lalr.c, src/closure.c:
6456 entered into RCS
6457
6458 1991-12-20 Richard Stallman <rms@gnu.org>
6459
6460 * src/state.h: entered into RCS
6461
6462 1991-12-18 Richard Stallman <rms@gnu.org>
6463
6464 * src/print.c, src/nullable.c, src/derives.c:
6465 entered into RCS
6466
6467 1991-11-03 David J. MacKenzie <djm@gnu.org>
6468
6469 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
6470 entered into RCS
6471
6472 1988-09-09 Richard Stallman <rms@gnu.org>
6473
6474 * src/bison.hairy: entered into RCS
6475
6476 1987-12-16 Richard Stallman <rms@gnu.org>
6477
6478 * REFERENCES: entered into RCS
6479 -----
6480
6481 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
6482
6483 This file is part of GNU Autoconf.
6484
6485 GNU Autoconf is free software; you can redistribute it and/or modify
6486 it under the terms of the GNU General Public License as published by
6487 the Free Software Foundation; either version 2, or (at your option)
6488 any later version.
6489
6490 GNU Autoconf is distributed in the hope that it will be useful,
6491 but WITHOUT ANY WARRANTY; without even the implied warranty of
6492 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6493 GNU General Public License for more details.
6494
6495 You should have received a copy of the GNU General Public License
6496 along with autoconf; see the file COPYING. If not, write to
6497 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
6498 Boston, MA 02111-1307, USA.