]> git.saurik.com Git - bison.git/blame - ChangeLog
* src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
[bison.git] / ChangeLog
CommitLineData
9757c359
AD
12002-06-15 Akim Demaille <akim@epita.fr>
2
3 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
4 out of...
5 (grammar_rules_print): here.
6 * src/reduce.c (reduce_output): Use it.
7 * tests/reduce.at (Useless Rules, Reduced Automaton)
8 (Underivable Rules): Adjust.
9
10
6b98e4b5
AD
112002-06-15 Akim Demaille <akim@epita.fr>
12
13 Copy BYacc's nice way to report the grammar.
14
15 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
16 New.
17 Don't print the rules' location, it is confusing and useless.
18 (rule_print): Use grammar_rhs_print.
19 * src/print.c (print_grammar): Use grammar_rules_print.
20
21
222002-06-15 Akim Demaille <akim@epita.fr>
23
24 Complete and rationalize `useless thing' warnings.
25
26 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
27 (symbol_tag_print): New.
28 Use them everywhere in place of accessing directly the tag member.
29 * src/gram.h, src/gram.c (rule_print): New.
30 Use it where a rule used to be printed `by hand'.
31 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
32 (reduce_grammar_tables): Report the useless rules.
33 (reduce_print): Useless things are a warning, not an error.
34 Report it as such.
35 * tests/reduce.at (Useless Nonterminals, Useless Rules):
36 (Reduced Automaton, Underivable Rules): Adjust.
37 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
38 * tests/conflicts.at (Unresolved SR Conflicts)
39 (Solved SR Conflicts): Adjust.
40
41
ee000ba4
AD
422002-06-15 Akim Demaille <akim@epita.fr>
43
44 Let symbols have a location.
45
46 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
47 (getsym): Adjust.
48 Adjust all callers.
49 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
50 Use location_t, not int.
51 * src/symtab.c (symbol_check_defined): Take advantage of the
52 location.
53 * tests/regression.at (Invalid inputs): Adjust.
54
8efe435c
AD
552002-06-15 Akim Demaille <akim@epita.fr>
56
57 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
58 (input): Don't try to initialize yylloc here, do it in the
59 scanner.
60 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
61 * src/gram.h (rule_t): Change line and action_line into location
62 and action_location, of location_t type.
63 Adjust all dependencies.
64 * src/location.h, src/location.c (empty_location): New.
65 * src/reader.h, src/reader.c (grammar_start_symbol_set)
66 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
67 (grammar_current_rule_symbol_append)
68 (grammar_current_rule_action_append): Expect a location as argument.
69 * src/reader.c (grammar_midrule_action): Adjust to attach an
70 action's location as dummy symbol location.
71 * src/symtab.h, src/symtab.c (startsymbol_location): New.
72 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
73 the line numbers.
74
75
1921f1d7
AD
762002-06-14 Akim Demaille <akim@epita.fr>
77
78 Grammar declarations may be found in the grammar section.
79
80 * src/parse-gram.y (rules_or_grammar_declaration): New.
81 (declarations): Each declaration may end with a semicolon, not
82 just...
83 (grammar_declaration): `"%union"'.
84 (grammar): Branch to rules_or_grammar_declaration.
85
4515534c
AD
862002-06-14 Akim Demaille <akim@epita.fr>
87
88 * src/main.c (main): Invoke scanner_free.
89
f958596b
AD
902002-06-14 Akim Demaille <akim@epita.fr>
91
92 * src/output.c (m4_invoke): Extracted from...
93 (output_skeleton): here.
94 Free tempfile.
95
2c569025
AD
962002-06-14 Akim Demaille <akim@epita.fr>
97
98 * src/parse-gram.y (directives, directive, gram)
99 (grammar_directives, precedence_directives, precedence_directive):
100 Rename as...
101 (declarations, declaration, grammar, grammar_declaration)
102 (precedence_declaration, precedence_declarator): these.
103 (symbol_declaration): New.
104
592e8d4d
AD
1052002-06-14 Akim Demaille <akim@epita.fr>
106
107 * src/files.c (action_obstack): Remove, unused.
108 (output_obstack): Remove it, and all its dependencies, as it is no
109 longer needed.
110 * src/reader.c (epilogue_set): Build the epilogue in the
111 muscle_obstack.
112 * src/output.h, src/output.c (muscle_obstack): Move to...
113 * src/muscle_tab.h, src/muscle_tab.h: here.
114 (muscle_init): Initialize muscle_obstack.
115 (muscle_free): New.
116 * src/main.c (main): Call it.
117
0c15323d
AD
1182002-06-14 Akim Demaille <akim@epita.fr>
119
120 * src/location.h: New, extracted from...
121 * src/reader.h: here.
122 * src/Makefile.am (noinst_HEADERS): Merge into
123 (bison_SOURCES): this.
124 Add location.h.
125 * src/parse-gram.y: Use location_t instead of Bison's.
126 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
127 Use location_t instead of ints.
128
e96c9728
AD
1292002-06-14 Akim Demaille <akim@epita.fr>
130
131 * data/bison.simple, data/bison.c++: Be sure to restore the
132 current #line when returning to the skeleton contents after having
133 exposed the input file's #line.
134
75d1fe16
AD
1352002-06-12 Akim Demaille <akim@epita.fr>
136
137 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
138 eager.
139 * tests/actions.at (Exotic Dollars): New.
140
6c35d22c
AD
1412002-06-12 Akim Demaille <akim@epita.fr>
142
143 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
144 ['"/] too eagerly.
145 * tests/input.at (Torturing the Scanner): New.
146
1d6412ad
AD
1472002-06-11 Akim Demaille <akim@epita.fr>
148
149 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
150 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
151 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
152 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
153 * src/reader.c (reader): Use it.
154
4cdb01db
AD
1552002-06-11 Akim Demaille <akim@epita.fr>
156
157 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
158 Adjust all callers.
159 (scanner_last_string_free): New.
160
44995b2e
AD
1612002-06-11 Akim Demaille <akim@epita.fr>
162
163 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
164 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
165 (last_string, YY_OBS_FREE): New.
166 Use them when returning an ID.
167
e9955c83
AD
1682002-06-11 Akim Demaille <akim@epita.fr>
169
170 Have Bison grammars parsed by a Bison grammar.
171
172 * src/reader.c, src/reader.h (prologue_augment): New.
173 * src/reader.c (copy_definition): Remove.
174
175 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
176 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
177 (grammar_current_rule_prec_set, grammar_current_rule_check)
178 (grammar_current_rule_symbol_append)
179 (grammar_current_rule_action_append): Export.
180 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
181 (symbol_list_action_append): Remove.
182 Hook the routines from reader.
183 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
184 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
185
186 * src/reader.c (read_declarations): Remove, unused.
187
188 * src/parse-gram.y: Handle the epilogue.
189 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
190 (grammar_start_symbol_set): this.
191 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
192 * src/reader.c (readgram): Remove, unused.
193 (reader): Adjust to insert eoftoken and axiom where appropriate.
194
195 * src/reader.c (copy_dollar): Replace with...
196 * src/scan-gram.h (handle_dollar): this.
197 * src/parse-gram.y: Remove `%thong'.
198
199 * src/reader.c (copy_at): Replace with...
200 * src/scan-gram.h (handle_at): this.
201
202 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
203 New.
204
205 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
206 time being.
207
208 * src/reader.h, src/reader.c (grammar_rule_end): New.
209
210 * src/parse.y (current_type, current_class): New.
211 Implement `%nterm', `%token' support.
212 Merge `%term' into `%token'.
213 (string_as_id): New.
214 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
215 type name.
216
217 * src/parse-gram.y: Be sure to handle properly the beginning of
218 rules.
219
220 * src/parse-gram.y: Handle %type.
221 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
222
223 * src/parse-gram.y: More directives support.
224 * src/options.c: No longer handle source directives.
225
226 * src/parse-gram.y: Fix %output.
227
228 * src/parse-gram.y: Handle %union.
229 Use the prologue locations.
230 * src/reader.c (parse_union_decl): Remove.
231
232 * src/reader.h, src/reader.c (epilogue_set): New.
233 * src/parse-gram.y: Use it.
234
235 * data/bison.simple, data/bison.c++: b4_stype is now either not
236 defined, then default to int, or to the contents of %union,
237 without `union' itself.
238 Adjust.
239 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
240
241 * src/output.c (actions_output): Don't output braces, as they are
242 already handled by the scanner.
243
244 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
245 characters to themselves.
246
247 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
248 that the epilogue has a proper #line.
249
250 * src/parse-gram.y: Handle precedence/associativity.
251
252 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
253 a terminal.
254 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
255 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
256 at all to define terminals that cannot be emitted.
257
258 * src/scan-gram.l: Escape M4 characters.
259
260 * src/scan-gram.l: Working properly with escapes in user
261 strings/characters.
262
263 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
264 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
265 grammar.
266 Use more modest sizes, as for the time being the parser does not
267 release memory, and therefore the process swallows a huge amount
268 of memory.
269
270 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
271 stricter %token grammar.
272
273 * src/symtab.h (associativity): Add `undef_assoc'.
274 (symbol_precedence_set): Do nothing when passed an undef_assoc.
275 * src/symtab.c (symbol_check_alias_consistence): Adjust.
276
277 * tests/regression.at (Invalid %directive): Remove, as it is now
278 meaningless.
279 (Invalid inputs): Adjust to the new error messages.
280 (Token definitions): The new grammar doesn't allow too many
281 eccentricities.
282
283 * src/lex.h, src/lex.c: Remove.
284 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
285 (copy_character, copy_string2, copy_string, copy_identifier)
286 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
287 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
288 (parse_action): Remove.
289 * po/POTFILES.in: Adjust.
290
2e047461
AD
2912002-06-11 Akim Demaille <akim@epita.fr>
292
293 * src/reader.c (parse_action): Don't store directly into the
294 rule's action member: return the action as a string.
295 Don't require `rule_length' as an argument: compute it.
296 (grammar_current_rule_symbol_append)
297 (grammar_current_rule_action_append): New, eved out from
298 (readgram): here.
299 Remove `action_flag', `rulelength', unused now.
300
9af3fbce
AD
3012002-06-11 Akim Demaille <akim@epita.fr>
302
303 * src/reader.c (grammar_current_rule_prec_set).
304 (grammar_current_rule_check): New, eved out from...
305 (readgram): here.
306 Remove `xaction', `first_rhs': useless.
307 * tests/input.at (Type clashes): New.
308 * tests/existing.at (GNU Cim Grammar): Adjust.
309
1485e106
AD
3102002-06-11 Akim Demaille <akim@epita.fr>
311
312 * src/reader.c (grammar_midrule_action): New, Eved out from
313 (readgram): here.
314
da4160c3
AD
3152002-06-11 Akim Demaille <akim@epita.fr>
316
317 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
318 New.
319 (readgram): Use them as replacement of inlined code, crule and
320 crule1.
321
f6d0f937
AD
3222002-06-11 Akim Demaille <akim@epita.fr>
323
324 * src/reader.c (grammar_end, grammar_symbol_append): New.
325 (readgram): Use them.
326 Make the use of `p' as local as possible.
327
69078d4b
AD
3282002-06-10 Akim Demaille <akim@epita.fr>
329
330 GCJ's parser requires the tokens to be defined before the prologue.
331
332 * data/bison.simple: Output the token definition before the user's
333 prologue.
334 * tests/regression.at (Braces parsing, Duplicate string)
335 (Mixing %token styles): Check the output from bison.
336 (Early token definitions): New.
337
5e424082
AD
3382002-06-10 Akim Demaille <akim@epita.fr>
339
340 * src/symtab.c (symbol_user_token_number_set): Don't complain when
341 assigning twice the same user number to a token, so that we can
342 use it in...
343 * src/lex.c (lex): here.
344 Also use `symbol_class_set' instead of hand written code.
345 * src/reader.c (parse_assoc_decl): Likewise.
346
44536b35
AD
3472002-06-10 Akim Demaille <akim@epita.fr>
348
349 * src/symtab.c, src/symtab.c (symbol_class_set)
350 (symbol_user_token_number_set): New.
351 * src/reader.c (parse_token_decl): Use them.
352 Use a switch instead of ifs.
353 Use a single argument.
354
8b9f2372
AD
3552002-06-10 Akim Demaille <akim@epita.fr>
356
357 Remove `%thong' support as it is undocumented, unused, duplicates
358 `%token's job, and creates useless e-mail traffic with people who
359 want to know what it is, why it is undocumented, unused, and
360 duplicates `%token's job.
361
362 * src/reader.c (parse_thong_decl): Remove.
363 * src/options.c (option_table): Remove "thong".
364 * src/lex.h (tok_thong): Remove.
365
3ae2b51f
AD
3662002-06-10 Akim Demaille <akim@epita.fr>
367
368 * src/symtab.c, src/symtab.c (symbol_type_set)
369 (symbol_precedence_set): New.
370 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
371 (value_components_used): Remove, unused.
372
2f1afb73
AD
3732002-06-09 Akim Demaille <akim@epita.fr>
374
375 Move symbols handling code out of the reader.
376
377 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
378 (axiom): Move to...
379 * src/symtab.h, src/symtab.c: here.
380
381 * src/gram.c (start_symbol): Remove: use startsymbol->number.
382 * src/reader.c (startval): Rename as...
383 * src/symtab.h, src/symtab.c (startsymbol): this.
384 * src/reader.c: Adjust.
385
386 * src/reader.c (symbol_check_defined, symbol_make_alias)
387 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
388 (token_translations_init)
389 Move to...
390 * src/symtab.c: here.
391 * src/reader.c (packsymbols): Move to...
392 * src/symtab.h, src/symtab.c (symbols_pack): here.
393 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
394 argument.
395
e9bca3ad
AD
3962002-06-03 Akim Demaille <akim@epita.fr>
397
398 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
399 then statements.
400
86eff183
AD
4012002-06-03 Akim Demaille <akim@epita.fr>
402
403 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
404 structs with non literals.
405 * src/scan-skel.l: never-interactive.
406 * src/conflicts.c (enum conflict_resolution_e): No trailing
407 comma.
408 * src/getargs.c (usage): Split long literal strings.
409 Reported by Hans Aberg.
410
717be197
AD
4112002-05-28 Akim Demaille <akim@epita.fr>
412
413 * data/bison.c++: Use C++ ostreams.
414 (cdebug_): New member.
415
670ddffd
AD
4162002-05-28 Akim Demaille <akim@epita.fr>
417
418 * src/output.c (output_skeleton): Be sure to allocate enough room
419 for `/' _and_ for `\0' in full_skeleton.
420
769b430f
AD
4212002-05-28 Akim Demaille <akim@epita.fr>
422
423 * data/bison.c++: Catch up with bison.simple:
424 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
425 and Paul Eggert <eggert@twinsun.com>: `error' handing.
426 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
427 and popping traces.
428
7067cb36
PH
4292002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
430
431 * src/output.c (output_skeleton): Put an explicit path in front of
432 the skeleton file name, rather than relying on the -I directory,
433 to partially alleviate effects of having a skeleton file lying around
434 in the current directory.
769b430f 435
4a713ec2
PH
4362002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
437
769b430f 438 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
439 obstack_printf should be obstack_fgrow1.
440
b408954b
AD
4412002-05-26 Akim Demaille <akim@epita.fr>
442
443 * src/state.h (state_t): `solved_conflicts' is a new member.
444 * src/LR0.c (new_state): Set it to 0.
445 * src/conflicts.h, src/conflicts.c (print_conflicts)
446 (free_conflicts, solve_conflicts): Rename as...
447 (conflicts_print, conflicts_free, conflicts_solve): these.
448 Adjust callers.
449 * src/conflicts.c (enum conflict_resolution_e)
450 (solved_conflicts_obstack): New, used by...
451 (log_resolution): this.
452 Adjust to attach the conflict resolution to each state.
453 Complete the description with the precedence/associativity
454 information.
455 (resolve_sr_conflict): Adjust.
456 * src/print.c (print_state): Output its solved_conflicts.
457 * tests/conflicts.at (Unresolved SR Conflicts)
458 (Solved SR Conflicts): Exercise --report=all.
459
a49aecd5
AD
4602002-05-26 Akim Demaille <akim@epita.fr>
461
462 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
463 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
464 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
465 (token_number_t, item_number_as_token_number)
466 (token_number_as_item_number, muscle_insert_token_number_table):
467 Rename as...
468 (symbol_number_t, item_number_as_symbol_number)
469 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
470 these, since it is more appropriate.
471
5504898e
AD
4722002-05-26 Akim Demaille <akim@epita.fr>
473
474 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
475 `Error:' lines.
476 * data/bison.simple (yystos) [YYDEBUG]: New.
477 (yyparse) [YYDEBUG]: Display the symbols which are popped during
478 error recovery.
479 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
480
ec3bc396
AD
4812002-05-25 Akim Demaille <akim@epita.fr>
482
483 * doc/bison.texinfo (Debugging): Split into...
484 (Tracing): this new section, its former contents, and...
485 (Understanding): this new section.
486 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
487 by...
488 (report_flag): this.
489 Adjust all dependencies.
490 (report_args, report_types, report_argmatch): New.
491 (usage, getargs): Report/support -r, --report.
492 * src/options.h
493 (struct option_table_struct): Rename as..,
494 (struct option_table_s): this.
495 Rename the `set_flag' member to `flag' to match with getopt_long's
496 struct.
497 * src/options.c (option_table): Split verbose into an entry for
498 %verbose, and another for --verbose.
499 Support --report/-r, so remove -r from the obsolete --raw.
500 * src/print.c: Attach full item sets and lookaheads reports to
501 report_flag instead of trace_flag.
502 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
503
78df8250
PE
5042002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
505 and Paul Eggert <eggert@twinsun.com>
769b430f 506
78df8250
PE
507 * data/bison.simple (yyparse): Correct error handling to conform to
508 POSIX and yacc. Specifically, after syntax error is discovered,
509 do not reduce further before shifting the error token.
510 Clean up the code a bit by removing the labels yyerrdefault,
511 yyerrhandle, yyerrpop.
512 * NEWS: Document the above.
513
c0c9ea05
PH
5142002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
515
516 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
517 type; it isn't always big enough, since it doesn't necessarily
518 include non-terminals.
769b430f 519 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
520 the latter can be removed.
521 (yy_token_number_type): Remove, only one use.
522 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
523 don't use TokenNumberType as element type.
769b430f 524
c0c9ea05
PH
525 * tests/regression.at: Modify expected output to agree with change
526 to yyr1 and yytranslate.
769b430f 527
6390a83f
FK
5282002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
529
530 * src/reader.c (parse_action): Use copy_character instead of
531 obstack_1grow.
532
db7c8e9a
AD
5332002-05-13 Akim Demaille <akim@epita.fr>
534
535 * tests/regression.at (Token definitions): Prototype yylex and
536 yyerror.
537
fcc61800
PH
5382002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
539
158c687b 540 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
541 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
542 32-bit arithmetic.
543 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
544
5683e9b2
AD
5452002-05-07 Akim Demaille <akim@epita.fr>
546
547 * tests/synclines.at: Be sure to prototype yylex and yyerror to
548 avoid GCC warnings.
549
0c2d3f4c
AD
5502002-05-07 Akim Demaille <akim@epita.fr>
551
552 Kill GCC warnings.
553
554 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
555 over the RHS of each rule.
556 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
557 * src/state.h (state_t): Member `nitems' is unsigned short.
558 * src/LR0.c (get_state): Adjust.
559 * src/reader.c (packgram): Likewise.
560 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
561 `Type'.
562 (muscle_insert_int_table): Remove, unused.
563 (prepare_rules): Remove `max'.
564
1565b720
AD
5652002-05-06 Akim Demaille <akim@epita.fr>
566
567 * src/closure.c (print_firsts): Display of the symbol tags.
568 (bitmatrix_print): Move to...
569 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
570 here.
571 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
572
cfaee611
AD
5732002-05-06 Akim Demaille <akim@epita.fr>
574
575 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
576 hash_do_for_each.
577
458be8e0
AD
5782002-05-06 Akim Demaille <akim@epita.fr>
579
580 * src/LR0.c (new_state, get_state): Instead of using the global
581 `kernel_size' and `kernel_base', have two new arguments:
582 `core_size' and `core'.
583 Adjust callers.
584
a900a624
AD
5852002-05-06 Akim Demaille <akim@epita.fr>
586
587 * src/reader.c (packgram): No longer end `ritem' with a 0
588 sentinel: it is not used.
589
d4e7d3a1
AD
5902002-05-05 Akim Demaille <akim@epita.fr>
591
592 New experimental feature: display the lookaheads in the report and
593 graph.
594
595 * src/print (print_core): When --trace-flag, display the rules
596 lookaheads.
597 * src/print_graph.c (print_core): Likewise.
598 Swap the arguments.
599 Adjust caller.
600
39ceb25b
AD
6012002-05-05 Akim Demaille <akim@epita.fr>
602
603 * tests/torture.at (Many lookaheads): New test.
604
5372019f
AD
6052002-05-05 Akim Demaille <akim@epita.fr>
606
607 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
608 (GENERATE_MUSCLE_INSERT_TABLE): this.
609 (output_int_table, output_unsigned_int_table, output_short_table)
610 (output_token_number_table, output_item_number_table): Replace with...
611 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
612 (muscle_insert_short_table, muscle_insert_token_number_table)
613 (muscle_insert_item_number_table): these.
614 Adjust all callers.
615 (prepare_tokens): Don't free `translations', since...
616 * src/reader.h, src/reader.c (grammar_free): do it.
617 Move to...
618 * src/gram.h, src/gram.c (grammar_free): here.
619 * data/bison.simple, data/bison.c++: b4_token_number_max is now
620 b4_translate_max.
621
5df5f6d5
AD
6222002-05-05 Akim Demaille <akim@epita.fr>
623
624 * src/output.c (output_unsigned_int_table): New.
625 (prepare_rules): `i' is unsigned.
626 `prhs', `rline', `r2' are unsigned int.
627 Rename muscle `rhs_number_max' as `rhs_max'.
628 Output muscles `prhs_max', `rline_max', and `r2_max'.
629 Free rline and r1.
630 * data/bison.simple, data/bison.c++: Adjust to use these muscles
631 to compute types instead of constant types.
632 * tests/regression.at (Web2c Actions): Adjust.
633
b87f8b21
AD
6342002-05-04 Akim Demaille <akim@epita.fr>
635
636 * src/symtab.h (SALIAS, SUNDEF): Rename as...
637 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
638 Adjust dependencies.
639 * src/output.c (token_definitions_output): Be sure not to output a
640 `#define 'a'' when fed with `%token 'a' "a"'.
641 * tests/regression.at (Token definitions): New.
642
8bb936e4
PE
6432002-05-03 Paul Eggert <eggert@twinsun.com>
644
645 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
646 for K&R C.
647
6482002-05-03 gettextize <bug-gnu-gettext@gnu.org>
649
650 * Makefile.am (SUBDIRS): Remove intl.
651 (EXTRA_DIST): Add config/config.rpath.
652
53c71a12
AD
6532002-05-03 Akim Demaille <akim@epita.fr>
654
655 * data/bison.simple (m4_if): Don't output empty enums.
656 And actually, output valid enum definitions :(.
657
289dd0cf
AD
6582002-05-03 Akim Demaille <akim@epita.fr>
659
660 * configure.bat: Remove, completely obsolete.
661 * Makefile.am (EXTRA_DIST): Adjust.
662 Don't distribute config.rpath...
663 * config/Makefile.am (EXTRA_DIST): Do it.
664
db85e524
AD
6652002-05-03 Akim Demaille <akim@epita.fr>
666
667 * configure.in (GETTEXT_VERSION): New.
668 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
669
83ccf991
AD
6702002-05-03 Akim Demaille <akim@epita.fr>
671
672 * data/bison.simple (b4_token_enum): New.
673 (b4_token_defines): Use it to output tokens both as #define and
674 enums.
675 Suggested by Paul Eggert.
676 * src/output.c (token_definitions_output): Don't output spurious
677 white spaces.
678
1f418995
AD
6792002-05-03 Akim Demaille <akim@epita.fr>
680
681 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
682
45119f04
RA
6832002-05-02 Robert Anisko <robert@lrde.epita.fr>
684
685 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
686 Update the stack class, give a try to deque as the default container.
687
b2d52318
AD
6882002-05-02 Akim Demaille <akim@epita.fr>
689
690 * data/bison.simple (yyparse): Do not implement @$ = @1.
691 (YYLLOC_DEFAULT): Adjust to do it.
692 * doc/bison.texinfo (Location Default Action): Fix.
693
3a8b4109
AD
6942002-05-02 Akim Demaille <akim@epita.fr>
695
696 * src/reader.c (parse_braces): Merge into...
697 (parse_action): this.
698
84614e13
AD
6992002-05-02 Akim Demaille <akim@epita.fr>
700
701 * configure.in (ALL_LINGUAS): Remove.
702 * po/LINGUAS, hr.po: New.
703
fdbcd8e2
AD
7042002-05-02 Akim Demaille <akim@epita.fr>
705
706 Remove the so called hairy (semantic) parsers.
707
708 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
709 * src/gram.h, src/gram.c (semantic_parser): Remove.
710 (rule_t): Remove the guard and guard_line members.
711 * src/lex.h (token_t): remove tok_guard.
712 * src/options.c (option_table): Remove %guard and %semantic_parser
713 support.
714 * src/output.c, src/output.h (guards_output): Remove.
715 (prepare): Adjust.
716 (token_definitions_output): Don't output the `T'
717 tokens (???).
718 (output_skeleton): Don't output the guards.
719 * src/files.c, src/files.c (attrsfile): Remove.
720 * src/reader.c (symbol_list): Remove the guard and guard_line
721 members.
722 Adjust dependencies.
723 (parse_guard): Remove.
724 * data/bison.hairy: Remove.
725 * doc/bison.texinfo (Environment Variables): Remove occurrences of
726 BISON_HAIRY.
727
82b6cb3f
AD
7282002-05-02 Akim Demaille <akim@epita.fr>
729
730 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
731 (parse_guard): Rename the formal argument `stack_offset' as
732 `rule_length', which is more readable.
733 Adjust callers.
734 (copy_at, copy_dollar): Instead of outputting the hard coded
735 values of $$, $n and so forth, output invocation to b4_lhs_value,
736 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
737 Note: this patch partially drops `semantic-parser' support: it
738 always does `rule_length - n', where semantic parsers ought to
739 always use `-n'.
82b6cb3f
AD
740 * data/bison.simple, data/bison.c++ (b4_lhs_value)
741 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
742
6cbfbcc5
AD
7432002-05-02 Akim Demaille <akim@epita.fr>
744
745 * configure.in (AC_INIT): Bump to 1.49b.
746 (AM_INIT_AUTOMAKE): Short invocation.
747
b8548114
AD
7482002-05-02 Akim Demaille <akim@epita.fr>
749
750 Version 1.49a.
751
c20cd1fa
AD
7522002-05-01 Akim Demaille <akim@epita.fr>
753
754 * src/skeleton.h: Remove.
755
8a9566d4
AD
7562002-05-01 Akim Demaille <akim@epita.fr>
757
758 * src/skeleton.h: Fix the #endif.
759 Reported by Magnus Fromreide.
760
8c6d399a
PE
7612002-04-26 Paul Eggert <eggert@twinsun.com>
762
763 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
764 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 765 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 766
2b7ed18a
RA
7672002-04-25 Robert Anisko <robert@lrde.epita.fr>
768
769 * src/scan-skel.l: Postprocess quadrigraphs.
770
771 * src/reader.c (copy_character): New function, used to output
772 single characters while replacing `[' and `]' with quadrigraphs, to
773 avoid troubles with M4 quotes.
774 (copy_comment): Output characters with copy_character.
775 (read_additionnal_code): Likewise.
776 (copy_string2): Likewise.
777 (copy_definition): Likewise.
778
779 * tests/calc.at: Exercise M4 quoting.
780
34a89c50
AD
7812002-04-25 Akim Demaille <akim@epita.fr>
782
783 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
784 between `!' and the command.
785 Reported by Paul Eggert.
786
0dd1580a
RA
7872002-04-24 Robert Anisko <robert@lrde.epita.fr>
788
789 * tests/calc.at: Exercise prologue splitting.
790
791 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
792 `b4_post_prologue' instead of `b4_prologue'.
793
794 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
795 muscles.
796 (output): Free pre_prologue_obstack and post_prologue_obstack.
797 * src/files.h, src/files.c (attrs_obstack): Remove.
798 (pre_prologue_obstack, post_prologue_obstack): New.
799 * src/reader.c (copy_definition): Add a parameter to specify the
800 obstack to fill, instead of using attrs_obstack unconditionally.
801 (read_declarations): Pass pre_prologue_obstack to copy_definition if
802 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
803
83c1796f
PE
8042002-04-23 Paul Eggert <eggert@twinsun.com>
805
806 * data/bison.simple: Remove unnecessary commentary and white
807 space differences from 1_29-branch.
808 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
809
810 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
811 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
812 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
813 constructors or destructors.
814
815 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
816
1207eeac
AD
8172002-04-23 Akim Demaille <akim@epita.fr>
818
819 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
820 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
821 location with columns.
822 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
823 All reported by Paul Eggert.
824
78ab8f67
AD
8252002-04-22 Akim Demaille <akim@epita.fr>
826
827 * src/reduce.c (dump_grammar): Move to...
828 * src/gram.h, src/gram.c (grammar_dump): here.
829 Be sure to separate long item numbers.
830 Don't read the members of a rule's prec if its nil.
831
133c20e2
AD
8322002-04-22 Akim Demaille <akim@epita.fr>
833
834 * src/output.c (table_size, table_grow): New.
835 (MAXTABLE): Remove, replace uses with table_size.
836 (pack_vector): Instead of dying when the table is too big, grow it.
837
9515e8a7
AD
8382002-04-22 Akim Demaille <akim@epita.fr>
839
840 * data/bison.simple (yyr1): Its type is that of a token number.
841 * data/bison.c++ (r1_): Likewise.
842 * tests/regression.at (Web2c Actions): Adjust.
843
23c5a174
AD
8442002-04-22 Akim Demaille <akim@epita.fr>
845
846 * src/reader.c (token_translations_init): 256 is now the default
847 value for the error token, i.e., it will be assigned another
848 number if the user assigned 256 to one of her tokens.
849 (reader): Don't force 256 to error.
850 * doc/bison.texinfo (Symbols): Adjust.
851 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
852 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
853 etc. instead of 10, 20, 30 (which was used to `jump' over error
854 (256) and undefined (2)).
855
5fbb0954
AD
8562002-04-22 Akim Demaille <akim@epita.fr>
857
858 Propagate more token_number_t.
859
860 * src/gram.h (token_number_as_item_number)
861 (item_number_as_token_number): New.
862 * src/output.c (GENERATE_OUTPUT_TABLE): New.
863 Use it to create output_item_number_table and
864 output_token_number_table.
865 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
866 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
867 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
868 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
869
4f940944
AD
8702002-04-22 Akim Demaille <akim@epita.fr>
871
872 * src/output.h, src/output.c (get_lines_number): Remove.
873
3ded9a63
AD
8742002-04-19 Akim Demaille <akim@epita.fr>
875
876 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
877 as Lex/Flex'.
878 (Debugging): More details about enabling the debugging features.
879 (Table of Symbols): Describe $$, $n, @$, and @n.
880 Suggested by Tim Josling.
881
e0c471a9
AD
8822002-04-19 Akim Demaille <akim@epita.fr>
883
884 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
885
fecc10cd
AD
8862002-04-10 Akim Demaille <akim@epita.fr>
887
888 * src/system.h: Rely on HAVE_LIMITS_H.
889 Suggested by Paul Eggert.
890
51dec47b
AD
8912002-04-09 Akim Demaille <akim@epita.fr>
892
893 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
894 full stderr, and strip it according to the bison options, instead
895 of composing the error message from different bits.
896 This makes it easier to check for several error messages.
897 Adjust all the invocations.
898 Add an invocation exercising the error token.
899 Add an invocation demonstrating a stupid error message.
900 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
901 Adjust the tests.
902 Error message are for stderr, not stdout.
903
007a50a4
AD
9042002-04-09 Akim Demaille <akim@epita.fr>
905
906 * src/gram.h, src/gram.c (error_token_number): Remove, use
907 errtoken->number.
908 * src/reader.c (reader): Don't specify the user token number (2)
909 for $undefined, as it uselessly prevents using it.
910 * src/gram.h (token_number_t): Move to...
911 * src/symtab.h: here.
912 (state_t.number): Is a token_number_t.
913 * src/print.c, src/reader.c: Use undeftoken->number instead of
914 hard coded 2.
915 (Even though this 2 is not the same as above: the number of the
916 undeftoken remains being 2, it is its user token number which
917 might not be 2).
918 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
919 `user_token_number_max'.
920 Output `undef_token_number'.
921 * data/bison.simple, data/bison.c++: Use them.
922 Be sure to map invalid yylex return values to
923 `undef_token_number'. This saves us from gratuitous SEGV.
924
925 * tests/conflicts.at (Solved SR Conflicts)
926 (Unresolved SR Conflicts): Adjust.
927 * tests/regression.at (Web2c Actions): Adjust.
928
06446ccf
AD
9292002-04-08 Akim Demaille <akim@epita.fr>
930
931 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
932 Adding #line.
933 Remove the duplicate `typedefs'.
934 (RhsNumberType): Fix the declaration and various other typos.
935 Use __ofile__.
936 * data/bison.simple: Use __ofile__.
937 * src/scan-skel.l: Handle __ofile__.
938
62a3e4f0
AD
9392002-04-08 Akim Demaille <akim@epita.fr>
940
941 * src/gram.h (item_number_t): New, the type of item numbers in
942 RITEM. Note that it must be able to code symbol numbers as
943 positive number, and the negation of rule numbers as negative
944 numbers.
945 Adjust all dependencies (pretty many).
946 * src/reduce.c (rule): Remove this `short *' pointer: use
947 item_number_t.
948 * src/system.h (MINSHORT, MAXSHORT): Remove.
949 Include `limits.h'.
950 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
951 (shortcpy): Remove.
952 (MAXTABLE): Move to...
953 * src/output.c (MAXTABLE): here.
954 (prepare_rules): Use output_int_table to output rhs.
955 * data/bison.simple, data/bison.c++: Adjust.
956 * tests/torture.at (Big triangle): Move the limit from 254 to
957 500.
958 * tests/regression.at (Web2c Actions): Ajust.
959
960 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
961 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
962 passes, but produces negative #line number, once fixed, GCC is
963 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
964 C), it passes.
965 * src/state.h (state_h): Code input lines on ints, not shorts.
966
bb88b0fc
AD
9672002-04-08 Akim Demaille <akim@epita.fr>
968
969 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
970 and then the grammar.
971
9a636f47
AD
9722002-04-08 Akim Demaille <akim@epita.fr>
973
974 * src/system.h: No longer using strndup.
975
680e8701
AD
9762002-04-07 Akim Demaille <akim@epita.fr>
977
978 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
979 * src/output.c (output_table_data): Return the longest number.
980 (prepare_tokens): Output `token_number_max').
981 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
982 New.
983 Use them to define yy_token_number_type/TokenNumberType.
984 Use this type for yytranslate.
985 * tests/torture.at (Big triangle): Push the limit from 124 to
986 253.
987 * tests/regression.at (Web2c Actions): Adjust.
988
817e9f41
AD
9892002-04-07 Akim Demaille <akim@epita.fr>
990
991 * tests/torture.at (Big triangle): New.
992 (GNU AWK Grammar, GNU Cim Grammar): Move to...
993 * tests/existing.at: here.
994
5123689b
AD
9952002-04-07 Akim Demaille <akim@epita.fr>
996
997 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
998 nritems.
999 Adjust dependencies.
1000
f3849179
AD
10012002-04-07 Akim Demaille <akim@epita.fr>
1002
1003 * src/reader.c: Normalize increments to prefix form.
1004
bd02036a
AD
10052002-04-07 Akim Demaille <akim@epita.fr>
1006
1007 * src/reader.c, symtab.c: Remove debugging code.
1008
db8837cb
AD
10092002-04-07 Akim Demaille <akim@epita.fr>
1010
1011 Rename all the `bucket's as `symbol_t'.
1012
1013 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
1014 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
1015 * src/symtab.c, src/symtab.h (bucket): Rename as...
1016 (symbol_t): this.
1017 (symbol_list_new, bucket_check_defined, bucket_make_alias)
1018 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
1019 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
1020 (buckets_new, buckets_free, buckets_do): Rename as...
1021 (symbol_list_new, symbol_check_defined, symbol_make_alias)
1022 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
1023 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
1024 (symbols_new, symbols_free, symbols_do): these.
1025
72a23c97
AD
10262002-04-07 Akim Demaille <akim@epita.fr>
1027
1028 Use lib/hash for the symbol table.
1029
1030 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
1031 EOF.
1032 * src/lex.c (lex): Set the `number' member of new terminals.
1033 * src/reader.c (bucket_check_defined, bucket_make_alias)
1034 (bucket_check_alias_consistence, bucket_translation): New.
1035 (reader, grammar_free, readgram, token_translations_init)
1036 (packsymbols): Adjust.
1037 (reader): Number the predefined tokens.
1038 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
1039 for predefined tokens.
1040 * src/symtab.h (bucket): Remove all the hash table related
1041 members.
1042 * src/symtab.c (symtab): Replace by...
1043 (bucket_table): this.
1044 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
1045 (buckets_new, buckets_do): New.
1046
280a38c3
AD
10472002-04-07 Akim Demaille <akim@epita.fr>
1048
1049 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
1050 (start_symbol, max_user_token_number, semantic_parser)
1051 (error_token_number): Initialize.
1052 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
1053 Initialize.
1054 (reader): Don't.
1055 (errtoken, eoftoken, undeftoken, axiom): Extern.
1056
03b31c0c
AD
10572002-04-07 Akim Demaille <akim@epita.fr>
1058
1059 * src/gram.h (rule_s): prec and precsym are now pointers
1060 to the bucket giving the priority/associativity.
1061 Member `associativity' removed: useless.
1062 * src/reduce.c, src/conflicts.c: Adjust.
1063
8b3df748
AD
10642002-04-07 Akim Demaille <akim@epita.fr>
1065
1066 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
1067 Properly escape the symbols' TAG when outputting them.
1068
e601aa1d
AD
10692002-04-07 Akim Demaille <akim@epita.fr>
1070
1071 * src/lalr.h (LA): Is a bitsetv, not bitset*.
1072
b0299a2e
AD
10732002-04-07 Akim Demaille <akim@epita.fr>
1074
1075 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
1076 (LArule): this, which is an array to rule_t*.
1077 * src/print.c, src/conflicts.c: Adjust.
1078
d7e1f00c
AD
10792002-04-07 Akim Demaille <akim@epita.fr>
1080
1081 * src/gram.h (rule_t): Rename `number' as `user_number'.
1082 `number' is a new member.
1083 Adjust dependencies.
1084 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
1085
cc9305dd
AD
10862002-04-07 Akim Demaille <akim@epita.fr>
1087
1088 As a result of the previous patch, it is no longer needed
1089 to reorder ritem itself.
1090
1091 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
1092
b0940840
AD
10932002-04-07 Akim Demaille <akim@epita.fr>
1094
1095 Be sure never to walk through RITEMS, but use only data related to
1096 the rules themselves. RITEMS should be banished.
1097
1098 * src/output.c (output_token_translations): Rename as...
1099 (prepare_tokens): this.
1100 In addition to `translate', prepare the muscles `tname' and
1101 `toknum', which were handled by...
1102 (output_rule_data): this.
1103 Remove, and move the remainder of its outputs into...
1104 (prepare_rules): this new routines, which also merges content from
1105 (output_gram): this.
1106 (prepare_rules): Be sure never to walk through RITEMS.
1107 (output_stos): Rename as...
1108 (prepare_stos): this.
1109 (output): Always invoke prepare_states, after all, just don't use it
1110 in the output if you don't need it.
1111
643a5994
AD
11122002-04-07 Akim Demaille <akim@epita.fr>
1113
1114 * src/LR0.c (new_state): Display `nstates' as the name of the
1115 newly created state.
1116 Adjust to initialize first_state and last_state if needed.
1117 Be sure to distinguish the initial from the final state.
1118 (new_states): Create the itemset of the initial state, and use
1119 new_state.
1120 * src/closure.c (closure): Now that the initial state has its
1121 items properly set, there is no need for a special case when
1122 creating `ruleset'.
1123
1124 As a result, now the rule 0, reducing to $axiom, is visible in the
1125 outputs. Adjust the test suite.
1126
1127 * tests/conflicts.at (Solved SR Conflicts)
1128 (Unresolved SR Conflicts): Adjust.
1129 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
1130 * tests/conflicts.at (S/R in initial): New.
1131
b4c4ccc2
AD
11322002-04-07 Akim Demaille <akim@epita.fr>
1133
1134 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
1135 the RHS of the rules.
1136 * src/output.c (output_gram): Likewise.
1137
bba97eb2
AD
11382002-04-07 Akim Demaille <akim@epita.fr>
1139
1140 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
1141 bucket.
1142 Adjust all dependencies.
1143 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
1144 `number' of the buckets too.
1145 * src/gram.h: Include `symtab.h'.
1146 (associativity): Move to...
1147 * src/symtab.h: here.
1148 No longer include `gram.h'.
1149
c3b407f4
AD
11502002-04-07 Akim Demaille <akim@epita.fr>
1151
1152 * src/gram.h, src/gram.c (rules_rhs_length): New.
1153 (ritem_longest_rhs): Use it.
1154 * src/gram.h (rule_t): `number' is a new member.
1155 * src/reader.c (packgram): Set it.
1156 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
1157 the end of `rules', and count them out of `nrules'.
1158 (reduce_output, dump_grammar): Adjust.
1159 * src/print.c (print_grammar): It is no longer needed to check for
1160 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
1161 * tests/reduce.at (Reduced Automaton): New test.
1162
11652ab3
AD
11632002-04-07 Akim Demaille <akim@epita.fr>
1164
1165 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
1166 lacking `+ 1' to nrules, Bison reported as useless a token if it
1167 was used solely to set the precedence of the last rule...
1168
26b23c1a
AD
11692002-04-07 Akim Demaille <akim@epita.fr>
1170
1171 * data/bison.c++, data/bison.simple: Don't output the current file
1172 name in #line, to avoid useless diffs between two identical
1173 outputs under different names.
1174
18bcecb0
AD
11752002-04-07 Akim Demaille <akim@epita.fr>
1176
1177 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
1178 Normalize loops to using `< nrules + 1', not `<= nrules'.
1179
fa770c86
AD
11802002-04-07 Akim Demaille <akim@epita.fr>
1181
1182 * TODO: Update.
1183
d9b739c3
AD
11842002-04-07 Akim Demaille <akim@epita.fr>
1185
1186 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
1187 bucket.value as bucket.number.
1188
99013900
AD
11892002-04-07 Akim Demaille <akim@epita.fr>
1190
1191 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
1192 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
1193 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
1194 RHS, instead of being an index in RITEMS.
1195
e966383b
PE
11962002-04-04 Paul Eggert <eggert@twinsun.com>
1197
1198 * doc/bison.texinfo: Update copyright date.
1199 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
1200 (Symbols): Warn about running Bison in one character set,
1201 but compiling and/or running in an incompatible one.
1202 Warn about character code 256, too.
1203
12042002-04-03 Paul Eggert <eggert@twinsun.com>
1205
1206 * src/bison.data (YYSTACK_ALLOC): Depend on whether
1207 YYERROR_VERBOSE is nonzero, not whether it is defined.
1208
1209 Merge changes from bison-1_29-branch.
c307773e 1210
8d6c48b9
PE
12112002-03-20 Paul Eggert <eggert@twinsun.com>
1212
1213 Merge fixes from Debian bison_1.34-1.diff.
1214
1215 * configure.in (AC_PREREQ): 2.53.
1216
e53c6322
AD
12172002-03-20 Akim Demaille <akim@epita.fr>
1218
1219 * src/conflicts.c (log_resolution): Argument `resolution' is const.
1220
9ffbeca7
PE
12212002-03-19 Paul Eggert <eggert@twinsun.com>
1222
21db0b2a
PE
1223 * src/bison.simple (YYCOPY): New macro.
1224 (YYSTACK_RELOCATE): Use it.
1225 Remove Type arg; no longer needed. All callers changed.
1226 (yymemcpy): Remove; no longer needed.
1227
9ffbeca7
PE
1228 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
1229 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
1230
642cb8f8
AD
12312002-03-19 Akim Demaille <akim@epita.fr>
1232
1233 Test and fix the #line outputs.
1234
1235 * tests/atlocal.at (GCC): New.
1236 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
1237 (Prologue synch line, ,%union synch line, Postprologue synch line)
1238 (Action synch line, Epilogue synch line): New tests.
1239 * src/reader.c (parse_union_decl): Define the muscle stype_line.
1240 * data/bison.simple, data/bison.c++: Use it.
1241
3c31a486
AD
12422002-03-19 Akim Demaille <akim@epita.fr>
1243
1244 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
1245 (Solved SR Conflicts, %expect not enough, %expect right)
1246 (%expect too much): Move to...
1247 * tests/conflicts.at: this new file.
1248
0d8bed56
AD
12492002-03-19 Akim Demaille <akim@epita.fr>
1250
1251 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
1252 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
1253 that we can move to enums for instance.
1254 * src/output.c (token_definitions_output): Output a list of
1255 `token-name, token-number' instead of the #define.
1256 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
1257
9208d17f
AD
12582002-03-14 Akim Demaille <akim@epita.fr>
1259
1260 Use Gettext 0.11.1.
1261
af27eacb
RA
12622002-03-09 Robert Anisko <robert@lrde.epita.fr>
1263
1264 * data/bison.c++: Make the user able to add members to the generated
1265 parser by subclassing.
1266
9101a310
RA
12672002-03-05 Robert Anisko <robert@lrde.epita.fr>
1268
1269 * src/reader.c (read_additionnal_code): `c' should be an integer, not
1270 a character.
1271 Reported by Nicolas Tisserand and Nicolas Burrus.
1272
fff9bf0b
RA
12732002-03-04 Robert Anisko <robert@lrde.epita.fr>
1274
1275 * src/reader.c: Warn about lacking semi-colons, do not complain.
1276
64dba31e
RA
12772002-03-04 Robert Anisko <robert@lrde.epita.fr>
1278
1279 * data/bison.c++: Remove a debug line.
1280
374f5a14
RA
12812002-03-04 Robert Anisko <robert@lrde.epita.fr>
1282
1283 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
1284 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
1285 provide a default implementation.
1286
bfcf1f3a
AD
12872002-03-04 Akim Demaille <akim@epita.fr>
1288
1289 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
1290 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
1291 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
1292 * tests/semantic.at (Parsing Guards): Similarly.
1293 * src/reader.at (readgram): Complain if the last rule is not ended
1294 with a semi-colon.
1295
65ccf9fc
AD
12962002-03-04 Akim Demaille <akim@epita.fr>
1297
1298 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
1299 * src/closure.c: here.
1300 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
1301 RTC.
1302 * src/warshall.h, src/warshall.c: Remove.
1303 * tests/sets.at (Broken Closure): Adjust.
1304
d0039cbc
AD
13052002-03-04 Akim Demaille <akim@epita.fr>
1306
1307 * src/output.c (output_skeleton): tempdir is const.
1308 bytes_read is unused.
1309
345cea78
AD
13102002-03-04 Akim Demaille <akim@epita.fr>
1311
1312 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
1313 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
1314 Update.
1315 From Michael Hayes.
1316
564801f7
AD
13172002-03-04 Akim Demaille <akim@epita.fr>
1318
1319 * src/closure.c (closure): `r' is unused.
1320
e5352bc7
AD
13212002-03-04 Akim Demaille <akim@epita.fr>
1322
1323 * tests/sets.at (Broken Closure): Add the ending `;'.
1324 * src/reader.at (readgram): Complain if a rule is not ended with a
1325 semi-colon.
1326
914feea9
AD
13272002-03-04 Akim Demaille <akim@epita.fr>
1328
1329 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
1330 (count_sr_conflicts): Use bitset_count.
1331 * src/reduce.c (inaccessable_symbols): Ditto.
1332 (bits_size): Remove.
1333 * src/warshall.h, src/warshall.c: Convert to bitsetv.
1334
f0250de6
AD
13352002-03-04 Akim Demaille <akim@epita.fr>
1336
1337 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
1338 * src/reduce.c: Remove the `bitset_zero's following the
1339 `bitset_create's, as now it is performed by the latter.
1340
ef017502
AD
13412002-03-04 Akim Demaille <akim@epita.fr>
1342
1343 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
1344 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
1345 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
1346 latest sources from Michael.
1347
76514394
AD
13482002-03-04 Akim Demaille <akim@epita.fr>
1349
1350 * src/output.c (output): Don't free the grammar.
1351 * src/reader.c (grammar_free): New.
1352 * src/main.c (main): Call it and don't free symtab here.
1353
55024580
AD
13542002-03-04 Akim Demaille <akim@epita.fr>
1355
1356 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
1357 before returning.
1358 Reported by Benoit Perrot.
1359
f9abaa2c
AD
13602002-03-04 Akim Demaille <akim@epita.fr>
1361
1362 Use bitset operations when possible, not loops over bits.
1363
1364 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
1365 bitset_or.
1366 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
1367 * src/reduce.c (useless_nonterminals): Formatting changes.
1368 * src/warshall.c (TC): Use bitset_or.
1369
0e721e75
AD
13702002-03-04 Akim Demaille <akim@epita.fr>
1371
1372 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
1373 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
1374 Ditto.
1375
0fb1ffb1
AD
13762002-03-04 Akim Demaille <akim@epita.fr>
1377
1378 * src/lalr.c (F): Now a bitset*.
1379 Adjust all dependencies.
1380
b86796bf
AD
13812002-03-04 Akim Demaille <akim@epita.fr>
1382
1383 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
1384 Adjust all dependencies.
1385
602bbf31
AD
13862002-03-04 Akim Demaille <akim@epita.fr>
1387
1388 * src/L0.c, src/LR0.h (nstates): Be size_t.
1389 Adjust comparisons (signed vs unsigned).
1390 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
1391 bitset*.
1392 Adjust all dependencies.
1393
d8a0245c
AD
13942002-03-04 Akim Demaille <akim@epita.fr>
1395
1396 * src/closure.c (firsts): Now, also a bitset.
1397 Adjust all dependencies.
1398 (varsetsize): Remove, now unused.
1399 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
1400
34ba9743
AD
14012002-03-04 Akim Demaille <akim@epita.fr>
1402
1403 * src/print.c: Convert to use bitset.h, not hand coded iterations
1404 over ints.
1405
ed86e78c
AD
14062002-03-04 Akim Demaille <akim@epita.fr>
1407
1408 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
1409
dfdb1797
AD
14102002-03-04 Akim Demaille <akim@epita.fr>
1411
1412 * src/closure.c (ruleset): Be a bitset.
1413 (rulesetsize): Remove.
1414
7086e707
AD
14152002-03-04 Akim Demaille <akim@epita.fr>
1416
1417 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
1418 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
1419 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
1420 * src/closure.c (fderives): Be an array of bitsets.
1421
98254360
RA
14222002-02-28 Robert Anisko <robert@lrde.epita.fr>
1423
1424 * data/bison.c++: Merge the two generated headers. Insert a copyright
1425 notice in each output file.
1426
a75c057f
AD
14272002-02-28 Akim Demaille <akim@epita.fr>
1428
1429 * data/bison.c++: Copy the prologue of bison.simple to fetch
1430 useful M4 definitions, such as b4_header_guard.
1431
06b00abc
AD
14322002-02-25 Akim Demaille <akim@epita.fr>
1433
1434 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
1435 translator friendly scheme for the bgr
1436 copyright notice.
06b00abc 1437
70e7d534
AD
14382002-02-25 Akim Demaille <akim@epita.fr>
1439
1440 * src/output.c (header_output): Remove, now handled completely via
1441 M4.
1442
abe017f6
AD
14432002-02-25 Akim Demaille <akim@epita.fr>
1444
1445 * m4/m4.m4: New, from CVS Autoconf.
1446 * configure.in: Invoke it.
1447 * src/output.c (output_skeleton): Use its result instead of the
1448 hard coded name.
1449
381fb12e
AD
14502002-02-25 Akim Demaille <akim@epita.fr>
1451
1452 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
1453 Fileutils 4.1.5.
1454 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
1455 * src/output.c (output_skeleton): Use mkstemp to create a real
1456 temporary file.
1457 Move the filling of `skeleton' and its muscle to...
1458 (prepare): here.
1459 (output): Move the definition of the prologue muscle to...
1460 (prepare): here.
1461 * src/system.h (DEFAULT_TMPDIR): New.
1462
6f38107f
PE
14632002-02-14 Paul Eggert <eggert@twinsun.com>
1464
1465 Remove the support for C++ namespace cleanliness; it was
1466 causing more problems than it was curing, since it didn't work
1467 properly on some nonstandard C++ compilers. This can wait
1468 for a proper C++ parser.
1469
1470 * NEWS: Document this.
1471 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
1472 of C++, as it's treated like C now.
1473 * src/bison.simple (YYSTD): Remove.
1474 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
1475 Treat C++ just like Standard C instead of trying to support
1476 namespace cleanliness.
1477
80cce3da
AD
14782002-02-14 Akim Demaille <akim@epita.fr>
1479
1480 * tests/regression.at (else): Adjust to Andreas' change.
1481
842e8679
AD
14822002-02-14 Akim Demaille <akim@epita.fr>
1483
1484 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
1485
4bda3f10
AD
14862002-02-13 Andreas Schwab <schwab@suse.de>
1487
1488 * src/output.c (output_rule_data): Don't output NULL, it might
1489 not be defined yet.
1490
4162fa07 14912002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 1492
4162fa07
RA
1493 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
1494 (Copyright notice): Update.
b418ecd8 1495
bd16a5dc
AD
14962002-02-11 Akim Demaille <akim@epita.fr>
1497
1498 * tests/regression.at (%nonassoc and eof): Don't include
1499 nonportable headers.
1500
8d69a1a3
RA
15012002-02-08 Robert Anisko <robert@lrde.epita.fr>
1502
1503 * data/bison.c++: Correct error recovery. Make the user able to
1504 initialize the starting location.
1505
9b2d0677
AD
15062002-02-07 Akim Demaille <akim@epita.fr>
1507
1508 * tests/input.at: New.
1509
69e2658b
RA
15102002-02-07 Robert Anisko <robert@lrde.epita.fr>
1511
1512 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 1513 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
1514 directives around tables only needed for debugging.
1515
4aacc3a7
RA
15162002-02-07 Robert Anisko <robert@lrde.epita.fr>
1517
1518 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
1519 C++ parsers.
1520 (yy::b4_name::parse): Use print_.
1521
762a801e
RA
15222002-02-07 Robert Anisko <robert@lrde.epita.fr>
1523
1524 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
1525
4bb2bc3f
RA
15262002-02-07 Robert Anisko <robert@lrde.epita.fr>
1527
1528 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
1529 C++ parsers.
1530 (yy::b4_name::parse): Build verbose error messages, and use error_.
1531
6b45a3ca
RA
15322002-02-06 Robert Anisko <robert@lrde.epita.fr>
1533
1534 * data/bison.c++: Fix m4 quoting in comments.
1535
50997c6e
RA
15362002-02-06 Robert Anisko <robert@lrde.epita.fr>
1537
1538 * data/bison.c++: Adjust the parser code. Fix some muscles that were
1539 not expanded by m4.
1540
3f3eed27
AD
15412002-02-05 Akim Demaille <akim@epita.fr>
1542
1543 * data/bison.c++: Adjust to the M4 back end.
1544 More is certainly needed.
1545
be2a1a68
AD
15462002-02-05 Akim Demaille <akim@epita.fr>
1547
1548 Give a try to M4 as a back end.
1549
1550 * lib/readpipe.c: New, from wdiff.
1551 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
1552 BISON_HAIRY.
1553 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
1554 specific values. Now it is m4 that performs the lookup.
1555 * src/parse-skel.y: Remove.
1556 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
1557 * src/output.c (actions_output, guards_output)
1558 (token_definitions_output): No longer keeps track of the output
1559 line number, hence remove the second argument.
1560 (guards_output): Check against the guard member of a rule, not the
1561 action member.
1562 Adjust callers.
1563 (output_skeleton): Don't look for the skeleton location, let m4 do
1564 that.
1565 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
1566 file will be used.
1567 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
1568 (prepare): Given that for the time being changesyntax is not
1569 usable in M4, rename the muscles using `-' to `_'.
1570 Define `defines_flag', `output_parser_name' and `output_header_name'.
1571 * src/output.h (actions_output, guards_output)
1572 (token_definitions_output): Adjust prototypes.
1573 * src/scan-skel.l: Instead of scanning the skeletons, it now
1574 processes the output of m4: `__oline__' and `#output'.
1575 * data/bison.simple: Adjust to be used by M4(sugar).
1576 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
1577 to date.
1578 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
1579 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
1580 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
1581 shamelessly stolen from CVS Autoconf.
1582
beda758b
AD
15832002-02-05 Akim Demaille <akim@epita.fr>
1584
1585 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
1586 * configure.in: Check for the declarations of free and malloc.
1587 * src/muscle_tab.c: Adjust.
1588
5ece6d43
AD
15892002-02-05 Akim Demaille <akim@epita.fr>
1590
1591 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
1592 which have no values.
1593
5bb18f9a
AD
15942002-02-05 Akim Demaille <akim@epita.fr>
1595
1596 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
1597 * data/: here.
1598
894dd62e
PE
15992002-01-29 Paul Eggert <eggert@twinsun.com>
1600
1601 * src/bison.simple (YYSIZE_T): Do not define merely because
1602 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
1603 On some platforms, <alloca.h> does not declare YYSTD (size_t).
1604
82841af7
AD
16052002-01-27 Akim Demaille <akim@epita.fr>
1606
1607 Fix `%nonassoc and eof'.
1608
1609 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
1610 which were not properly copied! Replace
1611 memcpy (res->errs, src->errs, src->nerrs);
1612 with
1613 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
1614 !!!
1615 * tests/regression.at (%nonassoc and eof): Adjust to newest
1616 Autotest: `.' is not in the PATH.
1617
318b76e9
AD
16182002-01-27 Akim Demaille <akim@epita.fr>
1619
1620 * tests/sets.at (AT_EXTRACT_SETS): New.
1621 (Nullable): Use it.
1622 (Firsts): New.
1623
30d2f3d5
AD
16242002-01-26 Akim Demaille <akim@epita.fr>
1625
1626 * tests/actions.at, tests/calc.at, tests/headers.at,
1627 * tests/torture.at: Adjust to the newest Autotest which no longer
1628 forces `.' in the PATH.
1629
30f8c395
AD
16302002-01-25 Akim Demaille <akim@epita.fr>
1631
1632 * tests/regression.at (%nonassoc and eof): New.
1633 Suggested by Robert Anisko.
1634
29ae55f1
AD
16352002-01-24 Akim Demaille <akim@epita.fr>
1636
1637 Bison dumps core when trying to complain about broken input files.
1638 Reported by Cris van Pelt.
1639
1640 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
1641 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
1642 into...
1643 (Invalid inputs): Strengthen: exercise parse_percent_token.
1644
2b548aa6
RA
16452002-01-24 Robert Anisko <robert.anisko@epita.fr>
1646
1647 * src/Makefile.am: Add bison.c++.
1648 * src/bison.c++: New skeleton.
1649
bb0146c2
AD
16502002-01-21 Paolo Bonzini <bonzini@gnu.org>
1651
1652 * po/it.po: New.
1653
bec30531
AD
16542002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
1655
1656 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
1657
fc6edc45
MA
16582002-01-20 Marc Autret <marc@gnu.org>
1659
1660 * src/files.c (compute_output_file_names): Fix
1661
5e5d5415
MA
16622002-01-20 Marc Autret <marc@gnu.org>
1663
1664 * tests/output.at: New test.
1665 * src/files.c (compute_base_names): Don't map extensions when
1666 the YACC flag is set, use defaults.
1667 Reported by Evgeny Stambulchik.
1668
44ea3fbd
MA
16692002-01-20 Marc Autret <marc@gnu.org>
1670
bb0146c2 1671 * src/system.h: Need to define __attribute__ away for non-GCC
44ea3fbd
MA
1672 compilers as well (i.e. the vendor C compiler).
1673 Suggested by Albert Chin-A-Young.
1674
338963d1
TVH
16752002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
1676
1677 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
1678 canonical definition.
1679 * src/system.h: Use the canonical definition for PARAMS (avoids
1680 a conflict with the macro from lib/hash.h).
1681
c57b2479
AD
16822002-01-11 Akim Demaille <akim@epita.fr>
1683
1684 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 1685 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 1686
b85810ae
AD
16872002-01-09 Akim Demaille <akim@epita.fr>
1688
1689 * src/files.c, src/files.h (output_infix): New.
1690 (tab_extension): Remove.
1691 (compute_base_names): Compute the former, drop the latter.
1692 * src/output.c (prepare): Insert the muscles `output-infix', and
1693 `output-suffix'.
1694 * src/parse-skel.y (string, string.1): New.
1695 (section.header): Use it.
1696 (section.yacc): Remove.
1697 (prefix): Remove too.
1698 * src/scan-skel.l: Adjust.
1699 * src/bison.simple, src/bison.hairy: Adjust.
1700
cae60122
AD
17012002-01-09 Akim Demaille <akim@epita.fr>
1702
1703 * configure.in (WERROR_CFLAGS): Compute it.
1704 * src/Makefile.am (CFLAGS): Pass it.
1705 * tests/atlocal.in (CFLAGS): Idem.
1706 * src/files.c: Fix a few warnings.
1707 (get_extension_index): Remove, unused.
1708
ae404801
AD
17092002-01-08 Akim Demaille <akim@epita.fr>
1710
1711 * src/getargs.c (AS_FILE_NAME): New.
1712 (getargs): Use it to convert DOSish file names.
1713 * src/files.c (base_name): Rename as full_base_name to avoid
1714 clashes with `base_name ()'.
1715 (filename_split): New.
1716 (compute_base_names): N-th rewrite, using filename_split.
1717
22312b71
AD
17182002-01-08 Akim Demaille <akim@epita.fr>
1719
1720 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
1721 New, stolen from the Fileutils 4.1.
1722 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
1723 * configure.in: Check for the presence of memrchr, and of its
1724 prototype.
1725
a67cef01
TVH
17262002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
1727
1728 * lib/hash.h (__P): Added definition for this macro.
1729 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
1730 BUILT_SOURCES, to ensure they are generated first.
1731 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
1732 %error-verbose to allow bootstrapping with bison 1.30x.
1733
2b25d624
AD
17342002-01-06 Akim Demaille <akim@epita.fr>
1735
1736 * src/reader.c (parse_braces): Don't fetch the next char, the
1737 convention is to fetch on entry.
1738 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
1739 'switch' without a following semicolon.
1740 * tests/regression.at (braces parsing): New.
1741
3460813b
AD
17422002-01-06 Akim Demaille <akim@epita.fr>
1743
1744 Bison is dead wrong in its RR conflict reports.
1745
1746 * tests/torture.at (GNU Cim Grammar): New.
1747 * src/conflicts.c (count_rr_conflicts): Fix.
1748
73784c64
AD
17492002-01-06 Akim Demaille <akim@epita.fr>
1750
1751 Creating package.m4 from configure.ac causes too many problems.
1752
1753 * tests/Makefile.am (package.m4): Create it by hand,
1754 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
1755
25d81090
AD
17562002-01-06 Akim Demaille <akim@epita.fr>
1757
1758 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
1759 skeleton.h.
1760
a9b8959e
PE
17612002-01-04 Paul Eggert <eggert@twinsun.com>
1762
1763 * doc/bison.texinfo (Debugging):
1764 Remove YYSTDERR; it's no longer defined or used.
1765 Also, s/cstdio.h/cstdio/.
1766
25d81090
AD
17672002-01-03 Akim Demaille <akim@epita.fr>
1768
1769 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
1770
1109455c
AD
17712002-01-03 Akim Demaille <akim@epita.fr>
1772
1773 * src/parse-skel.y (process_skeleton): Don't bind the parser's
1774 tracing code to --trace, wait for a better --trace option, with
1775 args.
1776
7ea5e977
AD
17772002-01-03 Akim Demaille <akim@epita.fr>
1778
1779 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
1780 The ISO C++ standard is extremely clear about it: stderr is
1781 considered a macro, not a regular symbol (see table 94 `Header
1782 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
1783 Therefore std:: does not apply to it. It still does with fprintf.
1784 Also, s/cstdio.h/cstdio/.
1785
fab5b110
AD
17862002-01-03 Akim Demaille <akim@epita.fr>
1787
1788 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
1789 for non system headers.
1790
aed7fd9b
AD
17912002-01-02 Akim Demaille <akim@epita.fr>
1792
1793 Equip the skeleton chain with location tracking, runtime trace,
1794 pure parser and scanner.
1795
1796 * src/parse-skel.y: Request a pure parser, locations, and prefix
1797 renaming.
1798 (%union): Having several members with the same type does not help
1799 type mismatches, simplify.
1800 (YYPRINT, yyprint): New.
1801 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
1802 (skel_error): this.
1803 Handle locations.
1804 * src/scan-skel.l: Adjust to these changes.
1805 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
1806 (LOCATION_PRINT, skel_control_t): New.
1807
24fad99e
AD
18082001-12-30 Akim Demaille <akim@epita.fr>
1809
1810 * src/parse-skel.y: Get rid of the shift/reduce conflict:
1811 replace `gb' with BLANKS.
1812 * src/scan-skel.l: Adjust.
1813
a4b36db4
AD
18142001-12-30 Akim Demaille <akim@epita.fr>
1815
1816 * src/system.h: We don't need nor want bcopy.
1817 Throw away MS-DOS crap: we don't need getpid.
1818 * configure.in: We don't need strndup. It was even causing
1819 problems: because Flex includes the headers *before* us,
1820 _GNU_SOURCE is not defined by config.h, and therefore strndup was
1821 not visible.
1822 * lib/xstrndup.c: New.
1823 * src/scan-skel.l: Use it.
1824 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
1825 * src/parse-skel.y: Use %directives instead of #defines.
1826
1239777d
AD
18272001-12-30 Akim Demaille <akim@epita.fr>
1828
1829 * src/skeleton.h: New.
1830 * src/output.c (output_parser, output_master_parser): Remove, dead
1831 code.
1832 * src/output.h (get_lines_number, actions_output, guards_output)
1833 (token_definitions_output): Prototype them.
1834 * src/parse-skel.y: Add the license notice.
1835 Include output.h and skeleton.h.
1836 (process_skeleton): Returns void, and takes a single parameter.
1837 * src/scan-skel.l: Add the license notice.
1838 Include skeleton.h.
1839 Don't use %option yylineno: it seems that then Flex imagines
1840 REJECT has been used, and therefore it won't reallocate its
1841 buffers (which makes no other sense to me than a bug). It results
1842 in warnings for `unused: yy_flex_realloc'.
1843
9b3add5b
RA
18442001-12-30 Robert Anisko <robert.anisko@epita.fr>
1845
1846 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
1847 (MUSCLE_INSERT_PREFIX): ...to there.
1848 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
1849 (MUSCLE_INSERT_PREFIX): Move from here...
1850
1851 * src/bison.hairy: Add a section directive. Put braces around muscle
1852 names. This parser skeleton is still broken, but Bison should not
1853 choke on a bad muscle 'syntax'.
1854 * src/bison.simple: Add a section directive. Put braces around muscle
1855 names.
1856
1857 * src/files.h (strsuffix, stringappend): Add declarations.
1858 (tab_extension): Add declaration.
1859 (short_base_name): Add declaration.
1860
1861 * src/files.c (strsuffix, stringappend): No longer static. These
1862 functions are used in the skeleton parser.
1863 (tab_extension): New.
1864 (compute_base_names): Use the computations done in this function
fab5b110 1865 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
1866 names.
1867 (short_base_name): No longer static.
1868
1869 * src/output.c (output_skeleton): New.
1870 (output): Disable call to output_master_parser, and give a try to
1871 a new skeleton handling system.
1872 (guards_output, actions_output): No longer static.
1873 (token_definitions_output, get_lines_number): No longer static.
1874
1875 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
1876
fab5b110 1877 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
1878 parse-skel.y.
1879
1880 * src/parse-skel.y: New file.
1881 * src/scan-skel.l: New file.
1882
b5b61c61
AD
18832001-12-29 Akim Demaille <akim@epita.fr>
1884
1885 %name-prefix is broken.
1886
1887 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
1888 Adjust all dependencies.
1889 * tests/headers.at (export YYLTYPE): Strengthen this test: use
1890 %name-prefix.
1891
1892 Renaming yylval but not yylloc is not consistent. Now we do.
1893
1894 * src/bison.simple: Prefix yylloc if used.
1895 * doc/bison.texinfo (Decl Summary): Document that.
1896
8c9a50be
AD
18972001-12-29 Akim Demaille <akim@epita.fr>
1898
1899 * doc/bison.texinfo: Promote `%long-directive' over
1900 `%long_directive'.
1901 Remove all references to fixed-output-files, yacc is enough.
1902
d99361e6
AD
19032001-12-29 Akim Demaille <akim@epita.fr>
1904
1905 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
1906 user prologue. These are defaults.
1907 * tests/actions.at (Mid-rule actions): Make sure the user can
1908 define YYDEBUG and YYERROR_VERBOSE.
1909
b9cecb91
AD
19102001-12-29 Akim Demaille <akim@epita.fr>
1911
1912 * src/output.c (header_output): Don't forget to export YYLTYPE and
1913 yylloc.
1914 * tests/headers.at (export YYLTYPE): New, make sure it does.
1915 * tests/regression.at (%union and --defines, Invalid CPP headers):
1916 Move to...
1917 * tests/headers.at: here.
1918
aea13e97
AD
19192001-12-29 Akim Demaille <akim@epita.fr>
1920
1921 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
1922
931394cb
AD
19232001-12-29 Akim Demaille <akim@epita.fr>
1924
1925 * tests/actions.at (Mid-rule actions): Output on a single line
1926 instead of several.
1927
704a47c4
AD
19282001-12-29 Akim Demaille <akim@epita.fr>
1929
1930 * doc/bison.texinfo: Formatting changes.
1931
091e20bb
AD
19322001-12-29 Akim Demaille <akim@epita.fr>
1933
1934 Don't store the token defs in a muscle, just be ready to output it
1935 on command. Now possible via `symbols'. Fixes a memory leak.
1936
1937 * src/output.c (token_definitions_output): New.
1938 (output_parser, header_output): Use it.
1939 * src/reader.c (symbols_save): Remove.
1940
cce71710
AD
19412001-12-29 Akim Demaille <akim@epita.fr>
1942
1943 * src/bison.simple: Do not provide a default for YYSTYPE and
1944 YYLTYPE before the user's prologue. Otherwise it's hardly... a
1945 default.
1946
82c035a8
AD
19472001-12-29 Akim Demaille <akim@epita.fr>
1948
1949 Mid-rule actions are simply... ignored!
1950
1951 * src/reader.c (readgram): Be sure to attach mid-rule actions to
1952 the empty-rule associated to the dummy symbol, not to the host
1953 rule.
1954 * tests/actions.at (Mid-rule actions): New.
1955
8419d367
AD
19562001-12-29 Akim Demaille <akim@epita.fr>
1957
1958 Memory leak.
1959
1960 * src/reader.c (reader): Free grammar.
1961
375d5806
AD
19622001-12-29 Akim Demaille <akim@epita.fr>
1963
1964 Memory leak.
1965
1966 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
1967 since it allocates it for each state, although only one is needed.
1968 (allocate_storage): Do it here.
1969
f51cb8ff
AD
19702001-12-29 Akim Demaille <akim@epita.fr>
1971
1972 * src/options.h, src/options.c (create_long_option_table): Rename
1973 as...
1974 (long_option_table_new): this, with a clearer prototype.
1975 (percent_table): Remove, unused,
1976 * src/getargs.c (getargs): Adjust.
1977
29e88316
AD
19782001-12-29 Akim Demaille <akim@epita.fr>
1979
1980 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
1981 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
1982 as states.
1983
b9f71f19
AD
19842001-12-29 Akim Demaille <akim@epita.fr>
1985
1986 * src/lalr.c (build_relations): Rename `states' as `states1'.
1987 Sorry, I don't understand exactly what it is, no better name...
1988
1a2b5d37
AD
19892001-12-29 Akim Demaille <akim@epita.fr>
1990
1991 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
1992 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
1993 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
1994 as rules.
1995
1cca533e
AD
19962001-12-29 Akim Demaille <akim@epita.fr>
1997
1998 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
1999 ago.
2000
c03ae966
AD
20012001-12-29 Akim Demaille <akim@epita.fr>
2002
2003 * src/reader.c, src/reader.h (user_toknums): Remove.
2004 Adjust all users to use symbols[i]->user_token_number.
2005
5a670b1e
AD
20062001-12-29 Akim Demaille <akim@epita.fr>
2007
2008 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
2009 Adjust all users to use symbols[i]->prec or ->assoc.
2010
ad949da9
AD
20112001-12-29 Akim Demaille <akim@epita.fr>
2012
2013 * src/reader.c, src/reader.h (tags): Remove.
2014 Adjust all users to use symbols[i]->tag.
2015
0e78e603
AD
20162001-12-29 Akim Demaille <akim@epita.fr>
2017
2018 * src/gram.h, src/gram.c (symbols): New, similar to state_table
2019 and rule_table.
2020 * src/reader.c (packsymbols): Fill this table.
2021 Drop sprec.
2022 * src/conflicts.c (resolve_sr_conflict): Adjust.
2023 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
2024 single table.
2025 Use symbols[i]->tag instead of tags[i].
2026
213e640e
AD
20272001-12-29 Akim Demaille <akim@epita.fr>
2028
2029 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
2030 In addition, put a comment in there, to replace...
2031 * tests/regression.at (%union and C comments): Remove.
2032
e7b8bef1
AD
20332001-12-29 Akim Demaille <akim@epita.fr>
2034
2035 * tests/regression.at (Web2c Actions): Blindly move the actual
2036 output as expected output. The contents *seem* right to me, but I
2037 can't pretend reading perfectly parser tables... Nonetheless, all
2038 the other tests pass correctly, the table look OK, even though the
2039 presence of `$axiom' is to be noted: AFAICS it is useless (but
2040 harmless).
2041
b68e7744
AD
20422001-12-29 Akim Demaille <akim@epita.fr>
2043
2044 * src/reader.c (readgram): Don't add the rule 0 if there were no
2045 rules read. In other words, add it _after_ having performed
2046 grammar sanity checks.
2047 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
2048
78d5bae9
AD
20492001-12-29 Akim Demaille <akim@epita.fr>
2050
2051 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
2052 visible, and some states have now a different number.
2053
ff442794
AD
20542001-12-29 Akim Demaille <akim@epita.fr>
2055
2056 * src/reader.c (readgram): Bind the initial rule's lineno to that
2057 of the first rule.
2058 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
2059 (Solved SR Conflicts): Adjust rule 0's line number.
2060
610ab194
AD
20612001-12-29 Akim Demaille <akim@epita.fr>
2062
2063 Fix the `GAWK Grammar' failure.
2064
2065 * src/LR0.c (final_state): Initialize to -1 so that we do compute
2066 the reductions of the first state which was mistakenly confused
2067 with the final state because precisely final_state was initialized
2068 to 0.
2069 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
2070 now noticed by Bison.
2071 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
2072 have a reduction on $default.
2073
29d29c8f
AD
20742001-12-29 Akim Demaille <akim@epita.fr>
2075
2076 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
2077 rule line numbers.
2078 * src/closure.c (print_closure): Likewise.
2079 * src/derives.c (print_derives): Likewise.
2080 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
2081 now.
2082
7c6b64d0
AD
20832001-12-29 Akim Demaille <akim@epita.fr>
2084
2085 * src/lalr.c (lookaheads_print): New.
2086 (lalr): Call it when --trace-flag.
2087 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
2088 are dumped.
2089
3d4daee3
AD
20902001-12-29 Akim Demaille <akim@epita.fr>
2091
2092 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
2093 when walking through ritem, even via rule->rhs.
2094 * src/reduce.c (dump_grammar, useful_production, reduce_output)
2095 (useful_production, useless_nonterminals): Likewise.
2096 (reduce_grammar_tables): Likewise, plus update nritems.
2097 * src/nullable.c (set_nullable): Likewise.
2098 * src/lalr.c (build_relations): Likewise.
2099 * tests/sets.at (Nullable): Adjust.
2100 Fortunately, now, the $axiom is no longer nullable.
2101
9e7f6bbd
AD
21022001-12-29 Akim Demaille <akim@epita.fr>
2103
2104 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
2105 the 0-sentinel.
2106 * src/gram.c (ritem_longest_rhs): Likewise.
2107 * src/reduce.c (nonterminals_reduce): Likewise.
2108 * src/print_graph.c (print_graph): Likewise.
2109 * src/output.c (output_rule_data): Likewise.
2110 * src/nullable.c (set_nullable): Likewise.
2111
255ef638
AD
21122001-12-29 Akim Demaille <akim@epita.fr>
2113
2114 * src/output.c: Comment changes.
2115
0d8a7363
AD
21162001-12-27 Paul Eggert <eggert@twinsun.com>
2117
2118 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
2119 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
2120 Sparc, as they were causing more porting problems than the
2121 (minor) performance improvement was worth.
2122
2123 Also, catch up with 1.31's YYSTD.
2124
3db472b9
AD
21252001-12-27 Akim Demaille <akim@epita.fr>
2126
2127 * src/output.c (output_gram): Rely on nritems, not the
2128 0-sentinel. See below.
2129 Use -1 as separator, not 0.
2130 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
2131 Rely on -1 as separator in yyrhs, instead of 0.
2132 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
2133 twice `Now at end of input', therefore there are two lines less to
2134 expect.
2135
b365aa05
AD
21362001-12-27 Akim Demaille <akim@epita.fr>
2137
2138 * tests/regression.at (Unresolved SR Conflicts):
2139 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
2140 below.
2141
30171f79
AD
21422001-12-27 Akim Demaille <akim@epita.fr>
2143
2144 * src/LR0.c (new_state): Recognize the final state by the fact it
2145 is reached by eoftoken.
2146 (insert_start_shifting_state, insert_eof_shifting_state)
2147 (insert_accepting_state, augment_automaton): Remove, since now
2148 these states are automatically computed from the initial state.
2149 (generate_states): Adjust.
2150 * src/print.c: When reporting a rule number to the user, substract
2151 1, so that the axiom rule is rule 0, and the first user rule is 1.
2152 * src/reduce.c: Likewise.
2153 * src/print_graph.c (print_core): For the time being, just as for
2154 the report, depend upon --trace-flags to dump the full set of
2155 items.
2156 * src/reader.c (readgram): Once the grammar read, insert the rule
2157 0: `$axiom: START-SYMBOL $'.
2158 * tests/set.at: Adjust: rule 0 is now displayed, and since the
2159 number of the states has changed (the final state is no longer
2160 necessarily the last), catch up.
2161
75142d45
AD
21622001-12-27 Akim Demaille <akim@epita.fr>
2163
2164 Try to make the use of the eoftoken valid. Given that its value
2165 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
2166 is used instead of > 0 where appropriate, (ii), depend upon nritems
2167 instead of the 0-sentinel.
2168
2169 * src/gram.h, src/gram.c (nritems): New.
2170 Expected to be duplication of nitems, but for the time being...
2171 * src/reader.c (packgram): Assert nritems and nitems are equal.
2172 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
2173 * src/closure.c (print_closure, print_fderives): Likewise.
2174 * src/gram.c (ritem_print): Likewise.
2175 * src/print.c (print_core, print_grammar): Likewise.
2176 * src/print_graph.c: Likewise.
2177
b7c49edf
AD
21782001-12-27 Akim Demaille <akim@epita.fr>
2179
2180 * src/main.c (main): If there are complains after grammar
2181 reductions, then output the report anyway if requested, then die.
2182 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
2183 * src/reader.c (eoftoken): New.
2184 (parse_token_decl): If the token being defined has value `0', it
2185 is the eoftoken.
2186 (packsymbols): No longer hack `tags' to insert `$' by hand.
2187 Be sure to preserve the value of the eoftoken.
2188 (reader): Make sure eoftoken is defined.
2189 Initialize nsyms to 0: now eoftoken is created just like the others.
2190 * src/print.c (print_grammar): Don't special case the eof token.
2191 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
2192 lie anyway, albeit pleasant.
2193 * tests/calc.at: Exercise error messages with eoftoken.
2194 Change the grammar so that empty input is invalid.
2195 Adjust expectations.
2196 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
2197
ec2da99f
AD
21982001-12-27 Akim Demaille <akim@epita.fr>
2199
2200 * configure.in: Check the protos of strchr ans strspn.
2201 Replace strchr if needed.
2202 * src/system.h: Provide the protos of strchr, strspn and memchr if
2203 missing.
2204 * lib/strchr.c: New.
2205 * src/reader.c (symbols_save): Use strchr.
2206
8adfa272
AD
22072001-12-27 Akim Demaille <akim@epita.fr>
2208
2209 * src/print.c, src/print_graph.c (escape): New.
2210 Use it to quote the TAGS outputs.
2211 * src/print_graph.c (print_state): Now errors are in red, and
2212 reductions in green.
2213 Prefer high to wide: output the state number on a line of its own.
2214
80dac38c
AD
22152001-12-27 Akim Demaille <akim@epita.fr>
2216
2217 * src/state.h, src/state.c (reductions_new): New.
2218 * src/LR0.c (set_state_table): Let all the states have a
2219 `reductions', even if reduced to 0.
2220 (save_reductions): Adjust.
2221 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
2222 * src/print.c (print_reductions, print_actions): Adjust.
2223 * src/output.c (action_row): Adjust.
2224
2cec70b9
AD
22252001-12-27 Akim Demaille <akim@epita.fr>
2226
2227 * src/state.h, src/state.c (errs_new, errs_dup): New.
2228 * src/LR0.c (set_state_table): Let all the states have an errs,
2229 even if reduced to 0.
2230 * src/print.c (print_errs, print_reductions): Adjust.
2231 * src/output.c (output_actions, action_row): Adjust.
2232 * src/conflicts.c (resolve_sr_conflict): Adjust.
2233
13ca549a
AD
22342001-12-27 Akim Demaille <akim@epita.fr>
2235
2236 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
2237
5092aba5
AD
22382001-12-27 Akim Demaille <akim@epita.fr>
2239
2240 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
2241 * src/print.c: here.
2242 (lookaheadset, shiftset): New, used as additional storage by
2243 print_reductions.
2244 (print_results): Adjust.
2245 (print_shifts, print_gotos, print_errs): New, extracted from...
2246 (print_actions): here.
2247 * src/print_graph.c (print_actions): Remove dead code.
2248
11e2beca
AD
22492001-12-27 Akim Demaille <akim@epita.fr>
2250
2251 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
2252 `$n' and `@n'.
2253
dac3c910
AD
22542001-12-27 Akim Demaille <akim@epita.fr>
2255
2256 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
2257 (build_relations): Adjust.
2258
d0b0fefa
AD
22592001-12-27 Akim Demaille <akim@epita.fr>
2260
2261 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
2262 duplication.
2263
adc8c848
AD
22642001-12-27 Akim Demaille <akim@epita.fr>
2265
2266 * src/reader.c (packgram): Catch nitems overflows.
2267
14d293ac
AD
22682001-12-27 Akim Demaille <akim@epita.fr>
2269
2270 * src/files.c, src/files.h (guard_obstack): Remove.
2271 * src/output.c (output): Adjust.
2272 * src/reader.c (parse_braces): New, factoring...
2273 (copy_action, copy_guard): these two which are renamed as...
2274 (parse_action, parse_guard): these.
2275 As a voluntary consequence, using braces around guards is now
2276 mandatory.
2277
f499b062
AD
22782001-12-27 Akim Demaille <akim@epita.fr>
2279
2280 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
2281 * src/reader.c (symbol_list): `guard' and `guard_line' are new
2282 members.
2283 (symbol_list_new): Adjust.
2284 (copy_action): action_line is the first line, not the last.
2285 (copy_guard): Just as for actions, store the `action' only, not
2286 the switch/case/break flesh.
2287 Don't parse the user action that might follow the guard, let...
2288 (readgram): do it, i.e., now, there can be an action after a
2289 guard.
2290 In other words the guard is just explicitly optional.
2291 (packgram): Adjust.
2292 * src/output.c (guards_output): New.
2293 (output_parser): Call it when needed.
2294 (output): Also free the guard and attrs obstacks.
2295 * src/files.c, src/files.h (obstack_save): Remove.
2296 (output_files): Remove.
2297 As a result, if one needs the former `.act' file, using an
2298 appropriate skeleton which requires actions and guards is now
2299 required.
2300 * src/main.c (main): Adjust.
2301 * tests/semantic.at: New.
2302 * tests/regression.at: Use `input.y' as input file name.
2303 Avoid 8+3 problems by requiring input.c when the test needs the
2304 parser.
2305
d945f5cd
AD
23062001-12-27 Akim Demaille <akim@epita.fr>
2307
2308 * src/reader.c (symbol_list_new): Be sure to initialize all the
2309 fields.
2310
d200e455
AD
23112001-12-27 Akim Demaille <akim@epita.fr>
2312
2313 All the hacks using a final pseudo state are now useless.
2314
2315 * src/LR0.c (set_state_table): state_table holds exactly nstates.
2316 * src/lalr.c (nLA): New.
2317 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
2318 instead of lookaheadsp from the pseudo state (nstate + 1).
2319
f9507c28
AD
23202001-12-27 Akim Demaille <akim@epita.fr>
2321
2322 * src/output.c (action_row, token_actions): Use a state_t instead
2323 of a integer, and nlookaheads instead of the following state's
2324 lookaheadsp.
2325
065fbd27
AD
23262001-12-27 Akim Demaille <akim@epita.fr>
2327
2328 * src/conflicts.c (log_resolution, flush_shift)
2329 (resolve_sr_conflict, set_conflicts, solve_conflicts)
2330 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
2331 (conflicts_print, print_reductions): Use a state_t instead of an
2332 integer when referring to a state.
2333 As much as possible, depend upon nlookaheads, instead of the
2334 `lookaheadsp' member of the following state (since lookaheads of
2335 successive states are successive, the difference between state n + 1
2336 and n served as the number of lookaheads for state n).
2337 * src/lalr.c (add_lookback_edge): Likewise.
2338 * src/print.c (print_core, print_actions, print_state)
2339 (print_results): Likewise.
2340 * src/print_graph.c (print_core, print_actions, print_state)
2341 (print_graph): Likewise.
2342 * src/conflicts.h: Adjust.
2343
1b177bd7
AD
23442001-12-27 Akim Demaille <akim@epita.fr>
2345
2346 * src/bison.hairy: Formatting/comment changes.
2347 ANSIfy.
2348 Remove `register' indications.
2349 Add plenty of `static'.
2350
7742ddeb
AD
23512001-12-27 Akim Demaille <akim@epita.fr>
2352
2353 * src/output.c (prepare): Drop the muscle `ntbase' which
2354 duplicates ntokens.
2355 * src/bison.simple: Formatting/comment changes.
2356 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
2357 is an undocumented synonym.
2358
1fa14068
AD
23592001-12-22 Akim Demaille <akim@epita.fr>
2360
2361 * src/output.c (output_table_data): Change the prototype to use
2362 `int' for array ranges: some invocations do pass an int, not a
2363 short.
2364 Reported by Wayne Green.
2365
b9752825
AD
23662001-12-22 Akim Demaille <akim@epita.fr>
2367
2368 Some actions of web2c.y are improperly triggered.
2369 Reported by Mike Castle.
2370
2371 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
2372 * tests/regression.at (Web2c): Rename as...
2373 (Web2c Report): this.
2374 (Web2c Actions): New.
2375
776209d6
AD
23762001-12-22 Akim Demaille <akim@epita.fr>
2377
2378 Reductions in web2c.y are improperly reported.
2379 Reported by Mike Castle.
2380
2381 * src/conflicts.c (print_reductions): Fix.
2382 * tests/regression.at (Web2c): New.
2383
275fc3ad
AD
23842001-12-18 Akim Demaille <akim@epita.fr>
2385
2386 Some host fail on `assert (!"foo")', which expands to
2387 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
2388 Reported by Nelson Beebee.
2389
2390 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
2391 `#define it_succeeded 0' and `assert (it_succeeded)'.
2392
897668ee
MA
23932001-12-17 Marc Autret <autret_m@epita.fr>
2394
2395 * src/bison.simple: Don't hard code the skeleton line and filename.
2396 * src/output.c (output_parser): Rename 'line' as 'output_line'.
2397 New line counter 'skeleton_line' (skeleton-line muscle).
2398
ab3399e0
PE
23992001-12-17 Paul Eggert <eggert@twinsun.com>
2400
2401 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
2402 YYDEBUG must be defined to a nonzero value.
2403
2404 * src/bison.simple (yytname): Do not assume that the user defines
2405 YYDEBUG to a properly parenthesized expression.
2406
3877f72b
AD
24072001-12-17 Akim Demaille <akim@epita.fr>
2408
2409 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
2410 nlookaheads is a new member.
2411 Adjust all users.
2412 * src/lalr.h (nlookaheads): Remove this orphan declaration.
2413 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
2414 state.
776209d6 2415
331dbc1b
AD
24162001-12-17 Akim Demaille <akim@epita.fr>
2417
2418 * src/files.h, src/files.c (open_files, close_files): Remove.
2419 * src/main.c (main): Don't open/close files, nor invoke lex_free,
2420 let...
2421 * src/reader.c (reader): Do it.
776209d6 2422
be750e4c
AD
24232001-12-17 Akim Demaille <akim@epita.fr>
2424
2425 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 2426
709ae8c6
AD
24272001-12-17 Akim Demaille <akim@epita.fr>
2428
2429 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
2430 (flush_reduce): New.
2431 (resolve_sr_conflict): Adjust.
776209d6 2432
f87685c3
AD
24332001-12-17 Akim Demaille <akim@epita.fr>
2434
2435 * src/output.c (output_obstack): Be static and rename as...
2436 (format_obstack): this, to avoid any confusion with files.c's
2437 output_obstack.
2438 * src/reader.h (muscle_obstack): Move to...
2439 * src/output.h: here, since it's defined in output.c.
2440
837491d8
AD
24412001-12-17 Akim Demaille <akim@epita.fr>
2442
2443 * src/output.c (action_row, save_column, default_goto)
2444 (sort_actions, matching_state, pack_vector): Better variable
2445 locality.
2446
796d61fb
AD
24472001-12-17 Akim Demaille <akim@epita.fr>
2448
2449 * src/output.c: Various formatting changes.
776209d6 2450
64d15509
AD
24512001-12-17 Akim Demaille <akim@epita.fr>
2452
2453 * src/files.c (output_files): Free the output_obstack.
2454 * src/main.c (main): Call print and print_graph conditionally.
2455 * src/print.c (print): Work unconditionally.
2456 * src/print_graph.c (print_graph): Work unconditionally.
2457 * src/conflicts.c (log_resolution): Output only if verbose_flag.
2458
fbc8ecb7
MA
24592001-12-16 Marc Autret <autret_m@epita.fr>
2460
2461 * src/output.c (actions_output): Fix. When we use %no-lines,
2462 there is one less line per action.
2463
f0440388
MA
24642001-12-16 Marc Autret <autret_m@epita.fr>
2465
2466 * src/bison.simple: Remove a useless #line directive.
2467 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
2468 * src/output.c (get_lines_number): New.
776209d6 2469 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
2470 output muscles.
2471 Fix line numbering.
2472 (actions_output): Computes the number of lines taken by actions.
2473 (output_master_parser): Insert new skeleton which is the name of
2474 the output parser file name.
2475
a79986b8
MA
24762001-12-15 Marc Autret <autret_m@epita.fr>
2477
2478 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
2479
4ec8e00f
MA
24802001-12-15 Marc Autret <autret_m@epita.fr>
2481
2482 * src/output.c (output_gram): Keep track of the hairy one.
2483
1a4648ff
AD
24842001-12-15 Akim Demaille <akim@epita.fr>
2485
2486 Make `make distcheck' work.
2487
2488 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
2489 system.h which uses libgettext.h.
2490
9c2c67e6
AD
24912001-12-15 Akim Demaille <akim@epita.fr>
2492
2493 * src/nullable.c (set_nullable): Useless rules must be skipped,
2494 otherwise, since we range over their symbols, we might look at a
2495 nonterminal which no longer ``exists'', i.e., it is not counted in
2496 `nvars', hence we overflow our arrays.
2497
93ede233
AD
24982001-12-15 Akim Demaille <akim@epita.fr>
2499
2500 The header can also be produced directly, without any obstack!
2501 Yahoo!
2502
2503 * src/files.c, src/files.h (defines_obstack): Remove.
2504 (compute_header_macro): Global.
2505 (defines_obstack_save): Remove.
2506 * src/reader.c (parse_union_decl): No longer output to
2507 defines_obstack: its content can be found in the `stype' muscle
2508 anyway.
2509 (output_token_translations): Merge into...
2510 (symbols_output): this.
2511 Rename as...
2512 (symbols_save): this.
2513 (reader): Adjust.
2514 * src/output.c (header_output): New.
2515 (output): Call it.
2516
2666f928
AD
25172001-12-15 Akim Demaille <akim@epita.fr>
2518
2519 * src/reader.c (parse_union_decl): Instead of handling two obstack
2520 simultaneously, use one to define the `stype' muscle, and use the
2521 value of the latter to fill defines_obstack.
2522 (copy_comment): Remove.
2523 (copy_comment2): Work for a single obstack.
2524 Rename as...
2525 (copy_comment): this.
2526
428046f8
AD
25272001-12-15 Akim Demaille <akim@epita.fr>
2528
2529 * src/lex.c, src/lex.h (xgetc): No longer static.
2530 * src/reader.c (parse_union_decl): Revamp.
2531
ea52d706
AD
25322001-12-15 Akim Demaille <akim@epita.fr>
2533
2534 Still making progress in separating Bison into (i) input, (ii)
2535 process, (iii) output: now we can directly output the parser file
2536 without using table_obstack at all.
2537
2538 * src/files.c, src/files.h (table_obstack): Bye bye.
2539 (parser_file_name): New.
2540 * src/files.c (compute_output_file_names): Compute it.
2541 * src/output.c (actions_output, output_parser)
2542 (output_master_parser): To a file instead of an obstack.
2543
3f96f4dc
AD
25442001-12-15 Akim Demaille <akim@epita.fr>
2545
2546 Attach actions to rules, instead of pre-outputting them to
2547 actions_obstack.
2548
2549 * src/gram.h (rule_t): action and action_line are new members.
2550 * src/reader.c (symbol_list): Likewise.
2551 (copy_action): Save the actions within the rule.
2552 (packgram): Save them in rule_table.
2553 * src/output.c (actions_output): New.
2554 (output_parser): Use it on `%%actions'.
2555 (output_rule_data): Don't free rule_table.
2556 (output): Do it.
2557 (prepare): Don't save the `action' muscle.
2558 * src/bison.simple: s/%%action/%%actions/.
2559
51576fb3
AD
25602001-12-15 Akim Demaille <akim@epita.fr>
2561
2562 * src/reader.c (copy_action): When --yacc, don't append a `;'
2563 to the user action: let it fail if lacking.
dee049eb 2564 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 2565
2648a72d
AD
25662001-12-14 Akim Demaille <akim@epita.fr>
2567
2568 * src/lex.c (literalchar): Simply return the char you decoded, non
2569 longer mess around with obstacks and int pointers.
2570 Adjust all callers.
2571
92790e5b
AD
25722001-12-14 Akim Demaille <akim@epita.fr>
2573
2574 * src/lex.c (literalchar): Don't escape the special characters,
2575 just decode them, and keep them as char (before, eol was output as
2576 the 2 char string `\n' etc.).
2577 * src/output.c (output_rule_data): Use quotearg to output the
2578 token strings.
2579
927c1557
PE
25802001-12-13 Paul Eggert <eggert@twinsun.com>
2581
2582 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
2583 Do not infringe on the global user namespace when using C++.
2584 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
2585 All uses of `fprintf' and `stderr' changed.
2586
2587 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
2588
ed8e1f68
AD
25892001-12-13 Akim Demaille <akim@epita.fr>
2590
2591 The computation of nullable is broken: it doesn't handle empty
2592 RHS's properly.
2593
2594 * tests/torture.at (GNU AWK Grammar): New.
2595 * tests/sets.at (Nullable): New.
2596 * src/nullable.c (set_nullable): Instead of blindly looping over
2597 `ritems', loop over the rules, and then over their rhs's.
2598
2599 Work around Autotest bugs.
2600
2601 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
2602 frame, because Autotest understand lines starting with a `+' as
2603 traces from the shell. Then, they are not processed properly.
2604 Admittedly an Autotest bug, but we don't have time to wait for
2605 Autotest to catch up.
2606 * tests/regression.at (Broken Closure): Adjust to the new table
2607 frames.
2608 Move to...
2609 * tests/sets.at: here.
2610
cb581495
AD
26112001-12-13 Akim Demaille <akim@epita.fr>
2612
2613 * src/closure.c (closure): Use nrules instead of playing tricks
2614 with BITS_PER_WORD.
2615
2e729273
AD
26162001-12-13 Akim Demaille <akim@epita.fr>
2617
2618 * src/print.c (print_actions): Output the handling of `$' as the
2619 traces do: shifting the token EOF. Before EOF was treated as a
2620 nonterminal.
2621 * tests/regression.at: Adjust some tests.
2622 * src/print_graph.c (print_core): Complete the set of items via
2623 closure. The next-to-final and final states are still unsatisfying,
2624 but that's to be addressed elsewhere.
2625 No longer output the rule numbers, but do output the state number.
2626 A single loop for the shifts + gotos is enough, but picked a
2627 distinct color for each.
2628 (print_graph): Initialize and finalize closure.
2629
107f7dfb
AD
26302001-12-13 Akim Demaille <akim@epita.fr>
2631
2632 * src/reader.c (readgram): Remove dead code, an strip useless
2633 braces.
2634 (get_type): Remove, unused.
2635
9b53a24f
AD
26362001-12-12 Akim Demaille <akim@epita.fr>
2637
2638 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
2639 on that of lib/error.c.
2640
dbfb6dcd
AD
26412001-12-12 Akim Demaille <akim@epita.fr>
2642
2643 Some hosts don't like `/' in includes.
2644
2645 * src/system.h: Include libgettext.h without qualifying the path.
2646 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
2647 $(top_srcdir).
2648
c25fb648
MA
26492001-12-11 Marc Autret <autret_m@epita.fr>
2650
2651 * src/output.c (output_parser): Remove useless muscle.
2652
710ddc4f
MA
26532001-12-11 Marc Autret <autret_m@epita.fr>
2654
2655 * src/bison.simple: Remove #line just before %%epilogue. It
2656 is now handled in ...
2657 * src/reader.c (read_additionnal_code): Add the output of a
2658 #line for the epilogue.
2659
e83d80b8
MA
26602001-12-10 Marc Autret <autret_m@epita.fr>
2661
927c1557 2662 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
2663 replace precedent remove.
2664 * src/bison.simple: Remove #line before %%prologue because
2665 %%input-line is wrong at this time.
2666
971d5158
MA
26672001-12-10 Marc Autret <autret_m@epita.fr>
2668
2669 * src/reader.c (symbols_output): Clean up.
927c1557 2670 * src/output.c (output_gram, output): Clean up.
971d5158 2671
5edafffd
AD
26722001-12-10 Akim Demaille <akim@epita.fr>
2673
2674 * src/lalr.c (initialize_lookaheads): New. Extracted from...
2675 * src/LR0.c (set_state_table): here.
2676 * src/lalr.c (lalr): Call it.
2677
0279f8e9
AD
26782001-12-10 Akim Demaille <akim@epita.fr>
2679
2680 * src/state.h (shifts): Remove the `number' member: shifts are
2681 attached to state, hence no longer need to be labelled with a
2682 state number.
2683
190c4f5f
AD
26842001-12-10 Akim Demaille <akim@epita.fr>
2685
2686 Now that states have a complete set of members, the linked list of
2687 shifts is useless: just fill directly the state's shifts member.
2688
2689 * src/state.h (shifts): Remove the `next' member.
2690 * src/LR0.c (first_state, last_state): Remove.
2691 Adjust the callers.
2692 (augment_automaton): Don't look for the shifts that must be added
2693 a shift on EOF: it is those of the state we looked for! But now,
2694 since shifts are attached, it is no longer needed to looking
2695 merely by its id: its number.
2696
2a73b93d
AD
26972001-12-10 Akim Demaille <akim@epita.fr>
2698
2699 * src/LR0.c (augment_automaton): Better variable locality.
2700 Remove an impossible branch: if there is a state corresponding to
2701 the start symbol being shifted, then there is shift for the start
2702 symbol from the initial state.
2703
74392f6a
AD
27042001-12-10 Akim Demaille <akim@epita.fr>
2705
2706 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
2707 only when appropriate: when insert_start_shifting_state' is not
2708 invoked.
2709 * tests/regression.at (Rule Line Numbers): Adjust.
2710
37c82725
AD
27112001-12-10 Akim Demaille <akim@epita.fr>
2712
2713 * src/LR0.c (augment_automaton): Now that all states have shifts,
2714 merge the two cases addition shifts to the initial state.
2715
6a164e0c
AD
27162001-12-10 Akim Demaille <akim@epita.fr>
2717
2718 * src/lalr.c (set_state_table): Move to...
2719 * src/LR0.c: here.
2720 * src/lalr.c (lalr): Don't call it...
2721 * src/LR0.c (generate_states): do it.
2722 * src/LR0.h (first_state): Remove, only the table is used.
2723
7215de24
AD
27242001-12-10 Akim Demaille <akim@epita.fr>
2725
2726 * src/LR0.h (first_shift, first_reduction): Remove.
2727 * src/lalr.c: Don't use first_shift: find shifts through the
2728 states.
2729
80e25d4d
AD
27302001-12-10 Akim Demaille <akim@epita.fr>
2731
2732 * src/LR0.c: Attach shifts to states as soon as they are
2733 computed.
2734 * src/lalr.c (set_state_table): Instead of assigning shifts to
2735 state, just assert that the mapping was properly done.
2736
0ab3728b
AD
27372001-12-10 Akim Demaille <akim@epita.fr>
2738
2739 * src/LR0.c (insert_start_shift): Rename as...
2740 (insert_start_shifting_state): this.
2741 (insert_eof_shifting_state, insert_accepting_state): New.
2742 (augment_automaton): Adjust.
2743 Better locality of the variables.
2744 When looking if the start_symbol is shifted from the initial
2745 state, using `while (... symbol != start_symbol ...)' sounds
2746 better than `while (... symbol < start_symbol ...)': If fail
2747 to see how the order between symbols could be relevant!
2748
78af9bbc
AD
27492001-12-10 Akim Demaille <akim@epita.fr>
2750
2751 * src/getargs.h: Don't declare `spec_name_prefix' and
2752 `spec_file_prefix', declared by src/files.h.
2753 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
2754 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
2755 * src/output.c (prepare): Adjust.
2756 * src/reader.c (symbols_output): Likewise.
2757 * src/vmsgetargs.c: Vaguely adjust, but who cares?
2758
bdef2a41
AD
27592001-12-10 Akim Demaille <akim@epita.fr>
2760
2761 * src/muscle_tab.c (muscle_init): NULL is a better default than
2762 `"0"'.
2763
3735969c
AD
27642001-12-10 Akim Demaille <akim@epita.fr>
2765
2766 * src/reader.c (reader): Calling symbols_output once is enough.
2767
49701457
AD
27682001-12-10 Akim Demaille <akim@epita.fr>
2769
2770 Now that states have a complete set of members, the linked list of
2771 reductions is useless: just fill directly the state's reductions
2772 member.
2773
2774 * src/state.h (struct reductions): Remove member `number' and
2775 `next'.
2776 * src/LR0.c (first_reduction, last_reduction): Remove.
2777 (save_reductions): Don't link the new reductions, store them in
2778 this_state.
2779 * src/lalr.c (set_state_table): No need to attach reductions to
2780 states, it's already done.
2781 * src/output.c (output_actions): No longer free the shifts, then
2782 the reductions, then the states: free all the states and their
2783 members.
2784
0edad749
AD
27852001-12-10 Akim Demaille <akim@epita.fr>
2786
2787 * src/options.c (OPTN, DRTV, BOTH): New.
2788 (option_table): Use them.
2789
0edad749
AD
2790 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
2791 the job of system.h.
2792 * src/options.c: Don't include stdio.h and xalloc.h for the same
2793 reasons.
2794
5449dd0f
AD
27952001-12-10 Akim Demaille <akim@epita.fr>
2796
2797 * src/output.c (output, prepare): Make sure the values of the
2798 muscles `action' and `prologue' are 0-terminated.
2799
a870c567
AD
28002001-12-10 Akim Demaille <akim@epita.fr>
2801
2802 Clean up GCC warnings.
2803
2804 * src/reader.c (copy_action): `buf' is not used.
2805 (parse_skel_decl): Be static.
2806 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
2807 * src/options.h (create_long_option_table): Have a real prototype.
2808 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
2809 (hash_delete_at): Return const void *.
2810 Adjust casts to preserve the const.
2811
80df8768
AD
28122001-12-10 Akim Demaille <akim@epita.fr>
2813
2814 * configure.in: Require 2.52g.
2815 M4 is not needed, but AUTOM4TE is.
2816 * m4/m4.m4: Remove.
2817 * tests/Makefile.am: Adjust.
2818
f693ad14
AD
28192001-12-10 Akim Demaille <akim@epita.fr>
2820
2821 One structure for states is enough, even though theoretically
2822 there are LR(0) states and LALR(1) states.
2823
2824 * src/lalr.h (state_t): Remove.
2825 (state_table): Be state_t **, not state_t *.
2826 * src/state.h (core, CORE_ALLOC): Rename as...
2827 (state_t, STATE_ALLOC): this.
2828 Add the LALR(1) members: shifts, reductions, errs.
2829 * src/LR0.c (state_table): Rename as...
2830 (state_hash): this, to avoid name clashes with the global
2831 `state_table'.
2832 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
2833 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
2834
74ffbcb6
AD
28352001-12-10 Akim Demaille <akim@epita.fr>
2836
2837 Bison dumps core on bash.y.
2838 Reported by Pascal Bart.
2839
2840 * src/warshall.c (bitmatrix_print): New.
2841 (TC): Use it.
2842 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
2843 j must be the outer loop.
2844 * tests/regression.at (Broken Closure): New.
2845
07708e19
AD
28462001-12-05 Akim Demaille <akim@epita.fr>
2847
2848 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
2849 its argument.
2850