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