platform/upstream/bison.git
21 years agoReally remove it.
Akim Demaille [Sat, 16 Nov 2002 12:36:30 +0000 (12:36 +0000)]
Really remove it.

21 years agoAugment the similarity between GLR and LALR traces.
Akim Demaille [Sat, 16 Nov 2002 12:32:27 +0000 (12:32 +0000)]
Augment the similarity between GLR and LALR traces.
* data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
(YY_REDUCE_PRINT): New.
(yyparse): Use them.
* data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
YYDPRINT here.
(yyglrReduce, yyrecoverParseError, yyparse): Don't report the
state reached after the reduction/recovery, since...
(yyparse, yyprocessOneStack): Report the state we are entering in.

21 years ago* src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
Akim Demaille [Sat, 16 Nov 2002 12:31:36 +0000 (12:31 +0000)]
* src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
Add support for --trace=skeleton.
* src/scan-skel.l: %option debug.
Scan strings of non-@ or n instead of character by character.
(scan_skel): Handle trace_skeleton.
(QPUTS): New.
(@output_parser_name@, @output_header_name@): ``Restore'' their
support (used to be M4 macros).
* data/yacc.c: Quote larger chunks, a la glr.c.
* data/lalr1.cc: Likewise.
The header guards are no longer available, so use some other
string than `YYLSP_NEEDED'.

21 years agoMake the ``Printers and Destructors'' test more verbose, taking
Akim Demaille [Sat, 16 Nov 2002 12:30:23 +0000 (12:30 +0000)]
Make the ``Printers and Destructors'' test more verbose, taking
`yacc.c''s behavior as (possibly wrong) reference.
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
instead of fprint on stdout.
Set and report the last_line of the symbols.
Consistently display values and locations.

21 years ago* data/yacc.c: Avoid over-quoting of __line__ and __file__.
Paul Eggert [Sat, 16 Nov 2002 08:14:23 +0000 (08:14 +0000)]
* data/yacc.c: Avoid over-quoting of __line__ and __file__.

21 years agoAvoid over-quoting of __line__ and __file.
Paul Eggert [Sat, 16 Nov 2002 08:13:40 +0000 (08:13 +0000)]
Avoid over-quoting of __line__ and __file.

21 years ago* tests/actions.at (Actions after errors): New test case.
Paul Eggert [Sat, 16 Nov 2002 07:32:09 +0000 (07:32 +0000)]
* tests/actions.at (Actions after errors): New test case.

21 years ago(Actions after errors): New test case.
Paul Eggert [Sat, 16 Nov 2002 07:31:35 +0000 (07:31 +0000)]
(Actions after errors): New test case.

21 years agoRegenerate.
Paul Eggert [Fri, 15 Nov 2002 20:58:07 +0000 (20:58 +0000)]
Regenerate.

21 years ago* data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
Paul Eggert [Fri, 15 Nov 2002 20:32:21 +0000 (20:32 +0000)]
* 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.

21 years ago* src/parse-gram.y (declaration): Have %parse-param and %lex-param
Akim Demaille [Fri, 15 Nov 2002 16:42:16 +0000 (16:42 +0000)]
* src/parse-gram.y (declaration): Have %parse-param and %lex-param
take two BRACED_CODE, not two string_content.
Free the scanner's obstack when we are done.
(code_content): New.
* tests/calc.at: Adjust.
* doc/bison.texinfo: Adjust.
Also, make sure to include the `,' for these declarations.

21 years ago* m4/prereq.m4: Removed the commented jm_PREREQ_HASH
Akim Demaille [Fri, 15 Nov 2002 16:30:37 +0000 (16:30 +0000)]
* m4/prereq.m4: Removed the commented jm_PREREQ_HASH
definition; avoids potential autoreconf problems.

21 years ago2002-11-15 Tim Van Holder <tim.van.holder@pandora.be>
Akim Demaille [Fri, 15 Nov 2002 09:04:37 +0000 (09:04 +0000)]
2002-11-15  Tim Van Holder  <tim.van.holder@pandora.be>

* src/.cvsignore: Add src-gram.c.
* tests/.cvsignore: Add atlocal.
* config/.cvsignore, m4/.cvsignore, po/.cvsignore:
Add several files that autoreconf may bring in during
bootstrap.

21 years agoAlways check the value returned by yyparse.
Akim Demaille [Fri, 15 Nov 2002 08:56:40 +0000 (08:56 +0000)]
Always check the value returned by yyparse.
* tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
returned by yyparse.
(_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
Adjust calls.
* tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
returned by yyparse.

21 years ago(AT_TEST_CPP_GUARD_H): Compile with -I., as Forte 7 C requires it,
Paul Eggert [Fri, 15 Nov 2002 01:57:23 +0000 (01:57 +0000)]
(AT_TEST_CPP_GUARD_H): Compile with -I., as Forte 7 C requires it,
and it shouldn't hurt on other compilers.

21 years ago* src/output.c (output_skeleton): Call xfopen instead of
Paul Eggert [Fri, 15 Nov 2002 01:29:53 +0000 (01:29 +0000)]
* src/output.c (output_skeleton): Call xfopen instead of
duplicating xfopen's body.

21 years ago(output_skeleton): Call xfopen instead of duplicating xfopen's body.
Paul Eggert [Fri, 15 Nov 2002 01:28:40 +0000 (01:28 +0000)]
(output_skeleton): Call xfopen instead of duplicating xfopen's body.

21 years ago* data/glr.c (yyFail): Always set yyerrflag. Corrects regression
Paul Hilfinger [Thu, 14 Nov 2002 23:18:55 +0000 (23:18 +0000)]
* data/glr.c (yyFail): Always set yyerrflag.  Corrects regression
 on input.at test.

21 years agoMention the bugs fixed by the latest change.
Paul Eggert [Thu, 14 Nov 2002 23:11:11 +0000 (23:11 +0000)]
Mention the bugs fixed by the latest change.

21 years ago* tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
Paul Eggert [Thu, 14 Nov 2002 23:08:27 +0000 (23:08 +0000)]
* 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>.

21 years ago(AT_TEST_CPP_GUARD_H): Don't assume that "$CC -E foo.h" is allowed, as
Paul Eggert [Thu, 14 Nov 2002 23:08:01 +0000 (23:08 +0000)]
(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.

21 years ago(Torturing the Scanner): Surround the backslash-newline tests with
Paul Eggert [Thu, 14 Nov 2002 22:53:47 +0000 (22:53 +0000)]
(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>.

21 years ago* tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
Akim Demaille [Thu, 14 Nov 2002 11:09:51 +0000 (11:09 +0000)]
* tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
status of the compiler.
Calling `exit 1' is no longer needed.
Reported by Nelson H. F. Beebe.

21 years ago* tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
Akim Demaille [Thu, 14 Nov 2002 11:07:00 +0000 (11:07 +0000)]
* tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
status of the compiler.
Reported by Nelson H. F. Beebe.

21 years ago* tests/atlocal.in (CPPFLAGS): We have config.h.
Akim Demaille [Thu, 14 Nov 2002 09:58:01 +0000 (09:58 +0000)]
* tests/atlocal.in (CPPFLAGS): We have config.h.
* tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
New.
* tests/actions.at, tests/calc.at, tests/conflicts.at,
* tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
* tests/regression.at, tests/torture.at: Use them for all the
grammars that are to be compiled.
* tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
* doc/bison.texinfo (GLR Parsers): Document `inline'.

21 years ago* doc/bison.texinfo: Various formatting changes (alignments in
Akim Demaille [Thu, 14 Nov 2002 08:32:10 +0000 (08:32 +0000)]
* doc/bison.texinfo: Various formatting changes (alignments in
samples, additional @group/@end group, GCS in samples.
Use @deffn instead of simple @table to define the directives,
macros, variables etc.

21 years agoFix some bugs reported by Albert Chin-A-Young in
Paul Eggert [Thu, 14 Nov 2002 01:24:12 +0000 (01:24 +0000)]
Fix some bugs reported by Albert Chin-A-Young in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001881.html>.

21 years ago(export YYLTYPE): Don't invoke "cc a.c b.c -o c"; the HP-UX 11i C
Paul Eggert [Thu, 14 Nov 2002 00:36:03 +0000 (00:36 +0000)]
(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".

21 years ago(Torturing the Scanner): Don't invoke "cc a.c b.c
Paul Eggert [Thu, 14 Nov 2002 00:35:27 +0000 (00:35 +0000)]
(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".

21 years ago(Torturing the Scanner): Remove lines containing
Paul Eggert [Thu, 14 Nov 2002 00:26:45 +0000 (00:26 +0000)]
(Torturing the Scanner): Remove lines containing
solitary backslashes, as they tickle a bug in the HP-UX 11i C
compiler.

21 years ago* tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
Paul Eggert [Thu, 14 Nov 2002 00:04:57 +0000 (00:04 +0000)]
* tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
comments, since they're not portable.  Use GNU coding style.

21 years ago(Badly Collapsed GLR States): Avoid //
Paul Eggert [Wed, 13 Nov 2002 23:20:52 +0000 (23:20 +0000)]
(Badly Collapsed GLR States): Avoid //
comments, since they're not portable.  Use GNU coding style.

21 years agoBump to 1.75c.
Akim Demaille [Wed, 13 Nov 2002 15:17:35 +0000 (15:17 +0000)]
Bump to 1.75c.

21 years ago* data/yacc.c: Leave bigger chunks of quoted text.
Akim Demaille [Wed, 13 Nov 2002 09:49:49 +0000 (09:49 +0000)]
* data/yacc.c: Leave bigger chunks of quoted text.
(YYDSYMPRINTF): New.
Use it to report symbol activities.
* data/glr.c (YYDSYMPRINTF): New.
Use it.

21 years ago(AC_INIT): Bump version to 1.75c.
Paul Eggert [Wed, 13 Nov 2002 09:06:47 +0000 (09:06 +0000)]
(AC_INIT): Bump version to 1.75c.

21 years agoRegenerate.
Paul Eggert [Wed, 13 Nov 2002 08:34:23 +0000 (08:34 +0000)]
Regenerate.

21 years agoVersion 1.75b.
Paul Eggert [Wed, 13 Nov 2002 08:32:08 +0000 (08:32 +0000)]
Version 1.75b.

21 years ago(yydoAction): Return YYRESULTTAG, not int.
Paul Eggert [Wed, 13 Nov 2002 07:46:19 +0000 (07:46 +0000)]
(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>.

21 years ago[! BITSET_INLINE]: Remove.
Paul Eggert [Wed, 13 Nov 2002 07:02:51 +0000 (07:02 +0000)]
[! BITSET_INLINE]: Remove.
(bitset_set, bitset_reset, bitset_test): Rename local vars
to avoid shadowing warnings by GCC.

21 years ago(BITSET_INLINE): Remove.
Paul Eggert [Wed, 13 Nov 2002 07:02:13 +0000 (07:02 +0000)]
(BITSET_INLINE): Remove.

21 years ago(inline): Remove #define. It's the user's responsibility to #define
Paul Eggert [Wed, 13 Nov 2002 06:48:18 +0000 (06:48 +0000)]
(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>.

21 years agoRevamp regular expressions so that " and '
Paul Eggert [Wed, 13 Nov 2002 06:40:35 +0000 (06:40 +0000)]
Revamp regular expressions so that " and '
do not confuse xgettext.

21 years agoRemove src/parse-gram.c, src/scan-gram.c,
Paul Eggert [Wed, 13 Nov 2002 06:40:06 +0000 (06:40 +0000)]
Remove src/parse-gram.c, src/scan-gram.c,
src/system.h.  Add src/parsegram.y, src/scan-gram.l.

21 years ago(po-check): Scan .l and .y files instead
Paul Eggert [Wed, 13 Nov 2002 06:39:26 +0000 (06:39 +0000)]
(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 _.

21 years ago(struniq_new): Do not declare the return type
Paul Eggert [Wed, 13 Nov 2002 06:27:18 +0000 (06:27 +0000)]
(struniq_new): Do not declare the return type
to be 'const'; this violates the C standard.

21 years ago* src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
Akim Demaille [Tue, 12 Nov 2002 17:51:38 +0000 (17:51 +0000)]
* src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
linker.

21 years ago* Makefile.maint: Sync with Autoconf:
Akim Demaille [Tue, 12 Nov 2002 17:50:21 +0000 (17:50 +0000)]
* Makefile.maint: Sync with Autoconf:
(local_updates): New.

21 years ago* Makefile.maint: Sync with Autoconf:
Akim Demaille [Tue, 12 Nov 2002 16:11:49 +0000 (16:11 +0000)]
* Makefile.maint: Sync with Autoconf:
(local_updates): New.

21 years ago* po/POTFILES.in (src/lalr.c, src/state.c): Remove
Akim Demaille [Tue, 12 Nov 2002 16:09:38 +0000 (16:09 +0000)]
* po/POTFILES.in (src/lalr.c, src/state.c): Remove

21 years agocom.compilers.
Akim Demaille [Tue, 12 Nov 2002 15:15:21 +0000 (15:15 +0000)]
com.compilers.

21 years ago* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
Akim Demaille [Tue, 12 Nov 2002 10:18:05 +0000 (10:18 +0000)]
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
locations.

21 years ago* data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
Akim Demaille [Tue, 12 Nov 2002 09:44:41 +0000 (09:44 +0000)]
* data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
not yyvalue.

21 years ago* tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
Akim Demaille [Tue, 12 Nov 2002 09:07:38 +0000 (09:07 +0000)]
* tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
Use it to test the GLR parser.

21 years ago* tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
Akim Demaille [Tue, 12 Nov 2002 09:03:13 +0000 (09:03 +0000)]
* tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
defines it.
* data/glr.c (yystos): New.
(b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
(YYDSYMPRINT): New.
(yyval): Don't define it, it is handled via M4.
(yyrecoverParseError): Free verbosely the discarded symbols.
* data/yacc.c (yysymprint): Remove, rather...
(b4_yysymprint_generate): invoke.
* data/c.m4 (b4_yysymprint_generate): New.
Accept pointers as arguments, as opposed to the version from
yacc.c.
(b4_yydestruct_generate): Likewise.
* tests/cations.at (Printers and Destructors): Use Bison directives
instead of CPP macros.
Don't rely on internal details.

21 years ago* data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
Akim Demaille [Tue, 12 Nov 2002 08:45:40 +0000 (08:45 +0000)]
* data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
* data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
Don't work on yychar (i.e., do set it to YYEMPTY, don't match
it against YYEMPTY and so forth), work on yytoken (i.e., set
it to YYEMPTY etc.).
(yydestruct): Replace with a b4_yydestruct_generate invocation.
(b4_symbol_actions): Remove.
* data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
for 0, end-of-input.

21 years ago* doc/bison.texinfo (Destructor Decl): New.
Akim Demaille [Tue, 12 Nov 2002 08:35:00 +0000 (08:35 +0000)]
* doc/bison.texinfo (Destructor Decl): New.

21 years ago* src/tables.c (tables_generate): Use free for pointers that
Akim Demaille [Tue, 12 Nov 2002 08:30:47 +0000 (08:30 +0000)]
* src/tables.c (tables_generate): Use free for pointers that
cannot be NULL, not XFREE.
(pack_vector): Use assert, not fatal, for bound violations.
* src/state.c (state_new): Likewise.
* src/reader.c (reader): Likewise.
* src/lalr.c (set_goto_map): Likewise.
* src/location.h (LOCATION_PRINT): If first_line is 0, just issue
the file name.

21 years ago* src/scan-gram.l, src/reader.h (scanner_last_string_free):
Akim Demaille [Tue, 12 Nov 2002 08:26:38 +0000 (08:26 +0000)]
* src/scan-gram.l, src/reader.h (scanner_last_string_free):
Restore.
* src/scan-gram.l (last_string): Is global to the file, not to
yylex.
* src/parse-gram.y (input): Don't append the epilogue here,
(epilogue.opt): do it here, and free the scanner's obstack.
* src/reader.c (epilogue_set): Rename as...
(epilogue_augment): this.
* data/c.m4 (b4_epilogue): Defaults to empty.

21 years ago* src/getargs.c (long_options): Remove duplicates.
Akim Demaille [Tue, 12 Nov 2002 08:13:10 +0000 (08:13 +0000)]
* src/getargs.c (long_options): Remove duplicates.
* src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
Remove.
* doc/bison.rnh: Remove.
* doc/bison.texinfo (VMS Invocation): Remove.

21 years ago* src/struniq.h, src/struniq.c (struniq_t): Is const.
Akim Demaille [Tue, 12 Nov 2002 08:05:59 +0000 (08:05 +0000)]
* src/struniq.h, src/struniq.c (struniq_t): Is const.
(STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
Use struniq for symbols.
* src/symtab.h (symbol_t): The tag member is a struniq.
(symbol_type_set): Adjust.
* src/symtab.c (symbol_new): Takes a struniq.
(symbol_free): Don't free the tag member.
(hash_compare_symbol_t, hash_symbol_t): Rename as...
(hash_compare_symbol, hash_symbol): these.
Use the fact that tags as struniqs.
(symbol_get): Use struniq_new.
* src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
Returns a strniq.
* src/reader.h (merger_list, grammar_currentmerge_set): The name
and type members are struniqs.
* src/reader.c (get_merge_function)
(grammar_current_rule_merge_set): Adjust.
(TYPE, current_type): Are struniq.
Use struniq for file names.
* src/files.h, src/files.c (infile): Split into...
(grammar_file, current_file): these.
* src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
* src/reduce.c (reduce_print): Likewise.
* src/getargs.c (getargs): Likewise.
* src/complain.h, src/complain.c: Likewise.
* src/main.c (main): Call struniqs_new early enough to use it for
file names.
Don't free the input file name.

21 years ago* src/symtab.c (symbol_free): Remove dead deactivated code:
Akim Demaille [Tue, 12 Nov 2002 07:55:55 +0000 (07:55 +0000)]
* src/symtab.c (symbol_free): Remove dead deactivated code:
type_name are properly removed.
Don't use XFREE to free items that cannot be NULL.
* src/struniq.h, src/struniq.c: New.
* src/main.c (main): Initialize/free struniqs.
* src/parse-gram.y (%union): Add astruniq member.
(yyprint): Adjust.
* src/scan-gram.l (<{tag}>): Return a struniq.
Free the obstack bit that used to store it.
* src/symtab.h (symbol_t): The 'type_name' member is a struniq.

21 years agoAdd src/system.h; this isn't really needed, but it keeps "make update"
Paul Eggert [Tue, 12 Nov 2002 07:51:44 +0000 (07:51 +0000)]
Add src/system.h; this isn't really needed, but it keeps "make update"
happy.

21 years agoRegenerate.
Paul Eggert [Tue, 12 Nov 2002 07:44:22 +0000 (07:44 +0000)]
Regenerate.

21 years agoNo need to keep this file in CVS, since it's automatically generated.
Paul Eggert [Tue, 12 Nov 2002 07:40:11 +0000 (07:40 +0000)]
No need to keep this file in CVS, since it's automatically generated.

21 years agoRevamp to fix many (but not all) of the C- and M4-related quoting
Paul Eggert [Tue, 12 Nov 2002 07:33:36 +0000 (07:33 +0000)]
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.

21 years ago(Torturing the Scanner): Add tests that @oline@,
Paul Eggert [Tue, 12 Nov 2002 07:28:25 +0000 (07:28 +0000)]
(Torturing the Scanner): Add tests that @oline@,
__oline__, #output, $@, and @{ do not have unintended meanings.

21 years ago(yylineno, yyoutname): Remove static vars, replacing
Paul Eggert [Tue, 12 Nov 2002 07:27:51 +0000 (07:27 +0000)]
(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.

21 years ago(<SC_CHARACTER>): Don't worry about any backslash
Paul Eggert [Tue, 12 Nov 2002 07:27:04 +0000 (07:27 +0000)]
(<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 ].

21 years ago(prologue_augment, epilogue_set):
Paul Eggert [Tue, 12 Nov 2002 07:26:27 +0000 (07:26 +0000)]
(prologue_augment, epilogue_set):
Quote filenames for C and M4.

21 years ago(escaped_file_name_output): New function.
Paul Eggert [Tue, 12 Nov 2002 07:25:36 +0000 (07:25 +0000)]
(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.

21 years ago(MUSCLE_GROW_STRING_PAIR): Remove; unused.
Paul Eggert [Tue, 12 Nov 2002 07:24:33 +0000 (07:24 +0000)]
(MUSCLE_GROW_STRING_PAIR): Remove; unused.
(MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.

21 years agoInclude quotearg.h, since we need to quote C strings now.
Paul Eggert [Tue, 12 Nov 2002 07:23:52 +0000 (07:23 +0000)]
Include quotearg.h, since we need to quote C strings now.
(muscle_init): Quote filename as a C string.

21 years ago(output_infix): Remove; all uses removed.
Paul Eggert [Tue, 12 Nov 2002 07:23:13 +0000 (07:23 +0000)]
(output_infix): Remove; all uses removed.

21 years agoUse new @ escapes consistently.
Paul Eggert [Tue, 12 Nov 2002 07:22:01 +0000 (07:22 +0000)]
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.

21 years agoUse new @ escapes consistently.
Paul Eggert [Tue, 12 Nov 2002 07:21:01 +0000 (07:21 +0000)]
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.

21 years ago(b4_copyright): Omit file name from comment, since
Paul Eggert [Tue, 12 Nov 2002 07:15:59 +0000 (07:15 +0000)]
(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.

21 years agoFix the test failure due to GCC warnings described in
Paul Eggert [Sun, 10 Nov 2002 07:10:08 +0000 (07:10 +0000)]
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.

21 years ago(AT_DATA_TRIANGULAR_GRAMMAR, AT_DATA_HORIZONTAL_GRAMMAR,
Paul Eggert [Sun, 10 Nov 2002 07:04:07 +0000 (07:04 +0000)]
(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.

21 years ago(Invalid inputs): Adjust wording in diagnostic to match the new behavior.
Paul Eggert [Sun, 10 Nov 2002 05:27:18 +0000 (05:27 +0000)]
(Invalid inputs): Adjust wording in diagnostic to match the new behavior.

21 years ago(unexpected_end_of_file): Fix bug: columns were counted in the token
Paul Eggert [Sun, 10 Nov 2002 05:17:56 +0000 (05:17 +0000)]
(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.

21 years agoFix the test failure due to GCC warnings described in
Paul Eggert [Sun, 10 Nov 2002 04:31:38 +0000 (04:31 +0000)]
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.

21 years ago(scanner_last_string_free): Remove decl.
Paul Eggert [Fri, 8 Nov 2002 06:14:29 +0000 (06:14 +0000)]
(scanner_last_string_free): Remove decl.

21 years ago* src/parse-gram.y (CHARACTER): Remove unused token.
Paul Eggert [Fri, 8 Nov 2002 05:22:51 +0000 (05:22 +0000)]
* 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.

21 years agoRemove stack option. We no longer use the stack, since the stack was
Paul Eggert [Fri, 8 Nov 2002 05:20:20 +0000 (05:20 +0000)]
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.

21 years ago(CHARACTER): Remove unused token. All uses removed.
Paul Eggert [Fri, 8 Nov 2002 05:19:30 +0000 (05:19 +0000)]
(CHARACTER): Remove unused token.  All uses removed.

21 years agoUpdate.
Akim Demaille [Thu, 7 Nov 2002 14:28:40 +0000 (14:28 +0000)]
Update.

21 years agoTypo.
Akim Demaille [Thu, 7 Nov 2002 12:54:51 +0000 (12:54 +0000)]
Typo.

21 years agoLet yyerror always receive the msg as last argument, so that
Akim Demaille [Thu, 7 Nov 2002 12:52:19 +0000 (12:52 +0000)]
Let yyerror always receive the msg as last argument, so that
yyerror can be variadic.
* data/yacc.c (b4_yyerror_args): New.
Use it when calling yyerror.
* data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
Use it when calling yyerror.
* doc/bison.texinfo (Error Reporting): Adjust.
* tests/calc.at (_AT_DATA_CALC_Y): Adjust.
* tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.

21 years agoRegen.
Akim Demaille [Thu, 7 Nov 2002 12:50:34 +0000 (12:50 +0000)]
Regen.

21 years ago* src/scan-gram.l (unexpected_end_of_file): New function.
Paul Eggert [Thu, 7 Nov 2002 08:15:28 +0000 (08:15 +0000)]
* src/scan-gram.l (unexpected_end_of_file): New function.
Use it to systematize the error message on unexpected EOF.

21 years ago(unexpected_end_of_file): New function.
Paul Eggert [Thu, 7 Nov 2002 08:15:11 +0000 (08:15 +0000)]
(unexpected_end_of_file): New function.
Use it to systematize the error message on unexpected EOF.

21 years agoMinor spelling and punctuation fix.
Paul Eggert [Thu, 7 Nov 2002 07:07:25 +0000 (07:07 +0000)]
Minor spelling and punctuation fix.

21 years agoFix minor troff and spelling glitches.
Paul Eggert [Thu, 7 Nov 2002 07:06:29 +0000 (07:06 +0000)]
Fix minor troff and spelling glitches.

21 years ago#line should have quoted strings.
Akim Demaille [Wed, 6 Nov 2002 16:22:04 +0000 (16:22 +0000)]
#line should have quoted strings.
Ideally, this should be done by m4_quotearg.
* src/scan-skel.l: Include quotearg.h.
Quote __ofile__.
* src/output.c (symbol_printers_output)
(symbol_destructors_output): Quote the file name.

21 years agoTypo.
Akim Demaille [Wed, 6 Nov 2002 15:35:03 +0000 (15:35 +0000)]
Typo.

21 years ago* tests/regression.at (Invalid inputs): Adjust to the recent
Akim Demaille [Wed, 6 Nov 2002 14:14:48 +0000 (14:14 +0000)]
* tests/regression.at (Invalid inputs): Adjust to the recent
messages.

21 years agoRestore --no-lines.
Akim Demaille [Wed, 6 Nov 2002 14:11:47 +0000 (14:11 +0000)]
Restore --no-lines.
Reported by Jim Kent.
* data/c.m4 (b4_syncline): New.
* data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
* src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
* src/output.c (user_actions_output): Likewise.
(prepare): Define 'b4_synclines_flag'.

21 years ago* src/main.c (main): Free `infile'.
Akim Demaille [Wed, 6 Nov 2002 08:08:46 +0000 (08:08 +0000)]
* src/main.c (main): Free `infile'.
* src/scan-gram.l (handle_syncline): New.
Recognize `#line'.
* src/output.c (user_actions_output, symbol_destructors_output)
(symbol_printers_output): Use the location's file name, not
infile.
* src/reader.c (prologue_augment, epilogue_set): Likewise.

21 years ago* src/scan-gram.l: Use more accurate diagnostics, e.g.
Paul Eggert [Wed, 6 Nov 2002 07:04:24 +0000 (07:04 +0000)]
* 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.

21 years ago(Invalid $n, Invalid @n): Change expected wording accordingly.
Paul Eggert [Wed, 6 Nov 2002 07:01:55 +0000 (07:01 +0000)]
(Invalid $n, Invalid @n): Change expected wording accordingly.