PluginProbe
Code Block Pro – Beautiful Syntax Highlighting / 1.9.1
Code Block Pro – Beautiful Syntax Highlighting v1.9.1
1.27.1 1.27.2 1.27.3 1.27.4 1.27.5 1.27.6 1.27.7 1.28.0 1.3.0 1.4.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.2 1.9.3 trunk 1.1.0 1.10.0 1.11.0 1.11.1 All 63 releases
code-block-pro / build / shiki / languages / apl.tmLanguage.json

apl.tmLanguage.json in Code Block Pro – Beautiful Syntax Highlighting 1.9.1, at build/shiki/languages/apl.tmLanguage.json

1,470 lines 42.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 {
2 "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
3 "name": "apl",
4 "scopeName": "source.apl",
5 "fileTypes": ["apl", "apla", "aplc", "aplf", "apli", "apln", "aplo", "dyalog", "dyapp", "mipage"],
6 "firstLineMatch": "(?x)\n# APL symbols\n[⌶-⍺]\n|\n\n# Hashbang\n^\\#!.*(?:\\s|\\/|(?<=!)\\b)\n\t(?:gnu[-._]?apl|aplx?|dyalog)\n(?:$|\\s)\n|\n\n# Modeline\n(?i:\n\t# Emacs\n\t-\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n\t\tapl\n\t(?=[\\s;]|(?<![-*])-\\*-).*?-\\*-\n\n\t|\n\n\t# Vim\n\t(?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s* set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n\t\tapl\n\t(?=\\s|:|$)\n)",
7 "foldingStartMarker": "{",
8 "foldingStopMarker": "}",
9 "patterns": [
10 {
11 "match": "\\A#!.*$",
12 "name": "comment.line.shebang.apl"
13 },
14 {
15 "include": "#heredocs"
16 },
17 {
18 "include": "#main"
19 },
20 {
21 "contentName": "text.embedded.apl",
22 "begin": "^\\s*((\\))OFF|(\\])NEXTFILE)\\b(.*)$",
23 "end": "(?=N)A",
24 "beginCaptures": {
25 "1": {
26 "name": "entity.name.command.eof.apl"
27 },
28 "2": {
29 "name": "punctuation.definition.command.apl"
30 },
31 "3": {
32 "name": "punctuation.definition.command.apl"
33 },
34 "4": {
35 "patterns": [
36 {
37 "include": "#comment"
38 }
39 ]
40 }
41 }
42 },
43 {
44 "name": "meta.round.bracketed.group.apl",
45 "patterns": [
46 {
47 "include": "#main"
48 }
49 ],
50 "begin": "\\(",
51 "end": "\\)",
52 "beginCaptures": {
53 "0": {
54 "name": "punctuation.round.bracket.begin.apl"
55 }
56 },
57 "endCaptures": {
58 "0": {
59 "name": "punctuation.round.bracket.end.apl"
60 }
61 }
62 },
63 {
64 "name": "meta.square.bracketed.group.apl",
65 "patterns": [
66 {
67 "include": "#main"
68 }
69 ],
70 "begin": "\\[",
71 "end": "\\]",
72 "beginCaptures": {
73 "0": {
74 "name": "punctuation.square.bracket.begin.apl"
75 }
76 },
77 "endCaptures": {
78 "0": {
79 "name": "punctuation.square.bracket.end.apl"
80 }
81 }
82 },
83 {
84 "name": "meta.system.command.apl",
85 "begin": "^\\s*((\\))\\S+)",
86 "end": "$",
87 "beginCaptures": {
88 "1": {
89 "name": "entity.name.command.apl"
90 },
91 "2": {
92 "name": "punctuation.definition.command.apl"
93 }
94 },
95 "patterns": [
96 {
97 "include": "#command-arguments"
98 },
99 {
100 "include": "#command-switches"
101 },
102 {
103 "include": "#main"
104 }
105 ]
106 },
107 {
108 "name": "meta.user.command.apl",
109 "begin": "^\\s*((\\])\\S+)",
110 "end": "$",
111 "beginCaptures": {
112 "1": {
113 "name": "entity.name.command.apl"
114 },
115 "2": {
116 "name": "punctuation.definition.command.apl"
117 }
118 },
119 "patterns": [
120 {
121 "include": "#command-arguments"
122 },
123 {
124 "include": "#command-switches"
125 },
126 {
127 "include": "#main"
128 }
129 ]
130 }
131 ],
132 "repository": {
133 "main": {
134 "patterns": [
135 {
136 "include": "#class"
137 },
138 {
139 "include": "#definition"
140 },
141 {
142 "include": "#comment"
143 },
144 {
145 "include": "#label"
146 },
147 {
148 "include": "#sck"
149 },
150 {
151 "include": "#strings"
152 },
153 {
154 "include": "#number"
155 },
156 {
157 "include": "#lambda"
158 },
159 {
160 "include": "#sysvars"
161 },
162 {
163 "include": "#symbols"
164 },
165 {
166 "include": "#name"
167 }
168 ]
169 },
170 "comment": {
171 "patterns": [
172 {
173 "name": "comment.line.apl",
174 "begin": "",
175 "end": "$",
176 "captures": {
177 "0": {
178 "name": "punctuation.definition.comment.apl"
179 }
180 }
181 }
182 ]
183 },
184 "number": {
185 "patterns": [
186 {
187 "name": "constant.numeric.apl",
188 "match": "¯?[0-9][¯0-9A-Za-z]*(?:\\.[¯0-9Ee][¯0-9A-Za-z]*)*|¯?\\.[0-9Ee][¯0-9A-Za-z]*"
189 }
190 ]
191 },
192 "strings": {
193 "patterns": [
194 {
195 "name": "string.quoted.single.apl",
196 "begin": "'",
197 "end": "'|$",
198 "beginCaptures": {
199 "0": {
200 "name": "punctuation.definition.string.begin.apl"
201 }
202 },
203 "endCaptures": {
204 "0": {
205 "name": "punctuation.definition.string.end.apl"
206 }
207 },
208 "patterns": [
209 {
210 "match": "[^']*[^'\\n\\r\\\\]$",
211 "name": "invalid.illegal.string.apl"
212 }
213 ]
214 },
215 {
216 "name": "string.quoted.double.apl",
217 "begin": "\"",
218 "end": "\"|$",
219 "beginCaptures": {
220 "0": {
221 "name": "punctuation.definition.string.begin.apl"
222 }
223 },
224 "endCaptures": {
225 "0": {
226 "name": "punctuation.definition.string.end.apl"
227 }
228 },
229 "patterns": [
230 {
231 "match": "[^\"]*[^\"\\n\\r\\\\]$",
232 "name": "invalid.illegal.string.apl"
233 }
234 ]
235 }
236 ]
237 },
238 "name": {
239 "patterns": [
240 {
241 "name": "variable.other.readwrite.apl",
242 "match": "(?x)\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*"
243 }
244 ]
245 },
246 "label": {
247 "patterns": [
248 {
249 "name": "meta.label.apl",
250 "match": "(?x)\n^\\s*\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(:)",
251 "captures": {
252 "1": {
253 "name": "entity.label.name.apl"
254 },
255 "2": {
256 "name": "punctuation.definition.label.end.apl"
257 }
258 }
259 }
260 ]
261 },
262 "symbols": {
263 "patterns": [
264 {
265 "match": "(?<=\\s)←(?=\\s|$)",
266 "name": "keyword.spaced.operator.assignment.apl"
267 },
268 {
269 "match": "(?<=\\s)→(?=\\s|$)",
270 "name": "keyword.spaced.control.goto.apl"
271 },
272 {
273 "match": "(?<=\\s)≡(?=\\s|$)",
274 "name": "keyword.spaced.operator.identical.apl"
275 },
276 {
277 "match": "(?<=\\s)≢(?=\\s|$)",
278 "name": "keyword.spaced.operator.not-identical.apl"
279 },
280 {
281 "match": "\\+",
282 "name": "keyword.operator.plus.apl"
283 },
284 {
285 "match": "[-−]",
286 "name": "keyword.operator.minus.apl"
287 },
288 {
289 "match": "×",
290 "name": "keyword.operator.times.apl"
291 },
292 {
293 "match": "÷",
294 "name": "keyword.operator.divide.apl"
295 },
296 {
297 "match": "",
298 "name": "keyword.operator.floor.apl"
299 },
300 {
301 "match": "",
302 "name": "keyword.operator.ceiling.apl"
303 },
304 {
305 "match": "[∣|]",
306 "name": "keyword.operator.absolute.apl"
307 },
308 {
309 "match": "[⋆*]",
310 "name": "keyword.operator.exponent.apl"
311 },
312 {
313 "match": "",
314 "name": "keyword.operator.logarithm.apl"
315 },
316 {
317 "match": "",
318 "name": "keyword.operator.circle.apl"
319 },
320 {
321 "match": "!",
322 "name": "keyword.operator.factorial.apl"
323 },
324 {
325 "match": "",
326 "name": "keyword.operator.and.apl"
327 },
328 {
329 "match": "",
330 "name": "keyword.operator.or.apl"
331 },
332 {
333 "match": "",
334 "name": "keyword.operator.nand.apl"
335 },
336 {
337 "match": "",
338 "name": "keyword.operator.nor.apl"
339 },
340 {
341 "match": "<",
342 "name": "keyword.operator.less.apl"
343 },
344 {
345 "match": "",
346 "name": "keyword.operator.less-or-equal.apl"
347 },
348 {
349 "match": "=",
350 "name": "keyword.operator.equal.apl"
351 },
352 {
353 "match": "",
354 "name": "keyword.operator.greater-or-equal.apl"
355 },
356 {
357 "match": ">",
358 "name": "keyword.operator.greater.apl"
359 },
360 {
361 "match": "",
362 "name": "keyword.operator.not-equal.apl"
363 },
364 {
365 "match": "[∼~]",
366 "name": "keyword.operator.tilde.apl"
367 },
368 {
369 "match": "\\?",
370 "name": "keyword.operator.random.apl"
371 },
372 {
373 "match": "[∊∈]",
374 "name": "keyword.operator.member-of.apl"
375 },
376 {
377 "match": "",
378 "name": "keyword.operator.find.apl"
379 },
380 {
381 "match": ",",
382 "name": "keyword.operator.comma.apl"
383 },
384 {
385 "match": "",
386 "name": "keyword.operator.comma-bar.apl"
387 },
388 {
389 "match": "",
390 "name": "keyword.operator.squad.apl"
391 },
392 {
393 "match": "",
394 "name": "keyword.operator.iota.apl"
395 },
396 {
397 "match": "",
398 "name": "keyword.operator.rho.apl"
399 },
400 {
401 "match": "",
402 "name": "keyword.operator.take.apl"
403 },
404 {
405 "match": "",
406 "name": "keyword.operator.drop.apl"
407 },
408 {
409 "match": "",
410 "name": "keyword.operator.left.apl"
411 },
412 {
413 "match": "",
414 "name": "keyword.operator.right.apl"
415 },
416 {
417 "match": "",
418 "name": "keyword.operator.encode.apl"
419 },
420 {
421 "match": "",
422 "name": "keyword.operator.decode.apl"
423 },
424 {
425 "match": "\\/",
426 "name": "keyword.operator.slash.apl"
427 },
428 {
429 "match": "",
430 "name": "keyword.operator.slash-bar.apl"
431 },
432 {
433 "match": "\\x5C",
434 "name": "keyword.operator.backslash.apl"
435 },
436 {
437 "match": "",
438 "name": "keyword.operator.backslash-bar.apl"
439 },
440 {
441 "match": "",
442 "name": "keyword.operator.rotate-last.apl"
443 },
444 {
445 "match": "",
446 "name": "keyword.operator.rotate-first.apl"
447 },
448 {
449 "match": "",
450 "name": "keyword.operator.transpose.apl"
451 },
452 {
453 "match": "",
454 "name": "keyword.operator.grade-up.apl"
455 },
456 {
457 "match": "",
458 "name": "keyword.operator.grade-down.apl"
459 },
460 {
461 "match": "",
462 "name": "keyword.operator.quad-divide.apl"
463 },
464 {
465 "match": "",
466 "name": "keyword.operator.identical.apl"
467 },
468 {
469 "match": "",
470 "name": "keyword.operator.not-identical.apl"
471 },
472 {
473 "match": "",
474 "name": "keyword.operator.enclose.apl"
475 },
476 {
477 "match": "",
478 "name": "keyword.operator.pick.apl"
479 },
480 {
481 "match": "",
482 "name": "keyword.operator.intersection.apl"
483 },
484 {
485 "match": "",
486 "name": "keyword.operator.union.apl"
487 },
488 {
489 "match": "",
490 "name": "keyword.operator.hydrant.apl"
491 },
492 {
493 "match": "",
494 "name": "keyword.operator.thorn.apl"
495 },
496 {
497 "match": "",
498 "name": "keyword.operator.underbar-shoe-left.apl"
499 },
500 {
501 "match": "",
502 "name": "keyword.operator.underbar-iota.apl"
503 },
504 {
505 "match": "¨",
506 "name": "keyword.operator.each.apl"
507 },
508 {
509 "match": "",
510 "name": "keyword.operator.rank.apl"
511 },
512 {
513 "match": "",
514 "name": "keyword.operator.quad-equal.apl"
515 },
516 {
517 "match": "",
518 "name": "keyword.operator.commute.apl"
519 },
520 {
521 "match": "",
522 "name": "keyword.operator.power.apl"
523 },
524 {
525 "match": "\\.",
526 "name": "keyword.operator.dot.apl"
527 },
528 {
529 "match": "",
530 "name": "keyword.operator.jot.apl"
531 },
532 {
533 "match": "",
534 "name": "keyword.operator.quad-colon.apl"
535 },
536 {
537 "match": "&",
538 "name": "keyword.operator.ampersand.apl"
539 },
540 {
541 "match": "",
542 "name": "keyword.operator.i-beam.apl"
543 },
544 {
545 "match": "",
546 "name": "keyword.operator.quad-diamond.apl"
547 },
548 {
549 "match": "@",
550 "name": "keyword.operator.at.apl"
551 },
552 {
553 "match": "",
554 "name": "keyword.operator.lozenge.apl"
555 },
556 {
557 "match": ";",
558 "name": "keyword.operator.semicolon.apl"
559 },
560 {
561 "match": "¯",
562 "name": "keyword.operator.high-minus.apl"
563 },
564 {
565 "match": "",
566 "name": "keyword.operator.assignment.apl"
567 },
568 {
569 "match": "",
570 "name": "keyword.control.goto.apl"
571 },
572 {
573 "match": "",
574 "name": "constant.language.zilde.apl"
575 },
576 {
577 "match": "",
578 "name": "keyword.operator.diamond.apl"
579 },
580 {
581 "match": "",
582 "name": "keyword.operator.lock.apl"
583 },
584 {
585 "match": "",
586 "name": "keyword.operator.quad.apl"
587 },
588 {
589 "match": "##",
590 "name": "constant.language.namespace.parent.apl"
591 },
592 {
593 "match": "#",
594 "name": "constant.language.namespace.root.apl"
595 },
596 {
597 "match": "",
598 "name": "keyword.operator.quad-jot.apl"
599 },
600 {
601 "match": "",
602 "name": "keyword.operator.quad-circle.apl"
603 },
604 {
605 "match": "",
606 "name": "keyword.operator.circle-jot.apl"
607 },
608 {
609 "match": "",
610 "name": "keyword.operator.quad-slash.apl"
611 },
612 {
613 "match": "",
614 "name": "keyword.operator.quad-backslash.apl"
615 },
616 {
617 "match": "",
618 "name": "keyword.operator.quad-less.apl"
619 },
620 {
621 "match": "",
622 "name": "keyword.operator.greater.apl"
623 },
624 {
625 "match": "�
626 ",
627 "name": "keyword.operator.vane-left.apl"
628 },
629 {
630 "match": "",
631 "name": "keyword.operator.vane-right.apl"
632 },
633 {
634 "match": "",
635 "name": "keyword.operator.quad-arrow-left.apl"
636 },
637 {
638 "match": "",
639 "name": "keyword.operator.quad-arrow-right.apl"
640 },
641 {
642 "match": "",
643 "name": "keyword.operator.tack-down.apl"
644 },
645 {
646 "match": "",
647 "name": "keyword.operator.quad-caret-down.apl"
648 },
649 {
650 "match": "",
651 "name": "keyword.operator.quad-del-up.apl"
652 },
653 {
654 "match": "",
655 "name": "keyword.operator.vane-up.apl"
656 },
657 {
658 "match": "",
659 "name": "keyword.operator.quad-arrow-up.apl"
660 },
661 {
662 "match": "",
663 "name": "keyword.operator.tack-up.apl"
664 },
665 {
666 "match": "",
667 "name": "keyword.operator.quad-caret-up.apl"
668 },
669 {
670 "match": "",
671 "name": "keyword.operator.quad-del-down.apl"
672 },
673 {
674 "match": "",
675 "name": "keyword.operator.vane-down.apl"
676 },
677 {
678 "match": "",
679 "name": "keyword.operator.quad-arrow-down.apl"
680 },
681 {
682 "match": "",
683 "name": "keyword.operator.underbar-quote.apl"
684 },
685 {
686 "match": "",
687 "name": "keyword.operator.underbar-diamond.apl"
688 },
689 {
690 "match": "",
691 "name": "keyword.operator.underbar-jot.apl"
692 },
693 {
694 "match": "",
695 "name": "keyword.operator.underbar-circle.apl"
696 },
697 {
698 "match": "",
699 "name": "keyword.operator.quad-quote.apl"
700 },
701 {
702 "match": "",
703 "name": "keyword.operator.dotted-tack-up.apl"
704 },
705 {
706 "match": "",
707 "name": "keyword.operator.dotted-del.apl"
708 },
709 {
710 "match": "",
711 "name": "keyword.operator.dotted-circle.apl"
712 },
713 {
714 "match": "",
715 "name": "keyword.operator.stile-shoe-up.apl"
716 },
717 {
718 "match": "",
719 "name": "keyword.operator.stile-shoe-left.apl"
720 },
721 {
722 "match": "",
723 "name": "keyword.operator.dotted-greater.apl"
724 },
725 {
726 "match": "",
727 "name": "keyword.operator.stile-tilde.apl"
728 },
729 {
730 "match": "",
731 "name": "keyword.operator.underbar-semicolon.apl"
732 },
733 {
734 "match": "",
735 "name": "keyword.operator.quad-not-equal.apl"
736 },
737 {
738 "match": "",
739 "name": "keyword.operator.quad-question.apl"
740 }
741 ]
742 },
743 "definition": {
744 "patterns": [
745 {
746 "name": "meta.function.apl",
747 "begin": "(?x) ^\\s*? (?# 1: keyword.operator.nabla.apl) () (?: \\s* (?: (?# 2: entity.function.return-value.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* ) | \\s* (?# 3: entity.function.return-value.shy.apl) ( (\\{) (?# 4: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* )* (\\}) (?# 5: punctuation.definition.return-value.end.apl) | (\\() (?# 6: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* )* (\\)) (?# 7: punctuation.definition.return-value.end.apl) | (\\(\\s*\\{) (?# 8: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* )* (\\}\\s*\\)) (?# 9: punctuation.definition.return-value.end.apl) | (\\{\\s*\\() (?# 10: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* )* (\\)\\s*\\}) (?# 11: punctuation.definition.return-value.end.apl) ) \\s* ) \\s* (?# 12: keyword.operator.assignment.apl) () )? \\s* (?: (?# MONADIC) (?: (?# 13: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* ) \\s* (?# 14: entity.function.axis.apl) ( (?# 15: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* (?# 16: invalid.illegal.extra-characters.apl) (.*?) | (?# 17: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 18: punctuation.definition.axis.end.apl) (\\]) )? \\s*? (?# 19: entity.function.arguments.right.apl) ( (?<=\\s|\\]) [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* | (\\() (?# 20: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* )* (\\)) (?# 21: punctuation.definition.arguments.end.apl) ) \\s* (?=;|$) ) | (?# DYADIC/AMBIVALENT) (?#==================) (?: (?# 22: entity.function.arguments.left.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s+ ) | (?# 23: entity.function.arguments.left.optional.apl) ( (\\{) (?# 24: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* )* (\\}) (?# 25: punctuation.definition.arguments.end.apl) | (\\(\\s*\\{) (?# 26: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* )* (\\}\\s*\\)) (?# 27: punctuation.definition.arguments.end.apl) | (\\{\\s*\\() (?# 28: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* )* (\\)\\s*\\}) (?# 29: punctuation.definition.arguments.end.apl) ) )? \\s* (?: (?# 30: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* ) \\s* (?# 31: entity.function.axis.apl) ( (?# 32: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* (?# 33: invalid.illegal.extra-characters.apl) (.*?) | (?# 34: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 35: punctuation.definition.axis.end.apl) (\\]) )? | (?# 36: entity.function.operands.apl) ( (?# 37: punctuation.definition.operands.begin.apl) (\\() (?# 38: entity.function.operands.left.apl) ( \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* )? \\s* (?# 39: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* ) \\s*? (?# 40: entity.function.axis.apl) ( (?# 41: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* (?# 42: invalid.illegal.extra-characters.apl) (.*?) | (?# 43: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 44: punctuation.definition.axis.end.apl) (\\]) )? \\s* (?# 45: entity.function.operands.right.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* )? (?# 46: punctuation.definition.operands.end.apl) (\\)) ) ) \\s* (?# 47: entity.function.arguments.right.apl) ( (?<=\\s|\\]) [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* | \\s* (\\() (?# 48: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* )* (\\)) (?# 49: punctuation.definition.arguments.end.apl) )? (?#==================) ) \\s* (?# 50: invalid.illegal.arguments.right.apl) ([^;]+)? (?# 51: entity.function.local-variables.apl) ( (?# 52: Include ;) ( (?> \\s* ; (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]* \\s* )+ )+ ) | (?# 53: invalid.illegal.local-variables.apl) ([^]+) )? \\s* (?# 54: comment.line.apl) (.*)? $",
748 "end": "^\\s*?(?:()|())\\s*?(.*?)?$",
749 "patterns": [
750 {
751 "name": "entity.function.definition.apl",
752 "match": "(?x)\n^\\s*\n(\n\t(?>\n\t\t;\n\t\t(?:\n\t\t\t\\s*\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-]\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]*\n\t\t\t\\s*\n\t\t)+\n\t)+\n)",
753 "captures": {
754 "0": {
755 "name": "entity.function.local-variables.apl"
756 },
757 "1": {
758 "patterns": [
759 {
760 "name": "punctuation.separator.apl",
761 "match": ";"
762 }
763 ]
764 }
765 }
766 },
767 {
768 "include": "$self"
769 }
770 ],
771 "beginCaptures": {
772 "0": {
773 "name": "entity.function.definition.apl"
774 },
775 "1": {
776 "name": "keyword.operator.nabla.apl"
777 },
778 "2": {
779 "name": "entity.function.return-value.apl"
780 },
781 "3": {
782 "name": "entity.function.return-value.shy.apl"
783 },
784 "4": {
785 "name": "punctuation.definition.return-value.begin.apl"
786 },
787 "5": {
788 "name": "punctuation.definition.return-value.end.apl"
789 },
790 "6": {
791 "name": "punctuation.definition.return-value.begin.apl"
792 },
793 "7": {
794 "name": "punctuation.definition.return-value.end.apl"
795 },
796 "8": {
797 "name": "punctuation.definition.return-value.begin.apl"
798 },
799 "9": {
800 "name": "punctuation.definition.return-value.end.apl"
801 },
802 "10": {
803 "name": "punctuation.definition.return-value.begin.apl"
804 },
805 "11": {
806 "name": "punctuation.definition.return-value.end.apl"
807 },
808 "12": {
809 "name": "keyword.operator.assignment.apl"
810 },
811 "13": {
812 "name": "entity.function.name.apl",
813 "patterns": [
814 {
815 "include": "#embolden"
816 }
817 ]
818 },
819 "14": {
820 "name": "entity.function.axis.apl"
821 },
822 "15": {
823 "name": "punctuation.definition.axis.begin.apl"
824 },
825 "16": {
826 "name": "invalid.illegal.extra-characters.apl"
827 },
828 "17": {
829 "name": "invalid.illegal.apl"
830 },
831 "18": {
832 "name": "punctuation.definition.axis.end.apl"
833 },
834 "19": {
835 "name": "entity.function.arguments.right.apl"
836 },
837 "20": {
838 "name": "punctuation.definition.arguments.begin.apl"
839 },
840 "21": {
841 "name": "punctuation.definition.arguments.end.apl"
842 },
843 "22": {
844 "name": "entity.function.arguments.left.apl"
845 },
846 "23": {
847 "name": "entity.function.arguments.left.optional.apl"
848 },
849 "24": {
850 "name": "punctuation.definition.arguments.begin.apl"
851 },
852 "25": {
853 "name": "punctuation.definition.arguments.end.apl"
854 },
855 "26": {
856 "name": "punctuation.definition.arguments.begin.apl"
857 },
858 "27": {
859 "name": "punctuation.definition.arguments.end.apl"
860 },
861 "28": {
862 "name": "punctuation.definition.arguments.begin.apl"
863 },
864 "29": {
865 "name": "punctuation.definition.arguments.end.apl"
866 },
867 "30": {
868 "name": "entity.function.name.apl",
869 "patterns": [
870 {
871 "include": "#embolden"
872 }
873 ]
874 },
875 "31": {
876 "name": "entity.function.axis.apl"
877 },
878 "32": {
879 "name": "punctuation.definition.axis.begin.apl"
880 },
881 "33": {
882 "name": "invalid.illegal.extra-characters.apl"
883 },
884 "34": {
885 "name": "invalid.illegal.apl"
886 },
887 "35": {
888 "name": "punctuation.definition.axis.end.apl"
889 },
890 "36": {
891 "name": "entity.function.operands.apl"
892 },
893 "37": {
894 "name": "punctuation.definition.operands.begin.apl"
895 },
896 "38": {
897 "name": "entity.function.operands.left.apl"
898 },
899 "39": {
900 "name": "entity.function.name.apl",
901 "patterns": [
902 {
903 "include": "#embolden"
904 }
905 ]
906 },
907 "40": {
908 "name": "entity.function.axis.apl"
909 },
910 "41": {
911 "name": "punctuation.definition.axis.begin.apl"
912 },
913 "42": {
914 "name": "invalid.illegal.extra-characters.apl"
915 },
916 "43": {
917 "name": "invalid.illegal.apl"
918 },
919 "44": {
920 "name": "punctuation.definition.axis.end.apl"
921 },
922 "45": {
923 "name": "entity.function.operands.right.apl"
924 },
925 "46": {
926 "name": "punctuation.definition.operands.end.apl"
927 },
928 "47": {
929 "name": "entity.function.arguments.right.apl"
930 },
931 "48": {
932 "name": "punctuation.definition.arguments.begin.apl"
933 },
934 "49": {
935 "name": "punctuation.definition.arguments.end.apl"
936 },
937 "50": {
938 "name": "invalid.illegal.arguments.right.apl"
939 },
940 "51": {
941 "name": "entity.function.local-variables.apl"
942 },
943 "52": {
944 "patterns": [
945 {
946 "name": "punctuation.separator.apl",
947 "match": ";"
948 }
949 ]
950 },
951 "53": {
952 "name": "invalid.illegal.local-variables.apl"
953 },
954 "54": {
955 "name": "comment.line.apl"
956 }
957 },
958 "endCaptures": {
959 "1": {
960 "name": "keyword.operator.nabla.apl"
961 },
962 "2": {
963 "name": "keyword.operator.lock.apl"
964 },
965 "3": {
966 "name": "comment.line.apl"
967 }
968 }
969 }
970 ]
971 },
972 "embolden": {
973 "patterns": [
974 {
975 "name": "markup.bold.identifier.apl",
976 "match": ".+"
977 }
978 ]
979 },
980 "lambda": {
981 "name": "meta.lambda.function.apl",
982 "begin": "\\{",
983 "end": "\\}",
984 "beginCaptures": {
985 "0": {
986 "name": "punctuation.definition.lambda.begin.apl"
987 }
988 },
989 "endCaptures": {
990 "0": {
991 "name": "punctuation.definition.lambda.end.apl"
992 }
993 },
994 "patterns": [
995 {
996 "include": "#main"
997 },
998 {
999 "include": "#lambda-variables"
1000 }
1001 ]
1002 },
1003 "lambda-variables": {
1004 "patterns": [
1005 {
1006 "match": "",
1007 "name": "constant.language.lambda.operands.left.apl"
1008 },
1009 {
1010 "match": "",
1011 "name": "constant.language.lambda.operands.right.apl"
1012 },
1013 {
1014 "match": "[]",
1015 "name": "constant.language.lambda.arguments.left.apl"
1016 },
1017 {
1018 "match": "[]",
1019 "name": "constant.language.lambda.arguments.right.apl"
1020 },
1021 {
1022 "match": "χ",
1023 "name": "constant.language.lambda.arguments.axis.apl"
1024 },
1025 {
1026 "match": "",
1027 "name": "constant.language.lambda.operands.self.operator.apl"
1028 },
1029 {
1030 "match": "",
1031 "name": "constant.language.lambda.operands.self.function.apl"
1032 },
1033 {
1034 "match": "λ",
1035 "name": "constant.language.lambda.symbol.apl"
1036 }
1037 ]
1038 },
1039 "sysvars": {
1040 "patterns": [
1041 {
1042 "match": "(?:()|())[A-Za-z]*",
1043 "name": "support.system.variable.apl",
1044 "captures": {
1045 "1": {
1046 "name": "punctuation.definition.quad.apl"
1047 },
1048 "2": {
1049 "name": "punctuation.definition.quad-quote.apl"
1050 }
1051 }
1052 }
1053 ]
1054 },
1055 "command-arguments": {
1056 "patterns": [
1057 {
1058 "name": "variable.parameter.argument.apl",
1059 "begin": "\\b(?=\\S)",
1060 "end": "\\b(?=\\s)",
1061 "patterns": [
1062 {
1063 "include": "#main"
1064 }
1065 ]
1066 }
1067 ]
1068 },
1069 "command-switches": {
1070 "patterns": [
1071 {
1072 "name": "variable.parameter.switch.apl",
1073 "begin": "(?x)\n(?<=\\s)(-)\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]*\n)\n(=)",
1074 "end": "\\b(?=\\s)",
1075 "beginCaptures": {
1076 "1": {
1077 "name": "punctuation.delimiter.switch.apl"
1078 },
1079 "2": {
1080 "name": "entity.name.switch.apl"
1081 },
1082 "3": {
1083 "name": "punctuation.assignment.switch.apl"
1084 }
1085 },
1086 "patterns": [
1087 {
1088 "include": "#main"
1089 }
1090 ]
1091 },
1092 {
1093 "name": "variable.parameter.switch.apl",
1094 "match": "(?x)\n(?<=\\s)(-)\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]*\n)\n(?!=)",
1095 "captures": {
1096 "1": {
1097 "name": "punctuation.delimiter.switch.apl"
1098 },
1099 "2": {
1100 "name": "entity.name.switch.apl"
1101 }
1102 }
1103 }
1104 ]
1105 },
1106 "sck": {
1107 "patterns": [
1108 {
1109 "name": "keyword.control.sck.apl",
1110 "match": "(?<=\\s|^)(:)[A-Za-z]+",
1111 "captures": {
1112 "1": {
1113 "name": "punctuation.definition.sck.begin.apl"
1114 }
1115 }
1116 }
1117 ]
1118 },
1119 "class": {
1120 "patterns": [
1121 {
1122 "begin": "(?x)\n(?<=\\s|^)\n((:)Class)\n\\s+\n(\n\t'[^']*'?\n\t|\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]*\n)\n\\s*\n(\n\t(:)\n\t\\s*\n\t(?:\n\t\t(\n\t\t\t'[^']*'?\n\t\t\t|\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-]\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]*\n\t\t)\n\t\t\\s*\n\t)?\n)?\n(.*?)$",
1123 "end": "(?<=\\s|^)((:)EndClass)(?=\\b)",
1124 "beginCaptures": {
1125 "0": {
1126 "name": "meta.class.apl"
1127 },
1128 "1": {
1129 "name": "keyword.control.class.apl"
1130 },
1131 "2": {
1132 "name": "punctuation.definition.class.apl"
1133 },
1134 "3": {
1135 "name": "entity.name.type.class.apl",
1136 "patterns": [
1137 {
1138 "include": "#strings"
1139 }
1140 ]
1141 },
1142 "4": {
1143 "name": "entity.other.inherited-class.apl"
1144 },
1145 "5": {
1146 "name": "punctuation.separator.inheritance.apl"
1147 },
1148 "6": {
1149 "patterns": [
1150 {
1151 "include": "#strings"
1152 }
1153 ]
1154 },
1155 "7": {
1156 "name": "entity.other.class.interfaces.apl",
1157 "patterns": [
1158 {
1159 "include": "#csv"
1160 }
1161 ]
1162 }
1163 },
1164 "endCaptures": {
1165 "1": {
1166 "name": "keyword.control.class.apl"
1167 },
1168 "2": {
1169 "name": "punctuation.definition.class.apl"
1170 }
1171 },
1172 "patterns": [
1173 {
1174 "name": "meta.field.apl",
1175 "begin": "(?<=\\s|^)(:)Field(?=\\s)",
1176 "end": "\\s*(.*)?(?:$|(?=))",
1177 "beginCaptures": {
1178 "0": {
1179 "name": "keyword.control.field.apl"
1180 },
1181 "1": {
1182 "name": "punctuation.definition.field.apl"
1183 }
1184 },
1185 "endCaptures": {
1186 "0": {
1187 "name": "entity.other.initial-value.apl"
1188 },
1189 "1": {
1190 "patterns": [
1191 {
1192 "include": "#main"
1193 }
1194 ]
1195 }
1196 },
1197 "patterns": [
1198 {
1199 "name": "storage.modifier.access.public.apl",
1200 "match": "(?<=\\s|^)Public(?=\\s|$)"
1201 },
1202 {
1203 "name": "storage.modifier.access.private.apl",
1204 "match": "(?<=\\s|^)Private(?=\\s|$)"
1205 },
1206 {
1207 "name": "storage.modifier.shared.apl",
1208 "match": "(?<=\\s|^)Shared(?=\\s|$)"
1209 },
1210 {
1211 "name": "storage.modifier.instance.apl",
1212 "match": "(?<=\\s|^)Instance(?=\\s|$)"
1213 },
1214 {
1215 "name": "storage.modifier.readonly.apl",
1216 "match": "(?<=\\s|^)ReadOnly(?=\\s|$)"
1217 },
1218 {
1219 "name": "entity.name.type.apl",
1220 "match": "(?x)\n(\n\t'[^']*'?\n\t|\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ-¯0-9]*\n)",
1221 "captures": {
1222 "1": {
1223 "patterns": [
1224 {
1225 "include": "#strings"
1226 }
1227 ]
1228 }
1229 }
1230 }
1231 ]
1232 },
1233 {
1234 "include": "$self"
1235 }
1236 ]
1237 }
1238 ]
1239 },
1240 "csv": {
1241 "patterns": [
1242 {
1243 "match": ",",
1244 "name": "punctuation.separator.apl"
1245 },
1246 {
1247 "include": "$self"
1248 }
1249 ]
1250 },
1251 "heredocs": {
1252 "patterns": [
1253 {
1254 "name": "meta.heredoc.apl",
1255 "begin": "^.*?INP\\s+('|\")((?i).*?HTML?.*?|END-OF-⎕INP)\\1.*$",
1256 "end": "^.*?\\2.*?$",
1257 "beginCaptures": {
1258 "0": {
1259 "patterns": [
1260 {
1261 "include": "#main"
1262 }
1263 ]
1264 }
1265 },
1266 "endCaptures": {
1267 "0": {
1268 "name": "constant.other.apl"
1269 }
1270 },
1271 "contentName": "text.embedded.html.basic",
1272 "patterns": [
1273 {
1274 "include": "text.html.basic"
1275 },
1276 {
1277 "include": "#embedded-apl"
1278 }
1279 ]
1280 },
1281 {
1282 "name": "meta.heredoc.apl",
1283 "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:XML|XSLT|SVG|RSS).*?)\\1.*$",
1284 "end": "^.*?\\2.*?$",
1285 "beginCaptures": {
1286 "0": {
1287 "patterns": [
1288 {
1289 "include": "#main"
1290 }
1291 ]
1292 }
1293 },
1294 "endCaptures": {
1295 "0": {
1296 "name": "constant.other.apl"
1297 }
1298 },
1299 "contentName": "text.embedded.xml",
1300 "patterns": [
1301 {
1302 "include": "text.xml"
1303 },
1304 {
1305 "include": "#embedded-apl"
1306 }
1307 ]
1308 },
1309 {
1310 "name": "meta.heredoc.apl",
1311 "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:CSS|stylesheet).*?)\\1.*$",
1312 "end": "^.*?\\2.*?$",
1313 "beginCaptures": {
1314 "0": {
1315 "patterns": [
1316 {
1317 "include": "#main"
1318 }
1319 ]
1320 }
1321 },
1322 "endCaptures": {
1323 "0": {
1324 "name": "constant.other.apl"
1325 }
1326 },
1327 "contentName": "source.embedded.css",
1328 "patterns": [
1329 {
1330 "include": "source.css"
1331 },
1332 {
1333 "include": "#embedded-apl"
1334 }
1335 ]
1336 },
1337 {
1338 "name": "meta.heredoc.apl",
1339 "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:JS(?!ON)|(?:ECMA|J|Java).?Script).*?)\\1.*$",
1340 "end": "^.*?\\2.*?$",
1341 "beginCaptures": {
1342 "0": {
1343 "patterns": [
1344 {
1345 "include": "#main"
1346 }
1347 ]
1348 }
1349 },
1350 "endCaptures": {
1351 "0": {
1352 "name": "constant.other.apl"
1353 }
1354 },
1355 "contentName": "source.embedded.js",
1356 "patterns": [
1357 {
1358 "include": "source.js"
1359 },
1360 {
1361 "include": "#embedded-apl"
1362 }
1363 ]
1364 },
1365 {
1366 "name": "meta.heredoc.apl",
1367 "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:JSON).*?)\\1.*$",
1368 "end": "^.*?\\2.*?$",
1369 "beginCaptures": {
1370 "0": {
1371 "patterns": [
1372 {
1373 "include": "#main"
1374 }
1375 ]
1376 }
1377 },
1378 "endCaptures": {
1379 "0": {
1380 "name": "constant.other.apl"
1381 }
1382 },
1383 "contentName": "source.embedded.json",
1384 "patterns": [
1385 {
1386 "include": "source.json"
1387 },
1388 {
1389 "include": "#embedded-apl"
1390 }
1391 ]
1392 },
1393 {
1394 "name": "meta.heredoc.apl",
1395 "begin": "^.*?⎕INP\\s+('|\")(?i)((?:Raw|Plain)?\\s*Te?xt)\\1.*$",
1396 "end": "^.*?\\2.*?$",
1397 "beginCaptures": {
1398 "0": {
1399 "patterns": [
1400 {
1401 "include": "#main"
1402 }
1403 ]
1404 }
1405 },
1406 "endCaptures": {
1407 "0": {
1408 "name": "constant.other.apl"
1409 }
1410 },
1411 "contentName": "text.embedded.plain",
1412 "patterns": [
1413 {
1414 "include": "#embedded-apl"
1415 }
1416 ]
1417 },
1418 {
1419 "name": "meta.heredoc.apl",
1420 "begin": "^.*?⎕INP\\s+('|\")(.*?)\\1.*$",
1421 "end": "^.*?\\2.*?$",
1422 "beginCaptures": {
1423 "0": {
1424 "patterns": [
1425 {
1426 "include": "#main"
1427 }
1428 ]
1429 }
1430 },
1431 "endCaptures": {
1432 "0": {
1433 "name": "constant.other.apl"
1434 }
1435 },
1436 "patterns": [
1437 {
1438 "include": "$self"
1439 }
1440 ]
1441 }
1442 ]
1443 },
1444 "embedded-apl": {
1445 "patterns": [
1446 {
1447 "name": "meta.embedded.block.apl",
1448 "begin": "(?i)(<(\\?|%)(?:apl(?=\\s+)|=))",
1449 "end": "(?<=\\s)(\\2>)",
1450 "patterns": [
1451 {
1452 "include": "#main"
1453 }
1454 ],
1455 "beginCaptures": {
1456 "1": {
1457 "name": "punctuation.section.embedded.begin.apl"
1458 }
1459 },
1460 "endCaptures": {
1461 "1": {
1462 "name": "punctuation.section.embedded.end.apl"
1463 }
1464 }
1465 }
1466 ]
1467 }
1468 }
1469 }
1470