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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
type token =
| YEAR
| XOR
| WITH_V
| WITH
| WILDCARD
| WE_HAVE
| VARIES
| UNDER_CONDITION
| UIDENT of (string)
| TRUE
| THEN
| THAT
| TEXT
| SUM
| SUCH
| STRUCT
| STATE
| SEMICOLON
| SCOPE
| RULE
| RPAREN
| RBRACKET
| RBRACE
| PLUSPLUS
| PLUS of (Ast.op_kind)
| PERCENT
| OUTPUT
| OR
| OF
| NOT_EQUAL
| NOT
| MULT of (Ast.op_kind)
| MONTH
| MONEY_AMOUNT of (string * string)
| MONEY
| MODULE_USE
| MODULE_EXTERNAL
| MODULE_DEF
| MODULE_ALIAS
| MINUS of (Ast.op_kind)
| MINIMUM
| MAXIMUM
| MATCH
| LPAREN
| LIST_EMPTY
| LIST
| LIDENT of (string)
| LET
| LESSER_EQUAL of (Ast.op_kind)
| LESSER of (Ast.op_kind)
| LBRACKET
| LBRACE
| LAW_TEXT of (string)
| LAW_INCLUDE
| LAW_HEADING of (string * string option * bool * int)
| LABEL
| IS
| INT_LITERAL of (string)
| INTERNAL
| INTEGER
| INPUT
| INCREASING
| IN
| IF
| GREATER_EQUAL of (Ast.op_kind)
| GREATER of (Ast.op_kind)
| FOR
| FIXED
| FILLED
| FALSE
| EXISTS
| EXCEPTION
| EQUAL
| EOF
| ENUM
| END_DIRECTIVE
| END_CODE of (string)
| ELSE
| DURATION
| DOT
| DIV of (Ast.op_kind)
| DIRECTIVE_ARG of (string)
| DEPENDS
| DEFINITION
| DEFINED_AS
| DECREASING
| DECLARATION
| DECIMAL_LITERAL of (string * string)
| DECIMAL
| DAY
| DATE_LITERAL of (int * int * int)
| DATE
| DATA
| CONTEXT
| CONTENT
| CONTAINS
| CONSEQUENCE
| CONDITION
| COMMA
| COLON
| CARDINAL
| BY
| BUT_REPLACE
| BOOLEAN
| BEGIN_METADATA
| BEGIN_DIRECTIVE
| BEGIN_CODE
| AT_PAGE of (int)
| ASSERTION
| AND
| AMONG
| ALT
| ALL