Commit Graph

297 Commits

Author SHA1 Message Date
Jeff Bailey
42a0c7760b Gratuitous change to NEWS to test mailout 2000-10-02 20:04:58 +00:00
Jeff Bailey
e02cf9e74a Gratuitous change to test mail out 2000-10-02 20:00:35 +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
8f52a1e790 Typos in ChangeLog. 2000-10-02 10:23:43 +00:00
Akim Demaille
c33638bb30 * src/getargs.c (getargs): Don't dump `--help' on unrecognized
options.
2000-10-02 10:22:19 +00:00
Akim Demaille
444c570aad * src/derives.c, src/print.c, src/reduce.c: To ease the
translation, move some `n' out of the translated strings.
2000-10-02 10:21:47 +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
d6c2cba06d Also test parse error messages, including with YYERROR_VERBOSE.
* tests/calc.m4 (calc.y): Add support for `exp = exp' (non
associative).
Use it to check the computations.
Use it to check `nonassoc' is honored.
(AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
`--yyerror-verbose'.
(_AT_CHECK_CALC): Adjust to this option.
(_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
2000-10-02 09:05:32 +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
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
1916f98ef8 * src/getargs.c (fixed_outfiles): Rename as...
(yaccflag): for consistency and accuracy.
Adjust dependencies.
2000-10-02 08:50:07 +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
403b315bb1 * src/LR0.h: New file.
Propagate its use.
2000-10-02 08:14:22 +00:00
Akim Demaille
07a58c1301 * src/print.h: New file.
Propagate its use.
* src/print.c: Formatting and ordering changes.
(verbose, terse): Replace with...
(print_results): this new function.
Adjust dependencies.
2000-10-02 08:10:26 +00:00
Akim Demaille
0619caf0b1 * src/conflicts.c (conflict_report): New function.
(conflict_log, verbose_conflict_log): Replace with...
(print_conflicts): this function.
Adjust dependencies.
* src/conflicts.h: New file.
Propagate its inclusion.
2000-10-02 08:08:52 +00:00
Akim Demaille
3519ec76a3 * src/nullable.h: New file.
Propagate its inclusion.
* src/nullable.c: Formatting changes.
2000-10-02 08:06:43 +00:00
Akim Demaille
85bcaacc59 Add src/reduce.h to the repository. 2000-10-02 08:05:37 +00:00
Akim Demaille
015acc4834 * src/reduce.h: New file.
Propagate its inclusion.
* src/reduce.c: Topological sort and other formatting changes.
(bool, TRUE, FALSE): Move their definition to...
* src/system.h: here.
2000-10-02 08:04:25 +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
720d742f8e * src/lalr.h: New file.
Propagate its inclusion instead of prototypes and `extern'.
* src/lalr.c: Formatting changes, topological sorting etc.
2000-10-02 07:56:58 +00:00
Akim Demaille
f2acea59d9 * src/output.c (token_actions): Introduce a temporary array,
YYDEFACT, that makes it possible for this function to use
output_short_table.
2000-10-02 07:55:11 +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
Jesse Thilo
d5796688b1 Print contents near beginning, not at the end. 2000-09-27 23:59:22 +00:00
Akim Demaille
d9efd18111 * src/atgeneral.m4: Update from Autoconf. 2000-09-21 13:08:33 +00:00
Akim Demaille
c29240e74b * src/closure.h: New file.
* src/closure.c: Formatting changes, topological sort over the
functions, use of closure.h.
(initialize_closure, finalize_closure):  Rename as...
(new_closure, free_closure): these.  Adjust dependencies.
* src/LR0.c: Formatting changes, topological sort, use of
cloture.h.
(initialize_states): Rename as...
(new_states): this.
* src/Makefile.am (noinst_HEADERS): Adjust.
2000-09-21 10:17:59 +00:00
Akim Demaille
2fa6973e6f * src/closure.h: New file.
* src/closure.c: Formatting changes, topological sort over the
functions, use of closure.h.
(initialize_closure, finalize_closure):  Rename as...
(new_closure, free_closure): these.  Adjust dependencies.
* src/LR0.c: Formatting changes, topological sort, use of
cloture.h.
(initialize_states): Rename as...
(new_states): this.
* src/Makefile.am (noinst_HEADERS): Adjust.
2000-09-20 15:43:39 +00:00
Akim Demaille
499daa504f * src/acconfig.h: Don't protect config.h against multiple
inclusion.
Don't define PARAMS.
* src/system.h: Define PARAMS.
Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
purpose of config.h.  system.h must not try to fix wrong
definitions in config.h.
2000-09-20 13:50:34 +00:00
Akim Demaille
cc84fd5dc7 * src/derives.h: New file.
* src/main.c, src/derives.h: Use it.
Formatting changes.
* src/Makefile.am (noinst_HEADERS): Adjust.
2000-09-20 13:14:11 +00:00
Akim Demaille
db5b3a89b4 * tests/atgeneral.m4: Update from Autoconf.
* tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
(AT_CHECK_CALC): New macros.
Use these macros to test bison with options `', `--raw',
`--debug', `--yacc', `--yacc --debug'.
2000-09-20 11:58:23 +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
05a1d24b1e * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
portable.
2000-09-19 12:37:58 +00:00
Akim Demaille
cbd25751d4 * configure.in: Append WARNING_CFLAGS to CFLAGS.
* src/Makefile.am (INCLUDES): Don't.
Be ready to fetch headers in lib/.
2000-09-18 17:53:09 +00:00
Akim Demaille
1386333308 * doc/bison.texinfo: Update the copyright.
ANSIfy and GNUify the examples.
Remove the old menu.
2000-09-18 13:24:27 +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
8aa892b461 Call free_nullable() when done. 2000-07-04 03:43:32 +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
Jesse Thilo
dd877b0c39 Check for `inline' explicitly. 2000-04-13 19:12:06 +00:00
Jesse Thilo
ab3bec2946 # oops: wanted -Wshadow, not -Wno-char-subscripts. 2000-04-13 18:47:05 +00:00
Jesse Thilo
00f4332938 Take full advantage of GNU C library when available. 2000-04-13 18:06:46 +00:00
Jesse Thilo
630f521258 # added --enable-gcc-warnings (not for user consumption). 2000-04-13 18:03:25 +00:00
Jesse Thilo
e1edb685d9 Added translation updates. 2000-04-13 17:38:12 +00:00