5901 Commits

Author SHA1 Message Date
Akim Demaille
71c7e24f2e tests: support api.prefix.
* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
Define AT_API_PREFIX.
(AT_YYERROR_DEFINE, AT_YYERROR_DECLARE_EXTERN, AT_YYLEX_DECLARE_EXTERN)
(AT_YYLEX_DEFINE): Use it.
* tests/input.at, tests/regression.at, tests/torture.at: Add
AT_BISON_OPTION_PUSHDEFS/POPDEFS.
2012-06-17 19:37:07 +02:00
Akim Demaille
5f7f1e210b tests: pacify font-lock-mode.
* tests/local.at: here.
2012-06-17 19:37:07 +02:00
Akim Demaille
eb83259dc1 tests: remove test covered elsewhere.
* tests/headers.at (%union and --defines): Remove, pretty useless and
insignificant.
2012-06-17 19:37:07 +02:00
Akim Demaille
55f48c4831 tests: factor the declaration/definition of yyerror and yylex.
* tests/local.at (AT_YYERROR_DECLARE, AT_YYERROR_DECLARE_EXTERN)
(AT_YYERROR_DEFINE, AT_YYLEX_DECLARE, AT_YYLEX_DECLARE_EXTERN)
(AT_YYLEX_DEFINE): New.
Must be used inside AT_BISON_OPTION_PUSHDEFS/POPDEFS pair.
* tests/actions.at, tests/conflicts.at, tests/glr-regression.at,
* tests/headers.at, tests/input.at, tests/named-refs.at,
* tests/regression.at, tests/skeletons.at, tests/synclines.at,
* tests/torture.at: Use them.
2012-06-17 19:37:07 +02:00
Akim Demaille
34d867d7d2 regen. 2012-06-17 12:13:20 +02:00
Akim Demaille
363bf73276 tests: portability issues.
* tests/calc.at (AT_CALC_MAIN): Missing include reported by Hydra.
2012-06-17 11:20:21 +02:00
Akim Demaille
c8c220d19a tests: call the parser from another compilation unit.
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.
2012-06-15 15:39:19 +02:00
Akim Demaille
56ca3d8fce glr.c, yacc.c: declare yydebug in the header.
* data/c.m4 (b4_declare_yydebug): New.
* data/glr.c, data/yacc.c (b4_shared_declarations): Use it.
Remove the corresponding code from the parser body.
* NEWS: Doc this.
2012-06-15 15:33:14 +02:00
Akim Demaille
c3e9f08f93 skeletons: use header guards.
* data/glr.c, data/glr.cc, data/yacc.c: here.
* NEWS: Document it.
2012-06-15 15:33:14 +02:00
Akim Demaille
6aef2e01a4 tests: improve AT_FULL_COMPILE.
* tests/local.at: Accept a third argument.
Simplify quotation pattern.
Calls for better refactoring, but will suffice for a while.
2012-06-15 15:20:53 +02:00
Akim Demaille
3d8082ad27 tests: reorder.
* tests/calc.at (power): Move its definition, as a preparation for
forthcoming changes.
And space changes.
2012-06-15 13:36:01 +02:00
Akim Demaille
9d67a52ad6 tests: strengthen the test on generated headers inclusion
* tests/headers.at (AT_TEST_CPP_GUARD_H): Accept Bison directives.
(Invalid CPP headers): Check glr.
2012-06-15 13:31:59 +02:00
Akim Demaille
0f11eec272 yacc.c: instead of duplicating y.tab.h inside y.tac.c, include it.
This is already what glr.c and lalr1.cc do.

* data/yacc.c: here.
2012-06-15 13:31:34 +02:00
Akim Demaille
22539284f3 maint: xfdopen, and scope reduction.
* src/files.h, src/files.c (xfdopen): New.
* src/output.c (output_skeleton): Use it.
Reduce the scope of argv.
2012-06-15 11:56:13 +02:00
Akim Demaille
aed41cf9a0 maint: space changes
* configure.ac, src/complain.c: space changes.
2012-06-15 11:54:57 +02:00
Akim Demaille
ae6bdabbf6 yacc.c: factor.
yacc.c used to include two almost identical sections: one for the *.h
file, and another for the *.c file.  The main difference is that in
the *.c file we used the yy* names (as %name-prefix is handled by
"#define yy* <prefix>*" before), while the *.hh used <prefix>* names.
Keep only the later.  If this is troublesome, b4_shared_declarations
can easily take the desired prefix as argument.

* data/yacc.c (b4_shared_declarations): New.
Use it to factor duplicated declarations.
2012-06-13 21:52:38 +02:00
Stefano Lattarini
c0beb08772 cosmetics: prettify names for compiled object for bison
* src/local.mk (src_bison_SHORTNAME): Define to "bison".

Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2012-06-13 21:36:07 +02:00
Akim Demaille
5237cd1ac8 lalr1.cc: spello.
* data/lalr1.cc: Reported by Gilles Espinasse.
2012-06-13 21:12:15 +02:00
Akim Demaille
9ce27ab013 Merge remote-tracking branch 'origin/maint'
* origin/maint:
  skeletons: factor yacc.c and glr.c.
  glr.c: minor refactoring.
  tests: remove all the -On flags.
  maint: fix spello.
  maint: improve release procedure instructions.
  gnulib: update readme-release.
  maint: cfg.mk: manual title.
  maint: cfg.mk: simplify
  maint: post-release administrivia

Conflicts:
	NEWS
	bootstrap.conf
2012-06-13 21:03:29 +02:00
Akim Demaille
c0828abf9d skeletons: factor yacc.c and glr.c.
yacc.c and glr.c share common declarations.  Their YYLTYPE are exactly
equal, and their YYSTYPE are sufficiently alike to be fused (its
declaration was protected by YYSTYPE_IS_DECLARED in yacc.c, but not in
glr.c).  Besides, yacc.c duplicated the definitions of YYLTYPE and
YYSTYPE (*.h/*.c).

* data/c.m4 (b4_declare_yylstype): New.
* data/yacc.c, data/glr.c: Use it.
2012-06-12 14:49:48 +02:00
Akim Demaille
e9807a7934 glr.c: minor refactoring.
* data/glr.c (b4_shared_declarations): Move from the generated file
section, to the M4 prologue.
2012-06-12 14:49:48 +02:00
Akim Demaille
02287ec650 tests: remove all the -On flags.
* tests/atlocal.in: Here.
Reported by Gilles Espinasse.
2012-06-12 14:49:48 +02:00
Akim Demaille
6537c71fcc maint: fix spello.
* README-hacking: Here.
* THANKS: Reported by Gilles Espinasse.
2012-06-12 14:49:48 +02:00
Akim Demaille
6733d02476 maint: improve release procedure instructions.
* gnulib: Update, in particular (README-release).
* bootstrap.conf: don't require gendocs, provided by gnu-web-doc-update,
provided by readme-release.
* README-hacking: Update accordingly.
2012-06-12 14:49:15 +02:00
Akim Demaille
cc9fb4f6b6 gnulib: update readme-release.
* gnulib (readme-release): Now includes the modules it promotes.
* bootstrap.conf: Simplify accordingly.
2012-06-07 11:15:04 +02:00
Akim Demaille
f763e6ef67 maint: cfg.mk: manual title.
* cfg.mk (manuel_title): New.
2012-06-07 11:15:04 +02:00
Akim Demaille
c4576b484a maint: cfg.mk: simplify
* cfg.mk: Remove bits provided by maint.mk.
2012-06-07 11:15:04 +02:00
Akim Demaille
91aadcc7a9 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2012-06-07 11:15:04 +02:00
Akim Demaille
4896ede89c maint: an envvar equal to "00" is 0.
* src/output.c (prepare): here.
Reported by Paul Eggert.
2012-06-05 18:02:49 +02:00
Akim Demaille
84526bf3d1 maint: don't use mbsr?chr.
Basically, revert ba60c39547a445dee3e07920931b4d7a81843868's move to
mbs* functions, which was prompted by -DGNULIB_POSIXCHECK.  See
<http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00052.html>
and following.

* bootstrap.conf: No longer ask for them.
* src/files.c, src/getargs.c, src/location.c,
* src/parse-gram.c, src/parse-gram.y, src/scan-gram.l,
* src/symtab.c: s/mbs(r?chr)/str$1/g.
2012-06-05 17:55:24 +02:00
Akim Demaille
d9a7c07c5a maint: use xconcat-filename.
* bootstrap.conf (gnulib_modules): Request it.
* src/output.h, src/output.c (compute_pkgdatadir): Rename as...
(pkgdatadir): this.
Adjust dependencies.
* src/output.c (output_skeleton): Reduce the scope of "in".
Use xconcatenated_filename to simplify the construction of the
qualified paths to m4sugar.m4, bison.m4, and the selected skeleton.
There are a few minor differences: the new code uses strchr instead of
mbschr (but this was not really justified), and the new code does not
garantee a single slash even if $BISON_PKGDATADIR ends with several
(which was considered more accurate).  See the discussion at
<http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00052.html>.
2012-06-05 17:34:57 +02:00
Akim Demaille
28126202a5 maint: minor simplification
* src/output.c (prepare): Assign use_push_for_pull_flag's value at its
declaration.
2012-06-05 17:26:35 +02:00
Akim Demaille
527187137a Merge remote-tracking branch 'origin/maint'
* origin/maint:
  version 2.5.1
  NEWS: prepare for 2.5.1.
  maint: update release procedure
  maint: fix comment typos
  maint: post-release administrivia

Conflicts:
	NEWS
2012-06-05 14:07:43 +02:00
Akim Demaille
dfaac27242 version 2.5.1
* NEWS: Record release date.
v2.5.1
2012-06-05 10:03:25 +02:00
Akim Demaille
ed7658fe17 NEWS: prepare for 2.5.1.
* NEWS: Be compliant with do-release-commit-and-tag.
2012-06-05 10:02:17 +02:00
Akim Demaille
4d4777c786 maint: update release procedure
* bootstrap.conf: Request do-release-commit-and-tag and readme-release.
* README-hacking: Adjust.
2012-06-05 09:24:43 +02:00
Jim Meyering
cbdb6d9145 maint: fix comment typos
Using http://github.com/lyda/misspell-check, massage its
output into sed commands to perform the suggested changes.
Initially, I filtered out the THRU->Through changes, because
that failed to retain capitalization in the grammar token.
Instead, do this manually, beforehand:

sed -i s/THRU/THROUGH/ tests/existing.at
git ls-files|misspellings -f -|perl -nl \
  -e '/^(.*?)\[(\d+)\]: (\w+) -> "(.*?)"$/ or next;' \
  -e '($file,$n,$l,$r)=($1,$2,$3,$4); $q="'\''"; $r=~s/$q/$q\\$q$q/g;'\
  -e 'print "sed -i $q${n}s!$l!$r!$q $file"'|bash
2012-06-05 09:17:43 +02:00
Akim Demaille
398c298c88 build: regen. 2012-05-24 13:55:57 +02:00
Akim Demaille
c547693afd Merge tag 'v2.5.1_rc2'
Bison 2.5.1_rc2.

* tag 'v2.5.1_rc2': (34 commits)
  Bison 2.5.1_rc2.
  doc: fixes.
  build: fix ChangeLog generation.
  c++: compute the header guards.
  skeletons: remove support for unused directive.
  lalr1.cc: improve Doxygen documentation.
  lalr1.cc: extract stack.hh.
  news: convert to double quotes.
  space changes.
  build: do not prototype flex-generated functions.
  build: fix ChangeLog generation.
  Bison 2.5.1_rc1.
  tests: save/restore Autotest special files when checking XML support.
  tests: AT_SAVE_SPECIAL_FILES / AT_RESTORE_SPECIAL_FILES.
  tests: honor TESTSUITEFLAGS in all the check targets.
  build: do not enable c++ warnings on 0 when nullptr is not supported.
  maint: update gnulib.
  build: config.in.h.
  build: move silent rules.
  glr.c: reduce variable scopes.
  maint: maintainer-release-check.
  maint: shush a syntax-check.
  maint: prefer "commit message" to "log entry".
  command line: fix minor leaks.
  maint: we no longer maintain the ChangeLog.
  maint: fix the generation of the synclines for bison's parser.
  maint: regen.
  maint: import the xmemdup0 gnulib module.
  maint: remove left-over gnulib modules.
  maint: ignore files imported by autopoint.
  build: AC_PROG_LEX: use more readable variable names.
  maint: regen src/parse-gram.[ch]
  maint: simplify parse-gram.y
  maint: s/strncpy/memcpy/, when equivalent

Conflicts:
	Makefile.am
	NEWS
	data/glr.c
	data/lalr1.cc
	data/stack.hh
	examples/rpcalc/local.mk
	src/flex-scanner.h
	src/getargs.c
	src/output.c
	src/parse-gram.c
	src/parse-gram.h
	src/parse-gram.y
	tests/Makefile.am
	tests/bison.in
2012-05-24 13:54:55 +02:00
Akim Demaille
6a4f5c6ea0 maint: post-release administrivia
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2012-05-23 14:41:37 +02:00
Akim Demaille
3cd7c0bfce Bison 2.5.1_rc2.
* NEWS: Update.
v2.5.1_rc2
2012-05-23 14:30:22 +02:00
Akim Demaille
188867ac65 doc: fixes.
* doc/bison.texinfo: Fix errors spotted by syntax-check.
2012-05-23 14:24:30 +02:00
Akim Demaille
3f32a0d287 build: fix ChangeLog generation.
* gnulib: Update to get newest gitlog-to-changelog.
* bootstrap: Update.
* Makefile.am (gen-ChangeLog): Fix for Bison's git log style.
2012-05-23 14:24:30 +02:00
Akim Demaille
22172d4731 c++: compute the header guards.
This is a frequent request.  Recently pointed out by Wei Song,
<http://lists.gnu.org/archive/html/help-bison/2012-05/msg00002.html>.

* data/c.m4 (b4_tocpp, b4_cpp_guard, b4_cpp_guard_open)
(b4_cpp_guard_close): New.
* data/lalr1.cc, data/location.cc, data/stack.hh: Use them.
* TODO (Header Guards): Move to...
* NEWS: here.
Formatting changes.
2012-05-21 18:15:41 +02:00
Akim Demaille
a19728cbb5 skeletons: remove support for unused directive.
* src/scan-skel.l (@dir_prefix@): Remove support, has never been
used, not even in the commit that introduced it,
2b81e969ea.
2012-05-21 16:07:34 +02:00
Akim Demaille
03f1b545b9 lalr1.cc: improve Doxygen documentation.
* data/location.cc: Qualify file names with directory name.
2012-05-21 16:07:34 +02:00
Akim Demaille
a9b67b5b1e lalr1.cc: extract stack.hh.
See commit 51bacae6b5.
* data/stack.hh: New, extracted from...
* data/lalr1.cc: here.
* data/Makefile.am: Adjust.
2012-05-21 16:07:34 +02:00
Akim Demaille
e4ab12542b news: convert to double quotes.
* NEWS: Convert from `quoted' to "quoted".
Reported by Stefano Lattarini.
http://lists.gnu.org/archive/html/bison-patches/2012-05/msg00039.html
2012-05-21 16:07:34 +02:00
Akim Demaille
08f6341c01 space changes.
* src/flex-scanner.h: Indent nested cpp directives.
2012-05-21 14:48:52 +02:00
Akim Demaille
86b08b49b3 build: do not prototype flex-generated functions.
Some versions of Flex, possibly modified by the distribution package
maintainers, have incompatible signatures.  Since newer versions of
Flex prototype their functions, avoid the conflicts in that case.
Reported by Stefano Lattarini.
<http://lists.gnu.org/archive/html/bug-bison/2012-05/msg00012.html>.

* src/flex-scanner.h (FLEX_VERSION_GT): New.
Use it to issue prototypes for flex-generated functions only for
versions up to 2.5.31, in accordance with the comment.
See commit dc9701e848.
Use it to define yylex_destroy when needed.
2012-05-21 14:48:52 +02:00