Commit Graph
70 Commits
Author SHA1 Message Date
Paul Eggert 62a21d52ce (YYSIZE_T): Do not define merely because YYSTACK_USE_ALLOCA is nonzero
or alloca or _ALLOCA_H are defined.  On some platforms, <alloca.h>
does not declare YYSTD (size_t).
2002-01-29 13:50:11 +00:00
Akim Demaille 7525f95ed5 * src/bison.simple (YYSTDERR): Remove, replace `stderr'.
The ISO C++ standard is extremely clear about it: stderr is
considered a macro, not a regular symbol (see table 94 `Header
<cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
Therefore std:: does not apply to it.  It still does with fprintf.
Also, s/cstdio.h/cstdio/.
2002-01-03 09:48:08 +00:00
Akim Demaille ea04a14c5c * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
Sparc, as they were causing more porting problems than the
(minor) performance improvement was worth.
2001-12-27 18:30:40 +00:00
Paul Eggert bfb74f79b8 (YYSTD): New macro.
(YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE, YYFPRINTF, YYSTDERR): Use it to
simplify macros, and fix some C++ porting problems reported by Hans Aberg.
2001-12-17 23:50:16 +00:00
Paul Eggert 63e75f2e38 (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
Do not infringe on the global user namespace when using C++.
(YYFPRINTF, YYSTDERR): New macros, needed for the above.
All uses of `fprintf' and `stderr' changed.
2001-12-13 02:20:28 +00:00
Paul Eggert 716c50b877 * src/bison.simple (union yyalloc): Change member names
to be the same as the stack names.
(YYPOINTER): Remove.
(yyparse): yyptr is now union yyalloc *, not char *.
(YYSTACK_RELOCATE): Likewise.  This avoids a GCC warning,
and may generate better code on some machines.
2001-12-04 14:06:06 +00:00
Paul Eggert 1ccbf4bb8b (YYPOINTER): New macro.
(YYSTACK_RELOCATE): Use it to avoid a GCC warning.
(yystpcpy): Use prototype if __STDC__ is defined, not just
if __cplusplus is defined.
2001-12-04 13:28:18 +00:00
Akim Demaille fc7ddd2818 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
if body instead of `;' to pacify GCC's warnings.
2001-11-30 13:14:10 +00:00
Akim Demaille 9e55edfc29 * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
if body instead of `;' to pacify GCC's warnings.
2001-11-30 11:11:08 +00:00
Paul Eggert 7ad28769d6 (YYSTACK_REALLOC): Remove.
(YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
(YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
New macros.
(union yyalloc): New type.
(__yy_memcpy): Last arg is size_t, not unsigned int, to remove
an arbitrary restriction on hosts where size_t is wider than int.

(yyparse): Don't dump core if alloca or malloc fails; instead, report
a parser stack overflow.  Allocate just one block of memory for all
three stacks, instead of allocating three blocks; this typically is
faster and reduces fragmentation.

Do not limit the number of items in the stack to a value that fits
in 'int', as this is an arbitrary limit on hosts with 64-bit
size_t and 32-bit int.
2001-11-30 02:47:56 +00:00
Paul Eggert eb4a4d73bc * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
use alloca when we didn't want to, and vice versa.
2001-11-27 23:31:47 +00:00
Akim Demaille c555896775 * src/bison.simple (yyparse): When reporting verbosely an error,
no longer issue additional quotes around token names.
* tests/calc.at: Adjust.
2001-11-19 09:13:26 +00:00
Akim Demaille 3e85a00236 * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
defined only if yyoverflow is defined, to avoid `warning: unused
variable `yyvs1''.
Reported by The Test Suite.
2001-11-14 14:57:06 +00:00
Akim Demaille 97e9ee3ad5 * src/bison.simple (YYSTACK_REALLOC): New.
(yyparse) [!yyoverflow]: Use it and free the old stack.
Reported by FIXME: Who.
2001-11-12 09:14:35 +00:00
Akim Demaille bf31619762 * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
Use `#if , not `#ifndef'.
Reported by Airy Andre.
2001-10-10 14:59:46 +00:00
Akim Demaille 31a743b2bb * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
Use `#if YYSTACK_USE_ALLOCA', not `#ifdef'.
Reported by Airy Andre.
2001-10-10 14:52:20 +00:00
Robert Anisko 38e616f0f5 * src/bison.simple (yyparse): Don't take the address of an
item before the start of an array, as that doesn't conform to
the C Standard.
2001-08-29 12:21:38 +00:00
Marc Autret 78d09da9a5 * src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
defining it (defined but null disables alloca).
2001-08-13 21:37:22 +00:00
Marc Autret 5a009f2c4c * src/bison.simple (_yy_memcpy): CPP reformat. 2001-08-13 21:10:10 +00:00
Akim Demaille fabd3b431d Typos and Copyright. 2001-08-13 14:51:15 +00:00
Marc Autret ca96bc2d17 * src/bison.simple (YYLLOC_DEFAULT): Update.
(yyparse): Adjust.
2001-08-09 19:59:29 +00:00
Akim Demaille 3419715d61 * src/bison.simple (yyparse): Suppress warning `comparaison
between signed and unsigned'.
2001-07-18 10:07:45 +00:00
Akim Demaille 573c1d9ff8 * src/system.h (obstack_grow_literal_string): Rename as...
(obstack_grow_string): this.
* src/output.c (output_parser): Recognize `%% actions' instead of
`$'.
* src/bison.s1: s/$/%% actions/.
* src/bison.hairy: Likewise.
2000-12-19 14:51:24 +00:00
Akim Demaille ef7ddeddaa * src/output.c (output_parser): Compute the `#line' lines when
there are.
* src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
Suggested by Hans Aberg.
2000-12-19 13:40:42 +00:00
Akim Demaille 69b4e0c5ea Cosmetic changes. 2000-12-15 09:43:09 +00:00
Akim Demaille 3abcd45995 * src/bison.s1 (YYLLOC_DEFAULT): New macro.
Provide a default definition.
Use it when executing the default @ action.
* src/reader.c (reader_output_yylsp): No longer include
`timestamp' and `text' in the default YYLTYPE.
2000-12-14 13:03:32 +00:00
Akim Demaille a35f64eade * src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
macros.
Use them to declare the variables which are global or local to
`yyparse'.
2000-11-17 10:57:30 +00:00
Akim Demaille aa7815f5c6 * src: s/Copyright (C)/Copyright/g. 2000-11-07 16:28:47 +00:00
Akim Demaille 5af1f54933 * src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
defining.
* src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
2000-11-07 15:56:20 +00:00
Akim Demaille 553e2b222f * src/bison.s1 (YYLEX): Use #if instead of #ifdef.
Merge in a single CPP if/else.
2000-11-07 15:51:45 +00:00
Akim Demaille da9abf4366 * bison.s1 (yyparse): Assign the default value
unconditionally, to avoid a GCC warning and make the parser a
tad smaller.
2000-10-02 10:29:00 +00:00
Akim Demaille 5a35a6cb71 Test also --verbose', --defines' and `--name-prefix'. Testing
the latter demonstrates a flaw in the handling of non debugging
parsers introduced by myself on 2000-03-16: `#define yydebug 0'
was used in order to simplify:
#if YYDEBUG
if (yydebug)
{
...
}
#endif
into
if (yydebug)
{
...
}
unfortunately this leads to a CPP conflict when
`--name-prefix=foo' is used since it produces `#define yydebug
foodebug'.
* src/bison.s1 [!YYDEBUG]: Do not define yydebug.
(YYDPRINTF): New macro.
Spread its use.
* tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
the bison options.
Also test `--verbose', `--defines' and `--name-prefix'.
2000-10-02 09:04:40 +00:00
Akim Demaille 71da9eeacc Improve the readability of the produced parsers.
* src/bison.s1: Formatting changes.
Improve the comment related to the `$' mark.
(yydefault): Don't fall through to `yyresume': `goto' there.
* src/output.c (output_parser): When the `$' is met, skip the end
of its line.
New variable, `number_of_dollar_signs', to check there's exactly
one `$' in the parser skeleton.
2000-10-02 09:03:20 +00:00
Akim Demaille 0d533154e4 First set of tests: use the `calc' example from the documentation.
* src/bison.s1 (yyparse): Condition the code using `yytname' which
is defined only when YYDEBUG is.
* m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
* src/files.c (tryopen, tryclose): Formatting changes.
Move to the top and be static.
* src/reader.c (read_signed_integer): Likewise.
* tests/calc.m4: New file.
* Makefile.am, suite.m4: Adjust.
* m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
2000-09-18 13:18:26 +00:00
Akim Demaille 75bbe78d87 On syntax errors, report the token on which we choked.
* bison.s1 (yyparse): In the label yyerrlab, when YYERROR_VERBOSE,
add yychar in msg.
2000-03-17 13:17:09 +00:00
Akim Demaille 6666f98f4f Change the handling of @s so that they behave exactly like $s.
There is now a pseudo variable @$ (readble and writable), location
of the lhs of the rule (by default ranging from the location of
the first symbol of the rhs, to the location of the last symbol,
or, if the rhs is empty, YYLLOC).

* src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
yyval.
(yyparse): When providing a default semantic action, provide a
default location action.
(after the $): No longer change `*YYLSP', just stack YYLOC the
same way you stack YYVAL.
* src/reader.c (read_declarations): Use warns.
(copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
(copy_action, case '@'): Likewise.
Use a standard error message, to save useless work from
translators.
2000-03-17 11:30:24 +00:00
Akim Demaille 41aca2e038 * bison.s1: Formatting and cosmetics changes.
* reader.c: Likewise.
Update the Copyright notice.
2000-03-17 11:28:47 +00:00
Akim Demaille dc08c1d53b * bison.s1 (#line): All set to `#line' only, since the Makefile
now handles them.
2000-03-17 11:27:17 +00:00
Akim Demaille 0de741ca66 * src/bison.s1 [!YYDEBUG]: Define yydebug to 0. This allows to
remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
One `#if YYDEBUG' remains, since it uses variables which are
defined only if `YYDEBUG != 0'.
2000-03-16 16:02:16 +00:00
Akim Demaille bb10be5408 * src/bison.s1 (yyparse): Reorganize the definitions of the stacks
and related variables so that the similarities are highlighted.
2000-03-16 16:00:07 +00:00
Akim Demaille b07b484a41 * src/bison.s1: Properly indent CPP directives. 2000-03-16 15:58:56 +00:00
Akim Demaille 361f60b34e * src/bison.s1: Properly indent the `alloca' CPP section. 2000-03-16 15:56:57 +00:00
Jesse Thilo ca1d9e53ce Fixed #line numbers. 1999-03-22 16:30:00 +00:00
Jesse Thilo c49a8e71ce Update FSF address. 1999-01-14 14:58:38 +00:00
Richard M. Stallman 7d369561eb Add a Bison version comment. 1997-06-28 19:41:24 +00:00
Richard M. Stallman 70ddf8972a Use malloc, if using alloca is troublesome.
(YYSTACK_USE_ALLOCA): New flag macro.
Define it for some systems and compilers.
(YYSTACK_ALLOC): New macro.
(yyparse): Use YYSTACK_ALLOC to allocate stack.
If it was malloc'd, free it.
1997-05-17 18:44:24 +00:00
Richard M. Stallman 3054a9cdfb (alloca) [__hpux]: Always define as __builtin_alloca. 1997-04-23 18:01:25 +00:00
Richard M. Stallman 009b94d421 [__hpux]: Include alloca.h (right for HPUX 10)
instead of declaring alloca (right for HPUX 9).
1997-04-22 22:23:48 +00:00
Richard M. Stallman 5e02f2ada1 (__yy_memcpy): Declare arg `count' as unsigned int.
(yyparse): Cast third arg to __yy_memcpy to unsigned int.
1997-04-22 22:19:12 +00:00
Paul Eggert 1b1816515e (yyparse): If __GNUC__ and YYPARSE_PARAM are both defined,
declare yyparse to have a void * argument.
1996-12-18 02:18:10 +00:00