Xonotic
p99.qh File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define P00__IF_CLAUSE(A, B, C, ...)   C
 
#define P00_ARG( _01, _02, _03, _04, _05, _06, _07, _08, _09, _10, _11, _12, _13, _14, _15, _16, _00, ...)   _00
 
#define P00_CLAUSE1(...)   __VA_ARGS__ P00_IGNORE
 
#define P00_CLAUSE2(...)   P00_IDENT
 
#define P00_IDENT(...)   __VA_ARGS__
 
#define P00_IF_CLAUSE(EXP)   P00__IF_CLAUSE(EXP, P00_CLAUSE1, P00_CLAUSE2, ~)
 
#define P00_IGNORE(...)
 
#define P00_IS_0_EQ_0(...)   ,
 
#define P00_IS_1_EQ_1(...)   ,
 
#define P00_IS__EQ__(...)   ,
 
#define P00_IS_EMPTY_CASE_0000   P00_IS_EMPTY_CASE_0000
 
#define P00_IS_EMPTY_CASE_0001   ,
 
#define P00_IS_EMPTY_CASE_0010   P00_IS_EMPTY_CASE_0010
 
#define P00_IS_EMPTY_CASE_0011   P00_IS_EMPTY_CASE_0011
 
#define P00_IS_EMPTY_CASE_0100   P00_IS_EMPTY_CASE_0100
 
#define P00_IS_EMPTY_CASE_0101   P00_IS_EMPTY_CASE_0101
 
#define P00_IS_EMPTY_CASE_0110   P00_IS_EMPTY_CASE_0110
 
#define P00_IS_EMPTY_CASE_0111   P00_IS_EMPTY_CASE_0111
 
#define P00_IS_EMPTY_CASE_1000   P00_IS_EMPTY_CASE_1000
 
#define P00_IS_EMPTY_CASE_1001   P00_IS_EMPTY_CASE_1001
 
#define P00_IS_EMPTY_CASE_1010   P00_IS_EMPTY_CASE_1010
 
#define P00_IS_EMPTY_CASE_1011   P00_IS_EMPTY_CASE_1011
 
#define P00_IS_EMPTY_CASE_1100   P00_IS_EMPTY_CASE_1100
 
#define P00_IS_EMPTY_CASE_1101   P00_IS_EMPTY_CASE_1101
 
#define P00_IS_EMPTY_CASE_1110   P00_IS_EMPTY_CASE_1110
 
#define P00_IS_EMPTY_CASE_1111   P00_IS_EMPTY_CASE_1111
 
#define P00_ISEMPTY(_1, _2, _3, _4)   P99_HAS_COMMA(P99_PASTE5(P00_IS_EMPTY_CASE_, _1, _2, _3, _4))
 
#define P00_NARG(...)
 
#define P99_CAT2(_1, _2)   _1 ## _2
 
#define P99_HAS_COMMA(...)
 
#define P99_IF_EMPTY(...)   P99_IF_EQ(1, P99_IS_EMPTY(__VA_ARGS__))
 
#define P99_IF_EQ(A, B)   P00_IF_CLAUSE(P99_PASTE4(P00_IS_, A, _EQ_, B)())
 
#define P99_IS_EMPTY(...)
 
#define P99_MAX_NUMBER   16
 
#define P99_PASTE2(_1, _2)   P99_CAT2(_1, _2)
 
#define P99_PASTE3(_1, _2, _3)   P99_PASTE2(P99_PASTE2(_1, _2), _3)
 
#define P99_PASTE4(_1, _2, _3, _4)   P99_PASTE2(P99_PASTE3(_1, _2, _3), _4)
 
#define P99_PASTE5(_1, _2, _3, _4, _5)   P99_PASTE2(P99_PASTE4(_1, _2, _3, _4), _5)
 

Macro Definition Documentation

◆ P00__IF_CLAUSE

#define P00__IF_CLAUSE (   A,
  B,
  C,
  ... 
)    C

Definition at line 64 of file p99.qh.

◆ P00_ARG

#define P00_ARG (   _01,
  _02,
  _03,
  _04,
  _05,
  _06,
  _07,
  _08,
  _09,
  _10,
  _11,
  _12,
  _13,
  _14,
  _15,
  _16,
  _00,
  ... 
)    _00

Definition at line 18 of file p99.qh.

◆ P00_CLAUSE1

#define P00_CLAUSE1 (   ...)    __VA_ARGS__ P00_IGNORE

Definition at line 65 of file p99.qh.

◆ P00_CLAUSE2

#define P00_CLAUSE2 (   ...)    P00_IDENT

Definition at line 67 of file p99.qh.

◆ P00_IDENT

#define P00_IDENT (   ...)    __VA_ARGS__

Definition at line 68 of file p99.qh.

◆ P00_IF_CLAUSE

#define P00_IF_CLAUSE (   EXP)    P00__IF_CLAUSE(EXP, P00_CLAUSE1, P00_CLAUSE2, ~)

Definition at line 63 of file p99.qh.

◆ P00_IGNORE

#define P00_IGNORE (   ...)

Definition at line 66 of file p99.qh.

◆ P00_IS_0_EQ_0

#define P00_IS_0_EQ_0 (   ...)    ,

Definition at line 72 of file p99.qh.

◆ P00_IS_1_EQ_1

#define P00_IS_1_EQ_1 (   ...)    ,

Definition at line 73 of file p99.qh.

◆ P00_IS__EQ__

#define P00_IS__EQ__ (   ...)    ,

Definition at line 43 of file p99.qh.

◆ P00_IS_EMPTY_CASE_0000

#define P00_IS_EMPTY_CASE_0000   P00_IS_EMPTY_CASE_0000

Definition at line 45 of file p99.qh.

◆ P00_IS_EMPTY_CASE_0001

#define P00_IS_EMPTY_CASE_0001   ,

Definition at line 46 of file p99.qh.

◆ P00_IS_EMPTY_CASE_0010

#define P00_IS_EMPTY_CASE_0010   P00_IS_EMPTY_CASE_0010

Definition at line 47 of file p99.qh.

◆ P00_IS_EMPTY_CASE_0011

#define P00_IS_EMPTY_CASE_0011   P00_IS_EMPTY_CASE_0011

Definition at line 48 of file p99.qh.

◆ P00_IS_EMPTY_CASE_0100

#define P00_IS_EMPTY_CASE_0100   P00_IS_EMPTY_CASE_0100

Definition at line 49 of file p99.qh.

◆ P00_IS_EMPTY_CASE_0101

#define P00_IS_EMPTY_CASE_0101   P00_IS_EMPTY_CASE_0101

Definition at line 50 of file p99.qh.

◆ P00_IS_EMPTY_CASE_0110

#define P00_IS_EMPTY_CASE_0110   P00_IS_EMPTY_CASE_0110

Definition at line 51 of file p99.qh.

◆ P00_IS_EMPTY_CASE_0111

#define P00_IS_EMPTY_CASE_0111   P00_IS_EMPTY_CASE_0111

Definition at line 52 of file p99.qh.

◆ P00_IS_EMPTY_CASE_1000

#define P00_IS_EMPTY_CASE_1000   P00_IS_EMPTY_CASE_1000

Definition at line 53 of file p99.qh.

◆ P00_IS_EMPTY_CASE_1001

#define P00_IS_EMPTY_CASE_1001   P00_IS_EMPTY_CASE_1001

Definition at line 54 of file p99.qh.

◆ P00_IS_EMPTY_CASE_1010

#define P00_IS_EMPTY_CASE_1010   P00_IS_EMPTY_CASE_1010

Definition at line 55 of file p99.qh.

◆ P00_IS_EMPTY_CASE_1011

#define P00_IS_EMPTY_CASE_1011   P00_IS_EMPTY_CASE_1011

Definition at line 56 of file p99.qh.

◆ P00_IS_EMPTY_CASE_1100

#define P00_IS_EMPTY_CASE_1100   P00_IS_EMPTY_CASE_1100

Definition at line 57 of file p99.qh.

◆ P00_IS_EMPTY_CASE_1101

#define P00_IS_EMPTY_CASE_1101   P00_IS_EMPTY_CASE_1101

Definition at line 58 of file p99.qh.

◆ P00_IS_EMPTY_CASE_1110

#define P00_IS_EMPTY_CASE_1110   P00_IS_EMPTY_CASE_1110

Definition at line 59 of file p99.qh.

◆ P00_IS_EMPTY_CASE_1111

#define P00_IS_EMPTY_CASE_1111   P00_IS_EMPTY_CASE_1111

Definition at line 60 of file p99.qh.

◆ P00_ISEMPTY

#define P00_ISEMPTY (   _1,
  _2,
  _3,
  _4 
)    P99_HAS_COMMA(P99_PASTE5(P00_IS_EMPTY_CASE_, _1, _2, _3, _4))

Definition at line 44 of file p99.qh.

◆ P00_NARG

#define P00_NARG (   ...)
Value:
P00_ARG(__VA_ARGS__, \
16, 15, 14, 13, 12, 11, 10, 9, \
8, 7, 6, 5, 4, 3, 2, 1, \
0, )
#define P00_ARG( _01, _02, _03, _04, _05, _06, _07, _08, _09, _10, _11, _12, _13, _14, _15, _16, _00,...)
Definition: p99.qh:18

Definition at line 22 of file p99.qh.

◆ P99_CAT2

#define P99_CAT2 (   _1,
  _2 
)    _1 ## _2

Definition at line 76 of file p99.qh.

◆ P99_HAS_COMMA

#define P99_HAS_COMMA (   ...)
Value:
P00_ARG(__VA_ARGS__, \
1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1, 1, 1, 0, \
0)
#define P00_ARG( _01, _02, _03, _04, _05, _06, _07, _08, _09, _10, _11, _12, _13, _14, _15, _16, _00,...)
Definition: p99.qh:18

Definition at line 26 of file p99.qh.

◆ P99_IF_EMPTY

#define P99_IF_EMPTY (   ...)    P99_IF_EQ(1, P99_IS_EMPTY(__VA_ARGS__))

Definition at line 31 of file p99.qh.

◆ P99_IF_EQ

#define P99_IF_EQ (   A,
 
)    P00_IF_CLAUSE(P99_PASTE4(P00_IS_, A, _EQ_, B)())

Definition at line 71 of file p99.qh.

◆ P99_IS_EMPTY

#define P99_IS_EMPTY (   ...)
Value:
P99_HAS_COMMA(__VA_ARGS__), \
P99_HAS_COMMA(P00_IS__EQ__ __VA_ARGS__), \
P99_HAS_COMMA(__VA_ARGS__ (/*empty*/)), \
P99_HAS_COMMA(P00_IS__EQ__ __VA_ARGS__ (/*empty*/)) \
)
#define P99_HAS_COMMA(...)
Definition: p99.qh:26
#define P00_ISEMPTY(_1, _2, _3, _4)
Definition: p99.qh:44
#define P00_IS__EQ__(...)
Definition: p99.qh:43

Definition at line 36 of file p99.qh.

◆ P99_MAX_NUMBER

#define P99_MAX_NUMBER   16

Definition at line 17 of file p99.qh.

◆ P99_PASTE2

#define P99_PASTE2 (   _1,
  _2 
)    P99_CAT2(_1, _2)

Definition at line 77 of file p99.qh.

◆ P99_PASTE3

#define P99_PASTE3 (   _1,
  _2,
  _3 
)    P99_PASTE2(P99_PASTE2(_1, _2), _3)

Definition at line 79 of file p99.qh.

◆ P99_PASTE4

#define P99_PASTE4 (   _1,
  _2,
  _3,
  _4 
)    P99_PASTE2(P99_PASTE3(_1, _2, _3), _4)

Definition at line 81 of file p99.qh.

◆ P99_PASTE5

#define P99_PASTE5 (   _1,
  _2,
  _3,
  _4,
  _5 
)    P99_PASTE2(P99_PASTE4(_1, _2, _3, _4), _5)

Definition at line 83 of file p99.qh.