]> git.saurik.com Git - bison.git/blame_incremental - ChangeLog
* configure.in (GETTEXT_VERSION): New.
[bison.git] / ChangeLog
... / ...
CommitLineData
12002-05-03 Akim Demaille <akim@epita.fr>
2
3 * configure.in (GETTEXT_VERSION): New.
4 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
5
62002-05-03 Akim Demaille <akim@epita.fr>
7
8 * data/bison.simple (b4_token_enum): New.
9 (b4_token_defines): Use it to output tokens both as #define and
10 enums.
11 Suggested by Paul Eggert.
12 * src/output.c (token_definitions_output): Don't output spurious
13 white spaces.
14
152002-05-03 Akim Demaille <akim@epita.fr>
16
17 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
18
192002-05-02 Robert Anisko <robert@lrde.epita.fr>
20
21 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
22 Update the stack class, give a try to deque as the default container.
23
242002-05-02 Akim Demaille <akim@epita.fr>
25
26 * data/bison.simple (yyparse): Do not implement @$ = @1.
27 (YYLLOC_DEFAULT): Adjust to do it.
28 * doc/bison.texinfo (Location Default Action): Fix.
29
302002-05-02 Akim Demaille <akim@epita.fr>
31
32 * src/reader.c (parse_braces): Merge into...
33 (parse_action): this.
34
352002-05-02 Akim Demaille <akim@epita.fr>
36
37 * configure.in (ALL_LINGUAS): Remove.
38 * po/LINGUAS, hr.po: New.
39
402002-05-02 Akim Demaille <akim@epita.fr>
41
42 Remove the so called hairy (semantic) parsers.
43
44 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
45 * src/gram.h, src/gram.c (semantic_parser): Remove.
46 (rule_t): Remove the guard and guard_line members.
47 * src/lex.h (token_t): remove tok_guard.
48 * src/options.c (option_table): Remove %guard and %semantic_parser
49 support.
50 * src/output.c, src/output.h (guards_output): Remove.
51 (prepare): Adjust.
52 (token_definitions_output): Don't output the `T'
53 tokens (???).
54 (output_skeleton): Don't output the guards.
55 * src/files.c, src/files.c (attrsfile): Remove.
56 * src/reader.c (symbol_list): Remove the guard and guard_line
57 members.
58 Adjust dependencies.
59 (parse_guard): Remove.
60 * data/bison.hairy: Remove.
61 * doc/bison.texinfo (Environment Variables): Remove occurrences of
62 BISON_HAIRY.
63
642002-05-02 Akim Demaille <akim@epita.fr>
65
66 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
67 (parse_guard): Rename the formal argument `stack_offset' as
68 `rule_length', which is more readable.
69 Adjust callers.
70 (copy_at, copy_dollar): Instead of outputting the hard coded
71 values of $$, $n and so forth, output invocation to b4_lhs_value,
72 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
73 Note: this patch partially drops `semantic-parser' support: it
74 always does `rule_length - n', where semantic parsers ought to
75 always use `-n'.
76 * data/bison.simple, data/bison.c++ (b4_lhs_value)
77 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
78
792002-05-02 Akim Demaille <akim@epita.fr>
80
81 * configure.in (AC_INIT): Bump to 1.49b.
82 (AM_INIT_AUTOMAKE): Short invocation.
83
842002-05-02 Akim Demaille <akim@epita.fr>
85
86 Version 1.49a.
87
882002-05-01 Akim Demaille <akim@epita.fr>
89
90 * src/skeleton.h: Remove.
91
922002-05-01 Akim Demaille <akim@epita.fr>
93
94 * src/skeleton.h: Fix the #endif.
95 Reported by Magnus Fromreide.
96
972002-04-26 Paul Eggert <eggert@twinsun.com>
98
99 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
100 Define if we define YYSTYPE and YYLTYPE, respectively.
101 (YYCOPY): Fix [] quoting problem in the non-GCC case.
102
1032002-04-25 Robert Anisko <robert@lrde.epita.fr>
104
105 * src/scan-skel.l: Postprocess quadrigraphs.
106
107 * src/reader.c (copy_character): New function, used to output
108 single characters while replacing `[' and `]' with quadrigraphs, to
109 avoid troubles with M4 quotes.
110 (copy_comment): Output characters with copy_character.
111 (read_additionnal_code): Likewise.
112 (copy_string2): Likewise.
113 (copy_definition): Likewise.
114
115 * tests/calc.at: Exercise M4 quoting.
116
1172002-04-25 Akim Demaille <akim@epita.fr>
118
119 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
120 between `!' and the command.
121 Reported by Paul Eggert.
122
1232002-04-24 Robert Anisko <robert@lrde.epita.fr>
124
125 * tests/calc.at: Exercise prologue splitting.
126
127 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
128 `b4_post_prologue' instead of `b4_prologue'.
129
130 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
131 muscles.
132 (output): Free pre_prologue_obstack and post_prologue_obstack.
133 * src/files.h, src/files.c (attrs_obstack): Remove.
134 (pre_prologue_obstack, post_prologue_obstack): New.
135 * src/reader.c (copy_definition): Add a parameter to specify the
136 obstack to fill, instead of using attrs_obstack unconditionally.
137 (read_declarations): Pass pre_prologue_obstack to copy_definition if
138 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
139
1402002-04-23 Paul Eggert <eggert@twinsun.com>
141
142 * data/bison.simple: Remove unnecessary commentary and white
143 space differences from 1_29-branch.
144 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
145
146 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
147 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
148 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
149 constructors or destructors.
150
151 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
152
1532002-04-23 Akim Demaille <akim@epita.fr>
154
155 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
156 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
157 location with columns.
158 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
159 All reported by Paul Eggert.
160
1612002-04-22 Akim Demaille <akim@epita.fr>
162
163 * src/reduce.c (dump_grammar): Move to...
164 * src/gram.h, src/gram.c (grammar_dump): here.
165 Be sure to separate long item numbers.
166 Don't read the members of a rule's prec if its nil.
167
1682002-04-22 Akim Demaille <akim@epita.fr>
169
170 * src/output.c (table_size, table_grow): New.
171 (MAXTABLE): Remove, replace uses with table_size.
172 (pack_vector): Instead of dying when the table is too big, grow it.
173
1742002-04-22 Akim Demaille <akim@epita.fr>
175
176 * data/bison.simple (yyr1): Its type is that of a token number.
177 * data/bison.c++ (r1_): Likewise.
178 * tests/regression.at (Web2c Actions): Adjust.
179
1802002-04-22 Akim Demaille <akim@epita.fr>
181
182 * src/reader.c (token_translations_init): 256 is now the default
183 value for the error token, i.e., it will be assigned another
184 number if the user assigned 256 to one of her tokens.
185 (reader): Don't force 256 to error.
186 * doc/bison.texinfo (Symbols): Adjust.
187 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
188 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
189 etc. instead of 10, 20, 30 (which was used to `jump' over error
190 (256) and undefined (2)).
191
1922002-04-22 Akim Demaille <akim@epita.fr>
193
194 Propagate more token_number_t.
195
196 * src/gram.h (token_number_as_item_number)
197 (item_number_as_token_number): New.
198 * src/output.c (GENERATE_OUTPUT_TABLE): New.
199 Use it to create output_item_number_table and
200 output_token_number_table.
201 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
202 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
203 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
204 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
205
2062002-04-22 Akim Demaille <akim@epita.fr>
207
208 * src/output.h, src/output.c (get_lines_number): Remove.
209
2102002-04-19 Akim Demaille <akim@epita.fr>
211
212 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
213 as Lex/Flex'.
214 (Debugging): More details about enabling the debugging features.
215 (Table of Symbols): Describe $$, $n, @$, and @n.
216 Suggested by Tim Josling.
217
2182002-04-19 Akim Demaille <akim@epita.fr>
219
220 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
221
2222002-04-10 Akim Demaille <akim@epita.fr>
223
224 * src/system.h: Rely on HAVE_LIMITS_H.
225 Suggested by Paul Eggert.
226
2272002-04-09 Akim Demaille <akim@epita.fr>
228
229 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
230 full stderr, and strip it according to the bison options, instead
231 of composing the error message from different bits.
232 This makes it easier to check for several error messages.
233 Adjust all the invocations.
234 Add an invocation exercising the error token.
235 Add an invocation demonstrating a stupid error message.
236 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
237 Adjust the tests.
238 Error message are for stderr, not stdout.
239
2402002-04-09 Akim Demaille <akim@epita.fr>
241
242 * src/gram.h, src/gram.c (error_token_number): Remove, use
243 errtoken->number.
244 * src/reader.c (reader): Don't specify the user token number (2)
245 for $undefined, as it uselessly prevents using it.
246 * src/gram.h (token_number_t): Move to...
247 * src/symtab.h: here.
248 (state_t.number): Is a token_number_t.
249 * src/print.c, src/reader.c: Use undeftoken->number instead of
250 hard coded 2.
251 (Even though this 2 is not the same as above: the number of the
252 undeftoken remains being 2, it is its user token number which
253 might not be 2).
254 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
255 `user_token_number_max'.
256 Output `undef_token_number'.
257 * data/bison.simple, data/bison.c++: Use them.
258 Be sure to map invalid yylex return values to
259 `undef_token_number'. This saves us from gratuitous SEGV.
260
261 * tests/conflicts.at (Solved SR Conflicts)
262 (Unresolved SR Conflicts): Adjust.
263 * tests/regression.at (Web2c Actions): Adjust.
264
2652002-04-08 Akim Demaille <akim@epita.fr>
266
267 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
268 Adding #line.
269 Remove the duplicate `typedefs'.
270 (RhsNumberType): Fix the declaration and various other typos.
271 Use __ofile__.
272 * data/bison.simple: Use __ofile__.
273 * src/scan-skel.l: Handle __ofile__.
274
2752002-04-08 Akim Demaille <akim@epita.fr>
276
277 * src/gram.h (item_number_t): New, the type of item numbers in
278 RITEM. Note that it must be able to code symbol numbers as
279 positive number, and the negation of rule numbers as negative
280 numbers.
281 Adjust all dependencies (pretty many).
282 * src/reduce.c (rule): Remove this `short *' pointer: use
283 item_number_t.
284 * src/system.h (MINSHORT, MAXSHORT): Remove.
285 Include `limits.h'.
286 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
287 (shortcpy): Remove.
288 (MAXTABLE): Move to...
289 * src/output.c (MAXTABLE): here.
290 (prepare_rules): Use output_int_table to output rhs.
291 * data/bison.simple, data/bison.c++: Adjust.
292 * tests/torture.at (Big triangle): Move the limit from 254 to
293 500.
294 * tests/regression.at (Web2c Actions): Ajust.
295
296 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
297 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
298 passes, but produces negative #line number, once fixed, GCC is
299 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
300 C), it passes.
301 * src/state.h (state_h): Code input lines on ints, not shorts.
302
3032002-04-08 Akim Demaille <akim@epita.fr>
304
305 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
306 and then the grammar.
307
3082002-04-08 Akim Demaille <akim@epita.fr>
309
310 * src/system.h: No longer using strndup.
311
3122002-04-07 Akim Demaille <akim@epita.fr>
313
314 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
315 * src/output.c (output_table_data): Return the longest number.
316 (prepare_tokens): Output `token_number_max').
317 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
318 New.
319 Use them to define yy_token_number_type/TokenNumberType.
320 Use this type for yytranslate.
321 * tests/torture.at (Big triangle): Push the limit from 124 to
322 253.
323 * tests/regression.at (Web2c Actions): Adjust.
324
3252002-04-07 Akim Demaille <akim@epita.fr>
326
327 * tests/torture.at (Big triangle): New.
328 (GNU AWK Grammar, GNU Cim Grammar): Move to...
329 * tests/existing.at: here.
330
3312002-04-07 Akim Demaille <akim@epita.fr>
332
333 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
334 nritems.
335 Adjust dependencies.
336
3372002-04-07 Akim Demaille <akim@epita.fr>
338
339 * src/reader.c: Normalize increments to prefix form.
340
3412002-04-07 Akim Demaille <akim@epita.fr>
342
343 * src/reader.c, symtab.c: Remove debugging code.
344
3452002-04-07 Akim Demaille <akim@epita.fr>
346
347 Rename all the `bucket's as `symbol_t'.
348
349 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
350 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
351 * src/symtab.c, src/symtab.h (bucket): Rename as...
352 (symbol_t): this.
353 (symbol_list_new, bucket_check_defined, bucket_make_alias)
354 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
355 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
356 (buckets_new, buckets_free, buckets_do): Rename as...
357 (symbol_list_new, symbol_check_defined, symbol_make_alias)
358 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
359 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
360 (symbols_new, symbols_free, symbols_do): these.
361
3622002-04-07 Akim Demaille <akim@epita.fr>
363
364 Use lib/hash for the symbol table.
365
366 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
367 EOF.
368 * src/lex.c (lex): Set the `number' member of new terminals.
369 * src/reader.c (bucket_check_defined, bucket_make_alias)
370 (bucket_check_alias_consistence, bucket_translation): New.
371 (reader, grammar_free, readgram, token_translations_init)
372 (packsymbols): Adjust.
373 (reader): Number the predefined tokens.
374 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
375 for predefined tokens.
376 * src/symtab.h (bucket): Remove all the hash table related
377 members.
378 * src/symtab.c (symtab): Replace by...
379 (bucket_table): this.
380 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
381 (buckets_new, buckets_do): New.
382
3832002-04-07 Akim Demaille <akim@epita.fr>
384
385 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
386 (start_symbol, max_user_token_number, semantic_parser)
387 (error_token_number): Initialize.
388 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
389 Initialize.
390 (reader): Don't.
391 (errtoken, eoftoken, undeftoken, axiom): Extern.
392
3932002-04-07 Akim Demaille <akim@epita.fr>
394
395 * src/gram.h (rule_s): prec and precsym are now pointers
396 to the bucket giving the priority/associativity.
397 Member `associativity' removed: useless.
398 * src/reduce.c, src/conflicts.c: Adjust.
399
4002002-04-07 Akim Demaille <akim@epita.fr>
401
402 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
403 Properly escape the symbols' TAG when outputting them.
404
4052002-04-07 Akim Demaille <akim@epita.fr>
406
407 * src/lalr.h (LA): Is a bitsetv, not bitset*.
408
4092002-04-07 Akim Demaille <akim@epita.fr>
410
411 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
412 (LArule): this, which is an array to rule_t*.
413 * src/print.c, src/conflicts.c: Adjust.
414
4152002-04-07 Akim Demaille <akim@epita.fr>
416
417 * src/gram.h (rule_t): Rename `number' as `user_number'.
418 `number' is a new member.
419 Adjust dependencies.
420 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
421
4222002-04-07 Akim Demaille <akim@epita.fr>
423
424 As a result of the previous patch, it is no longer needed
425 to reorder ritem itself.
426
427 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
428
4292002-04-07 Akim Demaille <akim@epita.fr>
430
431 Be sure never to walk through RITEMS, but use only data related to
432 the rules themselves. RITEMS should be banished.
433
434 * src/output.c (output_token_translations): Rename as...
435 (prepare_tokens): this.
436 In addition to `translate', prepare the muscles `tname' and
437 `toknum', which were handled by...
438 (output_rule_data): this.
439 Remove, and move the remainder of its outputs into...
440 (prepare_rules): this new routines, which also merges content from
441 (output_gram): this.
442 (prepare_rules): Be sure never to walk through RITEMS.
443 (output_stos): Rename as...
444 (prepare_stos): this.
445 (output): Always invoke prepare_states, after all, just don't use it
446 in the output if you don't need it.
447
4482002-04-07 Akim Demaille <akim@epita.fr>
449
450 * src/LR0.c (new_state): Display `nstates' as the name of the
451 newly created state.
452 Adjust to initialize first_state and last_state if needed.
453 Be sure to distinguish the initial from the final state.
454 (new_states): Create the itemset of the initial state, and use
455 new_state.
456 * src/closure.c (closure): Now that the initial state has its
457 items properly set, there is no need for a special case when
458 creating `ruleset'.
459
460 As a result, now the rule 0, reducing to $axiom, is visible in the
461 outputs. Adjust the test suite.
462
463 * tests/conflicts.at (Solved SR Conflicts)
464 (Unresolved SR Conflicts): Adjust.
465 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
466 * tests/conflicts.at (S/R in initial): New.
467
4682002-04-07 Akim Demaille <akim@epita.fr>
469
470 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
471 the RHS of the rules.
472 * src/output.c (output_gram): Likewise.
473
4742002-04-07 Akim Demaille <akim@epita.fr>
475
476 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
477 bucket.
478 Adjust all dependencies.
479 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
480 `number' of the buckets too.
481 * src/gram.h: Include `symtab.h'.
482 (associativity): Move to...
483 * src/symtab.h: here.
484 No longer include `gram.h'.
485
4862002-04-07 Akim Demaille <akim@epita.fr>
487
488 * src/gram.h, src/gram.c (rules_rhs_length): New.
489 (ritem_longest_rhs): Use it.
490 * src/gram.h (rule_t): `number' is a new member.
491 * src/reader.c (packgram): Set it.
492 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
493 the end of `rules', and count them out of `nrules'.
494 (reduce_output, dump_grammar): Adjust.
495 * src/print.c (print_grammar): It is no longer needed to check for
496 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
497 * tests/reduce.at (Reduced Automaton): New test.
498
4992002-04-07 Akim Demaille <akim@epita.fr>
500
501 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
502 lacking `+ 1' to nrules, Bison reported as useless a token if it
503 was used solely to set the precedence of the last rule...
504
5052002-04-07 Akim Demaille <akim@epita.fr>
506
507 * data/bison.c++, data/bison.simple: Don't output the current file
508 name in #line, to avoid useless diffs between two identical
509 outputs under different names.
510
5112002-04-07 Akim Demaille <akim@epita.fr>
512
513 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
514 Normalize loops to using `< nrules + 1', not `<= nrules'.
515
5162002-04-07 Akim Demaille <akim@epita.fr>
517
518 * TODO: Update.
519
5202002-04-07 Akim Demaille <akim@epita.fr>
521
522 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
523 bucket.value as bucket.number.
524
5252002-04-07 Akim Demaille <akim@epita.fr>
526
527 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
528 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
529 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
530 RHS, instead of being an index in RITEMS.
531
5322002-04-04 Paul Eggert <eggert@twinsun.com>
533
534 * doc/bison.texinfo: Update copyright date.
535 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
536 (Symbols): Warn about running Bison in one character set,
537 but compiling and/or running in an incompatible one.
538 Warn about character code 256, too.
539
5402002-04-03 Paul Eggert <eggert@twinsun.com>
541
542 * src/bison.data (YYSTACK_ALLOC): Depend on whether
543 YYERROR_VERBOSE is nonzero, not whether it is defined.
544
545 Merge changes from bison-1_29-branch.
546
5472002-03-20 Paul Eggert <eggert@twinsun.com>
548
549 Merge fixes from Debian bison_1.34-1.diff.
550
551 * configure.in (AC_PREREQ): 2.53.
552
5532002-03-20 Akim Demaille <akim@epita.fr>
554
555 * src/conflicts.c (log_resolution): Argument `resolution' is const.
556
5572002-03-19 Paul Eggert <eggert@twinsun.com>
558
559 * src/bison.simple (YYCOPY): New macro.
560 (YYSTACK_RELOCATE): Use it.
561 Remove Type arg; no longer needed. All callers changed.
562 (yymemcpy): Remove; no longer needed.
563
564 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
565 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
566
5672002-03-19 Akim Demaille <akim@epita.fr>
568
569 Test and fix the #line outputs.
570
571 * tests/atlocal.at (GCC): New.
572 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
573 (Prologue synch line, ,%union synch line, Postprologue synch line)
574 (Action synch line, Epilogue synch line): New tests.
575 * src/reader.c (parse_union_decl): Define the muscle stype_line.
576 * data/bison.simple, data/bison.c++: Use it.
577
5782002-03-19 Akim Demaille <akim@epita.fr>
579
580 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
581 (Solved SR Conflicts, %expect not enough, %expect right)
582 (%expect too much): Move to...
583 * tests/conflicts.at: this new file.
584
5852002-03-19 Akim Demaille <akim@epita.fr>
586
587 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
588 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
589 that we can move to enums for instance.
590 * src/output.c (token_definitions_output): Output a list of
591 `token-name, token-number' instead of the #define.
592 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
593
5942002-03-14 Akim Demaille <akim@epita.fr>
595
596 Use Gettext 0.11.1.
597
5982002-03-09 Robert Anisko <robert@lrde.epita.fr>
599
600 * data/bison.c++: Make the user able to add members to the generated
601 parser by subclassing.
602
6032002-03-05 Robert Anisko <robert@lrde.epita.fr>
604
605 * src/reader.c (read_additionnal_code): `c' should be an integer, not
606 a character.
607 Reported by Nicolas Tisserand and Nicolas Burrus.
608
6092002-03-04 Robert Anisko <robert@lrde.epita.fr>
610
611 * src/reader.c: Warn about lacking semi-colons, do not complain.
612
6132002-03-04 Robert Anisko <robert@lrde.epita.fr>
614
615 * data/bison.c++: Remove a debug line.
616
6172002-03-04 Robert Anisko <robert@lrde.epita.fr>
618
619 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
620 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
621 provide a default implementation.
622
6232002-03-04 Akim Demaille <akim@epita.fr>
624
625 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
626 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
627 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
628 * tests/semantic.at (Parsing Guards): Similarly.
629 * src/reader.at (readgram): Complain if the last rule is not ended
630 with a semi-colon.
631
6322002-03-04 Akim Demaille <akim@epita.fr>
633
634 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
635 * src/closure.c: here.
636 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
637 RTC.
638 * src/warshall.h, src/warshall.c: Remove.
639 * tests/sets.at (Broken Closure): Adjust.
640
6412002-03-04 Akim Demaille <akim@epita.fr>
642
643 * src/output.c (output_skeleton): tempdir is const.
644 bytes_read is unused.
645
6462002-03-04 Akim Demaille <akim@epita.fr>
647
648 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
649 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
650 Update.
651 From Michael Hayes.
652
6532002-03-04 Akim Demaille <akim@epita.fr>
654
655 * src/closure.c (closure): `r' is unused.
656
6572002-03-04 Akim Demaille <akim@epita.fr>
658
659 * tests/sets.at (Broken Closure): Add the ending `;'.
660 * src/reader.at (readgram): Complain if a rule is not ended with a
661 semi-colon.
662
6632002-03-04 Akim Demaille <akim@epita.fr>
664
665 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
666 (count_sr_conflicts): Use bitset_count.
667 * src/reduce.c (inaccessable_symbols): Ditto.
668 (bits_size): Remove.
669 * src/warshall.h, src/warshall.c: Convert to bitsetv.
670
6712002-03-04 Akim Demaille <akim@epita.fr>
672
673 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
674 * src/reduce.c: Remove the `bitset_zero's following the
675 `bitset_create's, as now it is performed by the latter.
676
6772002-03-04 Akim Demaille <akim@epita.fr>
678
679 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
680 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
681 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
682 latest sources from Michael.
683
6842002-03-04 Akim Demaille <akim@epita.fr>
685
686 * src/output.c (output): Don't free the grammar.
687 * src/reader.c (grammar_free): New.
688 * src/main.c (main): Call it and don't free symtab here.
689
6902002-03-04 Akim Demaille <akim@epita.fr>
691
692 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
693 before returning.
694 Reported by Benoit Perrot.
695
6962002-03-04 Akim Demaille <akim@epita.fr>
697
698 Use bitset operations when possible, not loops over bits.
699
700 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
701 bitset_or.
702 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
703 * src/reduce.c (useless_nonterminals): Formatting changes.
704 * src/warshall.c (TC): Use bitset_or.
705
7062002-03-04 Akim Demaille <akim@epita.fr>
707
708 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
709 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
710 Ditto.
711
7122002-03-04 Akim Demaille <akim@epita.fr>
713
714 * src/lalr.c (F): Now a bitset*.
715 Adjust all dependencies.
716
7172002-03-04 Akim Demaille <akim@epita.fr>
718
719 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
720 Adjust all dependencies.
721
7222002-03-04 Akim Demaille <akim@epita.fr>
723
724 * src/L0.c, src/LR0.h (nstates): Be size_t.
725 Adjust comparisons (signed vs unsigned).
726 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
727 bitset*.
728 Adjust all dependencies.
729
7302002-03-04 Akim Demaille <akim@epita.fr>
731
732 * src/closure.c (firsts): Now, also a bitset.
733 Adjust all dependencies.
734 (varsetsize): Remove, now unused.
735 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
736
7372002-03-04 Akim Demaille <akim@epita.fr>
738
739 * src/print.c: Convert to use bitset.h, not hand coded iterations
740 over ints.
741
7422002-03-04 Akim Demaille <akim@epita.fr>
743
744 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
745
7462002-03-04 Akim Demaille <akim@epita.fr>
747
748 * src/closure.c (ruleset): Be a bitset.
749 (rulesetsize): Remove.
750
7512002-03-04 Akim Demaille <akim@epita.fr>
752
753 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
754 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
755 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
756 * src/closure.c (fderives): Be an array of bitsets.
757
7582002-02-28 Robert Anisko <robert@lrde.epita.fr>
759
760 * data/bison.c++: Merge the two generated headers. Insert a copyright
761 notice in each output file.
762
7632002-02-28 Akim Demaille <akim@epita.fr>
764
765 * data/bison.c++: Copy the prologue of bison.simple to fetch
766 useful M4 definitions, such as b4_header_guard.
767
7682002-02-25 Akim Demaille <akim@epita.fr>
769
770 * src/getargs.c (version): Give the name of the authors, and use a
771 translator friendly scheme for the bgr
772 copyright notice.
773
7742002-02-25 Akim Demaille <akim@epita.fr>
775
776 * src/output.c (header_output): Remove, now handled completely via
777 M4.
778
7792002-02-25 Akim Demaille <akim@epita.fr>
780
781 * m4/m4.m4: New, from CVS Autoconf.
782 * configure.in: Invoke it.
783 * src/output.c (output_skeleton): Use its result instead of the
784 hard coded name.
785
7862002-02-25 Akim Demaille <akim@epita.fr>
787
788 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
789 Fileutils 4.1.5.
790 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
791 * src/output.c (output_skeleton): Use mkstemp to create a real
792 temporary file.
793 Move the filling of `skeleton' and its muscle to...
794 (prepare): here.
795 (output): Move the definition of the prologue muscle to...
796 (prepare): here.
797 * src/system.h (DEFAULT_TMPDIR): New.
798
7992002-02-14 Paul Eggert <eggert@twinsun.com>
800
801 Remove the support for C++ namespace cleanliness; it was
802 causing more problems than it was curing, since it didn't work
803 properly on some nonstandard C++ compilers. This can wait
804 for a proper C++ parser.
805
806 * NEWS: Document this.
807 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
808 of C++, as it's treated like C now.
809 * src/bison.simple (YYSTD): Remove.
810 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
811 Treat C++ just like Standard C instead of trying to support
812 namespace cleanliness.
813
8142002-02-14 Akim Demaille <akim@epita.fr>
815
816 * tests/regression.at (else): Adjust to Andreas' change.
817
8182002-02-14 Akim Demaille <akim@epita.fr>
819
820 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
821
8222002-02-13 Andreas Schwab <schwab@suse.de>
823
824 * src/output.c (output_rule_data): Don't output NULL, it might
825 not be defined yet.
826
8272002-02-11 Robert Anisko <robert@lrde.epita.fr>
828
829 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
830 (Copyright notice): Update.
831
8322002-02-11 Akim Demaille <akim@epita.fr>
833
834 * tests/regression.at (%nonassoc and eof): Don't include
835 nonportable headers.
836
8372002-02-08 Robert Anisko <robert@lrde.epita.fr>
838
839 * data/bison.c++: Correct error recovery. Make the user able to
840 initialize the starting location.
841
8422002-02-07 Akim Demaille <akim@epita.fr>
843
844 * tests/input.at: New.
845
8462002-02-07 Robert Anisko <robert@lrde.epita.fr>
847
848 * data/bison.c++: Replace some direct m4 expansions by constants. Be
849 more consistent when naming methods and variables. Put preprocessor
850 directives around tables only needed for debugging.
851
8522002-02-07 Robert Anisko <robert@lrde.epita.fr>
853
854 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
855 C++ parsers.
856 (yy::b4_name::parse): Use print_.
857
8582002-02-07 Robert Anisko <robert@lrde.epita.fr>
859
860 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
861
8622002-02-07 Robert Anisko <robert@lrde.epita.fr>
863
864 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
865 C++ parsers.
866 (yy::b4_name::parse): Build verbose error messages, and use error_.
867
8682002-02-06 Robert Anisko <robert@lrde.epita.fr>
869
870 * data/bison.c++: Fix m4 quoting in comments.
871
8722002-02-06 Robert Anisko <robert@lrde.epita.fr>
873
874 * data/bison.c++: Adjust the parser code. Fix some muscles that were
875 not expanded by m4.
876
8772002-02-05 Akim Demaille <akim@epita.fr>
878
879 * data/bison.c++: Adjust to the M4 back end.
880 More is certainly needed.
881
8822002-02-05 Akim Demaille <akim@epita.fr>
883
884 Give a try to M4 as a back end.
885
886 * lib/readpipe.c: New, from wdiff.
887 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
888 BISON_HAIRY.
889 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
890 specific values. Now it is m4 that performs the lookup.
891 * src/parse-skel.y: Remove.
892 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
893 * src/output.c (actions_output, guards_output)
894 (token_definitions_output): No longer keeps track of the output
895 line number, hence remove the second argument.
896 (guards_output): Check against the guard member of a rule, not the
897 action member.
898 Adjust callers.
899 (output_skeleton): Don't look for the skeleton location, let m4 do
900 that.
901 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
902 file will be used.
903 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
904 (prepare): Given that for the time being changesyntax is not
905 usable in M4, rename the muscles using `-' to `_'.
906 Define `defines_flag', `output_parser_name' and `output_header_name'.
907 * src/output.h (actions_output, guards_output)
908 (token_definitions_output): Adjust prototypes.
909 * src/scan-skel.l: Instead of scanning the skeletons, it now
910 processes the output of m4: `__oline__' and `#output'.
911 * data/bison.simple: Adjust to be used by M4(sugar).
912 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
913 to date.
914 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
915 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
916 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
917 shamelessly stolen from CVS Autoconf.
918
9192002-02-05 Akim Demaille <akim@epita.fr>
920
921 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
922 * configure.in: Check for the declarations of free and malloc.
923 * src/muscle_tab.c: Adjust.
924
9252002-02-05 Akim Demaille <akim@epita.fr>
926
927 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
928 which have no values.
929
9302002-02-05 Akim Demaille <akim@epita.fr>
931
932 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
933 * data/: here.
934
9352002-01-29 Paul Eggert <eggert@twinsun.com>
936
937 * src/bison.simple (YYSIZE_T): Do not define merely because
938 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
939 On some platforms, <alloca.h> does not declare YYSTD (size_t).
940
9412002-01-27 Akim Demaille <akim@epita.fr>
942
943 Fix `%nonassoc and eof'.
944
945 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
946 which were not properly copied! Replace
947 memcpy (res->errs, src->errs, src->nerrs);
948 with
949 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
950 !!!
951 * tests/regression.at (%nonassoc and eof): Adjust to newest
952 Autotest: `.' is not in the PATH.
953
9542002-01-27 Akim Demaille <akim@epita.fr>
955
956 * tests/sets.at (AT_EXTRACT_SETS): New.
957 (Nullable): Use it.
958 (Firsts): New.
959
9602002-01-26 Akim Demaille <akim@epita.fr>
961
962 * tests/actions.at, tests/calc.at, tests/headers.at,
963 * tests/torture.at: Adjust to the newest Autotest which no longer
964 forces `.' in the PATH.
965
9662002-01-25 Akim Demaille <akim@epita.fr>
967
968 * tests/regression.at (%nonassoc and eof): New.
969 Suggested by Robert Anisko.
970
9712002-01-24 Akim Demaille <akim@epita.fr>
972
973 Bison dumps core when trying to complain about broken input files.
974 Reported by Cris van Pelt.
975
976 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
977 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
978 into...
979 (Invalid inputs): Strengthen: exercise parse_percent_token.
980
9812002-01-24 Robert Anisko <robert.anisko@epita.fr>
982
983 * src/Makefile.am: Add bison.c++.
984 * src/bison.c++: New skeleton.
985
9862002-01-21 Paolo Bonzini <bonzini@gnu.org>
987
988 * po/it.po: New.
989
9902002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
991
992 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
993
9942002-01-20 Marc Autret <marc@gnu.org>
995
996 * src/files.c (compute_output_file_names): Fix
997
9982002-01-20 Marc Autret <marc@gnu.org>
999
1000 * tests/output.at: New test.
1001 * src/files.c (compute_base_names): Don't map extensions when
1002 the YACC flag is set, use defaults.
1003 Reported by Evgeny Stambulchik.
1004
10052002-01-20 Marc Autret <marc@gnu.org>
1006
1007 * src/system.h: Need to define __attribute__ away for non-GCC
1008 compilers as well (i.e. the vendor C compiler).
1009 Suggested by Albert Chin-A-Young.
1010
10112002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
1012
1013 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
1014 canonical definition.
1015 * src/system.h: Use the canonical definition for PARAMS (avoids
1016 a conflict with the macro from lib/hash.h).
1017
10182002-01-11 Akim Demaille <akim@epita.fr>
1019
1020 * configure.in: Use AC_FUNC_STRNLEN.
1021 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
1022
10232002-01-09 Akim Demaille <akim@epita.fr>
1024
1025 * src/files.c, src/files.h (output_infix): New.
1026 (tab_extension): Remove.
1027 (compute_base_names): Compute the former, drop the latter.
1028 * src/output.c (prepare): Insert the muscles `output-infix', and
1029 `output-suffix'.
1030 * src/parse-skel.y (string, string.1): New.
1031 (section.header): Use it.
1032 (section.yacc): Remove.
1033 (prefix): Remove too.
1034 * src/scan-skel.l: Adjust.
1035 * src/bison.simple, src/bison.hairy: Adjust.
1036
10372002-01-09 Akim Demaille <akim@epita.fr>
1038
1039 * configure.in (WERROR_CFLAGS): Compute it.
1040 * src/Makefile.am (CFLAGS): Pass it.
1041 * tests/atlocal.in (CFLAGS): Idem.
1042 * src/files.c: Fix a few warnings.
1043 (get_extension_index): Remove, unused.
1044
10452002-01-08 Akim Demaille <akim@epita.fr>
1046
1047 * src/getargs.c (AS_FILE_NAME): New.
1048 (getargs): Use it to convert DOSish file names.
1049 * src/files.c (base_name): Rename as full_base_name to avoid
1050 clashes with `base_name ()'.
1051 (filename_split): New.
1052 (compute_base_names): N-th rewrite, using filename_split.
1053
10542002-01-08 Akim Demaille <akim@epita.fr>
1055
1056 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
1057 New, stolen from the Fileutils 4.1.
1058 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
1059 * configure.in: Check for the presence of memrchr, and of its
1060 prototype.
1061
10622002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
1063
1064 * lib/hash.h (__P): Added definition for this macro.
1065 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
1066 BUILT_SOURCES, to ensure they are generated first.
1067 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
1068 %error-verbose to allow bootstrapping with bison 1.30x.
1069
10702002-01-06 Akim Demaille <akim@epita.fr>
1071
1072 * src/reader.c (parse_braces): Don't fetch the next char, the
1073 convention is to fetch on entry.
1074 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
1075 'switch' without a following semicolon.
1076 * tests/regression.at (braces parsing): New.
1077
10782002-01-06 Akim Demaille <akim@epita.fr>
1079
1080 Bison is dead wrong in its RR conflict reports.
1081
1082 * tests/torture.at (GNU Cim Grammar): New.
1083 * src/conflicts.c (count_rr_conflicts): Fix.
1084
10852002-01-06 Akim Demaille <akim@epita.fr>
1086
1087 Creating package.m4 from configure.ac causes too many problems.
1088
1089 * tests/Makefile.am (package.m4): Create it by hand,
1090 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
1091
10922002-01-06 Akim Demaille <akim@epita.fr>
1093
1094 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
1095 skeleton.h.
1096
10972002-01-04 Paul Eggert <eggert@twinsun.com>
1098
1099 * doc/bison.texinfo (Debugging):
1100 Remove YYSTDERR; it's no longer defined or used.
1101 Also, s/cstdio.h/cstdio/.
1102
11032002-01-03 Akim Demaille <akim@epita.fr>
1104
1105 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
1106
11072002-01-03 Akim Demaille <akim@epita.fr>
1108
1109 * src/parse-skel.y (process_skeleton): Don't bind the parser's
1110 tracing code to --trace, wait for a better --trace option, with
1111 args.
1112
11132002-01-03 Akim Demaille <akim@epita.fr>
1114
1115 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
1116 The ISO C++ standard is extremely clear about it: stderr is
1117 considered a macro, not a regular symbol (see table 94 `Header
1118 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
1119 Therefore std:: does not apply to it. It still does with fprintf.
1120 Also, s/cstdio.h/cstdio/.
1121
11222002-01-03 Akim Demaille <akim@epita.fr>
1123
1124 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
1125 for non system headers.
1126
11272002-01-02 Akim Demaille <akim@epita.fr>
1128
1129 Equip the skeleton chain with location tracking, runtime trace,
1130 pure parser and scanner.
1131
1132 * src/parse-skel.y: Request a pure parser, locations, and prefix
1133 renaming.
1134 (%union): Having several members with the same type does not help
1135 type mismatches, simplify.
1136 (YYPRINT, yyprint): New.
1137 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
1138 (skel_error): this.
1139 Handle locations.
1140 * src/scan-skel.l: Adjust to these changes.
1141 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
1142 (LOCATION_PRINT, skel_control_t): New.
1143
11442001-12-30 Akim Demaille <akim@epita.fr>
1145
1146 * src/parse-skel.y: Get rid of the shift/reduce conflict:
1147 replace `gb' with BLANKS.
1148 * src/scan-skel.l: Adjust.
1149
11502001-12-30 Akim Demaille <akim@epita.fr>
1151
1152 * src/system.h: We don't need nor want bcopy.
1153 Throw away MS-DOS crap: we don't need getpid.
1154 * configure.in: We don't need strndup. It was even causing
1155 problems: because Flex includes the headers *before* us,
1156 _GNU_SOURCE is not defined by config.h, and therefore strndup was
1157 not visible.
1158 * lib/xstrndup.c: New.
1159 * src/scan-skel.l: Use it.
1160 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
1161 * src/parse-skel.y: Use %directives instead of #defines.
1162
11632001-12-30 Akim Demaille <akim@epita.fr>
1164
1165 * src/skeleton.h: New.
1166 * src/output.c (output_parser, output_master_parser): Remove, dead
1167 code.
1168 * src/output.h (get_lines_number, actions_output, guards_output)
1169 (token_definitions_output): Prototype them.
1170 * src/parse-skel.y: Add the license notice.
1171 Include output.h and skeleton.h.
1172 (process_skeleton): Returns void, and takes a single parameter.
1173 * src/scan-skel.l: Add the license notice.
1174 Include skeleton.h.
1175 Don't use %option yylineno: it seems that then Flex imagines
1176 REJECT has been used, and therefore it won't reallocate its
1177 buffers (which makes no other sense to me than a bug). It results
1178 in warnings for `unused: yy_flex_realloc'.
1179
11802001-12-30 Robert Anisko <robert.anisko@epita.fr>
1181
1182 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
1183 (MUSCLE_INSERT_PREFIX): ...to there.
1184 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
1185 (MUSCLE_INSERT_PREFIX): Move from here...
1186
1187 * src/bison.hairy: Add a section directive. Put braces around muscle
1188 names. This parser skeleton is still broken, but Bison should not
1189 choke on a bad muscle 'syntax'.
1190 * src/bison.simple: Add a section directive. Put braces around muscle
1191 names.
1192
1193 * src/files.h (strsuffix, stringappend): Add declarations.
1194 (tab_extension): Add declaration.
1195 (short_base_name): Add declaration.
1196
1197 * src/files.c (strsuffix, stringappend): No longer static. These
1198 functions are used in the skeleton parser.
1199 (tab_extension): New.
1200 (compute_base_names): Use the computations done in this function
1201 to guess if the generated parsers should have '.tab' in their
1202 names.
1203 (short_base_name): No longer static.
1204
1205 * src/output.c (output_skeleton): New.
1206 (output): Disable call to output_master_parser, and give a try to
1207 a new skeleton handling system.
1208 (guards_output, actions_output): No longer static.
1209 (token_definitions_output, get_lines_number): No longer static.
1210
1211 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
1212
1213 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
1214 parse-skel.y.
1215
1216 * src/parse-skel.y: New file.
1217 * src/scan-skel.l: New file.
1218
12192001-12-29 Akim Demaille <akim@epita.fr>
1220
1221 %name-prefix is broken.
1222
1223 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
1224 Adjust all dependencies.
1225 * tests/headers.at (export YYLTYPE): Strengthen this test: use
1226 %name-prefix.
1227
1228 Renaming yylval but not yylloc is not consistent. Now we do.
1229
1230 * src/bison.simple: Prefix yylloc if used.
1231 * doc/bison.texinfo (Decl Summary): Document that.
1232
12332001-12-29 Akim Demaille <akim@epita.fr>
1234
1235 * doc/bison.texinfo: Promote `%long-directive' over
1236 `%long_directive'.
1237 Remove all references to fixed-output-files, yacc is enough.
1238
12392001-12-29 Akim Demaille <akim@epita.fr>
1240
1241 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
1242 user prologue. These are defaults.
1243 * tests/actions.at (Mid-rule actions): Make sure the user can
1244 define YYDEBUG and YYERROR_VERBOSE.
1245
12462001-12-29 Akim Demaille <akim@epita.fr>
1247
1248 * src/output.c (header_output): Don't forget to export YYLTYPE and
1249 yylloc.
1250 * tests/headers.at (export YYLTYPE): New, make sure it does.
1251 * tests/regression.at (%union and --defines, Invalid CPP headers):
1252 Move to...
1253 * tests/headers.at: here.
1254
12552001-12-29 Akim Demaille <akim@epita.fr>
1256
1257 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
1258
12592001-12-29 Akim Demaille <akim@epita.fr>
1260
1261 * tests/actions.at (Mid-rule actions): Output on a single line
1262 instead of several.
1263
12642001-12-29 Akim Demaille <akim@epita.fr>
1265
1266 * doc/bison.texinfo: Formatting changes.
1267
12682001-12-29 Akim Demaille <akim@epita.fr>
1269
1270 Don't store the token defs in a muscle, just be ready to output it
1271 on command. Now possible via `symbols'. Fixes a memory leak.
1272
1273 * src/output.c (token_definitions_output): New.
1274 (output_parser, header_output): Use it.
1275 * src/reader.c (symbols_save): Remove.
1276
12772001-12-29 Akim Demaille <akim@epita.fr>
1278
1279 * src/bison.simple: Do not provide a default for YYSTYPE and
1280 YYLTYPE before the user's prologue. Otherwise it's hardly... a
1281 default.
1282
12832001-12-29 Akim Demaille <akim@epita.fr>
1284
1285 Mid-rule actions are simply... ignored!
1286
1287 * src/reader.c (readgram): Be sure to attach mid-rule actions to
1288 the empty-rule associated to the dummy symbol, not to the host
1289 rule.
1290 * tests/actions.at (Mid-rule actions): New.
1291
12922001-12-29 Akim Demaille <akim@epita.fr>
1293
1294 Memory leak.
1295
1296 * src/reader.c (reader): Free grammar.
1297
12982001-12-29 Akim Demaille <akim@epita.fr>
1299
1300 Memory leak.
1301
1302 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
1303 since it allocates it for each state, although only one is needed.
1304 (allocate_storage): Do it here.
1305
13062001-12-29 Akim Demaille <akim@epita.fr>
1307
1308 * src/options.h, src/options.c (create_long_option_table): Rename
1309 as...
1310 (long_option_table_new): this, with a clearer prototype.
1311 (percent_table): Remove, unused,
1312 * src/getargs.c (getargs): Adjust.
1313
13142001-12-29 Akim Demaille <akim@epita.fr>
1315
1316 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
1317 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
1318 as states.
1319
13202001-12-29 Akim Demaille <akim@epita.fr>
1321
1322 * src/lalr.c (build_relations): Rename `states' as `states1'.
1323 Sorry, I don't understand exactly what it is, no better name...
1324
13252001-12-29 Akim Demaille <akim@epita.fr>
1326
1327 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
1328 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
1329 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
1330 as rules.
1331
13322001-12-29 Akim Demaille <akim@epita.fr>
1333
1334 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
1335 ago.
1336
13372001-12-29 Akim Demaille <akim@epita.fr>
1338
1339 * src/reader.c, src/reader.h (user_toknums): Remove.
1340 Adjust all users to use symbols[i]->user_token_number.
1341
13422001-12-29 Akim Demaille <akim@epita.fr>
1343
1344 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
1345 Adjust all users to use symbols[i]->prec or ->assoc.
1346
13472001-12-29 Akim Demaille <akim@epita.fr>
1348
1349 * src/reader.c, src/reader.h (tags): Remove.
1350 Adjust all users to use symbols[i]->tag.
1351
13522001-12-29 Akim Demaille <akim@epita.fr>
1353
1354 * src/gram.h, src/gram.c (symbols): New, similar to state_table
1355 and rule_table.
1356 * src/reader.c (packsymbols): Fill this table.
1357 Drop sprec.
1358 * src/conflicts.c (resolve_sr_conflict): Adjust.
1359 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
1360 single table.
1361 Use symbols[i]->tag instead of tags[i].
1362
13632001-12-29 Akim Demaille <akim@epita.fr>
1364
1365 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
1366 In addition, put a comment in there, to replace...
1367 * tests/regression.at (%union and C comments): Remove.
1368
13692001-12-29 Akim Demaille <akim@epita.fr>
1370
1371 * tests/regression.at (Web2c Actions): Blindly move the actual
1372 output as expected output. The contents *seem* right to me, but I
1373 can't pretend reading perfectly parser tables... Nonetheless, all
1374 the other tests pass correctly, the table look OK, even though the
1375 presence of `$axiom' is to be noted: AFAICS it is useless (but
1376 harmless).
1377
13782001-12-29 Akim Demaille <akim@epita.fr>
1379
1380 * src/reader.c (readgram): Don't add the rule 0 if there were no
1381 rules read. In other words, add it _after_ having performed
1382 grammar sanity checks.
1383 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
1384
13852001-12-29 Akim Demaille <akim@epita.fr>
1386
1387 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
1388 visible, and some states have now a different number.
1389
13902001-12-29 Akim Demaille <akim@epita.fr>
1391
1392 * src/reader.c (readgram): Bind the initial rule's lineno to that
1393 of the first rule.
1394 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
1395 (Solved SR Conflicts): Adjust rule 0's line number.
1396
13972001-12-29 Akim Demaille <akim@epita.fr>
1398
1399 Fix the `GAWK Grammar' failure.
1400
1401 * src/LR0.c (final_state): Initialize to -1 so that we do compute
1402 the reductions of the first state which was mistakenly confused
1403 with the final state because precisely final_state was initialized
1404 to 0.
1405 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
1406 now noticed by Bison.
1407 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
1408 have a reduction on $default.
1409
14102001-12-29 Akim Demaille <akim@epita.fr>
1411
1412 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
1413 rule line numbers.
1414 * src/closure.c (print_closure): Likewise.
1415 * src/derives.c (print_derives): Likewise.
1416 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
1417 now.
1418
14192001-12-29 Akim Demaille <akim@epita.fr>
1420
1421 * src/lalr.c (lookaheads_print): New.
1422 (lalr): Call it when --trace-flag.
1423 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
1424 are dumped.
1425
14262001-12-29 Akim Demaille <akim@epita.fr>
1427
1428 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
1429 when walking through ritem, even via rule->rhs.
1430 * src/reduce.c (dump_grammar, useful_production, reduce_output)
1431 (useful_production, useless_nonterminals): Likewise.
1432 (reduce_grammar_tables): Likewise, plus update nritems.
1433 * src/nullable.c (set_nullable): Likewise.
1434 * src/lalr.c (build_relations): Likewise.
1435 * tests/sets.at (Nullable): Adjust.
1436 Fortunately, now, the $axiom is no longer nullable.
1437
14382001-12-29 Akim Demaille <akim@epita.fr>
1439
1440 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
1441 the 0-sentinel.
1442 * src/gram.c (ritem_longest_rhs): Likewise.
1443 * src/reduce.c (nonterminals_reduce): Likewise.
1444 * src/print_graph.c (print_graph): Likewise.
1445 * src/output.c (output_rule_data): Likewise.
1446 * src/nullable.c (set_nullable): Likewise.
1447
14482001-12-29 Akim Demaille <akim@epita.fr>
1449
1450 * src/output.c: Comment changes.
1451
14522001-12-27 Paul Eggert <eggert@twinsun.com>
1453
1454 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
1455 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
1456 Sparc, as they were causing more porting problems than the
1457 (minor) performance improvement was worth.
1458
1459 Also, catch up with 1.31's YYSTD.
1460
14612001-12-27 Akim Demaille <akim@epita.fr>
1462
1463 * src/output.c (output_gram): Rely on nritems, not the
1464 0-sentinel. See below.
1465 Use -1 as separator, not 0.
1466 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
1467 Rely on -1 as separator in yyrhs, instead of 0.
1468 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
1469 twice `Now at end of input', therefore there are two lines less to
1470 expect.
1471
14722001-12-27 Akim Demaille <akim@epita.fr>
1473
1474 * tests/regression.at (Unresolved SR Conflicts):
1475 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
1476 below.
1477
14782001-12-27 Akim Demaille <akim@epita.fr>
1479
1480 * src/LR0.c (new_state): Recognize the final state by the fact it
1481 is reached by eoftoken.
1482 (insert_start_shifting_state, insert_eof_shifting_state)
1483 (insert_accepting_state, augment_automaton): Remove, since now
1484 these states are automatically computed from the initial state.
1485 (generate_states): Adjust.
1486 * src/print.c: When reporting a rule number to the user, substract
1487 1, so that the axiom rule is rule 0, and the first user rule is 1.
1488 * src/reduce.c: Likewise.
1489 * src/print_graph.c (print_core): For the time being, just as for
1490 the report, depend upon --trace-flags to dump the full set of
1491 items.
1492 * src/reader.c (readgram): Once the grammar read, insert the rule
1493 0: `$axiom: START-SYMBOL $'.
1494 * tests/set.at: Adjust: rule 0 is now displayed, and since the
1495 number of the states has changed (the final state is no longer
1496 necessarily the last), catch up.
1497
14982001-12-27 Akim Demaille <akim@epita.fr>
1499
1500 Try to make the use of the eoftoken valid. Given that its value
1501 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
1502 is used instead of > 0 where appropriate, (ii), depend upon nritems
1503 instead of the 0-sentinel.
1504
1505 * src/gram.h, src/gram.c (nritems): New.
1506 Expected to be duplication of nitems, but for the time being...
1507 * src/reader.c (packgram): Assert nritems and nitems are equal.
1508 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
1509 * src/closure.c (print_closure, print_fderives): Likewise.
1510 * src/gram.c (ritem_print): Likewise.
1511 * src/print.c (print_core, print_grammar): Likewise.
1512 * src/print_graph.c: Likewise.
1513
15142001-12-27 Akim Demaille <akim@epita.fr>
1515
1516 * src/main.c (main): If there are complains after grammar
1517 reductions, then output the report anyway if requested, then die.
1518 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
1519 * src/reader.c (eoftoken): New.
1520 (parse_token_decl): If the token being defined has value `0', it
1521 is the eoftoken.
1522 (packsymbols): No longer hack `tags' to insert `$' by hand.
1523 Be sure to preserve the value of the eoftoken.
1524 (reader): Make sure eoftoken is defined.
1525 Initialize nsyms to 0: now eoftoken is created just like the others.
1526 * src/print.c (print_grammar): Don't special case the eof token.
1527 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
1528 lie anyway, albeit pleasant.
1529 * tests/calc.at: Exercise error messages with eoftoken.
1530 Change the grammar so that empty input is invalid.
1531 Adjust expectations.
1532 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
1533
15342001-12-27 Akim Demaille <akim@epita.fr>
1535
1536 * configure.in: Check the protos of strchr ans strspn.
1537 Replace strchr if needed.
1538 * src/system.h: Provide the protos of strchr, strspn and memchr if
1539 missing.
1540 * lib/strchr.c: New.
1541 * src/reader.c (symbols_save): Use strchr.
1542
15432001-12-27 Akim Demaille <akim@epita.fr>
1544
1545 * src/print.c, src/print_graph.c (escape): New.
1546 Use it to quote the TAGS outputs.
1547 * src/print_graph.c (print_state): Now errors are in red, and
1548 reductions in green.
1549 Prefer high to wide: output the state number on a line of its own.
1550
15512001-12-27 Akim Demaille <akim@epita.fr>
1552
1553 * src/state.h, src/state.c (reductions_new): New.
1554 * src/LR0.c (set_state_table): Let all the states have a
1555 `reductions', even if reduced to 0.
1556 (save_reductions): Adjust.
1557 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
1558 * src/print.c (print_reductions, print_actions): Adjust.
1559 * src/output.c (action_row): Adjust.
1560
15612001-12-27 Akim Demaille <akim@epita.fr>
1562
1563 * src/state.h, src/state.c (errs_new, errs_dup): New.
1564 * src/LR0.c (set_state_table): Let all the states have an errs,
1565 even if reduced to 0.
1566 * src/print.c (print_errs, print_reductions): Adjust.
1567 * src/output.c (output_actions, action_row): Adjust.
1568 * src/conflicts.c (resolve_sr_conflict): Adjust.
1569
15702001-12-27 Akim Demaille <akim@epita.fr>
1571
1572 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
1573
15742001-12-27 Akim Demaille <akim@epita.fr>
1575
1576 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
1577 * src/print.c: here.
1578 (lookaheadset, shiftset): New, used as additional storage by
1579 print_reductions.
1580 (print_results): Adjust.
1581 (print_shifts, print_gotos, print_errs): New, extracted from...
1582 (print_actions): here.
1583 * src/print_graph.c (print_actions): Remove dead code.
1584
15852001-12-27 Akim Demaille <akim@epita.fr>
1586
1587 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
1588 `$n' and `@n'.
1589
15902001-12-27 Akim Demaille <akim@epita.fr>
1591
1592 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
1593 (build_relations): Adjust.
1594
15952001-12-27 Akim Demaille <akim@epita.fr>
1596
1597 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
1598 duplication.
1599
16002001-12-27 Akim Demaille <akim@epita.fr>
1601
1602 * src/reader.c (packgram): Catch nitems overflows.
1603
16042001-12-27 Akim Demaille <akim@epita.fr>
1605
1606 * src/files.c, src/files.h (guard_obstack): Remove.
1607 * src/output.c (output): Adjust.
1608 * src/reader.c (parse_braces): New, factoring...
1609 (copy_action, copy_guard): these two which are renamed as...
1610 (parse_action, parse_guard): these.
1611 As a voluntary consequence, using braces around guards is now
1612 mandatory.
1613
16142001-12-27 Akim Demaille <akim@epita.fr>
1615
1616 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
1617 * src/reader.c (symbol_list): `guard' and `guard_line' are new
1618 members.
1619 (symbol_list_new): Adjust.
1620 (copy_action): action_line is the first line, not the last.
1621 (copy_guard): Just as for actions, store the `action' only, not
1622 the switch/case/break flesh.
1623 Don't parse the user action that might follow the guard, let...
1624 (readgram): do it, i.e., now, there can be an action after a
1625 guard.
1626 In other words the guard is just explicitly optional.
1627 (packgram): Adjust.
1628 * src/output.c (guards_output): New.
1629 (output_parser): Call it when needed.
1630 (output): Also free the guard and attrs obstacks.
1631 * src/files.c, src/files.h (obstack_save): Remove.
1632 (output_files): Remove.
1633 As a result, if one needs the former `.act' file, using an
1634 appropriate skeleton which requires actions and guards is now
1635 required.
1636 * src/main.c (main): Adjust.
1637 * tests/semantic.at: New.
1638 * tests/regression.at: Use `input.y' as input file name.
1639 Avoid 8+3 problems by requiring input.c when the test needs the
1640 parser.
1641
16422001-12-27 Akim Demaille <akim@epita.fr>
1643
1644 * src/reader.c (symbol_list_new): Be sure to initialize all the
1645 fields.
1646
16472001-12-27 Akim Demaille <akim@epita.fr>
1648
1649 All the hacks using a final pseudo state are now useless.
1650
1651 * src/LR0.c (set_state_table): state_table holds exactly nstates.
1652 * src/lalr.c (nLA): New.
1653 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
1654 instead of lookaheadsp from the pseudo state (nstate + 1).
1655
16562001-12-27 Akim Demaille <akim@epita.fr>
1657
1658 * src/output.c (action_row, token_actions): Use a state_t instead
1659 of a integer, and nlookaheads instead of the following state's
1660 lookaheadsp.
1661
16622001-12-27 Akim Demaille <akim@epita.fr>
1663
1664 * src/conflicts.c (log_resolution, flush_shift)
1665 (resolve_sr_conflict, set_conflicts, solve_conflicts)
1666 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
1667 (conflicts_print, print_reductions): Use a state_t instead of an
1668 integer when referring to a state.
1669 As much as possible, depend upon nlookaheads, instead of the
1670 `lookaheadsp' member of the following state (since lookaheads of
1671 successive states are successive, the difference between state n + 1
1672 and n served as the number of lookaheads for state n).
1673 * src/lalr.c (add_lookback_edge): Likewise.
1674 * src/print.c (print_core, print_actions, print_state)
1675 (print_results): Likewise.
1676 * src/print_graph.c (print_core, print_actions, print_state)
1677 (print_graph): Likewise.
1678 * src/conflicts.h: Adjust.
1679
16802001-12-27 Akim Demaille <akim@epita.fr>
1681
1682 * src/bison.hairy: Formatting/comment changes.
1683 ANSIfy.
1684 Remove `register' indications.
1685 Add plenty of `static'.
1686
16872001-12-27 Akim Demaille <akim@epita.fr>
1688
1689 * src/output.c (prepare): Drop the muscle `ntbase' which
1690 duplicates ntokens.
1691 * src/bison.simple: Formatting/comment changes.
1692 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
1693 is an undocumented synonym.
1694
16952001-12-22 Akim Demaille <akim@epita.fr>
1696
1697 * src/output.c (output_table_data): Change the prototype to use
1698 `int' for array ranges: some invocations do pass an int, not a
1699 short.
1700 Reported by Wayne Green.
1701
17022001-12-22 Akim Demaille <akim@epita.fr>
1703
1704 Some actions of web2c.y are improperly triggered.
1705 Reported by Mike Castle.
1706
1707 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
1708 * tests/regression.at (Web2c): Rename as...
1709 (Web2c Report): this.
1710 (Web2c Actions): New.
1711
17122001-12-22 Akim Demaille <akim@epita.fr>
1713
1714 Reductions in web2c.y are improperly reported.
1715 Reported by Mike Castle.
1716
1717 * src/conflicts.c (print_reductions): Fix.
1718 * tests/regression.at (Web2c): New.
1719
17202001-12-18 Akim Demaille <akim@epita.fr>
1721
1722 Some host fail on `assert (!"foo")', which expands to
1723 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
1724 Reported by Nelson Beebee.
1725
1726 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
1727 `#define it_succeeded 0' and `assert (it_succeeded)'.
1728
17292001-12-17 Marc Autret <autret_m@epita.fr>
1730
1731 * src/bison.simple: Don't hard code the skeleton line and filename.
1732 * src/output.c (output_parser): Rename 'line' as 'output_line'.
1733 New line counter 'skeleton_line' (skeleton-line muscle).
1734
17352001-12-17 Paul Eggert <eggert@twinsun.com>
1736
1737 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
1738 YYDEBUG must be defined to a nonzero value.
1739
1740 * src/bison.simple (yytname): Do not assume that the user defines
1741 YYDEBUG to a properly parenthesized expression.
1742
17432001-12-17 Akim Demaille <akim@epita.fr>
1744
1745 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
1746 nlookaheads is a new member.
1747 Adjust all users.
1748 * src/lalr.h (nlookaheads): Remove this orphan declaration.
1749 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
1750 state.
1751
17522001-12-17 Akim Demaille <akim@epita.fr>
1753
1754 * src/files.h, src/files.c (open_files, close_files): Remove.
1755 * src/main.c (main): Don't open/close files, nor invoke lex_free,
1756 let...
1757 * src/reader.c (reader): Do it.
1758
17592001-12-17 Akim Demaille <akim@epita.fr>
1760
1761 * src/conflicts.c (print_reductions): Formatting changes.
1762
17632001-12-17 Akim Demaille <akim@epita.fr>
1764
1765 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
1766 (flush_reduce): New.
1767 (resolve_sr_conflict): Adjust.
1768
17692001-12-17 Akim Demaille <akim@epita.fr>
1770
1771 * src/output.c (output_obstack): Be static and rename as...
1772 (format_obstack): this, to avoid any confusion with files.c's
1773 output_obstack.
1774 * src/reader.h (muscle_obstack): Move to...
1775 * src/output.h: here, since it's defined in output.c.
1776
17772001-12-17 Akim Demaille <akim@epita.fr>
1778
1779 * src/output.c (action_row, save_column, default_goto)
1780 (sort_actions, matching_state, pack_vector): Better variable
1781 locality.
1782
17832001-12-17 Akim Demaille <akim@epita.fr>
1784
1785 * src/output.c: Various formatting changes.
1786
17872001-12-17 Akim Demaille <akim@epita.fr>
1788
1789 * src/files.c (output_files): Free the output_obstack.
1790 * src/main.c (main): Call print and print_graph conditionally.
1791 * src/print.c (print): Work unconditionally.
1792 * src/print_graph.c (print_graph): Work unconditionally.
1793 * src/conflicts.c (log_resolution): Output only if verbose_flag.
1794
17952001-12-16 Marc Autret <autret_m@epita.fr>
1796
1797 * src/output.c (actions_output): Fix. When we use %no-lines,
1798 there is one less line per action.
1799
18002001-12-16 Marc Autret <autret_m@epita.fr>
1801
1802 * src/bison.simple: Remove a useless #line directive.
1803 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
1804 * src/output.c (get_lines_number): New.
1805 (output_parser): Adjust, now takes care about the lines of a
1806 output muscles.
1807 Fix line numbering.
1808 (actions_output): Computes the number of lines taken by actions.
1809 (output_master_parser): Insert new skeleton which is the name of
1810 the output parser file name.
1811
18122001-12-15 Marc Autret <autret_m@epita.fr>
1813
1814 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
1815
18162001-12-15 Marc Autret <autret_m@epita.fr>
1817
1818 * src/output.c (output_gram): Keep track of the hairy one.
1819
18202001-12-15 Akim Demaille <akim@epita.fr>
1821
1822 Make `make distcheck' work.
1823
1824 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
1825 system.h which uses libgettext.h.
1826
18272001-12-15 Akim Demaille <akim@epita.fr>
1828
1829 * src/nullable.c (set_nullable): Useless rules must be skipped,
1830 otherwise, since we range over their symbols, we might look at a
1831 nonterminal which no longer ``exists'', i.e., it is not counted in
1832 `nvars', hence we overflow our arrays.
1833
18342001-12-15 Akim Demaille <akim@epita.fr>
1835
1836 The header can also be produced directly, without any obstack!
1837 Yahoo!
1838
1839 * src/files.c, src/files.h (defines_obstack): Remove.
1840 (compute_header_macro): Global.
1841 (defines_obstack_save): Remove.
1842 * src/reader.c (parse_union_decl): No longer output to
1843 defines_obstack: its content can be found in the `stype' muscle
1844 anyway.
1845 (output_token_translations): Merge into...
1846 (symbols_output): this.
1847 Rename as...
1848 (symbols_save): this.
1849 (reader): Adjust.
1850 * src/output.c (header_output): New.
1851 (output): Call it.
1852
18532001-12-15 Akim Demaille <akim@epita.fr>
1854
1855 * src/reader.c (parse_union_decl): Instead of handling two obstack
1856 simultaneously, use one to define the `stype' muscle, and use the
1857 value of the latter to fill defines_obstack.
1858 (copy_comment): Remove.
1859 (copy_comment2): Work for a single obstack.
1860 Rename as...
1861 (copy_comment): this.
1862
18632001-12-15 Akim Demaille <akim@epita.fr>
1864
1865 * src/lex.c, src/lex.h (xgetc): No longer static.
1866 * src/reader.c (parse_union_decl): Revamp.
1867
18682001-12-15 Akim Demaille <akim@epita.fr>
1869
1870 Still making progress in separating Bison into (i) input, (ii)
1871 process, (iii) output: now we can directly output the parser file
1872 without using table_obstack at all.
1873
1874 * src/files.c, src/files.h (table_obstack): Bye bye.
1875 (parser_file_name): New.
1876 * src/files.c (compute_output_file_names): Compute it.
1877 * src/output.c (actions_output, output_parser)
1878 (output_master_parser): To a file instead of an obstack.
1879
18802001-12-15 Akim Demaille <akim@epita.fr>
1881
1882 Attach actions to rules, instead of pre-outputting them to
1883 actions_obstack.
1884
1885 * src/gram.h (rule_t): action and action_line are new members.
1886 * src/reader.c (symbol_list): Likewise.
1887 (copy_action): Save the actions within the rule.
1888 (packgram): Save them in rule_table.
1889 * src/output.c (actions_output): New.
1890 (output_parser): Use it on `%%actions'.
1891 (output_rule_data): Don't free rule_table.
1892 (output): Do it.
1893 (prepare): Don't save the `action' muscle.
1894 * src/bison.simple: s/%%action/%%actions/.
1895
18962001-12-15 Akim Demaille <akim@epita.fr>
1897
1898 * src/reader.c (copy_action): When --yacc, don't append a `;'
1899 to the user action: let it fail if lacking.
1900 Suggested by Arnold Robbins and Tom Tromey.
1901
19022001-12-14 Akim Demaille <akim@epita.fr>
1903
1904 * src/lex.c (literalchar): Simply return the char you decoded, non
1905 longer mess around with obstacks and int pointers.
1906 Adjust all callers.
1907
19082001-12-14 Akim Demaille <akim@epita.fr>
1909
1910 * src/lex.c (literalchar): Don't escape the special characters,
1911 just decode them, and keep them as char (before, eol was output as
1912 the 2 char string `\n' etc.).
1913 * src/output.c (output_rule_data): Use quotearg to output the
1914 token strings.
1915
19162001-12-13 Paul Eggert <eggert@twinsun.com>
1917
1918 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
1919 Do not infringe on the global user namespace when using C++.
1920 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
1921 All uses of `fprintf' and `stderr' changed.
1922
1923 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
1924
19252001-12-13 Akim Demaille <akim@epita.fr>
1926
1927 The computation of nullable is broken: it doesn't handle empty
1928 RHS's properly.
1929
1930 * tests/torture.at (GNU AWK Grammar): New.
1931 * tests/sets.at (Nullable): New.
1932 * src/nullable.c (set_nullable): Instead of blindly looping over
1933 `ritems', loop over the rules, and then over their rhs's.
1934
1935 Work around Autotest bugs.
1936
1937 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
1938 frame, because Autotest understand lines starting with a `+' as
1939 traces from the shell. Then, they are not processed properly.
1940 Admittedly an Autotest bug, but we don't have time to wait for
1941 Autotest to catch up.
1942 * tests/regression.at (Broken Closure): Adjust to the new table
1943 frames.
1944 Move to...
1945 * tests/sets.at: here.
1946
19472001-12-13 Akim Demaille <akim@epita.fr>
1948
1949 * src/closure.c (closure): Use nrules instead of playing tricks
1950 with BITS_PER_WORD.
1951
19522001-12-13 Akim Demaille <akim@epita.fr>
1953
1954 * src/print.c (print_actions): Output the handling of `$' as the
1955 traces do: shifting the token EOF. Before EOF was treated as a
1956 nonterminal.
1957 * tests/regression.at: Adjust some tests.
1958 * src/print_graph.c (print_core): Complete the set of items via
1959 closure. The next-to-final and final states are still unsatisfying,
1960 but that's to be addressed elsewhere.
1961 No longer output the rule numbers, but do output the state number.
1962 A single loop for the shifts + gotos is enough, but picked a
1963 distinct color for each.
1964 (print_graph): Initialize and finalize closure.
1965
19662001-12-13 Akim Demaille <akim@epita.fr>
1967
1968 * src/reader.c (readgram): Remove dead code, an strip useless
1969 braces.
1970 (get_type): Remove, unused.
1971
19722001-12-12 Akim Demaille <akim@epita.fr>
1973
1974 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
1975 on that of lib/error.c.
1976
19772001-12-12 Akim Demaille <akim@epita.fr>
1978
1979 Some hosts don't like `/' in includes.
1980
1981 * src/system.h: Include libgettext.h without qualifying the path.
1982 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
1983 $(top_srcdir).
1984
19852001-12-11 Marc Autret <autret_m@epita.fr>
1986
1987 * src/output.c (output_parser): Remove useless muscle.
1988
19892001-12-11 Marc Autret <autret_m@epita.fr>
1990
1991 * src/bison.simple: Remove #line just before %%epilogue. It
1992 is now handled in ...
1993 * src/reader.c (read_additionnal_code): Add the output of a
1994 #line for the epilogue.
1995
19962001-12-10 Marc Autret <autret_m@epita.fr>
1997
1998 * src/reader.c (copy_definition): Re-use CPP-outed code which
1999 replace precedent remove.
2000 * src/bison.simple: Remove #line before %%prologue because
2001 %%input-line is wrong at this time.
2002
20032001-12-10 Marc Autret <autret_m@epita.fr>
2004
2005 * src/reader.c (symbols_output): Clean up.
2006 * src/output.c (output_gram, output): Clean up.
2007
20082001-12-10 Akim Demaille <akim@epita.fr>
2009
2010 * src/lalr.c (initialize_lookaheads): New. Extracted from...
2011 * src/LR0.c (set_state_table): here.
2012 * src/lalr.c (lalr): Call it.
2013
20142001-12-10 Akim Demaille <akim@epita.fr>
2015
2016 * src/state.h (shifts): Remove the `number' member: shifts are
2017 attached to state, hence no longer need to be labelled with a
2018 state number.
2019
20202001-12-10 Akim Demaille <akim@epita.fr>
2021
2022 Now that states have a complete set of members, the linked list of
2023 shifts is useless: just fill directly the state's shifts member.
2024
2025 * src/state.h (shifts): Remove the `next' member.
2026 * src/LR0.c (first_state, last_state): Remove.
2027 Adjust the callers.
2028 (augment_automaton): Don't look for the shifts that must be added
2029 a shift on EOF: it is those of the state we looked for! But now,
2030 since shifts are attached, it is no longer needed to looking
2031 merely by its id: its number.
2032
20332001-12-10 Akim Demaille <akim@epita.fr>
2034
2035 * src/LR0.c (augment_automaton): Better variable locality.
2036 Remove an impossible branch: if there is a state corresponding to
2037 the start symbol being shifted, then there is shift for the start
2038 symbol from the initial state.
2039
20402001-12-10 Akim Demaille <akim@epita.fr>
2041
2042 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
2043 only when appropriate: when insert_start_shifting_state' is not
2044 invoked.
2045 * tests/regression.at (Rule Line Numbers): Adjust.
2046
20472001-12-10 Akim Demaille <akim@epita.fr>
2048
2049 * src/LR0.c (augment_automaton): Now that all states have shifts,
2050 merge the two cases addition shifts to the initial state.
2051
20522001-12-10 Akim Demaille <akim@epita.fr>
2053
2054 * src/lalr.c (set_state_table): Move to...
2055 * src/LR0.c: here.
2056 * src/lalr.c (lalr): Don't call it...
2057 * src/LR0.c (generate_states): do it.
2058 * src/LR0.h (first_state): Remove, only the table is used.
2059
20602001-12-10 Akim Demaille <akim@epita.fr>
2061
2062 * src/LR0.h (first_shift, first_reduction): Remove.
2063 * src/lalr.c: Don't use first_shift: find shifts through the
2064 states.
2065
20662001-12-10 Akim Demaille <akim@epita.fr>
2067
2068 * src/LR0.c: Attach shifts to states as soon as they are
2069 computed.
2070 * src/lalr.c (set_state_table): Instead of assigning shifts to
2071 state, just assert that the mapping was properly done.
2072
20732001-12-10 Akim Demaille <akim@epita.fr>
2074
2075 * src/LR0.c (insert_start_shift): Rename as...
2076 (insert_start_shifting_state): this.
2077 (insert_eof_shifting_state, insert_accepting_state): New.
2078 (augment_automaton): Adjust.
2079 Better locality of the variables.
2080 When looking if the start_symbol is shifted from the initial
2081 state, using `while (... symbol != start_symbol ...)' sounds
2082 better than `while (... symbol < start_symbol ...)': If fail
2083 to see how the order between symbols could be relevant!
2084
20852001-12-10 Akim Demaille <akim@epita.fr>
2086
2087 * src/getargs.h: Don't declare `spec_name_prefix' and
2088 `spec_file_prefix', declared by src/files.h.
2089 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
2090 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
2091 * src/output.c (prepare): Adjust.
2092 * src/reader.c (symbols_output): Likewise.
2093 * src/vmsgetargs.c: Vaguely adjust, but who cares?
2094
20952001-12-10 Akim Demaille <akim@epita.fr>
2096
2097 * src/muscle_tab.c (muscle_init): NULL is a better default than
2098 `"0"'.
2099
21002001-12-10 Akim Demaille <akim@epita.fr>
2101
2102 * src/reader.c (reader): Calling symbols_output once is enough.
2103
21042001-12-10 Akim Demaille <akim@epita.fr>
2105
2106 Now that states have a complete set of members, the linked list of
2107 reductions is useless: just fill directly the state's reductions
2108 member.
2109
2110 * src/state.h (struct reductions): Remove member `number' and
2111 `next'.
2112 * src/LR0.c (first_reduction, last_reduction): Remove.
2113 (save_reductions): Don't link the new reductions, store them in
2114 this_state.
2115 * src/lalr.c (set_state_table): No need to attach reductions to
2116 states, it's already done.
2117 * src/output.c (output_actions): No longer free the shifts, then
2118 the reductions, then the states: free all the states and their
2119 members.
2120
21212001-12-10 Akim Demaille <akim@epita.fr>
2122
2123 * src/options.c (OPTN, DRTV, BOTH): New.
2124 (option_table): Use them.
2125
2126 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
2127 the job of system.h.
2128 * src/options.c: Don't include stdio.h and xalloc.h for the same
2129 reasons.
2130
21312001-12-10 Akim Demaille <akim@epita.fr>
2132
2133 * src/output.c (output, prepare): Make sure the values of the
2134 muscles `action' and `prologue' are 0-terminated.
2135
21362001-12-10 Akim Demaille <akim@epita.fr>
2137
2138 Clean up GCC warnings.
2139
2140 * src/reader.c (copy_action): `buf' is not used.
2141 (parse_skel_decl): Be static.
2142 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
2143 * src/options.h (create_long_option_table): Have a real prototype.
2144 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
2145 (hash_delete_at): Return const void *.
2146 Adjust casts to preserve the const.
2147
21482001-12-10 Akim Demaille <akim@epita.fr>
2149
2150 * configure.in: Require 2.52g.
2151 M4 is not needed, but AUTOM4TE is.
2152 * m4/m4.m4: Remove.
2153 * tests/Makefile.am: Adjust.
2154
21552001-12-10 Akim Demaille <akim@epita.fr>
2156
2157 One structure for states is enough, even though theoretically
2158 there are LR(0) states and LALR(1) states.
2159
2160 * src/lalr.h (state_t): Remove.
2161 (state_table): Be state_t **, not state_t *.
2162 * src/state.h (core, CORE_ALLOC): Rename as...
2163 (state_t, STATE_ALLOC): this.
2164 Add the LALR(1) members: shifts, reductions, errs.
2165 * src/LR0.c (state_table): Rename as...
2166 (state_hash): this, to avoid name clashes with the global
2167 `state_table'.
2168 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
2169 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
2170
21712001-12-10 Akim Demaille <akim@epita.fr>
2172
2173 Bison dumps core on bash.y.
2174 Reported by Pascal Bart.
2175
2176 * src/warshall.c (bitmatrix_print): New.
2177 (TC): Use it.
2178 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
2179 j must be the outer loop.
2180 * tests/regression.at (Broken Closure): New.
2181
21822001-12-05 Akim Demaille <akim@epita.fr>
2183
2184 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
2185 its argument.
2186