Add support for global oplist.

Global oplists are global macro defined as M_OPL_##type

Add support of global oplist for macro M_EACH & M_LET.
Partial fix #9
This commit is contained in:
Patrick Pelissier committed 2017-09-10 10:04:39 +02:00
1 parent fc7b1516e2
commit d7c4ca1de5
3 files changed
+71 -21

No files matched your search

+7 -1
View File
@@ -230,17 +230,23 @@ static void test_oplist(void)
assert (M_OPLIST_P(()));
assert (M_OPLIST_P((INIT(init))));
assert (M_OPLIST_P((INIT(init),CLEAR(clear))));
assert (M_OPLIST_P((INIT(init),CLEAR(clear),)));
assert (!M_OPLIST_P());
assert (!M_OPLIST_P((())));
assert (!M_OPLIST_P(INIT(init)));
assert (!M_OPLIST_P((INIT(init)) a));
assert (!M_OPLIST_P(f(INIT(init)) a));
assert (!M_OPLIST_P(func(INIT(init)) a));
assert (!M_OPLIST_P(func(INIT(init),) a));
#define a (INIT(0), CLEAR(clear))
assert (M_TEST_DISABLED_METHOD_P(INIT, a));
assert (!M_TEST_DISABLED_METHOD_P(INIT2, a));
assert (!M_TEST_DISABLED_METHOD_P(CLEAR, a));
assert (!M_TEST_DISABLED_METHOD_P(INIT, ()));
#define M_OPL_op() (INIT(1), CLEAR(0))
assert(M_GET_INIT M_GLOBAL_OPLIST(op));
assert(!M_GET_INIT M_GLOBAL_OPLIST(a));
}
static void test_cast(void)