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