aboutsummaryrefslogtreecommitdiffstats
path: root/testcases-narg
diff options
context:
space:
mode:
Diffstat (limited to 'testcases-narg')
-rw-r--r--testcases-narg43
1 files changed, 43 insertions, 0 deletions
diff --git a/testcases-narg b/testcases-narg
new file mode 100644
index 0000000..c275e42
--- /dev/null
+++ b/testcases-narg
@@ -0,0 +1,43 @@
+1:
+$cppawk '
+#include <narg.h>
+BEGIN { print narg(x), narg(x, y), narg(x, y, z), narg(x, y, z, w) }'
+:
+1 2 3 4
+--
+2:
+$cppawk '
+#include <narg.h>
+BEGIN { print narg(a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a) }'
+:
+32
+--
+3:
+$cppawk '
+#include <narg.h>
+BEGIN { print narg(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1) }'
+:
+ERR
+--
+4:
+$cppawk '
+#include <narg.h>
+#define first(x) x
+#define rest(prev, x) prev : x
+#define colonize(...) [varexpand(first, rest, __VA_ARGS__)]
+#define str(x) #x
+#define xstr(x) str(x)
+#define scolonize(...) xstr(colonize(__VA_ARGS__))
+BEGIN { print scolonize(1), scolonize(1,2), scolonize(1, 2, 3) }'
+:
+[1] [1 : 2] [1 : 2 : 3]
+--
+5:
+$cppawk '
+#include <narg.h>
+#define str(x) #x
+#define xstr(x) str(x)
+#define srev(...) xstr((revarg(__VA_ARGS__)))
+BEGIN { print srev(1), srev(1,2), srev(1, 2, 3) }'
+:
+(1) (2, 1) (3, 2, 1)