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