Commit Graph

45 Commits

Author SHA1 Message Date
Akim Demaille
79282c5ad0 * src/reader.c (copy_dollar): New function.
(copy_guard, copy_action): Use it.
2000-10-16 18:00:41 +00:00
Akim Demaille
ff4a34be27 * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
* m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
New files, from Fileutils 4.0.27.
* src/main.c (printable_version): Remove.
* src/lex.c, src/reader.c: Use `quote'.


* lib/error.c, lib/error.h: New files, needed by xmalloc.c.
2000-10-16 17:28:41 +00:00
Akim Demaille
8e03724b11 When a literal string is used to define two different tokens,
`bison -v' segfaults.
Reported by Piotr Gackiewicz, and fixed by Neil Booth.
* tests/regression.m4: New file.
Include the core of the sample provided by Piotr Gackiewicz.
* src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
properly.
2000-10-04 11:52:53 +00:00
Akim Demaille
a9e64249c8 * src/reader.c (parse_expect_decl): Keep `count' within the size
of `buffer'.
From Neil Booth.
2000-10-04 11:31:14 +00:00
Akim Demaille
89cab50df1 The location tracking mechanism is precious for parse error
messages.  Nevertheless, it is enabled only when `@n' is used in
the grammar, which is a different issue (you can use it in error
message, but not in the grammar per se).  Therefore, there should
be another means to enable it.
* src/getargs.c (getargs): Support `--locations'.
(usage): Report it.
* src/getargs.h (locationsflag): Export it.
* src/lex.c (percent_table): Support `%locations'.
* src/reader.c (yylsp_needed): Remove this variable, now replaced
with `locationsflag'.
* doc/bison.texinfo: Document `--locations' and `%locations'.
Sort the options.
* tests/calc.m4: Test it.
For regularity of the names, replace each
(nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
(no_lineflag, token_tableflag, rawflag, no_parserflag): this.
In addition replace each `flag' with `_flag'.
2000-10-02 10:20:59 +00:00
Akim Demaille
95e36146a5 * lib/xstrdup.c: New file, from the fileutils.
* src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
(parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
instead of strlen + xmalloc + strcpy.
* src/symtab.c (copys): Remove, use xstrdup instead.
2000-10-02 09:01:19 +00:00
Akim Demaille
d7020c2078 * src/gram.h (associativity): New enum type which replaces the
former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
`right_assoc', `left_assoc' and `non_assoc'.
Adjust all dependencies.
* src/reader.c: Formatting changes.
(LTYPESTR): Don't define it, use it as a literal in
`reader_output_yylsp'.
* src/symtab.h (symbol_class): New enum type which replaces the
former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
`sunknown', `stoken and `snterm'.
2000-10-02 08:51:00 +00:00
Akim Demaille
d7913476c4 Use the more standard files xalloc.h' and xmalloc.c' instead of
Bison's `allocate.c' and `alloc.h'.  This patch was surprisingly
difficult and introduced a lot of core dump.  It turns out that
Bison used an implementation of `xmalloc' based on `calloc', and
at various places it does depend upon the initialization to 0.  I
have not tried to isolate the pertinent places, and all the former
calls to Bison's `xmalloc' are now using `XCALLOC'.  Someday,
someone should address this issue.
* src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
* lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
files.
Adjust dependencies.
* src/warshall.h: New file.
Propagate.
2000-10-02 08:48:32 +00:00
Akim Demaille
340ef48922 Various anti-`extern in *.c' changes.
* src/system.h: Include `assert.h'.
2000-10-02 08:35:47 +00:00
Akim Demaille
b2ca4022ea * src/state.h (nstates, final_state, first_state, first_shift)
(first_reduction): Move their exportation from here...
* src/LR0.h: to here.
Adjust dependencies.
* src/getargs.c (statisticsflag): New variable.
Add support for `--statistics'.
Adjust dependencies.
Remove a lot of now useless `extern' statements in most files.
2000-10-02 08:22:23 +00:00
Akim Demaille
8963a27bde * src/files.c: Formatting changes.
(tryopen, tryclose, openfiles): Rename as...
(xfopen, xfclose, open_files): this.
(stringappend): static.
* src/files.h: Complete the list of exported symbols.
Propagate its use.
2000-10-02 08:02:12 +00:00
Akim Demaille
a70083a3ed * src/reader.h: New file.
Propagate its use instead of tedious list of `extern' and
prototypes.
* src/reader.c: Formatting changes, topological sort,
s/register//.
2000-10-02 08:00:34 +00:00
Akim Demaille
abadc11757 * src/lex.h: Prototype `lex.c' exported functions.
* src/reader.c: Adjust.
* src/lex.c: Formatting changes.
(safegetc): Rename as...
(xgetc): this.
2000-10-02 07:59:08 +00:00
Akim Demaille
d019d65507 user_toknums' is output as a short[]' in `output.c', while it is
defined as a `int[]' in `reader.c'.  For consistency with the
other output tables, `user_toknums' is now defined as a table of
shorts.

* src/reader.c (user_toknums): Be a short table instead of an int
table.
Adjust dependencies.

Factor the short table outputs.

* src/output.c (output_short_table): New function.
* src/output.c (output_gram, output_stos, output_rule_data)
(output_base, output_table, output_check):  Use it.
2000-10-02 07:53:36 +00:00
Akim Demaille
6c89f1c138 * src/output.c (output): Topological sort of the functions, in
order to get rid of the `static' prototypes.
No longer use `register'.
* src/output.h: New file.
Propagate its inclusion in files explicitly prototyping functions
from output.c.
2000-10-02 07:50:14 +00:00
Akim Demaille
ceed8467b7 * src/output.c: Formatting changes.
* src/machine.h: Remove, leaving its contents in...
* src/system.h: here.
Include stdio.h.
Adjust all dependencies on stdio.h and machine.h.
* src/getargs.h: New file.
Let all `extern' declarations about getargs.c be replaced with
inclusion of `getargs.h'.
* src/Makefile.am (noinst_HEADERS): Adjust.

* tests/calc.m4 (yyin): Be initialized in main, not on the global
scope.
(yyerror): Returns void, not int.
* doc/bison.texinfo: Formatting changes.
2000-09-19 18:10:41 +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
e79137accc Add support for an Autotest test suite for Bison.
* m4/m4.m4, m4/atconfig.m4: New files.
* m4/Makefile.am (EXTRA_DIST): Adjust.
* tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
files.
* src/getargs.c: Display a more standard --version message.
* src/reader.c (reader): Formatting changes.
No longer depend upon VERSION_STRING.
* configure.in: No longer use `dnl'.
Set up the test suite and the new directory `tests/.
(VERSION_STRING): Remove.
2000-09-18 13:01:59 +00:00
Jesse Thilo
4a120d45e6 More explicit use of "const", "extern", and "static", particularly to
limit the scope of many local variables and functions.
2000-07-04 03:29:02 +00:00
Akim Demaille
27821bff0f * src/reader.c (copy_comment2): New function, same as former
`copy_comment', but outputs into two FILE *.
(copy_comment): Use it.
(parse_union_decl): Use it.
(get_type, parse_start_decl): Use the same `invalid' message.
(parse_start_decl, parse_union_decl): Use the same `multiple'
message.
(parse_union_decl, copy_guard, copy_action): Use the same
`unmatched' message.
* m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
2000-04-14 13:59:15 +00:00
Akim Demaille
3628146521 s/return (foo)/return foo/ 2000-03-31 14:27:06 +00:00
Akim Demaille
a0f6b07611 Clean the error reporting functions.
* src/report.c: New file.
* src/report.h: Likewise.
* src/Makefile.am: Adjust.
* m4/error.m4: New file.
* m4/Makefile.am: Adjust.
* configure.in (jm_PREREQ_ERROR): Call it.
* src/main.c (int_to_string, banner, fatal_banner, warn_banner):
Remove.
(fatal, fatals): Remove.  All callers use complain.c::fatal.
(warn, warni, warns, warnss, warnss): Remove.  All callers use
complain.c::complain.
(toomany): Remove, use fatal instead.
* src/files.c (done): No argument, use complain_message_count.
* src/main.c (main): Register `done' to `atexit'.

* src/getargs.c (usage): More `fputs', less `fprintf'.
2000-03-31 13:54:30 +00:00
Akim Demaille
7b306f528a * reader.c (copy_at): New function.
(copy_guard): Use it.
(copy_action): Use it.
2000-03-17 13:04:32 +00:00
Akim Demaille
ae3c316400 * reader.c (copy_definition): Use copy_string and copy_comment.
Removed now unused `match', `ended', `cplus_comment'.
(copy_comment, copy_string): Moved, to be visible from
copy_definition.
2000-03-17 11:37:09 +00:00
Akim Demaille
4dc58e7c76 * reader.c (copy_string): Declared `static inline'. No problems
with inline, since it is checked by configure.
(copy_comment): Likewise.
2000-03-17 11:36:31 +00:00
Akim Demaille
0a6384c401 * reader.c (packsymbols): Formatting changes. 2000-03-17 11:34:53 +00:00
Akim Demaille
3cef001a70 * reader.c (copy_comment): New function, factored out from:
(copy_action): Use it.  Removed now unused `match', `ended',
`cplus_comment'.
(copy_guard): Likewise.
2000-03-17 11:32:28 +00:00
Akim Demaille
ca36d2efbc * reader.c (copy_string): New function, factored out from:
(copy_action): Use it.
(copy_guard): Likewise.
2000-03-17 11:31:40 +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
Jesse Thilo
6ed6122606 Have configure build version string instead of relying on ANSI string
concatentation.
1999-06-14 22:22:25 +00:00
Jesse Thilo
2686a6e713 Hush a few compiler warnings. 1999-01-20 22:55:06 +00:00
Jesse Thilo
c49a8e71ce Update FSF address. 1999-01-14 14:58:38 +00:00
Jesse Thilo
74a53b4b48 Update copyright date. 1998-12-30 06:54:16 +00:00
Jesse Thilo
e6011337c3 Some checks for premature EOF. 1998-12-30 06:07:25 +00:00
Jesse Thilo
118fb2053c Fix a couple of buffer overrun bugs.
Use prototypes if the compiler understands them.
1998-12-30 05:21:02 +00:00
Jesse Thilo
5b2e3c8982 Fix token numbering (used to start at 258, not 257). 1998-11-25 22:13:09 +00:00
Richard M. Stallman
aba5ca6dea (stack_offset;): Change some warni to warns. 1997-08-25 19:40:12 +00:00
Richard M. Stallman
7612000cb0 new.h renamed to alloc.h. 1997-06-18 06:40:45 +00:00
Richard M. Stallman
a083fbbf22 Insert `_' macro around many string constants. 1996-06-01 22:10:15 +00:00
Richard M. Stallman
943819bf46 (reader_output_yylsp): New function.
(readgram): Use `#if 0' around code that accepted %command
inside grammar rules:  The documentation doesn't allow it,
and it will fail since the %command processors scan for the next %.
(parse_token_decl):  Extended the %token
declaration to allow a multi-character symbol as an alias.
(parse_thong_decl): New function.
(read_declarations): Added %thong declarations.
(read_declarations): Handle NOOP to deal with allowing
% declarations as another means to specify the flags.
(readgram): Allow %prec prior to semantics embedded in a rule.
(skip_to_char, read_declarations, copy_definition)
(parse_token_decl, parse_start_decl, parse_type_decl)
(parse_assoc_decl, parse_union_decl, parse_expect_decl)
(get_type_name, copy_guard, copy_action, readgram)
(get_type, packsymbols):  Revised most error messages.
Changed `fatal' to `warnxxx' to avoid aborting for error.
Revised and use multiple warnxxx functions to avoid using VARARGS1.
(read_declarations): Improve the error message for
an invalid character.  Do not abort.
(read_declarations, copy_guard, copy_action): Use
printable_version to avoid unprintable characters in printed output.
(parse_expect_decl): Error if argument to %expect exceeds 10 digits.
(parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
Allow the type of a non-terminal can be given
more than once, as long as all specifications give the same type.
1995-10-15 20:17:23 +00:00
Richard M. Stallman
572909b5db entered into RCS 1994-07-12 20:43:44 +00:00
Noah Friedman
8f66601fe2 *** empty log message *** 1993-04-28 19:15:14 +00:00
David MacKenzie
9a1af7e6b2 *** empty log message *** 1993-04-20 06:00:53 +00:00
Noah Friedman
1ff442ca0b Initial revision 1993-04-18 05:49:49 +00:00