]> git.saurik.com Git - bison.git/log
bison.git
12 years agoscanner: restore a missing start condition
Akim Demaille [Mon, 30 Jul 2012 12:54:27 +0000 (14:54 +0200)] 
scanner: restore a missing start condition

$ flex src/scan-skel.l
src/scan-skel.l:145: multiple <<EOF>> rules for start condition SC_AT_DIRECTIVE_ARGS
src/scan-skel.l:145: multiple <<EOF>> rules for start condition SC_AT_DIRECTIVE_SKIP_WS
This is warning, and it seems there are no means to make it an error.

* src/scan-skel.l: Restore the start-condition INITIAL for an <<EOF>>
clause.

12 years agognulib: update
Akim Demaille [Mon, 30 Jul 2012 12:53:58 +0000 (14:53 +0200)] 
gnulib: update

12 years agomaint: post-release administrivia
Akim Demaille [Mon, 30 Jul 2012 09:47:29 +0000 (11:47 +0200)] 
maint: post-release administrivia

* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.

12 years agoversion 2.6.1 v2.6.1
Akim Demaille [Mon, 30 Jul 2012 09:18:23 +0000 (11:18 +0200)] 
version 2.6.1

* NEWS: Record release date.

12 years agognulib: update
Akim Demaille [Mon, 30 Jul 2012 09:10:36 +0000 (11:10 +0200)] 
gnulib: update

12 years agomaint: fix some syntax-check issues
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

12 years agotests: do not depend on __cplusplus to decide for C++ or C output
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.

12 years agoregen
Akim Demaille [Fri, 27 Jul 2012 12:52:55 +0000 (14:52 +0200)] 
regen

12 years agosynclines: remove spurious empty line
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.

12 years agoalso support $<foo>$ in the %initial-action
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.

12 years agoskeletons: b4_dollar_pushdef and popdef to simpify complex definitions
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.

12 years agoregen
Akim Demaille [Fri, 27 Jul 2012 10:53:46 +0000 (12:53 +0200)] 
regen

12 years agoprinter/destructor: translate only once
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.

12 years agofactor the handling of m4 escaping
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.

12 years agonews: schedule the removal of the ";" hack
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.

12 years agostyle changes in the scanners
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.

12 years agoregen
Akim Demaille [Thu, 26 Jul 2012 15:19:04 +0000 (17:19 +0200)] 
regen

12 years agosupport $<tag>$ in printers and destructors
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++.

12 years agoscan-code: factor the handling of the type in $<TYPE>$
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.

12 years agomuscles: fix another occurrence of unescaped type name
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.

12 years agoglr.cc: fix the handling of yydebug
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.

12 years agognulib: update
Akim Demaille [Thu, 26 Jul 2012 11:28:58 +0000 (13:28 +0200)] 
gnulib: update

12 years agoformatting changes
Akim Demaille [Thu, 26 Jul 2012 12:41:20 +0000 (14:41 +0200)] 
formatting changes

* src/symtab.h: here.

12 years agotests: fix an assertion
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.

12 years agotests: adjust to GCC 4.8, which displays caret errors
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.

12 years agobe sure to properly escape type names
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.

12 years agoobstack_quote: escape and quote for M4
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 "".

12 years agomuscles: shuffle responsabilities
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.

12 years agomuscles: make private functions static
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.

12 years agomuscles: rename private functions/macros
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.

12 years agoobstack_escape: escape M4 characters
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.

12 years agoremove dead macro
Akim Demaille [Thu, 26 Jul 2012 10:16:54 +0000 (12:16 +0200)] 
remove dead macro

* src/system.h (DEFAULT_TMPDIR): Remove, unused.

12 years agomaint: style changes
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.

12 years agodoc: avoid problems with case insensitive file systems
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.

12 years agoconfigure: fix botched quoting
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>
12 years agonews: fix typo.
Akim Demaille [Fri, 20 Jul 2012 08:00:51 +0000 (10:00 +0200)] 
news: fix typo.

* NEWS: here.
Reported by Ben Pfaff.

12 years agomaint: update gnu-web-doc-update.
Akim Demaille [Thu, 19 Jul 2012 14:24:33 +0000 (16:24 +0200)] 
maint: update gnu-web-doc-update.

* gnulib: here.

12 years agomaint: post-release administrivia
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.

12 years agoversion 2.6 v2.6
Akim Demaille [Thu, 19 Jul 2012 13:24:23 +0000 (15:24 +0200)] 
version 2.6

* NEWS: Record release date.

12 years agomaint: prepare for release 2.6
Akim Demaille [Thu, 19 Jul 2012 13:20:20 +0000 (15:20 +0200)] 
maint: prepare for release 2.6

* NEWS: here.

12 years agomaint: post-release administrivia
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.

12 years agoversion 2.5.91
Akim Demaille [Wed, 18 Jul 2012 16:19:32 +0000 (18:19 +0200)] 
version 2.5.91

* NEWS: Record release date.

12 years agomaint: prepare NEWS.
Akim Demaille [Wed, 18 Jul 2012 16:19:12 +0000 (18:19 +0200)] 
maint: prepare NEWS.

12 years agomaint: fix spaces.
Akim Demaille [Wed, 18 Jul 2012 15:56:30 +0000 (17:56 +0200)] 
maint: fix spaces.

* build-aux/Makefile.am: here.

12 years agotests: adjust to case where the C compiler is actually a C++ compiler
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.

12 years agotests: fix dependencies
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.

12 years agodoc: fix Texinfo command
Akim Demaille [Tue, 17 Jul 2012 13:11:47 +0000 (15:11 +0200)] 
doc: fix Texinfo command

* doc/bison.texi: In parens, use @pxref.

12 years agomaint: Valgrind on OS X.
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.

12 years agotests: be sure that backups are safe.
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.

12 years agomaint: dead comment.
Akim Demaille [Tue, 17 Jul 2012 12:08:53 +0000 (14:08 +0200)] 
maint: dead comment.

* etc/README: here.

12 years agotests: refactor for legibility.
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.

12 years agotests: refactor the bison invocations.
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.

12 years agomaint: fix syntax-check ignore patterns.
Akim Demaille [Tue, 17 Jul 2012 08:35:58 +0000 (10:35 +0200)] 
maint: fix syntax-check ignore patterns.

* cfg.mk: here.

12 years agognulib: update
Akim Demaille [Tue, 17 Jul 2012 07:49:57 +0000 (09:49 +0200)] 
gnulib: update

12 years agognulib: 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.

12 years agognulib: update
Akim Demaille [Fri, 6 Jul 2012 13:03:27 +0000 (15:03 +0200)] 
gnulib: update

* bootstrap, build-aux/.gitignore, gnulib, m4/.gitignore: update.

12 years agomaint: update release instructions
Akim Demaille [Fri, 6 Jul 2012 08:14:49 +0000 (10:14 +0200)] 
maint: update release instructions

* README-hacking: here.

12 years agomaint: post-release administrivia
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.

12 years agoversion 2.5.90
Akim Demaille [Thu, 5 Jul 2012 14:20:44 +0000 (16:20 +0200)] 
version 2.5.90

* NEWS: Record release date.

12 years agobuild: fix gen-ChangeLog call.
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

12 years agognulib: update.
Akim Demaille [Thu, 5 Jul 2012 13:24:34 +0000 (15:24 +0200)] 
gnulib: update.

* gnulib/build-aux/do-release-commit-and-tag: Fix.

12 years agotests: fix SKIP_IF for Java.
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.

12 years agoapi.prefix: incompatible with %name-prefix.
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.

12 years agoapi.prefix: strengthen the tests and fix push-parsers.
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.

12 years agoskeletons: 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.

12 years agoNEWS: minor changes.
Akim Demaille [Thu, 5 Jul 2012 08:30:47 +0000 (10:30 +0200)] 
NEWS: minor changes.

* NEWS: style changes.

12 years agoapi.prefix: improve the documentation for YYDEBUG.
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.

12 years agognulib: update.
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.

12 years agotests: headers.at: strengthen.
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.

12 years agoglr.cc: do not override C++ definitions by C 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.

12 years agoYYLLOC_DEFAULT: factor, and don't export it in headers.
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.

12 years agoapi.prefix: do not use #define to handle YYSTYPE_IS_TRIVIAL etc.
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.

12 years agotests: portability fixes.
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.

12 years agoc++: fewer #includes in the headers.
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.

12 years agoglr.cc: formatting changes.
Akim Demaille [Mon, 2 Jul 2012 12:55:54 +0000 (14:55 +0200)] 
glr.cc: formatting changes.

* data/glr.cc: here.

12 years agotests: more logs.
Akim Demaille [Mon, 2 Jul 2012 10:11:51 +0000 (12:11 +0200)] 
tests: more logs.

* tests/headers.at (Several parsers): Here.

12 years agoapi.prefix: also rename YYDEBUG.
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.

12 years agoNEWS: spell check.
Akim Demaille [Mon, 2 Jul 2012 07:26:22 +0000 (09:26 +0200)] 
NEWS: spell check.

* NEWS: here.

12 years agoapi.prefix.
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.

12 years agotests: use the generalized default yylex.
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.

12 years agotests: AT_YYERROR_DEFINE: prepare for list of ints.
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.

12 years agoskeletons: no longer define YYLSP_NEEDED.
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.

12 years agoc++: do not export YYTOKEN_TABLE and YYERROR_VERBOSE.
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.

12 years agomaint: use *.texi.
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.

12 years agotests: do not output m4 set up.
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).

12 years agotests: use the generic yyerror function.
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.

12 years agotests: use assert instead of plain abort.
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.

12 years agotests: improve the generic yylex implementation.
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.

12 years agotests: generalize the compilation macros.
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.

12 years agotests: fix confusion between api.prefix and name-prefix.
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.

12 years agomaint: gitignores.
Akim Demaille [Tue, 26 Jun 2012 07:37:27 +0000 (09:37 +0200)] 
maint: gitignores.

12 years agoyacc: work around the ylwrap limitation.
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.

12 years agotests: more uniformity.
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.

12 years agotests: handle locations in a more generic way.
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: .

12 years agotests: handle locations in the generic yyerror functions.
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.

12 years agotests: fix AT_CHECK_CALC.
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.

12 years agotests: improve infrastructure
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.

12 years agotests: factor.
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_*.

12 years agoskeletons: minor style changes
Akim Demaille [Sun, 17 Jun 2012 10:12:52 +0000 (12:12 +0200)] 
skeletons: minor style changes

* data/glr.c, data/yacc.c: here.

12 years agotests: AT_LANG.
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.