aboutsummaryrefslogtreecommitdiff
path: root/lib/syntax/t.ml
blob: ade5e11f0c76bc553807d1f84c64b0e6b03f08e2 (plain)
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
(**
    This module contains the basic operators used in the QSP syntax.
 *)

type 'a literal = Text of string | Expression of 'a list

type boperator =
  | Eq
  | Neq
  | Plus
  | Minus
  | Product
  | Div
  | Gt
  | Lt
  | Gte
  | Lte
  | And
  | Or
  | Mod
[@@deriving eq, show]

and uoperator = No | Neg | Add [@@deriving eq, show]

and assignation_operator = Eq' | Inc  (** += *) | Decr  (** -= *) | Mult
[@@deriving eq, show]

type function_ =
  | Arrcomp
  | Arrpos
  | Arrsize
  | Countobj
  | Desc
  | Desc'
  | Dyneval
  | Dyneval'
  | Func
  | Func'
  | Getobj
  | Getobj'
  | Iif
  | Iif'
  | Input
  | Input'
  | Instr
  | Isnum
  | Isplay
  | Lcase
  | Lcase'
  | Len
  | Loc
  | Max
  | Max'
  | Mid
  | Mid'
  | Min
  | Min'
  | Msecscount
  | Qspver
  | Qspver'
  | Rand
  | Replace
  | Replace'
  | Rgb
  | Rnd
  | Selact
  | Stattxt
  | Stattxt'
  | Str
  | Str'
  | Strcomp
  | Strfind
  | Strfind'
  | Strpos
  | Trim
  | Trim'
  | Ucase
  | Ucase'
  | Val
[@@deriving eq, show]

type keywords =
  | IncLib
  | Addobj
  | Cla
  | Clear
  | Clear'
  | Close
  | CloseAll
  | Cls
  | CmdClear
  | CopyArr
  | DelAct
  | FreeLib
  | DelObj
  | Dynamic
  | Exec
  | Exit
  | Gosub
  | Goto
  | Jump
  | KillAll
  | KillObj
  | KillVar
  | MainTxt
  | MainTxt'
  | Menu
  | Msg
  | Nl
  | Nl'
  | P
  | P'
  | Pl
  | Pl'
  | Play
  | OpenGame
  | OpenQst
  | RefInt
  | SaveGame
  | SetTimer
  | ShowActs
  | ShowInput
  | ShowObjs
  | ShowStat
  | Unselect
  | View
  | Wait
  | XGoto
[@@deriving eq, show]