Commit Graph

2275 Commits

Author SHA1 Message Date
Akim Demaille
b203fc2c07 * data/lalr1.cc: Reinstall the former ctor, for sake of
compatibility, but warn it will be removed.
Move towards a more standard C++ coding style (i.e., type *var ->
type* var).
2004-09-29 12:41:58 +00:00
Paul Eggert
3fee967f83 Fix comment in latest checkin; there wasn't a bug. 2004-09-27 22:06:45 +00:00
Paul Eggert
5b7e1e73e6 * src/parse-gram.y (add_param): Fix bug where NUL was mishandled. 2004-09-27 22:04:13 +00:00
Paul Eggert
ead9e56eb2 (add_param): Fix bug where NUL was mishandled.
Avoid the use of strchr to avoid future recurrences.
2004-09-27 22:03:42 +00:00
Akim Demaille
0dcca5c22f * data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration. 2004-09-27 07:47:47 +00:00
Akim Demaille
6dde1c82cd * data/lalr1.cc (b4_parse_param_decl_1): New.
(b4_parse_param_decl): Use it to have different names bw attribute
and argument names.
(b4_cc_constructor_call): Likewise.
2004-09-27 07:45:09 +00:00
Akim Demaille
b233d5558f * src/parse-gram.y (add_param): Strip the leading and trailing
blanks from a formal argument declaration.
(YY_LOCATION_PRINT): New.
2004-09-27 07:42:04 +00:00
Akim Demaille
619404e3fd * data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
after the location.
2004-09-24 14:14:58 +00:00
Akim Demaille
dd8d90221a * doc/bison.texinfo (Table of Symbols): Sort. 2004-09-24 11:55:40 +00:00
Akim Demaille
0092f063af * data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
the useless parentheses.
Suggested by Paul Eggert.
2004-09-21 06:59:19 +00:00
Akim Demaille
451364edb1 Let the initial-action act on the look-ahead, and use it for the
"initial push" (corresponding to an hypothetical beginning-of-file).
And let lalr1.cc honor %initial-action.
* doc/bison.texinfo (Initial Action Decl): Clarify, and add an
example.
* data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
(Parser::Parser): Remove the ctor that used to initialize it.
(Parser::parse): Like in the other skeletons, issue the "starting
parse" message before any action.
Honor %initial-action.
Initialize the stacks with the lookahead.
* data/yacc.c: Let $$ and @$ in %initial-action designate the
look-ahead.
Push them in the stacks.
* tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
2004-09-20 15:25:25 +00:00
Akim Demaille
18d192f0ea * doc/bison.texinfo (Initial Action Decl): New. 2004-09-20 14:29:31 +00:00
Akim Demaille
b8458aa5cc * data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
clearer criterion to define it.
(parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
When reducing on an empty RHS, use the latest stacked location as
location.
yylloc is not always available.
* data/glr.c: Likewise.
Also, honor initial-actions.
2004-09-20 12:24:45 +00:00
Akim Demaille
3fc16193d9 * data/yacc.c (YY_LOCATION_PRINT): New.
Define when we know YYLTYPE's structure, i.e., when the default
YYLLOC_DEFAULT is used.
* data/c.m4 (b4_yysymprint_generate): Use it.
* data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
value of the result.
(error_start_): Replace with...
(error_range_): this location array.
This allows to replace code relying on the implementation of
locations by portable code.
* data/yacc.c (yylerrsp): Replace with...
(yyerror_range): this.
Every time a token is popped, update yyerror_range[0], to have an
accurate location for the error token.
* data/glr.c (YY_LOCATION_PRINT): New.
(yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
deference a pointer.
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
report the location in %printers.
* src/scan-skel.l: Instead of abort, report error messages to ease
understanding skeleton scanning failures.
2004-09-20 09:32:55 +00:00
Akim Demaille
ecfe33e799 * data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
(iterator, const_iterator): these, to be more in the C++ spirit.
Also, return reverse iterators so that when displaying the stack
we display its bottom first.
(Parser::stack_print_, Parser::reduce_print_): Match the messages
from yacc.c.
We should probably use vector here though.
2004-09-16 14:41:18 +00:00
Akim Demaille
1576d44dce Have more complete shift traces.
* data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
to report Shifts instead of ad hoc YYDPRINTF invocations,
including for the error token.
* data/lalr1.cc (symprint_): Output the location.
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
output the location within the %printer.
Activate GLR tests, at least to make sure they compile properly.
They still don't pass though.
* tests/calc.at: Adjust expect verbose output, since now "Entering
state..." is on a different line than the "Shifting" message.
2004-09-16 14:14:27 +00:00
Akim Demaille
9c66f418c4 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
Bison directive from the Bison file to the invocation of this
macro, so that these directives are passed to
AT_BISON_OPTION_PUSHDEFS to get correct help macros.
Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
Move the AT_SETUP/AT_CLEANUP outside, to report as test title
the extra Bison directives instead of the whole series.
Change the grammar so that there are recoverable errors, and
unrecoverable errors.  Now we can have the parser give up before
consuming the whole input.  As a result we now can observe that
the lookahead is freed when needed.
Change the parser source to parse argv[1] instead of a hard coded
string.
Simplify yylex, and give a value and location to EOF.
Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
passed directives already coded in the file.
Add some tests to check the location of "error".
For some tests, the C++ parser is correct, and not yacc.c.
For other tests, they provide different, but unsatisfying, values,
so keep the C++ value so that at least one parser is "correct"
according to the test suite.
(Actions after errors): Remove, this is subsumed by the
AT_CHECK_PRINTER_AND_DESTRUCTOR series.
2004-09-08 14:36:25 +00:00
Akim Demaille
52d5733ff0 * data/lalr1.cc: Adjust the indentation of the labels.
Use it.
2004-09-06 14:32:05 +00:00
Akim Demaille
a0e68930d8 * data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
argument, an informative message.
Call YY_SYMBOL_PRINT.
Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
* data/lalr1.cc (destruct_): Likewise.
In addition, no longer depend on b4_yysymprint_generate and
b4_yydestruct_generate to generate these functions, do it "by
hand".
2004-09-06 10:29:52 +00:00
Akim Demaille
e757bb10bc * data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
invoked, yydestruct the lookahead.
* tests/calc.at (Calculator $1): Update the expected lengths of
traces: there is an added line for the discarded lookahead.
* doc/bison.texinfo (Destructor Decl): Some rewording.
Define "discarded" symbols.
2004-09-06 07:48:20 +00:00
Akim Demaille
0fe1f06d36 * data/lalr1.cc (translate_, destruct_): No reason to be static. 2004-09-02 14:30:55 +00:00
Akim Demaille
284acc8ba7 * data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
(YYDSYMPRINTF): Rename as...
(YY_SYMBOL_PRINT): this.
* data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
two.
Use it instead of direct symprint_ calls.
(yybackup): Tweak the "Now at end of input" case to match yacc.c's
one.
2004-09-02 14:27:02 +00:00
Akim Demaille
b7c72fe1c4 Fix ChangeLog. 2004-09-02 13:25:23 +00:00
Akim Demaille
a5eb1ed262 * tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
%printer calls to use cdebug_ when using lalr1.cc.
* data/lalr1.cc (b4_yysymprint_generate): New.
2004-09-02 13:04:11 +00:00
Akim Demaille
417141dd61 * data/glr.c: Guard the declarations of yypstack and yypdumpstack
with #ifdef YYDEBUG.
2004-08-30 07:50:08 +00:00
Akim Demaille
2fa09258b1 * doc/bison.texinfo (Implementing Loops): Rename as...
(Implementing Gotos/Loops): this.
2004-08-26 13:05:41 +00:00
Paul Eggert
2ed973bf1d Regenerate. 2004-08-18 20:35:31 +00:00
Paul Eggert
9378b5082b Adjust to latest gnulib. 2004-08-13 14:29:05 +00:00
Paul Eggert
a9f027b9c4 Adjust to latest gnulib.
(gnulib_modules): Add xalloc-die.
Set LC_ALL=C so that file names sort consistently.
Prefer the gnulib copies of gettext.m4, glibc21.m4,
inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
uintmax_t.m4, ulonglong.m4.
(intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
po.m4 since we are now using _gl.m4 instead.
2004-08-13 14:28:43 +00:00
Paul Eggert
87a8ad5cd3 Remove src/scan-action.l. 2004-08-11 04:19:14 +00:00
Paul Eggert
dca81a78f8 uniqstr wasn't being used for handle_syncline like it should. 2004-08-08 04:57:06 +00:00
Paul Eggert
c9cbf7c58e Fix bug with non-%union parsers that have printers or destructors,
which led to a Bison core dump.
2004-07-22 14:42:11 +00:00
Paul Eggert
ac700aa646 (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
UNION-FLAG.  All callers changed.
(_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
Use type char, not unsigned int, when declaring an array of char;
this lets us remove a cast.
(Printers and Destructors): Add non-%union test cases.
2004-07-22 14:40:21 +00:00
Paul Eggert
ee42c6166b (symbol_destructors_output, symbol_printers_output):
Don't assume %union.
2004-07-22 14:39:58 +00:00
Paul Eggert
c0659069d0 (yystype) [defined YYSTYPE]: Define to YYSTYPE, not to our own type. 2004-07-22 14:39:34 +00:00
Paul Eggert
60c8294801 (b4_symbol_actions): Don't assume %union was used. 2004-07-22 14:39:03 +00:00
Paul Eggert
fa7e68c397 Reorganize GLR section a bit. 2004-06-22 06:50:29 +00:00
Paul Eggert
0817d1eccb One more "lookahead" -> "look-ahead" change. 2004-06-21 21:01:42 +00:00
Paul Eggert
99a9344e77 New section "Simple GLR Parsers". 2004-06-21 20:55:20 +00:00
Paul Eggert
85f23fae45 Regenerate. 2004-06-21 20:51:32 +00:00
Paul Eggert
8dd162d3ff Use "look-ahead" instead of "lookahead", consistently. 2004-06-21 20:20:31 +00:00
Paul Eggert
57a90331bd Update location of patched M4 distribution. 2004-06-03 22:38:23 +00:00
Paul Eggert
69daa921b8 Update location of patched M4 version. 2004-06-03 22:28:57 +00:00
Paul Eggert
8ed3234a14 Don't assume the C++ compiler takes the same arguments as the C compiler. 2004-05-30 18:58:00 +00:00
Paul Eggert
0797198341 Fix some "make check" problems with Tru64 C++. 2004-05-30 00:56:57 +00:00
Paul Eggert
2905865228 Workaround for SGI C++ compiler. 2004-05-29 07:16:29 +00:00
Paul Eggert
fd418816b9 Increase prerequisite version numbers to match what the code really needs. 2004-05-27 20:51:16 +00:00
Paul Eggert
329d23c5d6 Regenerate. 2004-05-27 07:40:12 +00:00
Paul Eggert
62cb8a9920 * src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug.
* configure.ac (AC_PREREQ): Bump to 2.58.
2004-05-27 07:38:17 +00:00
Paul Eggert
caa52c10c5 * configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to 0.11.5.
* bootstrap: Remove gettext version checking.
2004-05-26 19:25:21 +00:00