X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flanguage%2Fcontrol%2Fdefine.at;h=0211c71785511c75f647ebe47fec7ac5c7ee2a7b;hb=350d60cd9a6515950c1a6c745cfafcbd2206bee0;hp=f1f3f41fa062bbdb7346dcad911d9c4729177009;hpb=db57300f720b0916461aad06cec4d268481f06e0;p=pspp diff --git a/tests/language/control/define.at b/tests/language/control/define.at index f1f3f41fa0..0211c71785 100644 --- a/tests/language/control/define.at +++ b/tests/language/control/define.at @@ -29,7 +29,7 @@ m(n,o). "x "" y". !ENDDEFINE. DEBUG EXPAND. -!macro() +!macro ]) AT_CHECK([pspp --testing-mode define.sps], [0], [dnl a b c d e f g h. @@ -43,30 +43,101 @@ AT_CLEANUP AT_SETUP([macro expansion with arguments]) AT_DATA([define.sps], [dnl -DEFINE !t1(!positional !tokens(1)) (!1) !ENDDEFINE. -DEFINE !t2(!positional !tokens(2)) (!1) !ENDDEFINE. -DEFINE !ce(!positional !charend('/')) (!1) !ENDDEFINE. +DEFINE !title(!positional !tokens(1)) !1 !ENDDEFINE. +DEFINE !t1(!positional !tokens(1)) t1 (!1) !ENDDEFINE. +DEFINE !t2(!positional !tokens(2)) t2 (!1) !ENDDEFINE. + +DEFINE !ce(!positional !charend('/')) ce (!1) !ENDDEFINE. +DEFINE !ce2(!positional !charend('(') + /!positional !charend(')')) +ce2 (!1, !2) +!ENDDEFINE. + +DEFINE !e(!positional !enclose('{','}')) e (!1) !ENDDEFINE. + +DEFINE !cmd(!positional !cmdend) cmd(!1) !ENDDEFINE. +DEFINE !cmd2(!positional !cmdend + /!positional !tokens(1)) +cmd2(!1, !2) +!ENDDEFINE. + DEBUG EXPAND. +!title "!TOKENS(1) argument." !t1 a. !t1 b. !t1 a b. +!title "!TOKENS(2) argument." !t2 a b. !t2 b c d. +!title "!CHAREND argument." +!ce/. +!ce x/. +!ce x y/. !ce x y z/. + +!title "Two !CHAREND arguments." +!ce2 x(y). +!ce2 1 2 3 4(). + +!title "!ENCLOSE argument." +!e {}. +!e {a}. +!e {a b}. + +!title "!CMDEND argument." +!cmd 1 2 3 4. +!cmd2 5 6. +7. ]) AT_CHECK([pspp --testing-mode define.sps], [0], [dnl -(a) +"!TOKENS(1) argument." + +t1(a) + +t1(b) + +t1(a) + +note: unexpanded token "b" + +"!TOKENS(2) argument." + +t2(a b) + +t2(b c) + +note: unexpanded token "d" + +"!CHAREND argument." + +ce( ) + +ce(x) + +ce(x y) + +ce(x y z) + +"Two !CHAREND arguments." + +ce2(x, y) + +ce2(1 2 3 4, ) + +"!ENCLOSE argument." + +e( ) -(b) +e(a) -(a) +e(a b) -(a b) +"!CMDEND argument." -(b c) +cmd(1 2 3 4) -(x y z) +cmd2(5 6, 7) ]) AT_CLEANUP