3419715d61
* src/bison.simple (yyparse): Suppress warning `comparaison between signed and unsigned'.
Akim Demaille
2001-07-18 10:07:45 +00:00
62ab6972e8
* src/getargs.h (raw_flag): Remove. * src/getargs.c: Die on -r'/--raw'. * src/lex.c (parse_percent_token): Die on %raw'. * src/reader.c (output_token_defines): Suppress call to raw_flag'. * tests/calc.at: Suppress test with option `--raw'.
Akim Demaille
2001-07-18 09:52:35 +00:00
cd5bd6ac4f
* getargs.c (skeleton): New variable. (longopts): --skeleton is a new option. (shortopts, getargs): -S is a new option. * getargs.h: Declare skeleton. * output.c (output_parser): Use it.
Akim Demaille
2001-03-16 15:16:08 +00:00
274d42cecb
* src/reader.c (gensym): `gensym_count' is your own. Use a static buf to create the symbol name, as token_buffer is no longer a buffer.
Akim Demaille
2001-02-21 10:17:25 +00:00
22c821f312
* src/conflicts.c (conflict_report): Be sure not to append to res between two calls, which could happen if both first sprintf were skipped, but not the first cp += strlen.
Akim Demaille
2001-02-08 14:51:33 +00:00
18569462db
* lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c: New, from fileutils 4.0.37. * configure.in: Require Autoconf 2.49c. I took some time before making this decision. This is the only way out for portability issues in Bison, it would mean way too much duplicate effort to import in Bison features implemented in 2.49c since 2.13. AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
Akim Demaille
2001-02-08 14:32:10 +00:00
0d8f3c8a7a
* lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37. * lib/xalloc.h, lib/xmalloc.c@ Update.
Akim Demaille
2001-02-02 14:56:44 +00:00
7400308fa3
Added remaining files needed to build from a clean check-out.
Jesse Thilo
2001-01-21 16:43:58 +00:00
f17bcd1f66
Get rid of the ad hoc handling of token_buffer in the scanner: use the obstacks. * src/lex.c (token_obstack): New. (init_lex): Initialize it. No longer call... (grow_token_buffer): this. Remove it. Adjust all the places which used it to use the obstack.
Akim Demaille
2001-01-19 18:26:32 +00:00
511e79b3d4
* src/lex.h: Rename all the tokens: s/bENDFILEb/tok_eof/g; s/bIDENTIFIERb/tok_identifier/g; etc. Let them be enums, not #define, to ease debugging. Adjust all the code.
Akim Demaille
2001-01-19 18:10:32 +00:00
6deb44470e
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.
Akim Demaille
2001-01-18 14:47:09 +00:00
705db0b507
Hopefully added to the repository all the distributed files.
Akim Demaille
2001-01-15 13:46:43 +00:00
ff4423cc28
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.
Akim Demaille
2000-12-20 17:21:14 +00:00
956dba3a7c
* src/files.c (open_files): Fix the computation of short_base_name in the case of `-o foo.tab.c'.
Akim Demaille
2000-12-20 12:41:52 +00:00
337bab46f2
* src/reader.c (copy_string, copy_comment, copy_comment2, copy_at) (copy_dollar): Now that everything uses obstacks, get rid of the FILE * parameters.
Akim Demaille
2000-12-20 12:38:01 +00:00
5d3214b854
* 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.
Akim Demaille
2000-12-20 12:00:13 +00:00
29092a5740
* src/bison.s1: Remove, we now use directly... * src/bison.simple: this. * src/Makefile.am: Use pkgdata instead of data.
Akim Demaille
2000-12-20 10:38:51 +00:00
ea5607fd01
* 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.
Akim Demaille
2000-12-20 10:29:43 +00:00
27110317b8
* 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.
Akim Demaille
2000-12-19 18:27:53 +00:00
19c50364f3
* 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.
Akim Demaille
2000-12-19 18:14:35 +00:00
ef7ddeddaa
* 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.
Akim Demaille
2000-12-19 13:40:42 +00:00
ff61dabdba
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.
Akim Demaille
2000-12-19 13:05:52 +00:00
55b9634155
* src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here... * src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
Akim Demaille
2000-12-19 12:30:59 +00:00
358c15b71e
* src/files.c (open_files): Yipee! We no longer need all the code looking for `/tmp' since we have no tmp file.
Akim Demaille
2000-12-19 12:24:24 +00:00
7de3329eea
* 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.
Akim Demaille
2000-12-19 12:18:45 +00:00
3abcd45995
* 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.
Akim Demaille
2000-12-14 13:03:32 +00:00
2a91a95e9e
* src/reader.c (copy_definition, parse_union_decl, copy_action) (copy_guard): Quote the file names. Reported by Laurent Mascherpa.
Akim Demaille
2000-12-12 17:12:43 +00:00
14d3eb9bf4
* 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.
Akim Demaille
2000-12-12 16:09:10 +00:00
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.
Akim Demaille
2000-11-17 14:14:36 +00:00
4c50eae6a0
* tests/regression.m4 (%union and --defines): New test, demonstrating a current bug in the obstack implementation.
Akim Demaille
2000-11-17 11:08:03 +00:00
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'.
Akim Demaille
2000-11-17 10:57:30 +00:00
5af1f54933
* src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just defining. * src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
Akim Demaille
2000-11-07 15:56:20 +00:00
553e2b222f
* src/bison.s1 (YYLEX): Use #if instead of #ifdef. Merge in a single CPP if/else.
Akim Demaille
2000-11-07 15:51:45 +00:00
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.
Akim Demaille
2000-11-07 11:54:01 +00:00
090c5ebfa8
Typos in ChangeLog.
Akim Demaille
2000-11-06 08:42:37 +00:00
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.
Akim Demaille
2000-11-03 17:27:19 +00:00
9311529bc5
* src/files.c (skeleton_find): New function, eved out of... (open_files, open_extra_files): here.
Akim Demaille
2000-11-03 17:19:07 +00:00
d16e8d3cd7
Adjust the cvsignores.
Akim Demaille
2000-11-03 16:57:47 +00:00
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.
Akim Demaille
2000-11-03 16:52:45 +00:00
0dbb648e3f
* src/files.c [VMS]: No longer include ssdef.h', no longer define unlink': it's no longer used. * src/files.h: Formatting changes.
Akim Demaille
2000-11-02 15:21:05 +00:00
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.
Akim Demaille
2000-11-02 13:38:12 +00:00
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.
Akim Demaille
2000-11-01 17:05:54 +00:00
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.
Akim Demaille
2000-11-01 16:03:50 +00:00
77aee78982
* lib/quote.h (PARAMS): New macro. Use it.
Akim Demaille
2000-10-20 09:22:45 +00:00
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.
Akim Demaille
2000-10-16 18:33:38 +00:00
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.
Akim Demaille
2000-10-16 18:10:46 +00:00
f282676b7e
* src/lex.c (read_typename): New function. (lex): Use it. * src/reader.c (copy_dollar): Likewise.
Akim Demaille
2000-10-16 18:08:35 +00:00
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.
Akim Demaille
2000-10-16 18:06:29 +00:00
131e2fef68
* src/reader.c (parse_expect_decl): Use skip_white_space' and read_signed_integer'.
Akim Demaille
2000-10-16 18:05:01 +00:00
79282c5ad0
* src/reader.c (copy_dollar): New function. (copy_guard, copy_action): Use it.
Akim Demaille
2000-10-16 18:00:41 +00:00
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'.
Akim Demaille
2000-10-16 17:28:41 +00:00
14ded68250
* doc/bison.texinfo: Various typos spotted by Neil Booth.
Akim Demaille
2000-10-04 12:52:25 +00:00
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.
Akim Demaille
2000-10-04 11:52:53 +00:00
a9e64249c8
* src/reader.c (parse_expect_decl): Keep count' within the size of buffer'. From Neil Booth.
Akim Demaille
2000-10-04 11:31:14 +00:00
42a0c7760b
Gratuitous change to NEWS to test mailout
Jeff Bailey
2000-10-02 20:04:58 +00:00
e02cf9e74a
Gratuitous change to test mail out
Jeff Bailey
2000-10-02 20:00:35 +00:00
da9abf4366
* bison.s1 (yyparse): Assign the default value unconditionally, to avoid a GCC warning and make the parser a tad smaller.
Akim Demaille
2000-10-02 10:29:00 +00:00
8f52a1e790
Typos in ChangeLog.
Akim Demaille
2000-10-02 10:23:43 +00:00
444c570aad
* src/derives.c, src/print.c, src/reduce.c: To ease the translation, move some `n' out of the translated strings.
Akim Demaille
2000-10-02 10:21:47 +00:00
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'.
Akim Demaille
2000-10-02 10:20:59 +00:00
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.
Akim Demaille
2000-10-02 09:05:32 +00:00
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'.
Akim Demaille
2000-10-02 09:04:40 +00:00
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.
Akim Demaille
2000-10-02 09:03:20 +00:00
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.
Akim Demaille
2000-10-02 09:01:19 +00:00
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'.
Akim Demaille
2000-10-02 08:51:00 +00:00
1916f98ef8
* src/getargs.c (fixed_outfiles): Rename as... (yaccflag): for consistency and accuracy. Adjust dependencies.
Akim Demaille
2000-10-02 08:50:07 +00:00
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.
Akim Demaille
2000-10-02 08:48:32 +00:00
340ef48922
Various anti-extern in *.c' changes. * src/system.h: Include assert.h'.
Akim Demaille
2000-10-02 08:35:47 +00:00
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.
Akim Demaille
2000-10-02 08:22:23 +00:00
403b315bb1
* src/LR0.h: New file. Propagate its use.
Akim Demaille
2000-10-02 08:14:22 +00:00
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.
Akim Demaille
2000-10-02 08:10:26 +00:00
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.
Akim Demaille
2000-10-02 08:08:52 +00:00
3519ec76a3
* src/nullable.h: New file. Propagate its inclusion. * src/nullable.c: Formatting changes.
Akim Demaille
2000-10-02 08:06:43 +00:00
85bcaacc59
Add src/reduce.h to the repository.
Akim Demaille
2000-10-02 08:05:37 +00:00
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.
Akim Demaille
2000-10-02 08:04:25 +00:00