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