From 2d40532bf5d7867229bbe3f1052dcc0469745e00 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Sun, 17 Jun 2012 20:39:17 +0200 Subject: [PATCH] tests: AT_LANG. * tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Define/undefine AT_LANGE (AT_LANG_COMPILE): New. (AT_FULL_COMPILE): Use AT_LANG. --- tests/local.at | 63 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 25 deletions(-) diff --git a/tests/local.at b/tests/local.at index 6d3ff18f..6936d914 100644 --- a/tests/local.at +++ b/tests/local.at @@ -108,6 +108,10 @@ m4_pushdef([AT_SKEL_CC_IF], [m4_bmatch([$3], [%language "[Cc]\+\+"\|%skeleton "[a-z0-9]+\.cc"], [$1], [$2])]) m4_pushdef([AT_SKEL_JAVA_IF], [m4_bmatch([$3], [%language "[Jj][Aa][Vv][Aa]"\|%skeleton "[a-z0-9]+\.java"], [$1], [$2])]) +m4_pushdef([AT_LANG], +[AT_SKEL_JAVA_IF([java], + [AT_SKEL_CC_IF([cxx], + [c])])]) m4_pushdef([AT_GLR_IF], [m4_bmatch([$3], [%glr-parser\|%skeleton "glr\..*"], [$1], [$2])]) m4_pushdef([AT_LALR1_CC_IF], @@ -217,6 +221,7 @@ m4_popdef([AT_LEXPARAM_IF]) m4_popdef([AT_YACC_IF]) m4_popdef([AT_GLR_IF]) m4_popdef([AT_SKEL_CC_IF]) +m4_popdef([AT_LANG]) m4_popdef([AT_SKEL_JAVA_IF]) m4_popdef([AT_GLR_CC_IF]) m4_popdef([AT_LALR1_CC_IF]) @@ -519,6 +524,16 @@ AT_CHECK([[test -n "$CONF_JAVA" || exit 77 AT_CHECK([[$SHELL ../../../javacomp.sh ]$1], [[0]], [ignore], [ignore])]) +# AT_LANG_COMPILE(OUTPUT, [SOURCES = OUTPUT.c] +# -------------------------------------------- +m4_define([AT_LANG_COMPILE], +[m4_case(AT_LANG, +[c], [AT_COMPILE([$1], [$2])], +[cxx], [AT_COMPILE_CXX([$1], [$2])], +[java], [AT_JAVA_COMPILE([$1.java], [$2])], + [m4_fatal([unknown language: ]m4_defn([AT_LANG]))])[]dnl +]) + # AT_FULL_COMPILE(OUTPUT, [OTHER1], [OTHER2]) # ------------------------------------------- # Compile OUTPUT.y to OUTPUT.c, OUTPUT.cc, or OUTPUT.java, and then @@ -526,31 +541,29 @@ AT_CHECK([[$SHELL ../../../javacomp.sh ]$1], # OUTPUT-OTHER.c, OUTPUT-OTHER.cc, or OUTPUT-OTHER.java to OUTPUT or # OUTPUT.java along with it. Relies on AT_SKEL_CC_IF and # AT_SKEL_JAVA_IF. -m4_define([AT_FULL_COMPILE], [ - AT_SKEL_JAVA_IF([ - AT_BISON_CHECK([-o $1.java $1.y]) - AT_JAVA_COMPILE([$1.java], - m4_join([ ], - [$1.java], - m4_ifval($2, [[$1-$2.java]]), - m4_ifval($3, [[$1-$3.java]]))) - ], [ - AT_SKEL_CC_IF([ - AT_BISON_CHECK([-o $1.cc $1.y]) - AT_COMPILE_CXX([$1], - m4_join([ ], - [$1.cc], - m4_ifval($2, [[$1-$2.cc]]), - m4_ifval($3, [[$1-$3.cc]]))) - ], [ - AT_BISON_CHECK([-o $1.c $1.y]) - AT_COMPILE([$1], - m4_join([ ], - [$1.c], - m4_ifval($2, [[$1-$2.c]]), - m4_ifval($3, [[$1-$3.c]]))) - ]) - ]) +m4_define([AT_FULL_COMPILE], +[m4_case(AT_LANG, +[java], + [AT_BISON_CHECK([-o $1.java $1.y]) + AT_LANG_COMPILE([$1], + m4_join([ ], + [$1.java], + m4_ifval($2, [[$1-$2.java]]), + m4_ifval($3, [[$1-$3.java]])))], +[cxx], + [AT_BISON_CHECK([-o $1.cc $1.y]) + AT_LANG_COMPILE([$1], + m4_join([ ], + [$1.cc], + m4_ifval($2, [[$1-$2.cc]]), + m4_ifval($3, [[$1-$3.cc]])))], +[c], + [AT_BISON_CHECK([-o $1.c $1.y]) + AT_LANG_COMPILE([$1], + m4_join([ ], + [$1.c], + m4_ifval($2, [[$1-$2.c]]), + m4_ifval($3, [[$1-$3.c]])))]) ]) -- 2.47.2