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