tm-grammars 0.0.0

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