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