From dfb62fcadb7053f3e6475e79dadeef9354f760ac Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Mon, 6 Mar 2017 22:15:21 +0100 Subject: [PATCH] Move external sections at the top. --- m-tuple.h | 73 ++++++++++++++++++++++++++++------------------------- m-variant.h | 70 +++++++++++++++++++++++++++----------------------- 2 files changed, 77 insertions(+), 66 deletions(-) diff --git a/m-tuple.h b/m-tuple.h index 8f4033a9..127bfe33 100644 --- a/m-tuple.h +++ b/m-tuple.h @@ -30,6 +30,45 @@ #include "m-core.h" +/********************** External interface *************************/ + +/* Define the tuple type and functions. + USAGE: + TUPLE_DEF2(name, [(field1, type1, oplist1), (field2, type2, oplist2), ...] ) */ +#define TUPLE_DEF2(name, ...) \ + TUPLE_DEFINE_TYPE(name, __VA_ARGS__) \ + TUPLE_DEFINE_INIT(name, __VA_ARGS__) \ + TUPLE_DEFINE_INIT_SET(name, __VA_ARGS__) \ + TUPLE_DEFINE_INIT_SET2(name, __VA_ARGS__) \ + TUPLE_DEFINE_SET(name, __VA_ARGS__) \ + TUPLE_DEFINE_CLEAR(name, __VA_ARGS__) \ + TUPLE_DEFINE_GETTER(name, __VA_ARGS__) \ + TUPLE_DEFINE_SETTER(name, __VA_ARGS__) \ + M_IF(TUPLE_ALL_CMP(__VA_ARGS__)) \ + (TUPLE_DEFINE_CMP(name, __VA_ARGS__),) \ + M_IF(TUPLE_ALL_HASH(__VA_ARGS__)) \ + (TUPLE_DEFINE_HASH(name, __VA_ARGS__),) \ + M_IF(TUPLE_ALL_EQUAL(__VA_ARGS__)) \ + (TUPLE_DEFINE_EQUAL(name, __VA_ARGS__),) \ + M_IF(TUPLE_ALL_GET_STR(__VA_ARGS__)) \ + (TUPLE_DEFINE_GET_STR(name, __VA_ARGS__),) \ + M_IF(TUPLE_ALL_OUT_STR(__VA_ARGS__)) \ + (TUPLE_DEFINE_OUT_STR(name, __VA_ARGS__),) \ + M_IF(TUPLE_ALL_IN_STR(__VA_ARGS__)) \ + (TUPLE_DEFINE_IN_STR(name, __VA_ARGS__),) \ + M_IF(TUPLE_ALL_INIT_MOVE(__VA_ARGS__)) \ + (TUPLE_DEFINE_INIT_MOVE(name, __VA_ARGS__),) \ + M_IF(TUPLE_ALL_MOVE(__VA_ARGS__)) \ + (TUPLE_DEFINE_MOVE(name, __VA_ARGS__),) + +/* Define the oplist of a tuple. + USAGE: TUPLE_OPLIST(name[, oplist of the first type, ...]) */ +#define TUPLE_OPLIST(...) \ + M_IF_NARGS_EQ1(__VA_ARGS__) \ + (TUPLEI_OPLIST(__VA_ARGS__, () ), \ + TUPLEI_OPLIST(__VA_ARGS__ )) + + /********************************** INTERNAL ************************************/ #define TUPLE_GET_FIELD(f,t,o) f @@ -257,39 +296,5 @@ M_IF_METHOD_ALL(MOVE, __VA_ARGS__)(EQUAL(M_C(name, _move)),), \ ) -/********************** External interface *************************/ - -#define TUPLE_DEF2(name, ...) \ - TUPLE_DEFINE_TYPE(name, __VA_ARGS__) \ - TUPLE_DEFINE_INIT(name, __VA_ARGS__) \ - TUPLE_DEFINE_INIT_SET(name, __VA_ARGS__) \ - TUPLE_DEFINE_INIT_SET2(name, __VA_ARGS__) \ - TUPLE_DEFINE_SET(name, __VA_ARGS__) \ - TUPLE_DEFINE_CLEAR(name, __VA_ARGS__) \ - TUPLE_DEFINE_GETTER(name, __VA_ARGS__) \ - TUPLE_DEFINE_SETTER(name, __VA_ARGS__) \ - M_IF(TUPLE_ALL_CMP(__VA_ARGS__)) \ - (TUPLE_DEFINE_CMP(name, __VA_ARGS__),) \ - M_IF(TUPLE_ALL_HASH(__VA_ARGS__)) \ - (TUPLE_DEFINE_HASH(name, __VA_ARGS__),) \ - M_IF(TUPLE_ALL_EQUAL(__VA_ARGS__)) \ - (TUPLE_DEFINE_EQUAL(name, __VA_ARGS__),) \ - M_IF(TUPLE_ALL_GET_STR(__VA_ARGS__)) \ - (TUPLE_DEFINE_GET_STR(name, __VA_ARGS__),) \ - M_IF(TUPLE_ALL_OUT_STR(__VA_ARGS__)) \ - (TUPLE_DEFINE_OUT_STR(name, __VA_ARGS__),) \ - M_IF(TUPLE_ALL_IN_STR(__VA_ARGS__)) \ - (TUPLE_DEFINE_IN_STR(name, __VA_ARGS__),) \ - M_IF(TUPLE_ALL_INIT_MOVE(__VA_ARGS__)) \ - (TUPLE_DEFINE_INIT_MOVE(name, __VA_ARGS__),) \ - M_IF(TUPLE_ALL_MOVE(__VA_ARGS__)) \ - (TUPLE_DEFINE_MOVE(name, __VA_ARGS__),) - -/* Define the oplist of a tuple. - TUPLE_OPLIST(name[, oplist of the first type, ...]) */ -#define TUPLE_OPLIST(...) \ - M_IF_NARGS_EQ1(__VA_ARGS__) \ - (TUPLEI_OPLIST(__VA_ARGS__, () ), \ - TUPLEI_OPLIST(__VA_ARGS__ )) #endif diff --git a/m-variant.h b/m-variant.h index 8265f1f7..b49578c3 100644 --- a/m-variant.h +++ b/m-variant.h @@ -32,6 +32,44 @@ #include "m-core.h" + +/********************** External interface *************************/ + +/* Define the variant type and functions. + USAGE: + VARIANT_DEF2(name, [(field1, type1, oplist1), (field2, type2, oplist2), ...] ) */ +#define VARIANT_DEF2(name, ...) \ + VARIANTI_DEFINE_TYPE(name, __VA_ARGS__) \ + VARIANTI_DEFINE_INIT(name, __VA_ARGS__) \ + VARIANTI_DEFINE_CLEAR(name, __VA_ARGS__) \ + VARIANTI_DEFINE_INIT_SET(name, __VA_ARGS__) \ + VARIANTI_DEFINE_SET(name, __VA_ARGS__) \ + VARIANTI_DEFINE_TEST_P(name, __VA_ARGS__) \ + VARIANTI_DEFINE_SETTER(name, __VA_ARGS__) \ + VARIANTI_DEFINE_GETTER(name, __VA_ARGS__) \ + M_IF(VARIANTI_ALL_HASH(__VA_ARGS__)) \ + (VARIANTI_DEFINE_HASH(name, __VA_ARGS__),) \ + M_IF(VARIANTI_ALL_EQUAL(__VA_ARGS__)) \ + (VARIANTI_DEFINE_EQUAL(name, __VA_ARGS__),) \ + M_IF(VARIANTI_ALL_GET_STR(__VA_ARGS__)) \ + (VARIANTI_DEFINE_GET_STR(name, __VA_ARGS__),) \ + M_IF(VARIANTI_ALL_OUT_STR(__VA_ARGS__)) \ + (VARIANTI_DEFINE_OUT_STR(name, __VA_ARGS__),) \ + M_IF(VARIANTI_ALL_IN_STR(__VA_ARGS__)) \ + (VARIANTI_DEFINE_IN_STR(name, __VA_ARGS__),) \ + M_IF(VARIANTI_ALL_INIT_MOVE(__VA_ARGS__)) \ + (VARIANTI_DEFINE_INIT_MOVE(name, __VA_ARGS__),) \ + M_IF(VARIANTI_ALL_INIT_MOVE(__VA_ARGS__)) \ + (VARIANTI_DEFINE_MOVE(name, __VA_ARGS__),) + +/* Define the oplist of a tuple. + USAGE: VARIANT_OPLIST(name[, oplist of the first type, ...]) */ +#define VARIANT_OPLIST(...) \ + M_IF_NARGS_EQ1(__VA_ARGS__) \ + (VARIANTI_OPLIST(__VA_ARGS__, () ), \ + VARIANTI_OPLIST(__VA_ARGS__ )) + + /********************************** INTERNAL ************************************/ #define VARIANTI_GET_FIELD(f,t,o) f @@ -336,36 +374,4 @@ M_REDUCE2(VARIANTI_TEST_METHOD_P, M_AND, INIT_MOVE, __VA_ARGS__) -/********************** External interface *************************/ -#define VARIANT_DEF2(name, ...) \ - VARIANTI_DEFINE_TYPE(name, __VA_ARGS__) \ - VARIANTI_DEFINE_INIT(name, __VA_ARGS__) \ - VARIANTI_DEFINE_CLEAR(name, __VA_ARGS__) \ - VARIANTI_DEFINE_INIT_SET(name, __VA_ARGS__) \ - VARIANTI_DEFINE_SET(name, __VA_ARGS__) \ - VARIANTI_DEFINE_TEST_P(name, __VA_ARGS__) \ - VARIANTI_DEFINE_SETTER(name, __VA_ARGS__) \ - VARIANTI_DEFINE_GETTER(name, __VA_ARGS__) \ - M_IF(VARIANTI_ALL_HASH(__VA_ARGS__)) \ - (VARIANTI_DEFINE_HASH(name, __VA_ARGS__),) \ - M_IF(VARIANTI_ALL_EQUAL(__VA_ARGS__)) \ - (VARIANTI_DEFINE_EQUAL(name, __VA_ARGS__),) \ - M_IF(VARIANTI_ALL_GET_STR(__VA_ARGS__)) \ - (VARIANTI_DEFINE_GET_STR(name, __VA_ARGS__),) \ - M_IF(VARIANTI_ALL_OUT_STR(__VA_ARGS__)) \ - (VARIANTI_DEFINE_OUT_STR(name, __VA_ARGS__),) \ - M_IF(VARIANTI_ALL_IN_STR(__VA_ARGS__)) \ - (VARIANTI_DEFINE_IN_STR(name, __VA_ARGS__),) \ - M_IF(VARIANTI_ALL_INIT_MOVE(__VA_ARGS__)) \ - (VARIANTI_DEFINE_INIT_MOVE(name, __VA_ARGS__),) \ - M_IF(VARIANTI_ALL_INIT_MOVE(__VA_ARGS__)) \ - (VARIANTI_DEFINE_MOVE(name, __VA_ARGS__),) - -/* Define the oplist of a tuple. - VARIANT_OPLIST(name[, oplist of the first type, ...]) */ -#define VARIANT_OPLIST(...) \ - M_IF_NARGS_EQ1(__VA_ARGS__) \ - (VARIANTI_OPLIST(__VA_ARGS__, () ), \ - VARIANTI_OPLIST(__VA_ARGS__ )) - #endif