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