Paul Eggert [Mon, 21 Oct 2002 05:31:34 +0000 (05:31 +0000)]
Remove K&R vestiges.
* configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
* src/complain.c (VA_START): Remove. Assume prototypes.
(vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
(private_strerror, warn_at, warn, complain_at, complain, fatal_at,
fatal): Assume prototypes.
* src/complain.h: Assume prototypes.
* src/system.h (PARAMS): Remove.
Include <limits.h> unconditionally, since it's guaranteeed even
for a freestanding C89 compiler.
(SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
* src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
Paul Eggert [Mon, 21 Oct 2002 05:30:50 +0000 (05:30 +0000)]
Remove all uses of PARAMS, since we now assume C89 or better.
Paul Eggert [Mon, 21 Oct 2002 05:29:50 +0000 (05:29 +0000)]
(getargs, cli_present, cli_get_value): Prototype.
Paul Eggert [Mon, 21 Oct 2002 05:29:07 +0000 (05:29 +0000)]
(PARAMS): Remove.
Include <limits.h> unconditionally, since it's guaranteeed even
for a freestanding C89 compiler.
(SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
Paul Eggert [Mon, 21 Oct 2002 05:28:34 +0000 (05:28 +0000)]
Assume prototypes.
Paul Eggert [Mon, 21 Oct 2002 05:28:16 +0000 (05:28 +0000)]
(VA_START): Remove. Assume prototypes.
(vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
(private_strerror, warn_at, warn, complain_at, complain, fatal_at,
fatal): Assume prototypes.
Paul Eggert [Mon, 21 Oct 2002 05:27:45 +0000 (05:27 +0000)]
(AC_C_CONST, AM_C_PROTOTYPES): Remove.
Akim Demaille [Sun, 20 Oct 2002 16:09:47 +0000 (16:09 +0000)]
* src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
* data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
(yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
(yyresolveStates, yyresolveAction, yyresolveStack)
(yyprocessOneStack): Use them.
(yy_reduce_print): New.
* tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
Akim Demaille [Sun, 20 Oct 2002 12:51:10 +0000 (12:51 +0000)]
* data/c.m4 (b4_c_ansi_args): Recognize functions with no
arguments and output `void'.
(b4_c_function): Rename as...
(b4_c_function_def): this.
(b4_c_function_decl, b4_c_ansi_function_def)
(b4_c_ansi_function_decl): New.
Change the interpretation of the arguments: before `int, foo', now
`int foo, foo'.
* data/yacc.c (yyparse): Prototype and define thanks to these.
Adjust b4_c_function_def uses.
* data/glr.c (yyparse): Likewise, but ANSI only.
Akim Demaille [Sun, 20 Oct 2002 11:20:15 +0000 (11:20 +0000)]
* src/output.c (prepare): Move the definition of `tokens_number',
`nterms_number', `undef_token_number', `user_token_number_max'
to...
(prepare_tokens): Here.
(prepare_tokens): Rename as...
(prepare_symbols): this.
(prepare): Move the definition of `rules_number' to...
(prepare_rules): here.
(prepare): Move the definition of `last', `final_state_number',
`states_number' to...
(prepare_states): here.
* data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
Akim Demaille [Sun, 20 Oct 2002 11:18:14 +0000 (11:18 +0000)]
* src/tables.h, src/tables.c, src/output.c: Comment changes.
Akim Demaille [Sun, 20 Oct 2002 11:17:20 +0000 (11:17 +0000)]
* data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
* data/c.m4: here.
Akim Demaille [Sun, 20 Oct 2002 11:16:01 +0000 (11:16 +0000)]
* src/output.c (prepare): Use MUSCLE_INSERT_STRING.
* src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
`pair'.
(muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
`name' to...
* data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
(b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
These.
Paul Eggert [Sun, 20 Oct 2002 06:37:08 +0000 (06:37 +0000)]
Do not create a temporary file, as that involves security and
cleanup headaches. Instead, use a pair of pipes.
Derived from a suggestion by Florian Krohm.
Also, some other minor changes to avoid GCC warnings.
Paul Eggert [Sun, 20 Oct 2002 06:35:41 +0000 (06:35 +0000)]
Do not create a temporary file, as that involves security and
cleanup headaches. Instead, use a pair of pipes. Derived from
a suggestion by Florian Krohm.
Paul Eggert [Sun, 20 Oct 2002 06:32:04 +0000 (06:32 +0000)]
(readpipe): Remove decl.
(scan_skel): New function, to be used in place of m4_invoke.
Read from stream rather than file.
Paul Eggert [Sun, 20 Oct 2002 06:31:23 +0000 (06:31 +0000)]
Include "subpipe.h".
(m4_invoke): Remove decl.
(scan_skel): New decl.
(output_skeleton): Use pipe rather than temporary file for m4 input.
Check that m4sugar.m4 is readable, to avoid deadlock.
Check for pipe I/O error.
Paul Eggert [Sun, 20 Oct 2002 06:30:43 +0000 (06:30 +0000)]
Add lib/subpipe.c.
Paul Eggert [Sun, 20 Oct 2002 06:30:15 +0000 (06:30 +0000)]
(EXTRA_DIST): Remove mkstemp.m4. Add subpipe.m4.
Paul Eggert [Sun, 20 Oct 2002 06:29:41 +0000 (06:29 +0000)]
(libbison_a_SOURCES): Remove readpipe.c.
Add subpipe.h, subpipe.c.
Paul Eggert [Sun, 20 Oct 2002 06:29:09 +0000 (06:29 +0000)]
(UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
(BISON_PREREQ_SUBPIPE): Add.
Paul Eggert [Sun, 20 Oct 2002 06:28:23 +0000 (06:28 +0000)]
Initial version.
Paul Eggert [Sun, 20 Oct 2002 06:01:07 +0000 (06:01 +0000)]
(prepare): Use xstrdup to convert char const * to char *, to avoid GCC
warning.
Paul Eggert [Sun, 20 Oct 2002 05:47:09 +0000 (05:47 +0000)]
(muscle_pair_list_grow): Rename local to avoid confusion with
similarly-named more-global.
Paul Eggert [Sun, 20 Oct 2002 05:34:55 +0000 (05:34 +0000)]
(TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
float, as this generates a warning on Solaris 8 + GCC 3.2 with
--enable-gcc-warnings. Instead, divide into 1.0 rather than 1;
this generates a more-accurate value anyway.
(timervar_accumulate): Rename local variables to avoid confusion
with similarly-named global 'start_time'.
Paul Eggert [Sun, 20 Oct 2002 05:23:11 +0000 (05:23 +0000)]
Spell `-*- Autoconf -*-' properly; the leading `-' was missing.
Akim Demaille [Sat, 19 Oct 2002 14:39:07 +0000 (14:39 +0000)]
* tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
Use them to have `calc.y' ready for %pure-parser.
* data/yacc.c (YYLEX): Pass a yylex return type to
b4_c_function_call.
Akim Demaille [Sat, 19 Oct 2002 14:38:06 +0000 (14:38 +0000)]
Prototype support of %lex-param and %parse-param.
* src/parse-gram.y: Add the definition of the %lex-param and
%parse-param tokens, plus their rules.
Drop the `_' version of %glr-parser.
Add the "," token.
* src/scan-gram.l (INITIAL): Scan them.
* src/muscle_tab.c: Comment changes.
(muscle_insert, muscle_find): Rename `pair' as `probe'.
* src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
(muscle_entry_s): The `value' member is no longer const.
Adjust all dependencies.
* src/muscle_tab.c (muscle_init): Adjust: use
MUSCLE_INSERT_STRING.
Initialize the obstack earlier.
* src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
(muscle_pair_list_grow): New.
* data/c.m4 (b4_c_function_call, b4_c_args): New.
* data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
* tests/calc.at: Use %locations, not --locations.
(AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
Akim Demaille [Sat, 19 Oct 2002 14:36:40 +0000 (14:36 +0000)]
* src/getargs.c (usage): Take status as argument and exit
accordingly.
Report the traditional `Try ... --help' message when status != 0.
(usage, version): Don't take a FILE * as arg, it is pointless.
(getargs): When there is an incorrect number of arguments, make it
an error, and report it GNUlically thanks to `usage ()'.
Paul Eggert [Sat, 19 Oct 2002 01:33:39 +0000 (01:33 +0000)]
* data/glr.c (yyreportParseError): Don't assume that sprintf
yields the length of the printed string, as this is not true
on SunOS 4.1.4. Reported by Peter Klein.
Paul Eggert [Sat, 19 Oct 2002 01:33:20 +0000 (01:33 +0000)]
(yyreportParseError): Don't assume that sprintf
yields the length of the printed string, as this is not true
on SunOS 4.1.4. Reported by Peter Klein.
Paul Eggert [Sat, 19 Oct 2002 01:10:26 +0000 (01:10 +0000)]
* tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
* tests/conflicts.at (%nonassoc and eof): Likewise.
Fixes SunOS 4.1.4 test failure reported by Peter Klein.
Paul Eggert [Sat, 19 Oct 2002 01:09:36 +0000 (01:09 +0000)]
(%nonassoc and eof): #undef memcmp and realloc.
Paul Eggert [Sat, 19 Oct 2002 01:09:13 +0000 (01:09 +0000)]
(_AT_DATA_CALC_Y): #undef memcmp and realloc.
Akim Demaille [Thu, 17 Oct 2002 17:47:33 +0000 (17:47 +0000)]
* src/getargs.h (trace_e): Add trace_scan, and trace_parse.
* src/getargs.c (trace_types, trace_args): Adjust.
* src/reader.c (grammar_current_rule_prec_set)
(grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
Standardize error messages.
And s/@prec/%prec/!
(reader): Use trace_flag to enable scanner/parser debugging,
instead of an adhoc scheme.
* src/scan-gram.l: Remove trailing debugging code.
Paul Eggert [Thu, 17 Oct 2002 06:31:51 +0000 (06:31 +0000)]
* src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as MUSCLE_TAB_H.
Paul Eggert [Thu, 17 Oct 2002 06:27:41 +0000 (06:27 +0000)]
(MUSCLE_TAB_H_): Was misspelled as MUSCLE_TAB_H_.
Paul Eggert [Thu, 17 Oct 2002 01:29:58 +0000 (01:29 +0000)]
* NEWS: Officially drop support for building Bison with K&R C,
since it didn't work anyway and it's not worth worrying about.
* Makefile.maint (wget_files): Remove ansi2knr.c.
(ansi2knr.c-url_prefix): Remove.
* lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
* lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
* src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
Paul Eggert [Thu, 17 Oct 2002 01:29:01 +0000 (01:29 +0000)]
(AUTOMAKE_OPTIONS): Remove.
Paul Eggert [Thu, 17 Oct 2002 01:26:33 +0000 (01:26 +0000)]
Remove ansi2knr, ansi2knr.*.
Paul Eggert [Thu, 17 Oct 2002 01:24:46 +0000 (01:24 +0000)]
Officially drop support for building Bison with K&R C,
since it didn't work anyway and it's not worth worrying about.
Paul Eggert [Thu, 17 Oct 2002 00:14:32 +0000 (00:14 +0000)]
(wget_files): Remove ansi2knr.c.
(ansi2knr.c-url_prefix): Remove.
Akim Demaille [Wed, 16 Oct 2002 06:32:07 +0000 (06:32 +0000)]
Bump to 1.75a.
Paul Eggert [Wed, 16 Oct 2002 06:29:12 +0000 (06:29 +0000)]
Stop using the "enum_" trick for K&R-style function definitions;
it confused me, and I was the author! Instead, assume that people
who want to use K&R C compilers (when using these modules in GCC,
perhaps?) will run ansi2knr.
Paul Eggert [Wed, 16 Oct 2002 06:27:59 +0000 (06:27 +0000)]
(enum_lbitset_find_mode): Remove. All uses of "enum_" changed to "enum ".
(debug_lbitset, lbitset_and, lbitset_and_cmp, lbitset_andn,
lbitset_andn_cmp, lbitset_bytes, lbitset_copy, lbitset_copy_cmp,
lbitset_disjoint_p, lbitset_elt_alloc, lbitset_elt_calloc,
lbitset_elt_find, lbitset_elt_free, lbitset_elt_link,
lbitset_elt_unlink, lbitset_elt_zero_p, lbitset_empty_p,
lbitset_equal_p, lbitset_free, lbitset_init, lbitset_list,
lbitset_list_reverse, lbitset_not, lbitset_ones, lbitset_op3_cmp,
lbitset_or, lbitset_or_cmp, lbitset_prune, lbitset_release_memory,
lbitset_reset, lbitset_set, lbitset_size, lbitset_subset_p,
lbitset_test, lbitset_weed, lbitset_xor, lbitset_xor_cmp,
lbitset_zero): Use function prototypes; this removes the need for
declaring static functions simply to provide their prototypes.
Paul Eggert [Wed, 16 Oct 2002 06:26:31 +0000 (06:26 +0000)]
(enum_ebitset_find_mode): Remove. All uses of "enum_" changed to "enum ".
(ebitset_and, ebitset_and_cmp, ebitset_andn, ebitset_andn_cmp,
ebitset_bytes, ebitset_copy, ebitset_copy_, ebitset_copy_cmp,
ebitset_disjoint_p, ebitset_elt_add, ebitset_elt_alloc,
ebitset_elt_calloc, ebitset_elt_find, ebitset_elt_free,
ebitset_elt_last, ebitset_elt_remove, ebitset_elt_zero_p,
ebitset_elts_grow, ebitset_empty_p, ebitset_equal_p, ebitset_free,
ebitset_init, ebitset_list, ebitset_list_reverse, ebitset_not,
ebitset_ones, ebitset_op3_cmp, ebitset_or, ebitset_or_cmp,
ebitset_release_memory, ebitset_reset, ebitset_set, ebitset_size,
ebitset_subset_p, ebitset_test, ebitset_weed, ebitset_xor,
ebitset_xor_cmp, ebitset_zero): Use function prototypes; this removes
the need for declaring static functions simply to provide their
prototypes.
Paul Eggert [Wed, 16 Oct 2002 06:24:26 +0000 (06:24 +0000)]
(bitsetv_alloc): enum_bitset_type -> enum bitset_type
Paul Eggert [Wed, 16 Oct 2002 06:23:21 +0000 (06:23 +0000)]
(bitsetv_alloc, bitsetv_create, bitsetv_free, bitsetv_zero,
bitsetv_ones, bitsetv_transitive_closure, bitsetv_dump,
debug_bitsetv): Use function prototypes; this removes the need for
declaring static functions simply to provide their prototypes.
Paul Eggert [Wed, 16 Oct 2002 06:22:04 +0000 (06:22 +0000)]
(bitset_stats_init): enum_bitset_type -> enum bitset_type.
Paul Eggert [Wed, 16 Oct 2002 06:20:44 +0000 (06:20 +0000)]
(bitset_log_histogram_print, bitset_percent_histogram_print,
bitset_stats_and, bitset_stats_and_cmp, bitset_stats_and_or,
bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
bitset_stats_zero): Use function prototypes; this removes the need for
declaring static functions simply to provide their prototypes.
Paul Eggert [Wed, 16 Oct 2002 06:19:22 +0000 (06:19 +0000)]
(bitset_set, bitset_reset, bitset_test): Use function prototypes; this
removes the need for declaring static functions simply to provide
their prototypes.
Paul Eggert [Wed, 16 Oct 2002 06:18:00 +0000 (06:18 +0000)]
(bitset_alloc, bitset_and_or_, bitset_and_or_cmp_, bitset_andn_or_,
bitset_andn_or_cmp_, bitset_bytes, bitset_copy_, bitset_count_,
bitset_create, bitset_dump, bitset_first, bitset_free, bitset_init,
bitset_last, bitset_next, bitset_obstack_alloc, bitset_obstack_free,
bitset_only_set_p, bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_,
bitset_prev, bitset_print, bitset_release_memory, bitset_toggle_,
bitset_type_choose, bitset_type_get, bitset_type_name_get,
debug_bitset): Use function prototypes; this removes the need for
declaring static functions simply to provide their prototypes.
Paul Eggert [Wed, 16 Oct 2002 06:16:29 +0000 (06:16 +0000)]
(enum_bitset_ops, enum_bitset_type): Remove.
All uses of "enum_" changed to "enum ".
Paul Eggert [Wed, 16 Oct 2002 06:15:02 +0000 (06:15 +0000)]
(abitset_and, abitset_and_cmp, abitset_and_or,
abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
abitset_copy1, abitset_disjoint_p, abitset_empty_p,
abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
abitset_not, abitset_ones, abitset_or, abitset_or_and,
abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
Use function prototypes; this removes the need for declaring
static functions simply to provide their prototypes.
Akim Demaille [Mon, 14 Oct 2002 18:15:05 +0000 (18:15 +0000)]
.
Akim Demaille [Mon, 14 Oct 2002 16:29:41 +0000 (16:29 +0000)]
Version 1.75.
Akim Demaille [Mon, 14 Oct 2002 15:09:15 +0000 (15:09 +0000)]
* tests/Makefile.am (maintainer-check-posix): New.
Akim Demaille [Mon, 14 Oct 2002 13:00:48 +0000 (13:00 +0000)]
* data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
member.
Akim Demaille [Mon, 14 Oct 2002 12:49:24 +0000 (12:49 +0000)]
Regen.
Akim Demaille [Mon, 14 Oct 2002 12:32:48 +0000 (12:32 +0000)]
Update.
Akim Demaille [Mon, 14 Oct 2002 11:38:21 +0000 (11:38 +0000)]
* src/tables.c (table_ninf_remap): base -> tab.
Reported by Matt Rosing.
Paul Eggert [Mon, 14 Oct 2002 08:44:02 +0000 (08:44 +0000)]
* tests/action.at, tests/calc.at, tests/conflicts.at,
tests/cxx-type.at, tests/headers.at, tests/input.at,
tests/regression.at, tests/synclines.at, tests/torture.at:
Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
so that the tests still work even if POSIXLY_CORRECT is set.
* doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
Paul Eggert [Mon, 14 Oct 2002 08:43:36 +0000 (08:43 +0000)]
Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
so that the commands still work even if POSIXLY_CORRECT is set.
Paul Eggert [Mon, 14 Oct 2002 08:07:01 +0000 (08:07 +0000)]
* data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
for portability to K&R hosts. Fix typo: signed char is guaranteed
only to 127, not to 128.
* data/glr.c (yysigned_char): New type.
* data/yacc.c (yysigned_char): Likewise.
* tests/regression.at (Web2c Actions): signed char -> yysigned_char.
Paul Eggert [Mon, 14 Oct 2002 08:06:33 +0000 (08:06 +0000)]
(b4_int_type): Use yysigned_char instead of signed char,
for portability to K&R hosts. Fix typo: signed char is guaranteed
only to 127, not to 128.
Paul Eggert [Mon, 14 Oct 2002 08:06:06 +0000 (08:06 +0000)]
(yysigned_char): New type.
Paul Eggert [Mon, 14 Oct 2002 08:05:20 +0000 (08:05 +0000)]
(Web2c Actions): signed char -> yysigned_char.
Paul Eggert [Mon, 14 Oct 2002 06:55:10 +0000 (06:55 +0000)]
* data/yacc.c (yyparse): Rewrite to avoid "comparison is always
true due to limited range of data type" warning from GCC.
Paul Eggert [Mon, 14 Oct 2002 06:54:41 +0000 (06:54 +0000)]
(yyparse): Rewrite to avoid "comparison is always true due to limited
range of data type" warning from GCC in synclines.at test.
Paul Eggert [Sun, 13 Oct 2002 20:36:45 +0000 (20:36 +0000)]
* data/c.m4 (b4_token_defines): Protect against double-inclusion
by wrapping enum yytokentype's definition inside #ifndef
YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
Paul Eggert [Sun, 13 Oct 2002 20:35:06 +0000 (20:35 +0000)]
(b4_token_defines): Protect against double-inclusion
by wrapping enum yytokentype's definition inside #ifndef
YYTOKENTYPE. This undoes a bug I introduced on 2002-10-12.
Akim Demaille [Sun, 13 Oct 2002 19:40:30 +0000 (19:40 +0000)]
* data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
Un yy- yyrhs to avoid the name clash with the global YYRHS.
Akim Demaille [Sun, 13 Oct 2002 19:39:29 +0000 (19:39 +0000)]
* Makefile.maint: Update from Autoconf 2.54.
* m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
Akim Demaille [Sun, 13 Oct 2002 19:35:59 +0000 (19:35 +0000)]
* src/print.c (print_state): Separate the list of solved conflicts
from the other items.
* tests/conflicts.at (Resolved SR Conflicts): Adjust.
Akim Demaille [Sun, 13 Oct 2002 18:50:40 +0000 (18:50 +0000)]
Let nondeterministic skeletons be usable with deterministic
tables.
With the patch, GAWK compiled by GCC without -O2 passes its test
suite using a GLR parser driven by LALR tables. It fails with -O2
because `struct stat' gives two different answers on my machine:
88 (definition of an auto var) and later 96 (memset on this var).
Hence the stack is badly corrumpted. The headers inclusion is to
blame: if I move the awk.h inclusion before GLR's system header
inclusion, the two struct stat have the same size.
* src/tables.c (pack_table): Always create conflict_table.
(token_actions): Always create conflict_list.
* data/glr.c (YYFLAG): Remove, unused.
Akim Demaille [Sun, 13 Oct 2002 18:49:44 +0000 (18:49 +0000)]
* configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
(O0FLAGS): New.
(VALGRIND, GXX): New.
* tests/atlocal.in (CFLAGS): Use O0FLAGS.
* tests/bison.in: Run $PREBISON a pre-command.
* tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
(maintainer-check-g++): New.
* Makefile.am (maintainer-check): New.
Akim Demaille [Sun, 13 Oct 2002 14:25:55 +0000 (14:25 +0000)]
* data/glr.c: Formatting changes.
Tweak some trace messages to match yacc.c's.
Akim Demaille [Sun, 13 Oct 2002 14:25:14 +0000 (14:25 +0000)]
GLR parsers sometimes raise parse errors instead of performing the
default reduction.
Reported by Charles-Henry de Boysson.
* tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
check the length of the traces when %glr.
(_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
GLR's traces.
(AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
Test GLR parsers.
* data/glr.c (YYLEFTMOST_STATE): Fix its value.
(yyltype): Remove the yy prefix from the member names.
(yytable): Complete its comment.
(yygetLRActions): Map error action number from YYTABLE from
YYTABLE_NINF to 0.
(yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
(which was a bug: it should have been YYTABEL_NINF, and yet it was
not satisfying as we could compare an YYACTION computed from
YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
only value for error actions.
(yyreportParseError): In verbose parse error messages, don't issue
`error' in the list of expected tokens.
* data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
next action to perform to match glr.c's decoding.
(yytable): Complete its comment.
Paul Eggert [Sun, 13 Oct 2002 09:09:49 +0000 (09:09 +0000)]
Regenerate.
Paul Eggert [Sun, 13 Oct 2002 08:40:10 +0000 (08:40 +0000)]
Fix problem reported by Henrik Grubbstroem in
<http://mail.gnu.org/pipermail/bug-bison/2002-October/001670.html>:
"nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
because the Bison parser reads the second action before reducing
the first one.
* src/scan-gram.l (rule_length): New static var.
Use it to keep track of the rule length in the scanner, since
we can't expect the parser to be in lock-step sync with the scanner.
(handle_action_dollar, handle_action_at): Use this var.
* tests/actions.at (Exotic Dollars): Test for the problem.
Paul Eggert [Sun, 13 Oct 2002 08:39:31 +0000 (08:39 +0000)]
(Exotic Dollars): Test for "nonterm: { $$ = 123; } { $$ = $1; };" bug.
Paul Eggert [Sun, 13 Oct 2002 08:38:39 +0000 (08:38 +0000)]
(rule_length): New static var.
Use it to keep track of the rule length in the scanner, since
we can't expect the parser to be in lock-step sync with the scanner.
(handle_action_dollar, handle_action_at): Use this var.
Paul Eggert [Sun, 13 Oct 2002 06:00:24 +0000 (06:00 +0000)]
Attempt to fix SunOS 4.1.4 porting bug reported by Peter Klein in
<http://mail.gnu.org/pipermail/bug-bison/2002-October/001674.html>.
Paul Eggert [Sun, 13 Oct 2002 05:59:40 +0000 (05:59 +0000)]
(BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
Include <sys/time.h> when checking for clock_t and struct tms.
Use same include order as source.
Paul Eggert [Sun, 13 Oct 2002 05:58:38 +0000 (05:58 +0000)]
Import GCC version as of today, then merge Bison's changes.
Change "GCC" to "Bison" in copyright notice.
Paul Eggert [Sun, 13 Oct 2002 05:57:10 +0000 (05:57 +0000)]
Fix copyright and authorship notice to point to Bison, not GCC.
Paul Eggert [Sun, 13 Oct 2002 05:56:20 +0000 (05:56 +0000)]
[! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
Update copyright date and clarify comments.
(get_time) [IN_GCC]: Keep the GCC version for reference.
Merge GCC changes. Change "GCC" to "Bison" in the copyright notice.
Paul Eggert [Sun, 13 Oct 2002 04:42:59 +0000 (04:42 +0000)]
Import of GCC head 2002-10-11
Paul Eggert [Sun, 13 Oct 2002 03:53:18 +0000 (03:53 +0000)]
* src/reader.c (grammar_current_rule_check):
Don't worry about the default action if $$ is untyped.
Prevents bogus warnings reported by Jim Gifford in
<http://mail.gnu.org/pipermail/bug-bison/2002-October/001673.html>.
Paul Eggert [Sun, 13 Oct 2002 03:52:53 +0000 (03:52 +0000)]
(grammar_current_rule_check):
Don't worry about the default action if $$ is untyped.
Prevents bogus warnings reported by Jim Gifford in
<http://mail.gnu.org/pipermail/bug-bison/2002-October/001673.html>.
Paul Eggert [Sat, 12 Oct 2002 23:21:00 +0000 (23:21 +0000)]
* data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
* data/glr.c, data/lalr1.cc, data/yacc.c:
Output token definitions before the first part of user declarations.
Fixes compatibility problem reported by Jim Gifford for kbd in
<http://mail.gnu.org/pipermail/bug-bison/2002-October/001672.html>.
Paul Eggert [Sat, 12 Oct 2002 23:20:23 +0000 (23:20 +0000)]
Output token definitions before the first part of user declarations.
Paul Eggert [Sat, 12 Oct 2002 23:18:52 +0000 (23:18 +0000)]
(b4_token_enum): Do not define YYTOKENTYPE.
Paul Eggert [Fri, 11 Oct 2002 21:19:27 +0000 (21:19 +0000)]
(Calling Convention): Fix strncmp typo.
Paul Eggert [Fri, 11 Oct 2002 20:54:17 +0000 (20:54 +0000)]
* data/yacc.c (yyreport_parse_error): Remove, putting its body into...
(yyparse): here. This undoes some of the 2002-07-25 change.
Compatibility problem reported by Ralf S. Engelschall with
OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
Paul Eggert [Fri, 11 Oct 2002 20:53:39 +0000 (20:53 +0000)]
(yyreport_parse_error): Remove, putting its body into...
(yyparse): here. This undoes some of the 2002-07-25 change.
Compatibility problem reported by Ralf S. Engelschall with
OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
Akim Demaille [Fri, 11 Oct 2002 11:23:19 +0000 (11:23 +0000)]
* tests/regression.at Characters Escapes): New.
* src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept ' in strings and
characters.
Reported by Jan Nieuwenhuizen.
Akim Demaille [Fri, 11 Oct 2002 10:14:32 +0000 (10:14 +0000)]
* po/id.po: New.
Paul Eggert [Thu, 10 Oct 2002 07:38:40 +0000 (07:38 +0000)]
Portability fixes for bitsets; this also avoids several GCC warnings.
Paul Eggert [Thu, 10 Oct 2002 07:35:19 +0000 (07:35 +0000)]
Include bitset.h, not bbitset.h.