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