]> git.saurik.com Git - bison.git/log
bison.git
23 years agoSince we now use obstacks, more % directives can be enabled.
Akim Demaille [Thu, 18 Jan 2001 14:47:09 +0000 (14:47 +0000)] 
Since we now use obstacks, more % directives can be enabled.
* src/lex.c (percent_table): Also accept `%yacc',
`%fixed_output_files', `%defines', `%no_parser', `%verbose', and
`%debug'.
Handle the actions for `%semantic_parser' and `%pure_parser' here,
instead of returning a token.
* src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
* src/reader.c (read_declarations): Adjust.
* src/files.c (open_files): Don't call `compute_base_names', don't
compute `attrsfile' since they depend upon data which might be
*in* the input file now.
(output_files): Do it here.
* src/output.c (output_headers): Document the fact that this patch
introduces a guaranteed SEGV for semantic parsers.
* doc/bison.texinfo: Document them.
* tests/suite.at: Exercise these %options.

23 years agoAdd install-sh.
Akim Demaille [Thu, 18 Jan 2001 14:07:24 +0000 (14:07 +0000)] 
Add install-sh.

23 years agoREADME-alpha: New.
Akim Demaille [Wed, 17 Jan 2001 11:11:01 +0000 (11:11 +0000)] 
README-alpha: New.

23 years agoHopefully added to the repository all the distributed files.
Akim Demaille [Mon, 15 Jan 2001 13:46:43 +0000 (13:46 +0000)] 
Hopefully added to the repository all the distributed files.

24 years agoAlso handle the output file (--verbose) with obstacks.
Akim Demaille [Wed, 20 Dec 2000 17:21:14 +0000 (17:21 +0000)] 
Also handle the output file (--verbose) with obstacks.
* files.c (foutput): Remove.
(output_obstack): New.
Adjust all dependencies.
* src/conflicts.c: Return a string.
* src/system.h (obstack_grow_string): Rename as...
(obstack_sgrow): this.  Be ready to work with non literals.
(obstack_fgrow4): New.

24 years ago* src/files.c (open_files): Fix the computation of short_base_name
Akim Demaille [Wed, 20 Dec 2000 12:41:52 +0000 (12:41 +0000)] 
* src/files.c (open_files): Fix the computation of short_base_name
in the case of `-o foo.tab.c'.

24 years ago* src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
Akim Demaille [Wed, 20 Dec 2000 12:38:01 +0000 (12:38 +0000)] 
* src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
(copy_dollar): Now that everything uses obstacks, get rid of the
FILE * parameters.

24 years ago* src/files.c (open_files): Actually the `.output' file is based
Akim Demaille [Wed, 20 Dec 2000 12:00:13 +0000 (12:00 +0000)] 
* src/files.c (open_files): Actually the `.output' file is based
on the short_base_name, not base_name.
* tests/suite.at (Checking output file names): Adjust.

24 years ago* src/bison.s1: Remove, we now use directly...
Akim Demaille [Wed, 20 Dec 2000 10:38:51 +0000 (10:38 +0000)] 
* src/bison.s1: Remove, we now use directly...
* src/bison.simple: this.
* src/Makefile.am: Use pkgdata instead of data.

24 years ago* src/files.c (guard_obstack): New.
Akim Demaille [Wed, 20 Dec 2000 10:29:43 +0000 (10:29 +0000)] 
* src/files.c (guard_obstack): New.
(open_files): Initialize it.
(output_files): Dump it...
* src/files.h: Export it.
* src/reader.c (copy_guard): Use it.

24 years ago* src/files.c (outfile, defsfile, actfile): Removed as global
Akim Demaille [Tue, 19 Dec 2000 18:27:53 +0000 (18:27 +0000)] 
* src/files.c (outfile, defsfile, actfile): Removed as global
vars.
(open_files): Don't compute them.
(output_files): Adjust.
(base_name, short_base_name): Be global.
Adjust dependencies.

24 years ago* src/files.c (strsuffix): New.
Akim Demaille [Tue, 19 Dec 2000 18:14:35 +0000 (18:14 +0000)] 
* src/files.c (strsuffix): New.
(stringappend): Be just like strcat but allocate.
(base_names): Eve out from open_files.
Try to simplify the rather hairy computation of base_name and
short_base_name.
(open_files): Use it.
* tests/suite.at (Checking output file names): New test.

24 years ago* src/system.h (obstack_grow_literal_string): Rename as...
Akim Demaille [Tue, 19 Dec 2000 14:51:24 +0000 (14:51 +0000)] 
* 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.

24 years ago* src/output.c (output_parser): Compute the `#line' lines when
Akim Demaille [Tue, 19 Dec 2000 13:40:42 +0000 (13:40 +0000)] 
* 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.

24 years agoLet the handling of the skeleton files be local to the procedures
Akim Demaille [Tue, 19 Dec 2000 13:05:52 +0000 (13:05 +0000)] 
Let the handling of the skeleton files be local to the procedures
that use it.
* src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
longer static.
(fparser, open_extra_files): Remove.
(open_files, output_files): Don't take care of fparser.
* src/files.h: Adjust.
* src/output.c (output_parser): Open and close the file to the
skeleton.
* src/reader.c (read_declarations): When %semantic_parser, open
fguard.

24 years ago* src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
Akim Demaille [Tue, 19 Dec 2000 12:30:59 +0000 (12:30 +0000)] 
* src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
* src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.

24 years ago* src/files.c (open_files): Yipee! We no longer need all the code
Akim Demaille [Tue, 19 Dec 2000 12:24:24 +0000 (12:24 +0000)] 
* src/files.c (open_files): Yipee!  We no longer need all the code
looking for `/tmp' since we have no tmp file.

24 years ago* src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
Akim Demaille [Tue, 19 Dec 2000 12:18:45 +0000 (12:18 +0000)] 
* src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
New macros.
* src/files.c (open_files): Less dependency on MSDOS etc.

24 years agoAdd tests/calc.at.
Akim Demaille [Mon, 18 Dec 2000 09:02:16 +0000 (09:02 +0000)] 
Add tests/calc.at.

24 years agoAdded tests/calc.y.
Akim Demaille [Mon, 18 Dec 2000 09:00:07 +0000 (09:00 +0000)] 
Added tests/calc.y.

24 years agoAdd tests/regression.at and tests/suite.at.
Akim Demaille [Fri, 15 Dec 2000 09:44:44 +0000 (09:44 +0000)] 
Add tests/regression.at and tests/suite.at.

24 years agoCosmetic changes.
Akim Demaille [Fri, 15 Dec 2000 09:43:09 +0000 (09:43 +0000)] 
Cosmetic changes.

24 years ago* src/bison.s1 (YYLLOC_DEFAULT): New macro.
Akim Demaille [Thu, 14 Dec 2000 13:03:32 +0000 (13:03 +0000)] 
* 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.

24 years ago* src/reader.c (copy_definition, parse_union_decl, copy_action)
Akim Demaille [Tue, 12 Dec 2000 17:12:43 +0000 (17:12 +0000)] 
* src/reader.c (copy_definition, parse_union_decl, copy_action)
(copy_guard): Quote the file names.
Reported by Laurent Mascherpa.

24 years ago* src/output.c (output_headers, output_program, output): Be sure
Akim Demaille [Tue, 12 Dec 2000 16:09:10 +0000 (16:09 +0000)] 
* src/output.c (output_headers, output_program, output): Be sure
to escape special characters when outputting filenames.
(ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
(output_headers): Don't depend on them, Use ACTSTR.

24 years ago* lib/obstack.h: Formatting changes.
Akim Demaille [Fri, 17 Nov 2000 14:14:36 +0000 (14:14 +0000)] 
* 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.

24 years ago* tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
Akim Demaille [Fri, 17 Nov 2000 11:16:10 +0000 (11:16 +0000)] 
* 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.

24 years ago* tests/regression.m4 (%union and --defines): New test,
Akim Demaille [Fri, 17 Nov 2000 11:08:03 +0000 (11:08 +0000)] 
* tests/regression.m4 (%union and --defines): New test,
demonstrating a current bug in the obstack implementation.

24 years ago* src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
Akim Demaille [Fri, 17 Nov 2000 10:57:30 +0000 (10:57 +0000)] 
* src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
macros.
Use them to declare the variables which are global or local to
`yyparse'.

24 years ago* acconfig.h: Remove, no longer used.
Akim Demaille [Fri, 17 Nov 2000 10:03:37 +0000 (10:03 +0000)] 
* acconfig.h: Remove, no longer used.

24 years ago* src: s/Copyright (C)/Copyright/g.
Akim Demaille [Tue, 7 Nov 2000 16:28:47 +0000 (16:28 +0000)] 
* src: s/Copyright (C)/Copyright/g.

24 years ago* src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
Akim Demaille [Tue, 7 Nov 2000 15:56:20 +0000 (15:56 +0000)] 
* src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
defining.
* src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.

24 years ago* src/bison.s1 (YYLEX): Use #if instead of #ifdef.
Akim Demaille [Tue, 7 Nov 2000 15:51:45 +0000 (15:51 +0000)] 
* src/bison.s1 (YYLEX): Use #if instead of #ifdef.
Merge in a single CPP if/else.

24 years ago* src/output.c (output): Remove useless variables.
Akim Demaille [Tue, 7 Nov 2000 11:54:01 +0000 (11:54 +0000)] 
* 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.

24 years agoTypos in ChangeLog.
Akim Demaille [Mon, 6 Nov 2000 08:42:37 +0000 (08:42 +0000)] 
Typos in ChangeLog.

24 years ago* src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
Akim Demaille [Fri, 3 Nov 2000 17:31:47 +0000 (17:31 +0000)] 
* src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
s/PFILE1/BISON_HAIRY/.
Adjust dependencies.

24 years agoFor some reasons, this has not been applied.
Akim Demaille [Fri, 3 Nov 2000 17:27:19 +0000 (17:27 +0000)] 
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.

24 years ago* src/files.c (skeleton_find): New function, eved out of...
Akim Demaille [Fri, 3 Nov 2000 17:19:07 +0000 (17:19 +0000)] 
* src/files.c (skeleton_find): New function, eved out of...
(open_files, open_extra_files): here.

24 years agoAdjust the cvsignores.
Akim Demaille [Fri, 3 Nov 2000 16:57:47 +0000 (16:57 +0000)] 
Adjust the cvsignores.

24 years agoDon't use `atexit'.
Akim Demaille [Fri, 3 Nov 2000 16:52:45 +0000 (16:52 +0000)] 
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.

24 years ago* src/files.c [VMS]: No longer include `ssdef.h', no longer define
Akim Demaille [Thu, 2 Nov 2000 15:21:05 +0000 (15:21 +0000)] 
* src/files.c [VMS]: No longer include `ssdef.h', no longer define
`unlink': it's no longer used.
* src/files.h: Formatting changes.

24 years agoRemove the last uses of mktemp and unlink/delete.
Akim Demaille [Thu, 2 Nov 2000 13:38:12 +0000 (13:38 +0000)] 
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.

24 years agoChange each use of `fattrs' into a use of `attrs_obstack'.
Akim Demaille [Wed, 1 Nov 2000 17:05:54 +0000 (17:05 +0000)] 
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.

24 years agoIntroduce obstacks.
Akim Demaille [Wed, 1 Nov 2000 16:03:50 +0000 (16:03 +0000)] 
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.

24 years ago* lib/quote.h (PARAMS): New macro. Use it.
Akim Demaille [Fri, 20 Oct 2000 09:22:45 +0000 (09:22 +0000)] 
* lib/quote.h (PARAMS): New macro.  Use it.

24 years agoRemove spurious empty lines.
Akim Demaille [Mon, 16 Oct 2000 19:20:52 +0000 (19:20 +0000)] 
Remove spurious empty lines.

24 years ago* src/output.c (output_short_or_char_table): New function.
Akim Demaille [Mon, 16 Oct 2000 18:33:38 +0000 (18:33 +0000)] 
* src/output.c (output_short_or_char_table): New function.
(output_short_table, output_token_translations): Use it.
(goto_actions): Use output_short_table.

24 years ago* src/symtab.c (bucket_new): New function.
Akim Demaille [Mon, 16 Oct 2000 18:10:46 +0000 (18:10 +0000)] 
* 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.

24 years ago* src/lex.c (read_typename): New function.
Akim Demaille [Mon, 16 Oct 2000 18:08:35 +0000 (18:08 +0000)] 
* src/lex.c (read_typename): New function.
(lex): Use it.
* src/reader.c (copy_dollar): Likewise.

24 years ago* src/reader.c (copy_comment2): Expect the input stream to be on
Akim Demaille [Mon, 16 Oct 2000 18:06:29 +0000 (18:06 +0000)] 
* 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.

24 years ago* src/reader.c (parse_expect_decl): Use `skip_white_space' and
Akim Demaille [Mon, 16 Oct 2000 18:05:01 +0000 (18:05 +0000)] 
* src/reader.c (parse_expect_decl): Use `skip_white_space' and
`read_signed_integer'.

24 years ago* src/reader.c (copy_dollar): New function.
Akim Demaille [Mon, 16 Oct 2000 18:00:41 +0000 (18:00 +0000)] 
* src/reader.c (copy_dollar): New function.
(copy_guard, copy_action): Use it.

24 years ago* lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
Akim Demaille [Mon, 16 Oct 2000 17:28:41 +0000 (17:28 +0000)] 
* 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.

24 years ago* doc/bison.texinfo: Various typos spotted by Neil Booth.
Akim Demaille [Wed, 4 Oct 2000 12:52:25 +0000 (12:52 +0000)] 
* doc/bison.texinfo: Various typos spotted by Neil Booth.

24 years agoWhen a literal string is used to define two different tokens,
Akim Demaille [Wed, 4 Oct 2000 11:52:53 +0000 (11:52 +0000)] 
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.

24 years ago* src/reader.c (parse_expect_decl): Keep `count' within the size
Akim Demaille [Wed, 4 Oct 2000 11:31:14 +0000 (11:31 +0000)] 
* src/reader.c (parse_expect_decl): Keep `count' within the size
of `buffer'.
From Neil Booth.

24 years agoGratuitous change to NEWS to test mailout
Jeff Bailey [Mon, 2 Oct 2000 20:04:58 +0000 (20:04 +0000)] 
Gratuitous change to NEWS to test mailout

24 years agoGratuitous change to test mail out
Jeff Bailey [Mon, 2 Oct 2000 20:00:35 +0000 (20:00 +0000)] 
Gratuitous change to test mail out

24 years ago* bison.s1 (yyparse): Assign the default value
Akim Demaille [Mon, 2 Oct 2000 10:29:00 +0000 (10:29 +0000)] 
* bison.s1 (yyparse): Assign the default value
unconditionally, to avoid a GCC warning and make the parser a
tad smaller.

24 years agoTypos in ChangeLog.
Akim Demaille [Mon, 2 Oct 2000 10:23:43 +0000 (10:23 +0000)] 
Typos in ChangeLog.

24 years ago* src/getargs.c (getargs): Don't dump `--help' on unrecognized
Akim Demaille [Mon, 2 Oct 2000 10:22:19 +0000 (10:22 +0000)] 
* src/getargs.c (getargs): Don't dump `--help' on unrecognized
options.

24 years ago* src/derives.c, src/print.c, src/reduce.c: To ease the
Akim Demaille [Mon, 2 Oct 2000 10:21:47 +0000 (10:21 +0000)] 
* src/derives.c, src/print.c, src/reduce.c: To ease the
translation, move some `n' out of the translated strings.

24 years agoThe location tracking mechanism is precious for parse error
Akim Demaille [Mon, 2 Oct 2000 10:20:59 +0000 (10:20 +0000)] 
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'.

24 years agoAlso test parse error messages, including with YYERROR_VERBOSE.
Akim Demaille [Mon, 2 Oct 2000 09:05:32 +0000 (09:05 +0000)] 
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.

24 years agoTest also `--verbose', `--defines' and `--name-prefix'. Testing
Akim Demaille [Mon, 2 Oct 2000 09:04:40 +0000 (09:04 +0000)] 
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'.

24 years agoImprove the readability of the produced parsers.
Akim Demaille [Mon, 2 Oct 2000 09:03:20 +0000 (09:03 +0000)] 
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.

24 years ago* lib/xstrdup.c: New file, from the fileutils.
Akim Demaille [Mon, 2 Oct 2000 09:01:19 +0000 (09:01 +0000)] 
* 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.

24 years ago* src/gram.h (associativity): New enum type which replaces the
Akim Demaille [Mon, 2 Oct 2000 08:51:00 +0000 (08:51 +0000)] 
* 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'.

24 years ago* src/getargs.c (fixed_outfiles): Rename as...
Akim Demaille [Mon, 2 Oct 2000 08:50:07 +0000 (08:50 +0000)] 
* src/getargs.c (fixed_outfiles): Rename as...
(yaccflag): for consistency and accuracy.
Adjust dependencies.

24 years agoUse the more standard files `xalloc.h' and `xmalloc.c' instead of
Akim Demaille [Mon, 2 Oct 2000 08:48:32 +0000 (08:48 +0000)] 
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.

24 years agoVarious anti-`extern in *.c' changes.
Akim Demaille [Mon, 2 Oct 2000 08:35:47 +0000 (08:35 +0000)] 
Various anti-`extern in *.c' changes.
* src/system.h: Include `assert.h'.

24 years ago* src/state.h (nstates, final_state, first_state, first_shift)
Akim Demaille [Mon, 2 Oct 2000 08:22:23 +0000 (08:22 +0000)] 
* 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.

24 years ago* src/LR0.h: New file.
Akim Demaille [Mon, 2 Oct 2000 08:14:22 +0000 (08:14 +0000)] 
* src/LR0.h: New file.
Propagate its use.

24 years ago* src/print.h: New file.
Akim Demaille [Mon, 2 Oct 2000 08:10:26 +0000 (08:10 +0000)] 
* 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.

24 years ago* src/conflicts.c (conflict_report): New function.
Akim Demaille [Mon, 2 Oct 2000 08:08:52 +0000 (08:08 +0000)] 
* 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.

24 years ago* src/nullable.h: New file.
Akim Demaille [Mon, 2 Oct 2000 08:06:43 +0000 (08:06 +0000)] 
* src/nullable.h: New file.
Propagate its inclusion.
* src/nullable.c: Formatting changes.

24 years agoAdd src/reduce.h to the repository.
Akim Demaille [Mon, 2 Oct 2000 08:05:37 +0000 (08:05 +0000)] 
Add src/reduce.h to the repository.

24 years ago* src/reduce.h: New file.
Akim Demaille [Mon, 2 Oct 2000 08:04:25 +0000 (08:04 +0000)] 
* 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.

24 years ago* src/files.c: Formatting changes.
Akim Demaille [Mon, 2 Oct 2000 08:02:12 +0000 (08:02 +0000)] 
* 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.

24 years ago* src/reader.h: New file.
Akim Demaille [Mon, 2 Oct 2000 08:00:34 +0000 (08:00 +0000)] 
* 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//.

24 years ago* src/lex.h: Prototype `lex.c' exported functions.
Akim Demaille [Mon, 2 Oct 2000 07:59:08 +0000 (07:59 +0000)] 
* src/lex.h: Prototype `lex.c' exported functions.
* src/reader.c: Adjust.
* src/lex.c: Formatting changes.
(safegetc): Rename as...
(xgetc): this.

24 years ago* src/lalr.h: New file.
Akim Demaille [Mon, 2 Oct 2000 07:56:58 +0000 (07:56 +0000)] 
* src/lalr.h: New file.
Propagate its inclusion instead of prototypes and `extern'.
* src/lalr.c: Formatting changes, topological sorting etc.

24 years ago* src/output.c (token_actions): Introduce a temporary array,
Akim Demaille [Mon, 2 Oct 2000 07:55:11 +0000 (07:55 +0000)] 
* src/output.c (token_actions): Introduce a temporary array,
YYDEFACT, that makes it possible for this function to use
output_short_table.

24 years ago`user_toknums' is output as a `short[]' in `output.c', while it is
Akim Demaille [Mon, 2 Oct 2000 07:53:36 +0000 (07:53 +0000)] 
`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.

24 years ago* src/output.c (output): Topological sort of the functions, in
Akim Demaille [Mon, 2 Oct 2000 07:50:14 +0000 (07:50 +0000)] 
* 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.

24 years agoPrint contents near beginning, not at the end.
Jesse Thilo [Wed, 27 Sep 2000 23:59:22 +0000 (23:59 +0000)] 
Print contents near beginning, not at the end.

24 years ago* src/atgeneral.m4: Update from Autoconf.
Akim Demaille [Thu, 21 Sep 2000 13:08:33 +0000 (13:08 +0000)] 
* src/atgeneral.m4: Update from Autoconf.

24 years ago* src/closure.h: New file.
Akim Demaille [Thu, 21 Sep 2000 10:17:59 +0000 (10:17 +0000)] 
* 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.

24 years ago* src/closure.h: New file.
Akim Demaille [Wed, 20 Sep 2000 15:43:39 +0000 (15:43 +0000)] 
* 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.

24 years ago* src/acconfig.h: Don't protect config.h against multiple
Akim Demaille [Wed, 20 Sep 2000 13:50:34 +0000 (13:50 +0000)] 
* 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.

24 years ago* src/derives.h: New file.
Akim Demaille [Wed, 20 Sep 2000 13:14:11 +0000 (13:14 +0000)] 
* src/derives.h: New file.
* src/main.c, src/derives.h: Use it.
Formatting changes.
* src/Makefile.am (noinst_HEADERS): Adjust.

24 years ago* tests/atgeneral.m4: Update from Autoconf.
Akim Demaille [Wed, 20 Sep 2000 11:58:23 +0000 (11:58 +0000)] 
* 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'.

24 years ago* src/output.c: Formatting changes.
Akim Demaille [Tue, 19 Sep 2000 18:10:41 +0000 (18:10 +0000)] 
* 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.

24 years ago* tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
Akim Demaille [Tue, 19 Sep 2000 12:37:58 +0000 (12:37 +0000)] 
* tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
portable.

24 years ago* configure.in: Append WARNING_CFLAGS to CFLAGS.
Akim Demaille [Mon, 18 Sep 2000 17:53:09 +0000 (17:53 +0000)] 
* configure.in: Append WARNING_CFLAGS to CFLAGS.
* src/Makefile.am (INCLUDES): Don't.
Be ready to fetch headers in lib/.

24 years ago* doc/bison.texinfo: Update the copyright.
Akim Demaille [Mon, 18 Sep 2000 13:24:27 +0000 (13:24 +0000)] 
* doc/bison.texinfo: Update the copyright.
ANSIfy and GNUify the examples.
Remove the old menu.

24 years agoFirst set of tests: use the `calc' example from the documentation.
Akim Demaille [Mon, 18 Sep 2000 13:18:26 +0000 (13:18 +0000)] 
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.

24 years agoAdd support for an Autotest test suite for Bison.
Akim Demaille [Mon, 18 Sep 2000 13:01:59 +0000 (13:01 +0000)] 
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.

24 years agoCall free_nullable() when done.
Jesse Thilo [Tue, 4 Jul 2000 03:43:32 +0000 (03:43 +0000)] 
Call free_nullable() when done.

24 years agoMore explicit use of "const", "extern", and "static", particularly to
Jesse Thilo [Tue, 4 Jul 2000 03:29:02 +0000 (03:29 +0000)] 
More explicit use of "const", "extern", and "static", particularly to
limit the scope of many local variables and functions.