eĿlipsis
a language independent preprocessor
 
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Loading...
Searching...
No Matches
ellipsis-interface.h
Go to the documentation of this file.
1# unit ¤¤
2
3#ifdef DOXYGEN_SPECIAL
4
5#define EXBINDING(NAME)
6#define INBINDING(NAME)
7#define ellipsis_precondition(COND [, MESSAGE])
8#define ellipsis_postcondition(COND [,MESSAGE})
9#define ellipsis_invariant(COND [, MESSAGE])
10
11#else
12#bind ellipsis_invariant(...) ellipsis_postcondition(__VA_ARGS__); ellipsis_precondition(__VA_ARGS__)
13
14#bind EXBINDING(X) X
15#bind INBINDING(X) X∷⸤_Insta⸥
16#bind ellipsis_precondition(...) do { ellipsis_contracts_assert(__VA_ARGS__); } while (false)
17#bind ellipsis_postcondition(...) defer { ellipsis_contracts_assume(__VA_ARGS__); }
18
19#expand include_source __EXPAND_STRINGIFY__(HEADERFILE-interface.h)
20
21#undef EXBINDING
22#undef INBINDING
23#undef ellipsis_precondition
24#undef ellipsis_postcondition
25
26#define EXBINDING(X) X∷⸤_Ctra⸥
27#define INBINDING(X) X∷⸤_Inner⸥
28#bind ellipsis_precondition(...) do { ellipsis_contracts_assume(__VA_ARGS__); } while (false)
29#bind ellipsis_postcondition(...) defer { ellipsis_contracts_assert(__VA_ARGS__); }
30
31#expand include_source __EXPAND_STRINGIFY__(HEADERFILE-interface.h)
32
33#endif