Derive-C
Loading...
Searching...
No Matches
for.h File Reference

Go to the source code of this file.

Macros

#define FOR_INNER(TYPE, INSTANCE, ITER, ITEM, ITER_TYPE, ITER_GET)
#define FOR(TYPE, INSTANCE, ITER, ITEM)
#define FOR_CONST(TYPE, INSTANCE, ITER, ITEM)

Macro Definition Documentation

◆ FOR

#define FOR ( TYPE,
INSTANCE,
ITER,
ITEM )
Value:
FOR_INNER(TYPE, INSTANCE, ITER, ITEM, iter, get_iter)
#define ITEM
Definition template.h:63
static ITER get_iter(SELF *self)
Definition template.h:370
#define ITER
Definition template.h:320
#define FOR_INNER(TYPE, INSTANCE, ITER, ITEM, ITER_TYPE, ITER_GET)
Definition for.h:4
Examples
complex/employees.c, and container/arena/basic.c.

Definition at line 9 of file for.h.

◆ FOR_CONST

#define FOR_CONST ( TYPE,
INSTANCE,
ITER,
ITEM )
Value:
FOR_INNER(TYPE, INSTANCE, ITER, ITEM, iter_const, get_iter_const)
static ITER_CONST get_iter_const(SELF const *self)
Definition template.h:449
Examples
container/map/decomposed.c.

Definition at line 10 of file for.h.

10#define FOR_CONST(TYPE, INSTANCE, ITER, ITEM) \
11 FOR_INNER(TYPE, INSTANCE, ITER, ITEM, iter_const, get_iter_const)

◆ FOR_INNER

#define FOR_INNER ( TYPE,
INSTANCE,
ITER,
ITEM,
ITER_TYPE,
ITER_GET )
Value:
NS(TYPE, ITER_TYPE) ITER = NS(TYPE, ITER_GET)(INSTANCE); \
for (NS(NS(TYPE, ITER_TYPE), item) ITEM = NS(NS(TYPE, ITER_TYPE), next)(&ITER); \
!NS(NS(TYPE, ITER_TYPE), empty_item)(&ITEM); ITEM = NS(NS(TYPE, ITER_TYPE), next)(&ITER))
static IV_PAIR next(ITER *iter)
Definition template.h:352
static bool empty_item(IV_PAIR const *item)
Definition template.h:344
IV_PAIR item
Definition template.h:283
#define NS(pre, post)
Definition namespace.h:4

Definition at line 4 of file for.h.

4#define FOR_INNER(TYPE, INSTANCE, ITER, ITEM, ITER_TYPE, ITER_GET) \
5 NS(TYPE, ITER_TYPE) ITER = NS(TYPE, ITER_GET)(INSTANCE); \
6 for (NS(NS(TYPE, ITER_TYPE), item) ITEM = NS(NS(TYPE, ITER_TYPE), next)(&ITER); \
7 !NS(NS(TYPE, ITER_TYPE), empty_item)(&ITEM); ITEM = NS(NS(TYPE, ITER_TYPE), next)(&ITER))