1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | function basic(hljs) {
|
10 | const KEYWORDS = [
|
11 | "ABS",
|
12 | "ASC",
|
13 | "AND",
|
14 | "ATN",
|
15 | "AUTO|0",
|
16 | "BEEP",
|
17 | "BLOAD|10",
|
18 | "BSAVE|10",
|
19 | "CALL",
|
20 | "CALLS",
|
21 | "CDBL",
|
22 | "CHAIN",
|
23 | "CHDIR",
|
24 | "CHR$|10",
|
25 | "CINT",
|
26 | "CIRCLE",
|
27 | "CLEAR",
|
28 | "CLOSE",
|
29 | "CLS",
|
30 | "COLOR",
|
31 | "COM",
|
32 | "COMMON",
|
33 | "CONT",
|
34 | "COS",
|
35 | "CSNG",
|
36 | "CSRLIN",
|
37 | "CVD",
|
38 | "CVI",
|
39 | "CVS",
|
40 | "DATA",
|
41 | "DATE$",
|
42 | "DEFDBL",
|
43 | "DEFINT",
|
44 | "DEFSNG",
|
45 | "DEFSTR",
|
46 | "DEF|0",
|
47 | "SEG",
|
48 | "USR",
|
49 | "DELETE",
|
50 | "DIM",
|
51 | "DRAW",
|
52 | "EDIT",
|
53 | "END",
|
54 | "ENVIRON",
|
55 | "ENVIRON$",
|
56 | "EOF",
|
57 | "EQV",
|
58 | "ERASE",
|
59 | "ERDEV",
|
60 | "ERDEV$",
|
61 | "ERL",
|
62 | "ERR",
|
63 | "ERROR",
|
64 | "EXP",
|
65 | "FIELD",
|
66 | "FILES",
|
67 | "FIX",
|
68 | "FOR|0",
|
69 | "FRE",
|
70 | "GET",
|
71 | "GOSUB|10",
|
72 | "GOTO",
|
73 | "HEX$",
|
74 | "IF",
|
75 | "THEN",
|
76 | "ELSE|0",
|
77 | "INKEY$",
|
78 | "INP",
|
79 | "INPUT",
|
80 | "INPUT#",
|
81 | "INPUT$",
|
82 | "INSTR",
|
83 | "IMP",
|
84 | "INT",
|
85 | "IOCTL",
|
86 | "IOCTL$",
|
87 | "KEY",
|
88 | "ON",
|
89 | "OFF",
|
90 | "LIST",
|
91 | "KILL",
|
92 | "LEFT$",
|
93 | "LEN",
|
94 | "LET",
|
95 | "LINE",
|
96 | "LLIST",
|
97 | "LOAD",
|
98 | "LOC",
|
99 | "LOCATE",
|
100 | "LOF",
|
101 | "LOG",
|
102 | "LPRINT",
|
103 | "USING",
|
104 | "LSET",
|
105 | "MERGE",
|
106 | "MID$",
|
107 | "MKDIR",
|
108 | "MKD$",
|
109 | "MKI$",
|
110 | "MKS$",
|
111 | "MOD",
|
112 | "NAME",
|
113 | "NEW",
|
114 | "NEXT",
|
115 | "NOISE",
|
116 | "NOT",
|
117 | "OCT$",
|
118 | "ON",
|
119 | "OR",
|
120 | "PEN",
|
121 | "PLAY",
|
122 | "STRIG",
|
123 | "OPEN",
|
124 | "OPTION",
|
125 | "BASE",
|
126 | "OUT",
|
127 | "PAINT",
|
128 | "PALETTE",
|
129 | "PCOPY",
|
130 | "PEEK",
|
131 | "PMAP",
|
132 | "POINT",
|
133 | "POKE",
|
134 | "POS",
|
135 | "PRINT",
|
136 | "PRINT]",
|
137 | "PSET",
|
138 | "PRESET",
|
139 | "PUT",
|
140 | "RANDOMIZE",
|
141 | "READ",
|
142 | "REM",
|
143 | "RENUM",
|
144 | "RESET|0",
|
145 | "RESTORE",
|
146 | "RESUME",
|
147 | "RETURN|0",
|
148 | "RIGHT$",
|
149 | "RMDIR",
|
150 | "RND",
|
151 | "RSET",
|
152 | "RUN",
|
153 | "SAVE",
|
154 | "SCREEN",
|
155 | "SGN",
|
156 | "SHELL",
|
157 | "SIN",
|
158 | "SOUND",
|
159 | "SPACE$",
|
160 | "SPC",
|
161 | "SQR",
|
162 | "STEP",
|
163 | "STICK",
|
164 | "STOP",
|
165 | "STR$",
|
166 | "STRING$",
|
167 | "SWAP",
|
168 | "SYSTEM",
|
169 | "TAB",
|
170 | "TAN",
|
171 | "TIME$",
|
172 | "TIMER",
|
173 | "TROFF",
|
174 | "TRON",
|
175 | "TO",
|
176 | "USR",
|
177 | "VAL",
|
178 | "VARPTR",
|
179 | "VARPTR$",
|
180 | "VIEW",
|
181 | "WAIT",
|
182 | "WHILE",
|
183 | "WEND",
|
184 | "WIDTH",
|
185 | "WINDOW",
|
186 | "WRITE",
|
187 | "XOR"
|
188 | ];
|
189 |
|
190 | return {
|
191 | name: 'BASIC',
|
192 | case_insensitive: true,
|
193 | illegal: '^\.',
|
194 |
|
195 | keywords: {
|
196 | $pattern: '[a-zA-Z][a-zA-Z0-9_$%!#]*',
|
197 | keyword: KEYWORDS
|
198 | },
|
199 | contains: [
|
200 | hljs.QUOTE_STRING_MODE,
|
201 | hljs.COMMENT('REM', '$', {
|
202 | relevance: 10
|
203 | }),
|
204 | hljs.COMMENT('\'', '$', {
|
205 | relevance: 0
|
206 | }),
|
207 | {
|
208 |
|
209 | className: 'symbol',
|
210 | begin: '^[0-9]+ ',
|
211 | relevance: 10
|
212 | },
|
213 | {
|
214 |
|
215 | className: 'number',
|
216 | begin: '\\b\\d+(\\.\\d+)?([edED]\\d+)?[#\!]?',
|
217 | relevance: 0
|
218 | },
|
219 | {
|
220 |
|
221 | className: 'number',
|
222 | begin: '(&[hH][0-9a-fA-F]{1,4})'
|
223 | },
|
224 | {
|
225 |
|
226 | className: 'number',
|
227 | begin: '(&[oO][0-7]{1,6})'
|
228 | }
|
229 | ]
|
230 | };
|
231 | }
|
232 |
|
233 | export { basic as default };
|