!EVAL
[pspp] / tests / language / control / define.at
index fce0e3f832ee2172f28a3a7f5fd54e77f42c9c58..bf5e2c4ae11dbaa0cabe39e9960bc1d83246e9aa 100644 (file)
@@ -391,6 +391,32 @@ xy.
 1234.
 123.])
 
+dnl Keep this test in sync with the examples for !EVAL in the manual.
+PSPP_CHECK_MACRO_EXPANSION([!EVAL],
+  [DEFINE !vars() a b c !ENDDEFINE.
+DEFINE !e()
+!vars.
+!QUOTE(!vars).
+!EVAL(!vars).
+!QUOTE(!EVAL(!vars)).
+!ENDDEFINE
+DEFINE !e2(!positional !enclose('(',')'))
+!1.
+!QUOTE(!1).
+!EVAL(!1).
+!QUOTE(!EVAL(!1)).
+!ENDDEFINE],
+  [!e.
+!e2(!vars)],
+  [a b c.
+'!vars'.
+a b c.
+'a b c'.
+a b c.
+'!vars'.
+a b c.
+'a b c'.])
+
 dnl Keep this test in sync with the examples for !HEAD in the manual.
 PSPP_CHECK_MACRO_EXPANSION([!HEAD],
   [DEFINE !h()
@@ -476,16 +502,18 @@ PSPP_CHECK_MACRO_EXPANSION([!SUBSTR],
 !SUBSTR(banana, 3).
 !SUBSTR(banana, 3, 3).
 !SUBSTR("banana", 3).
+!SUBSTR(!UNQUOTE("banana"), 3).
 !SUBSTR("banana", 3, 3).
 !SUBSTR(banana, 3, 0).
 !SUBSTR(banana, 3, 10).
 !SUBSTR(banana, 10, 3).
 !ENDDEFINE.],
   [!s.],
-  [nana.
+  [error
+nana.
 nan.
-anana". dnl"
-
+anana.
+nana.
 ana.
 .
 nana.