merci beaucoup ! dc
----- Original Message ----- From: Akim Demaille <[email protected]> Date: Thursday, November 8, 2012 1:42 pm Subject: Re: bison-2.6.5 1 test failed on solaris 10 To: Dennis Clarke <[email protected]> Cc: [email protected] > Le 8 nov. 2012 à 17:34, Akim Demaille a écrit : > > > This is minor: grep -E does not seem to support -w. I'll adjust the > test suite, thanks a lot for the report. > > I installed this (in branch-2.6). > > commit 3a526f5cc3b45fc68d06de0b5332105113741093 > Author: Akim Demaille <[email protected]> > Date: Thu Nov 8 19:34:29 2012 +0100 > > tests: don't expect $EGREP to support -w > > Does not work on Solaris 10. Reported by Dennis Clarke. > http://lists.gnu.org/archive/html/bug-bison/2012-11/msg00009.html > * tests/headers.at (Several parsers): Use Perl instead. > While at it, run it only once, on all the generated headers. > Adjust to YY_NULL be defined in position.hh. > > diff --git a/THANKS b/THANKS > index 77d35be..4e88e8f 100644 > --- a/THANKS > +++ b/THANKS > @@ -31,6 +31,7 @@ Dagobert Michelsen [email protected] > Daniel Hagerty [email protected] > David J. MacKenzie [email protected] > David Kastrup [email protected] > +Dennis Clarke [email protected] > Derek M. Jones [email protected] > Di-an Jan [email protected] > Dick Streefland [email protected] > diff --git a/tests/headers.at b/tests/headers.at > index a60e315..7df4cc9 100644 > --- a/tests/headers.at > +++ b/tests/headers.at > @@ -163,21 +163,6 @@ exp: > > AT_BISON_CHECK([-d -o AT_SKEL_CC_IF([$1.cc $1.yy], [$1.c $1.y])]) > > -# Check there is no 'yy' left. > -# C++ output relies on namespaces and still uses yy a lot. > -AT_SKEL_CC_IF([], > - [AT_CHECK([$EGREP yy $1.h], [1])]) > - > -# Check there is not 'YY' left. > -# Ignore comments, YYPARSE_PARAM (obsolete), YYPUSH_MORE(_DEFINED)? > -# (constant definition), YY_\w+_INCLUDED (header guards). > -# > -# YYDEBUG (not renamed) can be read, but not changed. > -AT_CHECK([[sed -ne 's,/\*[^*]*\*/,,g;s,//.*,,' \ > - -e '/YY/p' ]$1.AT_SKEL_CC_IF([hh], [h])[ | > - $EGREP -wv > 'YY(PARSE_PARAM|PUSH_MORE(_DEFINED)?|_[0-9A-Z_]+_INCLUDED)|(defined|if) > YYDEBUG']], > - [1]) > - > AT_LANG_COMPILE([$1.o]) > AT_CHECK([[echo "$1" >>expout]]) > > @@ -240,6 +225,36 @@ AT_TEST([x7], [%define api.push-pull both]) > AT_TEST([x8], [%define api.pure %define api.push-pull both]) > #AT_TEST([x5], [%locations %language "c++" %glr-parser]) > > +# Check there is no 'yy' left. > +# C++ output relies on namespaces and still uses yy a lot. > +# > +# Check there is no 'YY' left. > +# Ignore comments, YYPARSE_PARAM (obsolete), YYPUSH_MORE(_DEFINED)? > +# (constant definition), YY_\w+_INCLUDED (header guards). > +# > +# YYDEBUG (not renamed) can be read, but not changed. > +AT_CHECK([[$PERL -n -0777 -e ' > + s{/\*.*?\*/}{}gs; > + s{//.*}{}g; > + s{\b(YYPARSE_PARAM > + |YYPUSH_MORE(_DEFINED)? > + |YY_\w+_INCLUDED > + |YY_NULL > + |(defined|if)\ YYDEBUG > + )\b}{}gx; > + while (/^(.*YY.*)$/gm) > + { > + print "$ARGV: $1\n"; > + } > + if ($ARGV =~ /\.h$/) > + { > + while (/^(.*yy.*)$/gm) > + { > + print "$ARGV: $1\n"; > + } > + } > +' -- *.hh *.h]]) > + > # Check that the headers are self-contained, and protected against > # multiple inclusions. While at it, check they are sane for C++. > for h in *.h *.hh >
