{ "name": "APL", "scopeName": "source.apl", "patterns": [ { "name": "comment.line.shebang.apl", "match": "\\A#!.*$" }, { "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", "begin": "\\(", "end": "\\)", "patterns": [ { "include": "#main" } ], "beginCaptures": { "0": { "name": "punctuation.round.bracket.begin.apl" } }, "endCaptures": { "0": { "name": "punctuation.round.bracket.end.apl" } } }, { "name": "meta.square.bracketed.group.apl", "begin": "\\[", "end": "\\]", "patterns": [ { "include": "#main" } ], "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": "$", "patterns": [ { "include": "#command-arguments" }, { "include": "#command-switches" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "entity.name.command.apl" }, "2": { "name": "punctuation.definition.command.apl" } } }, { "name": "meta.user.command.apl", "begin": "^\\s*((\\])\\S+)", "end": "$", "patterns": [ { "include": "#command-arguments" }, { "include": "#command-switches" }, { "include": "#main" } ], "beginCaptures": { "1": { "name": "entity.name.command.apl" }, "2": { "name": "punctuation.definition.command.apl" } } } ], "repository": { "class": { "patterns": [ { "begin": "(?x)\n(?\u003c=\\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": "(?\u003c=\\s|^)((:)EndClass)(?=\\b)", "patterns": [ { "name": "meta.field.apl", "begin": "(?\u003c=\\s|^)(:)Field(?=\\s)", "end": "\\s*(←.*)?(?:$|(?=⍝))", "patterns": [ { "name": "storage.modifier.access.${1:/downcase}.apl", "match": "(?\u003c=\\s|^)(Public|Private)(?=\\s|$)" }, { "name": "storage.modifier.${1:/downcase}.apl", "match": "(?\u003c=\\s|^)(Shared|Instance|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": { "include": "#strings" } } } ], "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" } ] } } }, { "include": "$self" } ], "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" } } } ] }, "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(?\u003c=\\s)(-)\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(=)", "end": "\\b(?=\\s)", "patterns": [ { "include": "#main" } ], "beginCaptures": { "1": { "name": "punctuation.delimiter.switch.apl" }, "2": { "name": "entity.name.switch.apl" }, "3": { "name": "punctuation.assignment.switch.apl" } } }, { "name": "variable.parameter.switch.apl", "match": "(?x)\n(?\u003c=\\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" } } } ] }, "comment": { "name": "comment.line.apl", "begin": "⍝", "end": "$", "captures": { "0": { "name": "punctuation.definition.comment.apl" } } }, "csv": { "patterns": [ { "name": "punctuation.separator.apl", "match": "," }, { "include": "$self" } ] }, "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) ( (?\u003c=\\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) ( (?\u003c=\\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) (⍝.*)? $", "end": "^\\s*?(?:(∇)|(⍫))\\s*?(⍝.*?)?$", "patterns": [ { "include": "$self" } ], "beginCaptures": { "0": { "name": "entity.function.definition.apl" }, "1": { "name": "keyword.operator.nabla.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", "captures": { "0": { "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" }, "2": { "name": "entity.function.return-value.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" }, "3": { "name": "entity.function.return-value.shy.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" } ] }, "4": { "name": "punctuation.definition.return-value.begin.apl" }, "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" }, "5": { "name": "punctuation.definition.return-value.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" }, "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" } }, "endCaptures": { "1": { "name": "keyword.operator.nabla.apl" }, "2": { "name": "keyword.operator.lock.apl" }, "3": { "name": "comment.line.apl" } } } ] }, "embedded-apl": { "patterns": [ { "name": "meta.embedded.block.apl", "begin": "(?i)(\u003c(\\?|%)(?:apl(?=\\s+)|=))", "end": "(?\u003c=\\s)(\\2\u003e)", "patterns": [ { "include": "#main" } ], "beginCaptures": { "1": { "name": "punctuation.section.embedded.begin.apl" } }, "endCaptures": { "1": { "name": "punctuation.section.embedded.end.apl" } } } ] }, "embolden": { "name": "markup.bold.identifier.apl", "match": ".+" }, "heredocs": { "patterns": [ { "name": "meta.heredoc.apl", "contentName": "text.embedded.html.basic", "begin": "^.*?⎕INP\\s+('|\")((?i).*?HTML?.*?|END-OF-⎕INP)\\1.*$", "end": "^.*?\\2.*?$", "patterns": [ { "include": "text.html.basic" }, { "include": "#embedded-apl" } ], "beginCaptures": { "0": { "patterns": [ { "include": "#main" } ] } }, "endCaptures": { "0": { "name": "constant.other.apl" } } }, { "name": "meta.heredoc.apl", "contentName": "text.embedded.xml", "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:XML|XSLT|SVG|RSS).*?)\\1.*$", "end": "^.*?\\2.*?$", "patterns": [ { "include": "text.xml" }, { "include": "#embedded-apl" } ], "beginCaptures": { "0": { "patterns": [ { "include": "#main" } ] } }, "endCaptures": { "0": { "name": "constant.other.apl" } } }, { "name": "meta.heredoc.apl", "contentName": "source.embedded.css", "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:CSS|stylesheet).*?)\\1.*$", "end": "^.*?\\2.*?$", "patterns": [ { "include": "source.css" }, { "include": "#embedded-apl" } ], "beginCaptures": { "0": { "patterns": [ { "include": "#main" } ] } }, "endCaptures": { "0": { "name": "constant.other.apl" } } }, { "name": "meta.heredoc.apl", "contentName": "source.embedded.js", "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:JS(?!ON)|(?:ECMA|J|Java).?Script).*?)\\1.*$", "end": "^.*?\\2.*?$", "patterns": [ { "include": "source.js" }, { "include": "#embedded-apl" } ], "beginCaptures": { "0": { "patterns": [ { "include": "#main" } ] } }, "endCaptures": { "0": { "name": "constant.other.apl" } } }, { "name": "meta.heredoc.apl", "contentName": "source.embedded.json", "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:JSON).*?)\\1.*$", "end": "^.*?\\2.*?$", "patterns": [ { "include": "source.json" }, { "include": "#embedded-apl" } ], "beginCaptures": { "0": { "patterns": [ { "include": "#main" } ] } }, "endCaptures": { "0": { "name": "constant.other.apl" } } }, { "name": "meta.heredoc.apl", "contentName": "text.embedded.plain", "begin": "^.*?⎕INP\\s+('|\")(?i)((?:Raw|Plain)?\\s*Te?xt)\\1.*$", "end": "^.*?\\2.*?$", "patterns": [ { "include": "#embedded-apl" } ], "beginCaptures": { "0": { "patterns": [ { "include": "#main" } ] } }, "endCaptures": { "0": { "name": "constant.other.apl" } } }, { "name": "meta.heredoc.apl", "begin": "^.*?⎕INP\\s+('|\")(.*?)\\1.*$", "end": "^.*?\\2.*?$", "patterns": [ { "include": "$self" } ], "beginCaptures": { "0": { "patterns": [ { "include": "#main" } ] } }, "endCaptures": { "0": { "name": "constant.other.apl" } } } ] }, "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" } } } ] }, "lambda": { "name": "meta.lambda.function.apl", "begin": "\\{", "end": "\\}", "patterns": [ { "include": "#main" }, { "include": "#lambda-variables" } ], "beginCaptures": { "0": { "name": "punctuation.definition.lambda.begin.apl" } }, "endCaptures": { "0": { "name": "punctuation.definition.lambda.end.apl" } } }, "lambda-variables": { "patterns": [ { "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", "match": "λ" } ] }, "main": { "patterns": [ { "include": "#class" }, { "include": "#definition" }, { "include": "#comment" }, { "include": "#label" }, { "include": "#sck" }, { "include": "#strings" }, { "include": "#number" }, { "include": "#lambda" }, { "include": "#sysvars" }, { "include": "#symbols" }, { "include": "#name" } ] }, "name": { "name": "variable.other.readwrite.apl", "match": "(?x)\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*" }, "number": { "name": "constant.numeric.apl", "match": "(?:[¯0-9]|\\.[0-9])[¯0-9A-Za-z]*" }, "sck": { "patterns": [ { "name": "keyword.control.sck.apl", "match": "(?\u003c=\\s|^)(:)[A-Za-z]+", "captures": { "1": { "name": "punctuation.definition.sck.begin.apl" } } } ] }, "strings": { "patterns": [ { "name": "string.quoted.single.apl", "begin": "'", "end": "'|$", "patterns": [ { "name": "invalid.illegal.string.apl", "match": "[^']*[^'\\n\\r\\\\]$" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.apl" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.apl" } } }, { "name": "string.quoted.double.apl", "begin": "\"", "end": "\"|$", "patterns": [ { "name": "invalid.illegal.string.apl", "match": "[^\"]*[^\"\\n\\r\\\\]$" } ], "beginCaptures": { "0": { "name": "punctuation.definition.string.begin.apl" } }, "endCaptures": { "0": { "name": "punctuation.definition.string.end.apl" } } } ] }, "symbols": { "patterns": [ { "name": "keyword.spaced.operator.assignment.apl", "match": "(?\u003c=\\s)←(?=\\s|$)" }, { "name": "keyword.spaced.control.goto.apl", "match": "(?\u003c=\\s)→(?=\\s|$)" }, { "name": "keyword.spaced.operator.identical.apl", "match": "(?\u003c=\\s)≡(?=\\s|$)" }, { "name": "keyword.spaced.operator.not-identical.apl", "match": "(?\u003c=\\s)≢(?=\\s|$)" }, { "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": "\u003c" }, { "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": "\u003e" }, { "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": "⌿" }, { "name": "keyword.operator.backslash.apl", "match": "\\x5C" }, { "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": "\u0026" }, { "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", "match": "⍰" } ] }, "sysvars": { "name": "support.system.variable.apl", "match": "(?:(⎕)|(⍞))[A-Za-z]*", "captures": { "1": { "name": "punctuation.definition.quad.apl" }, "2": { "name": "punctuation.definition.quad-quote.apl" } } } } }