Commit Graph

55 Commits

Author SHA1 Message Date
Akim Demaille
b29b2ed560 Attaching lineno to buckets is stupid, since only one copy of each
symbol is kept, only the line of the first occurrence is kept too.
* src/symtab.h, src/symtab.c (bucket): Remove the line member.
* src/reader.c (rline_allocated): Remove, unused.
(symbol_list): Have a `line' member.
(symbol_list_new): New.
(readgram): Use it.
* src/print.c (print_grammar): Output the rule line numbers.
* tests/regression.at (Solved SR Conflicts)
(Unresolved SR Conflicts): Adjust.
Reported by Hans Aberg.
2001-11-23 14:13:02 +00:00
Akim Demaille
f047348491 * src/bison.simple (yyparse): When reporting verbosely an error,
no longer issue additional quotes around token names.
* tests/calc.at: Adjust.
2001-11-19 10:27:52 +00:00
Akim Demaille
d803322e27 * tests/calc.at, tests/output.at, tests/regression.at,
* tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
now the tests are run in private dirs, therefore AC_CLEANUP and
family can be simplified to 0-ary.
* tests/atlocal.in: Now that we run `elsewhere' than in tests/,
use abs. path to find config.h.
* tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
stderr, there can be way too much random noise.
Instead pass -Werror to GCC and rely on the exit status.
Reported by Wolfram Wagner.
2001-11-14 15:20:47 +00:00
Akim Demaille
7da99edea7 %expext was not functioning at all.
* src/conflicts.c (expected_conflicts): Set to -1.
(conflict_report): Use ngettext.
(conflicts_print): Check %expect and make its violation an error.
* doc/bison.texinfo (Expect Decl): Adjust.
* configure.in (AM_GNU_GETTEXT): Ask for ngettext.
* tests/regression.at (%expect not enough, %expect right)
(%expect too much): New.
2001-11-12 09:33:38 +00:00
Akim Demaille
ba9dda1a2e * tests/regression.at (Conflicts): Rename as...
(Unresolved SR Conflicts): this.
(Solved SR Conflicts): New.
2001-11-12 09:33:04 +00:00
Akim Demaille
c73a41af8e * src/conflicts.c (print_reductions): Accept OUT as argument.
Output to it, not to output_obstack.
* src/print.c (print_actions): Adjust.
2001-11-12 09:32:35 +00:00
Akim Demaille
0df87bb609 * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
the result instead of using...
(src_total, rrc_total, src_count, rrc_count): Remove.
(any_conflicts): Remove.
(print_conflicts): Split into...
(conflicts_print, conflicts_output): New.
* src/conflicts.h: Adjust.
* src/main.c (main): Invoke both conflicts_output and conflicts_print.
* src/print.c (print_grammar): Issue `n' between to rule outputs.
* tests/regression.at (Conflicts): New.
Reported by Tom Lane.
2001-11-12 09:31:40 +00:00
Akim Demaille
e4d3d4de4c * tests/regression.at (Invalid input): Remove, duplicate with
``Invalid input: 1''.
2001-11-12 09:25:19 +00:00
Akim Demaille
6d7d248e72 * tests/torture.at (AT_DATA_STACK_TORTURE)
(Exploding the Stack Size with Alloca)
(Exploding the Stack Size with Malloc): New.
2001-11-12 09:25:05 +00:00
Akim Demaille
e4d910bf0f * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
pattern.
2001-11-05 09:19:00 +00:00
Akim Demaille
951366c145 * src/options.h (struct option_table_struct): set_flags is void*.
* src/options.c (longopts): Support `--output' and `%output'.
(usage): Adjust.
* src/lex.h (tok_setopt): Remove, replaced with...
(tok_intopt, tok_stropt): these new guys.
* src/lex.c (getopt.h): Not needed.
(token_buffer, unlexed_token_buffer): Not const.
(percent_table): Promote `-' over `_' in directive names.
Active `%name-prefix', `file-prefix', and `output'.
(parse_percent_token): Accept possible arguments to directives.
Promote `-' over `_' in directive names.
2001-11-05 09:09:19 +00:00
Akim Demaille
6b7e85b994 * src/symtab.h (SUNDEF): New.
* src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
stand for `uninitialized', instead of 0.
* src/reader.c (packsymbols, parse_thong_decl): Adjust.
* src/lex.c (lex): Adjust.
* tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
Number it 0.
Let yylex return it instead of a plain 0.
Reported by Dick Streefland.
2001-11-02 15:27:11 +00:00
Akim Demaille
cd5aafcf8c * tests/regression.at (Mixing %token styles): New test. 2001-11-02 14:15:48 +00:00
Akim Demaille
270a173cf3 * tests/regression.at (AT_TEST_CPP_GUARD_H): New.
Check that `9foo.y' produces correct cpp guards.
* src/files.c (compute_header_macro): Prepend `BISON_' to CPP
guards.
Reported by Wwp.
2001-11-01 18:28:38 +00:00
Akim Demaille
561f9a30af * tests/regression.at (Invalid input: 2): New.
* src/lex.c (unlexed_token_buffer): New.
(lex, unlex): Adjust: when unlexing, be sure to save token_buffer
too.
Reported by Wwp.
2001-11-01 18:05:22 +00:00
Akim Demaille
f987e9d257 * tests/calc.at: Catch up with 1.30.
* configure.in: Bump to 1.49a.
Adjust to newer Autotest.
2001-11-01 17:47:39 +00:00
Akim Demaille
3c1a79b314 * tests/atlocal.in (GCC): Add.
* tests/calc.at: s/m4_match/m4_bmatch/.
s/m4_patsubst/m4_bpatsubst/.
(AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
* configure.in: AC_SUBST(GCC).
2001-10-18 15:26:56 +00:00
Akim Demaille
ee006e3a4c Adjust. 2001-10-04 15:12:55 +00:00
Akim Demaille
342b8b6e21 Merge in branch-1_29. 2001-10-04 14:55:21 +00:00
Akim Demaille
3a7bc75ff7 Remove for the repo. 2001-10-04 13:21:02 +00:00
Marc Autret
087c8fdae3 * tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
to an explicit value to activate the feature. We do it here.
2001-09-01 01:20:54 +00:00
Akim Demaille
6fc7423473 * Makefile.am (AUTOMAKE_OPTIONS): 1.5. 2001-08-27 08:57:54 +00:00
Robert Anisko
bbb5bcc6f8 Revert to 1.28c 2001-08-25 13:13:14 +00:00
Pascal Bart
667a550e7b More cvsignore. 2001-08-23 22:51:37 +00:00
Akim Demaille
e5aa395b38 More cvsignore. 2001-08-15 08:43:44 +00:00
Pascal Bart
1e41465a20 * tests/atconfig.in (CPPFLAGS): Fix. 2001-08-13 19:30:26 +00:00
Akim Demaille
976e528f02 * tests/atconfig.in (CPPFLAGS): Fix. 2001-08-07 13:03:20 +00:00
Akim Demaille
8303fc422a * tests/atconfig.in (CPPFLAGS): Add.
* tests/calc.at (AT_CHECK): Use CPPFLAGS.
2001-08-04 14:00:09 +00:00
Akim Demaille
2ce1014469 * tests/Makefile.am (check-local): Ship testsuite.
* tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
Include `string.h'.
2001-08-03 10:13:42 +00:00
Akim Demaille
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'.
2001-07-18 09:52:35 +00:00
Akim Demaille
1e24cc5b41 * config/: New.
* configure.in: Require Autoconf 2.50.
Update to gettext 0.10.38.
2001-07-14 17:27:59 +00:00
Akim Demaille
5141b01619 * m4/strerror_r.m4: New.
* m4/error.m4: Run AC_FUNC_STRERROR_R.
* lib/error.h, lib/error.c: Update.
2001-03-16 14:50:40 +00:00
Akim Demaille
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.
2001-01-18 14:47:09 +00:00
Akim Demaille
705db0b507 Hopefully added to the repository all the distributed files. 2001-01-15 13:46:43 +00:00
Akim Demaille
956dba3a7c * src/files.c (open_files): Fix the computation of short_base_name
in the case of `-o foo.tab.c'.
2000-12-20 12:41:52 +00:00
Akim Demaille
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.
2000-12-20 12:00:13 +00:00
Akim Demaille
29092a5740 * src/bison.s1: Remove, we now use directly...
* src/bison.simple: this.
* src/Makefile.am: Use pkgdata instead of data.
2000-12-20 10:38:51 +00:00
Akim Demaille
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.
2000-12-19 18:14:35 +00:00
Akim Demaille
bfb0787482 Add tests/calc.at. 2000-12-18 09:02:16 +00:00
Akim Demaille
c95f2d781f Add tests/regression.at and tests/suite.at. 2000-12-15 09:44:44 +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
d16e8d3cd7 Adjust the cvsignores. 2000-11-03 16:57:47 +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
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
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
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