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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
open Tokens
module T = Qsp_syntax.T
let keyword_table = Hashtbl.create 53
let _ =
List.iter
(fun (kwd, tok) -> Hashtbl.add keyword_table kwd tok)
[
("ACT", ACT);
("ADDLIB", KEYWORD T.IncLib);
("ADDOBJ", KEYWORD T.Addobj);
("ADD OBJ", KEYWORD T.Addobj);
("ADDQST", KEYWORD T.IncLib);
("AND", AND);
("ARRCOMP", FUNCTION T.Arrcomp);
("ARRPOS", FUNCTION T.Arrpos);
("ARRSIZE", FUNCTION T.Arrsize)
(*
; "BACKIMAGE", KEYWORD "BACKIMAGE"
; "$BACKIMAGE", KEYWORD "BACKIMAGE"
; "BCOLOR", KEYWORD "BCOLOR" *);
("CLA", KEYWORD T.Cla);
("CLEAR", KEYWORD T.Clear);
("*CLEAR", KEYWORD T.Clear');
("CLOSE", KEYWORD T.Close);
("CLOSE ALL", KEYWORD T.CloseAll);
("CLR", KEYWORD T.Clear);
("*CLR", KEYWORD T.Clear');
("CLS", KEYWORD T.Cls);
("CMDCLEAR", KEYWORD T.CmdClear);
("CMDCLR", KEYWORD T.CmdClear);
("COPYARR", KEYWORD T.CopyArr);
("COUNTOBJ", FUNCTION T.Countobj);
("CURACTS", IDENT "CURACTS");
("$CURACTS", IDENT "$CURACTS");
("CURLOC", IDENT "CURLOC");
("$CURLOC", IDENT "$CURLOC")
(*
; "DEBUG", KEYWORD "DEBUG"
*);
("DELACT", KEYWORD T.DelAct);
("DEL ACT", KEYWORD T.DelAct);
("DELLIB", KEYWORD T.FreeLib);
("DELOBJ", KEYWORD T.DelObj);
("DEL OBJ", KEYWORD T.DelObj);
("DESC", FUNCTION T.Desc);
("$DESC", FUNCTION T.Desc')
(*
; "DISABLESCROLL", KEYWORD "DISABLESCROLL"
; "DISABLESUBEX", KEYWORD "DISABLESUBEX"
*);
("DYNAMIC", KEYWORD T.Dynamic);
("DYNEVAL", FUNCTION T.Dyneval);
("$DYNEVAL", FUNCTION T.Dyneval');
("ELSE", ELSE);
("ELSEIF", ELIF);
("END", END);
("EXEC", KEYWORD T.Exec);
("EXIT", KEYWORD T.Exit)
(*
; "FCOLOR", KEYWORD "FCOLOR"
; "$FNAME", KEYWORD "$FNAME"
*);
("FREELIB", KEYWORD T.FreeLib)
(*
; "FSIZE", KEYWORD "FSIZE"
*);
("FUNC", FUNCTION T.Func);
("$FUNC", FUNCTION T.Func');
("GETOBJ", FUNCTION T.Getobj);
("$GETOBJ", FUNCTION T.Getobj');
("GOSUB", KEYWORD T.Gosub);
("GOTO", KEYWORD T.Goto) (*
; "GC", KEYWORD "GC"
*);
("GS", KEYWORD T.Gosub);
("GT", KEYWORD T.Goto);
("IF", IF);
("IIF", FUNCTION T.Iif);
("$IIF", FUNCTION T.Iif');
("INCLIB", KEYWORD T.IncLib);
("INPUT", FUNCTION T.Input);
("$INPUT", FUNCTION T.Input');
("INSTR", FUNCTION T.Instr);
("ISNUM", FUNCTION T.Isnum);
("ISPLAY", FUNCTION T.Isplay);
("JUMP", KEYWORD T.Jump);
("KILLALL", KEYWORD T.KillAll);
("KILLOBJ", KEYWORD T.KillObj);
("KILLQST", KEYWORD T.FreeLib);
("KILLVAR", KEYWORD T.KillVar);
("LCASE", FUNCTION T.Lcase);
("$LCASE", FUNCTION T.Lcase')
(*
; "LCOLOR", KEYWORD "LCOLOR"
*);
("LEN", FUNCTION T.Len);
("LET", LET);
("LOC", FUNCTION T.Loc);
("MAINTXT", IDENT "MAINTXT");
("$MAINTXT", IDENT "$MAINTXT");
("MAX", FUNCTION T.Max);
("$MAX", FUNCTION T.Max');
("MENU", KEYWORD T.Menu);
("MID", FUNCTION T.Mid);
("$MID", FUNCTION T.Mid');
("MIN", FUNCTION T.Min);
("$MIN", FUNCTION T.Min');
("MOD", MOD);
("MSECSCOUNT", FUNCTION T.Msecscount);
("MSG", KEYWORD T.Msg);
("NL", KEYWORD T.Nl);
("*NL", KEYWORD T.Nl');
("NO", NO) (*
; "NOSAVE", KEYWORD "NOSAVE"
*);
("OBJ", OBJ);
("$ONACTSEL", IDENT "$ONACTSEL");
("$ONGLOAD", IDENT "$ONGLOAD");
("$ONGSAVE", IDENT "$ONGSAVE");
("$ONNEWLOC", IDENT "$ONNEWLOC");
("$ONOBJADD", IDENT "$ONOBJADD");
("$ONOBJDEL", IDENT "$ONOBJDEL");
("$ONOBJSEL", IDENT "$ONOBJSEL");
("OPENGAME", KEYWORD T.OpenGame);
("OPENQST", KEYWORD T.OpenQst);
("OR", OR);
("P", KEYWORD T.P);
("*P", KEYWORD T.P');
("PL", KEYWORD T.Pl);
("*PL", KEYWORD T.Pl');
("PLAY", KEYWORD T.Play);
("QSPVER", FUNCTION T.Qspver);
("$QSPVER", FUNCTION T.Qspver');
("RAND", FUNCTION T.Rand);
("REFINT", KEYWORD T.RefInt);
("REPLACE", FUNCTION T.Replace);
("$REPLACE", FUNCTION T.Replace');
("RGB", FUNCTION T.Rgb);
("RND", FUNCTION T.Rnd);
("SAVEGAME", KEYWORD T.SaveGame);
("SELACT", FUNCTION T.Selact);
("$SELACT", IDENT "$SELACT");
("SELOBJ", IDENT "SELOBJ");
("$SELOBJ", IDENT "$SELOBJ");
("SET", SET);
("SETTIMER", KEYWORD T.SetTimer);
("SHOWACTS", KEYWORD T.ShowActs);
("SHOWINPUT", KEYWORD T.ShowInput);
("SHOWOBJS", KEYWORD T.ShowObjs);
("SHOWSTAT", KEYWORD T.ShowStat);
("STATTXT", FUNCTION T.Stattxt);
("$STATTXT", FUNCTION T.Stattxt');
("STR", FUNCTION T.Str);
("$STR", FUNCTION T.Str');
("STRCOMP", FUNCTION T.Strcomp);
("STRFIND", FUNCTION T.Strfind);
("$STRFIND", FUNCTION T.Strfind');
("STRPOS", FUNCTION T.Strpos);
("TRIM", FUNCTION T.Trim);
("$TRIM", FUNCTION T.Trim');
("UCASE", FUNCTION T.Ucase);
("$UCASE", FUNCTION T.Ucase');
("UNSEL", KEYWORD T.Unselect);
("UNSELECT", KEYWORD T.Unselect);
("USEHTML", IDENT "USEHTML");
("USERCOM", IDENT "USERCOM");
("$USERCOM", IDENT "$USERCOM");
("USER_TEXT", IDENT "USER_TEXT");
("$USER_TEXT", IDENT "USER_TEXT");
("USRTXT", IDENT "USER_TEXT");
("$USRTXT", IDENT "USER_TEXT");
("VAL", FUNCTION T.Val);
("VIEW", KEYWORD T.View);
("WAIT", KEYWORD T.Wait);
("XGOTO", KEYWORD T.XGoto);
("XGT", KEYWORD T.XGoto);
]
|