Commit Graph

328 Commits

Author SHA1 Message Date
Akim Demaille
d7045ec672 * lib/obstack.h: Formatting changes.
(obstack_grow, obstack_grow0): Don't cast WHERE at all: it
prevents type checking.
(obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
cast the value to (void *): assigning a `foo *' to a `void *'
variable is valid.
(obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
* src/reader.c (parse_union_decl): Typo: use obstack_1grow to
append characters.
2000-11-17 14:14:36 +00:00
Akim Demaille
6fd54b73c3 * tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
as...
(suite.m4, regression.m4, calc.m4): these.
* tests/atgeneral.m4: Update from CVS Autoconf.
2000-11-17 11:16:10 +00:00
Akim Demaille
4c50eae6a0 * tests/regression.m4 (%union and --defines): New test,
demonstrating a current bug in the obstack implementation.
2000-11-17 11:08:03 +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
7de23534ac * acconfig.h: Remove, no longer used. 2000-11-17 10:03:37 +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
8a4f41d6ed * src/output.c (output): Remove useless variables.
* lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
argument `data' for consistency with the prototypes.
Qualify it `const'.
(obstack_copy, obstack_copy0): Rename the second argument as
`address' for consistency.  Qualify it `const'.
* lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
(obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
`const' their input argument (`data' or `address').
Adjust the corresponding macros to include `const' in casts.
2000-11-07 11:54:01 +00:00
Akim Demaille
090c5ebfa8 Typos in ChangeLog. 2000-11-06 08:42:37 +00:00
Akim Demaille
095a3fb52f * src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
s/PFILE1/BISON_HAIRY/.
Adjust dependencies.
2000-11-03 17:31:47 +00:00
Akim Demaille
d1cdce7c1c For some reasons, this has not been applied.
* src/files.c [VMS]: No longer include `ssdef.h', no longer define
`unlink': it's no longer used.
2000-11-03 17:27:19 +00:00
Akim Demaille
9311529bc5 * src/files.c (skeleton_find): New function, eved out of...
(open_files, open_extra_files): here.
2000-11-03 17:19:07 +00:00
Akim Demaille
d16e8d3cd7 Adjust the cvsignores. 2000-11-03 16:57:47 +00:00
Akim Demaille
d8880f69ff Don't use `atexit'.
* src/files.c (obstack_save): New function.
(done): Rename as...
(output_files): this.
Use `obstack_save'.
* src/main.c (main): Don't use `atexit' to register `done', since
it no longer has to remove tmp files, just call `output_files'
when there are no errors.
2000-11-03 16:52:45 +00:00
Akim Demaille
0dbb648e3f * src/files.c [VMS]: No longer include `ssdef.h', no longer define
`unlink': it's no longer used.
* src/files.h: Formatting changes.
2000-11-02 15:21:05 +00:00
Akim Demaille
896fe5c10a Remove the last uses of mktemp and unlink/delete.
* src/files.c (fdefines, ftable): Removed.
(defines_ostack, table_obstack): New.
Adjust dependencies of the former into uses of the latter.
* src/output.c (output_short_or_char_table, output_short_table):
Convert to using obstacks.
* src/reader.c (copy_comment2): Accept one FILE * and two
obstacks.
(output_token_defines, reader_output_yylsp): Use obstacks.
* src/system.h (obstack_fgrow3): New.
2000-11-02 13:38:12 +00:00
Akim Demaille
dd60faeca4 Change each use of fattrs' into a use of attrs_obstack'.
* src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
* src/files.c (fattrs): Remove.
(attrs_obstack): New.
Adjust all dependencies.
(done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
2000-11-01 17:05:54 +00:00
Akim Demaille
8c7ebe4946 Introduce obstacks.
Change each use of `faction' into a use of `action_obstack'.
* lib/obstack.h, lib/obstack.c: New files.
* src/files.c (faction): Remove.
(action_obstack): New.
Adjust all dependencies.
2000-11-01 16:03:50 +00:00
Akim Demaille
77aee78982 * lib/quote.h (PARAMS): New macro. Use it. 2000-10-20 09:22:45 +00:00
Akim Demaille
f1320c03a4 Remove spurious empty lines. 2000-10-16 19:20:52 +00:00
Akim Demaille
43591cec98 * src/output.c (output_short_or_char_table): New function.
(output_short_table, output_token_translations): Use it.
(goto_actions): Use output_short_table.
2000-10-16 18:33:38 +00:00
Akim Demaille
1e9798d569 * src/symtab.c (bucket_new): New function.
(getsym): Use it.
* src/output.c (output_short_table): New argument to display the
comment associated with the table.
Adjust dependencies.
(output_gram): Use it.
(output_rule_data): Nicer output layout for YYTNAME.
2000-10-16 18:10:46 +00:00
Akim Demaille
f282676b7e * src/lex.c (read_typename): New function.
(lex): Use it.
* src/reader.c (copy_dollar): Likewise.
2000-10-16 18:08:35 +00:00
Akim Demaille
550a72a3be * src/reader.c (copy_comment2): Expect the input stream to be on
the `/' which is suspected to open a comment, instead of being
called after `//' or `/*' was read.
(copy_comment, copy_definition, parse_union_decl, copy_action)
(copy_guard): Adjust.
2000-10-16 18:06:29 +00:00
Akim Demaille
131e2fef68 * src/reader.c (parse_expect_decl): Use `skip_white_space' and
`read_signed_integer'.
2000-10-16 18:05:01 +00:00
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
14ded68250 * doc/bison.texinfo: Various typos spotted by Neil Booth. 2000-10-04 12:52:25 +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
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