// cppawk: C preprocessor wrapper around awk // Kaz Kylheku // // 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_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 #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) \ 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) #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