]> git.saurik.com Git - bison.git/blob - ChangeLog
Fix typo: "&" should be "&&". Problem reported
[bison.git] / ChangeLog
1 2006-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
8 2006-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
37 2006-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
64 2006-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
87 2006-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
99 2006-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
111 2006-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
133 2006-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
153 string literal): New test cases.
154 (Characters Escapes, Web2c Actions): Declare string literals as
155 aliases.
156 * tests/sets.at (Firsts): Likewise.
157
158 2006-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
171 2006-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
181 2006-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
185 2006-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
204 2006-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
216 2006-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
226 2006-08-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change)
227
228 * doc/bison.texinfo: Fix some typos.
229
230 2006-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
240 2006-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
284 2006-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
313 2006-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
338 2006-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
343 2006-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
351 2006-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
366 2006-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
376 2006-07-12 Akim Demaille <akim@epita.fr>
377
378 * data/c.m4: Comment changes.
379
380 2006-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
387 2006-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
430 2006-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
443 2006-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
451 2006-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
457 2006-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
465 2006-07-08 Paul Eggert <eggert@cs.ucla.edu>
466
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
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
507 2006-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
516 2006-07-08 Akim Demaille <akim@lrde.epita.fr>
517
518 * data/c.m4 (b4_basename): New.
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
526 2006-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
535 2006-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
547 2006-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
553 2006-06-26 Joel E. Denny <jdenny@ces.clemson.edu>
554
555 Don't miss %merge result type warnings just because the LHS types are
556 declared after the %merge. This continues the effort of the previous
557 patch.
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
573 2006-06-26 Joel E. Denny <jdenny@ces.clemson.edu>
574
575 Get action warnings (grammar_rule_check) right even when symbol
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 $$.
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
621 2006-06-26 Joel E. Denny <jdenny@ces.clemson.edu>
622
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.
631
632 2006-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
642 2006-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
667 2006-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
711 2006-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
730 2006-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
789 2006-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
795 2006-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
800 2006-06-19 Paul Eggert <eggert@cs.ucla.edu>
801
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
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
821 2006-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
839 2006-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
862 2006-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
872 2006-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
945 2006-06-08 Joel E. Denny <jdenny@ces.clemson.edu>
946
947 * src/flex-scanner.h (yytext): Remove stray `*/' in #define.
948
949 2006-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
954 2006-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
963 2006-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
975 2006-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
983 2006-06-07 Akim Demaille <akim@epita.fr>
984
985 * src/Makefile.am (BUILT_SOURCES): Fix the trailing backslash.
986
987 2006-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.
1049
1050 2006-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
1056 2006-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
1073 2006-06-05 Paul Eggert <eggert@cs.ucla.edu>
1074
1075 * NEWS: Version 2.3.
1076 * configure.ac (AC_INIT): Likewise.
1077
1078 2006-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
1087 2006-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
1093 2006-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
1098 2006-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
1102 2006-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
1108 2006-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
1117 2006-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
1126 2006-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
1141 2006-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
1155 2006-05-19 Paul Eggert <eggert@cs.ucla.edu>
1156
1157 * NEWS: Version 2.2.
1158 * configure.ac (AC_INIT): Likewise.
1159
1160 2006-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
1173 2006-05-14 Paul Eggert <eggert@cs.ucla.edu>
1174
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
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
1192 2006-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
1198 2006-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
1203 2006-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
1219 2006-05-14 Akim Demaille <akim@lrde.epita.fr>
1220
1221 * etc/bench.pm: Shorten bench names.
1222
1223 2006-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
1230 2006-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
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.
1237
1238 2006-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
1244 2006-05-11 Akim Demaille <akim@lrde.epita.fr>
1245
1246 * examples/extexi: Enforce the precedence of concatenation over
1247 >>.
1248 Reported by Tommy Nordgren.
1249
1250 2006-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".
1254 Reported by Martin Nylin.
1255
1256 2006-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
1267 2006-04-27 Akim Demaille <akim@lrde.epita.fr>
1268
1269 * data/glr.cc: Remove dead code.
1270
1271 2006-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
1277 2006-04-24 Akim Demaille <akim@lrde.epita.fr>
1278
1279 * doc/bison.texinfo (Multiple start-symbols): New.
1280
1281 2006-04-24 Akim Demaille <akim@lrde.epita.fr>
1282
1283 * etc/README, etc/bench.pl: New.
1284
1285 2006-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
1292 2006-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
1297 2006-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
1304 2006-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
1309 2006-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'.
1324
1325 2006-03-10 Akim Demaille <akim@lrde.epita.fr>
1326
1327 * TODO: Remove dead items.
1328
1329 2006-03-10 Akim Demaille <akim@lrde.epita.fr>
1330
1331 * doc/FAQ: Remove, merged into...
1332 * doc/bison.texinfo (FAQ): this.
1333 * doc/Makefile.am (EXTRA_DIST): Adjust.
1334
1335 2006-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
1342 2006-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
1352 2006-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
1362 2006-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
1368 2006-03-06 Paul Eggert <eggert@cs.ucla.edu>
1369
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
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
1382 2006-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
1394 2006-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
1403 2006-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
1417 2006-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
1422 cuts parse): Rename to...
1423 (Leaked semantic values if user action cuts parse): ... this. Add check
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).
1428 (yyresolveStates): Document the interface. Move all manipulation of a
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
1441 2006-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
1447 2006-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
1453 2006-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
1466 2006-02-13 Paul Eggert <eggert@cs.ucla.edu>
1467
1468 * NEWS: Clarify symbols versus types in unused-value warnings.
1469
1470 * configure.ac (AC_INIT): Bump version number.
1471
1472 2006-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
1478 2006-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
1483 2006-02-10 Paul Eggert <eggert@cs.ucla.edu>
1484
1485 * Makefile.maint: Merge from coreutils.
1486
1487 2006-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
1498 2006-02-08 Paul Eggert <eggert@cs.ucla.edu>
1499
1500 More portability fixes for problems summarized by Nelson H. F. Beebe.
1501
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
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
1511 2006-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
1521 2006-02-06 Juan Manuel Guerrero <juan.guerrero@gmx.de>
1522
1523 Various DJGGP specific issues in /djgpp
1524
1525 2006-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
1532 2006-02-01 Paul Eggert <eggert@cs.ucla.edu>
1533
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
1537 * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
1538 that '#include <string>' works.
1539
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
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
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
1554 Suite Version 2.0.
1555
1556 2006-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
1576 2006-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
1582 2006-01-29 Paul Eggert <eggert@cs.ucla.edu>
1583
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
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
1611 2006-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
1620 2006-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
1629 2006-01-22 Paul Eggert <eggert@cs.ucla.edu>
1630
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
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
1661 2006-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
1719 2006-01-20 Paul Eggert <eggert@cs.ucla.edu>
1720
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.
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.
1747 * src/scan-skel.l (QPUTS): Remove unnecessary parens.
1748 (BASE_QPUTS, "@output ".*\n): Remove unnecessary asserts.
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.
1755
1756 2006-01-19 Paul Eggert <eggert@cs.ucla.edu>
1757
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
1769 * bootstrap: Undo changes to gnulib files that autoreconf made.
1770
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
1793 2006-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
1798 2006-01-18 Paul Eggert <eggert@cs.ucla.edu>
1799
1800 * NEWS: Document the fact that multiple %unions are now allowed.
1801 * doc/bison.texinfo (Union Decl): Likewise.
1802 * TODO: This feature is now implemented, so remove it from
1803 the wishlist.
1804
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
1824 Avoid undefined behavior that addressed just before the start of an
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
1830 2006-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
1839 2006-01-11 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1840
1841 * data/glr.c (yysplitStack): A little stylistic rewrite.
1842
1843 2006-01-11 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
1844
1845 * data/glr.c (yyaddDeferredAction): Flesh out the comment.
1846
1847 2006-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
1873 2006-01-08 Joel E. Denny <jdenny@ces.clemson.edu>
1874
1875 * tests/glr-regression.at: Update copyright year to 2006.
1876
1877 2006-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
1908 2006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
1909
1910 * data/c.m4 (b4_yy_symbol_print_generate): In yy_symbol_print, accept
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
1915 2006-01-06 Joel E. Denny <jdenny@ces.clemson.edu>
1916
1917 * tests/glr-regression.at: For consistency with my newer test cases,
1918 don't thank myself.
1919
1920 2006-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
1939 2006-01-05 Akim Demaille <akim@epita.fr>
1940
1941 * src/reader.c, src/symlist.h, src/symlist.c: s/mid_rule/midrule/.
1942
1943 2006-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
1953 2006-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
1967 2006-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
1974 2006-01-03 Paul Eggert <eggert@cs.ucla.edu>
1975
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
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
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
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
2004 2006-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
2026 2006-01-02 Akim Demaille <akim@epita.fr>
2027
2028 * src/output.c (output_skeleton): Don't hard wire the inclusion of
2029 c.m4.
2030 * data/c++.m4, data/glr.c, data/yacc.c: Include c.m4.
2031 * data/glr.cc: Do not include stack.hh.
2032
2033 2006-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
2041 2005-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
2048 2005-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
2070 2005-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
2075 2005-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
2092 2005-12-22 Paul Eggert <eggert@cs.ucla.edu>
2093
2094 * NEWS: Improve wording for unused-value warnings.
2095
2096 2005-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
2104 2005-12-22 Akim Demaille <akim@epita.fr>
2105
2106 * NEWS: Warn about unused values.
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
2127 2005-12-21 Paul Eggert <eggert@cs.ucla.edu>
2128
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
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
2151 2005-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
2157 2005-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
2176 2005-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
2192 2005-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
2208 2005-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
2214 2005-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
2227 2005-12-09 Paul Eggert <eggert@cs.ucla.edu>
2228
2229 * tests/sets.at (Accept): Fix typos in regular expression used to
2230 sed out the final state number.
2231
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
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
2294 2005-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
2300 2005-12-06 "Joel E. Denny" <jdenny@ces.clemson.edu>
2301
2302 * data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for
2303 all stacks.
2304 (yyparse): Iterate another stack in order to call user destructors.
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
2310 2005-12-01 Paul Eggert <eggert@cs.ucla.edu>
2311
2312 * NEWS: Document the following change.
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
2326 2005-11-18 Paul Eggert <eggert@cs.ucla.edu>
2327
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
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
2343 2005-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
2350 2005-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
2365 2005-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
2371 2005-11-14 Akim Demaille <akim@epita.fr>
2372
2373 * data/glr.c (yy_reduce_print): Fix the $ number.
2374
2375 2005-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
2383 2005-11-14 Akim Demaille <akim@epita.fr>
2384
2385 * data/glr.c (yyexpandGLRStack): Declare only if defined.
2386
2387 2005-11-14 Akim Demaille <akim@epita.fr>
2388
2389 * data/glr.cc: New.
2390 * data/m4sugar/m4sugar.m4 (m4_prepend): New.
2391
2392 2005-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
2402 2005-11-12 Akim Demaille <akim@epita.fr>
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
2408 2005-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
2415 2005-11-11 Akim Demaille <akim@epita.fr>
2416
2417 * data/glr.c: Comment changes.
2418
2419 2005-11-11 Akim Demaille <akim@epita.fr>
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
2431 2005-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
2437 2005-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
2442 2005-11-09 Akim Demaille <akim@epita.fr>
2443
2444 * src/scan-skel.l: Use a couple of asserts.
2445
2446 2005-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
2461 2005-10-30 Paul Hilfinger <hilfingr@tully.CS.Berkeley.EDU>
2462
2463 * data/glr.c (yyfill): Adjust comment.
2464 (yyresolveAction): Initialize default location properly
2465 for empty right-hand sides.
2466 (yydoAction): Ditto.
2467 Add comment explaining apparently dead code.
2468 * tests/glr-regression.at
2469 (Incorrectly initialized location for empty right-hand side in GLR):
2470 New test.
2471
2472 2005-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
2479 2005-10-22 Akim <akim@epita.fr>
2480
2481 * Makefile.cfg: Adjust to config -> build-aux.
2482 Reported by twledo.
2483
2484 2005-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
2494 2005-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
2503 2005-10-14 Akim Demaille <akim@epita.fr>
2504
2505 * examples/calc++/test: Use set -x only when VERBOSE.
2506
2507 2005-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
2512 2005-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.
2516 * tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
2517 additional checks.
2518 Use this to exercise C++ outputs in subdirs.
2519 Reported by Oleg Smolsky.
2520
2521 2005-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
2529 2005-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
2535 2005-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.
2544 * data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
2545 as __STDC__.
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.
2549
2550 2005-10-10 Akim Demaille <akim@epita.fr>
2551
2552 * examples/calc++/test: Be quiet unless VERBOSE.
2553
2554 2005-10-05 Paul Eggert <eggert@cs.ucla.edu>
2555
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
2574 * data/m4sugar/m4sugar.m4 (_m4_map): New macro.
2575 (m4_map, m4_map_sep): Use it. Handle the empty list correctly.
2576
2577 2005-10-04 Paul Eggert <eggert@cs.ucla.edu>
2578
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
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
2606 2005-10-03 Juan Manuel Guerrero <juan.guerrero@gmx.de>
2607
2608 * Makefile.am: DJGPP specific files added to EXTRA_DIST.
2609
2610 2005-10-02 Paul Eggert <eggert@cs.ucla.edu>
2611
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.
2633 * src/parse-gram.y (%printer): Prefer putc and puts to printf.
2634 * src/reduce.c (reduce_print): Likewise.
2635 * src/state.c (state_rule_look_ahead_tokens_print): Likewise.
2636 * src/system.h: Include unlocked-io.h rather than stdio.h.
2637
2638 * data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
2639 this confuses xgettext.
2640
2641 2005-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
2654 2005-10-02 Akim Demaille <akim@epita.fr>
2655
2656 * data/location.cc: New.
2657
2658 2005-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
2681 2005-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
2710 2005-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
2721 2005-10-01 Akim Demaille <akim@epita.fr>
2722
2723 * examples/extexi: Restore the #line generation.
2724
2725 2005-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
2743 2005-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
2751 2005-09-29 Akim Demaille <akim@epita.fr>
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
2764 2005-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
2773 2005-09-21 Paul Eggert <eggert@cs.ucla.edu>
2774
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
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 &&
2787 defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
2788 * tests/torture.at (Exploding the Stack Size with Alloca): Adjust
2789 to match yacc.c, to test more hosts.
2790
2791 2005-09-20 Paul Eggert <eggert@cs.ucla.edu>
2792
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
2806 * HACKING (release): Forwarn the Translation Project about
2807 stable releses.
2808
2809 2005-09-20 Akim Demaille <akim@epita.fr>
2810
2811 * data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
2812
2813 2005-09-19 Paul Eggert <eggert@cs.ucla.edu>
2814
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
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
2835 2005-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
2844 2005-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
2849 2005-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
2854 2005-09-19 Akim Demaille <akim@epita.fr>
2855
2856 * NEWS, configure.ac: update version number to 2.1a.
2857
2858 2005-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
2876 2005-09-16 Akim Demaille <akim@epita.fr>
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
2883 2005-09-16 Akim Demaille <akim@epita.fr>
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
2894 2005-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
2905 2005-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
2910 2005-09-15 Paul Eggert <eggert@cs.ucla.edu>
2911
2912 * data/glr.c (yyresolveValue): Add default case to pacify
2913 gcc -Wswitch-default. Problem reported by twlevo@xs4all.nl.
2914
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
2924 2005-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
2930 2005-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
2941 2005-09-09 Paul Eggert <eggert@cs.ucla.edu>
2942
2943 * data/c.m4 (b4_identification): Define YYBISON_VERSION.
2944 Suggested by twlevo@xs4all.nl.
2945
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
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.
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.
2967
2968 2005-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
2979 2005-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
2990 2005-08-25 Paul Eggert <eggert@cs.ucla.edu>
2991
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
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
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
3004 2005-08-25 Akim Demaille <akim@epita.fr>
3005
3006 * tests/local.at (AT_COMPILE_CXX): Pass $LINKS too.
3007
3008 2005-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
3017 2005-08-21 Paul Eggert <eggert@cs.ucla.edu>
3018
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
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>.
3028 * data/lalr1.cc (yyerturn): Likewise.
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
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
3053 2005-07-24 Paul Eggert <eggert@cs.ucla.edu>
3054
3055 * NEWS: Version 2.0b.
3056
3057 * Makefile.am (SUBDIRS): Put examples before tests, so that
3058 "make check" doesn't finish with "All 1 tests passed".
3059
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
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
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
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
3170 2005-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
3209 2005-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
3230 2005-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
3267 2005-07-18 Paul Eggert <eggert@cs.ucla.edu>
3268
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
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
3304 * data/c.m4 (b4_yysymprint_generate): Use YYFPRINTF, not fprintf.
3305
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
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
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
3373 2005-07-17 Paul Eggert <eggert@cs.ucla.edu>
3374
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
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
3390 2005-07-14 Paul Eggert <eggert@cs.ucla.edu>
3391
3392 Fix problems reported by twlevo@xs4all.nl.
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):
3398 Add casts to pacify C++ compilers.
3399 * tests/glr-regression.at (Improper merging of GLR delayed action
3400 sets): Declare yylex before using it.
3401 * tests/Makefile.am (maintainer-check-g++): Fix a stray
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.
3409
3410 2005-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
3415 2005-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
3422 2005-07-12 Paul Eggert <eggert@cs.ucla.edu>
3423
3424 * NEWS: Document recent i18n improvements.
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.
3449 * src/getarg.c (PRINT_LOCALEDIR_OPTION): Let the C compiler determine
3450 its value.
3451 * src/main.c (main): Bind the bison-runtime domain, too.
3452
3453 2005-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
3485 2005-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
3492 2005-07-12 Akim Demaille <akim@epita.fr>
3493
3494 * src/parse-gram.y: Use %printer instead of YYPRINT.
3495
3496 2005-07-12 Akim Demaille <akim@epita.fr>
3497
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
3502 2005-07-12 Akim Demaille <akim@epita.fr>
3503
3504 * data/glr.c (b4_syncline): Fix (swap) the definitions of
3505 b4_at_dollar and b4_dollar_dollar.
3506
3507 2005-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
3512 2005-07-09 Paul Eggert <eggert@cs.ucla.edu>
3513
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
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
3523 2005-07-07 Paul Eggert <eggert@cs.ucla.edu>
3524
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
3545 * bootstrap (gnulib_modules): Add gettext, now that it's no longer
3546 implied by the other modules.
3547
3548 2005-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
3559 2005-07-05 Paul Eggert <eggert@cs.ucla.edu>
3560
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
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
3598 2005-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
3606 2005-06-24 Akim Demaille <akim@epita.fr>
3607
3608 * doc/bison.texinfo (C++ Parser Interface): Use defcv to define
3609 class typedefs.
3610
3611 2005-06-22 Akim Demaille <akim@epita.fr>
3612
3613 * doc/bison.texinfo (C++ Language Interface): First stab.
3614 (C++ Parsers): Remove.
3615
3616 2005-06-22 Akim Demaille <akim@epita.fr>
3617
3618 * data/lalr1.cc (yylex_): Honor %lex-param.
3619
3620 2005-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
3629 2005-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
3635 2005-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
3640 2005-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
3645 2005-05-30 Akim Demaille <akim@epita.fr>
3646
3647 * data/lalr1.cc (_): New.
3648 Translate the various messages.
3649
3650 2005-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
3661 2005-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
3671 2005-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
3676 2005-05-23 Paul Eggert <eggert@cs.ucla.edu>
3677
3678 * README: Mention m4 1.4.3. Remove obsolete advice about
3679 Sun Forte Developer 6 update 2, VMS, and MS-DOS.
3680
3681 * bootstrap: Remove workaround for problem I encountered with
3682 gettext 0.14.1; it seems to be fixed now.
3683
3684 2005-05-22 Paul Eggert <eggert@cs.ucla.edu>
3685
3686 * NEWS: Version 2.0a.
3687
3688 * src/files.c: Include "stdio-safer.h"; this fixes a typo in
3689 the previous change.
3690
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
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
3725 * data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
3726 yesterday's yacc.c fix.
3727
3728 2005-05-21 Paul Eggert <eggert@cs.ucla.edu>
3729
3730 * data/glr.c, data/lalr1.cc: Update copyright date.
3731
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
3742 2005-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.
3759
3760 2005-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
3798 2005-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
3803 2005-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
3814 2005-04-24 Paul Eggert <eggert@cs.ucla.edu>
3815
3816 * data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
3817
3818 2005-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.
3826 * tests/input.at (Torturing the Scanner): Likewise.
3827 * tests/regression.at (Token definitions, Web2c Actions): Likewise.
3828
3829 2005-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
3835 2005-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
3857 2005-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
3867 2005-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
3875 2005-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
3882 2005-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
3889 2005-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
3894 2005-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
3900 2005-03-17 Paul Eggert <eggert@cs.ucla.edu>
3901
3902 Respond to problems reported by twlevo@xs4all.nl.
3903
3904 * bootstrap: Use "trap - 0" rather than the unportable "trap 0".
3905
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.
3911
3912 2005-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
3918 2005-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
3938 2005-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
3944 2005-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
3949 2005-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
3955 2005-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
3964 2005-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
3969 2005-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
3974 2005-01-24 Paul Eggert <eggert@cs.ucla.edu>
3975
3976 * configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
3977 Problem reported by twlevo@xs4all.nl.
3978
3979 * doc/bison.texinfo: Change @dircategory from "GNU programming
3980 tools" to "Software development". Requested by Richard Stallman
3981 via Karl Berry.
3982
3983 2005-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
3988 2005-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
3995 2005-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
4002 2005-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
4007 2005-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
4013 2005-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
4020 2005-01-05 Paul Eggert <eggert@cs.ucla.edu>
4021
4022 * TODO: Mention that we should allow NUL bytes in tokens.
4023
4024 2005-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
4029 2005-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
4040 2004-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
4045 2004-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.
4049 * configure.ac (AC_INIT): Bump version to 2.0.
4050 * src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
4051
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
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
4064 2004-12-22 Paul Eggert <eggert@cs.ucla.edu>
4065
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
4081 * doc/bison.texinfo (Location Default Action): Mention that n must
4082 be zero when k is zero. Suggested by Frank Heckenbach.
4083
4084 2004-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
4101 2004-12-21 Akim Demaille <akim@epita.fr>
4102
4103 * data/lalr1.cc (parser::parse): Return a bool instead of an int.
4104
4105 2004-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.
4114 Forward declare them before the user code.
4115 * tests/Makefile.am (check-local, installcheck-local): Pass
4116 TESTSUITEFLAGS to the TESTSUITE.
4117
4118 2004-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
4132 2004-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
4137 2004-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
4172 2004-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
4184 2004-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
4194 2004-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
4200 2004-12-16 Akim Demaille <akim@epita.fr>
4201
4202 * src/print_graph.c (print_graph): Remove layoutalgorithm uses for
4203 real.
4204
4205 2004-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
4214 2004-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
4236 2004-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
4250 2004-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
4259 2004-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
4267 2004-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
4285 2004-12-15 Akim Demaille <akim@epita.fr>
4286
4287 Remove b4_root related material: failure experiment
4288 (which goal was to allow to derive from a class).
4289
4290 * data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
4291 definitions and uses.
4292
4293 2004-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
4303 2004-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
4320 2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
4321
4322 * HACKING: Update email addresses to send announcements to.
4323
4324 * configure.ac (AC_INIT): Bump version to 1.875f.
4325
4326 2004-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
4347 specifying whether the test should be skipped. Use it tp
4348 specify that the [%defines %skeleton "lalr1.cc"] tests currently
4349 fail on some hosts, and should be skipped.
4350
4351 2004-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
4416 2004-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
4427 2004-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
4434 2004-11-23 Paul Eggert <eggert@cs.ucla.edu>
4435
4436 * bootstrap (gnulib_modules): Add extensions.
4437 Problem reported by Jim Meyering.
4438
4439 2004-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.
4445 Problem reported by Jim Meyering.
4446
4447 2004-11-17 Akim Demaille <akim@epita.fr>
4448
4449 * data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
4450
4451 2004-11-17 Akim Demaille <akim@epita.fr>,
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
4464 2004-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
4471 2004-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
4476 2004-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
4493 2004-10-22 Akim Demaille <akim@epita.fr>
4494 and Paul Eggert <eggert@cs.ucla.edu>
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
4508 2004-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
4514 2004-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
4532 2004-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
4540 2004-10-06 Akim Demaille <akim@epita.fr>
4541
4542 * src/parse-gram.y (add_param): Fix the truncation of trailing
4543 spaces.
4544
4545 2004-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
4562 2004-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
4567 2004-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
4574 2004-09-27 Paul Eggert <eggert@cs.ucla.edu>
4575
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.
4578
4579 2004-09-27 Akim Demaille <akim@epita.fr>
4580
4581 * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
4582
4583 2004-09-27 Akim Demaille <akim@epita.fr>
4584
4585 * data/lalr1.cc (b4_parse_param_decl_1): New.
4586 (b4_parse_param_decl): Use it to have different names between attribute
4587 and argument names.
4588 (b4_cc_constructor_call): Likewise.
4589
4590 2004-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
4596 2004-09-24 Akim Demaille <akim@epita.fr>
4597
4598 * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
4599 after the location.
4600
4601 2004-09-24 Akim Demaille <akim@epita.fr>
4602
4603 * doc/bison.texinfo (Table of Symbols): Sort.
4604
4605 2004-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
4611 2004-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
4630 2004-09-20 Akim Demaille <akim@epita.fr>
4631
4632 * doc/bison.texinfo (Initial Action Decl): New.
4633
4634 2004-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
4645 2004-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
4670 2004-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
4680 2004-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
4695 2004-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
4721 2004-09-06 Akim Demaille <akim@epita.fr>
4722
4723 * data/lalr1.cc: Adjust the indentation of the labels.
4724 (Parser::pop): New.
4725 Use it.
4726
4727 2004-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
4738 2004-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
4747 2004-09-02 Akim Demaille <akim@epita.fr>
4748
4749 * data/lalr1.cc (translate_, destruct_): No reason to be static.
4750
4751 2004-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
4762 2004-09-02 Akim Demaille <akim@epita.fr>
4763
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.
4768 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
4769 %printer calls to use cdebug_ when using lalr1.cc.
4770
4771 2004-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
4776 2004-08-26 Akim Demaille <akim@epita.fr>
4777
4778 * doc/bison.texinfo (Implementing Loops): Rename as...
4779 (Implementing Gotos/Loops): this.
4780
4781 2004-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
4792 2004-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
4797 2004-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
4804 2004-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>.
4809
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
4823 2004-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".
4829
4830 2004-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
4837 2004-06-21 Frank Heckenbach <frank@g-n-u.de>
4838
4839 * doc/bison.texinfo (Simple GLR Parsers): New section.
4840
4841 2004-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
4866 2004-06-03 Paul Eggert <eggert@cs.ucla.edu>
4867
4868 * README: Update location of patched M4 distribution.
4869
4870 2004-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
4877 2004-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
4890 2004-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
4895 2004-05-27 Paul Eggert <eggert@cs.ucla.edu>
4896
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.
4909
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
4912 <http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
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
4917 2004-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
4927 2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
4928
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
4932 * bootstrap: Don't assume $(...) works; use `...` instead.
4933 Problem reported by Paul Hilfinger. Also, diagnose non-GNU
4934 gettext better.
4935
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
4940 2004-05-24 Paul Eggert <eggert@cs.ucla.edu>
4941
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.
4950
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
4958 2004-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:
4963 http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
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
4970 2004-05-21 Paul Eggert <eggert@cs.ucla.edu>
4971
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
4977 * configure.ac (AC_INIT): Update to 1.875e.
4978
4979 2004-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
4992 2004-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.
4999
5000 2004-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.
5012
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.
5018 Don't DEFUN AM_INTL_SUBDIR twice.
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.
5032
5033 2004-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.
5047 (AC_GNU_SOURCE, AC_AIX, AC_MINIX):
5048 Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
5049 does this for us.
5050 (AC_ISC_POSIX): Remove; we no longer support this
5051 ancient OS, as it gets in the way of latest Autoconf & gnulib.
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
5135 2004-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
5179 2004-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
5184 2004-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
5225 2004-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.
5230
5231 * src/scan-gram.l: Recognize %expect-rr.
5232
5233 * src/conflicts.h (expected_sr_conflicts): Rename from
5234 expected_conflicts.
5235 (expected_rr_conflicts): Declare.
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.
5244
5245 * doc/bison.texinfo: Add documentation for %expect-rr.
5246
5247 2004-03-08 Paul Eggert <eggert@gnu.org>
5248
5249 Add support for hex token numbers. Suggested by Odd Arild Olsen in
5250 <http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
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
5262 2004-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
5267 <http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
5268
5269 2004-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
5287 2004-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
5298 2004-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
5304 2004-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
5309 2003-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.
5323
5324 2003-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
5330 2003-11-18 Alexandre Duret-Lutz <adl@gnu.org>
5331
5332 * doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
5333
5334 2003-10-07 Paul Eggert <eggert@twinsun.com>
5335
5336 * tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
5337 if testsuite doesn't exist.
5338
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
5344 2003-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
5351 2003-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
5359 2003-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
5367 2003-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
5374 2003-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.
5387
5388 2003-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
5393 2003-08-27 Akim Demaille <akim@epita.fr>
5394
5395 * data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
5396 GCC warnings.
5397
5398 2003-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
5403 2003-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
5410 2003-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
5417 2003-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
5436 2003-08-25 Akim Demaille <akim@epita.fr>
5437
5438 * doc/bison.texinfo: Don't promote stdout for error messages.
5439
5440 2003-08-25 Akim Demaille <akim@epita.fr>
5441
5442 * data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
5443 From Alexandre Duret-Lutz.
5444
5445 2003-08-25 Akim Demaille <akim@epita.fr>
5446
5447 Version 1.875c.
5448
5449 2003-08-25 Akim Demaille <akim@epita.fr>
5450
5451 * data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
5452 Use them.
5453
5454 2003-08-25 Akim Demaille <akim@epita.fr>
5455
5456 * data/lalr1.cc (Parser::reduce_print_): New.
5457 Use it.
5458
5459 2003-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
5463 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
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
5480 2003-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
5493 2003-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
5500 2003-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.
5507
5508 2003-07-25 Paul Eggert <eggert@twinsun.com>
5509
5510 * data/glr.c (yyglrReduce): Don't use C89 string concatenation,
5511 for portability to K&R C (after ansi2knr, presumably). See
5512 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
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
5517 Let the user specify how to allocate and free memory.
5518 Derived from a suggestion by Frank Heckenbach in
5519 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
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
5525 2003-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
5529 <http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
5530 (trivial change)
5531
5532 2003-06-25 Akim Demaille <akim@epita.fr>
5533
5534 * config/depcomp, config/install-sh: Update from masters.
5535
5536 2003-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
5546 2003-06-19 Paul Eggert <eggert@twinsun.com>
5547
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
5552 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
5553
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
5562 2003-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
5567 2003-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:
5597 <http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
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
5611 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
5612 lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
5613 * po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
5614
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
5639 2003-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
5647 (I can't quite reconstruct why these were not allowed before).
5648
5649 Fixes to avoid problem that $-N rules in GLR parsers can cause
5650 buffer overruns, corrupting state.
5651
5652 * src/output.c (prepare_rules): Output max_left_semantic_context
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.
5670
5671 * tests/cxx-type.at: Exercise location information; update tests
5672 to differentiate output with and without locations.
5673 Remove forward declarations of yylex and yyerror---caused errors
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.
5681
5682 2003-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
5699 2003-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
5705 2003-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
5717 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
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:
5738 <http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
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
5758 2003-05-24 Paul Eggert <eggert@twinsun.com>
5759
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.
5767
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
5831 2003-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
5842 2003-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
5858 2003-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
5866 2003-05-05 Paul Eggert <eggert@twinsun.com>
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
5871 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
5872
5873 2003-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
5878 <http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
5879
5880 2003-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
5892 2003-04-29 Akim Demaille <akim@epita.fr>
5893
5894 * doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
5895
5896 2003-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
5902 2003-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
5907 2003-04-27 Paul Eggert <eggert@twinsun.com>
5908
5909 Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
5910 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
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
5915 2003-04-26 Paul Eggert <eggert@twinsun.com>
5916
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
5922 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
5923
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
5928 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
5929
5930 2003-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
5935 2003-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
5941 2003-04-17 Paul Eggert <eggert@twinsun.com>
5942
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
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
5955 <http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
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
5964 2003-03-31 Akim Demaille <akim@epita.fr>
5965
5966 * doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
5967
5968 2003-03-31 Akim Demaille <akim@epita.fr>
5969
5970 * src/output.c (prepare_symbols): Avoid trailing spaces in the
5971 output.
5972
5973 2003-03-31 Akim Demaille <akim@epita.fr>
5974
5975 * doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
5976 From Paul Hilfinger.
5977
5978 2003-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
5983 2003-03-29 Akim Demaille <akim@epita.fr>
5984
5985 * doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
5986
5987 2003-03-29 Akim Demaille <akim@epita.fr>
5988
5989 * doc/bison.texinfo (Strings are Destroyed): New.
5990
5991 2003-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
5998 2003-03-12 Paul Eggert <eggert@twinsun.com>
5999
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
6004 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
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
6012 <http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
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
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}
6028
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
6063 2003-03-03 Akim Demaille <akim@epita.fr>
6064
6065 * ro.po: New.
6066
6067 2003-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
6072 2003-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
6079 2003-03-02 Akim Demaille <akim@epita.fr>
6080
6081 * tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
6082 message.
6083
6084 2003-03-02 Akim Demaille <akim@epita.fr>
6085
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
6090 2003-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
6104 2003-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
6115 2003-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
6122 2003-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
6126 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
6127
6128 2003-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
6136 2003-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
6141 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
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
6147 2003-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
6153 2003-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
6159 2003-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
6167 2003-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.
6173 With the help of Benoit Perrot.
6174
6175 2003-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
6186 2003-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
6191 2003-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
6198 2003-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
6206 2003-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
6211 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
6212
6213 2003-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
6217 <http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
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
6225 2003-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)
6256 (AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
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
6262 2003-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
6267 2003-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
6272 2003-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
6325 2003-02-02 Akim Demaille <akim@epita.fr>
6326
6327 * src/scan-skel.l: Scan more than one inert character per yylex
6328 invocation.
6329
6330 2003-02-01 Paul Eggert <eggert@twinsun.com>
6331
6332 Version 1.875a.
6333
6334 * po/LINGUAS: Add ms.
6335
6336 2003-01-30 Akim Demaille <akim@epita.fr>
6337
6338 * doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
6339
6340 2003-01-29 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
6341
6342 * tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
6343 of $1.
6344
6345 Changes in response to error report by S. Eken: GLR mode does not
6346 handle negative $ indices or $ indices in embedded rules correctly.
6347 See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
6348
6349 * data/glr.c (b4_rhs_value): Change to use YYFILL macro.
6350 (b4_rhs_location): Ditto.
6351 (yyfill): New function to copy from stack tree into array
6352 incrementally.
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
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.
6362 (yyresolveStates): Use X == NULL for pointers, not !X.
6363 (yyglrReduce): Ditto.
6364 (yydoAction): Ditto
6365
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
6373 2003-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
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>.
6380
6381 2003-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
6393 2003-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
6397 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
6398
6399 2003-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
6410 2003-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
6415 <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
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
6425 2003-01-09 Akim Demaille <akim@epita.fr>
6426
6427 * src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
6428
6429 2003-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
6436 2003-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
6441 2003-01-04 Paul Eggert <eggert@twinsun.com>
6442
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
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
6454 2003-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.
6464
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.
6470
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.
6477
6478 * src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
6479
6480 2003-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
6486 2003-01-01 Paul Eggert <eggert@twinsun.com>
6487
6488 * Version 1.875.
6489
6490 2002-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
6497 * src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
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
6505 2002-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.
6510
6511 2002-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
6539 2002-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
6543 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
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.
6561
6562 2002-12-26 Paul Eggert <eggert@twinsun.com>
6563
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
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 ".".
6577
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.
6586
6587 2002-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
6591 <http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
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
6605 2002-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
6615 2002-12-24 Paul Eggert <eggert@twinsun.com>
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",
6666 <INITIAL>"%parse-param", <INITIAL>"%printer",
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
6680 2002-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
6686 2002-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
6691 disagreed with the Bison documentation. Bug
6692 reported by Andrew Walrond.
6693
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
6701 2002-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.
6709 * doc/bison.texinfo (Invocation, Bison Options): Mention yacc
6710 as an alias for bison y.
6711
6712 * po/LINGUAS: Add da.
6713
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
6726 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
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
6732 2002-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
6844 2002-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
7000 2002-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
7007 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
7008
7009 2002-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.
7014
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.
7035 (rules): Use it.
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
7090 2002-12-06 Paul Eggert <eggert@twinsun.com>
7091
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.
7099
7100 2002-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
7105 <http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
7106
7107 2002-11-30 Paul Eggert <eggert@twinsun.com>
7108
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
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
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
7130 2002-11-29 Paul Eggert <eggert@twinsun.com>
7131
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
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
7151 2002-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
7157 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
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
7178 2002-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
7195 2002-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.
7200
7201 2002-11-20 Paul Eggert <eggert@twinsun.com>
7202
7203 * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
7204
7205 2002-11-20 Paul Eggert <eggert@twinsun.com>
7206
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
7250 2002-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
7255 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
7256
7257 2002-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
7263 2002-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
7282 2002-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
7295 2002-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
7310 2002-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
7320 2002-11-16 Paul Eggert <eggert@twinsun.com>
7321
7322 * data/yacc.c: Avoid over-quoting of __line__ and __file__.
7323
7324 2002-11-15 Paul Eggert <eggert@twinsun.com>
7325
7326 * tests/actions.at (Actions after errors): New test case.
7327
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
7336 2002-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
7346 2002-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
7351 2002-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
7362 2002-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
7367 2002-11-14 Paul Eggert <eggert@twinsun.com>
7368
7369 * src/output.c (output_skeleton): Call xfopen instead of
7370 duplicating xfopen's body.
7371
7372 Fix bugs reported by Nelson H. F. Beebe in
7373 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
7374
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
7384 test backslash-newline in C character constant.
7385
7386 2002-11-14 Akim Demaille <akim@epita.fr>
7387
7388 * tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
7389 status of the compiler.
7390 Calling `exit 1' is no longer needed.
7391 Reported by Nelson H. F. Beebe.
7392
7393 2002-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
7406 2002-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
7413 2002-11-13 Paul Eggert <eggert@twinsun.com>
7414
7415 Fix some bugs reported by Albert Chin-A-Young in
7416 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
7417
7418 * tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
7419 -o c"; the HP C compiler chatters during compilation.
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
7424 solitary backslashes, as they tickle a bug in the HP C compiler.
7425
7426 * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
7427 comments, since they're not portable. Use GNU coding style.
7428
7429 2002-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
7437 2002-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
7444 by Nelson H. F. Beebe in
7445 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
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'.
7454 This fixes one of the bugs reported by Nelson H. F. Beebe in
7455 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
7456
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:
7460 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
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
7472 2002-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
7478 2002-11-12 Akim Demaille <akim@epita.fr>
7479
7480 * Makefile.maint: Sync with Autoconf:
7481 (local_updates): New.
7482
7483 2002-11-12 Akim Demaille <akim@epita.fr>
7484
7485 * po/POTFILES.in (src/lalr.c, src/state.c): Remove
7486
7487 2002-11-12 Akim Demaille <akim@epita.fr>
7488
7489 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
7490 locations.
7491
7492 2002-11-12 Akim Demaille <akim@epita.fr>
7493
7494 * data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
7495 not yyvalue.
7496
7497 2002-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
7502 2002-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
7521 2002-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
7533 2002-11-12 Akim Demaille <akim@epita.fr>
7534
7535 * doc/bison.texinfo (Destructor Decl): New.
7536
7537 2002-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.
7545 * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
7546 the file name.
7547
7548 2002-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
7560 2002-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
7568 2002-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
7603 2002-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
7616 2002-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:
7621 <http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
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
7686 2002-11-09 Paul Eggert <eggert@twinsun.com>
7687
7688 Fix the test failure due to GCC warnings described in
7689 <http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
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
7710 2002-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
7734 2002-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
7747 2002-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
7757 2002-11-06 Akim Demaille <akim@epita.fr>
7758
7759 * tests/regression.at (Invalid inputs): Adjust to the recent
7760 messages.
7761
7762 2002-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'.
7772 * src/muscle_tab.c (muscle_init): Don't define b4_linef.
7773
7774 2002-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
7784 2002-11-05 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
7785
7786 * src/tables.c (matching_state): Don't allow states to match if
7787 either has GLR conflict entries.
7788
7789 2002-11-05 Paul Eggert <eggert@twinsun.com>
7790
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
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
7807 2002-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
7812 2002-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
7817 2002-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
7826 2002-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
7836 2002-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
7843 2002-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
7878 2002-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
7885 2002-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.
7889
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).
7911
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.
7916
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
7945 2002-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
7960 2002-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
7975 2002-10-30 Akim Demaille <akim@epita.fr>
7976
7977 * src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
7978 #if.
7979
7980 2002-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.
7985
7986 2002-10-24 Paul Eggert <eggert@twinsun.com>
7987
7988 Version 1.75a.
7989
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
7996 2002-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
8003 2002-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
8012 2002-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
8020 2002-10-22 Akim Demaille <akim@epita.fr>
8021
8022 * src/system.h: Include sys/types.
8023 Reported by Bert Deknuydt.
8024
8025 2002-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
8030 2002-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:
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
8043
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
8048 2002-10-22 Akim Demaille <akim@epita.fr>
8049
8050 * data/README: New.
8051
8052 2002-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.
8070
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
8090 2002-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.
8104
8105 2002-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
8115 2002-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
8129 2002-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
8144 2002-10-20 Akim Demaille <akim@epita.fr>
8145
8146 * src/tables.h, src/tables.c, src/output.c: Comment changes.
8147
8148 2002-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
8153 2002-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
8164 2002-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.
8186
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
8199 2002-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
8207 2002-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
8231 2002-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
8240 2002-10-18 Paul Eggert <eggert@twinsun.com>
8241
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
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
8250 2002-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
8262 2002-10-16 Paul Eggert <eggert@twinsun.com>
8263
8264 * src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
8265 MUSCLE_TAB_H.
8266
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
8275 2002-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.
8286
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.
8350
8351 2002-10-14 Akim Demaille <akim@epita.fr>
8352
8353 Version 1.75.
8354
8355 2002-10-14 Akim Demaille <akim@epita.fr>
8356
8357 * tests/Makefile.am (maintainer-check-posix): New.
8358
8359 2002-10-14 Akim Demaille <akim@epita.fr>
8360
8361 * data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
8362 member.
8363
8364 2002-10-14 Akim Demaille <akim@epita.fr>
8365
8366 * src/tables.c (table_ninf_remap): base -> tab.
8367 Reported by Matt Rosing.
8368
8369 2002-10-14 Paul Eggert <eggert@twinsun.com>
8370
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.
8377
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
8385 2002-10-13 Paul Eggert <eggert@twinsun.com>
8386
8387 * data/yacc.c (yyparse): Rewrite to avoid "comparison is always
8388 true due to limited range of data type" warning from GCC.
8389
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
8394 2002-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
8399 2002-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
8404 2002-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
8410 2002-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
8427 2002-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
8438 2002-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
8443 2002-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
8450 check the length of the traces when %glr.
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
8471 2002-10-13 Paul Eggert <eggert@twinsun.com>
8472
8473 Fix problem reported by Henrik Grubbstroem in
8474 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
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.
8483
8484 2002-10-12 Paul Eggert <eggert@twinsun.com>
8485
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
8491 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
8492
8493 * lib/timevar.c: Update copyright date and clarify comments.
8494 (get_time) [IN_GCC]: Keep the GCC version for reference.
8495
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
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
8504 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
8505
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
8510 <http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
8511
8512 2002-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
8519 2002-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
8526 2002-10-11 Akim Demaille <akim@epita.fr>
8527
8528 * po/id.po: New.
8529
8530 2002-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.
8595 * lib/abitset.c (struct abitset_struct, abitset,
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
8631 2002-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
8635 <http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
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
8640 2002-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
8667 2002-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
8673 2002-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.
8699
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.
8713
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.
8727
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.
8735
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
8753 2002-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
8759 2002-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
8766 2002-09-27 Akim Demaille <akim@epita.fr>
8767
8768 Version 1.49c.
8769
8770 2002-09-27 Akim Demaille <akim@epita.fr>
8771
8772 * configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
8773 (Because of AC_LIBSOURCE).
8774
8775 2002-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
8784 2002-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
8794 2002-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
8799 2002-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
8808 2002-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
8813 2002-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
8821 2002-09-12 Akim Demaille <akim@epita.fr>
8822
8823 * m4/prereq.m4: Update, from Coreutils 4.5.1.
8824
8825 2002-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
8831 2002-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
8837 2002-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
8842 2002-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
8848 2002-09-06 Akim Demaille <akim@epita.fr>
8849
8850 * data/c.m4 (b4_copyright): Move the GPL exception comment from
8851 here to...
8852 * data/yacc.c: here.
8853
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
8858 2002-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
8863 2002-09-04 Akim Demaille <akim@epita.fr>
8864
8865 * configure.in: Rename as...
8866 * configure.ac: this.
8867 Bump to 1.49c.
8868
8869 2002-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
8875 2002-08-12 Paul Eggert <eggert@twinsun.com>
8876
8877 Version 1.49b.
8878
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
9019 2002-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
9038 2002-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
9063 2002-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
9078 2002-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
9093 2002-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
9119 2002-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
9135 2002-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
9155 2002-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
9165 2002-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
9175 2002-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
9192 2002-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
9201 2002-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
9211 2002-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
9222 2002-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
9229 2002-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
9241 2002-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
9247 2002-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
9267 2002-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
9275 2002-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
9282 2002-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
9290 2002-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
9323 2002-07-19 Akim Demaille <akim@epita.fr>
9324
9325 * src/scan-gram.l (id): Can start with an underscore.
9326
9327 2002-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
9335 2002-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
9342 2002-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
9350 2002-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
9360 2002-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
9367 2002-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
9373 2002-07-09 Akim Demaille <akim@epita.fr>
9374
9375 * data/yacc.c: Output the copyright notive in the header.
9376
9377 2002-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
9388 2002-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
9397 2002-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
9405 2002-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
9415 2002-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
9439 2002-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
9447 2002-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
9452 2002-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
9479 2002-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
9487 2002-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
9493 2002-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
9502 2002-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
9516 2002-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
9529 2002-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
9536 2002-06-30 Akim Demaille <akim@epita.fr>
9537
9538 * src/output.c (action_row): Let default_rule be always a rule
9539 number.
9540
9541 2002-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
9552 2002-06-30 Akim Demaille <akim@epita.fr>
9553
9554 * src/print_graph.c: Use report_flag.
9555
9556 2002-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
9563 2002-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
9568 2002-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
9578 2002-06-30 Akim Demaille <akim@epita.fr>
9579
9580 * src/symtab.c (symbol_new): Initialize the `printer' member.
9581
9582 2002-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
9590 2002-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
9605 2002-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
9610 2002-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
9630 2002-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
9639 2002-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
9646 2002-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
9653 2002-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
9662 2002-06-28 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9663
9664 * data/glr.c: Correct typo in Emacs-mode directive. Slightly
9665 reorganize first lines parallel to yacc.c.
9666
9667 2002-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
9673 2002-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
9679 2002-06-28 Akim Demaille <akim@epita.fr>
9680
9681 * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
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.
9685
9686 2002-06-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
9687
9688 Accumulated changelog for new GLR parsing features.
9689
9690 * src/conflicts.c (count_total_conflicts): Change name to
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.
9698
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
9707
9708 * src/getargs.c:
9709
9710 * src/symlist.h: Add dprec and merger fields to symbol_list_s.
9711 * src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
9712
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.
9732
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.
9747 (prepare_rules): Output dprec and merger tables.
9748 (conflict_row): New function.
9749 (action_row): Output conflict lists for GLR parser. Don't use
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.
9769 (conflicts_output): Modify call to count_rr_conflicts for new
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.
9799
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.
9805
9806 2002-06-27 Akim Demaille <akim@epita.fr>
9807
9808 * src/options.h, src/options.c: Remove.
9809 * src/getargs.c (short_options, long_options): New.
9810
9811 2002-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
9817 2002-06-25 Raja R Harinath <harinath@cs.umn.edu>
9818
9819 * src/getargs.c (report_argmatch): Initialize strtok().
9820
9821 2002-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
9828 2002-06-20 Akim Demaille <akim@epita.fr>
9829
9830 * data/bison.simple (yydestructor): Rename as...
9831 (yydestruct): this.
9832
9833 2002-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
9840 2002-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
9852 2002-06-20 Akim Demaille <akim@epita.fr>
9853
9854 * data/bison.simple (YYLEX): Fix the declaration when
9855 %pure-parser.
9856
9857 2002-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
9865 2002-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
9870 2002-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
9889 2002-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
9895 2002-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
9904 2002-06-19 Akim Demaille <akim@epita.fr>
9905
9906 * data/bison.simple (b4_pure_if): New.
9907 Use it instead of #ifdef YYPURE.
9908
9909 2002-06-19 Akim Demaille <akim@epita.fr>
9910
9911 * data/bison.simple (b4_location_if): New.
9912 Use it instead of #ifdef YYLSP_NEEDED.
9913
9914 2002-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
9930 2002-06-19 Zack Weinberg <zack@codesourcery.com>
9931
9932 * doc/bison.texinfo: Document ability to have multiple
9933 prologue sections.
9934
9935 2002-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
9940 2002-06-18 Akim Demaille <akim@epita.fr>
9941
9942 * data/bison.simple.new: Comment changes.
9943 Reported by Andreas Schwab.
9944
9945 2002-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
9951 2002-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
9961 2002-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
9968 2002-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
9988 2002-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
9999 2002-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
10010 2002-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
10021 2002-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
10026 2002-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
10031 2002-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
10043 2002-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
10052 2002-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
10061 2002-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
10071 2002-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
10090 2002-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
10103 2002-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
10123 2002-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
10133 2002-06-14 Akim Demaille <akim@epita.fr>
10134
10135 * src/main.c (main): Invoke scanner_free.
10136
10137 2002-06-14 Akim Demaille <akim@epita.fr>
10138
10139 * src/output.c (m4_invoke): Extracted from...
10140 (output_skeleton): here.
10141 Free tempfile.
10142
10143 2002-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
10152 2002-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
10165 2002-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
10176 2002-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
10182 2002-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
10188 2002-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
10194 2002-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
10202 2002-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
10208 2002-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
10215 2002-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
10338 2002-06-11 Akim Demaille <akim@epita.fr>
10339
10340 * src/reader.c (parse_action): Don't store directly into the
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
10348 2002-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
10357 2002-06-11 Akim Demaille <akim@epita.fr>
10358
10359 * src/reader.c (grammar_midrule_action): New, Eved out from
10360 (readgram): here.
10361
10362 2002-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
10369 2002-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
10375 2002-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
10385 2002-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
10394 2002-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
10402 2002-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
10413 2002-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
10420 2002-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
10443 2002-06-03 Akim Demaille <akim@epita.fr>
10444
10445 * src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
10446 then statements.
10447
10448 2002-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
10458 2002-05-28 Akim Demaille <akim@epita.fr>
10459
10460 * data/bison.c++: Use C++ ostreams.
10461 (cdebug_): New member.
10462
10463 2002-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
10468 2002-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
10476 2002-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.
10482
10483 2002-05-27 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
10484
10485 * src/conflicts.c (log_resolution): Correct typo:
10486 obstack_printf should be obstack_fgrow1.
10487
10488 2002-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
10507 2002-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
10519 2002-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
10528 2002-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
10551 2002-05-24 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
10552 and Paul Eggert <eggert@twinsun.com>
10553
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
10561 2002-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.
10566 (yytranslate): Expand definition of yy_token_number_type, so that
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.
10571
10572 * tests/regression.at: Modify expected output to agree with change
10573 to yyr1 and yytranslate.
10574
10575 2002-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
10580 2002-05-13 Akim Demaille <akim@epita.fr>
10581
10582 * tests/regression.at (Token definitions): Prototype yylex and
10583 yyerror.
10584
10585 2002-05-12 Paul Hilfinger <Hilfinger@CS.Berkeley.EDU>
10586
10587 * src/scan-skel.l: Correct off-by-one error in handling of __oline__.
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
10592 2002-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
10597 2002-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
10612 2002-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
10620 2002-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
10625 2002-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
10632 2002-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
10637 2002-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
10648 2002-05-05 Akim Demaille <akim@epita.fr>
10649
10650 * tests/torture.at (Many lookaheads): New test.
10651
10652 2002-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
10669 2002-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
10681 2002-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
10690 2002-05-03 Paul Eggert <eggert@twinsun.com>
10691
10692 * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
10693 for K&R C.
10694
10695 2002-05-03 gettextize <bug-gnu-gettext@gnu.org>
10696
10697 * Makefile.am (SUBDIRS): Remove intl.
10698 (EXTRA_DIST): Add config/config.rpath.
10699
10700 2002-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
10705 2002-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
10712 2002-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
10717 2002-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
10726 2002-05-03 Akim Demaille <akim@epita.fr>
10727
10728 * data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
10729
10730 2002-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
10735 2002-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
10741 2002-05-02 Akim Demaille <akim@epita.fr>
10742
10743 * src/reader.c (parse_braces): Merge into...
10744 (parse_action): this.
10745
10746 2002-05-02 Akim Demaille <akim@epita.fr>
10747
10748 * configure.in (ALL_LINGUAS): Remove.
10749 * po/LINGUAS, hr.po: New.
10750
10751 2002-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
10775 2002-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.
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'.
10787 * data/bison.simple, data/bison.c++ (b4_lhs_value)
10788 (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
10789
10790 2002-05-02 Akim Demaille <akim@epita.fr>
10791
10792 * configure.in (AC_INIT): Bump to 1.49b.
10793 (AM_INIT_AUTOMAKE): Short invocation.
10794
10795 2002-05-02 Akim Demaille <akim@epita.fr>
10796
10797 Version 1.49a.
10798
10799 2002-05-01 Akim Demaille <akim@epita.fr>
10800
10801 * src/skeleton.h: Remove.
10802
10803 2002-05-01 Akim Demaille <akim@epita.fr>
10804
10805 * src/skeleton.h: Fix the #endif.
10806 Reported by Magnus Fromreide.
10807
10808 2002-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.
10812 (YYCOPY): Fix [] quoting problem in the non-GCC case.
10813
10814 2002-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
10828 2002-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
10834 2002-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
10851 2002-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
10864 2002-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
10872 2002-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
10879 2002-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
10885 2002-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
10891 2002-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
10903 2002-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
10917 2002-04-22 Akim Demaille <akim@epita.fr>
10918
10919 * src/output.h, src/output.c (get_lines_number): Remove.
10920
10921 2002-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
10929 2002-04-19 Akim Demaille <akim@epita.fr>
10930
10931 * doc/bison.texinfo: Remove the uses of the obsolete @refill.
10932
10933 2002-04-10 Akim Demaille <akim@epita.fr>
10934
10935 * src/system.h: Rely on HAVE_LIMITS_H.
10936 Suggested by Paul Eggert.
10937
10938 2002-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
10951 2002-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
10976 2002-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
10986 2002-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
11014 2002-04-08 Akim Demaille <akim@epita.fr>
11015
11016 * src/reduce.c (reduce_grammar): First reduce the nonterminals,
11017 and then the grammar.
11018
11019 2002-04-08 Akim Demaille <akim@epita.fr>
11020
11021 * src/system.h: No longer using strndup.
11022
11023 2002-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
11036 2002-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
11042 2002-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
11048 2002-04-07 Akim Demaille <akim@epita.fr>
11049
11050 * src/reader.c: Normalize increments to prefix form.
11051
11052 2002-04-07 Akim Demaille <akim@epita.fr>
11053
11054 * src/reader.c, symtab.c: Remove debugging code.
11055
11056 2002-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
11073 2002-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
11094 2002-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
11104 2002-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
11111 2002-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
11116 2002-04-07 Akim Demaille <akim@epita.fr>
11117
11118 * src/lalr.h (LA): Is a bitsetv, not bitset*.
11119
11120 2002-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
11126 2002-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
11133 2002-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
11140 2002-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
11159 2002-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
11179 2002-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
11185 2002-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
11197 2002-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
11210 2002-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
11216 2002-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
11222 2002-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
11227 2002-04-07 Akim Demaille <akim@epita.fr>
11228
11229 * TODO: Update.
11230
11231 2002-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
11236 2002-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
11243 2002-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
11251 2002-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.
11257
11258 2002-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
11264 2002-03-20 Akim Demaille <akim@epita.fr>
11265
11266 * src/conflicts.c (log_resolution): Argument `resolution' is const.
11267
11268 2002-03-19 Paul Eggert <eggert@twinsun.com>
11269
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
11275 * Makefile.am (AUTOMAKE_OPTIONS): 1.6.
11276 * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
11277
11278 2002-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.
11284 (Prologue synch line, %union synch line, Postprologue synch line)
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
11289 2002-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
11296 2002-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
11305 2002-03-14 Akim Demaille <akim@epita.fr>
11306
11307 Use Gettext 0.11.1.
11308
11309 2002-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
11314 2002-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
11320 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
11321
11322 * src/reader.c: Warn about lacking semi-colons, do not complain.
11323
11324 2002-03-04 Robert Anisko <robert@lrde.epita.fr>
11325
11326 * data/bison.c++: Remove a debug line.
11327
11328 2002-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
11334 2002-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
11343 2002-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
11352 2002-03-04 Akim Demaille <akim@epita.fr>
11353
11354 * src/output.c (output_skeleton): tempdir is const.
11355 bytes_read is unused.
11356
11357 2002-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
11364 2002-03-04 Akim Demaille <akim@epita.fr>
11365
11366 * src/closure.c (closure): `r' is unused.
11367
11368 2002-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
11374 2002-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
11382 2002-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
11388 2002-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
11395 2002-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
11401 2002-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
11407 2002-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
11417 2002-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
11423 2002-03-04 Akim Demaille <akim@epita.fr>
11424
11425 * src/lalr.c (F): Now a bitset*.
11426 Adjust all dependencies.
11427
11428 2002-03-04 Akim Demaille <akim@epita.fr>
11429
11430 * src/conflicts.c (shiftset, lookaheadset): Now bitset.
11431 Adjust all dependencies.
11432
11433 2002-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
11441 2002-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
11448 2002-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
11453 2002-03-04 Akim Demaille <akim@epita.fr>
11454
11455 * src/reduce.c: Convert to use bitset.h, not hand coded BSet.
11456
11457 2002-03-04 Akim Demaille <akim@epita.fr>
11458
11459 * src/closure.c (ruleset): Be a bitset.
11460 (rulesetsize): Remove.
11461
11462 2002-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
11469 2002-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
11474 2002-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
11479 2002-02-25 Akim Demaille <akim@epita.fr>
11480
11481 * src/getargs.c (version): Give the name of the authors, and use a
11482 translator friendly scheme for the bgr
11483 copyright notice.
11484
11485 2002-02-25 Akim Demaille <akim@epita.fr>
11486
11487 * src/output.c (header_output): Remove, now handled completely via
11488 M4.
11489
11490 2002-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
11497 2002-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
11510 2002-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
11525 2002-02-14 Akim Demaille <akim@epita.fr>
11526
11527 * tests/regression.at (else): Adjust to Andreas' change.
11528
11529 2002-02-14 Akim Demaille <akim@epita.fr>
11530
11531 * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
11532
11533 2002-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
11538 2002-02-11 Robert Anisko <robert@lrde.epita.fr>
11539
11540 * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
11541 (Copyright notice): Update.
11542
11543 2002-02-11 Akim Demaille <akim@epita.fr>
11544
11545 * tests/regression.at (%nonassoc and eof): Don't include
11546 nonportable headers.
11547
11548 2002-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
11553 2002-02-07 Akim Demaille <akim@epita.fr>
11554
11555 * tests/input.at: New.
11556
11557 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
11558
11559 * data/bison.c++: Replace some direct m4 expansions by constants. Be
11560 more consistent when naming methods and variables. Put preprocessor
11561 directives around tables only needed for debugging.
11562
11563 2002-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
11569 2002-02-07 Robert Anisko <robert@lrde.epita.fr>
11570
11571 * data/bison.c++ (yy::b4_name::parse): Error recovery is back.
11572
11573 2002-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
11579 2002-02-06 Robert Anisko <robert@lrde.epita.fr>
11580
11581 * data/bison.c++: Fix m4 quoting in comments.
11582
11583 2002-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
11588 2002-02-05 Akim Demaille <akim@epita.fr>
11589
11590 * data/bison.c++: Adjust to the M4 back end.
11591 More is certainly needed.
11592
11593 2002-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
11630 2002-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
11636 2002-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
11641 2002-02-05 Akim Demaille <akim@epita.fr>
11642
11643 * src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
11644 * data/: here.
11645
11646 2002-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
11652 2002-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
11665 2002-01-27 Akim Demaille <akim@epita.fr>
11666
11667 * tests/sets.at (AT_EXTRACT_SETS): New.
11668 (Nullable): Use it.
11669 (Firsts): New.
11670
11671 2002-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
11677 2002-01-25 Akim Demaille <akim@epita.fr>
11678
11679 * tests/regression.at (%nonassoc and eof): New.
11680 Suggested by Robert Anisko.
11681
11682 2002-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
11692 2002-01-24 Robert Anisko <robert.anisko@epita.fr>
11693
11694 * src/Makefile.am: Add bison.c++.
11695 * src/bison.c++: New skeleton.
11696
11697 2002-01-21 Paolo Bonzini <bonzini@gnu.org>
11698
11699 * po/it.po: New.
11700
11701 2002-01-21 Kees Zeelenberg <kzlg@users.sourceforge.net>
11702
11703 * src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
11704
11705 2002-01-20 Marc Autret <marc@gnu.org>
11706
11707 * src/files.c (compute_output_file_names): Fix
11708
11709 2002-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
11716 2002-01-20 Marc Autret <marc@gnu.org>
11717
11718 * src/system.h: Need to define __attribute__ away for non-GCC
11719 compilers as well (i.e., the vendor C compiler).
11720 Suggested by Albert Chin-A-Young.
11721
11722 2002-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
11729 2002-01-11 Akim Demaille <akim@epita.fr>
11730
11731 * configure.in: Use AC_FUNC_STRNLEN.
11732 Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
11733
11734 2002-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
11748 2002-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
11756 2002-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
11765 2002-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
11773 2002-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
11781 2002-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
11789 2002-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
11796 2002-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
11803 2002-01-06 Akim Demaille <akim@epita.fr>
11804
11805 * src/Makefile.am (bison_SOURCES): Add parse-skel.h and
11806 skeleton.h.
11807
11808 2002-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
11814 2002-01-03 Akim Demaille <akim@epita.fr>
11815
11816 * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
11817
11818 2002-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
11824 2002-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
11833 2002-01-03 Akim Demaille <akim@epita.fr>
11834
11835 * lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
11836 for non system headers.
11837
11838 2002-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
11855 2001-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
11861 2001-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
11874 2001-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
11891 2001-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
11912 to guess if the generated parsers should have '.tab' in their
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
11924 * src/Makefile.am (bison_SOURCES): Add scan-skel.l and
11925 parse-skel.y.
11926
11927 * src/parse-skel.y: New file.
11928 * src/scan-skel.l: New file.
11929
11930 2001-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
11944 2001-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
11950 2001-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
11957 2001-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
11966 2001-12-29 Akim Demaille <akim@epita.fr>
11967
11968 * src/gram.h (rule_s): Member `assoc' is of type `associativity'.
11969
11970 2001-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
11975 2001-12-29 Akim Demaille <akim@epita.fr>
11976
11977 * doc/bison.texinfo: Formatting changes.
11978
11979 2001-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
11988 2001-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
11994 2001-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
12003 2001-12-29 Akim Demaille <akim@epita.fr>
12004
12005 Memory leak.
12006
12007 * src/reader.c (reader): Free grammar.
12008
12009 2001-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
12017 2001-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
12025 2001-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
12031 2001-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
12036 2001-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
12043 2001-12-29 Akim Demaille <akim@epita.fr>
12044
12045 * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
12046 ago.
12047
12048 2001-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
12053 2001-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
12058 2001-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
12063 2001-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
12074 2001-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
12080 2001-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
12089 2001-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
12096 2001-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
12101 2001-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
12108 2001-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
12121 2001-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
12130 2001-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
12137 2001-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
12149 2001-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
12159 2001-12-29 Akim Demaille <akim@epita.fr>
12160
12161 * src/output.c: Comment changes.
12162
12163 2001-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
12172 2001-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
12183 2001-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
12189 2001-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
12209 2001-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
12225 2001-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
12245 2001-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
12254 2001-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
12262 2001-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
12272 2001-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
12281 2001-12-27 Akim Demaille <akim@epita.fr>
12282
12283 * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
12284
12285 2001-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
12296 2001-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
12301 2001-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
12306 2001-12-27 Akim Demaille <akim@epita.fr>
12307
12308 * src/lalr.c (set_goto_map): Remove a wrong but benign loop
12309 duplication.
12310
12311 2001-12-27 Akim Demaille <akim@epita.fr>
12312
12313 * src/reader.c (packgram): Catch nitems overflows.
12314
12315 2001-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
12325 2001-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
12353 2001-12-27 Akim Demaille <akim@epita.fr>
12354
12355 * src/reader.c (symbol_list_new): Be sure to initialize all the
12356 fields.
12357
12358 2001-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
12367 2001-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
12373 2001-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
12391 2001-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
12398 2001-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
12406 2001-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
12413 2001-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
12423 2001-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
12431 2001-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
12440 2001-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
12446 2001-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
12454 2001-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.
12462
12463 2001-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.
12469
12470 2001-12-17 Akim Demaille <akim@epita.fr>
12471
12472 * src/conflicts.c (print_reductions): Formatting changes.
12473
12474 2001-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.
12479
12480 2001-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
12488 2001-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
12494 2001-12-17 Akim Demaille <akim@epita.fr>
12495
12496 * src/output.c: Various formatting changes.
12497
12498 2001-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
12506 2001-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
12511 2001-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.
12516 (output_parser): Adjust, now takes care about the lines of a
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
12523 2001-12-15 Marc Autret <autret_m@epita.fr>
12524
12525 * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
12526
12527 2001-12-15 Marc Autret <autret_m@epita.fr>
12528
12529 * src/output.c (output_gram): Keep track of the hairy one.
12530
12531 2001-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
12538 2001-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
12545 2001-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
12564 2001-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
12574 2001-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
12579 2001-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
12591 2001-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
12607 2001-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.
12611 Suggested by Arnold Robbins and Tom Tromey.
12612
12613 2001-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
12619 2001-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
12627 2001-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
12636 2001-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
12658 2001-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
12663 2001-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
12677 2001-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
12683 2001-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
12688 2001-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
12696 2001-12-11 Marc Autret <autret_m@epita.fr>
12697
12698 * src/output.c (output_parser): Remove useless muscle.
12699
12700 2001-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
12707 2001-12-10 Marc Autret <autret_m@epita.fr>
12708
12709 * src/reader.c (copy_definition): Re-use CPP-outed code which
12710 replace precedent remove.
12711 * src/bison.simple: Remove #line before %%prologue because
12712 %%input-line is wrong at this time.
12713
12714 2001-12-10 Marc Autret <autret_m@epita.fr>
12715
12716 * src/reader.c (symbols_output): Clean up.
12717 * src/output.c (output_gram, output): Clean up.
12718
12719 2001-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
12725 2001-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
12731 2001-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
12744 2001-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
12751 2001-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
12758 2001-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
12763 2001-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
12771 2001-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
12777 2001-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
12784 2001-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
12796 2001-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
12806 2001-12-10 Akim Demaille <akim@epita.fr>
12807
12808 * src/muscle_tab.c (muscle_init): NULL is a better default than
12809 `"0"'.
12810
12811 2001-12-10 Akim Demaille <akim@epita.fr>
12812
12813 * src/reader.c (reader): Calling symbols_output once is enough.
12814
12815 2001-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
12832 2001-12-10 Akim Demaille <akim@epita.fr>
12833
12834 * src/options.c (OPTN, DRTV, BOTH): New.
12835 (option_table): Use them.
12836
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
12842 2001-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
12847 2001-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
12859 2001-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
12866 2001-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
12882 2001-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.
12889 When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
12890 j must be the outer loop.
12891 * tests/regression.at (Broken Closure): New.
12892
12893 2001-12-05 Akim Demaille <akim@epita.fr>
12894
12895 * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
12896 its argument.
12897 Reported by Peter Hamorsky.
12898
12899 2001-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
12907 2001-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
12916 2001-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
12921 2001-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
12931 2001-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
12937 2001-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
12942 2001-12-05 Akim Demaille <akim@epita.fr>
12943
12944 * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
12945 indexed by nonterminals.
12946
12947 2001-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
12953 2001-12-05 Akim Demaille <akim@epita.fr>
12954
12955 * src/closure.c (set_fderives): De-obfuscate.
12956
12957 2001-12-05 Akim Demaille <akim@epita.fr>
12958
12959 * src/closure.c (print_firsts, print_fderives): De-obfuscate.
12960
12961 2001-12-05 Akim Demaille <akim@epita.fr>
12962
12963 * src/closure.c (set_firsts): De-obfuscate.
12964
12965 2001-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
12971 2001-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
12981 2001-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
12988 2001-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
12994 2001-12-05 Akim Demaille <akim@epita.fr>
12995
12996 * src/state.h (SHIFT_SYMBOL): New.
12997 * src/conflicts.c: Use it to deobfuscate.
12998
12999 2001-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
13005 2001-12-05 Akim Demaille <akim@epita.fr>
13006
13007 * src/conflicts.c (print_reductions): Arrays, not pointers.
13008 Use BITISSET.
13009
13010 2001-12-05 Akim Demaille <akim@epita.fr>
13011
13012 * src/conflicts.c (print_reductions): Pessimize, but clarify.
13013
13014 2001-12-05 Akim Demaille <akim@epita.fr>
13015
13016 * src/conflicts.c (print_reductions): Improve variable locality.
13017
13018 2001-12-05 Akim Demaille <akim@epita.fr>
13019
13020 * src/conflicts.c (print_reductions): Pessimize, but clarify.
13021
13022 2001-12-05 Akim Demaille <akim@epita.fr>
13023
13024 * src/conflicts.c (print_reductions): Improve variable locality.
13025
13026 2001-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
13031 2001-12-05 Akim Demaille <akim@epita.fr>
13032
13033 * src/LR0.c (augment_automaton): Formatting changes.
13034 Better variable locality.
13035
13036 2001-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
13042 2001-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
13048 2001-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
13058 2001-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
13063 2001-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
13070 2001-12-05 Akim Demaille <akim@epita.fr>
13071
13072 * src/lalr.c (traverse): Use arrays instead of pointers.
13073
13074 2001-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
13080 2001-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
13102 2001-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
13108 2001-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
13117 2001-12-04 Paul Eggert <eggert@twinsun.com>
13118
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.
13124 (yystpcpy): Use prototype if __STDC__ is defined, not just
13125 if __cplusplus is defined.
13126
13127 2001-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
13137 2001-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
13148 2001-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
13185 2001-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
13191 2001-11-30 Akim Demaille <akim@epita.fr>
13192
13193 * tests/reduce.at (Useless Nonterminals): Fix.
13194
13195 2001-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
13200 2001-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
13212 2001-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
13219 2001-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
13226 2001-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
13233 2001-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
13252 2001-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
13258 2001-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
13265 2001-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
13283 2001-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
13290 2001-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
13295 2001-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
13300 2001-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
13305 2001-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
13310 2001-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
13316 2001-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
13321 2001-11-28 Akim Demaille <akim@epita.fr>
13322
13323 * src/reduce.c (reduce_print): Use ngettext.
13324 (dump_grammar): Improve the trace accuracy.
13325
13326 2001-11-28 Akim Demaille <akim@epita.fr>
13327
13328 * src/reduce.c (dump_grammar): Don't translate trace messages.
13329
13330 2001-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
13337 2001-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
13342 2001-11-27 Marc Autret <autret_m@epita.fr>
13343
13344 * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
13345 initialization.
13346 * src/output.c (prepare): Remove its update.
13347
13348 2001-11-27 Marc Autret <autret_m@epita.fr>
13349
13350 * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
13351 Use %error-verbose.
13352
13353 2001-11-27 Marc Autret <autret_m@epita.fr>
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
13366 2001-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
13371 2001-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
13376 2001-11-27 Akim Demaille <akim@epita.fr>
13377
13378 * src/files.c: Include error.h.
13379 Reported by Hans Aberg.
13380
13381 2001-11-26 Marc Autret <autret_m@epita.fr>
13382
13383 * src/reader.c (parse_include_decl): New, not yet implemented.
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
13392 2001-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
13399 2001-11-26 Akim Demaille <akim@epita.fr>
13400
13401 * src/LR0.c (allocate_itemsets): kernel_size contains ints, not
13402 size_ts.
13403
13404 2001-11-26 Akim Demaille <akim@epita.fr>
13405
13406 * src/complain.c, src/complain.h (error): Remove, provided by
13407 lib/error.[ch].
13408
13409 2001-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
13416 2001-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
13421 2001-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
13428 2001-11-23 Akim Demaille <akim@epita.fr>
13429
13430 * lib/alloca.c: Update, from fileutils.
13431
13432 2001-11-23 Akim Demaille <akim@epita.fr>
13433
13434 * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
13435
13436 2001-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
13441 2001-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
13449 2001-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
13464 2001-11-22 Marc Autret <autret_m@epita.fr>
13465
13466 * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
13467
13468 2001-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
13474 2001-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
13481 2001-11-19 Akim Demaille <akim@epita.fr>
13482
13483 * src/conflicts.c (conflicts_print): Add a missing \n.
13484
13485 2001-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
13491 2001-11-19 Akim Demaille <akim@epita.fr>
13492
13493 * src/print.c (print_actions): Better locality of variables.
13494
13495 2001-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
13500 2001-11-19 Akim Demaille <akim@epita.fr>
13501
13502 * src/closure.c (itemsetend): Remove, replaced with...
13503 (itemsetsize): new.
13504
13505 2001-11-19 Akim Demaille <akim@epita.fr>
13506
13507 * src/LR0.c (kernel_end): Remove, replaced with...
13508 (kernel_size): new.
13509
13510 2001-11-19 Akim Demaille <akim@epita.fr>
13511
13512 * src/conflicts.c (set_conflicts): Use arrays instead of pointers
13513 to clarify.
13514
13515 2001-11-19 Akim Demaille <akim@epita.fr>
13516
13517 * src/closure.c (closure): Use arrays instead of pointers to clarify.
13518
13519 2001-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
13526 2001-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
13535 2001-11-19 Akim Demaille <akim@epita.fr>
13536
13537 * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
13538 pointers to clarify the code.
13539 (save_reductions, save_shifts): Factor common parts of alternatives.
13540
13541 2001-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
13553 2001-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
13560 2001-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
13567 2001-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
13572 2001-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
13577 2001-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,
13585 and ask for its output.
13586
13587 2001-11-19 Akim Demaille <akim@epita.fr>
13588
13589 * src/bison.simple (yyparse): When verbosely reporting an error,
13590 no longer put additional quotes around token names.
13591 * tests/calc.at: Adjust.
13592
13593 2001-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
13599 2001-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
13605 2001-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
13614 2001-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
13620 2001-11-19 Akim Demaille <akim@epita.fr>
13621
13622 * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
13623 (maxrhs): this new function.
13624
13625 2001-11-19 Akim Demaille <akim@epita.fr>
13626
13627 * src/lalr.c (F): New macro to access the variable F.
13628 Adjust.
13629
13630 2001-11-19 Akim Demaille <akim@epita.fr>
13631
13632 * src/lalr.h (LA): New macro to access the variable LA.
13633 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
13634 * src/lalr.c: Adjust.
13635
13636 2001-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
13641 2001-11-19 Akim Demaille <akim@epita.fr>
13642
13643 * src/lalr.h (lookaheads): Removed array, whose contents is now
13644 a member of...
13645 (state_t): this structure.
13646 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
13647 Adjust.
13648
13649 2001-11-19 Akim Demaille <akim@epita.fr>
13650
13651 * src/lalr.h (consistent): Removed array, whose contents is now
13652 a member of...
13653 (state_t): this structure.
13654 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
13655 Adjust.
13656
13657 2001-11-19 Akim Demaille <akim@epita.fr>
13658
13659 * src/lalr.h (reduction_table, shift_table): Removed arrays, whose
13660 contents are now members of...
13661 (state_t): this structure.
13662 * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
13663 Adjust.
13664
13665 2001-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
13675 2001-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
13688 2001-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
13695 2001-11-14 Akim Demaille <akim@epita.fr>
13696
13697 * src/print.c: Include reduce.h.
13698 Reported by Hans Aberg.
13699
13700 2001-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
13712 2001-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
13719 2001-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
13724 2001-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
13735 2001-11-12 Akim Demaille <akim@epita.fr>
13736
13737 %expect was not functioning at all.
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
13747 2001-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
13753 2001-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
13765 2001-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
13771 2001-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.
13781 * src/print.c (print_grammar): Issue `\n' between two rules.
13782 * tests/regression.at (Conflicts): New.
13783 Reported by Tom Lane.
13784
13785 2001-11-12 Akim Demaille <akim@epita.fr>
13786
13787 * tests/regression.at (Invalid input): Remove, duplicate with
13788 ``Invalid input: 1''.
13789
13790 2001-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
13796 2001-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.
13800 Reported by Per Allansson.
13801
13802 2001-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
13812 2001-11-05 Akim Demaille <akim@epita.fr>
13813
13814 * src/reader.c (symbols_output): New, extracted from...
13815 (packsymbols): here.
13816 (reader): Adjust.
13817
13818 2001-11-05 Akim Demaille <akim@epita.fr>
13819
13820 * src/lex.c (parse_percent_token): s/quotearg/quote/.
13821
13822 2001-11-05 Akim Demaille <akim@epita.fr>
13823
13824 * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
13825 pattern.
13826
13827 2001-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
13841 2001-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
13855 2001-11-02 Akim Demaille <akim@epita.fr>
13856
13857 * doc/refcard.tex: Update.
13858
13859 2001-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
13872 2001-11-02 Akim Demaille <akim@epita.fr>
13873
13874 * tests/regression.at (Mixing %token styles): New test.
13875
13876 2001-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
13883 2001-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
13891 2001-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
13899 2001-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
13905 2001-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
13912 2001-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
13920 2001-10-14 Marc Autret <autret_m@epita.fr>
13921
13922 * src/options.c (create_long_option_table): Fix.
13923
13924 2001-10-10 Akim Demaille <akim@epita.fr>
13925
13926 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
13927
13928 2001-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
13933 2001-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
14381 2001-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
14388 2001-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
14399 2001-09-23 Pascal Bart <pascal.bart@epita.fr>
14400
14401 * src/bison.simple: Add new `#line' directive.
14402
14403 2001-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
14408 2001-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
14413 2001-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
14421 2001-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
14426 2001-09-20 Pascal Bart <pascal.bart@epita.fr>
14427
14428 * src/options.c (symtab.h): Include it, need by lex.h.
14429
14430 2001-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
14455 2001-09-20 Marc Autret <autret_m@epita.fr>
14456
14457 * doc/bison.texinfo: Adjust terminologies about prologue and epilogue
14458 sections of Bison.
14459
14460 2001-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
14466 2001-09-18 Pascal Bart <pascal.bart@epita.fr>
14467
14468 * src/output.c (output_parser): Delete unused variable actions_dumped.
14469
14470 2001-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.
14474 * src/reader.h: Delete declaration of reader_output_yylsp.
14475
14476 2001-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.
14485
14486 * src/reader.h (muscle_obstack): Extern declaration update.
14487
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.
14499
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
14511 2001-09-02 Marc Autret <autret_m@epita.fr>
14512
14513 Now the files macro_tab.[ch] are named muscle_tab.[ch].
14514
14515 * src/muscle_tab.c, src/muscle_tab.h: Add files.
14516
14517 2001-09-02 Marc Autret <autret_m@epita.fr>
14518
14519 * src/macrotab.c, src/macrotab.h: Remove.
14520
14521 2001-09-01 Pascal Bart <pascal.bart@epita.fr>
14522
14523 * src/reader.c (copy_guard): Use muscle to specify the `#line'
14524 filename.
14525
14526 2001-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
14531 2001-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
14538 2001-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
14543 2001-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'.
14549 * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
14550 %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
14551 yylval, yydebug, yyerror, yynerrs and yyparse.
14552 New directive `#define' to substitute yydebug, ... with option
14553 name_prefix.
14554
14555 2001-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
14561 2001-08-31 Pascal Bart <pascal.bart@epita.fr>, Marc Autret <autret_m@epita.fr>
14562
14563 * src/reader.c (read_additionnal_code): Rename %%user_code to
14564 %%epilogue.
14565 * src/output.c (output): Rename %%declarations to %%prologue.
14566 * src/bison.simple: Echo modifications.
14567
14568 2001-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
14576 2001-08-31 Pascal Bart <pascal.bart@epita.fr>
14577
14578 * src/reader.c (reader): Delete obsolete call to function
14579 output_trailers and output_headers.
14580 * src/output.h: Remove obsolete functions prototypes of output_headers
14581 and output_trailers.
14582
14583 2001-08-30 Pascal Bart <pascal.bart@epita.fr>
14584
14585 * src/main.c: Include macrotab.h.
14586 * src/macrotab.h (macro_entry_s): Constify fields.
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
14596 2001-08-30 Marc Autret <autret_m@epita.fr>
14597
14598 * src/reader.c (parse_skel_decl): New.
14599 (read_declarations): Add case `tok_skel', call parse_skel_decl ().
14600 * src/lex.h (token_t): New token `tok_skel'.
14601 * src/lex.c (percent_table): Add skeleton option entry.
14602 Standardize.
14603
14604 2001-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
14612 2001-08-28 Marc Autret <autret_m@epita.fr>
14613
14614 * src/output.c (output_actions): Clean up.
14615 (output_gram): CPP-out useless code.
14616 * src/reader.c (reader): Clean up, CPP-out useless code.
14617
14618 2001-08-28 Pascal Bart <pascal.bart@epita.fr>
14619
14620 * src/output.c (output): Copy attrs_obstack in the '%%definitions'
14621 directive.
14622 * src/bison.simple: Add `%%definitions'.
14623
14624 2001-08-28 Marc Autret <autret_m@epita.fr>
14625
14626 * config/depcomp: New file.
14627
14628 2001-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
14634 2001-08-27 Robert Anisko <robert.anisko@epita.fr>
14635
14636 * src/output.c (output): Remove the initialization of the macro
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
14646 2001-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
14651 2001-08-27 Akim Demaille <akim@epita.fr>
14652
14653 * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
14654
14655 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
14656
14657 * lib/Makefile.am: Adjust.
14658
14659 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
14660
14661 * src/bison.simple: Update and add '%%' directives.
14662
14663 2001-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.
14672
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.
14682 (parse_macro_decl): Read macro identifiers using copy_identifier
14683 rather than lex.
14684
14685 2001-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.
14690
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.
14700
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'.
14711
14712 * src/output.c (output_table_data): New function.
14713 (output_short_table): Remove.
14714 (output_short_or_char_table): Remove.
14715
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
14722 2001-08-25 Robert Anisko <robert.anisko@epita.fr>
14723
14724 * src/main.c (main): Initialize the macro table.
14725
14726 2001-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
14731 2001-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
14737 2001-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
14743 2001-08-15 Akim Demaille <akim@epita.fr>
14744
14745 Version 1.28c.
14746
14747 2001-08-15 Marc Autret <autret_m@epita.fr>
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
14757 2001-08-15 Akim Demaille <akim@epita.fr>
14758
14759 * doc/bison.texinfo (Table of Symbols): Document
14760 YYSTACK_USE_ALLOCA.
14761
14762 2001-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
14768 2001-08-15 Akim Demaille <akim@epita.fr>
14769
14770 * Makefile.maint: Sync with CVS Autoconf.
14771
14772 2001-08-14 Pascal Bart <pascal.bart@epita.fr>
14773
14774 * doc/bison.texinfo: Include GNU Free Documentation License from
14775 `fdl.texi'.
14776 * doc/fdl.texi: Add to package.
14777
14778 2001-08-14 Marc Autret <autret_m@epita.fr>
14779
14780 Turn on %{source,header}_extension features.
14781
14782 * src/lex.c (percent_table): Un-CPP out header_extension and
14783 source_extension.
14784 * src/files.c (compute_exts_from_gf): Compare pointers with NULL.
14785 (compute_exts_from_src): Remove conditions. It restores priorities
14786 between options.
14787
14788 2001-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
14794 2001-08-13 Marc Autret <autret_m@epita.fr>
14795
14796 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
14797 defining it (defined but null disables alloca).
14798
14799 2001-08-13 Marc Autret <autret_m@epita.fr>
14800
14801 * src/bison.simple (_yy_memcpy): CPP reformat.
14802
14803 2001-08-13 Pascal Bart <pascal.bart@epita.fr>
14804
14805 * tests/atconfig.in (CPPFLAGS): Fix.
14806
14807 2001-08-10 Pascal Bart <pascal.bart@epita.fr>
14808
14809 * doc/bison.texinfo: Include GNU General Public License from
14810 `gpl.texi'.
14811 * doc/gpl.texi: Add to package.
14812
14813 2001-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
14818 2001-08-10 Akim Demaille <akim@epita.fr>
14819
14820 * src/system.h: Provide default declarations for stpcpy, strndup,
14821 and strnlen.
14822
14823 2001-08-10 Robert Anisko <anisko_r@epita.fr>
14824
14825 * doc/bison.texinfo (Locations): Update @$ stuff.
14826
14827 2001-08-09 Robert Anisko <anisko_r@epita.fr>
14828
14829 * src/bison.simple (YYLLOC_DEFAULT): Update.
14830 (yyparse): Adjust.
14831
14832 2001-08-08 Marc Autret <autret_m@epita.fr>
14833
14834 * doc/bison.texinfo: Change @samp{$<@dots{}>} to
14835 @samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
14836 Reported by Fabrice Bauzac.
14837
14838 2001-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.
14844 (node_output_size): New global variable. Simplify the formatting of
14845 the VCG graph output.
14846 (print_actions): Unused code is now used. It notifies the final state
14847 and no action states in the VCG graph. It also give the reduce actions.
14848 The `shift and goto' edges are red and the `go to state' edges are
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
14857 2001-08-07 Pascal Bart <pascal.bart@epita.fr>
14858
14859 * tests/atconfig.in (CPPFLAGS): Fix.
14860
14861 2001-08-07 Akim Demaille <akim@epita.fr>
14862
14863 * src/print_graph.c (quote): New.
14864 (print_core): Use it.
14865
14866 2001-08-06 Akim Demaille <akim@epita.fr>, Marc Autret <autret_m@epita.fr>
14867
14868 * src/vcg.c (complain.h): Include it.
14869 Unepitaize `return' invocations.
14870 [NDEBUG] (main): Remove.
14871 * src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
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 ();
14878
14879 2001-08-06 Marc Autret <autret_m@epita.fr>
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
14898 2001-08-06 Marc Autret <autret_m@epita.fr>
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
14904 2001-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
14921 2001-08-06 Marc Autret <autret_m@epita.fr>
14922
14923 * configure.in: Bump to 1.28c.
14924 * doc/bison.texinfo: Texinfo thingies.
14925
14926 2001-08-04 Pascal Bart <pascal.bart@epita.fr>
14927
14928 * tests/atconfig.in (CPPFLAGS): Add.
14929 * tests/calc.at (AT_CHECK): Use CPPFLAGS.
14930
14931 2001-08-03 Akim Demaille <akim@epita.fr>
14932
14933 Version 1.28b.
14934
14935 2001-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
14941 2001-08-03 Akim Demaille <akim@epita.fr>
14942
14943 * configure.in: Try using -Wformat when compiling.
14944
14945 2001-08-03 Akim Demaille <akim@epita.fr>
14946
14947 * configure.in: Bump to 1.28b.
14948
14949 2001-08-03 Akim Demaille <akim@epita.fr>
14950
14951 * src/complain.c: Adjust strerror_r portability issues.
14952
14953 2001-08-03 Akim Demaille <akim@epita.fr>
14954
14955 Version 1.28a.
14956
14957 2001-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
14965 2001-08-03 Akim Demaille <akim@epita.fr>
14966
14967 * src/reader.c (readgram): Display hidden chars in error messages.
14968
14969 2001-08-03 Akim Demaille <akim@epita.fr>
14970
14971 Update to gettext 0.10.39.
14972
14973 2001-08-03 Akim Demaille <akim@epita.fr>
14974
14975 * lib/strspn.c: New.
14976
14977 2001-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
14995 2001-08-01 Robert Anisko <anisko_r@epita.fr>
14996
14997 * doc/bison.texi: Document @$.
14998 (Locations): New section.
14999
15000 2001-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
15006 2001-07-08 Pascal Bart <pascal.bart@epita.fr>
15007
15008 * src/bison.simple (yyparse): Suppress warning `comparaison
15009 between signed and unsigned'.
15010
15011 2001-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
15019 2001-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
15025 2001-03-16 Akim Demaille <akim@epita.fr>
15026
15027 * doc/bison.texinfo: ANSIfy the examples.
15028
15029 2001-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
15037 2001-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
15043 2001-03-16 Akim Demaille <akim@epita.fr>
15044
15045 * src/getargs.c (longopts): Clean up.
15046
15047 2001-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
15053 2001-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
15059 2001-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
15069 2001-02-02 Akim Demaille <akim@epita.fr>
15070
15071 * lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
15072 * lib/xalloc.h, lib/xmalloc.c: Update.
15073
15074 2001-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
15084 2001-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
15093 2001-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
15098 2001-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
15118 2000-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
15130 2000-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
15135 2000-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
15141 2000-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
15147 2000-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
15153 2000-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
15161 2000-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
15170 2000-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
15180 2000-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
15189 2000-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
15196 2000-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
15211 2000-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
15216 2000-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
15221 2000-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
15227 2000-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
15235 2000-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
15241 2000-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
15248 2000-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
15260 2000-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
15267 2000-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
15272 2000-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
15279 2000-11-17 Akim Demaille <akim@epita.fr>
15280
15281 * acconfig.h: Remove, no longer used.
15282
15283 2000-11-07 Akim Demaille <akim@epita.fr>
15284
15285 * src: s/Copyright (C)/Copyright/g.
15286
15287 2000-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
15293 2000-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
15298 2000-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
15311 2000-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
15317 2000-11-03 Akim Demaille <akim@epita.fr>
15318
15319 For some reason, this was not applied.
15320
15321 * src/files.c [VMS]: No longer include `ssdef.h', no longer define
15322 `unlink': it's no longer used.
15323
15324 2000-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
15329 2000-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
15341 2000-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
15347 2000-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.
15360 * po/POTFILES.in: Adjust.
15361
15362 2000-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
15372 2000-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
15382 2000-10-20 Akim Demaille <akim@epita.fr>
15383
15384 * lib/quote.h (PARAMS): New macro. Use it.
15385
15386 2000-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
15392 2000-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
15403 2000-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
15409 2000-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
15417 2000-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
15422 2000-10-16 Akim Demaille <akim@epita.fr>
15423
15424 * src/reader.c (copy_dollar): New function.
15425 (copy_guard, copy_action): Use it.
15426
15427 2000-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
15435 2000-10-04 Akim Demaille <akim@epita.fr>
15436
15437 * lib/error.c, lib/error.h: New files, needed by xmalloc.c.
15438
15439 2000-10-04 Akim Demaille <akim@epita.fr>
15440
15441 * doc/bison.texinfo: Various typos spotted by Neil Booth.
15442
15443 2000-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
15454 2000-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
15460 2000-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
15466 2000-10-02 Akim Demaille <akim@epita.fr>
15467
15468 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
15469 options.
15470
15471 2000-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
15476 2000-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
15499 2000-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
15512 2000-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
15544 2000-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
15556 2000-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
15564 2000-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
15577 2000-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
15583 2000-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
15601 2000-10-02 Akim Demaille <akim@epita.fr>
15602
15603 Various anti-`extern in *.c' changes.
15604
15605 * src/system.h: Include `assert.h'.
15606
15607 2000-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
15619 2000-10-02 Akim Demaille <akim@epita.fr>
15620
15621 * src/LR0.h: New file.
15622 Propagate its use.
15623
15624 2000-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
15633 2000-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
15642 2000-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
15648 2000-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
15656 2000-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
15665 2000-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
15673 2000-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
15681 2000-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
15687 2000-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
15693 2000-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
15710 2000-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
15719 2000-09-21 Akim Demaille <akim@epita.fr>
15720
15721 * src/atgeneral.m4: Update from Autoconf.
15722
15723 2000-09-21 Akim Demaille <akim@epita.fr>
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
15736 2000-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
15746 2000-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
15753 2000-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
15761 2000-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
15778 2000-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
15783 2000-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
15789 2000-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
15795 2000-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
15809 2000-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
15824 2000-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
15837 2000-03-31 Akim Demaille <akim@epita.fr>
15838
15839 * src/files.c (tryopen, tryclose): Move to the top.
15840 Be static.
15841
15842 2000-03-31 Akim Demaille <akim@epita.fr>
15843
15844 * src/main.c (main): Don't call `done', exit does it.
15845
15846 2000-03-31 Akim Demaille <akim@epita.fr>
15847
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
15856 2000-03-31 Akim Demaille <akim@epita.fr>
15857
15858 Clean up the error reporting functions.
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
15877 2000-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
15893 2000-03-28 Akim Demaille <akim@epita.fr>
15894
15895 * src/getargs.c (usage): Refresh the help message.
15896
15897 2000-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
15903 2000-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
15908 2000-03-17 Akim Demaille <akim@epita.fr>
15909
15910 On syntax errors, report the token on which we choked.
15911
15912 * src/bison.s1 (yyparse): In the label yyerrlab, when
15913 YYERROR_VERBOSE, add yychar in msg.
15914
15915 2000-03-17 Akim Demaille <akim@epita.fr>
15916
15917 * src/reader.c (copy_at): New function.
15918 (copy_guard): Use it.
15919 (copy_action): Use it.
15920
15921 2000-03-17 Akim Demaille <akim@epita.fr>
15922
15923 Be kind to translators, save some useless translations.
15924
15925 * src/main.c (banner): New function.
15926 (fatal_banner): Use it.
15927 (warn_banner): Use it.
15928
15929 2000-03-17 Akim Demaille <akim@epita.fr>
15930
15931 * src/reader.c (copy_definition): Use copy_string and
15932 copy_comment. Removed now unused `match', `ended',
15933 `cplus_comment'.
15934 (copy_comment, copy_string): Moved, to be visible from
15935 copy_definition.
15936
15937 2000-03-17 Akim Demaille <akim@epita.fr>
15938
15939 * src/reader.c (copy_string): Declare `static inline'. No
15940 problems with inline, since it is checked by configure.
15941 (copy_comment): Likewise.
15942
15943 2000-03-17 Akim Demaille <akim@epita.fr>
15944
15945 * src/reader.c (packsymbols): Formatting changes.
15946
15947 2000-03-17 Akim Demaille <akim@epita.fr>
15948
15949 * src/reader.c (copy_comment): New function, factored out from:
15950 (copy_action): Use it. Removed now unused `match', `ended',
15951 `cplus_comment'.
15952 (copy_guard): Likewise.
15953
15954 2000-03-17 Akim Demaille <akim@epita.fr>
15955
15956 * src/reader.c (copy_string): New function, factored out from:
15957 (copy_action): Use it.
15958 (copy_guard): Likewise.
15959
15960 2000-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
15980 2000-03-17 Akim Demaille <akim@epita.fr>
15981
15982 * src/bison.s1: Formatting and cosmetics changes.
15983 * src/reader.c: Likewise.
15984 Update the Copyright notice.
15985
15986 2000-03-17 Akim Demaille <akim@epita.fr>
15987
15988 * src/bison.s1 (#line): All set to `#line' only, since the
15989 Makefile now handles them.
15990
15991 2000-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
15998 2000-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
16005 2000-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
16010 2000-03-16 Akim Demaille <akim@epita.fr>
16011
16012 * src/bison.s1: Properly indent CPP directives.
16013
16014 2000-03-16 Akim Demaille <akim@epita.fr>
16015
16016 * src/bison.s1: Properly indent the `alloca' CPP section.
16017
16018 2000-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
16049 2000-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
16056 1999-12-13 Jesse Thilo <jthilo@gnu.org>
16057
16058 * src/files.c:
16059 OS/2 honors TMPDIR environment variable.
16060
16061 1999-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
16068 1999-12-13 Jesse Thilo <jthilo@gnu.org>
16069
16070 * configure.in, NEWS:
16071 Bison 1.29 released.
16072
16073 1999-10-27 Jesse Thilo <jthilo@gnu.org>
16074
16075 * doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
16076 Added reference card.
16077
16078 1999-07-26 Jesse Thilo <jthilo@gnu.org>
16079
16080 * po/ru.po: Added Russian translation.
16081
16082 1999-07-26 Jesse Thilo <jthilo@gnu.org>
16083
16084 * configure.in: Added Russian translation.
16085
16086 1999-07-06 Jesse Thilo <jthilo@gnu.org>
16087
16088 * configure.in, NEWS, README:
16089 Released version 1.28.
16090
16091 1999-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
16100 1999-06-14 Jesse Thilo <jthilo@gnu.org>
16101
16102 * po/POTFILES.in: Got rid of version.c.
16103
16104 1999-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
16110 1999-06-08 Jesse Thilo <jthilo@gnu.org>
16111
16112 * doc/bison.1:
16113 Dropped mention of `+' for long-named options.
16114
16115 1999-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
16122 1999-05-30 Jesse Thilo <jthilo@gnu.org>
16123
16124 * README: Added a FAQ list.
16125
16126 * configure.in, acconfig.h:
16127 I18n fixes.
16128
16129 1999-05-30 Jesse Thilo <jthilo@gnu.org>
16130
16131 * doc/FAQ, doc/Makefile.am:
16132 Added a FAQ list.
16133
16134 1999-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
16139 1999-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
16148 1999-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
16153 1999-04-18 Jesse Thilo <jthilo@gnu.org>
16154
16155 * doc/.cvsignore, doc/Makefile.am:
16156 Reorganized: sources in `src', documentation in `doc'.
16157
16158 1999-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
16166 1999-04-13 Jesse Thilo <jthilo@gnu.org>
16167
16168 * src/allocate.c:
16169 Don't declare calloc() and realloc() if not necessary.
16170
16171 1999-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
16176 1999-03-23 Jesse Thilo <jthilo@gnu.org>
16177
16178 * po/.cvsignore: Added i18n support.
16179
16180 1999-03-23 Jesse Thilo <jthilo@gnu.org>
16181
16182 * acconfig.h, configure.in, Makefile.am:
16183 Added i18n support.
16184
16185 1999-03-22 Jesse Thilo <jthilo@gnu.org>
16186
16187 * src/bison.s1: Fixed #line numbers.
16188
16189 1999-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
16194 1999-03-03 Jesse Thilo <jthilo@gnu.org>
16195
16196 * Makefile.am:
16197 Added support for non-ANSI compilers (ansi2knr).
16198
16199 1999-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
16206 1999-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
16211 1999-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
16216 1999-02-09 Jesse Thilo <jthilo@gnu.org>
16217
16218 * Makefile.am:
16219 Removed inappropriate use of $< macro.
16220
16221 1999-02-05 Jesse Thilo <jthilo@gnu.org>
16222
16223 * po/Makefile.in.in, po/POTFILES.in:
16224 Add `po' directory skeleton.
16225
16226 1999-01-27 Jesse Thilo <jthilo@gnu.org>
16227
16228 * README: Document help-bison list.
16229
16230 * configure.in: Add check for mkstemp().
16231
16232 1999-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
16241 1999-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
16247 1999-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
16252 1999-01-14 Jesse Thilo <jthilo@gnu.org>
16253
16254 * doc/bison.texinfo: Fix formatting glitch.
16255
16256 * doc/bison.texinfo: Update FSF address.
16257
16258 1999-01-14 Jesse Thilo <jthilo@gnu.org>
16259
16260 * acconfig.h: Update FSF address.
16261
16262 1999-01-08 Jesse Thilo <jthilo@gnu.org>
16263
16264 * src/system.h:
16265 Don't define PACKAGE here, since config.h defines it.
16266
16267 1998-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
16290 1998-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
16296 1998-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
16308 1998-12-29 Jesse Thilo <jthilo@gnu.org>
16309
16310 * src/version.c:
16311 Use VERSION symbol from automake for version number.
16312
16313 1998-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
16318 1998-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
16324 1998-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
16331 1998-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
16336 1998-11-26 Jesse Thilo <jthilo@gnu.org>
16337
16338 * doc/bison.1:
16339 Document the BISON_HAIRY and BISON_SIMPLE variables.
16340
16341 1998-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
16355 1998-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
16373 1998-11-25 Jesse Thilo <jthilo@gnu.org>
16374
16375 * doc/bison.texinfo: Clean up some formatting.
16376
16377 1998-05-05 Richard Stallman <rms@gnu.org>
16378
16379 * doc/bison.texinfo:
16380 Explain better why to make a pure parser.
16381
16382 1998-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
16389 1997-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
16396 1997-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
16403 1997-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
16411 1997-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
16420 1997-06-18 Richard Stallman <rms@gnu.org>
16421
16422 * Makefile.in: new.h renamed to alloc.h.
16423
16424 1997-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
16432 1997-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
16442 1997-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
16452 1997-04-23 Richard Stallman <rms@gnu.org>
16453
16454 * src/bison.s1:
16455 (alloca) [__hpux]: Always define as __builtin_alloca.
16456
16457 1997-04-23 Richard Stallman <rms@gnu.org>
16458
16459 * bison.simple:
16460 (alloca) [__hpux]: Always define as __builtin_alloca.
16461
16462 1997-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
16472 1997-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
16482 1997-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
16487 1997-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
16496 1997-01-02 Richard Stallman <rms@gnu.org>
16497
16498 * Makefile.in (dist):
16499 Explicitly check for symlinks, and copy them.
16500
16501 1996-12-19 Richard Stallman <rms@gnu.org>
16502
16503 * src/files.c:
16504 [_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
16505
16506 1996-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
16512 1996-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
16518 1996-12-17 Richard Stallman <rms@gnu.org>
16519
16520 * src/reduce.c (nbits): Add some casts.
16521
16522 1996-08-12 Richard Stallman <rms@gnu.org>
16523
16524 * src/bison.s1: Test _MSDOS as well as _MSDOS_.
16525
16526 1996-08-12 Richard Stallman <rms@gnu.org>
16527
16528 * bison.simple: Test _MSDOS as well as _MSDOS_.
16529
16530 1996-07-31 Richard Stallman <rms@gnu.org>
16531
16532 * src/bison.s1:
16533 [__sun && __i386]: Include alloca.h.
16534
16535 1996-07-31 Richard Stallman <rms@gnu.org>
16536
16537 * bison.simple:
16538 [__sun && __i386]: Include alloca.h.
16539
16540 1996-07-30 Richard Stallman <rms@gnu.org>
16541
16542 * src/bison.s1: Comment change.
16543
16544 * src/bison.s1: Test _MSDOS_, not MSDOS.
16545
16546 1996-07-30 Richard Stallman <rms@gnu.org>
16547
16548 * bison.simple: Comment change.
16549
16550 * bison.simple: Test _MSDOS_, not MSDOS.
16551
16552 1996-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
16569 1996-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
16584 1996-05-12 Richard Stallman <rms@gnu.org>
16585
16586 * src/bison.s1:
16587 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
16588
16589 1996-05-12 Richard Stallman <rms@gnu.org>
16590
16591 * bison.simple:
16592 (__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
16593
16594 1996-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
16600 1996-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
16608 1996-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
16614 1995-12-29 Richard Stallman <rms@gnu.org>
16615
16616 * src/bison.s1:
16617 Fix line numbers in #line commands.
16618
16619 1995-12-29 Richard Stallman <rms@gnu.org>
16620
16621 * bison.simple:
16622 Fix line numbers in #line commands.
16623
16624 1995-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
16631 1995-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
16638 1995-11-29 Richard Stallman <rms@gnu.org>
16639
16640 * doc/bison.texinfo:
16641 Describe literal string tokens, %raw, %no_lines, %token_table.
16642
16643 1995-11-29 Daniel Hagerty <hag@gnu.org>
16644
16645 * doc/bison.texinfo: Fixed update date
16646
16647 1995-10-16 Richard Stallman <rms@gnu.org>
16648
16649 * src/version.c: Version 1.25.
16650
16651 1995-10-16 Richard Stallman <rms@gnu.org>
16652
16653 * NEWS: *** empty log message ***
16654
16655 1995-10-16 Richard Stallman <rms@gnu.org>
16656
16657 * doc/bison.1, doc/bison.rnh:
16658 Add new options.
16659
16660 1995-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
16747 1995-06-01 Jim Meyering <meyering@gnu.org>
16748
16749 * doc/bison.texinfo: *** empty log message ***
16750
16751 1995-05-06 Richard Stallman <rms@gnu.org>
16752
16753 * src/bison.s1: Comment change.
16754
16755 1995-05-06 Richard Stallman <rms@gnu.org>
16756
16757 * bison.simple: Comment change.
16758
16759 1995-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
16767 1995-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
16773 1995-05-03 Richard Stallman <rms@gnu.org>
16774
16775 * bison.simple: Change distribution terms.
16776
16777 1995-02-23 Richard Stallman <rms@gnu.org>
16778
16779 * src/files.c: Test __VMS_POSIX as well as VMS.
16780
16781 1995-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
16788 1995-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
16795 1994-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
16808 1994-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
16815 1994-09-28 David J. MacKenzie <djm@gnu.org>
16816
16817 * Makefile.in: Set datadir to $(prefix)/share.
16818
16819 1994-09-15 Richard Stallman <rms@gnu.org>
16820
16821 * src/bison.s1:
16822 Update copyright notice and GPL version.
16823
16824 1994-09-15 Richard Stallman <rms@gnu.org>
16825
16826 * bison.simple:
16827 Update copyright notice and GPL version.
16828
16829 1994-07-12 Richard Stallman <rms@gnu.org>
16830
16831 * src/reduce.c, src/reader.c:
16832 entered into RCS
16833
16834 1994-05-05 David J. MacKenzie <djm@gnu.org>
16835
16836 * Makefile.in: entered into RCS
16837
16838 1994-03-26 Richard Stallman <rms@gnu.org>
16839
16840 * src/bison.s1: entered into RCS
16841
16842 1994-03-26 Richard Stallman <rms@gnu.org>
16843
16844 * bison.simple: entered into RCS
16845
16846 1994-03-25 Richard Stallman <rms@gnu.org>
16847
16848 * src/main.c: entered into RCS
16849
16850 1994-03-24 Richard Stallman <rms@gnu.org>
16851
16852 * src/conflicts.c: entered into RCS
16853
16854 1994-01-02 Richard Stallman <rms@gnu.org>
16855
16856 * Makefile.in: *** empty log message ***
16857
16858 1993-11-21 Richard Stallman <rms@gnu.org>
16859
16860 * src/bison.s1: *** empty log message ***
16861
16862 1993-11-21 Richard Stallman <rms@gnu.org>
16863
16864 * doc/bison.texinfo: entered into RCS
16865
16866 * doc/bison.texinfo: *** empty log message ***
16867
16868 1993-11-21 Richard Stallman <rms@gnu.org>
16869
16870 * bison.simple: *** empty log message ***
16871
16872 1993-10-25 David J. MacKenzie <djm@gnu.org>
16873
16874 * doc/bison.texinfo: *** empty log message ***
16875
16876 1993-10-19 Richard Stallman <rms@gnu.org>
16877
16878 * src/bison.s1: *** empty log message ***
16879
16880 1993-10-19 Richard Stallman <rms@gnu.org>
16881
16882 * bison.simple: *** empty log message ***
16883
16884 1993-10-14 Richard Stallman <rms@gnu.org>
16885
16886 * src/bison.s1: *** empty log message ***
16887
16888 1993-10-14 Richard Stallman <rms@gnu.org>
16889
16890 * bison.simple: *** empty log message ***
16891
16892 1993-09-14 David J. MacKenzie <djm@gnu.org>
16893
16894 * doc/bison.texinfo: *** empty log message ***
16895
16896 1993-09-13 Noah Friedman <friedman@gnu.org>
16897
16898 * Makefile.in: *** empty log message ***
16899
16900 1993-09-10 Richard Stallman <rms@gnu.org>
16901
16902 * src/conflicts.c: *** empty log message ***
16903
16904 * src/system.h: entered into RCS
16905
16906 1993-09-10 Richard Stallman <rms@gnu.org>
16907
16908 * doc/bison.1: entered into RCS
16909
16910 1993-09-06 Noah Friedman <friedman@gnu.org>
16911
16912 * src/version.c: entered into RCS
16913
16914 1993-09-06 Noah Friedman <friedman@gnu.org>
16915
16916 * Makefile.in: *** empty log message ***
16917
16918 1993-07-30 David J. MacKenzie <djm@gnu.org>
16919
16920 * Makefile.in: *** empty log message ***
16921
16922 1993-07-24 Richard Stallman <rms@gnu.org>
16923
16924 * src/bison.s1: *** empty log message ***
16925
16926 1993-07-24 Richard Stallman <rms@gnu.org>
16927
16928 * bison.simple: *** empty log message ***
16929
16930 1993-07-08 David J. MacKenzie <djm@gnu.org>
16931
16932 * Makefile.in: *** empty log message ***
16933
16934 1993-07-04 Richard Stallman <rms@gnu.org>
16935
16936 * src/bison.s1: *** empty log message ***
16937
16938 1993-07-04 Richard Stallman <rms@gnu.org>
16939
16940 * bison.simple: *** empty log message ***
16941
16942 1993-06-26 David J. MacKenzie <djm@gnu.org>
16943
16944 * src/getargs.c: entered into RCS
16945
16946 1993-06-26 David J. MacKenzie <djm@gnu.org>
16947
16948 * doc/bison.texinfo: *** empty log message ***
16949
16950 * doc/bison.1: New file.
16951
16952 1993-06-25 Richard Stallman <rms@gnu.org>
16953
16954 * src/getargs.c: New file.
16955
16956 1993-06-16 Richard Stallman <rms@gnu.org>
16957
16958 * src/bison.s1: *** empty log message ***
16959
16960 1993-06-16 Richard Stallman <rms@gnu.org>
16961
16962 * bison.simple: *** empty log message ***
16963
16964 1993-06-03 Richard Stallman <rms@gnu.org>
16965
16966 * src/bison.s1: New file.
16967
16968 1993-06-03 Richard Stallman <rms@gnu.org>
16969
16970 * doc/bison.texinfo: *** empty log message ***
16971
16972 1993-06-03 Richard Stallman <rms@gnu.org>
16973
16974 * bison.simple: New file.
16975
16976 1993-05-19 Richard Stallman <rms@gnu.org>
16977
16978 * doc/bison.texinfo: New file.
16979
16980 1993-05-07 Noah Friedman <friedman@gnu.org>
16981
16982 * Makefile.in: *** empty log message ***
16983
16984 1993-04-28 Noah Friedman <friedman@gnu.org>
16985
16986 * src/reader.c: *** empty log message ***
16987
16988 1993-04-23 Noah Friedman <friedman@gnu.org>
16989
16990 * src/alloc.h: entered into RCS
16991
16992 1993-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
17011 1993-04-18 Noah Friedman <friedman@gnu.org>
17012
17013 * src/reader.c: New file.
17014
17015 * src/version.c: *** empty log message ***
17016
17017 1993-04-18 Noah Friedman <friedman@gnu.org>
17018
17019 * Makefile.in: *** empty log message ***
17020
17021 1993-04-17 Noah Friedman <friedman@gnu.org>
17022
17023 * Makefile.in: *** empty log message ***
17024
17025 1993-04-15 Richard Stallman <rms@gnu.org>
17026
17027 * src/main.c, src/files.c:
17028 New file.
17029
17030 1993-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
17038 1993-04-14 Richard Stallman <rms@gnu.org>
17039
17040 * Makefile.in: New file.
17041
17042 1993-04-13 Richard Stallman <rms@gnu.org>
17043
17044 * src/version.c: New file.
17045
17046 1993-03-25 Richard Stallman <rms@gnu.org>
17047
17048 * src/output.c: entered into RCS
17049
17050 1992-09-25 Richard Stallman <rms@gnu.org>
17051
17052 * configure.bat: entered into RCS
17053
17054 1992-06-22 Richard Stallman <rms@gnu.org>
17055
17056 * src/vmsgetargs.c: entered into RCS
17057
17058 1992-06-22 Richard Stallman <rms@gnu.org>
17059
17060 * doc/bison.rnh: entered into RCS
17061
17062 1992-04-20 David J. MacKenzie <djm@gnu.org>
17063
17064 * README: entered into RCS
17065
17066 1992-01-22 Richard Stallman <rms@gnu.org>
17067
17068 * src/machine.h: entered into RCS
17069
17070 1991-12-21 Richard Stallman <rms@gnu.org>
17071
17072 * src/lalr.c, src/closure.c:
17073 entered into RCS
17074
17075 1991-12-20 Richard Stallman <rms@gnu.org>
17076
17077 * src/state.h: entered into RCS
17078
17079 1991-12-18 Richard Stallman <rms@gnu.org>
17080
17081 * src/print.c, src/nullable.c, src/derives.c:
17082 entered into RCS
17083
17084 1991-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
17089 1988-09-09 Richard Stallman <rms@gnu.org>
17090
17091 * src/bison.hairy: entered into RCS
17092
17093 1987-12-16 Richard Stallman <rms@gnu.org>
17094
17095 * REFERENCES: entered into RCS
17096
17097
17098 -----
17099
17100 Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
17101 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
17102 Software Foundation, Inc.
17103
17104 Copying and distribution of this file, with or without
17105 modification, are permitted provided the copyright notice and this
17106 notice are preserved.
17107
17108 $Id$