diff options
Diffstat (limited to 'testcases-narg')
-rw-r--r-- | testcases-narg | 43 |
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) |