]> git.saurik.com Git - bison.git/blame - ChangeLog
Add argmatch.m4. Remove obstack.m4, strerror_r.m4.
[bison.git] / ChangeLog
CommitLineData
3dc5e96b
PE
12006-09-11 Paul Eggert <eggert@cs.ucla.edu>
2
3 * doc/bison.texinfo (Calc++ Parser): Fix memory leak reported by
4 Sander Brandenburg in
5 <http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00002.html>.
6 Also, fix minor white space and comment issues.
7
b2a0b7ca
JD
82006-09-04 Joel E. Denny <jdenny@ces.clemson.edu>
9
10 Finish implementation of per-type %destructor/%printer. Discussed
11 starting at
12 <http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>
13 and
14 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>.
15 * NEWS (2.3+): Add a description of this feature to the default
16 %destructor/%printer description.
17 * doc/bison.texinfo (Freeing Discarded Symbols): Likewise.
18 * src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set):
19 Invoke semantic_type_destructor_set or semantic_type_printer_set when a
20 list node contains a semantic type.
21 * src/symtab.c, src/symtab.h: Extend with a table that associates
22 semantic types with their %destructor's and %printer's.
23 (semantic_type_from_uniqstr, semantic_type_get,
24 semantic_type_destructor_set, semantic_type_printer_set): New functions
25 composing the public interface of that table.
26 (symbol_destructor_get, symbol_destructor_location_get,
27 symbol_printer_get, symbol_printer_location_get): If there's no
28 per-symbol %destructor/%printer, look up the per-type before trying
29 the default.
30 * tests/actions.at (Per-type %printer and %destructor): New test case.
31 * tests/input.at (Default %printer and %destructor redeclared):
32 Extend to check that multiple occurrences of %symbol-default in a
33 single %destructor/%printer declaration is an error.
34 (Per-type %printer and %destructor redeclared, Unused values with
35 per-type %destructor): New test cases.
36
3be03b13
JD
372006-09-04 Joel E. Denny <jdenny@ces.clemson.edu>
38
39 Require default %destructor/%printer to be declared using
40 %symbol-default instead of an empty symbol list, and start working on
41 new per-type %destructor/%printer. Discussed at
42 <http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00007.html>.
43 * NEWS (2.3+): Add %symbol-default to example.
44 * bison.texinfo (Freeing Discarded Symbols): Likewise.
45 (Bison Symbols): Add entry for %symbol-default.
46 * src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): New token.
47 (generic_symlist, generic_symlist_item): New nonterminals for creating
48 a list in which each item is a symbol, semantic type, or
49 %symbol-default.
50 (grammar_declaration): Use generic_symlist in %destructor and %printer
51 declarations instead of symbols.1 or an empty list.
52 (symbol_declaration, precedence_declaration, symbols.1): Update actions
53 for changes to symbol_list.
54 * src/reader.c: Update for changes to symbol_list.
55 * src/scan-code.l: Likewise.
56 * src/scan-gram.l: Scan new PERCENT_SYMBOL_DEFAULT token.
57 * src/symlist.c, src/symlist.h: Extend such that a list node may
58 represent a semantic type or a %symbol-default in addition to just an
59 ordinary symbol. Add switched functions for setting %destructor's and
60 %printer's.
61 * tests/actions.at, tests/input.at: Add %symbol-default to all default
62 %destructor/%printer declarations.
63
3508ce36
JD
642006-08-23 Joel E. Denny <jdenny@ces.clemson.edu>
65
66 Whether the default %destructor/%printer applies to a particular symbol
67 isn't a question of whether the user *declares* that symbol (in %token,
68 for example). It's a question of whether the user by any means
69 *defines* the symbol at all (by simply using a char token, for
70 example). $end is defined by Bison whereas any other token with token
71 number 0 is defined by the user. The error token is always defined by
72 Bison regardless of whether the user declares it with %token, but we
73 may one day let the user define error as a nonterminal instead.
74 * NEWS (2.3+): Say "user-defined" instead of "user-declared".
75 * doc/bison.texinfo (Freeing Discarded Symbols): Likewise, and document
76 the meaning of "user-defined".
77 * tests/actions.at (Default %printer and %destructor for user-declared
78 end token): Rename to...
79 (Default %printer and %destructor for user-defined end token): ...
80 this.
81
82 * src/symtab.c (symbol_destructor_get, symbol_printer_get): In the
83 computation of whether to apply the default, don't maintain a list of
84 every Bison-defined symbol. Instead, just check for a first character
85 of '$', which a user symbol cannot have, and check for the error token.
86
9350499c
JD
872006-08-21 Joel E. Denny <jdenny@ces.clemson.edu>
88
89 Don't apply the default %destructor or %printer to the error token,
90 $undefined, or $accept. This change fits the general rule that the
91 default %destructor and %printer are only for user-declared symbols,
92 and it solves several difficulties that are described in the new test
93 cases listed below.
94 * src/symtab.c (symbol_destructor_get, symbol_printer_get): Implement.
95 * tests/actions.at (Default %printer and %destructor are not for error
96 or $undefined, Default %printer and %destructor are not for $accept):
97 New test cases.
98
4d7370cb
JD
992006-08-19 Joel E. Denny <jdenny@ces.clemson.edu>
100
101 Allow %start after the first rule.
102 * src/reader.c (grammar_current_rule_begin): Don't set the start symbol
103 when parsing the first rule.
104 (check_and_convert_grammar): Search for it here after all grammar
105 declarations have been parsed. Skip midrules, which have dummy LHS
106 nonterminals.
107 * src/symtab.c (symbol_is_dummy): New function.
108 * src/symtab.h (symbol_is_dummy): Declare it.
109 * tests/input.at (%start after first rule): New test.
110
6d0ef4ec
JD
1112006-08-18 Joel E. Denny <jdenny@ces.clemson.edu>
112
113 Redo some of the previous commit: add back the ability to use
114 non-aliased/undeclared string literals since it might be useful to
115 those declaring %token-table.
116 * src/reader.c (check_and_convert_grammar): Undo changes in previous
117 commit: don't worry about complaints from symbols_pack.
118 * src/symtab.c (symbol_new, symbol_class_set,
119 symbol_check_alias_consistency): Undo changes in previous commit: count
120 each string literal as a new symbol and token, assign it a symbol
121 number, and don't complain about non-aliased string literals.
122 (symbols_pack): Since symbol_make_alias still does not decrement symbol
123 and token counts but does still set aliased tokens to the same number,
124 symbol_pack_processor now leaves empty slots in the symbols array.
125 Remove those slots.
126 * tests/regression.at (Undeclared string literal): Remove test case
127 added in previous commit since non-aliased string literals are allowed
128 again.
129 (Characters Escapes, Web2c Actions): Undo changes in previous commit:
130 remove unnecessary string literal declarations.
131 * tests/sets.at (Firsts): Likewise.
132
965537bc
JD
1332006-08-18 Joel E. Denny <jdenny@ces.clemson.edu>
134
135 Don't allow an undeclared string literal, but allow a string literal to
136 be used before its declaration.
137 * src/reader.c (check_and_convert_grammar): Don't invoke packgram if
138 symbols_pack complained.
139 * src/symtab.c (symbol_new): Don't count a string literal as a new
140 symbol.
141 (symbol_class_set): Don't count a string literal as a new token, and
142 don't assign it a symbol number since symbol_make_alias does that.
143 (symbol_make_alias): It's not necessary to decrement the symbol and
144 token counts anymore. Don't assume that an alias declaration occurs
145 before any uses of the identifier or string, and thus don't assert that
146 one of them has the highest symbol number so far.
147 (symbol_check_alias_consistency): Complain if there's a string literal
148 that wasn't declared as an alias.
149 (symbols_pack): Bail if symbol_check_alias_consistency failed since
150 symbol_pack asserts that every token has been assigned a symbol number
151 although undeclared string literals have not.
152 * tests/regression.at (String alias declared after use, Undeclared
6d0ef4ec 153 string literal): New test cases.
965537bc
JD
154 (Characters Escapes, Web2c Actions): Declare string literals as
155 aliases.
156 * tests/sets.at (Firsts): Likewise.
157
47aee066
JD
1582006-08-14 Joel E. Denny <jdenny@ces.clemson.edu>
159
160 In the grammar scanner, STRING_FINISH unclosed constructs and return
161 them to the parser in order to improve error messages.
162 * src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER,
163 SC_BRACED_CODE, SC_PROLOGUE): Implement.
164 * tests/input.at (Unclosed constructs): New test case.
165 * tests/regression.at (Invalid inputs): Update now that unclosed %{ is
166 seen.
167
168 * src/scan-gram.h, src/scan-gram.l (gram_last_braced_code_loc): Remove
169 unused global.
170
1f6b3679
JD
1712006-08-13 Joel E. Denny <jdenny@ces.clemson.edu>
172
173 Handle string aliases for character tokens correctly.
174 * src/symtab.c (symbol_user_token_number_set): If the token has an
175 alias, check and set its alias's user token number instead of its own,
176 which is set to indicate the alias. Previously, every occurrence of
177 the character token in the grammar overwrote that alias indicator with
178 the character code.
179 * tests/input.at (String aliases for character tokens): New test.
180
219741d8
JD
1812006-08-12 Joel E. Denny <jdenny@ces.clemson.edu>
182
183 * src/parse-gram.y: Add `%expect 0' so we don't overlook conflicts.
184
11daa4e7
PE
1852006-08-11 Paul Eggert <eggert@cs.ucla.edu>
186
187 * bootstrap: Put in need-ngettext argument to AM_GNU_GETTEXT,
188 to prevent failures when building on older platforms.
189 Check for autopoint failure.
190 Set XGETTEXT_OPTIONS to values that check for C format strings,
191 so that translators are warned about them (this also helps
192 prevent core dumps).
193
194 * lib/subpipe.c (create_subpipe): Use new gnulib pipe_safer
195 function, since it simplifies our code a bit.
196
197 * configure.ac (AC_ARG_ENABLE): Use -Wextra -Wno-sign-compare
198 rather than -W, so we don't get bogus warnings about sign comparisons.
199 Add -Wpointer-arith, since that warning is useful (it reports code
200 that does not conform to C89 and that some compilers reject).
201 * data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c: Undo latest change,
202 since it's no longer needed.
203
f9bfc42a
JD
2042006-08-10 Joel E. Denny <jdenny@ces.clemson.edu>
205
206 Clean up scanners a bit.
207 * src/flex-scanner.h (FLEX_NO_OBSTACK): New macro that blocks obstack
208 definitions so gcc won't warn when obstack_for_string is unused.
209 * src/scan-code.l: config.h and system.h are already #include'd by
210 scan-code-c.c, so get rid of them here.
211 * src/scan-gram.l: Likewise.
212 * src/scan-skel.l: Likewise, and use flex-scanner.h without obstack
213 definitions rather than duplicating the rest of it.
214 * src/scan-gram-c.c, scan-skel-c.c: #include "system.h".
215
06e8700a
JD
2162006-08-09 Joel E. Denny <jdenny@ces.clemson.edu>
217
218 Suppress signed/unsigned comparison warnings for yycheck.
219 * data/c.m4 (b4_safest_int_type): New macro.
220 * data/glr.c, data/lalr1.cc: Wherever you compare yycheck[i] against
221 a signed int type, cast it to b4_safest_int_type first.
222 * data/yacc.c: Likewise.
223 (b4_safest_int_type): Overwrite the one from c.m4 since b4_int_type is
224 also overwritten.
225
9c437126
PE
2262006-08-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change)
227
228 * doc/bison.texinfo: Fix some typos.
229
284d8a13
PE
2302006-08-02 Paul Eggert <eggert@cs.ucla.edu>
231
232 * m4/.cvsignore: Add inttypes_h.m4,lib-ld.m4, lib-prefix.m4,
233 po.m4, stdint_h.m4, uintmax_t.m4, ulonglong.m4, warning.m4.
234
235 * bootstrap (gnulib_tool): Stop using --assume-autoconf;
236 the latest gnulib does this a different way.
237 (get_translations): Sharuzzaman Ahmat Raslan reported that the ms
238 translation was patched, so stop omitting it.
239
ec5479ce
JD
2402006-07-29 Joel E. Denny <jdenny@ces.clemson.edu>
241
242 Enable declaration of default %printer/%destructor. Make the parser
243 use these for all user-declared grammar symbols for which the user does
244 not declare a specific %printer/%destructor. Thus, the parser uses it
245 for token 0 if the user declares it but not if Bison generates it as
246 $end. Discussed starting at
247 <http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>,
248 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>,
249 and
250 <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00019.html>.
251 * NEWS (2.3+): Mention.
252 * doc/bison.texinfo (Actions in Mid-Rule): It's no longer impossible to
253 declare a %destructor for a mid-rule's semantic value. It's just
254 impossible to declare one specific to it.
255 (Freeing Discarded Symbols): Mention that @$ can be used in %destructor
256 code. Describe default %destructor form.
257 * src/parse-gram.y (grammar_declaration): Parse default
258 %printer/%destructor declarations.
259 * src/output.c (symbol_destructors_output): Use symbol_destructor_get
260 and symbol_destructor_location_get rather than accessing the destructor
261 and destructor_location members of struct symbol.
262 (symbol_printers_output): Likewise but for %printer's.
263 * src/reader.c (symbol_should_be_used): Likewise but for %destructor's
264 again.
265 * src/symtab.c (default_destructor, default_destructor_location,
266 default_printer, default_printer_location): New static global
267 variables to record the default %destructor and %printer.
268 (symbol_destructor_get, symbol_destructor_location_get,
269 symbol_printer_get, symbol_printer_location_get): New functions to
270 compute the appropriate %destructor and %printer for a symbol.
271 (default_destructor_set, default_printer_set): New functions to set the
272 default %destructor and %printer.
273 * src/symtab.h: Prototype all those new functions.
274 * tests/actions.at (Default %printer and %destructor): New test to
275 check that the right %printer and %destructor are called, that they're
276 not called for $end, and that $$ and @$ work correctly.
277 (Default %printer and %destructor for user-declared end token): New
278 test to check that the default %printer and %destructor are called for
279 a user-declared end token.
280 * tests/input.at (Default %printer and %destructor redeclared, Unused
281 values with default %destructor): New tests to check related grammar
282 warnings and errors.
283
868d2d96
JD
2842006-07-29 Joel E. Denny <jdenny@ces.clemson.edu>
285
286 Clean up handling of %destructor for the end token (token 0).
287 Discussed starting at
288 <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00019.html>
289 and
290 <http://lists.gnu.org/archive/html/help-bison/2006-07/msg00013.html>.
291
292 Make the skeletons consistent in how they pop the end token and invoke
293 its %destructor.
294 * data/glr.c (yyrecoverSyntaxError, yyparse): Don't pop the start
295 state, which has token number 0, since this would invoke the
296 %destructor for the end token.
297 * data/lalr1.cc (yy::parser::parse): Don't check for the final state
298 until after shifting the end token, or else it won't be popped.
299 * data/yacc.c (yyparse): Likewise.
300
301 * data/glr.c (yyparse): Clear the lookahead after shifting it even when
302 it's the end token. Upon termination, destroy an unshifted lookahead
303 even when it's the end token.
304 * data/lalr1.cc (yy::parser::parse): Likewise.
305 * data/yacc.c (yyparse): Likewise.
306
307 * src/reader.c (packgram): Don't check rule 0. This suppresses unused
308 value warnings for the end token when the user gives the end token a
309 %destructor.
310
311 * tests/actions.at (Printers and Destructors): Test all the above.
312
62a9592d
PE
3132006-07-24 Paul Eggert <eggert@cs.ucla.edu>
314
315 Update to latest gnulib and gettext versions.
316 * bootstrap (gnulib-modules): Remove hard-locale, stdio-safer.
317 Add fopen-safer.
318 (gnulib_files): Add m4/warning.m4. Don't worry about files
319 overwritten by autopoint.
320 Replace gt_INTL_SUBDIR_CORE with an empty body in m4/gettext_gl.m4.
321 Suppress "id", "ms", "tr" translations for now, since gettext 0.15
322 rejects them.
323 Don't use autoreconf; instead, invoke autopoint etc. by hand,
324 so that we can remove the intl files at a better time.
325 (intl_files_to_remove): Remove aclocal.m4, since it gets
326 rebuilt anyway. Remove m4/inttypes_h.m4, m4/inttypes.m4,
327 m4/isc-posix.m4, m4/lib-ld.m4, m4/lib-prefix.m4, m4/po.m4,
328 m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4.
329 Add m4/inttypes-h.m4, m4/lock.m4, m4/visibility.m4.
330 Remove datarootdir hack; no longer needed.
331 * configure.ac: Use gl_WARNING_CFLAGS rather than BISON_WARNING.
332 (AM_GNU_GETTEXT_VERSION): Bump from 0.12 to 0.15.
333 * lib/.cvsignore: Remove hard-locale.c, hard-locale.h, strdup.c,
334 strdup.h.
335 * m4/.cvsignore: Remove hard-locale.m4, strdup.m4.
336 * m4/warning.m4: Remove from CVS, since we now use gnulib's version.
337
10d6970f
PE
3382006-07-20 Paul Eggert <eggert@cs.ucla.edu>
339
340 * bootstrap: Adjust to today's change to gnulib-tool by invoking
341 it with --assume-autoconf='latest-stable'.
342
50a33993
JD
3432006-07-13 Joel E. Denny <jdenny@ces.clemson.edu>
344
345 * src/parse-gram.y (grammar_declaration): Don't confuse Doxygen (at
346 least 1.4.7 and 1.4.4) by putting a #line between `typedef union
347 YYSTYPE' and `{'.
348 * src/muscle_tab.h (muscle_grow): Replace the header comments with
349 those from muscle_tab.c since the old ones are misleading.
350
2ce4ed68
AD
3512006-07-13 Akim Demaille <akim@epita.fr>
352
353 Support %define "KEY" {VALUE}.
354 * src/scan-code.h, src/scan-code.l (translate_action)
355 (translate_rule_action, translate_symbol_action, translate_code):
356 Return char *, not const char *.
357 * src/parse-gram.y (declaration): Rename as...
358 (prologue_declaration): this.
359 (string_content): Remove this nonterminal, use STRING.
360 (braceless, content, content.opt): New nonterminal.
361 Use them.
362 (%define): Now accept content.opt, i.e., accept also BRACED_CODE
363 as value.
364 * src/scan-gram.l (getargs.h): Don't include it.
365
db7e5eb5
PE
3662006-07-12 Paul Eggert <eggert@cs.ucla.edu>
367
368 * data/lalr1.cc (YYCDEBUG): Use 'if (yydebug_) (*yycdebug_)'
369 rather than a for-loop that declares a local bool variable. This
370 should work around a compatibility problem with a Cray x1e C++
371 compiler reported by Hung Nguyen in
372 <http://lists.gnu.org/archive/html/help-bison/2006-07/msg00022.html>.
373 The for-loop was introduced in the 2004-11-17 change but I don't
374 know why it was needed.
375
a5d80ba5
AD
3762006-07-12 Akim Demaille <akim@epita.fr>
377
378 * data/c.m4: Comment changes.
379
23eb2a69
AD
3802006-07-10 Akim Demaille <akim@lrde.epita.fr>
381
382 * src/complain.c (error_message, ERROR_MESSAGE): New.
383 To factor...
384 (fatal_at, fatal, warn_at, warn, complain_at, complain): these.
385 * src/complain.h, src/complain.c (warning_issued): Remove, unused.
386
ddc8ede1
PE
3872006-07-09 Paul Eggert <eggert@cs.ucla.edu>
388
389 * NEWS: Instead of %union, you can define and use your own union type
390 YYSTYPE if your grammar contains at least one <type> tag.
391 Your YYSTYPE need not be a macro; it can be a typedef.
392 * doc/bison.texinfo (Value Type, Multiple Types, Location Type):
393 (Union Decl, Decl Summary): Document this.
394 * data/glr.c (YYSTYPE): Implement this.
395 * data/glr.cc (YYSTYPE): Likewise.
396 * data/lalr1.cc (YYSTYPE): Likewise.
397 * data/yacc.c (YYSTYPE): Likewise.
398 * src/output.c (prepare): Output tag_seen_flag.
399 * src/parse-gram.y (declaration, grammar_declaration):
400 Use 'union_seen' rather than 'typed' to determine whether
401 %union has been seen, since grammars can now be typed without
402 %union.
403 (symbol_declaration, type.opt, symbol_def):
404 Keep track of whether a tag has been seen.
405 * src/reader.c (union_seen, tag_seen): New vars.
406 (typed): remove.
407 * src/reader.h (union_seen, tag_seen, typed): Likewise.
408 * src/scan-code.l (untyped_var_seen): New variable.
409 (handle_action_dollar): Adjust to above changes.
410 (handle_action_dollar, handle_action_at):
411 Improve overflow checking for outlandish numbers.
412 * tests/input.at (AT_CHECK_UNUSED_VALUES): Redo test to
413 avoid new diagnostics generated by above changes.
414 * tests/regression.at (YYSTYPE typedef): Add test to check
415 for type tags without %union.
416
417 * src/symlist.c (symbol_list_length): Return int, not unsigned
418 int, since callers expect int. This may need to get revisited
419 once we have proper integer overflow checking.
420
421 * src/scan-gram.h (gram_scanner_cursor): Remove decl, since this
422 object is now static.
423
424 * src/getargs.c (flags_argmatch): Return void, not int,
425 to pacify ./configure --enable-gcc-warnings.
426
427 * src/flex-scanner.h (STRING_FREE): Don't use FLEX_PREFIX (last_string)
428 since last_string is already defined to FLEX_PREFIX (last_string).
429
7b42569e
AD
4302006-07-09 Akim Demaille <akim@lrde.epita.fr>
431
432 Implement --warnings/-W.
433 * src/getargs.c (report_argmatch, trace_argmatch): Remove,
434 replaced by...
435 (flags_argmatch, FLAGS_ARGMATCH): this new function and macro.
436 Adjust callers.
437 * src/getargs.h, src/getargs.c (warnings, warnings_flags)
438 (warnings_args, warnings_types): New.
439 (getargs, short_options, long_options): Accept -W/--warnings.
440 Sort the options by alphabetical order, upper case letter right
441 before its lower case.
442
3b452f4e
JD
4432006-07-09 Joel E. Denny <jdenny@ces.clemson.edu>
444
445 Change %merge result type clash warnings to errors. Discussed at
446 <http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00026.html>.
447 * src/reader.c (record_merge_function_type): Use complain_at.
448 * tests/glr-regression.at (Missed %merge type warnings when LHS type is
449 declared later): Update test case results.
450
b8a41559
AD
4512006-07-09 Akim Demaille <akim@lrde.epita.fr>
452
453 * src/getargs.h, src/getargs.c: Swap --report and --trace handling
454 to be in alphabetical order.
455 (trace_args): Spelling fixes.
456
cd9e1ba2
PE
4572006-07-09 Paul Eggert <eggert@cs.ucla.edu>
458
459 * data/yacc.c (YYID, yy_stack_print): Prefix local vars with "yy"
460 so they don't collide with user-defined macros.
461 (yy_stack_print): Don't assume that yytype_int16 promotes to int;
462 this was never guaranteed, and now that we're using gnulib stdint,
463 which defines int_fast16_t to long int, the problem is exposed.
464
cb48f191
PE
4652006-07-08 Paul Eggert <eggert@cs.ucla.edu>
466
b8445a15
PE
467 * data/c.m4 (b4_basename): Simplify a bit, since we don't
468 need the full POSIX semantics (and weren't implementing them
469 anyway).
470
cb48f191
PE
471 Adjust to Autoconf 2.60 and today's gnulib.
472 * bootstrap (gnulib_modules): Add stdint.
473 Remove special case for m4/onceonly_2_57.m4, since gnulib-tool
474 no longer copies it.
475 (intl_files_to_remove): Remove m4/longlong.m4 and m4/wchar_t.m4,
476 since stdint needs the former and wcwidth (which is now required
477 by mbswidth) needs the latter.
478 Append 'datarootdir = @datarootdir@' to po/Makefile.in.in, to
479 work around a compatibility glitch between gettext 0.14.6 and
480 Autoconf 2.60.
481 * configure.ac (AC_PREREQ): Require Autoconf 2.60.
482 Do not check for uintptr_t, since new stdint module does the right
483 thing.
484 * lib/.cvsignore: Remove alloca.c, alloca.h, alloca_.h.
485 Add stdint.h, stdint_.h, wcwidth.h.
486 * m4/.cvsignore: Remove alloca.m4, onceonly.m4.
487 Add absolute-header.m4, double-slash-root.m4, longlong.m4,
488 stdint.m4, wchar_t.m4, wcwidth.m4.
489 * src/files.c: Include <dirname.h> and <stdio-safer.h> in the
490 usual order for ../lib/*.h files.
491 (file_name_split): Use last_component, not base_name, to adjust
492 to gnulib changes.
493 * src/parse-gram.h: Include <strverscmp.h> in the usual order
494 for ../lib/*.h files.
495 (YYTYPE_INT16, YYTYPE_INT8, YYTYPE_UINT16, YYTYPE_UINT8):
496 Define unconditionally, since we now assume the stdint module.
497 * src/scan-skel.l: Include <dirname.h>.
498 (BASE_QPUTS): Use last_component, not base_name.
499 * src/system.h: Include <unlocked-io.h> in the usual order
500 for ../lib/*.h files. Include <stdint.h> unconditionally,
501 since we now use the stdint module.
502 (uintptr_t): Declare if UINTPTR_MAX is not defined, not
503 HAVE_UINTPTR_T, since we now use the stdint module.
504 (base_name): Remove decl, since files now include <dirname.h>
505 to get the decl.
506
cd48d21d
AD
5072006-07-08 Akim Demaille <akim@lrde.epita.fr>
508
509 * data/c.m4 (b4_location_initial_column, b4_location_initial_line):
510 New, default to 1.
511 * data/yacc.c, data/glr.c, data/location.cc: Use them.
512 * NEWS, doc/bison.texinfo: The initial column and line are 1 by
513 default.
514 * tests/calc.at: Adjust.
515
8ec0a172
AD
5162006-07-08 Akim Demaille <akim@lrde.epita.fr>
517
b8445a15 518 * data/c.m4 (b4_basename): New.
8ec0a172
AD
519 (b4_syncline): Also output the location of its invocation (from
520 the skeleton).
521 (b4_user_action, b4_define_user_action, b4_user_actions)
522 (b4_user_initial_action, b4_user_post_prologue, b4_user_start_header)
523 (b4_user_stype): New.
524 * data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: Use them.
525
4a678af8
JD
5262006-07-07 Joel E. Denny <jdenny@ces.clemson.edu>
527
528 In the grammar file, the first column is 1 not 0 on the first line as
529 on every other line.
530 * src/parse-gram.y (%initial-action): Initialize @$ correctly.
531 * tests/input.at (Torturing the Scanner): Update output.
532
533 * src/scan-gram.l (scanner_cursor): Declare it static.
534
dd60572a
JD
5352006-07-07 Joel E. Denny <jdenny@ces.clemson.edu>
536
537 In warnings, say "previous declaration" rather than "first
538 declaration".
539 * src/symtab.c (redeclaration): Do that here.
540 * src/reader.c (record_merge_function_type): In the case of a result
541 type clash, report the previous declaration rather than the very first
542 one in the grammar file.
543 * tests/glr-regression.at (Missed %merge type warnings when LHS type is
544 declared later): Add a third declaration to check this behavior.
545 * tests/input.at (Incompatible Aliases): Update output.
546
2073e1b6
AD
5472006-06-27 Akim Demaille <akim@epita.fr>
548
549 * doc/Doxyfile.in: New.
550 * doc/Makefile.am: Use it.
551 * src/lalr.h, src/symtab.h: Initial doxygenation.
552
8ee5b538
JD
5532006-06-26 Joel E. Denny <jdenny@ces.clemson.edu>
554
555 Don't miss %merge result type warnings just because the LHS types are
fab044e6
JD
556 declared after the %merge. This continues the effort of the previous
557 patch.
8ee5b538
JD
558 * src/reader.c (get_merge_function): Don't set the merger type yet.
559 (record_merge_function_type): New function for setting the merger type
560 and checking for clashes.
561 (grammar_current_rule_merge_set): Set the location of the %merge for
562 the current rule.
563 (packgram): Invoke record_merge_function_type for each rule now that
564 all symbol type declarations have been parsed.
565 * src/reader.h (merger_list.type_declaration_location): New member
566 storing the location of the first %merge from which the type for this
567 merging function was derived.
568 * src/symlist.h (symbol_list.merger_declaration_location): New member
569 storing the location of a rule's %merge, if any.
570 * tests/glr-regression.at (Missed %merge type warnings when LHS type is
571 declared later): New test to catch the error fixed by the above patch.
572
ffa4ba3a
JD
5732006-06-26 Joel E. Denny <jdenny@ces.clemson.edu>
574
575 Get action warnings (grammar_rule_check) right even when symbol
fab044e6
JD
576 declarations appear after the rules. Discussed at
577 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00108.html>
578 and
579 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00151.html>.
580 Don't mistake the type of $$ in a midrule to be that of its parent
581 rule's $$.
ffa4ba3a
JD
582 * src/reader.c (grammar_current_rule_end): Don't invoke
583 grammar_rule_check yet since not all symbol declarations may have been
584 parsed yet.
585 (grammar_midrule_action): Likewise.
586 Don't record whether the midrule's $$ has been used yet since actions
587 haven't been translated yet.
588 Record the midrule's parent rule and its RHS index within the parent
589 rule.
590 (grammar_current_rule_action_append): Don't translate the action yet
591 since not all symbol declarations may have been parsed yet and, thus,
592 warnings about types for $$, $n, @$, and @n can't be reported yet.
593 (packgram): Translate the action and invoke grammar_rule_check now that
594 all symbol declarations have been parsed.
595 * src/scan-code.l (handle_action_dollar): Now that this is invoked
596 after parsing the entire grammar file, the symbol list here in the case
597 of a midrule is actually the midrule's empty RHS, so reference its
598 parent rule's RHS where necessary.
599 On the other hand, now that you can already know it's a midrule, you
600 aren't forced to think $$ has the same type as its parent rule's $$.
601 (handle_action_at): In the case of a midrule, reference the parent rule
602 where necessary.
603 * src/symlist.c (symbol_list_new): Initialize new midrule-related
604 members.
605 (symbol_list_length): Now that this is invoked after all rules have
606 been parsed, a NULL symbol (rather than a NULL symbol list node)
607 terminates a rule. symbol_list_print already does this correctly.
608 * src/symlist.h (symbol_list.midrule_parent_rule,
609 symbol_list.midrule_parent_rhs_index): New members so that midrules can
610 remember their relationships with their parents.
611 * tests/input.at (Type Clashes): Extend to catch the midrule $$ error
612 fixed by the above patch.
613 (_AT_UNUSED_VALUES_DECLARATIONS, AT_CHECK_UNUSED_VALUES): New m4 macros
614 implementing...
615 (Unused values): ... this old test case and...
616 (Unused values before symbol declarations): ... this new test case.
617 This one is the same as `Unused values' except that all symbol
618 declarations appear after the rules in order to catch the rest of the
619 errors fixed by the above patch.
620
e256e17f
JD
6212006-06-26 Joel E. Denny <jdenny@ces.clemson.edu>
622
300a1930
JD
623 More cleanup.
624 * src/reader.c (current_rule): Declare it static since it's no longer
625 used outside this file.
626 (grammar_current_rule_action_append): Remove redundant arguments from
627 translate_rule_action invocation.
628 * src/reader.h (current_rule): Remove this unused extern.
629 * src/scan-code.h (translate_rule_action): Remove redundant arguments.
630 * src/scan-code.l (translate_rule_action): Likewise.
e256e17f 631
381ecb06
JD
6322006-06-25 Joel E. Denny <jdenny@ces.clemson.edu>
633
634 Clean up yesterday's patch.
635 * parse-gram.y (rhs): Move grammar_midrule_action invocation from here
636 to...
637 * src/reader.c (grammar_current_rule_action_append): ... here for
638 consistency with grammar_current_rule_symbol_append.
639 * tests/regression.at (Braced code in declaration in rules section):
640 Make yyerror and yylex static as usual.
641
4210cd0b
JD
6422006-06-24 Joel E. Denny <jdenny@ces.clemson.edu>
643
644 Fix bug that mistakes braced code in a declaration in the rules section
645 to be a rule action. Mentioned at
646 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00105.html>.
647 * src/scan-gram.l: Move midrule action detection from the start of the
648 scanning of any braced code to...
649 * src/parse-gram.y (rhs): ... the parsing of braced code as a rule
650 action. For readability, use $2 and @2 rather than the equivalent
651 global variables.
652 * tests/regression.at (Braced code in declaration in rules section):
653 New test to catch the error fixed by the above patch.
654
655 Work on code readability some.
656 * src/scan-code.l (current_rule): Get rid of this misleading and
657 redundant declaration: it's actually extern'ed in reader.h.
658 (YY_DECL, code_lex, handle_action_dollar, handle_action_at,
659 translate_action): Add a rule argument and use it instead of the global
660 current_rule.
661 (translate_rule_action): This already receives current_rule through an
662 argument, so pass it on to translate_action instead of assigning
663 current_rule to current_rule.
664 (translate_symbol_action, translate_code): Pass rule = NULL to
665 translate_action.
666
34f98f46
JD
6672006-06-23 Joel E. Denny <jdenny@ces.clemson.edu>
668
669 Rename %before-definitions to %start-header and %after-definitions to
670 %end-header. Don't use these declarations to separate pre-prologue
671 blocks from post-prologue blocks. Add new order-independent
672 declarations %before-header and %after-header as alternatives to the
673 traditional Yacc pre-prologue and post-prologue blocks. Discussed at
674 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00110.html>.
675 * NEWS (2.3+): Update for these changes.
676 * data/glr.c (b4_before_definitions): Update to...
677 (b4_start_header): ... this.
678 (b4_after_definitions): Update to...
679 (b4_end_header): ... this.
680 * data/glr.cc: Likewise.
681 * data/lalr1.cc: Likewise.
682 * data/yacc.c: Likewise.
683 * doc/bison.texinfo (The prologue): Update names, and replace remaining
684 prologue blocks with %*-header declarations.
685 (Calc++ Parser): Likewise.
686 (Bison Declaration Summary): Update names.
687 (Bison Symbols): Update description.
688 * src/parse-gram.y (PERCENT_AFTER_DEFINITIONS): Update to...
689 (PERCENT_END_HEADER): ... this.
690 (PERCENT_BEFORE_DEFINITIONS): Update to...
691 (PERCENT_START_HEADER): ... this.
692 (PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens.
693 (declaration): Update token names and m4 macro names.
694 When parsing %end-header and %start-header, invoke translate_code
695 before muscle_code_grow, and no longer set global booleans to remember
696 whether these declarations have been seen.
697 Parse new %after-header and %before-header.
698 * src/reader.c (before_definitions, after_definitions): Remove.
699 (prologue_augment): Accept a new bool argument to specify whether to
700 augment the pre-prologue or post-prologue.
701 * src/reader.h (before_definitions, after_definitions): Remove these
702 extern's.
703 (prologue_augment): Add new bool argument.
704 * src/scan-gram.l (PERCENT_AFTER_DEFINITIONS): Update to...
705 (PERCENT_END_HEADER): ... this.
706 (PERCENT_BEFORE_DEFINITIONS): Update to...
707 (PERCENT_START_HEADER): ... this.
708 (PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens.
709 * tests/actions.at (Printers and Destructors): Update names.
710
31b2b07e
JD
7112006-06-22 Joel E. Denny <jdenny@ces.clemson.edu>
712
713 Add comparison operators for C++ location classes. Discussed at
714 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00092.html>.
715 * data/c++.m4 (b4_define_location_comparison): New boolean %define
716 declaration indicating whether filename_type has an operator==. If
717 filename_type is `std::string', it defaults to `1', `0' otherwise.
718 * data/location.cc: Iff b4_define_location_comparison is `1', add
719 operator== and operator!= for class position and for class location.
720
721 Some minor fixes.
722 * src/scan-action.l: Remove unused file.
723 * src/symtab.c (symbol_printer_set): Use printer_location not
724 destructor_location.
725 * src/symtab.h (struct symbol): Replace incorrect source comment for
726 printer members.
727 * tests/input.at (Incompatible Aliases): Update output with correct
728 printer location.
729
9bc0dd67
JD
7302006-06-20 Joel E. Denny <jdenny@ces.clemson.edu>
731
732 Don't put the pre-prologue in the header file. For the yacc.c code
733 file and the glr.c header and code files, move the pre-prologue before
734 the token definitions. Add new %before-definitions and
735 %after-definitions to declare code that will go in both the header file
736 and code file. Discussed at
737 <http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00000.html>,
738 <http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00016.html>,
739 and
740 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00055.html>.
741 * NEWS (2.3+): Describe these changes.
742 * data/glr.c (b4_pre_prologue): Move from within to before...
743 (b4_shared_declarations): ... this.
744 Add new b4_before_definitions before b4_token_enums.
745 Add new b4_after_definitions at the end.
746 * data/glr.cc (b4_pre_prologue): Replace with...
747 (b4_before_definitions): ... this in the header file.
748 (b4_after_definitions): New near the end of the header file.
749 * data/lalr1.cc (b4_pre_prologue): Move from the header file to the
750 code file right before including the header file.
751 (b4_before_definitions): New in the previous position of
752 b4_pre_prologue in the header file.
753 (b4_after_definitions): New near the end of the header file.
754 * data/yacc.c: Clean up some m4 quoting especially in the header file.
755 (b4_token_enums_defines): In the code file, move to right before
756 YYSTYPE for consistency with the header file.
757 (b4_before_definitions): New right before b4_token_enums_defines in
758 both the header and code file.
759 (b4_after_definitions): New right after YYLTYPE and yylloc in both the
760 header and code file.
761 * doc/bison.texinfo (Prologue): Show use of %before-definitions instead
762 of prologues for %union dependencies.
763 (Bison Declaration Summary): In %defines description, mention the
764 effect of %before-definitions and %after-definitions on the header
765 file.
766 (Calc++ Parser): Forward declare driver in a %before-definitions rather
767 than in the pre-prologue so that make check succeeds.
768 (Bison Symbols): Add entries for %before-definitions and
769 %after-definitions.
770 * src/parse-gram.y (PERCENT_BEFORE_DEFINITIONS): New token for
771 %before-definitions.
772 (PERCENT_AFTER_DEFINITIONS): New token for %after-definitions.
773 (declaration): Parse those declarations and append to
774 b4_before_definitions and b4_after_definitions, respectively.
775 * src/reader.c (before_definitions, after_definitions): New bools to
776 track whether those declarations have been seen.
777 (prologue_augment): Add to the post-prologue if %union,
778 %before-definitions, or %after-definitions has been seen.
779 * src/reader.h (before_definitions, after_definitions): New extern's.
780 * src/scan-gram.l: Scan the new declarations.
781 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Place the second
782 prologue block in a %before-definitions or a %after-definitions based
783 on whether the %union is declared.
784 * tests/regression.at (Early token definitions with --yacc, Early token
785 definitions without --yacc): Move tests for token definitions into the
786 post-prologue since token names are no longer defined in the
787 pre-prologue.
788
203b9274
AD
7892006-06-20 Akim Demaille <akim@epita.fr>
790
791 * src/symtab.h, src/symtab.c (symbol_from_uniqstr): New.
792 (symbol_get): Use it.
793 * src/parse-gram.y: Use it.
794
a7ee59cf
JD
7952006-06-19 Joel E. Denny <jdenny@ces.clemson.edu>
796
797 * src/scan-gram.l: Remove unused declaration of last_string_1 so the
798 build succeeds when configured with --enable-gcc-warnings.
799
5a2baae7
PE
8002006-06-19 Paul Eggert <eggert@cs.ucla.edu>
801
33ad1a9c
PE
802 * src/parse-gram.y (char_name): New function.
803 (CHAR, STRING, string_content): For %printer, properly escape.
804 (ID): Prefer fputs to fprintf.
805 (id): Reindent to be consistent with other rules.
806 Properly quote char.
807
5a2baae7
PE
808 The Translation Project changed its way of publishing translations
809 to maintainers. I haven't received any responses to my request
810 for supporting the old way, or for documenting the new way. I
811 have modified 'bootstrap' to use screen scraping
812 (in this case, HTML scraping). This is unreliable and inelegant,
813 but I don't see any better way. Yuck.
814 * bootstrap (TP_URL, WGET_COMMAND): New vars.
815 (get_translations): New function, which uses HTML scraping to
816 deduce locations of latest translations.
817 Use this function to grab both bison and bison-runtime .po files.
818 Don't bother priming the pump for the runtime-po domain any more,
819 as it's now translated better than bison is.
820
58d7a1a1
AD
8212006-06-19 Akim Demaille <akim@epita.fr>
822
823 * src/scan-gram.l: No longer "parse" things after `%union' until
824 `{'. Rather, return a single "%union" token.
825 No longer make symbols: return strings, and leave the conversion
826 to symbols to the parser.
827 (SC_PRE_CODE, token_type): Remove.
828 * src/parse-gram.y (%union): New field `character'.
829 Sort tokens.
830 (CHAR): New token.
831 (ID, ID_COLON): Now that the scanner no longer makes them
832 identifiers, adjust all uses to invoke symbol_get.
833 (id_colon): New, wraps the conversion from string to symbol.
834 (%union): Accept a possible union_name.
835 (symbol): Now can be a char.
836 * data/c.m4 (b4_union_name): Leave a default value.
837 * data/glr.c, data/yacc.c: Use it.
838
b931235e
JD
8392006-06-11 Joel E. Denny <jdenny@ces.clemson.edu>
840
841 For associating token numbers with token names for "yacc.c", don't use
842 #define statements unless `--yacc' is specified; always use enum
843 yytokentype. Most important discussions start at:
844 <http://lists.gnu.org/archive/html/bison-patches/2005-09/msg00053.html>,
845 <http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00052.html>,
846 and
847 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00043.html>.
848 * NEWS (2.3+): Mention.
849 * data/c.m4 (b4_yacc_if): New.
850 (b4_token_enums_defines): Use b4_yacc_if to decide whether to add the
851 token #define's.
852 * doc/bison.texinfo (Bison Options): Describe the effect of `--yacc'
853 on token name definitions.
854 * src/getargs.c (usage): Capitalize `Yacc' in English.
855 * src/output.c (prepare): Define b4_yacc_flag.
856 * tests/regression.at (Early token definitions): Test that tokens names
857 are defined before the pre-prologue not just before the post-prologue.
858 Remove this test case and copy to...
859 (Early token definitions with --yacc): ... this to test #define's.
860 (Early token definitions without --yacc): ... and this to test enums.
861
9e6e7ed2
PE
8622006-06-11 Paul Eggert <eggert@cs.ucla.edu>
863
864 * NEWS: Reword the post-2.3 change to not be so optimistic about
865 removing the old "look-ahead" spelling.
866 Update previous look-ahead/lookahead change reports.
867 * REFERENCES: look-ahead -> lookahead (since that's
868 what he actually wrote).
869 * doc/refcard.tex: look ahead -> lookahead,
870 look-ahead -> lookahead
871
742e4900
JD
8722006-06-09 Joel E. Denny <jdenny@ces.clemson.edu>
873
874 For consistency, use `lookahead' instead of `look-ahead' or
875 `look_ahead'. Discussed starting at
876 <http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00049.html>
877 and then at
878 <http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00017.html>.
879 * NEWS: For the next release, note the change to `--report'.
880 * TODO, doc/bison.1: Update English.
881 * doc/bison.texinfo: Update English.
882 (Understanding Your Parser, Bison Options): Document as
883 `--report=lookahead' rather than `--report=look-ahead'.
884 * src/conflicts.c: Update English in comments.
885 (lookahead_set): Rename from look_ahead_set.
886 (flush_reduce): Rename argument look_ahead_tokens to lookahead_tokens.
887 (resolve_sr_conflict): Rename local look_ahead_tokens to
888 lookahead_tokens, and update other uses.
889 (flush_shift, set_conflicts, conflicts_solve, count_sr_conflicts,
890 count_rr_conflicts, conflicts_free): Update uses.
891 * src/getargs.c (report_args): Move "lookahead" before alternate
892 spellings.
893 (report_types): Update uses.
894 (usage): For `--report' usage description, state `lookahead' spelling
895 rather than `look-ahead'.
896 * src/getargs.h (report.report_lookahead_tokens): Rename from
897 report_look_ahead_tokens.
898 * src/lalr.c: Update English in comments.
899 (compute_lookahead_tokens): Rename from compute_look_ahead_tokens.
900 (state_lookahead_tokens_count): Rename from
901 state_look_ahead_tokens_count.
902 Rename local n_look_ahead_tokens to n_lookahead_tokens.
903 (lookahead_tokens_print): Rename from look_ahead_tokens_print.
904 Rename local n_look_ahead_tokens to n_lookahead_tokens.
905 Update other uses.
906 Update English in output.
907 (add_lookback_edge, initialize_LA, lalr, lalr_free): Update uses.
908 * src/print.c: Update English in comments.
909 (lookahead_set): Rename from look_ahead_set.
910 (print_reduction): Rename argument lookahead_token from
911 look_ahead_token.
912 (print_core, state_default_rule, print_reductions, print_results):
913 Update uses.
914 * src/print_graph.c: Update English in comments.
915 (print_core): Update uses.
916 * src/state.c: Update English in comments.
917 (reductions_new): Update uses.
918 (state_rule_lookahead_tokens_print): Rename from
919 state_rule_look_ahead_tokens_print, and update other uses.
920 * src/state.h: Update English in comments.
921 (reductions.lookahead_tokens): Rename from look_ahead_tokens.
922 (state_rule_lookahead_tokens_print): Rename from
923 state_rule_look_ahead_tokens_print.
924 * src/tables.c: Update English in comments.
925 (conflict_row, action_row): Update uses.
926 * tests/glr-regression.at
927 (Incorrect lookahead during deterministic GLR,
928 Incorrect lookahead during nondeterministic GLR): Rename
929 print_look_ahead to print_lookahead.
930 * tests/torture.at: Update English in comments.
931 (AT_DATA_LOOKAHEAD_TOKENS_GRAMMAR): Rename from
932 AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR.
933 (Many lookahead tokens): Update uses.
934 * data/glr.c: Update English in comments.
935 * lalr1.cc: Likewise.
936 * yacc.c: Likewise.
937 * src/conflicts.h: Likewise.
938 * src/lalr.h: Likewise.
939 * src/main.c: Likewise.
940 * src/output.c: Likewise.
941 * src/parse-gram.c: Likewise.
942 * src/tables.h: Likewise.
943 * tests/calc.at: Likewise.
944
3c40d0b5
JD
9452006-06-08 Joel E. Denny <jdenny@ces.clemson.edu>
946
947 * src/flex-scanner.h (yytext): Remove stray `*/' in #define.
948
5d278082
PE
9492006-06-07 Paul Eggert <eggert@cs.ucla.edu>
950
951 * TODO: Add request from Nelson H. F. Beebe to be able to install
952 Bison without installing the yacc script.
953
9e668899
JD
9542006-06-07 Joel E. Denny <jdenny@ces.clemson.edu>
955
956 * src/flex-scanner.h: For the sake of Flex 2.5.4, don't #define yyleng
957 and yytext if they're already #define'd.
958 * src/flex-scanner.h, src/location.h: Move #include "system.h" to...
959 * src/scan-code-c.c: ... here.
960 * src/scan-code.l, src/scan-gram.l: ... and here. Also #include
961 <config.h>.
962
0c8e079f
JD
9632006-06-07 Joel E. Denny <jdenny@ces.clemson.edu>
964
965 Get Bison to build again when configured with --enable-gcc-warnings.
966 * src/location.c, src/location.h, src/main.c, src/scan-code.l: Add some
967 missing #include's.
968 * src/scan-code.l (handle_action_dollar, handle_action_at): Rename
969 loc argument as it shadows a global.
970 * src/scan-gram.l: Remove stray comma that prevents boundary_set
971 invocation.
972
973 * src/.cvsignore: Add scan-code.c.
974
2346344a
AD
9752006-06-07 Akim Demaille <akim@epita.fr>
976
977 * src/scan-gram.l: Move the "add a trailing ; to actions" code
978 to...
979 * src/scan-code.l: here.
980 * tests/input.at (Torturing the Scanner): Fix another location
981 error.
982
4862bdfd
AD
9832006-06-07 Akim Demaille <akim@epita.fr>
984
985 * src/Makefile.am (BUILT_SOURCES): Fix the trailing backslash.
986
e9071366
AD
9872006-06-06 Akim Demaille <akim@epita.fr>
988
989 Extract the parsing of user actions from the grammar scanner.
990 As a consequence, the relation between the grammar scanner and
991 parser is much simpler. We can also split "composite tokens" back
992 into simple tokens.
993 * src/gram.h (ITEM_NUMBER_MAX, RULE_NUMBER_MAX): New.
994 * src/scan-gram.l (add_column_width, adjust_location): Move to and
995 rename as...
996 * src/location.h, src/location.c (add_column_width)
997 (location_compute): these.
998 Fix the column count: the initial column is 0.
999 (location_print): Be robust to ending column being 0.
1000 * src/location.h (boundary_set): New.
1001 * src/main.c: Adjust to scanner_free being renamed as
1002 gram_scanner_free.
1003 * src/output.c: Include scan-code.h.
1004 * src/parse-gram.y: Include scan-gram.h and scan-code.h.
1005 Use boundary_set.
1006 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_INITIAL_ACTION)
1007 (PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Remove the {...} part,
1008 which is now, again, a separate token.
1009 Adjust all dependencies.
1010 Whereever actions with $ and @ are used, use translate_code.
1011 (action): Remove this nonterminal which is now useless.
1012 * src/reader.c: Include assert.h, scan-gram.h and scan-code.h.
1013 (grammar_current_rule_action_append): Use translate_code.
1014 (packgram): Bound check ruleno, itemno, and rule_length.
1015 * src/reader.h (gram_in, gram__flex_debug, scanner_cursor)
1016 (last_string, last_braced_code_loc, max_left_semantic_context)
1017 (scanner_initialize, scanner_free, scanner_last_string_free)
1018 (gram_out, gram_lineno, YY_DECL_): Move to...
1019 * src/scan-gram.h: this new file.
1020 (YY_DECL): Rename as...
1021 (GRAM_DECL): this.
1022 * src/scan-code.h, src/scan-code.l, src/scan-code-c.c: New.
1023 * src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
1024 (gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
1025 (gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
1026 Move these declarations, and...
1027 (obstack_for_string, STRING_GROW, STRING_FINISH, STRING_FREE):
1028 these to...
1029 * src/flex-scanner.h: this new file.
1030 * src/scan-gram.l (rule_length, rule_length_overflow)
1031 (increment_rule_length): Remove.
1032 (last_braced_code_loc): Rename as...
1033 (gram_last_braced_code_loc): this.
1034 Adjust to the changes of the parser.
1035 Move all the handling of $ and @ into...
1036 * src/scan-code.l: here.
1037 * src/scan-gram.l (handle_dollar, handle_at): Remove.
1038 (handle_action_dollar, handle_action_at): Move to...
1039 * src/scan-code.l: here.
1040 * src/Makefile.am (bison_SOURCES): Add flex-scanner.h,
1041 scan-code.h, scan-code-c.c, scan-gram.h.
1042 (EXTRA_bison_SOURCES): Add scan-code.l.
1043 (BUILT_SOURCES): Add scan-code.c.
1044 (yacc): Be robust to white spaces.
1045
1046 * tests/conflicts.at, tests/input.at, tests/reduce.at,
1047 * tests/regression.at: Adjust the column numbers.
1048 * tests/regression.at: Adjust the error message.
7891a7c4 1049
184e42f0
JD
10502006-06-06 Joel E. Denny <jdenny@ces.clemson.edu>
1051
1052 * src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
1053 Use Akim's wording from
1054 <http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00056.html>.
1055
7891a7c4
JD
10562006-06-06 Joel E. Denny <jdenny@ces.clemson.edu>
1057
1058 Between Bison releases, manually append `+' to the previous Bison
1059 release number, and use that as a signal to automatically print the
1060 ChangeLog's CVS Id keyword from --version. Discussed starting at
1061 <http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00028.html>.
1062 * ChangeLog: Add Id header.
1063 * configure.ac (AC_INIT): Append `+' to `2.3'.
1064 * src/.cvsignore: Add revision.c.
1065 * src/Makefile.am (bison_SOURCES): Add revision.c and revision.h.
1066 (BUILT_SOURCES): Add revision.c.
1067 (revision.c): New target rule. This file defines a new global variable
1068 named revision. It initializes it with either the Id from ChangeLog
1069 or, if VERSION doesn't contain `+', with the empty string.
1070 * src/getargs.c (version): Print the value of revision.
1071 * src/revision.h: Extern revision.
1072
4ad3ed84
PE
10732006-06-05 Paul Eggert <eggert@cs.ucla.edu>
1074
1075 * NEWS: Version 2.3.
1076 * configure.ac (AC_INIT): Likewise.
1077
02103984
PE
10782006-05-30 Paul Eggert <eggert@cs.ucla.edu>
1079
1080 * data/glr.c (YYRECOVERING): Define to be a function-like macro
1081 with no arguments, not as an object-like macro. This is for
1082 compatibility with data/yacc.c. Problem reported by John P. Hartmann in
1083 <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00059.html>.
1084 * doc/bison.texinfo (Action Features, Error Recovery, Table of Symbols):
1085 Document this.
1086
2c08afa5
JD
10872006-05-30 Joel E. Denny <jdenny@ces.clemson.edu>
1088
1089 * src/getargs.c (usage): Back out yesterday's modification of the
1090 --help output so that we don't have to wait for translation before
1091 releasing 2.3.
1092
6077da58
PE
10932006-05-29 Paul Eggert <eggert@cs.ucla.edu>
1094
1095 * doc/bison.texinfo (Introduction): Don't say "GLR grammar".
1096 Problem reported by Akim Demaille.
1097
2a26b6c2
JD
10982006-05-29 Joel E. Denny <jdenny@ces.clemson.edu>
1099
1100 * src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
1101
aefef0d6
PE
11022006-05-26 Paul Eggert <eggert@cs.ucla.edu>
1103
1104 * data/yacc.c (yy_reduce_print): Omit trailing white space in
1105 generated source code. Problem reported by Frans Englich in
1106 <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00049.html>.
1107
fcd8e201
PE
11082006-05-22 Paul Eggert <eggert@cs.ucla.edu>
1109
1110 * Makefile.maint (gzip_rsyncable, GZIP_ENV): Compute within the
1111 shell, not within 'make', so that 'make' by an ordinary builder
1112 (using GNU make) does not worry about configuring gzip. This also
1113 works around a bug reported independently by Keith Thompson and by
1114 Georg Schwarz, whereby gzip 1.2.4 --help would output usage on
1115 stderr rather than stdout, messing up the build logs.
1116
7b5cdcbd
JD
11172006-05-21 Joel E. Denny <jdenny@ces.clemson.edu>
1118
1119 * data/yacc.c (yyparse): Wrap the final return from yyparse inside YYID
1120 to make sure that YYID will never be unused. This fixes a 'make
1121 maintainer-check' failure caused by the recent changes to the 'Trivial
1122 grammars' test case, which caused g++ 4.1.0 to complain that YYID was
1123 not used.
1124 * data/glr.c (yyparse): Wrap yyparse's return inside YYID just in case.
1125
5ad0a449
JD
11262006-05-21 Joel E. Denny <jdenny@ces.clemson.edu>
1127
1128 * data/glr.c (yyresolveLocations): Remove bogus YYASSERT that the
1129 state before an empty RHS is always resolved here. Only the location
1130 of that state is guaranteed to be resolved, and that's enough. This
1131 fixes the remaining bug reported by Derek M. Jones in
1132 <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
1133 * tests/glr-regression.at (Uninitialized location when reporting
1134 ambiguity): Test the above case.
1135 Also, the embedded comments in this test case claim it checks the case
1136 of an empty RHS that has inherited the initial location. However, the
1137 corresponding LHS was already resolved, so yyresolveLocations didn't
1138 actually have reason to modify it. Fix this by forcing
1139 nondeterministic operation at the beginning of the parse.
1140
50cce58e
PE
11412006-05-20 Paul Eggert <eggert@cs.ucla.edu>
1142
1143 * data/c.m4 (b4_yy_symbol_print_generate):
1144 (b4_yy_symbol_print_generate): Use 'YYSTYPE const' rather than
1145 'const YYSTYPE', and similarly for YYLTYPE. This fixes one
1146 of the bugs reported today by Derek M Jones in
1147 <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
1148 * doc/bison.texinfo (Value Type): Document that YYSTYPE must be
1149 defined to be a type name without parens or brackets.
1150 (Location Type): Similarly for YYLTYPE.
1151 * tests/regression.at (Trivial grammars): Put in a test for this
1152 bug that will be caught by 'make maintainer-check' (though not,
1153 alas, by 'make check' unless your compiler is picky).
1154
ab8d9dc5
PE
11552006-05-19 Paul Eggert <eggert@cs.ucla.edu>
1156
0d2c8934 1157 * NEWS: Version 2.2.
ab8d9dc5
PE
1158 * configure.ac (AC_INIT): Likewise.
1159
9138c575
JD
11602006-05-17 Joel E. Denny <jdenny@ces.clemson.edu>
1161
1162 * data/glr.c (yyreportTree): Make room in yystates for the state
1163 preceding the RHS. This fixes the segmentation fault reported by Derek
1164 M. Jones in
1165 <http://lists.gnu.org/archive/html/help-bison/2006-05/msg00035.html>.
1166 (yyreportTree, yypdumpstack): Subtract 1 from yyrule before printing
1167 to the user. Reported for yyreportTree by Derek M. Jones later in the
1168 same thread.
1169 * THANKS: Add Derek M. Jones.
1170 Update my email address.
1171 Fix typo in Steve Murphy's name.
1172
276f48df
PE
11732006-05-14 Paul Eggert <eggert@cs.ucla.edu>
1174
d6645148
PE
1175 * data/glr.c (yyreportSyntaxError): Fix off-by-one error in
1176 checking against YYLAST that caused the parser to miss a potential
1177 alternative in its diagnostic.
1178 Problem reported by Maria Jose Moron Fernandez in
1179 <http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00024.html>.
1180 * data/lalr1.cc (yysyntax_error_): Likewise.
1181 * data/yacc.c (yysyntax_error): Likewise.
1182 * tests/regression.at (_AT_DATA_DANCER_Y): Use static array for
1183 tokens, in case we run into an older C compiler.
1184 (_AT_DATA_EXPECT2_Y, AT_CHECK_EXPECT2): New macros.
1185 Use them to check for the off-by-one error fixed above.
1186
276f48df
PE
1187 * data/yacc.c (yytnamerr): Fix typo: local var should be of type
1188 YYSIZE_T, not size_t.
1189 * tests/regression.at (Trivial grammars): New test, to catch
1190 the error fixed by the above patch.
1191
cd8b5791
AD
11922006-05-14 Akim Demaille <akim@lrde.epita.fr>
1193
1194 * doc/bison.texinfo (C++ Bison Interface): Clarify the naming
1195 scheme.
1196 Reported by Steve Murphy.
1197
34376418
AD
11982006-05-14 Akim Demaille <akim@lrde.epita.fr>
1199
1200 * data/glr.cc, data/lalr1.cc: Using %defines is mandatory.
1201 * data/glr.cc: b4_location_flag is now b4_locations_flag.
1202
327afc7c
AD
12032006-05-14 Akim Demaille <akim@lrde.epita.fr>
1204
1205 Implement --trace=m4.
1206 * src/getargs.c (trace_types, trace_args): Accept trace_m4.
1207 * src/output.c (output_skeleton): When set, pass -dV to m4.
1208
1209 Factor the handling of flags in m4.
1210 * src/output.c (prepare): Rename the muscle names debug, defines,
1211 error_verbose to debug_flag, defines_flag, error_verbose_flag.
1212 * data/c.m4: Adjust.
1213 (_b4_define_flag_if, b4_define_flag_if, b4_defines_if): New.
1214 Use b4_define_flag_if to define other b4_FLAG_if macros.
1215 (b4_location_if): As a consequence, rename as...
1216 (b4_locations_if): this, for consistency.
1217 Adjust all the skeletons.
1218
ba9ecd19
AD
12192006-05-14 Akim Demaille <akim@lrde.epita.fr>
1220
1221 * etc/bench.pm: Shorten bench names.
1222
4e83ea15
AD
12232006-05-14 Akim Demaille <akim@lrde.epita.fr>
1224
1225 * src/output.h, src/output.c (error_verbose): Move to...
1226 * src/getargs.h, src/getargs.c: here.
1227 Sort the flags.
1228 Adjust dependencies.
1229
6e93d810
PE
12302006-05-13 Paul Eggert <eggert@cs.ucla.edu>
1231
1232 * data/c.m4 (b4_copyright): Put the special exception for Bison
1233 skeletons here, so we don't have to put it in each skeleton. All
b15296ff
PE
1234 uses changed. Suggested by Akim Demaille. Also, wrap the
1235 copyright notice, in case it is longer than 80 columns. Replace
1236 comma by newline after title.
6e93d810 1237
eaea13f5
PE
12382006-05-11 Paul Eggert <eggert@cs.ucla.edu>
1239
1240 * doc/bison.texinfo (Calc++ Scanner): The flex behavior is an
1241 incompatibility, not a bug. Mention that it wasn't fixed as of
1242 flex 2.5.33.
1243
3cf084ec
AD
12442006-05-11 Akim Demaille <akim@lrde.epita.fr>
1245
1246 * examples/extexi: Enforce the precedence of concatenation over
1247 >>.
0a9f1c7d 1248 Reported by Tommy Nordgren.
3cf084ec 1249
32c96bd7
AD
12502006-05-11 Akim Demaille <akim@lrde.epita.fr>
1251
1252 * data/lalr1.cc (yytranslate_): Rename token as t to avoid clashes
1253 with the member "token".
f94705b2 1254 Reported by Martin Nylin.
32c96bd7 1255
eaea13f5
PE
12562006-05-08 Paul Eggert <eggert@cs.ucla.edu>
1257
1258 * data/glr.c: Switch to Bison 2.2 special-exception language in
1259 the copyright notice. Use more-regular format for titles and
1260 copyright notices.
1261 * data/glr.cc: Likewise.
1262 * data/location.cc: Likewise.
1263 * data/yacc.cc: Likewise.
1264 * doc/bison.texinfo (Conditions): Document this.
1265 * NEWS: likewise. Upgrade version to 2.2.
1266
6e2d1146
AD
12672006-04-27 Akim Demaille <akim@lrde.epita.fr>
1268
1269 * data/glr.cc: Remove dead code.
1270
47671055
PE
12712006-04-25 Paul Eggert <eggert@cs.ucla.edu>
1272
1273 * bootstrap: Comment out the AM_CPPFLAGS line, since we don't use
1274 that variable and the line breaks the bootstrap. Problem reported
1275 by Juan M. Guerrero.
1276
ed2e6384
AD
12772006-04-24 Akim Demaille <akim@lrde.epita.fr>
1278
1279 * doc/bison.texinfo (Multiple start-symbols): New.
1280
3cedc2dc
AD
12812006-04-24 Akim Demaille <akim@lrde.epita.fr>
1282
1283 * etc/README, etc/bench.pl: New.
1284
b2ddc3f3
AD
12852006-04-03 Akim Demaille <akim@lrde.epita.fr>
1286
1287 * src/scan-gram.l: Be robust to BRACED_CODE appearing before any
1288 rule.
1289 Reported by Mickael Labau.
1290 * tests/input.at (Torturing the Scanner): Test it.
1291
91e3ac9a
PE
12922006-03-16 Paul Eggert <eggert@cs.ucla.edu>
1293
1294 * doc/bison.texinfo (Decl Summary): Don't mention yylloc twice.
1295 Problem reported by Bob Rossi.
1296
12972006-03-13 Paul Eggert <eggert@cs.ucla.edu>
1298
1299 * doc/bison.texinfo: Remove @shorttitlepage stuff; it wasn't used
1300 and didn't really work.
1301 For the index, use @ifnotinfo, not @iftex.
1302 Minor cleanups of spacing and terminology.
1303
5cf61e93
AD
13042006-03-12 Akim Demaille <akim@lrde.epita.fr>
1305
1306 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Fix the definition
1307 of AT_NAME_PREFIX when %name-prefix is not used.
1308
aa08666d
AD
13092006-03-12 Akim Demaille <akim@lrde.epita.fr>
1310
1311 Apply --prefix to C++ skeletons too: they change the namespace.
1312 The test suite already exercize these cases.
1313 * data/c++.m4 (b4_namespace): New.
1314 * data/lalr1.cc, data/glr.cc, data/location.cc: Use it instead of `yy'.
1315 * data/lalr1.cc (yytnameerr_): Move its definition into the namespace.
1316 * data/yacc.c, data/glr.c: Remove a useless `[]'.
1317 * doc/bison.texinfo: Document it.
1318 (Option Cross Key): Use @multitable in all formats. It looks
1319 nicer, even in TeX outputs.
1320 (Rules): Use the same code whatever the output type is.
1321 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS)
1322 (_AT_BISON_OPTION_POPDEFS): Support AT_NAME_PREFIX.
1323 * tests/calc.at: Use it, instead of hard coding `yy'.
91e3ac9a 1324
45567173
AD
13252006-03-10 Akim Demaille <akim@lrde.epita.fr>
1326
1327 * TODO: Remove dead items.
1328
e9d8f881 13292006-03-10 Akim Demaille <akim@lrde.epita.fr>
55ba27be
AD
1330
1331 * doc/FAQ: Remove, merged into...
1332 * doc/bison.texinfo (FAQ): this.
1333 * doc/Makefile.am (EXTRA_DIST): Adjust.
1334
c095d689
AD
13352006-03-10 Akim Demaille <akim@lrde.epita.fr>
1336
1337 * data/c.m4 (b4_token_enum): Always define the enum of tokens,
1338 even if empty.
1339 * data/lalrl1.cc, data/glr.cc (parser::token_type): New.
1340 * doc/bison.texinfo (Calc++ Scanner): Use it.
1341
6e0f8287
PE
13422006-03-09 Paul Eggert <eggert@cs.ucla.edu>
1343
1344 Fix two nits reported by twlevo, plus one more that I discovered.
1345
1346 * src/assoc.h (assoc_to_string): Give a name to the arg, as
1347 this is the usual Bison style.
1348 * src/location.h (location_print): Likewise.
1349
1350 * src/reader.h (token_name): Likewise.
1351
d6b771c3
PE
13522006-03-08 Paul Eggert <eggert@cs.ucla.edu>
1353
1354 Fix some nits reported by twlevo.
1355 * doc/FAQ: Remove ancient Y2K FAQ, replacing it with "secure"
1356 and "POSIX". Use more-modern syntax for URLs. Mention C++
1357 and ask for Java. Don't hardwire OS version numbers. Add
1358 copyright notice.
1359 * m4/.cvsignore: Add unistd_h.m4, for latest gnulib.
1360 * src/conflicts.c (solved_conflicts_obstack): Now static.
1361
1e137b71
JD
13622006-03-08 Joel E. Denny <jdenny@ces.clemson.edu>
1363
1364 * doc/bison.texinfo (Introduction): Mention GLR and C++ as on the web
1365 page. Say "you can use it" not "you may use it" as on the web page;
1366 we're describing capabilities not granting permission.
1367
73f2e47e
PE
13682006-03-06 Paul Eggert <eggert@cs.ucla.edu>
1369
6d05403d
PE
1370 * data/glr.c (yyresolveLocations): Rename local variables to avoid
1371 shadowing warnings. Use usual patter for iterating through RHS.
1372 * tests/glr-regression.at
1373 (Uninitialized location when reporting ambiguity):
1374 Modify yylex so that it uses its argument, rather than trying
1375 to rely on ARGSUSED (which doesn't work for gcc with warnings).
1376 const char -> char const.
1377
73f2e47e
PE
1378 * tests/Makefile.am ($(srcdir)/package.m4, maintainer-check-valgrind):
1379 Don't use tabs inside commands; it messes up 'ps'.
1380 Problem reported by twlevo.
1381
8710fc41
JD
13822006-03-06 Joel E. Denny <jdenny@ces.clemson.edu>
1383
1384 * tests/glr-regression.at (Uninitialized location when reporting
1385 ambiguity): New test case.
1386 * data/glr.c (yyresolveLocations): New function, which uses
1387 YYLLOC_DEFAULT.
1388 (yyresolveValue): Invoke yyresolveLocations before reporting an
1389 ambiguity.
1390 * doc/bison.texinfo (Default Action for Locations): Note
1391 YYLLOC_DEFAULT's usage for ambiguity locations.
1392 (GLR Semantic Actions): Cross-reference those notes.
1393
ae952af2
JD
13942006-03-04 Joel E. Denny <jdenny@ces.clemson.edu>
1395
1396 * tests/glr-regression.at (Leaked semantic values when reporting
1397 ambiguity): Remove unnecessary union and type declarations.
1398 (Leaked lookahead after nondeterministic parse syntax error): New test
1399 case.
1400 * data/glr.c (yyparse): Check for zero stacks remaining before
1401 attempting to shift the lookahead so that you don't lose it.
1402
35ee866a
JD
14032006-03-02 Joel E. Denny <jdenny@ces.clemson.edu>
1404
1405 Avoid memory leaks by not invoking longjmp in yyreportAmbiguity.
1406 * tests/glr-regression.at (Leaked semantic values when reporting
1407 ambiguity): New test case.
1408 * data/glr.c (yyreportAmbiguity): Invoke yyyerror directly and return
1409 yyabort rather than invoking yyFail, which invokes longjmp. Remove the
1410 now unnecessary yystackp parameter.
1411 (yyresolveValue): Return yyreportAmbiguity's result. Now the necessary
1412 destructors can be called.
1413
1414 * tests/glr-regression.at: Don't invoke bison with `-t' unnecessarily
1415 in existing testcases.
1416
520181ab
JD
14172006-03-02 Joel E. Denny <jdenny@ces.clemson.edu>
1418
1419 Don't leak semantic values for parent RHS when a user action cuts the
1420 parser, and clean up related code a bit.
1421 * tests/glr-regression.at (Leaked merged semantic value if user action
35ee866a
JD
1422 cuts parse): Rename to...
1423 (Leaked semantic values if user action cuts parse): ... this. Add check
520181ab
JD
1424 for leaked parent RHS values.
1425 * data/glr.c (yydestroyGLRState): In debugging output, distinguish
1426 between an unresolved state (non-empty chain of semantic options) and
1427 an incomplete one (signaled by an empty chain).
ae952af2 1428 (yyresolveStates): Document the interface. Move all manipulation of a
520181ab
JD
1429 successfully or unsuccessfully resolved yyGLRState to...
1430 (yyresolveValue): ... here so that yyresolveValue always leaves a
1431 yyGLRState with consistent data and thus is easier to understand.
1432 Remove the yyvalp and yylocp parameters since they are always just
1433 taken from the yys parameter. When reporting a discarded merged value
1434 in debugging output, note that it is incompletely merged. Document the
1435 interface.
1436 (yyresolveAction): If resolving any of the RHS states fails, destroy
1437 them all rather than leaking them. Thus, as long as user actions are
1438 written to clean up the RHS correctly, yyresolveAction always cleans up
1439 the RHS of a semantic option. Document the interface.
1440
18d9185c
PE
14412006-02-27 Paul Eggert <eggert@cs.ucla.edu>
1442
1443 * data/glr.c (yyexpandGLRStack): Catch an off-by-one error that
1444 led to a segmentation fault in GNU Pascal. Problem reported
1445 by Waldek Hebisch.
1446
841a7737
JD
14472006-02-21 Joel E. Denny <jdenny@ces.clemson.edu>
1448
1449 * doc/bison.texinfo (Mid-Rule Actions): Explain how to bury a
1450 mid-rule action inside a nonterminal symbol in order to declare a
1451 destructor for its semantic value.
1452
fc3f467f
PE
14532006-02-16 Paul Eggert <eggert@cs.ucla.edu>
1454
1455 * data/yacc.c [(! defined yyoverflow || YYERROR_VERBOSE) && !
1456 YYSTACK_USE_ALLOCA && ! defined YYSTACK_ALLOC && defined
1457 __cplusplus && ! defined _STDLIB_H && !
1458 ((defined YYMALLOC || defined malloc) && (defined YYFREE ||
1459 defined free))]: Include <stdlib.h> rather than rolling our own
1460 declarations of malloc and free, to avoid problems with
1461 incompatible declarations (using 'throw') C++'s stdlib.h. This
1462 should fix Debian bug 340012
1463 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=340012>,
1464 reported by Guillaume Melquiond.
1465
a3af26dd
PE
14662006-02-13 Paul Eggert <eggert@cs.ucla.edu>
1467
4d7bc38c
PE
1468 * NEWS: Clarify symbols versus types in unused-value warnings.
1469
a3af26dd
PE
1470 * configure.ac (AC_INIT): Bump version number.
1471
4e26c69e
PE
14722006-02-13 Paul Eggert <eggert@cs.ucla.edu>
1473
1474 * NEWS: Version 2.1a.
1475 * tests/headers.at (AT_TEST_CPP_GUARD_H): Declare yyerror and yylex,
1476 since C99 requires this.
1477
498e897c
PE
14782006-02-11 Paul Eggert <eggert@cs.ucla.edu>
1479
1480 * m4/c-working.m4: New file.
1481 * configure.ac (BISON_TEST_FOR_WORKING_C_COMPILER): Use it.
1482
57bb17ca
PE
14832006-02-10 Paul Eggert <eggert@cs.ucla.edu>
1484
1485 * Makefile.maint: Merge from coreutils.
1486
0be105dc
PE
14872006-02-09 Paul Eggert <eggert@cs.ucla.edu>
1488
1489 More portability fixes for problems summarized by Nelson H. F. Beebe.
1490
1491 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Catch a
1492 configuration screwup "./configure CC=/opt/SUNWspro/bin/c89
1493 CFLAGS="-xarch=generic64" CXX=/opt/SUNWspro/bin/CC
1494 LDFLAGS="-xarch=generic64" with Sun C 5.7 on Solaris 10; this
1495 messes up because C++ code is compiled in 32-bit mode but linked
1496 in 64-bit mode.
1497
6fc0c024
PE
14982006-02-08 Paul Eggert <eggert@cs.ucla.edu>
1499
1500 More portability fixes for problems summarized by Nelson H. F. Beebe.
1501
7870f699
PE
1502 * doc/bison.texinfo (Calc++ Scanner): Work around a bug in flex
1503 2.5.31. This resembles the 2005-10-10 patch to src/scan-skel.l.
1504
6fc0c024
PE
1505 * examples/calc++/Makefile.am (check_PROGRAMS): Renamed from
1506 nodist_PROGRAMS, since we don't need to actually compile the
1507 example if we're just doing a plain 'make'. This avoids bothering
1508 the installer unnecessarily about problems due to weird C++
1509 compilers.
1510
fe6c2fde
PE
15112006-02-06 Paul Eggert <eggert@cs.ucla.edu>
1512
1513 More portability fixes for problems summarized by Nelson H. F. Beebe.
1514
1515 * tests/headers.at (AT_TEST_CPP_GUARD_H): Use #include <...> rather
1516 than #include "...", and compile with -I'.'. The old method was
1517 not portable, according to Posix and the C standard, and it does
1518 not work with Sun C 5.7, where previous #line directives affect
1519 the working directory used in later #include "..." directives.
1520
927b425b
JMG
15212006-02-06 Juan Manuel Guerrero <juan.guerrero@gmx.de>
1522
1523 Various DJGGP specific issues in /djgpp
1524
d9735e9e
PE
15252006-02-02 Paul Eggert <eggert@cs.ucla.edu>
1526
1527 More portability fixes for problems summarized by Nelson H. F. Beebe.
1528
1529 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check that
1530 '#include <map>' works and that you can apply ++ to iterators.
1531
5a6755af
PE
15322006-02-01 Paul Eggert <eggert@cs.ucla.edu>
1533
67a0dc4f
PE
1534 Work around portability problems summarized by Nelson H. F. Beebe in
1535 <http://lists.gnu.org/archive/html/bug-bison/2005-09/msg00021.html>.
1536
8c86f0ef
PE
1537 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
1538 that '#include <string>' works.
1539
de35dd59
PE
1540 * data/lalr1.cc (yytranslate_): No longer inline, to work around a
1541 porting problem to g++ 3.4.3 on Darwin 7.9.0, where g++ complained
1542 "warning: sorry: semantics of inline function static data `const
1543 unsigned char translate_table[262]' are wrong (you'll wind up with
1544 multiple copies)".
1545
67a0dc4f
PE
1546 * lib/bbitset.h (struct bitset_vtable): Rename members not, and,
1547 or, xor to not_, and_, or_, and xor_, respectively. This works
1548 around a bug in GCC 3.4.3 on Irix 6.5, which apparently has a
1549 random system header somewhere that includes the equivalent of
1550 <iso646.h>.
1551
5a6755af
PE
1552 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that "$CC
1553 -E" works; it apparently doesn't work with PathScale EKO Compiler
67a0dc4f 1554 Suite Version 2.0.
5a6755af 1555
3f001415
JD
15562006-01-30 Joel E. Denny <jdenny@ces.clemson.edu>
1557
1558 During deterministic GLR operation, user actions should be able to
1559 influence the parse by changing yychar. To make this easier to fix and
1560 to make glr.c easier to evolve in general, don't maintain yytoken in
1561 parallel with yychar; just compute yytoken when needed.
1562 * tests/glr-regression.at (Incorrect lookahead during deterministic
1563 GLR): Check that setting yychar in a user action has the intended
1564 effect.
1565 * data/glr.c (yyGLRStack): Remove yytokenp member.
1566 (yyclearin): Don't set *yytokenp.
1567 (yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Examine
1568 yychar rather than *yytokenp to determine the current lookahead.
1569 Compute yytoken locally when needed.
1570 (yyparse): Likewise. Remove the local yytoken that yytokenp used to
1571 point to.
1572
1573 * doc/bison.texinfo (Bison Options): Remove stray sentence fragment
1574 after `--report' documentation.
1575
e2a8c0f5
PE
15762006-01-30 Paul Eggert <eggert@cs.ucla.edu>
1577
1578 * src/parse-gram.y (grammar_declaration): Location of printer
1579 symbol is @1, not list->location. Bug reported by twlevo.
1580 * tests/input.at (Incompatible Aliases): Adjust to above change.
1581
6b702268
PE
15822006-01-29 Paul Eggert <eggert@cs.ucla.edu>
1583
27622431
PE
1584 * tests/input.at (AT_CHECK_UNUSED_VALUES): Remove. Instead, do
1585 all the test at once. This makes the output easier to read in the
1586 normal case.
1587
6b702268
PE
1588 Fix a longstanding bug uncovered by bro-0.9a9/src/parse.y, which I
1589 got from <http://bro-ids.org/download.html>. The bug is that
1590 when two actions appeared in succession, the second one was
1591 scanned before the first one was added to the grammar rule
1592 as a midrule action. Bison then output the incorrect warning
1593 "parse.y:905.17-906.36: warning: unused value: $3".
1594 * src/parse-gram.y (BRACED_CODE, action): These are no longer
1595 associated with a value.
1596 (rhs): Don't invoke grammar_current_rule_action_append.
1597 (action): Invoke it here instead.
1598 * src/reader.c (grammar_midrule_action): Now extern.
1599 (grammar_current_rule_action_append): Don't invoke
1600 grammar_midrule_action; that is now the scanner's job.
1601 * src/reader.h (last_string, last_braced_code_loc):
1602 (grammar_midrule_action): New decls.
1603 * src/scan-gram.l (last_string): Now extern, sigh.
1604 (last_braced_code_loc): New extern variable.
1605 (<INITIAL>"{"): Invoke grammar_midrule_action if the current
1606 rule already has an action.
1607 (<SC_BRACED_CODE>"}"): Set last_braced_code_loc before returning.
1608 * tests/input.at (AT_CHECK_UNUSED_VALUES):
1609 Add some tests to check that the above changes fixed the bug.
1610
d40ba6c2
PE
16112006-01-27 Paul Eggert <eggert@cs.ucla.edu>
1612
1613 * src/reader.c (symbol_should_be_used): Renamed from symbol_typed_p.
1614 All used changed. Check whether the symbol has a destructor,
1615 not whether it is typed.
1616 * tests/input.at (AT_CHECK_UNUSED_VALUES): Add a destructor, so
1617 that the values are still reported as unused. All line numbers
1618 adjusted.
1619
401aace6
PE
16202006-01-23 Paul Eggert <eggert@cs.ucla.edu>
1621
1622 Work around a bug in bro 0.8, which underparenthesizes its
1623 definition of YYLLOC_DEFAULT.
1624 * data/glr.c: Change all uses of YYLLOC_DEFAULT to parenthesize
1625 their arguments.
1626 * data/lalr1.cc: Likewise.
1627 * data/yacc.cc: Likewise.
1628
06f01bc4
PE
16292006-01-22 Paul Eggert <eggert@cs.ucla.edu>
1630
401aace6
PE
1631 Work around a bug in Pike 7.0, and give the Pike folks a
1632 better way to override the usual int widths.
1633 * data/yacc.c (b4_int_type): Use yytype_uint8, etc., so that the
1634 user can override the types.
1635 (short): #undef, to work around a bug in Pike 7.0.
1636 (yytype_uint8, yytype_int8, yytype_uint16, yytype_int16): New types.
1637 (union yyalloc.yyss): Use yytype_int16 rather than short.
1638 All uses changed.
1639 (yysigned_char): Remove.
1640 * src/parse-gram.y (YYTYPE_UINT8, YYTYPE_INT8, YYTYPE_UINT16):
1641 (YYTYPE_INT16): New macros, to test the new facility in yacc.c.
1642 * tests/regression.at (Web2c Actions): Adjust to above changes.
1643
1644 * src/reader.c (check_and_convert_grammar): New function.
1645 (reader): Close the input file even if something went wrong during
1646 parsing. Minor file descriptor leak reported by twlevo.
1647
06f01bc4
PE
1648 * src/assoc.c (assoc_to_string): Use a default: abort (); case
1649 to pacify gcc -Wswitch-default.
1650 * src/scan-gram.l (adjust_location): Use a default: break; case
1651 to pacify gcc -Wswitch-default.
1652 * src/scan-skel.h (skel_get_lineno, skel_get_in, skel_get_out):
1653 (skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
1654 (skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
1655 Move these decls to scan-skel.l, since they don't need to be
1656 visible elsewhere.
1657 * src/scan-skel.l: Accept the above decls.
1658 (skel_lex): New decl, to pacify GCC when unpatched flex 2.5.31
1659 is used.
1660
02650b7f
PE
16612006-01-21 Paul Eggert <eggert@cs.ucla.edu>
1662
1663 * Makefile.cfg (local-checks-to-skip): Add changelog-check,
1664 since we don't want to insist on a version number at the start
1665 of the changelog every time.
1666 * Makefile.maint: Sync from coreutils a bit better.
1667 (sc_trailing_blank): Renamed from sc_trailing_space.
1668 All uses changed.
1669 (sc_no_if_have_config_h, sc_require_config_h):
1670 (sc_prohibit_assert_without_use): New rules.
1671 (sc_obsolete_symbols): Don't catch Makefile.maint itself.
1672 (sc_dd_max_sym_length): Fix leading spaces in rule.
1673 (sc_system_h_headers): Prefix with @.
1674 (sc_useless_cpp_parens, m4-check): Output line numbers.
1675 (changelog-check): Allow version only in head.
1676 * data/c.m4: Use "defined FOO" instead of "defined (FOO)", to
1677 satisfy new Makefile.maint rule.
1678 * data/glr.c: Likewise.
1679 * data/glr.cc: Likewise.
1680 * data/lalr1.cc: Likewise.
1681 * data/yacc.c: Likewise.
1682 * lib/ebitsetv.c: Likewise.
1683 * lib/lbitset.c: Likewise.
1684 * lib/subpipe.c: Likewise.
1685 * lib/timevar.c: Likewise.
1686 * src/system.h: Likewise.
1687 * data/yacc.c (YYSTYPE): Don't generate trailing spaces in output.
1688 * djgpp/Makefile.maint: Add copyright notice.
1689 * djgpp/README.in: Likewise.
1690 * djgpp/config.bat: Likewise.
1691 * djgpp/config.site: Likewise.
1692 * djgpp/config_h.sed: Likewise.
1693 * djgpp/djunpack.bat: Likewise.
1694 * djgpp/config.sed: Fix copyright notice to match standard format.
1695 * djgpp/subpipe.h: Likewise.
1696 * lib/bitsetv-print.c: Likewise.
1697 * lib/bitsetv.c: Likewise.
1698 * lib/subpipe.h: Likewise.
1699 * lib/timevar.c: Likewise.
1700 * lib/timevar.h: Likewise.
1701 * djgpp/subpipe.c: Use standard recipe for config.h.
1702 * lib/abitset.c: Likewise.
1703 * lib/bitset.c: Likewise.
1704 * lib/bitset_stats.c: Likewise.
1705 * lib/bitsetv-print.c: Likewise.
1706 * lib/bitsetv.c: Likewise.
1707 * lib/ebitsetv.c: Likewise.
1708 * lib/get-errno.c: Likewise.
1709 * lib/lbitset.c: Likewise.
1710 * lib/subpipe.c: Likewise.
1711 * lib/timevar.c: Likewise.
1712 * lib/vbitset.c: Likewise.
1713 * tests/local.at: Likewise.
1714 * src/scan-gram.l: Don't include verify.h, since system.h does
1715 that for us.
1716 * .x-sc_require_config_h: New file.
1717 * .x-sc_unmarked_diagnostics: New file.
1718
287c78f6
PE
17192006-01-20 Paul Eggert <eggert@cs.ucla.edu>
1720
287c78f6
PE
1721 Be a bit more systematic about using 'abort'.
1722 * lib/abitset.c (abitset_test): Remove ATTRIBUTE_UNUSED; not needed.
1723 * lib/bitset.c (bitset_bytes, bitset_init, bitset_op4_cmp):
1724 Put 'default: abort ();' before some other case, to satisfy older
1725 pedantic compilers.
1726 * lib/bitset_stats.c (bitset_stats_init): Likewise.
1727 * lib/ebitset.c (ebitset_elt_find, ebitset_op3_cmp): Likewise.
1728 * lib/lbitset.c (lbitset_elt_find, lbitset_op3_cmp): Likewise.
1729 * src/conflicts.c (resolve_sr_conflict): Likewise.
68cae94e
PE
1730 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str):
1731 (get_decision_str, get_orientation_str, get_node_alignment_str):
1732 (get_arrow_mode_str, get_crossing_type_str, get_view_str):
1733 (get_linestyle_str, get_arrowstyle_str): Likewise.
1734 * src/conflicts.c (resolve_sr_conflict):
1735 Use a default case rather than one for the one remaining enum
1736 value, to catch invalid enum values as well.
1737 * src/lalr.c (set_goto_map, map_goto):
1738 Prefer "assert (FOO);" to "if (!FOO) abort ();".
1739 * src/nullable.c (nullable_compute, token_definitions_output):
1740 Likewise.
1741 * src/reader.c (packgram, reader): Likewise.
1742 * src/state.c (transitions_to, state_new, state_reduction_find):
1743 Likewise.
1744 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias):
1745 (symbol_pack): Likewise.
1746 * src/tables.c (conflict_row, pack_vector): Likewise.
287c78f6
PE
1747 * src/scan-skel.l (QPUTS): Remove unnecessary parens.
1748 (BASE_QPUTS, "@output ".*\n): Remove unnecessary asserts.
68cae94e
PE
1749 * src/system.h: Don't include <assert.h>.
1750 (assert): New macro.
1751
1752 * doc/bison.texinfo (Prologue, Rules, Actions, Union Decl, Action Decl):
1753 (Destructor Decl, Parser Function, Pure Calling):
1754 Describe rules for braces inside C code more carefully.
287c78f6 1755
c66dfadd
PE
17562006-01-19 Paul Eggert <eggert@cs.ucla.edu>
1757
c21493b8
PE
1758 Fix some porting glitches found by Nelson H. F. Beebe.
1759 * lib/abitset.c (abitset_resize): Rewrite to avoid warnings from
1760 compilers that don't understand that abort () does not return.
1761 * src/state.c (transitions_to): Likewise.
1762 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
1763 that '#include <cstdlib>' works.
1764 * src/system.h (INT8_MIN, INT16_MIN, INT32_MIN, INT8_MAX):
1765 (INT16_MAX, UINT8_MAX, INT32_MAX, UINT16_MAX, UINT32_MAX):
1766 #undef if ! defined __STDC_VERSION__ || __STDC_VERSION__ < 199901,
1767 for the benefit of some pre-C99 compilers.
1768
b6e3facf
PE
1769 * bootstrap: Undo changes to gnulib files that autoreconf made.
1770
c66dfadd
PE
1771 Minor fixups to get 'make maintainer-check' to work.
1772 * configure.ac: Don't use -Wnested-externs, as it's incompatible
1773 with the new verify.h implementation.
1774 * data/c.m4 (b4_yy_symbol_print_generate): YYUSE (yyoutput).
1775 * data/glr.c (YYUSE): Depend on __GNUC__ as well.
1776 * data/yacc.c (YYUSE): Likewise.
1777 * data/lalr1.cc (yysyntax_error_): YYUSE (yystate).
1778 * lib/subpipe.c (end_of_output_subpipe): The args are unused.
1779 * src/parse-gram.y (declaration): Don't pass a string constant
1780 to a function that expects char *, since GCC might complain
1781 about the constant value.
1782 * src/reader.c (symbol_typed_p): Add parens to pacify GCC.
1783 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): #undef yylloc and yylval
1784 before #defining them.
1785 * tests/glr-regression.at
1786 (Incorrectly initialized location for empty right-hand side in GLR):
1787 In yyerror, use the msg arg.
1788 (Corrupted semantic options if user action cuts parse):
1789 (Incorrect lookahead during deterministic GLR):
1790 (Incorrect lookahead during nondeterministic GLR):
1791 Don't name a local var 'index'; it shadows string.h's 'index'.
1792
ed94ef2a
AD
17932006-01-19 Akim Demaille <akim@epita.fr>
1794
1795 * tests/calc.at (_AT_DATA_CALC_Y): Initialize the whole initial
1796 location, not just parts of it.
1797
e9ad4aec
PE
17982006-01-18 Paul Eggert <eggert@cs.ucla.edu>
1799
d6ca7905
PE
1800 * NEWS: Document the fact that multiple %unions are now allowed.
1801 * doc/bison.texinfo (Union Decl): Likewise.
51cbef6f
PE
1802 * TODO: This feature is now implemented, so remove it from
1803 the wishlist.
d6ca7905 1804
ef1b70e0
PE
1805 * Makefile.maint: Merge with coreutils Makefile.maint.
1806 (CVS_LIST): Use build-aux version if available.
1807 (VERSION_REGEXP): New macro.
1808 (syntax-check-rules): Add sc_no_if_have_config_h,
1809 sc_prohibit_assert_without_use, sc_require_config_h,
1810 sc_useless_cpp_parens.
1811 (sc_obsolete_symbols): Check for O_NDELAY.
1812 (sc_dd_max_sym_length): Track coreutils.
1813 (sc_unmarked_diagnostics): Look in all files, not just *.c.
1814 (sc_useless_cpp_parens): New rule.
1815 (news-date-check): Look for version or today's date.
1816 (changelog-check): Don't require version number near head.
1817 (copyright-check): Use current year instead of hardwiring 2005.
1818 (my-distcheck): Depend on $(release_archive_dir)/$(prev-tgz).
1819 (announcement): Add --gpg-key-ID.
1820
1821 * djgpp/config.sed: Add copyright notice, and replace "filesystem"
1822 with "file system".
1823
2073ce56 1824 Avoid undefined behavior that addressed just before the start of an
e9ad4aec
PE
1825 array. Problem reported by twlevo.
1826 * src/reader.c (packgram): Prepend a new sentinel before ritem.
1827 * src/lalr.c (build_relations): Rely on new sentinel.
1828 * src/gram.c (gram_free): Adjust to new sentinel.
1829
b7691f15
JD
18302006-01-12 Joel E. Denny <jdenny@ces.clemson.edu>
1831
1832 * data/glr.c (yyGLRStateSet): Rename yylookaheadStatuses to
1833 yylookaheadNeeds. All uses updated.
1834 (yysplitStack): Rename local yynewLookaheadStatuses to
1835 yynewLookaheadNeeds.
1836 * data/glr-regression.at (Incorrect lookahead during nondeterministic
1837 GLR): In comments, change `lookahead status' to `lookahead need'.
1838
ddee1b06
PH
18392006-01-11 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1840
1841 * data/glr.c (yysplitStack): A little stylistic rewrite.
1842
12f4614d
PH
18432006-01-11 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1844
1845 * data/glr.c (yyaddDeferredAction): Flesh out the comment.
1846
32c29292
JD
18472006-01-11 Joel E. Denny <jdenny@ces.clemson.edu>
1848
1849 * doc/bison.texinfo: Fix some typos.
1850 (GLR Semantic Actions): New subsection discussing special
1851 considerations because GLR semantic actions might be deferred.
1852 (Actions): Mention look-ahead usage of yylval.
1853 (Actions and Locations): Mention look-ahead usage of yylloc.
1854 (Special Features for Use in Actions): Add YYEOF entry and mention it
1855 in the yychar entry.
1856 In the yychar entry, remove mention of the local yychar case (pure
1857 parser) since this is irrelevant information when writing semantic
1858 actions and since it's already discussed in `Bison Symbols' where
1859 yychar is otherwise described as an external variable.
1860 In the yychar entry, don't call it the `current' look-ahead since it
1861 isn't when semantic actions are deferred.
1862 In the yychar and yyclearin entries, add note about deferred semantic
1863 actions.
1864 Add yylloc and yylval entries discussing look-ahead usage.
1865 (Look-Ahead Tokens): When discussing yychar, don't call it the
1866 `current' look-ahead, and do mention yylval and yylloc.
1867 (Error Recovery): Cross-reference `Action Features' when mentioning
1868 yyclearin.
1869 (Bison Symbols): In the yychar entry, don't call it the `current'
1870 look-ahead.
1871 In the yylloc and yylval entries, mention look-ahead usage.
1872
de366a2f 18732006-01-08 Joel E. Denny <jdenny@ces.clemson.edu>
2781dbd1
JD
1874
1875 * tests/glr-regression.at: Update copyright year to 2006.
1876
bf70fa87
JD
18772006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
1878
1879 * data/glr.c (yyGLRStateSet): Add yybool* yylookaheadStatuses member to
1880 use during nondeterministic operation to track which stacks have
1881 actually needed the current lookahead.
1882 (yyinitStateSet, yyfreeStateSet, yyremoveDeletes, yysplitStack):
1883 Allocate, deallocate, resize, and otherwise shuffle space for
1884 yylookaheadStatuses in parallel with yystates member of yyGLRStateSet.
1885 (yysplitStack, yyprocessOneStack, yyparse): Set lookahead status
1886 appropriately during nondeterministic operation.
1887 (yySemanticOption): Add int yyrawchar, YYSTYPE yyval, and YYLTYPE yyloc
1888 members to store the current lookahead to be used by the deferred
1889 user action.
1890 (yyaddDeferredAction): Add size_t yyk parameter specifying the stack
1891 from which the RHS is taken. Set the lookahead members of the new
1892 yySemanticOption according to the lookahead status for stack yyk.
1893 (yyglrShiftDefer, yyglrReduce): Pass yyk parameter on to
1894 yyaddDeferredAction.
1895 (yyresolveAction): Set yychar, yylval, and yylloc to the lookahead
1896 members of yySemanticOption before invoking yyuserAction, and then set
1897 them back to their current values afterward.
1898 (yyparse): Set yychar = YYEMPTY where yytoken = YYEMPTY.
1899 (yyreportAmbiguity): Add /*ARGSUSED*/ to pacify lint.
1900 * tests/glr-regression.at: Remove `.' from the ends of recent test case
1901 titles for consistency.
1902 (Leaked merged semantic value if user action cuts parse): In order to
1903 suppress lint warnings, use arguments in merge function, and assign
1904 char value < 128 in main.
1905 (Incorrect lookahead during deterministic GLR): New test case.
1906 (Incorrect lookahead during nondeterministic GLR): New test case.
1907
05449a2c
JD
19082006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
1909
de366a2f 1910 * data/c.m4 (b4_yy_symbol_print_generate): In yy_symbol_print, accept
05449a2c
JD
1911 !yyvaluep as signal that no semantic value is available to print.
1912 * data/glr.c (yydestroyGLRState): If state is not resolved, don't try
1913 to print a semantic value.
1914
4158e0a1 19152006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
fd2493f7 1916
4158e0a1
JD
1917 * tests/glr-regression.at: For consistency with my newer test cases,
1918 don't thank myself.
1919
d659304d
JD
19202006-01-05 Joel E. Denny <jdenny@ces.clemson.edu>
1921
1922 * data/glr.c (yyresolveValue): When merging semantic options, if at
1923 least one user action succeeds but a later one cuts the parse, then
1924 destroy the semantic value before returning rather than leaking it.
1925 (yyresolveStates): If a user action cuts the parse and thus
1926 yyresolveValue fails, ignore the (unset) semantic value rather than
1927 corrupting the yyGLRState, and empty the semantic options list since
1928 the user actions should have called all necessary destructors.
1929 Simplify code with YYCHK.
1930 * tests/glr-regression.at (Corrupted semantic options if user action
1931 cuts parse): New test case.
1932 (Undesirable destructors if user action cuts parse): New test case.
1933 Before applying any of this patch, this test case never actually failed
1934 for me... but only because the corrupted semantic options usually
1935 masked this bug.
1936 (Leaked merged semantic value if user action cuts parse): New test
1937 case.
1938
6ec2c0f2
AD
19392006-01-05 Akim Demaille <akim@epita.fr>
1940
1941 * src/reader.c, src/symlist.h, src/symlist.c: s/mid_rule/midrule/.
1942
1b9c21fb
PE
19432006-01-04 Paul Eggert <eggert@cs.ucla.edu>
1944
1945 * data/c.m4 (b4_c_modern): New macro, with a new provision for
1946 _MSC_VER. Problem reported by Cenzato Marco.
1947 (b4_c_function_def): Use it.
1948 * data/yacc.c (YYMODERN_C): Remove. All uses replaced by
1949 b4_c_modern.
1950 (yystrlen, yystpcpy, yyparse): Use b4_c_function... macros rather
1951 than rolling our own.
1952
84866159
AD
19532006-01-04 Akim Demaille <akim@epita.fr>
1954
1955 Also warn about non-used mid-rule values.
1956 * src/symlist.h, src/symlist.c (symbol_list): Add a mid_rule
1957 member.
1958 (symbol_list_new): Adjust.
1959 * src/reader.c (symbol_typed_p): New.
1960 (grammar_rule_check): Use it.
1961 (grammar_midrule_action): Bind a mid-rule LHS to its rule.
1962 Check its rule.
1963 * tests/input.at (AT_CHECK_UNUSED_VALUES): New.
1964 Use it.
1965 * tests/actions.at (Exotic Dollars): Adjust.
1966
378f4bd8
AD
19672006-01-04 Akim Demaille <akim@epita.fr>
1968
1969 * src/reader.c (grammar_midrule_action): If $$ is set in a
1970 mid-rule, move the `used' bit to its lhs.
1971 * tests/input.at (Unused values): New.
1972 * tests/actions.at (Exotic Dollars): Adjust: exp is not typed.
1973
e2a21b6f
PE
19742006-01-03 Paul Eggert <eggert@cs.ucla.edu>
1975
54662697
PE
1976 * doc/bison.texinfo (Bison Options): Say more accurately what
1977 --yacc does.
1978 * src/parse-gram.y (rules_or_grammar_declaration): Don't complain
1979 about declarations in the grammar when in Yacc mode, as POSIX does
1980 not require a diagnostic when the grammar uses extensions.
1981
1982 * src/reduce.c (reduce_grammar): Remove unnecessary cast to bool.
1983
073f9288
PE
1984 Warn about dubious constructions like "%token T T".
1985 Reported by twlevo.
1986 * src/symtab.h (struct symbol.declared): New member.
1987 * src/symtab.c (symbol_new): Initialize it to false.
1988 (symbol_class_set): New arg DECLARING, specifying whether
1989 this is a declaration that we want to warn about, if there
1990 is more than one of them. All uses changed.
1991
1221b78a
PE
1992 * data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c:
1993 Allow multiple %union directives, whose contents concatenate.
1994 * src/parse-gram.y (grammar_declaration): Likewise.
1995 Use muscle_code_grow, so that we don't need stype_line any more.
1996 All uses changed.
1997
1998 * src/muscle_tab.c (muscle_grow): Fix comment.
1999
e2a21b6f
PE
2000 * ChangeLog, data/c.m4, data/glr.c, data/glr.cc, data/location.cc:
2001 * data/yacc.c, src/getargs.c, src/output.c, tests/cxx-type.at:
2002 Update copyright year to 2006.
2003
8f7e3cf9
AD
20042006-01-03 Akim Demaille <akim@epita.fr>
2005
2006 Have glr.cc pass (some of) the calc.at tests.
2007 * data/glr.cc (b4_parse_param_orig): New.
2008 (b4_parse_param): Improve its definition, and bound it more
2009 clearly in the skeleton.
2010 (b4_epilogue): Append, instead of prepending, in order to keep
2011 #line consistency.
2012 Simplify the generation of auxiliary functions: locations and
2013 purity are mandated.
2014 (b4_global_tokens_and_yystype): Honor it.
2015 * data/location.cc (c++.m4): Don't include it.
2016 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Define AT_GLR_CC_IF
2017 and AT_SKEL_CC_IF.
2018 * tests/calc.at (AT_CHECK_CALC): Rely on AT_SKEL_CC_IF instead of
2019 AT_LALR1_CC_IF.
2020 Be sure to initialize the first position's filename.
2021 (AT_CHECK_CALC_LALR1_CC): Add %location and %defines, they are
2022 mandated anyway.
2023 (AT_CHECK_CALC_GLR_CC): New.
2024 Use it to exercise glr.cc as a lalr1.cc drop-in replacement.
2025
3953ed88
AD
20262006-01-02 Akim Demaille <akim@epita.fr>
2027
2028 * src/output.c (output_skeleton): Don't hard wire the inclusion of
2029 c.m4.
0a96ba81 2030 * data/c++.m4, data/glr.c, data/yacc.c: Include c.m4.
3953ed88
AD
2031 * data/glr.cc: Do not include stack.hh.
2032
9ecafbbf
AD
20332006-01-02 Joel E. Denny <jdenny@ces.clemson.edu>
2034
2035 * data/glr.c: Reformat whitespace with tabs.
2036 (b4_lpure_formals): Remove this unused m4 macro.
2037 * tests/cxx-type.at: Reformat whitespace with tabs.
2038 (_AT_TEST_GLR_CXXTYPES): In union Node, rename node_info to nodeInfo
2039 since it's a member. Rename type to isNterm for clarity.
2040
c4d497a0
AD
20412005-12-29 Akim <akim@sulaco.local>
2042
2043 Let glr.cc catch up with symbol_value_print.
2044 * data/glr.cc (b4_yysymprint_generate): Replace by...
2045 (b4_yy_symbol_print_generate): this.
2046 (yy_symbol_print, yy_symbol_value_print): Declare them.
2047
4517da37
PE
20482005-12-28 Paul Eggert <eggert@cs.ucla.edu>
2049
2050 * src/location.h (boundary): Note that a line or column equal
2051 to INT_MAX indicates an overflow.
2052 * src/scan-gram.l: Include verify.h. Don't include get-errno.h.
2053 (rule_length_overflow, increment_rule_length, add_column_width):
2054 New functions.
2055 (<INITIAL>{id}, <SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'"):
2056 (<SC_BRACED_CODE>"}"):
2057 Use increment_rule_length rather than incrementing it by hand.
2058 (adjust_location, handle_syncline): Diagnose overflow.
2059 (handle_action_dollar, handle_action_at):
2060 Fix bug with monstrosities like $-2147483648.
2061 Remove now-unnecessary checks.
2062 (scan_integer): Verify assumptions and remove now-unnecessary checks.
2063 (convert_ucn_to_byte): Verify assumptions.
2064 (handle_syncline): New arg LOC. All callers changed.
2065 Don't store through a value derived from char const * pointer.
2066
2067 * src/reader.c (grammar_rule_check): Rewrite slightly to avoid
2068 GCC warnings.
2069
e3233bf6
PE
20702005-12-27 Paul Eggert <eggert@cs.ucla.edu>
2071
2072 * src/reader.c (grammar_midrule_action, grammar_symbol_append):
2073 Remove unnecessary forward static decls.
2074
8f3596a6
AD
20752005-12-27 Akim Demaille <akim@epita.fr>
2076
2077 * src/reader.c (grammar_current_rule_check): Also check that $$
2078 is used.
2079 Take the rule to check as argument, hence rename as...
2080 (grammar_rule_check): this.
2081 * src/reader.h, src/reader.c (grammar_rule_begin, grammar_rule_end):
2082 Rename as...
2083 (grammar_rule_begin, grammar_rule_end): these, for consistency.
2084 (grammar_midrule_action, grammar_symbol_append): Now static.
2085 * tests/torture.at (input): Don't rely on the default action
2086 being always performed.
2087 * tests/calc.at: "Set" $$ even when the action is "cut" with
2088 YYERROR or other.
2089 * tests/actions.at (Exotic Dollars): Instead of using unused
2090 values, check that the warning is issued.
2091
721be13c
PE
20922005-12-22 Paul Eggert <eggert@cs.ucla.edu>
2093
2094 * NEWS: Improve wording for unused-value warnings.
2095
a0af42fc
AD
20962005-12-22 Akim Demaille <akim@epita.fr>
2097
2098 * data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
2099 (b4_yysymprint_generate): Rename as...
2100 (b4_yy_symbol_print_generate): this.
2101 Generate yy_symbol_print instead of yysymprint.
2102 Generate also yy_symbol_value_print, and use it.
2103
affac613
AD
21042005-12-22 Akim Demaille <akim@epita.fr>
2105
721be13c 2106 * NEWS: Warn about unused values.
affac613
AD
2107 * src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
2108 a `used' member.
2109 (symbol_list_n_get, symbol_list_n_used_set): New.
2110 (symbol_list_n_type_name_get): Use symbol_list_n_get.
2111 * src/scan-gram.l (handle_action_dollar): Flag used symbols.
2112 * src/reader.c (grammar_current_rule_check): Check that values are
2113 used.
2114 * src/symtab.c (symbol_print): Accept 0.
2115 * tests/existing.at: Remove the type information.
2116 Empty the actions.
2117 Remove useless actions (beware of mid-rule actions: perl -000
2118 -pi -e 's/\s*\{\}(?=[\n\s]*[|;])//g').
2119 * tests/actions.at (Exotic Dollars): Use unused values.
2120 * tests/calc.at: Likewise.
2121 * tests/glr-regression.at (No users destructors if stack 0 deleted):
2122 Likewise.
2123
2124 * src/gram.c (rule_useful_p, rule_never_reduced_p): Use
2125 rule_useful_p.
2126
9d9b8b70
PE
21272005-12-21 Paul Eggert <eggert@cs.ucla.edu>
2128
8bb4c753
PE
2129 Undo 2005-12-01 tentative license wording change. The wording is
2130 still being reviewed by the lawyers, and we don't want to wait for
2131 them before publishing a test release. For now, revert to the
2132 previous wording.
2133 * NEWS: Undo 2005-12-01 change.
2134 * data/glr.c: Revert to previous license wording.
2135 * data/glr.cc: Likewise.
2136 * data/lalr1.cc: Likewise.
2137 * data/location.cc: Likewise.
2138 * data/yacc.c: Likewise.
2139
9d9b8b70
PE
2140 * NEWS: Reword %destructor vs YYABORT etc.
2141 * data/glr.c: Use American spacing, for consistency.
2142 * data/glr.cc: Likewise.
2143 * data/lalr1.cc: Likewise.
2144 * data/yacc.c: Likewise.
2145 * data/yacc.c: Reformat comments slightly.
2146 * doc/bison.texinfo: Replace "non-" with "non" when that makes sense,
2147 for consistency. Fix some spelling errors and reword recently-included
2148 text slightly.
2149 * tests/cxx-type.at: Cast results of malloc, for C++.
2150
2c3b392a
AD
21512005-12-21 Joel E. Denny <address@hidden>
2152
2153 * tests/cxx-type.at: Construct a tree, count the parents of shared
2154 nodes, and free each node once and only once. Previously, the memory
2155 for semantic values was leaked instead.
2156
d6cff4dc
AD
21572005-12-21 Joel E. Denny <address@hidden>
2158
2159 * data/glr.c (struct yyGLRStack): If pure, add yyval and yyloc members.
2160 (yylval, yylloc): If pure, #define to yystackp->yyval and
2161 yystackp->yyloc similar to yychar and yynerrs.
2162 (yyparse): If pure, remove local yylval and yylloc. Add local
2163 yystackp to accommodate pure definitions of yylval and yylloc.
2164 (b4_lex_param, b4_lyyerror_args, b4_lpure_args): If pure, change
2165 yylvalp and yyllocp to &yylval and &yylloc.
2166 (nerrs, char, lval, lloc): If pure, add #define's for b4_prefix[]
2167 namespace. Previously, nerrs and char were missing, but lval and lloc
2168 weren't necessary.
2169 (yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Remove
2170 yylvalp and yyllocp parameters since, if pure, these are now always
2171 accessible through yystackp. If not pure, they are still accessible
2172 globally.
2173 * data/glr.c, data/yacc.c (YYLLOC_DEFAULT): Change `if (N)' to
2174 `if (YYID (N))' to pacify lint.
2175
a85284cf
AD
21762005-12-21 Akim Demaille <akim@epita.fr>
2177
2178 YYACCEPT, YYERROR, and YYABORT, as user actions, should not
2179 destroy the RHS symbols of a rule.
2180 * data/yacc.c (yylen): Initialize to 0.
2181 Keep its value to the number of items to possibly shift.
2182 In particular, a regular successful parse that ends on YYFINAL by
2183 a (internal) YYACCEPT must not have yylen != 0.
2184 (yyerrorlab, yyreturn): Pop the RHS.
2185 Reorder a bit to emphasize the `shifting' bits of code.
2186 (YYPOPSTACK): Now accept a number of items to pop.
2187 * data/lalr1.cc: Likewise.
2188 * data/glr.c: Formatting changes.
2189 Use goto instead of fall through.
2190 * doc/bison.texinfo (Destructor Decl): Complete.
2191
d508c281
JMG
21922005-12-20 Juan Manuel Guerrero <juan.guerrero@gmx.de>
2193
2194 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
2195 * djgpp/Makefile.maint: Fix PACKAGE variable computation.
2196 * djgpp/config.bat: Replace every occurence of the file name
2197 scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
2198 c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
2199 * djgpp/config.sed: Replace every occurence of the file name
2200 scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
2201 c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
2202 * djgpp/djunpack.bat: DJGPP specific file.
2203 * djgpp/fnchange.lst: DJGPP specific file.
2204 * djgpp/README.in: Add new information about how to unpack the bison
2205 source on MSDOS and other systems which have 8.3 file name restrictions
2206 using djunpack.bat and fnchange.lst.
2207
3e7a2cd9
PE
22082005-12-12 Paul Eggert <eggert@cs.ucla.edu>
2209
2210 * bootstrap (build_cvs_prefix): Remove; unused.
2211 (CVS_PREFIX): Adjust to yesterday's Savannah reorganization
2212 when getting gnulib.
2213
22142005-12-12 "Joel E. Denny" <jdenny@ces.clemson.edu>
2215
2216 * data/glr.c: Reorder typedef declarations for structs to match order
2217 of struct declarations.
2218 Rename yystack everywhere to yystackp except in yyparse where it's not
2219 a pointer.
2220 (yyglrShift): Change parameter YYSTYPE yysval to YYSTYPE* yyvalp for
2221 consistency.
2222 (yyis_table_ninf): Change 0 to YYID (0) to pacify lint.
2223 (yyreportSyntaxError): Add /*ARGSUSED*/ to pacify lint.
2224 (yyparse): Change while (yytrue) to while ( YYID (yytrue)) to pacify
2225 lint.
2226
877519f8
PE
22272005-12-09 Paul Eggert <eggert@cs.ucla.edu>
2228
0eca5a39
PE
2229 * tests/sets.at (Accept): Fix typos in regular expression used to
2230 sed out the final state number.
2231
2cec9080
PE
2232 Work around portability problem on Solaris 10: flex-generated
2233 files include <stdio.h> before <config.h>, which messes up
2234 because the latter defines __EXTENSIONS__. Address the problem
2235 by creating two new little files that include <config.h> first,
2236 then include the flex-generated files. Rewrite everyone else
2237 to include <config.h> first, as well.
2238 * lib/timevar.c: Always include "config.h".
2239 * src/Makefile.am (bison_SOURCES): Replace scan-gram.l with
2240 scan-gram-c.c, and scan-skel.l with scan-skel-c.c.
2241 (EXTRA_bison_SOURCES): New macro.
2242 * src/scan-gram-c.c, src/scan-skel-c.c: New files.
2243 * src/system.h: Don't include config.h.
2244 * src/LR0.c: Include <config.h> first.
2245 * src/assoc.c: Likewise.
2246 * src/closure.c: Likewise.
2247 * src/complain.c: Likewise.
2248 * src/conflicts.c: Likewise.
2249 * src/derives.c: Likewise.
2250 * src/files.c: Likewise.
2251 * src/getargs.c: Likewise.
2252 * src/gram.c: Likewise.
2253 * src/lalr.c: Likewise.
2254 * src/location.c: Likewise.
2255 * src/main.c: Likewise.
2256 * src/muscle_tab.c: Likewise.
2257 * src/nullable.c: Likewise.
2258 * src/output.c: Likewise.
2259 * src/parse-gram.y: Likewise.
2260 * src/print.c: Likewise.
2261 * src/print_graph.c: Likewise.
2262 * src/reader.c: Likewise.
2263 * src/reduce.c: Likewise.
2264 * src/relation.c: Likewise.
2265 * src/state.c: Likewise.
2266 * src/symlist.c: Likewise.
2267 * src/symtab.c: Likewise.
2268 * src/tables.c: Likewise.
2269 * src/uniqstr.c: Likewise.
2270 * src/vcg.c: Likewise.
2271
877519f8
PE
2272 * src/parse-gram.y: Fix minor problems uncovered by lint.
2273 (current_lhs, current_lhs_location): Now static.
2274 (current_assoc): Remove unused variable.
2275
2276 Cleanups so that Bison-generated parsers have less lint.
2277 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
2278 Prepend /*ARGSUSED*/, for lint's sake.
2279 * data/glr.c (YYUSE): Properly parenthesize, and use an alternate
2280 definition if 'lint' is defined.
2281 (YYID): New macro (or function, if lint).
2282 All uses of /*CONSTCOND*/0 replaced by YYID(0).
2283 * data/yacc.c: Likewise.
2284 * data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
2285 (yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
2286 * data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
2287 is C++ only.
2288 * data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
2289 * data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
2290 Use YYID(0) rather than 0, for lint.
2291 (yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
2292 (yysyntax_error): Rewrite to avoid lint warnings about parenthesization.
2293
f5228370
PE
22942005-12-07 Paul Eggert <eggert@cs.ucla.edu>
2295
2296 * tests/glr-regression.at
2297 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
2298 Close memory leak reported by twlevo.
2299
69ce078b
PE
23002005-12-06 "Joel E. Denny" <jdenny@ces.clemson.edu>
2301
6ff99711
PE
2302 * data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for
2303 all stacks.
2304 (yyparse): Iterate another stack in order to call user destructors.
69ce078b
PE
2305 * tests/glr-regression.at (No users destructors if stack 0 deleted):
2306 New test case.
2307 (Duplicated user destructor for lookahead): This test now is expected
2308 to succeed.
2309
af3412cd
PE
23102005-12-01 Paul Eggert <eggert@cs.ucla.edu>
2311
32b5b719 2312 * NEWS: Document the following change.
af3412cd
PE
2313 * data/yacc.c: Say "parser skeleton" rather than "file", since
2314 it's no longer just a file.
2315 * data/glr.c: Grant a special exception for C GLR parsers, that
2316 reads like the already-existing exception for C LALR(1) parsers.
2317 * data/glr.cc: Likewise.
2318 * data/lalr1.cc: Likewise.
2319 * data/location.cc: Likewise.
2320 * data/yacc.c: Reword the "written by" statement to clarify that
2321 it was the parser skeleton, not the entire output file.
2322 * data/glr.c: Written by Paul Hilfinger.
2323 * data/glr.cc: Written by Akim Demaille.
2324 * data/lalr1.cc: Likewise.
2325
035aa4a0
PE
23262005-11-18 Paul Eggert <eggert@cs.ucla.edu>
2327
d9963c85
PE
2328 * data/yacc.c (yy_reduce_print, YY_REDUCE_PRINT):
2329 Fix typos in previous change that broke 'make check'.
2330 YY_REDUCE_PRINT cannot be a pseudo-varargs macro; that isn't
2331 supported in C.
2332 * tests/calc.at (_AT_CHECK_CALC,_AT_CHECK_CALC_ERROR):
2333 Don't check NUM-STDERR-LINES, since the output format is fluctuating.
2334 We can revert this once things settle down.
2335
035aa4a0
PE
2336 * src/conflicts.c (conflicts_print): Don't print file name twice
2337 when %expect fails because there were no conflicts.
2338 * doc/bison.texinfo (Expect Decl): Tighten up wording in previous
2339 change.
2340 * tests/conflicts.at (%expect not enough, %expect too much):
2341 (%expect with reduce conflicts): Adjust to new behavior.
2342
23432005-11-18 Akim Demaille <akim@epita.fr>
2344
2345 * src/conflicts.c (conflicts_print): Unsatisfied %expectation are
2346 errors.
2347 * NEWS: Document this.
2348 * doc/bison.texinfo (Expect Decl): Likewise.
2349
d1ff7a7c
AD
23502005-11-16 Akim Demaille <akim@epita.fr>
2351
2352 Generalize the display of semantic values and locations in traces.
2353 * data/glr.c (yy_reduce_print): Fix indices (again).
2354 * data/c++.m4 (b4_rhs_value, b4_rhs_location): Don't expect
2355 literal integers.
2356 * data/lalr1.cc (yyreduce_print): Rename as...
2357 (yy_reduce_print): this.
2358 Display values and locations.
2359 * data/yacc.c (yy_reduce_print): Likewise.
2360 (YY_REDUCE_PRINT): Adjust to pass the required arguments.
2361 (yysymprint): Move higher to be visible from yy_reduce_print).
2362 (yyparse): Adjust.
2363 * tests/calc.at: Adjust the expected length of the traces.
2364
6de5398d
AD
23652005-11-14 Akim Demaille <akim@epita.fr>
2366
2367 * data/glr.c (yy_reduce_print): The loop was quite wrong: type are
2368 from 1 to N, while values and location start at 0.
2369 (b4_rhs_location, b4_rhs_value): Add parens around $1 and $2.
2370
a1373f55
AD
23712005-11-14 Akim Demaille <akim@epita.fr>
2372
2373 * data/glr.c (yy_reduce_print): Fix the $ number.
2374
613d8952
AD
23752005-11-14 Akim Demaille <akim@epita.fr>
2376
2377 "Use" parse parameters.
2378 * data/c.m4 (b4_parse_param_for, b4_parse_param_use): New.
2379 * data/glr.c, data/glr.cc: Use them.
2380 * data/glr.c (YYUSE): Have a C++ definition that supports
2381 non-pointer types.
2382
b2741627
AD
23832005-11-14 Akim Demaille <akim@epita.fr>
2384
2385 * data/glr.c (yyexpandGLRStack): Declare only if defined.
2386
5059b5c8
AD
23872005-11-14 Akim Demaille <akim@epita.fr>
2388
42249483
AD
2389 * data/glr.cc: New.
2390 * data/m4sugar/m4sugar.m4 (m4_prepend): New.
5059b5c8 2391
4626a15d
AD
23922005-11-12 Akim Demaille <akim@epita.fr>
2393
2394 Let position and location be PODs.
2395 * data/location.cc (position::initialize, location::initialize): New.
2396 (position::position, location::location): Define only if
2397 b4_location_constructors is defined.
2398 * data/lalr1.cc (b4_location_constructors): Define it for backward
2399 compatibility.
2400 * doc/bison.texinfo (Initial Action Decl): Use initialize.
2401
24022005-11-12 Akim Demaille <akim@epita.fr>
98ae9643
AD
2403
2404 * data/lalr1.cc: Move the body of the ctor and dtor into the
2405 parser file (instead of the header).
2406 Wrap the implementations in a "namespace yy".
2407
24082005-11-12 Akim Demaille <akim@epita.fr>
2409
2410 Have glr.c include its header file when created.
2411 * data/glr.c (b4_shared_declarations): New.
2412 Output them verbatim in the parser if !%defines, otherwise
2413 output then in the header file, and include it instead.
2414
1989d947
AD
24152005-11-11 Akim Demaille <akim@epita.fr>
2416
2417 * data/glr.c: Comment changes.
2418
24192005-11-11 Akim Demaille <akim@epita.fr>
62b08cfc
AD
2420
2421 When yydebug, report semantic and location values for reductions.
2422 * data/glr.c (yy_reduce_print): Report the semantic values and the
2423 locations.
2424 (YY_REDUCE_PRINT): Adjust.
2425 (yyglrReduce): Use them.
2426 (b4_rhs_value, b4_rhs_location): Remove m4_eval invocations.
2427 * data/c.m4 (b4_yysymprint_generate): Specify the const arguments.
2428 * tests/calc.at (_AT_CHECK_CALC_ERROR): Remove the reduction
2429 traces.
2430
02998094
AD
24312005-11-10 Akim Demaille <akim@epita.fr>
2432
2433 * data/glr.c (yynewGLRStackItem, YY_RESERVE_GLRSTACK): New.
2434 (yyaddDeferredAction, yyglrShift, yyglrShiftDefer): Use them.
2435 (yyexpandGLRStack, YYRELOC): Define only when YYSTACKEXPANDABLE.
2436
5210672f
PE
24372005-11-09 Albert Chin-A-Young <china@thewrittenword.com>
2438
2439 * m4/cxx.m4, examples/Makefile.am: Don't build
2440 examples/calc++ if no C++ compiler is available. (trivial change)
2441
a8991a1d
AD
24422005-11-09 Akim Demaille <akim@epita.fr>
2443
2444 * src/scan-skel.l: Use a couple of asserts.
2445
36b5e963
AD
24462005-11-03 Akim Demaille <akim@epita.fr>
2447
2448 In some (weird) cases, the final state number is incorrect.
2449 Reported by Alexandre Duret-Lutz.
2450 * src/LR0.c (state_list_append): Remove the computation of
2451 final_state.
2452 (save_reductions): Do it here.
2453 (get_state): Alpha conversion.
2454 (generate_states): Use a for loop.
2455 * src/gram.h (item_number_is_rule_number)
2456 (item_number_is_symbol_number): New.
2457 * src/state.c: Use assert.
2458 * src/system.h: Include assert.h.
2459 * tests/sets.at (Accept): New.
2460
44e7ead1
PH
24612005-10-30 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
2462
2463 * data/glr.c (yyfill): Adjust comment.
36b5e963 2464 (yyresolveAction): Initialize default location properly
44e7ead1
PH
2465 for empty right-hand sides.
2466 (yydoAction): Ditto.
2467 Add comment explaining apparently dead code.
36b5e963
AD
2468 * tests/glr-regression.at
2469 (Incorrectly initialized location for empty right-hand side in GLR):
44e7ead1 2470 New test.
36b5e963 2471
e10a80ee
PE
24722005-10-30 Paul Eggert <eggert@cs.ucla.edu>
2473
2474 * bootstrap (cleanup_gnulib): New function. Use it to clean up
2475 gnulib when interrupted. This fixes some race conditions and
2476 works around some portability problems (one noted by Paul
2477 Hilfinger).
2478
067b32ee
AD
24792005-10-22 Akim <akim@epita.fr>
2480
2481 * Makefile.cfg: Adjust to config -> build-aux.
2482 Reported by twledo.
2483
4b367315
AD
24842005-10-21 Akim Demaille <akim@epita.fr>
2485
2486 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
2487 the %parse-params.
2488 * data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
2489 * data/yacc.c (b4_Pure_if): Rename as...
2490 (b4_yacc_pure_if): this.
2491 (YY_SYMBOL_PRINT, yyparse): Adjust.
2492 * doc/bison.texinfo: Formatting changes.
2493
24cc23d9
AD
24942005-10-21 Akim Demaille <akim@epita.fr>
2495
2496 Finish the transition config -> build-aux.
2497 * configure.ac, Makefile.am: Use build-aux.
2498 * config/prev-version, config/announce-gen, config/Makefile.am:
2499 Move to...
2500 * build-aux/prev-version, build-aux/announce-gen,
2501 * build-aux/Makefile.am: here.
2502
d4476375
AD
25032005-10-14 Akim Demaille <akim@epita.fr>
2504
2505 * examples/calc++/test: Use set -x only when VERBOSE.
2506
302c0aee
PE
25072005-10-13 Paul Eggert <eggert@cs.ucla.edu>
2508
2509 * NEWS: Bison now warns if it finds a stray `$' or `@' in an action.
2510 * src/scan-gram.l (<SC_BRACED_CODE>[$@]): Implement this.
2511
7625ec2c
AD
25122005-10-13 Akim Demaille <akim@epita.fr>
2513
2514 * src/scan-skel.l: Output the base name parts of the parser and
2515 header file names.
302c0aee 2516 * tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
7625ec2c
AD
2517 additional checks.
2518 Use this to exercise C++ outputs in subdirs.
2519 Reported by Oleg Smolsky.
2520
ba0fe3c7
PE
25212005-10-12 Paul Eggert <eggert@cs.ucla.edu>
2522
2523 * data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at
2524 __STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
2525 Problem reported by John P. Hartmann.
2526 * data/yacc.c (YYMODERN_C): Likewise. Don't define if the user has
2527 already defined it.
2528
9b8a5ce0
AD
25292005-10-12 Akim Demaille <akim@epita.fr>
2530
2531 * src/parse-gram.y (version_check): Exit 63 to please missing
2532 (stands for "version mismatch).
2533 * tests/input.at, doc/bison.texinfo: Adjust.
2534
4f6e011e
PE
25352005-10-10 Paul Eggert <eggert@cs.ucla.edu>
2536
2537 Work around portability problems with Visual Age C compiler
2538 (xlc and xlC_r) reported by John P. Hartmann.
2539 * data/location.cc (initial_column, initial_line): Remove.
2540 All uses replaced by 0 and 1.
2541 * src/scan-gram.l (gram_wrap): Redefine to avoid bug in flex 2.5.31
2542 that xlc complains about.
2543 * src/scan-skel.l (skel_wrap): Likewise.
4d7aa45e 2544 * data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
ba0fe3c7 2545 as __STDC__.
4d7aa45e
PE
2546 * data/yacc.c (YYMODERN_C): New macro, which also looks at
2547 __STDC_VERSION__. Use it everywhere instead of looking at
2548 __STDC__ and __cplusplus.
4f6e011e 2549
a1b3bf8c
AD
25502005-10-10 Akim Demaille <akim@epita.fr>
2551
2552 * examples/calc++/test: Be quiet unless VERBOSE.
2553
412e44aa
PE
25542005-10-05 Paul Eggert <eggert@cs.ucla.edu>
2555
2a4647a3
PE
2556 * data/c.m4 (yydestruct, yysymprint):
2557 Use YYUSE instead of casting to void.
2558 * data/glr.c (YYUSE): New macro.
2559 (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
2560 Use it instead of rolling our own.
2561 (YYLLOC_DEFAULT, YYCHK, YYDPRINTF, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
2562 (YYCHK1):
2563 Use /*CONSTCOND*/ to suppress lint warnings.
2564 * data/lalr1.cc (YYLLOC_DEFAULT, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
2565 (YY_STACK_PRINT): Use 'false' not '0'.
2566 (YYUSE): New macro.
2567 (yysymprint_, yydestruct_): Use it instead of rolling our own.
2568 * data/yacc.c (YYUSE): New macro.
2569 (YYCOPY, YYSTACK_RELOCATE, YYBACKUP, YYLLOC_DEFAULT):
2570 (YYDPRINTF, YY_SYMBOL_PRINT, YY_STACK_PRINT, YY_REDUCE_PRINT):
2571 (yyerrorlab): Use /*CONSTCOND*/ to suppress lint warnings.
2572
2573
412e44aa
PE
2574 * data/m4sugar/m4sugar.m4 (_m4_map): New macro.
2575 (m4_map, m4_map_sep): Use it. Handle the empty list correctly.
2576
88c6637f
PE
25772005-10-04 Paul Eggert <eggert@cs.ucla.edu>
2578
2f4f028d
PE
2579 Undo the parts of the unlocked-I/O change that substituted
2580 putc or puts for printf. This might hurt performance a bit,
2581 but some people prefer the printf style.
2582 * data/c.m4 (yysymprint): Prefer printf to puts and putc.
2583 * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): Remove.
2584 All uses replaced by YYFPRINTF and YYDPRINTF.
2585 * data/yacc.c: Likewise.
2586 * lib/bitset.c (bitset_print): Likewise.
2587 * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer printf to
2588 putc and puts.
2589 * lib/lbitset.c (debug_lbitset): Likewise.
2590 * src/closure.c (print_firsts, print_fderives): Likewise.
2591 * src/gram.c (grammar_dump): Likewise.
2592 * src/lalr.c (look_ahead_tokens_print): Likewise.
2593 * src/output.c (escaped_output): Likewise.
2594 (user_actions_output): Break apart two printfs.
2595 * src/parse-gram.y (%printer): Prefer printf to putc and puts.
2596 * src/reduce.c (reduce_print): Likewise.
2597 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
2598 * src/system.h: Include unlocked-io.h rathe than stdio.h.
2599
88c6637f
PE
2600 * data/glr.c (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
2601 Use assignments rather than casts-to-void to suppress
2602 unused-variable warnings. This pacifies 'lint'.
2603 * data/lalr1.cc (yysymprint_, yydestruct_): Use a call to suppress
2604 unused-variable warnings.
2605
fb32e373
JMG
26062005-10-03 Juan Manuel Guerrero <juan.guerrero@gmx.de>
2607
2608 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
2609
edb8f44f
PE
26102005-10-02 Paul Eggert <eggert@cs.ucla.edu>
2611
fb9c0b33
PE
2612 Use unlocked I/O for a minor performance improvement on hosts like
2613 GNU/Linux and Solaris that support unlocked I/O. The basic idea
2614 is to use the gnlib unlocked-io module, and to prefer putc and
2615 puts to printf when either will work (since the latter doesn't
2616 come in an unlocked flavor).
2617 * bootstrap (gnulib_modules): Add unlocked-io.
2618 * data/c.m4 (yysymprint): Prefer puts and putc to printf.
2619 * data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
2620 Prefer them to YYFPRINTF and YYDPRINTF if either will do,
2621 and similarly for puts and putc and printf.
2622 * data/yacc.c: Likewise.
2623 * lib/bitset.c (bitset_print): Likewise.
2624 * lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
2625 * lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
2626 to printf.
2627 * lib/lbitset.c (debug_lbitset): Likewise.
2628 * src/closure.c (print_firsts, print_fderives): Likewise.
2629 * src/gram.c (grammar_dump): Likewise.
2630 * src/lalr.c (look_ahead_tokens_print): Likewise.
2631 * src/output.c (escaped_output): Likewise.
2632 (user_actions_output): Coalesce two printfs.
2f4f028d 2633 * src/parse-gram.y (%printer): Prefer putc and puts to printf.
fb9c0b33
PE
2634 * src/reduce.c (reduce_print): Likewise.
2635 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
2f4f028d 2636 * src/system.h: Include unlocked-io.h rather than stdio.h.
fb9c0b33 2637
edb8f44f
PE
2638 * data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
2639 this confuses xgettext.
2640
b50d2359
AD
26412005-10-02 Akim Demaille <akim@epita.fr>
2642
2643 * bootstrap (gnulib_modules): Add strverscmp.
2644 * lib/.cvsignore: Add strverscmp.c, strverscmp.h.
2645 * m4/.cvsignore: Add strverscmp.m4.
2646 * src/parse-gram.y (%require): New token, new rule.
2647 (version_check): New.
2648 * src/scan-gram.l (%require): Adjust.
2649 * tests/input.at (AT_REQUIRE): New.
2650 Use it.
2651 * doc/bison.texinfo (Require Decl): New.
2652 (Calc++ Parser): Use %require.
2653
21667f64
AD
26542005-10-02 Akim Demaille <akim@epita.fr>
2655
2656 * data/location.cc: New.
2657
2b81e969
AD
26582005-10-02 Paul Eggert <eggert@cs.ucla.edu>,
2659 Akim Demaille <akim@epita.fr>
2660
2661 Make sure -odir/foo.cc creates dir/location.hh etc.
2662 * src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
2663 (spec_file_prefix, spec_verbose_file, spec_graph_file)
2664 (spec_defines_file): Now const.
2665 (dir_prefix): New.
2666 (short_base_name): Remove.
2667 * src/files.c: Adjust.
2668 (dirname.h): Include.
2669 (base_name): Don't prototype it.
2670 (finput): Remove, duplicates gram_in.
2671 (full_base_name, short_base_name): Replace by...
2672 (all_but_ext, all_but_tab_ext): these.
2673 (compute_base_names): Rename as...
2674 (compute_file_name_parts): this.
2675 Update to compute the new variables, including dir_prefix.
2676 Adjust dependencies.
2677 * src/output.c (prepare): Output them.
2678 * src/reader.c: Adjust to use gram_in, not finput.
2679 * src/scan-skel.l (@dir_prefix@): New.
2680
ad6a9b97
JMG
26812005-10-02 Juan Manuel Guerrero <juan.guerrero@gmx.de>
2682
2683 * lib/subpipe.c: New function end_of_output_subpipe() added
2684 to allow support for non-posix systems. This is a no-op function
2685 for posix systems.
2686
2687 * lib/subpipe.h: New function end_of_output_subpipe() added
2688 to allow support for non-posix systems. This is a no-op function
2689 for posix systems.
2690
2691 * src/output.c (output_skeleton): Use end_of_output_subpipe() to
2692 handle the lack of pipe/fork functionality on non-posix systems.
2693
2694 * djgpp/Makefile.maint: DJGPP specific file.
2695
2696 * djgpp/README.in: DJGPP specific file.
2697
2698 * djgpp/config.bat: DJGPP specific configuration file.
2699
2700 * djgpp/config.sed: DJGPP specific configuration file.
2701
2702 * djgpp/config.site: DJGPP specific configuration file.
2703
2704 * djgpp/config_h.sed: DJGPP specific configuration file.
2705
2706 * djgpp/subpipe.c: DJGPP specific replacement file for lib/subpipe.c.
2707
2708 * djgpp/subpipe.h: DJGPP specific replacement file for lib/subpipe.h.
2709
fc695704
AD
27102005-10-02 Akim Demaille <akim@epita.fr>
2711
2712 * data/location.cc: New, extract from...
2713 * data/lalr1.cc: here.
2714 (location.hh): Include it after the user prologue, in case the
2715 filename type is defined by the user.
2716 Forward declation location and position before the pre-prologue.
2717 (yyresult_): Rename as...
2718 (yyresult): this, it's a local variable, not an attribute.
2719 * data/Makefile.am (dist_pkgdata_DATA): Adjust.
2720
27212005-10-01 Akim Demaille <akim@epita.fr>
5215c87f
AD
2722
2723 * examples/extexi: Restore the #line generation.
2724
fb9712a9
AD
27252005-09-30 Akim Demaille <akim@epita.fr>,
2726 Alexandre Duret-Lutz <adl@gnu.org>
2727
2728 Move the token type and YYSTYPE in the parser class.
2729 * data/lalr1.cc (stack.hh, location.hh): Include earlier.
2730 (parser::token): New, from the moved free definition of tokens.
2731 (parser::semantic_value): Now a full definition instead of an
2732 indirection to YYSTYPE.
2733 (b4_post_prologue): No longer included in the header file, but
2734 in the implementation file.
2735 * doc/bison.texi (C+ Language Interface): Update.
2736 * src/parse-gram.y: Support unary %define.
2737 * tests/actions.at: Define global_tokens_and_yystype for backward
2738 compatibility until we update the tests.
2739 * tests/calc.at: Idem.
2740 (first_line, first_column, last_line, last_column): Define for lalr1.cc
2741 to simplify the code.
2742
55f0c7b1
PE
27432005-09-29 Paul Eggert <eggert@cs.ucla.edu>
2744
2745 Port to SunOS 4.1.4, which lacks strtoul and strerror.
2746 Ah, the good old days! Problem reported by Peter Klein.
2747 * bootstrap (gnulib_modules): Add strerror, strtoul.
2748 * lib/.cvsignore: Add strerror.c, strtol.c, strtoul.c
2749 * m4/.cvsignore: Add strerror.m4, strtol.m4, strtoul.m4.
2750
fb9712a9 27512005-09-29 Akim Demaille <akim@epita.fr>
d4fb5e3c
AD
2752
2753 * data/c.m4 (b4_error_verbose_if): New.
2754 * data/lalr1.cc: Use it.
2755 (YYERROR_VERBOSE_IF): Remove.
2756 (yyn_, yylen_, yystate_, yynerrs_, yyerrstatus_): Remove as
2757 parser members, replaced by...
2758 (yyn, yylen, yystate, yynerss, yyerrstatus): these parser::parse
2759 local variables.
2760 (yysyntax_error_): Takes the state number as argument.
2761 (yyreduce_print_): Use the argument yyrule, not the former
2762 attribute yyn_.
2763
8a6f72f3
PE
27642005-09-26 Paul Eggert <eggert@cs.ucla.edu>
2765
2766 * bootstrap (gnulib_modules): Add verify.
2767 * lib/.cvsignore: Add verify.h.
2768 * src/getargs.c: Use ARGMATCH_VERIFY rather than verify.
2769 * src/system.h (verify): Remove.
2770 Include verify.h instead.
2771 * src/tables.c (tables_generate): Use new API for 'verify'.
2772
0d50976f
PE
27732005-09-21 Paul Eggert <eggert@cs.ucla.edu>
2774
ebc3737e
PE
2775 * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Do not use
2776 local variables whose names begin with 'yy'.
2777 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
2778 Trivial changes from Joel E. Denny.
2779
0d50976f
PE
2780 * bootstrap (gnulib_modules): Remove alloca. Bison doesn't need
2781 it itself.
2782 * src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
2783 don't use alloca any more.
2784
2785 * data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
2786 __BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
62c4328e 2787 defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
0d50976f
PE
2788 * tests/torture.at (Exploding the Stack Size with Alloca): Adjust
2789 to match yacc.c, to test more hosts.
2790
a05b79df
PE
27912005-09-20 Paul Eggert <eggert@cs.ucla.edu>
2792
55289366
PE
2793 * data/yacc.c (YYSIZE_T): Reindent to make it clearer. This
2794 doesn't affect behavior.
2795 (YYSTACK_ALLOC) [YYSTACK_USE_ALLOCA]: Improve support for
2796 Solaris, AIX, MSC.
2797 (_STDLIB_H): Renamed from YYINCLUDED_STDLIB_H. All uses changed.
2798 This works a bit better with glibc, if user code has already included
2799 stdlib.h.
2800 * doc/bison.texinfo (Bison Parser): Document that users can't
2801 arbitrarily use malloc and free for other purposes. Document
2802 that <alloca.h> and <malloc.h> might be included.
2803 (Table of Symbols): Under YYSTACK_USE_ALLOCA, Don't claim that the
2804 user must declare alloca.
2805
a05b79df
PE
2806 * HACKING (release): Forwarn the Translation Project about
2807 stable releses.
2808
3ab2ca22
AD
28092005-09-20 Akim Demaille <akim@epita.fr>
2810
2811 * data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
2812
a9739e7c
PE
28132005-09-19 Paul Eggert <eggert@cs.ucla.edu>
2814
a702593e
PE
2815 * data/yacc.c (YYSIZE_MAXIMUM): New macro.
2816 (YYSTACK_ALLOC_MAXIMUM): Use it.
2817 (yysyntax_error): New function.
2818 (yyparse) [YYERROR_VERBOSE]: Don't leak memory indefinitely if
2819 multiple syntax errors are reported, and alloca is being used.
2820 Instead, reallocate buffers twice as big each time, so that
2821 we waste at most half the allocated memory. Start with a small
2822 (128-byte) buffer that will suffice in most cases anyway.
2823 Use yysyntax_error to do most of the work.
2824
2825 * doc/bison.texinfo (Error Reporting, Table of Symbols):
2826 yynerrs is the number of errors reported, not the number of
2827 errors encountered.
2828
a9739e7c
PE
2829 * tests/glr-regression.at (Duplicated user destructor for lookahead):
2830 Mark it as expected to fail.
2831 Cast result of malloc; problem reported by twlevo@xs4all.nl.
2832 * tests/actions.at, tests/calc.at, tests/glr-regression.at:
2833 Don't start user-code symbols with "yy", to avoid name space problems.
2834
f479c6c6
AD
28352005-09-19 Akim Demaille <akim@epita.fr>
2836
2837 Remove the traits, failed experiment.
2838 It never proved useful, and anyway because of the current
2839 definition, it was not possible to have several specialization of
2840 this traits, making it useless.
2841 * data/lalr1.cc (yy:traits): Remove.
2842 Inline its definitions in the parser class.
2843
e2586f82
AD
28442005-09-19 Akim Demaille <akim@epita.fr>
2845
2846 * tests/atlocal.in (LIBS): Pass INTLLIBS to address failures on at
2847 least Mac OSX with a /usr/local install of gettext.
2848
2e8cf949
AD
28492005-09-19 Akim Demaille <akim@epita.fr>
2850
2851 * data/lalr1.cc (yyparse): Rename yylooka and yyilooka as yychar
2852 and yytoken for similarity with the other skeletons.
2853
c7fb0b90
AD
28542005-09-19 Akim Demaille <akim@epita.fr>
2855
4e26c69e 2856 * NEWS, configure.ac: update version number to 2.1a.
c7fb0b90 2857
1bd0deda
PE
28582005-09-16 Paul Eggert <eggert@cs.ucla.edu>
2859
2860 * NEWS: Version 2.1.
2861
2862 * NEWS: Remove notice of yytname change, since it was never in an
2863 official release.
2864 * data/glr.c (yydestroyGLRState): Rename local var to avoid shadowing
2865 diagnostic.
2866 * src/output.c (prepare): Likewise.
2867 * data/lalr1.cc (YYERROR_VERBOSE_IF): New macro.
2868 (yysyntax_error_): Use it to avoid GCC warning when YYERROR_VERBOSE
2869 is not defined. This is an awful hack, but it's enough for now.
2870 All callers changed.
2871 * tests/glr-regression-at (make_value): Args are const pointers now,
2872 to avoid GCC warning.
2873 (Duplicated user destructor for lookahead): New test. Currently
2874 skipped. It fails on my host but I'm not sure it'll always fail.
2875
28762005-09-16 Akim Demaille <akim@epita.fr>
c1432f65
AD
2877
2878 * src/symtab.h (struct symbol): Declare the printer and destructor
2879 as const, to avoid accidental calls to free.
2880 (symbol_destructor_set, symbol_printer_set): Adjust.
2881 * src/symtab.c: Adjust.
2882
1bd0deda 28832005-09-16 Akim Demaille <akim@epita.fr>
cf147260
AD
2884
2885 * data/c.m4 (b4_token_enums): New.
2886 (b4_token_defines): Rename as...
2887 (b4_token_enums_defines): this.
2888 (b4_token_defines): New, output only the #defines.
2889 * data/yacc.c, data/glr.c: Adjust.
2890 * data/lalr1.cc: Use b4_token_enums instead of b4_token_enums_defines.
2891 * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Define
2892 as default values.
2893
dbcdae2d
AD
28942005-09-16 Akim Demaille <akim@epita.fr>
2895
2896 * data/lalr1.cc (yylex_): Remove, inline its code.
2897 (yyreport_syntax_error_): Remove, replaced by...
2898 (yysyntax_error_): this which returns a string and leaves to the
2899 caller the call to the users' error function.
2900 (yylooka_, yyilooka_, yylval, yylloc, yyerror_range_, yyval, yyloc):
2901 Move from members of the parser object...
2902 (yylooka, yyilooka, yylval, yylloc, yyerror_range, yyval, yyloc):
2903 to local variables of the parse function.
2904
70d8f291
AD
29052005-09-16 Akim Demaille <akim@epita.fr>
2906
2907 * doc/bison.texinfo (Calc++ Parser): Don't promote defining YYEOF
2908 since it's in Bison's name space.
2909
b47dbebe
PE
29102005-09-15 Paul Eggert <eggert@cs.ucla.edu>
2911
ae199bf1
PE
2912 * data/glr.c (yyresolveValue): Add default case to pacify
2913 gcc -Wswitch-default. Problem reported by twlevo@xs4all.nl.
2914
b47dbebe
PE
2915 * NEWS: Document when yyparse started to return 2.
2916 * doc/bison.texinfo (Parser Function): Document when yyparse
2917 returns 2.
2918
2919 * data/lalr1.cc: Revert part of previous change, as it's incompatible.
2920 (b4_filename_type): Renamed back from b4_file_name_type. All uses
2921 changed.
2922 (class position): file_name -> filename (reverting). All uses changed.
2923
29242005-09-14 Paul Eggert <eggert@cs.ucla.edu>
2925
2926 * examples/calc++/Makefile.am ($(calc_sources_generated)): Don't
2927 do anything if $@ exists. This reverts part of the 2005-07-07
2928 patch.
2929
00292f66
PE
29302005-09-11 Paul Eggert <eggert@cs.ucla.edu>
2931
2932 * Makefile.am (EXTRA_DIST): Do not distribute REFERENCES; it
2933 contains obsolete information and isn't worth distributing as a
2934 separate file anyway.
2935 * data/glr.c [defined YYSETJMP]: Don't include <setjmp.h>.
2936 (YYJMP_BUF, YYSETJMP, YYLONGJMP) [!defined YYSETJMP]: New macros.
2937 All uses of jmp_buf, setjmp, longjmp changed to use these instead.
2938 (yyparse): Abort if user code uses longjmp to throw an unexpected
2939 value.
2940
a420f962
PE
29412005-09-09 Paul Eggert <eggert@cs.ucla.edu>
2942
00292f66
PE
2943 * data/c.m4 (b4_identification): Define YYBISON_VERSION.
2944 Suggested by twlevo@xs4all.nl.
2945
127287e9
PE
2946 * data/glr.c (YYCHK1): Do not assume YYE is in range.
2947 This avoids a diagnostic from gcc -Wswitch-enum.
2948 Problem reported by twlevo@xs4all.nl.
2949
a420f962
PE
2950 * doc/bison.texinfo: Don't use "filename", as per GNU coding
2951 standards. Use "file name" or "file" or "name", depending on
2952 the context.
2953 (Invocation): The output of "bison hack/foo.y" goes to foo.tab.c,
2954 not to hack/foo.tab.c.
2955 (Calc++ Top Level): 2nd arg of main is not const.
48b16bbc
PE
2956 * data/glr.c: b4_filename -> b4_file_name.
2957 * data/lalr1.cc: Likewise. Also, b4_filename_type -> b4_file_name_type.
2958 All uses changed.
2959 (class position): filename -> file_name. All uses changed.
2960 * data/yacc.c: b4_filename -> b4_file_name.
2961 * lib/bitset.h: filename -> file_name in local vars.
2962 * lib/bitset_stats.c: Likewise.
2963 * src/files.c: Likewise.
2964 * src/scan-skel.l ("@output ".*\n): Likewise.
2965 * src/files.c (file_name_split): Renamed from filename_split.
2966 * src/muscle_tab.c (muscle_init): Output b4_file_name, not b4_filename.
a420f962
PE
2967
29682005-09-08 Paul Eggert <eggert@cs.ucla.edu>
2969
2970 * lib/.cvsignore: Add pipe-safer.c, stdio--.h, unistd--.h,
2971 to accommodate latest gnulib.
2972
2973 * tests/glr-regression.at (Duplicate representation of merged trees):
2974 Add casts to pacify g++. Problem reported by twlevo@xs4all.nl.
2975
2976 * bootstrap: Add comment as to why the AM_LANGINFO_CODESET hack is
2977 needed.
2978
42a6501d
PE
29792005-08-26 Paul Eggert <eggert@cs.ucla.edu>
2980
2981 * data/glr.c (yydestroyGLRState): Renamed from yydestroyStackItem.
2982 All uses changed. Invoke user destructor after an error during a
2983 split parse (trivial change from Joel E. Denny).
2984
2985 * tests/glr-regression.at
2986 (User destructor after an error during a split parse): New test case.
2987 Problem reported by Joel E. Denny in:
2988 http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00029.html
2989
ef9a1faf
PE
29902005-08-25 Paul Eggert <eggert@cs.ucla.edu>
2991
5b4aaf78
PE
2992 * README-cvs: Give URLs for recommended tools.
2993 Mention Gzip version problem, and bootstrapping issues.
2994 Remove troubleshooting section, as it's somewhat obsolete.
2995
b5240ba5
PE
2996 * bootstrap (no_cache): New var, to accommodate different wget
2997 variants. Use it instead of '-C off'. Problem reported by
2998 twlevo@xs4all.nl.
2999
ef9a1faf
PE
3000 * data/glr.c (yydestroyStackItem): New function.
3001 (yyrecoverSyntaxError, yyreturn): Use it to improve quality of
3002 debugging information. Problem reported by Joel E. Denny.
3003
e6efa9da
AD
30042005-08-25 Akim Demaille <akim@epita.fr>
3005
3006 * tests/local.at (AT_COMPILE_CXX): Pass $LINKS too.
3007
adc90f13
PE
30082005-08-24 Paul Eggert <eggert@cs.ucla.edu>
3009
3010 * data/glr.c (yyrecoverSyntaxError, yyreturn):
3011 Don't invoke destructor on unresolved entries.
3012 * tests/glr-regression.at
3013 (User destructor for unresolved GLR semantic value): New test case.
3014 Problem reported by Joel E. Denny in:
3015 http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00016.html
3016
f9315de5
PE
30172005-08-21 Paul Eggert <eggert@cs.ucla.edu>
3018
15d29c1f
PE
3019 * lib/.cvsignore: Remove realloc.c, strncasecmp.c, xstrdup.c.
3020 Add strnlen.c.
3021 * m4/.cvsignore: Remove codeset.m4, gettext.m4, lib-ld.m4,
3022 lib-prefix.m4, po.m4.
3023
dd5f2af2
PE
3024 * data/glr.c (yyreturn): Use "Cleanup:" rather than "Error:"
3025 in yydestruct diagnostic, since it might not be an error.
3026 Problem reported by Joel Denny near end of
3027 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
6250acbd 3028 * data/lalr1.cc (yyerturn): Likewise.
dd5f2af2
PE
3029 * data/yacc.c (yyreturn): Likewise.
3030 * tests/calc.at (_AT_CHECK_CALC_ERROR): Adjust to the above change.
3031
3032 * src/files.c: Remove obsolete FIXME comment.
3033
3034 * data/glr.c (YY_SYMBOL_PRINT): Append a newline, for consistency
3035 with the other templates, and to fix bogus run-on messages such
3036 as the one reported at the end of
3037 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
3038 All callers changed to avoid the newline.
3039 (yyprocessOneStack): Output two lines rather than one, to accommodate
3040 the above change. This changes the debug output format slightly.
3041
f9315de5
PE
3042 * data/glr.c (yyresolveValue): Fix redundant parse tree problem
3043 reported by Joel E. Denny in
3044 <http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00004.html>
3045 (trivial change).
3046 * tests/glr-regression.at (Duplicate representation of merged trees):
3047 New test, from Joel E. Denny in:
3048 <http://lists.gnu.org/archive/html/help-bison/2005-07/msg00013.html>.
3049 * THANKS: Add Joel E. Denny.
3050
3051 * configure.ac (AC_INIT): Bump to 2.0c.
3052
04098407
PE
30532005-07-24 Paul Eggert <eggert@cs.ucla.edu>
3054
3055 * NEWS: Version 2.0b.
3056
ca5d2013
PE
3057 * Makefile.am (SUBDIRS): Put examples before tests, so that
3058 "make check" doesn't finish with "All 1 tests passed".
3059
3d54b576
PE
3060 * tests/regression.at (Token definitions): Don't rely on
3061 AT_PARSER_CHECK for data that contains backslashes. It currently
3062 uses 'echo', and 'echo' isn't portable if its argument contains
3063 backslashes. Problem found on OpenBSD 3.4. Also, do not assume
3064 that the byte '\0xff' is not printable in the C locale; it is,
3065 under OpenBSD 3.4 (!). Luckily, '\0x80' through '\0x9e' are
3066 not printable, so use '\0x81' to test.
3067
d53ae497
PE
3068 * data/glr.c (YYOPTIONAL_LOC): Define even if it's not a recent
3069 version of GCC, since the macro is used with non-GCC compilers.
3070
fc01665e
PE
3071 Fix core dump reported by Pablo De Napoli in
3072 <http://lists.gnu.org/archive/html/bug-bison/2005-07/msg00053.html>.
3073 * tests/regression.at (Invalid inputs with {}): New test.
3074 * src/parse-gram.y (token_name): Translate type before using
3075 it as an index.
3076
04098407
PE
3077 * data/glr.c (ATTRIBUTE_UNUSED): Remove, since it infringes on
3078 the user's name space. All uses changed to __attribute__
3079 ((__unused__)).
3080 (yyFail, yyMemoryExhausted, yyreportAmbiguity):
3081 Add __attribute__ ((__noreturn__)).
3082
3083 * etc/clcommit: Remove. We weren't using it, and it failed
3084 "make maintainer-distcheck".
3085 * Makefile.maint: Merge from coreutils.
3086 (CVS_LIST, CVS_LIST_EXCEPT): New macros.
3087 (syntax-check-rules): Change list of rules as described below.
3088 (sc_cast_of_alloca_return_value, sc_dd_max_sym_length):
3089 (sc_file_system, sc_obsolete_symbols, sc_prohibit_atoi_atof):
3090 (sc_prohibit_jm_in_m4, sc_root_tests, sc_tight_scope):
3091 (sc_trailing_space): New rules.
3092 (sc_xalloc_h_in_src): Remove.
3093 (sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value):
3094 (sc_space_tab, sc_error_exit_success, sc_changelog):
3095 (sc_system_h_headers, sc_sun_os_names, sc_unmarked_diagnostics):
3096 (makefile-check, po-check, author_mark_check):
3097 (makefile_path_separator_check, copyright-check):
3098 Use grep -n, to make it easier to find violations.
3099 Use CVS_LIST and CVS_LIST_EXCEPT.
3100 (header_regexp, h_re): Remove.
3101 (dd_c): New macro.
3102 (sc_dd_max_sym_length, .re-list, news-date-check): New rules.
3103 (my-distcheck): Use more-modern GCC flags.
3104 (signatures, %.asc): Remove.
3105 (rel-files, announcement): Remove signatures.
3106 Restore old updating code, even though we don't use it, so
3107 that we're the same as coreutils.
3108 (alpha, beta, major): Depend on news-date-check.
3109 Make the upload commands.
3110
3111 * data/c.m4, data/lalr1.cc, data/yacc.c: Normalize white space.
3112 * lib/abitset.h, lib/bbitset.h, lib/bitset.h: Likewise.
3113 * lib/bitset_stats.c, lib/ebitset.h, lib/lbitset.c: Likewise.
3114 * lib/libitset.h, lib/timevar.c, lib/vbitset.h: Likewise.
3115 * src/Makefile.am, src/gram.c, src/muscle_tab.h: Likewise.
3116 * src/parse-gram.y, src/system.h, src/tables.c, src/vcg.c: Likewise.
3117 * src/vcg_defaults.h, tests/cxx-type.at, tests/existing.at: Likewise.
3118 * tests/sets.at: Likewise.
3119
3120 * data/m4sugar/m4sugar.m4: Sync from Autoconf, except that
3121 we comment out the Autoconf version number.
3122 * doc/bison.texinfo (Calc++ Scanner): Don't use atoi, as
3123 it's error-prone and "make maintainer-distcheck" rejects it.
3124
3125 * lib/subpipe.c: Include <fcntl.h> without checking for HAVE_FCNTL_H.
3126 Indent calls to "error" to pacify "make maintainer-distcheck",
3127 when the calls are not intended to be translated.
3128 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't check for fcntl.h.
3129
3130 * src/Makefile.am (DEFS): Use +=, to pacify
3131 "make maintainer-distcheck".
3132 (bison_SOURCES): Add scan-skel.h.
3133 (sc_tight_scope): New rule, from coreutils.
3134
3135 * src/files.c (src_extension, header_extension):
3136 Now static, not extern.
3137 * src/getargs.c (short_options): Likewise.
3138 * src/muscle_tab.c (muscle_table): Likewise.
3139 * src/parse-gram.y (current_class, current_type, current_prec):
3140 Likewise.
3141 * src/reader.c (grammar_end, previous_rule_end): Likewise.
3142 * src/getargs.h: Redo comments to pacify "make maintainer-distcheck".
3143 * src/main.c (main): Cast bindtextdomain and textdomain calls to
3144 void, to avoid warning when NLS is disabled.
3145 * src/output.c: Include scan-skel.h.
3146 (scan_skel): Remove decl, since scan-skel.h does this.
3147 (output_skeleton):
3148 Indent calls to "error" to pacify "make maintainer-distcheck".
3149 * src/print_graph.c: Don't include <obstack.h>, as system.h does this.
3150 * src/reader.h (gram_end, gram_lineno): New decls to pacify
3151 "make maintainer-distcheck".
3152 * src/scan-skel.l (skel_lex, skel_get_lineno, skel_get_in):
3153 (skel_get_out, skel_get_leng, skel_get_text, skel_set_lineno):
3154 (skel_set_in, skel_set_out, skel_get_debug, skel_set_debug):
3155 (skel_lex_destroy, scan_skel): Move these decls to...
3156 * src/scan-skel.h: New file.
3157 * src/uniqstr.c (uniqstr_assert):
3158 Indent calls to "error" to pacify "make maintainer-distcheck".
3159
3160 * tests/Makefile.am ($(srcdir)/package.m4): Use $(VAR),
3161 not @VAR@.
3162
3163 * tests/torture.at: Revamp to avoid misuse of atoi that
3164 "make maintainer-distcheck" complained about.
3165
3166 * examples/extexi (message): Don't print a message more than once,
3167 and omit line-number decoration that makes Emacs compile think
3168 that informative messages are worth worrying about.
3169
31702005-07-22 Paul Eggert <eggert@cs.ucla.edu>
3171
3172 * configure.ac: Update version number.
3173
3174 * Makefile.am (SUBDIRS): Add examples; somehow this got removed
3175 accidentally.
3176 * examples/calc++/calc++-parser.yy: Remove from CVS, as it's
3177 autogenerated by the maintainer.
3178 * examples/calc++/.cvsignore: Add *.yy.
3179
3180 * lib/bitset.c (bitset_alloc): Don't cast xcalloc result.
3181 * lib/bitset_stats.c (bitset_stats_init): Likewise.
3182 * lib/bitsetv.c (bitsetv_alloc): Likewise.
3183
3184 * po/POTFILES.in: Add lib/xalloc-die.c; remove lib/xmalloc.c.
3185
3186 * src/relation.c (relation_transpose): Rewrite to avoid bogus complaint
3187 from maintainer-distcheck about casting the argument of 'free'.
3188
3189 * NEWS: Mention recent yytname changes.
3190 * THANKS: Add Anthony Heading, twlevo@xs4all.nl.
3191
3192 * bootstrap: For translations that have not yet been upgraded to
3193 the new runtime-po domain, prime the pump by extracting the
3194 relevant strings from the obsolete translations. This code can be
3195 removed once the bison-runtime domain has been translated by each
3196 team.
3197
3198 * src/scan-gram.l (<SC_PRE_CODE>.): Don't double-quote token names,
3199 now that token names are already quoted.
3200
3201 Fix problem reported by Anthony Heading.
3202 * data/glr.c (YYTOKEN_TABLE): New macro.
3203 (yytname): Define if YYTOKEN_TABLE.
3204 * data/yacc.c (YYTOKEN_TABLE, yytname): Likewise.
3205 * data/lalr1.cc (YYTOKEN_TABLE, yytname_): Likewise.
3206 (YYERROR_VERBOSE): Define the same way the other skeletons do.
3207 * src/output.c (prepare_symbols): Output token_table_flag.
3208
0ffda363
PE
32092005-07-21 Paul Eggert <eggert@cs.ucla.edu>
3210
3211 * data/glr.c (yyinitGLRStack, yyreturn): Don't call malloc
3212 again if the first call fails.
3213
3214 * data/glr.c (yytnamerr): New function.
3215 (yyreportSyntaxError): Use it to dequote most string literals.
3216 * data/lalr1.c (yytname_): Renamed from yyname_, for compatibility
3217 with other skeletons. All uses changed.
3218 (yytnameerr_): New function.
3219 (yyreport_syntax_error): Use it to dequote most string literals.
3220 * data/yacc.c (yytnamerr): New function.
3221 (yyerrlab): Use it to decode most string literals.
3222 * doc/bison.texinfo (Decl Summary, Calling Convention):
3223 Clarify quoting convention of yytname.
3224 * src/output.c (prepare_symbols): Quote all names. This undoes
3225 the 2005-04-17 change, which is now accomplished (mostly) via
3226 changes in the parsers as described above.
3227 * tests/regression.at (Token definitions, Web2c Actions):
3228 Undo most 2005-04-17 change here, too.
3229
32302005-07-20 Paul Eggert <eggert@cs.ucla.edu>
3231
3232 Fix more problems reported by twlevo@xs4all.nl.
3233 * tests/cxx-type.at: Don't pipe output of ./types through sed to
3234 remove trailing spaces. This loses the exit status of ./types,
3235 and isn't needed since ./types shouldn't be emitting trailing
3236 spaces.
3237 * data/glr.c (yyreturn): Don't pop stack if yyinitStateSet failed,
3238 as the stack isn't valid in that case.
3239
3240 * src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
3241 (gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
3242 (gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
3243 Add declarations to pacify "gcc -Wmissing-prototypes" when flex 2.5.31
3244 is used.
3245 * src/scan-skel.l (skel_get_lineno, skel_get_in, skel_get_out):
3246 (skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
3247 (skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
3248 Likewise.
3249
3250 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Work even with
3251 overly-picky compilers that reject 'char *foo = "bar";'.
3252
3253 * src/symtab.c (SYMBOL_ATTR_PRINT, symbol_print): Direct output
3254 to FILE * parameter, not to stderr. This fixes a typo introduced
3255 in the 2005-07-12 change.
3256
3257 * lib/subpipe.c (create_subpipe): Rewrite slightly to avoid
3258 warnings from GCC 4.
3259
3260 * data/glr.c (yyexpandGLRStack, yyaddDeferredAction, yyexpandGLRStack):
3261 (yyglrShiftDefer, yysplitStack):
3262 Remove unused parameters b4_pure_formals. All uses changed.
3263 (yyglrShift): Remove unused parameters b4_user_formals.
3264 All uses changed.
3265 (yyglrReduce): Removed unused parameter yylocp. All uses changed.
3266
6100a9aa
PE
32672005-07-18 Paul Eggert <eggert@cs.ucla.edu>
3268
258b75ca
PE
3269 Destructor cleanups and regularization among the three skeletons.
3270 * NEWS: Document the behavior changes.
3271 * data/glr.c (yyrecoverSyntaxError): Don't bother to pop the
3272 stack before failing, as the cleanup code will do it for us now.
3273 * data/lalr1.cc (yyerrlab): Likewise.
3274 * data/glr.c (yyparse): Pop everything off the stack before
3275 freeing it, so that destructors get called properly.
3276 * data/lalr1.cc (yyreturn): Likewise.
3277 * data/yacc.c (yyreturn): Pop and destroy the start symbol, too.
3278 This is more consistent.
3279 * doc/bison.texinfo (Destructor Decl): Mention more reasons
3280 why destructors might be called. 1.875 -> 2.1.
3281 (Destructor Decl, Decl Summary, Table of Symbols):
3282 Some English-language cleanups for %destructor.
3283 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
3284 Add output line for destructor of start symbol.
3285 * tests/calc.at (AT_CHECK_CALC): Add one to line counts,
3286 because of that same extra output line.
3287
1a059451
PE
3288 * NEWS: Document minor wording changes in diagnostics of
3289 Bison-generated parsers.
3290 * data/glr.c (yyMemoryExhausted): Renamed from yyStackOverflow.
3291 Remove unused formals. All uses changed.
3292 (yyreportAmbiguity): "ambiguity detected" -> "syntax is ambiguous".
3293 (yyparse): Rename yyoverflowlab to yyexhaustedlab.
3294 * data/yacc.c (yyparse): "parser stack overflow" -> "memory exhausted".
3295 Rename yyoverflowab to yyexhaustedlab.
3296 When memory exhaustion occurs during syntax-error reporting,
3297 report it separately rather than in a single diagnostic; this
3298 eases translation.
3299 * doc/bison.texinfo (Memory Management): Renamed from Stack Overflow.
3300 (Memory Exhausted): Renamed from Parser Stack Overflow.
3301 Revamp wording slightly to prefer "memory exhaustion".
3302 * tests/actions.at: "parser stack overflow" -> "memory exhausted".
3303
97460c78
PE
3304 * data/c.m4 (b4_yysymprint_generate): Use YYFPRINTF, not fprintf.
3305
30757c8c
PE
3306 Add i18n support to the GLR skeleton. Partially fix the C++
3307 skeleton; a C++ expert needs to finish this. Remove debugging
3308 msgids; there's little point to having them translated, since they
3309 can be understood only by someone who can read the
3310 (English-language) source code.
3311
3312 Generate runtime-po/bison-runtime.pot automatically, so that we
3313 don't have to worry about garbage getting in that file. We'll
3314 make sure after the next official release that old msgids don't
3315 get lost. See
3316 <http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>.
3317
3318 * runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove.
3319 Now auto-generated.
3320 * PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet.
3321 Fix typos in explanations of the runtime file.
3322 * bootstrap: Change gettext keyword from YYI18N to YY_.
3323 Use standard Makefile.in.in in runtime-po, since we'll arrange
3324 for backward-compatible bison-runtime.po files in a different way.
3325 * data/glr.c (YY_): New macro, from yacc.c.
3326 (yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse):
3327 Translate messages intended for users.
3328 (yyreportSyntaxError): Change "virtual memory" to "memory" to match
3329 the wording in the other skeletons. We don't know that the memory
3330 is virtual.
3331 * data/lalr1.cc (YY_): Renamed from _. All uses changed.
3332 Use same method that yacc.c uses.
3333 Don't translate debugging messages.
3334 (yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff;
3335 it doesn't work (yet), and requires C++ expertise to fix.
3336 * data/yacc.c (YY_): Renamed from YY18N. All uses changed.
3337 Move defn to a more logical place, to be consistent with other
3338 skeletons.
3339 Don't translate debugging messages.
3340 Don't assume line numbers fit in unsigned int; use unsigned long fmts.
3341 * doc/bison.texinfo: Mention <libintl.h>. Change glibc cross reference
3342 to gettext cross reference. Add indexing terms. Mention YYENABLE_NLS.
3343 * runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
3344
ac8c5689
PE
3345 Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
3346 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
3347 void, not int.
3348 * tests/glr-regression.at (Badly Collapsed GLR States):
3349 Likewise.
3350 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
3351 yylex should return 0 at EOF rather than aborting.
3352
6100a9aa
PE
3353 Improve tests for stack overflow in GLR parser.
3354 Problem reported by twlevo@xs4all.nl.
3355 * data/glr.c (struct yyGLRStack): Remove yyerrflag member.
3356 All uses removed.
3357 (yyStackOverflow): Just longjmp, but with value 2 so that caller
3358 can handle the problem.
3359 (YYCHK1): Use goto (a la yacc.c) rather than setting a flag.
3360 (yyparse): New local variable yyresult to record the result.
3361 Use result of setjmp to set it, rather than storing itinto
3362 struct.
3363 (yyDone): Remove label.
3364 (yyacceptlab, yyabortlab, yyoverflowlab, yyreturn): New labels,
3365 to mimic yacc.c. Do not discard lookahead if it's EOF (possible
3366 if YYABORT is used).
3367 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Exit with
3368 yyparse status; put status > 1 into diagnostic.
3369 Check that status==2 works.
3370 * tests/calc.at, tests/cxx-type.at, tests/glr-regression.at:
3371 Use exit status 3 for failure to open (which shouldn't happen).
3372
15f40952
PE
33732005-07-17 Paul Eggert <eggert@cs.ucla.edu>
3374
67fd79c4
PE
3375 * tests/conflicts.at (%nonassoc and eof): Don't exit with status
3376 1 on syntax error; just let yyparse do its thing.
3377 * tests/glr-regression.at (Badly Collapsed GLR States): Likewise.
3378 * tests/torture.at (AT_DATA_STACK_TORTURE): Likewise.
3379 (Exploding the Stack Size with Alloca):
3380 (Exploding the Stack Size with Malloc):
3381 Expect exit status 2, not 1, since the parser is supposed to blow
3382 its stack. Problem reported by twlevo@xs4all.nl.
3383
15f40952
PE
3384 * data/glr.c (yyparse): Don't assume that the initial calls
3385 to YYMALLOC succeed; in that case, yyparse incorrectly returned 0.
3386 Print a stack-overflow message and fail instead.
3387 Initialize the line-number information before creating the stack,
3388 so that the stack-overflow message can report line zero safely.
3389
f32c66b5
PE
33902005-07-14 Paul Eggert <eggert@cs.ucla.edu>
3391
a22ff96f 3392 Fix problems reported by twlevo@xs4all.nl.
e2688cd9
PE
3393 * data/glr.c (YYSTACKEXPANDABLE): Don't define if already defined.
3394 (yyuserMerge): Provide a default case if b4_mergers is empty.
3395 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Define YYSTACKEXPANDABLE.
3396 * tests/glr-regression.at
3397 (Improper handling of embedded actions and dollar(-N) in GLR parsers):
c70fdfcd 3398 Add casts to pacify C++ compilers.
1beb0b24
PE
3399 * tests/glr-regression.at (Improper merging of GLR delayed action
3400 sets): Declare yylex before using it.
f32c66b5 3401 * tests/Makefile.am (maintainer-check-g++): Fix a stray
a22ff96f
PE
3402 $(GXX) that escaped the renaming of GXX to CXX. Remove bogus
3403 test for valgrind; valgrind is independent of g++.
3404 (maintainer-check-posix): Add _POSIX2_VERSION=200112, to check
3405 for compatibility with POSIX 1003.1-2001 (if running coreutils).
3406 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Port to stricter C++.
3407 Use a destructor, so that we can expand the stack. Change
3408 YYSTYPE to char * so that we can free it. Cast result of malloc.
f32c66b5 3409
d741bd1b
PE
34102005-07-13 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
3411
3412 * data/glr.c (yyuserAction): Fix uninitialized variable that caused
3413 a valgrind failure. Problem reported by twlevo@xs4all.nl.
3414
0410a6e0
PE
34152005-07-13 Paul Eggert <eggert@cs.ucla.edu>
3416
3417 * PACKAGING: New file, suggested by Bruno Haible and taken from
3418 similar wording in gettext's PACKAGING file.
3419 * NEWS: Mention PACKAGING.
3420 * Makefile.am (EXTRA_DIST): Add PACKAGING.
3421
f7ab6a50
PE
34222005-07-12 Paul Eggert <eggert@cs.ucla.edu>
3423
baf785db 3424 * NEWS: Document recent i18n improvements.
f7ab6a50
PE
3425 * bootstrap: Get runtime translations into runtime-po.
3426 Create runtime-po files automatically, if possible.
3427 * configure.ac: Invoke BISON_I18N, so that we eat our own dog food.
3428 * data/yacc.c: Rewrite inclusion of <libintl.h> so that ENABLE_NLS
3429 does not infringe on the user's name space.
3430 (YYENABLE_NLS): Renamed from ENABLE_BISON_NLS.
3431 * doc/bison.texinfo (Internationalization): Revamp the English
3432 and Texinfo syntax a bit, to try to make it clearer.
3433 (Bison Options, Option Cross Key): Mention --print-localedir.
3434 * m4/bison-i18n.m4 (BISON_I18N): Rename ENABLE_BISON_NLS to
3435 YYENABLE_NLS. Quote a bit more.
3436 * runtime-po/.cvsignore: New file.
3437 * runtime-po/Makefile.in.in (mostlyclean): Remove *.old.pot.
3438 * runtime-po/Rules-quot: Remove; now created by bootstrap.
3439 * runtime-po/quot.sed: Likewise.
3440 * runtime-po/boldquot.sed: Likewise.
3441 * runtime-po/en@quot.header: Likewise.
3442 * runtime-po/en@boldquot.header: Likewise.
3443 * runtime-po/insert-header.sin: Likewise.
3444 * runtime-po/remove-potcdate.sin: Likewise.
3445 * runtime-po/Makevars: Likewise.
3446 * runtime-po/LINGUAS: Likewise.
3447 * runtime-po/de.po: Likewise; we will rely on the translation project
3448 to maintain this, so "bootstrap" should get it.
0410a6e0 3449 * src/getarg.c (PRINT_LOCALEDIR_OPTION): Let the C compiler determine
f7ab6a50
PE
3450 its value.
3451 * src/main.c (main): Bind the bison-runtime domain, too.
3452
34532005-07-12 Bruno Haible <bruno@clisp.org>
3454
3455 * data/yacc.c: Include <libintl.h> when NLS is enabled.
3456 (YYI18N): Renamed from _. Use dgettext when NLS is enabled.
3457 * po/POTFILES.in: Remove autogenerated file src/parse-gram.c.
3458 * runtime-po: New directory.
3459 * runtime-po/Makefile.in.in: New file, copied from po/, with modified
3460 $(DOMAIN).pot-update rule, so that old messages are never dropped.
3461 * runtime-po/Rules-quot: New file, copied from po/.
3462 * runtime-po/quot.sed: Likewise.
3463 * runtime-po/boldquot.sed: Likewise.
3464 * runtime-po/en@quot.header: Likewise.
3465 * runtime-po/en@boldquot.header: Likewise.
3466 * runtime-po/insert-header.sin: Likewise.
3467 * runtime-po/remove-potcdate.sin: Likewise.
3468 * runtime-po/Makevars: New file.
3469 * runtime-po/POTFILES.in: New file.
3470 * runtime-po/LINGUAS: New file.
3471 * runtime-po/bison-runtime.pot: New file.
3472 * runtime-po/de.po: New file.
3473 * m4/bison.m4: New file.
3474 * Makefile.am (SUBDIRS): Add runtime-po.
3475 (aclocaldir, aclocal_DATA): New variables.
3476 * configure.ac: Add AC_CONFIG_FILES of runtime-po/Makefile.in.
3477 Define aclocaldir.
3478 * src/getargs.c (usage): Document --print-localedir option.
3479 (PRINT_LOCALEDIR_OPTION): New enum item.
3480 (long_options): Add --print-localedir option.
3481 (getargs): Handle --print-localedir option.
3482 * doc/bison.texinfo (Bison Parser): Remove paragraph about _().
3483 (Internationalization): New section.
3484
22dda0f0
AD
34852005-07-12 Akim Demaille <akim@epita.fr>
3486
3487 * src/symtab.h, src/symtab.c (symbol_print): Swap the arguments,
3488 for consistency with the rest of the code.
3489 * src/symlist.h, src/symlist.c (symbol_list_print): Ditto.
3490 Add separators.
3491
82b248ad
AD
34922005-07-12 Akim Demaille <akim@epita.fr>
3493
3494 * src/parse-gram.y: Use %printer instead of YYPRINT.
3495
fa0e9314
AD
34962005-07-12 Akim Demaille <akim@epita.fr>
3497
867a3e00
AD
3498 * src/symtab.h, src/symtab.c (symbol_print): New.
3499 * src/symlist.h, src/symlist.c (symbol_list_print): New.
3500 * src/symlist.c (symbol_list_n_type_name_get): Report the culprit.
3501
35022005-07-12 Akim Demaille <akim@epita.fr>
3503
3504 * data/glr.c (b4_syncline): Fix (swap) the definitions of
fa0e9314
AD
3505 b4_at_dollar and b4_dollar_dollar.
3506
e054b190
PE
35072005-07-11 Paul Eggert <eggert@cs.ucla.edu>
3508
3509 * doc/bison.texinfo (Mystery Conflicts): Add reference to DeRemer
3510 and Pennello's paper.
3511
34160ec4
PE
35122005-07-09 Paul Eggert <eggert@cs.ucla.edu>
3513
407d4a75
PE
3514 * data/yacc.c (yyparse): Undo previous patch. Instead,
3515 set yylsp[0] and yyvsp[0] only if the initial action
3516 sets yylloc and yylval, respectively.
3517
34160ec4
PE
3518 * data/yacc.c (yyparse): In the initial action, set
3519 yylsp[0] and yyvsp[0] rather than yylloc and yylval.
3520 This avoids the use of undefined variables if the initial
3521 action does not set yylloc and/or yylval.
3522
c3d5a4a7
PE
35232005-07-07 Paul Eggert <eggert@cs.ucla.edu>
3524
b34d96c1
PE
3525 * examples/calc++/calc++-driver.cc, examples/calc++/calc++-driver.hh:
3526 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc:
3527 Remove from CVS. These files are automatically generated.
3528 * examples/extexi: Clarify that this file is now part of Bison,
3529 not GNU M4, and that it works with any POSIX-compatible Awk.
3530 * examples/calc++/Makefile.am (run_extexi): Remove; not used.
3531 ($(calc_extracted)): Renamed from $(calc_sources_extracted),
3532 so that we also get calc++-parser.yy. Geneate it.
3533 Use $(AWK), not gawk, since any conforming Awk will do.
3534 Put comment before action, since older 'make' can't handle comment
3535 in action.
3536 $(BUILT_SOURCES): List all built sources, not just some of them.
3537 $(MAINTAINERCLEANFILES): Remove *.stamp, and all built sources.
3538 $($(srcdir)/calc++-parser.stamp): Work even if POSIXLY_CORRECT.
3539 $($(calc_sources_generated)): Remove unnecessary test for existence
3540 of target. (This had a shell syntax error anyway; a stray "x".)
3541 (calc_extracted): List $(srcdir)/calc++-parser.yy, not
3542 calc++-parser.yy.
3543 * examples/.cvsignore, examples/calc++/.cvsignore: New files.
3544
c3d5a4a7
PE
3545 * bootstrap (gnulib_modules): Add gettext, now that it's no longer
3546 implied by the other modules.
3547
828c373b
AD
35482005-07-06 Akim Demaille <akim@epita.fr>
3549
3550 Bind examples/calc++ to the package.
3551 * examples/calc++/Makefile: Remove, replaced by...
3552 * examples/calc++/Makefile.am: ... this new file.
3553 * examples/calc++/test: Remove input.
3554 * examples/calc++/compile: Remove.
3555 * examples/Makefile.am: New.
3556 * configure.ac, Makefile.am: Adjust.
3557 * doc/Makefile.am (clean-local): New, for more recent texi2dvis.
3558
63cb01d6
PE
35592005-07-05 Paul Eggert <eggert@cs.ucla.edu>
3560
fd2df2ed
PE
3561 * data/glr.c (yyFail): Drastically simplify; since the format argument
3562 never had any % directives, we can simply pass it to yyerror.
3563 (yyparse): Use "t a; a=b;" rather than "t a = b;" when a will
3564 be modified later, as that is the usual style in glr.c.
3565 Problems reported by Paul Hilfinger.
3566
63cb01d6
PE
3567 Rewrite GLR parser to catch more buffer overrun, storage exhaustion,
3568 and size overflow errors.
3569 * data/glr.c: Include <stdio.h> etc. after user prolog, not before,
3570 in case the user prolog sets feature-test macros like _GNU_SOURCE.
3571 (YYSIZEMAX): New macro.
3572 (yystpcpy): New function, taken from yacc.c.
3573 (struct yyGLRStack.yyspaceLeft): Now size_t, not int.
3574 (yyinitGLRStack, yyfreeGLRstack): Remove unnecessary forward decls,
3575 so that we don't have to maintain their signatures.
3576 (yyFail): Check for buffer overflow, by using vsnprintf rather
3577 than vsprintf. Allocate a bigger buffer if possible.
3578 Report an error if buffer allocation fails.
3579 (yyStackOverflow): New function.
3580 (yyinitStateSet, yyinitGLRStack): Return a boolean indicating whether
3581 the initialization was successful. It might fail if storage was
3582 exhausted.
3583 (yyexpandGLRStack): Add more checks for storage allocation failure.
3584 Use yyStackOverflow to report failures.
3585 (yymarkStackDeleted, yyglrShift, yyglrShiftDefer, yydoAction):
3586 (yysplitStack, yyprocessOneStack, yyparse, yypstack):
3587 Don't assume stack number fits in int.
3588 (yysplitStack): Check for storage allocation failure.
3589 (yysplitStack, yyprocessOneStack): Add pure_formals, so that we
3590 can print diagnostics on storage allocation failure. All callers
3591 changed.
3592 (yyresolveValue): Use yybool for boolean.
3593 (yyreportSyntaxError): Check for size-calculation overflow.
3594 This code is taken from yacc.c.
3595 (yyparse): Check for storage allocation errors when allocating
3596 the initial stack.
3597
1c59e0a1
AD
35982005-07-05 Akim Demaille <akim@epita.fr>
3599
3600 Extract calc++ from the documentation.
3601 * doc/bison.texinfo (Calc++): Add the extraction marks.
3602 * examples/extexi: New, from the aborted GNU Programming 2E.
3603 Separate the different paragraph of a file with empty lines.
3604 * examples/Makefile: Use it to extract the whole calc++ example.
3605
8a0adb01
AD
36062005-06-24 Akim Demaille <akim@epita.fr>
3607
3608 * doc/bison.texinfo (C++ Parser Interface): Use defcv to define
3609 class typedefs.
3610
12545799
AD
36112005-06-22 Akim Demaille <akim@epita.fr>
3612
3613 * doc/bison.texinfo (C++ Language Interface): First stab.
3614 (C++ Parsers): Remove.
3615
99be0235
AD
36162005-06-22 Akim Demaille <akim@epita.fr>
3617
3618 * data/lalr1.cc (yylex_): Honor %lex-param.
3619
0ffd4fd1
AD
36202005-06-22 Akim Demaille <akim@epita.fr>
3621
3622 Start a set of simple examples.
3623 * examples/calc++/Makefile, examples/calc++/calc++-driver.cc,
3624 * examples/calc++/calc++-driver.hh,
3625 * examples/calc++/calc++-parser.yy,
3626 * examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc,
3627 * examples/calc++/compile, examples/calc++/test: New.
3628
0925ebb4
PE
36292005-06-09 Paul Eggert <eggert@cs.ucla.edu>
3630
3631 * data/yacc.c (malloc, free) [defined __cplusplus]: Wrap inside
3632 extern "C" {}. This fixes a problem reported by Paul Hilfinger,
3633 which stems from the 2005-05-27 patch.
3634
43d3b664
PH
36352005-06-06 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
3636
3637 * data/glr.c: Modify treatment of unused parameters to permit use
3638 of g++ (which doesn't allow __attribute__ ((unused)) for parameters).
3639
3062864d
PE
36402005-05-30 Paul Eggert <eggert@cs.ucla.edu>
3641
3642 Fix infringement on user name space reported by Janos Zoltan Szabo.
3643 * data/yacc.c (yyparse): strlen -> yystrlen.
3644
989b5b8e
AD
36452005-05-30 Akim Demaille <akim@epita.fr>
3646
3647 * data/lalr1.cc (_): New.
3648 Translate the various messages.
3649
bedf57f5
PE
36502005-05-27 Paul Eggert <eggert@cs.ucla.edu>
3651
3652 Fix infringement on user name space reported by Bruno Haible.
3653 * data/yacc.c (YYSIZE_T): Define first, so that later decls can use it.
3654 Prefer GCC's __SIZE_TYPE__ if available, so that we don't infringe on
3655 the user's name space.
3656 (alloca): Include <stdlib.h> to get it, if it's not built in.
3657 (YYMALLOC, YYFREE): Define only if needed.
3658 (malloc, free): Declare, but only if needed, as this infringes on
3659 the user name space.
3660
4d1801f1
PE
36612005-05-25 Paul Eggert <eggert@cs.ucla.edu>
3662
3663 Fix BeOS, FreeBSD, MacOS porting problems reported by Bruno Haible.
3664 * lib/bitset.c (bitset_print): Don't assume size_t can be printed
3665 with %d format.
3666 * lib/ebitset.c (min, max): Undef before defining.
3667 * lib/vbitset.c (min, max): Likewise.
3668 * lib/subpipe.c (create_subpipe): Save local variables in case
3669 vfork clobbers them.
3670
36712005-05-24 Bruno Haible <bruno@clisp.org>
3672
3673 * tests/synclines.at (AT_SYNCLINES_COMPILE): Add support for the
3674 error message syntax used by gcc-4.0.
3675
b94a9e1e
PE
36762005-05-23 Paul Eggert <eggert@cs.ucla.edu>
3677
85ac3861
PE
3678 * README: Mention m4 1.4.3. Remove obsolete advice about
3679 Sun Forte Developer 6 update 2, VMS, and MS-DOS.
3680
b94a9e1e
PE
3681 * bootstrap: Remove workaround for problem I encountered with
3682 gettext 0.14.1; it seems to be fixed now.
3683
51c30d21
PE
36842005-05-22 Paul Eggert <eggert@cs.ucla.edu>
3685
009ce67d
PE
3686 * NEWS: Version 2.0a.
3687
f2a97c62
PE
3688 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
3689 the previous change.
3690
c8775f93
PE
3691 Various maintainer cleanups.
3692 * .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*,
3693 conftest*, for benefit of CVS commands run at the same time as
3694 "configure". Add build-aux, since "bootstrap" now creates it and
3695 its subfiles.
3696 * Makefile.cfg (move_if_change): Remove.
3697 * Makefile.maint: Remove the update stuff; we now use "bootstrap".
3698 (ftp-gnu, www-gnu, move_if_change, local_updates, update):
3699 (po_repo, do-po-update, po-update, wget_files, get-targets):
3700 (config.guess-url_prefix, config.sub-url_prefix):
3701 (ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
3702 (standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url):
3703 ($(get-targets), cvs-files, automake_repo, wget-update, cvs-update):
3704 Remove.
3705 * configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux;
3706 this is now the recommended name.
3707 * config/.cvsignore: Remove config.guess, config.rpath, config.sub,
3708 depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex,
3709 ylwrap. These files now go into build-aux.
3710 * config/move-if-change: Remove.
3711 * config/prev-version.txt: Bump from 1.75 to 2.0.
3712
3ea5f0ec
PE
3713 * bootstrap: Add stdio-safer, unistd-safer modules.
3714 Remove m4/glibc2.m4 (introduced by latest gnulib, but
3715 we don't need it).
3716 * lib/.cvsignore: Add dup-safer.c, fd-safer.c,
3717 fopen-safer.c, stdio-safer.h, unistd-safer.h.
3718 * lib/subpipe.c: Include "unistd-safer.h".
3719 (create_subpipe): Make sure all the newly-created
3720 file descriptors are > 2, so that diagnostics don't
3721 get sent down them (which might cause Bison to hang, in theory).
3722 * m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
3723 * src/files.c (xfopen): Use fopen_safer, not fopen.
3724
51c30d21
PE
3725 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
3726 yesterday's yacc.c fix.
3727
cea1469d
PE
37282005-05-21 Paul Eggert <eggert@cs.ucla.edu>
3729
3ea5f0ec
PE
3730 * data/glr.c, data/lalr1.cc: Update copyright date.
3731
cea1469d
PE
3732 Fix a destructor bug reported by Wolfgang Spraul in
3733 <http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
3734 * data/yacc.c (yyabortlab): Don't call destructor, and
3735 don't set yychar to EMPTY.
3736 (yyoverflowlab): Don't call destructor.
3737 (yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
3738 * tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
3739 since we no longer output the message "discarding lookahead token
3740 end of input ()".
3741
5e6f62f2
PH
37422005-05-20 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
3743
3744 * data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
3745 fix a small glitch in debugging output.
3746 (yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
3747 after YY_SYMBOL_PRINT where needed.
3748
3749 (struct yyGLRState): Add some comments.
3750 (struct yySemanticOption): Add some comments.
3751 (union yyGLRStackItem): Add comment.
3752
3753 (yymergeOptionSets): Correct this to properly perform the union,
3754 avoiding infinite reported by Michael Rosien.
3755 Update comment.
3756
3757 * tests/glr-regression.at: Add test for GLR merging error reported
3758 by M. Rosien.
cea1469d 3759
0fb669f9
PE
37602005-05-13 Paul Eggert <eggert@cs.ucla.edu>
3761
3762 * COPYING, ChangeLog, GNUmakefile, HACKING, Makefile.am,
3763 Makefile.cfg, Makefile.maint, NEWS, README, README-alpha,
3764 README-cvs, TODO, bootstrap, configure.ac, data/Makefile.am,
3765 data/README, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c,
3766 data/m4sugar/m4sugar.m4, doc/Makefile.am, doc/bison.texinfo,
3767 doc/fdl.texi, doc/gpl.texi, doc/refcard.tex, lib/Makefile.am,
3768 lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
3769 lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h,
3770 lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c,
3771 lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c,
3772 lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h,
3773 lib/main.c, lib/subpipe.c, lib/subpipe.h, lib/timevar.c,
3774 lib/timevar.def, lib/timevar.h, lib/vbitset.c, lib/vbitset.h,
3775 lib/yyerror.c, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4, m4/timevar.m4,
3776 m4/warning.m4, src/LR0.c, src/LR0.h, src/Makefile.am, src/assoc.c,
3777 src/assoc.h, src/closure.c, src/closure.h, src/complain.c,
3778 src/complain.h, src/conflicts.c, src/conflicts.h, src/derives.c,
3779 src/derives.h, src/files.c, src/files.h, src/getargs.c,
3780 src/getargs.h, src/gram.c, src/gram.h, src/lalr.c, src/lalr.h,
3781 src/location.c, src/location.h, src/main.c, src/muscle_tab.c,
3782 src/muscle_tab.h, src/nullable.c, src/nullable.h, src/output.c,
3783 src/output.h, src/parse-gram.c, src/parse-gram.h,
3784 src/parse-gram.y, src/print.c, src/print.h, src/print_graph.c,
3785 src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c,
3786 src/reduce.h, src/relation.c, src/relation.h, src/scan-gram.l,
3787 src/scan-skel.l, src/state.c, src/state.h, src/symlist.c,
3788 src/symlist.h, src/symtab.c, src/symtab.h, src/system.h,
3789 src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h,
3790 src/vcg.c, src/vcg.h, src/vcg_defaults.h, tests/Makefile.am,
3791 tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
3792 tests/cxx-type.at, tests/existing.at, tests/glr-regression.at,
3793 tests/headers.at, tests/input.at, tests/local.at, tests/output.at,
3794 tests/reduce.at, tests/regression.at, tests/sets.at,
3795 tests/synclines.at, tests/testsuite.at, tests/torture.at:
3796 Update FSF postal mail address.
3797
51f4735e
PE
37982005-05-11 Paul Eggert <eggert@cs.ucla.edu>
3799
3800 * tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
3801 Problem reported by Ralf Menzel.
3802
80ce3401
PE
38032005-05-01 Paul Eggert <eggert@cs.ucla.edu>
3804
3805 * tests/actions.at: Test that stack overflow invokes destructors.
3806 From Marcus Holland-Moritz.
3807 * data/yacc.c (yyerrlab): Move the code that destroys the stack
3808 from here....
3809 (yyreturn): to here. That way, destructors are called properly
3810 even if the stack overflows, or the user calls YYACCEPT or
3811 YYABORT. Stack-overflow problem reported by Marcus Holland-Moritz.
3812 (yyoverflowlab): Destroy the lookahead.
3813
38142005-04-24 Paul Eggert <eggert@cs.ucla.edu>
3815
3816 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
3817
72f000b0
PE
38182005-04-17 Paul Eggert <eggert@cs.ucla.edu>
3819
3820 * NEWS: Bison-generated C parsers no longer quote literal strings
3821 associated with tokens.
3822 * src/output.c (prepare_symbols): Don't escape strings,
3823 since users don't want to see C escapes.
3824 * tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
3825 in diagnostics.
c19683bb 3826 * tests/input.at (Torturing the Scanner): Likewise.
72f000b0
PE
3827 * tests/regression.at (Token definitions, Web2c Actions): Likewise.
3828
1094323f
PE
38292005-04-16 Paul Eggert <eggert@cs.ucla.edu>
3830
3831 * tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
3832 the data size is known to be too small and we can't increase it.
3833 This works around an HP-UX 11.00 glitch reported by Andrew Benham.
3834
ca407bdf
PE
38352005-04-15 Paul Eggert <eggert@cs.ucla.edu>
3836
3837 * src/parse-gram.y: Include quotearg.h.
3838 (string_as_id): Quote $1 before using it as a key, since the
3839 lexer no longer quotes it for us.
3840 (string_content): Don't strip quotes, since lexer no longer
3841 quotes it for us.
3842 * src/scan-gram.l: Include quotearg.h.
3843 ("\""): Omit quote.
3844 ("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
3845 a key, since the rest of the lexer doesn't quote it.
3846 * src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
3847 * tests/regression.at (Token definitions): Check for backslashes
3848 in token strings.
3849
3850 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): New macro.
3851 (YYSIZE_T): Define to unsigned long int when using an older compiler.
3852 (yyparse): Revamp code to generate long syntax error message, to
3853 make it easier to translate, and to avoid problems with arithmetic
3854 overflow. Change "virtual memory" to "memory" in diagnostic, since
3855 we don't know whether the memory is virtual.
3856
1ce59070
PE
38572005-04-13 Paul Eggert <eggert@cs.ucla.edu>
3858
3859 * NEWS: Bison-generated C parsers now use the _ macro to
3860 translate strings.
3861 * data/yacc.c (_) [!defined _]: New macro.
3862 All English strings wrapped inside this macro.
3863 * doc/bison.texinfo (Bison Parser): Document _.
3864 * po/POTFILES.in: Include src/parse-gram.c, since it now
3865 includes translateable strings that parse-gram.y doesn't.
3866
a749a695
PE
38672005-04-12 Paul Eggert <eggert@cs.ucla.edu>
3868
3869 * src/symtab.c (symbol_make_alias): Call symbol_type_set,
3870 reverting the 2004-10-11 change to this function.
3871 (symbol_check_alias_consistency): Don't call symbol_type_set
3872 if the type name is already correct.
3873 * tests/input.at (Typed symbol aliases): New test, from Tim Van Holder.
3874
8fb1053b
PE
38752005-03-25 Paul Eggert <eggert@cs.ucla.edu>
3876
3877 * tests/regression.at (Token definitions): Don't use a token named
3878 c, as that generates a "#define c ..." that runs afoul of buggy
3879 stdlib.h that uses the identifier c as a member of struct
3880 drand48_data. Problem reported by Horst Wente.
3881
ff498c4a
PE
38822005-03-21 Paul Eggert <eggert@cs.ucla.edu>
3883
3884 * bootstrap: Change translation URL from
3885 http://www2.iro.umontreal.ca/~gnutra/po/maint/bison/ to
3886 http://www.iro.umontreal.ca/translation/maint/bison/ to avoid
3887 redirection glitches. Problem reported by twlevo@xs4all.nl.
3888
65211d70
PE
38892005-03-20 Paul Eggert <eggert@cs.ucla.edu>
3890
3891 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
3892 after operands; POSIX says this isn't portable for the c99 command.
3893
9577fb1f
PE
38942005-03-18 Paul Eggert <eggert@cs.ucla.edu>
3895
3896 * tests/glr-regression.at (glr-regr2a.y): Try to dump core
3897 immediately if a data overrun has occurred; this may help us track
3898 down what may be a spurious failure on MacOS.
3899
78b178f7
PE
39002005-03-17 Paul Eggert <eggert@cs.ucla.edu>
3901
a2599d0f
PE
3902 Respond to problems reported by twlevo@xs4all.nl.
3903
3904 * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
3905
78b178f7
PE
3906 * src/vcg.h: Comment fix.
3907 * src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
3908 (G_CMAX): Change to -1 instead of INT_MAX.
3909
3910 * data/yacc.c (yyparse): Omit spaces before #line.
78b178f7 3911
7296e729
PE
39122005-03-15 Paul Eggert <eggert@cs.ucla.edu>
3913
3914 * src/tables.c (state_number_to_vector_number): Put it inside an
3915 "#if 0", since it's not currently used. Problem reported by
3916 Roland McGrath.
3917
05ac60f3
PE
39182005-03-06 Paul Eggert <eggert@cs.ucla.edu>
3919
3920 * src/output.c (escaped_output): Renamed from
3921 escaped_file_name_output, since we now use it for symbol tags as
3922 well. All uses changed.
3923 (symbol_destructors_output, symbol_printers_output):
3924 Escape symbol tags too.
3925 Problem reported by Matyas Forstner in
3926 <http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.
3927
3928 * src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
3929 not needed.
3930 * src/output.c (user_actions_output, token_definitions_output,
3931 symbol_destructors_output, symbol_printers_output): Likewise.
3932 * src/reader.c (prologue_augment): Likewise.
3933 * src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
3934
3935 * src/vcg.c (output_edge): Don't quote linestyle arg.
3936 Problem reported by twlevo@xs4all.nl.
3937
7eb453ac
PE
39382005-02-28 Paul Eggert <eggert@cs.ucla.edu>
3939
3940 * doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
3941 example, reported by Derek M Jones. Also, make the example even
3942 more outrageous, to better illustrate how bad the problem is.
3943
4c04c52a
PE
39442005-02-24 Paul Eggert <eggert@cs.ucla.edu>
3945
3946 * doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
3947 putsym. Typo reported by Sebastian Piping.
3948
a61e1620
PE
39492005-02-23 Paul Eggert <eggert@cs.ucla.edu>
3950
3951 * doc/bison.texinfo (Language and Grammar): some -> same
3952 (Epilogue): int he -> in the
3953 Typos reported by Sebastian Piping via Justin Pence.
3954
9ec93868
PE
39552005-02-07 Paul Eggert <eggert@cs.ucla.edu>
3956
3957 * tests/glr-regression.at (Improper handling of embedded actions
3958 and dollar(-N) in GLR parsers): Renamed from "Improper handling of
3959 embedded actions and $-N in GLR parsers", work around an Autoconf bug
3960 with dollar signs in test names.
3961 * tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
3962 for a similar reason.
3963
73ce7e7e
PE
39642005-01-28 Paul Eggert <eggert@cs.ucla.edu>
3965
3966 * src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
3967 wants to redefine G_VIEW.
3968
2e72b98e
PE
39692005-01-27 Paul Eggert <eggert@cs.ucla.edu>
3970
3971 * src/vcg.c (get_view_str): Remove case for normal_view.
3972 Problem reported by twlevo@xs4all.nl.
3973
e0d634e5
PE
39742005-01-24 Paul Eggert <eggert@cs.ucla.edu>
3975
ccf830a4
PE
3976 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
3977 Problem reported by twlevo@xs4all.nl.
3978
e0d634e5
PE
3979 * doc/bison.texinfo: Change @dircategory from "GNU programming
3980 tools" to "Software development". Requested by Richard Stallman
3981 via Karl Berry.
3982
7bbc8cb0
PE
39832005-01-23 Paul Eggert <eggert@cs.ucla.edu>
3984
3985 * tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
3986 Problem reported by twlevo@xs4all.nl.
3987
08b770bc
PE
39882005-01-21 Paul Eggert <eggert@cs.ucla.edu>
3989
3990 * data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
3991 keyword; it's not needed with modern compilers, and it doesn't
3992 affect correctness with older compilers. Suggested by
3993 twlevo@xs4all.nl.
3994
95f22ad2
PE
39952005-01-17 Paul Eggert <eggert@cs.ucla.edu>
3996
3997 * data/glr.c (yyuserAction): Add "default: break;" case to pacify
3998 gcc -Wswitch-default.
3999 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
4000 * data/yacc.c (yyparse): Likewise.
4001
d229d15c
PE
40022005-01-12 Paul Eggert <eggert@cs.ucla.edu>
4003
4004 * src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
4005 already. Let config.h define any nonstandard values.
4006
ecadd90f
PE
40072005-01-10 Paul Eggert <eggert@cs.ucla.edu>
4008
4009 * tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
4010 for the benefit of slower hosts. Problem reported by
4011 Nelson H. F. Beebe.
4012
213744b5
PE
40132005-01-07 Paul Eggert <eggert@cs.ucla.edu>
4014
4015 * data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
4016 being defined and not used.
4017 * data/lalr1.cc (yyparse): Likewise.
4018 Use "if (false)" rather than "if (0)".
4019
249d3236
PE
40202005-01-05 Paul Eggert <eggert@cs.ucla.edu>
4021
4022 * TODO: Mention that we should allow NUL bytes in tokens.
4023
987cc1fb
PE
40242005-01-02 Paul Eggert <eggert@cs.ucla.edu>
4025
4026 * src/scan-skel.l (<<EOF>>): Don't close standard output.
4027 Problem reported by Hans Aberg.
4028
08fe02d9
PE
40292005-01-01 Paul Eggert <eggert@cs.ucla.edu>
4030
4031 * src/getargs.c (version): Happy new year; update overall
4032 program copyright date from 2004 to 2005.
4033
4034 * src/scan-skel.l ("@output ".*\n): Don't close standard output.
4035 Problem reported by Hans Aberg.
4036 * tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
4037 (Output file names.): Add a test for the case when standard output
4038 is closed.
4039
010c0266
PE
40402004-12-26 Paul Eggert <eggert@cs.ucla.edu>
4041
4042 * doc/bison.texinfo (@copying): Update FDL version number to 1.2,
4043 to fix an oversight in the Bison 2.0 manual.
4044
da12206a
PE
40452004-12-25 Paul Eggert <eggert@cs.ucla.edu>
4046
4047 * NEWS: Version 2.0. Reformat the existing news items since
4048 1.875, so that related items are grouped together.
3a4734aa 4049 * configure.ac (AC_INIT): Bump version to 2.0.
da12206a
PE
4050 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
4051
c935d934
PE
4052 * tests/torture.at (Exploding the Stack Size with Alloca): Set
4053 YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
4054 otherwise, we're not testing alloca. Unfortunately there's no
4055 simple way to consult HAVE_ALLOCA here.
4056
da12206a
PE
4057 * data/lalr1.cc (yydestruct_): Pacify unused variable warning
4058 for yymsg, too.
4059
4060 * src/LR0.c (new_itemsets): Use memset rather than zeroing by
4061 hand. This avoids a warning about comparing int to size_t when
4062 GCC warnings are enabled.
4063
0a2c5137
PE
40642004-12-22 Paul Eggert <eggert@cs.ucla.edu>
4065
d7e14fc0
PE
4066 * NEWS: Bison-generated parsers no longer default to using the
4067 alloca function (when available) to extend the parser stack, due
4068 to widespread problems in unchecked stack-overflow detection.
4069 * data/glr.c (YYMAXDEPTH): Remove undef when zero. It's the user's
4070 responsibility to set it to a positive value. This lets the user
4071 specify a value that is not a preprocessor constant.
4072 * data/yacc.c (YYMAXDEPTH): Likewise.
4073 (YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
4074 * doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
4075 to be a compile-time constant. However, explain the constraints on it.
4076 Also, explain the constraints on YYINITDEPTH.
4077 (Table of Symbols): Explain that alloca is no longer the default.
4078 Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
4079 to 1.
4080
0a2c5137
PE
4081 * doc/bison.texinfo (Location Default Action): Mention that n must
4082 be zero when k is zero. Suggested by Frank Heckenbach.
4083
e019c247
AD
40842004-12-22 Akim Demaille <akim@epita.fr>
4085
4086 * data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
4087 (parser::state_type, parser::semantic_type, parser::location_type):
4088 Private, not public.
4089 (parser::parse): Return ints, not bool.
4090 Returning a bool introduces a problem: 0 corresponds to false, and
4091 it seems weird to return false on success. Returning true changes
4092 the conventions for yyparse.
4093 Alternatively we could return void and send an exception.
4094 There is no clear consensus (yet?).
4095 (state_stack, semantic_stack, location_stack): Rename as...
4096 (state_stack_type, semantic_stack_type, location_stack_type): these.
4097 Private, not public.
4098 * tests/c++.at: New.
4099 * tests/testsuite.at, tests/Makefile.am: Adjust.
4100
72731bb7
AD
41012004-12-21 Akim Demaille <akim@epita.fr>
4102
4103 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
4104
9a0d8bec
AD
41052004-12-21 Akim Demaille <akim@epita.fr>
4106
4107 Don't impose std::string for filenames.
4108
4109 * data/lalr1.cc (b4_filename_type): New.
4110 (position::filename): Use it.
4111 (parser.hh): Move the inclusion of stack.hh and location.hh below
4112 the user code, so that needed headers for the filename type can be
4113 included first.
72731bb7
AD
4114 Forward declare them before the user code.
4115 * tests/Makefile.am (check-local, installcheck-local): Pass
4116 TESTSUITEFLAGS to the TESTSUITE.
9a0d8bec 4117
99880de5
AD
41182004-12-20 Akim Demaille <akim@epita.fr>
4119
4120 Use more STL like names: my_class instead of MyClass.
4121
4122 * data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
4123 (SemanticStack, SemanticType, StateStack, StateType)
4124 (TokenNumberType, Stack, Slice, Traits, Parser::location)
4125 (Parser::value): Rename as...
4126 (location_stack, location_type, rhs_number_type, semantic_stack)
4127 (semantic_type, state_stack, state_type, token_number_type, stack)
4128 (slice, traits, parser::yylloc, parser::yylval): these.
4129
4130 * tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
4131
9bec482e
PE
41322004-12-19 Paul Eggert <eggert@cs.ucla.edu>
4133
4134 * data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
4135 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
4136
f6fbd3da
PE
41372004-12-17 Paul Eggert <eggert@cs.ucla.edu>
4138
4139 Remove uses of 'short int' and 'unsigned short int'. This raises
4140 some arbitrary limits. It uses more memory but nowadays that's
4141 not much of an issue.
4142
4143 This change does not affect the generated parsers; that's a different
4144 task, as some users will want to conserve memory there.
4145
4146 Ideally we should use size_t to represent all object counts, and
4147 something like ptrdiff_t to represent signed differences of object
4148 counts; but that will require more code-cleanup than I have the
4149 time to do right now.
4150
4151 * src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
4152 Use size_t, not int or short int, to count objects.
4153 * src/closure.c (nritemset, closure): Likewise.
4154 * src/closure.h (nritemset, closure): Likewise.
4155 * src/nullable.c (nullable_compute): Likewise.
4156 * src/print.c (print_core): Likewise.
4157 * src/print_graph.c (print_core): Likewise.
4158 * src/state.c (state_compare, state_hash): Likewise.
4159 * src/state.h (struct state): Likewise.
4160 * src/tables.c (default_goto, goto_actions): Likewise.
4161
4162 * src/gram.h (rule_number, rule): Use int, not short int.
4163 * src/output.c (prepare_rules): Likewise.
4164 * src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
4165 errs, reductions): Likewise.
4166 * src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
4167 Likewise.
4168 * src/tables.c (vector_number, tally, action_number,
4169 ACTION_NUMBER_MINIMUM): Likewise.
4170 * src/output.c (muscle_insert_short_int_table): Remove.
4171
efeed023
AD
41722004-12-17 Akim Demaille <akim@epita.fr>
4173
4174 * data/lalr1.cc: Extensive Doxygenation.
4175 (error_): Rename as...
4176 (error): this, since it is visible to the user.
4177 Adjust callers.
4178 (Parser::message): Now an automatic variable from...
4179 (Parser::yyreport_syntax_error_): here.
4180 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
4181 Parser::error.
4182 * tests/input.at: Escape $.
4183
bc82c5a5
PE
41842004-12-16 Paul Eggert <eggert@cs.ucla.edu>
4185
4186 * data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
4187 Parenthesize rhs to avoid obscure problems with mistakes like
4188 "foo$$bar = foo$1bar;". Problem reported by twlevo at xs4all.
4189 * data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
4190 b4_rhs_location): Likewise.
4191 * data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
4192 b4_rhs_location): Likewise.
4193
fd19f271
AD
41942004-12-16 Akim Demaille <akim@epita.fr>
4195
4196 * data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
4197 yacc.c: be sure to stay within yycheck_.
4198 * tests/actions.at: Re-enable C++ tests.
4199
10454ea4
AD
42002004-12-16 Akim Demaille <akim@epita.fr>
4201
4202 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
4203 real.
4204
c5b95ccf
AD
42052004-12-16 Akim Demaille <akim@epita.fr>
4206
4207 Use #define to handle the %name-prefix.
4208
4209 * data/glr.c, data/yacc.c: Comment changes.
4210 * data/lalr1.cc (yylex): Use #define to select the name of yylex,
4211 so that one can refer to yylex in the parser file, and have it
4212 renamed, as is the case with other skeletons.
4213
617a8f12
AD
42142004-12-16 Akim Demaille <akim@epita.fr>
4215
4216 Move lalr1.cc internals into yy*.
4217
4218 * data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
4219 (semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
4220 (pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
4221 (name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
4222 (empty_, final_, terror_, errcode_, ntokens_)
4223 (user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
4224 (looka_, ilooka_, error_range_, nerrs_):
4225 Rename as...
4226 (yysemantic_stack_, yylocation_stack_, yystate_stack_)
4227 (yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
4228 (yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
4229 (yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
4230 (yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
4231 (yyfinal_, yyterror_, yyerrcode_, yyntokens_)
4232 (yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
4233 (yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
4234 these.
4235
1e547e6e
PE
42362004-12-15 Paul Eggert <eggert@cs.ucla.edu>
4237
4238 Fix some problems reported by twlevo at xs4all.
4239 * src/symtab.c (symbol_new): Report an error if the input grammar
4240 contains too many symbols. This is better than calling abort() later.
4241 * src/vcg.h (enum layoutalgorithm): Remove. All uses removed.
4242 (struct node, struct graph):
4243 Rename member expand to stretch. All uses changed.
4244 (struct graph): Remove member layoutalgorithm. All uses removed.
4245 * src/vcg.c (get_layoutalgorithm_str): Remove. All uses removed.
4246 * src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
4247 All uses changed.
4248 (N_STRETCH): Rename from N_EXPAND. All uses changed.
4249
735d6bd4
AD
42502004-12-15 Akim Demaille <akim@epita.fr>
4251
4252 * data/lalr1.cc: Normalize /** \brief ... */ to ///.
4253 Add more Doxygen comments.
4254 (symprint_, stack_print_, reduce_print_, destruct_, pop)
4255 (report_syntax_error_, translate_): Rename as...
4256 (yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
4257 (yypop_, yyreport_syntax_error_, yytranslate_): this.
4258
2e1f5829
AD
42592004-12-15 Akim Demaille <akim@epita.fr>
4260
4261 * data/lalr1.cc (lex_): Rename as...
4262 (yylex_): this.
4263 Move the trace here.
4264 Take the %name-prefix into account.
4265 Reported by Alexandre Duret-Lutz.
4266
a3cb6248
AD
42672004-12-15 Akim Demaille <akim@epita.fr>
4268
4269 Simplify the C++ parser constructor.
4270
4271 * data/lalr1.cc (debug_): Rename as...
4272 (yydebug_): so that the parser's internals are always in the yy*
4273 pseudo namespace.
4274 Adjust uses.
4275 (b4_parse_param_decl): Remove the leading comma as it is now only
4276 called as unique argument list.
4277 (Parser::Parser): Remove the constructor accepting a location and
4278 an initial debugging level.
4279 Remove from the other ctor the argument for the debugging level.
4280 (debug_level_type, debug_level, set_debug_level): New.
4281
4282 * tests/actions.at, tests/calc.at, tests/regression.at: Adjust
4283 constructor calls.
4284
07fed891
AD
42852004-12-15 Akim Demaille <akim@epita.fr>
4286
4287 Remove b4_root related material: failure experiment
a3cb6248 4288 (which goal was to allow to derive from a class).
07fed891
AD
4289
4290 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
4291 definitions and uses.
4292
e603eaa5
PE
42932004-12-14 Paul Eggert <eggert@cs.ucla.edu>
4294
4295 * data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
4296 not 2, since it's not portable to subtract 1 from the start of an
4297 array. The new item 0 is never set or used. All uses changed.
4298
4299 (yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
4300 the default definition of YYLLOC_DEFAULT. Problem reported
4301 by Frank Heckenbach.
4302
fafb007d
PE
43032004-12-12 Paul Eggert <eggert@cs.ucla.edu>
4304
4305 * data/glr.c (YYRHSLOC): Don't have two definitions, one for
4306 the normal case and one for the error case. Just use the
4307 first one uniformly. Problem reported by Frank Heckenbach.
4308 (YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
4309 use exactly the same macro in both places.
4310 (yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
4311 so that the normal-case YYRHSLOC works for the error case too.
4312 All uses changed.
4313 * data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
4314 (YYLLOC_DEFAULT): Use the same macro as glr.c.
4315 * doc/bison.texinfo (Location Default Action): Don't claim that
4316 we have an array of locations. Use the same macro for both glr
4317 and lalr parsers. Mention YYRHSLOC. Mention what happens when
4318 the index is 0.
4319
48814dcd
PE
43202004-12-10 Paul Eggert <eggert@cs.ucla.edu>
4321
a4e1a53b
PE
4322 * HACKING: Update email addresses to send announcements to.
4323
48814dcd
PE
4324 * configure.ac (AC_INIT): Bump version to 1.875f.
4325
337116ba
PE
43262004-12-10 Paul Eggert <eggert@cs.ucla.edu>
4327
4328 * NEWS: Version 1.875e.
4329 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
4330
4331 * src/scan-skel.l: Include "complain.h", for "fatal".
4332
4333 * src/relation.h (relation_print, relation_digraph):
4334 Relation sizes are of type relation_node, not size_t (this is
4335 merely a doc fix, since the two types are equivalent).
4336 (relation_transpose): Relation sizes are of type relation_node,
4337 not int.
4338 * src/relation.c: Likewise.
4339 (top, infinity): Now of type relation_node, not int.
4340 (traverse, relation_transpose): Use relation_node, not int.
4341
4342 * data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
4343 with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
4344 (yyparse): Remove unused local introduced in 2004-10-25 patch.
4345
4346 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
68b082af 4347 specifying whether the test should be skipped. Use it tp
337116ba 4348 specify that the [%defines %skeleton "lalr1.cc"] tests currently
68b082af 4349 fail on some hosts, and should be skipped.
337116ba 4350
da2a7671
PE
43512004-12-08 Paul Eggert <eggert@cs.ucla.edu>
4352
4353 * src/system.h (CALLOC, MALLOC, REALLOC): Remove. All callers
4354 changed to use xcalloc, xnmalloc, xnrealloc, respectively,
4355 unless otherwise specified below.
4356
4357 * src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
4358 to allocate kernel_base, kernel_items, kernel_size, since
4359 they needn't be initialized to 0.
4360 (allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
4361 * src/closure.c (new_closure): Likewise, for itemset.
4362 * src/derives.c (derives_compute): Likewise, for delts, derives, q.
4363 * src/lalr.c (set_goto_map): Likewise, for temp_map.
4364 (initialize_F): Likewise, for reads, edge, reads[i], includes[i].
4365 (build_relations): Likewise for edge, states1, includes.
4366 * src/nullable.c (nullable_compute): Likewise, for squeue, relts.
4367 * src/reader.c (packgram): Likewise, for ritem, rules.
4368 * src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
4369 * src/relation.c (relation_digraph): Likewise for VERTICES.
4370 (relation_transpose): Likewise for new_R, end_R.
4371 * src/symtab.c (symbols_token_translations_init): Likewise for
4372 token_translations.
4373 * src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
4374 (token_actions): Likewise for yydefact, actrow, conflrow,
4375 conflict_list.
4376 (save_column): Likewise for froms[symno], tos[symno].
4377 (goto_actions): Likewise for state_count.
4378 (pack_table): Likewise for base, pos, check.
4379 (tables_generate): Likewise for width.
4380
4381 * src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
4382 for initial core. Just have a separate core, so we needn't worry
4383 about whether kernel_size and kernel_base are initialized.
4384
4385 * src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
4386 kernel_size, kernel_items): Remove unnecessary initialization.
4387 * src/conflicts.c (conflicts): Likewise.
4388 * src/derives.c (derives): Likewise.
4389 * src/muscle_tablc (muscle_insert): Likewise.
4390 * src/relation.c (relation_digraph): Likewise.
4391 * src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
4392 conflrow, conflict_table, conflict_list, table, check):
4393 Likewise.
4394
4395 * src/closure.c (new_closure): Arg is of type unsigned int, not int.
4396 This is because all callers pass unsigned int.
4397 * src/closure.h (new_closure): Likewise.
4398
4399 * src/lalr.c (initialize_F): Initialize reads[i] in all cases.
4400 (build_relations): Initialize includes[i] in all cases.
4401 * src/reader.c (packgram): Always initialize rules[ruleno].prec
4402 and rules[ruleno].precsym. Initialize members in order.
4403 * src/relation.c (relation_transpose): Always initialize new_R[i]
4404 and end_R[i].
4405 * src/table.c (conflict_row): Initialize 0 at end of conflict_list.
4406
4407 * src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
4408 conflict_list[0] was always 0, but now it isn't initialized.
4409
4410 * src/table.c (table_grow): When conflict_table grew, the grown
4411 area wasn't cleared. Fix this.
4412
4413 * lib/.cvsignore: Add strdup.c, strdup.h.
4414 * m4/.cvsignore: Add strdup.m4.
4415
00baeeac
PE
44162004-12-07 Paul Eggert <eggert@cs.ucla.edu>
4417
4418 * src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
4419 * src/lalr.c (set_goto_map): Don't allow ngotos to equal
4420 GOTO_NUMBER_MAXIMUM, since we occasionally compute
4421 ngotos + 1 without checking for overflow.
4422 (build_relations): Use END_NODE, not -1, to denote end of edges.
4423 * src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
4424 build_relations): Use goto_number, not int, for goto numbers.
4425 * src/tables.c (save_column, default_goto): Likewise.
4426
be3d9d42
AD
44272004-11-23 Akim Demaille <akim@epita.fr>
4428
4429 * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
4430 of #defining from yystype.
4431 Don't typedef yystype, C++ does not need it.
4432 This lets it possible to forward declare it as union.
4433
78e526d5
PE
44342004-11-23 Paul Eggert <eggert@cs.ucla.edu>
4435
4436 * bootstrap (gnulib_modules): Add extensions.
4437 Problem reported by Jim Meyering.
4438
afbb696d
PE
44392004-11-22 Paul Eggert <eggert@cs.ucla.edu>
4440
4441 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
4442 src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
4443 src/system.h, src/tables.c: XFREE -> free, to accommodate
4444 recent change to gnulib xalloc.h.
78e526d5 4445 Problem reported by Jim Meyering.
afbb696d 4446
c1f8f16a
AD
44472004-11-17 Akim Demaille <akim@epita.fr>
4448
4449 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
4450
db7e5eb5 44512004-11-17 Akim Demaille <akim@epita.fr>,
9a1e9989
AD
4452 Alexandre Duret-Lutz <adl@gnu.org>
4453
4454 * data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
4455 changes.
4456 (YYCDEBUG): Adjust.
4457 Use it instead of cdebug_.
4458 (Parser::debug_stream, Parser::set_debug_stream): New.
4459 (Parser::symprint_): Define cdebug_ for temporary backward
4460 compatibility.
4461 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
4462 debug_stream ().
4463
68e11668
AD
44642004-11-17 Akim Demaille <akim@epita.fr>
4465
4466 * data/lalr1.cc (Parser:print_): Remove, use %printer instead.
4467 * tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
4468 * tests/calc.at (_AT_DATA_CALC_Y): Ditto.
4469 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
4470
97cbc73e
PE
44712004-10-27 Paul Eggert <eggert@cs.ucla.edu>
4472
4473 * data/glr.c (yyloc_default): Remove; not used.
4474 Problem reported by Frank Heckenbach.
4475
e342c3be
AD
44762004-10-25 Akim Demaille <akim@epita.fr>
4477
4478 * data/glr.c (YYRHSLOC): Move its definition next to its uses.
4479 Introduce another definition to address simple location arrays.
4480 (yyGLRStack): New member: yyerror_range.
4481 (yyrecoverSyntaxError, yyparse): Update it.
4482 (yyrecoverSyntaxError): Use it when shifting the error token to
4483 have an accurate range, equivalent to the one computed by both
4484 yacc.c and lalr1.cc.
4485 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
4486 that column numbers start at column 0, as per GNU Coding
4487 Standards, the others tests, and the doc.
4488 (_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
4489 Adjust to the above change (first column is 0).
4490 And adjust the location of the "<error>", now covering the whole
4491 line.
4492
93602feb 44932004-10-22 Akim Demaille <akim@epita.fr>
04098407 4494 and Paul Eggert <eggert@cs.ucla.edu>
93602feb
PE
4495
4496 Remove some arbitrary limits on goto numbers and relations.
4497 * src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
4498 initial values, since they're never used.
4499 (set_goto_map): ngotos is now unsigned, so test for overflow
4500 by seeing whether it wraps around to zero.
4501 * src/lalr.h (goto_number): Now size_t, not short int.
4502 (GOTO_NUMBER_MAXIMUM): Remove.
4503 * src/relation.c (relation_print, traverse, relation_transpose):
4504 Check for END_NODE rather than looking at sign.
4505 * src/relation.h (END_NODE): New macro.
4506 (relation_node): Now size_t, not short int.
4507
dba08b04
PE
45082004-10-22 Paul Eggert <eggert@cs.ucla.edu>
4509
4510 * doc/bison.texinfo (Language and Grammar): In example, "int" is a
4511 keyword, not an identifier. Problem reported by Baron Schwartz in
4512 <http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
4513
df09ef2e
AD
45142004-10-11 Akim Demaille <akim@epita.fr>
4515
4516 * src/symtab.c (symbol_check_alias_consistency): Also check
4517 type names, destructors, and printers.
4518 Reported by Alexandre Duret-Lutz.
4519 Recode the handling of associativity and precedence in terms
4520 of symbol_precedence_set.
4521 Accept no redeclaration at all, not even equal to the previous
4522 value.
4523 (redeclaration): New.
4524 Use it to factor redeclaration complaints.
4525 (symbol_make_alias): Don't set the type of the alias, let
4526 symbol_check_alias_consistency do it as for other features.
4527 * src/symtab.h (symbol): Add new member prec_location, and
4528 type_location.
4529 * src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
4530 * tests/input.at (Incompatible Aliases): New.
4531
146bc99d
PE
45322004-10-09 Paul Eggert <eggert@cs.ucla.edu>
4533
4534 .cvsignore fixes to accommodate gnulib changes,
4535 and the practice of naming build directories "_build".
4536 * .cvsignore: Add "_*". Sort.
4537 * lib/.cvsignore: Add getopt_.h, xalloc-die.c.
4538 * m4/.cvsignore: Add "*_gl.m4".
4539
e503aa60
AD
45402004-10-06 Akim Demaille <akim@epita.fr>
4541
4542 * src/parse-gram.y (add_param): Fix the truncation of trailing
4543 spaces.
4544
b4a20338
AD
45452004-10-05 Akim Demaille <akim@epita.fr>
4546
4547 In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
4548 whether the reducion was empty or not. This leaves room to
4549 improve the use of YYLLOC_DEFAULT in such a case.
4550 lalr1.cc is still experimental, so changing this is acceptable.
4551 And finally, there are probably not many users who changed the
4552 handling of locations in GLR, so changing is admissible too.
4553
4554 * data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
4555 empty reduction, set @$ to an empty location ending the previously
4556 stacked symbol.
4557 Adjust uses to make sure the code is triggered on empty
4558 reductions.
4559 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
4560 expected output: empty reductions have empty locations.
4561
f85a5e6f
AD
45622004-09-29 Akim Demaille <akim@epita.fr>
4563
4564 * data/lalr1.cc: Move towards a more standard C++ coding style
4565 for templates: Class < T > -> Class<T>.
4566
b203fc2c
AD
45672004-09-29 Akim Demaille <akim@epita.fr>
4568
4569 * data/lalr1.cc: Reinstall the former ctor, for sake of
4570 compatibility, but warn it will be removed.
4571 Move towards a more standard C++ coding style (i.e., type *var ->
4572 type* var).
4573
5b7e1e73
PE
45742004-09-27 Paul Eggert <eggert@cs.ucla.edu>
4575
3fee967f
PE
4576 * src/parse-gram.y (add_param): Rewrite to avoid strchr,
4577 since it's less likely to work if NULs are involved in the future.
5b7e1e73 4578
0dcca5c2
AD
45792004-09-27 Akim Demaille <akim@epita.fr>
4580
4581 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
4582
6dde1c82
AD
45832004-09-27 Akim Demaille <akim@epita.fr>
4584
4585 * data/lalr1.cc (b4_parse_param_decl_1): New.
b203fc2c 4586 (b4_parse_param_decl): Use it to have different names between attribute
6dde1c82
AD
4587 and argument names.
4588 (b4_cc_constructor_call): Likewise.
4589
b233d555
AD
45902004-09-24 Akim Demaille <akim@epita.fr>
4591
4592 * src/parse-gram.y (add_param): Strip the leading and trailing
4593 blanks from a formal argument declaration.
4594 (YY_LOCATION_PRINT): New.
4595
619404e3
AD
45962004-09-24 Akim Demaille <akim@epita.fr>
4597
4598 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
4599 after the location.
4600
dd8d9022
AD
46012004-09-24 Akim Demaille <akim@epita.fr>
4602
4603 * doc/bison.texinfo (Table of Symbols): Sort.
4604
0092f063
AD
46052004-09-21 Akim Demaille <akim@epita.fr>
4606
4607 * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
4608 the useless parentheses.
4609 Suggested by Paul Eggert.
4610
451364ed
AD
46112004-09-20 Akim Demaille <akim@epita.fr>
4612
4613 Let the initial-action act on the look-ahead, and use it for the
4614 "initial push" (corresponding to an hypothetical beginning-of-file).
4615 And let lalr1.cc honor %initial-action.
4616
4617 * doc/bison.texinfo (Initial Action Decl): Clarify, and add an
4618 example.
4619 * data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
4620 (Parser::Parser): Remove the ctor that used to initialize it.
4621 (Parser::parse): Like in the other skeletons, issue the "starting
4622 parse" message before any action.
4623 Honor %initial-action.
4624 Initialize the stacks with the lookahead.
4625 * data/yacc.c: Let $$ and @$ in %initial-action designate the
4626 look-ahead.
4627 Push them in the stacks.
4628 * tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
4629
18d192f0
AD
46302004-09-20 Akim Demaille <akim@epita.fr>
4631
4632 * doc/bison.texinfo (Initial Action Decl): New.
4633
b8458aa5
AD
46342004-09-20 Akim Demaille <akim@epita.fr>
4635
4636 * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
4637 clearer criterion to define it.
4638 (parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
4639 When reducing on an empty RHS, use the latest stacked location as
4640 location.
4641 yylloc is not always available.
4642 * data/glr.c: Likewise.
4643 Also, honor initial-actions.
4644
3fc16193
AD
46452004-09-20 Akim Demaille <akim@epita.fr>
4646
4647 * data/yacc.c (YY_LOCATION_PRINT): New.
4648 Define when we know YYLTYPE's structure, i.e., when the default
4649 YYLLOC_DEFAULT is used.
4650 * data/c.m4 (b4_yysymprint_generate): Use it.
4651 * data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
4652 value of the result.
4653 (error_start_): Replace with...
4654 (error_range_): this location array.
4655 This allows to replace code relying on the implementation of
4656 locations by portable code.
4657 * data/yacc.c (yylerrsp): Replace with...
4658 (yyerror_range): this.
4659 Every time a token is popped, update yyerror_range[0], to have an
4660 accurate location for the error token.
4661 * data/glr.c (YY_LOCATION_PRINT): New.
4662 (yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
4663 deference a pointer.
4664 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
4665 report the location in %printers.
4666
4667 * src/scan-skel.l: Instead of abort, report error messages to ease
4668 understanding skeleton scanning failures.
4669
ecfe33e7
AD
46702004-09-16 Akim Demaille <akim@epita.fr>
4671
4672 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
4673 (iterator, const_iterator): these, to be more in the C++ spirit.
4674 Also, return reverse iterators so that when displaying the stack
4675 we display its bottom first.
4676 (Parser::stack_print_, Parser::reduce_print_): Match the messages
4677 from yacc.c.
4678 We should probably use vector here though.
4679
1576d44d
AD
46802004-09-16 Akim Demaille <akim@epita.fr>
4681
4682 Have more complete shift traces.
4683
4684 * data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
4685 to report Shifts instead of ad hoc YYDPRINTF invocations,
4686 including for the error token.
4687 * data/lalr1.cc (symprint_): Output the location.
4688 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
4689 output the location within the %printer.
4690 Activate GLR tests, at least to make sure they compile properly.
4691 They still don't pass though.
4692 * tests/calc.at: Adjust expect verbose output, since now "Entering
4693 state..." is on a different line than the "Shifting" message.
4694
9c66f418
AD
46952004-09-08 Akim Demaille <akim@epita.fr>
4696
4697 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
4698 Bison directive from the Bison file to the invocation of this
4699 macro, so that these directives are passed to
4700 AT_BISON_OPTION_PUSHDEFS to get correct help macros.
4701 Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
4702 Move the AT_SETUP/AT_CLEANUP outside, to report as test title
4703 the extra Bison directives instead of the whole series.
4704 Change the grammar so that there are recoverable errors, and
4705 unrecoverable errors. Now we can have the parser give up before
4706 consuming the whole input. As a result we now can observe that
4707 the lookahead is freed when needed.
4708 Change the parser source to parse argv[1] instead of a hard coded
4709 string.
4710 Simplify yylex, and give a value and location to EOF.
4711 Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
4712 passed directives already coded in the file.
4713 Add some tests to check the location of "error".
4714 For some tests, the C++ parser is correct, and not yacc.c.
4715 For other tests, they provide different, but unsatisfying, values,
4716 so keep the C++ value so that at least one parser is "correct"
4717 according to the test suite.
4718 (Actions after errors): Remove, this is subsumed by the
4719 AT_CHECK_PRINTER_AND_DESTRUCTOR series.
4720
52d5733f
AD
47212004-09-06 Akim Demaille <akim@epita.fr>
4722
4723 * data/lalr1.cc: Adjust the indentation of the labels.
04098407 4724 (Parser::pop): New.
52d5733f
AD
4725 Use it.
4726
a0e68930
AD
47272004-09-06 Akim Demaille <akim@epita.fr>
4728
4729 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
4730 argument, an informative message.
4731 Call YY_SYMBOL_PRINT.
4732 Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
4733 * data/lalr1.cc (destruct_): Likewise.
4734 In addition, no longer depend on b4_yysymprint_generate and
4735 b4_yydestruct_generate to generate these functions, do it "by
4736 hand".
4737
e757bb10
AD
47382004-09-03 Akim Demaille <akim@epita.fr>
4739
4740 * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
4741 invoked, yydestruct the lookahead.
4742 * tests/calc.at (Calculator $1): Update the expected lengths of
4743 traces: there is an added line for the discarded lookahead.
4744 * doc/bison.texinfo (Destructor Decl): Some rewording.
4745 Define "discarded" symbols.
4746
0fe1f06d
AD
47472004-09-02 Akim Demaille <akim@epita.fr>
4748
4749 * data/lalr1.cc (translate_, destruct_): No reason to be static.
4750
284acc8b
AD
47512004-09-02 Akim Demaille <akim@epita.fr>
4752
4753 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
4754 (YYDSYMPRINTF): Rename as...
4755 (YY_SYMBOL_PRINT): this.
4756 * data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
4757 two.
4758 Use it instead of direct symprint_ calls.
4759 (yybackup): Tweak the "Now at end of input" case to match yacc.c's
4760 one.
4761
a5eb1ed2
AD
47622004-09-02 Akim Demaille <akim@epita.fr>
4763
b7c72fe1
AD
4764 * data/lalr1.cc (b4_yysymprint_generate): New.
4765 (symprint_): New member function, defined when YYDEBUG.
4766 Use it consistently instead of token/nterm debugging output by
4767 hand.
a5eb1ed2
AD
4768 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
4769 %printer calls to use cdebug_ when using lalr1.cc.
4770
417141dd
AD
47712004-08-30 Florian Krohm <florian@edamail.fishkill.ibm.com>
4772
4773 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
4774 with #ifdef YYDEBUG.
4775
2fa09258
AD
47762004-08-26 Akim Demaille <akim@epita.fr>
4777
4778 * doc/bison.texinfo (Implementing Loops): Rename as...
4779 (Implementing Gotos/Loops): this.
4780
9378b508
PE
47812004-08-13 Paul Eggert <eggert@cs.ucla.edu>
4782
4783 Adjust to latest gnulib.
4784 * bootstrap (gnulib_modules): Add xalloc-die.
4785 Set LC_ALL=C so that file names sort consistently.
4786 Prefer the gnulib copies of gettext.m4, glibc21.m4,
4787 inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
4788 uintmax_t.m4, ulonglong.m4.
4789 (intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
4790 po.m4 since we are now using _gl.m4 instead.
4791
87a8ad5c
PE
47922004-08-10 Florian Krohm <florian@edamail.fishkill.ibm.com>
4793
4794 * src/scan-action.l: Remove. Scanning of semantic actions is
4795 handled in scan-gram.l.
4796
dca81a78
PE
47972004-08-07 Florian Krohm <florian@edamail.fishkill.ibm.com>
4798
4799 * src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
4800
4801 * src/location.h (struct): The file member is a uniqstr.
4802 (equal_boundaries): Use UNIQSTR_EQ for comparison.
4803
c9cbf7c5
PE
48042004-07-22 Paul Eggert <eggert@cs.ucla.edu>
4805
4806 Fix bug with non-%union parsers that have printers or destructors,
4807 which led to a Bison core dump. Reported by Peter Fales in
4808 <http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
2fa09258 4809
c9cbf7c5
PE
4810 * data/c.m4 (b4_symbol_actions): Don't assume %union was used.
4811 * data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
4812 not to our own type.
4813 * src/output.c (symbol_destructors_output, symbol_printers_output):
4814 Don't assume %union.
4815 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
4816 AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
4817 UNION-FLAG. All callers changed.
4818 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
4819 Use type char, not unsigned int, when declaring an array of char;
4820 this lets us remove a cast.
4821 (Printers and Destructors): Add non-%union test cases.
4822
fa7e68c3
PE
48232004-06-21 Paul Eggert <eggert@cs.ucla.edu>
4824
4825 * doc/bison.texinfo: Minor editorial changes, mostly to the new
4826 GLR writeups. E.g., avoid frenchspacing and the future tense,
4827 change "lookahead" to "look-ahead", and change "wrt" to "with
4828 respect to".
2fa09258 4829
fa7e68c3
PE
48302004-06-21 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
4831
4832 * doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
4833 New sections, split off from the GLR Parsers section. Put the new
4834 Simple GLR Parser near the start of the GLR section, for clarity.
4835 Rewrite connective text.
4836
99a9344e
PE
48372004-06-21 Frank Heckenbach <frank@g-n-u.de>
4838
4839 * doc/bison.texinfo (Simple GLR Parsers): New section.
4840
8dd162d3
PE
48412004-06-21 Paul Eggert <eggert@cs.ucla.edu>
4842
4843 * NEWS, TODO, doc/bison.texinfo:
4844 Use "look-ahead" instead of "lookahead", to be consistent.
4845 * REFERENCES: Fix incorrect reference to DeRemer and Pennello,
4846 while we're fixing "look-ahead".
4847 * src/conflicts.c (shift_set): Renamed from shiftset.
4848 (look_ahead_set): Renamed from lookaheadset.
4849 * src/print.c: Likewise.
4850 * src/getargs.c (report_args): Add "look-ahead" as the new canonical
4851 name for "lookahead".
4852 (report_types, usage): Likewise.
4853 * src/getargs.h (report_look_ahead_tokens): Renamed from
4854 report_lookaheads.
4855 * src/lalr.c (compute_look_ahead_tokens): Renamed from
4856 compute_lookaheads.
4857 (state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
4858 (look_ahead_tokens_print): Renamed from lookaheads_print.
4859 * src/state.c (state_rule_look_ahead_tokens_print): Renamed from
4860 state_rule_lookaheads_print.
4861 * src/state.h: Likewise.
4862 (reductions.look_ahead_tokens): Renamed from lookaheads.
4863 * tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
4864 AT_DATA_LOOKAHEADS_GRAMMAR.
4865
57a90331
PE
48662004-06-03 Paul Eggert <eggert@cs.ucla.edu>
4867
4868 * README: Update location of patched M4 distribution.
4869
8ed3234a
PE
48702004-05-30 Albert Chin-A-Young <china@thewrittenword.com>
4871
4872 Don't assume the C++ compiler takes the same arguments as the C compiler
4873 (trivial change).
4874 * configure.ac (O0CXXFLAGS): New var.
4875 * tests/atlocal.in (CXXFLAGS): Use it.
4876
07971983
PE
48772004-05-29 Paul Eggert <eggert@cs.ucla.edu>
4878
4879 Fix some "make check" problems with C++ reported by
4880 Albert Chin-A-Young for Tru64 C++ in this thread:
4881 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
4882
4883 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
4884 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
4885 Output to a .cc file for C++, not to a .c file.
4886 * tests/calc.at (AT_CHECK_CALC): Likewise.
4887 * tests/regression.at (AT_CHECK_DANCER): Likewise.
4888 * tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
4889
29058652
PE
48902004-05-28 Albert Chin-A-Young <china@thewrittenword.com>
4891
4892 * tests/calc.at, tests/actions.at: Workaround for SGI
4893 C++ compiler. (trivial change)
4894
62cb8a99
PE
48952004-05-27 Paul Eggert <eggert@cs.ucla.edu>
4896
fd418816
PE
4897 Spent a few hours checking out which prerequisite versions the
4898 current sources actually require. I went all the way back to
4899 Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
4900 a seemingly endless set of combinations of versions more recent
4901 than that. The bottom line is that the current sources require
4902 fairly recent versions of the build tools, and it'll be some work
4903 to change this.
4904 * configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
4905 (AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
4906 (AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
4907 Add comments explaining why those particular versions are
4908 currently needed.
2fa09258 4909
62cb8a99
PE
4910 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
4911 in SGI MIPSpro 7.4.1m. Problem reported by Albert Chin-A-Young in
161a71f3 4912 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
62cb8a99
PE
4913
4914 * configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
4915 (it fails with a Autoconf-without-aclocal-m4 diagnostic).
4916
caa52c10
PE
49172004-05-26 Paul Eggert <eggert@cs.ucla.edu>
4918
4919 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
4920 0.11.5. Suggested by Bruno Haible.
4921 * bootstrap: Remove gettext version checking.
4922
4923 * doc/bison.texinfo (Decl Summary): Also mention that %union
4924 can depend on prerequisite types. Problem reported by Tim
4925 Van Holder.
4926
4bfd5e4e
PE
49272004-05-25 Paul Eggert <eggert@cs.ucla.edu>
4928
2cef3017
PE
4929 * README: Mention GNU m4 1.4 bugs and Akim's patched version.
4930 * README-alpha: Don't tell people not to package this.
4931
b9c85d5c
PE
4932 * bootstrap: Don't assume $(...) works; use `...` instead.
4933 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
4934 gettext better.
4935
4bfd5e4e
PE
4936 * doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
4937 put into the -d output file, and mention what to do if YYSTYPE is
4938 defined as a macro.
4939
6a36ff94
PE
49402004-05-24 Paul Eggert <eggert@cs.ucla.edu>
4941
6712933e
PE
4942 Undo change made earlier today: it caused autopoint to not bring
4943 in ABOUT-NLS. Ouch. Instead, substitute our own diagnostic for
4944 autopoint's.
4945
4946 * bootstrap: Check that gettext version matches what's in
4947 configure.ac. Warn users to ignore robots.txt ERROR 404.
4948 * bootstrap: Undo today's earlier change (logged below).
4949 * configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
b9c85d5c 4950
6a36ff94
PE
4951 The gettext version checking is causing more trouble than it's
4952 curing; remove it. Problem reported by Paul Hilfinger.
4953
4954 * bootstrap: Issue a warning that one can expect a message
4955 'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
4956 * configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
4957
209ea708
PE
49582004-05-23 Paul Eggert <eggert@cs.ucla.edu>
4959
4960 Ensure that the C++ compiler used for testing actually works on a
4961 simple test program; if not, skip the C++-related tests. Problem
4962 reported by Vin Shelton in:
161a71f3 4963 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
209ea708
PE
4964
4965 * m4/cxx.m4: New file.
4966 * configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
4967 * tests/atlocal.in (BISON_CXX_WORKS): Add.
4968 * tests/local.at (AT_COMPILE_CXX): Use it.
4969
41ca2549
PE
49702004-05-21 Paul Eggert <eggert@cs.ucla.edu>
4971
383e69dc
PE
4972 * data/glr.c (yylloc): Output this macro even if locations are not
4973 being generated, as the GLR parser needs it even in that case.
4974 Problem reported by Troy A. Johnson
4975 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
4976
41ca2549
PE
4977 * configure.ac (AC_INIT): Update to 1.875e.
4978
e476c87d
PE
49792004-05-21 Paul Eggert <eggert@cs.ucla.edu>
4980
4981 * NEWS: Version 1.875d.
4982 * configure.ac (AC_INIT): Likewise.
4983 * src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
4984
4985 * configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
4986 -Wmissing-prototypes, or -Wstrict-prototypes for C++. The current
4987 lalr1.cc runs afoul of the first, and the last two are no longer
4988 supported by GCC 3.4.0.
4989 * README: Mention GNU m4 1.4 or later; mention m4 patches.
4990 * HACKING: Use ./bootstrap, not "make update" to import foreign files.
4991
233a88ad
PE
49922004-05-06 Paul Eggert <eggert@cs.ucla.edu>
4993
4994 * src/muscle_tab.c (hash_muscle): Accept and return size_t, not
4995 unsigned int, for compatibility with latest gnulib hash module.
4996 * src/state.c (state_hash, state_hasher): Likewise.
4997 * src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
4998 * src/uniqstr.c (hash_uniqstr): Likewise.
e476c87d 4999
12ffdd28
PE
50002004-05-03 Paul Eggert <eggert@cs.ucla.edu>
5001
5002 * NEWS: Unescaped newlines are no longer allowed in char & strings.
5003
5004 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
5005 SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
5006 character and string literals.
5007 (unexpected_end): New function.
5008 (unexpected_eof): Use it.
5009 (unexpected_newline): New function.
5010 (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
5011 actions.
e476c87d 5012
12ffdd28
PE
5013 * NEWS: Document %expect-rr.
5014
5015 * bootstrap (--gnulib-srcdir=*, --cvs-user=*):
5016 Fix typo by replacing $1 with $option.
5017 Remove more 'intl'-related files.
9668e2be 5018 Don't DEFUN AM_INTL_SUBDIR twice.
12ffdd28
PE
5019
5020 * lib/.cvsignore: Add strndup.h. Remove memchr.c, memcmp.c,
5021 memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
5022 strtoul.c.
5023 * m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
5024 hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
5025 xstrndup.m4. Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
5026 inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
5027 stdint_h.m4, uintmax_t.m4, ulonglong.m4.
5028 * src/.cvsignore: Add *.output.
5029
5030 * src/parse-gram.y: Put copyright notice inside %{ %} so it
5031 gets copied to the output file.
e476c87d 5032
1f65350a
PE
50332004-04-28 Paul Eggert <eggert@twinsun.com>
5034
5035 Get files from the gnulib and po repositories, instead of relying
5036 on them being in our CVS. Upgrade to latest versions of gnulib
5037 and Automake.
5038
5039 * Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
5040 * bootstrap: Bootstrap from gnulib and po repositories.
5041 Much of this code was stolen from GNU diff and GNU tar's bootstrap.
5042 * README-cvs: Document these changes. Remove version numbers from
5043 mentions of build tools, since they change so often. Mention Flex.
5044
5045 * configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
5046 (gl_USE_SYSTEM_EXTENSIONS): Add.
12ffdd28
PE
5047 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
5048 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
1f65350a 5049 does this for us.
12ffdd28
PE
5050 (AC_ISC_POSIX): Remove; we no longer support this
5051 ancient OS, as it gets in the way of latest Autoconf & gnulib.
1f65350a
PE
5052 (AC_HEADER_STDC): Remove: we now assume C89 or better.
5053 (AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
5054 Do not check for C89 headers, except for locale.h which is used
5055 by the Yacc library and must port to K&R hosts.
5056 (AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
5057 Do not check for C89 functions, except for setlocale which is
5058 used by the Yacc library.
5059 (AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
5060 (gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
5061 gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
5062 gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
5063 gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
5064 AM_GNU_GETTEXT): Remove; now done by:
5065 (GNULIB_AUTOCONF_SNIPPET): Add. "bootstrap" builds this for us.
5066 (AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
5067 for us.
5068
5069 * lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
5070 (BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
5071 Define to empty, as gnulib.mk will do the rest for us.
5072 ($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
5073 for us.
5074 (libbison_a_SOURCES): Define to $(lib_SOURCES) now.
5075 (lib_SOURCES): New symbol, containing only the non-gnulib libs.
5076
5077 * src/files.c: Include gnulib's xstrndup.h.
5078
5079 * src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
5080 (REALLOC): Use xnrealloc, for likewise.
5081 (xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
5082 (strnlen, memrchr): Remove decls; functions no longer used.
5083 Include <stpcpy.h>.
5084
5085 * config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
5086 lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
5087 lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
5088 lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
5089 lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
5090 lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
5091 lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
5092 lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
5093 lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
5094 lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
5095 lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
5096 m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
5097 m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
5098 m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
5099 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
5100 m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
5101 m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
5102 m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
5103 po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
5104 po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
5105 po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
5106 Remove, as these files are now generated automatically
5107 by bootstrap or automake.
5108
5109 * po/ChangeLog: Remove: all but one entry was a duplicate
5110 of this file, and I moved that 2000-11-02 entry here.
5111
5112 * config/.cvsignore: Add Makefile, depcomp, install-sh.
5113 * lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
5114 argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
5115 exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
5116 getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
5117 hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
5118 memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
5119 quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
5120 strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
5121 strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
5122 unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
5123 xstrndup.h.
5124 * m4/.cvsignore: Remove Makefile, Makefile.in. Add alloca.m4,
5125 dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
5126 mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
5127 stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
5128 * po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
5129 * src/.cvsignore: Remove *_.c.
5130
5131
5132 * Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
5133 support it. (The latest stable gzip doesn't.)
5134
51352004-04-27 Paul Eggert <eggert@twinsun.com>
5136
5137 * data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
5138 case, as stos_ is now used by destructors due to the 2004-02-09
5139 change.
5140
5141 Remove more K&R C support.
5142 * lib/libiberty.y (PARAMS): Remove. All uses removed.
5143 * lib/subpipe.c (errno): Remove decl.
5144 Include <stdlib.h> unconditionally.
5145 (EXIT_FAILURE): Remove macro.
5146 * src/complain.c (vfprintf, strerror): Remove.
5147 * src/system.h: Include limits.h, stdlib.h, string.h, locale.h
5148 unconditionally.
5149 (EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
5150 Use latest Autoconf recommendations for including inttypes.h, stdint.h.
5151 (strchr, strspn, memchr): Remove decls.
5152 * tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
5153 unconditionally. Do not declare perror.
5154 * tests/conflicts.at (%nonassoc and eof): Include stdlib.h
5155 unconditionally.
5156
5157 * src/complain.c (_): Remove useless defn, as system.h defines this.
5158
5159 * lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
5160 with latest obstack.h.
5161 * lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
5162 to procedure types, as obstack.h now does that for us.
5163 * lib/lbitset.c (lbitset_elt_alloc): Likewise.
5164
5165 * lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
5166 so that this include file can stand alone.
5167 * lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
5168 does this now. Include subpipe.h first after config.h, to
5169 test whether it can stand alone.
5170
5171 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
5172 declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
5173 unused declaration.
5174
5175 * tests/synclines.at (%union synch line): Put a dummy member in
5176 the union, because empty unions aren't allowed in C. Caught
5177 by GCC 3.4.0.
5178
4f16766c
PE
51792004-04-13 Jim Meyering <jim@meyering.net>
5180
5181 * src/conflicts.c (conflicts_print): Correct format string typo:
5182 use `%%' to produce literal `%'. (trivial change)
5183
779e7ceb
PE
51842004-03-30 Paul Eggert <eggert@twinsun.com>
5185
5186 * src/getargs.c (version): Update copyright year to 2004.
5187
5188 * data/c.m4 (b4_int_type): Use 'short int' rather than
5189 'short', and similarly for 'long', 'unsigned', etc.
5190 * data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
5191 yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
5192 yy_yypstack, yydumpstack): Likewise.
5193 * data/lalr1.cc (user_token_number_max_, user_token_number_max_,
5194 translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
5195 Likewise.
5196 * data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
5197 yy_stack_print, yyparse): Likewise.
5198 * doc/bison.texinfo (Prologue, Multiple Types): Likewise.
5199 * lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
5200 * lib/bitset.c (bitset_print): Likewise.
5201 * lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
5202 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
5203 * lib/bitsetv.c (bitsetv_dump): Likewise.
5204 * lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
5205 * lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
5206 Likewise.
5207 * src/LR0.c (allocate_itemsets): Likewise.
5208 * src/gram.h (rule_number, rule): Likewise.
5209 * src/lalr.h (goto_number): Likewise.
5210 * src/nullable.c (nullable_compute): Likewise.
5211 * src/output.c (prepare_rules): Likewise.
5212 * src/relation.c (relation_print, relation_digraph): Likewise.
5213 * src/relation.h (relation_node): Likewise.
5214 * src/state.h (state_number, transitions, errs, reductions,
5215 struct state): Likewise.
5216 * src/symtab.h (symbol_number, struct symbol): Likewise.
5217 * src/tables.c (vector_number, tally, action_number,
5218 default_goto, goto_actions): Likewise.
5219 * tests/existing.at (GNU Cim Grammar): Likewise.
5220 * tests/regression.at (Web2c Actions): Likewise.
5221
5222 * src/output.c (muscle_insert_short_int_table): Renamed from
5223 muscle_insert_short_table. All uses changed.
5224
d6328241
PH
52252004-03-25 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
5226
5227 * src/parse-gram.y: Define PERCENT_EXPECT_RR.
5228 (declaration): Replace expected_conflicts with expected_sr_conflicts.
5229 Add %expect-rr rule.
4f16766c 5230
d6328241
PH
5231 * src/scan-gram.l: Recognize %expect-rr.
5232
4f16766c 5233 * src/conflicts.h (expected_sr_conflicts): Rename from
d6328241 5234 expected_conflicts.
4f16766c 5235 (expected_rr_conflicts): Declare.
d6328241
PH
5236
5237 * src/conflicts.c (expected_sr_conflicts): Rename from
5238 expected_conflicts.
5239 (expected_rr_conflicts): Define.
5240 (conflicts_print): Check r/r conflicts against expected_rr_conflicts
5241 for GLR parsers.
5242 Use expected_sr_conflicts in place of expected_conflicts.
5243 Warn if expected_rr_conflicts used in non-GLR parser.
4f16766c 5244
d6328241 5245 * doc/bison.texinfo: Add documentation for %expect-rr.
4f16766c 5246
1452af69
PE
52472004-03-08 Paul Eggert <eggert@gnu.org>
5248
5249 Add support for hex token numbers. Suggested by Odd Arild Olsen in
161a71f3 5250 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
1452af69
PE
5251
5252 * NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
5253 in lalr1.cc.
5254 * doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
5255 * src/scan-gram.l (scan_integer): New function.
5256 ({int}): Use it.
5257 (0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
5258 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
5259 handle_action_dollar, handle_action_at, convert_ucn_to_byte):
5260 Say "long int", not "long", for uniformity with GNU style.
5261
006d217d
PE
52622004-02-25 Paul Eggert <eggert@twinsun.com>
5263
5264 * tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
5265 compilers. This fixes a problem with Intel's C++ compiler being
5266 chatty, reported by Guido Trentalancia in
161a71f3 5267 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
006d217d 5268
c2729758
ADL
52692004-02-09 Alexandre Duret-Lutz <adl@gnu.org>
5270
5271 Support %destructor and merge error locations in lalr1.cc.
5272
5273 * data/lalr1.cc (b4_cxx_destruct_def): New macro.
5274 (Parser::stos_): Define unconditionally.
5275 (Parser::destruct_): New method. Generate its body with
5276 b4_yydestruct_generate.
5277 (Parser::error_start_): New attribute.
5278 (Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
5279 token which are discarded.
5280 (Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
5281 error_start_ when erroneous token are discarded.
5282 (Parser::parse) <yyerrlab1>: Compute the location of the error
5283 token so that it covers all the discarded tokens.
5284 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
5285 it can be called with `%skeleton "lalr1.cc"', and do that.
5286
dd0e0635
PE
52872004-02-02 Paul Eggert <eggert@twinsun.com>
5288
5289 * src/Makefile.am (AM_CPPFLAGS): New macro. It mentions
5290 $(top_srcdir)/lib and ../lib. This fixes a bug reported
5291 by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
5292 There's no need to mention top_builddir since Automake does that
5293 for us.
5294 (INCLUDES): Remove, as Automake says it's obsolescent.
5295 Contents migrated into AM_CPPFLAGS as described above.
5296 * lib/Makefile.am (INCLUDES): Remove; obsolescent.
5297
52982004-01-14 Paul Hilfinger <hilfingr@CS.Berkeley.EDU>
5299
5300 * data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
5301 (yyreportSyntaxError): Handle case where lookahead token is
5302 YYEMPTY.
5303
be16239b
PH
53042004-01-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5305
5306 * data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
5307 resulting parsers are compilable with C++.
5308
5fa90832
PE
53092003-12-23 Paul Eggert <eggert@twinsun.com>
5310
5311 * config/depcomp, config/install-sh: Sync with Automake 1.8.
5312 * src/output.c (output_skeleton): Rename local var.
5313 * tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
5314 Bison tokens, as this runs afoul of the 2003-10-07 change that
5315 disallowed NUL bytes in character constants or string literals.
5316
5317 * tests/local.at: Require Autoconf 2.59's Autotest.
5318 * tests/testsuite.at: Don't include local.at, since we now assume
5319 Autoconf 2.59 or later. Autoconf 2.59 had some problems with
5320 including it.
5321 * tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
5322 multiple inclusion warnings.
dd0e0635 5323
b165c324
AD
53242003-12-02 Akim Demaille <akim@epita.fr>
5325
5326 * doc/bison.texinfo (How Can I Reset the Parser): More about start
5327 conditions.
5328 From Bruno Haible.
5329
26e06a21
ADL
53302003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
5331
5332 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
5333
92ac3705
PE
53342003-10-07 Paul Eggert <eggert@twinsun.com>
5335
6a5ecb38
PE
5336 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
5337 if testsuite doesn't exist.
5338
92ac3705
PE
5339 * doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
5340 literals, unfortunately.
5341 * src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
5342 Complain about NUL bytes in character constants or string literals.
5343
91d2c560
PE
53442003-10-05 Paul Eggert <eggert@twinsun.com>
5345
5346 * NEWS: Don't document %no-default-prec, as it's still
5347 too experimental.
5348 * doc/bison.texinfo: Document %no-default-prec only if
5349 the defaultprec flag is set. Normally it's not.
5350
0cc3da3a
PE
53512003-10-04 Paul Eggert <eggert@twinsun.com>
5352
5353 * data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
5354 non-modifiable lvalue, instead of a modifiable one.
5355 * doc/bison.texinfo (Actions): Document that $$ can
5356 be assigned to. Do not claim that $$ and $N are
5357 array element references: user code should not rely on this.
5358
22fccf95
PE
53592003-10-01 Paul Eggert <eggert@twinsun.com>
5360
5361 * src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
5362 (grammar_declaration): Use it.
5363 * src/scan-gram.l: New token %no-default-prec.
5364 * tests/conflicts.at: Revamp tests to use %no-default-prec.
5365 * NEWS, doc/bison.texinfo: Document the above.
5366
fc8f2965
AD
53672003-10-01 Akim Demaille <akim@epita.fr>
5368
5369 VCG no longer supports long_straight_phase.
5370
5371 * src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
5372 * src/print_graph.c (print_graph): Adjust.
5373
39a06c25
PE
53742003-09-30 Frank Heckenbach <frank@g-n-u.de>
5375 and Paul Eggert <eggert@twinsun.com>
5376
5377 * doc/bison.texinfo (Decl Summary, Contextual Precedence,
5378 Table of Symbols): Document %default-prec.
5379 * src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
5380 (grammar_declaration): Set default_prec on %default-prec.
5381 * src/scan-gram.l (%default-prec): New token.
5382 * src/reader.h (default_prec): New flag.
5383 * src/reader.c: Likewise.
5384 (packgram): Handle it.
5385 * tests/conflicts.at (%default-prec without %prec,
5386 %default-prec with %prec, %default-prec 1): New tests.
fc8f2965 5387
39a06c25
PE
53882003-09-30 Paul Eggert <eggert@twinsun.com>
5389
5390 * tests/testsuite.at: Include local.at, not input.at, fixing
5391 a typo in the 2003-08-25 patch.
5392
62b6aef9
AD
53932003-08-27 Akim Demaille <akim@epita.fr>
5394
5395 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
5396 GCC warnings.
5397
89e1cc61
AD
53982003-08-26 Akim Demaille <akim@epita.fr>
5399
5400 * config/announce-gen (print_changelog_deltas): Neutralize "<#" as
5401 "<\#" to avoid magic from Gnus when posting parts of this script.
5402
a08460b0
AD
54032003-08-26 Akim Demaille <akim@epita.fr>
5404
5405 * data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
5406 (Parser::parse): here.
5407 Adjust: nerrs and errstatus is now replaced by...
5408 (Parser::nerrs_, Parser::errstatus_): New.
5409
603f1cfd
AD
54102003-08-25 Akim Demaille <akim@epita.fr>
5411
5412 * config/announce-gen, Makefile.cfg: New.
5413 * Makefile.am: Adjust.
5414 * GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
5415 keeping local WGET and WGETFLAGS modifications from Paul Eggert.
5416
cd3684cf
AD
54172003-08-25 Akim Demaille <akim@epita.fr>
5418
5419 When reducing initial empty rules, Bison parser read an initial
5420 location that is not defined. This results in garbage, and that
5421 affects Bison's own parser. Therefore we need (i) to extend Bison
5422 to support a means to initialize this location, and (ii) to use
5423 this CVS Bison to fix CVS Bison's parser.
5424
5425 * src/reader.h, reader.c (epilogue_augment): Remove, replace
5426 with...
5427 * src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
5428 * src/parse-gram.y: Adjust.
5429 (%initial-action): New.
5430 (%error-verbose): Since we require CVS Bison, there is no reason
5431 not to use it.
5432 * src/scan-gram.l: Adjust.
5433 * src/Makefile.am (YACC): New, to make sure we use our own parser.
5434 * data/yacc.c (yyparse): Use b4_initial_action.
5435
4e03e201
AD
54362003-08-25 Akim Demaille <akim@epita.fr>
5437
5438 * doc/bison.texinfo: Don't promote stdout for error messages.
5439
8c182d05
AD
54402003-08-25 Akim Demaille <akim@epita.fr>
5441
5442 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
5443 From Alexandre Duret-Lutz.
5444
6a60c4cf
PE
54452003-08-25 Akim Demaille <akim@epita.fr>
5446
5447 Version 1.875c.
5448
25f66e1a
AD
54492003-08-25 Akim Demaille <akim@epita.fr>
5450
5451 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
5452 Use them.
5453
5348bfbe
AD
54542003-08-25 Akim Demaille <akim@epita.fr>
5455
5456 * data/lalr1.cc (Parser::reduce_print_): New.
5457 Use it.
5458
47301314
AD
54592003-08-25 Akim Demaille <akim@epita.fr>
5460
5461 Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
5462 error recovery loops. This patch is based on
161a71f3 5463 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
47301314
AD
5464 Also, augment the similarity between lalr1.cc and yacc.c.
5465 Note: the locations of error recovery rules are not correct yet.
5466
5467 * data/lalr1.cc: Comment changes to augment the similarity between
5468 lalr1.cc and yacc.c.
5469 (YYERROR): Goto to yyerrorlab, not yyerrlab1.
5470 (yyerrlab1): Remove, but where it used to be (now the bottom part of
5471 yyerrlab), when hitting EOF, pop the whole stack here instead of
5472 merely falling thru the default error handling mechanism.
5473 (yyerrorlab): New label, with the old contents of YYERROR,
5474 plus the following change: pop the stack of rhs corresponding
5475 to the production that invoked YYERROR. That is how Yacc
5476 behaves (required by POSIX).
5477 * tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
5478 fail.
5479
1f7a61ff
AD
54802003-08-25 Akim Demaille <akim@epita.fr>
5481
5482 Tune local.at so that people can "autom4te -l autotest calc.at -o
5483 calc" for instance, to extract a sub test suite.
5484
5485 * tests/testsuite.at: Move the initialization, Autotest version
5486 requirement, and AT_TESTED invocation into...
5487 * tests/local.at: here.
5488 * tests/testsuite.at: Include it for compatibility with Autoconf
5489 2.57.
5490 * tests/Makefile.am ($(TESTSUITE)): Report that the warning should
5491 be ignore.
5492
327b5b56
PE
54932003-08-04 Paul Eggert <eggert@twinsun.com>
5494
5495 Rework code slightly to avoid gcc -Wtraditional warnings.
5496 * data/glr.c (yyuserMerge): Return void, not YYSTYPE.
5497 The returned value is now stored in *YY0. All callers changed.
5498 * src/output.c (merge_output): Adjust to the above change.
5499
0051e3ed
PE
55002003-07-26 Paul Eggert <eggert@twinsun.com>
5501
5502 * data/glr.c (YYASSERT): New macro.
5503 (yyfillin, yydoAction, yyglrReduce, yysplitStack,
5504 yyresolveStates, yyprocessOneStack):
5505 Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
5506 Derived from a suggestion by Frank Heckenbach.
1f7a61ff 5507
137437c6
PE
55082003-07-25 Paul Eggert <eggert@twinsun.com>
5509
5b620e06
PE
5510 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
5511 for portability to K&R C (after ansi2knr, presumably). See
161a71f3 5512 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
5b620e06
PE
5513 by Frank Heckenbach, though I have omitted the structure-initialization
5514 part of his glr-knr.diff patch since I recall that the Portable
5515 C Compiler didn't require that change.
5516
137437c6
PE
5517 Let the user specify how to allocate and free memory.
5518 Derived from a suggestion by Frank Heckenbach in
161a71f3 5519 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
137437c6
PE
5520 * data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
5521 All uses of free, malloc, realloc changed to use these macros,
5522 and unnecessary casts removed.
5523 * data/yacc.c (YYFREE, YYMALLOC): Likewise.
5524
ddb85ca5
PE
55252003-07-06 Matthias Mann <MatthiasMann@gmx.de>
5526
5527 * data/lalr1.cc (operator<<(std::ostream&, const Position&)):
5528 use s.empty() rather than s == "" to test for empty string; see
161a71f3 5529 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
ddb85ca5
PE
5530 (trivial change)
5531
39910e09
AD
55322003-06-25 Akim Demaille <akim@epita.fr>
5533
5534 * config/depcomp, config/install-sh: Update from masters.
5535
0ae99356
PE
55362003-06-20 Paul Eggert <eggert@twinsun.com>
5537
5538 * data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
5539 and return properly parenthesized result.
5540 * data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
5541 * data/yacc.c (YYLLOC_DEFAULT): Likewise.
5542 Remove unnecessary parentheses from uses.
5543 * doc/bison.texinfo (Location Default Action): Describe the
5544 conventions for parentheses.
5545
cd05d13c
PE
55462003-06-19 Paul Eggert <eggert@twinsun.com>
5547
81fd08ca
PE
5548 * data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
5549 yyreportTree): Do not assume that size_t is the same width as int,
5550 when printing sizes. Print sizes using an unsigned format.
5551 Problem reported by Frank Heckenbach in
161a71f3 5552 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
4dcf140b 5553
cd05d13c
PE
5554 Port to Forte Developer 7 C compiler.
5555 * data/glr.c (struct YYLTYPE): If locations are not being used,
5556 declare a single dummy member, as empty structs do not conform
5557 to the C standard.
5558 (YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
5559 the Forte Developer 7 C compiler complains that end-of-loop
5560 code is not reached.
5561
4dcf140b
PE
55622003-06-17 Paul Eggert <eggert@twinsun.com>
5563
5564 * lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
5565 avoid warnings from picky compilers about redefinition of PARAMS.
5566
8dd76bee
PE
55672003-06-17 Paul Eggert <eggert@twinsun.com>
5568
5569 Version 1.875b.
5570
5571 * NEWS: Document 1.875b.
5572
5573 * lib/bbitset.h: Do not include config.h; that's the includer's job.
5574 Do not include <sys/types.h>; shouldn't be needed on a C89 host.
5575 * lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
5576 Don't use 'index' in comments, as it's a builtin fn on some hosts.
5577 * lib/bitset_stats.c: Include gettext.h unconditionally, as
5578 per recent gettext manual's suggestion.
5579 * lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
5580 Use prototypes, not old-style definitions.
5581 * lib/lbitset.c (lbitset_unused_clear): Likewise.
5582 * lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
5583 vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
5584 vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
5585 vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
5586 vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
5587 vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
5588 vbitset_or_and_cmp, vbitset_copy): Likewise.
5589
5590 * lib/libiberty.h: Do not include config.h; that's the includer's job.
5591 Do not include <stdlib.h>.
5592 (PARAMS): Define unconditionally for C89.
5593 (ATTRIBUTE_NORETURN): Remove.
5594 (ATTRIBUTE_UNUSED): Define unconditionally.
5595
5596 Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
161a71f3 5597 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
8dd76bee
PE
5598 * lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
5599 * lib/vbitset.c, lib/vbitset.h: New files.
5600 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
5601 lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
5602 from libbitset.
5603
5604 * doc/bison.texinfo (How Can I Reset the Parser): Renamed from
5605 `How Can I Reset @code{yyparse}', since texinfo does not allow
5606 arbitrary @ in node names.
5607
5608 * m4/Makefile.am (EXTRA_DIST): Add the following files, which
5609 shouldn't be needed according to the gettext 0.12.1 documentation
5610 but which seem to be needed anyway: codeset.m4 glibc21.m4
f8e8262e 5611 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
8dd76bee 5612 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
f8e8262e 5613 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
cd05d13c 5614
8dd76bee
PE
5615 * lib/.cvsignore: Add stdbool.h.
5616 * m4/.cvsignore: Add nls.m4, po.m4.
5617
5618 Upgrade to CVS gnulib.
5619 * stdbool_.h: File renamed from stdbool.h.in.
5620 * configure.ac (AM_STDBOOL_H): Invoke this instead of
5621 AC_HEADER_STDBOOL.
5622 (AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
5623 (AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
5624 * lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
5625 (MOSTLYCLEANFILES): New var.
5626 ($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
5627 (stdbool.h): New rule.
5628 * lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
5629 lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
5630 lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
5631 m4/quote.m4: Upgrade to today's gnulib.
5632
5633 * tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
5634 (AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
5635 the tests right now.
5636 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
5637 yyerror are declared before use; C99 requires this.
5638
25005f6a
PH
56392003-06-09 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
5640
5641 * data/glr.c (YYERROR): Update definition to reset yyerrState to 0
5642 first.
5643 (yyrecoverSyntaxError): Correct the logic for setting and testing
5644 yyerrState.
5645 Correct comment on handling EOF.
5646 Allow states with only a default reduction, rather than failing
8dd76bee 5647 (I can't quite reconstruct why these were not allowed before).
25005f6a 5648
137437c6 5649 Fixes to avoid problem that $-N rules in GLR parsers can cause
25005f6a 5650 buffer overruns, corrupting state.
8dd76bee
PE
5651
5652 * src/output.c (prepare_rules): Output max_left_semantic_context
25005f6a
PH
5653 definition.
5654 * src/reader.h (max_left_semantic_context): New variable declaration.
5655 * src/scan-gram.l (max_left_semantic_context): Define.
5656 (handle_action_dollar): Update max_left_semantic_context.
5657 * data/glr.c (YYMAXLEFT): New definition.
5658 (yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
5659 (yyresolveAction): Ditto.
5660
5661 Fixes to problems with location handling in GLR parsers reported by
5662 Frank Heckenbach (2003/06/05).
5663
5664 * data/glr.c (YYLTYPE): Make trivial if locations not used.
5665 (YYRHSLOC): Add parentheses, and define only if locations used.
5666 (YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
5667 locations not used.
5668 (yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
5669 (yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
8dd76bee 5670
25005f6a
PH
5671 * tests/cxx-type.at: Exercise location information; update tests
5672 to differentiate output with and without locations.
8dd76bee 5673 Remove forward declarations of yylex and yyerror---caused errors
25005f6a
PH
5674 because default YYLTYPE not yet defined.
5675 Change semantic actions to compute strings, rather than printing
5676 them directly (to test proper passing of semantics values). Change
5677 output to prefix notation and update test data and expected results.
5678 (yylex): Track locations.
5679 (stmtMerge): Return value rather than printing, and include arguments
5680 in value.
8dd76bee 5681
711f40b7
PE
56822003-06-03 Paul Eggert <eggert@twinsun.com>
5683
5684 Avoid warnings generated by GCC 2.95.4 when Bison is
5685 configured with --enable-gcc-warnings.
5686 * data/lalr1.cc (yy::]b4_parser_class_name[::parse,
5687 yy::]b4_parser_class_name[::translate_,
5688 yy::Stack::operator[] (unsigned),
5689 yy::Stack::operator[] (unsigned) const,
5690 yy::Slice::operator[] (unsigned),
5691 yy::Slice::operator[] (unsigned) const):
5692 Rename local vars to avoid warnings.
5693 * tests/glr-regression.at (Improper handling of embedded actions
5694 and $-N in GLR parsers): Remove unused local variable from yylex.
5695 * tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
5696 (void) as arg when not pure, since we now assume C89 when building
5697 Bison. Pacify GCC by using parameter.
5698
ac695f7d
PE
56992003-06-02 Paul Eggert <eggert@twinsun.com>
5700
5701 * data/lalr1.cc (yy::Position::lines, yy::Position::columns,
5702 yy::Location::lines, yy::Location::columns): Rename arguments
5703 to avoid shadowing; this removes a warning generated by GCC 3.3.
5704
26ec81e0
PE
57052003-06-01 Paul Eggert <eggert@twinsun.com>
5706
5707 Don't pass C-only warning optins (e.g., -Wmissing-declarations)
5708 to g++, as GCC 3.3 complains if you do it.
5709 * configure.ac (WARNING_CXXFLAGS): New subst. Set it to
5710 everything that WARNING_CFLAGS has, except omit warnings
5711 not suitable for C++.
5712 (AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
5713 * tests/atlocal.in (CXXFLAGS): New var.
5714 * tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
5715
5716 Fix a GLR parser bug I reported in February; see
161a71f3 5717 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
26ec81e0
PE
5718 The problem was that GLR parsers did not conform to the C standard,
5719 because actions like { $1 = $2 + $3; } expanded to expressions
5720 that invoked YYFILL in separate subexpressions, and YYFILL assigned
5721 to a local variable. The C standard says that expressions
5722 like (var = f ()) + (var = f ()) have undefined behavior.
5723 Another problem was that GCC sometimes issues warnings that
5724 yyfill and its parameters are unused.
5725
5726 * data/glr.c (yyfillin): Renamed from the old yyfill. Mark
5727 as possibly unused.
5728 (yyfill): New function.
5729 (YYFILL): Use it.
5730 (yyuserAction): Change type of yynormal to bool, so that it matches
5731 the new yyfill signature. Mark it as possibly unused.
5732
5733
5734 Follow up on a bug I reported in February, where a Bison-generated
5735 parser can loop. Provide a test case and a fix for yacc.c. I
5736 don't have a fix for lalr1.cc or for glr.c, unfortunately.
5737 The original bug report is in:
161a71f3 5738 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
26ec81e0
PE
5739
5740 * data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
5741 macro's size was becoming unwieldy.
5742 (yyerrlab): Do not discard an empty lookahead symbol, as this
5743 might destroy garbage.
5744 (yyerrorlab): New label, with the old contents of YYERROR,
5745 plus the following change: pop the stack of rhs corresponding
5746 to the production that invoked YYERROR. That is how Yacc
5747 behaves, and POSIX requires this behavior.
5748 (yyerrlab1): Use YYPOPSTACK instead of its definiens.
5749 * tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
5750 Define 'alarm' to do nothing if unistd.h is not available.
5751 Add a new rule "exp: '-' error;" to test the above change to
5752 data/yacc.c. Use 'alarm' to abort any test taking longer than
5753 10 seconds, as it's probably looping.
5754 (AT_CHECK_CALC): Test recovery from error in new grammar rule.
5755 Also, the new yacc.c generates two fewer diagnostics for an
5756 existing test.
5757
d0829076
PE
57582003-05-24 Paul Eggert <eggert@twinsun.com>
5759
c6ae27df
PE
5760 * data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
5761 YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
5762 This fixes a problem reported by John Bowman when the Compaq/HP
5763 Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
5764 -ansi -Wall -gall).
5765 * data/yacc.c (union yyalloc): Likewise.
5766 (YYCOPY): Do not evaluate __GNUC__ unless it is defined.
26ec81e0 5767
d0829076
PE
5768 Switch from 'int' to 'bool' where that makes sense.
5769
5770 * lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
5771 abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
5772 abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
5773 abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
5774 Return or accept bool, not int. All callers changed.
5775 * lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
5776 bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
5777 * lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
5778 bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
5779 bitset_or_and_cmp_): Likewise.
5780 * lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
5781 * lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
5782 bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
5783 bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
5784 bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
5785 bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
5786 bitset_stats_or_and_cmp): Likewise.
5787 * lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
5788 ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
5789 ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
5790 ebitset_xor_cmp): Likewise.
5791 * lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
5792 lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
5793 lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
5794 lbitset_xor_cmp): Likewise.
5795 * lib/bbitset.h: Include <stdbool.h>.
5796 (struct bitset_vtable): The following members now return bool, not
5797 int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
5798 and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
5799 or_and_cmp).
5800 * src/conflicts.c (count_rr_conflicts): Likewise.
5801 * lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
5802 All uses changed.
5803 * lib/ebitset.c (ebitset_obstack_init): Likewise.
5804 * lib/lbitset.c (lbitset_obstack_init): Likewise.
5805 * src/getargs.c (debug_flag, defines_flag, locations_flag,
5806 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
5807 graph_flag): Likewise.
5808 * src/getargs.h (debug_flag, defines_flag, locations_flag,
5809 no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
5810 graph_flag): Likewise.
5811 * src/output.c (error_verbose): Likewise.
5812 * src/output.h (error_verbose): Likewise.
5813 * src/reader.c (start_flag, typed): Likewise.
5814 * src/reader.h (typed): Likewise.
5815 * src/getargs.c (LOCATIONS_OPTION): New constant.
5816 (long_options, getargs): Use it.
5817 * src/lalr.c (build_relations): Use bool, not int.
5818 * src/nullable.c (nullable_compute): Likewise.
5819 * src/print.c (print_reductions): Likewise.
5820 * src/tables.c (action_row, pack_vector): Likewise.
5821 * src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
5822 * src/output.c (prepare): Use it.
5823 * src/output.c (token_definitions_output,
5824 symbol_destructors_output, symbol_destructors_output): Use string,
5825 not boolean integer, to keep track of whether to output separator.
5826 * src/print_graph.c (print_core): Likewise.
5827 * src/state.c (state_rule_lookaheads_print): Likewise.
5828
5829 * config/install-sh: Sync from automake 1.7.5.
5830
6b2584b7
PE
58312003-05-14 Paul Eggert <eggert@twinsun.com>
5832
5833 * src/parse-gram.y (rules_or_grammar_declaration): Require a
5834 semicolon after a grammar declaration, in the interest of possible
5835 future changes to the Bison input language.
5836 Do not allow a stray semicolon at the start of the grammar.
5837 (rhses.1): Allow one or more semicolons after any rule, including
5838 just before "|" as required by POSIX.
5839 * tests/input.at (Torturing the Scanner): Add tests for ";|" in a
5840 grammar.
5841
caf37a36
ADL
58422003-05-14 Alexandre Duret-Lutz <adl@gnu.org>
5843
5844 %parse-param support for lalr1.cc.
5845
5846 * data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
5847 b4_cc_constructor_calls, b4_cc_constructor_call,
5848 b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
5849 definitions.
5850 (yy::b4_parser_class_name::b4_parser_class_name): Take extra
5851 parse-param arguments.
5852 (yy::b4_parser_class_name): Declare instance variables to
5853 hold parse-param arguments.
5854 * tests/calc.at: s/value/semantic_value/ because value clashes
5855 with a member of yy::b4_parser_class_name. Adjust C++ code
5856 to handle %parse-param. Enable %parse-param test in C++.
5857
3ab37077
PE
58582003-05-12 Paul Eggert <eggert@twinsun.com>
5859
5860 * doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
5861 English a bit. Fix fclose typo. Change "const char" to "char
5862 const", and use ANSI C rather than K&R for "main". Suggest
5863 YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
5864 and suggest yy_switch_to_buffer.
5865
58662003-05-05 Paul Eggert <eggert@twinsun.com>
163ab321
PE
5867
5868 * lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
5869 C89. This avoids a diagnostic on compilers that define __STDC__
5870 to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
161a71f3 5871 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
163ab321 5872
e743727f
PE
58732003-05-03 Paul Eggert <eggert@twinsun.com>
5874
5875 * lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
5876 Do not overrun array bounds.
5877 This should fix a bug reported today by Olatunji Oluwabukunmi in
161a71f3 5878 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
e743727f 5879
916708d5
AD
58802003-04-29 Akim Demaille <akim@epita.fr>
5881
5882 * src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
5883 * src/getargs.c, src/getargs.h: here, as bool, not int.
5884 (nondeterministic_parser): New.
5885 * src/parse-gram.y, src/scan-gram.l: Support
5886 %nondeterministic-parser.
5887 * src/output.c (prepare): Use nondeterministic_parser instead
5888 of glr_parser where appropriate.
5889 * src/tables.c (conflict_row, action_row, save_row)
5890 (token_actions, token_actions, pack_vector): Ditto.
5891
a06ea4aa
AD
58922003-04-29 Akim Demaille <akim@epita.fr>
5893
5894 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
5895
211074ca
AD
58962003-04-29 Akim Demaille <akim@epita.fr>
5897
5898 * tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
5899 with %pure-parser and %locations to exercise the patch from Yakov
5900 Markovitch below.
5901
6175ffe3
PE
59022003-04-28 Tim Van Holder <tim.van.holder@pandora.be>
5903
5904 * data/yacc.c: (b4_lex_param): Corrected for the case where
5905 %lex-param is provided and %pure-parser isn't.
5906
b1e95857
PE
59072003-04-27 Paul Eggert <eggert@twinsun.com>
5908
5909 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
161a71f3 5910 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
b1e95857
PE
5911 * data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
5912 if it is not defined.
5913 (YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
5914
acda9df6
PE
59152003-04-26 Paul Eggert <eggert@twinsun.com>
5916
3470c57b
PE
5917 * data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
5918 Declare to be of type suitable for the ninf value itself, not of
5919 type suitable for the corresponding table, since the latter might
5920 be unsigned but the ninf value might be negative. This fixes a
5921 bug reported by Alexandre Duret-Lutz in
161a71f3 5922 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
3470c57b 5923
acda9df6
PE
5924 * configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
5925 invokes it. We shouldn't invoke it twice because it will attempt
5926 to put error.o in the archive twice. This fixes a glitch reported
5927 by Martin Mokrejs in
161a71f3 5928 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
acda9df6 5929
b5250f26
PE
59302003-04-21 Paul Eggert <eggert@twinsun.com>
5931
5932 * m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
5933 to gnulib.
5934
089ac0f1
PE
59352003-04-21 Yakov Markovitch <Markovitch@iso.ru>
5936
5937 * data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
5938 Fix obvious typo that results in uncompilable GLR parsers
5939 when both %pure-parser and %locations are used. (trivial change)
5940
5ededac6
PE
59412003-04-17 Paul Eggert <eggert@twinsun.com>
5942
1b8f2fff
PE
5943 * src/scan-gram.l: Add %option nounput, since we no longer use unput.
5944 (unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
5945 Do not insert the expected token via unput, as this runs afoul
5946 of a POSIX-compatibility bug in flex 2.5.31.
5947 All uses changed to BEGIN the parent state,
5948 since we no longer insert the expected token via unput.
5949 * tests/regression.at (Invalid inputs): Remove cascaded diagnostic
5950 that is no longer emitted after the above change.
5951
5ededac6
PE
5952 * src/conflicts.c (set_conflicts): Resolve all conflicts, not just
5953 the first one. This change is from Paul Hilfinger, and it fixes
5954 regression reported by Werner Lemberg in
161a71f3 5955 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
5ededac6
PE
5956
5957 (resolve_sr_conflict): Don't invoke state_errs_set
5958 unless one or more tokens have been explicitly made errors.
5959 Otherwise, the above change causes Bison to abort.
5960
5961 * tests/existing.at (GNU pic Grammar): New test case, taken from
5962 Lemberg's email.
5963
b8be9132
AD
59642003-03-31 Akim Demaille <akim@epita.fr>
5965
5966 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
5967
d423d460
AD
59682003-03-31 Akim Demaille <akim@epita.fr>
5969
5970 * src/output.c (prepare_symbols): Avoid trailing spaces in the
5971 output.
5972
c7e441b4
AD
59732003-03-31 Akim Demaille <akim@epita.fr>
5974
5975 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
5976 From Paul Hilfinger.
5977
231897ad
AD
59782003-03-29 Akim Demaille <akim@epita.fr>
5979
5980 * m4/error.m4: Do not put under dynamic conditions some code which
5981 expansion is under static control.
5982
5b066063
AD
59832003-03-29 Akim Demaille <akim@epita.fr>
5984
5985 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
5986
22a74fec
AD
59872003-03-29 Akim Demaille <akim@epita.fr>
5988
5989 * doc/bison.texinfo (Strings are Destroyed): New.
5990
0eee27e7
PE
59912003-03-13 Paul Eggert <eggert@twinsun.com>
5992
5993 * .cvsignore: Add configure.lineno.
5994 * src/.cvsignore: Add yacc.
5995 * tests/.cvsignore: Add testsuite.log.
5996 * doc/fdl.texi: Sync with latest FSF version.
5997
f61aad93
PE
59982003-03-12 Paul Eggert <eggert@twinsun.com>
5999
537636c7
PE
6000 * scan-gram.l (YY_USER_INIT): Initialize code_start, too.
6001 (<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
6002 cursor, instead of leaving it undefined. This fixes a bug
6003 reported by Tim Van Holder in
161a71f3 6004 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
537636c7
PE
6005 * tests/input.at (Torturing the Scanner): Test the scanner on
6006 an empty input file, which was Tim Van Holder's test case.
6007
6008 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
6009 <sys/resource.h> can be included, include sys/time.h and
6010 sys/times.h first, if available. This works around the SunOS
6011 4.1.4 porting bug reported by Bruce Becker in
161a71f3 6012 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
537636c7
PE
6013
6014 * m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
6015 AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
6016 AC_HEADER_SYS_WAIT.
6017
f61aad93
PE
6018 Merge changes from gnulib. This was prompted because the CVS
6019 snapshot didn't build on Solaris 7 due to strnlen problems.
6020
6021 These changes need to be merged back into gnulib:
6022 * lib/hash.c: Include <stdbool.h> unconditionally.
6023 * m4/onceonly.m4 (m4_quote): New macro.
6024 (AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
6025 Quote AC_FOREACH variable-expansions properly.
6026 The 2003-01-03 obstack.h change also needs merging.
6027 {end of changes requiring merging}
5b066063 6028
f61aad93
PE
6029 * lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
6030 m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
6031 m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
6032 m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
6033 m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
6034 New files, imported from gnulib.
6035 * m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
6036 above.
6037
6038 * lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
6039 m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
6040 gnulib sources.
6041
6042 * configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
6043 Add.
6044 (gl_ERROR): New, replacing jm_PREREQ_ERROR.
6045 (gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
6046 (gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
6047 (gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
6048 (gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
6049 (gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
6050 (gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
6051 (jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
6052 (jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
6053 (jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
6054 (jm_PREREQ_ARGMATCH): Remove.
6055 (AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
6056 * lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
6057
6058 * src/system.h: Include <stdbool.h> unconditionally.
6059
6060 * lib/bbitset.h: Include <limits.h> unconditionally. We have been
6061 assuming at least C89 in the bitset code for some time now.
6062
d2ffe116
AD
60632003-03-03 Akim Demaille <akim@epita.fr>
6064
6065 * ro.po: New.
6066
052826fd
AD
60672003-03-02 Akim Demaille <akim@epita.fr>
6068
6069 * doc/bison.texinfo (Table of Symbols): Reactivate the
6070 documentation for %lex-param, and %parse-param.
6071
c4749565
AD
60722003-03-02 Akim Demaille <akim@epita.fr>
6073
6074 * data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
6075 generate verbose error messages.
6076 Use the number of tokens as an upper bound in yytname, as it
6077 cannot be a non terminal.
6078
d5286af1
AD
60792003-03-02 Akim Demaille <akim@epita.fr>
6080
6081 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
6082 message.
6083
22e304a6
AD
60842003-03-02 Akim Demaille <akim@epita.fr>
6085
22e304a6
AD
6086 * tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
6087 Use them to exercise yycheck overrun.
6088 Based on Andrew Suffield's grammar.
6089
67a25fed
AD
60902003-03-02 Akim Demaille <akim@epita.fr>
6091
6092 Create tests/local.at for Bison generic testing macros.
6093
6094 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
6095 * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
6096 This new file.
6097 * tests/calc.at (AT_CHECK_CALC): Adjust.
6098 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
6099 (AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
6100 * tests/local.at: here.
6101 (AT_COMPILE_CXX): Tags the tests using it as c++.
6102 Ignore the test if CXX is not functional.
6103
9c2b381f
PE
61042003-03-01 Paul Eggert <eggert@twinsun.com>
6105
6106 * src/scan-gram.l (code_start): Initialize it to scanner_cursor,
6107 not loc->end, since loc->end might contain garbage and this leads
6108 to undefined behavior on some platforms.
6109 (id_loc, token_start): Use (IF_LINTed) initial values that do not
6110 depend on *loc, so that the reader doesn't give the the false
6111 impression that *loc is initialized.
6112 (<INITIAL>"%%"): Do not bother setting code_start, since its value
6113 does not survive the return.
6114
0433ba88
AD
61152003-03-01 Akim Demaille <akim@epita.fr>
6116
6117 * src/scan-gram.l (code_start): Always initialize it when entering
6118 into yylex, as SC_EPILOGUE is activated *before* the corresponding
6119 yylex invocation. An alternative would be making it static, but
6120 then it starts with the second %%'s beginning, instead of its end.
6121
b305ea69
PE
61222003-02-28 Paul Eggert <eggert@twinsun.com>
6123
6124 * lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
6125 around a UnixWare 7.1.1 porting bug reported by John Hughes in
161a71f3 6126 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
b305ea69 6127
c3d25e01
PE
61282003-02-26 Paul Eggert <eggert@twinsun.com>
6129
6130 * README: Mention compiler bug in Sun Forte Developer 6 update 2.
6131 Remove Sequent/Pyramid discussion (nobody uses them any more).
6132 Merge VMS and MS-DOS discussion; these ports may well be dead
6133 but let's keep mentioning them for now. Put <> around email
6134 addresses. Add copyright notice.
6135
c267ffbc
PE
61362003-02-24 Paul Eggert <eggert@twinsun.com>
6137
6138 * data/glr.c (yy_reduce_print): yylineno -> yylno,
6139 to avoid collision with flex use of yylineno.
6140 Problem reported by Bruce Lilly in
161a71f3 6141 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
c267ffbc
PE
6142 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
6143 * data/yacc.c (yy_reduce_print): Likewise.
6144
6145 * config/depcomp: Sync with Automake 1.7.3.
6146
f939fc12
AD
61472003-02-21 Akim Demaille <akim@epita.fr>
6148
6149 * data/lalr1.cc: Use temporary variables instead of casts to
6150 change integer types.
6151 Suggested by Paul Eggert.
6152
95923bd6
AD
61532003-02-21 Akim Demaille <akim@epita.fr>
6154
6155 * doc/bison.texinfo: Use "location" consistently to refer to @n,
6156 to avoid confusions with lalr1.cc's notion of Position.
6157 Suggested by Paul Eggert.
6158
2cdc240e
AD
61592003-02-20 Akim Demaille <akim@epita.fr>
6160
6161 * data/lalr1.cc (position.hh): Make sure "columns" never pushes
6162 before initial_columns.
6163 (location.hh): Use consistent variable names when defining the
6164 operator<<.
6165 Use "last" so that we subtract from Positions, not from unsigned.
6166
5d003116
AD
61672003-02-20 Akim Demaille <akim@epita.fr>
6168
6169 * data/lalr1.cc (position.hh): New subfile, including the extended
6170 and Doxygen'ed documentation of class Position.
6171 (location.hh): Use it.
6172 Document a` la Doxygen.
ba1ecc07 6173 With the help of Benoit Perrot.
5d003116 6174
d02b25f9
AD
61752003-02-20 Akim Demaille <akim@epita.fr>
6176
6177 * tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
6178 AT_YACC_IF.
6179 Redefine AT_YYERROR_SEES_LOC_IF using it.
6180 (_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
6181 not defined.
6182 Don't use the location in yy::Parser::error_ and
6183 yy::Parser::print_ when not %locations.
6184 Activate more lalr1.cc tests.
6185
0d1c3a04
AD
61862003-02-19 Akim Demaille <akim@epita.fr>
6187
6188 * data/lalr1.cc: When displaying a line number, be sure to make it
6189 an int.
6190
60a777aa
AD
61912003-02-19 Akim Demaille <akim@epita.fr>
6192
6193 * data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
6194 Remove, useless.
6195 (YYABORT, YYACCEPT, YYERROR): New.
6196 * tests/calc.at: Renable the lalr1.cc test.
6197
0b86fc41
AD
61982003-02-19 Akim Demaille <akim@epita.fr>
6199
6200 * tests/calc.at (AT_CHECK_CALC): Check different scenarios of
6201 error recovery, mixing with/without pops and discarding of the
6202 lookahead.
6203 Exercise YYERROR.
6204 Disable the lalr1.cc tests as currently it doesn't support YYERROR.
6205
da99a5dc
PE
62062003-02-17 Paul Eggert <eggert@twinsun.com>
6207
6208 * tests/atlocal.in (LDFLAGS, LIBS): New vars.
6209 * tests/testsuite.at (AT_COMPILE): Use them.
6210 This fixes the testsuite problem reported by Robert Lentz in
161a71f3 6211 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
da99a5dc 6212
93b8c255
PE
62132003-02-12 Paul Eggert <eggert@twinsun.com>
6214
6215 * data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
6216 Avoid subscript error in yycheck. Bug reported by Andrew Suffield in
161a71f3 6217 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
93b8c255
PE
6218 * data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
6219 Check for malloc failure, for consistency with yacc.c.
6220 (yytname_size): Remove, for consistency with yacc.c.
6221
6222 The bug still remains in data/lalr1.cc, as I didn't have time
6223 to fix it there.
6224
7548fed2
AD
62252003-02-06 Akim Demaille <akim@epita.fr>
6226
6227 * configure.ac (GXX): Rename as...
6228 (CXX): this, to keep the original Autoconf semantics.
6229 Require 2.57.
6230 * data/lalr1.cc: Fix b4_copyright invocations.
6231 If YYDEBUG is not defined, don't depend upon name_ being defined.
6232 (location.hh): Include string and iostream.
6233 (Position::filename): New member.
6234 (Position::Position ()): New.
6235 (operator<< (Position)): New.
6236 (operator- (Position, int)): New.
6237 (Location::first, Location::last): Rename as...
6238 (Location::begin, Location::end): these, to mock the conventional
6239 iterator names.
6240 (operator<< (Location)): New.
6241 * tests/atlocal.in (CXX): New.
6242 * tests/testsuite.at (AT_COMPILE_CXX): New.
6243 * tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
6244 locations in a more synthetic way.
6245 (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
6246 lalr1.cc is used.
6247 Adjust the C locations to match those from Emacs: first column is
6248 column 0.
6249 Change all the expected results.
6250 Conform to the GCS: simplify the locations when applicable.
6251 (LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
6252 (LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
6253 these CPP macros with the m4 macros new defined by...
6254 (AT_CHECK_PUSHDEFS): this, i.e.:
6255 (AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
d02b25f9 6256 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
7548fed2
AD
6257 New macros.
6258 (AT_CHECK_POPDEFS): Undefine them.
6259 (AT_CHECK_CALC_LALR1_CC): New.
6260 Use it for the first lalr1.cc test.
6261
43a176ef
AD
62622003-02-04 Akim Demaille <akim@epita.fr>
6263
6264 * data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
6265 Location as is defined.
6266
fc049e9c
AD
62672003-02-04 Akim Demaille <akim@epita.fr>
6268
6269 * data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
6270 name_ being defined.
6271
a737b216
PE
62722003-02-03 Paul Eggert <eggert@twinsun.com>
6273
6274 * src/gram.h (start_symbol): Remove unused decl.
6275
6276 Use more-consistent naming conventions for local vars.
6277
6278 * src/derives.c (derives_compute): Change type of local var from
6279 int to rule_number.
6280 * src/gram.c (grammar_rules_partial_print): Likewise.
6281 * src/print.c (print_core): Likewise.
6282 * src/reduce.c (reduce_grammar_tables): Likewise.
6283
6284 * src/gram.c (grammar_dump): Change name of item_number *
6285 local var from r to rp.
6286 * src/nullable.c (nullable_compute): Likewise.
6287
6288 * src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
6289
6290 * src/gram.h (symbol_number_as_item_number): Use sym, not s,
6291 for symbol or symbol_number var.
6292 * src/reader.c (grammar_start_symbol_set): Likewise.
6293 * src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
6294 Likewise.
6295 * src/state.c (transitions_to): Likewise.
6296 * src/state.h: Likewise.
6297 * src/tables.c (symbol_number_to_vector_number): Likewise.
6298
6299 * src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
6300 char * var.
6301
6302 * src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
6303 var.
6304
6305 * src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
6306 var.
6307
6308 * src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
6309 Use str, not s, for char * var. Use ch, not c, for character var.
6310 Use size for size var.
6311
6312 * src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
6313 char * var.
6314 (uniqstr_print, uniqst_print_processor): Use ustr, not s, for
6315 uniqstr var.
6316 * src/uniqstr.h: Likewise.
6317
6318 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
6319 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
6320 get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
6321 get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
6322 param to have same name as that of enum, so that we don't use
6323 "s" to stand for a non-state.
6324
68e93ad5
AD
63252003-02-02 Akim Demaille <akim@epita.fr>
6326
6327 * src/scan-skel.l: Scan more than one inert character per yylex
6328 invocation.
6329
92898986
PE
63302003-02-01 Paul Eggert <eggert@twinsun.com>
6331
6332 Version 1.875a.
6333
1d9d5d71
PE
6334 * po/LINGUAS: Add ms.
6335
0435d061
AD
63362003-01-30 Akim Demaille <akim@epita.fr>
6337
6338 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
6339
6029a57f
PH
63402003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6341
6342 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
6343 of $1.
0435d061
AD
6344
6345 Changes in response to error report by S. Eken: GLR mode does not
6029a57f 6346 handle negative $ indices or $ indices in embedded rules correctly.
161a71f3 6347 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
0435d061 6348
6029a57f
PH
6349 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
6350 (b4_rhs_location): Ditto.
0435d061 6351 (yyfill): New function to copy from stack tree into array
6029a57f 6352 incrementally.
0435d061
AD
6353 (yyuserAction): Modify to allow incremental move of semantic values
6354 to rhs array when in GLR mode.
6355 Define YYFILL to use in user-defined actions to fill semantic array
6029a57f
PH
6356 as needed.
6357 Remove dummy use of yystack, as there is now a guaranteed use.
6358 (yydoAction): Modify to allow incremental move of semantic values
6359 to rhs array when in GLR mode.
6360 (yyresolveAction): Ditto.
6361 (yyglrShiftDefer): Update comment.
0435d061 6362 (yyresolveStates): Use X == NULL for pointers, not !X.
6029a57f
PH
6363 (yyglrReduce): Ditto.
6364 (yydoAction): Ditto
0435d061 6365
6029a57f
PH
6366 * tests/glr-regr1.at: Rename to ...
6367 * tests/glr-regression.at: Add new regression test for the problems
6368 described above (adapted from S. Eken).
6369 Update copyright notice.
6370 * tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
6371 * tests/Makefile.am: Ditto.
6372
6cee6297
PE
63732003-01-28 Paul Eggert <eggert@twinsun.com>
6374
6375 * data/lalr1.cc: Do not use @output_header_name@ unless
6376 b4_defines_flag is set. This fixes two bugs reported by
6377 Tim Van Holder in
161a71f3
PE
6378 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
6379 and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
6cee6297 6380
b2a836b5
PE
63812003-01-21 Paul Eggert <eggert@twinsun.com>
6382
6383 * data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
6384 we don't need to worry about yyerrlab1 being reported as an
6385 "unused label" by non-GCC C compilers. The downside is that if
6386 locations are used then a couple of statements are duplicated each
6387 time YYERROR is invoked, but the upside is that the warnings
6388 should vanish.
6389 (yyerrlab1): Move code to YERROR.
6390 (yyerrlab2): Remove. Change uses back to yyerrlab1.
6391 This reverts some of the 2002-12-27 change.
6392
4196b931
PE
63932003-01-17 Paul Eggert <eggert@twinsun.com>
6394
6395 * src/output.c (symbol_printers_output): Fix typo that led
6396 to core dump. Problem reported by Antonio Rus in
161a71f3 6397 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
4196b931 6398
3ae831b4
AD
63992003-01-13 Akim Demaille <akim@epita.fr>,
6400 Quoc Peyrot <chojin@lrde.epita.fr>,
6401 Robert Anisko <anisko_r@lrde.epita.fr>
6402
6403 * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
6404 when the stacks contain one element, as the loop would otherwise
6405 free the last state, and then use the top state (the one we just
6406 popped). This means that the initial elements will not be freed
6407 explicitly, as is the case in yacc.c; it is not a problem, as
6408 these elements have fake values.
6409
e3aa65c5
PE
64102003-01-11 Paul Eggert <eggert@twinsun.com>
6411
6412 * NEWS: %expect-violations are now just warnings, reverting
6413 to Bison 1.30 and 1.75 behavior. This fixes the GCC 3.2
6414 bootstrapping problem reported by Matthias Klose; see
161a71f3 6415 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
e3aa65c5
PE
6416 * src/conflicts.c (conflicts_print): Likewise.
6417 * tests/conflicts.at (%expect not enough, %expect too much,
6418 %expect with reduce conflicts): Likewise.
6419 * doc/bison.texinfo (Expect Decl): Document this. Also mention
6420 that the warning is enabled if the number of conflicts changes
6421 (not necessarily increases).
6422
6423 * src/getargs.c (version): Update copyright year.
6424
f0057011
AD
64252003-01-09 Akim Demaille <akim@epita.fr>
6426
6427 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
6428
1ee6d2a0
PE
64292003-01-08 Paul Eggert <eggert@twinsun.com>
6430
6431 * Makefile.maint (WGETFLAGS):
6432 New macro, containing "-C off" to disable proxy caches.
6433 All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
6434 (rel-check): Use $(WGET) instead of wget.
6435
d4fd77c4
PE
64362003-01-06 Paul Eggert <eggert@twinsun.com>
6437
6438 * doc/bison.texinfo (Generalized LR Parsing): Add a reference to
6439 the GLR paper of Scott, Johnstone and Hussain.
6440
464c6927
PE
64412003-01-04 Paul Eggert <eggert@twinsun.com>
6442
d600ee67
PE
6443 * configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
6444 (YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
6445 * lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
6446 (EXTRA_LIBRARIES): New var, for liby.a.
6447 * src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
6448 (EXTRA_SCRIPTS): New var, for yacc.
6449
464c6927
PE
6450 * data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
6451 since GNU C++ (as of 3.2.1) does not allow attributes on labels.
6452 Problem reported by Nelson H. F. Beebe.
6453
64542003-01-03 Paul Eggert <eggert@twinsun.com>
6455
6456 * lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
6457 (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
6458 when compiling Bison 1.875's `bitset bset = obstack_alloc
6459 (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe.
6460
6461 * src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
6462 ([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
6463 grow to a huge size with typical invocation.
d600ee67 6464
464c6927
PE
6465 * lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
6466 Use the pattern recommended by Autoconf 2.57, except also protect
6467 against double-definition.
6468 * src/system.h: Likewise.
6469 Portability issues reported by Nelson H. F. Beebe.
d600ee67 6470
464c6927
PE
6471 * data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
6472 All uses changed. Provide a definition in both C and C++.
6473 (yytrue, yyfalse): Define even if defined (__cplusplus).
6474
6475 * lib/bitset_stats.c (bitset_stats_list): Remove unused var.
6476 Reported by Nelson H. F. Beebe.
d600ee67 6477
464c6927
PE
6478 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
6479
0f42c7d5
PE
64802003-01-02 Paul Eggert <eggert@twinsun.com>
6481
6482 * data/yacc.c (yyerrlab1): Append `;' after attribute, to
6483 pacify the buggy "smart preprocessor" in MacOS 10.2.3.
6484 Bug reported by Nelson H. F. Beebe.
6485
dc546b0f
PE
64862003-01-01 Paul Eggert <eggert@twinsun.com>
6487
6488 * Version 1.875.
6489
2c09b6a7
PE
64902002-12-30 Paul Eggert <eggert@twinsun.com>
6491
6492 * src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
6493 Moved here from...
6494 (<INITIAL>","): Here. This causes stray "," to be treated
6495 more uniformly.
6496
dc546b0f 6497 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
2c09b6a7
PE
6498 last brace in braced code when not in Yacc mode, for compatibility
6499 with Bison 1.35. This resurrects the 2001-12-15 patch to
6500 src/reader.c.
6501
6502 * src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
6503 yystype. This follows up the 2002-12-24 YYSTYPE bug fix.
6504
535c0f63
PE
65052002-12-28 Paul Eggert <eggert@twinsun.com>
6506
6507 * src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
6508 that of SYM's type. This fixes Debian bug 168069, reported by
6509 Thomas Olsson.
d600ee67 6510
963fcc17
PE
65112002-12-28 Paul Eggert <eggert@twinsun.com>
6512
6513 Version 1.75f.
6514
6515 Switch back to the Yacc style of conflict reports, undoing some
6516 of the 2002-07-30 change.
6517 * doc/bison.texinfo (Understanding): Use Yacc style for
6518 conflict reports. Also, use new way of locating rules.
6519 * src/conflicts.c (conflict_report):
6520 Renamed from conflict_report_yacc, removing the old
6521 'conflict_report'. Translate the entire conflict report at once,
6522 so that we don't assume that "," has the same interpretation in
6523 all languages.
6524 (conflicts_output): Use Yacc-style conflict report for each state,
6525 instead of our more-complicated style.
6526 (conflicts_print): Use Yacc-style conflict report, except print
6527 the input file name when not emulating Yacc.
6528 * tests/conflicts.at (Unresolved SR Conflicts, Defaulted
6529 Conflicted Reduction, %expect not enough, %expect too much,
6530 %expect with reduce conflicts): Switch to Yacc-style conflict reports.
6531 * tests/existing.at (GNU Cim Grammar): Likewise.
6532 * tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
6533
6534 * src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
6535 fatal): Don't invoke fflush; it's not needed and it might even be
6536 harmful for stdout, as stdout might not be open.
6537 * src/reduce.c (reduce_print): Likewise.
6538
b1efe548
PE
65392002-12-27 Paul Eggert <eggert@twinsun.com>
6540
6541 Fix a bug where error locations were not being recorded correctly.
6542 This problem was originally reported by Paul Hilfinger in
161a71f3 6543 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
b1efe548
PE
6544
6545 * data/yacc.c (yyparse): New local var yylerrsp, to record the
6546 top of the location stack's error locations.
6547 (yyerrlab): Set it. When discarding a token, push its location
6548 onto yylerrsp so that we don't lose track of the error's end.
6549 (yyerrlab1): Now is only the target of YYERROR, so that we can
6550 properly record the location of the action that failed. For GCC
6551 2.93 and later, insert an __attribute__ ((__unused__)) to avoid
6552 GCC warning about yyerrlab1 being unused if YYERROR is unused.
6553 (yyerrlab2): New label, which yyerrlab now falls through to.
6554 Compute the error's location by applying YYLLOC_DEFAULT to
6555 the locations of all the symbols that went into the error.
6556 * doc/bison.texinfo (Location Default Action): Mention that
6557 YYLLOC_DEFAULT is also invoked for syntax errors.
6558 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
6559 Error locations include the locations of all the tokens that were
6560 discarded, not just the last token.
d600ee67 6561
983c5c2c
PE
65622002-12-26 Paul Eggert <eggert@twinsun.com>
6563
b1efe548
PE
6564 * src/files.c: Include quote.h.
6565 (compute_output_file_names): Warn if we detect conflicting
6566 outputs to the same file. This should catch the misunderstanding
6567 exemplified by Debian Bug 165349, reported by Bruce Stephens..
6568
6569 * src/conflicts.c (conflicts_print): If the user specifies
6570 "%expect N", report an error if there are any reduce/reduce
6571 conflicts. This is what the manual says should happen.
6572 This fixes Debian bug 130890, reported by Anthony DeRobertis.
6573 * tests/conflicts.at (%expect with reduce conflicts): New test.
6574
983c5c2c
PE
6575 Don't use m4_include on relative file names, as it doesn't work as
6576 desired if there happens to be a file with that name under ".".
d600ee67 6577
983c5c2c
PE
6578 * m4sugar/version.m4: Remove; it was included but it wasn't used.
6579 * data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
6580 * data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
6581 * data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
6582 * src/output.c (output_skeleton): Use full path names when
6583 specifying a file to include; don't rely on include path, as
6584 it's unreliable when the working file contains a file with
6585 that name.
d600ee67 6586
983c5c2c
PE
65872002-12-25 Paul Eggert <eggert@twinsun.com>
6588
6589 Remove obsolete references to bison.simple and bison.hairy.
6590 Problem mentioned by Aubin Mahe in
161a71f3 6591 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
983c5c2c
PE
6592 * data/glr.c: Comment fix.
6593 * doc/bison.1: Remove references. Also, mention "yacc".
6594
6595 * src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
6596 with -g option.
6597
6598 * src/parse-gram.y (declaration): Use enum "report_states" rather
6599 than its numeric value 1.
6600
6601 * src/scan-skel.l ("@output ".*\n): Close any old yyout before
6602 opening a new one. This fixes Debian bug 165349, reported by
6603 Bruce Stephens.
6604
23f2d9dc
PE
66052002-12-24 Paul Eggert <eggert@twinsun.com>
6606
6607 Version 1.75e.
6608
6609 * Makefile.maint (cvs-update): Don't assume that the shell
6610 supports $(...), as Solaris sh doesn't.
6611
6612 * src/parse-gram.y (lloc_default): Remove test for empty
6613 nonterminals at the end, since it didn't change the result.
6614
66152002-12-24 Paul Eggert <eggert@twinsun.com>
33167b8b
PE
6616
6617 If the user does not define YYSTYPE as a macro, Bison now declares it
6618 using typedef instead of defining it as a macro. POSIX requires this.
6619 For consistency, YYLTYPE is also declared instead of defined.
6620
6621 %union directives can now have a tag before the `{', e.g., the
6622 directive `%union foo {...}' now generates the C code
6623 `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
6624 The default union tag is `YYSTYPE', for compatibility with Solaris 9
6625 Yacc. For consistency, YYLTYPE's struct tag is now `YYLTYPE'
6626 instead of `yyltype'.
6627
6628 `yystype' and `yyltype' are now obsolescent macros instead of being
6629 typedefs or tags; they are no longer documented and will be
6630 withdrawn in a future release.
6631
6632 * data/glr.c (b4_location_type): Remove.
6633 (YYSTYPE): Renamed from yystype.
6634 (YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
6635 (struct YYLTYPE): Renamed from struct yyltype.
6636 (YYLTYPE): Renamed from yyltype.
6637 (yyltype, yystype): New (and obsolescent) macros,
6638 for backward compatibility.
6639 * data/yacc.c: Likewise.
6640
6641 * data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
6642 does not specify a union tag. This is for compatibility with
6643 Solaris 9 yacc.
6644
6645 * src/parse-gram.y (add_param): 2nd arg is now char * not char
6646 const *, since it is now modified by stripping surrounding { }.
6647 (current_braced_code): Remove.
6648 (PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
6649 PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
6650 trailing " {...}". Now of type <chars>.
6651 (grammar_declaration): Adjust to bundled tokens.
6652 (code_content): Remove; stripping is now done by add_param.
6653 (print_token_value): Print contents of bundled tokens.
6654 (token_name): New function.
6655
6656 * src/reader.h (braced_code, current_braced_code): Remove.
6657 (token_name): New decl.
6658
6659 * src/scan-gram.l (handle_dollar, handle_at): Now takes int
6660 token_type, not braced_code code_kind. All uses changed.
6661 (SC_PRE_CODE): New state, for scanning after a keyword that
6662 has (or usually has) an immediately-following braced code.
6663 (token_type): New local var, to keep track of which token type
6664 to return when scanning braced code.
6665 (<INITIAL>"%destructor", <INITIAL>"%lex-param",
dc546b0f 6666 <INITIAL>"%parse-param", <INITIAL>"%printer",
33167b8b
PE
6667 <INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
6668 instead of returning a token type immediately.
6669 (<INITIAL>"{"): Set token type.
6670 (<SC_BRACED_CODE>"}"): Use it.
6671 (handle_action_dollar, handle_action_at): Now returns bool
6672 indicating success. Fail if ! current_rule; this prevents a core dump.
6673 (handle_symbol_code_dollar, handle_symbol_code_at):
6674 Remove; merge body into caller.
6675 (handle_dollar, handle_at): Complain in invalid contexts.
6676
6677 * NEWS, doc/bison.texinfo: Document the above.
6678 * NEWS: Fix years and program names in copyright notice.
6679
879ca4f8
PE
66802002-12-17 Paul Eggert <eggert@twinsun.com>
6681
6682 * NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
6683 Reporting, Table of Symbols): Omit mentions of %lex-param and
6684 %parse-param from the documentation for now.
6685
1c5fe69d
PE
66862002-12-15 Paul Eggert <eggert@twinsun.com>
6687
6688 Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
6689 GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
6690 lookahead symbol, and which sets yychar in parser actions) and it
7ea9026a
PE
6691 disagreed with the Bison documentation. Bug
6692 reported by Andrew Walrond.
d600ee67 6693
1c5fe69d
PE
6694 * data/yacc.c (YYTRANSLATE): Don't check for negative argument,
6695 as the caller now does that.
6696 (yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
6697 (YYEMPTY): Parenthesize right hand side, since others use it.
6698 (yyparse): Don't assume that our generated code is the only code
6699 that sets yychar.
6700
d1de5372
PE
67012002-12-13 Paul Eggert <eggert@twinsun.com>
6702
6703 Version 1.75d.
6704
6705 POSIX requires a "yacc" command.
6706 * src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
6707 (MOSTLYCLEANFILES): Add yacc.
6708 (yacc): New rule.
1c5fe69d 6709 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
d1de5372
PE
6710 as an alias for bison y.
6711
6712 * po/LINGUAS: Add da.
d600ee67 6713
d1de5372
PE
6714 * src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
6715 problem with latest <getopt.h>.
6716 (HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
6717
6718 * doc/fdl.texi: Upgrade to 1.2.
6719 * lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
6720 lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
6721 lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
6722 gnulib.
6723 * config/install-sh: Sync with autotools.
6724
6725 Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
161a71f3 6726 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
d1de5372
PE
6727 * data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
6728 locations are requested.
6729 (union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
6730 locations are requested.
6731
d0f3fe23
PE
67322002-12-12 Paul Eggert <eggert@twinsun.com>
6733
6734 Remove unportable casts and storage allocation tricks.
6735 While we're at it, remove almost all casts, since they
6736 usually aren't needed and are a sign of trouble.
6737
6738 * configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
6739
6740 * src/derives.c (derives_compute): Do not subtract NTOKENS from
6741 the pointer DSET returned by malloc; this isn't portable.
6742 Instead, always use DSET[i - NTOKENS] rather than DSET[i].
6743 Similarly for DERIVES.
6744 * src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
6745 * src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
6746 * src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
6747
6748 * src/derives.c (derives_compute): Do not bother invoking
6749 int_of_rule_number, since rule numbers are integers.
6750
6751 * src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
6752 rather than XMALLOC (char, N).
6753
6754 * src/files.c (filename_split): Rewrite to avoid cast.
6755
6756 * src/gram.h (symbol_number_as_item_number,
6757 item_number_as_symbol_number, rule_number_as_item_number,
6758 item_number_as_rule_number):
6759 Now inline functions rather than macros, to avoid casts.
6760 * src/state.h (state_number_as_int): Likewise.
6761 * src/tables.c (state_number_to_vector_number,
6762 symbol_number_to_vector_number): Likewise.
6763
6764 * src/gram.h (int_of_rule_number): Remove; no longer used.
6765
6766 * src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
6767 since the resulting storage is always stored into.
6768
6769 * src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
6770 where it's needed.
6771
6772 * src/muscle_tab.c (muscle_m4_output):
6773 Now inline. Return bool, not int.
6774 * src/state.c (state_compare): Likewise.
6775 * src/symtab.c (symbol_check_defined,
6776 symbol_check_alias_consistency, symbol_pack, symbol_translation,
6777 hash_compare_symbol, hash_symbol):
6778 Likewise.
6779 * src/uniqstr.c (uniqstr_print): Likewise.
6780 * src/muscle_tab.c (muscle_m4_output_processor):
6781 New function, to avoid casts.
6782 * src/state.c (state_comparator, stage_hasher): Likewise.
6783 * src/symtab.c (symbol_check_defined_processor,
6784 symbol_check_alias_consistency_processor, symbol_pack_processor,
6785 symbol_translation_processor, hash_symbol_comparator,
6786 hash_symbol_hasher): Likewise.
6787 * src/uniqstr.c (uniqstr_print_processor): Likewise.
6788 * src/muscle_tab.c (muscles_m4_output):
6789 Use new functions instead of casting old functions unportably.
6790 * src/state.c (state_hash_new): Likewise.
6791 * src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
6792 symbols_token_translations_init):
6793 Likewise.
6794 * src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
6795
6796 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
6797 var instead of casting to long, to avoid casts.
6798 (prepare_states): Use MALLOC rather than alloca, so that we don't
6799 have to worry about alloca.
6800 * src/state.c (state_hash_lookup): Likewise.
6801
6802 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
6803 local var instead of casting to unsigned char, to avoid casts.
6804
6805 * src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
6806 STATE_ALLOC): Remove.
6807 (transitions_new, errs_new, reductions_new, state_new): Use malloc
6808 rather than calloc, and use offsetof to avoid allocating slightly
6809 too much storage.
6810 (state_new): Initialize all members.
6811
6812 * src/state.c (state_hash): Use unsigned accumulator, not signed.
6813
6814 * src/symtab.c (symbol_free): Remove; unused.
6815 (symbol_get): Remove cast in lhs of assignment.
6816 (symbols_do): Now static. Accept generic arguments, not
6817 hashing-related ones.
6818
6819 * src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
6820 (symbol_processor): Remove.
6821 (symbols_do): Remove decl; now static.
6822
6823 * src/system.h (alloca): Remove; decl no longer needed.
6824 (<stddef.h>): Include, for offsetof.
6825 (<inttypes.>, <stdint.h>): Include if available.
6826 (uintptr_t): New type, if system lacks it.
6827 (CALLOC, MALLOC, REALLOC): New macros.
6828 All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
6829 new macros.
6830
6831 * src/tables.c (table_size): Now int, to pacify GCC.
6832 (table_grow, table_ninf_remap): Use signed table size.
6833 (save_row): Don't bother initializing locals when not needed.
6834 (default_goto, goto_actions, pack_vector): Remove unnecessary casts.
6835 * src/uniqstr.c (hash_compare_uniqstr): Likewise.
6836
6837 * src/vcg.h: Correct misspellings.
6838
6839 * src/vcg_defaults.h (G_CMAX): Now INT_MAX.
6840
6841
6842 * src/getargs.c (getargs): Don't assume EOF == -1.
6843
26b4a969
PE
68442002-12-09 Paul Eggert <eggert@twinsun.com>
6845
6846 Change identifier spellings to avoid collisions with names
6847 that are reserved by POSIX.
6848
6849 Don't use names ending in _t, since POSIX reserves them.
6850 For consistency, remove _e and _s endings -- they're weren't
6851 needed to remove ambiguity. All uses changed.
6852 * src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
6853 turn was just renamed from struniq_t.
6854 * src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
6855 which in turn was just renamed from struniq_processor_t.
6856 (hash_compare_uniqstr): Renamed from hash_compare_struniq, which
6857 in turn was renamed from hash_compare_struniq_t.
6858 * src/LR0.c (struct state_list): Renamed from struct state_list_s.
6859 (state_list): Renamed from state_list_t.
6860 * src/assoc.h (assoc): Renamed from assoc_t.
6861 * src/conflicts.c (enum conflict_resolution): Renamed from
6862 enum conflict_resolution_e.
6863 * src/derives.c (struct rule_list): Renamed from struct rule_list_s.
6864 (rule_list): Renamed from rule_list_t.
6865 * src/getargs.h (enum trace): Renamed from enum trace_e.
6866 (enum report): Renamed from enum report_e.
6867 * src/gram.h (item_number): Renamed from item_number_t.
6868 (rule_number): Renamed from rule_number_t.
6869 (struct rule_s): Remove the "rule_s" part; not used.
6870 (rule): Renamed from rule_t.
6871 (rule_filter): Renamed from rule_filter_t.
6872 * src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
6873 (goto_list): Renamed from goto_list_t.
6874 * src/lalr.h (goto_number): Renamed from goto_number_t.
6875 * src/location.h (location): Renamed from location_t.
6876 * src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
6877 and moved here from:
6878 * src/muscle_tab.h (muscle_entry_t): here.
6879 * src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
6880 (rule_list): Renamed from rule_list_t.
6881 * src/print_graph.c (static_graph): Renamed from graph.
6882 * src/reader.h (braced_code): Renamed from braced_code_t.
6883 Remove brace_code_e tag.
6884 * src/relation.h (relation_node): Renamed from relation_node_t.
6885 (relation_nodes): Renamed from relation_nodes_t.
6886 (relation): Renamed from relation_t.
6887 * src/state.h (state_number): Renamed from state_number_t.
6888 (struct state): Renamed from struct state_s.
6889 (state): Renamed from state_t.
6890 (transitions): Renamed from transitions_t. Unused (and
6891 misspelled) transtion_s tag removed.
6892 (errs): Renamed from errs_t. Unused errs_s tag removed.
6893 (reductions): Renamed from reductions_t. Unused tag
6894 reductions_s removed.
6895 * src/symlist.h (symbol_list): Renamed from symbol_list_t.
6896 (struct symbol_list): Renamed from struct symbol_list_s.
6897 * src/symtab.h (symbol_number): Renamed from symbol_number_t.
6898 (struct symbol): Renamed from struct symbol_s.
6899 (symbol): Renamed from symbol_t.
6900 * src/tables.c (vector_number): Renamed from vector_number_t.
6901 (action_number): Renamed from action_t.
6902 * src/tables.h (base_number): Renamed from base_t.
6903 * src/vcg.h (enum color): Renamed from enum color_e.
6904 (enum textmode): Renamed from enum textmode_e.
6905 (enum shape): Renamed from enum shape_e.
6906 (struct colorentry): Renamed from struct colorentry_s.
6907 (struct classname): Renamed from struct classname_s.
6908 (struct infoname): Renamed from struct infoname_s.
6909 (enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
6910 (enum decision): Renamed from enum decision_e.
6911 (enum orientation): Renamed from enum orientation_e.
6912 (enum alignment): Renamed from enum alignment_e.
6913 (enum arrow_mode): Renamed from enum arrow_mode_e.
6914 (enum crossing_type): Renamed from enum crossing_type_e.
6915 (enum view): Renamed from enum view_e.
6916 (struct node): Renamed from struct node_s.
6917 (node): Renamed from node_t.
6918 (enum linestyle): Renamed from enum linestyle_e.
6919 (enum arrowstyle): Renamed from enum arrowstyle_e.
6920 (struct edge): Renamed from struct edge.
6921 (edge): Renamed from edge_t.
6922 (struct graph): Renamed from struct graph_s.
6923 (graph): Renamed from graph_t.
6924 * tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
6925 Rename value_t -> value.
6926 * tests/input.at (Torturing the Scanner): Rename value_t -> value,
6927 value_t_as_yystype -> value_as_yystype.
6928
6929 Don't include <errno.h> in the mainstream code, since it
6930 reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
6931 * lib/get-errno.c, lib/get-errno.h: New files.
6932 * lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
6933 get-errno.c.
6934 * src/files.c (xfopen, xfclose): Use get_errno instead of errno.
6935 * src/output.c (output_skeleton): Likewise.
6936 * src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
6937 instead of errno.
6938 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
6939 Likewise.
6940 (handle_action_dollar, handle_action_at): Likewise.
6941 * src/system.h: Do not include <errno.h>.
6942 (TAB_EXT): Renamed from EXT_TAB.
6943 (OUTPUT_EXT): Renamed from EXT_OUTPUT.
6944
6945 Avoid str[a-z]*, since <string.h> reserves that name space.
6946 Change all instances of "struniq" in names to "uniqstr", and
6947 likewise for "STRUNIQ" and "UNIQSTR".
6948 * src/uniqstr.c: Renamed from src/struniq.c.
6949 * src/uniqstr.h: Renamed from src/struniq.h.
6950 * src/Makefile.am (bison_SOURCES): Adjust to these renamings.
6951 * src/files.c (strsuffix): Remove; unused.
6952 (concat2): Renamed from stringappend. Now static.
6953 * src/files.h (strsuffix, stringappend): Remove; unused.
6954 * src/parse-gram.y (<chars>): Renamed from <string>.
6955 (<uniqstr>): Renamed from <struniq>.
6956 * src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
6957 * src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
6958 (struct graph_s.expand): Renamed from struct graph_s.stretch.
6959 * src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
6960 (G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
6961 (N_EXPAND): Renamed from N_STRETCH.
6962
6963 Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
6964 * data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
6965 * src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
6966 Remove; unused.
6967 * src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
6968 * src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
6969 * src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
6970 * src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
6971 (BASE_MAXIMUM): Renamed from BASE_MAX.
6972 (BASE_MINIMUM): Renamed from BASE_MIN.
6973 (ACTION_MAX): Remove; unused.
6974 (ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
6975 Unnecessary casts removed from above defines.
6976
6977
6978 Fix misspelling in names.
6979 * src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
6980 * src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
6981 G_NODE_ALIGNEMENT.
6982
6983
6984 * lib/timevar.c (timevar_report): Renamed from time_report,
6985 for consistency with other names.
6986 * lib/timevar.h (timevar_report): New decl.
6987 * src/system.h (time_report): Remove; decl is now in lib/timevar.h.
6988
6989
6990 Sort include-file uses.
6991
6992 Reorder all include files under src to be in the order "system.h".
6993 then the ../lib include files in angle brackets (alphabetized),
6994 then the . include files in double-quotes (alphabetized). Fix
6995 dependency breakages encountered in this process, as follows:
6996 * src/closure.h, src/derives.h, src/state.h: Include "gram.h".
6997 * src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
6998 * src/state.h: Include "symtab.h".
6999
996b1c7e
PE
70002002-12-08 Paul Eggert <eggert@twinsun.com>
7001
7002 * data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
7003 since this causes problems when __file__ contains character
7004 sequences like "@" that are treated specially by src/scan-skel.l.
7005 Instead, just use the file's basename. This fixes the bug
7006 reported by Martin Mokrejs in
161a71f3 7007 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
996b1c7e 7008
e19c4e5d
PE
70092002-12-06 Paul Eggert <eggert@twinsun.com>
7010
7011 Add support for rules that do not have trailing semicolons, as
7012 POSIX requires. Improve the quality of locations in Bison
7013 diagnostics.
26b4a969 7014
e19c4e5d
PE
7015 * src/location.c: Include <quotearg.h>.
7016 (empty_location): Now const.
7017 (location_print): New function. Follow the recommendation of the
7018 GNU Coding Standards for locations that span file boundaries.
7019 * src/location.h: Do not include <quotearg.h>; no longer needed.
7020 (boundary): New type.
7021 (location_t): Use it. This allows locations to span file boundaries.
7022 All member uses changed: file -> start.file or end.file (as needed),
7023 first_line -> start.line, first_column -> start.column,
7024 last_line -> end.line, last_column -> end.column.
7025 (equal_boundaries): New function.
7026 (LOCATION_RESET, LOCATION_STEP): Remove.
7027 (LOCATION_PRINT): Remove. All callers changed to use location_print.
7028 (empty_location): Now const.
7029 (location_print): New decl.
7030 * src/parse-gram.y (lloc_default): New function, which handles
7031 empty locations more accurately.
7032 (YYLLOC_DEFAULT): Use it.
7033 (%token COLON): Remove.
7034 (%token ID_COLON): New token.
26b4a969 7035 (rules): Use it.
e19c4e5d
PE
7036 (declarations, rules): Remove trailing semicolon.
7037 (declaration, rules_or_grammar_declaration):
7038 Allow empty (";") declaration.
7039 (symbol_def): Remove empty actions; no longer needed.
7040 (rules_or_grammar_declaration): Remove trailing semicolon.
7041 (semi_colon.opt): Remove.
7042 * src/reader.h: Include location.h.
7043 (scanner_cursor): New decl.
7044 * src/reduce.c (nonterminals_reduce): Use warn_at rather than
7045 rolling our own.
7046 * src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
7047 of *loc.
7048 (STEP): Remove. No longer needed, now that adjust_location does
7049 the work. All uses removed.
7050 (scanner_cursor): New var.
7051 (adjust_location): Renamed from extend_location. It now sets
7052 *loc and adjusts the scanner cursor. All uses changed.
7053 Don't bother testing for CR.
7054 (handle_syncline): Remove location arg; now updates scanner cursor.
7055 All callers changed.
7056 (unexpected_end_of_file): Now accepts start boundary of token or
7057 comment, not location. All callers changed. Update scanner cursor,
7058 not the location.
7059 (SC_AFTER_IDENTIFIER): New state.
7060 (context_state): Renamed from c_context. All uses changed.
7061 (id_loc, code_start, token_start): New local vars.
7062 (<INITIAL,SC_AFTER_IDENTIFIER>): New initial context. Move all
7063 processing of Yacc white space and equivalents here.
7064 (<INITIAL>{id}): Save id_loc. Begin state SC_AFTER_IDENTIFIER
7065 instead of returning ID immediately, since we need to search for
7066 a subsequent colon.
7067 (<INITIAL>"'", "\""): Save token_start.
7068 (<INITIAL>"%{", "{", "%%"): Save code_start.
7069 (<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
7070 (<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
7071 BEGIN context_state at end, not INITIAL.
7072 (<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
7073 <SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
7074 Return correct token start.
7075 (<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
7076 the start of a character, string or multiline comment is found.
7077 * tests/conflicts.at (S/R in initial, Defaulted Conflicted
7078 Reduction): Adjust reported locations to match the more-precise
7079 results now expected.
7080 * tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
7081 * tests/reduce.at (Useless Rules, Reduced Automaton,
7082 Underivable Rules): Likewise.
7083 * tests/regression.at (Invalid inputs): No longer `expecting ";"
7084 or "|"' now that so many other tokens are allowed by the new grammar.
7085
7086 * src/complain.h (current_file): Remove duplicate decl;
7087 current_file is now owned by files.h.
7088 * src/complain.c, src/scan-gram.l: Include files.h.
7089
70902002-12-06 Paul Eggert <eggert@twinsun.com>
26b4a969 7091
e19c4e5d
PE
7092 * data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
7093 promotes to int; it might be unsigned int.
7094 * data/yacc.c (yy_reduce_print): Likewise.
7095
7096 * doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
7097 be #defined in the prologue, not in the Bison declarations.
7098 This fixes Debian Bug 102878, reported by Shaul Karl.
26b4a969 7099
b64755e3
PE
71002002-12-02 Paul Eggert <eggert@twinsun.com>
7101
7102 * configure.ac (AC_REPLACE_FUNCS): Add strtoul.
7103 * lib/strtoul.c: New file, from gnulib.
7104 This fixes a porting bug reported by Peter Klein in
161a71f3 7105 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
b64755e3 7106
6e746484
PE
71072002-11-30 Paul Eggert <eggert@twinsun.com>
7108
b64755e3
PE
7109 * src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
7110 and put only a forward declaration in the prologue. This is for
7111 consistency with the other scanner helper functions.
7112
6ba55592
PE
7113 Type clashes now generate warnings, not errors, since it
7114 appears that POSIX may allow some grammars with type clashes.
7115 * src/reader.c (grammar_current_rule_check): Warn about
7116 type clashes instead of complaining.
7117 * tests/input.at (Type Clashes): Expect warnings, not complaints.
7118
6e746484
PE
7119 Add Yacc library, since POSIX requires it.
7120 * doc/bison.texinfo (Yacc Library): New node. Regenerate top menu.
7121 * lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
7122 * lib/main.c, lib/yyerror.c: New files.
7123
7124 gram_error can be static; it need not be extern.
7125 * src/reader.h (gram_error): Remove decl.
7126 * src/parse-gram.y (gram_error): Now static. Add static decl.
7127 (print_token_value): Omit parameter names from forward decl,
7128 for consistency.
7129
88510f9c
PE
71302002-11-29 Paul Eggert <eggert@twinsun.com>
7131
6e746484
PE
7132 * doc/bison.texinfo: Emphasize that yylex and yyerror must
7133 be declared before being used. E.g., one should typically
7134 declare them in the prologue. Use GNU coding style in examples.
7135 Put "const" consistently after the type it modifies. Mention
7136 that C99 supports "inline". Mention that yyerror traditionally
7137 returns "int".
7138
88510f9c
PE
7139 %parse-param and %lex-param now take just one argument, the
7140 declaration; the argument name is deduced from the declaration.
7141
7142 * doc/bison.texinfo (Parser Function, Pure Calling, Error
7143 Reporting, Table of Symbols): Document this.
7144 * src/parse-gram.y (add_param): New function.
7145 (COMMA): Remove.
7146 (declaration): Implement new rule for %parse-param and %lex-param.
7147 * src/scan-gram.l: "," now elicits a warning, rather than being
7148 a token; this is more compatible with byacc.
7149 * tests/calc.at (Simple LALR Calculator): Adopt new convention.
7150
bb92250c
PE
71512002-11-27 Paul Eggert <eggert@twinsun.com>
7152
7153 Rename identifiers to avoid real and potential collisions.
7154
7155 * data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
7156 to avoid collision with lex macro described by Bruce Lilly in
161a71f3 7157 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
bb92250c
PE
7158 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
7159 * doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
7160 * src/parse-gram.y (print_token_value): Renamed from yyprint.
7161 All uses changed.
7162 (YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
7163 The name "yycontrol" violates the name space rules, and this stuff
7164 wasn't being used anyway.
7165 (input): Remove action; this stuff wasn't being used.
7166 (gram_error): Rename local variable yylloc -> loc.
7167 * src/reader.h (struct gram_control_s, gram_control_t): Remove.
7168 (YY_DECL): Don't use "yy" at start of local variables.
7169 All uses changed, e.g., yylloc -> loc.
7170 * src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
7171 (STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
7172 (STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
7173 (STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
7174
7175 * src/parse-gram.y (gram_error): loc is now const *.
7176 * src/reader.h (gram_error): Likewise.
7177
3af4feb2
PE
71782002-11-24 Paul Eggert <eggert@twinsun.com>
7179
7180 Version 1.75c.
7181
7182 * tests/actions.at (Actions after errors): Use an output format
7183 more similar to that of the Printers and Destructors test.
7184 Test the position of the ';' token too.
7185 (Printers and Destructors): Likewise.
7186 (Printers and Destructors: %glr-parser): Remove for now, to avoid
7187 unnecessarily alarming people when the test fails.
7188
7189 * data/yacc.c (yyerrlab1): Move this label down, so that the
7190 parser does not discard the lookahead token if the user code
7191 invokes YYERROR. This change is required for POSIX conformance.
7192
7193 * lib/error.c: Sync with gnulib.
7194
71952002-11-22 Paul Eggert <eggert@twinsun.com>
7196
7197 * lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
7198 * lib/mbswidth.c, lib/mbswidth.h: Likewise.
7199 * lib/xmalloc.c: Likewise.
26b4a969 7200
58004308
PE
72012002-11-20 Paul Eggert <eggert@twinsun.com>
7202
7203 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
7204
72052002-11-20 Paul Eggert <eggert@twinsun.com>
26b4a969 7206
58004308
PE
7207 Avoid use of <assert.h>, as the GNU Coding Standards hint that one
7208 should use `if (! x) abort ();' rather than `assert (x);', and
7209 anyway it's one less thing to worry about configuring.
7210
7211 * data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
7212 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
7213 and replace all instances of assert with abort.
7214 * tests/calc.at (_AT_DATA_CALC_Y): Likewise.
7215 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
7216
7217 * data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
7218 yyresolveAction, yyprocessOneStack): Use abort rather than assert.
7219 * lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
7220 hash_find_entry, hash_rehash, hash_insert): Likewise.
7221 * src/conflicts.c (resolve_sr_conflict): Likewise.
7222 * src/lalr.c (set_goto_map, map_goto): Likewise.
7223 * src/nullable.c (nullable_compute): Likewise.
7224 * src/output.c (prepare_rules, token_definitions_output): Likewise.
7225 * src/reader.c (packgram, reader): Likewise.
7226 * src/state.c (state_new, state_free, state_transitions_set,
7227 state_reduction_find): Likewise.
7228 * src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
7229 symbol_pack): Likewise.
7230 * src/tables.c (conflict_row, pack_vector): Likewise.
7231 * src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
7232 get_layoutalgorithm_str, get_decision_str, get_orientation_str,
7233 get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
7234 get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
7235
7236 * lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
7237 (ARGMATCH_CONSTRAINT): New macro.
7238 (ARGMATCH_ASSERT): Use it.
7239
7240 * src/system.h (verify): New macro.
7241 * src/getargs.c (trace_argmatch, report_argmatch): Use verify
7242 rather than assert.
7243 * src/tables.c (tables_generate): Likewise.
7244
7245 * src/struniq.c (struniq_assert): Now returns void, and aborts
7246 if the assertion is false.
7247 (struniq_assert_p): Remove.
7248 * src/struniq.h: Likewise.
7249
76ae8198
PE
72502002-11-18 Paul Eggert <eggert@twinsun.com>
7251
7252 * data/glr.c (yygetLRActions): Replace `yyindex' with
7253 `yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
7254 This fixes the regression with Sun ONE Studio 7 cc that I reported in
161a71f3 7255 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
76ae8198 7256
d3c4e709
AD
72572002-11-18 Akim Demaille <akim@epita.fr>
7258
7259 * doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
7260 space.
7261 From Tim Van Holder.
7262
8d8a7238
PE
72632002-11-17 Paul Eggert <eggert@twinsun.com>
7264
7265 Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
7266 to "SyntaxError" for consistency with my 2002-11-15 change.
7267
7268 * data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
7269 not define to {}, since this breaks the common use of `YYDPRINTF
7270 ((...));' if a single statement is desired (e.g. before `else').
7271 Work around GCC warnings by surrounding corresponding calls with
7272 {} if needed.
7273 (yyhasResolvedValue): Remove unused function.
7274 (yymergeOptionSets, yyresolvStack): Use `continue;' for empty
7275 loop body.
7276 (yyreportSyntaxError): Renamed from yyreportParseError.
7277 (yyrecoverSyntaxError): Renamed from yyrecoverParseError.
7278 All uses changed.
7279 * tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
7280 extern when possible. Remove unused initializations.
7281
b0937b22
AD
72822002-11-16 Akim Demaille <akim@epita.fr>
7283
7284 Augment the similarity between GLR and LALR traces.
7285
7286 * data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
7287 (YY_REDUCE_PRINT): New.
7288 (yyparse): Use them.
7289 * data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
7290 YYDPRINT here.
7291 (yyglrReduce, yyrecoverParseError, yyparse): Don't report the
7292 state reached after the reduction/recovery, since...
7293 (yyparse, yyprocessOneStack): Report the state we are entering in.
7294
c5e3e510
AD
72952002-11-16 Akim Demaille <akim@epita.fr>
7296
7297 * src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
7298 Add support for --trace=skeleton.
7299 * src/scan-skel.l: %option debug.
7300 Scan strings of non-@ or \n instead of character by character.
7301 (scan_skel): Handle trace_skeleton.
7302 (QPUTS): New.
7303 (@output_parser_name@, @output_header_name@): ``Restore'' their
7304 support (used to be M4 macros).
7305 * data/yacc.c: Quote larger chunks, a la glr.c.
7306 * data/lalr1.cc: Likewise.
7307 The header guards are no longer available, so use some other
7308 string than `YYLSP_NEEDED'.
7309
4c6cc1db
AD
73102002-11-16 Akim Demaille <akim@epita.fr>
7311
7312 Make the ``Printers and Destructors'' test more verbose, taking
7313 `yacc.c''s behavior as (possibly wrong) reference.
7314
7315 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
7316 instead of fprint on stdout.
7317 Set and report the last_line of the symbols.
7318 Consistently display values and locations.
7319
6d9e8019
PE
73202002-11-16 Paul Eggert <eggert@twinsun.com>
7321
7322 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
7323
6e649e65
PE
73242002-11-15 Paul Eggert <eggert@twinsun.com>
7325
b25d88f6
PE
7326 * tests/actions.at (Actions after errors): New test case.
7327
6e649e65
PE
7328 * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
7329 src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
7330 tests/action.at, tests/calc.at, tests/conflicts.at,
7331 tests/cxx-type.at, tests/regression.at:
7332 "parse error" -> "syntax error" for POSIX compatibility.
7333 "parsing stack overflow..." -> "parser stack overflow" so
7334 that code matches Bison documentation.
7335
0f39aab9
AD
73362002-11-15 Akim Demaille <akim@epita.fr>
7337
7338 * src/parse-gram.y (declaration): Have %parse-param and %lex-param
7339 take two BRACED_CODE, not two string_content.
7340 Free the scanner's obstack when we are done.
7341 (code_content): New.
7342 * tests/calc.at: Adjust.
7343 * doc/bison.texinfo: Adjust.
7344 Also, make sure to include the `,' for these declarations.
7345
761c1926
AD
73462002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
7347
7348 * m4/prereq.m4: Removed the commented jm_PREREQ_HASH
7349 definition; avoids potential autoreconf problems.
7350
b0f98b10
AD
73512002-11-15 Akim Demaille <akim@epita.fr>
7352
7353 Always check the value returned by yyparse.
7354
7355 * tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
7356 returned by yyparse.
7357 (_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
7358 Adjust calls.
7359 * tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
7360 returned by yyparse.
7361
970785f1
PH
73622002-11-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7363
7364 * data/glr.c (yyFail): Always set yyerrflag. Corrects regression
7365 on input.at test.
7366
8fcc7db1
PE
73672002-11-14 Paul Eggert <eggert@twinsun.com>
7368
7ec1b48e
PE
7369 * src/output.c (output_skeleton): Call xfopen instead of
7370 duplicating xfopen's body.
7371
cfff7583 7372 Fix bugs reported by Nelson H. F. Beebe in
161a71f3 7373 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
cfff7583 7374
8fcc7db1
PE
7375 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
7376 "$CC -E foo.h" is allowed, as this doesn't work with the Portland
7377 Group compiler. Instead, use "$CC -E bar.c". Include the .h
7378 file twice in the grammar, as an extra check.
7379
7380 * tests/input.at (Torturing the Scanner): Surround the
7381 backslash-newline tests with "#if 0", to make it less likely that
7382 we'll run into compiler bugs. Bring back solitary \ inside
7383 comment, but add a closing comment to work around HP C bug. Don't
e3aa65c5 7384 test backslash-newline in C character constant.
8fcc7db1 7385
4e8d992c
AD
73862002-11-14 Akim Demaille <akim@epita.fr>
7387
7388 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
7389 status of the compiler.
f32b346d 7390 Calling `exit 1' is no longer needed.
4e8d992c
AD
7391 Reported by Nelson H. F. Beebe.
7392
9501dc6e
AD
73932002-11-14 Akim Demaille <akim@epita.fr>
7394
7395 * tests/atlocal.in (CPPFLAGS): We have config.h.
7396 * tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
7397 New.
7398 * tests/actions.at, tests/calc.at, tests/conflicts.at,
7399 * tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
7400 * tests/regression.at, tests/torture.at: Use them for all the
7401 grammars that are to be compiled.
7402 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
7403 * tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
7404 * doc/bison.texinfo (GLR Parsers): Document `inline'.
7405
18b519c0
AD
74062002-11-14 Akim Demaille <akim@epita.fr>
7407
7408 * doc/bison.texinfo: Various formatting changes (alignments in
7409 samples, additional @group/@end group, GCS in samples.
7410 Use @deffn instead of simple @table to define the directives,
7411 macros, variables etc.
7412
9a86cdb9
PE
74132002-11-13 Paul Eggert <eggert@twinsun.com>
7414
daa33def 7415 Fix some bugs reported by Albert Chin-A-Young in
161a71f3 7416 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
18b519c0 7417
daa33def 7418 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
8fcc7db1 7419 -o c"; the HP C compiler chatters during compilation.
daa33def
PE
7420 Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
7421 * tests/headers.at (export YYLTYPE): Likewise.
7422
7423 * tests/input.at (Torturing the Scanner): Remove lines containing
8fcc7db1 7424 solitary backslashes, as they tickle a bug in the HP C compiler.
daa33def 7425
9a86cdb9
PE
7426 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
7427 comments, since they're not portable. Use GNU coding style.
7428
9c1e26bd
AD
74292002-11-13 Akim Demaille <akim@epita.fr>
7430
7431 * data/yacc.c: Leave bigger chunks of quoted text.
7432 (YYDSYMPRINTF): New.
7433 Use it to report symbol activities.
7434 * data/glr.c (YYDSYMPRINTF): New.
7435 Use it.
7436
87f721cc
PE
74372002-11-12 Paul Eggert <eggert@twinsun.com>
7438
7439 Version 1.75b.
7440
7441 * data/glr.c (yydoAction): Return YYRESULTTAG, not int.
7442 (yyglrReduce): Return yyok, not 0.
7443 This should avoid the enumerated-type warnings reported
464c6927 7444 by Nelson H. F. Beebe in
161a71f3 7445 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
87f721cc
PE
7446
7447 * lib/bbitset.h (BITSET_INLINE): Remove.
7448 * lib/bitset.h [! BITSET_INLINE]: Remove.
7449 (bitset_set, bitset_reset, bitset_test): Rename local vars
7450 to avoid shadowing warnings by GCC.
7451
7452 * data/glr.c (inline): Remove #define. It's the user's
7453 responsibility to #define it away, just like 'const'.
464c6927 7454 This fixes one of the bugs reported by Nelson H. F. Beebe in
161a71f3 7455 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
18b519c0 7456
87f721cc
PE
7457 * Makefile.maint (po-check): Scan .l and .y files instead of the
7458 .c and the .h files that they generate. This fixes the bug
7459 reported by Tim Van Holder in:
161a71f3 7460 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
87f721cc
PE
7461 Look for N_ as well as for _. Try to avoid matching #define for
7462 N_ and _.
7463 * po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
7464 src/system.h. Add src/parse-gram.y, src/scan-gram.l.
7465 * src/scan-gram.l: Revamp regular expressions so that " and '
7466 do not confuse xgettext.
7467
7468 * src/struniq.h (struniq_new): Do not declare the return type
7469 to be 'const'; this violates the C standard.
7470 * src/struniq.c (struniq_new): Likewise.
7471
be14ade5
AD
74722002-11-12 Albert Chin-A-Young <china@thewrittenword.com>
7473
7474 * src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
7475 duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
7476 linker.
7477
05291fbc
AD
74782002-11-12 Akim Demaille <akim@epita.fr>
7479
7480 * Makefile.maint: Sync with Autoconf:
7481 (local_updates): New.
7482
1f5fd52e
AD
74832002-11-12 Akim Demaille <akim@epita.fr>
7484
7485 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
7486
283f1e64
AD
74872002-11-12 Akim Demaille <akim@epita.fr>
7488
7489 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
7490 locations.
7491
886b69d1
AD
74922002-11-12 Akim Demaille <akim@epita.fr>
7493
7494 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
7495 not yyvalue.
7496
3df37415
AD
74972002-11-12 Akim Demaille <akim@epita.fr>
7498
7499 * tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
7500 Use it to test the GLR parser.
7501
7bd6c77e
AD
75022002-11-12 Akim Demaille <akim@epita.fr>
7503
7504 * tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
7505 defines it.
7506 * data/glr.c (yystos): New.
7507 (b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
7508 (YYDSYMPRINT): New.
7509 (yyval): Don't define it, it is handled via M4.
7510 (yyrecoverParseError): Free verbosely the discarded symbols.
7511 * data/yacc.c (yysymprint): Remove, rather...
7512 (b4_yysymprint_generate): invoke.
7513 * data/c.m4 (b4_yysymprint_generate): New.
7514 Accept pointers as arguments, as opposed to the version from
7515 yacc.c.
7516 (b4_yydestruct_generate): Likewise.
7517 * tests/cations.at (Printers and Destructors): Use Bison directives
7518 instead of CPP macros.
7519 Don't rely on internal details.
7520
b0400cc6
AD
75212002-11-12 Akim Demaille <akim@epita.fr>
7522
7523 * data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
7524 * data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
7525 Don't work on yychar (i.e., do set it to YYEMPTY, don't match
7526 it against YYEMPTY and so forth), work on yytoken (i.e., set
7527 it to YYEMPTY etc.).
7528 (yydestruct): Replace with a b4_yydestruct_generate invocation.
7529 (b4_symbol_actions): Remove.
7530 * data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
7531 for 0, end-of-input.
7532
72f889cc
AD
75332002-11-12 Akim Demaille <akim@epita.fr>
7534
7535 * doc/bison.texinfo (Destructor Decl): New.
7536
b1ae9233
AD
75372002-11-12 Akim Demaille <akim@epita.fr>
7538
7539 * src/tables.c (tables_generate): Use free for pointers that
7540 cannot be NULL, not XFREE.
7541 (pack_vector): Use assert, not fatal, for bound violations.
7542 * src/state.c (state_new): Likewise.
7543 * src/reader.c (reader): Likewise.
7544 * src/lalr.c (set_goto_map): Likewise.
72f889cc 7545 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
b1ae9233
AD
7546 the file name.
7547
7ec2d4cd
AD
75482002-11-12 Akim Demaille <akim@epita.fr>
7549
7550 * src/scan-gram.l, src/reader.h (scanner_last_string_free):
7551 Restore.
7552 * src/scan-gram.l (last_string): Is global to the file, not to
7553 yylex.
7554 * src/parse-gram.y (input): Don't append the epilogue here,
7555 (epilogue.opt): do it here, and free the scanner's obstack.
7556 * src/reader.c (epilogue_set): Rename as...
7557 (epilogue_augment): this.
7558 * data/c.m4 (b4_epilogue): Defaults to empty.
7559
573a6cd3
AD
75602002-11-12 Akim Demaille <akim@epita.fr>
7561
7562 * src/getargs.c (long_options): Remove duplicates.
7563 * src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
7564 Remove.
7565 * doc/bison.rnh: Remove.
7566 * doc/bison.texinfo (VMS Invocation): Remove.
7567
95612cfa
AD
75682002-11-12 Akim Demaille <akim@epita.fr>
7569
7570 * src/struniq.h, src/struniq.c (struniq_t): Is const.
7571 (STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
7572
7573 Use struniq for symbols.
7574
7575 * src/symtab.h (symbol_t): The tag member is a struniq.
7576 (symbol_type_set): Adjust.
7577 * src/symtab.c (symbol_new): Takes a struniq.
7578 (symbol_free): Don't free the tag member.
7579 (hash_compare_symbol_t, hash_symbol_t): Rename as...
7580 (hash_compare_symbol, hash_symbol): these.
7581 Use the fact that tags as struniqs.
7582 (symbol_get): Use struniq_new.
7583 * src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
7584 Returns a strniq.
7585 * src/reader.h (merger_list, grammar_currentmerge_set): The name
7586 and type members are struniqs.
7587 * src/reader.c (get_merge_function)
7588 (grammar_current_rule_merge_set): Adjust.
7589 (TYPE, current_type): Are struniq.
7590
7591 Use struniq for file names.
7592
7593 * src/files.h, src/files.c (infile): Split into...
7594 (grammar_file, current_file): these.
7595 * src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
7596 * src/reduce.c (reduce_print): Likewise.
7597 * src/getargs.c (getargs): Likewise.
7598 * src/complain.h, src/complain.c: Likewise.
7599 * src/main.c (main): Call struniqs_new early enough to use it for
7600 file names.
7601 Don't free the input file name.
7602
3e6656f9
AD
76032002-11-12 Akim Demaille <akim@epita.fr>
7604
7605 * src/symtab.c (symbol_free): Remove dead deactivated code:
7606 type_name are properly removed.
7607 Don't use XFREE to free items that cannot be NULL.
7608 * src/struniq.h, src/struniq.c: New.
7609 * src/main.c (main): Initialize/free struniqs.
7610 * src/parse-gram.y (%union): Add astruniq member.
7611 (yyprint): Adjust.
7612 * src/scan-gram.l (<{tag}>): Return a struniq.
7613 Free the obstack bit that used to store it.
7614 * src/symtab.h (symbol_t): The 'type_name' member is a struniq.
7615
7672019c
PE
76162002-11-11 Paul Eggert <eggert@twinsun.com>
7617
7618 Revamp to fix many (but not all) of the C- and M4-related quoting
7619 problems. Among other things, this fixes the Bison bug reported
7620 by Jan Hubicka when processing the Bash grammar; see:
161a71f3 7621 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
7672019c
PE
7622
7623 Use new @ escapes consistently. Represent brackets with @{ and @}
7624 rather than @<:@ and @:>@, since this works a bit better with dumb
7625 editors like vi. Represent @ with @@, since @ is now consistently
7626 an escape. Use @oline@ and @ofile@ rather than __oline__ and
7627 __ofile__, to avoid unexpected expansions. Similarly, use @output
7628 rather than #output.
7629
7630 * data/c.m4 (b4_copyright): Omit file name from comment, since
7631 the file name could contain "*/".
7632 (b4_synclines_flag): Don't quote the 2nd argument; it should already
7633 be quoted. All uses changed.
7634
7635 * data/glr.c: Use new @ escapes consistently.
7636 (b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
7637 b4_output_header_suffix, b4_output_header_name, b4_header_guard):
7638 Remove, since they couldn't handle arbitrary characters in file
7639 names.
7640 * data/lalr1.cc: Likewise.
7641 * data/yacc.c: Likewise.
7642
7643 * src/files.c (output_infix): Remove; all uses removed.
7644 * src/files.h: Likewise.
7645
7646 * data/glr.c: Remove use of "#ifdef b4_header_guard", since it
7647 mishandled funny characters in file names, and anyway it isn't
7648 needed any more.
7649 * data/yacc.c: Likewise.
7650 * data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
7651
7652 * data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
7653 * data/yacc.c: Likewise.
7654
7655 * src/muscle_tab.c: Include quotearg.h, since we need to quote C
7656 strings now.
7657 (muscle_init): Quote filename as a C string.
7658 * src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
7659 (MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
7660 * src/output.c (escaped_file_name_output): New function.
7661 (prepare_symbols): Quote tokens for M4.
7662 (prepare): Don't insert output_infix, output_prefix,
7663 output_parser_name, output_header_name; this is now down by scan-skel.
7664 Insert skeleton as a C string.
7665
7666 * src/output.c (user_actions_output, symbol_destructors_output,
7667 symbol_printers_output): Quote filenames for C and M4.
7668 * src/reader.c (prologue_augment, epilogue_set): Likewise.
7669
7670 * src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
7671 escapes other than \\ and \'; this simplifies the code.
7672 (<SC_STRING>): Likewise, for \\ and \".
7673 (<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
7674 SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
7675 Use new escapes @{ and @} for [ and ].
7676
7677 * src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
7678 them with auto vars.
7679 Switch to new escape scheme, where @ is the escape character uniformly.
7680 Abort if a stray escape character is found. Avoid unbounded input
7681 buffer when parsing non-escaped text.
7682
7683 * tests/input.at (Torturing the Scanner): Add tests that @oline@,
7684 __oline__, #output, $@, and @{ do not have unintended meanings.
7685
acea4f3b
PE
76862002-11-09 Paul Eggert <eggert@twinsun.com>
7687
7688 Fix the test failure due to GCC warnings described in
161a71f3 7689 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
acea4f3b
PE
7690 * data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
7691 evaluate to 0 if it's impossible for NINF to be in the respective
7692 table.
7693 (yygetLRActions, yyrecoverParseError): Use them.
7694
7695 * src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
7696 counted in the token inserted at end of file. Now takes
7697 location_t *, not location_t, so that the location can be
7698 adjusted. All uses changed.
7699
7700 * tests/regression.at (Invalid inputs): Adjust wording in
7701 diagnostic to match the new behavior.
7702
7703 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
7704 AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
7705 AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
7706 abort ();'. This reduces the runtime of the "Many lookaheads"
7707 test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
7708 GCC 3.2.
7709
20ef1ad5
PE
77102002-11-07 Paul Eggert <eggert@twinsun.com>
7711
7712 * src/parse-gram.y (CHARACTER): Remove unused token.
7713 All uses removed.
7714
7715 * src/scan-gram.l: Remove stack option. We no longer use the
7716 stack, since the stack was never deeper than 1; instead, use the
7717 new auto var c_context to record the stacked value.
7718
7719 Remove nounput option. At an unexpected end of file, we now unput
7720 the minimal input necessary to end cleanly; this simplifies the
7721 code.
7722
7723 Avoid unbounded token sizes where this is easy.
7724
7725 (unexpected_end_of_file): New function.
7726 Use it to systematize the error message on unexpected EOF.
7727 (last-string): Now auto, not static.
7728 (YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
7729 (scanner_last_string_free): Remove; not used.
7730 (percent_percent_count): Move decl to just before use.
7731 (SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
7732 not the (never otherwised-used) CHARACTER.
7733
93724f13
AD
77342002-11-07 Akim Demaille <akim@epita.fr>
7735
7736 Let yyerror always receive the msg as last argument, so that
7737 yyerror can be variadic.
7738
7739 * data/yacc.c (b4_yyerror_args): New.
7740 Use it when calling yyerror.
7741 * data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
7742 Use it when calling yyerror.
7743 * doc/bison.texinfo (Error Reporting): Adjust.
7744 * tests/calc.at (_AT_DATA_CALC_Y): Adjust.
7745 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
7746
6e40b4eb
AD
77472002-11-06 Akim Demaille <akim@epita.fr>
7748
7749 #line should have quoted strings.
7750 Ideally, this should be done by m4_quotearg.
7751
7752 * src/scan-skel.l: Include quotearg.h.
7753 Quote __ofile__.
7754 * src/output.c (symbol_printers_output)
7755 (symbol_destructors_output): Quote the file name.
7756
2dfbfc12
AD
77572002-11-06 Akim Demaille <akim@epita.fr>
7758
7759 * tests/regression.at (Invalid inputs): Adjust to the recent
7760 messages.
7761
437c2d80
AD
77622002-11-06 Akim Demaille <akim@epita.fr>
7763
7764 Restore --no-lines.
7765 Reported by Jim Kent.
7766
7767 * data/c.m4 (b4_syncline): New.
7768 * data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
7769 * src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
7770 * src/output.c (user_actions_output): Likewise.
7771 (prepare): Define 'b4_synclines_flag'.
2dfbfc12 7772 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
437c2d80 7773
900c5db5
AD
77742002-11-06 Akim Demaille <akim@epita.fr>
7775
7776 * src/main.c (main): Free `infile'.
7777 * src/scan-gram.l (handle_syncline): New.
7778 Recognize `#line'.
7779 * src/output.c (user_actions_output, symbol_destructors_output)
7780 (symbol_printers_output): Use the location's file name, not
7781 infile.
7782 * src/reader.c (prologue_augment, epilogue_set): Likewise.
7783
e183b123 77842002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
51b4a04c 7785
e183b123 7786 * src/tables.c (matching_state): Don't allow states to match if
51b4a04c 7787 either has GLR conflict entries.
e183b123 7788
193eb6b7
PE
77892002-11-05 Paul Eggert <eggert@twinsun.com>
7790
e183b123
PE
7791 * src/scan-gram.l: Use more accurate diagnostics, e.g.
7792 "integer out of range" rather than "invalid value".
7793 * tests/input.at (Invalid $n, Invalid @n): Change expected wording
7794 accordingly.
7795
193eb6b7
PE
7796 Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
7797 Also, remove one static variable in the scanner.
7798
7799 * src/scan-gram.l (braces_level): Now auto, not static.
7800 Initialize to zero if the compiler is being picky.
7801 (INITIAL): Clear braces_level instead of incrementing it.
7802 (SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
7803 as POSIX 1003.1-2001 requires.
7804 * src/system.h (IF_LINT): New macro, taken from coreutils.
7805 * configure.ac: Define "lint" if --enable-gcc-warnings.
7806
29c01725
AD
78072002-11-05 Akim Demaille <akim@epita.fr>
7808
7809 * src/scan-gram.l: When it starts with `%', complain about the
7810 whole directive, not just that `invalid character: %'.
7811
8aeac3ca
AD
78122002-11-04 Akim Demaille <akim@epita.fr>
7813
7814 * Makefile.maint: Update from Autoconf.
7815 (update, cvs-update, po-update, do-po-update): New.
7816
793a58bb
AD
78172002-11-04 Akim Demaille <akim@epita.fr>
7818
7819 * tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
7820 and yyerror.
7821 Have yyerror `use' its arguments.
7822 * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
7823 returns true when location & yacc & pure & parse-param.
7824 (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
7825
c4d720cd
AD
78262002-11-04 Akim Demaille <akim@epita.fr>
7827
7828 * src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
7829 clashes.
7830 * src/scan-gram.l: Use [\'] instead of ['] to pacify
7831 font-lock-mode.
7832 Use complain_at.
7833 Use quote, not quote_n since LOCATION_PRINT no longer uses the
7834 slot 0.
7835
613a0dc5
PE
78362002-11-03 Paul Eggert <eggert@twinsun.com>
7837
7838 * src/reader.c (get_merge_function, grammar_current_rule_check):
7839 Use consistent diagnostics for reporting type name clashes.
7840 Quote the types with <>, for consistency with Yacc.
7841 * tests/input.at (Type Clashes): Adjust to diagnostic changes.
7842
2a8d363a
AD
78432002-11-03 Akim Demaille <akim@epita.fr>
7844
7845 * data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
7846 New.
7847 * data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
7848 (b4_parse_param): Remove.
7849 Use b4_identification.
7850 Propagate b4_pure_args where needed to pass them to yyerror.
7851 * data/glr.m4 (b4_parse_param): Remove.
7852 (b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
7853 (b4_lpure_formals): New.
7854 Use b4_identification.
7855 (YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
7856 b4_user_formals and b4_user_args.
7857 (yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
7858 (yyreportAmbiguity): When using a pure parser, also need
7859 the location, and the parse-params.
7860 Adjust callers.
7861 (yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
7862 When using a pure parser, also need the parse-params.
7863 Adjust callers.
7864 * tests/calc.at: Test pure (%pure-parser) and absolutely pure
7865 (%pure-parser + %parse-param) LALR and GLR parsers.
7866 (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
7867 AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
7868 AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
7869 (_AT_DATA_CALC_Y): Equip for purity of yyerror.
7870 (_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
7871 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
7872 * doc/bison.texinfo: Untabify the whole file.
7873 (Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
7874 (Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
7875 (Error Reporting): Adjust to these new directives.
7876 Document %error-verbose, deprecate YYERROR_VERBOSE.
7877
9e32add8
AD
78782002-11-03 Akim Demaille <akim@epita.fr>
7879
7880 * tests/calc.at: Change all the AT_CHECK_CALC_LALR and
7881 AT_CHECK_CALC_GLR invocations to use % directives, instead of
7882 command line options.
7883 * tests/cxx-type.at: Formatting changes.
7884
b02d90a5
PE
78852002-11-03 Paul Eggert <eggert@twinsun.com>
7886
7887 * src/scan-gram.l: Revamp to fix POSIX incompatibilities,
7888 to count columns correctly, and to check for invalid inputs.
9e32add8 7889
b02d90a5
PE
7890 Use mbsnwidth to count columns correctly. Account for tabs, too.
7891 Include mbswidth.h.
7892 (YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
7893 (extend_location): New function.
7894 (YY_LINES): Remove.
7895
7896 Handle CRLF in C code rather than in Lex code.
7897 (YY_INPUT): New macro.
7898 (no_cr_read): New function.
7899
7900 Scan UCNs, even though we don't fully handle them yet.
7901 (convert_ucn_to_byte): New function.
7902
7903 Handle backslash-newline correctly in C code.
7904 (SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
7905 (eols, blanks): Remove. YY_USER_ACTION now counts newlines etc.;
7906 all uses changed.
7907 (tag, splice): New EREs. Do not allow NUL or newline in tags.
7908 Use {splice} wherever C allows backslash-newline.
7909 YY_STEP after space, newline, vertical-tab.
7910 ("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
9e32add8 7911
b02d90a5
PE
7912 (letter, id): Don't assume ASCII; e.g., spell out a-z.
7913
7914 ({int}, handle_action_dollar, handle_action_at): Check for integer
7915 overflow.
9e32add8 7916
b02d90a5
PE
7917 (YY_STEP): Omit trailing semicolon, so that it's more like C.
7918
7919 (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
7920 as well as \000. Check for UCHAR_MAX, not 255.
7921 Allow \x with an arbitrary positive number of digits, as in C.
7922 Check for overflow here.
7923 Allow \? and UCNs, for compatibility with C.
7924
7925 (handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
7926 with quote slot used by complain_at.
7927
7928 * tests/input.at: Add tests for backslash-newline, m4 quotes
7929 in symbols, long literals, and funny escapes in strings.
7930
7931 * configure.ac (jm_PREREQ_MBSWIDTH): Add.
7932 * lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
7933 * lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
7934 * m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
7935 * m4/mbswidth.m4: New file, from GNU coreutils.
7936
7937 * doc/bison.texinfo (Grammar Outline): Document // comments.
7938 (Symbols): Document that trigraphs have no special meaning in Bison,
7939 nor is backslash-newline allowed.
7940 (Actions): Document that trigraphs have no special meaning.
7941
7942 * src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
7943 no longer used.
7944
79452002-11-02 Paul Eggert <eggert@twinsun.com>
7946
7947 * src/reader.c: Don't include quote.h; not needed.
7948 (get_merge_function): Reword warning to be consistent with
7949 type clash diagnostic in grammar_current_rule_check.
7950
7951 * lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
7952 bug in trigraph handling.
7953
7954 * src/output.c (prepare_symbols): When printing token names,
7955 escape "[" as "@<:@" and likewise for "]".
7956
7957 * src/system.h (errno): Remove declaration, as we are now
7958 assuming C89 or better, and C89 guarantees errno.
7959
762b212b
PE
79602002-10-30 Paul Eggert <eggert@twinsun.com>
7961
7962 * lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
7963 Check for close failures.
7964 * src/files.h (xfclose): Return void, not int, since it always
7965 returned zero.
7966 * src/files.c (xfclose): Likewise. Report I/O error if ferror
7967 indicates one.
7968 * src/output.c (output_skeleton): Use xfclose rather than fclose
7969 and ferror. xfclose now checks ferror.
7970
7971 * data/glr.c (YYLEFTMOST_STATE): Remove.
7972 (yyreportTree): Use a stack-based leftmost state. This avoids
7973 our continuing battles with bogus warnings about initializers.
7974
56100c60
AD
79752002-10-30 Akim Demaille <akim@epita.fr>
7976
7977 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
7978 #if.
7979
51b4a04c
PH
79802002-10-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7981
7982 * tests/glr-regr1.at: New test for reported regressions.
7983 * tests/testsuite.at: Add glr-regr1.at test.
7984 * tests/Makefile.am: Add glr-regr1.at test.
e183b123 7985
bf1ebda2
PE
79862002-10-24 Paul Eggert <eggert@twinsun.com>
7987
5c16c6b1
PE
7988 Version 1.75a.
7989
bf1ebda2
PE
7990 * tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
7991 * tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
7992 we use malloc. Don't assume 'A' through 'Z' are contiguous.
7993 Don't assume strdup exists; POSIX says its an XSI extension.
7994 Check for buffer overflow on input.
7995
b526ee61
AD
79962002-10-24 Akim Demaille <akim@epita.fr>
7997
7998 * src/output.c (output_skeleton): Don't disable M4sugar comments
7999 too soon: it results in comments being expanded.
8000 * data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
8001 first output.
8002
f1886bb2
AD
80032002-10-24 Akim Demaille <akim@epita.fr>
8004
8005 * data/yacc.c (m4_int_type): New.
8006 * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
8007 char' as only yacc.c wants K&R portability.
8008 * data/glr.c (yysigned_char): Remove.
8009 * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
8010 Reported by Quoc Peyrot.
8011
c5576256
PE
80122002-10-23 Paul Eggert <eggert@twinsun.com>
8013
8014 * src/main.c (main): With --trace=time, report times even if a
8015 non-fatal error occurs. Formerly, the times were reported in some
8016 such cases but not in others.
8017 * src/reader.c (reader): Just return if a complaint has been issued,
8018 instead of exiting, so that 'main' can report times.
8019
27b0ffea
AD
80202002-10-22 Akim Demaille <akim@epita.fr>
8021
8022 * src/system.h: Include sys/types.
8023 Reported by Bert Deknuydt.
8024
223a7883
PE
80252002-10-23 Paul Eggert <eggert@twinsun.com>
8026
8027 * configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
8028 Suggested by Art Haas.
8029
80302002-10-22 Paul Eggert <eggert@twinsun.com>
8031
8032 * src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
8033 decl; not needed any more.
8034 * src/main.c (main): Use return to exit, undoing yesterday's change.
8035 The last OS that we could find where this wouldn't work is
8036 SunOS 3.5, and that's too old to worry about now.
8037
8038 * data/glr.c (struct yyltype): Define members even when not
8039 doing locations. This is more consistent with yacc.c, and it
8040 works around the following bug reports:
161a71f3
PE
8041 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
8042 http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
27b0ffea 8043
223a7883
PE
8044 * doc/bison.texinfo: Minor spelling and typographical fixes. Use
8045 @acronym consistently. Standardize on "Yacc" instead of "YACC",
8046 "Algol" instead of "ALGOL". Give a bit more history about BNF.
8047
8b76775a
AD
80482002-10-22 Akim Demaille <akim@epita.fr>
8049
8050 * data/README: New.
8051
6db10d14
PE
80522002-10-21 Paul Eggert <eggert@twinsun.com>
8053
8054 Be consistent about 'bool'; the old code used an enum in one
8055 module and an int in another, and this violates the C standard.
8056 * m4/stdbool.m4: New file, from coreutils 4.5.3.
8057 * configure.ac (AC_HEADER_STDBOOL): Add.
8058 * m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
8059 * src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
8060 * src/symtab.c (hash_compare_symbol_t): Likewise.
8061 * src/system.h (bool, false, true): Use a definition consistent
8062 with ../lib/hash.c. All uses changed.
8063
8064 * src/complain.c (warning_issued): Renamed from warn_message_count,
8065 so that we needn't worry about integer overflow (!).
8066 Now of type bool. All uses changed.
8067 (complaint_issued): Renamed from complain_message_count; likewise.
8068
8069 * src/main.c (main): Use exit to exit with failure.
27b0ffea 8070
6db10d14
PE
8071 * src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
8072 rather than 1 and 0.
8073 * src/main.c (main): Likewise.
8074 * src/getargs.c (getargs): Likewise.
8075 * src/reader.c (reader): Likewise.
8076
8077 * src/getarg.c (getargs): Remove duplicate code for
8078 "Try `bison --help'".
8079
8080 * src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
8081 What was that "2" for?
8082
8083 * src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
8084 * src/getargs.c (usage): Likewise.
8085
8086 * src/getargs.c (getargs): When there are too few operands, report
8087 the last one. When there are too many, report the first extra
8088 one. This is how diffutils does it.
8089
92a060fd
PE
80902002-10-20 Paul Eggert <eggert@twinsun.com>
8091
8092 Remove K&R vestiges.
8093 * configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
8094 * src/complain.c (VA_START): Remove. Assume prototypes.
8095 (vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
8096 (private_strerror, warn_at, warn, complain_at, complain, fatal_at,
8097 fatal): Assume prototypes.
8098 * src/complain.h: Assume prototypes.
8099 * src/system.h (PARAMS): Remove.
8100 Include <limits.h> unconditionally, since it's guaranteeed even
8101 for a freestanding C89 compiler.
8102 (SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
8103 * src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
8b76775a 8104
e7cb57c0
AD
81052002-10-20 Akim Demaille <akim@epita.fr>
8106
8107 * src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
8108 * data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
8109 (yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
8110 (yyresolveStates, yyresolveAction, yyresolveStack)
8111 (yyprocessOneStack): Use them.
8112 (yy_reduce_print): New.
8113 * tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
8114
0245f82d
AD
81152002-10-20 Akim Demaille <akim@epita.fr>
8116
8117 * data/c.m4 (b4_c_ansi_args): Recognize functions with no
8118 arguments and output `void'.
8119 (b4_c_function): Rename as...
8120 (b4_c_function_def): this.
8121 (b4_c_function_decl, b4_c_ansi_function_def)
8122 (b4_c_ansi_function_decl): New.
8123 Change the interpretation of the arguments: before `int, foo', now
8124 `int foo, foo'.
8125 * data/yacc.c (yyparse): Prototype and define thanks to these.
8126 Adjust b4_c_function_def uses.
8127 * data/glr.c (yyparse): Likewise, but ANSI only.
8128
39912f52
AD
81292002-10-20 Akim Demaille <akim@epita.fr>
8130
8131 * src/output.c (prepare): Move the definition of `tokens_number',
8132 `nterms_number', `undef_token_number', `user_token_number_max'
8133 to...
8134 (prepare_tokens): Here.
8135 (prepare_tokens): Rename as...
8136 (prepare_symbols): this.
8137 (prepare): Move the definition of `rules_number' to...
8138 (prepare_rules): here.
8139 (prepare): Move the definition of `last', `final_state_number',
8140 `states_number' to...
8141 (prepare_states): here.
8142 * data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
8143
20c1e2ad
AD
81442002-10-20 Akim Demaille <akim@epita.fr>
8145
8146 * src/tables.h, src/tables.c, src/output.c: Comment changes.
8147
21964f43
AD
81482002-10-20 Akim Demaille <akim@epita.fr>
8149
8150 * data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
8151 * data/c.m4: here.
8152
66d30cd4
AD
81532002-10-20 Akim Demaille <akim@epita.fr>
8154
8155 * src/output.c (prepare): Use MUSCLE_INSERT_STRING.
8156 * src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
8157 `pair'.
8158 (muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
8159 `name' to...
8160 * data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
8161 (b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
8162 These.
8163
95f2c9fe
PE
81642002-10-19 Paul Eggert <eggert@twinsun.com>
8165
8166 Do not create a temporary file, as that involves security and
8167 cleanup headaches. Instead, use a pair of pipes.
8168 Derived from a suggestion by Florian Krohm.
8169 * lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
8170 * lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
8171 * configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
8172 (BISON_PREREQ_SUBPIPE): Add.
8173 * lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
8174 Add subpipe.h, subpipe.c.
8175 * m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
8176 * po/POTFILES.in: Add lib/subpipe.c.
8177 * src/output.c: Include "subpipe.h".
8178 (m4_invoke): Remove decl.
8179 (scan_skel): New decl.
8180 (output_skeleton): Use pipe rather than temporary file for m4 input.
8181 Check that m4sugar.m4 is readable, to avoid deadlock.
8182 Check for pipe I/O error.
8183 * src/scan-skel.l (readpipe): Remove decl.
8184 (scan_skel): New function, to be used in place of m4_invoke.
8185 Read from stream rather than file.
66d30cd4 8186
95f2c9fe
PE
8187 * lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
8188 float, as this generates a warning on Solaris 8 + GCC 3.2 with
8189 --enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
8190 this generates a more-accurate value anyway.
8191
8192 * lib/timevar.c (timervar_accumulate): Rename locals to
8193 avoid confusion with similarly-named more-global.
8194 * src/muscle_tab.c (muscle_pair_list_grow): Likewise.
8195
8196 * src/output.c (prepare): Use xstrdup to convert char const *
8197 to char *, to avoid GCC warning.
8198
c19988b7
AD
81992002-10-19 Akim Demaille <akim@epita.fr>
8200
8201 * tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
8202 LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
8203 Use them to have `calc.y' ready for %pure-parser.
8204 * data/yacc.c (YYLEX): Pass a yylex return type to
8205 b4_c_function_call.
8206
ae7453f2
AD
82072002-10-19 Akim Demaille <akim@epita.fr>
8208
8209 Prototype support of %lex-param and %parse-param.
8210
8211 * src/parse-gram.y: Add the definition of the %lex-param and
8212 %parse-param tokens, plus their rules.
8213 Drop the `_' version of %glr-parser.
8214 Add the "," token.
8215 * src/scan-gram.l (INITIAL): Scan them.
8216 * src/muscle_tab.c: Comment changes.
8217 (muscle_insert, muscle_find): Rename `pair' as `probe'.
8218 * src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
8219 (muscle_entry_s): The `value' member is no longer const.
8220 Adjust all dependencies.
8221 * src/muscle_tab.c (muscle_init): Adjust: use
8222 MUSCLE_INSERT_STRING.
8223 Initialize the obstack earlier.
8224 * src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
8225 (muscle_pair_list_grow): New.
8226 * data/c.m4 (b4_c_function_call, b4_c_args): New.
8227 * data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
8228 * tests/calc.at: Use %locations, not --locations.
8229 (AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
8230
0e575721
AD
82312002-10-19 Akim Demaille <akim@epita.fr>
8232
8233 * src/getargs.c (usage): Take status as argument and exit
8234 accordingly.
8235 Report the traditional `Try ... --help' message when status != 0.
8236 (usage, version): Don't take a FILE * as arg, it is pointless.
8237 (getargs): When there is an incorrect number of arguments, make it
8238 an error, and report it GNUlically thanks to `usage ()'.
8239
724ce7f5
PE
82402002-10-18 Paul Eggert <eggert@twinsun.com>
8241
3a781eb2
PE
8242 * data/glr.c (yyreportParseError): Don't assume that sprintf
8243 yields the length of the printed string, as this is not true
8244 on SunOS 4.1.4. Reported by Peter Klein.
8245
724ce7f5
PE
8246 * tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
8247 * tests/conflicts.at (%nonassoc and eof): Likewise.
8248 Fixes SunOS 4.1.4 test failure reported by Peter Klein.
8249
473d0a75
AD
82502002-10-17 Akim Demaille <akim@epita.fr>
8251
8252 * src/getargs.h (trace_e): Add trace_scan, and trace_parse.
8253 * src/getargs.c (trace_types, trace_args): Adjust.
8254 * src/reader.c (grammar_current_rule_prec_set)
8255 (grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
8256 Standardize error messages.
8257 And s/@prec/%prec/!
8258 (reader): Use trace_flag to enable scanner/parser debugging,
8259 instead of an adhoc scheme.
8260 * src/scan-gram.l: Remove trailing debugging code.
8261
e76d2469
PE
82622002-10-16 Paul Eggert <eggert@twinsun.com>
8263
93e2236a
PE
8264 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
8265 MUSCLE_TAB_H.
8266
e76d2469
PE
8267 * NEWS: Officially drop support for building Bison with K&R C,
8268 since it didn't work anyway and it's not worth worrying about.
8269 * Makefile.maint (wget_files): Remove ansi2knr.c.
8270 (ansi2knr.c-url_prefix): Remove.
8271 * lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
8272 * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
8273 * src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
8274
5bd1c419
PE
82752002-10-15 Paul Eggert <eggert@twinsun.com>
8276
8277 Stop using the "enum_" trick for K&R-style function definitions;
8278 it confused me, and I was the author! Instead, assume that people
8279 who want to use K&R C compilers (when using these modules in GCC,
8280 perhaps?) will run ansi2knr.
8281
8282 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
8283 All uses of "enum_" changed to "enum ".
8284 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
8285 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
e76d2469 8286
5bd1c419
PE
8287 * lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
8288 abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
8289 abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
8290 abitset_copy1, abitset_disjoint_p, abitset_empty_p,
8291 abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
8292 abitset_not, abitset_ones, abitset_or, abitset_or_and,
8293 abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
8294 abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
8295 abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
8296 Use function prototypes; this removes the need for declaring
8297 static functions simply to provide their prototypes.
8298 * lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
8299 bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
8300 bitset_count_, bitset_create, bitset_dump, bitset_first,
8301 bitset_free, bitset_init, bitset_last, bitset_next,
8302 bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
8303 bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
8304 bitset_print, bitset_release_memory, bitset_toggle_,
8305 bitset_type_choose, bitset_type_get, bitset_type_name_get,
8306 debug_bitset): Likewise.
8307 * lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
8308 * lib/bitset_stats.c (bitset_log_histogram_print,
8309 bitset_percent_histogram_print, bitset_stats_and,
8310 bitset_stats_and_cmp, bitset_stats_and_or,
8311 bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
8312 bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
8313 bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
8314 bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
8315 bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
8316 bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
8317 bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
8318 bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
8319 bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
8320 bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
8321 bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
8322 bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
8323 bitset_stats_zero): Likewise.
8324 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
8325 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
8326 bitsetv_dump, debug_bitsetv): Likewise.
8327 * lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
8328 ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
8329 ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
8330 ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
8331 ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
8332 ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
8333 ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
8334 ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
8335 ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
8336 ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
8337 ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
8338 Likewise.
8339 * lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
8340 lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
8341 lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
8342 lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
8343 lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
8344 lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
8345 lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
8346 lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
8347 lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
8348 lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
8349 lbitset_xor_cmp, lbitset_zero): Likewise.
e76d2469 8350
ae26e1f0
AD
83512002-10-14 Akim Demaille <akim@epita.fr>
8352
8353 Version 1.75.
8354
d43baf71
AD
83552002-10-14 Akim Demaille <akim@epita.fr>
8356
8357 * tests/Makefile.am (maintainer-check-posix): New.
8358
7ebc83e3
AD
83592002-10-14 Akim Demaille <akim@epita.fr>
8360
8361 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
8362 member.
8363
05846dae
AD
83642002-10-14 Akim Demaille <akim@epita.fr>
8365
8366 * src/tables.c (table_ninf_remap): base -> tab.
8367 Reported by Matt Rosing.
8368
1318e37d
PE
83692002-10-14 Paul Eggert <eggert@twinsun.com>
8370
447fbb17
PE
8371 * tests/action.at, tests/calc.at, tests/conflicts.at,
8372 tests/cxx-type.at, tests/headers.at, tests/input.at,
8373 tests/regression.at, tests/synclines.at, tests/torture.at:
8374 Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
8375 so that the tests still work even if POSIXLY_CORRECT is set.
8376 * doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
05846dae 8377
1318e37d
PE
8378 * data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
8379 for portability to K&R hosts. Fix typo: signed char is guaranteed
8380 only to 127, not to 128.
8381 * data/glr.c (yysigned_char): New type.
8382 * data/yacc.c (yysigned_char): Likewise.
8383 * tests/regression.at (Web2c Actions): signed char -> yysigned_char.
8384
cc0f0794
PE
83852002-10-13 Paul Eggert <eggert@twinsun.com>
8386
5038f418
PE
8387 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
8388 true due to limited range of data type" warning from GCC.
8389
cc0f0794
PE
8390 * data/c.m4 (b4_token_defines): Protect against double-inclusion
8391 by wrapping enum yytokentype's definition inside #ifndef
8392 YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
8393
6fed0802
AD
83942002-10-13 Akim Demaille <akim@epita.fr>
8395
8396 * data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
8397 Un yy- yyrhs to avoid the name clash with the global YYRHS.
8398
32f0598d
AD
83992002-10-13 Akim Demaille <akim@epita.fr>
8400
8401 * Makefile.maint: Update from Autoconf 2.54.
8402 * m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
8403
7ea9a33f
AD
84042002-10-13 Akim Demaille <akim@epita.fr>
8405
8406 * src/print.c (print_state): Separate the list of solved conflicts
8407 from the other items.
8408 * tests/conflicts.at (Resolved SR Conflicts): Adjust.
8409
ea99527d
AD
84102002-10-13 Akim Demaille <akim@epita.fr>
8411
8412 Let nondeterministic skeletons be usable with deterministic
8413 tables.
8414
8415 With the patch, GAWK compiled by GCC without -O2 passes its test
8416 suite using a GLR parser driven by LALR tables. It fails with -O2
8417 because `struct stat' gives two different answers on my machine:
8418 88 (definition of an auto var) and later 96 (memset on this var).
8419 Hence the stack is badly corrumpted. The headers inclusion is to
8420 blame: if I move the awk.h inclusion before GLR's system header
8421 inclusion, the two struct stat have the same size.
8422
8423 * src/tables.c (pack_table): Always create conflict_table.
8424 (token_actions): Always create conflict_list.
8425 * data/glr.c (YYFLAG): Remove, unused.
8426
f377f69f
AD
84272002-10-13 Akim Demaille <akim@epita.fr>
8428
8429 * configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
8430 (O0FLAGS): New.
8431 (VALGRIND, GXX): New.
8432 * tests/atlocal.in (CFLAGS): Use O0FLAGS.
8433 * tests/bison.in: Run $PREBISON a pre-command.
8434 * tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
8435 (maintainer-check-g++): New.
8436 * Makefile.am (maintainer-check): New.
8437
2a1fe6ed
AD
84382002-10-13 Akim Demaille <akim@epita.fr>
8439
8440 * data/glr.c: Formatting changes.
8441 Tweak some trace messages to match yacc.c's.
8442
f50adbbd
AD
84432002-10-13 Akim Demaille <akim@epita.fr>
8444
8445 GLR parsers sometimes raise parse errors instead of performing the
8446 default reduction.
8447 Reported by Charles-Henry de Boysson.
8448
8449 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
ba0fe3c7 8450 check the length of the traces when %glr.
f50adbbd
AD
8451 (_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
8452 GLR's traces.
8453 (AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
8454 Test GLR parsers.
8455 * data/glr.c (YYLEFTMOST_STATE): Fix its value.
8456 (yyltype): Remove the yy prefix from the member names.
8457 (yytable): Complete its comment.
8458 (yygetLRActions): Map error action number from YYTABLE from
8459 YYTABLE_NINF to 0.
8460 (yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
8461 (which was a bug: it should have been YYTABEL_NINF, and yet it was
8462 not satisfying as we could compare an YYACTION computed from
8463 YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
8464 only value for error actions.
8465 (yyreportParseError): In verbose parse error messages, don't issue
8466 `error' in the list of expected tokens.
8467 * data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
8468 next action to perform to match glr.c's decoding.
8469 (yytable): Complete its comment.
8470
bcbad5b9
PE
84712002-10-13 Paul Eggert <eggert@twinsun.com>
8472
8473 Fix problem reported by Henrik Grubbstroem in
161a71f3 8474 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
bcbad5b9
PE
8475 "nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
8476 because the Bison parser reads the second action before reducing
8477 the first one.
8478 * src/scan-gram.l (rule_length): New static var.
8479 Use it to keep track of the rule length in the scanner, since
8480 we can't expect the parser to be in lock-step sync with the scanner.
8481 (handle_action_dollar, handle_action_at): Use this var.
8482 * tests/actions.at (Exotic Dollars): Test for the problem.
05846dae 8483
14904b89
PE
84842002-10-12 Paul Eggert <eggert@twinsun.com>
8485
1fe611e5
PE
8486 * lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
8487 * m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
8488 Include <sys/time.h> when checking for clock_t and struct tms.
8489 Use same include order as source.
8490 This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
161a71f3 8491 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
05846dae 8492
1fe611e5
PE
8493 * lib/timevar.c: Update copyright date and clarify comments.
8494 (get_time) [IN_GCC]: Keep the GCC version for reference.
05846dae 8495
1fe611e5
PE
8496 * lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
8497 GCC version as of today, then merge Bison's changes.
8498 Change "GCC" to "Bison" in copyright notice. timevar.def's
8499 author is Akim, so change that too.
8500
98194095
PE
8501 * src/reader.c (grammar_current_rule_check):
8502 Don't worry about the default action if $$ is untyped.
8503 Prevents bogus warnings reported by Jim Gifford in
161a71f3 8504 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
98194095 8505
14904b89
PE
8506 * data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
8507 * data/glr.c, data/lalr1.cc, data/yacc.c:
8508 Output token definitions before the first part of user declarations.
8509 Fixes compatibility problem reported by Jim Gifford for kbd in
161a71f3 8510 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
14904b89 8511
ff6dca18
PE
85122002-10-11 Paul Eggert <eggert@twinsun.com>
8513
8514 * data/yacc.c (yyreport_parse_error): Remove, putting its body into...
8515 (yyparse): here. This undoes some of the 2002-07-25 change.
8516 Compatibility problem reported by Ralf S. Engelschall with
8517 OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
8518
eb714592
AD
85192002-10-11 Akim Demaille <akim@epita.fr>
8520
8521 * tests/regression.at Characters Escapes): New.
8522 * src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
8523 characters.
8524 Reported by Jan Nieuwenhuizen.
8525
b7195100
AD
85262002-10-11 Akim Demaille <akim@epita.fr>
8527
8528 * po/id.po: New.
8529
f28a0f2d
PE
85302002-10-10 Paul Eggert <eggert@twinsun.com>
8531
8532 Portability fixes for bitsets; this also avoids several GCC
8533 warnings.
8534
8535 * lib/abitset.c: Include <stddef.h>, for offsetof.
8536 * lib/lbitset.c: Likewise.
8537
8538 * lib/abitset.c (abitset_bytes): Return a size that is aligned
8539 properly for vectors of objects. Do not assume that adding a
8540 header size to a multiple of a word size yields a value that is
8541 properly aligned for the whole union.
8542 * lib/bitsetv.c (bitsetv_alloc): Likewise.
8543
8544 * lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
8545 unique names for structures.
8546 * lib/ebitset.c (ebitset_bytes): Likewise.
8547 * lib/lbitset.c (lbitset_bytes): Likewise.
8548
8549 * lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
8550 abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
8551 abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
8552 abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
8553 abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
8554 abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
8555 abitset_or_and_cmp, abitset_copy): Supply prototype decls,
8556 to improve the type-checking that GCC can do.
8557 * lib/bitset.c (bitset_op4_cmp): Likewise.
8558 * lib/bitset_stats.c (bitset_stats_count,
8559 bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
8560 bitset_stats_copy, bitset_stats_disjoint_p,
8561 bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
8562 bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
8563 bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
8564 bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
8565 bitset_stats_and_or_cmp, bitset_stats_andn_or,
8566 bitset_stats_andn_or_cmp, bitset_stats_or_and,
8567 bitset_stats_or_and_cmp): Likewise.
8568 * lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
8569 lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
8570 lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
8571 lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
8572
8573 * lib/abitset.h: Include bitset.h, not bbitset.h.
8574 * lib/ebitset.h: Likewise.
8575 * lib/lbitset.h: Likewise.
8576
8577 * lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
8578 All instances of parameters of type enum bitset_opts are now of
8579 type enum_bitset_opts, to conform to the C Standard, and similarly
8580 for enum_bitset_type.
8581 * lib/ebitset.c (enum_ebitset_find_mode): Likewise.
8582 * lib/lbitset.c (enum_lbitset_find_mode): Likewise.
8583
8584 Do not use "struct bitset_struct" to mean different things in
8585 different modules. Not only is this confusing, it violates
8586 the C Standard, which requires that structure types in different
8587 modules must be compatible if one is to be passed to the other.
8588 * lib/bbitset.h (bitset): Now points to a union, not to a struct.
8589 All instances of "struct bitset_struct *" replaced with "bitset".
8590 * lib/bitset.h (struct bitset_struct): Remove, replacing with....
8591 (union bitset_union, struct abitset_struct, struct ebitset_struct,
8592 struct lbitset_struct, struct bitset_stats_struct): New types.
8593 All uses of struct bitset_struct changed to union bitset_union,
8594 etc.
ba0fe3c7 8595 * lib/abitset.c (struct abitset_struct, abitset,
f28a0f2d
PE
8596 struct bitset_struct): Remove.
8597 * lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
8598 struct bitset_struct): Remove.
8599 * lib/ebitset.c (struct ebitset_struct, ebitset, struct
8600 bitset_struct): Remove.
8601 * lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
8602 Likewise.
8603
8604 Do not call a function of type T using a call that assumes the
8605 function is of a different type U. Standard C requires that a
8606 function must be called with a type that is compatible with its
8607 definition.
8608 * lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
8609 New decls.
8610 * lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
8611 New functions.
8612 * lib/ebitset.c (PFV): Remove.
8613 * lib/lbitset.c (PFV): Likewise.
8614 * lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
8615 ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
8616 decls.
8617 (ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
8618 (ebitset_vtable): Use them.
8619 * lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
8620 lbitset_xor): New functions.
8621 (lbitset_vtable): Use them.
8622
8623 * lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
8624 Declare.
8625
8626 * lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
8627 GCC warning.
8628 * lib/lbitset.c (LBITSET_CURRENT1): Likewise.
8629 Use offsetof, for simplicity.
8630
6fbe4984
PE
86312002-10-06 Paul Eggert <eggert@twinsun.com>
8632
8633 * lib/bitset.h (bitset_reset): Do not assume that bitset_word is
8634 the same width as int. This reapplies a hunk of the 2002-08-12 patch
161a71f3 8635 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
6fbe4984
PE
8636 which was inadvertently undone by the 2002-09-30 patch.
8637 * lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
8638 the same width as int.
8639
420f93c8
PE
86402002-10-04 Paul Eggert <eggert@twinsun.com>
8641
8642 Version 1.50.
8643
8644 * configure.ac (AC_INIT), NEWS: Increment version number.
8645
8646 * doc/bison.texinfo: Minor spelling, grammar, and white space
8647 fixes.
8648 (Symbols): Mention that any negative value returned from yylex
8649 signifies end-of-input. Warn about negative chars. Mention
8650 the portable Standard C character set.
8651
8652 The GNU coding standard says CFLAGS and YFLAGS are reserved
8653 for the installer to set.
8654 * lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
8655 * src/Makefile.am (AM_CFLAGS): Likewise.
8656 (AM_YFLAGS): Renamed from YFLAGS.
8657
8658 Fix some MAX and MIN problems.
8659 * src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
8660 * src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
8661 * src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
8662 * src/reader.c (reader): Use it.
8663
8664 * tests/regression.at (Braces parsing): Use grep, not fgrep, as
8665 POSIX 1003.1-2001 has removed fgrep.
8666
86672002-10-04 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8668
8669 * lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
8670 interpreted as signed.
8671 * lib/ebitset.c (ebitset_list): Fix bug.
8672
ff68026d
PE
86732002-10-01 Paul Eggert <eggert@twinsun.com>
8674
8675 More fixes for 64-bit hosts and large bitsets.
8676
8677 * lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
8678 abitset_size, abitset_list, abitset_list_reverse, abitset_list):
8679 Use bitset_bindex, not int or unsigned int or size_t, to count bits.
8680 * lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
8681 struct bitset_vtable.list, struct bitset_vtable.list_reverse,
8682 bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
8683 bitset_count_): Likewise.
8684 * lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
8685 bitset_first, bitset_last): Likewise.
8686 * lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
8687 bitset_stats_list_reverse, bitset_stats_size,
8688 bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
8689 Likewise.
8690 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
8691 * lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
8692 bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
8693 bitsetv_reflexive_transitive_closure): Likewise.
8694 * lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
8695 * lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
8696 Likewise.
8697 * lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
8698 Likewise.
420f93c8 8699
ff68026d
PE
8700 * lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
8701 Use size_t, not unsigned int, to count bytes.
8702 * lib/abitset.h (abitset_bytes): Likewise.
8703 * lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
8704 Likewise.
8705 * lib/bitset.h (bitset_bytes): Likewise.
8706 * lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
8707 * lib/bitset_stats.h (bitset_stats_bytes): Likewise.
8708 * lib/bitsetv.c (bitsetv_alloc): Likewise.
8709 * lib/ebitset.c (ebitset_bytes): Likewise.
8710 * lib/ebitset.h (ebitset_bytes): Likewise.
8711 * lib/lbitset.c (lbitset_bytes): Likewise.
8712 * lib/lbitset.h (lbitset_bytes): Likewise.
420f93c8 8713
ff68026d
PE
8714 * lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
8715 abitset_subset_p, abitset_disjoint_p, abitset_and,
8716 abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
8717 abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
8718 abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
8719 abitset_or_and, abitset_or_and_cmp):
8720 Use bitset_windex instead of unsigned int.
8721 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
8722 * lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
8723 ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
8724 ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
8725 Likewise.
8726 * lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
420f93c8 8727
ff68026d
PE
8728 * lib/bitset.c (bitset_print):
8729 Use proper printf formats for widths of integer types.
8730 * lib/bitset_stats.c (bitset_percent_histogram_print,
8731 bitset_log_histogram_print, bitset_stats_print_1): Likewise.
8732 * lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
8733 * lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
8734 * lib/lbitset.c (lbitset_bytes): Likewise.
420f93c8 8735
ff68026d
PE
8736 * lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
8737 BITSET_SIZE_MAX): New macros.
8738 (BITSET_INDEX_MAX): Remove. It wasn't right, since it assumed that
8739 sizeof (bitset_word) == sizeof (bitset_windex). All uses changed
8740 to BITSET_WINDEX_MAX.
8741
8742 * lib/bitset.c (bitset_next, bitset_prev, bitset_first,
8743 bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
8744 since we now return the bitset_bindex type (not int).
8745
8746 * lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
8747 when computing sizes.
8748 * lib/ebitset.c (ebitset_elts_grow): Likewise.
8749
8750 * lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
8751 and avoid cast to unsigned.
8752
6aa452a6
AD
87532002-09-30 Akim Demaille <akim@epita.fr>
8754
8755 * lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
8756 * lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
8757 Updates from Michael Hayes.
8758
927f7817
AD
87592002-09-30 Art Haas <ahaas@neosoft.com>
8760
8761 * configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
8762 invocations.
8763 * tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
8764 defined.
8765
9738f41e
AD
87662002-09-27 Akim Demaille <akim@epita.fr>
8767
8768 Version 1.49c.
8769
a5c75d7f
AD
87702002-09-27 Akim Demaille <akim@epita.fr>
8771
8772 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
8773 (Because of AC_LIBSOURCE).
8774
8280e179
AD
87752002-09-27 Akim Demaille <akim@epita.fr>
8776
8777 Playing with Autoscan.
8778
8779 * configure.ac: Remove the old LIBOBJ tweaks.
8780 (AC_REPLACE_FUNCS): Add strrchr and strtol.
8781 * lib/strrchr.c: New.
8782 * lib/strtol.c: New, from the Coreutils 4.5.1.
8783
ae64af35
AD
87842002-09-27 Akim Demaille <akim@epita.fr>
8785
8786 Playing with Autoscan.
8787
8788 * m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
8789 * lib/Makefile.am (libbison_a_SOURCES): No longer include
8790 argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
8791 * lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
8792 Coreutils 4.5.1.
8793
d1a1114f
AD
87942002-09-24 Akim Demaille <akim@epita.fr>
8795
8796 * doc/bison.texinfo (Stack Overflow): xref to Recursion.
8797 (Frequently Asked Questions, Parser Stack Overflow): New.
8798
b906441c
AD
87992002-09-13 Akim Demaille <akim@epita.fr>
8800
8801 Playing with autoscan.
8802
8803 * src/reader.c (get_merge_function): Use xstrdup, not strdup.
8804 * src/files.c (skeleton_find): Remove, unused.
8805 * m4/memcmp.m4: New, from the Coreutils 4.5.1.
8806 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
8807
bd701811
AD
88082002-09-13 Akim Demaille <akim@epita.fr>
8809
8810 * configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
8811 * Makefile.am (AUTOMAKE_OPTIONS): Don't.
8812
e0a13e7b
AD
88132002-09-13 Akim Demaille <akim@epita.fr>
8814
8815 * configure.ac: Require 2.54.
8816 s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
8817 s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
8818 * m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
8819 Remove, provided by Autoconf macros.
8820
c97011bf
AD
88212002-09-12 Akim Demaille <akim@epita.fr>
8822
8823 * m4/prereq.m4: Update, from Coreutils 4.5.1.
8824
d862b1be
AD
88252002-09-12 Akim Demaille <akim@epita.fr>
8826
8827 * m4/prereq.m4: Update, from Fileutils 4.1.5.
8828 * configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
8829 Reported by Martin Mokrejs.
8830
3d38c03a
AD
88312002-09-10 Akim Demaille <akim@epita.fr>
8832
8833 * src/parse-gram.y: Associate a human readable string to each
8834 token type.
8835 * tests/regression.at (Invalid inputs): Adjust.
8836
b6347355
AD
88372002-09-10 Gary V. Vaughan <gary@gnu.org>
8838
8839 * tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
8840 with an Autoconf-2.5x style configure.ac.
8841
09ba4ab2
PE
88422002-09-06 Paul Eggert <eggert@twinsun.com>
8843
8844 * doc/bison.texinfo (Conditions): Make explicit that the GPL
8845 exception applies only to yacc.c. This is a modification of a
8846 patch originally suggested by Akim Demaille.
8847
21846f69
AD
88482002-09-06 Akim Demaille <akim@epita.fr>
8849
09ba4ab2
PE
8850 * data/c.m4 (b4_copyright): Move the GPL exception comment from
8851 here to...
8852 * data/yacc.c: here.
8853
21846f69
AD
8854 * data/lalr1.cc (struct yyltype): Don't define it, since we use
8855 LocationType.
8856 (b4_ltype): Default to yy::Location from location.hh.
8857
c0ad8bf3
AD
88582002-09-04 Jim Meyering <jim@meyering.net>
8859
8860 * data/yacc.c: Guard the declaration of yytoknum also with
8861 `#ifdef YYPRINT', so it is declared only when used.
8862
3a93251e
AD
88632002-09-04 Akim Demaille <akim@epita.fr>
8864
8865 * configure.in: Rename as...
8866 * configure.ac: this.
8867 Bump to 1.49c.
8868
427c0dda
AD
88692002-09-04 Akim Demaille <akim@epita.fr>
8870
8871 * src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
8872 * src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
8873 translate maintainer only messages.
8874
6a254321
PE
88752002-08-12 Paul Eggert <eggert@twinsun.com>
8876
645e30d1
PE
8877 Version 1.49b.
8878
6a254321
PE
8879 * Makefile.am (SUBDIRS): Remove intl.
8880 (DISTCLEANFILES): Remove.
8881 * NEWS: Mention that GNU M4 is now required. Clarify what is
8882 meant by "larger grammars". Mention the pt_BR translation.
8883 * configure.in (AC_CHECK_DECLS): Add getenv, getopt.
8884 (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
8885 Bump version from 0.11.2 to 0.11.5.
8886 (BISON_PREREQ_STAGE): Remove.
8887 (AM_GNU_GETTEXT): Use external gettext.
8888 (AC_OUTPUT): Remove intl/Makefile.
8889
8890 * config/depcomp, config/install-sh: Sync with Automake 1.6.3.
8891
8892 * data/glr.c: Include string.h, for strlen.
8893 (yyreportParseError): Use size_t for yysize.
8894 (yy_yypstack): No longer nested inside yypstates, as nested
8895 functions are not portable. Do not assume size_t is the
8896 same width as int.
8897 (yypstates): Do not assume that ptrdiff_t is the same width
8898 as int, and similarly for yyposn and YYINDEX.
8899
8900 * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
8901
8902 * lib/Makefile.am (INCLUDES): Do not include from the intl
8903 directory, which has been removed.
8904 * src/Makefile.am (INCLUDES): Likewise.
8905
8906 * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
8907 (bitsets_sources, additional_bitsets_sources, timevars_sources):
8908 New vars.
8909
8910 * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
8911 * tests/Makefile.am (EXTRA_DIST): Likewise.
8912
8913 * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
8914 Do not assume that bitset_windex is the same width as unsigned.
8915
8916 * lib/abitset.c (abitset_unused_clear): Do not assume that
8917 bitset_word is the same width as int.
8918 * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
8919 * lib/bitset.h (bitset_set, bitset_reset): Likewise.
8920 * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
8921 * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
8922 * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
8923
8924 * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
8925 portability to one's complement hosts!).
8926 * lib/ebitset.c (ebitset_op1): Likewise.
8927 * lib/lbitset.c (lbitset_op1): Likewise.
8928
8929 * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
8930 * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
8931 lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
8932 Sync with fileutils.
8933 * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
8934 lib/gettext.h: Sync with diffutils.
8935
8936 * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
8937 lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
8938
8939 * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
8940 PROTOTYPES to check for prototypes, and "defined __STDC__" to
8941 check for void *.
8942
8943 * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
8944 size_t; the old version tried to do this but casted improperly.
8945 (bitset_bindex, bitset_windex): Now size_t, not unsigned long.
8946 (bitset_test): Now returns int, not unsigned long.
8947
8948 * lib/bitset_stats.c: Include "gettext.h".
8949 (_): New macro.
8950 (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
8951 name locals "index", as it generates unnecessary warnings on some
8952 hosts that have an "index" function.
8953
8954 * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
8955 bitset_stats_read, bitset_stats_write): Wrap strings in _() if
8956 they need translation.
8957 * src/LR0.c (state_list_append, new_itemsets, get_state,
8958 append_states, generate_states): Likewise.
8959 * src/assoc.c (assoc_to_string): Likewise.
8960 * src/closure.c (print_closure, set_firsts, closure): Likewise.
8961 * src/gram.c (grammar_dump): Likewise.
8962 * src/injections.c (injections_compute): Likewise.
8963 * src/lalr.c (lookaheads_print): Likewise.
8964 * src/relation.c (relation_transpose): Likewise.
8965 * src/scan-gram.l: Likewise.
8966 * src/tables.c (table_grow, pack_vector): Likewise.
8967
8968 * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
8969 glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
8970 * m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
8971 * m4/mbstate_t.m4: Sync with fileutils.
8972 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
8973
8974 * po/LINGUAS: Add pt_BR.
8975 * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
8976 src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
8977 lib/timevar.c.
8978 Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
8979 manual recommends.
8980 Similarly, use src/scan-gram.l instead of src/scan-gram.c.
8981
8982 * src/complain.c (strerror_r): Remove decl; not needed.
8983 (strerror): Use same pattern as ../lib/error.c.
8984
8985 * src/files.c, src/files.h (compute_header_macro): Remove; unused.
8986
8987 * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
8988
8989 * src/main.c (main): Cast result of bindtextdomain and textdomain
8990 to void, to avoid a GCC warning when --disable-nls is in effect.
8991
8992 * src/scan-gram.l: Use strings rather than escapes when possible,
8993 to minimize the number of warnings from xgettext.
8994 (handle_action_dollar, handle_action_at): Don't use isdigit,
8995 as it mishandles negative chars and it may not work as expected
8996 outside the C locale.
8997
8998 * src/symtab.c (symbol_get): Don't cast LHS of an assignment;
8999 this is a GCC extension and is not portable to other compilers.
9000
9001 * src/system.h (alloca): Use same pattern as ../lib/error.c.
9002 Do not include <ctype.h>; no longer needed.
9003 Do not include <malloc.h>; no longer needed (and generates
9004 warnings on OpenBSD 3.0).
9005
9006 * tests/cxx-type.at (yylex): Do not pass signed char to isupper;
9007 it's not portable.
9008
9009 * tests/regression.at: Do not use 'cc -c input.c -o input';
9010 Sun C rejects this. Instead, use 'cc -c input.c -o input.o'.
9011
9012 * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
9013 exit status as failure, not just exit status 1. Sun C exits
9014 with status 2 sometimes.
9015
9016 * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
9017 Use it for the two large tests.
9018
c8f002c7
AD
90192002-08-02 Akim Demaille <akim@epita.fr>
9020
9021 * src/conflicts.c (conflicts_output): Don't output rules never
9022 reduced here, since anyway that computation doesn't work.
9023 * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
9024 (rule_useless_p, rule_never_reduced_p): New.
9025 (grammar_rules_partial_print): Use a filter instead of a range.
9026 Display the title only if needed.
9027 (grammar_rules_print): Adjust.
9028 (grammar_rules_never_reduced_report): New.
9029 * src/tables.c (action_row): Move the computation of rules never
9030 reduced to...
9031 (token_actions): here.
9032 * src/main.c (main): Make the parser before making the report, so
9033 that rules never reduced are computed.
9034 Call grammar_rules_never_reduced_report.
9035 * src/print.c (print_results): Report rules never reduced.
9036 * tests/conflicts.at, tests/reduce.at: Adjust.
9037
cd08e51e
AD
90382002-08-01 Akim Demaille <akim@epita.fr>
9039
9040 Instead of attaching lookaheads and duplicating the rules being
9041 reduced by a state, attach the lookaheads to the reductions.
9042
9043 * src/state.h (state_t): Remove the `lookaheads',
9044 `lookaheads_rule' member.
9045 (reductions_t): Add a `lookaheads' member.
9046 Use a regular array for the `rules'.
9047 * src/state.c (reductions_new): Initialize the lookaheads member
9048 to 0.
9049 (state_rule_lookaheads_print): Adjust.
9050 * src/state.h, src/state.c (state_reductions_find): New.
9051 * src/conflicts.c (resolve_sr_conflict, set_conflicts)
9052 (count_rr_conflicts): Adjust.
9053 * src/lalr.c (LArule): Remove.
9054 (add_lookback_edge): Adjust.
9055 (state_lookaheads_count): New.
9056 (states_lookaheads_initialize): Merge into...
9057 (initialize_LA): this.
9058 (lalr_free): Adjust.
9059 * src/main.c (main): Don't free nullable and derives too early: it
9060 is used by --verbose.
9061 * src/print.c, src/print_graph.c, src/tables.c: Adjust.
9062
bb0027a9
AD
90632002-08-01 Akim Demaille <akim@epita.fr>
9064
9065 * src/derives.h, src/derives.c (derives): A `rule_t***' instead of
9066 `rule_number_t**'.
9067 (set_derives, free_derives): Rename as...
9068 (derives_compute, derives_free): this.
9069 Adjust all dependencies.
9070 * src/nullable.c (set_nullable, free_nullable): Rename as...
9071 (nullable_compute, nullable_free): these.
9072 (rule_list_t): Store rule_t *, not rule_number_t.
9073 * src/state.c (state_rule_lookaheads_print): Directly compare rule
9074 pointers, instead of their numbers.
9075 * src/main.c (main): Call nullable_free, and derives_free earlier,
9076 as they were lo longer used.
9077
3325ddc4
AD
90782002-08-01 Akim Demaille <akim@epita.fr>
9079
9080 * lib/timevar.c (get_time): Include children time.
9081 * src/lalr.h (LA, LArule): Don't export them: used with the
9082 state_t.
9083 * src/lalr.c (LA, LArule): Static.
9084 * src/lalr.h, src/lalr.c (lalr_free): New.
9085 * src/main.c (main): Call it.
9086 * src/tables.c (pack_vector): Check whether loc is >= to the
9087 table_size, not >.
9088 (pack_tables): Don't free froms, tos, conflict_tos, and pos...
9089 (tables_generate): do it, since that's also it which allocates
9090 them.
9091 Don't free LA and LArule, main does.
9092
c6f1a33c
AD
90932002-07-31 Akim Demaille <akim@epita.fr>
9094
9095 Separate parser tables computation and output.
9096
9097 * src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
9098 (conflict_list, conflict_list_cnt, table, check, table_ninf)
9099 (yydefgoto, yydefact, high): Move to...
9100 * src/tables.h, src/tables.c: here.
9101 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
9102 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
9103 (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
9104 (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
9105 (ACTION_MIN, actrow, order, nentries, pos, conflrow)
9106 (conflict_list_free, table_size, lowzero, table_grow, conflict_row)
9107 (action_row, save_row, token_actions, save_column, default_goto)
9108 (goto_actions, sort_actions, matching_state, pack_vector)
9109 (table_ninf_remap, pack_table, prepare_actions): Move to...
9110 * src/tables.c: here.
9111 * src/tables.h, src/tables.c(tables_generate, tables_free): New.
9112 * src/output.c (token_actions, output_base, output_conflicts)
9113 (output_check): Merge into...
9114 (prepare_actions): this.
9115 (actions_output): Rename as...
9116 (user_actions_output): this.
9117 * src/main.c (main): Call tables_generate and tables_free.
9118
1509d42f
AD
91192002-07-31 Akim Demaille <akim@epita.fr>
9120
9121 Steal GCC's --time-report support.
9122
9123 * lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
9124 stolen/adjusted from GCC.
9125 * m4/stage.m4: Remove time related checks.
9126 * m4/timevar.m4: New.
9127 * configure.in: Adjust.
9128 * src/system.h: Adjust to using timevar.h.
9129 * src/getargs.h, src/getargs.c: Support trace_time for
9130 --trace=time.
9131 * src/main.c (stage): Remove.
9132 (main): Replace `stage' invocations with timevar calls.
9133 * src/output.c: Insert pertinent timevar calls.
9134
273a74fa
AD
91352002-07-31 Akim Demaille <akim@epita.fr>
9136
9137 Let --trace have arguments.
9138
9139 * src/getargs.h (enum trace_e): New.
9140 * src/getargs.c (trace_args, trace_types, trace_argmatch): New.
9141 (long_options, short_options): --trace/-T takes an optional
9142 argument.
9143 Change all the uses of trace_flag to reflect the new flags.
9144 * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
9145
9146 Strengthen `stage' portability.
9147
9148 * m4/stage.m4 (BISON_PREREQ_STAGE): New.
9149 * configure.in: Use it.
9150 Don't check for malloc.h and sys/times.h.
9151 * src/system.h: Include them when appropriate.
9152 * src/main.c (stage): Compile only when mallinfo, struct mallinfo,
9153 times and struct tms are available.
9154
217598da
AD
91552002-07-30 Akim Demaille <akim@epita.fr>
9156
9157 In verbose parse error message, don't report `error' as an
9158 expected token.
9159 * tests/actions.at (Printers and Destructors): Adjust.
9160 * tests/calc.at (Calculator $1): Adjust.
9161 * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
9162 error message, do not report the parser accepts the error token in
9163 that state.
9164
52489d44
AD
91652002-07-30 Akim Demaille <akim@epita.fr>
9166
9167 Normalize conflict related messages.
9168
9169 * src/complain.h, src/complain.c (warn, complain): New.
9170 * src/conflicts.c (conflicts_print): Use them.
9171 (conflict_report_yacc): New, extracted from...
9172 (conflicts_print): here.
9173 * tests/conflicts.at, tests/existing.at: Adjust.
9174
e8832397
AD
91752002-07-30 Akim Demaille <akim@epita.fr>
9176
9177 Report rules which are never reduced by the parser: those hidden
9178 by conflicts.
9179
9180 * src/LR0.c (save_reductions): Don't make the final state too
9181 different: save its reduction (accept) instead of having a state
9182 without any action (no shift or goto, no reduce).
9183 Note: the final state is now a ``regular'' state, i.e., the
9184 parsers now contain `reduce 0' as default reduction.
9185 Nevertheless, since they decide to `accept' when yystate =
9186 final_state, they still will not reduce rule 0.
9187 * src/print.c (print_actions, print_reduction): Adjust.
9188 * src/output.c (action_row): Track reduced rules.
9189 (token_actions): Report rules never reduced.
9190 * tests/conflicts.at, tests/regression.at: Adjust.
9191
caf23d24
AD
91922002-07-30 Akim Demaille <akim@epita.fr>
9193
9194 `stage' was accidently included in a previous patch.
9195 Initiate its autoconfiscation.
9196
9197 * configure.in: Look for malloc.h and sys/times.h.
9198 * src/main.c (stage): Adjust.
9199 Report only when trace_flag.
9200
640748ee
AD
92012002-07-29 Akim Demaille <akim@epita.fr>
9202
9203 * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
9204 state_number_t.
9205 (errs_t): symbol_t*, not symbol_number_t.
9206 (reductions_t): rule_t*, not rule_number_t.
9207 (FOR_EACH_SHIFT): New.
9208 * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
9209 * src/print.c, src/print_graph.c: Adjust.
9210
88bce5a2
AD
92112002-07-29 Akim Demaille <akim@epita.fr>
9212
9213 Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
9214
9215 * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
9216 (endtoken, accept): these.
9217 * src/reader.c (reader): Set endtoken's default tag to "$end".
9218 Set undeftoken's tag to "$undefined" instead of "$undefined.".
9219 * doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
9220 Adjust.
9221
1bfb97db
AD
92222002-07-29 Akim Demaille <akim@epita.fr>
9223
9224 * src/reduce.c (reduce_grammar): When the language is empty,
9225 complain about the start symbol, not the axiom.
9226 Use its location.
9227 * tests/reduce.at (Empty Language): New.
9228
fc5734fe
AD
92292002-07-26 Akim Demaille <akim@epita.fr>
9230
9231 * src/reader.h, src/reader.c (gram_error): ... can't get
9232 yycontrol without making too strong assumptions on the parser
9233 itself.
9234 * src/output.c (prepare_tokens): Use the real 0th value of
9235 token_translations instead of `0'.
9236 * src/parse-gram.y (yyerror): Don't rely on yycontrol being
9237 visible here.
9238 * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
9239 for the time being: %locations ought to provide it to yyerror.
9240
3650b4b8
AD
92412002-07-25 Akim Demaille <akim@epita.fr>
9242
9243 * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
9244 * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
9245 * tests/regression.at (Web2c Actions): Adjust.
9246
4b3d3a8e
AD
92472002-07-25 Akim Demaille <akim@epita.fr>
9248
9249 Stop storing rules from 1 to nrules + 1.
9250
9251 * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
9252 * src/nullable.c, src/output.c, src/print.c, src/reader.c
9253 * src/reduce.c: Allocate and free from &rules[0], not &rules[1].
9254 Iterate from 0 to nrules.
9255 Use rule_number_as_item_number and item_number_as_rule_number.
9256 Adjust to `derive' now containing possibly 0.
9257 * src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
9258 Handle the `- 1' part in rule numbers from/to item numbers.
9259 * src/conflicts.c (log_resolution): Fix the message which reversed
9260 shift and reduce.
9261 * src/output.c (action_row): Initialize default_rule to -1.
9262 (token_actions): Adjust.
9263 * tests/sets.at (Nullable, Firsts): Fix the previously bogus
9264 expected output.
9265 * tests/conflicts.at (Resolved SR Conflicts): Likewise.
9266
4a2a22f4
AD
92672002-07-25 Akim Demaille <akim@epita.fr>
9268
9269 * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
9270 (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
9271 (b4_c_knr_arg_decl): New.
9272 * data/yacc.c: Use it to define yysymprint, yydestruct, and
9273 yyreport_parse_error.
9274
b8df3223
AD
92752002-07-25 Akim Demaille <akim@epita.fr>
9276
9277 * data/yacc.c (yyreport_parse_error): New, extracted from...
9278 (yyparse): here.
9279 (yydestruct, yysymprint): Move above yyparse.
9280 Be K&R compliant.
9281
a762e609
AD
92822002-07-25 Akim Demaille <akim@epita.fr>
9283
9284 * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
9285 replace...
9286 (b4_sint_type, b4_uint_type): these.
9287 * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
9288 * tests/regression.at (Web2c Actions): Adjust.
9289
12b0043a
AD
92902002-07-25 Akim Demaille <akim@epita.fr>
9291
9292 * src/gram.h (TIEM_NUMBER_MAX): New.
9293 (item_number_of_rule_number, rule_number_of_item_number): Rename
9294 as...
9295 (rule_number_as_item_number, item_number_as_rule_number): these.
9296 Adjust dependencies.
9297 * src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
9298 (VECTOR_NUMBER_MIN, state_number_to_vector_number)
9299 (symbol_number_to_vector_number): New.
9300 (order): Of vector_number_t* type.
9301 (base_t, BASE_MAX, BASE_MIN): New.
9302 (froms, tos, width, pos, check): Of base_t type.
9303 (action_number_t, ACTION_MIN, ACTION_MAX): New.
9304 (actrow): Of action_number_t type.
9305 (conflrow): Of unsigned int type.
9306 (table_ninf, base_ninf): New.
9307 (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
9308 (muscle_insert_int_table, muscle_insert_base_table)
9309 (muscle_insert_rule_number_table): New.
9310 (prepare_tokens): Output `toknum' as int_table.
9311 (action_row): Returns a rule_number_t.
9312 Use ACTION_MIN, not SHRT_MIN.
9313 (token_actions): yydefact is rule_number_t*.
9314 (table_ninf_remap): New.
9315 (pack_table): Use it for `base' and `table'.
9316 * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
9317 replaced with...
9318 (YYPACT_NINF, YYTABLE_NINF): these.
9319 (yypact, yytable): Compute their types instead of hard-coded
9320 `short'.
9321 * tests/regression.at (Web2c Actions): Adjust.
9322
5dde258a
AD
93232002-07-19 Akim Demaille <akim@epita.fr>
9324
9325 * src/scan-gram.l (id): Can start with an underscore.
9326
a945ec39
AD
93272002-07-16 Akim Demaille <akim@epita.fr>
9328
9329 * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
9330 Adjust all former `associativity' dependencies.
9331 * src/symtab.c (symbol_new): Default associativity is `undef', not
9332 `right'.
9333 (symbol_check_alias_consistence): Adjust.
9334
fae437e8
AD
93352002-07-09 Akim Demaille <akim@epita.fr>
9336
9337 * doc/bison.texinfo: Properly set the ``header'' part.
9338 Use @dircategory ``GNU programming tools'' as per Texinfo's
9339 documentation.
9340 Use @copying.
9341
1a715ef2
AD
93422002-07-09 Akim Demaille <akim@epita.fr>
9343
9344 * lib/quotearg.h: Protect against multiple inclusions.
9345 * src/location.h (location_t): Add a `file' member.
9346 (LOCATION_RESET, LOCATION_PRINT): Adjust.
9347 * src/complain.c (warn_at, complain_at, fatal_at): Drop
9348 `error_one_per_line' support.
9349
a5d50994
AD
93502002-07-09 Akim Demaille <akim@epita.fr>
9351
9352 * src/complain.h, src/complain.c (warn, complain): Remove, unused.
9353 * src/reader.c (lineno): Remove.
9354 Adjust all dependencies.
9355 (get_merge_function): Take a location and use complain_at.
9356 * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
9357 * tests/regression.at (Invalid inputs, Mixing %token styles):
9358 Adjust.
9359
b275314e
AD
93602002-07-09 Akim Demaille <akim@epita.fr>
9361
9362 * src/parse-gram.y (rules_or_grammar_declaration): Add an error
9363 recovery rule, and forbid extensions when --yacc.
9364 (gram_error): Use complain_at.
9365 * src/reader.c (reader): Exit if there were parse errors.
9366
865b9df1
AD
93672002-07-09 Akim Demaille <akim@epita.fr>
9368
9369 * tests/synclines.at (AT_SYNCLINES_COMPILE): New.
9370 (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
9371 Reported by R Blake <blakers@mac.com>.
9372
c76e14da
AD
93732002-07-09 Akim Demaille <akim@epita.fr>
9374
9375 * data/yacc.c: Output the copyright notive in the header.
9376
7db2ed2d
AD
93772002-07-03 Akim Demaille <akim@epita.fr>
9378
9379 * src/output.c (froms, tos): Are state_number_t.
9380 (save_column): sp, sp1, and sp2 are state_number_t.
9381 (prepare): Rename `final' as `final_state_number', `nnts' as
9382 `nterms_number', `nrules' as `rules_number', `nstates' as
9383 `states_number', and `ntokens' as `tokens_number'. Remove `nsym',
9384 unused.
9385 * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
9386 * data/lalr1.cc (nsym_): Remove, unused.
9387
e68e0410
AD
93882002-07-03 Akim Demaille <akim@epita.fr>
9389
9390 * src/lalr.h, src/lalr.c (goto_number_t): New.
9391 * src/lalr.c (goto_list_t): New.
9392 Propagate them.
9393 * src/nullable.c (rule_list_t): New.
9394 Propagate.
9395 * src/types.h: Remove.
9396
e1a4f3a4
AD
93972002-07-03 Akim Demaille <akim@epita.fr>
9398
9399 * src/closure.c (print_fderives): Use rule_rhs_print.
9400 * src/derives.c (print_derives): Use rule_rhs_print.
9401 (rule_list_t): New, replaces `shorts'.
9402 (set_derives): Add comments.
9403 * tests/sets.at (Nullable, Firsts): Adjust.
9404
536545f3
AD
94052002-07-03 Akim Demaille <akim@epita.fr>
9406
9407 * src/output.c (prepare_actions): Free `tally' and `width'.
9408 (prepare_actions): Allocate and free `order'.
9409 * src/symtab.c (symbols_free): Free `symbols'.
9410 * src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
9411 * src/output.c (m4_invoke): Move to...
9412 * src/scan-skel.l: here.
9413 (<<EOF>>): Close yyout, and free its name.
9414
8b752b00
AD
94152002-07-03 Akim Demaille <akim@epita.fr>
9416
9417 Fix some memory leaks, and fix a bug: state 0 was examined twice.
9418
9419 * src/LR0.c (new_state): Merge into...
9420 (state_list_append): this.
9421 (new_states): Merge into...
9422 (generate_states): here.
9423 (set_states): Don't ensure a proper `errs' state member here, do it...
9424 * src/conflicts.c (conflicts_solve): here.
9425 * src/state.h, src/state.c: Comment changes.
9426 (state_t): Rename member `shifts' as `transitions'.
9427 Adjust all dependencies.
9428 (errs_new): For consistency, also take the values as argument.
9429 (errs_dup): Remove.
9430 (state_errs_set): New.
9431 (state_reductions_set, state_transitions_set): Assert that no
9432 previous value was assigned.
9433 (state_free): New.
9434 (states_free): Use it.
9435 * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
9436 temporary storage: use `errs' and `nerrs' as elsewhere.
9437 (set_conflicts): Allocate and free this `errs'.
9438
613f5e1a
AD
94392002-07-02 Akim Demaille <akim@epita.fr>
9440
9441 * lib/libiberty.h: New.
9442 * lib: Update the bitset implementation from upstream.
9443 * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
9444 * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
9445 * src/main.c: Adjust bitset stats calls.
9446
26e0cadc
PE
94472002-07-01 Paul Eggert <eggert@twinsun.com>
9448
9449 * src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
9450 char, so that negative chars don't collide with $.
9451
1154cced
AD
94522002-06-30 Akim Demaille <akim@epita.fr>
9453
9454 Have the GLR tests be `warning' checked, and fix the warnings.
9455
9456 * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
9457 (yyuserAction, yyreportAmbiguity): `Use' all the arguments.
9458 (yyremoveDeletes): `yyi' and `yyj' are size_t.
9459 Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
9460 (yyaddDeferredAction): static.
9461 (yyglrReduce): yyi, yyk, amd yyposn are size_t.
9462 (yyreportParseError): yyprefix is const.
9463 yytokenp is used only when verbose.
9464 (yy__GNUC__): Replace with __GNUC__.
9465 (yypdumpstack): yyi is size_t.
9466 (yypreference): Un-yy local variables and arguments, to avoid
9467 clashes with `yyr1'. Anyway, we are not in the user name space.
9468 (yytname_size): be an int, as is compared with ints.
9469 * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
9470 Use them.
9471 * tests/cxx-gram.at: Use quotation to protect $1.
9472 Use AT_COMPILE to enable warnings hunts.
9473 Prototype yylex and yyerror.
9474 `Use' argc.
9475 Include `string.h', not `strings.h'.
9476 Produce and prototype stmtMerge only when used.
9477 yylex takes a location.
9478
97650f4e
AD
94792002-06-30 Akim Demaille <akim@epita.fr>
9480
9481 We spend a lot of time in quotearg, in particular when --verbose.
9482
9483 * src/symtab.c (symbol_get): Store a quoted version of the key.
9484 (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
9485 Adjust all callers.
9486
d2576365
AD
94872002-06-30 Akim Demaille <akim@epita.fr>
9488
9489 * src/state.h (reductions_t): Rename member `nreds' as num.
9490 (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
9491 * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
9492
ccaf65bc
AD
94932002-06-30 Akim Demaille <akim@epita.fr>
9494
9495 * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
9496 (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
9497 (shifts_to): Rename as...
9498 (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
9499 (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
9500 (TRANSITION_IS_DISABLED, transitions_to): these.
9501
87675353
AD
95022002-06-30 Akim Demaille <akim@epita.fr>
9503
9504 * src/print.c (print_shifts, print_gotos): Merge into...
9505 (print_transitions): this.
9506 (print_transitions, print_errs, print_reductions): Align the
9507 lookaheads columns.
9508 (print_core, print_transitions, print_errs, print_state,
9509 print_grammar): Output empty lines separator before, not after.
9510 (state_default_rule_compute): Rename as...
9511 (state_default_rule): this.
9512 * tests/conflicts.at (Defaulted Conflicted Reduction),
9513 (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
9514 * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
9515
ce4ccb4b
AD
95162002-06-30 Akim Demaille <akim@epita.fr>
9517
9518 Display items as we display rules.
9519
9520 * src/gram.h, src/gram.c (rule_lhs_print): New.
9521 * src/gram.c (grammar_rules_partial_print): Use it.
9522 * src/print.c (print_core): Likewise.
9523 * tests/conflicts.at (Defaulted Conflicted Reduction),
9524 (Unresolved SR Conflicts): Adjust.
9525 (Unresolved SR Conflicts): Adjust and rename as...
9526 (Resolved SR Conflicts): this, as was meant.
9527 * tests/regression.at (Web2c Report): Adjust.
9528
bc933ef1
AD
95292002-06-30 Akim Demaille <akim@epita.fr>
9530
9531 * src/print.c (state_default_rule_compute): New, extracted from...
9532 (print_reductions): here.
9533 Pessimize, but clarify the code.
9534 * tests/conflicts.at (Defaulted Conflicted Reduction): New.
9535
53d4308d
AD
95362002-06-30 Akim Demaille <akim@epita.fr>
9537
9538 * src/output.c (action_row): Let default_rule be always a rule
9539 number.
9540
574fb2d5
AD
95412002-06-30 Akim Demaille <akim@epita.fr>
9542
9543 * src/closure.c (print_firsts, print_fderives, closure):
9544 Use BITSET_EXECUTE.
9545 * src/lalr.c (lookaheads_print): Likewise.
9546 * src/state.c (state_rule_lookaheads_print): Likewise.
9547 * src/print_graph.c (print_core): Likewise.
9548 * src/print.c (print_reductions): Likewise.
9549 * src/output.c (action_row): Likewise.
9550 Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
9551
05811fd7
AD
95522002-06-30 Akim Demaille <akim@epita.fr>
9553
9554 * src/print_graph.c: Use report_flag.
9555
0e4d5753
AD
95562002-06-30 Akim Demaille <akim@epita.fr>
9557
9558 * src/lalr.c (traverse, digraph, matrix_print, transpose): Move
9559 to...
9560 * src/relation.h, src/relation.c (traverse, relation_digraph)
9561 (relation_print, relation_transpose): New.
9562
24c7d800
AD
95632002-06-30 Akim Demaille <akim@epita.fr>
9564
9565 * src/state.h, src/state.c (shifts_to): New.
9566 * src/lalr.c (build_relations): Use it.
9567
9222837b
AD
95682002-06-30 Akim Demaille <akim@epita.fr>
9569
9570 * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
9571 (item_number_of_rule_number, rule_number_of_item_number): New.
9572 * src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
9573 * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
9574 * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
9575 Propagate their use.
9576 Much remains to be done, in particular wrt `shorts' from types.h.
9577
260008e5
AD
95782002-06-30 Akim Demaille <akim@epita.fr>
9579
9580 * src/symtab.c (symbol_new): Initialize the `printer' member.
9581
8a731ca8
AD
95822002-06-30 Akim Demaille <akim@epita.fr>
9583
9584 * src/LR0.c (save_reductions): Remove, replaced by...
9585 * src/state.h, src/state.c (state_reductions_set): New.
9586 (reductions, errs): Rename as...
9587 (reductions_t, errs_t): these.
9588 Adjust all dependencies.
9589
32e1e0a4
AD
95902002-06-30 Akim Demaille <akim@epita.fr>
9591
9592 * src/LR0.c (state_list_t, state_list_append): New.
9593 (first_state, last_state): Now symbol_list_t.
9594 (this_state): Remove.
9595 (new_itemsets, append_states, save_reductions): Take a state_t as
9596 argument.
9597 (set_states, generate_states): Adjust.
9598 (save_shifts): Remove, replaced by...
9599 * src/state.h, src/state.c (state_shifts_set): New.
9600 (shifts): Rename as...
9601 (shifts_t): this.
9602 Adjust all dependencies.
9603 * src/state.h (state_t): Remove the `next' member.
9604
e5fb6710
AD
96052002-06-30 Akim Demaille <akim@epita.fr>
9606
9607 * src/vcg.c (quote): Use slot 2, since we often pass symbol tag
9608 escaped in slot 0.
9609
c7ca99d4
AD
96102002-06-30 Akim Demaille <akim@epita.fr>
9611
9612 Use hash.h for the state hash table.
9613
9614 * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
9615 (allocate_storage): Use state_hash_new.
9616 (free_storage): Use state_hash_free.
9617 (new_state, get_state): Adjust.
9618 * src/lalr.h, src/lalr.c (states): Move to...
9619 * src/states.h (state_t): Remove the `link' member, no longer
9620 used.
9621 * src/states.h, src/states.c: here.
9622 (state_hash_new, state_hash_free, state_hash_lookup)
9623 (state_hash_insert, states_free): New.
9624 * src/states.c (state_table, state_compare, state_hash): New.
9625 * src/output.c (output_actions): Do not free states now, since we
9626 still need to know the final_state number in `prepare', called
9627 afterwards. Do it...
9628 * src/main.c (main): here: call states_free after `output'.
9629
df0e7316
AD
96302002-06-30 Akim Demaille <akim@epita.fr>
9631
9632 * src/state.h, src/state.c (state_new): New, extracted from...
9633 * src/LR0.c (new_state): here.
9634 * src/state.h (STATE_ALLOC): Move to...
9635 * src/state.c: here.
9636 * src/LR0.h, src/LR0.c (nstates, final_state): Move to...
9637 * src/state.h, src/state.c: here.
9638
39f41916
AD
96392002-06-30 Akim Demaille <akim@epita.fr>
9640
9641 * src/reader.c (gensym): Rename as...
9642 * src/symtab.h, src/symtab.c (dummy_symbol_get): this.
9643 (getsym): Rename as...
9644 (symbol_get): this.
9645
d57650a5
AD
96462002-06-30 Akim Demaille <akim@epita.fr>
9647
9648 * src/state.h (state_number_t, STATE_NUMBER_MAX): New.
9649 * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
9650 * src/output.c, src/print.c, src/print_graph.c: Propagate.
9651 * src/LR0.h, src/LR0.h (final_state): Is a state_t*.
9652
5a08f1ce
AD
96532002-06-30 Akim Demaille <akim@epita.fr>
9654
9655 Make the test suite pass with warnings checked.
9656
9657 * tests/actions.at (Printers and Destructors): Improve.
9658 Avoid unsigned vs. signed issues.
9659 * tests/calc.at: Don't exercise the scanner here, do it...
9660 * tests/input.at (Torturing the Scanner): here.
9661
720623af
PH
96622002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9663
88e7e941 9664 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
720623af
PH
9665 reorganize first lines parallel to yacc.c.
9666
fb8135fa
AD
96672002-06-28 Akim Demaille <akim@epita.fr>
9668
9669 * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
9670 (b4_token_enum, b4_token_defines): New, factored from...
9671 * data/lalr1.cc, data/yacc.c, glr.c: here.
9672
41442480
AD
96732002-06-28 Akim Demaille <akim@epita.fr>
9674
9675 * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
9676 unused variables.
9677 * src/output.c (merger_output): static.
9678
e0e5bf84
AD
96792002-06-28 Akim Demaille <akim@epita.fr>
9680
ba0fe3c7 9681 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
e0e5bf84
AD
9682 * src/conflicts.c (conflicts_total_count): `i' is unsigned, to
9683 pacify GCC.
9684 * src/output.c (save_row): Initialize all the variables to pacify GCC.
e0e5bf84 9685
676385e2
PH
96862002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9687
9688 Accumulated changelog for new GLR parsing features.
9689
6a254321 9690 * src/conflicts.c (count_total_conflicts): Change name to
676385e2
PH
9691 conflicts_total_count.
9692 * src/conflicts.h: Ditto.
9693 * src/output.c (token_actions): Use the new name.
9694 (output_conflicts): Change conflp => conflict_list_heads, and
9695 confl => conflict_list for better readability.
9696 * data/glr.c: Use the new names.
9697 * NEWS: Add self to GLR announcement.
e0e5bf84 9698
676385e2
PH
9699 * src/reader.c (free_merger_functions): Cleanup: XFREE->free.
9700
9701 * doc/bison.texinfo (GLR Parsers): Make corrections suggested by
9702 Akim Demaille.
9703
9704 * data/bison.glr: Change name to glr.c
9705 * data/glr.c: Renamed from bison.glr.
9706 * data/Makefile.am: Add glr.c
e0e5bf84
AD
9707
9708 * src/getargs.c:
9709
676385e2 9710 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
ba0fe3c7 9711 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
e0e5bf84 9712
676385e2
PH
9713 Originally 2002-06-16 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9714
9715 * data/bison.glr: Be sure to restore the
9716 current #line when returning to the skeleton contents after having
9717 exposed the input file's #line.
9718
9719 Originally 2002-06-13 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9720
9721 * data/bison.glr: Bring up to date with changes to bison.simple.
9722
9723 Originally 2002-06-03 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9724
9725 * data/bison.glr: Correct definitions that use b4_prefix.
9726 Various reformatting.
9727 (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
9728 (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
9729 yytokenp argument; now part of stack.
9730 (yychar): Define to behave as documented.
9731 (yyclearin): Ditto.
e0e5bf84 9732
676385e2
PH
9733 Originally 2002-05-14 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9734
9735 * src/reader.h: Add declaration for free_merger_functions.
9736
9737 * src/reader.c (merge_functions): New variable.
9738 (get_merge_function): New function.
9739 (free_merger_functions): New function.
9740 (readgram): Check for %prec that is not followed by a symbol.
9741 Handle %dprec and %merge declarations.
9742 (packgram): Initialize dprec and merger fields in rules array.
9743
9744 * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
9745 conflict_list_cnt, conflict_list_free): New variables.
9746 (table_grow): Also grow conflict_table.
e0e5bf84 9747 (prepare_rules): Output dprec and merger tables.
676385e2 9748 (conflict_row): New function.
e0e5bf84 9749 (action_row): Output conflict lists for GLR parser. Don't use
676385e2
PH
9750 default reduction in conflicted states for GLR parser so that there
9751 are spaces for the conflict lists.
9752 (save_row): Also save conflict information.
9753 (token_actions): Allocate conflict list.
9754 (merger_output): New function.
9755 (pack_vector): Pack conflict table, too.
9756 (output_conflicts): New function to output yyconflp and yyconfl.
9757 (output_check): Allocate conflict_tos.
9758 (output_actions): Output conflict tables, also.
9759 (output_skeleton): Output b4_mergers definition.
9760 (prepare): Output b4_max_rhs_length definition.
9761 Use 'bison.glr' as default skeleton for GLR parsers.
9762
9763 * src/gram.c (glr_parser): New flag.
9764 (grammar_free): Call free_merger_functions.
9765
9766 * src/conflicts.c (count_rr_conflicts): Augment to optionally count
9767 all pairs of conflicting reductions, rather than just all tokens
9768 causing conflicts. Needed to size conflict tables.
e0e5bf84 9769 (conflicts_output): Modify call to count_rr_conflicts for new
676385e2
PH
9770 interface.
9771 (conflicts_print): Ditto.
9772 (count_total_conflicts): New function.
9773
9774 * src/reader.h (merger_list): New type.
9775 (merge_functions): New variable.
9776
9777 * src/lex.h (tok_dprec, tok_merge): New token types.
9778
9779 * src/gram.h (rule_s): Add dprec and merger fields.
9780 (glr_parser): New flag.
9781
9782 * src/conflicts.h (count_total_conflicts): New function.
9783
9784 * src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
9785
9786 * doc/bison.texinfo (Generalized LR Parsing): New section.
9787 (GLR Parsers): New section.
9788 (Language and Grammar): Mention GLR parsing.
9789 (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
9790 Correct typo ("tge" -> "the").
9791
9792 * data/bison.glr: New skeleton for GLR parsing.
9793
9794 * tests/cxx-gram.at: New tests for GLR parsing.
9795
9796 * tests/testsuite.at: Include cxx-gram.at.
9797
9798 * tests/Makefile.am: Add cxx-gram.at.
e0e5bf84 9799
676385e2
PH
9800 * src/parse-gram.y:
9801
9802 * src/scan-gram.l: Add %dprec, %glr-parser, %merge.
9803
9804 * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
e0e5bf84 9805
b5480d74 98062002-06-27 Akim Demaille <akim@epita.fr>
e2aaf4c4
AD
9807
9808 * src/options.h, src/options.c: Remove.
9809 * src/getargs.c (short_options, long_options): New.
9810
60491a94
AD
98112002-06-27 Akim Demaille <akim@epita.fr>
9812
9813 * data/bison.simple, data/bison.c++: Rename as...
9814 * data/yacc.c, data/lalr1.cc: these.
9815 * doc/bison.texinfo (Environment Variables): Remove.
9816
9be0c25b
AD
98172002-06-25 Raja R Harinath <harinath@cs.umn.edu>
9818
9819 * src/getargs.c (report_argmatch): Initialize strtok().
9820
1ae72863
AD
98212002-06-20 Akim Demaille <akim@epita.fr>
9822
9823 * data/bison.simple (b4_symbol_actions): New, replaces...
9824 (b4_symbol_destructor, b4_symbol_printer): these.
9825 (yysymprint): Be sure to call YYPRINT only for tokens, and using
9826 user token numbers.
9827
87542d29
AD
98282002-06-20 Akim Demaille <akim@epita.fr>
9829
9830 * data/bison.simple (yydestructor): Rename as...
9831 (yydestruct): this.
9832
1a31ed21
AD
98332002-06-20 Akim Demaille <akim@epita.fr>
9834
9835 * src/symtab.h, src/symtab.c (symbol_type_set)
9836 (symbol_destructor_set, symbol_precedence_set): The location is
9837 the last argument.
9838 Adjust all callers.
9839
e776192e
AD
98402002-06-20 Akim Demaille <akim@epita.fr>
9841
9842 * src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
9843 internals.
9844 * src/reader.h, src/reader.c (grammar_current_rule_prec_set):
9845 Takes a location.
9846 * src/symtab.h, src/symtab.c (symbol_class_set)
9847 (symbol_user_token_number_set): Likewise.
9848 Adjust all callers.
9849 Promote complain_at.
9850 * tests/input.at (Type Clashes): Adjust.
9851
5c1180b3
AD
98522002-06-20 Akim Demaille <akim@epita.fr>
9853
9854 * data/bison.simple (YYLEX): Fix the declaration when
9855 %pure-parser.
9856
e3170060
AD
98572002-06-20 Akim Demaille <akim@epita.fr>
9858
9859 * data/bison.simple (yysymprint): Don't print the token number,
9860 just its name.
9861 * tests/actions.at (Destructors): Rename as...
9862 (Printers and Destructors): this.
9863 Also exercise %printer.
9864
253862fd
AD
98652002-06-20 Akim Demaille <akim@epita.fr>
9866
9867 * data/bison.simple (YYDSYMPRINT): New.
9868 Use it to remove many of the #if YYDEBUG/if (yydebug).
9869
366eea36
AD
98702002-06-20 Akim Demaille <akim@epita.fr>
9871
9872 * src/symtab.h, src/symtab.c (symbol_t): printer and
9873 printer_location are new members.
9874 (symbol_printer_set): New.
9875 * src/parse-gram.y (PERCENT_PRINTER): New token.
9876 Handle its associated rule.
9877 * src/scan-gram.l: Adjust.
9878 (handle_destructor_at, handle_destructor_dollar): Rename as...
9879 (handle_symbol_code_at, handle_symbol_code_dollar): these.
9880 * src/output.c (symbol_printers_output): New.
9881 (output_skeleton): Call it.
9882 * data/bison.simple (yysymprint): New. Cannot be named yyprint
9883 since there are already many grammar files with a user `yyprint'.
9884 Replace the calls to YYPRINT to calls to yysymprint.
9885 * tests/calc.at: Adjust.
9886 * tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
9887 taking advantage of parser very internal details (stack size!).
9888
4f25ebb0
AD
98892002-06-20 Akim Demaille <akim@epita.fr>
9890
9891 * src/scan-gram.l: Complete the scanner with the missing patterns
9892 to pacify Flex.
9893 Use `quote' and `symbol_tag_get' where appropriate.
9894
93b68a0e
AD
98952002-06-19 Akim Demaille <akim@epita.fr>
9896
9897 * tests/actions.at (Destructors): Augment to test locations.
9898 * data/bison.simple (yydestructor): Pass it the current location
9899 if locations are enabled.
9900 Prototype only when __STDC__ or C++.
9901 Change the argument names to move into the yy name space: there is
9902 user code here.
9903
58612f1d
AD
99042002-06-19 Akim Demaille <akim@epita.fr>
9905
74310291
AD
9906 * data/bison.simple (b4_pure_if): New.
9907 Use it instead of #ifdef YYPURE.
9908
99092002-06-19 Akim Demaille <akim@epita.fr>
9910
9911 * data/bison.simple (b4_location_if): New.
58612f1d
AD
9912 Use it instead of #ifdef YYLSP_NEEDED.
9913
f25bfb75
AD
99142002-06-19 Akim Demaille <akim@epita.fr>
9915
9916 Prepare @$ in %destructor, but currently don't bind it in the
9917 skeleton, as %location use is not cleaned up yet.
9918
9919 * src/scan-gram.l (handle_dollar, handle_destructor_at)
9920 (handle_action_at): New.
9921 (handle_at, handle_action_dollar, handle_destructor_dollar): Take
9922 a braced_code_t and a location as additional arguments.
9923 (handle_destructor_dollar): Instead of requiring `b4_eval', just
9924 unquote one when outputting `b4_dollar_dollar'.
9925 Adjust callers.
9926 * data/bison.simple (b4_eval): Remove.
9927 (b4_symbol_destructor): Adjust.
9928 * tests/input.at (Invalid @n): Adjust.
9929
c732d2c6
AD
99302002-06-19 Zack Weinberg <zack@codesourcery.com>
9931
9932 * doc/bison.texinfo: Document ability to have multiple
9933 prologue sections.
9934
8c165d89
AD
99352002-06-18 Akim Demaille <akim@epita.fr>
9936
9937 * src/files.c (compute_base_names): When computing the output file
9938 names from the input file name, strip the directory part.
9939
ca98bf57
AD
99402002-06-18 Akim Demaille <akim@epita.fr>
9941
9942 * data/bison.simple.new: Comment changes.
9943 Reported by Andreas Schwab.
9944
0bfb02ff
AD
99452002-06-18 Matt Kraai <kraai@alumni.cmu.edu>
9946
9947 * data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
9948 there are no `label `yyoverflowlab' defined but not used' warnings
9949 when yyoverflow is defined.
9950
24c0aad7
AD
99512002-06-18 Akim Demaille <akim@epita.fr>
9952
9953 * src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
9954 new member.
9955 (symbol_destructor_set): Adjust.
9956 * src/output.c (symbol_destructors_output): Output the destructor
9957 locations.
9958 Output the symbol name.
9959 * data/bison.simple (b4_symbol_destructor): Adjust.
9960
5719c109
AD
99612002-06-18 Cris Bailiff <c.bailiff@awayweb.com>
9962 and Akim Demaille <akim@epita.fr>
9963
9964 * data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
9965 what's left on the stack when the error recovery hits EOF.
9966 * tests/actions.at (Destructors): Complete to exercise this case.
9967
9280d3ef
AD
99682002-06-17 Akim Demaille <akim@epita.fr>
9969
9970 * data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
9971 arguments is really empty, not only equal to `[]'.
9972 * src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
9973 member.
9974 (symbol_destructor_set): New.
9975 * src/output.c (symbol_destructors_output): New.
9976 * src/reader.h (brace_code_t, current_braced_code): New.
9977 * src/scan-gram.l (BRACED_CODE): Use it to branch on...
9978 (handle_dollar): Rename as...
9979 (handle_action_dollar): this.
9980 (handle_destructor_dollar): New.
9981 * src/parse-gram.y (PERCENT_DESTRUCTOR): New.
9982 (grammar_declaration): Use it.
9983 * data/bison.simple (yystos): Is always defined.
9984 (yydestructor): New.
9985 * tests/actions.at (Destructors): New.
9986 * tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
9987
dafdc66f
AD
99882002-06-17 Akim Demaille <akim@epita.fr>
9989
9990 * src/symlist.h, src/symlist.c (symbol_list_length): New.
9991 * src/scan-gram.l (handle_dollar, handle_at): Compute the
9992 rule_length only when needed.
9993 * src/output.c (actions_output, token_definitions_output): Output
9994 the full M4 block.
9995 * src/symtab.c: Don't access directly to the symbol tag, use
9996 symbol_tag_get.
9997 * src/parse-gram.y: Use symbol_list_free.
9998
56c47203
AD
99992002-06-17 Akim Demaille <akim@epita.fr>
10000
10001 * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
10002 (symbol_list_prepend, get_type_name): Move to...
10003 * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
10004 (symbol_list_prepend, symbol_list_n_type_name_get): here.
10005 Adjust all callers.
10006 (symbol_list_free): New.
10007 * src/scan-gram.l (handle_dollar): Takes a location.
10008 * tests/input.at (Invalid $n): Adjust.
10009
1e0bab92
AD
100102002-06-17 Akim Demaille <akim@epita.fr>
10011
10012 * src/reader.h, src/reader.c (symbol_list_new): Export it.
10013 (symbol_list_prepend): New.
10014 * src/parse-gram.y (%union): `list' is a new member.
10015 (symbols.1): New, replaces...
10016 (terms_to_prec.1, nterms_to_type.1): these.
10017 * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
10018 Take a location as additional argument.
10019 Adjust all callers.
10020
04e60654
AD
100212002-06-15 Akim Demaille <akim@epita.fr>
10022
10023 * src/parse-gram.y: Move %token in the declaration section so that
10024 we don't depend upon CVS Bison.
10025
10e5b8bd
AD
100262002-06-15 Akim Demaille <akim@epita.fr>
10027
10028 * src/state.h, src/state.c (state_rule_lookaheads_print): New.
10029 * src/print.c (print_core): Use it.
10030
9801d40c
AD
100312002-06-15 Akim Demaille <akim@epita.fr>
10032
10033 * src/conflicts.c (log_resolution): Accept the rule involved in
10034 the sr conflicts instead of the lookahead number that points to
10035 that rule.
10036 (flush_reduce): Accept the current lookahead vector as argument,
10037 instead of the index in LA.
10038 (resolve_sr_conflict): Accept the current number of lookahead
10039 bitset to consider for the STATE, instead of the index in LA.
10040 (set_conflicts): Adjust.
10041 * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
10042
c0263492
AD
100432002-06-15 Akim Demaille <akim@epita.fr>
10044
10045 * src/state.h (state_t): Replace the `lookaheadsp' member, a
10046 short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
10047 Adjust all dependencies.
10048 * src/lalr.c (initialize_lookaheads): Split into...
10049 (states_lookaheads_count, states_lookaheads_initialize): these.
10050 (lalr): Adjust.
10051
9757c359
AD
100522002-06-15 Akim Demaille <akim@epita.fr>
10053
10054 * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
10055 out of...
10056 (grammar_rules_print): here.
10057 * src/reduce.c (reduce_output): Use it.
10058 * tests/reduce.at (Useless Rules, Reduced Automaton)
10059 (Underivable Rules): Adjust.
10060
6b98e4b5
AD
100612002-06-15 Akim Demaille <akim@epita.fr>
10062
10063 Copy BYacc's nice way to report the grammar.
10064
10065 * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
10066 New.
10067 Don't print the rules' location, it is confusing and useless.
10068 (rule_print): Use grammar_rhs_print.
10069 * src/print.c (print_grammar): Use grammar_rules_print.
10070
6b98e4b5
AD
100712002-06-15 Akim Demaille <akim@epita.fr>
10072
10073 Complete and rationalize `useless thing' warnings.
10074
10075 * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
10076 (symbol_tag_print): New.
10077 Use them everywhere in place of accessing directly the tag member.
10078 * src/gram.h, src/gram.c (rule_print): New.
10079 Use it where a rule used to be printed `by hand'.
10080 * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
10081 (reduce_grammar_tables): Report the useless rules.
10082 (reduce_print): Useless things are a warning, not an error.
10083 Report it as such.
10084 * tests/reduce.at (Useless Nonterminals, Useless Rules):
10085 (Reduced Automaton, Underivable Rules): Adjust.
10086 * tests/regression.at (Web2c Report, Web2c Report): Adjust.
10087 * tests/conflicts.at (Unresolved SR Conflicts)
10088 (Solved SR Conflicts): Adjust.
10089
ee000ba4
AD
100902002-06-15 Akim Demaille <akim@epita.fr>
10091
10092 Let symbols have a location.
10093
10094 * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
10095 (getsym): Adjust.
10096 Adjust all callers.
10097 * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
10098 Use location_t, not int.
10099 * src/symtab.c (symbol_check_defined): Take advantage of the
10100 location.
10101 * tests/regression.at (Invalid inputs): Adjust.
10102
8efe435c
AD
101032002-06-15 Akim Demaille <akim@epita.fr>
10104
10105 * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
10106 (input): Don't try to initialize yylloc here, do it in the
10107 scanner.
10108 * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
10109 * src/gram.h (rule_t): Change line and action_line into location
10110 and action_location, of location_t type.
10111 Adjust all dependencies.
10112 * src/location.h, src/location.c (empty_location): New.
10113 * src/reader.h, src/reader.c (grammar_start_symbol_set)
10114 (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
10115 (grammar_current_rule_symbol_append)
10116 (grammar_current_rule_action_append): Expect a location as argument.
10117 * src/reader.c (grammar_midrule_action): Adjust to attach an
10118 action's location as dummy symbol location.
10119 * src/symtab.h, src/symtab.c (startsymbol_location): New.
10120 * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
10121 the line numbers.
10122
1921f1d7
AD
101232002-06-14 Akim Demaille <akim@epita.fr>
10124
10125 Grammar declarations may be found in the grammar section.
10126
10127 * src/parse-gram.y (rules_or_grammar_declaration): New.
10128 (declarations): Each declaration may end with a semicolon, not
10129 just...
10130 (grammar_declaration): `"%union"'.
10131 (grammar): Branch to rules_or_grammar_declaration.
10132
4515534c
AD
101332002-06-14 Akim Demaille <akim@epita.fr>
10134
10135 * src/main.c (main): Invoke scanner_free.
10136
f958596b
AD
101372002-06-14 Akim Demaille <akim@epita.fr>
10138
10139 * src/output.c (m4_invoke): Extracted from...
10140 (output_skeleton): here.
10141 Free tempfile.
10142
2c569025
AD
101432002-06-14 Akim Demaille <akim@epita.fr>
10144
10145 * src/parse-gram.y (directives, directive, gram)
10146 (grammar_directives, precedence_directives, precedence_directive):
10147 Rename as...
10148 (declarations, declaration, grammar, grammar_declaration)
10149 (precedence_declaration, precedence_declarator): these.
10150 (symbol_declaration): New.
10151
592e8d4d
AD
101522002-06-14 Akim Demaille <akim@epita.fr>
10153
10154 * src/files.c (action_obstack): Remove, unused.
10155 (output_obstack): Remove it, and all its dependencies, as it is no
10156 longer needed.
10157 * src/reader.c (epilogue_set): Build the epilogue in the
10158 muscle_obstack.
10159 * src/output.h, src/output.c (muscle_obstack): Move to...
10160 * src/muscle_tab.h, src/muscle_tab.h: here.
10161 (muscle_init): Initialize muscle_obstack.
10162 (muscle_free): New.
10163 * src/main.c (main): Call it.
10164
0c15323d
AD
101652002-06-14 Akim Demaille <akim@epita.fr>
10166
10167 * src/location.h: New, extracted from...
10168 * src/reader.h: here.
10169 * src/Makefile.am (noinst_HEADERS): Merge into
10170 (bison_SOURCES): this.
10171 Add location.h.
10172 * src/parse-gram.y: Use location_t instead of Bison's.
10173 * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
10174 Use location_t instead of ints.
10175
e96c9728
AD
101762002-06-14 Akim Demaille <akim@epita.fr>
10177
10178 * data/bison.simple, data/bison.c++: Be sure to restore the
10179 current #line when returning to the skeleton contents after having
10180 exposed the input file's #line.
10181
75d1fe16
AD
101822002-06-12 Akim Demaille <akim@epita.fr>
10183
10184 * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
10185 eager.
10186 * tests/actions.at (Exotic Dollars): New.
10187
6c35d22c
AD
101882002-06-12 Akim Demaille <akim@epita.fr>
10189
10190 * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
10191 ['"/] too eagerly.
10192 * tests/input.at (Torturing the Scanner): New.
10193
1d6412ad
AD
101942002-06-11 Akim Demaille <akim@epita.fr>
10195
10196 * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
10197 [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
10198 [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
10199 * src/reader.h, src/scan-gram.l (scanner_initialize): this.
10200 * src/reader.c (reader): Use it.
10201
4cdb01db
AD
102022002-06-11 Akim Demaille <akim@epita.fr>
10203
10204 * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
10205 Adjust all callers.
10206 (scanner_last_string_free): New.
10207
44995b2e
AD
102082002-06-11 Akim Demaille <akim@epita.fr>
10209
10210 * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
10211 (YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
10212 (last_string, YY_OBS_FREE): New.
10213 Use them when returning an ID.
10214
e9955c83
AD
102152002-06-11 Akim Demaille <akim@epita.fr>
10216
10217 Have Bison grammars parsed by a Bison grammar.
10218
10219 * src/reader.c, src/reader.h (prologue_augment): New.
10220 * src/reader.c (copy_definition): Remove.
10221
10222 * src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
10223 (grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
10224 (grammar_current_rule_prec_set, grammar_current_rule_check)
10225 (grammar_current_rule_symbol_append)
10226 (grammar_current_rule_action_append): Export.
10227 * src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
10228 (symbol_list_action_append): Remove.
10229 Hook the routines from reader.
10230 * src/scan-gram.l: In INITIAL, characters and strings are tokens.
10231 * src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
10232
10233 * src/reader.c (read_declarations): Remove, unused.
10234
10235 * src/parse-gram.y: Handle the epilogue.
10236 * src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
10237 (grammar_start_symbol_set): this.
10238 * src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
10239 * src/reader.c (readgram): Remove, unused.
10240 (reader): Adjust to insert eoftoken and axiom where appropriate.
10241
10242 * src/reader.c (copy_dollar): Replace with...
10243 * src/scan-gram.h (handle_dollar): this.
10244 * src/parse-gram.y: Remove `%thong'.
10245
10246 * src/reader.c (copy_at): Replace with...
10247 * src/scan-gram.h (handle_at): this.
10248
10249 * src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
10250 New.
10251
10252 * src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
10253 time being.
10254
10255 * src/reader.h, src/reader.c (grammar_rule_end): New.
10256
10257 * src/parse.y (current_type, current_class): New.
10258 Implement `%nterm', `%token' support.
10259 Merge `%term' into `%token'.
10260 (string_as_id): New.
10261 * src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
10262 type name.
10263
10264 * src/parse-gram.y: Be sure to handle properly the beginning of
10265 rules.
10266
10267 * src/parse-gram.y: Handle %type.
10268 * src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
10269
10270 * src/parse-gram.y: More directives support.
10271 * src/options.c: No longer handle source directives.
10272
10273 * src/parse-gram.y: Fix %output.
10274
10275 * src/parse-gram.y: Handle %union.
10276 Use the prologue locations.
10277 * src/reader.c (parse_union_decl): Remove.
10278
10279 * src/reader.h, src/reader.c (epilogue_set): New.
10280 * src/parse-gram.y: Use it.
10281
10282 * data/bison.simple, data/bison.c++: b4_stype is now either not
10283 defined, then default to int, or to the contents of %union,
10284 without `union' itself.
10285 Adjust.
10286 * src/muscle_tab.c (muscle_init): Don't predefine `stype'.
10287
10288 * src/output.c (actions_output): Don't output braces, as they are
10289 already handled by the scanner.
10290
10291 * src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
10292 characters to themselves.
10293
10294 * tests/reduce.at (Reduced Automaton): End the grammars with %% so
10295 that the epilogue has a proper #line.
10296
10297 * src/parse-gram.y: Handle precedence/associativity.
10298
10299 * src/symtab.c (symbol_precedence_set): Requires the symbol to be
10300 a terminal.
10301 * src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
10302 * tests/calc.at: Do not use `%token "foo"' as it makes not sense
10303 at all to define terminals that cannot be emitted.
10304
10305 * src/scan-gram.l: Escape M4 characters.
10306
10307 * src/scan-gram.l: Working properly with escapes in user
10308 strings/characters.
10309
10310 * tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
10311 (AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
10312 grammar.
10313 Use more modest sizes, as for the time being the parser does not
10314 release memory, and therefore the process swallows a huge amount
10315 of memory.
10316
10317 * tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
10318 stricter %token grammar.
10319
10320 * src/symtab.h (associativity): Add `undef_assoc'.
10321 (symbol_precedence_set): Do nothing when passed an undef_assoc.
10322 * src/symtab.c (symbol_check_alias_consistence): Adjust.
10323
10324 * tests/regression.at (Invalid %directive): Remove, as it is now
10325 meaningless.
10326 (Invalid inputs): Adjust to the new error messages.
10327 (Token definitions): The new grammar doesn't allow too many
10328 eccentricities.
10329
10330 * src/lex.h, src/lex.c: Remove.
10331 * src/reader.c (lastprec, skip_to_char, read_signed_integer)
10332 (copy_character, copy_string2, copy_string, copy_identifier)
10333 (copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
10334 (parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
10335 (parse_action): Remove.
10336 * po/POTFILES.in: Adjust.
10337
2e047461
AD
103382002-06-11 Akim Demaille <akim@epita.fr>
10339
cd05d13c 10340 * src/reader.c (parse_action): Don't store directly into the
2e047461
AD
10341 rule's action member: return the action as a string.
10342 Don't require `rule_length' as an argument: compute it.
10343 (grammar_current_rule_symbol_append)
10344 (grammar_current_rule_action_append): New, eved out from
10345 (readgram): here.
10346 Remove `action_flag', `rulelength', unused now.
10347
9af3fbce
AD
103482002-06-11 Akim Demaille <akim@epita.fr>
10349
10350 * src/reader.c (grammar_current_rule_prec_set).
10351 (grammar_current_rule_check): New, eved out from...
10352 (readgram): here.
10353 Remove `xaction', `first_rhs': useless.
10354 * tests/input.at (Type clashes): New.
10355 * tests/existing.at (GNU Cim Grammar): Adjust.
10356
1485e106
AD
103572002-06-11 Akim Demaille <akim@epita.fr>
10358
10359 * src/reader.c (grammar_midrule_action): New, Eved out from
10360 (readgram): here.
10361
da4160c3
AD
103622002-06-11 Akim Demaille <akim@epita.fr>
10363
10364 * src/reader.c (grammar_rule_begin, previous_rule, current_rule):
10365 New.
10366 (readgram): Use them as replacement of inlined code, crule and
10367 crule1.
10368
f6d0f937
AD
103692002-06-11 Akim Demaille <akim@epita.fr>
10370
10371 * src/reader.c (grammar_end, grammar_symbol_append): New.
10372 (readgram): Use them.
10373 Make the use of `p' as local as possible.
10374
69078d4b
AD
103752002-06-10 Akim Demaille <akim@epita.fr>
10376
10377 GCJ's parser requires the tokens to be defined before the prologue.
10378
10379 * data/bison.simple: Output the token definition before the user's
10380 prologue.
10381 * tests/regression.at (Braces parsing, Duplicate string)
10382 (Mixing %token styles): Check the output from bison.
10383 (Early token definitions): New.
10384
5e424082
AD
103852002-06-10 Akim Demaille <akim@epita.fr>
10386
10387 * src/symtab.c (symbol_user_token_number_set): Don't complain when
10388 assigning twice the same user number to a token, so that we can
10389 use it in...
10390 * src/lex.c (lex): here.
10391 Also use `symbol_class_set' instead of hand written code.
10392 * src/reader.c (parse_assoc_decl): Likewise.
10393
44536b35
AD
103942002-06-10 Akim Demaille <akim@epita.fr>
10395
10396 * src/symtab.c, src/symtab.c (symbol_class_set)
10397 (symbol_user_token_number_set): New.
10398 * src/reader.c (parse_token_decl): Use them.
10399 Use a switch instead of ifs.
10400 Use a single argument.
10401
8b9f2372
AD
104022002-06-10 Akim Demaille <akim@epita.fr>
10403
10404 Remove `%thong' support as it is undocumented, unused, duplicates
10405 `%token's job, and creates useless e-mail traffic with people who
10406 want to know what it is, why it is undocumented, unused, and
10407 duplicates `%token's job.
10408
10409 * src/reader.c (parse_thong_decl): Remove.
10410 * src/options.c (option_table): Remove "thong".
10411 * src/lex.h (tok_thong): Remove.
10412
3ae2b51f
AD
104132002-06-10 Akim Demaille <akim@epita.fr>
10414
10415 * src/symtab.c, src/symtab.c (symbol_type_set)
10416 (symbol_precedence_set): New.
10417 * src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
10418 (value_components_used): Remove, unused.
10419
2f1afb73
AD
104202002-06-09 Akim Demaille <akim@epita.fr>
10421
10422 Move symbols handling code out of the reader.
10423
10424 * src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
10425 (axiom): Move to...
10426 * src/symtab.h, src/symtab.c: here.
10427
10428 * src/gram.c (start_symbol): Remove: use startsymbol->number.
10429 * src/reader.c (startval): Rename as...
10430 * src/symtab.h, src/symtab.c (startsymbol): this.
10431 * src/reader.c: Adjust.
10432
10433 * src/reader.c (symbol_check_defined, symbol_make_alias)
10434 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
10435 (token_translations_init)
10436 Move to...
10437 * src/symtab.c: here.
10438 * src/reader.c (packsymbols): Move to...
10439 * src/symtab.h, src/symtab.c (symbols_pack): here.
10440 * src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
10441 argument.
10442
e9bca3ad
AD
104432002-06-03 Akim Demaille <akim@epita.fr>
10444
10445 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
10446 then statements.
10447
86eff183
AD
104482002-06-03 Akim Demaille <akim@epita.fr>
10449
10450 * src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
10451 structs with non literals.
10452 * src/scan-skel.l: never-interactive.
10453 * src/conflicts.c (enum conflict_resolution_e): No trailing
10454 comma.
10455 * src/getargs.c (usage): Split long literal strings.
10456 Reported by Hans Aberg.
10457
717be197
AD
104582002-05-28 Akim Demaille <akim@epita.fr>
10459
10460 * data/bison.c++: Use C++ ostreams.
10461 (cdebug_): New member.
10462
670ddffd
AD
104632002-05-28 Akim Demaille <akim@epita.fr>
10464
10465 * src/output.c (output_skeleton): Be sure to allocate enough room
10466 for `/' _and_ for `\0' in full_skeleton.
10467
769b430f
AD
104682002-05-28 Akim Demaille <akim@epita.fr>
10469
10470 * data/bison.c++: Catch up with bison.simple:
10471 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
10472 and Paul Eggert <eggert@twinsun.com>: `error' handing.
10473 2002-05-26 Akim Demaille <akim@epita.fr>: stos_, token_number_,
10474 and popping traces.
10475
7067cb36
PH
104762002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
10477
10478 * src/output.c (output_skeleton): Put an explicit path in front of
10479 the skeleton file name, rather than relying on the -I directory,
10480 to partially alleviate effects of having a skeleton file lying around
10481 in the current directory.
769b430f 10482
4a713ec2
PH
104832002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
10484
769b430f 10485 * src/conflicts.c (log_resolution): Correct typo:
4a713ec2
PH
10486 obstack_printf should be obstack_fgrow1.
10487
b408954b
AD
104882002-05-26 Akim Demaille <akim@epita.fr>
10489
10490 * src/state.h (state_t): `solved_conflicts' is a new member.
10491 * src/LR0.c (new_state): Set it to 0.
10492 * src/conflicts.h, src/conflicts.c (print_conflicts)
10493 (free_conflicts, solve_conflicts): Rename as...
10494 (conflicts_print, conflicts_free, conflicts_solve): these.
10495 Adjust callers.
10496 * src/conflicts.c (enum conflict_resolution_e)
10497 (solved_conflicts_obstack): New, used by...
10498 (log_resolution): this.
10499 Adjust to attach the conflict resolution to each state.
10500 Complete the description with the precedence/associativity
10501 information.
10502 (resolve_sr_conflict): Adjust.
10503 * src/print.c (print_state): Output its solved_conflicts.
10504 * tests/conflicts.at (Unresolved SR Conflicts)
10505 (Solved SR Conflicts): Exercise --report=all.
10506
a49aecd5
AD
105072002-05-26 Akim Demaille <akim@epita.fr>
10508
10509 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
10510 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
10511 * src/reader.c, src/reduce.c, src/state.h, src/symtab.h
10512 (token_number_t, item_number_as_token_number)
10513 (token_number_as_item_number, muscle_insert_token_number_table):
10514 Rename as...
10515 (symbol_number_t, item_number_as_symbol_number)
10516 (symbol_number_as_item_number, muscle_insert_symbol_number_table):
10517 these, since it is more appropriate.
10518
5504898e
AD
105192002-05-26 Akim Demaille <akim@epita.fr>
10520
10521 * tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
10522 `Error:' lines.
10523 * data/bison.simple (yystos) [YYDEBUG]: New.
10524 (yyparse) [YYDEBUG]: Display the symbols which are popped during
10525 error recovery.
10526 * tests/regression.at (Web2c Actions): Adjust: yystos is output now.
10527
ec3bc396
AD
105282002-05-25 Akim Demaille <akim@epita.fr>
10529
10530 * doc/bison.texinfo (Debugging): Split into...
10531 (Tracing): this new section, its former contents, and...
10532 (Understanding): this new section.
10533 * src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
10534 by...
10535 (report_flag): this.
10536 Adjust all dependencies.
10537 (report_args, report_types, report_argmatch): New.
10538 (usage, getargs): Report/support -r, --report.
10539 * src/options.h
10540 (struct option_table_struct): Rename as..,
10541 (struct option_table_s): this.
10542 Rename the `set_flag' member to `flag' to match with getopt_long's
10543 struct.
10544 * src/options.c (option_table): Split verbose into an entry for
10545 %verbose, and another for --verbose.
10546 Support --report/-r, so remove -r from the obsolete --raw.
10547 * src/print.c: Attach full item sets and lookaheads reports to
10548 report_flag instead of trace_flag.
10549 * lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
10550
78df8250
PE
105512002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
10552 and Paul Eggert <eggert@twinsun.com>
769b430f 10553
78df8250
PE
10554 * data/bison.simple (yyparse): Correct error handling to conform to
10555 POSIX and yacc. Specifically, after syntax error is discovered,
10556 do not reduce further before shifting the error token.
10557 Clean up the code a bit by removing the labels yyerrdefault,
10558 yyerrhandle, yyerrpop.
10559 * NEWS: Document the above.
10560
c0c9ea05
PH
105612002-05-20 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
10562
10563 * data/bison.simple (yyr1): Don't use yy_token_number_type as element
10564 type; it isn't always big enough, since it doesn't necessarily
10565 include non-terminals.
769b430f 10566 (yytranslate): Expand definition of yy_token_number_type, so that
c0c9ea05
PH
10567 the latter can be removed.
10568 (yy_token_number_type): Remove, only one use.
10569 * data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
10570 don't use TokenNumberType as element type.
769b430f 10571
c0c9ea05
PH
10572 * tests/regression.at: Modify expected output to agree with change
10573 to yyr1 and yytranslate.
769b430f 10574
6390a83f
FK
105752002-05-13 Florian Krohm <florian@edamail.fishkill.ibm.com>
10576
10577 * src/reader.c (parse_action): Use copy_character instead of
10578 obstack_1grow.
10579
db7c8e9a
AD
105802002-05-13 Akim Demaille <akim@epita.fr>
10581
10582 * tests/regression.at (Token definitions): Prototype yylex and
10583 yyerror.
10584
fcc61800
PH
105852002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
10586
158c687b 10587 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
fcc61800
PH
10588 * data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
10589 32-bit arithmetic.
10590 * data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
10591
5683e9b2
AD
105922002-05-07 Akim Demaille <akim@epita.fr>
10593
10594 * tests/synclines.at: Be sure to prototype yylex and yyerror to
10595 avoid GCC warnings.
10596
0c2d3f4c
AD
105972002-05-07 Akim Demaille <akim@epita.fr>
10598
10599 Kill GCC warnings.
10600
10601 * src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
10602 over the RHS of each rule.
10603 * src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
10604 * src/state.h (state_t): Member `nitems' is unsigned short.
10605 * src/LR0.c (get_state): Adjust.
10606 * src/reader.c (packgram): Likewise.
10607 * src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
10608 `Type'.
10609 (muscle_insert_int_table): Remove, unused.
10610 (prepare_rules): Remove `max'.
10611
1565b720
AD
106122002-05-06 Akim Demaille <akim@epita.fr>
10613
10614 * src/closure.c (print_firsts): Display of the symbol tags.
10615 (bitmatrix_print): Move to...
10616 * lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
10617 here.
10618 * tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
10619
cfaee611
AD
106202002-05-06 Akim Demaille <akim@epita.fr>
10621
10622 * src/muscle_tab.c (muscle_m4_output): Must return TRUE for
10623 hash_do_for_each.
10624
458be8e0
AD
106252002-05-06 Akim Demaille <akim@epita.fr>
10626
10627 * src/LR0.c (new_state, get_state): Instead of using the global
10628 `kernel_size' and `kernel_base', have two new arguments:
10629 `core_size' and `core'.
10630 Adjust callers.
10631
a900a624
AD
106322002-05-06 Akim Demaille <akim@epita.fr>
10633
10634 * src/reader.c (packgram): No longer end `ritem' with a 0
10635 sentinel: it is not used.
10636
d4e7d3a1
AD
106372002-05-05 Akim Demaille <akim@epita.fr>
10638
10639 New experimental feature: display the lookaheads in the report and
10640 graph.
10641
10642 * src/print (print_core): When --trace-flag, display the rules
10643 lookaheads.
10644 * src/print_graph.c (print_core): Likewise.
10645 Swap the arguments.
10646 Adjust caller.
10647
39ceb25b
AD
106482002-05-05 Akim Demaille <akim@epita.fr>
10649
10650 * tests/torture.at (Many lookaheads): New test.
10651
5372019f
AD
106522002-05-05 Akim Demaille <akim@epita.fr>
10653
10654 * src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
10655 (GENERATE_MUSCLE_INSERT_TABLE): this.
10656 (output_int_table, output_unsigned_int_table, output_short_table)
10657 (output_token_number_table, output_item_number_table): Replace with...
10658 (muscle_insert_int_table, muscle_insert_unsigned_int_table)
10659 (muscle_insert_short_table, muscle_insert_token_number_table)
10660 (muscle_insert_item_number_table): these.
10661 Adjust all callers.
10662 (prepare_tokens): Don't free `translations', since...
10663 * src/reader.h, src/reader.c (grammar_free): do it.
10664 Move to...
10665 * src/gram.h, src/gram.c (grammar_free): here.
10666 * data/bison.simple, data/bison.c++: b4_token_number_max is now
10667 b4_translate_max.
10668
5df5f6d5
AD
106692002-05-05 Akim Demaille <akim@epita.fr>
10670
10671 * src/output.c (output_unsigned_int_table): New.
10672 (prepare_rules): `i' is unsigned.
10673 `prhs', `rline', `r2' are unsigned int.
10674 Rename muscle `rhs_number_max' as `rhs_max'.
10675 Output muscles `prhs_max', `rline_max', and `r2_max'.
10676 Free rline and r1.
10677 * data/bison.simple, data/bison.c++: Adjust to use these muscles
10678 to compute types instead of constant types.
10679 * tests/regression.at (Web2c Actions): Adjust.
10680
b87f8b21
AD
106812002-05-04 Akim Demaille <akim@epita.fr>
10682
10683 * src/symtab.h (SALIAS, SUNDEF): Rename as...
10684 (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
10685 Adjust dependencies.
10686 * src/output.c (token_definitions_output): Be sure not to output a
10687 `#define 'a'' when fed with `%token 'a' "a"'.
10688 * tests/regression.at (Token definitions): New.
10689
8bb936e4
PE
106902002-05-03 Paul Eggert <eggert@twinsun.com>
10691
10692 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
10693 for K&R C.
10694
106952002-05-03 gettextize <bug-gnu-gettext@gnu.org>
10696
10697 * Makefile.am (SUBDIRS): Remove intl.
10698 (EXTRA_DIST): Add config/config.rpath.
10699
53c71a12
AD
107002002-05-03 Akim Demaille <akim@epita.fr>
10701
10702 * data/bison.simple (m4_if): Don't output empty enums.
10703 And actually, output valid enum definitions :(.
10704
289dd0cf
AD
107052002-05-03 Akim Demaille <akim@epita.fr>
10706
10707 * configure.bat: Remove, completely obsolete.
10708 * Makefile.am (EXTRA_DIST): Adjust.
10709 Don't distribute config.rpath...
10710 * config/Makefile.am (EXTRA_DIST): Do it.
10711
db85e524
AD
107122002-05-03 Akim Demaille <akim@epita.fr>
10713
10714 * configure.in (GETTEXT_VERSION): New.
10715 Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
10716
83ccf991
AD
107172002-05-03 Akim Demaille <akim@epita.fr>
10718
10719 * data/bison.simple (b4_token_enum): New.
10720 (b4_token_defines): Use it to output tokens both as #define and
10721 enums.
10722 Suggested by Paul Eggert.
10723 * src/output.c (token_definitions_output): Don't output spurious
10724 white spaces.
10725
1f418995
AD
107262002-05-03 Akim Demaille <akim@epita.fr>
10727
10728 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
10729
45119f04
RA
107302002-05-02 Robert Anisko <robert@lrde.epita.fr>
10731
10732 * data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
10733 Update the stack class, give a try to deque as the default container.
10734
b2d52318
AD
107352002-05-02 Akim Demaille <akim@epita.fr>
10736
10737 * data/bison.simple (yyparse): Do not implement @$ = @1.
10738 (YYLLOC_DEFAULT): Adjust to do it.
10739 * doc/bison.texinfo (Location Default Action): Fix.
10740
3a8b4109
AD
107412002-05-02 Akim Demaille <akim@epita.fr>
10742
10743 * src/reader.c (parse_braces): Merge into...
10744 (parse_action): this.
10745
84614e13
AD
107462002-05-02 Akim Demaille <akim@epita.fr>
10747
10748 * configure.in (ALL_LINGUAS): Remove.
10749 * po/LINGUAS, hr.po: New.
10750
fdbcd8e2
AD
107512002-05-02 Akim Demaille <akim@epita.fr>
10752
10753 Remove the so called hairy (semantic) parsers.
10754
10755 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
10756 * src/gram.h, src/gram.c (semantic_parser): Remove.
10757 (rule_t): Remove the guard and guard_line members.
10758 * src/lex.h (token_t): remove tok_guard.
10759 * src/options.c (option_table): Remove %guard and %semantic_parser
10760 support.
10761 * src/output.c, src/output.h (guards_output): Remove.
10762 (prepare): Adjust.
10763 (token_definitions_output): Don't output the `T'
10764 tokens (???).
10765 (output_skeleton): Don't output the guards.
10766 * src/files.c, src/files.c (attrsfile): Remove.
10767 * src/reader.c (symbol_list): Remove the guard and guard_line
10768 members.
10769 Adjust dependencies.
10770 (parse_guard): Remove.
10771 * data/bison.hairy: Remove.
10772 * doc/bison.texinfo (Environment Variables): Remove occurrences of
10773 BISON_HAIRY.
10774
82b6cb3f
AD
107752002-05-02 Akim Demaille <akim@epita.fr>
10776
10777 * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
10778 (parse_guard): Rename the formal argument `stack_offset' as
10779 `rule_length', which is more readable.
10780 Adjust callers.
10781 (copy_at, copy_dollar): Instead of outputting the hard coded
10782 values of $$, $n and so forth, output invocation to b4_lhs_value,
10783 b4_lhs_location, b4_rhs_value, and b4_rhs_location.
900c877b
AD
10784 Note: this patch partially drops `semantic-parser' support: it
10785 always does `rule_length - n', where semantic parsers ought to
10786 always use `-n'.
82b6cb3f
AD
10787 * data/bison.simple, data/bison.c++ (b4_lhs_value)
10788 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
10789
6cbfbcc5
AD
107902002-05-02 Akim Demaille <akim@epita.fr>
10791
10792 * configure.in (AC_INIT): Bump to 1.49b.
10793 (AM_INIT_AUTOMAKE): Short invocation.
10794
b8548114
AD
107952002-05-02 Akim Demaille <akim@epita.fr>
10796
10797 Version 1.49a.
10798
c20cd1fa
AD
107992002-05-01 Akim Demaille <akim@epita.fr>
10800
10801 * src/skeleton.h: Remove.
10802
8a9566d4
AD
108032002-05-01 Akim Demaille <akim@epita.fr>
10804
10805 * src/skeleton.h: Fix the #endif.
10806 Reported by Magnus Fromreide.
10807
8c6d399a
PE
108082002-04-26 Paul Eggert <eggert@twinsun.com>
10809
10810 * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
10811 Define if we define YYSTYPE and YYLTYPE, respectively.
b756bb75 10812 (YYCOPY): Fix [] quoting problem in the non-GCC case.
8a9566d4 10813
2b7ed18a
RA
108142002-04-25 Robert Anisko <robert@lrde.epita.fr>
10815
10816 * src/scan-skel.l: Postprocess quadrigraphs.
10817
10818 * src/reader.c (copy_character): New function, used to output
10819 single characters while replacing `[' and `]' with quadrigraphs, to
10820 avoid troubles with M4 quotes.
10821 (copy_comment): Output characters with copy_character.
10822 (read_additionnal_code): Likewise.
10823 (copy_string2): Likewise.
10824 (copy_definition): Likewise.
10825
10826 * tests/calc.at: Exercise M4 quoting.
10827
34a89c50
AD
108282002-04-25 Akim Demaille <akim@epita.fr>
10829
10830 * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
10831 between `!' and the command.
10832 Reported by Paul Eggert.
10833
0dd1580a
RA
108342002-04-24 Robert Anisko <robert@lrde.epita.fr>
10835
10836 * tests/calc.at: Exercise prologue splitting.
10837
10838 * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
10839 `b4_post_prologue' instead of `b4_prologue'.
10840
10841 * src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
10842 muscles.
10843 (output): Free pre_prologue_obstack and post_prologue_obstack.
10844 * src/files.h, src/files.c (attrs_obstack): Remove.
10845 (pre_prologue_obstack, post_prologue_obstack): New.
10846 * src/reader.c (copy_definition): Add a parameter to specify the
10847 obstack to fill, instead of using attrs_obstack unconditionally.
10848 (read_declarations): Pass pre_prologue_obstack to copy_definition if
10849 `%union' has not yet been seen, pass post_prologue_obstack otherwise.
10850
83c1796f
PE
108512002-04-23 Paul Eggert <eggert@twinsun.com>
10852
10853 * data/bison.simple: Remove unnecessary commentary and white
10854 space differences from 1_29-branch.
10855 Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
10856
10857 (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
10858 YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
10859 if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
10860 constructors or destructors.
10861
10862 (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
10863
1207eeac
AD
108642002-04-23 Akim Demaille <akim@epita.fr>
10865
10866 * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
10867 * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
10868 location with columns.
10869 * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
10870 All reported by Paul Eggert.
10871
78ab8f67
AD
108722002-04-22 Akim Demaille <akim@epita.fr>
10873
10874 * src/reduce.c (dump_grammar): Move to...
10875 * src/gram.h, src/gram.c (grammar_dump): here.
10876 Be sure to separate long item numbers.
10877 Don't read the members of a rule's prec if its nil.
10878
133c20e2
AD
108792002-04-22 Akim Demaille <akim@epita.fr>
10880
10881 * src/output.c (table_size, table_grow): New.
10882 (MAXTABLE): Remove, replace uses with table_size.
10883 (pack_vector): Instead of dying when the table is too big, grow it.
10884
9515e8a7
AD
108852002-04-22 Akim Demaille <akim@epita.fr>
10886
10887 * data/bison.simple (yyr1): Its type is that of a token number.
10888 * data/bison.c++ (r1_): Likewise.
10889 * tests/regression.at (Web2c Actions): Adjust.
10890
23c5a174
AD
108912002-04-22 Akim Demaille <akim@epita.fr>
10892
10893 * src/reader.c (token_translations_init): 256 is now the default
10894 value for the error token, i.e., it will be assigned another
10895 number if the user assigned 256 to one of her tokens.
10896 (reader): Don't force 256 to error.
10897 * doc/bison.texinfo (Symbols): Adjust.
10898 * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
10899 (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
10900 etc. instead of 10, 20, 30 (which was used to `jump' over error
10901 (256) and undefined (2)).
10902
5fbb0954
AD
109032002-04-22 Akim Demaille <akim@epita.fr>
10904
10905 Propagate more token_number_t.
10906
10907 * src/gram.h (token_number_as_item_number)
10908 (item_number_as_token_number): New.
10909 * src/output.c (GENERATE_OUTPUT_TABLE): New.
10910 Use it to create output_item_number_table and
10911 output_token_number_table.
10912 * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
10913 * src/lex.c, src/nullable.c, src/output.c, src/print.c,
10914 * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
10915 * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
10916
4f940944
AD
109172002-04-22 Akim Demaille <akim@epita.fr>
10918
10919 * src/output.h, src/output.c (get_lines_number): Remove.
10920
3ded9a63
AD
109212002-04-19 Akim Demaille <akim@epita.fr>
10922
10923 * doc/bison.texinfo (Actions): Make clear that `|' is not the same
10924 as Lex/Flex'.
10925 (Debugging): More details about enabling the debugging features.
10926 (Table of Symbols): Describe $$, $n, @$, and @n.
10927 Suggested by Tim Josling.
10928
e0c471a9
AD
109292002-04-19 Akim Demaille <akim@epita.fr>
10930
10931 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
10932
fecc10cd
AD
109332002-04-10 Akim Demaille <akim@epita.fr>
10934
10935 * src/system.h: Rely on HAVE_LIMITS_H.
10936 Suggested by Paul Eggert.
10937
51dec47b
AD
109382002-04-09 Akim Demaille <akim@epita.fr>
10939
10940 * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
10941 full stderr, and strip it according to the bison options, instead
10942 of composing the error message from different bits.
10943 This makes it easier to check for several error messages.
10944 Adjust all the invocations.
10945 Add an invocation exercising the error token.
10946 Add an invocation demonstrating a stupid error message.
10947 (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
10948 Adjust the tests.
10949 Error message are for stderr, not stdout.
10950
007a50a4
AD
109512002-04-09 Akim Demaille <akim@epita.fr>
10952
10953 * src/gram.h, src/gram.c (error_token_number): Remove, use
10954 errtoken->number.
10955 * src/reader.c (reader): Don't specify the user token number (2)
10956 for $undefined, as it uselessly prevents using it.
10957 * src/gram.h (token_number_t): Move to...
10958 * src/symtab.h: here.
10959 (state_t.number): Is a token_number_t.
10960 * src/print.c, src/reader.c: Use undeftoken->number instead of
10961 hard coded 2.
10962 (Even though this 2 is not the same as above: the number of the
10963 undeftoken remains being 2, it is its user token number which
10964 might not be 2).
10965 * src/output.c (prepare_tokens): Rename the `maxtok' muscle with
10966 `user_token_number_max'.
10967 Output `undef_token_number'.
10968 * data/bison.simple, data/bison.c++: Use them.
10969 Be sure to map invalid yylex return values to
10970 `undef_token_number'. This saves us from gratuitous SEGV.
10971
10972 * tests/conflicts.at (Solved SR Conflicts)
10973 (Unresolved SR Conflicts): Adjust.
10974 * tests/regression.at (Web2c Actions): Adjust.
10975
06446ccf
AD
109762002-04-08 Akim Demaille <akim@epita.fr>
10977
10978 * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
10979 Adding #line.
10980 Remove the duplicate `typedefs'.
10981 (RhsNumberType): Fix the declaration and various other typos.
10982 Use __ofile__.
10983 * data/bison.simple: Use __ofile__.
10984 * src/scan-skel.l: Handle __ofile__.
10985
62a3e4f0
AD
109862002-04-08 Akim Demaille <akim@epita.fr>
10987
10988 * src/gram.h (item_number_t): New, the type of item numbers in
10989 RITEM. Note that it must be able to code symbol numbers as
10990 positive number, and the negation of rule numbers as negative
10991 numbers.
10992 Adjust all dependencies (pretty many).
10993 * src/reduce.c (rule): Remove this `short *' pointer: use
10994 item_number_t.
10995 * src/system.h (MINSHORT, MAXSHORT): Remove.
10996 Include `limits.h'.
10997 Adjust dependencies to using SHRT_MAX and SHRT_MIN.
10998 (shortcpy): Remove.
10999 (MAXTABLE): Move to...
11000 * src/output.c (MAXTABLE): here.
11001 (prepare_rules): Use output_int_table to output rhs.
11002 * data/bison.simple, data/bison.c++: Adjust.
11003 * tests/torture.at (Big triangle): Move the limit from 254 to
11004 500.
11005 * tests/regression.at (Web2c Actions): Ajust.
11006
11007 Trying with bigger grammars shows various phenomena: at 3000 (28Mb
11008 of grammar file) bison is killed by my system, at 2000 (12Mb) bison
11009 passes, but produces negative #line number, once fixed, GCC is
11010 killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
11011 C), it passes.
11012 * src/state.h (state_h): Code input lines on ints, not shorts.
11013
bb88b0fc
AD
110142002-04-08 Akim Demaille <akim@epita.fr>
11015
11016 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
11017 and then the grammar.
11018
9a636f47
AD
110192002-04-08 Akim Demaille <akim@epita.fr>
11020
11021 * src/system.h: No longer using strndup.
11022
680e8701
AD
110232002-04-07 Akim Demaille <akim@epita.fr>
11024
11025 * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
11026 * src/output.c (output_table_data): Return the longest number.
11027 (prepare_tokens): Output `token_number_max').
11028 * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
11029 New.
11030 Use them to define yy_token_number_type/TokenNumberType.
11031 Use this type for yytranslate.
11032 * tests/torture.at (Big triangle): Push the limit from 124 to
11033 253.
11034 * tests/regression.at (Web2c Actions): Adjust.
11035
817e9f41
AD
110362002-04-07 Akim Demaille <akim@epita.fr>
11037
11038 * tests/torture.at (Big triangle): New.
11039 (GNU AWK Grammar, GNU Cim Grammar): Move to...
11040 * tests/existing.at: here.
11041
5123689b
AD
110422002-04-07 Akim Demaille <akim@epita.fr>
11043
11044 * src/gram.h, src/gram.c (nitems): Remove, it is an alias of
11045 nritems.
11046 Adjust dependencies.
11047
f3849179
AD
110482002-04-07 Akim Demaille <akim@epita.fr>
11049
11050 * src/reader.c: Normalize increments to prefix form.
11051
bd02036a
AD
110522002-04-07 Akim Demaille <akim@epita.fr>
11053
11054 * src/reader.c, symtab.c: Remove debugging code.
11055
db8837cb
AD
110562002-04-07 Akim Demaille <akim@epita.fr>
11057
11058 Rename all the `bucket's as `symbol_t'.
11059
11060 * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
11061 * src/reader.c, src/reader.h, src/reduce.c, src/state.h,
11062 * src/symtab.c, src/symtab.h (bucket): Rename as...
11063 (symbol_t): this.
11064 (symbol_list_new, bucket_check_defined, bucket_make_alias)
11065 (bucket_check_alias_consistence, bucket_pack, bucket_translation)
11066 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
11067 (buckets_new, buckets_free, buckets_do): Rename as...
11068 (symbol_list_new, symbol_check_defined, symbol_make_alias)
11069 (symbol_check_alias_consistence, symbol_pack, symbol_translation)
11070 (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
11071 (symbols_new, symbols_free, symbols_do): these.
11072
72a23c97
AD
110732002-04-07 Akim Demaille <akim@epita.fr>
11074
11075 Use lib/hash for the symbol table.
11076
11077 * src/gram.c (ntokens): Initialize to 1, to reserve a slot for
11078 EOF.
11079 * src/lex.c (lex): Set the `number' member of new terminals.
11080 * src/reader.c (bucket_check_defined, bucket_make_alias)
11081 (bucket_check_alias_consistence, bucket_translation): New.
11082 (reader, grammar_free, readgram, token_translations_init)
11083 (packsymbols): Adjust.
11084 (reader): Number the predefined tokens.
11085 * src/reduce.c (inaccessable_symbols): Just use hard coded numbers
11086 for predefined tokens.
11087 * src/symtab.h (bucket): Remove all the hash table related
11088 members.
11089 * src/symtab.c (symtab): Replace by...
11090 (bucket_table): this.
11091 (bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
11092 (buckets_new, buckets_do): New.
11093
280a38c3
AD
110942002-04-07 Akim Demaille <akim@epita.fr>
11095
11096 * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
11097 (start_symbol, max_user_token_number, semantic_parser)
11098 (error_token_number): Initialize.
11099 * src/reader.c (grammar, start_flag, startval, typed, lastprec):
11100 Initialize.
11101 (reader): Don't.
11102 (errtoken, eoftoken, undeftoken, axiom): Extern.
11103
03b31c0c
AD
111042002-04-07 Akim Demaille <akim@epita.fr>
11105
11106 * src/gram.h (rule_s): prec and precsym are now pointers
11107 to the bucket giving the priority/associativity.
11108 Member `associativity' removed: useless.
11109 * src/reduce.c, src/conflicts.c: Adjust.
11110
8b3df748
AD
111112002-04-07 Akim Demaille <akim@epita.fr>
11112
11113 * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
11114 Properly escape the symbols' TAG when outputting them.
11115
e601aa1d
AD
111162002-04-07 Akim Demaille <akim@epita.fr>
11117
11118 * src/lalr.h (LA): Is a bitsetv, not bitset*.
11119
b0299a2e
AD
111202002-04-07 Akim Demaille <akim@epita.fr>
11121
11122 * src/lalr.h, src/lalr.c (LAruleno): Replace with...
11123 (LArule): this, which is an array to rule_t*.
11124 * src/print.c, src/conflicts.c: Adjust.
11125
d7e1f00c
AD
111262002-04-07 Akim Demaille <akim@epita.fr>
11127
11128 * src/gram.h (rule_t): Rename `number' as `user_number'.
11129 `number' is a new member.
11130 Adjust dependencies.
11131 * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
11132
cc9305dd
AD
111332002-04-07 Akim Demaille <akim@epita.fr>
11134
11135 As a result of the previous patch, it is no longer needed
11136 to reorder ritem itself.
11137
11138 * src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
11139
b0940840
AD
111402002-04-07 Akim Demaille <akim@epita.fr>
11141
11142 Be sure never to walk through RITEMS, but use only data related to
11143 the rules themselves. RITEMS should be banished.
11144
11145 * src/output.c (output_token_translations): Rename as...
11146 (prepare_tokens): this.
11147 In addition to `translate', prepare the muscles `tname' and
11148 `toknum', which were handled by...
11149 (output_rule_data): this.
11150 Remove, and move the remainder of its outputs into...
11151 (prepare_rules): this new routines, which also merges content from
11152 (output_gram): this.
11153 (prepare_rules): Be sure never to walk through RITEMS.
11154 (output_stos): Rename as...
11155 (prepare_stos): this.
11156 (output): Always invoke prepare_states, after all, just don't use it
11157 in the output if you don't need it.
11158
643a5994
AD
111592002-04-07 Akim Demaille <akim@epita.fr>
11160
11161 * src/LR0.c (new_state): Display `nstates' as the name of the
11162 newly created state.
11163 Adjust to initialize first_state and last_state if needed.
11164 Be sure to distinguish the initial from the final state.
11165 (new_states): Create the itemset of the initial state, and use
11166 new_state.
11167 * src/closure.c (closure): Now that the initial state has its
11168 items properly set, there is no need for a special case when
11169 creating `ruleset'.
11170
11171 As a result, now the rule 0, reducing to $axiom, is visible in the
11172 outputs. Adjust the test suite.
11173
11174 * tests/conflicts.at (Solved SR Conflicts)
11175 (Unresolved SR Conflicts): Adjust.
11176 * tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
11177 * tests/conflicts.at (S/R in initial): New.
11178
b4c4ccc2
AD
111792002-04-07 Akim Demaille <akim@epita.fr>
11180
11181 * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
11182 the RHS of the rules.
11183 * src/output.c (output_gram): Likewise.
11184
bba97eb2
AD
111852002-04-07 Akim Demaille <akim@epita.fr>
11186
11187 * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
11188 bucket.
11189 Adjust all dependencies.
11190 * src/reduce.c (nonterminals_reduce): Don't forget to renumber the
11191 `number' of the buckets too.
11192 * src/gram.h: Include `symtab.h'.
11193 (associativity): Move to...
11194 * src/symtab.h: here.
11195 No longer include `gram.h'.
11196
c3b407f4
AD
111972002-04-07 Akim Demaille <akim@epita.fr>
11198
11199 * src/gram.h, src/gram.c (rules_rhs_length): New.
11200 (ritem_longest_rhs): Use it.
11201 * src/gram.h (rule_t): `number' is a new member.
11202 * src/reader.c (packgram): Set it.
11203 * src/reduce.c (reduce_grammar_tables): Move the useless rules at
11204 the end of `rules', and count them out of `nrules'.
11205 (reduce_output, dump_grammar): Adjust.
11206 * src/print.c (print_grammar): It is no longer needed to check for
11207 the usefulness of a rule, as useless rules are beyond `nrules + 1'.
11208 * tests/reduce.at (Reduced Automaton): New test.
11209
11652ab3
AD
112102002-04-07 Akim Demaille <akim@epita.fr>
11211
11212 * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
11213 lacking `+ 1' to nrules, Bison reported as useless a token if it
11214 was used solely to set the precedence of the last rule...
11215
26b23c1a
AD
112162002-04-07 Akim Demaille <akim@epita.fr>
11217
11218 * data/bison.c++, data/bison.simple: Don't output the current file
11219 name in #line, to avoid useless diffs between two identical
11220 outputs under different names.
11221
18bcecb0
AD
112222002-04-07 Akim Demaille <akim@epita.fr>
11223
11224 * src/closure.c, src/print.c, src/reader.c, src/reduce.c:
11225 Normalize loops to using `< nrules + 1', not `<= nrules'.
11226
fa770c86
AD
112272002-04-07 Akim Demaille <akim@epita.fr>
11228
11229 * TODO: Update.
11230
d9b739c3
AD
112312002-04-07 Akim Demaille <akim@epita.fr>
11232
11233 * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
11234 bucket.value as bucket.number.
11235
99013900
AD
112362002-04-07 Akim Demaille <akim@epita.fr>
11237
11238 * src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
11239 * src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
11240 * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
11241 RHS, instead of being an index in RITEMS.
11242
e966383b
PE
112432002-04-04 Paul Eggert <eggert@twinsun.com>
11244
11245 * doc/bison.texinfo: Update copyright date.
11246 (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
11247 (Symbols): Warn about running Bison in one character set,
11248 but compiling and/or running in an incompatible one.
11249 Warn about character code 256, too.
11250
112512002-04-03 Paul Eggert <eggert@twinsun.com>
11252
11253 * src/bison.data (YYSTACK_ALLOC): Depend on whether
11254 YYERROR_VERBOSE is nonzero, not whether it is defined.
11255
11256 Merge changes from bison-1_29-branch.
c307773e 11257
8d6c48b9
PE
112582002-03-20 Paul Eggert <eggert@twinsun.com>
11259
11260 Merge fixes from Debian bison_1.34-1.diff.
11261
11262 * configure.in (AC_PREREQ): 2.53.
11263
e53c6322
AD
112642002-03-20 Akim Demaille <akim@epita.fr>
11265
11266 * src/conflicts.c (log_resolution): Argument `resolution' is const.
11267
9ffbeca7
PE
112682002-03-19 Paul Eggert <eggert@twinsun.com>
11269
21db0b2a
PE
11270 * src/bison.simple (YYCOPY): New macro.
11271 (YYSTACK_RELOCATE): Use it.
11272 Remove Type arg; no longer needed. All callers changed.
11273 (yymemcpy): Remove; no longer needed.
11274
9ffbeca7
PE
11275 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
11276 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
11277
642cb8f8
AD
112782002-03-19 Akim Demaille <akim@epita.fr>
11279
11280 Test and fix the #line outputs.
11281
11282 * tests/atlocal.at (GCC): New.
11283 * tests/synclines.at (AT_TEST_SYNCLINE): New macro.
0ffd4fd1 11284 (Prologue synch line, %union synch line, Postprologue synch line)
642cb8f8
AD
11285 (Action synch line, Epilogue synch line): New tests.
11286 * src/reader.c (parse_union_decl): Define the muscle stype_line.
11287 * data/bison.simple, data/bison.c++: Use it.
11288
3c31a486
AD
112892002-03-19 Akim Demaille <akim@epita.fr>
11290
11291 * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
11292 (Solved SR Conflicts, %expect not enough, %expect right)
11293 (%expect too much): Move to...
11294 * tests/conflicts.at: this new file.
11295
0d8bed56
AD
112962002-03-19 Akim Demaille <akim@epita.fr>
11297
11298 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
11299 * data/bison.simple, data/bison.c++: Handle the `#define' part, so
11300 that we can move to enums for instance.
11301 * src/output.c (token_definitions_output): Output a list of
11302 `token-name, token-number' instead of the #define.
11303 (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
11304
9208d17f
AD
113052002-03-14 Akim Demaille <akim@epita.fr>
11306
11307 Use Gettext 0.11.1.
11308
af27eacb
RA
113092002-03-09 Robert Anisko <robert@lrde.epita.fr>
11310
11311 * data/bison.c++: Make the user able to add members to the generated
11312 parser by subclassing.
11313
9101a310
RA
113142002-03-05 Robert Anisko <robert@lrde.epita.fr>
11315
11316 * src/reader.c (read_additionnal_code): `c' should be an integer, not
11317 a character.
11318 Reported by Nicolas Tisserand and Nicolas Burrus.
11319
fff9bf0b
RA
113202002-03-04 Robert Anisko <robert@lrde.epita.fr>
11321
11322 * src/reader.c: Warn about lacking semi-colons, do not complain.
11323
64dba31e
RA
113242002-03-04 Robert Anisko <robert@lrde.epita.fr>
11325
11326 * data/bison.c++: Remove a debug line.
11327
374f5a14
RA
113282002-03-04 Robert Anisko <robert@lrde.epita.fr>
11329
11330 * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge
11331 location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and
11332 provide a default implementation.
11333
bfcf1f3a
AD
113342002-03-04 Akim Demaille <akim@epita.fr>
11335
11336 * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
11337 * tests/output.at (AT_CHECK_OUTPUT): Likewise.
11338 * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
11339 * tests/semantic.at (Parsing Guards): Similarly.
11340 * src/reader.at (readgram): Complain if the last rule is not ended
11341 with a semi-colon.
11342
65ccf9fc
AD
113432002-03-04 Akim Demaille <akim@epita.fr>
11344
11345 * src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
11346 * src/closure.c: here.
11347 (set_firsts): Use bitsetv_reflexive_transitive_closure instead of
11348 RTC.
11349 * src/warshall.h, src/warshall.c: Remove.
11350 * tests/sets.at (Broken Closure): Adjust.
11351
d0039cbc
AD
113522002-03-04 Akim Demaille <akim@epita.fr>
11353
11354 * src/output.c (output_skeleton): tempdir is const.
11355 bytes_read is unused.
11356
345cea78
AD
113572002-03-04 Akim Demaille <akim@epita.fr>
11358
11359 * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
11360 * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
11361 Update.
11362 From Michael Hayes.
11363
564801f7
AD
113642002-03-04 Akim Demaille <akim@epita.fr>
11365
11366 * src/closure.c (closure): `r' is unused.
11367
e5352bc7
AD
113682002-03-04 Akim Demaille <akim@epita.fr>
11369
11370 * tests/sets.at (Broken Closure): Add the ending `;'.
11371 * src/reader.at (readgram): Complain if a rule is not ended with a
11372 semi-colon.
11373
914feea9
AD
113742002-03-04 Akim Demaille <akim@epita.fr>
11375
11376 * src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
11377 (count_sr_conflicts): Use bitset_count.
11378 * src/reduce.c (inaccessable_symbols): Ditto.
11379 (bits_size): Remove.
11380 * src/warshall.h, src/warshall.c: Convert to bitsetv.
11381
f0250de6
AD
113822002-03-04 Akim Demaille <akim@epita.fr>
11383
11384 * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
11385 * src/reduce.c: Remove the `bitset_zero's following the
11386 `bitset_create's, as now it is performed by the latter.
11387
ef017502
AD
113882002-03-04 Akim Demaille <akim@epita.fr>
11389
11390 * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
11391 * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
11392 * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
11393 latest sources from Michael.
11394
76514394
AD
113952002-03-04 Akim Demaille <akim@epita.fr>
11396
11397 * src/output.c (output): Don't free the grammar.
11398 * src/reader.c (grammar_free): New.
11399 * src/main.c (main): Call it and don't free symtab here.
11400
55024580
AD
114012002-03-04 Akim Demaille <akim@epita.fr>
11402
11403 * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
11404 before returning.
11405 Reported by Benoit Perrot.
11406
f9abaa2c
AD
114072002-03-04 Akim Demaille <akim@epita.fr>
11408
11409 Use bitset operations when possible, not loops over bits.
11410
11411 * src/conflicts.c (set_conflicts, count_sr_conflicts): Use
11412 bitset_or.
11413 * src/print.c (print_reductions): Use bitset_and, bitset_andn.
11414 * src/reduce.c (useless_nonterminals): Formatting changes.
11415 * src/warshall.c (TC): Use bitset_or.
11416
0e721e75
AD
114172002-03-04 Akim Demaille <akim@epita.fr>
11418
11419 * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
11420 * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
11421 Ditto.
11422
0fb1ffb1
AD
114232002-03-04 Akim Demaille <akim@epita.fr>
11424
11425 * src/lalr.c (F): Now a bitset*.
11426 Adjust all dependencies.
11427
b86796bf
AD
114282002-03-04 Akim Demaille <akim@epita.fr>
11429
11430 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
11431 Adjust all dependencies.
11432
602bbf31
AD
114332002-03-04 Akim Demaille <akim@epita.fr>
11434
11435 * src/L0.c, src/LR0.h (nstates): Be size_t.
11436 Adjust comparisons (signed vs unsigned).
11437 * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
11438 bitset*.
11439 Adjust all dependencies.
11440
d8a0245c
AD
114412002-03-04 Akim Demaille <akim@epita.fr>
11442
11443 * src/closure.c (firsts): Now, also a bitset.
11444 Adjust all dependencies.
11445 (varsetsize): Remove, now unused.
11446 * src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
11447
34ba9743
AD
114482002-03-04 Akim Demaille <akim@epita.fr>
11449
11450 * src/print.c: Convert to use bitset.h, not hand coded iterations
11451 over ints.
11452
ed86e78c
AD
114532002-03-04 Akim Demaille <akim@epita.fr>
11454
11455 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
11456
dfdb1797
AD
114572002-03-04 Akim Demaille <akim@epita.fr>
11458
11459 * src/closure.c (ruleset): Be a bitset.
11460 (rulesetsize): Remove.
11461
7086e707
AD
114622002-03-04 Akim Demaille <akim@epita.fr>
11463
11464 * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
11465 * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
11466 * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
11467 * src/closure.c (fderives): Be an array of bitsets.
11468
98254360
RA
114692002-02-28 Robert Anisko <robert@lrde.epita.fr>
11470
11471 * data/bison.c++: Merge the two generated headers. Insert a copyright
11472 notice in each output file.
11473
a75c057f
AD
114742002-02-28 Akim Demaille <akim@epita.fr>
11475
11476 * data/bison.c++: Copy the prologue of bison.simple to fetch
11477 useful M4 definitions, such as b4_header_guard.
11478
06b00abc
AD
114792002-02-25 Akim Demaille <akim@epita.fr>
11480
11481 * src/getargs.c (version): Give the name of the authors, and use a
a75c057f
AD
11482 translator friendly scheme for the bgr
11483 copyright notice.
06b00abc 11484
70e7d534
AD
114852002-02-25 Akim Demaille <akim@epita.fr>
11486
11487 * src/output.c (header_output): Remove, now handled completely via
11488 M4.
11489
abe017f6
AD
114902002-02-25 Akim Demaille <akim@epita.fr>
11491
11492 * m4/m4.m4: New, from CVS Autoconf.
11493 * configure.in: Invoke it.
11494 * src/output.c (output_skeleton): Use its result instead of the
11495 hard coded name.
11496
381fb12e
AD
114972002-02-25 Akim Demaille <akim@epita.fr>
11498
11499 * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
11500 Fileutils 4.1.5.
11501 * configure.in: Invoke UTILS_FUNC_MKSTEMP.
11502 * src/output.c (output_skeleton): Use mkstemp to create a real
11503 temporary file.
11504 Move the filling of `skeleton' and its muscle to...
11505 (prepare): here.
11506 (output): Move the definition of the prologue muscle to...
11507 (prepare): here.
11508 * src/system.h (DEFAULT_TMPDIR): New.
11509
6f38107f
PE
115102002-02-14 Paul Eggert <eggert@twinsun.com>
11511
11512 Remove the support for C++ namespace cleanliness; it was
11513 causing more problems than it was curing, since it didn't work
11514 properly on some nonstandard C++ compilers. This can wait
11515 for a proper C++ parser.
11516
11517 * NEWS: Document this.
11518 * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
11519 of C++, as it's treated like C now.
11520 * src/bison.simple (YYSTD): Remove.
11521 (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
11522 Treat C++ just like Standard C instead of trying to support
11523 namespace cleanliness.
11524
80cce3da
AD
115252002-02-14 Akim Demaille <akim@epita.fr>
11526
11527 * tests/regression.at (else): Adjust to Andreas' change.
11528
842e8679
AD
115292002-02-14 Akim Demaille <akim@epita.fr>
11530
11531 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
11532
4bda3f10
AD
115332002-02-13 Andreas Schwab <schwab@suse.de>
11534
11535 * src/output.c (output_rule_data): Don't output NULL, it might
11536 not be defined yet.
11537
4162fa07 115382002-02-11 Robert Anisko <robert@lrde.epita.fr>
b418ecd8 11539
4162fa07
RA
11540 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
11541 (Copyright notice): Update.
b418ecd8 11542
bd16a5dc
AD
115432002-02-11 Akim Demaille <akim@epita.fr>
11544
11545 * tests/regression.at (%nonassoc and eof): Don't include
11546 nonportable headers.
11547
8d69a1a3
RA
115482002-02-08 Robert Anisko <robert@lrde.epita.fr>
11549
11550 * data/bison.c++: Correct error recovery. Make the user able to
11551 initialize the starting location.
11552
9b2d0677
AD
115532002-02-07 Akim Demaille <akim@epita.fr>
11554
11555 * tests/input.at: New.
11556
69e2658b
RA
115572002-02-07 Robert Anisko <robert@lrde.epita.fr>
11558
11559 * data/bison.c++: Replace some direct m4 expansions by constants. Be
9b2d0677 11560 more consistent when naming methods and variables. Put preprocessor
69e2658b
RA
11561 directives around tables only needed for debugging.
11562
4aacc3a7
RA
115632002-02-07 Robert Anisko <robert@lrde.epita.fr>
11564
11565 * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
11566 C++ parsers.
11567 (yy::b4_name::parse): Use print_.
11568
762a801e
RA
115692002-02-07 Robert Anisko <robert@lrde.epita.fr>
11570
11571 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
11572
4bb2bc3f
RA
115732002-02-07 Robert Anisko <robert@lrde.epita.fr>
11574
11575 * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
11576 C++ parsers.
11577 (yy::b4_name::parse): Build verbose error messages, and use error_.
11578
6b45a3ca
RA
115792002-02-06 Robert Anisko <robert@lrde.epita.fr>
11580
11581 * data/bison.c++: Fix m4 quoting in comments.
11582
50997c6e
RA
115832002-02-06 Robert Anisko <robert@lrde.epita.fr>
11584
11585 * data/bison.c++: Adjust the parser code. Fix some muscles that were
11586 not expanded by m4.
11587
3f3eed27
AD
115882002-02-05 Akim Demaille <akim@epita.fr>
11589
11590 * data/bison.c++: Adjust to the M4 back end.
11591 More is certainly needed.
11592
be2a1a68
AD
115932002-02-05 Akim Demaille <akim@epita.fr>
11594
11595 Give a try to M4 as a back end.
11596
11597 * lib/readpipe.c: New, from wdiff.
11598 * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
11599 BISON_HAIRY.
11600 * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
11601 specific values. Now it is m4 that performs the lookup.
11602 * src/parse-skel.y: Remove.
11603 * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
11604 * src/output.c (actions_output, guards_output)
11605 (token_definitions_output): No longer keeps track of the output
11606 line number, hence remove the second argument.
11607 (guards_output): Check against the guard member of a rule, not the
11608 action member.
11609 Adjust callers.
11610 (output_skeleton): Don't look for the skeleton location, let m4 do
11611 that.
11612 Create `/tmp/muscles.m4'. This is temporary, a proper temporary
11613 file will be used.
11614 Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
11615 (prepare): Given that for the time being changesyntax is not
11616 usable in M4, rename the muscles using `-' to `_'.
11617 Define `defines_flag', `output_parser_name' and `output_header_name'.
11618 * src/output.h (actions_output, guards_output)
11619 (token_definitions_output): Adjust prototypes.
11620 * src/scan-skel.l: Instead of scanning the skeletons, it now
11621 processes the output of m4: `__oline__' and `#output'.
11622 * data/bison.simple: Adjust to be used by M4(sugar).
11623 * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
11624 to date.
11625 * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
11626 instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
11627 * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
11628 shamelessly stolen from CVS Autoconf.
11629
beda758b
AD
116302002-02-05 Akim Demaille <akim@epita.fr>
11631
11632 * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
11633 * configure.in: Check for the declarations of free and malloc.
11634 * src/muscle_tab.c: Adjust.
11635
5ece6d43
AD
116362002-02-05 Akim Demaille <akim@epita.fr>
11637
11638 * src/muscle_tab.c (muscle_init): Don't default to NULL muscle
11639 which have no values.
11640
5bb18f9a
AD
116412002-02-05 Akim Demaille <akim@epita.fr>
11642
11643 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
11644 * data/: here.
11645
894dd62e
PE
116462002-01-29 Paul Eggert <eggert@twinsun.com>
11647
11648 * src/bison.simple (YYSIZE_T): Do not define merely because
11649 YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
11650 On some platforms, <alloca.h> does not declare YYSTD (size_t).
11651
82841af7
AD
116522002-01-27 Akim Demaille <akim@epita.fr>
11653
11654 Fix `%nonassoc and eof'.
11655
11656 * src/state.c (errs_dup): Aaaah! The failure was due to bytes
11657 which were not properly copied! Replace
11658 memcpy (res->errs, src->errs, src->nerrs);
11659 with
11660 memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
11661 !!!
11662 * tests/regression.at (%nonassoc and eof): Adjust to newest
11663 Autotest: `.' is not in the PATH.
11664
318b76e9
AD
116652002-01-27 Akim Demaille <akim@epita.fr>
11666
11667 * tests/sets.at (AT_EXTRACT_SETS): New.
11668 (Nullable): Use it.
11669 (Firsts): New.
11670
30d2f3d5
AD
116712002-01-26 Akim Demaille <akim@epita.fr>
11672
11673 * tests/actions.at, tests/calc.at, tests/headers.at,
11674 * tests/torture.at: Adjust to the newest Autotest which no longer
11675 forces `.' in the PATH.
11676
30f8c395
AD
116772002-01-25 Akim Demaille <akim@epita.fr>
11678
11679 * tests/regression.at (%nonassoc and eof): New.
11680 Suggested by Robert Anisko.
11681
29ae55f1
AD
116822002-01-24 Akim Demaille <akim@epita.fr>
11683
11684 Bison dumps core when trying to complain about broken input files.
11685 Reported by Cris van Pelt.
11686
11687 * src/lex.c (parse_percent_token): Be sure to set token_buffer.
11688 * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
11689 into...
11690 (Invalid inputs): Strengthen: exercise parse_percent_token.
11691
2b548aa6
RA
116922002-01-24 Robert Anisko <robert.anisko@epita.fr>
11693
11694 * src/Makefile.am: Add bison.c++.
11695 * src/bison.c++: New skeleton.
11696
bb0146c2
AD
116972002-01-21 Paolo Bonzini <bonzini@gnu.org>
11698
11699 * po/it.po: New.
11700
bec30531
AD
117012002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
11702
11703 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
11704
fc6edc45
MA
117052002-01-20 Marc Autret <marc@gnu.org>
11706
11707 * src/files.c (compute_output_file_names): Fix
11708
5e5d5415
MA
117092002-01-20 Marc Autret <marc@gnu.org>
11710
11711 * tests/output.at: New test.
11712 * src/files.c (compute_base_names): Don't map extensions when
11713 the YACC flag is set, use defaults.
11714 Reported by Evgeny Stambulchik.
11715
44ea3fbd
MA
117162002-01-20 Marc Autret <marc@gnu.org>
11717
ba0fe3c7
PE
11718 * src/system.h: Need to define __attribute__ away for non-GCC
11719 compilers as well (i.e., the vendor C compiler).
44ea3fbd
MA
11720 Suggested by Albert Chin-A-Young.
11721
338963d1
TVH
117222002-01-11 Tim Van Holder <tim.van.holder@pandora.be>
11723
11724 * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
11725 canonical definition.
11726 * src/system.h: Use the canonical definition for PARAMS (avoids
11727 a conflict with the macro from lib/hash.h).
11728
c57b2479
AD
117292002-01-11 Akim Demaille <akim@epita.fr>
11730
11731 * configure.in: Use AC_FUNC_STRNLEN.
d9e9746c 11732 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
c57b2479 11733
b85810ae
AD
117342002-01-09 Akim Demaille <akim@epita.fr>
11735
11736 * src/files.c, src/files.h (output_infix): New.
11737 (tab_extension): Remove.
11738 (compute_base_names): Compute the former, drop the latter.
11739 * src/output.c (prepare): Insert the muscles `output-infix', and
11740 `output-suffix'.
11741 * src/parse-skel.y (string, string.1): New.
11742 (section.header): Use it.
11743 (section.yacc): Remove.
11744 (prefix): Remove too.
11745 * src/scan-skel.l: Adjust.
11746 * src/bison.simple, src/bison.hairy: Adjust.
11747
cae60122
AD
117482002-01-09 Akim Demaille <akim@epita.fr>
11749
11750 * configure.in (WERROR_CFLAGS): Compute it.
11751 * src/Makefile.am (CFLAGS): Pass it.
11752 * tests/atlocal.in (CFLAGS): Idem.
11753 * src/files.c: Fix a few warnings.
11754 (get_extension_index): Remove, unused.
11755
ae404801
AD
117562002-01-08 Akim Demaille <akim@epita.fr>
11757
11758 * src/getargs.c (AS_FILE_NAME): New.
11759 (getargs): Use it to convert DOSish file names.
11760 * src/files.c (base_name): Rename as full_base_name to avoid
11761 clashes with `base_name ()'.
11762 (filename_split): New.
11763 (compute_base_names): N-th rewrite, using filename_split.
11764
22312b71
AD
117652002-01-08 Akim Demaille <akim@epita.fr>
11766
11767 * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
11768 New, stolen from the Fileutils 4.1.
11769 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
11770 * configure.in: Check for the presence of memrchr, and of its
11771 prototype.
11772
a67cef01
TVH
117732002-01-07 Tim Van Holder <tim.van.holder@pandora.be>
11774
11775 * lib/hash.h (__P): Added definition for this macro.
11776 * src/Makefile.am: Add parse-skel.c and scan-skel.c to
11777 BUILT_SOURCES, to ensure they are generated first.
11778 * src/parse-skel.y: Use YYERROR_VERBOSE instead of
11779 %error-verbose to allow bootstrapping with bison 1.30x.
11780
2b25d624
AD
117812002-01-06 Akim Demaille <akim@epita.fr>
11782
11783 * src/reader.c (parse_braces): Don't fetch the next char, the
11784 convention is to fetch on entry.
11785 * tests/torture.at (GNU Cim Grammar): Reintroduce their weird
11786 'switch' without a following semicolon.
11787 * tests/regression.at (braces parsing): New.
11788
3460813b
AD
117892002-01-06 Akim Demaille <akim@epita.fr>
11790
11791 Bison is dead wrong in its RR conflict reports.
11792
11793 * tests/torture.at (GNU Cim Grammar): New.
11794 * src/conflicts.c (count_rr_conflicts): Fix.
11795
73784c64
AD
117962002-01-06 Akim Demaille <akim@epita.fr>
11797
11798 Creating package.m4 from configure.ac causes too many problems.
11799
11800 * tests/Makefile.am (package.m4): Create it by hand,
11801 AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
11802
25d81090
AD
118032002-01-06 Akim Demaille <akim@epita.fr>
11804
11805 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
11806 skeleton.h.
11807
a9b8959e
PE
118082002-01-04 Paul Eggert <eggert@twinsun.com>
11809
11810 * doc/bison.texinfo (Debugging):
11811 Remove YYSTDERR; it's no longer defined or used.
11812 Also, s/cstdio.h/cstdio/.
11813
25d81090
AD
118142002-01-03 Akim Demaille <akim@epita.fr>
11815
11816 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
11817
1109455c
AD
118182002-01-03 Akim Demaille <akim@epita.fr>
11819
11820 * src/parse-skel.y (process_skeleton): Don't bind the parser's
11821 tracing code to --trace, wait for a better --trace option, with
11822 args.
11823
7ea5e977
AD
118242002-01-03 Akim Demaille <akim@epita.fr>
11825
11826 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
11827 The ISO C++ standard is extremely clear about it: stderr is
11828 considered a macro, not a regular symbol (see table 94 `Header
11829 <cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
11830 Therefore std:: does not apply to it. It still does with fprintf.
11831 Also, s/cstdio.h/cstdio/.
11832
fab5b110
AD
118332002-01-03 Akim Demaille <akim@epita.fr>
11834
11835 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
11836 for non system headers.
11837
aed7fd9b
AD
118382002-01-02 Akim Demaille <akim@epita.fr>
11839
11840 Equip the skeleton chain with location tracking, runtime trace,
11841 pure parser and scanner.
11842
11843 * src/parse-skel.y: Request a pure parser, locations, and prefix
11844 renaming.
11845 (%union): Having several members with the same type does not help
11846 type mismatches, simplify.
11847 (YYPRINT, yyprint): New.
11848 (yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
11849 (skel_error): this.
11850 Handle locations.
11851 * src/scan-skel.l: Adjust to these changes.
11852 * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
11853 (LOCATION_PRINT, skel_control_t): New.
11854
24fad99e
AD
118552001-12-30 Akim Demaille <akim@epita.fr>
11856
11857 * src/parse-skel.y: Get rid of the shift/reduce conflict:
11858 replace `gb' with BLANKS.
11859 * src/scan-skel.l: Adjust.
11860
a4b36db4
AD
118612001-12-30 Akim Demaille <akim@epita.fr>
11862
11863 * src/system.h: We don't need nor want bcopy.
11864 Throw away MS-DOS crap: we don't need getpid.
11865 * configure.in: We don't need strndup. It was even causing
11866 problems: because Flex includes the headers *before* us,
11867 _GNU_SOURCE is not defined by config.h, and therefore strndup was
11868 not visible.
11869 * lib/xstrndup.c: New.
11870 * src/scan-skel.l: Use it.
11871 Be sure to initialize yylval.muscle member when scanning a MUSCLE.
11872 * src/parse-skel.y: Use %directives instead of #defines.
11873
1239777d
AD
118742001-12-30 Akim Demaille <akim@epita.fr>
11875
11876 * src/skeleton.h: New.
11877 * src/output.c (output_parser, output_master_parser): Remove, dead
11878 code.
11879 * src/output.h (get_lines_number, actions_output, guards_output)
11880 (token_definitions_output): Prototype them.
11881 * src/parse-skel.y: Add the license notice.
11882 Include output.h and skeleton.h.
11883 (process_skeleton): Returns void, and takes a single parameter.
11884 * src/scan-skel.l: Add the license notice.
11885 Include skeleton.h.
11886 Don't use %option yylineno: it seems that then Flex imagines
11887 REJECT has been used, and therefore it won't reallocate its
11888 buffers (which makes no other sense to me than a bug). It results
11889 in warnings for `unused: yy_flex_realloc'.
11890
9b3add5b
RA
118912001-12-30 Robert Anisko <robert.anisko@epita.fr>
11892
11893 * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
11894 (MUSCLE_INSERT_PREFIX): ...to there.
11895 * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
11896 (MUSCLE_INSERT_PREFIX): Move from here...
11897
11898 * src/bison.hairy: Add a section directive. Put braces around muscle
11899 names. This parser skeleton is still broken, but Bison should not
11900 choke on a bad muscle 'syntax'.
11901 * src/bison.simple: Add a section directive. Put braces around muscle
11902 names.
11903
11904 * src/files.h (strsuffix, stringappend): Add declarations.
11905 (tab_extension): Add declaration.
11906 (short_base_name): Add declaration.
11907
11908 * src/files.c (strsuffix, stringappend): No longer static. These
11909 functions are used in the skeleton parser.
11910 (tab_extension): New.
11911 (compute_base_names): Use the computations done in this function
fab5b110 11912 to guess if the generated parsers should have '.tab' in their
9b3add5b
RA
11913 names.
11914 (short_base_name): No longer static.
11915
11916 * src/output.c (output_skeleton): New.
11917 (output): Disable call to output_master_parser, and give a try to
11918 a new skeleton handling system.
11919 (guards_output, actions_output): No longer static.
11920 (token_definitions_output, get_lines_number): No longer static.
11921
11922 * configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
11923
fab5b110 11924 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
9b3add5b
RA
11925 parse-skel.y.
11926
11927 * src/parse-skel.y: New file.
11928 * src/scan-skel.l: New file.
11929
b5b61c61
AD
119302001-12-29 Akim Demaille <akim@epita.fr>
11931
11932 %name-prefix is broken.
11933
11934 * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
11935 Adjust all dependencies.
11936 * tests/headers.at (export YYLTYPE): Strengthen this test: use
11937 %name-prefix.
11938
11939 Renaming yylval but not yylloc is not consistent. Now we do.
11940
11941 * src/bison.simple: Prefix yylloc if used.
11942 * doc/bison.texinfo (Decl Summary): Document that.
11943
8c9a50be
AD
119442001-12-29 Akim Demaille <akim@epita.fr>
11945
11946 * doc/bison.texinfo: Promote `%long-directive' over
11947 `%long_directive'.
11948 Remove all references to fixed-output-files, yacc is enough.
11949
d99361e6
AD
119502001-12-29 Akim Demaille <akim@epita.fr>
11951
11952 * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
11953 user prologue. These are defaults.
11954 * tests/actions.at (Mid-rule actions): Make sure the user can
11955 define YYDEBUG and YYERROR_VERBOSE.
11956
b9cecb91
AD
119572001-12-29 Akim Demaille <akim@epita.fr>
11958
11959 * src/output.c (header_output): Don't forget to export YYLTYPE and
11960 yylloc.
11961 * tests/headers.at (export YYLTYPE): New, make sure it does.
11962 * tests/regression.at (%union and --defines, Invalid CPP headers):
11963 Move to...
11964 * tests/headers.at: here.
11965
aea13e97
AD
119662001-12-29 Akim Demaille <akim@epita.fr>
11967
11968 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
11969
931394cb
AD
119702001-12-29 Akim Demaille <akim@epita.fr>
11971
11972 * tests/actions.at (Mid-rule actions): Output on a single line
11973 instead of several.
11974
704a47c4
AD
119752001-12-29 Akim Demaille <akim@epita.fr>
11976
11977 * doc/bison.texinfo: Formatting changes.
11978
091e20bb
AD
119792001-12-29 Akim Demaille <akim@epita.fr>
11980
11981 Don't store the token defs in a muscle, just be ready to output it
11982 on command. Now possible via `symbols'. Fixes a memory leak.
11983
11984 * src/output.c (token_definitions_output): New.
11985 (output_parser, header_output): Use it.
11986 * src/reader.c (symbols_save): Remove.
11987
cce71710
AD
119882001-12-29 Akim Demaille <akim@epita.fr>
11989
11990 * src/bison.simple: Do not provide a default for YYSTYPE and
11991 YYLTYPE before the user's prologue. Otherwise it's hardly... a
11992 default.
11993
82c035a8
AD
119942001-12-29 Akim Demaille <akim@epita.fr>
11995
11996 Mid-rule actions are simply... ignored!
11997
11998 * src/reader.c (readgram): Be sure to attach mid-rule actions to
11999 the empty-rule associated to the dummy symbol, not to the host
12000 rule.
12001 * tests/actions.at (Mid-rule actions): New.
12002
8419d367
AD
120032001-12-29 Akim Demaille <akim@epita.fr>
12004
12005 Memory leak.
12006
12007 * src/reader.c (reader): Free grammar.
12008
375d5806
AD
120092001-12-29 Akim Demaille <akim@epita.fr>
12010
12011 Memory leak.
12012
12013 * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
12014 since it allocates it for each state, although only one is needed.
12015 (allocate_storage): Do it here.
12016
f51cb8ff
AD
120172001-12-29 Akim Demaille <akim@epita.fr>
12018
12019 * src/options.h, src/options.c (create_long_option_table): Rename
12020 as...
12021 (long_option_table_new): this, with a clearer prototype.
12022 (percent_table): Remove, unused,
12023 * src/getargs.c (getargs): Adjust.
12024
29e88316
AD
120252001-12-29 Akim Demaille <akim@epita.fr>
12026
12027 * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
12028 * src/print.c, src/print_graph.c, src/state.h: Rename state_table
12029 as states.
12030
b9f71f19
AD
120312001-12-29 Akim Demaille <akim@epita.fr>
12032
12033 * src/lalr.c (build_relations): Rename `states' as `states1'.
12034 Sorry, I don't understand exactly what it is, no better name...
12035
1a2b5d37
AD
120362001-12-29 Akim Demaille <akim@epita.fr>
12037
12038 * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
12039 * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
12040 * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
12041 as rules.
12042
1cca533e
AD
120432001-12-29 Akim Demaille <akim@epita.fr>
12044
12045 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
12046 ago.
12047
c03ae966
AD
120482001-12-29 Akim Demaille <akim@epita.fr>
12049
12050 * src/reader.c, src/reader.h (user_toknums): Remove.
12051 Adjust all users to use symbols[i]->user_token_number.
12052
5a670b1e
AD
120532001-12-29 Akim Demaille <akim@epita.fr>
12054
12055 * src/gram.c, src/gram.h (sprec, sassoc): Remove.
12056 Adjust all users to use symbols[i]->prec or ->assoc.
12057
ad949da9
AD
120582001-12-29 Akim Demaille <akim@epita.fr>
12059
12060 * src/reader.c, src/reader.h (tags): Remove.
12061 Adjust all users to use symbols[i]->tag.
12062
0e78e603
AD
120632001-12-29 Akim Demaille <akim@epita.fr>
12064
12065 * src/gram.h, src/gram.c (symbols): New, similar to state_table
12066 and rule_table.
12067 * src/reader.c (packsymbols): Fill this table.
12068 Drop sprec.
12069 * src/conflicts.c (resolve_sr_conflict): Adjust.
12070 * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
12071 single table.
12072 Use symbols[i]->tag instead of tags[i].
12073
213e640e
AD
120742001-12-29 Akim Demaille <akim@epita.fr>
12075
12076 * tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
12077 In addition, put a comment in there, to replace...
12078 * tests/regression.at (%union and C comments): Remove.
12079
e7b8bef1
AD
120802001-12-29 Akim Demaille <akim@epita.fr>
12081
12082 * tests/regression.at (Web2c Actions): Blindly move the actual
12083 output as expected output. The contents *seem* right to me, but I
12084 can't pretend reading perfectly parser tables... Nonetheless, all
12085 the other tests pass correctly, the table look OK, even though the
12086 presence of `$axiom' is to be noted: AFAICS it is useless (but
12087 harmless).
12088
b68e7744
AD
120892001-12-29 Akim Demaille <akim@epita.fr>
12090
12091 * src/reader.c (readgram): Don't add the rule 0 if there were no
12092 rules read. In other words, add it _after_ having performed
12093 grammar sanity checks.
12094 Fixes the `tests/regression.at (Invalid input: 1)' Failure.
12095
78d5bae9
AD
120962001-12-29 Akim Demaille <akim@epita.fr>
12097
12098 * tests/regression.at (Web2c Report): Catch up: the rule 0 is now
12099 visible, and some states have now a different number.
12100
ff442794
AD
121012001-12-29 Akim Demaille <akim@epita.fr>
12102
12103 * src/reader.c (readgram): Bind the initial rule's lineno to that
12104 of the first rule.
12105 * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
12106 (Solved SR Conflicts): Adjust rule 0's line number.
12107
610ab194
AD
121082001-12-29 Akim Demaille <akim@epita.fr>
12109
12110 Fix the `GAWK Grammar' failure.
12111
12112 * src/LR0.c (final_state): Initialize to -1 so that we do compute
12113 the reductions of the first state which was mistakenly confused
12114 with the final state because precisely final_state was initialized
12115 to 0.
12116 * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
12117 now noticed by Bison.
12118 * tests/regression.at (Rule Line Numbers): Adjust: state 0 does
12119 have a reduction on $default.
12120
29d29c8f
AD
121212001-12-29 Akim Demaille <akim@epita.fr>
12122
12123 * src/gram.c (ritem_print): Be sure to subtract 1 when displaying
12124 rule line numbers.
12125 * src/closure.c (print_closure): Likewise.
12126 * src/derives.c (print_derives): Likewise.
12127 * tests/sets.at (Nullable): Adjust: the rule numbers are correct
12128 now.
12129
7c6b64d0
AD
121302001-12-29 Akim Demaille <akim@epita.fr>
12131
12132 * src/lalr.c (lookaheads_print): New.
12133 (lalr): Call it when --trace-flag.
12134 * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
12135 are dumped.
12136
3d4daee3
AD
121372001-12-29 Akim Demaille <akim@epita.fr>
12138
12139 * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
12140 when walking through ritem, even via rule->rhs.
12141 * src/reduce.c (dump_grammar, useful_production, reduce_output)
12142 (useful_production, useless_nonterminals): Likewise.
12143 (reduce_grammar_tables): Likewise, plus update nritems.
12144 * src/nullable.c (set_nullable): Likewise.
12145 * src/lalr.c (build_relations): Likewise.
12146 * tests/sets.at (Nullable): Adjust.
12147 Fortunately, now, the $axiom is no longer nullable.
12148
9e7f6bbd
AD
121492001-12-29 Akim Demaille <akim@epita.fr>
12150
12151 * src/LR0.c (generate_states): Use nritems, not nitems, nor using
12152 the 0-sentinel.
12153 * src/gram.c (ritem_longest_rhs): Likewise.
12154 * src/reduce.c (nonterminals_reduce): Likewise.
12155 * src/print_graph.c (print_graph): Likewise.
12156 * src/output.c (output_rule_data): Likewise.
12157 * src/nullable.c (set_nullable): Likewise.
12158
255ef638
AD
121592001-12-29 Akim Demaille <akim@epita.fr>
12160
12161 * src/output.c: Comment changes.
12162
0d8a7363
AD
121632001-12-27 Paul Eggert <eggert@twinsun.com>
12164
12165 * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
12166 cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
12167 Sparc, as they were causing more porting problems than the
12168 (minor) performance improvement was worth.
12169
12170 Also, catch up with 1.31's YYSTD.
12171
3db472b9
AD
121722001-12-27 Akim Demaille <akim@epita.fr>
12173
12174 * src/output.c (output_gram): Rely on nritems, not the
12175 0-sentinel. See below.
12176 Use -1 as separator, not 0.
12177 * src/bison.simple (yyparse): Subtract 1 to the rule numbers.
12178 Rely on -1 as separator in yyrhs, instead of 0.
12179 * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
12180 twice `Now at end of input', therefore there are two lines less to
12181 expect.
12182
b365aa05
AD
121832001-12-27 Akim Demaille <akim@epita.fr>
12184
12185 * tests/regression.at (Unresolved SR Conflicts):
12186 (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
12187 below.
12188
30171f79
AD
121892001-12-27 Akim Demaille <akim@epita.fr>
12190
12191 * src/LR0.c (new_state): Recognize the final state by the fact it
12192 is reached by eoftoken.
12193 (insert_start_shifting_state, insert_eof_shifting_state)
12194 (insert_accepting_state, augment_automaton): Remove, since now
12195 these states are automatically computed from the initial state.
12196 (generate_states): Adjust.
12197 * src/print.c: When reporting a rule number to the user, substract
12198 1, so that the axiom rule is rule 0, and the first user rule is 1.
12199 * src/reduce.c: Likewise.
12200 * src/print_graph.c (print_core): For the time being, just as for
12201 the report, depend upon --trace-flags to dump the full set of
12202 items.
12203 * src/reader.c (readgram): Once the grammar read, insert the rule
12204 0: `$axiom: START-SYMBOL $'.
12205 * tests/set.at: Adjust: rule 0 is now displayed, and since the
12206 number of the states has changed (the final state is no longer
12207 necessarily the last), catch up.
12208
75142d45
AD
122092001-12-27 Akim Demaille <akim@epita.fr>
12210
12211 Try to make the use of the eoftoken valid. Given that its value
12212 is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
12213 is used instead of > 0 where appropriate, (ii), depend upon nritems
12214 instead of the 0-sentinel.
12215
12216 * src/gram.h, src/gram.c (nritems): New.
12217 Expected to be duplication of nitems, but for the time being...
12218 * src/reader.c (packgram): Assert nritems and nitems are equal.
12219 * src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
12220 * src/closure.c (print_closure, print_fderives): Likewise.
12221 * src/gram.c (ritem_print): Likewise.
12222 * src/print.c (print_core, print_grammar): Likewise.
12223 * src/print_graph.c: Likewise.
12224
b7c49edf
AD
122252001-12-27 Akim Demaille <akim@epita.fr>
12226
12227 * src/main.c (main): If there are complains after grammar
12228 reductions, then output the report anyway if requested, then die.
12229 * src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
12230 * src/reader.c (eoftoken): New.
12231 (parse_token_decl): If the token being defined has value `0', it
12232 is the eoftoken.
12233 (packsymbols): No longer hack `tags' to insert `$' by hand.
12234 Be sure to preserve the value of the eoftoken.
12235 (reader): Make sure eoftoken is defined.
12236 Initialize nsyms to 0: now eoftoken is created just like the others.
12237 * src/print.c (print_grammar): Don't special case the eof token.
12238 * src/regression.at: Adjust: `$' has value 0, not -1, which was a
12239 lie anyway, albeit pleasant.
12240 * tests/calc.at: Exercise error messages with eoftoken.
12241 Change the grammar so that empty input is invalid.
12242 Adjust expectations.
12243 When yyungeting, be sure to use a valid yylloc: use last_yylloc.
12244
ec2da99f
AD
122452001-12-27 Akim Demaille <akim@epita.fr>
12246
12247 * configure.in: Check the protos of strchr ans strspn.
12248 Replace strchr if needed.
12249 * src/system.h: Provide the protos of strchr, strspn and memchr if
12250 missing.
12251 * lib/strchr.c: New.
12252 * src/reader.c (symbols_save): Use strchr.
12253
8adfa272
AD
122542001-12-27 Akim Demaille <akim@epita.fr>
12255
12256 * src/print.c, src/print_graph.c (escape): New.
12257 Use it to quote the TAGS outputs.
12258 * src/print_graph.c (print_state): Now errors are in red, and
12259 reductions in green.
12260 Prefer high to wide: output the state number on a line of its own.
12261
80dac38c
AD
122622001-12-27 Akim Demaille <akim@epita.fr>
12263
12264 * src/state.h, src/state.c (reductions_new): New.
12265 * src/LR0.c (set_state_table): Let all the states have a
12266 `reductions', even if reduced to 0.
12267 (save_reductions): Adjust.
12268 * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
12269 * src/print.c (print_reductions, print_actions): Adjust.
12270 * src/output.c (action_row): Adjust.
12271
2cec70b9
AD
122722001-12-27 Akim Demaille <akim@epita.fr>
12273
12274 * src/state.h, src/state.c (errs_new, errs_dup): New.
12275 * src/LR0.c (set_state_table): Let all the states have an errs,
12276 even if reduced to 0.
12277 * src/print.c (print_errs, print_reductions): Adjust.
12278 * src/output.c (output_actions, action_row): Adjust.
12279 * src/conflicts.c (resolve_sr_conflict): Adjust.
12280
13ca549a
AD
122812001-12-27 Akim Demaille <akim@epita.fr>
12282
12283 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
12284
5092aba5
AD
122852001-12-27 Akim Demaille <akim@epita.fr>
12286
12287 * src/conflicts.c, src/conflicts.h (print_reductions): Move to...
12288 * src/print.c: here.
12289 (lookaheadset, shiftset): New, used as additional storage by
12290 print_reductions.
12291 (print_results): Adjust.
12292 (print_shifts, print_gotos, print_errs): New, extracted from...
12293 (print_actions): here.
12294 * src/print_graph.c (print_actions): Remove dead code.
12295
11e2beca
AD
122962001-12-27 Akim Demaille <akim@epita.fr>
12297
12298 * src/reader.c (copy_dollar, copy_at): Better checking of `n' in
12299 `$n' and `@n'.
12300
dac3c910
AD
123012001-12-27 Akim Demaille <akim@epita.fr>
12302
12303 * src/lalr.c (add_lookback_edge): Use state_t instead of ints.
12304 (build_relations): Adjust.
12305
d0b0fefa
AD
123062001-12-27 Akim Demaille <akim@epita.fr>
12307
12308 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
12309 duplication.
12310
adc8c848
AD
123112001-12-27 Akim Demaille <akim@epita.fr>
12312
12313 * src/reader.c (packgram): Catch nitems overflows.
12314
14d293ac
AD
123152001-12-27 Akim Demaille <akim@epita.fr>
12316
12317 * src/files.c, src/files.h (guard_obstack): Remove.
12318 * src/output.c (output): Adjust.
12319 * src/reader.c (parse_braces): New, factoring...
12320 (copy_action, copy_guard): these two which are renamed as...
12321 (parse_action, parse_guard): these.
12322 As a voluntary consequence, using braces around guards is now
12323 mandatory.
12324
f499b062
AD
123252001-12-27 Akim Demaille <akim@epita.fr>
12326
12327 * src/gram.h (rule_t): `guard' and `guard_line' are new members.
12328 * src/reader.c (symbol_list): `guard' and `guard_line' are new
12329 members.
12330 (symbol_list_new): Adjust.
12331 (copy_action): action_line is the first line, not the last.
12332 (copy_guard): Just as for actions, store the `action' only, not
12333 the switch/case/break flesh.
12334 Don't parse the user action that might follow the guard, let...
12335 (readgram): do it, i.e., now, there can be an action after a
12336 guard.
12337 In other words the guard is just explicitly optional.
12338 (packgram): Adjust.
12339 * src/output.c (guards_output): New.
12340 (output_parser): Call it when needed.
12341 (output): Also free the guard and attrs obstacks.
12342 * src/files.c, src/files.h (obstack_save): Remove.
12343 (output_files): Remove.
12344 As a result, if one needs the former `.act' file, using an
12345 appropriate skeleton which requires actions and guards is now
12346 required.
12347 * src/main.c (main): Adjust.
12348 * tests/semantic.at: New.
12349 * tests/regression.at: Use `input.y' as input file name.
12350 Avoid 8+3 problems by requiring input.c when the test needs the
12351 parser.
12352
d945f5cd
AD
123532001-12-27 Akim Demaille <akim@epita.fr>
12354
12355 * src/reader.c (symbol_list_new): Be sure to initialize all the
12356 fields.
12357
d200e455
AD
123582001-12-27 Akim Demaille <akim@epita.fr>
12359
12360 All the hacks using a final pseudo state are now useless.
12361
12362 * src/LR0.c (set_state_table): state_table holds exactly nstates.
12363 * src/lalr.c (nLA): New.
12364 (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
12365 instead of lookaheadsp from the pseudo state (nstate + 1).
12366
f9507c28
AD
123672001-12-27 Akim Demaille <akim@epita.fr>
12368
12369 * src/output.c (action_row, token_actions): Use a state_t instead
12370 of a integer, and nlookaheads instead of the following state's
12371 lookaheadsp.
12372
065fbd27
AD
123732001-12-27 Akim Demaille <akim@epita.fr>
12374
12375 * src/conflicts.c (log_resolution, flush_shift)
12376 (resolve_sr_conflict, set_conflicts, solve_conflicts)
12377 (count_sr_conflicts, count_rr_conflicts, conflicts_output)
12378 (conflicts_print, print_reductions): Use a state_t instead of an
12379 integer when referring to a state.
12380 As much as possible, depend upon nlookaheads, instead of the
12381 `lookaheadsp' member of the following state (since lookaheads of
12382 successive states are successive, the difference between state n + 1
12383 and n served as the number of lookaheads for state n).
12384 * src/lalr.c (add_lookback_edge): Likewise.
12385 * src/print.c (print_core, print_actions, print_state)
12386 (print_results): Likewise.
12387 * src/print_graph.c (print_core, print_actions, print_state)
12388 (print_graph): Likewise.
12389 * src/conflicts.h: Adjust.
12390
1b177bd7
AD
123912001-12-27 Akim Demaille <akim@epita.fr>
12392
12393 * src/bison.hairy: Formatting/comment changes.
12394 ANSIfy.
12395 Remove `register' indications.
12396 Add plenty of `static'.
12397
7742ddeb
AD
123982001-12-27 Akim Demaille <akim@epita.fr>
12399
12400 * src/output.c (prepare): Drop the muscle `ntbase' which
12401 duplicates ntokens.
12402 * src/bison.simple: Formatting/comment changes.
12403 Use YYNTOKENS only, which is documented, but not YYNTBASE, which
12404 is an undocumented synonym.
12405
1fa14068
AD
124062001-12-22 Akim Demaille <akim@epita.fr>
12407
12408 * src/output.c (output_table_data): Change the prototype to use
12409 `int' for array ranges: some invocations do pass an int, not a
12410 short.
12411 Reported by Wayne Green.
12412
b9752825
AD
124132001-12-22 Akim Demaille <akim@epita.fr>
12414
12415 Some actions of web2c.y are improperly triggered.
12416 Reported by Mike Castle.
12417
12418 * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
12419 * tests/regression.at (Web2c): Rename as...
12420 (Web2c Report): this.
12421 (Web2c Actions): New.
12422
776209d6
AD
124232001-12-22 Akim Demaille <akim@epita.fr>
12424
12425 Reductions in web2c.y are improperly reported.
12426 Reported by Mike Castle.
12427
12428 * src/conflicts.c (print_reductions): Fix.
12429 * tests/regression.at (Web2c): New.
12430
275fc3ad
AD
124312001-12-18 Akim Demaille <akim@epita.fr>
12432
12433 Some host fail on `assert (!"foo")', which expands to
12434 ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
12435 Reported by Nelson Beebee.
12436
12437 * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
12438 `#define it_succeeded 0' and `assert (it_succeeded)'.
12439
897668ee
MA
124402001-12-17 Marc Autret <autret_m@epita.fr>
12441
12442 * src/bison.simple: Don't hard code the skeleton line and filename.
12443 * src/output.c (output_parser): Rename 'line' as 'output_line'.
12444 New line counter 'skeleton_line' (skeleton-line muscle).
12445
ab3399e0
PE
124462001-12-17 Paul Eggert <eggert@twinsun.com>
12447
12448 * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
12449 YYDEBUG must be defined to a nonzero value.
12450
12451 * src/bison.simple (yytname): Do not assume that the user defines
12452 YYDEBUG to a properly parenthesized expression.
12453
3877f72b
AD
124542001-12-17 Akim Demaille <akim@epita.fr>
12455
12456 * src/state.h (state_t): Rename lookaheads as lookaheadsp.
12457 nlookaheads is a new member.
12458 Adjust all users.
12459 * src/lalr.h (nlookaheads): Remove this orphan declaration.
12460 * src/lalr.c (initialize_lookaheads): Set nlookaheads for each
12461 state.
776209d6 12462
331dbc1b
AD
124632001-12-17 Akim Demaille <akim@epita.fr>
12464
12465 * src/files.h, src/files.c (open_files, close_files): Remove.
12466 * src/main.c (main): Don't open/close files, nor invoke lex_free,
12467 let...
12468 * src/reader.c (reader): Do it.
776209d6 12469
be750e4c
AD
124702001-12-17 Akim Demaille <akim@epita.fr>
12471
12472 * src/conflicts.c (print_reductions): Formatting changes.
776209d6 12473
709ae8c6
AD
124742001-12-17 Akim Demaille <akim@epita.fr>
12475
12476 * src/conflicts.c (flush_shift): Also adjust lookaheadset.
12477 (flush_reduce): New.
12478 (resolve_sr_conflict): Adjust.
776209d6 12479
f87685c3
AD
124802001-12-17 Akim Demaille <akim@epita.fr>
12481
12482 * src/output.c (output_obstack): Be static and rename as...
12483 (format_obstack): this, to avoid any confusion with files.c's
12484 output_obstack.
12485 * src/reader.h (muscle_obstack): Move to...
12486 * src/output.h: here, since it's defined in output.c.
12487
837491d8
AD
124882001-12-17 Akim Demaille <akim@epita.fr>
12489
12490 * src/output.c (action_row, save_column, default_goto)
12491 (sort_actions, matching_state, pack_vector): Better variable
12492 locality.
12493
796d61fb
AD
124942001-12-17 Akim Demaille <akim@epita.fr>
12495
12496 * src/output.c: Various formatting changes.
776209d6 12497
64d15509
AD
124982001-12-17 Akim Demaille <akim@epita.fr>
12499
12500 * src/files.c (output_files): Free the output_obstack.
12501 * src/main.c (main): Call print and print_graph conditionally.
12502 * src/print.c (print): Work unconditionally.
12503 * src/print_graph.c (print_graph): Work unconditionally.
12504 * src/conflicts.c (log_resolution): Output only if verbose_flag.
12505
fbc8ecb7
MA
125062001-12-16 Marc Autret <autret_m@epita.fr>
12507
12508 * src/output.c (actions_output): Fix. When we use %no-lines,
12509 there is one less line per action.
12510
f0440388
MA
125112001-12-16 Marc Autret <autret_m@epita.fr>
12512
12513 * src/bison.simple: Remove a useless #line directive.
12514 s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
12515 * src/output.c (get_lines_number): New.
776209d6 12516 (output_parser): Adjust, now takes care about the lines of a
f0440388
MA
12517 output muscles.
12518 Fix line numbering.
12519 (actions_output): Computes the number of lines taken by actions.
12520 (output_master_parser): Insert new skeleton which is the name of
12521 the output parser file name.
12522
a79986b8
MA
125232001-12-15 Marc Autret <autret_m@epita.fr>
12524
12525 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
12526
4ec8e00f
MA
125272001-12-15 Marc Autret <autret_m@epita.fr>
12528
12529 * src/output.c (output_gram): Keep track of the hairy one.
12530
1a4648ff
AD
125312001-12-15 Akim Demaille <akim@epita.fr>
12532
12533 Make `make distcheck' work.
12534
12535 * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
12536 system.h which uses libgettext.h.
12537
9c2c67e6
AD
125382001-12-15 Akim Demaille <akim@epita.fr>
12539
12540 * src/nullable.c (set_nullable): Useless rules must be skipped,
12541 otherwise, since we range over their symbols, we might look at a
12542 nonterminal which no longer ``exists'', i.e., it is not counted in
12543 `nvars', hence we overflow our arrays.
12544
93ede233
AD
125452001-12-15 Akim Demaille <akim@epita.fr>
12546
12547 The header can also be produced directly, without any obstack!
12548 Yahoo!
12549
12550 * src/files.c, src/files.h (defines_obstack): Remove.
12551 (compute_header_macro): Global.
12552 (defines_obstack_save): Remove.
12553 * src/reader.c (parse_union_decl): No longer output to
12554 defines_obstack: its content can be found in the `stype' muscle
12555 anyway.
12556 (output_token_translations): Merge into...
12557 (symbols_output): this.
12558 Rename as...
12559 (symbols_save): this.
12560 (reader): Adjust.
12561 * src/output.c (header_output): New.
12562 (output): Call it.
12563
2666f928
AD
125642001-12-15 Akim Demaille <akim@epita.fr>
12565
12566 * src/reader.c (parse_union_decl): Instead of handling two obstack
12567 simultaneously, use one to define the `stype' muscle, and use the
12568 value of the latter to fill defines_obstack.
12569 (copy_comment): Remove.
12570 (copy_comment2): Work for a single obstack.
12571 Rename as...
12572 (copy_comment): this.
12573
428046f8
AD
125742001-12-15 Akim Demaille <akim@epita.fr>
12575
12576 * src/lex.c, src/lex.h (xgetc): No longer static.
12577 * src/reader.c (parse_union_decl): Revamp.
12578
ea52d706
AD
125792001-12-15 Akim Demaille <akim@epita.fr>
12580
12581 Still making progress in separating Bison into (i) input, (ii)
12582 process, (iii) output: now we can directly output the parser file
12583 without using table_obstack at all.
12584
12585 * src/files.c, src/files.h (table_obstack): Bye bye.
12586 (parser_file_name): New.
12587 * src/files.c (compute_output_file_names): Compute it.
12588 * src/output.c (actions_output, output_parser)
12589 (output_master_parser): To a file instead of an obstack.
12590
3f96f4dc
AD
125912001-12-15 Akim Demaille <akim@epita.fr>
12592
12593 Attach actions to rules, instead of pre-outputting them to
12594 actions_obstack.
12595
12596 * src/gram.h (rule_t): action and action_line are new members.
12597 * src/reader.c (symbol_list): Likewise.
12598 (copy_action): Save the actions within the rule.
12599 (packgram): Save them in rule_table.
12600 * src/output.c (actions_output): New.
12601 (output_parser): Use it on `%%actions'.
12602 (output_rule_data): Don't free rule_table.
12603 (output): Do it.
12604 (prepare): Don't save the `action' muscle.
12605 * src/bison.simple: s/%%action/%%actions/.
12606
51576fb3
AD
126072001-12-15 Akim Demaille <akim@epita.fr>
12608
12609 * src/reader.c (copy_action): When --yacc, don't append a `;'
12610 to the user action: let it fail if lacking.
dee049eb 12611 Suggested by Arnold Robbins and Tom Tromey.
51576fb3 12612
2648a72d
AD
126132001-12-14 Akim Demaille <akim@epita.fr>
12614
12615 * src/lex.c (literalchar): Simply return the char you decoded, non
12616 longer mess around with obstacks and int pointers.
12617 Adjust all callers.
12618
92790e5b
AD
126192001-12-14 Akim Demaille <akim@epita.fr>
12620
12621 * src/lex.c (literalchar): Don't escape the special characters,
12622 just decode them, and keep them as char (before, eol was output as
12623 the 2 char string `\n' etc.).
12624 * src/output.c (output_rule_data): Use quotearg to output the
12625 token strings.
12626
927c1557
PE
126272001-12-13 Paul Eggert <eggert@twinsun.com>
12628
12629 * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
12630 Do not infringe on the global user namespace when using C++.
12631 (YYFPRINTF, YYSTDERR): New macros, needed for the above.
12632 All uses of `fprintf' and `stderr' changed.
12633
12634 * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
12635
ed8e1f68
AD
126362001-12-13 Akim Demaille <akim@epita.fr>
12637
12638 The computation of nullable is broken: it doesn't handle empty
12639 RHS's properly.
12640
12641 * tests/torture.at (GNU AWK Grammar): New.
12642 * tests/sets.at (Nullable): New.
12643 * src/nullable.c (set_nullable): Instead of blindly looping over
12644 `ritems', loop over the rules, and then over their rhs's.
12645
12646 Work around Autotest bugs.
12647
12648 * src/warshall.c (bitmatrix_print): Don't use `+--+' as table
12649 frame, because Autotest understand lines starting with a `+' as
12650 traces from the shell. Then, they are not processed properly.
12651 Admittedly an Autotest bug, but we don't have time to wait for
12652 Autotest to catch up.
12653 * tests/regression.at (Broken Closure): Adjust to the new table
12654 frames.
12655 Move to...
12656 * tests/sets.at: here.
12657
cb581495
AD
126582001-12-13 Akim Demaille <akim@epita.fr>
12659
12660 * src/closure.c (closure): Use nrules instead of playing tricks
12661 with BITS_PER_WORD.
12662
2e729273
AD
126632001-12-13 Akim Demaille <akim@epita.fr>
12664
12665 * src/print.c (print_actions): Output the handling of `$' as the
12666 traces do: shifting the token EOF. Before EOF was treated as a
12667 nonterminal.
12668 * tests/regression.at: Adjust some tests.
12669 * src/print_graph.c (print_core): Complete the set of items via
12670 closure. The next-to-final and final states are still unsatisfying,
12671 but that's to be addressed elsewhere.
12672 No longer output the rule numbers, but do output the state number.
12673 A single loop for the shifts + gotos is enough, but picked a
12674 distinct color for each.
12675 (print_graph): Initialize and finalize closure.
12676
107f7dfb
AD
126772001-12-13 Akim Demaille <akim@epita.fr>
12678
12679 * src/reader.c (readgram): Remove dead code, an strip useless
12680 braces.
12681 (get_type): Remove, unused.
12682
9b53a24f
AD
126832001-12-12 Akim Demaille <akim@epita.fr>
12684
12685 * src/complain.h, src/complain.c: Remove error_one_per_line, rely
12686 on that of lib/error.c.
12687
dbfb6dcd
AD
126882001-12-12 Akim Demaille <akim@epita.fr>
12689
12690 Some hosts don't like `/' in includes.
12691
12692 * src/system.h: Include libgettext.h without qualifying the path.
12693 * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
12694 $(top_srcdir).
12695
c25fb648
MA
126962001-12-11 Marc Autret <autret_m@epita.fr>
12697
12698 * src/output.c (output_parser): Remove useless muscle.
12699
710ddc4f
MA
127002001-12-11 Marc Autret <autret_m@epita.fr>
12701
12702 * src/bison.simple: Remove #line just before %%epilogue. It
12703 is now handled in ...
12704 * src/reader.c (read_additionnal_code): Add the output of a
12705 #line for the epilogue.
12706
e83d80b8
MA
127072001-12-10 Marc Autret <autret_m@epita.fr>
12708
927c1557 12709 * src/reader.c (copy_definition): Re-use CPP-outed code which
e83d80b8
MA
12710 replace precedent remove.
12711 * src/bison.simple: Remove #line before %%prologue because
12712 %%input-line is wrong at this time.
12713
971d5158
MA
127142001-12-10 Marc Autret <autret_m@epita.fr>
12715
12716 * src/reader.c (symbols_output): Clean up.
927c1557 12717 * src/output.c (output_gram, output): Clean up.
971d5158 12718
5edafffd
AD
127192001-12-10 Akim Demaille <akim@epita.fr>
12720
12721 * src/lalr.c (initialize_lookaheads): New. Extracted from...
12722 * src/LR0.c (set_state_table): here.
12723 * src/lalr.c (lalr): Call it.
12724
0279f8e9
AD
127252001-12-10 Akim Demaille <akim@epita.fr>
12726
12727 * src/state.h (shifts): Remove the `number' member: shifts are
12728 attached to state, hence no longer need to be labelled with a
12729 state number.
12730
190c4f5f
AD
127312001-12-10 Akim Demaille <akim@epita.fr>
12732
12733 Now that states have a complete set of members, the linked list of
12734 shifts is useless: just fill directly the state's shifts member.
12735
12736 * src/state.h (shifts): Remove the `next' member.
12737 * src/LR0.c (first_state, last_state): Remove.
12738 Adjust the callers.
12739 (augment_automaton): Don't look for the shifts that must be added
12740 a shift on EOF: it is those of the state we looked for! But now,
12741 since shifts are attached, it is no longer needed to looking
12742 merely by its id: its number.
12743
2a73b93d
AD
127442001-12-10 Akim Demaille <akim@epita.fr>
12745
12746 * src/LR0.c (augment_automaton): Better variable locality.
12747 Remove an impossible branch: if there is a state corresponding to
12748 the start symbol being shifted, then there is shift for the start
12749 symbol from the initial state.
12750
74392f6a
AD
127512001-12-10 Akim Demaille <akim@epita.fr>
12752
12753 * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
12754 only when appropriate: when insert_start_shifting_state' is not
12755 invoked.
12756 * tests/regression.at (Rule Line Numbers): Adjust.
12757
37c82725
AD
127582001-12-10 Akim Demaille <akim@epita.fr>
12759
12760 * src/LR0.c (augment_automaton): Now that all states have shifts,
12761 merge the two cases addition shifts to the initial state.
12762
6a164e0c
AD
127632001-12-10 Akim Demaille <akim@epita.fr>
12764
12765 * src/lalr.c (set_state_table): Move to...
12766 * src/LR0.c: here.
12767 * src/lalr.c (lalr): Don't call it...
12768 * src/LR0.c (generate_states): do it.
12769 * src/LR0.h (first_state): Remove, only the table is used.
12770
7215de24
AD
127712001-12-10 Akim Demaille <akim@epita.fr>
12772
12773 * src/LR0.h (first_shift, first_reduction): Remove.
12774 * src/lalr.c: Don't use first_shift: find shifts through the
12775 states.
12776
80e25d4d
AD
127772001-12-10 Akim Demaille <akim@epita.fr>
12778
12779 * src/LR0.c: Attach shifts to states as soon as they are
12780 computed.
12781 * src/lalr.c (set_state_table): Instead of assigning shifts to
12782 state, just assert that the mapping was properly done.
12783
0ab3728b
AD
127842001-12-10 Akim Demaille <akim@epita.fr>
12785
12786 * src/LR0.c (insert_start_shift): Rename as...
12787 (insert_start_shifting_state): this.
12788 (insert_eof_shifting_state, insert_accepting_state): New.
12789 (augment_automaton): Adjust.
12790 Better locality of the variables.
12791 When looking if the start_symbol is shifted from the initial
12792 state, using `while (... symbol != start_symbol ...)' sounds
12793 better than `while (... symbol < start_symbol ...)': If fail
12794 to see how the order between symbols could be relevant!
12795
78af9bbc
AD
127962001-12-10 Akim Demaille <akim@epita.fr>
12797
12798 * src/getargs.h: Don't declare `spec_name_prefix' and
12799 `spec_file_prefix', declared by src/files.h.
12800 * src/files.c, src/files.h: Default for spec_name_prefix is "yy".
12801 * src/muscle_tab.c (muscle_init): Default prefix to NULL.
12802 * src/output.c (prepare): Adjust.
12803 * src/reader.c (symbols_output): Likewise.
12804 * src/vmsgetargs.c: Vaguely adjust, but who cares?
12805
bdef2a41
AD
128062001-12-10 Akim Demaille <akim@epita.fr>
12807
12808 * src/muscle_tab.c (muscle_init): NULL is a better default than
12809 `"0"'.
12810
3735969c
AD
128112001-12-10 Akim Demaille <akim@epita.fr>
12812
12813 * src/reader.c (reader): Calling symbols_output once is enough.
12814
49701457
AD
128152001-12-10 Akim Demaille <akim@epita.fr>
12816
12817 Now that states have a complete set of members, the linked list of
12818 reductions is useless: just fill directly the state's reductions
12819 member.
12820
12821 * src/state.h (struct reductions): Remove member `number' and
12822 `next'.
12823 * src/LR0.c (first_reduction, last_reduction): Remove.
12824 (save_reductions): Don't link the new reductions, store them in
12825 this_state.
12826 * src/lalr.c (set_state_table): No need to attach reductions to
12827 states, it's already done.
12828 * src/output.c (output_actions): No longer free the shifts, then
12829 the reductions, then the states: free all the states and their
12830 members.
12831
0edad749
AD
128322001-12-10 Akim Demaille <akim@epita.fr>
12833
12834 * src/options.c (OPTN, DRTV, BOTH): New.
12835 (option_table): Use them.
12836
0edad749
AD
12837 * src/muscle_tab.c: Don't include xalloc.h and string.h: that's
12838 the job of system.h.
12839 * src/options.c: Don't include stdio.h and xalloc.h for the same
12840 reasons.
12841
5449dd0f
AD
128422001-12-10 Akim Demaille <akim@epita.fr>
12843
12844 * src/output.c (output, prepare): Make sure the values of the
12845 muscles `action' and `prologue' are 0-terminated.
12846
a870c567
AD
128472001-12-10 Akim Demaille <akim@epita.fr>
12848
12849 Clean up GCC warnings.
12850
12851 * src/reader.c (copy_action): `buf' is not used.
12852 (parse_skel_decl): Be static.
12853 * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
12854 * src/options.h (create_long_option_table): Have a real prototype.
12855 * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
12856 (hash_delete_at): Return const void *.
12857 Adjust casts to preserve the const.
12858
80df8768
AD
128592001-12-10 Akim Demaille <akim@epita.fr>
12860
12861 * configure.in: Require 2.52g.
12862 M4 is not needed, but AUTOM4TE is.
12863 * m4/m4.m4: Remove.
12864 * tests/Makefile.am: Adjust.
12865
f693ad14
AD
128662001-12-10 Akim Demaille <akim@epita.fr>
12867
12868 One structure for states is enough, even though theoretically
12869 there are LR(0) states and LALR(1) states.
12870
12871 * src/lalr.h (state_t): Remove.
12872 (state_table): Be state_t **, not state_t *.
12873 * src/state.h (core, CORE_ALLOC): Rename as...
12874 (state_t, STATE_ALLOC): this.
12875 Add the LALR(1) members: shifts, reductions, errs.
12876 * src/LR0.c (state_table): Rename as...
12877 (state_hash): this, to avoid name clashes with the global
12878 `state_table'.
12879 * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
12880 * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
12881
74ffbcb6
AD
128822001-12-10 Akim Demaille <akim@epita.fr>
12883
12884 Bison dumps core on bash.y.
12885 Reported by Pascal Bart.
12886
12887 * src/warshall.c (bitmatrix_print): New.
12888 (TC): Use it.
ba0fe3c7 12889 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
74ffbcb6
AD
12890 j must be the outer loop.
12891 * tests/regression.at (Broken Closure): New.
12892
07708e19
AD
128932001-12-05 Akim Demaille <akim@epita.fr>
12894
12895 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
12896 its argument.
ba1ecc07 12897 Reported by Peter Hamorsky.
07708e19 12898
92b16366
AD
128992001-12-05 Akim Demaille <akim@epita.fr>
12900
12901 * src/conflicts.c (err_table): Remove.
12902 (resolve_sr_conflict): Adjust.
12903 * src/lalr.h (state_t.reduction_table, state_t.shift_table):
12904 Rename as...
12905 (state_t.reductions, state_t.shifts): this.
12906
076ab033
AD
129072001-12-05 Akim Demaille <akim@epita.fr>
12908
12909 * src/reduce.c (reduce_grammar_tables): No longer disable the
12910 removal of useless rules via CPP but via `if (0)', so that the
12911 compiler still check the code is valid.
12912 For instance, it should have noticed `rline' no longer exists: use
12913 the `line' member of rule_t.
12914 * src/gram.c (dummy, rline): Remove, unused.
12915
3843c413
AD
129162001-12-05 Akim Demaille <akim@epita.fr>
12917
12918 * src/output.c (pack_vector): Use assert, not berror.
12919 * src/main.c (berror): Remove, unused.
12920
43168960
AD
129212001-12-05 Akim Demaille <akim@epita.fr>
12922
12923 New experimental feature: if --verbose --trace output all the
12924 items of a state, not only its kernel.
12925
12926 * src/print.c (print_core): If `trace_flag', then invoke closure
12927 before outputting the items of the state (print_core is no longer
12928 a correct name them).
12929 (print_results): Invoke new_closure/free_closure if needed.
12930
b2872512
AD
129312001-12-05 Akim Demaille <akim@epita.fr>
12932
12933 * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
12934 * src/closure.c, src/closure.h (itemsetsize): Rename as...
12935 (nitemset): for consistency with the rest of the project.
12936
23cbcc6c
AD
129372001-12-05 Akim Demaille <akim@epita.fr>
12938
12939 * src/closure.c (print_closure): Improve.
12940 (closure): Use it for printing input and output.
12941
03ec521c
AD
129422001-12-05 Akim Demaille <akim@epita.fr>
12943
12944 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
12945 indexed by nonterminals.
12946
3a7456dd
AD
129472001-12-05 Akim Demaille <akim@epita.fr>
12948
12949 * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
12950 what it was!).
12951 * src/warshall.h: Remove accidental duplication of the content.
12952
1cbcf2e7
AD
129532001-12-05 Akim Demaille <akim@epita.fr>
12954
12955 * src/closure.c (set_fderives): De-obfuscate.
12956
84182270
AD
129572001-12-05 Akim Demaille <akim@epita.fr>
12958
12959 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
12960
3f6f053c
AD
129612001-12-05 Akim Demaille <akim@epita.fr>
12962
12963 * src/closure.c (set_firsts): De-obfuscate.
12964
7a5350ba
AD
129652001-12-05 Akim Demaille <akim@epita.fr>
12966
12967 * src/output.c (action_row): De-obfuscate
12968 using the good o' techniques: arrays not pointers, variable
12969 locality, BITISSET, RESETBIT etc.
12970
d954473d
AD
129712001-12-05 Akim Demaille <akim@epita.fr>
12972
12973 Pessimize the code to simplify it: from now on, all the states
12974 have a valid SHIFTS, which NSHIFTS is possibly 0.
12975
12976 * src/LR0.c (shifts_new): Be global and move to..
12977 * src/state.c, src/state.h: here.
12978 * src/conflicts, src/lalr.c, src/output.c, src/print.c,
12979 * src/print_graph: Adjust.
12980
9839bbe5
AD
129812001-12-05 Akim Demaille <akim@epita.fr>
12982
12983 * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
12984 * src/conflicts.c: Use it.
12985 Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
12986 incorrectly ``simplified''.
12987
9f136c07
AD
129882001-12-05 Akim Demaille <akim@epita.fr>
12989
12990 * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
12991 using the good o' techniques: arrays not pointers, variable
12992 locality, BITISSET, RESETBIT etc.
12993
b608206e
AD
129942001-12-05 Akim Demaille <akim@epita.fr>
12995
12996 * src/state.h (SHIFT_SYMBOL): New.
12997 * src/conflicts.c: Use it to deobfuscate.
12998
52afa962
AD
129992001-12-05 Akim Demaille <akim@epita.fr>
13000
13001 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
13002 (print_reductions): De-obfuscate using the good o' techniques:
13003 arrays not pointers, variable locality, BITISSET.
13004
e74dc321
AD
130052001-12-05 Akim Demaille <akim@epita.fr>
13006
13007 * src/conflicts.c (print_reductions): Arrays, not pointers.
13008 Use BITISSET.
13009
768fca83
AD
130102001-12-05 Akim Demaille <akim@epita.fr>
13011
13012 * src/conflicts.c (print_reductions): Pessimize, but clarify.
13013
a17e599f
AD
130142001-12-05 Akim Demaille <akim@epita.fr>
13015
13016 * src/conflicts.c (print_reductions): Improve variable locality.
13017
a04bc341
AD
130182001-12-05 Akim Demaille <akim@epita.fr>
13019
13020 * src/conflicts.c (print_reductions): Pessimize, but clarify.
13021
c8ea038e
AD
130222001-12-05 Akim Demaille <akim@epita.fr>
13023
13024 * src/conflicts.c (print_reductions): Improve variable locality.
13025
aa2aab3c
AD
130262001-12-05 Akim Demaille <akim@epita.fr>
13027
13028 * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
13029 * src/lalr.c: Use them.
13030
b178c8cc
AD
130312001-12-05 Akim Demaille <akim@epita.fr>
13032
13033 * src/LR0.c (augment_automaton): Formatting changes.
13034 Better variable locality.
13035
f67d13aa
AD
130362001-12-05 Akim Demaille <akim@epita.fr>
13037
13038 * src/lalr.c (matrix_print): New.
13039 (transpose): Use it.
13040 Use arrays instead of pointers.
13041
c2713865
AD
130422001-12-05 Akim Demaille <akim@epita.fr>
13043
13044 * src/lalr.c (maxrhs): Move to...
13045 * src/gram.c, src/gram.h (ritem_longest_rhs): here.
13046 * src/lalr.c (build_relations): Adjust.
13047
9887c18a
AD
130482001-12-05 Akim Demaille <akim@epita.fr>
13049
13050 * src/lalr.c (transpose): Free the memory allocated to the
13051 argument, as it is replaced by the results by the unique caller.
13052 (build_relations): Merely invoke transpose: it handles the memory
13053 deallocation.
13054 Improve variable locality.
13055 Avoid variables used as mere abbreviations.
13056 (compute_lookaheads): Use arrays instead of pointers.
13057
4d4f699c
AD
130582001-12-05 Akim Demaille <akim@epita.fr>
13059
13060 * src/lalr.c (initialize_F): Improve variable locality.
13061 Avoid variables used as mere abbreviations.
13062
80a69750
AD
130632001-12-05 Akim Demaille <akim@epita.fr>
13064
13065 * src/derives.c (print_derives): Display the ruleno.
13066 * src/lalr.c (initialize_F, transpose): Better variable locality
13067 to improve readability.
13068 Avoid variables used as mere abbreviations.
13069
fe961097
AD
130702001-12-05 Akim Demaille <akim@epita.fr>
13071
13072 * src/lalr.c (traverse): Use arrays instead of pointers.
13073
e3e4e814
AD
130742001-12-05 Akim Demaille <akim@epita.fr>
13075
13076 * src/nullable.c (set_nullable): Use a for loop to de-obfuscate
13077 the handling of squeue.
13078 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
13079
630e182b
AD
130802001-12-05 Akim Demaille <akim@epita.fr>
13081
13082 Because useless nonterminals are now kept alive (instead of being
13083 `destroyed'), we now sometimes examine them, and store information
13084 related to them. Hence we need to know their number, and adjust
13085 memory allocations.
13086
13087 * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
13088 static.
13089 * src/LR0.c (allocate_itemsets): The memory allocated to
13090 `symbol_count' was used for two different purpose: once to count
13091 the number of occurrences of each symbol, and later reassigned to
13092 `shift_symbol', containing the symbol that can be shifted from a
13093 given state.
13094 Deobfuscate, i.e., allocate, use and free `symbol_count' here
13095 only, and...
13096 (new_itemsets): Allocate `shift_symbol' here.
13097 (allocate_itemsets): symbol_count includes useless nonterminals.
13098 Make room for them.
13099 (free_storage): Use `free', not `XFREE', for pointers that cannot
13100 be null.
13101
81b51460
AD
131022001-12-05 Akim Demaille <akim@epita.fr>
13103
13104 * src/nullable.c (set_nullable): Deobfuscate the handling of
13105 ritem.
13106 `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
13107
3067fbef
AD
131082001-12-05 Akim Demaille <akim@epita.fr>
13109
13110 * src/gram.c, src/gram.h (ritem_print): New.
13111 * src/gram.c (dummy): Remove, now there is actual code in gram.c.
13112 (This useless function was defined only to work around VMS linkers
13113 that can't handle compilation units with variables only).
13114 * src/reduce.c (dump_grammar): Use it to trace the construction of
13115 ritem.
13116
c2bea5f9
PE
131172001-12-04 Paul Eggert <eggert@twinsun.com>
13118
7d27c823
PE
13119 * src/bison.simple (union yyalloc): Change member names
13120 to be the same as the stack names.
13121 (yyparse): yyptr is now union yyalloc *, not char *.
13122 (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
13123 and may generate better code on some machines.
c2bea5f9
PE
13124 (yystpcpy): Use prototype if __STDC__ is defined, not just
13125 if __cplusplus is defined.
35687a9d 13126
2c8a9dfa
AD
131272001-11-30 Akim Demaille <akim@epita.fr>
13128
13129 * configure.in (WARNING_CFLAGS): Add -Werror when possible.
13130 (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
13131 Gettext doesn't compile cleanly, and dies with -Werror.
13132 * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
13133 Include WARNING_CFLAGS here.
13134 * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
13135 before being defined.
13136
f4e421e6
AD
131372001-11-27 Paul Eggert <eggert@twinsun.com>
13138
13139 * lib/quotearg.h (quotearg_n, quotearg_n_style):
13140 First arg is int, not unsigned.
13141 * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
13142 (SIZE_MAX, UINT_MAX): New macros.
13143 (quotearg_n_options): Abort if N is negative.
13144 Avoid overflow check on hosts where size_t is 64 bits and int
13145 is 32 bits, as overflow is impossible there.
13146 Fix off-by-one typo that caused unnecessary reallocation.
13147
7093d0f5
AD
131482001-11-29 Paul Eggert <eggert@twinsun.com>
13149
13150 Name space cleanup in generated parser.
13151
13152 * doc/bison.texinfo (Bison Parser): Discuss system headers
13153 and their effect on the user name space.
13154
13155 * src/bison.simple:
13156 (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
13157 YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
13158 i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
13159
13160 (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing
13161 on user names when possible.
13162
13163 (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
13164 Simplify test for whather <alloca.h> exists.
13165
13166 (<stdlib.h>): Include if we will use malloc, and if standard C or C++.
13167
13168 (<stdio.h>): Include if YYDEBUG.
13169
13170 (yymemcpy): Renamed from __yy_memcpy. Do not define unless
13171 ! defined (yyoverflow) && ! defined (yymemcpy).
13172
13173 (yymemcpy, yyparse): Rename local variables as needed so that
13174 they all begin with 'yy'.
13175
13176 (yystrlen, yystpcpy): New functions.
13177
13178 (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
13179 All uses changed.
13180
13181 (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy
13182 instead of relying on string.h functions. Use YYSTACK_ALLOC
13183 and YYSTACK_FREE instead of malloc and free.
13184
fd51e5ff
AD
131852001-11-30 Akim Demaille <akim@epita.fr>
13186
13187 * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
13188 before their first uses.
13189 (YYBISON, YYPURE): Move to the top of the output.
13190
7d13ff5f
AD
131912001-11-30 Akim Demaille <akim@epita.fr>
13192
13193 * tests/reduce.at (Useless Nonterminals): Fix.
13194
892a3995
AD
131952001-11-30 Akim Demaille <akim@epita.fr>
13196
13197 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
13198 if body instead of `;' to pacify GCC's warnings.
13199
68f1e3ed
AD
132002001-11-30 Akim Demaille <akim@epita.fr>
13201
13202 Instead of mapping the LHS of unused rules to -1, keep the LHS
13203 valid, but flag the rules as invalid.
13204
13205 * src/gram.h (rule_t): `useful' is a new member.
13206 * src/print.c (print_grammar): Adjust.
13207 * src/derives.c (set_derives): Likewise.
13208 * src/reader.c (packgram, reduce_output): Likewise.
13209 * src/reduce.c (reduce_grammar_tables): Likewise.
13210 * tests/reduce.at (Underivable Rules, Useless Rules): New.
13211
d2d1b42b
AD
132122001-11-30 Akim Demaille <akim@epita.fr>
13213
13214 * src/reduce.c (reduce_output): Formatting changes.
13215 * src/print.c (print_results, print_grammar): Likewise.
13216 * tests/regression.at (Rule Line Numbers)
13217 (Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
13218
760b53a8
AD
132192001-11-30 Akim Demaille <akim@epita.fr>
13220
13221 * src/reduce.c (nonterminals_reduce): Instead of throwing away
13222 useless nonterminals, move them at the end of the symbol arrays.
13223 (reduce_output): Adjust.
13224 * tests/reduce.at (Useless Nonterminals): Adjust.
13225
00238958
AD
132262001-11-30 Akim Demaille <akim@epita.fr>
13227
13228 * src/reduce.c: Various comment/formatting changes.
13229 (nonterminals_reduce): New, extracted from...
13230 (reduce_grammar_tables): here.
13231 (reduce_grammar): Call nonterminals_reduce.
13232
396452de
PE
132332001-11-29 Paul Eggert <eggert@twinsun.com>
13234
13235 * src/bison.simple (YYSTACK_REALLOC): Remove.
13236 (YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
13237 (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
13238 New macros.
13239 (union yyalloc): New type.
13240 (__yy_memcpy): Last arg is size_t, not unsigned int, to remove
13241 an arbitrary restriction on hosts where size_t is wider than int.
13242
13243 (yyparse): Don't dump core if alloca or malloc fails; instead, report
13244 a parser stack overflow. Allocate just one block of memory for all
13245 three stacks, instead of allocating three blocks; this typically is
13246 faster and reduces fragmentation.
13247
13248 Do not limit the number of items in the stack to a value that fits
13249 in 'int', as this is an arbitrary limit on hosts with 64-bit
13250 size_t and 32-bit int.
13251
147e184c
MA
132522001-11-29 Marc Autret <autret_m@epita.fr>
13253
13254 * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
13255 of defining YYERROR_VERBOSE.
13256 [AT_DATA]: $4 is now out of C declarations in the prologue.
13257
426cf563
MA
132582001-11-28 Marc Autret <autret_m@epita.fr>
13259
13260 * src/reader.c (parse_dquoted_param): New.
13261 (parse_skel_decl): Use it.
13262 * src/lex.h: Add its prototype.
13263 * src/lex.c (literalchar): Become not static.
13264
c7925b99
MA
132652001-11-28 Marc Autret <autret_m@epita.fr>
13266
13267 * src/output.h: And put its extern declaration here.
13268 * src/output.c (error_verbose): Define here.
13269 (prepare): Echo name modification.
13270 * src/getargs.h: Clean its extern declaration.
13271 * src/getargs.c (error_verbose_flag): Remove.
13272 (getargs): Remove case 'e'.
13273 * src/options.c (option_table): 'error-verbose' is now seen as simple
13274 percent option.
13275 Include output.h.
13276
13277 * src/reader.c (read_declarations): Remove case tok_include.
13278 (parse_include_decl): Remove.
13279 * src/lex.h (token_t): Remove tok_include.
13280 * src/options.c (option_table): 'include' is now a simple command line
13281 option.
13282
5b5d1929
MA
132832001-11-28 Marc Autret <autret_m@epita.fr>
13284
13285 * src/bison.simple: Adjust muscle names.
13286 * src/muscle_tab.c (muscle_init): Also rename the muscles.
13287 * src/output.c (prepare): s/_/-/ for the muscles names.
13288 (output_parser): When scanning for a muscle, allow '-' instead of '_'.
13289
8850be4b
MA
132902001-11-28 Marc Autret <autret_m@epita.fr>
13291
13292 * src/bison.simple: Fix debug.
13293 [YYERROR_VERBOSE]: Re-integrate as an internal macro.
13294
4a38e613
AD
132952001-11-28 Akim Demaille <akim@epita.fr>
13296
13297 * src/LR0.c (shifts_new): New.
13298 (save_shifts, insert_start_shift, augment_automaton): Use it.
13299
4b35e1c1
AD
133002001-11-28 Akim Demaille <akim@epita.fr>
13301
13302 * src/closure.c (closure): `b' and `ruleno' denote the same value:
13303 keep ruleno only.
13304
d2b04478
AD
133052001-11-28 Akim Demaille <akim@epita.fr>
13306
13307 * src/closure.c (closure): Instead of looping over word in array
13308 then bits in words, loop over bits in array.
13309
2c4c30aa
AD
133102001-11-28 Akim Demaille <akim@epita.fr>
13311
13312 * src/closure.c (closure): No longer optimize the special case
13313 where all the bits of `ruleset[r]' are set to 0, to make the code
13314 clearer.
13315
576890b7
AD
133162001-11-28 Akim Demaille <akim@epita.fr>
13317
13318 * src/closure.c (closure): `r' and `c' are new variables, used to
13319 de-obfuscate accesses to RULESET and CORE.
13320
cb487d7d
AD
133212001-11-28 Akim Demaille <akim@epita.fr>
13322
13323 * src/reduce.c (reduce_print): Use ngettext.
13324 (dump_grammar): Improve the trace accuracy.
13325
6013d43f
AD
133262001-11-28 Akim Demaille <akim@epita.fr>
13327
13328 * src/reduce.c (dump_grammar): Don't translate trace messages.
13329
cb4956ee
AD
133302001-11-28 Akim Demaille <akim@epita.fr>
13331
13332 * tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
13333 * src/reduce.c (reduce_grammar_tables): Do not free useless tags,
13334 as all tags are free'ed afterwards.
13335 From Enrico Scholz.
13336
648185ab
PE
133372001-11-27 Paul Eggert <eggert@twinsun.com>
13338
13339 * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
13340 use alloca when we didn't want to, and vice versa.
13341
68254a03
MA
133422001-11-27 Marc Autret <autret_m@epita.fr>
13343
9113b58f
AD
13344 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
13345 initialization.
68254a03
MA
13346 * src/output.c (prepare): Remove its update.
13347
04d843a2
MA
133482001-11-27 Marc Autret <autret_m@epita.fr>
13349
13350 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
13351 Use %error-verbose.
13352
d2079671 133532001-11-27 Marc Autret <autret_m@epita.fr>
eeeb962b
MA
13354
13355 * src/bison.simple: Remove YYERROR_VERBOSE using.
13356 Use %%error_verbose.
13357 (yyparse): Likewise.
13358 * src/output.c (prepare): Give its final value.
13359 * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
13360 * src/getargs.h: Add its extern declaration.
13361 * src/getargs.c (error_verbose_flag): New int.
13362 (getargs): Update to catch new case.
13363 * src/options.c (option_table): 'error-verbose' is a new option.
13364 (shortopts): Update.
13365
e0327bc8
AD
133662001-11-27 Akim Demaille <akim@epita.fr>
13367
13368 * src/system.h: Use intl/libgettext.h.
13369 * src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
13370
000f1a3c
AD
133712001-11-27 Akim Demaille <akim@epita.fr>
13372
13373 * tests/torture.at (Exploding the Stack Size with Malloc):
13374 s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
13375
26cfe0be
AD
133762001-11-27 Akim Demaille <akim@epita.fr>
13377
13378 * src/files.c: Include error.h.
13379 Reported by Hans Aberg.
13380
f6bd5427
MA
133812001-11-26 Marc Autret <autret_m@epita.fr>
13382
d2079671 13383 * src/reader.c (parse_include_decl): New, not yet implemented.
f6bd5427
MA
13384 (read_declarations): Add case tok_include.
13385 * src/getargs.h (include): Add its extern definition.
13386 * src/getargs.c (include): New const char *.
13387 (getargs): Add case '-I'.
13388 * src/options.c (option_table): Add include as command line and
13389 percent option.
13390 * src/lex.h (token_t): Add tok_include.
13391
2ca209c1
AD
133922001-11-26 Akim Demaille <akim@epita.fr>
13393
13394 * src/reader.c (readgram): Make sure rules for mid-rule actions
13395 have a lineno equal to that of their host rule.
13396 Reported by Hans Aberg.
13397 * tests/regression.at (Rule Line Numbers): New.
13398
0e41b407
AD
133992001-11-26 Akim Demaille <akim@epita.fr>
13400
13401 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
13402 size_ts.
13403
134042001-11-26 Akim Demaille <akim@epita.fr>
13405
13406 * src/complain.c, src/complain.h (error): Remove, provided by
13407 lib/error.[ch].
13408
e0c40012
AD
134092001-11-26 Akim Demaille <akim@epita.fr>
13410
13411 * src/reader.c (read_declarations): Don't abort on tok_illegal,
13412 issue an error message.
13413 * tests/regression.at (Invalid %directive): New.
13414 Reported by Hans Aberg.
13415
5e147124
AD
134162001-11-26 Akim Demaille <akim@epita.fr>
13417
13418 * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
13419 * lib/Makefile.am (libbison_a_SOURCES): Adjust.
13420
a034c8b8
AD
134212001-11-26 Akim Demaille <akim@epita.fr>
13422
13423 * src/conflicts.c (conflicts_print): Don't complain at all when
13424 there are no reduce/reduce conflicts, and as many shift/reduce
13425 conflicts as expected.
13426 * tests/regression.at (%expect right): Adjust.
13427
c64a20f3
AD
134282001-11-23 Akim Demaille <akim@epita.fr>
13429
13430 * lib/alloca.c: Update, from fileutils.
13431
5b0d29bb
AD
134322001-11-23 Akim Demaille <akim@epita.fr>
13433
13434 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
13435
722c4bfe
AD
134362001-11-23 Akim Demaille <akim@epita.fr>
13437
13438 * src/system.h: Include alloca.h.
13439 * src/main.c (main) [C_ALLOCA]: Call alloca (0).
13440
6255b435
AD
134412001-11-23 Akim Demaille <akim@epita.fr>
13442
13443 * src/print_graph.c (print_actions): Remove `rule', unused.
13444 * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
13445 pacify GCC's signed < unsigned warnings.
13446 * src/closure.c (itemsetsize): Likewise.
13447 * src/reader.c (symbol_list_new): Static.
13448
b29b2ed5
AD
134492001-11-23 Akim Demaille <akim@epita.fr>
13450
13451 Attaching lineno to buckets is stupid, since only one copy of each
13452 symbol is kept, only the line of the first occurrence is kept too.
13453
13454 * src/symtab.h, src/symtab.c (bucket): Remove the line member.
13455 * src/reader.c (rline_allocated): Remove, unused.
13456 (symbol_list): Have a `line' member.
13457 (symbol_list_new): New.
13458 (readgram): Use it.
13459 * src/print.c (print_grammar): Output the rule line numbers.
13460 * tests/regression.at (Solved SR Conflicts)
13461 (Unresolved SR Conflicts): Adjust.
13462 Reported by Hans Aberg.
13463
a81b1d4a
MA
134642001-11-22 Marc Autret <autret_m@epita.fr>
13465
13466 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
13467
c1ecb3c1
MA
134682001-11-22 Marc Autret <autret_m@epita.fr>
13469
13470 * src/muscle_tab.c (muscle_init): Remove initialization of
13471 skeleton muscle.
13472 * src/output.c (output_master_parser): Do it here.
13473
fbe01355
AD
134742001-11-20 Akim Demaille <akim@epita.fr>
13475
13476 * po/sv.po: New.
13477 * configure.in (ALL_LINGUAS): Adjust.
13478 * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
13479 longer contains strings to translate.
13480
81e895c0
AD
134812001-11-19 Akim Demaille <akim@epita.fr>
13482
13483 * src/conflicts.c (conflicts_print): Add a missing \n.
13484
6bb1878b
AD
134852001-11-19 Akim Demaille <akim@epita.fr>
13486
13487 * src/nullable.c (nullable_print): New.
13488 (set_nullable): Call it when tracing.
13489 Better locality of variables.
13490
d9ec2d07
AD
134912001-11-19 Akim Demaille <akim@epita.fr>
13492
13493 * src/print.c (print_actions): Better locality of variables.
13494
720e5c1b
AD
134952001-11-19 Akim Demaille <akim@epita.fr>
13496
13497 * src/derives.c (print_derives): Fix and enrich.
13498 * src/closure.c (print_fderives): Likewise.
13499
fb908786
AD
135002001-11-19 Akim Demaille <akim@epita.fr>
13501
13502 * src/closure.c (itemsetend): Remove, replaced with...
13503 (itemsetsize): new.
13504
125ecb56
AD
135052001-11-19 Akim Demaille <akim@epita.fr>
13506
13507 * src/LR0.c (kernel_end): Remove, replaced with...
13508 (kernel_size): new.
13509
d8cf039f
AD
135102001-11-19 Akim Demaille <akim@epita.fr>
13511
13512 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
13513 to clarify.
13514
7bec0760
AD
135152001-11-19 Akim Demaille <akim@epita.fr>
13516
13517 * src/closure.c (closure): Use arrays instead of pointers to clarify.
13518
c87d4863
AD
135192001-11-19 Akim Demaille <akim@epita.fr>
13520
13521 * src/closure.c, src/derives.c, src/nullable.c: Adjust various
13522 trace messages.
13523 * src/LR0.c: Likewise.
13524 (allocate_itemsets): Use arrays instead of pointers to clarify.
13525
9bfe901c
AD
135262001-11-19 Akim Demaille <akim@epita.fr>
13527
13528 * src/getargs.c (statistics_flag): Replace with...
13529 (trace_flag): New.
13530 (longopts): Accept --trace instead of --statistics.
13531 * src/getargs.h, src/options.c: Adjust.
13532 * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
13533 * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
13534
97db7bd4
AD
135352001-11-19 Akim Demaille <akim@epita.fr>
13536
cc72668c 13537 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
97db7bd4
AD
13538 pointers to clarify the code.
13539 (save_reductions, save_shifts): Factor common parts of alternatives.
13540
2c5f66ed
AD
135412001-11-19 Akim Demaille <akim@epita.fr>
13542
13543 * src/LR0.c (new_state, get_state): Complete TRACE code.
13544 * src/closure.c: Include `reader.h' to get `tags', needed by the
13545 trace code.
13546 Rename the conditional DEBUG as TRACE.
13547 Output consistently TRACEs to stderr, not stdout.
13548 * src/derives.c: Likewise.
13549 * src/reduce.c: (inaccessable_symbols): Using if is better style
13550 than goto.
13551 Use `#if TRACE' instead of `#if 0' for tracing code.
13552
300f275f
AD
135532001-11-19 Akim Demaille <akim@epita.fr>
13554
13555 * src/system.h (LIST_FREE, shortcpy): New.
13556 * src/LR0.c: Use them.
13557 * src/output.c (free_itemsets, free_reductions, free_shifts):
13558 Remove, replaced by LIST_FREE.
13559
f59c437a
AD
135602001-11-19 Akim Demaille <akim@epita.fr>
13561
13562 * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
13563 (REDUCTIONS_ALLOC): New.
13564 * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
13565 allocation.
13566
6986fd9e
AD
135672001-11-19 Akim Demaille <akim@epita.fr>
13568
13569 * src/LR0.c (new_state): Complete trace code.
13570 * src/nullable.c (set_nullable): Don't translate traces.
13571
4bc30f78
AD
135722001-11-19 Akim Demaille <akim@epita.fr>
13573
13574 * src/print_graph.c (print_core): Better locality of variables.
13575 * src/print.c (print_core): Likewise.
13576
08a946e0
AD
135772001-11-19 Akim Demaille <akim@epita.fr>
13578
13579 * src/vcg.c: You do the output, so you are responsible of the
13580 handling of VCG syntax, in particular: use quotearg.
13581 * src/print_graph.c: Don't.
13582 (print_actions): Don't output the actions as part of the nodes,
13583 since that's the job of the edges.
13584 (print_state): Don't output by hand: fill the node description,
9bfe901c 13585 and ask for its output.
08a946e0 13586
f0473484
AD
135872001-11-19 Akim Demaille <akim@epita.fr>
13588
cc72668c
AD
13589 * src/bison.simple (yyparse): When verbosely reporting an error,
13590 no longer put additional quotes around token names.
f0473484
AD
13591 * tests/calc.at: Adjust.
13592
e41dc700
AD
135932001-11-19 Akim Demaille <akim@epita.fr>
13594
13595 * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
13596 * src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
13597 * src/output.c: Adjust.
13598
652a871c
AD
135992001-11-19 Akim Demaille <akim@epita.fr>
13600
13601 * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
13602 (rule_t): this.
13603 * src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
13604
b2ed6e58
AD
136052001-11-19 Akim Demaille <akim@epita.fr>
13606
13607 * src/gram.h (rule_t): New.
13608 (rule_table): New.
13609 (rrhs, rlhs): Remove, part of state_t.
13610 * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
13611 * src/lalr.c, src/nullable.c, src/output.c, src/print.c,
13612 * src/reader.c, src/reduce.c: Adjust.
13613
edad7067
AD
136142001-11-19 Akim Demaille <akim@epita.fr>
13615
13616 * src/reader.c (symbols_output): New, extracted from...
13617 (packsymbols): Here.
13618 (reader): Call it.
13619
3feec034
AD
136202001-11-19 Akim Demaille <akim@epita.fr>
13621
13622 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
13623 (maxrhs): this new function.
13624
ddcd5fdf
AD
136252001-11-19 Akim Demaille <akim@epita.fr>
13626
cc72668c 13627 * src/lalr.c (F): New macro to access the variable F.
ddcd5fdf
AD
13628 Adjust.
13629
bb527fc2
AD
136302001-11-19 Akim Demaille <akim@epita.fr>
13631
cc72668c 13632 * src/lalr.h (LA): New macro to access the variable LA.
bb527fc2
AD
13633 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
13634 * src/lalr.c: Adjust.
13635
a845a697
AD
136362001-11-19 Akim Demaille <akim@epita.fr>
13637
13638 * src/lalr.c (initialize_LA): Only initialize LA. Let...
13639 (set_state_table): handle the `lookaheads' members.
13640
f004bf6a
AD
136412001-11-19 Akim Demaille <akim@epita.fr>
13642
cc72668c
AD
13643 * src/lalr.h (lookaheads): Removed array, whose contents is now
13644 a member of...
f004bf6a
AD
13645 (state_t): this structure.
13646 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
13647 Adjust.
13648
de326cc0
AD
136492001-11-19 Akim Demaille <akim@epita.fr>
13650
cc72668c
AD
13651 * src/lalr.h (consistent): Removed array, whose contents is now
13652 a member of...
de326cc0
AD
13653 (state_t): this structure.
13654 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
13655 Adjust.
13656
90b4416b
AD
136572001-11-19 Akim Demaille <akim@epita.fr>
13658
cc72668c
AD
13659 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
13660 contents are now members of...
90b4416b
AD
13661 (state_t): this structure.
13662 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
13663 Adjust.
13664
9703cc49
AD
136652001-11-19 Akim Demaille <akim@epita.fr>
13666
13667 * src/lalr.h (state_t): New.
13668 (state_table): Be a state_t * instead of a core **.
13669 (accessing_symbol): Remove, part of state_t.
13670 * src/lalr.c: Adjust.
13671 (set_accessing_symbol): Merge into...
13672 (set_state_table): this.
13673 * src/print_graph.c, src/conflicts.c: Adjust.
13674
d803322e
AD
136752001-11-14 Akim Demaille <akim@epita.fr>
13676
13677 * tests/calc.at, tests/output.at, tests/regression.at,
13678 * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
13679 now the tests are run in private dirs, therefore AC_CLEANUP and
13680 family can be simplified to 0-ary.
13681 * tests/atlocal.in: Now that we run `elsewhere' than in tests/,
13682 use abs. path to find config.h.
13683 * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
13684 stderr, there can be way too much random noise.
13685 Instead pass -Werror to GCC and rely on the exit status.
13686 Reported by Wolfram Wagner.
13687
3d76b07d
AD
136882001-11-14 Akim Demaille <akim@epita.fr>
13689
13690 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
13691 defined only if yyoverflow is defined, to avoid `warning: unused
13692 variable `yyvs1''.
13693 Reported by The Test Suite.
13694
09b503c8
AD
136952001-11-14 Akim Demaille <akim@epita.fr>
13696
13697 * src/print.c: Include reduce.h.
13698 Reported by Hans Aberg.
13699
137002001-11-14 Akim Demaille <akim@epita.fr>
13701
13702 * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
13703 Revert a previous patch: these are really const.
13704 * src/conflicts.c (conflict_report): Additional useless pair of
13705 braces to pacify GCC's warnings for `if () if () {} else {}'.
13706 * src/lex.c (parse_percent_token): Replace equal_offset with
13707 arg_offset.
13708 arg is const.
13709 Be sure to strdup `arg' when used, since there is no reason for
13710 token_buffer not to change.
13711
0f37a994
AD
137122001-11-14 Akim Demaille <akim@epita.fr>
13713
13714 * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
13715 definition.
13716 * src/main.c (main): Use them.
13717 Suggested by Hans Aberg.
13718
d39d93b8
AD
137192001-11-12 Akim Demaille <akim@epita.fr>
13720
13721 * src/system.h (ngettext): Now that we use ngettext, be sure to
13722 provide a default definition when NLS are not used.
13723
9edcd895
AD
137242001-11-12 Akim Demaille <akim@epita.fr>
13725
13726 * doc/bison.texinfo: Use `$' as shell prompt, not `%'.
13727 Use @kbd to denote user input.
13728 (Language and Grammar): ANSIfy the example.
13729 Adjust its layout for info/notinfo.
13730 (Location Tracking Calc): Output error messages to stderr.
13731 Output locations in a more GNUtically correct way.
13732 Fix a couple of Englishos.
13733 Adjust @group/@end group pairs.
13734
7da99ede
AD
137352001-11-12 Akim Demaille <akim@epita.fr>
13736
e3aa65c5 13737 %expect was not functioning at all.
7da99ede
AD
13738
13739 * src/conflicts.c (expected_conflicts): Set to -1.
13740 (conflict_report): Use ngettext.
13741 (conflicts_print): Check %expect and make its violation an error.
13742 * doc/bison.texinfo (Expect Decl): Adjust.
13743 * configure.in (AM_GNU_GETTEXT): Ask for ngettext.
13744 * tests/regression.at (%expect not enough, %expect right)
13745 (%expect too much): New.
13746
ba9dda1a
AD
137472001-11-12 Akim Demaille <akim@epita.fr>
13748
13749 * tests/regression.at (Conflicts): Rename as...
13750 (Unresolved SR Conflicts): this.
13751 (Solved SR Conflicts): New.
13752
337c5bd1
AD
137532001-11-12 Akim Demaille <akim@epita.fr>
13754
13755 * src/reduce.c (print_results): Rename as...
13756 (reduce_output): This.
13757 Output to OUT, passed as argument, instead of output_obstack.
13758 (dump_grammar): Likewise.
13759 (reduce_free): New.
13760 Also free V1.
13761 (reduce_grammar): No longer call reduce_output, since...
13762 * src/print.c (print_results): do it.
13763 * src/main.c (main): Call reduce_free;
13764
c73a41af
AD
137652001-11-12 Akim Demaille <akim@epita.fr>
13766
13767 * src/conflicts.c (print_reductions): Accept OUT as argument.
13768 Output to it, not to output_obstack.
13769 * src/print.c (print_actions): Adjust.
13770
0df87bb6
AD
137712001-11-12 Akim Demaille <akim@epita.fr>
13772
13773 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
13774 the result instead of using...
13775 (src_total, rrc_total, src_count, rrc_count): Remove.
13776 (any_conflicts): Remove.
13777 (print_conflicts): Split into...
13778 (conflicts_print, conflicts_output): New.
13779 * src/conflicts.h: Adjust.
13780 * src/main.c (main): Invoke both conflicts_output and conflicts_print.
0f37a994 13781 * src/print.c (print_grammar): Issue `\n' between two rules.
0df87bb6
AD
13782 * tests/regression.at (Conflicts): New.
13783 Reported by Tom Lane.
13784
e4d3d4de
AD
137852001-11-12 Akim Demaille <akim@epita.fr>
13786
13787 * tests/regression.at (Invalid input): Remove, duplicate with
13788 ``Invalid input: 1''.
13789
6d7d248e
AD
137902001-11-12 Akim Demaille <akim@epita.fr>
13791
13792 * tests/torture.at (AT_DATA_STACK_TORTURE)
13793 (Exploding the Stack Size with Alloca)
13794 (Exploding the Stack Size with Malloc): New.
13795
e9e4c321
AD
137962001-11-12 Akim Demaille <akim@epita.fr>
13797
13798 * src/bison.simple (YYSTACK_REALLOC): New.
13799 (yyparse) [!yyoverflow]: Use it and free the old stack.
0f37a994 13800 Reported by Per Allansson.
e9e4c321 13801
5f7e0832
AD
138022001-11-12 Pascal Bart <pascal.bart@epita.fr>
13803
13804 * src/bison.simple: Define type yystype instead of YYSTYPE, and
13805 define CPP macro, which substitute YYSTYPE by yystype.
13806 * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
13807 with yyltype/YYLTYPE. This allows inclusion of the generated
13808 header within the parser if the compiler, such as GGC, accepts
13809 multiple equivalent #defines.
13810 From Akim.
13811
e3f1699f
AD
138122001-11-05 Akim Demaille <akim@epita.fr>
13813
13814 * src/reader.c (symbols_output): New, extracted from...
13815 (packsymbols): here.
13816 (reader): Adjust.
13817
65be0866
AD
138182001-11-05 Akim Demaille <akim@epita.fr>
13819
13820 * src/lex.c (parse_percent_token): s/quotearg/quote/.
13821
e4d910bf
AD
138222001-11-05 Akim Demaille <akim@epita.fr>
13823
13824 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
13825 pattern.
13826
951366c1
AD
138272001-11-05 Akim Demaille <akim@epita.fr>
13828
13829 * src/options.h (struct option_table_struct): set_flags is void*.
13830 * src/options.c (longopts): Support `--output' and `%output'.
13831 (usage): Adjust.
13832 * src/lex.h (tok_setopt): Remove, replaced with...
13833 (tok_intopt, tok_stropt): these new guys.
13834 * src/lex.c (getopt.h): Not needed.
13835 (token_buffer, unlexed_token_buffer): Not const.
13836 (percent_table): Promote `-' over `_' in directive names.
13837 Active `%name-prefix', `file-prefix', and `output'.
13838 (parse_percent_token): Accept possible arguments to directives.
13839 Promote `-' over `_' in directive names.
13840
d8988b2f
AD
138412001-11-04 Akim Demaille <akim@epita.fr>
13842
13843 * doc/bison.texinfo (Decl Summary): Split the list into
13844 `directives for grammars' and `directives for bison'.
13845 Sort'em.
13846 Add description of `%name-prefix', `file-prefix', and `output'.
13847 Promote `-' over `_' in directive names.
13848 (Bison Options): s/%locactions/%locations/. Nice Freudian slip.
13849 Simplify the description of `--name-prefix'.
13850 Promote `-' over `_' in directive names.
13851 Promote `--output' over `--output-file'.
13852 Fix the description of `--defines'.
13853 * tests/output.at: Exercise %file-prefix and %output.
13854
6468d18e
AD
138552001-11-02 Akim Demaille <akim@epita.fr>
13856
13857 * doc/refcard.tex: Update.
13858
6b7e85b9
AD
138592001-11-02 Akim Demaille <akim@epita.fr>
13860
13861 * src/symtab.h (SUNDEF): New.
13862 * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
13863 stand for `uninitialized', instead of 0.
13864 * src/reader.c (packsymbols, parse_thong_decl): Adjust.
13865 * src/lex.c (lex): Adjust.
13866
13867 * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
13868 Number it 0.
13869 Let yylex return it instead of a plain 0.
13870 Reported by Dick Streefland.
13871
cd5aafcf
AD
138722001-11-02 Akim Demaille <akim@epita.fr>
13873
13874 * tests/regression.at (Mixing %token styles): New test.
13875
037ca2f1
AD
138762001-11-02 Akim Demaille <akim@epita.fr>
13877
13878 * src/reader.c (parse_thong_decl): Formatting changes.
13879 (token_translations_init): New, extracted from...
13880 (packsymbols): Here.
13881 Adjust.
13882
270a173c
AD
138832001-11-01 Akim Demaille <akim@epita.fr>
13884
13885 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
13886 Check that `9foo.y' produces correct cpp guards.
13887 * src/files.c (compute_header_macro): Prepend `BISON_' to CPP
13888 guards.
13889 Reported by Wwp.
13890
561f9a30
AD
138912001-11-01 Akim Demaille <akim@epita.fr>
13892
13893 * tests/regression.at (Invalid input: 2): New.
13894 * src/lex.c (unlexed_token_buffer): New.
13895 (lex, unlex): Adjust: when unlexing, be sure to save token_buffer
13896 too.
13897 Reported by Wwp.
13898
f987e9d2
AD
138992001-11-01 Akim Demaille <akim@epita.fr>
13900
13901 * tests/calc.at: Catch up with 1.30.
13902 * configure.in: Bump to 1.49a.
13903 Adjust to newer Autotest.
13904
0846f581
PB
139052001-10-19 Pascal Bart <pascal.bart@epita.fr>
13906
13907 * src/conflicts.c: Move global variables rrc_total and src_total ...
13908 (print_conflicts): here.
13909 * src/output.c (output): Free global variable user_toknums.
13910 * src/lex.c (token_obstack): Become static.
13911
3c1a79b3
AD
139122001-10-18 Akim Demaille <akim@epita.fr>
13913
13914 * tests/atlocal.in (GCC): Add.
13915 * tests/calc.at: s/m4_match/m4_bmatch/.
13916 s/m4_patsubst/m4_bpatsubst/.
13917 (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
13918 * configure.in: AC_SUBST(GCC).
13919
5d52e7d0
MA
139202001-10-14 Marc Autret <autret_m@epita.fr>
13921
13922 * src/options.c (create_long_option_table): Fix.
13923
631aa1d3
AD
139242001-10-10 Akim Demaille <akim@epita.fr>
13925
13926 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
13927
f6ec6d13
AD
139282001-10-04 Akim Demaille <akim@epita.fr>
13929
13930 * src/reader.c (parse_union_decl): Push the caracters in
13931 union_obstack, not attrs_obstack.
13932
342b8b6e
AD
139332001-10-04 Akim Demaille <akim@epita.fr>
13934
13935 Merge in the branch 1.29.
13936
13937 * src/reader.c (packsymbols): Use a temporary obstack for
13938 `%%tokendef', since output_stack is already used elsewhere.
13939
13940 2001-10-02 Akim Demaille <akim@epita.fr>
13941
13942 Bump 1.29d.
13943
13944 2001-10-02 Akim Demaille <akim@epita.fr>
13945
13946 Version 1.29c.
13947
13948 2001-10-02 Akim Demaille <akim@epita.fr>
13949
13950 * tests/regression.at (Invalid CPP headers): New.
13951 From Alexander Belopolsky.
13952 * src/files.c (compute_header_macro): Map non alnum chars to `_'.
13953
13954 2001-10-02 Akim Demaille <akim@epita.fr>
13955
13956 * tests/regression.at (Invalid input): New.
13957 * src/lex.c (lex): Be sure to set `token_buffer' in any case.
13958 Reported by Shura.
13959
13960 2001-10-02 Akim Demaille <akim@epita.fr>
13961
13962 * tests/calc.at: Now that --debug works, the tests must be adjusted.
13963
13964 2001-10-02 Akim Demaille <akim@epita.fr>
13965
13966 * src/output.c (output_parser): Assert `skeleton'.
13967 * src/files.c (skeleton_find): Look harder for skeletons on DOSish
13968 systems.
13969 From Shura.
13970
13971 2001-10-01 Marc Autret <autret_m@epita.fr>
13972
13973 * src/lex.h: Echo modifications.
13974 * src/lex.c (unlex): Parameter is now token_t.
13975 From Hans Aberg.
13976
13977 2001-10-01 Marc Autret <autret_m@epita.fr>
13978
13979 * src/main.c: Include lex.h.
13980 From Hans Aberg.
13981
13982 2001-09-29 Akim Demaille <akim@epita.fr>
13983
13984 * src/getargs.c (longopts): `--debug' is `-t', not `-d'.
13985
13986 2001-09-28 Akim Demaille <akim@epita.fr>
13987
13988 * tests/testsuite.at: Update to newer Autotest.
13989 * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
13990
13991 2001-09-27 Akim Demaille <akim@epita.fr>
13992
13993 Position independent wrapper.
13994
13995 * tests/bison: Remove.
13996 * tests/bison.in: New.
13997 * configure.in: Adjust.
13998
13999 2001-09-27 Paul Eggert <eggert@twinsun.com>
14000
14001 Port quotearg fixes from tar 1.13.24.
14002
14003 * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
14004 tm to be declared.
14005 (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
14006 (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
14007
14008 * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
14009 * m4/mbrtowc.m4: New file.
14010 * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
14011 Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
14012
14013 2001-09-27 Akim Demaille <akim@epita.fr>
14014
14015 Bump to 1.29c.
14016
14017 2001-09-27 Akim Demaille <akim@epita.fr>
14018
14019 Version 1.29b.
14020
14021 2001-09-25 Akim Demaille <akim@epita.fr>
14022
14023 * src/system.h: Include `xalloc.h'.
14024 Remove it from the C files.
14025 * src/files.c (output_files): Free the obstacks.
14026 * src/lex.c (init_lex): Rename as...
14027 (lex_init): this.
14028 (lex_free): New.
14029 * src/main.c (main): Use it.
14030
14031 2001-09-24 Marc Autret <autret_m@epita.fr>
14032
14033 * src/vcg.c (open_edge, close_edge, open_node, close_node): Change
14034 to output informations in fout (FILE*).
14035 (open_graph, close_graph): Likewise.
14036 (output_graph, output_edge, output_node): Likewise.
14037 * src/vcg.h: Update function prototypes.
14038 * src/print_graph.c (print_graph): Open output graph file.
14039 (print_actions): Adjust.
14040 * src/files.h: Remove extern declaration.
14041 * src/files.c: Remove graph_obstack declaration.
14042 (open_files): Remove graph_obstack initialization.
14043 (output_files): Remove graph_obstack saving.
14044
14045 2001-09-24 Marc Autret <autret_m@epita.fr>
14046
14047 * src/files.c (compute_output_file_names): Fix.
14048
14049 2001-09-24 Marc Autret <autret_m@epita.fr>,
14050 Akim Demaille <akim@epita.fr>
14051
14052 * src/reader.c (reader): Remove call to free_symtab ().
14053 * src/main.c (main): Call it here.
14054 Include symtab.h.
14055 * src/conflicts.c (initialize_conflicts): Rename as...
14056 (solve_conflicts): this.
14057 * src/print.c (print_core, print_actions, print_state)
14058 (print_grammar): Dump to a file instead a `output_obstack'.
14059 (print_results): Dump `output_obstack', and then proceed with the
14060 FILE *.
14061 * src/files.c (compute_output_file_names, close_files): New.
14062 (output_files): Adjust.
14063 * src/main.c (main): Adjust.
14064
14065 2001-09-23 Marc Autret <autret_m@epita.fr>
14066
14067 * src/files.c (compute_header_macro): Computes header macro name
14068 from spec_defines_file when given.
14069
14070 2001-09-23 Marc Autret <autret_m@epita.fr>
14071
14072 * src/files.c (output_files): Add default extensions.
14073
14074 2001-09-22 Akim Demaille <akim@epita.fr>
14075
14076 * src/conflicts.c (finalize_conflicts): Rename as...
14077 (free_conflicts): this.
14078
14079 2001-09-22 Akim Demaille <akim@epita.fr>
14080
14081 * src/gram.c (gram_free): Rename back as...
14082 (dummy): this.
14083 (output_token_translations): Free `token_translations'.
14084 * src/symtab.c (free_symtab): Free the tag field.
14085
14086 2001-09-22 Akim Demaille <akim@epita.fr>
14087
14088 Remove `translations' as it is always set to true.
14089
14090 * src/gram.h: Adjust.
14091 * src/reader.c (packsymbols, parse_token_decl): Adjust
14092 * src/print.c (print_grammar): Adjust.
14093 * src/output.c (output_token_translations): Adjust.
14094 * src/lex.c (lex): Adjust.
14095 * src/gram.c: Be sure the set pointers to NULL.
14096 (dummy): Rename as...
14097 (gram_free): this.
14098
14099 2001-09-22 Akim Demaille <akim@epita.fr>
14100
14101 * configure.in: Invoke AM_LIB_DMALLOC.
14102 * src/system.h: Use dmalloc.
14103 * src/LR0.c: Be sure to have pointers initialized to NULL.
14104 (allocate_itemsets): Allocate kernel_items only if needed.
14105
14106 2001-09-22 Akim Demaille <akim@epita.fr>
14107
14108 * configure.in: Bump to 1.29b.
14109 * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
14110 * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
14111 need xmalloc.c in calc.y.
14112 From Pascal Bart.
14113
14114 2001-09-21 Akim Demaille <akim@epita.fr>
14115
14116 Version 1.29a.
14117 * Makefile.maint, config/config.guess, config/config.sub,
14118 * config/missing: Update from masters.
14119 * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
14120 upon package.m4.
14121 * configure.in (ALL_LINGUAS): Add `tr'.
14122
14123 2001-09-21 Akim Demaille <akim@epita.fr>
14124
14125 * tests/Makefile.am (package.m4): Move to...
14126 ($(srcdir)/$(TESTSUITE)): here.
14127
14128 2001-09-20 Akim Demaille <akim@epita.fr>
14129
14130 * src/complain.c: No longer try to be standalone: use system.h.
14131 Don't assume __STDC__ is defined to 1. Just test if it is defined.
14132 * src/complain.h: Likewise.
14133 * src/reduce.c (useless_nonterminals, inaccessable_symbols):
14134 Remove the unused variable `n'.
14135 From Albert Chin-A-Young.
14136
14137 2001-09-18 Marc Autret <autret_m@epita.fr>
14138
14139 * doc/bison.1: Update.
14140 * doc/bison.texinfo (Bison Options): Update --defines and --graph
14141 descriptions.
14142 (Option Cross Key): Update.
14143 Add --graph.
14144
14145 2001-09-18 Marc Autret <autret_m@epita.fr>
14146
14147 * tests/regression.at: New test (comment in %union).
14148
14149 2001-09-18 Marc Autret <autret_m@epita.fr>
14150
14151 * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
14152 do that.
14153 Reported by Keith Browne.
14154
14155 2001-09-18 Marc Autret <autret_m@epita.fr>
14156
14157 * tests/output.at: Add tests for --defines and --graph.
14158
14159 2001-09-18 Marc Autret <autret_m@epita.fr>
14160
14161 * tests/output.at: Removes tests of %{header,src}_extension features.
14162
14163 2001-09-18 Akim Demaille <akim@epita.fr>
14164
14165 * tests/Makefile.am (package.m4): New.
14166 * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
14167 (_AT_CHECK_CALC_ERROR): Likewise.
14168 Factor the `, ' part of verbose error messages.
14169
14170 2001-09-18 Marc Autret <autret_m@epita.fr>
14171
14172 * src/getargs.c (longopts): Declare --defines and --graph as options
14173 with optional arguments.
14174 * src/files.h: Add extern declarations.
14175 * src/files.c (spec_graph_file, spec_defines_file): New.
14176 (output_files): Update.
14177 Remove CPP-outed code.
14178
14179 2001-09-18 Marc Autret <autret_m@epita.fr>
14180
14181 Turn off %{source,header}_extension feature.
14182
14183 * src/files.c (compute_exts_from_gf): Update.
14184 (compute_exts_from_src): Update.
14185 (output_files): CPP-out useless code.
14186 * src/files.h: Remove {header,source}_extension extern declarations.
14187 * src/reader.c (parse_dquoted_param): CPP-out.
14188 (parse_header_extension_decl): Remove.
14189 (parse_source_extension_decl): Remove.
14190 (read_declarations): Remove cases tok_{hdrext,srcext}.
14191 * src/lex.c (percent_table): Remove {header,source}_extension entries.
14192 * src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
14193
14194 2001-09-10 Akim Demaille <akim@epita.fr>
14195
14196 * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
14197 (AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
14198 (AT_CHECK_OUTPUT): this.
14199 Merely check ls' exit status, its output is useless.
14200
14201 2001-09-10 Akim Demaille <akim@epita.fr>
14202
14203 * tests/calc.at: Use m4_match.
14204 (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
14205
14206 2001-09-10 Marc Autret <autret_m@epita.fr>,
14207 Akim Demaille <akim@epita.fr>
14208
14209 * src/vcg.h (graph_s): color, textcolor, bordercolor are now
14210 enum color_e.
14211 * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
14212 to `normal'.
14213 * src/reader.c (parse_token_decl): Initialize token with tok_eof.
14214 * src/lex.h: Adjust prototype.
14215 (token_t): Add `tok_undef'.
14216 * src/lex.c (struct percent_table_struct): Retval is now a token_t.
14217 (parse_percent_token): Now returns token_t.
14218 Add default statement in switch.
14219 (lex): Separate `c' as an input variable, from the token_t result
14220 part.
14221 (unlexed): Is a token_t.
14222
14223 2001-09-10 Akim Demaille <akim@epita.fr>
14224
14225 * configure.in: Bump to 1.29a.
14226
14227 2001-09-07 Akim Demaille <akim@epita.fr>
14228
14229 Version 1.29.
14230
14231 2001-08-30 Akim Demaille <akim@epita.fr>
14232
14233 * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
14234 * m4/atconfig.m4: Remove.
14235 * tests/testsuite.at, tests/atlocal.in, tests/output.at,
14236 * tests/bison: New.
14237 * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
14238 m4_if, m4_patsubst, and m4_regexp.
14239 * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
14240 `input' file instead of echo.
14241
14242 2001-08-29 Akim Demaille <akim@epita.fr>
14243
14244 Bump to 1.28e.
14245
14246 2001-08-29 Akim Demaille <akim@epita.fr>
14247
14248 Version 1.28d.
14249
14250 2001-08-29 Paul Eggert <eggert@twinsun.com>
14251
14252 * src/bison.simple (yyparse): Don't take the address of an
14253 item before the start of an array, as that doesn't conform to
14254 the C Standard.
14255
14256 2001-08-29 Robert Anisko <anisko_r@epita.fr>
14257
14258 * doc/bison.texinfo (Location Tracking Calc): New node.
14259
14260 2001-08-29 Paul Eggert <eggert@twinsun.com>
14261
14262 * src/output.c (output): Do not define const, as this now
14263 causes more problems than it cures.
14264
14265 2001-08-29 Akim Demaille <akim@epita.fr>
14266
14267 * doc/bison.texinfo: Modernize `@node' and `@top' use: just name
14268 the nodes.
14269 Be sure to tag the `detailmenu'.
14270
14271 2001-08-29 Akim Demaille <akim@epita.fr>
14272
14273 * Makefile.maint (do-po-update): Wget refuses to overwrite files:
14274 download in a tmp dir.
14275
14276 2001-08-28 Marc Autret <autret_m@epita.fr>
14277
14278 * config/depcomp: New file.
14279
14280 2001-08-28 Marc Autret <autret_m@epita.fr>
14281
14282 * doc/bison.1 (mandoc): Adjust.
14283 From Juan Manuel Guerrero.
14284
14285 2001-08-28 Marc Autret <autret_m@epita.fr>
14286
14287 * src/print_graph.c (print_state): Fix.
14288
14289 2001-08-27 Marc Autret <autret_m@epita.fr>
14290
14291 * src/vcg.h (classname_s, infoname_s, node_s): Constify the
14292 char * members.
14293 Echo modifications to the functions prototypes.
14294 * src/vcg.c (add_classname, add_infoname): Adjust arguments.
14295
14296 2001-08-27 Marc Autret <autret_m@epita.fr>
14297
14298 * src/vcg.c: Include `xalloc.h'.
14299 (add_colorentry): New.
14300 (add_classname): New.
14301 (add_infoname): New.
14302 * src/vcg.h: Add new prototypes.
14303
14304 2001-08-27 Akim Demaille <akim@epita.fr>
14305
14306 * Makefile.maint: Sync. again with CVS Autoconf.
14307
14308 2001-08-27 Akim Demaille <akim@epita.fr>
14309
14310 * Makefile.maint: Formatting changes.
14311 (po-update, cvs-update, update): New targets.
14312 (AMTAR): Remove.
14313
14314 2001-08-27 Akim Demaille <akim@epita.fr>
14315
14316 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
14317 * Makefile.maint: Sync. with CVS Autoconf.
14318
14319 2001-08-27 Marc Autret <autret_m@epita.fr>
14320
14321 * src/vcg.h (struct infoname_s): New.
14322 (struct colorentry_s): New.
14323 (graph_s): New fields {vertical,horizontal}_order in structure.
14324 Add `infoname' field.
14325 Add `colorentry' field;
14326 * src/vcg_defaults.h (G_VERTICAL_ORDER): New.
14327 (G_HORIZONTAL_ORDER): New.
14328 (G_INFONAME): New.
14329 (G_COLORENTRY): New.
14330 * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
14331 Add output of `infoname'.
14332 Add output of `colorentry'.
14333
14334 2001-08-27 Marc Autret <autret_m@epita.fr>
14335
14336 * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
14337 This one shadowed a global parameter.
14338
14339 2001-08-24 Marc Autret <autret_m@epita.fr>
14340
14341 * src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
14342 instead of `unsigned'.
14343 (print_state): Do not call obstack_object_size () in obstack_grow ()
14344 to avoid macro variables shadowing.
14345
14346 2001-08-23 Marc Autret <autret_m@epita.fr>
14347
14348 * src/lex.c (percent_table): Typo: s/naem/name/.
14349 Add graph option.
14350 Normalize new options declarations.
14351
14352 2001-08-20 Pascal Bart <pascal.bart@epita.fr>
14353
14354 * tests/suite.at: Exercise %header_extension and %source_extension.
14355
14356 2001-08-16 Marc Autret <autret_m@epita.fr>
14357
14358 * src/reader.c (parse_dquoted_param): New.
14359 (parse_header_extension_decl): Use it.
14360 (parse_source_extension_decl): Likewise.
14361
14362 2001-08-16 Marc Autret <autret_m@epita.fr>
14363
14364 * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
14365 (get_xxxx_str): Use assert () instead of complain ().
14366 Remove return invokations in default cases.
14367 (get_decision_str): Modify default behaviour. Remove second argument.
14368 Echo modifications on calls.
14369 (output_graph): Fix.
14370
14371 2001-08-16 Marc Autret <autret_m@epita.fr>
14372
14373 * src/getargs.c (usage): Update with ``-g, --graph''.
14374
14375 2001-08-16 Marc Autret <autret_m@epita.fr>
14376
14377 * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
14378 (Option Cross Key): Likewise.
14379 * doc/bison.1: Update.
14380
1c8c2190
PB
143812001-09-25 Pascal Bart <pascal.bart@epita.fr>
14382
14383 * src/output.c (output_master_parser): Don't finish action_obstack.
14384 (output_parser): Don't care about the muscle action, here.
14385 (prepare): Copy the action_obstack in the action muscle.
14386 (output): Free action_obstack.
14387
180d45ba
PB
143882001-09-23 Pascal Bart <pascal.bart@epita.fr>
14389
14390 * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which
14391 will contain `%union' declaration.
14392 (parse_union_decl): Delete #line directive output.
14393 (parse_union_decl): Substitute /attrs_obstack/union_obstack for all
14394 informations about %union.
14395 (parse_union_decl): Copy the union_obstack in the muscle stype.
14396 * src/bison.simple: Add new #line directive.
14397 Add typdef %%stype YYSTYPE.
14398
c51d1a19
PB
143992001-09-23 Pascal Bart <pascal.bart@epita.fr>
14400
14401 * src/bison.simple: Add new `#line' directive.
14402
6f9344da
PB
144032001-09-22 Pascal Bart <pascal.bart@epita.fr>
14404
14405 * src/bison.simple: New `#line' directive.
14406 * src/output.c (output_parser): Support new dynamic muscle input_line.
14407
652def80
MA
144082001-09-22 Marc Autret <autret_m@epita.fr>
14409
14410 * src/output.c (output_master_parser): New.
14411 (output_parser): Be more re-entrant.
14412
25b222fa
MA
144132001-09-21 Marc Autret <autret_m@epita.fr>
14414
14415 * src/reader.c (copy_definition, parse_union_decl): Update and use
14416 `linef' muscle.
14417 (copy_action): Likewise.
14418 Use obstack_1grow ().
14419 * src/muscle_tab.c (muscle_init): Add muscle `linef'.
14420
6bc35ae5
MA
144212001-09-21 Marc Autret <autret_m@epita.fr>
14422
14423 * src/options.c (option_table): Adjust.
14424 * src/lex.c (parse_percent_token): Fix.
14425
c0629aa1
PB
144262001-09-20 Pascal Bart <pascal.bart@epita.fr>
14427
14428 * src/options.c (symtab.h): Include it, need by lex.h.
342b8b6e 14429
82b6d266
PB
144302001-09-20 Pascal Bart <pascal.bart@epita.fr>
14431
14432 * src/lex.c (parse_percent_token): Change type of variable `tx', which
14433 is now an option_table_struct*.
14434 (option_strcmp): New function option_strcmp.
14435 (parse_percent_token): Call option_strcmp.
14436 * src/getargs.c (xalloc.h, options.h): Include it.
14437 (getargs): Call create_long_option_table.
14438 (getargs): Free longopts at the end of the function.
14439 (shortopts): Move in options.c.
14440 * src/options.c (create_long_option_table): New function. Convert
14441 information from option_table to option structure.
14442 * src/reader.c (options.h): Include it.
14443
14444 * src/Makefile.am: Adjust.
14445 * src/options.c (option_table): Create from longopts and percent_table.
14446 * src/getargs.c (longopts): Delete.
14447 * src/lex.c (struct percent_table_struct): Delete.
14448 (percent_table): Delete.
14449 (options.h): Include it.
14450 * src/options.c: Create.
14451 * src/options.h: Create.
14452 Declare enum opt_access_e.
14453 Define struct option_table_struct.
14454
75f5aaea
MA
144552001-09-20 Marc Autret <autret_m@epita.fr>
14456
14457 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
14458 sections of Bison.
14459
f508cb0a
PB
144602001-09-19 Pascal Bart <pascal.bart@epita.fr>
14461
14462 * src/bison.simple: s/%%filename/%%skeleton.
14463 * src/muscle_tab.c (getargs.h): Include it.
14464 (muscle_init): Insert new muscle skeleton.
14465
13105fc1
PB
144662001-09-18 Pascal Bart <pascal.bart@epita.fr>
14467
14468 * src/output.c (output_parser): Delete unused variable actions_dumped.
14469
b0c4483e
PB
144702001-09-07 Pascal Bart <pascal.bart@epita.fr>
14471
14472 * src/output.c (output): Delete call to reader_output_yylsp.
14473 * src/reader.c (reader): Likewise.
ba0fe3c7 14474 * src/reader.h: Delete declaration of reader_output_yylsp.
342b8b6e 14475
11d82f03
MA
144762001-09-02 Marc Autret <autret_m@epita.fr>
14477
14478 * src/reader.c: Include muscle_tab.h.
14479 (parse_union_decl): Update.
14480 (parse_macro_decl): Rename parse_muscle_decl.
14481 Update to use renamed functions and variable.
14482 (read_declarations, copy_action, read_additionnal_code, : Updated
14483 with correct variables and functions names.
14484 (packsymbols, reader): Likewise.
342b8b6e 14485
11d82f03 14486 * src/reader.h (muscle_obstack): Extern declaration update.
342b8b6e 14487
11d82f03
MA
14488 * src/output.c: Include muscle_tab.h
14489 In all functions using macro_insert, change by using muscle_insert ().
14490 (macro_obstack): Rename muscle_obstack.
14491 Echo modifications in the whole file.
14492 (MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
14493 (MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
14494 (MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
14495
14496 * src/muscle_tab.h: Update double inclusion macros.
14497 (macro_entry_s): Rename muscle_entry_s.
14498 Update prototypes.
342b8b6e 14499
11d82f03
MA
14500 * src/muscle_tab.c: Include muscle_tab.h.
14501 Rename macro_tabble to muscle_table.
14502 (mhash1, mhash2, mcmp): Use muscle_entry.
14503 (macro_init): Rename muscle_init. Update.
14504 (macro_insert): Rename muscle_insert. Update.
14505 (macro_find): Rename muscle_find. Update.
14506
14507 * src/main.c: Include muscle_tab.h.
14508 (main): Call muscle_init ().
14509 * src/Makefile.am (bison_SOURCES): Echo modifications.
14510
93a37297
MA
145112001-09-02 Marc Autret <autret_m@epita.fr>
14512
f753cd62 14513 Now the files macro_tab.[ch] are named muscle_tab.[ch].
342b8b6e 14514
f753cd62
MA
14515 * src/muscle_tab.c, src/muscle_tab.h: Add files.
14516
145172001-09-02 Marc Autret <autret_m@epita.fr>
14518
14519 * src/macrotab.c, src/macrotab.h: Remove.
93a37297 14520
682d48cd
PB
145212001-09-01 Pascal Bart <pascal.bart@epita.fr>
14522
342b8b6e 14523 * src/reader.c (copy_guard): Use muscle to specify the `#line'
682d48cd
PB
14524 filename.
14525
087c8fda
MA
145262001-09-01 Marc Autret <autret_m@epita.fr>
14527
14528 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
14529 to an explicit value to activate the feature. We do it here.
14530
dda680cb
PB
145312001-08-31 Pascal Bart <pascal.bart@epita.fr>
14532
14533 * src/output.c (prepare): Delete the `filename' muscule insertion.
14534 * src/reader.c (copy_action): Use `filename' muscule with `#line'.
14535 (parse_union_decl): Likewise.
14536 * src/macrotab.c (macro_init): Initialize filename by infile.
14537
9e644e64
MA
145382001-08-31 Marc Autret <autret_m@epita.fr>
14539
14540 * src/bison.simple (YYLSP_NEEDED): New definition.
14541 * src/output.c (prepare): Add macro insertion of `locations_flag'
14542
17da6427
PB
145432001-08-31 Pascal Bart <pascal.bart@epita.fr>
14544
14545 * src/output.c (prepare): Delete insertion of previous muscles,
14546 and insert the `prefix' muscles.
14547 * src/macrotab.c (macro_init): Likewise.
14548 (macro_init): Initialization prefix directive by `yy'.
342b8b6e 14549 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
17da6427
PB
14550 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
14551 yylval, yydebug, yyerror, yynerrs and yyparse.
342b8b6e 14552 New directive `#define' to substitute yydebug, ... with option
17da6427
PB
14553 name_prefix.
14554
e8cb70b9
PB
145552001-08-31 Pascal Bart <pascal.bart@epita.fr>
14556
14557 * src/main.c (main): Standardize.
14558 * src/output.c (output_table_data, output_parser): Likewise.
14559 * src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
14560
63c2d5de
MA
145612001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
14562
342b8b6e 14563 * src/reader.c (read_additionnal_code): Rename %%user_code to
63c2d5de
MA
14564 %%epilogue.
14565 * src/output.c (output): Rename %%declarations to %%prologue.
14566 * src/bison.simple: Echo modifications.
342b8b6e 14567
d8cb5183
MA
145682001-08-31 Marc Autret <autret_m@epita.fr>
14569
14570 * src/reader.c (readgram): CleanUp.
14571 (output_token_defines): Likewise.
14572 (packsymbols): Likewise.
14573 (reader): Likewise.
14574 * src/output.c (output): CPP-out useless code.
14575
6c686258
PB
145762001-08-31 Pascal Bart <pascal.bart@epita.fr>
14577
342b8b6e 14578 * src/reader.c (reader): Delete obsolete call to function
6c686258
PB
14579 output_trailers and output_headers.
14580 * src/output.h: Remove obsolete functions prototypes of output_headers
14581 and output_trailers.
14582
8f451ef7
PB
145832001-08-30 Pascal Bart <pascal.bart@epita.fr>
14584
14585 * src/main.c: Include macrotab.h.
342b8b6e 14586 * src/macrotab.h (macro_entry_s): Constify fields.
8f451ef7
PB
14587 Adjust functions prototypes.
14588 * src/macrotab.c (macro_insert): Constify key and value.
14589 (macro_find): Constify key.
14590 (macro_insert): Include 'xalloc.h'
14591 (macro_insert): Use XMALLOC.
14592 (macro_find): Constify return value.
14593 * src/output.c (output_table_data): Rename table to table_data.
14594 (output_parser): Constify macro_key, macro_value.
14595
997b6fd0 145962001-08-30 Marc Autret <autret_m@epita.fr>
2ba3b73c
MA
14597
14598 * src/reader.c (parse_skel_decl): New.
342b8b6e 14599 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
2ba3b73c
MA
14600 * src/lex.h (token_t): New token `tok_skel'.
14601 * src/lex.c (percent_table): Add skeleton option entry.
14602 Standardize.
14603
ff48177d
MA
146042001-08-29 Marc Autret <autret_m@epita.fr>
14605
14606 * src/bison.simple: Add %%user_code directive at the end.
14607 * src/reader.c (read_additionnal_code): New.
14608 (reader): Use it.
14609 * src/output.c (output_program): Remove.
14610 (output): Update.
14611
b33160bf
MA
146122001-08-28 Marc Autret <autret_m@epita.fr>
14613
14614 * src/output.c (output_actions): Clean up.
4e5caae2 14615 (output_gram): CPP-out useless code.
b33160bf
MA
14616 * src/reader.c (reader): Clean up, CPP-out useless code.
14617
d1a2daf7
PB
146182001-08-28 Pascal Bart <pascal.bart@epita.fr>
14619
342b8b6e 14620 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
535c0e75 14621 directive.
d1a2daf7
PB
14622 * src/bison.simple: Add `%%definitions'.
14623
2b763dfe
MA
146242001-08-28 Marc Autret <autret_m@epita.fr>
14625
14626 * config/depcomp: New file.
14627
f1a87ef6
PE
146282001-08-27 Paul Eggert <eggert@twinsun.com>
14629
14630 * src/bison.simple (yyparse): Don't take the address of an
14631 item before the start of an array, as that doesn't conform to
14632 the C Standard.
14633
82e236e2
RA
146342001-08-27 Robert Anisko <robert.anisko@epita.fr>
14635
f1a87ef6 14636 * src/output.c (output): Remove the initialization of the macro
82e236e2
RA
14637 obstack. It was done too late here.
14638
14639 * src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
14640 completely wrong.
14641 (reader): Initialize the macro obstack here, since we need it to grow
14642 '%define' directives.
14643
14644 * src/reader.h: Declare the macro obstack as extern.
14645
b0cfa28a
RA
146462001-08-27 Robert Anisko <robert.anisko@epita.fr>
14647
14648 * src/output.c (output_parser): Fix. Store single '%' characters in
14649 the output obstack instead of throwing them away.
14650
6fc74234
AD
146512001-08-27 Akim Demaille <akim@epita.fr>
14652
14653 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
14654
9c76d118
RA
146552001-08-25 Robert Anisko <robert.anisko@epita.fr>
14656
14657 * lib/Makefile.am: Adjust.
14658
a8289c62
RA
146592001-08-25 Robert Anisko <robert.anisko@epita.fr>
14660
14661 * src/bison.simple: Update and add '%%' directives.
14662
b6610515
RA
146632001-08-25 Robert Anisko <robert.anisko@epita.fr>
14664
14665 * src/reader.c (reader): Remove calls to 'output_headers' and
14666 'output_trailers'. Remove some C output.
14667 (readgram): Disable a piece of code that was writing a default
14668 definition for 'YYSTYPE'.
14669 (reader_output_yylsp): Remove.
14670 (packsymbols): Output token defintions to a macro.
14671 (copy_definition): Disable C output.
6fc74234 14672
b6610515
RA
14673 * src/reader.c (parse_macro_decl): New function used to parse macro
14674 declarations.
14675 (copy_string2): Put the body of copy_string into this new function.
14676 Add a parameter to let the caller choose whether he wants to copy the
14677 string delimiters or not.
14678 (copy_string): Be a simple call to copy_string2 with the last argument
14679 bound to true.
14680 (read_declarations): Add case for macro definition.
14681 (copy_identifier): New.
6fc74234 14682 (parse_macro_decl): Read macro identifiers using copy_identifier
b6610515
RA
14683 rather than lex.
14684
26f609ff
RA
146852001-08-25 Robert Anisko <robert.anisko@epita.fr>
14686
14687 * src/output.c (prepare): Add prefixed names.
14688 (output_parser): Output semantic actions.
14689 (output_parser): Fix bug on '%%line' directives.
6fc74234 14690
26f609ff
RA
14691 * src/output.c (output_headers): Remove. The C code printed by this
14692 function should now be in the skeletons.
14693 (output_trailers): Remove.
14694 (output): Disable call to 'reader_output_yylsp'.
14695 (output_rule_data): Do not output tables to the table obstack.
14696
14697 * src/output.c: Remove some C dedicated output.
14698 Improve the use of macro and output obstacks.
14699 (output_defines): Remove.
6fc74234 14700
26f609ff
RA
14701 * src/output.c (output_token_translations): Associate 'translate'
14702 table with a macro. No output to the table obstack.
14703 (output_gram): Same for 'rhs' and 'prhs'.
14704 (output_stos): Same for 'stos'.
14705 (output_rule_data): Same for 'r1' and 'r2'.
14706 (token_actions): Same for 'defact'.
14707 (goto_actions): Same for 'defgoto'.
14708 (output_base): Same for 'pact' and 'pgoto'.
14709 (output_table): Same for 'table'.
14710 (output_check): Same for 'check'.
6fc74234 14711
26f609ff
RA
14712 * src/output.c (output_table_data): New function.
14713 (output_short_table): Remove.
14714 (output_short_or_char_table): Remove.
6fc74234 14715
26f609ff
RA
14716 * src/output.c (output_parser): Replace most of the skeleton copy code
14717 with something new. Skeletons are now processed character by character
14718 rather than line by line, and Bison looks for '%%' macros. This is the
14719 first step in making Bison's output process (a lot) more flexible.
14720 (output_parser): Use the macro table.
14721
6f43b113
RA
147222001-08-25 Robert Anisko <robert.anisko@epita.fr>
14723
14724 * src/main.c (main): Initialize the macro table.
14725
dd3127cf
RA
147262001-08-25 Robert Anisko <robert.anisko@epita.fr>
14727
14728 * src/lex.c (percent_table): Add tok_define.
14729 * src/lex.h: Add tok_define.
14730
aa321494
RA
147312001-08-25 Robert Anisko <robert.anisko@epita.fr>
14732
14733 * src/macrotab.c: New file.
14734 * src/macrotab.h: New file.
14735 * src/Makefile.am: Update.
14736
68bd3b6b
RA
147372001-08-25 Robert Anisko <robert.anisko@epita.fr>
14738
14739 * lib/hash.c: New file.
14740 * lib/hash.h: New file.
14741 * lib/Makefile.am: Update.
14742
45f8dd1e
AD
147432001-08-15 Akim Demaille <akim@epita.fr>
14744
14745 Version 1.28c.
14746
40a64a7a 147472001-08-15 Marc Autret <autret_m@epita.fr>
0b8afb77
AD
14748
14749 * src/reader.c (readgram): Indent output macro YYSTYPE.
14750 (packsymbols): Likewise.
14751 (output_token_defines): Likewise.
14752 * src/files.c: Standardize.
14753 (compute_header_macro): New.
14754 (defines_obstack_save): New. Use compute_header_macro.
14755 (output_files): Update. Use defines_obstack_save.
14756
f9a8293a
AD
147572001-08-15 Akim Demaille <akim@epita.fr>
14758
14759 * doc/bison.texinfo (Table of Symbols): Document
14760 YYSTACK_USE_ALLOCA.
14761
150ca7a7
AD
147622001-08-15 Akim Demaille <akim@epita.fr>
14763
14764 * missing: Update from CVS Automake.
14765 * config/config.guess, config/config.sub, config/texinfo.tex:
14766 Update from gnu.org.
14767
69b5cec4
AD
147682001-08-15 Akim Demaille <akim@epita.fr>
14769
14770 * Makefile.maint: Sync with CVS Autoconf.
14771
f2b5126e
PB
147722001-08-14 Pascal Bart <pascal.bart@epita.fr>
14773
69b5cec4 14774 * doc/bison.texinfo: Include GNU Free Documentation License from
f2b5126e
PB
14775 `fdl.texi'.
14776 * doc/fdl.texi: Add to package.
14777
4ecbf796
MA
147782001-08-14 Marc Autret <autret_m@epita.fr>
14779
14780 Turn on %{source,header}_extension features.
14781
69b5cec4 14782 * src/lex.c (percent_table): Un-CPP out header_extension and
4ecbf796
MA
14783 source_extension.
14784 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
69b5cec4 14785 (compute_exts_from_src): Remove conditions. It restores priorities
4ecbf796
MA
14786 between options.
14787
95fb5662
MA
147882001-08-14 Marc Autret <autret_m@epita.fr>
14789
14790 * src/files.c (compute_base_names): Add extensions computing when
14791 `--file-prefix' used.
14792 Standardize function calls.
14793
78d09da9
MA
147942001-08-13 Marc Autret <autret_m@epita.fr>
14795
69b5cec4 14796 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
78d09da9
MA
14797 defining it (defined but null disables alloca).
14798
5a009f2c
MA
147992001-08-13 Marc Autret <autret_m@epita.fr>
14800
14801 * src/bison.simple (_yy_memcpy): CPP reformat.
14802
1e41465a
PB
148032001-08-13 Pascal Bart <pascal.bart@epita.fr>
14804
14805 * tests/atconfig.in (CPPFLAGS): Fix.
14806
c67a198d
PB
148072001-08-10 Pascal Bart <pascal.bart@epita.fr>
14808
79282c6c 14809 * doc/bison.texinfo: Include GNU General Public License from
c67a198d
PB
14810 `gpl.texi'.
14811 * doc/gpl.texi: Add to package.
14812
09a6de7e
MA
148132001-08-10 Marc Autret <autret_m@epita.fr>
14814
14815 * src/print_graph.h: Fix.
14816 * src/reader.c (read_declarations): Use parse_header_extension_decl ().
14817
b77b9ee0
AD
148182001-08-10 Akim Demaille <akim@epita.fr>
14819
14820 * src/system.h: Provide default declarations for stpcpy, strndup,
14821 and strnlen.
14822
3e259915
MA
148232001-08-10 Robert Anisko <anisko_r@epita.fr>
14824
14825 * doc/bison.texinfo (Locations): Update @$ stuff.
14826
ca96bc2d
MA
148272001-08-09 Robert Anisko <anisko_r@epita.fr>
14828
14829 * src/bison.simple (YYLLOC_DEFAULT): Update.
14830 (yyparse): Adjust.
14831
fdc6758b
MA
148322001-08-08 Marc Autret <autret_m@epita.fr>
14833
b77b9ee0 14834 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
fdc6758b
MA
14835 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
14836 Reported by Fabrice Bauzac.
957d4dbf 14837
600cad3b
MA
148382001-08-08 Marc Autret <autret_m@epita.fr>
14839
14840 * src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
14841 * src/vcg.c (output_node): Fix.
14842 * src/vcg.h: Cleanup.
14843 * src/print_graph.c: Add comments.
b77b9ee0 14844 (node_output_size): New global variable. Simplify the formatting of
600cad3b 14845 the VCG graph output.
b77b9ee0 14846 (print_actions): Unused code is now used. It notifies the final state
600cad3b 14847 and no action states in the VCG graph. It also give the reduce actions.
b77b9ee0 14848 The `shift and goto' edges are red and the `go to state' edges are
600cad3b
MA
14849 blue.
14850 Get the current node name and node_obstack by argument.
14851 (node_obstack): New variable.
14852 (print_state): Manage node_obstack.
14853 (print_core): Use node_obstack given by argument.
14854 A node is not only computed here but in print_actions also.
14855 (print_graph): CPP out useless code instead of commenting it.
14856
976e528f
AD
148572001-08-07 Pascal Bart <pascal.bart@epita.fr>
14858
14859 * tests/atconfig.in (CPPFLAGS): Fix.
14860
20e8e5ca
AD
148612001-08-07 Akim Demaille <akim@epita.fr>
14862
14863 * src/print_graph.c (quote): New.
14864 (print_core): Use it.
14865
957d4dbf 148662001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
3e3da797 14867
3e3da797
AD
14868 * src/vcg.c (complain.h): Include it.
14869 Unepitaize `return' invocations.
c4b66126 14870 [NDEBUG] (main): Remove.
79282c6c 14871 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
c4b66126
AD
14872 * src/files.c (open_files): Initialize graph_obstack.
14873 * src/print_graph.c (print_actions): CPP out useless code.
14874 (print_core): Don't output the last `\n' in labels.
14875 Use `quote'.
14876 * src/files.c (output_files): Output the VCG file.
14877 * src/main.c (main): Invoke print_graph ();
3e3da797 14878
957d4dbf 148792001-08-06 Marc Autret <autret_m@epita.fr>
22c2cbc0
AD
14880
14881 Automaton VCG graph output.
14882 Using option ``-g'' or long option ``--graph'', you can generate
14883 a gram_filename.vcg file containing a VCG description of the LALR (1)
14884 automaton of your grammar.
14885
14886 * src/main.c: Call to print_graph() function.
14887 * src/getargs.h: Update.
14888 * src/getargs.c (options): Update to catch `-g' and `--graph' options.
14889 (graph_flag): New flag.
14890 (longopts): Update.
14891 (getargs): Add case `g'.
14892 * src/files.c (graph_obstack): New obstack struct.
14893 (open_files): Initialize new obstack.
14894 (output_files): Saves graph_obstack if required.
14895 * src/files.h (graph_obstack): New extern declaration.
14896 * src/Makefile.am: Add new source files.
14897
927c1557 148982001-08-06 Marc Autret <autret_m@epita.fr>
ce4d5ce0
AD
14899
14900 * src/print_graph.c, src/print_graph.h (graph): New.
14901 * src/vcg.h: New file.
14902 * src/vcg.c: New file, VCG graph handling.
14903
7333d403
AD
149042001-08-06 Marc Autret <autret_m@epita.fr>
14905
14906 Add of %source_extension and %header_extension which specify
14907 the source or/and the header output file extension.
14908
14909 * src/files.c (compute_base_names): Remove initialisation of
14910 src_extension and header_extension.
14911 (compute_exts_from_gf): Update.
14912 (compute_exts_from_src): Update.
14913 (output_files): Update.
14914 * src/reader.c (parse_header_extension_decl): New.
14915 (parse_source_extension_decl): New.
14916 (read_declarations): New case statements for the new tokens.
14917 * src/lex.c (percent_table): Add entries for %source_extension
14918 and %header_extension.
14919 * src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
14920
84163231
AD
149212001-08-06 Marc Autret <autret_m@epita.fr>
14922
14923 * configure.in: Bump to 1.28c.
14924 * doc/bison.texinfo: Texinfo thingies.
14925
8303fc42
AD
149262001-08-04 Pascal Bart <pascal.bart@epita.fr>
14927
14928 * tests/atconfig.in (CPPFLAGS): Add.
14929 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
14930
70a84437
AD
149312001-08-03 Akim Demaille <akim@epita.fr>
14932
14933 Version 1.28b.
14934
2ce10144
AD
149352001-08-03 Akim Demaille <akim@epita.fr>
14936
14937 * tests/Makefile.am (check-local): Ship testsuite.
14938 * tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
14939 Include `string.h'.
14940
1e3e4bc1
AD
149412001-08-03 Akim Demaille <akim@epita.fr>
14942
14943 * configure.in: Try using -Wformat when compiling.
14944
42b45b7f
AD
149452001-08-03 Akim Demaille <akim@epita.fr>
14946
14947 * configure.in: Bump to 1.28b.
14948
8f13fe33
AD
149492001-08-03 Akim Demaille <akim@epita.fr>
14950
14951 * src/complain.c: Adjust strerror_r portability issues.
14952
b37ba92c
AD
149532001-08-03 Akim Demaille <akim@epita.fr>
14954
14955 Version 1.28a.
14956
b0ce6046
AD
149572001-08-03 Akim Demaille <akim@epita.fr>
14958
14959 * src/getargs.c, src/getarg.h (skeleton)): Constify.
14960 * src/lex.c (literalchar): Avoid name clashes on `buf'.
14961 * src/getargs.c: Include complain.h.
14962 * src/files.c, src/files.h (skeleton_find): Avoid name clashes.
14963 * lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
14964
d01c415b
AD
149652001-08-03 Akim Demaille <akim@epita.fr>
14966
14967 * src/reader.c (readgram): Display hidden chars in error messages.
14968
459dd1a6
AD
149692001-08-03 Akim Demaille <akim@epita.fr>
14970
14971 Update to gettext 0.10.39.
14972
53b74c0c
AD
149732001-08-03 Akim Demaille <akim@epita.fr>
14974
14975 * lib/strspn.c: New.
14976
234a3be3
AD
149772001-08-01 Marc Autret <autret_m@epita.fr>
14978
14979 * doc/bison.texinfo: Update.
14980 * doc/bison.1 (mandoc): Update.
14981 * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
14982 * src/files.c: Support output files extensions computing.
14983 (src_extension): New static variable.
14984 (header_extension): New static variable.
14985 (tr): New function.
14986 (get_extension_index): New function, gets the index of an extension
14987 filename in a string.
14988 (compute_exts_from_gf): New function, computes extensions from the
14989 grammar file extension.
14990 (compute_exts_from_src): New functions, computes extensions from the
14991 C source file extension, file given by ``-o'' option.
14992 (compute_base_names): Update.
14993 (output_files): Update.
14994
847bf1f5
AD
149952001-08-01 Robert Anisko <anisko_r@epita.fr>
14996
d995fee7 14997 * doc/bison.texi: Document @$.
847bf1f5
AD
14998 (Locations): New section.
14999
d074a105
AD
150002001-07-18 Akim Demaille <akim@epita.fr>
15001
15002 * Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
15003 * config/prev-version.txt, config/move-if-change: New.
15004 * Makefile.am: Adjust.
15005
3419715d
AD
150062001-07-08 Pascal Bart <pascal.bart@epita.fr>
15007
15008 * src/bison.simple (yyparse): Suppress warning `comparaison
15009 between signed and unsigned'.
15010
62ab6972
AD
150112001-07-05 Pascal Bart <pascal.bart@epita.fr>
15012
15013 * src/getargs.h (raw_flag): Remove.
15014 * src/getargs.c: Die on `-r'/`--raw'.
15015 * src/lex.c (parse_percent_token): Die on `%raw'.
15016 * src/reader.c (output_token_defines): Suppress call to `raw_flag'.
15017 * tests/calc.at: Suppress test with option `--raw'.
15018
1e24cc5b
AD
150192001-07-14 Akim Demaille <akim@epita.fr>
15020
15021 * config/: New.
15022 * configure.in: Require Autoconf 2.50.
15023 Update to gettext 0.10.38.
15024
32dfccf8
AD
150252001-03-16 Akim Demaille <akim@epita.fr>
15026
15027 * doc/bison.texinfo: ANSIfy the examples.
15028
cd5bd6ac
AD
150292001-03-16 Akim Demaille <akim@epita.fr>
15030
15031 * getargs.c (skeleton): New variable.
15032 (longopts): --skeleton is a new option.
15033 (shortopts, getargs): -S is a new option.
15034 * getargs.h: Declare skeleton.
15035 * output.c (output_parser): Use it.
15036
5141b016
AD
150372001-03-16 Akim Demaille <akim@epita.fr>
15038
15039 * m4/strerror_r.m4: New.
15040 * m4/error.m4: Run AC_FUNC_STRERROR_R.
15041 * lib/error.h, lib/error.c: Update.
15042
447992b9
AD
150432001-03-16 Akim Demaille <akim@epita.fr>
15044
15045 * src/getargs.c (longopts): Clean up.
15046
274d42ce
AD
150472001-02-21 Akim Demaille <akim@epita.fr>
15048
15049 * src/reader.c (gensym): `gensym_count' is your own.
15050 Use a static buf to create the symbol name, as token_buffer is no
15051 longer a buffer.
15052
22c821f3
AD
150532001-02-08 Akim Demaille <akim@epita.fr>
15054
15055 * src/conflicts.c (conflict_report): Be sure not to append to res
15056 between two calls, which could happen if both first sprintf were
15057 skipped, but not the first cp += strlen.
15058
18569462
AD
150592001-02-08 Akim Demaille <akim@epita.fr>
15060
15061 * lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
15062 New, from fileutils 4.0.37.
15063 * configure.in: Require Autoconf 2.49c. I took some time before
15064 making this decision. This is the only way out for portability
15065 issues in Bison, it would mean way too much duplicate effort to
15066 import in Bison features implemented in 2.49c since 2.13.
15067 AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
15068
0d8f3c8a
AD
150692001-02-02 Akim Demaille <akim@epita.fr>
15070
15071 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
66075dcf 15072 * lib/xalloc.h, lib/xmalloc.c: Update.
0d8f3c8a 15073
f17bcd1f
AD
150742001-01-19 Akim Demaille <akim@epita.fr>
15075
15076 Get rid of the ad hoc handling of token_buffer in the scanner: use
15077 the obstacks.
15078
15079 * src/lex.c (token_obstack): New.
15080 (init_lex): Initialize it. No longer call...
15081 (grow_token_buffer): this. Remove it.
15082 Adjust all the places which used it to use the obstack.
15083
511e79b3
AD
150842001-01-19 Akim Demaille <akim@epita.fr>
15085
15086 * src/lex.h: Rename all the tokens:
15087 s/\bENDFILE\b/tok_eof/g;
15088 s/\bIDENTIFIER\b/tok_identifier/g;
15089 etc.
15090 Let them be enums, not #define, to ease debugging.
15091 Adjust all the code.
15092
0d6508ef
AD
150932001-01-18 Akim Demaille <akim@epita.fr>
15094
15095 * src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
15096 * src/lex.c (maxtoken, grow_token_buffer): Static.
15097
6deb4447
AD
150982001-01-18 Akim Demaille <akim@epita.fr>
15099
15100 Since we now use obstacks, more % directives can be enabled.
15101
15102 * src/lex.c (percent_table): Also accept `%yacc',
15103 `%fixed_output_files', `%defines', `%no_parser', `%verbose', and
15104 `%debug'.
15105 Handle the actions for `%semantic_parser' and `%pure_parser' here,
15106 instead of returning a token.
15107 * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
15108 * src/reader.c (read_declarations): Adjust.
15109 * src/files.c (open_files): Don't call `compute_base_names', don't
15110 compute `attrsfile' since they depend upon data which might be
15111 *in* the input file now.
15112 (output_files): Do it here.
15113 * src/output.c (output_headers): Document the fact that this patch
15114 introduces a guaranteed SEGV for semantic parsers.
15115 * doc/bison.texinfo: Document them.
15116 * tests/suite.at: Exercise these %options.
15117
ff4423cc
AD
151182000-12-20 Akim Demaille <akim@epita.fr>
15119
15120 Also handle the output file (--verbose) with obstacks.
15121
15122 * files.c (foutput): Remove.
15123 (output_obstack): New.
15124 Adjust all dependencies.
15125 * src/conflicts.c: Return a string.
15126 * src/system.h (obstack_grow_string): Rename as...
15127 (obstack_sgrow): this. Be ready to work with non literals.
15128 (obstack_fgrow4): New.
15129
956dba3a
AD
151302000-12-20 Akim Demaille <akim@epita.fr>
15131
15132 * src/files.c (open_files): Fix the computation of short_base_name
15133 in the case of `-o foo.tab.c'.
15134
337bab46
AD
151352000-12-20 Akim Demaille <akim@epita.fr>
15136
15137 * src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
15138 (copy_dollar): Now that everything uses obstacks, get rid of the
15139 FILE * parameters.
15140
5d3214b8
AD
151412000-12-20 Akim Demaille <akim@epita.fr>
15142
15143 * src/files.c (open_files): Actually the `.output' file is based
15144 on the short_base_name, not base_name.
15145 * tests/suite.at (Checking output file names): Adjust.
15146
29092a57
AD
151472000-12-20 Akim Demaille <akim@epita.fr>
15148
15149 * src/bison.s1: Remove, we now use directly...
15150 * src/bison.simple: this.
15151 * src/Makefile.am: Use pkgdata instead of data.
15152
ea5607fd
AD
151532000-12-20 Akim Demaille <akim@epita.fr>
15154
15155 * src/files.c (guard_obstack): New.
15156 (open_files): Initialize it.
15157 (output_files): Dump it...
15158 * src/files.h: Export it.
15159 * src/reader.c (copy_guard): Use it.
15160
27110317
AD
151612000-12-19 Akim Demaille <akim@epita.fr>
15162
15163 * src/files.c (outfile, defsfile, actfile): Removed as global
15164 vars.
15165 (open_files): Don't compute them.
15166 (output_files): Adjust.
15167 (base_name, short_base_name): Be global.
15168 Adjust dependencies.
15169
19c50364
AD
151702000-12-19 Akim Demaille <akim@epita.fr>
15171
15172 * src/files.c (strsuffix): New.
15173 (stringappend): Be just like strcat but allocate.
15174 (base_names): Eve out from open_files.
15175 Try to simplify the rather hairy computation of base_name and
15176 short_base_name.
15177 (open_files): Use it.
15178 * tests/suite.at (Checking output file names): New test.
15179
573c1d9f
AD
151802000-12-19 Akim Demaille <akim@epita.fr>
15181
15182 * src/system.h (obstack_grow_literal_string): Rename as...
15183 (obstack_grow_string): this.
15184 * src/output.c (output_parser): Recognize `%% actions' instead of
15185 `$'.
15186 * src/bison.s1: s/$/%% actions/.
15187 * src/bison.hairy: Likewise.
15188
ef7ddedd
AD
151892000-12-19 Akim Demaille <akim@epita.fr>
15190
15191 * src/output.c (output_parser): Compute the `#line' lines when
15192 there are.
15193 * src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
15194 Suggested by Hans Aberg.
15195
ff61dabd
AD
151962000-12-19 Akim Demaille <akim@epita.fr>
15197
15198 Let the handling of the skeleton files be local to the procedures
15199 that use it.
15200
15201 * src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
15202 longer static.
15203 (fparser, open_extra_files): Remove.
15204 (open_files, output_files): Don't take care of fparser.
15205 * src/files.h: Adjust.
15206 * src/output.c (output_parser): Open and close the file to the
15207 skeleton.
15208 * src/reader.c (read_declarations): When %semantic_parser, open
15209 fguard.
15210
55b96341
AD
152112000-12-19 Akim Demaille <akim@epita.fr>
15212
15213 * src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
15214 * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
15215
358c15b7
AD
152162000-12-19 Akim Demaille <akim@epita.fr>
15217
15218 * src/files.c (open_files): Yipee! We no longer need all the code
15219 looking for `/tmp' since we have no tmp file.
15220
7de3329e
AD
152212000-12-19 Akim Demaille <akim@epita.fr>
15222
15223 * src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
15224 New macros.
15225 * src/files.c (open_files): Less dependency on MSDOS etc.
15226
3abcd459
AD
152272000-12-14 Akim Demaille <akim@epita.fr>
15228
15229 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
15230 Provide a default definition.
15231 Use it when executing the default @ action.
15232 * src/reader.c (reader_output_yylsp): No longer include
15233 `timestamp' and `text' in the default YYLTYPE.
15234
2a91a95e
AD
152352000-12-12 Akim Demaille <akim@epita.fr>
15236
15237 * src/reader.c (copy_definition, parse_union_decl, copy_action)
15238 (copy_guard): Quote the file names.
15239 Reported by Laurent Mascherpa.
15240
14d3eb9b
AD
152412000-12-12 Akim Demaille <akim@epita.fr>
15242
15243 * src/output.c (output_headers, output_program, output): Be sure
15244 to escape special characters when outputting filenames.
15245 (ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
15246 (output_headers): Don't depend on them, Use ACTSTR.
15247
d7045ec6
AD
152482000-11-17 Akim Demaille <akim@epita.fr>
15249
15250 * lib/obstack.h: Formatting changes.
15251 (obstack_grow, obstack_grow0): Don't cast WHERE at all: it
15252 prevents type checking.
15253 (obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
15254 cast the value to (void *): assigning a `foo *' to a `void *'
15255 variable is valid.
15256 (obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
15257 * src/reader.c (parse_union_decl): Typo: use obstack_1grow to
15258 append characters.
15259
6fd54b73
AD
152602000-11-17 Akim Demaille <akim@epita.fr>
15261
15262 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
15263 as...
15264 (suite.m4, regression.m4, calc.m4): these.
15265 * tests/atgeneral.m4: Update from CVS Autoconf.
15266
4c50eae6
AD
152672000-11-17 Akim Demaille <akim@epita.fr>
15268
15269 * tests/regression.m4 (%union and --defines): New test,
15270 demonstrating a current bug in the obstack implementation.
15271
a35f64ea
AD
152722000-11-17 Akim Demaille <akim@epita.fr>
15273
15274 * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
15275 macros.
15276 Use them to declare the variables which are global or local to
15277 `yyparse'.
15278
7de23534
AD
152792000-11-17 Akim Demaille <akim@epita.fr>
15280
15281 * acconfig.h: Remove, no longer used.
15282
aa7815f5
AD
152832000-11-07 Akim Demaille <akim@epita.fr>
15284
15285 * src: s/Copyright (C)/Copyright/g.
15286
5af1f549
AD
152872000-11-07 Akim Demaille <akim@epita.fr>
15288
15289 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
15290 defining.
15291 * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
15292
553e2b22
AD
152932000-11-07 Akim Demaille <akim@epita.fr>
15294
15295 * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
15296 Merge in a single CPP if/else.
15297
8a4f41d6
AD
152982000-11-07 Akim Demaille <akim@epita.fr>
15299
15300 * src/output.c (output): Remove useless variables.
15301 * lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
15302 argument `data' for consistency with the prototypes.
15303 Qualify it `const'.
15304 (obstack_copy, obstack_copy0): Rename the second argument as
15305 `address' for consistency. Qualify it `const'.
15306 * lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
15307 (obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
15308 `const' their input argument (`data' or `address').
15309 Adjust the corresponding macros to include `const' in casts.
15310
095a3fb5
AD
153112000-11-03 Akim Demaille <akim@epita.fr>
15312
15313 * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
15314 s/PFILE1/BISON_HAIRY/.
15315 Adjust dependencies.
15316
d1cdce7c
AD
153172000-11-03 Akim Demaille <akim@epita.fr>
15318
090c5ebf 15319 For some reason, this was not applied.
d1cdce7c
AD
15320
15321 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
15322 `unlink': it's no longer used.
15323
9311529b
AD
153242000-11-03 Akim Demaille <akim@epita.fr>
15325
15326 * src/files.c (skeleton_find): New function, eved out of...
15327 (open_files, open_extra_files): here.
15328
d8880f69
AD
153292000-11-03 Akim Demaille <akim@epita.fr>
15330
15331 Don't use `atexit'.
15332
15333 * src/files.c (obstack_save): New function.
15334 (done): Rename as...
15335 (output_files): this.
15336 Use `obstack_save'.
15337 * src/main.c (main): Don't use `atexit' to register `done', since
15338 it no longer has to remove tmp files, just call `output_files'
15339 when there are no errors.
15340
0dbb648e
AD
153412000-11-02 Akim Demaille <akim@epita.fr>
15342
15343 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
15344 `unlink': it's no longer used.
15345 * src/files.h: Formatting changes.
15346
896fe5c1
AD
153472000-11-02 Akim Demaille <akim@epita.fr>
15348
15349 Remove the last uses of mktemp and unlink/delete.
15350
15351 * src/files.c (fdefines, ftable): Removed.
15352 (defines_ostack, table_obstack): New.
15353 Adjust dependencies of the former into uses of the latter.
15354 * src/output.c (output_short_or_char_table, output_short_table):
15355 Convert to using obstacks.
15356 * src/reader.c (copy_comment2): Accept one FILE * and two
15357 obstacks.
15358 (output_token_defines, reader_output_yylsp): Use obstacks.
15359 * src/system.h (obstack_fgrow3): New.
1f65350a 15360 * po/POTFILES.in: Adjust.
896fe5c1 15361
dd60faec
AD
153622000-11-01 Akim Demaille <akim@epita.fr>
15363
15364 Change each use of `fattrs' into a use of `attrs_obstack'.
15365
15366 * src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
15367 * src/files.c (fattrs): Remove.
15368 (attrs_obstack): New.
15369 Adjust all dependencies.
15370 (done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
15371
8c7ebe49
AD
153722000-11-01 Akim Demaille <akim@epita.fr>
15373
15374 Introduce obstacks.
15375 Change each use of `faction' into a use of `action_obstack'.
15376
15377 * lib/obstack.h, lib/obstack.c: New files.
15378 * src/files.c (faction): Remove.
15379 (action_obstack): New.
15380 Adjust all dependencies.
15381
77aee789
AD
153822000-10-20 Akim Demaille <akim@epita.fr>
15383
15384 * lib/quote.h (PARAMS): New macro. Use it.
15385
43591cec
AD
153862000-10-16 Akim Demaille <akim@epita.fr>
15387
15388 * src/output.c (output_short_or_char_table): New function.
15389 (output_short_table, output_token_translations): Use it.
15390 (goto_actions): Use output_short_table.
15391
1e9798d5
AD
153922000-10-16 Akim Demaille <akim@epita.fr>
15393
15394 * src/symtab.c (bucket_new): New function.
15395 (getsym): Use it.
15396
15397 * src/output.c (output_short_table): New argument to display the
15398 comment associated with the table.
15399 Adjust dependencies.
15400 (output_gram): Use it.
15401 (output_rule_data): Nicer output layout for YYTNAME.
15402
f282676b
AD
154032000-10-16 Akim Demaille <akim@epita.fr>
15404
15405 * src/lex.c (read_typename): New function.
15406 (lex): Use it.
15407 * src/reader.c (copy_dollar): Likewise.
15408
550a72a3
AD
154092000-10-16 Akim Demaille <akim@epita.fr>
15410
15411 * src/reader.c (copy_comment2): Expect the input stream to be on
15412 the `/' which is suspected to open a comment, instead of being
15413 called after `//' or `/*' was read.
15414 (copy_comment, copy_definition, parse_union_decl, copy_action)
15415 (copy_guard): Adjust.
15416
131e2fef
AD
154172000-10-16 Akim Demaille <akim@epita.fr>
15418
15419 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
15420 `read_signed_integer'.
15421
79282c5a
AD
154222000-10-16 Akim Demaille <akim@epita.fr>
15423
15424 * src/reader.c (copy_dollar): New function.
15425 (copy_guard, copy_action): Use it.
15426
ff4a34be
AD
154272000-10-16 Akim Demaille <akim@epita.fr>
15428
15429 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
15430 * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
15431 New files, from Fileutils 4.0.27.
15432 * src/main.c (printable_version): Remove.
15433 * src/lex.c, src/reader.c: Use `quote'.
15434
154352000-10-04 Akim Demaille <akim@epita.fr>
15436
15437 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
15438
14ded682
AD
154392000-10-04 Akim Demaille <akim@epita.fr>
15440
15441 * doc/bison.texinfo: Various typos spotted by Neil Booth.
15442
8e03724b
AD
154432000-10-04 Akim Demaille <akim@epita.fr>
15444
15445 When a literal string is used to define two different tokens,
15446 `bison -v' segfaults.
15447 Reported by Piotr Gackiewicz, and fixed by Neil Booth.
15448
15449 * tests/regression.m4: New file.
15450 Include the core of the sample provided by Piotr Gackiewicz.
15451 * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
15452 properly.
15453
a9e64249
AD
154542000-10-04 Akim Demaille <akim@epita.fr>
15455
15456 * src/reader.c (parse_expect_decl): Keep `count' within the size
15457 of `buffer'.
15458 From Neil Booth.
15459
da9abf43
AD
154602000-10-02 Paul Eggert <eggert@twinsun.com>
15461
15462 * bison.s1 (yyparse): Assign the default value
15463 unconditionally, to avoid a GCC warning and make the parser a
15464 tad smaller.
15465
c33638bb
AD
154662000-10-02 Akim Demaille <akim@epita.fr>
15467
15468 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
15469 options.
15470
444c570a
AD
154712000-10-02 Akim Demaille <akim@epita.fr>
15472
15473 * src/derives.c, src/print.c, src/reduce.c: To ease the
15474 translation, move some `\n' out of the translated strings.
15475
89cab50d
AD
154762000-10-02 Akim Demaille <akim@epita.fr>
15477
15478 The location tracking mechanism is precious for parse error
15479 messages. Nevertheless, it is enabled only when `@n' is used in
15480 the grammar, which is a different issue (you can use it in error
15481 message, but not in the grammar per se). Therefore, there should
15482 be another means to enable it.
15483
15484 * src/getargs.c (getargs): Support `--locations'.
15485 (usage): Report it.
15486 * src/getargs.h (locationsflag): Export it.
15487 * src/lex.c (percent_table): Support `%locations'.
15488 * src/reader.c (yylsp_needed): Remove this variable, now replaced
15489 with `locationsflag'.
15490 * doc/bison.texinfo: Document `--locations' and `%locations'.
15491 Sort the options.
15492 * tests/calc.m4: Test it.
15493
15494 For regularity of the names, replace each
15495 (nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
15496 (no_lineflag, token_tableflag, rawflag, no_parserflag): this.
15497 In addition replace each `flag' with `_flag'.
15498
d6c2cba0
AD
154992000-10-02 Akim Demaille <akim@epita.fr>
15500
15501 Also test parse error messages, including with YYERROR_VERBOSE.
15502
15503 * tests/calc.m4 (calc.y): Add support for `exp = exp' (non
15504 associative).
15505 Use it to check the computations.
15506 Use it to check `nonassoc' is honored.
15507 (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
15508 `--yyerror-verbose'.
15509 (_AT_CHECK_CALC): Adjust to this option.
15510 (_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
15511
5a35a6cb
AD
155122000-10-02 Akim Demaille <akim@epita.fr>
15513
15514 Test also `--verbose', `--defines' and `--name-prefix'. Testing
15515 the latter demonstrates a flaw in the handling of non debugging
15516 parsers introduced by myself on 2000-03-16: `#define yydebug 0'
15517 was used in order to simplify:
15518
15519 #if YYDEBUG
15520 if (yydebug)
15521 {
15522 ...
15523 }
15524 #endif
15525
15526 into
15527
15528 if (yydebug)
15529 {
15530 ...
15531 }
15532
15533 unfortunately this leads to a CPP conflict when
15534 `--name-prefix=foo' is used since it produces `#define yydebug
15535 foodebug'.
15536
15537 * src/bison.s1 [!YYDEBUG]: Do not define yydebug.
15538 (YYDPRINTF): New macro.
15539 Spread its use.
15540 * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
15541 the bison options.
15542 Also test `--verbose', `--defines' and `--name-prefix'.
15543
71da9eea
AD
155442000-10-02 Akim Demaille <akim@epita.fr>
15545
15546 Improve the readability of the produced parsers.
15547
15548 * src/bison.s1: Formatting changes.
15549 Improve the comment related to the `$' mark.
15550 (yydefault): Don't fall through to `yyresume': `goto' there.
15551 * src/output.c (output_parser): When the `$' is met, skip the end
15552 of its line.
15553 New variable, `number_of_dollar_signs', to check there's exactly
15554 one `$' in the parser skeleton.
15555
95e36146
AD
155562000-10-02 Akim Demaille <akim@epita.fr>
15557
15558 * lib/xstrdup.c: New file, from the fileutils.
15559 * src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
15560 (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
15561 instead of strlen + xmalloc + strcpy.
15562 * src/symtab.c (copys): Remove, use xstrdup instead.
15563
d7020c20
AD
155642000-10-02 Akim Demaille <akim@epita.fr>
15565
15566 * src/gram.h (associativity): New enum type which replaces the
15567 former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
15568 `right_assoc', `left_assoc' and `non_assoc'.
15569 Adjust all dependencies.
15570 * src/reader.c: Formatting changes.
15571 (LTYPESTR): Don't define it, use it as a literal in
15572 `reader_output_yylsp'.
15573 * src/symtab.h (symbol_class): New enum type which replaces the
15574 former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
15575 `sunknown', `stoken and `snterm'.
15576
1916f98e
AD
155772000-10-02 Akim Demaille <akim@epita.fr>
15578
15579 * src/getargs.c (fixed_outfiles): Rename as...
15580 (yaccflag): for consistency and accuracy.
15581 Adjust dependencies.
15582
d7913476
AD
155832000-10-02 Akim Demaille <akim@epita.fr>
15584
15585 Use the more standard files `xalloc.h' and `xmalloc.c' instead of
15586 Bison's `allocate.c' and `alloc.h'. This patch was surprisingly
15587 difficult and introduced a lot of core dump. It turns out that
15588 Bison used an implementation of `xmalloc' based on `calloc', and
15589 at various places it does depend upon the initialization to 0. I
15590 have not tried to isolate the pertinent places, and all the former
15591 calls to Bison's `xmalloc' are now using `XCALLOC'. Someday,
15592 someone should address this issue.
15593
15594 * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
15595 * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
15596 files.
15597 Adjust dependencies.
15598 * src/warshall.h: New file.
15599 Propagate.
15600
340ef489
AD
156012000-10-02 Akim Demaille <akim@epita.fr>
15602
15603 Various anti-`extern in *.c' changes.
15604
15605 * src/system.h: Include `assert.h'.
15606
b2ca4022
AD
156072000-10-02 Akim Demaille <akim@epita.fr>
15608
15609 * src/state.h (nstates, final_state, first_state, first_shift)
15610 (first_reduction): Move their exportation from here...
15611 * src/LR0.h: to here.
15612 Adjust dependencies.
15613 * src/getargs.c (statisticsflag): New variable.
15614 Add support for `--statistics'.
15615 Adjust dependencies.
15616
15617 Remove a lot of now useless `extern' statements in most files.
15618
403b315b
AD
156192000-10-02 Akim Demaille <akim@epita.fr>
15620
15621 * src/LR0.h: New file.
15622 Propagate its use.
15623
07a58c13
AD
156242000-10-02 Akim Demaille <akim@epita.fr>
15625
15626 * src/print.h: New file.
15627 Propagate its use.
15628 * src/print.c: Formatting and ordering changes.
15629 (verbose, terse): Replace with...
15630 (print_results): this new function.
15631 Adjust dependencies.
15632
0619caf0
AD
156332000-10-02 Akim Demaille <akim@epita.fr>
15634
15635 * src/conflicts.c (conflict_report): New function.
15636 (conflict_log, verbose_conflict_log): Replace with...
15637 (print_conflicts): this function.
15638 Adjust dependencies.
15639 * src/conflicts.h: New file.
15640 Propagate its inclusion.
15641
3519ec76
AD
156422000-10-02 Akim Demaille <akim@epita.fr>
15643
15644 * src/nullable.h: New file.
15645 Propagate its inclusion.
15646 * src/nullable.c: Formatting changes.
15647
015acc48
AD
156482000-10-02 Akim Demaille <akim@epita.fr>
15649
15650 * src/reduce.h: New file.
15651 Propagate its inclusion.
15652 * src/reduce.c: Topological sort and other formatting changes.
15653 (bool, TRUE, FALSE): Move their definition to...
15654 * src/system.h: here.
15655
8963a27b
AD
156562000-10-02 Akim Demaille <akim@epita.fr>
15657
15658 * src/files.c: Formatting changes.
15659 (tryopen, tryclose, openfiles): Rename as...
15660 (xfopen, xfclose, open_files): this.
15661 (stringappend): static.
15662 * src/files.h: Complete the list of exported symbols.
15663 Propagate its use.
15664
a70083a3
AD
156652000-10-02 Akim Demaille <akim@epita.fr>
15666
15667 * src/reader.h: New file.
15668 Propagate its use instead of tedious list of `extern' and
15669 prototypes.
15670 * src/reader.c: Formatting changes, topological sort,
15671 s/register//.
15672
abadc117
AD
156732000-10-02 Akim Demaille <akim@epita.fr>
15674
15675 * src/lex.h: Prototype `lex.c' exported functions.
15676 * src/reader.c: Adjust.
15677 * src/lex.c: Formatting changes.
15678 (safegetc): Rename as...
15679 (xgetc): this.
15680
720d742f
AD
156812000-10-02 Akim Demaille <akim@epita.fr>
15682
15683 * src/lalr.h: New file.
15684 Propagate its inclusion instead of prototypes and `extern'.
15685 * src/lalr.c: Formatting changes, topological sorting etc.
15686
f2acea59
AD
156872000-10-02 Akim Demaille <akim@epita.fr>
15688
15689 * src/output.c (token_actions): Introduce a temporary array,
15690 YYDEFACT, that makes it possible for this function to use
15691 output_short_table.
15692
d019d655
AD
156932000-10-02 Akim Demaille <akim@epita.fr>
15694
15695 `user_toknums' is output as a `short[]' in `output.c', while it is
15696 defined as a `int[]' in `reader.c'. For consistency with the
15697 other output tables, `user_toknums' is now defined as a table of
15698 shorts.
15699
15700 * src/reader.c (user_toknums): Be a short table instead of an int
15701 table.
15702 Adjust dependencies.
15703
15704 Factor the short table outputs.
15705
15706 * src/output.c (output_short_table): New function.
15707 * src/output.c (output_gram, output_stos, output_rule_data)
15708 (output_base, output_table, output_check): Use it.
15709
6c89f1c1
AD
157102000-10-02 Akim Demaille <akim@epita.fr>
15711
15712 * src/output.c (output): Topological sort of the functions, in
15713 order to get rid of the `static' prototypes.
15714 No longer use `register'.
15715 * src/output.h: New file.
15716 Propagate its inclusion in files explicitly prototyping functions
15717 from output.c.
15718
d9efd181
AD
157192000-09-21 Akim Demaille <akim@epita.fr>
15720
15721 * src/atgeneral.m4: Update from Autoconf.
15722
c29240e7 157232000-09-21 Akim Demaille <akim@epita.fr>
2fa6973e
AD
15724
15725 * src/closure.h: New file.
15726 * src/closure.c: Formatting changes, topological sort over the
15727 functions, use of closure.h.
15728 (initialize_closure, finalize_closure): Rename as...
15729 (new_closure, free_closure): these. Adjust dependencies.
15730 * src/LR0.c: Formatting changes, topological sort, use of
15731 cloture.h.
15732 (initialize_states): Rename as...
15733 (new_states): this.
15734 * src/Makefile.am (noinst_HEADERS): Adjust.
15735
499daa50
AD
157362000-09-20 Akim Demaille <akim@epita.fr>
15737
15738 * src/acconfig.h: Don't protect config.h against multiple
15739 inclusion.
15740 Don't define PARAMS.
15741 * src/system.h: Define PARAMS.
15742 Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
15743 purpose of config.h. system.h must not try to fix wrong
15744 definitions in config.h.
15745
cc84fd5d
AD
157462000-09-20 Akim Demaille <akim@epita.fr>
15747
15748 * src/derives.h: New file.
15749 * src/main.c, src/derives.h: Use it.
15750 Formatting changes.
15751 * src/Makefile.am (noinst_HEADERS): Adjust.
15752
db5b3a89
AD
157532000-09-20 Akim Demaille <akim@epita.fr>
15754
15755 * tests/atgeneral.m4: Update from Autoconf.
15756 * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
15757 (AT_CHECK_CALC): New macros.
15758 Use these macros to test bison with options `', `--raw',
15759 `--debug', `--yacc', `--yacc --debug'.
15760
ceed8467
AD
157612000-09-19 Akim Demaille <akim@epita.fr>
15762
15763 * src/output.c: Formatting changes.
15764 * src/machine.h: Remove, leaving its contents in...
15765 * src/system.h: here.
15766 Include stdio.h.
15767 Adjust all dependencies on stdio.h and machine.h.
15768 * src/getargs.h: New file.
15769 Let all `extern' declarations about getargs.c be replaced with
15770 inclusion of `getargs.h'.
15771 * src/Makefile.am (noinst_HEADERS): Adjust.
15772
15773 * tests/calc.m4 (yyin): Be initialized in main, not on the global
15774 scope.
15775 (yyerror): Returns void, not int.
15776 * doc/bison.texinfo: Formatting changes.
15777
05a1d24b
AD
157782000-09-19 Akim Demaille <akim@epita.fr>
15779
15780 * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
15781 portable.
15782
cbd25751
AD
157832000-09-18 Akim Demaille <akim@epita.fr>
15784
15785 * configure.in: Append WARNING_CFLAGS to CFLAGS.
15786 * src/Makefile.am (INCLUDES): Don't.
15787 Be ready to fetch headers in lib/.
15788
13863333
AD
157892000-09-18 Akim Demaille <akim@epita.fr>
15790
15791 * doc/bison.texinfo: Update the copyright.
15792 ANSIfy and GNUify the examples.
15793 Remove the old menu.
15794
0d533154
AD
157952000-09-18 Akim Demaille <akim@epita.fr>
15796
15797 First set of tests: use the `calc' example from the documentation.
15798
15799 * src/bison.s1 (yyparse): Condition the code using `yytname' which
15800 is defined only when YYDEBUG is.
15801 * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
15802 * src/files.c (tryopen, tryclose): Formatting changes.
15803 Move to the top and be static.
15804 * src/reader.c (read_signed_integer): Likewise.
15805 * tests/calc.m4: New file.
15806 * Makefile.am, suite.m4: Adjust.
15807 * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
15808
e79137ac
AD
158092000-09-18 Akim Demaille <akim@epita.fr>
15810
15811 Add support for an Autotest test suite for Bison.
15812
15813 * m4/m4.m4, m4/atconfig.m4: New files.
15814 * m4/Makefile.am (EXTRA_DIST): Adjust.
15815 * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
15816 files.
15817 * src/getargs.c: Display a more standard --version message.
15818 * src/reader.c (reader): Formatting changes.
15819 No longer depend upon VERSION_STRING.
15820 * configure.in: No longer use `dnl'.
15821 Set up the test suite and the new directory `tests/.
15822 (VERSION_STRING): Remove.
15823
27821bff
AD
158242000-04-14 Akim Demaille <akim@epita.fr>
15825
15826 * src/reader.c (copy_comment2): New function, same as former
15827 `copy_comment', but outputs into two FILE *.
15828 (copy_comment): Use it.
15829 (parse_union_decl): Use it.
15830 (get_type, parse_start_decl): Use the same `invalid' message.
15831 (parse_start_decl, parse_union_decl): Use the same `multiple'
15832 message.
15833 (parse_union_decl, copy_guard, copy_action): Use the same
15834 `unmatched' message.
15835 * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
15836
cfe5fbc0
AD
158372000-03-31 Akim Demaille <akim@epita.fr>
15838
15839 * src/files.c (tryopen, tryclose): Move to the top.
15840 Be static.
15841
cb7db13e
AD
158422000-03-31 Akim Demaille <akim@epita.fr>
15843
15844 * src/main.c (main): Don't call `done', exit does it.
15845
a0f6b076
AD
158462000-03-31 Akim Demaille <akim@epita.fr>
15847
36281465
AD
15848 * allocate.c: s/return (foo)/return foo/.
15849 * lalr.c: Likewise.
15850 * LR0.c: Likewise.
15851 * output.c: Likewise.
15852 * reader.c: Likewise.
15853 * symtab.c: Likewise.
15854 * vmsgetargs.c: Likewise.
15855
158562000-03-31 Akim Demaille <akim@epita.fr>
15857
15858 Clean up the error reporting functions.
a0f6b076
AD
15859
15860 * src/report.c: New file.
15861 * src/report.h: Likewise.
15862 * src/Makefile.am: Adjust.
15863 * m4/error.m4: New file.
15864 * m4/Makefile.am: Adjust.
15865 * configure.in (jm_PREREQ_ERROR): Call it.
15866 * src/main.c (int_to_string, banner, fatal_banner, warn_banner):
15867 Remove.
15868 (fatal, fatals): Remove. All callers use complain.c::fatal.
15869 (warn, warni, warns, warnss, warnss): Remove. All callers use
15870 complain.c::complain.
15871 (toomany): Remove, use fatal instead.
15872 * src/files.c (done): No argument, use complain_message_count.
15873 * src/main.c (main): Register `done' to `atexit'.
15874
15875 * src/getargs.c (usage): More `fputs', less `fprintf'.
15876
18539825
AD
158772000-03-28 Akim Demaille <akim@epita.fr>
15878
15879 * lib/: New directory.
15880 * Makefile.am (SUBDIRS): Adjust.
15881 * configure.in: Adjust.
15882 (LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
15883 useless.
15884 * src/alloca.c: Moved to lib/.
15885 * src/getopt.c: Likewise.
15886 * src/getopt1.c: Likewise.
15887 * src/getopt.h: Likewise.
15888 * src/ansi2knr.c: Likewise.
15889 * src/ansi2knr.1: Likewise.
15890 * src/Makefile.am: Adjust.
15891 * lib/Makefile.am: New file.
15892
9f306f2a
AD
158932000-03-28 Akim Demaille <akim@epita.fr>
15894
15895 * src/getargs.c (usage): Refresh the help message.
15896
0ba347b6
AD
158972000-03-17 Akim Demaille <akim@epita.fr>
15898
15899 * src/getopt1.c: Updated from textutils 2.0e
15900 * src/getopt.c: Likewise.
15901 * src/getopt.h: Likewise.
15902
dbe7f271
AD
159032000-03-17 Akim Demaille <akim@epita.fr>
15904
15905 * src/Makefile.am (bison.simple): Fix the awk program: quote only
15906 the file name, not the whole `#line LINE FILE'.
15907
75bbe78d
AD
159082000-03-17 Akim Demaille <akim@epita.fr>
15909
15910 On syntax errors, report the token on which we choked.
15911
aa5fd0ee
AD
15912 * src/bison.s1 (yyparse): In the label yyerrlab, when
15913 YYERROR_VERBOSE, add yychar in msg.
75bbe78d 15914
7b306f52
AD
159152000-03-17 Akim Demaille <akim@epita.fr>
15916
aa5fd0ee 15917 * src/reader.c (copy_at): New function.
7b306f52
AD
15918 (copy_guard): Use it.
15919 (copy_action): Use it.
15920
e87b5700
AD
159212000-03-17 Akim Demaille <akim@epita.fr>
15922
15923 Be kind to translators, save some useless translations.
15924
aa5fd0ee 15925 * src/main.c (banner): New function.
e87b5700
AD
15926 (fatal_banner): Use it.
15927 (warn_banner): Use it.
15928
ae3c3164
AD
159292000-03-17 Akim Demaille <akim@epita.fr>
15930
aa5fd0ee
AD
15931 * src/reader.c (copy_definition): Use copy_string and
15932 copy_comment. Removed now unused `match', `ended',
15933 `cplus_comment'.
ae3c3164
AD
15934 (copy_comment, copy_string): Moved, to be visible from
15935 copy_definition.
15936
4dc58e7c
AD
159372000-03-17 Akim Demaille <akim@epita.fr>
15938
aa5fd0ee
AD
15939 * src/reader.c (copy_string): Declare `static inline'. No
15940 problems with inline, since it is checked by configure.
4dc58e7c
AD
15941 (copy_comment): Likewise.
15942
0a6384c4
AD
159432000-03-17 Akim Demaille <akim@epita.fr>
15944
aa5fd0ee 15945 * src/reader.c (packsymbols): Formatting changes.
0a6384c4 15946
3cef001a
AD
159472000-03-17 Akim Demaille <akim@epita.fr>
15948
aa5fd0ee 15949 * src/reader.c (copy_comment): New function, factored out from:
3cef001a
AD
15950 (copy_action): Use it. Removed now unused `match', `ended',
15951 `cplus_comment'.
15952 (copy_guard): Likewise.
15953
ca36d2ef
AD
159542000-03-17 Akim Demaille <akim@epita.fr>
15955
aa5fd0ee 15956 * src/reader.c (copy_string): New function, factored out from:
ca36d2ef
AD
15957 (copy_action): Use it.
15958 (copy_guard): Likewise.
15959
6666f98f
AD
159602000-03-17 Akim Demaille <akim@epita.fr>
15961
15962 Change the handling of @s so that they behave exactly like $s.
15963 There is now a pseudo variable @$ (readble and writable), location
15964 of the lhs of the rule (by default ranging from the location of
15965 the first symbol of the rhs, to the location of the last symbol,
15966 or, if the rhs is empty, YYLLOC).
15967
15968 * src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
15969 yyval.
15970 (yyparse): When providing a default semantic action, provide a
15971 default location action.
15972 (after the $): No longer change `*YYLSP', just stack YYLOC the
15973 same way you stack YYVAL.
15974 * src/reader.c (read_declarations): Use warns.
15975 (copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
15976 (copy_action, case '@'): Likewise.
15977 Use a standard error message, to save useless work from
15978 translators.
15979
41aca2e0
AD
159802000-03-17 Akim Demaille <akim@epita.fr>
15981
aa5fd0ee
AD
15982 * src/bison.s1: Formatting and cosmetics changes.
15983 * src/reader.c: Likewise.
41aca2e0
AD
15984 Update the Copyright notice.
15985
dc08c1d5
AD
159862000-03-17 Akim Demaille <akim@epita.fr>
15987
aa5fd0ee
AD
15988 * src/bison.s1 (#line): All set to `#line' only, since the
15989 Makefile now handles them.
dc08c1d5 15990
9ee3c97b
AD
159912000-03-16 Akim Demaille <akim@epita.fr>
15992
15993 * src/output.c (output_rule_data): Output the documentation of
15994 some of the tables.
15995 (Copyright notice): Update.
15996 Formatting changes.
15997
0de741ca
AD
159982000-03-16 Akim Demaille <akim@epita.fr>
15999
16000 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
16001 remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
16002 One `#if YYDEBUG' remains, since it uses variables which are
16003 defined only if `YYDEBUG != 0'.
16004
bb10be54
AD
160052000-03-16 Akim Demaille <akim@epita.fr>
16006
16007 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
16008 and related variables so that the similarities are highlighted.
16009
b07b484a
AD
160102000-03-16 Akim Demaille <akim@epita.fr>
16011
16012 * src/bison.s1: Properly indent CPP directives.
16013
361f60b3
AD
160142000-03-16 Akim Demaille <akim@epita.fr>
16015
16016 * src/bison.s1: Properly indent the `alloca' CPP section.
16017
8c44d3ec
AD
160182000-03-16 Akim Demaille <akim@epita.fr>
16019
16020 Do not hard code values of directories in `configure.in'.
16021 Update the `configure' tool chain.
16022
16023 * configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
16024 src/makefile.am.
16025 (VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
16026 (AC_OUTPUT): Add m4/Makefile.
16027 Bump to bison 1.28a, 1.29 has never been released.
16028 * acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
16029 handled via src/Makefile.am.
16030 (VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
16031 HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
16032 autoheader.
16033 * Makefile.am (SUBDIRS): Add m4.
16034 (ACLOCAL_AM_FLAGS): New variable.
16035 (AUTOMAKE_OPTIONS): Add check-news.
16036 * src/Makefile.am (bison.simple): Use awk to replace #line lines with
16037 the proper line number and file name.
16038 (DEFS): Propagate the location of bison library files and of the
16039 locale files.
16040 (INCLUDES): Added `-I ..' so that one can compile with srcdir !=
16041 builddir.
16042 * acinclude.m4: Remove, replaced by the directory m4.
16043 * m4/Makefile.am (EXTRA_DIST): New variable.
16044 * m4/gettext.m4: New file, from the fileutils.
16045 * m4/lcmessage.m4: Likewise
16046 * m4/progtest.m4: Likewise.
16047 * m4/bison-decl.m4: New file, extracted from former acinclude.m4.
16048
f95997e7
AD
160492000-03-10 Akim Demaille <akim@epita.fr>
16050
16051 * src/closure.c:
16052 Formatting changes of various comments.
16053 Respect the GNU coding standards at various places.
16054 Don't use `_()' when no translation is needed.
16055
160561999-12-13 Jesse Thilo <jthilo@gnu.org>
16057
16058 * src/files.c:
16059 OS/2 honors TMPDIR environment variable.
16060
160611999-12-13 Jesse Thilo <jthilo@gnu.org>
16062
16063 * doc/bison.texinfo: Tweaked spelling and grammar.
16064 Updated ISBN.
16065 Removed reference to price of printed copy.
16066 Mention BISON_SIMPLE and BISON_HAIRY.
16067
160681999-12-13 Jesse Thilo <jthilo@gnu.org>
16069
16070 * configure.in, NEWS:
16071 Bison 1.29 released.
16072
160731999-10-27 Jesse Thilo <jthilo@gnu.org>
16074
16075 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
16076 Added reference card.
16077
160781999-07-26 Jesse Thilo <jthilo@gnu.org>
16079
16080 * po/ru.po: Added Russian translation.
16081
160821999-07-26 Jesse Thilo <jthilo@gnu.org>
16083
16084 * configure.in: Added Russian translation.
16085
160861999-07-06 Jesse Thilo <jthilo@gnu.org>
16087
16088 * configure.in, NEWS, README:
16089 Released version 1.28.
16090
160911999-06-14 Jesse Thilo <jthilo@gnu.org>
16092
16093 * src/system.h:
16094 Squashed redefinition warning on some systems.
16095
16096 * src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
16097 Have configure build version string instead of relying on ANSI string
16098 concatentation.
16099
161001999-06-14 Jesse Thilo <jthilo@gnu.org>
16101
16102 * po/POTFILES.in: Got rid of version.c.
16103
161041999-06-14 Jesse Thilo <jthilo@gnu.org>
16105
16106 * acconfig.h, configure.in:
16107 Have configure build version string instead of relying on ANSI string
16108 concatentation.
16109
161101999-06-08 Jesse Thilo <jthilo@gnu.org>
16111
16112 * doc/bison.1:
16113 Dropped mention of `+' for long-named options.
16114
161151999-05-30 Jesse Thilo <jthilo@gnu.org>
16116
16117 * src/files.c: Added <unistd.h> for unlink().
16118
16119 * src/Makefile.am, src/system.h:
16120 I18n fixes.
16121
161221999-05-30 Jesse Thilo <jthilo@gnu.org>
16123
16124 * README: Added a FAQ list.
16125
16126 * configure.in, acconfig.h:
16127 I18n fixes.
16128
161291999-05-30 Jesse Thilo <jthilo@gnu.org>
16130
16131 * doc/FAQ, doc/Makefile.am:
16132 Added a FAQ list.
16133
161341999-05-19 Jesse Thilo <jthilo@gnu.org>
16135
16136 * src/alloc.h, src/symtab.h, src/version.c:
16137 Protected inclusion of "config.h" with HAVE_CONFIG_H.
16138
161391999-04-18 Jesse Thilo <jthilo@gnu.org>
16140
16141 * src/.cvsignore, src/Makefile.am:
16142 Reorganized: sources in `src', documentation in `doc'.
16143
16144 * src/lex.c (literalchar):
16145 fixed the code for escaping double quotes (thanks
16146 Jonathan Czisny.)
16147
161481999-04-18 Jesse Thilo <jthilo@gnu.org>
16149
16150 * po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
16151 Adjusted paths to reflect directory reorganization.
16152
161531999-04-18 Jesse Thilo <jthilo@gnu.org>
16154
16155 * doc/.cvsignore, doc/Makefile.am:
16156 Reorganized: sources in `src', documentation in `doc'.
16157
161581999-04-18 Jesse Thilo <jthilo@gnu.org>
16159
16160 * configure.in:
16161 Updated AC_INIT file to reflect directory reorganization.
16162
16163 * configure.in, .cvsignore, Makefile.am, POTFILES.in:
16164 Reorganized: sources in `src', documentation in `doc'.
16165
161661999-04-13 Jesse Thilo <jthilo@gnu.org>
16167
16168 * src/allocate.c:
16169 Don't declare calloc() and realloc() if not necessary.
16170
161711999-04-13 Jesse Thilo <jthilo@gnu.org>
16172
16173 * configure.in, acconfig.h, acinclude.m4:
16174 Don't declare calloc() and realloc() if not necessary.
16175
161761999-03-23 Jesse Thilo <jthilo@gnu.org>
16177
16178 * po/.cvsignore: Added i18n support.
16179
161801999-03-23 Jesse Thilo <jthilo@gnu.org>
16181
16182 * acconfig.h, configure.in, Makefile.am:
16183 Added i18n support.
16184
161851999-03-22 Jesse Thilo <jthilo@gnu.org>
16186
16187 * src/bison.s1: Fixed #line numbers.
16188
161891999-03-15 Jesse Thilo <jthilo@gnu.org>
16190
16191 * po/es.po, po/fr.po, po/nl.po, po/de.po:
16192 Added PO files from Translation Project.
16193
161941999-03-03 Jesse Thilo <jthilo@gnu.org>
16195
16196 * Makefile.am:
16197 Added support for non-ANSI compilers (ansi2knr).
16198
161991999-02-16 Jesse Thilo <jthilo@gnu.org>
16200
16201 * configure.in: Bumped version number to 1.27.
16202
16203 * Makefile.am:
16204 Added `bison.simple' to list of files removed by `make distclean'.
16205
162061999-02-12 Jesse Thilo <jthilo@gnu.org>
16207
16208 * src/files.c, src/files.h:
16209 Defined locations of parser files in config.h instead of Makefile.
16210
162111999-02-12 Jesse Thilo <jthilo@gnu.org>
16212
16213 * acconfig.h, acinclude.m4, configure.in, Makefile.am:
16214 Defined locations of parser files in config.h instead of Makefile.
16215
162161999-02-09 Jesse Thilo <jthilo@gnu.org>
16217
16218 * Makefile.am:
16219 Removed inappropriate use of $< macro.
16220
162211999-02-05 Jesse Thilo <jthilo@gnu.org>
16222
16223 * po/Makefile.in.in, po/POTFILES.in:
16224 Add `po' directory skeleton.
16225
162261999-01-27 Jesse Thilo <jthilo@gnu.org>
16227
16228 * README: Document help-bison list.
16229
16230 * configure.in: Add check for mkstemp().
16231
162321999-01-20 Jesse Thilo <jthilo@gnu.org>
16233
16234 * src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
16235 Hush a few compiler warnings.
16236
16237 * src/files.c:
16238 Add tryclose(), which verifies that fclose was successful.
16239 Hush a couple of compiler warnings.
16240
162411999-01-20 Jesse Thilo <jthilo@gnu.org>
16242
16243 * Makefile.am, OChangeLog:
16244 ChangeLog is now automatically generated. Include the old version as
16245 OChangeLog.
16246
162471999-01-14 Jesse Thilo <jthilo@gnu.org>
16248
16249 * src/gram.h, src/lalr.c, src/lex.c, src/lex.h, src/machine.h, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/state.h, src/symtab.c, src/symtab.h, src/types.h, src/vmsgetargs.c, src/warshall.c, src/allocate.c, src/alloc.h, src/bison.s1, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/files.h, src/getargs.c, src/gram.c, src/LR0.c:
16250 Update FSF address.
16251
162521999-01-14 Jesse Thilo <jthilo@gnu.org>
16253
16254 * doc/bison.texinfo: Fix formatting glitch.
16255
16256 * doc/bison.texinfo: Update FSF address.
16257
162581999-01-14 Jesse Thilo <jthilo@gnu.org>
16259
16260 * acconfig.h: Update FSF address.
16261
162621999-01-08 Jesse Thilo <jthilo@gnu.org>
16263
16264 * src/system.h:
16265 Don't define PACKAGE here, since config.h defines it.
16266
162671998-12-30 Jesse Thilo <jthilo@gnu.org>
16268
16269 * src/reader.c: Update copyright date.
16270
16271 * src/main.c:
16272 Ditch sprintf to statically-sized buffers in fatal/warn functions in
16273 favor of output directly to stderr (avoids buffer overruns).
16274
16275 * src/reader.c: Some checks for premature EOF.
16276
16277 * src/allocate.c, src/alloc.h, src/closure.c, src/conflicts.c, src/derives.c, src/getargs.c, src/gram.c, src/lalr.c, src/lex.c, src/LR0.c, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reduce.c, src/symtab.c, src/symtab.h, src/warshall.c:
16278 Use prototypes if the compiler understands them.
16279
16280 * src/files.c: Honor TMPDIR on Unix hosts.
16281 Use prototypes if the compiler understands them.
16282
16283 * src/reader.c:
16284 Fix a couple of buffer overrun bugs.
16285 Use prototypes if the compiler understands them.
16286
16287 * src/system.h: Include unistd.h and ctype.h.
16288 Use #ifdef instead of #if for NLS symbols.
16289
162901998-12-30 Jesse Thilo <jthilo@gnu.org>
16291
16292 * doc/bison.texinfo:
16293 Delete comment "consider using @set for edition number, etc..." since
16294 we now are doing so.
16295
162961998-12-30 Jesse Thilo <jthilo@gnu.org>
16297
16298 * configure.in:
16299 Use prototypes if the compiler understands them.
16300
16301 * NEWS: Document 1.26 highlights.
16302
16303 * Makefile.am: Require Automake 1.3 or later.
16304
16305 * acconfig.h:
16306 Use prototypes if the compiler understands them.
16307
163081998-12-29 Jesse Thilo <jthilo@gnu.org>
16309
16310 * src/version.c:
16311 Use VERSION symbol from automake for version number.
16312
163131998-12-29 Jesse Thilo <jthilo@gnu.org>
16314
16315 * acconfig.h, configure.in, version.cin:
16316 Use VERSION symbol from automake for version number.
16317
163181998-11-28 Jesse Thilo <jthilo@gnu.org>
16319
16320 * Makefile.am:
16321 Distribute original version of simple parser (bison.s1), not built
16322 version (bison.simple).
16323
163241998-11-28 Jesse Thilo <jthilo@gnu.org>
16325
16326 * doc/bison.texinfo: Add info dir entry.
16327
16328 * doc/bison.texinfo:
16329 Let automake put version number into documentation.
16330
163311998-11-26 Jesse Thilo <jthilo@gnu.org>
16332
16333 * src/bison.cld, src/build.com, src/vmshlp.mar:
16334 Add non-RCS files from /gd/gnu/bison.
16335
163361998-11-26 Jesse Thilo <jthilo@gnu.org>
16337
16338 * doc/bison.1:
16339 Document the BISON_HAIRY and BISON_SIMPLE variables.
16340
163411998-11-25 Jesse Thilo <jthilo@gnu.org>
16342
16343 * src/version.c: Build version.c automatically.
16344
16345 * src/reader.c:
16346 Fix token numbering (used to start at 258, not 257).
16347
16348 * src/system.h: Include config.h.
16349
16350 * src/getargs.c: Update bug report address.
16351
16352 * src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
16353 Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
16354
163551998-11-25 Jesse Thilo <jthilo@gnu.org>
16356
16357 * Makefile.am:
16358 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
16359
16360 * configure.in, version.cin:
16361 Build version.c automatically.
16362
16363 * AUTHORS: Add AUTHORS file.
16364
16365 * README: Update bug report address.
16366
16367 * bison.simple:
16368 Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
16369
16370 * configure.in, Makefile.am, Makefile.in, stamp-h.in:
16371 Add automake stuff.
16372
163731998-11-25 Jesse Thilo <jthilo@gnu.org>
16374
16375 * doc/bison.texinfo: Clean up some formatting.
16376
163771998-05-05 Richard Stallman <rms@gnu.org>
16378
16379 * doc/bison.texinfo:
16380 Explain better why to make a pure parser.
16381
163821998-01-05 Richard Stallman <rms@gnu.org>
16383
16384 * src/files.c (openfiles):
16385 [_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
16386 find a temporary directory, if possible. Do not unlink files while
16387 they are open.
16388
163891997-08-25 Richard Stallman <rms@gnu.org>
16390
16391 * src/reader.c (stack_offset;):
16392 Change some warni to warns.
16393
16394 * src/lex.c (literalchar): Use warns, not warni.
16395
163961997-06-28 Richard Stallman <rms@gnu.org>
16397
16398 * src/bison.s1: Add a Bison version comment.
16399
16400 * src/main.c (fatal, warn, berror):
16401 Use program_name.
16402
164031997-06-28 Richard Stallman <rms@gnu.org>
16404
16405 * Makefile.in (bison_version): New variable.
16406 (dist): Use that variable.
16407 (bison.s1): Substitute the Bison version into bison.simple.
16408
16409 * bison.simple: Add a Bison version comment.
16410
164111997-06-18 Richard Stallman <rms@gnu.org>
16412
16413 * src/main.c (fatal, warn, berror):
16414 Make error messages standard.
16415 (toomany): Improve error message text.
16416
16417 * src/LR0.c, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/lalr.c, src/lex.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/symtab.c:
16418 new.h renamed to alloc.h.
16419
164201997-06-18 Richard Stallman <rms@gnu.org>
16421
16422 * Makefile.in: new.h renamed to alloc.h.
16423
164241997-05-24 Richard Stallman <rms@gnu.org>
16425
16426 * src/lex.c (literalchar):
16427 Fix the code for escaping \, " and '.
16428
16429 (lex): Avoid trouble when there are many chars
16430 to discard in a char literal with just several chars in it.
16431
164321997-05-17 Richard Stallman <rms@gnu.org>
16433
16434 * src/bison.s1:
16435 Use malloc, if using alloca is troublesome.
16436 (YYSTACK_USE_ALLOCA): New flag macro.
16437 Define it for some systems and compilers.
16438 (YYSTACK_ALLOC): New macro.
16439 (yyparse): Use YYSTACK_ALLOC to allocate stack.
16440 If it was malloc'd, free it.
16441
164421997-05-17 Richard Stallman <rms@gnu.org>
16443
16444 * bison.simple:
16445 Use malloc, if using alloca is troublesome.
16446 (YYSTACK_USE_ALLOCA): New flag macro.
16447 Define it for some systems and compilers.
16448 (YYSTACK_ALLOC): New macro.
16449 (yyparse): Use YYSTACK_ALLOC to allocate stack.
16450 If it was malloc'd, free it.
16451
164521997-04-23 Richard Stallman <rms@gnu.org>
16453
16454 * src/bison.s1:
16455 (alloca) [__hpux]: Always define as __builtin_alloca.
16456
164571997-04-23 Richard Stallman <rms@gnu.org>
16458
16459 * bison.simple:
16460 (alloca) [__hpux]: Always define as __builtin_alloca.
16461
164621997-04-22 Richard Stallman <rms@gnu.org>
16463
16464 * src/bison.s1:
16465 [__hpux]: Include alloca.h (right for HPUX 10)
16466 instead of declaring alloca (right for HPUX 9).
16467
16468 * src/bison.s1 (__yy_memcpy):
16469 Declare arg `count' as unsigned int.
16470 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
16471
164721997-04-22 Richard Stallman <rms@gnu.org>
16473
16474 * bison.simple:
16475 [__hpux]: Include alloca.h (right for HPUX 10)
16476 instead of declaring alloca (right for HPUX 9).
16477
16478 * bison.simple (__yy_memcpy):
16479 Declare arg `count' as unsigned int.
16480 (yyparse): Cast third arg to __yy_memcpy to unsigned int.
16481
164821997-01-03 Richard Stallman <rms@gnu.org>
16483
16484 * src/allocate.c: [__STDC__ or _MSC_VER]:
16485 Declare calloc and realloc to return void *.
16486
164871997-01-02 Richard Stallman <rms@gnu.org>
16488
16489 * src/system.h:
16490 [_MSC_VER]: Include stdlib.h and process.h.
16491 [_MSC_VER] (getpid): Define as macro--translate it to _getpid.
16492
16493 * src/main.c (main): Return FAILURE as a value.
16494 (printable_version): Declare arg as int, not char.
16495
164961997-01-02 Richard Stallman <rms@gnu.org>
16497
16498 * Makefile.in (dist):
16499 Explicitly check for symlinks, and copy them.
16500
165011996-12-19 Richard Stallman <rms@gnu.org>
16502
16503 * src/files.c:
16504 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
16505
165061996-12-18 Paul Eggert <eggert@gnu.org>
16507
16508 * src/bison.s1 (yyparse):
16509 If __GNUC__ and YYPARSE_PARAM are both defined,
16510 declare yyparse to have a void * argument.
16511
165121996-12-18 Paul Eggert <eggert@gnu.org>
16513
16514 * bison.simple (yyparse):
16515 If __GNUC__ and YYPARSE_PARAM are both defined,
16516 declare yyparse to have a void * argument.
16517
165181996-12-17 Richard Stallman <rms@gnu.org>
16519
16520 * src/reduce.c (nbits): Add some casts.
16521
165221996-08-12 Richard Stallman <rms@gnu.org>
16523
16524 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
16525
165261996-08-12 Richard Stallman <rms@gnu.org>
16527
16528 * bison.simple: Test _MSDOS as well as _MSDOS_.
16529
165301996-07-31 Richard Stallman <rms@gnu.org>
16531
16532 * src/bison.s1:
16533 [__sun && __i386]: Include alloca.h.
16534
165351996-07-31 Richard Stallman <rms@gnu.org>
16536
16537 * bison.simple:
16538 [__sun && __i386]: Include alloca.h.
16539
165401996-07-30 Richard Stallman <rms@gnu.org>
16541
16542 * src/bison.s1: Comment change.
16543
16544 * src/bison.s1: Test _MSDOS_, not MSDOS.
16545
165461996-07-30 Richard Stallman <rms@gnu.org>
16547
16548 * bison.simple: Comment change.
16549
16550 * bison.simple: Test _MSDOS_, not MSDOS.
16551
165521996-06-01 Richard Stallman <rms@gnu.org>
16553
16554 * src/reduce.c, src/reader.c, src/print.c, src/output.c, src/nullable.c, src/lex.c, src/lalr.c, src/getargs.c, src/derives.c, src/conflicts.c, src/closure.c, src/allocate.c:
16555 Insert `_' macro around many string constants.
16556
16557 * src/main.c:
16558 Insert `_' macro around many string constants.
16559
16560 (main): Call setlocale, bindtextdomain and textdomain.
16561
16562 * src/system.h: [HAVE_LOCALE_H]: Include locale.h.
16563 [! HAVE_LOCALE_H] (setlocale): Define as no-op.
16564 [ENABLE_NLS]: Include libintl.h.
16565 [ENABLE_NLS] (gettext): Define.
16566 [! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
16567 (N_, PACKAGE, LOCALEDIR): New macros.
16568
165691996-06-01 Richard Stallman <rms@gnu.org>
16570
16571 * POTFILES.in: New file.
16572
16573 * Makefile.in (allocate.o):
16574 Define target explicitly.
16575
16576 * Makefile.in (CFLAGS): Set to @CFLAGS@.
16577 (LDFLAGS): Set to @LDFLAGS@.
16578 (configure): Run autoconf only if preceding `cd' succeeds.
16579 (bison.s1): Redirect output to temporary file then move the
16580 temporary to the target, rather than redirecting directly to bison.s1.
16581 (clean): Remove config.status and config.log.
16582 (distclean): Don't remove config.status here.
16583
165841996-05-12 Richard Stallman <rms@gnu.org>
16585
16586 * src/bison.s1:
16587 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
16588
165891996-05-12 Richard Stallman <rms@gnu.org>
16590
16591 * bison.simple:
16592 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
16593
165941996-05-11 Richard Stallman <rms@gnu.org>
16595
16596 * src/bison.s1 (__yy_memcpy):
16597 Really reorder the args, as was supposedly done on Feb 14 1995.
16598 (yyparse): Calls changed accordingly.
16599
166001996-05-11 Richard Stallman <rms@gnu.org>
16601
16602 * Makefile.in (dist): Don't use $(srcdir).
16603
16604 * bison.simple (__yy_memcpy):
16605 Really reorder the args, as was supposedly done on Feb 14 1995.
16606 (yyparse): Calls changed accordingly.
16607
166081996-01-27 Richard Stallman <rms@gnu.org>
16609
16610 * src/output.c (output_rule_data):
16611 Test YYERROR_VERBOSE in the conditional
16612 around the definition of ttyname.
16613
166141995-12-29 Richard Stallman <rms@gnu.org>
16615
16616 * src/bison.s1:
16617 Fix line numbers in #line commands.
16618
166191995-12-29 Richard Stallman <rms@gnu.org>
16620
16621 * bison.simple:
16622 Fix line numbers in #line commands.
16623
166241995-12-27 Richard Stallman <rms@gnu.org>
16625
16626 * src/bison.s1 (YYPARSE_PARAM_DECL):
16627 In C++, make it always null.
16628 (YYPARSE_PARAM_ARG): New macro.
16629 (yyparse): Use YYPARSE_PARAM_ARG.
16630
166311995-12-27 Richard Stallman <rms@gnu.org>
16632
16633 * bison.simple (YYPARSE_PARAM_DECL):
16634 In C++, make it always null.
16635 (YYPARSE_PARAM_ARG): New macro.
16636 (yyparse): Use YYPARSE_PARAM_ARG.
16637
166381995-11-29 Richard Stallman <rms@gnu.org>
16639
16640 * doc/bison.texinfo:
16641 Describe literal string tokens, %raw, %no_lines, %token_table.
16642
166431995-11-29 Daniel Hagerty <hag@gnu.org>
16644
16645 * doc/bison.texinfo: Fixed update date
16646
166471995-10-16 Richard Stallman <rms@gnu.org>
16648
16649 * src/version.c: Version 1.25.
16650
166511995-10-16 Richard Stallman <rms@gnu.org>
16652
16653 * NEWS: *** empty log message ***
16654
166551995-10-16 Richard Stallman <rms@gnu.org>
16656
16657 * doc/bison.1, doc/bison.rnh:
16658 Add new options.
16659
166601995-10-15 Richard Stallman <rms@gnu.org>
16661
16662 * src/vmsgetargs.c, src/getargs.c:
16663 Added -n, -k, and -raw switches.
16664 (noparserflag, toknumflag, rawtoknumflag): New variables.
16665
16666 * src/symtab.h (SALIAS):
16667 New #define for adding aliases to %token.
16668 (struct bucket): Added `alias' field.
16669
16670 * src/reduce.c (reduce_grammar):
16671 Revise error message.
16672 (print_notices): Remove final `.' from error message.
16673
16674 * src/reader.c (reader_output_yylsp):
16675 New function.
16676 (readgram): Use `#if 0' around code that accepted %command
16677 inside grammar rules: The documentation doesn't allow it,
16678 and it will fail since the %command processors scan for the next %.
16679 (parse_token_decl): Extended the %token
16680 declaration to allow a multi-character symbol as an alias.
16681 (parse_thong_decl): New function.
16682 (read_declarations): Added %thong declarations.
16683 (read_declarations): Handle NOOP to deal with allowing
16684 % declarations as another means to specify the flags.
16685 (readgram): Allow %prec prior to semantics embedded in a rule.
16686 (skip_to_char, read_declarations, copy_definition)
16687 (parse_token_decl, parse_start_decl, parse_type_decl)
16688 (parse_assoc_decl, parse_union_decl, parse_expect_decl)
16689 (get_type_name, copy_guard, copy_action, readgram)
16690 (get_type, packsymbols): Revised most error messages.
16691 Changed `fatal' to `warnxxx' to avoid aborting for error.
16692 Revised and use multiple warnxxx functions to avoid using VARARGS1.
16693 (read_declarations): Improve the error message for
16694 an invalid character. Do not abort.
16695 (read_declarations, copy_guard, copy_action): Use
16696 printable_version to avoid unprintable characters in printed output.
16697 (parse_expect_decl): Error if argument to %expect exceeds 10 digits.
16698 (parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
16699 Allow the type of a non-terminal can be given
16700 more than once, as long as all specifications give the same type.
16701
16702 * src/output.c:
16703 (output_headers, output_trailers, output, output_gram)
16704 (output_rule_data): Implement noparserflag variable.
16705 Implement toknumflag variable.
16706 (output): Call reader_output_yylsp to output LTYPESTR.
16707
16708 * src/main.c (main):
16709 If reader sees an error, don't process the grammar.
16710 (fatals): Updated to not use VARARGS1.
16711 (printable_version, int_to_string, warn, warni, warns, warnss)
16712 (warnsss): New error reporting functions. Avoid abort for error.
16713
16714 * src/lex.h:
16715 Added THONG and NOOP for alias processing.
16716 Added SETOPT for the new code that allows setting options with %flags.
16717
16718 * src/lex.c:
16719 Include getopt.h. Add some extern decls.
16720 (safegetc): New function to deal with EOF gracefully.
16721 (literalchar); new function to deal with reading \ escapes.
16722 (lex): Use literalchar.
16723 (lex): Implemented "..." tokens.
16724 (literalchar, lex, parse_percent_token): Made tokenbuffer
16725 always contain the token. This includes growing the token
16726 buffer while reading an integer.
16727 (parse_percent_token): Replaced if-else statement with percent_table.
16728 (parse_percent_token): Added % declarations as another
16729 way to specify the flags -n, -l, and -r. Also added hooks for
16730 -d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
16731 major changes to files.c.
16732 (lex) Retain in the incoming stream a character following
16733 an incorrect '/'.
16734 (skip_white_space, lex): Revised most error messages
16735 and changed fatal to warn to avoid aborting.
16736 (percent_table): Added %thong declarations.
16737
16738 * src/gram.h: Comment changes.
16739
16740 * src/files.c (openfiles, open_extra_files, done):
16741 Add faction flag
16742 and actfile file. Handle noparserflag. Both for -n switch.
16743
16744 * src/conflicts.c (resolve_sr_conflict):
16745 Remove use of alloca.
16746
167471995-06-01 Jim Meyering <meyering@gnu.org>
16748
16749 * doc/bison.texinfo: *** empty log message ***
16750
167511995-05-06 Richard Stallman <rms@gnu.org>
16752
16753 * src/bison.s1: Comment change.
16754
167551995-05-06 Richard Stallman <rms@gnu.org>
16756
16757 * bison.simple: Comment change.
16758
167591995-05-03 Richard Stallman <rms@gnu.org>
16760
16761 * src/version.c: Version now 1.24.
16762
16763 * src/bison.s1: Change distribution terms.
16764
16765 * src/version.c: Version now 1.23.
16766
167671995-05-03 Richard Stallman <rms@gnu.org>
16768
16769 * doc/bison.texinfo:
16770 Rewrite "Conditions for Using Bison".
16771 Update version to 1.24.
16772
167731995-05-03 Richard Stallman <rms@gnu.org>
16774
16775 * bison.simple: Change distribution terms.
16776
167771995-02-23 Richard Stallman <rms@gnu.org>
16778
16779 * src/files.c: Test __VMS_POSIX as well as VMS.
16780
167811995-02-14 Jim Meyering <meyering@gnu.org>
16782
16783 * src/bison.s1 (__yy_memcpy):
16784 Renamed from __yy_bcopy to avoid
16785 confusion. Reverse FROM and TO arguments to be consistent with
16786 those of memcpy.
16787
167881995-02-14 Jim Meyering <meyering@gnu.org>
16789
16790 * bison.simple (__yy_memcpy):
16791 Renamed from __yy_bcopy to avoid
16792 confusion. Reverse FROM and TO arguments to be consistent with
16793 those of memcpy.
16794
167951994-11-10 David J. MacKenzie <djm@gnu.org>
16796
16797 * NEWS: reformat
16798
16799 * NEWS: New file.
16800
16801 * Makefile.in (DISTFILES): Include NEWS.
16802
16803 * Makefile.in (DISTFILES):
16804 Include install-sh, not install.sh.
16805
16806 * configure.in: Update to Autoconf v2 macro names.
16807
168081994-10-05 David J. MacKenzie <djm@gnu.org>
16809
16810 * Makefile.in: fix typo
16811
16812 * Makefile.in (prefix, exec_prefix):
16813 Let configure set them.
16814
168151994-09-28 David J. MacKenzie <djm@gnu.org>
16816
16817 * Makefile.in: Set datadir to $(prefix)/share.
16818
168191994-09-15 Richard Stallman <rms@gnu.org>
16820
16821 * src/bison.s1:
16822 Update copyright notice and GPL version.
16823
168241994-09-15 Richard Stallman <rms@gnu.org>
16825
16826 * bison.simple:
16827 Update copyright notice and GPL version.
16828
168291994-07-12 Richard Stallman <rms@gnu.org>
16830
16831 * src/reduce.c, src/reader.c:
16832 entered into RCS
16833
168341994-05-05 David J. MacKenzie <djm@gnu.org>
16835
16836 * Makefile.in: entered into RCS
16837
168381994-03-26 Richard Stallman <rms@gnu.org>
16839
16840 * src/bison.s1: entered into RCS
16841
168421994-03-26 Richard Stallman <rms@gnu.org>
16843
16844 * bison.simple: entered into RCS
16845
168461994-03-25 Richard Stallman <rms@gnu.org>
16847
16848 * src/main.c: entered into RCS
16849
168501994-03-24 Richard Stallman <rms@gnu.org>
16851
16852 * src/conflicts.c: entered into RCS
16853
168541994-01-02 Richard Stallman <rms@gnu.org>
16855
16856 * Makefile.in: *** empty log message ***
16857
168581993-11-21 Richard Stallman <rms@gnu.org>
16859
16860 * src/bison.s1: *** empty log message ***
16861
168621993-11-21 Richard Stallman <rms@gnu.org>
16863
16864 * doc/bison.texinfo: entered into RCS
16865
16866 * doc/bison.texinfo: *** empty log message ***
16867
168681993-11-21 Richard Stallman <rms@gnu.org>
16869
16870 * bison.simple: *** empty log message ***
16871
168721993-10-25 David J. MacKenzie <djm@gnu.org>
16873
16874 * doc/bison.texinfo: *** empty log message ***
16875
168761993-10-19 Richard Stallman <rms@gnu.org>
16877
16878 * src/bison.s1: *** empty log message ***
16879
168801993-10-19 Richard Stallman <rms@gnu.org>
16881
16882 * bison.simple: *** empty log message ***
16883
168841993-10-14 Richard Stallman <rms@gnu.org>
16885
16886 * src/bison.s1: *** empty log message ***
16887
168881993-10-14 Richard Stallman <rms@gnu.org>
16889
16890 * bison.simple: *** empty log message ***
16891
168921993-09-14 David J. MacKenzie <djm@gnu.org>
16893
16894 * doc/bison.texinfo: *** empty log message ***
16895
168961993-09-13 Noah Friedman <friedman@gnu.org>
16897
16898 * Makefile.in: *** empty log message ***
16899
169001993-09-10 Richard Stallman <rms@gnu.org>
16901
16902 * src/conflicts.c: *** empty log message ***
16903
16904 * src/system.h: entered into RCS
16905
169061993-09-10 Richard Stallman <rms@gnu.org>
16907
16908 * doc/bison.1: entered into RCS
16909
169101993-09-06 Noah Friedman <friedman@gnu.org>
16911
16912 * src/version.c: entered into RCS
16913
169141993-09-06 Noah Friedman <friedman@gnu.org>
16915
16916 * Makefile.in: *** empty log message ***
16917
169181993-07-30 David J. MacKenzie <djm@gnu.org>
16919
16920 * Makefile.in: *** empty log message ***
16921
169221993-07-24 Richard Stallman <rms@gnu.org>
16923
16924 * src/bison.s1: *** empty log message ***
16925
169261993-07-24 Richard Stallman <rms@gnu.org>
16927
16928 * bison.simple: *** empty log message ***
16929
169301993-07-08 David J. MacKenzie <djm@gnu.org>
16931
16932 * Makefile.in: *** empty log message ***
16933
169341993-07-04 Richard Stallman <rms@gnu.org>
16935
16936 * src/bison.s1: *** empty log message ***
16937
169381993-07-04 Richard Stallman <rms@gnu.org>
16939
16940 * bison.simple: *** empty log message ***
16941
169421993-06-26 David J. MacKenzie <djm@gnu.org>
16943
16944 * src/getargs.c: entered into RCS
16945
169461993-06-26 David J. MacKenzie <djm@gnu.org>
16947
16948 * doc/bison.texinfo: *** empty log message ***
16949
16950 * doc/bison.1: New file.
16951
169521993-06-25 Richard Stallman <rms@gnu.org>
16953
16954 * src/getargs.c: New file.
16955
169561993-06-16 Richard Stallman <rms@gnu.org>
16957
16958 * src/bison.s1: *** empty log message ***
16959
169601993-06-16 Richard Stallman <rms@gnu.org>
16961
16962 * bison.simple: *** empty log message ***
16963
169641993-06-03 Richard Stallman <rms@gnu.org>
16965
16966 * src/bison.s1: New file.
16967
169681993-06-03 Richard Stallman <rms@gnu.org>
16969
16970 * doc/bison.texinfo: *** empty log message ***
16971
169721993-06-03 Richard Stallman <rms@gnu.org>
16973
16974 * bison.simple: New file.
16975
169761993-05-19 Richard Stallman <rms@gnu.org>
16977
16978 * doc/bison.texinfo: New file.
16979
169801993-05-07 Noah Friedman <friedman@gnu.org>
16981
16982 * Makefile.in: *** empty log message ***
16983
169841993-04-28 Noah Friedman <friedman@gnu.org>
16985
16986 * src/reader.c: *** empty log message ***
16987
169881993-04-23 Noah Friedman <friedman@gnu.org>
16989
16990 * src/alloc.h: entered into RCS
16991
169921993-04-20 David J. MacKenzie <djm@gnu.org>
16993
16994 * src/version.c: *** empty log message ***
16995
16996 * src/files.c, src/allocate.c:
16997 entered into RCS
16998
16999 * src/reader.c: *** empty log message ***
17000
17001 * src/lex.c: entered into RCS
17002
17003 * src/conflicts.c: New file.
17004
17005 * src/symtab.c: entered into RCS
17006
17007 * src/alloc.h: New file.
17008
17009 * src/LR0.c: entered into RCS
17010
170111993-04-18 Noah Friedman <friedman@gnu.org>
17012
17013 * src/reader.c: New file.
17014
17015 * src/version.c: *** empty log message ***
17016
170171993-04-18 Noah Friedman <friedman@gnu.org>
17018
17019 * Makefile.in: *** empty log message ***
17020
170211993-04-17 Noah Friedman <friedman@gnu.org>
17022
17023 * Makefile.in: *** empty log message ***
17024
170251993-04-15 Richard Stallman <rms@gnu.org>
17026
17027 * src/main.c, src/files.c:
17028 New file.
17029
170301993-04-15 Noah Friedman <friedman@gnu.org>
17031
17032 * configure.in: entered into RCS
17033
17034 * configure.in: *** empty log message ***
17035
17036 * configure.in: New file.
17037
170381993-04-14 Richard Stallman <rms@gnu.org>
17039
17040 * Makefile.in: New file.
17041
170421993-04-13 Richard Stallman <rms@gnu.org>
17043
17044 * src/version.c: New file.
17045
170461993-03-25 Richard Stallman <rms@gnu.org>
17047
17048 * src/output.c: entered into RCS
17049
170501992-09-25 Richard Stallman <rms@gnu.org>
17051
17052 * configure.bat: entered into RCS
17053
170541992-06-22 Richard Stallman <rms@gnu.org>
17055
17056 * src/vmsgetargs.c: entered into RCS
17057
170581992-06-22 Richard Stallman <rms@gnu.org>
17059
17060 * doc/bison.rnh: entered into RCS
17061
170621992-04-20 David J. MacKenzie <djm@gnu.org>
17063
17064 * README: entered into RCS
17065
170661992-01-22 Richard Stallman <rms@gnu.org>
17067
17068 * src/machine.h: entered into RCS
17069
170701991-12-21 Richard Stallman <rms@gnu.org>
17071
17072 * src/lalr.c, src/closure.c:
17073 entered into RCS
17074
170751991-12-20 Richard Stallman <rms@gnu.org>
17076
17077 * src/state.h: entered into RCS
17078
170791991-12-18 Richard Stallman <rms@gnu.org>
17080
17081 * src/print.c, src/nullable.c, src/derives.c:
17082 entered into RCS
17083
170841991-11-03 David J. MacKenzie <djm@gnu.org>
17085
17086 * src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
17087 entered into RCS
17088
170891988-09-09 Richard Stallman <rms@gnu.org>
17090
17091 * src/bison.hairy: entered into RCS
17092
170931987-12-16 Richard Stallman <rms@gnu.org>
17094
17095 * REFERENCES: entered into RCS
dc546b0f 17096
f294a2c2 17097
04098407 17098 -----
f294a2c2 17099
04098407 17100 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
e2a21b6f
PE
17101 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
17102 Software Foundation, Inc.
f294a2c2 17103
04098407
PE
17104 Copying and distribution of this file, with or without
17105 modification, are permitted provided the copyright notice and this
17106 notice are preserved.
e9071366
AD
17107
17108$Id$