github-linguist 7.3.1 → 7.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,750 @@
1
+ {
2
+ "name": "ZIL",
3
+ "scopeName": "source.zil",
4
+ "patterns": [
5
+ {
6
+ "include": "#expressions"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "argspec": {
11
+ "name": "meta.parameters.zil",
12
+ "begin": "\\(",
13
+ "end": "\\)",
14
+ "patterns": [
15
+ {
16
+ "name": "variable.parameter.local.symbol.atom.zil",
17
+ "match": "(?x)\n# optional quote\n(?:'\\s*)?\n# atom\n(?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n(?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+"
18
+ },
19
+ {
20
+ "name": "meta.binding.zil",
21
+ "begin": "(?x)\n(\\()\n\\s*\n# optional quote\n(?:'\\s*)?\n# atom\n((?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n (?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+)",
22
+ "end": "\\)",
23
+ "patterns": [
24
+ {
25
+ "include": "#expressions"
26
+ }
27
+ ],
28
+ "beginCaptures": {
29
+ "1": {
30
+ "name": "punctuation.definition.list.parameter.begin.zil"
31
+ },
32
+ "2": {
33
+ "name": "variable.parameter.local.symbol.atom.zil"
34
+ }
35
+ },
36
+ "endCaptures": {
37
+ "0": {
38
+ "name": "punctuation.definition.list.parameter.end.zil"
39
+ }
40
+ }
41
+ },
42
+ {
43
+ "name": "punctuation.separator.arguments.aux.zil keyword.separator.arguments.aux.zil",
44
+ "match": "\"(?:AUX|EXTRA)\""
45
+ },
46
+ {
47
+ "name": "punctuation.separator.arguments.opt.zil keyword.separator.arguments.opt.zil",
48
+ "match": "\"(?:OPT|OPTIONAL)\""
49
+ },
50
+ {
51
+ "name": "punctuation.separator.arguments.varargs.zil keyword.separator.arguments.varargs.zil",
52
+ "match": "\"(?:ARGS|TUPLE)\""
53
+ },
54
+ {
55
+ "name": "punctuation.separator.arguments.misc.zil keyword.separator.arguments.misc.zil",
56
+ "match": "\"(?:NAME|BIND)\""
57
+ },
58
+ {
59
+ "include": "#expressions"
60
+ }
61
+ ],
62
+ "beginCaptures": {
63
+ "0": {
64
+ "name": "punctuation.definition.list.parameters.begin.zil"
65
+ }
66
+ },
67
+ "endCaptures": {
68
+ "0": {
69
+ "name": "punctuation.definition.list.parameters.end.zil"
70
+ }
71
+ }
72
+ },
73
+ "atom": {
74
+ "name": "meta.symbol.atom.zil",
75
+ "match": "(?x)\n# atom can start with anything escaped, or any non-delimiter\n(?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n# and continue with any of the above as well as '!' and '.'\n(?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+"
76
+ },
77
+ "binary_num": {
78
+ "name": "constant.numeric.binary.zil",
79
+ "match": "(#)\\s*0*2\\s+[01]+(?![^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])",
80
+ "captures": {
81
+ "1": {
82
+ "name": "punctuation.definition.constant.numeric.binary.zil"
83
+ }
84
+ }
85
+ },
86
+ "char": {
87
+ "name": "constant.character.zil",
88
+ "match": "!\\\\."
89
+ },
90
+ "comment": {
91
+ "name": "comment.block.zil",
92
+ "begin": ";",
93
+ "end": "(?\u003c!\\G)",
94
+ "patterns": [
95
+ {
96
+ "include": "#unstyled_expressions"
97
+ }
98
+ ],
99
+ "beginCaptures": {
100
+ "0": {
101
+ "name": "punctuation.definition.comment.prefix.zil"
102
+ }
103
+ },
104
+ "applyEndPatternLast": true
105
+ },
106
+ "constants": {
107
+ "patterns": [
108
+ {
109
+ "include": "#decimal_num"
110
+ },
111
+ {
112
+ "include": "#octal_num"
113
+ },
114
+ {
115
+ "include": "#binary_num"
116
+ },
117
+ {
118
+ "include": "#string"
119
+ },
120
+ {
121
+ "include": "#char"
122
+ },
123
+ {
124
+ "include": "#else"
125
+ },
126
+ {
127
+ "include": "#false"
128
+ },
129
+ {
130
+ "include": "#true"
131
+ },
132
+ {
133
+ "include": "#atom"
134
+ }
135
+ ]
136
+ },
137
+ "decimal_num": {
138
+ "name": "constant.numeric.decimal.zil",
139
+ "match": "-?([0-9]+)(?![^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])"
140
+ },
141
+ "else": {
142
+ "name": "keyword.control.else.zil",
143
+ "match": "(?\u003c=\\()(?:ELSE|T)\\b"
144
+ },
145
+ "expressions": {
146
+ "patterns": [
147
+ {
148
+ "include": "#constants"
149
+ },
150
+ {
151
+ "include": "#structures"
152
+ },
153
+ {
154
+ "include": "#prefixes"
155
+ },
156
+ {
157
+ "include": "#invalid"
158
+ }
159
+ ]
160
+ },
161
+ "false": {
162
+ "name": "constant.language.boolean.false.zil",
163
+ "match": "\u003c\\s*\u003e"
164
+ },
165
+ "form": {
166
+ "name": "meta.structure.form.zil",
167
+ "begin": "\u003c",
168
+ "end": "!?\u003e",
169
+ "patterns": [
170
+ {
171
+ "include": "#special_form_body"
172
+ },
173
+ {
174
+ "include": "#expressions"
175
+ }
176
+ ],
177
+ "beginCaptures": {
178
+ "0": {
179
+ "name": "punctuation.definition.form.begin.zil"
180
+ }
181
+ },
182
+ "endCaptures": {
183
+ "0": {
184
+ "name": "punctuation.definition.form.end.zil"
185
+ }
186
+ }
187
+ },
188
+ "gval": {
189
+ "name": "variable.other.global.zil",
190
+ "begin": "(,)\\s*",
191
+ "end": "(?\u003c!\\G)",
192
+ "patterns": [
193
+ {
194
+ "include": "#unstyled_expressions"
195
+ }
196
+ ],
197
+ "beginCaptures": {
198
+ "1": {
199
+ "name": "punctuation.definition.variable.global.prefix.zil"
200
+ }
201
+ },
202
+ "applyEndPatternLast": true
203
+ },
204
+ "invalid": {
205
+ "patterns": [
206
+ {
207
+ "name": "invalid.illegal.zil",
208
+ "match": "!."
209
+ }
210
+ ]
211
+ },
212
+ "list": {
213
+ "name": "meta.structure.list.zil",
214
+ "begin": "!?\\(",
215
+ "end": "!?\\)",
216
+ "patterns": [
217
+ {
218
+ "include": "#expressions"
219
+ }
220
+ ],
221
+ "beginCaptures": {
222
+ "0": {
223
+ "name": "punctuation.definition.list.begin.zil"
224
+ }
225
+ },
226
+ "endCaptures": {
227
+ "0": {
228
+ "name": "punctuation.definition.list.end.zil"
229
+ }
230
+ }
231
+ },
232
+ "lval": {
233
+ "name": "variable.other.local.zil",
234
+ "begin": "(\\.)\\s*",
235
+ "end": "(?\u003c!\\G)",
236
+ "patterns": [
237
+ {
238
+ "include": "#unstyled_expressions"
239
+ }
240
+ ],
241
+ "beginCaptures": {
242
+ "1": {
243
+ "name": "punctuation.definition.variable.local.prefix.zil"
244
+ }
245
+ },
246
+ "applyEndPatternLast": true
247
+ },
248
+ "macro": {
249
+ "name": "meta.macro.zil",
250
+ "begin": "(%)|(%%)",
251
+ "end": "(?\u003c!\\G)",
252
+ "patterns": [
253
+ {
254
+ "include": "#unstyled_expressions"
255
+ }
256
+ ],
257
+ "beginCaptures": {
258
+ "1": {
259
+ "name": "punctuation.definition.macro.single.prefix.zil"
260
+ },
261
+ "2": {
262
+ "name": "punctuation.definition.macro.double.prefix.zil"
263
+ }
264
+ },
265
+ "applyEndPatternLast": true
266
+ },
267
+ "octal_num": {
268
+ "name": "constant.numeric.octal.zil",
269
+ "match": "(\\*)([0-7]+)(\\*)(?![^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])",
270
+ "captures": {
271
+ "1": {
272
+ "name": "punctuation.definition.constant.numeric.octal.zil"
273
+ },
274
+ "3": {
275
+ "name": "punctuation.definition.constant.numeric.octal.zil"
276
+ }
277
+ }
278
+ },
279
+ "prefixes": {
280
+ "patterns": [
281
+ {
282
+ "include": "#comment"
283
+ },
284
+ {
285
+ "include": "#macro"
286
+ },
287
+ {
288
+ "include": "#lval"
289
+ },
290
+ {
291
+ "include": "#gval"
292
+ },
293
+ {
294
+ "include": "#quote"
295
+ },
296
+ {
297
+ "include": "#segment"
298
+ }
299
+ ]
300
+ },
301
+ "property": {
302
+ "name": "meta.property.zil",
303
+ "begin": "(?xi)\n\\( \\s*\n(?: (IN|LOC|DESC|SYNONYM|ADJECTIVE|FLAGS|\n GLOBAL|GENERIC|ACTION|DESCFCN|CONTFCN|LDESC|FDESC|\n NORTH|SOUTH|EAST|WEST|OUT|UP|DOWN|NW|SW|NE|SE)\n| ((?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n (?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+)\n)\n\\b",
304
+ "end": "\\)",
305
+ "patterns": [
306
+ {
307
+ "include": "$self"
308
+ }
309
+ ],
310
+ "beginCaptures": {
311
+ "1": {
312
+ "name": "storage.property.${1:/downcase}.zil"
313
+ },
314
+ "2": {
315
+ "name": "meta.object-literal.key.zil"
316
+ }
317
+ }
318
+ },
319
+ "quote": {
320
+ "name": "meta.quoted-expression.zil",
321
+ "begin": "'",
322
+ "end": "(?\u003c!\\G)",
323
+ "patterns": [
324
+ {
325
+ "include": "#unstyled_expressions"
326
+ }
327
+ ],
328
+ "beginCaptures": {
329
+ "0": {
330
+ "name": "punctuation.definition.quote.prefix.zil"
331
+ }
332
+ },
333
+ "applyEndPatternLast": true
334
+ },
335
+ "segment": {
336
+ "name": "meta.structure.segment.zil",
337
+ "begin": "!(?=[.,\u003c])",
338
+ "end": "(?\u003c!\\G)",
339
+ "patterns": [
340
+ {
341
+ "include": "#unstyled_expressions"
342
+ }
343
+ ],
344
+ "beginCaptures": {
345
+ "0": {
346
+ "name": "punctuation.definition.segment.prefix.zil"
347
+ }
348
+ },
349
+ "applyEndPatternLast": true
350
+ },
351
+ "skip_ws": {
352
+ "match": "\\s+"
353
+ },
354
+ "special_form_body": {
355
+ "patterns": [
356
+ {
357
+ "name": "keyword.operator.arithmetic.${1:/downcase}.zil",
358
+ "match": "(?xi)\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n(\\+|-|\\*|/|MOD|MIN|MAX|OR\\?|AND\\?)\n(?!\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])"
359
+ },
360
+ {
361
+ "name": "keyword.operator.bitwise.${1:/downcase}.zil",
362
+ "match": "(?xi)\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n(BAND|BOR|ANDB|ORB|LSH|XORB|EQVB)\n(?!\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])"
363
+ },
364
+ {
365
+ "name": "keyword.operator.comparison.${1:/downcase}.zil",
366
+ "match": "(?xi)\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n(==?|N==?|L=?|G=?|[01TF])\\?\n(?!\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])"
367
+ },
368
+ {
369
+ "name": "keyword.control.${1:/downcase}.zil",
370
+ "match": "(?xi) \\s*\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n(COND|BIND|PROG|REPEAT|DO|MAP[FR]|MAP-(?:CONTENTS|DIRECTIONS)|\n AGAIN|RETURN|RTRUE|RFALSE|CATCH|THROW|EVAL|AND|OR|NOT)\n(?!\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])"
371
+ },
372
+ {
373
+ "name": "keyword.output.${1:/downcase}.zil",
374
+ "match": "(?xi) \\s*\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n(TELL(?:-TOKENS)?|ADD-TELL-TOKENS|CRLF|PRINT[INR]?|PRIN[C1])\n(?!\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])"
375
+ },
376
+ {
377
+ "name": "keyword.zmodel.${1:/downcase}.zil",
378
+ "match": "(?xi) \\s*\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n(FSET\\??|FCLEAR|MOVE|REMOVE|IN\\?|FIRST\\?|NEXT\\?|\n PUTP|GETP|PROPDEF|GETPT|PTSIZE|INTBL\\?|\n P?L?TABLE|ITABLE|GETB?|GET/B|PUTB?|PUT/B|ZGET|ZPUT|\n VOC|SYNONYM|(?:VERB|PREP|ADJ|DIR|BIT)-SYNONYM|DIRECTIONS|BUZZ)\n(?!\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])"
379
+ },
380
+ {
381
+ "name": "keyword.meta.${1:/downcase}.zil",
382
+ "match": "(?xi) \\s*\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n(INSERT-FILE|PACKAGE|ENDPACKAGE|USE|ENTRY|RENTRY|VERSION|\n COMPILATION-FLAG(?:-DEFAULT)?|REPLACE-DEFINITION|DELAY-DEFINITION|DEFAULT-DEFINITION|\n IF-(?:[A-Z0-9][-A-Z0-9]+))\n(?!\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])"
383
+ },
384
+ {
385
+ "name": "meta.function.zil",
386
+ "begin": "(?xi)\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n# function type (1)\n(DEFINE|DEFINE20|DEFMAC|ROUTINE)\n\\s+\n# function name atom (2)\n((?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n (?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+)\n\\s*\n# optional activation atom (3)\n(?:\n (?\u003c=\\s)\n ((?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n (?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+)\n \\s*\n)?\n# followed by paren starting arg spec\n(?=\\()",
387
+ "end": "(?\u003c=\\))|(?=\\\u003e)",
388
+ "patterns": [
389
+ {
390
+ "include": "#argspec"
391
+ }
392
+ ],
393
+ "beginCaptures": {
394
+ "1": {
395
+ "name": "keyword.definition.function.${1:/downcase}.zil"
396
+ },
397
+ "2": {
398
+ "name": "entity.name.function.zil"
399
+ },
400
+ "3": {
401
+ "name": "entity.name.variable.local.activation-atom.zil"
402
+ }
403
+ }
404
+ },
405
+ {
406
+ "name": "meta.object.zil",
407
+ "begin": "(?xi)\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n# object type (1)\n(OBJECT|ROOM)\n\\s+\n# object name (2)\n((?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n (?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+)\n\\s*",
408
+ "end": "(?=\\\u003e)",
409
+ "patterns": [
410
+ {
411
+ "include": "#property"
412
+ }
413
+ ],
414
+ "beginCaptures": {
415
+ "1": {
416
+ "name": "keyword.definition.object.${1:/downcase}.zil"
417
+ },
418
+ "2": {
419
+ "name": "entity.name.object.zil"
420
+ }
421
+ }
422
+ },
423
+ {
424
+ "match": "(?xi)\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n# global type (1)\n(SETG|CONSTANT|GLOBAL|GASSIGNED\\?|GUNASSIGN)\n\\s+\n# global name atom (2)\n((?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n (?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+)?",
425
+ "captures": {
426
+ "1": {
427
+ "name": "keyword.definition.global.${1:/downcase}.zil"
428
+ },
429
+ "2": {
430
+ "name": "entity.name.variable.global.zil variable.global.zil"
431
+ }
432
+ }
433
+ },
434
+ {
435
+ "match": "(?xi)\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n# local type?\n(SET|ASSIGNED\\?|UNASSIGN)\n\\s+\n# local name atom (2)\n((?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n (?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+)?",
436
+ "captures": {
437
+ "1": {
438
+ "name": "keyword.definition.local.${1:/downcase}.zil"
439
+ },
440
+ "2": {
441
+ "name": "entity.name.variable.local.zil variable.local.zil"
442
+ }
443
+ }
444
+ },
445
+ {
446
+ "match": "(?xi)\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n(CHTYPE|TYPE\\??|PRIMTYPE)\n(?!\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])",
447
+ "captures": {
448
+ "1": {
449
+ "name": "keyword.type.${1:/downcase}.zil"
450
+ }
451
+ }
452
+ },
453
+ {
454
+ "match": "(?xi)\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n# keyword (1)\n(NEWTYPE|DEFSTRUCT|APPLYTYPE|EVALTYPE|PRINTTYPE|TYPEPRIM)\n\\s+\n# type name atom (2)\n((?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n (?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+)?\n(?!\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])",
455
+ "captures": {
456
+ "1": {
457
+ "name": "keyword.definition.type.${1:/downcase}.zil"
458
+ },
459
+ "2": {
460
+ "name": "entity.name.type.zil"
461
+ }
462
+ }
463
+ },
464
+ {
465
+ "match": "(?xi)\n(?\u003c=\u003c) \\s* (?:FORM\\s+)?\n(SYNTAX)\n\\s+\n# verb word\n((?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n (?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+)\n# first object\n(?:\n (?!\\s*=\\b)\n # prep 1\n (?:\\s+ (?!OBJECT\\b)(\\S+))?\n # obj 1\n \\s+ (OBJECT)\n # flags/search options 1\n (\\s* \\( [^)]* \\) )*\n)?+\n# second object\n(?:\n (?!\\s*=\\b)\n # prep 2\n (?:\\s+ (?!OBJECT\\b)(\\S+))?\n # obj 2\n \\s+ (OBJECT)\n # flags/search options 2\n (\\s* \\( [^)]* \\) )*\n)?+\n# handlers\n(?:\n \\s+ =\n # action\n \\s+\n ((?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n (?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+)\n # preaction\n (?:\n \\s+\n ((?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n (?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+)\n )?+\n # name\n (?:\n \\s+\n ((?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n (?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+)\n )?+\n)?+",
466
+ "captures": {
467
+ "1": {
468
+ "name": "keyword.definition.vocab.syntax.zil"
469
+ },
470
+ "10": {
471
+ "name": "entity.name.function.preaction.zil"
472
+ },
473
+ "11": {
474
+ "name": "entity.name.verb.zil"
475
+ },
476
+ "2": {
477
+ "name": "entity.name.verb.zil"
478
+ },
479
+ "3": {
480
+ "name": "entity.name.preposition.zil"
481
+ },
482
+ "4": {
483
+ "name": "keyword.definition.vocab.object.zil"
484
+ },
485
+ "6": {
486
+ "name": "entity.name.preposition.zil"
487
+ },
488
+ "7": {
489
+ "name": "keyword.definition.vocab.object.zil"
490
+ },
491
+ "9": {
492
+ "name": "entity.name.function.action.zil"
493
+ }
494
+ }
495
+ }
496
+ ]
497
+ },
498
+ "string": {
499
+ "name": "string.quoted.double.zil",
500
+ "begin": "\"",
501
+ "end": "\"",
502
+ "patterns": [
503
+ {
504
+ "name": "constant.character.escape.zil",
505
+ "match": "\\\\."
506
+ }
507
+ ],
508
+ "beginCaptures": {
509
+ "0": {
510
+ "name": "punctuation.definition.string.begin.zil"
511
+ }
512
+ },
513
+ "endCaptures": {
514
+ "0": {
515
+ "name": "punctuation.definition.string.end.zil"
516
+ }
517
+ }
518
+ },
519
+ "structures": {
520
+ "patterns": [
521
+ {
522
+ "include": "#list"
523
+ },
524
+ {
525
+ "include": "#form"
526
+ },
527
+ {
528
+ "include": "#vector"
529
+ },
530
+ {
531
+ "include": "#uvector"
532
+ },
533
+ {
534
+ "include": "#segment"
535
+ }
536
+ ]
537
+ },
538
+ "true": {
539
+ "name": "constant.language.boolean.true.zil",
540
+ "match": "\\bT\\b"
541
+ },
542
+ "unstyled_atom": {
543
+ "match": "(?x)\n# atom can start with anything escaped, or any non-delimiter\n(?:\\\\.|[^!. \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])\n# and continue with any of the above as well as '!' and '.'\n(?:\\\\.|[^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])*+"
544
+ },
545
+ "unstyled_char": {
546
+ "match": "!\\\\."
547
+ },
548
+ "unstyled_constants": {
549
+ "patterns": [
550
+ {
551
+ "include": "#unstyled_numeric"
552
+ },
553
+ {
554
+ "include": "#unstyled_string"
555
+ },
556
+ {
557
+ "include": "#unstyled_char"
558
+ },
559
+ {
560
+ "include": "#unstyled_atom"
561
+ }
562
+ ]
563
+ },
564
+ "unstyled_expressions": {
565
+ "patterns": [
566
+ {
567
+ "include": "#unstyled_constants"
568
+ },
569
+ {
570
+ "include": "#unstyled_structures"
571
+ },
572
+ {
573
+ "include": "#unstyled_prefixes"
574
+ },
575
+ {
576
+ "include": "#invalid"
577
+ }
578
+ ]
579
+ },
580
+ "unstyled_form": {
581
+ "begin": "\u003c",
582
+ "end": "!?\u003e",
583
+ "patterns": [
584
+ {
585
+ "include": "#unstyled_expressions"
586
+ }
587
+ ]
588
+ },
589
+ "unstyled_gval": {
590
+ "begin": "(,)\\s*",
591
+ "end": "(?\u003c!\\G)",
592
+ "patterns": [
593
+ {
594
+ "include": "#unstyled_expressions"
595
+ }
596
+ ],
597
+ "applyEndPatternLast": true
598
+ },
599
+ "unstyled_list": {
600
+ "begin": "!?\\(",
601
+ "end": "!?\\)",
602
+ "patterns": [
603
+ {
604
+ "include": "#unstyled_expressions"
605
+ }
606
+ ]
607
+ },
608
+ "unstyled_lval": {
609
+ "begin": "\\.",
610
+ "end": "(?\u003c!\\G)",
611
+ "patterns": [
612
+ {
613
+ "include": "#unstyled_expressions"
614
+ }
615
+ ],
616
+ "applyEndPatternLast": true
617
+ },
618
+ "unstyled_numeric": {
619
+ "match": "(?:\\b-?[0-9]+\\b|\\*[0-7]+\\*|#\\s*0*2\\s+[01]+)(?![^ \\t-\\r,#':;%()\\[\\]\u003c\u003e\\{\\}\"])"
620
+ },
621
+ "unstyled_prefixes": {
622
+ "patterns": [
623
+ {
624
+ "include": "#comment"
625
+ },
626
+ {
627
+ "include": "#macro"
628
+ },
629
+ {
630
+ "include": "#unstyled_lval"
631
+ },
632
+ {
633
+ "include": "#unstyled_gval"
634
+ },
635
+ {
636
+ "include": "#unstyled_quote"
637
+ },
638
+ {
639
+ "include": "#unstyled_segment"
640
+ }
641
+ ]
642
+ },
643
+ "unstyled_quote": {
644
+ "begin": "'",
645
+ "end": "(?\u003c!\\G)",
646
+ "patterns": [
647
+ {
648
+ "include": "#unstyled_expressions"
649
+ }
650
+ ],
651
+ "applyEndPatternLast": true
652
+ },
653
+ "unstyled_segment": {
654
+ "begin": "!(?=[.,\u003c])",
655
+ "end": "(?\u003c!\\G)",
656
+ "patterns": [
657
+ {
658
+ "include": "#unstyled_expressions"
659
+ }
660
+ ],
661
+ "applyEndPatternLast": true
662
+ },
663
+ "unstyled_string": {
664
+ "begin": "\"",
665
+ "end": "\"",
666
+ "patterns": [
667
+ {
668
+ "match": "\\\\."
669
+ }
670
+ ]
671
+ },
672
+ "unstyled_structures": {
673
+ "patterns": [
674
+ {
675
+ "include": "#unstyled_list"
676
+ },
677
+ {
678
+ "include": "#unstyled_form"
679
+ },
680
+ {
681
+ "include": "#unstyled_vector"
682
+ },
683
+ {
684
+ "include": "#unstyled_uvector"
685
+ },
686
+ {
687
+ "include": "#unstyled_segment"
688
+ }
689
+ ]
690
+ },
691
+ "unstyled_uvector": {
692
+ "begin": "!\\[",
693
+ "end": "!?\\]",
694
+ "patterns": [
695
+ {
696
+ "include": "#unstyled_expressions"
697
+ }
698
+ ]
699
+ },
700
+ "unstyled_vector": {
701
+ "begin": "\\[",
702
+ "end": "!?\\]",
703
+ "patterns": [
704
+ {
705
+ "include": "#unstyled_expressions"
706
+ }
707
+ ]
708
+ },
709
+ "uvector": {
710
+ "name": "meta.structure.array.uvector.zil",
711
+ "begin": "!\\[",
712
+ "end": "!?\\]",
713
+ "patterns": [
714
+ {
715
+ "include": "#expressions"
716
+ }
717
+ ],
718
+ "beginCaptures": {
719
+ "0": {
720
+ "name": "punctuation.definition.array.uvector.begin.zil"
721
+ }
722
+ },
723
+ "endCaptures": {
724
+ "0": {
725
+ "name": "punctuation.definition.array.uvector.end.zil"
726
+ }
727
+ }
728
+ },
729
+ "vector": {
730
+ "name": "meta.structure.array.vector.zil",
731
+ "begin": "\\[",
732
+ "end": "!?\\]",
733
+ "patterns": [
734
+ {
735
+ "include": "#expressions"
736
+ }
737
+ ],
738
+ "beginCaptures": {
739
+ "0": {
740
+ "name": "punctuation.definition.array.vector.begin.zil"
741
+ }
742
+ },
743
+ "endCaptures": {
744
+ "0": {
745
+ "name": "punctuation.definition.array.vector.end.zil"
746
+ }
747
+ }
748
+ }
749
+ }
750
+ }