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