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