diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-04-12 23:00:11 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-04-12 23:00:11 -0700 |
commit | a82b2fbeaa96e3e9531f929bb067448260495d19 (patch) | |
tree | 29a9de3a6ebfddee7a15a1ec809956f0ad80d0f3 /testcases-narg | |
parent | 768e1ae91c76af878dbbd93833ad49ae98da6260 (diff) | |
download | cppawk-a82b2fbeaa96e3e9531f929bb067448260495d19.tar.gz cppawk-a82b2fbeaa96e3e9531f929bb067448260495d19.tar.bz2 cppawk-a82b2fbeaa96e3e9531f929bb067448260495d19.zip |
narg: new variaexpand macro.
Diffstat (limited to 'testcases-narg')
-rw-r--r-- | testcases-narg | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/testcases-narg b/testcases-narg index 97baac1..4babf22 100644 --- a/testcases-narg +++ b/testcases-narg @@ -83,3 +83,16 @@ $cppawk ' BEGIN { print scolonize(a), scolonize(a, b), scolonize(a, b, c) }' : [a1] [a1 : b2] [a1 : b2 : c3] +-- +7: +$cppawk ' +#include <narg.h> +#define first(x, i, a) a-x ## i +#define rest(prev, x, i, a) prev : a-x ## i +#define colonize(a, ...) [variaexpand(first, rest, a, __VA_ARGS__)] +#define str(x) #x +#define xstr(x) str(x) +#define scolonize(...) xstr(colonize(__VA_ARGS__)) +BEGIN { print scolonize(m, a), scolonize(n, a, b), scolonize(p, a, b, c) }' +: +[m-a1] [n-a1 : n-b2] [p-a1 : p-b2 : p-c3] |