aboutsummaryrefslogtreecommitdiffstats
path: root/cppawk-include
diff options
context:
space:
mode:
Diffstat (limited to 'cppawk-include')
l---------cppawk-include/...1
-rw-r--r--cppawk-include/base.h43
-rw-r--r--cppawk-include/case-priv.h78
-rw-r--r--cppawk-include/case.h45
-rw-r--r--cppawk-include/narg-priv.h327
5 files changed, 493 insertions, 1 deletions
diff --git a/cppawk-include/... b/cppawk-include/...
deleted file mode 120000
index 945c9b4..0000000
--- a/cppawk-include/...
+++ /dev/null
@@ -1 +0,0 @@
-. \ No newline at end of file
diff --git a/cppawk-include/base.h b/cppawk-include/base.h
new file mode 100644
index 0000000..1f060cb
--- /dev/null
+++ b/cppawk-include/base.h
@@ -0,0 +1,43 @@
+// cppawk: C preprocessor wrapper around awk
+// Kaz Kylheku <kaz@kylheku.com>
+//
+// BSD-2 License
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef __CPPAWK_BASE_H
+#define __CPPAWK_BASE_H
+
+#if __gawk__ && !defined __gawk_ver
+#define __gawk_ver 040000
+#endif
+
+#define __cat(a, b) a ## b
+#define __xcat(a, b) __cat(a, b)
+#define __g(name) __xcat(name, __LINE__)
+
+#define __error(...) { printf(__VA_ARGS__); print; exit 1 }
+
+#define __present(arg) ((arg) != "" || (arg) != 0)
+
+#endif
diff --git a/cppawk-include/case-priv.h b/cppawk-include/case-priv.h
new file mode 100644
index 0000000..7ae5229
--- /dev/null
+++ b/cppawk-include/case-priv.h
@@ -0,0 +1,78 @@
+// cppawk: C preprocessor wrapper around awk
+// Kaz Kylheku <kaz@kylheku.com>
+//
+// BSD-2 License
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef __CPPAWK_CASE_PRIV_H
+#define __CPPAWK_CASE_PRIV_H
+
+#ifndef __CPPAWK_NARG_PRIV
+#include "narg-priv.h"
+#endif
+
+#ifndef __CPPAWK_BASE
+#include "base.h"
+#endif
+
+#if __gawk__
+
+#define __casx(x) case x:
+
+#define __case_temps __ign
+#define __case(expr) switch (expr)
+#define __of(...) __xcat(__rep_, __narg(__VA_ARGS__))(__casx, \
+ __VA_ARGS__) {{{
+#define __matching(...) __xcat(__rep_, __narg(__VA_ARGS__))(__casx, \
+ __VA_ARGS__) {{{
+#define __cbreak break; }}}
+#define __cfall }}}
+#define __cret(val) return val; }}}
+#define __otherwise default: {{{
+
+#else
+
+#define __clause(expr) if (__pass || (expr) && (__pass = 1))
+#define __of_first(x) (__val == (x))
+#define __of_next(x) || (__val == (x))
+#define __mtch_first(x) (__val ~ (x))
+#define __mtch_next(x) || (__val ~ (x))
+
+#define __case_temps __val, __once, __pass
+#define __case(expr) for ((__once = 1) && (__pass = 0) || (__val = expr); \
+ __once; \
+ __once = 0)
+#define __of(...) __clause(__xcat(__repi_, __narg(__VA_ARGS__)) \
+ (__of_first, __of_next, __VA_ARGS__)) {{{
+#define __matching(...) __clause(__xcat(__repi_, __narg(__VA_ARGS__)) \
+ (__mtch_first, __mtch_next, __VA_ARGS__)) {{{
+#define __cbreak break; }}}
+#define __creturn(val) return val; }}}
+#define __cfall }}}
+#define __cret(val) return val; }}}
+#define __otherwise if (__pass = 1) {{{
+
+#endif
+
+#endif
diff --git a/cppawk-include/case.h b/cppawk-include/case.h
new file mode 100644
index 0000000..79a04b8
--- /dev/null
+++ b/cppawk-include/case.h
@@ -0,0 +1,45 @@
+// cppawk: C preprocessor wrapper around awk
+// Kaz Kylheku <kaz@kylheku.com>
+//
+// BSD-2 License
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef __CPPAWK_CASE_H
+#define __CPPAWK_CASE_H
+
+#ifndef __CPPAWK_CASE_PRIV_H
+#include "case-priv.h"
+#endif
+
+#define case_temps __case_temps
+#define case(expr) __case(expr)
+#define of(...) __of(__VA_ARGS__)
+#define matching(...) __matching(__VA_ARGS__)
+#define cbreak __cbreak
+#define cfall __cfall
+#define cret(val) __cret(val)
+#define then __do
+#define otherwise __otherwise
+
+#endif
diff --git a/cppawk-include/narg-priv.h b/cppawk-include/narg-priv.h
new file mode 100644
index 0000000..037e057
--- /dev/null
+++ b/cppawk-include/narg-priv.h
@@ -0,0 +1,327 @@
+// cppawk: C preprocessor wrapper around awk
+// Kaz Kylheku <kaz@kylheku.com>
+//
+// BSD-2 License
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef __CPPAWK_NARG_PRIV
+#define __CPPAWK_NARG_PRIV
+
+#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
+
+#define __xnarg_34(...) __narg_34(__VA_ARGS__)
+
+#define __narg(...) __xnarg_34(__dummy, ## __VA_ARGS__, 32, 31, 30, 29, 28, \
+ 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, \
+ 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, \
+ 3, 2, 1, 0)
+
+#define __rep_1(mac, a1) \
+ mac(a1)
+#define __rep_2(mac, a1, a2) \
+ mac(a1) mac(a2)
+#define __rep_3(mac, a1, a2, a3) \
+ mac(a1) mac(a2) mac(a3)
+#define __rep_4(mac, a1, a2, a3, a4) \
+ mac(a1) mac(a2) mac(a3) mac(a4)
+#define __rep_5(mac, a1, a2, a3, a4, a5) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5)
+#define __rep_6(mac, a1, a2, a3, a4, a5, a6) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6)
+#define __rep_7(mac, a1, a2, a3, a4, a5, a6, a7) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7)
+#define __rep_8(mac, a1, a2, a3, a4, a5, a6, a7, a8) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8)
+#define __rep_9(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9)
+#define __rep_10(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10)
+#define __rep_11(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11)
+#define __rep_12(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12)
+#define __rep_13(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13)
+#define __rep_14(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \
+ a14) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14)
+#define __rep_15(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \
+ a14, a15) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15)
+#define __rep_16(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \
+ a14, a15, a16) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16)
+#define __rep_17(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \
+ a14, a15, a16, a17) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17)
+#define __rep_18(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \
+ a14, a15, a16, a17, a18) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18)
+#define __rep_19(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \
+ a14, a15, a16, a17, a18, a19) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19)
+#define __rep_20(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \
+ a14, a15, a16, a17, a18, a19, a20) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20)
+#define __rep_21(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \
+ a14, a15, a16, a17, a18, a19, a20, a21) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20) mac(a21)
+#define __rep_22(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \
+ a14, a15, a16, a17, a18, a19, a20, a21, a22) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20) mac(a21) mac(a22)
+#define __rep_23(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \
+ a14, a15, a16, a17, a18, a19, a20, a21, a22, a23) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20) mac(a21) mac(a22) mac(a23)
+#define __rep_24(mac, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, \
+ a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20) mac(a21) mac(a22) mac(a23) mac(a24)
+#define __rep_25(mac, 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) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20) mac(a21) mac(a22) mac(a23) mac(a24) mac(a25)
+#define __rep_26(mac, 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) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20) mac(a21) mac(a22) mac(a23) mac(a24) mac(a25) \
+ mac(a26)
+#define __rep_27(mac, 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) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20) mac(a21) mac(a22) mac(a23) mac(a24) mac(a25) \
+ mac(a26) mac(a27)
+#define __rep_28(mac, 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) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20) mac(a21) mac(a22) mac(a23) mac(a24) mac(a25) \
+ mac(a26) mac(a27) mac(a28)
+#define __rep_29(mac, 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) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20) mac(a21) mac(a22) mac(a23) mac(a24) mac(a25) \
+ mac(a26) mac(a27) mac(a28) mac(a29)
+#define __rep_30(mac, 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) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20) mac(a21) mac(a22) mac(a23) mac(a24) mac(a25) \
+ mac(a26) mac(a27) mac(a28) mac(a29) mac(a30)
+#define __rep_31(mac, 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) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20) mac(a21) mac(a22) mac(a23) mac(a24) mac(a25) \
+ mac(a26) mac(a27) mac(a28) mac(a29) mac(a30) mac(a31)
+#define __rep_32(mac, 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) \
+ mac(a1) mac(a2) mac(a3) mac(a4) mac(a5) mac(a6) mac(a7) mac(a8) mac(a9) \
+ mac(a10) mac(a11) mac(a12) mac(a13) mac(a14) mac(a15) mac(a16) mac(a17) \
+ mac(a18) mac(a19) mac(a20) mac(a21) mac(a22) mac(a23) mac(a24) mac(a25) \
+ mac(a26) mac(a27) mac(a28) mac(a29) mac(a30) mac(a31) mac(a32)
+
+#define __repi_1(mac1, mac2, a1) \
+ mac1(a1)
+#define __repi_2(mac1, mac2, a1, a2) \
+ mac1(a1) mac2(a2)
+#define __repi_3(mac1, mac2, a1, a2, a3) \
+ mac1(a1) mac2(a2) mac2(a3)
+#define __repi_4(mac1, mac2, a1, a2, a3, a4) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4)
+#define __repi_5(mac1, mac2, a1, a2, a3, a4, a5) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5)
+#define __repi_6(mac1, mac2, a1, a2, a3, a4, a5, a6) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6)
+#define __repi_7(mac1, mac2, a1, a2, a3, a4, a5, a6, a7) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7)
+#define __repi_8(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8)
+#define __repi_9(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9)
+#define __repi_10(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10)
+#define __repi_11(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11)
+#define __repi_12(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12)
+#define __repi_13(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12, a13) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13)
+#define __repi_14(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12, a13, a14) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14)
+#define __repi_15(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12, a13, a14, a15) j\
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15)
+#define __repi_16(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12, a13, a14, a15, a16) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16)
+#define __repi_17(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12, a13, a14, a15, a16, a17) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17)
+#define __repi_18(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12, a13, a14, a15, a16, a17, a18) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18)
+#define __repi_19(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12, a13, a14, a15, a16, a17, a18, a19) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19)
+#define __repi_20(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12, a13, a14, a15, a16, a17, a18, a19, a20) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20)
+#define __repi_21(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12, a13, a14, a15, a16, a17, a18, a19, a20, a21) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20) mac2(a21)
+#define __repi_22(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20) mac2(a21) mac2(a22)
+#define __repi_23(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20) mac2(a21) mac2(a22) \
+ mac2(a23)
+#define __repi_24(mac1, mac2, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, \
+ a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, \
+ a24) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20) mac2(a21) mac2(a22) \
+ mac2(a23) mac2(a24)
+#define __repi_25(mac1, mac2, 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) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20) mac2(a21) mac2(a22) \
+ mac2(a23) mac2(a24) mac2(a25)
+#define __repi_26(mac1, mac2, 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) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20) mac2(a21) mac2(a22) \
+ mac2(a23) mac2(a24) mac2(a25) mac2(a26)
+#define __repi_27(mac1, mac2, 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) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20) mac2(a21) mac2(a22) \
+ mac2(a23) mac2(a24) mac2(a25) mac2(a26) mac2(a27)
+#define __repi_28(mac1, mac2, 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) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20) mac2(a21) mac2(a22) \
+ mac2(a23) mac2(a24) mac2(a25) mac2(a26) mac2(a27) mac2(a28)
+#define __repi_29(mac1, mac2, 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) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20) mac2(a21) mac2(a22) \
+ mac2(a23) mac2(a24) mac2(a25) mac2(a26) mac2(a27) mac2(a28) mac2(a29)
+#define __repi_30(mac1, mac2, 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) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20) mac2(a21) mac2(a22) \
+ mac2(a23) mac2(a24) mac2(a25) mac2(a26) mac2(a27) mac2(a28) mac2(a29) \
+ mac2(a30)
+#define __repi_31(mac1, mac2, 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) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20) mac2(a21) mac2(a22) \
+ mac2(a23) mac2(a24) mac2(a25) mac2(a26) mac2(a27) mac2(a28) mac2(a29) \
+ mac2(a30) mac2(a31)
+#define __repi_32(mac1, mac2, 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) \
+ mac1(a1) mac2(a2) mac2(a3) mac2(a4) mac2(a5) mac2(a6) mac2(a7) mac2(a8) \
+ mac2(a9) mac2(a10) mac2(a11) mac2(a12) mac2(a13) mac2(a14) mac2(a15) \
+ mac2(a16) mac2(a17) mac2(a18) mac2(a19) mac2(a20) mac2(a21) mac2(a22) \
+ mac2(a23) mac2(a24) mac2(a25) mac2(a26) mac2(a27) mac2(a28) mac2(a29) \
+ mac2(a30) mac2(a31) mac2(a32)
+
+#endif