Commit Graph
100 Commits
Author SHA1 Message Date
Paul Eggert 831d3c996d yyprint -> print_token_value 2002-11-27 18:32:12 +00:00
Paul Eggert 136d65300d (_AT_CHECK_PRINTER_AND_DESTRUCTOR): yyout -> yyoutput,
to avoid collision with lex macro described by Bruce Lilly in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001929.html>.
2002-11-27 18:31:27 +00:00
Paul Eggert 14740648d5 (b4_yysymprint_generate): yyout -> yyoutput,
to avoid collision with lex macro described by Bruce Lilly in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001929.html>.
2002-11-27 18:30:50 +00:00
Paul Eggert 08cae37b47 Update version to 1.75d. 2002-11-25 08:21:40 +00:00
Paul Eggert ceed6cdce5 Regenerate. 2002-11-25 08:05:09 +00:00
Paul Eggert 3af4feb22f Version 1.75c. 2002-11-25 07:56:44 +00:00
Paul Eggert dda7aa54b6 Sync with gnulib. 2002-11-25 07:50:25 +00:00
Paul Eggert 16f37b35a5 (Actions after errors): Use an output format
more similar to that of the Printers and Destructors test.
Test the position of the ';' token too.
(Printers and Destructors): Likewise.
(Printers and Destructors: %glr-parser): Remove for now, to avoid
unnecessarily alarming people when the test fails.
2002-11-25 07:36:54 +00:00
Paul Eggert 300a796626 (yyerrlab1): Move this label down, so that the
parser does not discard the lookahead token if the user code
invokes YYERROR.  This change is required for POSIX conformance.
2002-11-25 06:42:10 +00:00
Paul Eggert f6cf0f6e5f Sync with gnulib. 2002-11-23 07:25:41 +00:00
Paul Eggert 69e16b4c5e Sync with gnulib again. 2002-11-22 00:30:58 +00:00
Paul Eggert 0368ae1269 Sync with gnulib. 2002-11-21 19:14:24 +00:00
Paul Eggert 580043087e * lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
Avoid use of <assert.h>, as the GNU Coding Standards hint that one
should use `if (! x) abort ();' rather than `assert (x);', and
anyway it's one less thing to worry about configuring.
2002-11-21 07:37:24 +00:00
Paul Eggert 6f5db56451 Sync with gnulib. 2002-11-21 07:35:58 +00:00
Paul Eggert 500bbfcd81 (_AT_TEST_GLR_CXXTYPES): Do not include <assert.h>.
Replace all instances of assert with abort.
2002-11-21 05:28:44 +00:00
Paul Eggert 63d0fb9ce4 (_AT_DATA_CALC_Y): Do not include <assert.h>.
Replace all instances of assert with abort.
2002-11-21 05:28:09 +00:00
Paul Eggert 7a86d7eba9 (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Do not include <assert.h>. 2002-11-21 05:27:28 +00:00
Paul Eggert 4344c500b5 (get_color_str, get_textmode_str, get_shape_str,
get_layoutalgorithm_str, get_decision_str, get_orientation_str,
get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
get_view_str, get_linestyle_str, get_arrowstyle_str): Use abort rather
than assert.
2002-11-21 05:26:41 +00:00
Paul Eggert 443594d0c4 (conflict_row, pack_vector): Use abort rather than assert.
(tables_generate): Use verify rather than assert.
2002-11-21 05:25:55 +00:00
Paul Eggert 87aabbff99 Do not include <assert.h>.
(verify): New macro.
2002-11-21 05:24:53 +00:00
Paul Eggert 2f82502a6f (symbol_user_token_number_set, symbol_make_alias, symbol_pack):
Use abort rather than assert.
2002-11-21 05:23:46 +00:00
Paul Eggert fe22d5d20f (struniq_assert): Now returns void, and aborts if the assertion is false. 2002-11-21 05:22:29 +00:00
Paul Eggert ec14f0c83f (state_new, state_free, state_transitions_set, state_reduction_find):
Use abort rather than assert.
2002-11-21 05:21:35 +00:00
Paul Eggert 35dcf428c9 (packgram, reader): Use abort rather than assert. 2002-11-21 05:20:49 +00:00
Paul Eggert a932883e41 (prepare_rules, token_definitions_output): Use abort rather than assert. 2002-11-21 05:20:05 +00:00
Paul Eggert b475e0cce5 (nullable_compute): Use abort rather than assert. 2002-11-21 05:18:57 +00:00
Paul Eggert 58a84254ef (set_goto_map, map_goto): Use abort rather than assert. 2002-11-21 05:18:08 +00:00
Paul Eggert 7223426a2b (trace_argmatch, report_argmatch): Use verify rather than assert. 2002-11-21 05:17:21 +00:00
Paul Eggert b9a0104860 (resolve_sr_conflict): Use abort rather than assert. 2002-11-21 05:16:36 +00:00
Paul Eggert 937fd8646f Do not include <assert.h>.
(hash_lookup, hash_get_first, hash_get_next,
hash_find_entry, hash_rehash, hash_insert): Likewise.
2002-11-21 05:15:52 +00:00
Paul Eggert b973108e1e (ARRAY_CARDINALITY): Do not bother to #undef.
(ARGMATCH_CONSTRAINT): New macro.
(ARGMATCH_ASSERT): Use it.
2002-11-21 05:12:27 +00:00
Paul Eggert 51dffcbca9 Do not include <assert.h>.
(yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
yyresolveAction, yyprocessOneStack): Use abort rather than assert.
2002-11-21 05:11:29 +00:00
Paul Eggert 76ae81983c * data/glr.c (yygetLRActions): Replace `yyindex' with
`yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
This fixes the regression with Sun ONE Studio 7 cc that I reported in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001892.html>.
2002-11-19 09:33:21 +00:00
Paul Eggert df38312ab0 (yygetLRActions): Replace `yyindex' with
`yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
This fixes the regression with Sun ONE Studio 7 cc that I reported in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001892.html>.
2002-11-19 07:35:29 +00:00
Paul Eggert 8d8a7238ee Pacify Sun ONE Studio 7 lint. Also, rename "ParseError"
to "SyntaxError" for consistency with my 2002-11-15 change.
2002-11-18 20:08:57 +00:00
Paul Eggert 4e8c79eb7f (_AT_DATA_CALC_Y): Make vars static instead of
extern when possible.  Remove unused initializations.
2002-11-18 07:52:13 +00:00
Paul Eggert ee16363fd2 (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do not define to
{}, since this breaks the common use of `YYDPRINTF ((...));' if a
single statement is desired (e.g. before `else').  Work around GCC
warnings by surrounding corresponding calls with {} if needed.
(yyhasResolvedValue): Remove unused function.
(yymergeOptionSets, yyresolvStack): Use `continue;' for empty
loop body.
(yyreportSyntaxError): Renamed from yyreportParseError.
(yyrecoverSyntaxError): Renamed from yyrecoverParseError.
All uses changed.
2002-11-18 07:51:47 +00:00
Paul Eggert 6d9e8019e1 * data/yacc.c: Avoid over-quoting of __line__ and __file__. 2002-11-16 08:14:23 +00:00
Paul Eggert ee41006f01 Avoid over-quoting of __line__ and __file. 2002-11-16 08:13:40 +00:00
Paul Eggert b25d88f6d2 * tests/actions.at (Actions after errors): New test case. 2002-11-16 07:32:09 +00:00
Paul Eggert 5dac0025f6 (Actions after errors): New test case. 2002-11-16 07:31:35 +00:00
Paul Eggert f0616f0b5c Regenerate. 2002-11-15 20:58:07 +00:00
Paul Eggert 6e649e659e * data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
tests/action.at, tests/calc.at, tests/conflicts.at,
tests/cxx-type.at, tests/regression.at:
"parse error" -> "syntax error" for POSIX compatibility.
"parsing stack overflow..." -> "parser stack overflow" so
that code matches Bison documentation.
2002-11-15 20:32:21 +00:00
Paul Eggert edbc04c709 (AT_TEST_CPP_GUARD_H): Compile with -I., as Forte 7 C requires it,
and it shouldn't hurt on other compilers.
2002-11-15 01:57:23 +00:00
Paul Eggert 7ec1b48eb8 * src/output.c (output_skeleton): Call xfopen instead of
duplicating xfopen's body.
2002-11-15 01:29:53 +00:00
Paul Eggert 93ba6bf344 (output_skeleton): Call xfopen instead of duplicating xfopen's body. 2002-11-15 01:28:40 +00:00
Paul Eggert cfff7583d2 Mention the bugs fixed by the latest change. 2002-11-14 23:11:11 +00:00
Paul Eggert 8fcc7db138 * tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
"$CC -E foo.h" is allowed, as this doesn't work with the Portland
Group compiler.  Instead, use "$CC -E bar.c".  Include the .h
file twice in the grammar, as an extra check.

* tests/input.at (Torturing the Scanner): Surround the
backslash-newline tests with "#if 0", to make it less likely that
we'll run into compiler bugs.  Bring back solitary \ inside
comment, but add a closing comment to work around HP C bug.  Don't
test backslash-newline in C character constant.  This should fix
the input.at bug reported by Nelson H. F. Beebe in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001893.html>.
2002-11-14 23:08:27 +00:00
Paul Eggert 1d39f854cf (AT_TEST_CPP_GUARD_H): Don't assume that "$CC -E foo.h" is allowed, as
this doesn't work with the Portland Group compiler.  Instead, use "$CC
-E bar.c".  Include the .h file twice in the grammar, as an extra
check.
2002-11-14 23:08:01 +00:00
Paul Eggert dda7a53e4d (Torturing the Scanner): Surround the backslash-newline tests with
"#if 0", to make it less likely that we'll run into compiler bugs.
Bring back solitary \ inside comment, but add a closing comment to
work around HP C bug.  Don't test backslash-newline in C character
constant.  This should fix the input.at bug reported by Nelson
H. F. Beebe in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001893.html>.
2002-11-14 22:53:47 +00:00
Paul Eggert daa33def28 Fix some bugs reported by Albert Chin-A-Young in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001881.html>.
2002-11-14 01:24:12 +00:00
Paul Eggert 2b42986e75 (export YYLTYPE): Don't invoke "cc a.c b.c -o c"; the HP-UX 11i C
compiler chatters during compilation.  Instead, invoke "cc -c a.c -o
a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
2002-11-14 00:36:03 +00:00
Paul Eggert efc6bf1b94 (Torturing the Scanner): Don't invoke "cc a.c b.c
-o c"; the HP-UX 11i C compiler chatters during compilation.
Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
2002-11-14 00:35:27 +00:00
Paul Eggert 149365be01 (Torturing the Scanner): Remove lines containing
solitary backslashes, as they tickle a bug in the HP-UX 11i C
compiler.
2002-11-14 00:26:45 +00:00
Paul Eggert 9a86cdb99b * tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
comments, since they're not portable.  Use GNU coding style.
2002-11-14 00:04:57 +00:00
Paul Eggert c240826c06 (Badly Collapsed GLR States): Avoid //
comments, since they're not portable.  Use GNU coding style.
2002-11-13 23:20:52 +00:00
Paul Eggert f7e096fee3 (AC_INIT): Bump version to 1.75c. 2002-11-13 09:06:47 +00:00
Paul Eggert 73dbb6420e Regenerate. 2002-11-13 08:34:23 +00:00
Paul Eggert 87f721cc87 Version 1.75b. 2002-11-13 08:32:08 +00:00
Paul Eggert ff03259279 (yydoAction): Return YYRESULTTAG, not int.
(yyglrReduce): Return yyok, not 0.
This should avoid the enumerated-type warnings reported
by Nelson H. F. Beebe in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001872.html>.
2002-11-13 07:46:19 +00:00
Paul Eggert dbba6a3be7 [! BITSET_INLINE]: Remove.
(bitset_set, bitset_reset, bitset_test): Rename local vars
to avoid shadowing warnings by GCC.
2002-11-13 07:02:51 +00:00
Paul Eggert e84e65da40 (BITSET_INLINE): Remove. 2002-11-13 07:02:13 +00:00
Paul Eggert 53b7799056 (inline): Remove #define. It's the user's responsibility to #define
it away, just like 'const'.  This fixes one of the bugs reported by
Nelson H.F. Beebe in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001873.html>.
2002-11-13 06:48:18 +00:00
Paul Eggert 412f8a5975 Revamp regular expressions so that " and '
do not confuse xgettext.
2002-11-13 06:40:35 +00:00
Paul Eggert 322c501d89 Remove src/parse-gram.c, src/scan-gram.c,
src/system.h.  Add src/parsegram.y, src/scan-gram.l.
2002-11-13 06:40:06 +00:00
Paul Eggert 8a1dd2fe05 (po-check): Scan .l and .y files instead
of the .c and the .h files that they generate.  Look for N_
as well as for _.  Try to avoid matching #define for N_ and _.
2002-11-13 06:39:26 +00:00
Paul Eggert 0eae1c91c8 (struniq_new): Do not declare the return type
to be 'const'; this violates the C standard.
2002-11-13 06:27:18 +00:00
Paul Eggert ccdb39e0a6 Add src/system.h; this isn't really needed, but it keeps "make update"
happy.
2002-11-12 07:51:44 +00:00
Paul Eggert 62ddaef6a7 Regenerate. 2002-11-12 07:44:22 +00:00
Paul Eggert ea44c25efc No need to keep this file in CVS, since it's automatically generated. 2002-11-12 07:40:11 +00:00
Paul Eggert 7672019c42 Revamp to fix many (but not all) of the C- and M4-related quoting
problems.  Among other things, this fixes the Bison bug reported
by Jan Hubicka when processing the Bash grammar.
2002-11-12 07:33:36 +00:00
Paul Eggert 5b7f88c7f2 (Torturing the Scanner): Add tests that @oline@,
__oline__, #output, $@, and @{ do not have unintended meanings.
2002-11-12 07:28:25 +00:00
Paul Eggert e9683cfd3d (yylineno, yyoutname): Remove static vars, replacing
them with auto vars.
Switch to new escape scheme, where @ is the escape character uniformly.
Abort if a stray escape character is found.  Avoid unbounded input
buffer when parsing non-escaped text.
2002-11-12 07:27:51 +00:00
Paul Eggert ac060e78a3 (<SC_CHARACTER>): Don't worry about any backslash
escapes other than \\ and \'; this simplifies the code.
(<SC_STRING>): Likewise, for \\ and \".
(<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
Use new escapes @{ and @} for [ and ].
2002-11-12 07:27:04 +00:00
Paul Eggert 6c239755dc (prologue_augment, epilogue_set):
Quote filenames for C and M4.
2002-11-12 07:26:27 +00:00
Paul Eggert 3813e141f8 (escaped_file_name_output): New function.
(prepare_symbols): Quote tokens for M4.
(prepare): Don't insert output_infix, output_prefix,
output_parser_name, output_header_name; this is now down by scan-skel.
Insert skeleton as a C string.
(user_actions_output, symbol_destructors_output,
symbol_printers_output): Quote filenames for C and M4.
2002-11-12 07:25:36 +00:00
Paul Eggert a027c30d42 (MUSCLE_GROW_STRING_PAIR): Remove; unused.
(MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
2002-11-12 07:24:33 +00:00
Paul Eggert 4e956a7d9e Include quotearg.h, since we need to quote C strings now.
(muscle_init): Quote filename as a C string.
2002-11-12 07:23:52 +00:00
Paul Eggert 42481a1fd1 (output_infix): Remove; all uses removed. 2002-11-12 07:23:13 +00:00
Paul Eggert 947427ae83 Use new @ escapes consistently.
(b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
b4_output_header_suffix, b4_output_header_name, b4_header_guard):
Remove, since they couldn't handle arbitrary characters in file
names.

Remove use of "#ifdef b4_header_guard", since it
mishandled funny characters in file names, and anyway it isn't
needed any more.

(YYSTYPE_IS_TRIVIAL): Define when the .h file would.
2002-11-12 07:22:01 +00:00
Paul Eggert 6ad762a8c0 Use new @ escapes consistently.
(b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
b4_output_header_suffix, b4_output_header_name, b4_header_guard):
Remove, since they couldn't handle arbitrary characters in file
names.
Use YYSLP_NEEDED instead of b4_header_guard.
2002-11-12 07:21:01 +00:00
Paul Eggert fa3f2a885a (b4_copyright): Omit file name from comment, since
the file name could contain "*/".
(b4_synclines_flag): Don't quote the 2nd argument; it should already
be quoted.  All uses changed.
2002-11-12 07:15:59 +00:00
Paul Eggert acea4f3bb6 Fix the test failure due to GCC warnings described in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001815.html>.
* data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
evaluate to 0 if it's impossible for NINF to be in the respective
table.
(yygetLRActions, yyrecoverParseError): Use them.

* src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
counted in the token inserted at end of file.  Now takes
location_t *, not location_t, so that the location can be
adjusted.  All uses changed.

* tests/regression.at (Invalid inputs): Adjust wording in
diagnostic to match the new behavior.

* tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
abort ();'.  This reduces the runtime of the "Many lookaheads"
test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
GCC 3.2.
2002-11-10 07:10:08 +00:00
Paul Eggert 66871a8103 (AT_DATA_TRIANGULAR_GRAMMAR, AT_DATA_HORIZONTAL_GRAMMAR,
AT_DATA_LOOKAHEADS_GRAMMAR, AT_DATA_STACK_TORTURE): Replace `assert
(x);' with `if (! (x)) abort ();'.  This reduces the runtime of the
"Many lookaheads" test from 27.6 to 2.7 minutes on a 440 MHz
Ultrasparc III.
2002-11-10 07:04:07 +00:00
Paul Eggert 2115939b03 (Invalid inputs): Adjust wording in diagnostic to match the new behavior. 2002-11-10 05:27:18 +00:00
Paul Eggert 345532d70b (unexpected_end_of_file): Fix bug: columns were counted in the token
inserted at end of file.  Now takes location_t *, not location_t, so
that the location can be adjusted.  All uses changed.
2002-11-10 05:17:56 +00:00
Paul Eggert 944ed9f4e9 Fix the test failure due to GCC warnings described in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001815.html>.

* data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
evalutate to 0 if it's impossible for NINF to be in the respective
table.
(yygetLRActions, yyrecoverParseError): Use them.
2002-11-10 04:31:38 +00:00
Paul Eggert 09d353a08f (scanner_last_string_free): Remove decl. 2002-11-08 06:14:29 +00:00
Paul Eggert 20ef1ad524 * src/parse-gram.y (CHARACTER): Remove unused token.
All uses removed.

* src/scan-gram.l: Remove stack option.  We no longer use the
stack, since the stack was never deeper than 1; instead, use the
new auto var c_context to record the stacked value.

Remove nounput option.  At an unexpected end of file, we now unput
the minimal input necessary to end cleanly; this simplifies the
code.

Avoid unbounded token sizes where this is easy.

(unexpected_end_of_file): New function.
Use it to systematize the error message on unexpected EOF.
(last-string): Now auto, not static.
(YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
(scanner_last_string_free): Remove; not used.
(percent_percent_count): Move decl to just before use.
(SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
not the (never otherwised-used) CHARACTER.
2002-11-08 05:22:51 +00:00
Paul Eggert a706a1cc03 Remove stack option. We no longer use the stack, since the stack was
never deeper than 1; instead, use the new auto var c_context to record
the stacked value.

Remove nounput option.  At an unexpected end of file, we now unput
the minimal input necessary to end cleanly; this simplifies the
code.

Avoid unbounded token sizes where this is easy.

(unexpected_end_of_file): New function.
Use it to systematize the error message on unexpected EOF.
(last-string): Now auto, not static.
(YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
(scanner_last_string_free): Remove; not used.
(percent_percent_count): Move decl to just before use.
(SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
not the (never otherwised-used) CHARACTER.
2002-11-08 05:20:20 +00:00
Paul Eggert 87fbb0bffc (CHARACTER): Remove unused token. All uses removed. 2002-11-08 05:19:30 +00:00
Paul Eggert 58918640ad * src/scan-gram.l (unexpected_end_of_file): New function.
Use it to systematize the error message on unexpected EOF.
2002-11-07 08:15:28 +00:00
Paul Eggert 8e6ef48342 (unexpected_end_of_file): New function.
Use it to systematize the error message on unexpected EOF.
2002-11-07 08:15:11 +00:00
Paul Eggert fdac0091ce Minor spelling and punctuation fix. 2002-11-07 07:07:25 +00:00
Paul Eggert 4e0813a6cf Fix minor troff and spelling glitches. 2002-11-07 07:06:29 +00:00
Paul Eggert e183b12388 * src/scan-gram.l: Use more accurate diagnostics, e.g.
"integer out of range" rather than "invalid value".
* tests/input.at (Invalid $n, Invalid @n): Change expected wording
accordingly.
2002-11-06 07:04:24 +00:00
Paul Eggert 9906579faa (Invalid $n, Invalid @n): Change expected wording accordingly. 2002-11-06 07:01:55 +00:00
Paul Eggert 98f2caaa5f Use more accurate diagnostics, e.g.
"integer out of range" rather than "invalid value".
2002-11-06 07:01:06 +00:00
Paul Eggert 886a425c6f Bison now parses C99 lexical constructs like digraphs, UCNs, and
backslash-newline within C escape sequences, as POSIX now requires.
2002-11-06 06:56:35 +00:00
Paul Eggert d04946c717 Regenerate. 2002-11-06 00:06:50 +00:00