Akim Demaille [Mon, 30 Jul 2012 09:18:23 +0000 (11:18 +0200)]
version 2.6.1
* NEWS: Record release date.
Akim Demaille [Mon, 30 Jul 2012 09:10:36 +0000 (11:10 +0200)]
gnulib: update
Akim Demaille [Fri, 27 Jul 2012 15:00:28 +0000 (17:00 +0200)]
maint: fix some syntax-check issues
* cfg.mk: Nuke the following warnings which are confused by our
text reports (that state that the error token is number 256).
prohibit_magic_number_exit
../../doc/bison.texi:8170:error (256)
../../tests/conflicts.at:570:error (256)
../../tests/conflicts.at:673:error (256)
../../tests/conflicts.at:811:error (256)
../../tests/conflicts.at:1154:error (256)
../../tests/regression.at:281:error (256)
../../tests/regression.at:582:error (256)
maint.mk: use EXIT_* values rather than magic number
Akim Demaille [Fri, 27 Jul 2012 14:36:07 +0000 (16:36 +0200)]
tests: do not depend on __cplusplus to decide for C++ or C output
Since we do support compiling C code with a C++ compiler.
* tests/actions.at (Qualified $$ in actions): Use AT_SKEL_CC_IF.
Akim Demaille [Fri, 27 Jul 2012 12:52:55 +0000 (14:52 +0200)]
regen
Akim Demaille [Fri, 27 Jul 2012 12:52:23 +0000 (14:52 +0200)]
synclines: remove spurious empty line
* data/bison.m4 (b4_syncline): Do not start with an empty line.
Akim Demaille [Fri, 27 Jul 2012 12:20:00 +0000 (14:20 +0200)]
also support $<foo>$ in the %initial-action
scan-code.l is already passing argument to b4_dollar_dollar for the
initial acton, but its definition (of b4_dollar_dollar) does not use
this argument.
Generalize this definition, and use it for the %initial-action too.
* data/c.m4 (b4_dollar_dollar_, b4_dollar_pushdef, b4_dollar_popdef):
Instead of expecting a pointer, require a value, and use ".".
Since they are now generic enough, move to...
* data/c-like.m4: this new file.
* data/c.m4, data/java.m4: Load it.
* data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: Use
b4_dollar_pushdef for the %initial-action.
* tests/actions.at: Check that.
* data/Makefile.am: Adjust.
* NEWS, doc/bison.texi: Document.
Akim Demaille [Fri, 27 Jul 2012 11:47:24 +0000 (13:47 +0200)]
skeletons: b4_dollar_pushdef and popdef to simpify complex definitions
M4 is really making it uselessly hard to define macros that define
macros.
* data/c.m4 (b4_dollar_pushdef, b4_dollar_popdef): New.
Use it.
Akim Demaille [Fri, 27 Jul 2012 10:53:46 +0000 (12:53 +0200)]
regen
Akim Demaille [Fri, 27 Jul 2012 10:47:02 +0000 (12:47 +0200)]
printer/destructor: translate only once
Currently "%printer {...} a b c d e f" translates the {...} six times.
Not only is this bad for time and space, it also issues six times the
same warnings.
* src/symlist.h, src/symlist.c (symbol_list_destructor_set)
(symbol_list_printer_set): Take the action as code_props instead of
const char *.
* src/parse-gram.y: Translate these actions here.
* src/scan-code.h: Comment change.
* tests/input.at: Check that warnings are issued only once.
Akim Demaille [Fri, 27 Jul 2012 09:22:22 +0000 (11:22 +0200)]
factor the handling of m4 escaping
The conversion from @ to @@ and so forth is coded is too many
different places. Factor, a bit.
* src/scan-code.l: Instead of duplicating the logic of obstack_escape,
use it.
It sure is less efficient, but the cost is negligible.
This allows to factor rules that are alike.
And to factor some start-condition clauses.
* tests/input.at (Stray $ or @): New.
* NEWS: Document it.
Akim Demaille [Fri, 27 Jul 2012 10:19:01 +0000 (12:19 +0200)]
news: schedule the removal of the ";" hack
scan-code.l is significantly more complex because of this.
* NEWS: Doc it.
Akim Demaille [Fri, 27 Jul 2012 09:11:19 +0000 (11:11 +0200)]
style changes in the scanners
* src/scan-code.l, src/scan-skel.l: Use a more traditional indentation
style for start-conditions.
Prefer "continue" to a comment, for empty actions.
Strip useless {}.
Remove useless start-condition clauses.
Akim Demaille [Thu, 26 Jul 2012 15:19:04 +0000 (17:19 +0200)]
regen
Akim Demaille [Thu, 26 Jul 2012 14:52:35 +0000 (16:52 +0200)]
support $<tag>$ in printers and destructors
* src/scan-code.l (SC_SYMBOL_ACTION): Accept $<tag>$, not just $$.
* data/c.m4 (b4_dollar_dollar_): New.
(b4_symbol_actions): Let b4_dollar_dollar use b4_dollar_dollar_.
* NEWS, doc/bison.texi: Document it.
* tests/actions.at: Check this for C and C++.
Akim Demaille [Thu, 26 Jul 2012 10:06:28 +0000 (12:06 +0200)]
scan-code: factor the handling of the type in $<TYPE>$
* src/scan-code.l (fetch_type_name): New.
(handle_action_dollar): Use it.
(gt_ptr): Remove, useless.
Akim Demaille [Thu, 26 Jul 2012 12:41:55 +0000 (14:41 +0200)]
muscles: fix another occurrence of unescaped type name
* src/output.c (quoted_output): Split into...
(quoted_output, string_output): these.
Use the former when outputting a type_name.
* tests/input.at: Check this case.
* src/symtab.h: Comment changes.
Akim Demaille [Thu, 26 Jul 2012 14:44:45 +0000 (16:44 +0200)]
glr.cc: fix the handling of yydebug
* data/glr.cc (yydebug_): Remove, unused.
(set_debug_level, debug_level): Work on yydebug instead.
* doc/bison.texi, NEWS: Document this.
Akim Demaille [Thu, 26 Jul 2012 11:28:58 +0000 (13:28 +0200)]
gnulib: update
Akim Demaille [Thu, 26 Jul 2012 12:41:20 +0000 (14:41 +0200)]
formatting changes
* src/symtab.h: here.
Akim Demaille [Thu, 26 Jul 2012 14:07:26 +0000 (16:07 +0200)]
tests: fix an assertion
* tests/local.at (AT_YYLEX_DEFINE): Be sure to check the array
against its length, not its size in bytes.
Akim Demaille [Thu, 26 Jul 2012 13:20:50 +0000 (15:20 +0200)]
tests: adjust to GCC 4.8, which displays caret errors
With GCC 4.8, the tests on synclines are skipped. Transform
input.y:1:2: error: #error "1"
#error "1"
^
into
input.y:1: #error "1"
* tests/synclines.at (AT_SYNCLINES_COMPILE): Do it, using Perl instead of
sed.
Akim Demaille [Thu, 26 Jul 2012 10:14:50 +0000 (12:14 +0200)]
be sure to properly escape type names
* src/scan-code.l: Use obstack_quote when passing type_name to m4.
* tests/input.at (Code injection): New.
* NEWS: Document it.
Thanks to Paul Eggert for the wording.
Akim Demaille [Thu, 26 Jul 2012 10:12:38 +0000 (12:12 +0200)]
obstack_quote: escape and quote for M4
* src/system.h (obstack_quote): New.
* src/muscle-tab.c: Use it instead of obstack_escape where applicable.
* src/scan-code.l: Since obstack_quote supports NULL, leave type_name
as NULL instead of defaulting to "".
Akim Demaille [Thu, 26 Jul 2012 09:49:42 +0000 (11:49 +0200)]
muscles: shuffle responsabilities
* src/muscle-tab.c (muscle_boundary_grow): Be in charge of quotation,
instead of leaving this to the caller.
Akim Demaille [Thu, 26 Jul 2012 09:40:52 +0000 (11:40 +0200)]
muscles: make private functions static
* src/muscle-tab.h, src/muscle-tab.c (muscle_boundary_grow)
(muscle_location_grow): Now static.
Akim Demaille [Thu, 26 Jul 2012 09:23:55 +0000 (11:23 +0200)]
muscles: rename private functions/macros
* src/muscle-tab.c (MUSCLE_COMMON_DECODE, muscle_string_decode)
(muscle_location_decode): Not related to muscles, rename as...
(COMMON_DECODE, string_decode, location_decode): these.
Akim Demaille [Thu, 26 Jul 2012 09:19:18 +0000 (11:19 +0200)]
obstack_escape: escape M4 characters
* src/muscle-tab.h (MUSCLE_OBSTACK_SGROW): This is not related to
muscles, so move to, and rename as...
* src/system.h (obstack_escape): this.
Adjust dependencies.
Akim Demaille [Thu, 26 Jul 2012 10:16:54 +0000 (12:16 +0200)]
remove dead macro
* src/system.h (DEFAULT_TMPDIR): Remove, unused.
Akim Demaille [Wed, 25 Jul 2012 15:57:57 +0000 (17:57 +0200)]
maint: style changes
* src/scan-code.l: Remove useless braces.
Formatting changes.
Prefer NULL to 0.
* src/muscle-tab.c, src/system.h: Formatting changes.
Akim Demaille [Tue, 24 Jul 2012 11:24:20 +0000 (13:24 +0200)]
doc: avoid problems with case insensitive file systems
makeinfo --html generates index.html, and the node "Index" will result
in Index.html. On case insensitive file systems, such as on Mac OS X
by default, this results in a single, invalid, file (Texinfo 4.13).
See http://lists.gnu.org/archive/html/bug-texinfo/2012-07/msg00032.html
* doc/bison.texi (Index): Rename as...
(Index of Terms): this.
Stefano Lattarini [Sat, 21 Jul 2012 15:24:23 +0000 (17:24 +0200)]
configure: fix botched quoting
* configure.ac: In the AC_SUBST call on 'VALGRIND_PREBISON'. Without
this change, when running ./configure, I see:
...
checking for valgrind... valgrind
./configure: line 35221: -q: command not found
checking for Java compiler... gcj -C -fsource=1.3 -ftarget=1.4
...
Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Akim Demaille [Fri, 20 Jul 2012 08:00:51 +0000 (10:00 +0200)]
news: fix typo.
* NEWS: here.
Reported by Ben Pfaff.
Akim Demaille [Thu, 19 Jul 2012 14:24:33 +0000 (16:24 +0200)]
maint: update gnu-web-doc-update.
* gnulib: here.
Akim Demaille [Thu, 19 Jul 2012 13:38:29 +0000 (15:38 +0200)]
maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
Akim Demaille [Thu, 19 Jul 2012 13:24:23 +0000 (15:24 +0200)]
version 2.6
* NEWS: Record release date.
Akim Demaille [Thu, 19 Jul 2012 13:20:20 +0000 (15:20 +0200)]
maint: prepare for release 2.6
* NEWS: here.
Akim Demaille [Wed, 18 Jul 2012 16:33:25 +0000 (18:33 +0200)]
maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
Akim Demaille [Wed, 18 Jul 2012 16:19:32 +0000 (18:19 +0200)]
version 2.5.91
* NEWS: Record release date.
Akim Demaille [Wed, 18 Jul 2012 16:19:12 +0000 (18:19 +0200)]
maint: prepare NEWS.
Akim Demaille [Wed, 18 Jul 2012 15:56:30 +0000 (17:56 +0200)]
maint: fix spaces.
* build-aux/Makefile.am: here.
Akim Demaille [Tue, 17 Jul 2012 13:20:11 +0000 (15:20 +0200)]
tests: adjust to case where the C compiler is actually a C++ compiler
* tests/atlocal.in (CC_IS_CXX): New.
* tests/headers.at (Several parsers): Use it.
Akim Demaille [Tue, 17 Jul 2012 13:19:37 +0000 (15:19 +0200)]
tests: fix dependencies
* tests/Makefile.am: we need atconfig and atlocal to be up to date
when calling testsuite.
Akim Demaille [Tue, 17 Jul 2012 13:11:47 +0000 (15:11 +0200)]
doc: fix Texinfo command
* doc/bison.texi: In parens, use @pxref.
Akim Demaille [Tue, 17 Jul 2012 08:45:00 +0000 (10:45 +0200)]
maint: Valgrind on OS X.
* configure.ac (VALGRIND_PREBISON): New.
* tests/Makefile.am (maintainer-check-valgrind): Use it.
* etc/darwin11.4.0.supp: New.
* configure.ac, etc/Makefile.am: Use it.
* configure.ac: Disable Valgrind on Mac OS X.
* README-hacking: Explain why.
Akim Demaille [Tue, 17 Jul 2012 12:25:26 +0000 (14:25 +0200)]
tests: be sure that backups are safe.
* tests/local.at (at_save_special_files): here.
Akim Demaille [Tue, 17 Jul 2012 12:08:53 +0000 (14:08 +0200)]
maint: dead comment.
* etc/README: here.
Akim Demaille [Tue, 17 Jul 2012 11:40:26 +0000 (13:40 +0200)]
tests: refactor for legibility.
* tests/local.at (AT_BISON_CHECK_WARNINGS, AT_BISON_CHECK_WARNINGS_):
New.
Akim Demaille [Tue, 17 Jul 2012 10:45:29 +0000 (12:45 +0200)]
tests: refactor the bison invocations.
* tests/local.at (m4_null_if, AT_BISON_CHECK_): New.
Akim Demaille [Tue, 17 Jul 2012 08:35:58 +0000 (10:35 +0200)]
maint: fix syntax-check ignore patterns.
* cfg.mk: here.
Akim Demaille [Tue, 17 Jul 2012 07:49:57 +0000 (09:49 +0200)]
gnulib: update
Akim Demaille [Mon, 16 Jul 2012 18:40:18 +0000 (20:40 +0200)]
gnulib: update.
* gnulib: Update so that gitlog-to-changelog support --srcdir.
* Makefile.am: Use it.
Akim Demaille [Fri, 6 Jul 2012 13:03:27 +0000 (15:03 +0200)]
gnulib: update
* bootstrap, build-aux/.gitignore, gnulib, m4/.gitignore: update.
Akim Demaille [Fri, 6 Jul 2012 08:14:49 +0000 (10:14 +0200)]
maint: update release instructions
* README-hacking: here.
Akim Demaille [Thu, 5 Jul 2012 14:29:06 +0000 (16:29 +0200)]
maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
Akim Demaille [Thu, 5 Jul 2012 14:20:44 +0000 (16:20 +0200)]
version 2.5.90
* NEWS: Record release date.
Akim Demaille [Thu, 5 Jul 2012 14:09:17 +0000 (16:09 +0200)]
build: fix gen-ChangeLog call.
* Makefile.am: Be sure to catch errors, and fix option name
Akim Demaille [Thu, 5 Jul 2012 13:24:34 +0000 (15:24 +0200)]
gnulib: update.
* gnulib/build-aux/do-release-commit-and-tag: Fix.
Akim Demaille [Thu, 5 Jul 2012 12:27:09 +0000 (14:27 +0200)]
tests: fix SKIP_IF for Java.
* tests/local.at (AT_JAVA_COMPILE): here.
Akim Demaille [Thu, 5 Jul 2012 10:33:42 +0000 (12:33 +0200)]
api.prefix: incompatible with %name-prefix.
* data/bison.m4: Make it incompatible.
* tests/input.at: Check that it is.
Akim Demaille [Thu, 5 Jul 2012 10:33:37 +0000 (12:33 +0200)]
api.prefix: strengthen the tests and fix push-parsers.
* tests/calc.at: Check api.prefix in addition to %name-prefix.
* tests/headers.at: Check push parsers and pure interface.
* tests/local.at: Use YYLTYPE renamed.
* data/yacc.c (b4_declare_yyparse_push_): Handle api.prefix.
* doc/bison.texi: Style changes.
Akim Demaille [Thu, 5 Jul 2012 09:11:38 +0000 (11:11 +0200)]
skeletons: style changes.
* data/bison.m4: Define default values after having defined
the support macros.
Kill a dead comment.
Akim Demaille [Thu, 5 Jul 2012 08:30:47 +0000 (10:30 +0200)]
NEWS: minor changes.
* NEWS: style changes.
Akim Demaille [Thu, 5 Jul 2012 08:30:09 +0000 (10:30 +0200)]
api.prefix: improve the documentation for YYDEBUG.
* doc/bison.texi: Explain how api.prefix is applied to YYDEBUG.
Akim Demaille [Thu, 5 Jul 2012 07:37:20 +0000 (09:37 +0200)]
gnulib: update.
* bootstrap, gnulib: Update.
* cfg.mk (syntax-check): Don't check "error" usage in bison.texi.
Akim Demaille [Wed, 4 Jul 2012 10:04:19 +0000 (12:04 +0200)]
tests: headers.at: strengthen.
* tests/headers.at (Several headers): Be stricter when checking
the exported macros.
Akim Demaille [Wed, 4 Jul 2012 10:00:24 +0000 (12:00 +0200)]
glr.cc: do not override C++ definitions by C macros.
* data/glr.c: here.
* data/glr.cc: Fix overquotation.
* tests/headers.at: Comment changes.
Akim Demaille [Wed, 4 Jul 2012 09:41:06 +0000 (11:41 +0200)]
YYLLOC_DEFAULT: factor, and don't export it in headers.
* data/c++.m4, data/c.m4 (b4_yylloc_default_define): New.
* data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c: Use it.
* data/glr.cc: Do not define YYLLOC_DEFAULT in the header file,
but in the implementation one.
Akim Demaille [Wed, 4 Jul 2012 09:04:52 +0000 (11:04 +0200)]
api.prefix: do not use #define to handle YYSTYPE_IS_TRIVIAL etc.
The following mixture is insane:
#define YYSTYPE_IS_TRIVIAL PREFIX_STYPE_IS_TRIVIAL
#if (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)
since, of course YYSTYPE_IS_TRIVIAL is defined. Instead we could
define YYSTYPE_IS_TRIVIAL as PREFIX_STYPE_IS_TRIVIAL only when the
later is defined, but let's avoid stacking CPP on top of M4: rather, use
#if (defined PREFIX_STYPE_IS_TRIVIAL && PREFIX_STYPE_IS_TRIVIAL)
* data/glr.c, data/yacc.c: Use YYSTYPE_IS_TRIVIAL, YYSTYPE_IS_DECLARED,
YYLTYPE_IS_TRIVIAL and YYLTYPE_IS_DECLARED under their api.prefix-renamed
name.
Akim Demaille [Wed, 4 Jul 2012 10:04:07 +0000 (12:04 +0200)]
tests: portability fixes.
Reported by Hydra.
* tests/headers.at (Several headers): Be sure to include config.h
in the files to compile.
Akim Demaille [Wed, 4 Jul 2012 07:57:40 +0000 (09:57 +0200)]
c++: fewer #includes in the headers.
* data/lalr1.cc: Define YY_NULL in the *.cc file, it is not needed
in the header.
* data/location.cc: iosfwd suffices.
Akim Demaille [Mon, 2 Jul 2012 12:55:54 +0000 (14:55 +0200)]
glr.cc: formatting changes.
* data/glr.cc: here.
Akim Demaille [Mon, 2 Jul 2012 10:11:51 +0000 (12:11 +0200)]
tests: more logs.
* tests/headers.at (Several parsers): Here.
Akim Demaille [Mon, 2 Jul 2012 12:56:22 +0000 (14:56 +0200)]
api.prefix: also rename YYDEBUG.
The testsuite in master has shown weird errors for the "Mulitple
Parsers" tests: the caller of p5.parse() received some apparently
random value, while tracing p5.parse() showed that the function was
consistently returning 0.
It happens when mixing several parser headers, some generated without
%debug, others with. In particular the C++ parser was generated with
%debug, i.e., with:
#ifndef YYDEBUG
# define YYDEBUG 1
#endif
and compiled separatedly. Yet, its header was included after the one
of another parser, this time without %debug, i.e., with
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
in its header. As a result, the parser was compiled with YYDEBUG set,
but its header was used without. Since the layout of the objects are
then completely different, boom.
Therefore, do not change the value of YYDEBUG. Rather, use it as a
default value for <API.PREFIX>DEBUG.
* data/c.m4 (b4_YYDEBUG_define): New.
(b4_declare_yydebug): Rename as...
(b4_yydebug_declare): this, for consistency.
* data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c: Use it.
* NEWS: Document it.
Akim Demaille [Mon, 2 Jul 2012 07:26:22 +0000 (09:26 +0200)]
NEWS: spell check.
* NEWS: here.
Akim Demaille [Tue, 26 Jun 2012 08:09:10 +0000 (10:09 +0200)]
api.prefix.
* data/c.m4 (b4_api_prefix, b4_api_PREFIX): New.
(b4_prefix, b4_union_name, b4_token_enums, b4_declare_yylstype): Use them.
* data/glr.c, data/yacc.c, data/glr.cc, data/lalr1.cc: Use them to change
the prefix of exported preprocessor symbols.
* src/getargs.c (usage): Ditto.
* tests/headers.at (Several parsers): New.
* tests/local.at (AT_API_PREFIX): New.
AT_YYSTYPE, AT_YYLTYPE): Adjust.
* doc/bison.texi (Multiple Parsers): Move documentation of %name-prefix to...
(Table of Symbols): here.
(Multiple Parsers): Document api.prefix.
(%define Summary): Point to it.
Use @code for variable names.
(Bison Options): -p/--name-prefix are obsoleted.
* NEWS: Announce api.prefix.
Akim Demaille [Thu, 28 Jun 2012 12:54:45 +0000 (14:54 +0200)]
tests: use the generalized default yylex.
* tests/actions.at, tests/glr-regression.at, tests/regression.at: here.
Akim Demaille [Thu, 28 Jun 2012 12:20:17 +0000 (14:20 +0200)]
tests: AT_YYERROR_DEFINE: prepare for list of ints.
* tests/local.at (AT_YYERROR_DEFINE): Don't add quotes, check their
presence to detect char/int types.
* tests/actions.at, tests/conflicts.at, tests/glr-regression.at,
* tests/push.at, tests/regression.at: Adjust.
Akim Demaille [Mon, 25 Jun 2012 14:55:11 +0000 (16:55 +0200)]
skeletons: no longer define YYLSP_NEEDED.
* data/c.m4, data/glr.cc: here.
* NEWS, TODO: Adjust.
Akim Demaille [Mon, 25 Jun 2012 14:52:30 +0000 (16:52 +0200)]
c++: do not export YYTOKEN_TABLE and YYERROR_VERBOSE.
* src/output.c (prepare_symbols): Do not define b4_token_table.
(prepare): Define b4_token_table_flag.
* data/bison.m4 (b4_token_table_if): New.
Arm it when error-verbose.
* data/glr.c, data/yacc.c (YYTOKEN_TABLE): Remove.
Use m4.
* data/lalr1.cc: Likewise.
(YYERROR_VERBOSE): Remove.
* NEWS, doc/bison.texi: Document this.
Akim Demaille [Tue, 26 Jun 2012 14:55:23 +0000 (16:55 +0200)]
maint: use *.texi.
This is more consistent with the other packages, and Automake-NG
supports only *.texi.
* doc/bison.texinfo: Rename as...
* doc/bison.texi: this.
* doc/Makefile.am, examples/calc++/Makefile.am: Adjust.
Akim Demaille [Tue, 26 Jun 2012 12:05:56 +0000 (14:05 +0200)]
tests: do not output m4 set up.
* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
Use a diversion to avoid outputting comments etc.
Removes 17k lines from testsuite (10% of the number of lines).
Akim Demaille [Tue, 26 Jun 2012 09:54:13 +0000 (11:54 +0200)]
tests: use the generic yyerror function.
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Factor.
Use AT_YYERROR_DEFINE.
Therefore, instead of using stdout, use and check stderr.
* tests/glr-regression.at (Uninitialized location when reporting ambiguity):
Use AT_YYERROR_DEFINE.
Akim Demaille [Tue, 26 Jun 2012 08:20:35 +0000 (10:20 +0200)]
tests: use assert instead of plain abort.
* tests/actions.at, tests/calc.at, tests/conflicts.at,
* tests/cxx-type.at, tests/glr-regression.at, tests/input.at,
* tests/named-refs.at, tests/regression.at, tests/torture.at,
* tests/local.at:
Prefer assert to abort.
Akim Demaille [Tue, 26 Jun 2012 08:09:10 +0000 (10:09 +0200)]
tests: improve the generic yylex implementation.
* tests/local.at (AT_YYSTYPE, AT_YYLTYPE): New.
(AT_YYLEX_FORMALS): Use them.
(AT_YYLEX_DEFINE): Be independent of the location implementation.
Akim Demaille [Mon, 25 Jun 2012 14:37:18 +0000 (16:37 +0200)]
tests: generalize the compilation macros.
* tests/local.at (AT_COMPILE, AT_COMPILE_CXX): If OUTPUT ends with ".o",
then append the "natural" extension for the input file (.c or .cc).
If there is no source, pass -c.
* tests/headers.at, tests/input.at, tests/regression.at: Adjust.
Akim Demaille [Tue, 26 Jun 2012 07:35:31 +0000 (09:35 +0200)]
tests: fix confusion between api.prefix and name-prefix.
* tests/local.at (AT_NAME_PREFIX): Take api.prefix into account.
(AT_API_PREFIX): Rename as...
(AT_API_prefix): this.
Do not take %name-prefix into account.
Fix misuses.
Akim Demaille [Tue, 26 Jun 2012 07:37:27 +0000 (09:37 +0200)]
maint: gitignores.
Akim Demaille [Mon, 25 Jun 2012 08:15:44 +0000 (10:15 +0200)]
yacc: work around the ylwrap limitation.
* data/yacc.c (b4_shared_declarations): Include the header guards.
Do not include the header in the *.c file, duplicate it.
* NEWS (Future Changes): Extend, and announce the forthcoming change
about the use of the parser header.
Akim Demaille [Fri, 22 Jun 2012 10:08:02 +0000 (12:08 +0200)]
tests: more uniformity.
* tests/local.at (AT_LEX_FORMALS, AT_LEX_ARGS, AT_LEX_PRE_FORMALS)
(AT_LEX_PRE_ARGS): Rename as...
(AT_YYLEX_FORMALS, AT_YYLEX_ARGS, AT_YYLEX_PRE_FORMALS)
(AT_YYLEX_PRE_ARGS): these, for consistency.
(AT_API_PREFIX): Take %name-prefix into account.
(AT_YYLEX_PROTOTYPE): New.
Use it.
* tests/actions.at, tests/calc.at, tests/cxx-type.at: Adjust to
use them.
Akim Demaille [Fri, 22 Jun 2012 09:34:37 +0000 (11:34 +0200)]
tests: handle locations in a more generic way.
* tests/local.at (AT_YYERROR_PROTOTYPE): New.
Use it.
* tests/cxx-type.at: Extensive revamp to use a more traditional
quotation scheme, and to use the generic yyerror implementation.
Prefer Autotest macros to CPP macros.
* tests/java.at: .
Akim Demaille [Fri, 22 Jun 2012 08:20:28 +0000 (10:20 +0200)]
tests: handle locations in the generic yyerror functions.
* tests/local.at (AT_YYERROR_DECLARE_EXTERN, AT_YYERROR_DECLARE)
(AT_YYERROR_DEFINE): Handle locations for C and C++.
* tests/calc.at: Use it for C++ (as C has extra arguments which
are not yet handled by AT_BISON_OPTION_PUSHDEFS).
* tests/actions.at: Adjust.
Akim Demaille [Fri, 22 Jun 2012 07:41:36 +0000 (09:41 +0200)]
tests: fix AT_CHECK_CALC.
* tests/calc.at (AT_CHECK_CALC): Contrary to its documentation,
the test was skipped if given a second argument.
Unused feature, remove it.
Akim Demaille [Thu, 21 Jun 2012 21:05:05 +0000 (23:05 +0200)]
tests: improve infrastructure
* tests/local.at (AT_LANG): Use c++ instead of cxx for C++.
Adjust dependencies.
(AT_YYERROR_DECLARE_EXTERN, AT_YYERROR_DECLARE): Issue nothing
for C++/Java.
(AT_YYERROR_DEFINE): Use m4_case.
(AT_JAVA_COMPILE): Use AT_SKIP_IF.
Akim Demaille [Thu, 21 Jun 2012 16:26:44 +0000 (18:26 +0200)]
tests: factor.
* tests/glr-regression.at, tests/output.at, tests/push.at,
* tests/regression.at, tests/torture.at, tests/actions.at:
Use AT_YYLEX_* and AT_YYERROR_*.
Akim Demaille [Sun, 17 Jun 2012 10:12:52 +0000 (12:12 +0200)]
skeletons: minor style changes
* data/glr.c, data/yacc.c: here.
Akim Demaille [Sun, 17 Jun 2012 18:39:17 +0000 (20:39 +0200)]
tests: AT_LANG.
* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
Define/undefine AT_LANGE
(AT_LANG_COMPILE): New.
(AT_FULL_COMPILE): Use AT_LANG.
Akim Demaille [Sun, 17 Jun 2012 10:10:44 +0000 (12:10 +0200)]
c skeletons: factor the declaration of yylloc and yylval.
There is one difference: now, even without --defines, we generate
extern declarations for these variables. The factoring is worth it.
* data/c.m4 (b4_declare_yylstype): Declare them.
* data/glr.c, data/yacc.c: Adjust.
Akim Demaille [Sun, 17 Jun 2012 08:54:15 +0000 (10:54 +0200)]
news: condemn YYPARSE_PARAM and YYLEX_PARAM.
* NEWS: here.
(Bison 1.875): Add %parse-param and %lex-param.
* doc/bison.texinfo: Spello.
Akim Demaille [Wed, 20 Jun 2012 08:02:11 +0000 (10:02 +0200)]
maint: regen.
* Makefile.am (regen): New target.
(cherry picked from commit
71bff31edd4ddbfe3c350933652bb0e3a4a7f3e2)