Commit Graph

21 Commits

Author SHA1 Message Date
Akim Demaille
ff020c3061 tests: use $PERL instead of perl
* tests/atlocal.in (PERL): New.
Sort.
* tests/calc.at, tests/input.at, tests/local.at, tests/regression.at,
* tests/skeletons.at, tests/synclines.at, tests/torture.at: here.
2012-10-05 09:34:53 +02:00
Theophile Ranquet
b8e7ad5887 errors: prefix the output with "error: "
This improves readability. This is also what gcc does.

* NEWS: Document this change.
* src/complain.c (complain_at): Prefix all errors with "error: ".
(complain_at_indent, warn_at_indent): Do not prefix the context
information of errors, which are basically just indented errors.
* tests/conflicts.at, tests/glr-regression.at, tests/input.at,
tests/named-refs.at, tests/output.at, tests/push.at,
tests/regression.at, tests/skeletons.at: Apply this change.

Signed-off-by: Akim Demaille <akim@lrde.epita.fr>
2012-09-26 12:11:51 +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
4c787a31df use a more consistent quoting style.
See <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00120.html>.
Use quotearg as often as possible instead of leaving the choice of
the quotes to the translators.  Use shorter messages.  Factor similar
messages to a single format, to make localization easier.

	* src/files.c, src/getargs.c, src/muscle-tab.c, src/reader.c
	* src/scan-code.l, src/scan-gram.l, src/symtab.c:
	Use quote() or quotearg_colon() on printf arguments instead of
	quotes in the format string.
	* data/bison.m4: Keep sync with the changes in muscle-tab.c.

	* tests/skeletons.at, tests/input.at, tests/regression.at: Adjust
	expected messages.
(cherry picked from commit 4a9cd8f24a)

Conflicts:

	src/muscle-tab.c
2012-02-08 11:40:41 +01:00
Jim Meyering
abf3f74b21 change more quotes in source, and adjust tests to match
Run this command to change each `%s' to '%s' in source directories:
  git grep -l '`%s'\' src djgpp data \
    |xargs perl -pi -e '$q="'\''";s/`%s$q/$q%s$q/g'
* data/bison.m4: Affected per the above.
* djgpp/subpipe.c: Likewise.
* src/files.c: Likewise.
* src/getargs.c: Likewise.
* src/muscle-tab.c: Likewise.
* src/reader.c: Likewise.
* tests/glr-regression.at: Adjust to match.
* tests/input.at: Likewise.
* tests/push.at: Likewise.
* tests/skeletons.at: Likewise.
(cherry picked from commit 4aa9d1ff9c)

Conflicts:

	src/getargs.c
	src/muscle-tab.c
	src/reader.c
	tests/input.at
2012-01-24 19:31:27 +01:00
Akim Demaille
c932d6135c maint: run "make update-copyright". 2012-01-13 11:48:14 +01:00
Joel E. Denny
ea0a767697 maint: run "make update-copyright". 2011-01-02 09:56:16 -05:00
Paul Eggert
6e30ede87a Do not use date ranges in copyright notices.
See http://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices

* HACKING, Makefile.am, NEWS, PACKAGING, README, README-alpha:
* TODO, bootstrap, bootstrap.conf:
* build-aux/update-b4-copyright, cfg.mk, configure.ac:
* data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4:
* data/c-skel.m4, data/c.m4, data/glr.c, data/glr.cc:
* data/java-skel.m4, data/java.m4, data/lalr1.cc:
* data/lalr1.java, data/location.cc:
* data/xslt/bison.xsl:
* data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl:
* data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint:
* djgpp/README.in, djgpp/config.bat, djgpp/config.sed:
* djgpp/config.site, djgpp/config_h.sed, djgpp/djunpack.bat:
* djgpp/subpipe.c, djgpp/subpipe.h:
* djgpp/testsuite.sed, doc/bison.texinfo:
* doc/refcard.tex, etc/README, etc/bench.pl.in:
* examples/calc++/Makefile.am, examples/extexi:
* lib/abitset.c, lib/abitset.h:
* lib/bbitset.h, lib/bitset.c, lib/bitset.h:
* lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c:
* lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h:
* lib/ebitset.c, lib/ebitset.h, lib/get-errno.c:
* lib/get-errno.h, lib/lbitset.c, lib/lbitset.h:
* lib/libiberty.h, lib/main.c, lib/timevar.c:
* lib/timevar.def, lib/timevar.h, lib/vbitset.c:
* lib/vbitset.h, lib/yyerror.c, m4/bison-i18n.m4:
* m4/c-working.m4, m4/cxx.m4, m4/subpipe.m4, m4/timevar.m4:
* src/AnnotationList.c, src/AnnotationList.h:
* src/InadequacyList.c, src/InadequacyList.h, src/LR0.c:
* src/LR0.h, src/Sbitset.c, src/Sbitset.h, src/assoc.c:
* src/assoc.h, src/closure.c, src/closure.h, src/complain.c:
* src/complain.h, src/conflicts.c, src/conflicts.h:
* src/derives.c, src/derives.h, src/files.c, src/files.h:
* src/flex-scanner.h, src/getargs.c, src/getargs.h:
* src/gram.c, src/gram.h, src/graphviz.c, src/ielr.c:
* src/ielr.h, src/lalr.c, src/lalr.h:
* src/location.c, src/location.h, src/main.c:
* src/muscle-tab.c, src/muscle-tab.h, src/named-ref.c:
* src/named-ref.h, src/nullable.c, src/nullable.h:
* src/output.c, src/output.h, src/parse-gram.y:
* src/print-xml.c, src/print-xml.h, src/print.c, src/print.h:
* src/print_graph.c, src/print_graph.h, src/reader.c:
* src/reader.h, src/reduce.c, src/reduce.h, src/relation.c:
* src/relation.h, src/scan-code.h, src/scan-code.l:
* src/scan-gram.h, src/scan-gram.l, src/scan-skel.h:
* src/scan-skel.l, src/state.c, src/state.h, src/symlist.c:
* src/symlist.h, src/symtab.c, src/symtab.h, src/system.h:
* src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h:
* tests/actions.at, tests/atlocal.in, tests/c++.at:
* tests/calc.at, tests/conflicts.at, tests/cxx-type.at:
* tests/existing.at, tests/glr-regression.at:
* tests/headers.at, tests/input.at, tests/java.at:
* tests/local.at, tests/named-refs.at:
* tests/output.at, tests/push.at, tests/reduce.at:
* tests/regression.at, tests/sets.at, tests/skeletons.at:
* tests/synclines.at, tests/testsuite.at, tests/torture.at:
* data/Makefile.am, data/location.cc, doc/Makefile.am, src/Makefile.am:
* tests/Makefile.am, lib/Makefile.am, examples/Makefile.am:
* etc/Makefile.am:
Don't use date ranges in copyright notices.

Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996,
1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2010 Free Software Foundation, Inc.
2010-06-23 13:07:29 -07:00
Joel E. Denny
47fa574761 portability: fix several issues with M4 subprocess.
M4's output pipe was not being drained upon fatal errors during
scan_skel.  As a result, broken-pipe messages from M4 were seen
on at least AIX, HP-UX, Solaris, and RHEL4, and this caused a
failure in the test suite.  The problem was that, on platforms
where the default disposition for SIGPIPE is ignore instead of
terminate, M4 sometimes saw fwrite fail with errno=EPIPE and
then reported it.  However, there's some sort of race condition,
because the new test group occasionally succeeded.
Reported by Albert Chin at
<http://lists.gnu.org/archive/html/bug-bison/2010-02/msg00004.html>.

There were also problems with the test suite livelocking on
Tru64 5.1b.  Reported by Didier Godefroy at
<http://lists.gnu.org/archive/html/bug-bison/2009-05/msg00005.html>.
Switching to create_pipe_bidi suggested by Akim Demaille.

To attempt to solve both of these problems, switch to gnulib's
create_pipe_bidi and register M4 process as a slave.  Along the
way, clean up file name conflict handling, which was affected by
the broken-pipe problem before the switch.
* NEWS (2.4.2): Document.
* THANKS (Didier Godefroy): Add.
* bootstrap.conf (gnulib_modules): Add pipe.
* gnulib: Update to latest to make sure we have all the latest
fixes.
* lib/Makefile.am (libbison_a_SOURCES): Remove subpipe.h and
subpipe.c.
* po/POTFILES.in (lib/subpipe.c): Remove.
* src/files.c (compute_output_file_names): Update invocations
of output_file_name_check.
(output_file_name_check): In the case that the grammar file
would be overwritten, use complain instead of fatal, but replace
the output file name with /dev/null.  Use the /dev/null solution
for the case of two conflicting output files as well because it
seems safer in case Bison one day tries to open both files at
the same time.
* src/files.h (output_file_name_check): Update prototype.
* src/output.c (output_skeleton): Use create_pipe_bidi and
wait_subprocess.  Assert that scan_skel completely drains the
pipe.
* src/scan-skel.l (at_directive_perform): Update
output_file_name_check invocation.
* tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Check that the
grammar file actually isn't overwritten.
(Conflicting output files: -o foo.y): Update expected output.
* tests/skeletons.at (Fatal errors but M4 continues producing
output): New test group.
(cherry picked from commit 22cc8d813e)

Conflicts:

	NEWS
	bootstrap.conf
	lib/.cvsignore
	lib/.gitignore
	m4/.cvsignore
	m4/.gitignore
	src/output.c
2010-02-22 18:32:47 -05:00
Joel E. Denny
1462fcee1e maint: run "make update-copyright" 2010-01-04 13:46:45 -05:00
Joel E. Denny
580c075d7f Fix strange %define locations for default values.
Reported by Akim Demaille at
<http://lists.gnu.org/archive/html/bug-bison/2007-12/msg00001.html>
and discussed again starting at
<http://lists.gnu.org/archive/html/bison-patches/2008-11/msg00102.html>.
* data/bison.m4 (b4_percent_define_default): Leave syncline blank
because location information is bogus.
Use angle brackets to delimit fake file name because square brackets
look like over-quoted m4.  Choose a better fake file name.
Use negative line numbers.
* src/muscle_tab.c (muscle_percent_define_default): Likewise.
* src/location.c (location_print): If line for a boundary is negative,
only print that boundary's file name.
* src/location.h: Document that.
* tests/skeletons.at (%define Boolean variables: invalid skeleton
defaults): Update output.
2009-04-03 03:56:58 -04:00
Joel E. Denny
da730230ce Automate regression testing of the XML/XSLT implementation. Discussed
starting at
<http://lists.gnu.org/archive/html/bison-patches/2007-11/msg00021.html>.
* configure.ac (XSLTPROC): New substitution.
* Makefile.am (maintainer-xml-check): New phony target invoking...
* tests/Makefile.am (maintainer-xml-check): ... this new phony target
invoking make maintainer-check with BISON_TEST_XML=1.
* tests/atlocal.in (XSLTPROC): New.
* tests/local.at (AT_BISON_CHECK): New macro to (1) instruct Valgrind
not to report reachable memory when Bison is expected to have a
non-zero exit status and (2) to compare XML/XSLT output with --graph
and --report=all output for every working grammar when
BISON_TEST_XML=1.
(AT_BISON_CHECK_NO_XML): Likewise, but skip XML checks.
(AT_BISON_CHECK_XML): New.
(AT_QUELL_VALGRIND): New.
* tests/testsuite.at (ORIGINAL_AT_CHECK): Remove this and...
(AT_CHECK): ... don't redefine this since this was the old way to
quell Valgrind.
* tests/actions.at: Rewrite all AT_CHECK invocations for bison as
AT_BISON_CHECK invocations.
* tests/c++.at: Likewise.
* tests/calc.at: Likewise.
* tests/conflicts.at: Likewise.
* tests/cxx-type.at: Likewise.
* tests/existing.at: Likewise.
* tests/glr-regression.at: Likewise.
* tests/headers.at: Likewise.
* tests/input.at: Likewise.
* tests/java.at: Likewise.
* tests/output.at: Likewise.
* tests/push.at: Likewise.
* tests/reduce.at: Likewise.
* tests/regression.at: Likewise.
* tests/sets.at: Likewise.
* tests/skeletons.at: Likewise.
* tests/synclines.at: Likewise.
* tests/torture.at: Likewise.
(Big triangle): Use AT_BISON_CHECK_NO_XML instead since this grammar
tends to hang xsltproc.
(Big horizontal): Likewise.
2007-12-22 18:35:03 +00:00
Joel E. Denny
35b8730d01 Add syncline support and location accessor to internal %define
interfaces.
* data/bison.m4 (b4_percent_define_get_loc): New.
(b4_percent_define_get_syncline): New.
(b4_percent_define_flag_if): Use b4_percent_define_get_loc.
(b4_percent_define_default): Record defining location as line 1 rather
than 0 for the sake of synchronizing #line's, and define
b4_percent_define_syncline(VARIABLE).
(b4_percent_define_check_values): Use b4_percent_define_get_loc.
* src/muscle_tab.c (muscle_syncline_grow): New.
(muscle_code_grow): Use muscle_syncline_grow.
(muscle_percent_define_insert): Use muscle_percent_define_get_loc, and
define b4_percent_define_syncline(VARIABLE).
(muscle_percent_define_get_loc): New.
(muscle_percent_define_get_syncline): New.
(muscle_percent_define_flag_if): Use muscle_percent_define_get_loc, and
remove some unused variables.
(muscle_percent_define_default): Record defining location as line 1
rather than 0 for the sake of synchronizing #line's, and define
b4_percent_define_syncline(VARIABLE).
(muscle_percent_define_check_values): Use
muscle_percent_define_get_loc.
* src/muscle_tab.h (muscle_percent_define_get_loc): Prototype.
(muscle_percent_define_get_syncline): Prototype.
* tests/skeletons.at (%define Boolean variables: invalid skeleton
defaults): Update output for location change.
(Complaining during macro argument expansion): Extend to test
b4_percent_define_get_loc and b4_percent_define_get_syncline errors.
2007-10-08 04:00:13 +00:00
Joel E. Denny
7dc4a6940c Fix some error-reporting macro bugs.
* data/bison.m4 (b4_cat): New.
(b4_error, b4_error_at): Use b4_cat to send error directives directly
to stdout so they don't become arguments to other macros.  Update
comments and add examples.
(b4_warn, b4_warn_at, b4_complain, b4_complain_at): Update comments and
add examples.
(b4_fatal, b4_fatal_at): Likewise, and invoke m4_exit(1) immediately
after printing the error directive so that M4 doesn't report subsequent
problems that are induced by this problem.
* src/scan-skel.l: Recognize @` digraph outside of directive arguments
instead of just in them.  Recognize @\n in both places.  Both expand to
the empty string.  Needed by b4_cat.
* tests/skeletons.at (Complaining during macro argument expansion):
New test case.
(Fatal errors make M4 exit immediately): New test case.
2007-10-08 01:53:08 +00:00
Joel E. Denny
922bdd7ffa Spell "boolean" as "Boolean". Reported by Akim Demaille.
* data/bison.m4 (b4_percent_define_flag_if): Fix complaint.
* doc/bison.texinfo (Decl Summary): Fix.
* src/muscle_tab.c (muscle_percent_define_flag_if): Fix complaint.
* tests/input.at (Boolean %define variables): Update output.
* tests/skeletons.at (%define boolean variables: invalid skeleton
defaults): Rename to...
(%define Boolean variables: invalid skeleton defaults): ... this and
update output.
2007-08-28 07:14:11 +00:00
Paul Eggert
f16b08196c Update to GPLv3.
* doc/gpl-3.0.texi: New file.
* doc/gpl.texi: Remove.
* COPYING, GNUmakefile, HACKING, Makefile.am, Makefile.cfg:
* Makefile.maint, NEWS, PACKAGING, README, README-alpha:
* README-hacking, TODO, bootstrap, bootstrap.conf:
* configure.ac, data/Makefile.am, data/README, data/bison.m4:
* data/c++-skel.m4, data/c++.m4, data/c-skel.m4, data/c.m4:
* data/glr.c, data/glr.cc, data/java-skel.m4, data/java.m4:
* data/lalr1.cc, data/lalr1.java, data/location.cc:
* data/push.c, data/yacc.c, data/m4sugar/m4sugar.m4:
* djgpp/Makefile.maint, djgpp/README.in, djgpp/config.bat:
* djgpp/config.sed, djgpp/config.site, djgpp/config_h.sed:
* djgpp/djunpack.bat, djgpp/subpipe.c, djgpp/subpipe.h:
* djgpp/testsuite.sed, doc/Makefile.am, doc/bison.texinfo:
* doc/fdl.texi, doc/refcard.tex, etc/Makefile.am, etc/README:
* etc/bench.pl.in, examples/Makefile.am, examples/extexi:
* examples/calc++/Makefile.am, lib/Makefile.am, lib/abitset.c:
* lib/abitset.h, lib/bbitset.h, lib/bitset.c, lib/bitset.h:
* lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c:
* lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h:
* lib/ebitset.c, lib/ebitset.h, lib/get-errno.c:
* lib/get-errno.h, lib/lbitset.c, lib/lbitset.h:
* lib/libiberty.h, lib/main.c, lib/subpipe.c, lib/subpipe.h:
* lib/timevar.c, lib/timevar.def, lib/timevar.h:
* lib/vbitset.c, lib/vbitset.h, lib/yyerror.c:
* m4/c-working.m4, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4:
* m4/timevar.m4, src/LR0.c, src/LR0.h, src/Makefile.am:
* src/assoc.c, src/assoc.h, src/closure.c, src/closure.h:
* src/complain.c, src/complain.h, src/conflicts.c:
* src/conflicts.h, src/derives.c, src/derives.h, src/files.c:
* src/files.h, src/flex-scanner.h, src/getargs.c:
* src/getargs.h, src/gram.c, src/gram.h, src/graphviz.c:
* src/lalr.c, src/lalr.h, src/location.c, src/location.h:
* src/main.c, src/muscle_tab.c, src/muscle_tab.h:
* src/nullable.c, src/nullable.h, src/output.c, src/output.h:
* src/parse-gram.c, src/parse-gram.h, src/parse-gram.y:
* src/print.c, src/print.h, src/print_graph.c:
* src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c:
* src/reduce.h, src/relation.c, src/relation.h:
* src/revision.h, src/scan-code.h, src/scan-code.l:
* src/scan-gram.h, src/scan-gram.l, src/scan-skel.h:
* src/scan-skel.l, src/state.c, src/state.h, src/symlist.c:
* src/symlist.h, src/symtab.c, src/symtab.h, src/system.h:
* src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h:
* tests/Makefile.am, tests/actions.at, tests/c++.at:
* tests/calc.at, tests/conflicts.at, tests/cxx-type.at:
* tests/existing.at, tests/glr-regression.at:
* tests/headers.at, tests/input.at, tests/java.at:
* tests/local.at, tests/output.at, tests/push.at:
* tests/reduce.at, tests/regression.at, tests/sets.at:
* tests/skeletons.at, tests/synclines.at, tests/testsuite.at:
* tests/torture.at:
Update to GPLv3.
2007-08-15 20:21:33 +00:00
Joel E. Denny
9611cfa20b Miscellaneous %define and %code cleanup.
* data/bison.m4 (b4_percent_define_flag_if): Correct comments on how
values are interpreted.
* doc/bison.texinfo (Decl Summary): Clean up and extend %define
documentation a little more.
* src/muscle_tab.c (MUSCLE_USER_NAME_CONVERT,
muscle_percent_define_insert, muscle_percent_code_grow): New
functions/macros.
* src/muscle_tab.h (muscle_percent_define_insert,
muscle_percent_code_grow): Prototype.
* src/parse-gram.y (prologue_declaration): Use
muscle_percent_define_insert and muscle_percent_code_grow when parsing
%define and %code directives.

Make it easy to share %define boolean variables between the front-end
and back-end.  Though not used yet, this will be useful in the future.
* data/bison.m4 (b4_check_user_names): Rewrite comments to talk about
Bison uses of names rather than just skeleton uses of names.
(b4_percent_define_get, b4_percent_define_ifdef): Rename
b4_percent_define_skeleton_variables(VARIABLE) to
b4_percent_define_bison_variables(VARIABLE).
(b4_percent_code_get, b4_percent_code_ifdef): Rename
b4_percent_code_skeleton_qualifiers(QUALIFIER) to
b4_percent_code_bison_qualifiers(QUALIFIER).
(b4_check_user_names_wrap): Update for renames.
* src/muscle_tab.c, src/muscle_tab.h (muscle_percent_define_flag_if,
muscle_percent_define_default): New functions mimicking
b4_percent_define_flag_if and b4_percent_define_default.

For %define variables, report locations for invalid values and
redefinitions.
* data/bison.m4 (b4_percent_define_flag_if): Read
b4_percent_define_loc(VARIABLE) to report the location of an invalid
value for VARIABLE.
(b4_percent_define_default): Save a special location in
b4_percent_define_loc(VARIABLE) in case the default value for VARIABLE
must later be reported as invalid.
* src/muscle_tab.c (muscle_location_grow, muscle_location_decode): New
functions.
(muscle_percent_define_insert): Record the location of VARIABLE in
muscle percent_define_loc(VARIABLE), and use it to report the previous
location for a redefinition.
(muscle_percent_define_flag_if): Update like b4_percent_define_flag_if.
(muscle_percent_define_default): Update like b4_percent_define_default.
(muscle_grow_user_name_list): Rename to...
(muscle_user_name_list_grow): ... this for consistency and use
muscle_location_grow.
* src/muscle_tab.h (muscle_location_grow): Prototype.
* tests/input.at (%define errors): Update expected output.
* tests/skeletons.at (%define boolean variables: invalid skeleton
defaults): New test case.
2007-03-02 06:26:28 +00:00
Joel E. Denny
3eb82471fa Clean up.
* src/scan-skel.l (at_directive_perform): Add at_directive_argc and
at_directive_argv arguments so these no longer have to be global
variables.  Also, update the implementation for the following changes.
(fail_for_at_directive_too_many_args,
fail_for_at_directive_too_few_args): Add at_directive_name argument.
(at_directive_name): Remove as at_directive_argv[0] will be used for
this now.
(AT_DIRECTIVE_ARGC_MAX): Increment to make space in at_directive_argv
for the directive name.
(at_directive_argc, at_directive_argv): Make these local within
skel_lex instead of global.
(INITIAL): Update directive start action for above changes.
(SC_AT_DIRECTIVE_ARG): Rename to...
(SC_AT_DIRECTIVE_ARGS): ... this, and update for above changes.
(SC_AT_DIRECTIVE_SKIP_WS): Update.
(scan_skel): Move yylex_destroy to...
(skel_scanner_free): ... here.
* tests/skeletons.at (installed skeleton file name): Rename to...
(installed skeleton file names): ... this.
2007-01-28 14:31:56 +00:00
Joel E. Denny
5f340b4884 Back out previous patch. 2007-01-18 08:32:33 +00:00
Joel E. Denny
d4bdb91677 Implement @gettext<...@> directive to call gettext from skeletons. It
can be used anywhere including inside arguments of directives of the
form @foo(...@).  Eventually, it should be possible to write an
xgettext-like utility to extract @gettext<...@> text from skeletons.
* data/bison.m4 (b4_check_user_names): Use @gettext<...@> when invoking
b4_warn_at since b4_warn_at doesn't invoke gettext anymore.
* data/glr.cc, data/lalr1.cc: Likewise but for b4_fatal and
b4_complain reporting a push-parsing request or a missing %defines.
* src/scan-skel.l (INITIAL): Recognize `@gettext<' to start...
(SC_AT_GETTEXT_ARG): ... this new start condition where gettext is
invoked.
(SC_AT_DIRECTIVE_ARG): Rename to...
(SC_AT_DIRECTIVE_ARGS): ... this, and recognize `@gettext<' to start
SC_AT_GETTEXT_ARG.
(at_directive_perform): Don't invoke gettext for @warn(...@),
@warn_at(...@), etc.  Instead, let the skeletons decide what should be
passed to @gettext<...@>.
* tests/skeletons.at (@gettext<...@>): New test case.

* tests/skeletons.at (installed skeleton file name): Rename to...
(installed skeleton file names): ... this.
2007-01-18 05:14:59 +00:00
Joel E. Denny
a7867f53b3 Implement support for relative and absolute skeleton file names.
Discussed starting at
<http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00071.html>.
* doc/bison.texinfo (Decl Summary): Document in %skeleton entry.
(Bison Options): Document in --skeleton entry.
* src/output.c (output_skeleton): Use strncpy rather than strcpy since
full_skeleton can't necessarily hold all of pkgdatadir.
If the specified skeleton file name contains a `/', don't prepend
pkgdatadir.
* src/parse-gram.y (prologue_declaration): If the specified skeleton
file name contains a `/', prepend the grammar file directory.
* tests/Makefile.am (TESTSUITE_AT): Add skeletons.at.
* skeletons.at: New file.
(relative skeleton file names): New test case.
(installed skeleton file names): New test case.
* tests/testsuite.at: Include skeletons.at.

* bootstrap: Update copyright to 2007.
2007-01-18 02:18:17 +00:00