aboutsummaryrefslogtreecommitdiffstats
path: root/cppawk-include/narg-priv.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-03-28 07:18:19 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-03-28 07:18:19 -0700
commit307209981bb26d3472f5eea98b4174278a1ada0e (patch)
tree60860d220d9d02983c7c58233fc547d5a94c226d /cppawk-include/narg-priv.h
parenta215e15e32255c7c48a6c5a52fda1199da1235f9 (diff)
downloadcppawk-307209981bb26d3472f5eea98b4174278a1ada0e.tar.gz
cppawk-307209981bb26d3472f5eea98b4174278a1ada0e.tar.bz2
cppawk-307209981bb26d3472f5eea98b4174278a1ada0e.zip
Simplify definition of variadic macros.
Diffstat (limited to 'cppawk-include/narg-priv.h')
-rw-r--r--cppawk-include/narg-priv.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/cppawk-include/narg-priv.h b/cppawk-include/narg-priv.h
index 92065aa..2e1ac8c 100644
--- a/cppawk-include/narg-priv.h
+++ b/cppawk-include/narg-priv.h
@@ -28,6 +28,10 @@
#ifndef __CPPAWK_NARG_PRIV_H
#define __CPPAWK_NARG_PRIV_H
+#ifndef __CPPAWK_BASE_H
+#include "base.h"
+#endif
+
#define __narg_34(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, \
A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, \
A26, A27, A28, A29, A30, A31, A32, A33, N, ...) N
@@ -324,4 +328,10 @@
mac2(a23) mac2(a24) mac2(a25) mac2(a26) mac2(a27) mac2(a28) mac2(a29) \
mac2(a30) mac2(a31) mac2(a32)
+#define __varexpand_simple(mac, ...) \
+ __xcat(__rep_, __narg(__VA_ARGS__)) (mac, __VA_ARGS__)
+
+#define __varexpand_infix(mac1, mac2, ...) \
+ __xcat(__repi_, __narg(__VA_ARGS__)) (mac1, mac2, __VA_ARGS__)
+
#endif