Commit Graph

1755 Commits

Author SHA1 Message Date
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
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
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
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
cfe5fbc0a1 * src/files.c (tryopen, tryclose): Move to the top.
Be static.
2000-03-31 14:56:00 +00:00
Akim Demaille
cb7db13e45 * src/main.c (main): Don't call `done', exit does it. 2000-03-31 14:37:10 +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
1853982561 * lib/: New directory.
* Makefile.am (SUBDIRS): Adjust.
* configure.in: Adjust.
(LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
useless.
* src/alloca.c: Moved to lib/.
* src/getopt.c: Likewise.
* src/getopt1.c: Likewise.
* src/getopt.h: Likewise.
* src/ansi2knr.c: Likewise.
* src/ansi2knr.1: Likewise.
* src/Makefile.am: Adjust.
* lib/Makefile.am: New file.
2000-03-28 13:30:57 +00:00
Akim Demaille
9f306f2a73 * src/getargs.c (usage): Refresh the help message. 2000-03-28 12:50:35 +00:00
Akim Demaille
0ba347b638 * src/getopt1.c: Updated from textutils 2.0e
* src/getopt.c: Likewise.
* src/getopt.h: Likewise.
2000-03-17 15:10:29 +00:00
Akim Demaille
aa5fd0ee9a Fixed filenames in ChangeLog. 2000-03-17 14:14:07 +00:00
Akim Demaille
dbe7f27171 * src/Makefile.am (bison.simple): Fix the awk program: quote only
the file name, not the whole `#line LINE FILE'.
2000-03-17 13:33:02 +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
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
e87b57008e Be kind to translators, save some useless translations.
* main.c (banner): New function.
(fatal_banner): Use it.
(warn_banner): Use it.
2000-03-17 13:02:28 +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
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
9ee3c97bce * src/output.c (output_rule_data): Output the documentation of
some of the tables.
(Copyright notice): Update.
Formatting changes.
2000-03-17 10:48:28 +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