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