summaryrefslogtreecommitdiff
path: root/devel
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2013-07-28 12:43:50 +0000
committerwiz <wiz@pkgsrc.org>2013-07-28 12:43:50 +0000
commitdfc0e1ec2fc506ff84da0535b8f91c68389e70e7 (patch)
tree7ba34b001a87fece2383a74e73ded02af5cb0a14 /devel
parentece33e4f95afa25da62f53a8d857a13fc1227206 (diff)
downloadpkgsrc-dfc0e1ec2fc506ff84da0535b8f91c68389e70e7.tar.gz
Update to 3.0:
* Noteworthy changes in release 3.0 (2013-07-25) [stable] ** WARNING: Future backward-incompatibilities! Like other GNU packages, Bison will start using some of the C99 features for its own code, especially the definition of variables after statements. The generated C parsers still aim at C90. ** Backward incompatible changes *** Obsolete features Support for YYFAIL is removed (deprecated in Bison 2.4.2): use YYERROR. Support for yystype and yyltype is removed (deprecated in Bison 1.875): use YYSTYPE and YYLTYPE. Support for YYLEX_PARAM and YYPARSE_PARAM is removed (deprecated in Bison 1.875): use %lex-param, %parse-param, or %param. Missing semicolons at the end of actions are no longer added (as announced in the release 2.5). *** Use of YACC='bison -y' TL;DR: With Autoconf <= 2.69, pass -Wno-yacc to (AM_)YFLAGS if you use Bison extensions. Traditional Yacc generates 'y.tab.c' whatever the name of the input file. Therefore Makefiles written for Yacc expect 'y.tab.c' (and possibly 'y.tab.h' and 'y.outout') to be generated from 'foo.y'. To this end, for ages, AC_PROG_YACC, Autoconf's macro to look for an implementation of Yacc, was using Bison as 'bison -y'. While it does ensure compatible output file names, it also enables warnings for incompatibilities with POSIX Yacc. In other words, 'bison -y' triggers warnings for Bison extensions. Autoconf 2.70+ fixes this incompatibility by using YACC='bison -o y.tab.c' (which also generates 'y.tab.h' and 'y.output' when needed). Alternatively, disable Yacc warnings by passing '-Wno-yacc' to your Yacc flags (YFLAGS, or AM_YFLAGS with Automake). ** Bug fixes *** The epilogue is no longer affected by internal #defines (glr.c) The glr.c skeleton uses defines such as #define yylval (yystackp->yyval) in generated code. These weren't properly undefined before the inclusion of the user epilogue, so functions such as the following were butchered by the preprocessor expansion: int yylex (YYSTYPE *yylval); This is fixed: yylval, yynerrs, yychar, and yylloc are now valid identifiers for user-provided variables. *** stdio.h is no longer needed when locations are enabled (yacc.c) Changes in Bison 2.7 introduced a dependency on FILE and fprintf when locations are enabled. This is fixed. *** Warnings about useless %pure-parser/%define api.pure are restored ** Diagnostics reported by Bison Most of these features were contributed by Théophile Ranquet and Victor Santet. *** Carets Version 2.7 introduced caret errors, for a prettier output. These are now activated by default. The old format can still be used by invoking Bison with -fno-caret (or -fnone). Some error messages that reproduced excerpts of the grammar are now using the caret information only. For instance on: %% exp: 'a' | 'a'; Bison 2.7 reports: in.y: warning: 1 reduce/reduce conflict [-Wconflicts-rr] in.y:2.12-14: warning: rule useless in parser due to conflicts: exp: 'a' [-Wother] Now bison reports: in.y: warning: 1 reduce/reduce conflict [-Wconflicts-rr] in.y:2.12-14: warning: rule useless in parser due to conflicts [-Wother] exp: 'a' | 'a'; ^^^ and "bison -fno-caret" reports: in.y: warning: 1 reduce/reduce conflict [-Wconflicts-rr] in.y:2.12-14: warning: rule useless in parser due to conflicts [-Wother] *** Enhancements of the -Werror option The -Werror=CATEGORY option is now recognized, and will treat specified warnings as errors. The warnings need not have been explicitly activated using the -W option, this is similar to what GCC 4.7 does. For example, given the following command line, Bison will treat both warnings related to POSIX Yacc incompatibilities and S/R conflicts as errors (and only those): $ bison -Werror=yacc,error=conflicts-sr input.y If no categories are specified, -Werror will make all active warnings into errors. For example, the following line does the same the previous example: $ bison -Werror -Wnone -Wyacc -Wconflicts-sr input.y (By default -Wconflicts-sr,conflicts-rr,deprecated,other is enabled.) Note that the categories in this -Werror option may not be prefixed with "no-". However, -Wno-error[=CATEGORY] is valid. Note that -y enables -Werror=yacc. Therefore it is now possible to require Yacc-like behavior (e.g., always generate y.tab.c), but to report incompatibilities as warnings: "-y -Wno-error=yacc". *** The display of warnings is now richer The option that controls a given warning is now displayed: foo.y:4.6: warning: type clash on default action: <foo> != <bar> [-Wother] In the case of warnings treated as errors, the prefix is changed from "warning: " to "error: ", and the suffix is displayed, in a manner similar to GCC, as [-Werror=CATEGORY]. For instance, where the previous version of Bison would report (and exit with failure): bison: warnings being treated as errors input.y:1.1: warning: stray ',' treated as white space it now reports: input.y:1.1: error: stray ',' treated as white space [-Werror=other] *** Deprecated constructs The new 'deprecated' warning category flags obsolete constructs whose support will be discontinued. It is enabled by default. These warnings used to be reported as 'other' warnings. *** Useless semantic types Bison now warns about useless (uninhabited) semantic types. Since semantic types are not declared to Bison (they are defined in the opaque %union structure), it is %printer/%destructor directives about useless types that trigger the warning: %token <type1> term %type <type2> nterm %printer {} <type1> <type3> %destructor {} <type2> <type4> %% nterm: term { $$ = $1; }; 3.28-34: warning: type <type3> is used, but is not associated to any symbol 4.28-34: warning: type <type4> is used, but is not associated to any symbol *** Undefined but unused symbols Bison used to raise an error for undefined symbols that are not used in the grammar. This is now only a warning. %printer {} symbol1 %destructor {} symbol2 %type <type> symbol3 %% exp: "a"; *** Useless destructors or printers Bison now warns about useless destructors or printers. In the following example, the printer for <type1>, and the destructor for <type2> are useless: all symbols of <type1> (token1) already have a printer, and all symbols of type <type2> (token2) already have a destructor. %token <type1> token1 <type2> token2 <type3> token3 <type4> token4 %printer {} token1 <type1> <type3> %destructor {} token2 <type2> <type4> *** Conflicts The warnings and error messages about shift/reduce and reduce/reduce conflicts have been normalized. For instance on the following foo.y file: %glr-parser %% exp: exp '+' exp | '0' | '0'; compare the previous version of bison: $ bison foo.y foo.y: conflicts: 1 shift/reduce, 2 reduce/reduce $ bison -Werror foo.y bison: warnings being treated as errors foo.y: conflicts: 1 shift/reduce, 2 reduce/reduce with the new behavior: $ bison foo.y foo.y: warning: 1 shift/reduce conflict [-Wconflicts-sr] foo.y: warning: 2 reduce/reduce conflicts [-Wconflicts-rr] $ bison -Werror foo.y foo.y: error: 1 shift/reduce conflict [-Werror=conflicts-sr] foo.y: error: 2 reduce/reduce conflicts [-Werror=conflicts-rr] When %expect or %expect-rr is used, such as with bar.y: %expect 0 %glr-parser %% exp: exp '+' exp | '0' | '0'; Former behavior: $ bison bar.y bar.y: conflicts: 1 shift/reduce, 2 reduce/reduce bar.y: expected 0 shift/reduce conflicts bar.y: expected 0 reduce/reduce conflicts New one: $ bison bar.y bar.y: error: shift/reduce conflicts: 1 found, 0 expected bar.y: error: reduce/reduce conflicts: 2 found, 0 expected ** Incompatibilities with POSIX Yacc The 'yacc' category is no longer part of '-Wall', enable it explicitly with '-Wyacc'. ** Additional yylex/yyparse arguments The new directive %param declares additional arguments to both yylex and yyparse. The %lex-param, %parse-param, and %param directives support one or more arguments. Instead of %lex-param {arg1_type *arg1} %lex-param {arg2_type *arg2} %parse-param {arg1_type *arg1} %parse-param {arg2_type *arg2} one may now declare %param {arg1_type *arg1} {arg2_type *arg2} ** Types of values for %define variables Bison used to make no difference between '%define foo bar' and '%define foo "bar"'. The former is now called a 'keyword value', and the latter a 'string value'. A third kind was added: 'code values', such as '%define foo {bar}'. Keyword variables are used for fixed value sets, e.g., %define lr.type lalr Code variables are used for value in the target language, e.g., %define api.value.type {struct semantic_type} String variables are used remaining cases, e.g. file names. ** Variable api.token.prefix The variable api.token.prefix changes the way tokens are identified in the generated files. This is especially useful to avoid collisions with identifiers in the target language. For instance %token FILE for ERROR %define api.token.prefix {TOK_} %% start: FILE for ERROR; will generate the definition of the symbols TOK_FILE, TOK_for, and TOK_ERROR in the generated sources. In particular, the scanner must use these prefixed token names, although the grammar itself still uses the short names (as in the sample rule given above). ** Variable api.value.type This new %define variable supersedes the #define macro YYSTYPE. The use of YYSTYPE is discouraged. In particular, #defining YYSTYPE *and* either using %union or %defining api.value.type results in undefined behavior. Either define api.value.type, or use "%union": %union { int ival; char *sval; } %token <ival> INT "integer" %token <sval> STRING "string" %printer { fprintf (yyo, "%d", $$); } <ival> %destructor { free ($$); } <sval> /* In yylex(). */ yylval.ival = 42; return INT; yylval.sval = "42"; return STRING; The %define variable api.value.type supports both keyword and code values. The keyword value 'union' means that the user provides genuine types, not union member names such as "ival" and "sval" above (WARNING: will fail if -y/--yacc/%yacc is enabled). %define api.value.type union %token <int> INT "integer" %token <char *> STRING "string" %printer { fprintf (yyo, "%d", $$); } <int> %destructor { free ($$); } <char *> /* In yylex(). */ yylval.INT = 42; return INT; yylval.STRING = "42"; return STRING; The keyword value variant is somewhat equivalent, but for C++ special provision is made to allow classes to be used (more about this below). %define api.value.type variant %token <int> INT "integer" %token <std::string> STRING "string" Code values (in braces) denote user defined types. This is where YYSTYPE used to be used. %code requires { struct my_value { enum { is_int, is_string } kind; union { int ival; char *sval; } u; }; } %define api.value.type {struct my_value} %token <u.ival> INT "integer" %token <u.sval> STRING "string" %printer { fprintf (yyo, "%d", $$); } <u.ival> %destructor { free ($$); } <u.sval> /* In yylex(). */ yylval.u.ival = 42; return INT; yylval.u.sval = "42"; return STRING; ** Variable parse.error This variable controls the verbosity of error messages. The use of the %error-verbose directive is deprecated in favor of "%define parse.error verbose". ** Renamed %define variables The following variables have been renamed for consistency. Backward compatibility is ensured, but upgrading is recommended. lr.default-reductions -> lr.default-reduction lr.keep-unreachable-states -> lr.keep-unreachable-state namespace -> api.namespace stype -> api.value.type ** Semantic predicates Contributed by Paul Hilfinger. The new, experimental, semantic-predicate feature allows actions of the form "%?{ BOOLEAN-EXPRESSION }", which cause syntax errors (as for YYERROR) if the expression evaluates to 0, and are evaluated immediately in GLR parsers, rather than being deferred. The result is that they allow the programmer to prune possible parses based on the values of run-time expressions. ** The directive %expect-rr is now an error in non GLR mode It used to be an error only if used in non GLR mode, _and_ if there are reduce/reduce conflicts. ** Tokens are numbered in their order of appearance Contributed by Valentin Tolmer. With '%token A B', A had a number less than the one of B. However, precedence declarations used to generate a reversed order. This is now fixed, and introducing tokens with any of %token, %left, %right, %precedence, or %nonassoc yields the same result. When mixing declarations of tokens with a litteral character (e.g., 'a') or with an identifier (e.g., B) in a precedence declaration, Bison numbered the litteral characters first. For example %right A B 'c' 'd' would lead to the tokens declared in this order: 'c' 'd' A B. Again, the input order is now preserved. These changes were made so that one can remove useless precedence and associativity declarations (i.e., map %nonassoc, %left or %right to %precedence, or to %token) and get exactly the same output. ** Useless precedence and associativity Contributed by Valentin Tolmer. When developing and maintaining a grammar, useless associativity and precedence directives are common. They can be a nuisance: new ambiguities arising are sometimes masked because their conflicts are resolved due to the extra precedence or associativity information. Furthermore, it can hinder the comprehension of a new grammar: one will wonder about the role of a precedence, where in fact it is useless. The following changes aim at detecting and reporting these extra directives. *** Precedence warning category A new category of warning, -Wprecedence, was introduced. It flags the useless precedence and associativity directives. *** Useless associativity Bison now warns about symbols with a declared associativity that is never used to resolve conflicts. In that case, using %precedence is sufficient; the parsing tables will remain unchanged. Solving these warnings may raise useless precedence warnings, as the symbols no longer have associativity. For example: %left '+' %left '*' %% exp: "number" | exp '+' "number" | exp '*' exp ; will produce a warning: useless associativity for '+', use %precedence [-Wprecedence] %left '+' ^^^ *** Useless precedence Bison now warns about symbols with a declared precedence and no declared associativity (i.e., declared with %precedence), and whose precedence is never used. In that case, the symbol can be safely declared with %token instead, without modifying the parsing tables. For example: %precedence '=' %% exp: "var" '=' "number"; will produce a warning: useless precedence for '=' [-Wprecedence] %precedence '=' ^^^ *** Useless precedence and associativity In case of both useless precedence and associativity, the issue is flagged as follows: %nonassoc '=' %% exp: "var" '=' "number"; The warning is: warning: useless precedence and associativity for '=' [-Wprecedence] %nonassoc '=' ^^^ ** Empty rules With help from Joel E. Denny and Gabriel Rassoul. Empty rules (i.e., with an empty right-hand side) can now be explicitly marked by the new %empty directive. Using %empty on a non-empty rule is an error. The new -Wempty-rule warning reports empty rules without %empty. On the following grammar: %% s: a b c; a: ; b: %empty; c: 'a' %empty; bison reports: 3.4-5: warning: empty rule without %empty [-Wempty-rule] a: {} ^^ 5.8-13: error: %empty on non-empty rule c: 'a' %empty {}; ^^^^^^ ** Java skeleton improvements The constants for token names were moved to the Lexer interface. Also, it is possible to add code to the parser's constructors using "%code init" and "%define init_throws". Contributed by Paolo Bonzini. The Java skeleton now supports push parsing. Contributed by Dennis Heimbigner. ** C++ skeletons improvements *** The parser header is no longer mandatory (lalr1.cc, glr.cc) Using %defines is now optional. Without it, the needed support classes are defined in the generated parser, instead of additional files (such as location.hh, position.hh and stack.hh). *** Locations are no longer mandatory (lalr1.cc, glr.cc) Both lalr1.cc and glr.cc no longer require %location. *** syntax_error exception (lalr1.cc) The C++ parser features a syntax_error exception, which can be thrown from the scanner or from user rules to raise syntax errors. This facilitates reporting errors caught in sub-functions (e.g., rejecting too large integral literals from a conversion function used by the scanner, or rejecting invalid combinations from a factory invoked by the user actions). *** %define api.value.type variant This is based on a submission from Michiel De Wilde. With help from Théophile Ranquet. In this mode, complex C++ objects can be used as semantic values. For instance: %token <::std::string> TEXT; %token <int> NUMBER; %token SEMICOLON ";" %type <::std::string> item; %type <::std::list<std::string>> list; %% result: list { std::cout << $1 << std::endl; } ; list: %empty { /* Generates an empty string list. */ } | list item ";" { std::swap ($$, $1); $$.push_back ($2); } ; item: TEXT { std::swap ($$, $1); } | NUMBER { $$ = string_cast ($1); } ; *** %define api.token.constructor When variants are enabled, Bison can generate functions to build the tokens. This guarantees that the token type (e.g., NUMBER) is consistent with the semantic value (e.g., int): parser::symbol_type yylex () { parser::location_type loc = ...; ... return parser::make_TEXT ("Hello, world!", loc); ... return parser::make_NUMBER (42, loc); ... return parser::make_SEMICOLON (loc); ... } *** C++ locations There are operator- and operator-= for 'location'. Negative line/column increments can no longer underflow the resulting value.
Diffstat (limited to 'devel')
-rw-r--r--devel/bison/Makefile6
-rw-r--r--devel/bison/PLIST4
-rw-r--r--devel/bison/distinfo11
-rw-r--r--devel/bison/patches/patch-Makefile.in26
-rw-r--r--devel/bison/patches/patch-doc_Makefile.in15
-rw-r--r--devel/bison/patches/patch-src_Makefile.in19
6 files changed, 37 insertions, 44 deletions
diff --git a/devel/bison/Makefile b/devel/bison/Makefile
index 4c4651b278b..a955240433c 100644
--- a/devel/bison/Makefile
+++ b/devel/bison/Makefile
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.90 2013/04/15 19:19:09 adam Exp $
+# $NetBSD: Makefile,v 1.91 2013/07/28 12:43:50 wiz Exp $
-DISTNAME= bison-2.7.1
+DISTNAME= bison-3.0
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU:=bison/}
EXTRACT_SUFX= .tar.xz
@@ -14,7 +14,7 @@ PKG_INSTALLATION_TYPES= overwrite pkgviews
USE_LANGUAGES= c c++
USE_PKGLOCALEDIR= yes
-USE_TOOLS+= grep gm4:run msgfmt flex
+USE_TOOLS+= grep gm4:run msgfmt flex perl:build
GNU_CONFIGURE= yes
CONFIGURE_ENV+= gt_cv_func_gnugettext1_libintl=yes
CONFIGURE_ENV+= ac_cv_prog_M4=${TOOLS_PATH.gm4}
diff --git a/devel/bison/PLIST b/devel/bison/PLIST
index c5876ec1621..e5ec9727a27 100644
--- a/devel/bison/PLIST
+++ b/devel/bison/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.25 2012/11/03 01:02:23 wiz Exp $
+@comment $NetBSD: PLIST,v 1.26 2013/07/28 12:43:50 wiz Exp $
bin/bison
info/bison.info
lib/liby.a
@@ -21,6 +21,7 @@ share/bison/location.cc
share/bison/m4sugar/foreach.m4
share/bison/m4sugar/m4sugar.m4
share/bison/stack.hh
+share/bison/variant.hh
share/bison/xslt/bison.xsl
share/bison/xslt/xml2dot.xsl
share/bison/xslt/xml2text.xsl
@@ -49,6 +50,7 @@ share/locale/gl/LC_MESSAGES/bison-runtime.mo
share/locale/hr/LC_MESSAGES/bison-runtime.mo
share/locale/hr/LC_MESSAGES/bison.mo
share/locale/hu/LC_MESSAGES/bison-runtime.mo
+share/locale/ia/LC_MESSAGES/bison-runtime.mo
share/locale/id/LC_MESSAGES/bison-runtime.mo
share/locale/id/LC_MESSAGES/bison.mo
share/locale/it/LC_MESSAGES/bison-runtime.mo
diff --git a/devel/bison/distinfo b/devel/bison/distinfo
index 61ebffaf5ac..74edbbb793b 100644
--- a/devel/bison/distinfo
+++ b/devel/bison/distinfo
@@ -1,8 +1,7 @@
-$NetBSD: distinfo,v 1.36 2013/04/15 19:19:09 adam Exp $
+$NetBSD: distinfo,v 1.37 2013/07/28 12:43:50 wiz Exp $
-SHA1 (bison-2.7.1.tar.xz) = 00ab1b32d864622077c311e4f5420d4e2931fdc8
-RMD160 (bison-2.7.1.tar.xz) = 933257e61c1098160d4fd71063f340b2ee304671
-Size (bison-2.7.1.tar.xz) = 1781068 bytes
-SHA1 (patch-doc_Makefile.in) = dc3dd7ee66dfe5995abd3a34973cbebdb7fed7fb
+SHA1 (bison-3.0.tar.xz) = 5e32be3773522cf89163a4beb622eeeb4ace90dc
+RMD160 (bison-3.0.tar.xz) = 6b68dfec7e83ab481f3e9d315f779f462dfc3823
+Size (bison-3.0.tar.xz) = 1913532 bytes
+SHA1 (patch-Makefile.in) = e472c53696e55f40711d22b2befbb91fba1f349c
SHA1 (patch-lib_isnan.c) = c5d2603447064c95e8bbc75a24c09366b752bad6
-SHA1 (patch-src_Makefile.in) = 6baa8ff8b8f4f0aa9c8efee60e172584c68eac7c
diff --git a/devel/bison/patches/patch-Makefile.in b/devel/bison/patches/patch-Makefile.in
new file mode 100644
index 00000000000..5b2c334c6a6
--- /dev/null
+++ b/devel/bison/patches/patch-Makefile.in
@@ -0,0 +1,26 @@
+$NetBSD: patch-Makefile.in,v 1.1 2013/07/28 12:43:50 wiz Exp $
+
+Do not install yacc and its manpage.
+
+--- Makefile.in.orig 2013-07-25 15:56:24.000000000 +0000
++++ Makefile.in
+@@ -2304,7 +2304,7 @@ dist_man_MANS = $(top_srcdir)/doc/bison.
+ remove_time_stamp = \
+ sed 's/^\(\.TH[^"]*"[^"]*"[^"]*\)"[^"]*"/\1/'
+
+-nodist_man_MANS = doc/yacc.1
++nodist_man_MANS =
+ FIGS_DOT = \
+ doc/figs/example.dot \
+ doc/figs/example-reduce.dot doc/figs/example-shift.dot
+@@ -2536,8 +2536,8 @@ EXTRA_src_bison_SOURCES = \
+ src/scan-gram.l \
+ src/scan-skel.l
+
+-bin_SCRIPTS = $(YACC_SCRIPT)
+-EXTRA_SCRIPTS = src/yacc
++bin_SCRIPTS =
++EXTRA_SCRIPTS =
+ TESTSUITE_AT = \
+ tests/testsuite.at \
+ \
diff --git a/devel/bison/patches/patch-doc_Makefile.in b/devel/bison/patches/patch-doc_Makefile.in
deleted file mode 100644
index c90d1ac2361..00000000000
--- a/devel/bison/patches/patch-doc_Makefile.in
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-doc_Makefile.in,v 1.2 2012/12/16 10:46:17 wiz Exp $
-
-Do not install yacc(1).
-
---- doc/Makefile.in.orig 2012-12-12 15:08:52.000000000 +0000
-+++ doc/Makefile.in
-@@ -1429,7 +1429,7 @@ remove_time_stamp = \
- MOSTLYCLEANFILES = $(srcdir)/*.t
- SUFFIXES = .x .1 .dot .eps .pdf .png
- PREPATH = $(top_builddir)/src
--nodist_man_MANS = yacc.1
-+nodist_man_MANS =
- FIGS_DOT = figs/example.dot figs/example-reduce.dot figs/example-shift.dot
- DOXYGEN = doxygen
- edit = sed -e 's,@PACKAGE_NAME\@,$(PACKAGE_NAME),g' \
diff --git a/devel/bison/patches/patch-src_Makefile.in b/devel/bison/patches/patch-src_Makefile.in
deleted file mode 100644
index b774a22cd15..00000000000
--- a/devel/bison/patches/patch-src_Makefile.in
+++ /dev/null
@@ -1,19 +0,0 @@
-$NetBSD: patch-src_Makefile.in,v 1.1 2012/06/06 07:20:36 wiz Exp $
-
-Do not install a yacc executable.
-
---- src/Makefile.in.orig 2012-06-06 07:16:43.000000000 +0000
-+++ src/Makefile.in
-@@ -1899,9 +1899,9 @@ uninstall-am: uninstall-binPROGRAMS unin
-
-
- yacc:
-- $(AM_V_GEN)echo '#! /bin/sh' >$@
-- $(AM_V_at)echo "exec '$(bindir)/bison' -y "'"$$@"' >>$@
-- $(AM_V_at)chmod a+x $@
-+# $(AM_V_GEN)echo '#! /bin/sh' >$@
-+# $(AM_V_at)echo "exec '$(bindir)/bison' -y "'"$$@"' >>$@
-+# $(AM_V_at)chmod a+x $@
-
- # The following rule is not designed to be portable,
- # and relies on tools that not everyone has.