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