kjelsrud.dev/node_modules/shiki/languages/apl.tmLanguage.json

1469 lines
43 KiB
JSON
Raw Normal View History

2023-07-19 21:31:30 +02:00
{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"name": "apl",
"scopeName": "source.apl",
"fileTypes": ["apl", "apla", "aplc", "aplf", "apli", "apln", "aplo", "dyalog", "dyapp", "mipage"],
"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)",
"foldingStartMarker": "{",
"foldingStopMarker": "}",
"patterns": [
{
"match": "\\A#!.*$",
"name": "comment.line.shebang.apl"
},
{
"include": "#heredocs"
},
{
"include": "#main"
},
{
"contentName": "text.embedded.apl",
"begin": "^\\s*((\\))OFF|(\\])NEXTFILE)\\b(.*)$",
"end": "(?=N)A",
"beginCaptures": {
"1": {
"name": "entity.name.command.eof.apl"
},
"2": {
"name": "punctuation.definition.command.apl"
},
"3": {
"name": "punctuation.definition.command.apl"
},
"4": {
"patterns": [
{
"include": "#comment"
}
]
}
}
},
{
"name": "meta.round.bracketed.group.apl",
"patterns": [
{
"include": "#main"
}
],
"begin": "\\(",
"end": "\\)",
"beginCaptures": {
"0": {
"name": "punctuation.round.bracket.begin.apl"
}
},
"endCaptures": {
"0": {
"name": "punctuation.round.bracket.end.apl"
}
}
},
{
"name": "meta.square.bracketed.group.apl",
"patterns": [
{
"include": "#main"
}
],
"begin": "\\[",
"end": "\\]",
"beginCaptures": {
"0": {
"name": "punctuation.square.bracket.begin.apl"
}
},
"endCaptures": {
"0": {
"name": "punctuation.square.bracket.end.apl"
}
}
},
{
"name": "meta.system.command.apl",
"begin": "^\\s*((\\))\\S+)",
"end": "$",
"beginCaptures": {
"1": {
"name": "entity.name.command.apl"
},
"2": {
"name": "punctuation.definition.command.apl"
}
},
"patterns": [
{
"include": "#command-arguments"
},
{
"include": "#command-switches"
},
{
"include": "#main"
}
]
},
{
"name": "meta.user.command.apl",
"begin": "^\\s*((\\])\\S+)",
"end": "$",
"beginCaptures": {
"1": {
"name": "entity.name.command.apl"
},
"2": {
"name": "punctuation.definition.command.apl"
}
},
"patterns": [
{
"include": "#command-arguments"
},
{
"include": "#command-switches"
},
{
"include": "#main"
}
]
}
],
"repository": {
"main": {
"patterns": [
{
"include": "#class"
},
{
"include": "#definition"
},
{
"include": "#comment"
},
{
"include": "#label"
},
{
"include": "#sck"
},
{
"include": "#strings"
},
{
"include": "#number"
},
{
"include": "#lambda"
},
{
"include": "#sysvars"
},
{
"include": "#symbols"
},
{
"include": "#name"
}
]
},
"comment": {
"patterns": [
{
"name": "comment.line.apl",
"begin": "⍝",
"end": "$",
"captures": {
"0": {
"name": "punctuation.definition.comment.apl"
}
}
}
]
},
"number": {
"patterns": [
{
"name": "constant.numeric.apl",
"match": "¯?[0-9][¯0-9A-Za-z]*(?:\\.[¯0-9Ee][¯0-9A-Za-z]*)*|¯?\\.[0-9Ee][¯0-9A-Za-z]*"
}
]
},
"strings": {
"patterns": [
{
"name": "string.quoted.single.apl",
"begin": "'",
"end": "'|$",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.apl"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.apl"
}
},
"patterns": [
{
"match": "[^']*[^'\\n\\r\\\\]$",
"name": "invalid.illegal.string.apl"
}
]
},
{
"name": "string.quoted.double.apl",
"begin": "\"",
"end": "\"|$",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.apl"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.apl"
}
},
"patterns": [
{
"match": "[^\"]*[^\"\\n\\r\\\\]$",
"name": "invalid.illegal.string.apl"
}
]
}
]
},
"name": {
"patterns": [
{
"name": "variable.other.readwrite.apl",
"match": "(?x)\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*"
}
]
},
"label": {
"patterns": [
{
"name": "meta.label.apl",
"match": "(?x)\n^\\s*\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(:)",
"captures": {
"1": {
"name": "entity.label.name.apl"
},
"2": {
"name": "punctuation.definition.label.end.apl"
}
}
}
]
},
"symbols": {
"patterns": [
{
"match": "(?<=\\s)←(?=\\s|$)",
"name": "keyword.spaced.operator.assignment.apl"
},
{
"match": "(?<=\\s)→(?=\\s|$)",
"name": "keyword.spaced.control.goto.apl"
},
{
"match": "(?<=\\s)≡(?=\\s|$)",
"name": "keyword.spaced.operator.identical.apl"
},
{
"match": "(?<=\\s)≢(?=\\s|$)",
"name": "keyword.spaced.operator.not-identical.apl"
},
{
"match": "\\+",
"name": "keyword.operator.plus.apl"
},
{
"match": "[-]",
"name": "keyword.operator.minus.apl"
},
{
"match": "×",
"name": "keyword.operator.times.apl"
},
{
"match": "÷",
"name": "keyword.operator.divide.apl"
},
{
"match": "⌊",
"name": "keyword.operator.floor.apl"
},
{
"match": "⌈",
"name": "keyword.operator.ceiling.apl"
},
{
"match": "[|]",
"name": "keyword.operator.absolute.apl"
},
{
"match": "[⋆*]",
"name": "keyword.operator.exponent.apl"
},
{
"match": "⍟",
"name": "keyword.operator.logarithm.apl"
},
{
"match": "○",
"name": "keyword.operator.circle.apl"
},
{
"match": "!",
"name": "keyword.operator.factorial.apl"
},
{
"match": "∧",
"name": "keyword.operator.and.apl"
},
{
"match": "",
"name": "keyword.operator.or.apl"
},
{
"match": "⍲",
"name": "keyword.operator.nand.apl"
},
{
"match": "⍱",
"name": "keyword.operator.nor.apl"
},
{
"match": "<",
"name": "keyword.operator.less.apl"
},
{
"match": "≤",
"name": "keyword.operator.less-or-equal.apl"
},
{
"match": "=",
"name": "keyword.operator.equal.apl"
},
{
"match": "≥",
"name": "keyword.operator.greater-or-equal.apl"
},
{
"match": ">",
"name": "keyword.operator.greater.apl"
},
{
"match": "≠",
"name": "keyword.operator.not-equal.apl"
},
{
"match": "[~]",
"name": "keyword.operator.tilde.apl"
},
{
"match": "\\?",
"name": "keyword.operator.random.apl"
},
{
"match": "[∊∈]",
"name": "keyword.operator.member-of.apl"
},
{
"match": "⍷",
"name": "keyword.operator.find.apl"
},
{
"match": ",",
"name": "keyword.operator.comma.apl"
},
{
"match": "⍪",
"name": "keyword.operator.comma-bar.apl"
},
{
"match": "⌷",
"name": "keyword.operator.squad.apl"
},
{
"match": "",
"name": "keyword.operator.iota.apl"
},
{
"match": "",
"name": "keyword.operator.rho.apl"
},
{
"match": "↑",
"name": "keyword.operator.take.apl"
},
{
"match": "↓",
"name": "keyword.operator.drop.apl"
},
{
"match": "⊣",
"name": "keyword.operator.left.apl"
},
{
"match": "⊢",
"name": "keyword.operator.right.apl"
},
{
"match": "",
"name": "keyword.operator.encode.apl"
},
{
"match": "⊥",
"name": "keyword.operator.decode.apl"
},
{
"match": "\\/",
"name": "keyword.operator.slash.apl"
},
{
"match": "⌿",
"name": "keyword.operator.slash-bar.apl"
},
{
"match": "\\x5C",
"name": "keyword.operator.backslash.apl"
},
{
"match": "⍀",
"name": "keyword.operator.backslash-bar.apl"
},
{
"match": "⌽",
"name": "keyword.operator.rotate-last.apl"
},
{
"match": "⊖",
"name": "keyword.operator.rotate-first.apl"
},
{
"match": "⍉",
"name": "keyword.operator.transpose.apl"
},
{
"match": "⍋",
"name": "keyword.operator.grade-up.apl"
},
{
"match": "⍒",
"name": "keyword.operator.grade-down.apl"
},
{
"match": "⌹",
"name": "keyword.operator.quad-divide.apl"
},
{
"match": "≡",
"name": "keyword.operator.identical.apl"
},
{
"match": "≢",
"name": "keyword.operator.not-identical.apl"
},
{
"match": "⊂",
"name": "keyword.operator.enclose.apl"
},
{
"match": "⊃",
"name": "keyword.operator.pick.apl"
},
{
"match": "∩",
"name": "keyword.operator.intersection.apl"
},
{
"match": "",
"name": "keyword.operator.union.apl"
},
{
"match": "⍎",
"name": "keyword.operator.hydrant.apl"
},
{
"match": "⍕",
"name": "keyword.operator.thorn.apl"
},
{
"match": "⊆",
"name": "keyword.operator.underbar-shoe-left.apl"
},
{
"match": "⍸",
"name": "keyword.operator.underbar-iota.apl"
},
{
"match": "¨",
"name": "keyword.operator.each.apl"
},
{
"match": "⍤",
"name": "keyword.operator.rank.apl"
},
{
"match": "⌸",
"name": "keyword.operator.quad-equal.apl"
},
{
"match": "⍨",
"name": "keyword.operator.commute.apl"
},
{
"match": "⍣",
"name": "keyword.operator.power.apl"
},
{
"match": "\\.",
"name": "keyword.operator.dot.apl"
},
{
"match": "∘",
"name": "keyword.operator.jot.apl"
},
{
"match": "⍠",
"name": "keyword.operator.quad-colon.apl"
},
{
"match": "&",
"name": "keyword.operator.ampersand.apl"
},
{
"match": "⌶",
"name": "keyword.operator.i-beam.apl"
},
{
"match": "⌺",
"name": "keyword.operator.quad-diamond.apl"
},
{
"match": "@",
"name": "keyword.operator.at.apl"
},
{
"match": "◊",
"name": "keyword.operator.lozenge.apl"
},
{
"match": ";",
"name": "keyword.operator.semicolon.apl"
},
{
"match": "¯",
"name": "keyword.operator.high-minus.apl"
},
{
"match": "←",
"name": "keyword.operator.assignment.apl"
},
{
"match": "→",
"name": "keyword.control.goto.apl"
},
{
"match": "⍬",
"name": "constant.language.zilde.apl"
},
{
"match": "⋄",
"name": "keyword.operator.diamond.apl"
},
{
"match": "⍫",
"name": "keyword.operator.lock.apl"
},
{
"match": "⎕",
"name": "keyword.operator.quad.apl"
},
{
"match": "##",
"name": "constant.language.namespace.parent.apl"
},
{
"match": "#",
"name": "constant.language.namespace.root.apl"
},
{
"match": "⌻",
"name": "keyword.operator.quad-jot.apl"
},
{
"match": "⌼",
"name": "keyword.operator.quad-circle.apl"
},
{
"match": "⌾",
"name": "keyword.operator.circle-jot.apl"
},
{
"match": "⍁",
"name": "keyword.operator.quad-slash.apl"
},
{
"match": "⍂",
"name": "keyword.operator.quad-backslash.apl"
},
{
"match": "⍃",
"name": "keyword.operator.quad-less.apl"
},
{
"match": "⍄",
"name": "keyword.operator.greater.apl"
},
{
"match": "⍅",
"name": "keyword.operator.vane-left.apl"
},
{
"match": "⍆",
"name": "keyword.operator.vane-right.apl"
},
{
"match": "⍇",
"name": "keyword.operator.quad-arrow-left.apl"
},
{
"match": "⍈",
"name": "keyword.operator.quad-arrow-right.apl"
},
{
"match": "⍊",
"name": "keyword.operator.tack-down.apl"
},
{
"match": "⍌",
"name": "keyword.operator.quad-caret-down.apl"
},
{
"match": "⍍",
"name": "keyword.operator.quad-del-up.apl"
},
{
"match": "⍏",
"name": "keyword.operator.vane-up.apl"
},
{
"match": "⍐",
"name": "keyword.operator.quad-arrow-up.apl"
},
{
"match": "⍑",
"name": "keyword.operator.tack-up.apl"
},
{
"match": "⍓",
"name": "keyword.operator.quad-caret-up.apl"
},
{
"match": "⍔",
"name": "keyword.operator.quad-del-down.apl"
},
{
"match": "⍖",
"name": "keyword.operator.vane-down.apl"
},
{
"match": "⍗",
"name": "keyword.operator.quad-arrow-down.apl"
},
{
"match": "⍘",
"name": "keyword.operator.underbar-quote.apl"
},
{
"match": "⍚",
"name": "keyword.operator.underbar-diamond.apl"
},
{
"match": "⍛",
"name": "keyword.operator.underbar-jot.apl"
},
{
"match": "⍜",
"name": "keyword.operator.underbar-circle.apl"
},
{
"match": "⍞",
"name": "keyword.operator.quad-quote.apl"
},
{
"match": "⍡",
"name": "keyword.operator.dotted-tack-up.apl"
},
{
"match": "⍢",
"name": "keyword.operator.dotted-del.apl"
},
{
"match": "⍥",
"name": "keyword.operator.dotted-circle.apl"
},
{
"match": "⍦",
"name": "keyword.operator.stile-shoe-up.apl"
},
{
"match": "⍧",
"name": "keyword.operator.stile-shoe-left.apl"
},
{
"match": "⍩",
"name": "keyword.operator.dotted-greater.apl"
},
{
"match": "⍭",
"name": "keyword.operator.stile-tilde.apl"
},
{
"match": "⍮",
"name": "keyword.operator.underbar-semicolon.apl"
},
{
"match": "⍯",
"name": "keyword.operator.quad-not-equal.apl"
},
{
"match": "⍰",
"name": "keyword.operator.quad-question.apl"
}
]
},
"definition": {
"patterns": [
{
"name": "meta.function.apl",
"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À-ÖØ-Ýßà-
"end": "^\\s*?(?:(∇)|(⍫))\\s*?(⍝.*?)?$",
"patterns": [
{
"name": "entity.function.definition.apl",
"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)",
"captures": {
"0": {
"name": "entity.function.local-variables.apl"
},
"1": {
"patterns": [
{
"name": "punctuation.separator.apl",
"match": ";"
}
]
}
}
},
{
"include": "$self"
}
],
"beginCaptures": {
"0": {
"name": "entity.function.definition.apl"
},
"1": {
"name": "keyword.operator.nabla.apl"
},
"2": {
"name": "entity.function.return-value.apl"
},
"3": {
"name": "entity.function.return-value.shy.apl"
},
"4": {
"name": "punctuation.definition.return-value.begin.apl"
},
"5": {
"name": "punctuation.definition.return-value.end.apl"
},
"6": {
"name": "punctuation.definition.return-value.begin.apl"
},
"7": {
"name": "punctuation.definition.return-value.end.apl"
},
"8": {
"name": "punctuation.definition.return-value.begin.apl"
},
"9": {
"name": "punctuation.definition.return-value.end.apl"
},
"10": {
"name": "punctuation.definition.return-value.begin.apl"
},
"11": {
"name": "punctuation.definition.return-value.end.apl"
},
"12": {
"name": "keyword.operator.assignment.apl"
},
"13": {
"name": "entity.function.name.apl",
"patterns": [
{
"include": "#embolden"
}
]
},
"14": {
"name": "entity.function.axis.apl"
},
"15": {
"name": "punctuation.definition.axis.begin.apl"
},
"16": {
"name": "invalid.illegal.extra-characters.apl"
},
"17": {
"name": "invalid.illegal.apl"
},
"18": {
"name": "punctuation.definition.axis.end.apl"
},
"19": {
"name": "entity.function.arguments.right.apl"
},
"20": {
"name": "punctuation.definition.arguments.begin.apl"
},
"21": {
"name": "punctuation.definition.arguments.end.apl"
},
"22": {
"name": "entity.function.arguments.left.apl"
},
"23": {
"name": "entity.function.arguments.left.optional.apl"
},
"24": {
"name": "punctuation.definition.arguments.begin.apl"
},
"25": {
"name": "punctuation.definition.arguments.end.apl"
},
"26": {
"name": "punctuation.definition.arguments.begin.apl"
},
"27": {
"name": "punctuation.definition.arguments.end.apl"
},
"28": {
"name": "punctuation.definition.arguments.begin.apl"
},
"29": {
"name": "punctuation.definition.arguments.end.apl"
},
"30": {
"name": "entity.function.name.apl",
"patterns": [
{
"include": "#embolden"
}
]
},
"31": {
"name": "entity.function.axis.apl"
},
"32": {
"name": "punctuation.definition.axis.begin.apl"
},
"33": {
"name": "invalid.illegal.extra-characters.apl"
},
"34": {
"name": "invalid.illegal.apl"
},
"35": {
"name": "punctuation.definition.axis.end.apl"
},
"36": {
"name": "entity.function.operands.apl"
},
"37": {
"name": "punctuation.definition.operands.begin.apl"
},
"38": {
"name": "entity.function.operands.left.apl"
},
"39": {
"name": "entity.function.name.apl",
"patterns": [
{
"include": "#embolden"
}
]
},
"40": {
"name": "entity.function.axis.apl"
},
"41": {
"name": "punctuation.definition.axis.begin.apl"
},
"42": {
"name": "invalid.illegal.extra-characters.apl"
},
"43": {
"name": "invalid.illegal.apl"
},
"44": {
"name": "punctuation.definition.axis.end.apl"
},
"45": {
"name": "entity.function.operands.right.apl"
},
"46": {
"name": "punctuation.definition.operands.end.apl"
},
"47": {
"name": "entity.function.arguments.right.apl"
},
"48": {
"name": "punctuation.definition.arguments.begin.apl"
},
"49": {
"name": "punctuation.definition.arguments.end.apl"
},
"50": {
"name": "invalid.illegal.arguments.right.apl"
},
"51": {
"name": "entity.function.local-variables.apl"
},
"52": {
"patterns": [
{
"name": "punctuation.separator.apl",
"match": ";"
}
]
},
"53": {
"name": "invalid.illegal.local-variables.apl"
},
"54": {
"name": "comment.line.apl"
}
},
"endCaptures": {
"1": {
"name": "keyword.operator.nabla.apl"
},
"2": {
"name": "keyword.operator.lock.apl"
},
"3": {
"name": "comment.line.apl"
}
}
}
]
},
"embolden": {
"patterns": [
{
"name": "markup.bold.identifier.apl",
"match": ".+"
}
]
},
"lambda": {
"name": "meta.lambda.function.apl",
"begin": "\\{",
"end": "\\}",
"beginCaptures": {
"0": {
"name": "punctuation.definition.lambda.begin.apl"
}
},
"endCaptures": {
"0": {
"name": "punctuation.definition.lambda.end.apl"
}
},
"patterns": [
{
"include": "#main"
},
{
"include": "#lambda-variables"
}
]
},
"lambda-variables": {
"patterns": [
{
"match": "",
"name": "constant.language.lambda.operands.left.apl"
},
{
"match": "⍵⍵",
"name": "constant.language.lambda.operands.right.apl"
},
{
"match": "[⍺⍶]",
"name": "constant.language.lambda.arguments.left.apl"
},
{
"match": "[⍵⍹]",
"name": "constant.language.lambda.arguments.right.apl"
},
{
"match": "χ",
"name": "constant.language.lambda.arguments.axis.apl"
},
{
"match": "∇∇",
"name": "constant.language.lambda.operands.self.operator.apl"
},
{
"match": "∇",
"name": "constant.language.lambda.operands.self.function.apl"
},
{
"match": "λ",
"name": "constant.language.lambda.symbol.apl"
}
]
},
"sysvars": {
"patterns": [
{
"match": "(?:(⎕)|(⍞))[A-Za-z]*",
"name": "support.system.variable.apl",
"captures": {
"1": {
"name": "punctuation.definition.quad.apl"
},
"2": {
"name": "punctuation.definition.quad-quote.apl"
}
}
}
]
},
"command-arguments": {
"patterns": [
{
"name": "variable.parameter.argument.apl",
"begin": "\\b(?=\\S)",
"end": "\\b(?=\\s)",
"patterns": [
{
"include": "#main"
}
]
}
]
},
"command-switches": {
"patterns": [
{
"name": "variable.parameter.switch.apl",
"begin": "(?x)\n(?<=\\s)(-)\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(=)",
"end": "\\b(?=\\s)",
"beginCaptures": {
"1": {
"name": "punctuation.delimiter.switch.apl"
},
"2": {
"name": "entity.name.switch.apl"
},
"3": {
"name": "punctuation.assignment.switch.apl"
}
},
"patterns": [
{
"include": "#main"
}
]
},
{
"name": "variable.parameter.switch.apl",
"match": "(?x)\n(?<=\\s)(-)\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(?!=)",
"captures": {
"1": {
"name": "punctuation.delimiter.switch.apl"
},
"2": {
"name": "entity.name.switch.apl"
}
}
}
]
},
"sck": {
"patterns": [
{
"name": "keyword.control.sck.apl",
"match": "(?<=\\s|^)(:)[A-Za-z]+",
"captures": {
"1": {
"name": "punctuation.definition.sck.begin.apl"
}
}
}
]
},
"class": {
"patterns": [
{
"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(.*?)$",
"end": "(?<=\\s|^)((:)EndClass)(?=\\b)",
"beginCaptures": {
"0": {
"name": "meta.class.apl"
},
"1": {
"name": "keyword.control.class.apl"
},
"2": {
"name": "punctuation.definition.class.apl"
},
"3": {
"name": "entity.name.type.class.apl",
"patterns": [
{
"include": "#strings"
}
]
},
"4": {
"name": "entity.other.inherited-class.apl"
},
"5": {
"name": "punctuation.separator.inheritance.apl"
},
"6": {
"patterns": [
{
"include": "#strings"
}
]
},
"7": {
"name": "entity.other.class.interfaces.apl",
"patterns": [
{
"include": "#csv"
}
]
}
},
"endCaptures": {
"1": {
"name": "keyword.control.class.apl"
},
"2": {
"name": "punctuation.definition.class.apl"
}
},
"patterns": [
{
"name": "meta.field.apl",
"begin": "(?<=\\s|^)(:)Field(?=\\s)",
"end": "\\s*(←.*)?(?:$|(?=⍝))",
"beginCaptures": {
"0": {
"name": "keyword.control.field.apl"
},
"1": {
"name": "punctuation.definition.field.apl"
}
},
"endCaptures": {
"0": {
"name": "entity.other.initial-value.apl"
},
"1": {
"patterns": [
{
"include": "#main"
}
]
}
},
"patterns": [
{
"name": "storage.modifier.access.public.apl",
"match": "(?<=\\s|^)Public(?=\\s|$)"
},
{
"name": "storage.modifier.access.private.apl",
"match": "(?<=\\s|^)Private(?=\\s|$)"
},
{
"name": "storage.modifier.shared.apl",
"match": "(?<=\\s|^)Shared(?=\\s|$)"
},
{
"name": "storage.modifier.instance.apl",
"match": "(?<=\\s|^)Instance(?=\\s|$)"
},
{
"name": "storage.modifier.readonly.apl",
"match": "(?<=\\s|^)ReadOnly(?=\\s|$)"
},
{
"name": "entity.name.type.apl",
"match": "(?x)\n(\n\t'[^']*'?\n\t|\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)",
"captures": {
"1": {
"patterns": [
{
"include": "#strings"
}
]
}
}
}
]
},
{
"include": "$self"
}
]
}
]
},
"csv": {
"patterns": [
{
"match": ",",
"name": "punctuation.separator.apl"
},
{
"include": "$self"
}
]
},
"heredocs": {
"patterns": [
{
"name": "meta.heredoc.apl",
"begin": "^.*?⎕INP\\s+('|\")((?i).*?HTML?.*?|END-OF-⎕INP)\\1.*$",
"end": "^.*?\\2.*?$",
"beginCaptures": {
"0": {
"patterns": [
{
"include": "#main"
}
]
}
},
"endCaptures": {
"0": {
"name": "constant.other.apl"
}
},
"contentName": "text.embedded.html.basic",
"patterns": [
{
"include": "text.html.basic"
},
{
"include": "#embedded-apl"
}
]
},
{
"name": "meta.heredoc.apl",
"begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:XML|XSLT|SVG|RSS).*?)\\1.*$",
"end": "^.*?\\2.*?$",
"beginCaptures": {
"0": {
"patterns": [
{
"include": "#main"
}
]
}
},
"endCaptures": {
"0": {
"name": "constant.other.apl"
}
},
"contentName": "text.embedded.xml",
"patterns": [
{
"include": "text.xml"
},
{
"include": "#embedded-apl"
}
]
},
{
"name": "meta.heredoc.apl",
"begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:CSS|stylesheet).*?)\\1.*$",
"end": "^.*?\\2.*?$",
"beginCaptures": {
"0": {
"patterns": [
{
"include": "#main"
}
]
}
},
"endCaptures": {
"0": {
"name": "constant.other.apl"
}
},
"contentName": "source.embedded.css",
"patterns": [
{
"include": "source.css"
},
{
"include": "#embedded-apl"
}
]
},
{
"name": "meta.heredoc.apl",
"begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:JS(?!ON)|(?:ECMA|J|Java).?Script).*?)\\1.*$",
"end": "^.*?\\2.*?$",
"beginCaptures": {
"0": {
"patterns": [
{
"include": "#main"
}
]
}
},
"endCaptures": {
"0": {
"name": "constant.other.apl"
}
},
"contentName": "source.embedded.js",
"patterns": [
{
"include": "source.js"
},
{
"include": "#embedded-apl"
}
]
},
{
"name": "meta.heredoc.apl",
"begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:JSON).*?)\\1.*$",
"end": "^.*?\\2.*?$",
"beginCaptures": {
"0": {
"patterns": [
{
"include": "#main"
}
]
}
},
"endCaptures": {
"0": {
"name": "constant.other.apl"
}
},
"contentName": "source.embedded.json",
"patterns": [
{
"include": "source.json"
},
{
"include": "#embedded-apl"
}
]
},
{
"name": "meta.heredoc.apl",
"begin": "^.*?⎕INP\\s+('|\")(?i)((?:Raw|Plain)?\\s*Te?xt)\\1.*$",
"end": "^.*?\\2.*?$",
"beginCaptures": {
"0": {
"patterns": [
{
"include": "#main"
}
]
}
},
"endCaptures": {
"0": {
"name": "constant.other.apl"
}
},
"contentName": "text.embedded.plain",
"patterns": [
{
"include": "#embedded-apl"
}
]
},
{
"name": "meta.heredoc.apl",
"begin": "^.*?⎕INP\\s+('|\")(.*?)\\1.*$",
"end": "^.*?\\2.*?$",
"beginCaptures": {
"0": {
"patterns": [
{
"include": "#main"
}
]
}
},
"endCaptures": {
"0": {
"name": "constant.other.apl"
}
},
"patterns": [
{
"include": "$self"
}
]
}
]
},
"embedded-apl": {
"patterns": [
{
"name": "meta.embedded.block.apl",
"begin": "(?i)(<(\\?|%)(?:apl(?=\\s+)|=))",
"end": "(?<=\\s)(\\2>)",
"patterns": [
{
"include": "#main"
}
],
"beginCaptures": {
"1": {
"name": "punctuation.section.embedded.begin.apl"
}
},
"endCaptures": {
"1": {
"name": "punctuation.section.embedded.end.apl"
}
}
}
]
}
}
}