1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
type bop =
| Add
| Sub
| Mult
| Div
| Eq
| Neq
| Lt
| Gt
| Le
| Ge
| And
| Or
| BAnd
| BOr
| BXor
| BShl
| BShr
type uop =
| Not
| BNot
type test =
| Int of Int64.t
| Ident of string
| Defined of string
| BinOp of test * bop * test
| UnOp of uop * test
type term =
| String of string
| Text of string
| Include of int * bool * string
| Define of string * string
| Undef of string
| IfDef of string * int * term list * int * term list * int
| IfNDef of string * int * term list * int * term list * int
| If of test * int * term list * int * term list * int