X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/b142cfd1280d38cc7a26be7c94bfcf02f400b848..2a824fae30d1cea0f1e85eee3ce42d5c120299d6:/tests/headers.at diff --git a/tests/headers.at b/tests/headers.at index 4660f97f..70891292 100644 --- a/tests/headers.at +++ b/tests/headers.at @@ -130,7 +130,7 @@ AT_SETUP([Several parsers]) # the header (but YYDEBUG and YYPARSE_PARAM). m4_define([AT_DATA_GRAMMAR_SEVERAL], [AT_BISON_OPTION_PUSHDEFS([%define api.prefix "$1_" $2]) -AT_DATA_GRAMMAR([AT_SKEL_CC_IF([$1.yy], [$1.y])], +AT_DATA_GRAMMAR([$1.AT_SKEL_CC_IF([yy], [y])], [[%define api.prefix "$1_" $2 %union @@ -160,14 +160,21 @@ exp: AT_BISON_CHECK([-d -o AT_SKEL_CC_IF([$1.cc $1.yy], [$1.c $1.y])]) # C++ output relies on namespaces and still uses yy a lot. AT_SKEL_CC_IF([], - [AT_CHECK([$EGREP -i yy $1.h | $EGREP -v 'YY(DEBUG|PARSE_PARAM)'], [1])]) + [AT_CHECK([$EGREP yy $1.h], [1])]) + +# Ignore comments. Ignore YYPARSE_PARAM. 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 '(YYPARSE_PARAM|defined YYDEBUG|if YYDEBUG)']], + [1]) AT_LANG_COMPILE([$1.o]) AT_BISON_OPTION_POPDEFS ]) AT_DATA([main.cc], -[[#define ECHO(S) std::cerr << #S": " << S << std::endl; -extern "C" +[AT_DATA_SOURCE_PROLOGUE +[extern "C" { #include "x1.h" #include "x2.h" @@ -177,6 +184,8 @@ extern "C" #include "x5.hh" //#include "x6.hh" +#define ECHO(S) std::cerr << #S": " << S << std::endl; + int main (void) { @@ -186,7 +195,8 @@ main (void) ECHO(x4_parse()); x5_::parser p5; ECHO(p5.parse()); -// ECHO(x6_parse()); +// x6_::parser p6; +// ECHO(p6.parse()); return 0; } ]]) @@ -196,7 +206,7 @@ AT_DATA_GRAMMAR_SEVERAL([x2], [%locations %debug]) AT_DATA_GRAMMAR_SEVERAL([x3], [%glr-parser]) AT_DATA_GRAMMAR_SEVERAL([x4], [%locations %debug %glr-parser]) AT_DATA_GRAMMAR_SEVERAL([x5], [%locations %debug %language "c++"]) -#AT_DATA_GRAMMAR_SEVERAL([x6], [%locations %language "c++"]) +#AT_DATA_GRAMMAR_SEVERAL([x5], [%locations %language "c++" %glr-parser]) AT_COMPILE_CXX([parser], [x1.o x2.o x3.o x4.o x5.o main.cc]) AT_CHECK([./parser], [0],