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