* data/glr.cc: No longer require %defines.
When it is not given, define the position and location classes instead
of including their headers.
(b4_shared_declarations): Use the original parse-params.
* data/glr.c (b4_shared_declarations): Define only if undefined.
* tests/actions.at, tests/calc.at: No longer force the use of %defines
for glr.cc.
* NEWS: Doc it.
* origin/maint:
maint: post-release administrivia
version 2.6.2
NEWS: update.
yacc: remove trailing end of line at end of file
thanks: fix a contributor name
gnulib: update
tests: synch line -> syncline, for consistency
tests: synclines: style changes
tests: synclines: fix perl invocation
regen
c++: trailing end-of-lines in %parse-param
tests: simplify
Conflicts:
cfg.mk
data/glr.cc
data/yacc.c
src/parse-gram.c
src/parse-gram.h
src/parse-gram.y
There are still spurious spaces at the end of some lines. But this is
addressed in the master branch, and I am reluctant to try to backport
this.
* data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: here.
* tests/calc.at (AT_CHECK_SPACES): New.
Use it.
Be sure not to introduce trailing empty lines in the *.y files.
* NEWS: Doc it.
* cfg.mk (syntax-check): Remove the exception.
* data/glr.cc: Use b4_locations_if where appropriate.
* data/lalr1.cc: M4 quotation changes to highlight code duplication
with glr.cc.
* tests/calc.at: Check glr.cc with and without %location.
While at it, fuse multiple %parse-params into one.
* tests/actions.at: Simplify.
* NEWS: Doc this.
Some other wording changes.
* 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++.
* origin/maint:
tests: do not output m4 set up.
tests: use the generic yyerror function.
tests: use assert instead of plain abort.
tests: improve the generic yylex implementation.
tests: generalize the compilation macros.
tests: fix confusion between api.prefix and name-prefix.
maint: gitignores.
yacc: work around the ylwrap limitation.
Conflicts:
NEWS
tests/local.at
* origin/maint:
tests: more uniformity.
tests: handle locations in a more generic way.
tests: handle locations in the generic yyerror functions.
tests: fix AT_CHECK_CALC.
tests: improve infrastructure
tests: factor.
skeletons: minor style changes
tests: AT_LANG.
c skeletons: factor the declaration of yylloc and yylval.
news: condemn YYPARSE_PARAM and YYLEX_PARAM.
maint: regen.
Conflicts:
tests/calc.at
tests/local.at
tests/regression.at
* 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.
* 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.
* origin/maint:
maint: formatting changes.
tests: support api.prefix.
tests: pacify font-lock-mode.
tests: remove test covered elsewhere.
tests: factor the declaration/definition of yyerror and yylex.
regen.
tests: portability issues.
tests: call the parser from another compilation unit.
glr.c, yacc.c: declare yydebug in the header.
skeletons: use header guards.
tests: improve AT_FULL_COMPILE.
tests: reorder.
tests: strengthen the test on generated headers inclusion
yacc.c: instead of duplicating y.tab.h inside y.tac.c, include it.
yacc.c: factor.
Conflicts:
NEWS
data/glr.c
data/yacc.c
src/parse-gram.c
src/parse-gram.h
tests/conflicts.at
tests/regression.at
In order to improve the testing of %defines, which exports the
interface of the generated parser, change the calc.at tests so that
when %defines is passed, main will be in another compilation unit. It
loads the generated header.
* tests/calc.at (AT_CALC_MAIN): New.
Includes the definition of the global variables.
Therefore, now declare them from the %requires section of the parser.
Adjust to yydebug and yyparse being renamed by %name-prefix.
* origin/maint:
bump to 2012 in skeletons.
build: remove ancient Autoconf tests.
doc: c++: complete the location documentation.
c++: locations: provide convenience constructors.
c++: locations: remove useless "inline".
glr: do not use locations when they are not requested
c++: use nullptr for C++11.
build: simplify and improve the compiler warnings for tests.
gnulib: update.
maint: formatting changes.
NEWS: update.
Java: Fix syntax error handling without error token.
tests: beware of -pedantic on large #line numbers.
tests: when using the C++ compiler, use its flags too.
Conflicts:
data/glr.c
data/glr.cc
data/lalr1.cc
data/location.cc
data/yacc.c
tests/Makefile.am
C++11 introduces "nullptr" which plays the role of C's NULL, in
replacement of "0". Fix the C++ skeletons to avoid warnings about
uses of "0" in place of "nullptr", and improve C skeletons to also use
this "nullptr" when compiled with a C++11 compiler.
* configure.ac: More C++ warnings.
* NEWS (2.5.1): Document this.
* data/c++.m4, data/c.m4 (b4_null_define): New.
(b4_null): Use YY_NULL instead of 0.
* data/glr.c, data/lalr1.cc, data/location.cc, data/yacc.c:
Call b4_null_define/b4_null where appropriate.
Use YY_NULL instead of NULL.
* data/location.cc (initialize): Accept a default argument,
YY_NULL.
* tests/actions.at, tests/calc.at: Adjust.
* data/glr.c, lib/libiberty.h, src/system.h (__attribute__):
Do not disable it when __STRICT_ANSI__ is defined, as, for
instance, it disables the __attribute__((unused)) which
protects us from some compiler warnings.
This was already done elsewhere in Bison, in 2001, see
4a0d893695.
* tests/regression.at: Adjust output.
Exit status 63 is documented for version-mismatch.
* bootstrap.conf (gnulib_modules): Remove sysexits.
* src/system.h (EX_MISMATCH): Define.
* src/parse-gram.y (version_check): Use it instead of EX_CONFIG.
Missing includes.
* tests/calc.at, tests/named-refs.at: Include assert.h.
(cherry picked from commit 459a57a90f)
Exit status 63 is documented for version-mismatch.
* bootstrap.conf (gnulib_modules): Remove sysexits.
* src/system.h (EX_MISMATCH): Define.
* src/parse-gram.y (version_check): Use it instead of EX_CONFIG.
Missing includes.
* tests/calc.at, tests/named-refs.at: Include assert.h.
* cfg.mk (local-checks-to-skip): No longer skip it.
* bootstrap.conf (gnulib_modules): Add sysexits.
* doc/bison.texinfo, etc/bench.pl.in, src/parse-gram.y,
* src/system.h, tests/calc.at, tests/named-refs.at: Use assert
where appropriate instead of "if (...) exit".
Use symbolic exit status elsewhere.
This change was made by applying emacs' untabify function to
nearly all files in Bison's repository. Required tabs in make
files, ChangeLog, regexps, and test code were manually skipped.
Other notable exceptions and changes are listed below.
* bootstrap: Skip because we sync this with gnulib.
* data/m4sugar/foreach.m4
* data/m4sugar/m4sugar.m4: Skip because we sync these with
Autoconf.
* djgpp: Skip because I don't know how to test djgpp properly, and
this code appears to be unmaintained anyway.
* README-hacking (Hacking): Specify that tabs should be avoided
where not required.
* data/lalr1.cc (YYRHSLOC): New.
(YYLLOC_DEFAULT): Use it.
* data/glr.cc: If location_type was user defined, do not include
location.hh, and do not produce location.hh and position.hh.
* tests/calc.at (YYLLOC_DEFAULT): Use YYRHSLOC.
Check that glr.cc supports user defined location_type.
* NEWS: Document this.
(cherry picked from commit bb9191dd31)
Conflicts:
ChangeLog
NEWS
data/lalr1.cc
tests/calc.at
* data/lalr1.cc (YYRHSLOC): New.
(YYLLOC_DEFAULT): Use it.
* data/glr.cc: If location_type was user defined, do not include
location.hh, and do not produce location.hh and position.hh.
* tests/calc.at (YYLLOC_DEFAULT): Use YYRHSLOC.
Check that glr.cc supports user defined location_type.
* NEWS: Document this.
* tests/calc.at (Span): Instead of begin/end, as in the built-in
location class, use first and last.
Define YYLLOC_DEFAULT to adjust to these changes.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Adjust to the
location_type changes.
(cherry picked from commit c826013fb3)
Conflicts:
tests/calc.at
* tests/calc.at (Span): Instead of begin/end, as in the built-in
location class, use first and last.
Define YYLLOC_DEFAULT to adjust to these changes.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Adjust to the
location_type changes.
* tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): New.
(_AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Use them to
define the appropriate AT_LOC accessors.
* tests/calc.at: Use AT_LOC accessors.
(cherry picked from commit 4f756f887b)
Conflicts:
tests/local.at
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS):
Define AT_LOCATION_TYPE_IF.
(_AT_BISON_OPTION_POPDEFS): Undefine AT_LOCATION_TYPE_IF.
* tests/calc.at (_AT_DATA_CALC_Y): When %define location_type is
used, provide a user location type and use it.
(Simple LALR1 C++ Calculator): Add a test case for location_type.
(cherry picked from commit 24bb8c8c25)
Conflicts:
tests/calc.at
* tests/calc.at: Use yy::parser::location_type rather than
yy::location, since the former is always right, and might point to
another type than the latter.
(cherry picked from commit 36dc3637a4)
Conflicts:
tests/calc.at
* tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): New.
(_AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Use them to
define the appropriate AT_LOC accessors.
* tests/calc.at: Use AT_LOC accessors.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS):
Define AT_LOCATION_TYPE_IF.
(_AT_BISON_OPTION_POPDEFS): Undefine AT_LOCATION_TYPE_IF.
* tests/calc.at (_AT_DATA_CALC_Y): When %define location_type is
used, provide a user location type and use it.
(Simple LALR1 C++ Calculator): Add a test case for location_type.
* tests/calc.at: Use yy::parser::location_type rather than
yy::location, since the former is always right, and might point to
another type than the latter.