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