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