{ "fileTypes": [ "apl" ], "foldingStartMarker": "{", "foldingStopMarker": "}", "name": "APL", "patterns": [ { "comment": "Shebang interpreter invokation", "match": "^#!.+", "name": "comment.shebang.apl" }, { "begin": "'", "beginCaptures": { "0": { "name": "support.type.string.single.begin.apl" } }, "comment": "String", "end": "(')|(\n)", "endCaptures": { "1": { "name": "support.type.string.single.end.apl" }, "2": { "name": "invalid.illegal.newline.apl" } }, "name": "string.quoted.single.apl", "patterns": [ { "match": "[a-zA-Z]+", "name": "string.quoted.single.content.apl" } ] }, { "comment": "Line comment", "match": "⍝.*", "name": "comment.line.apl" }, { "comment": "Numeric constant", "match": "[0-9][0-9\\.]*", "name": "constant.numeric.apl" }, { "comment": "Specifier label", "match": ":[a-zA-Z0-9]*", "name": "string.quoted.single.label.apl" }, { "comment": "Semicolon - conjoin", "match": ";", "name": "string.quoted.single.semicolon.apl" }, { "comment": "Open d-function/d-operator", "match": "{", "name": "support.function.open.apl" }, { "comment": "Close d-function/d-operator", "match": "}", "name": "support.function.close.apl" }, { "comment": "Open parenthesis - Vectors / ordering", "match": "\\(", "name": "support.function.parenthesis.open.apl" }, { "comment": "Close parenthesis - Vectors / ordering", "match": "\\)", "name": "support.function.parenthesis.close.apl" }, { "comment": "Left bracket - Indexing / axis specification", "match": "\\[", "name": "support.function.parenthesis.open.apl" }, { "comment": "Right bracket - Indexing / axis specification", "match": "\\]", "name": "support.function.parenthesis.close.apl" }, { "comment": "Left Arrow - Assign", "match": "←", "name": "support.function.construct.leftarrow.apl" }, { "comment": "Zilde - Empty numeric vector", "match": "⍬", "name": "support.function.construct.zilde.apl" }, { "comment": "Diamond - statement separator", "match": "⋄", "name": "support.function.construct.diamond.apl" }, { "comment": "Thorn - Format / format by specification", "match": "⍕", "name": "support.function.construct.thorn.apl" }, { "comment": "Del - self reference (recurse)", "match": "∇", "name": "support.function.construct.del.apl" }, { "comment": "Quad - system input", "match": "⎕[A-Z]*", "name": "support.function.construct.quad.apl" }, { "comment": "Rho - Shape/Reshape", "match": "∧", "name": "support.function.and.apl" }, { "comment": "Rho - Shape/Reshape", "match": "∨", "name": "support.function.or.apl" }, { "comment": "Rho - Shape/Reshape", "match": "⍲", "name": "support.function.nand.apl" }, { "comment": "Rho - Shape/Reshape", "match": "⍱", "name": "support.function.nor.apl" }, { "comment": "Less than - Less than", "match": "<", "name": "support.function.lessthan.apl" }, { "comment": "Greater than - Greater than", "match": ">", "name": "support.function.greaterthan.apl" }, { "comment": "Less than or equal to - Less than or equal to", "match": "≤", "name": "support.function.lessthanorequalto.apl" }, { "comment": "Greater than or equal to - Greater than or equal to", "match": "≥", "name": "support.function.greaterthanorequalto.apl" }, { "comment": "Equal - Equal to", "match": "=", "name": "support.function.equal.apl" }, { "comment": "Not equal - Not equal to (XOR)", "match": "≠", "name": "support.function.notequal.apl" }, { "comment": "Equal underbar - Depth / match", "match": "≡", "name": "support.function.equalunderbar.apl" }, { "comment": "Equal underbar slash - Tally / not match", "match": "≢", "name": "support.function.equalunderbarslash.apl" }, { "comment": "Rho - Shape/Reshape", "match": "⍴", "name": "storage.modifier.rho.apl" }, { "comment": "Dieresis - Each", "match": "¨", "name": "storage.modifier.dieresis.apl" }, { "comment": "Tilde dieresis - Commute", "match": "⍨", "name": "storage.modifier.tildedieresis.apl" }, { "comment": "Star dieresis - Power", "match": "⍣", "name": "storage.modifier.stardieresis.apl" }, { "comment": "Comma - Ravel / catenate-laminate", "match": ",", "name": "storage.modifier.comma.apl" }, { "comment": "Comma bar - Table / catenate-first-laminate", "match": "⍪", "name": "storage.modifier.commabar.apl" }, { "comment": "Circle stile - Reverse / rotate", "match": "⌽", "name": "storage.modifier.circlestile.apl" }, { "comment": "Circle bar - Reverse first / rotate first", "match": "⊖", "name": "storage.modifier.circlebar.apl" }, { "comment": "Circle backslash - Transpose / dyadic transpose", "match": "⍉", "name": "storage.modifier.circlebackslash.apl" }, { "comment": "Up arrow - Mix / take", "match": "↑", "name": "storage.modifier.uparrow.apl" }, { "comment": "Down arrow - Split / drop", "match": "↓", "name": "storage.modifier.downarrow.apl" }, { "comment": "Left shoe - Enclose / partitioned enclose", "match": "⊂", "name": "storage.modifier.leftshoe.apl" }, { "comment": "High minus - Negate", "match": "¯", "name": "support.function.math.highminus.apl" }, { "comment": "Plus - Conjugate / Add", "match": "\\+", "name": "support.function.math.plus.apl" }, { "comment": "Minus - Negate / Minus", "match": "-", "name": "support.function.math.minus.apl" }, { "comment": "Divide - Reciprocal / Divide", "match": "÷", "name": "support.function.math.divide.apl" }, { "comment": "Times - Sign Of / Multiply", "match": "×", "name": "support.function.math.times.apl" }, { "comment": "Star - Exponential / Power", "match": "\\*", "name": "support.function.math.star.apl" }, { "comment": "Exclamation Mark - Factorial / Binomial", "match": "!", "name": "support.function.math.exclamationmark.apl" }, { "comment": "Question Mark - Roll / Deal", "match": "\\?", "name": "support.function.math.questionmark.apl" }, { "comment": "Stile - Magnitude / Residue", "match": "\\|", "name": "support.function.math.stile.apl" }, { "comment": "Upstile - Ceiling / Maximum", "match": "⌈", "name": "support.function.math.upstile.apl" }, { "comment": "Downstile - Floor / Minimum", "match": "⌊", "name": "support.function.math.downstile.apl" }, { "comment": "Uptack - Decode", "match": "⊥", "name": "support.function.math.uptack.apl" }, { "comment": "Downtack - Encode", "match": "⊤", "name": "support.function.math.downtack.apl" }, { "comment": "Log - Natural logarithm / logarithm", "match": "⍟", "name": "support.function.math.log.apl" }, { "comment": "Circle - Pi times / trig", "match": "○", "name": "support.function.math.circle.apl" }, { "comment": "Domino - Matrix inverse / matrix divide", "match": "⌹", "name": "support.function.math.domino.apl" }, { "comment": "Double alpha variable", "match": "⍺⍺", "name": "constant.other.parameter.doublealpha.apl" }, { "comment": "Alpha variable", "match": "⍺", "name": "constant.language.parameter.alpha.apl" }, { "comment": "Double Omega variable", "match": "⍵⍵", "name": "constant.other.parameter.doubleomega.apl" }, { "comment": "Omega variable", "match": "⍵", "name": "constant.language.parameter.omega.apl" }, { "comment": "Slash - reduce, first axis", "match": "/", "name": "keyword.operator.reduce.apl" }, { "comment": "Slash bar - reduce, last axis", "match": "⌿", "name": "keyword.operator.reducelast.apl" }, { "comment": "Backslash - scan, last axis", "match": "\\\\", "name": "keyword.operator.scan.apl" }, { "comment": "Backslash bar - scan, first axis", "match": "⍀", "name": "keyword.operator.scanlast.apl" }, { "comment": "Jot - outer product", "match": "∘", "name": "keyword.operator.jot.apl" }, { "comment": "Dot - inner product", "match": "\\.", "name": "keyword.operator.innerproduct.apl" }, { "comment": "Quad equal - Key", "match": "⌸", "name": "keyword.operator.quadequal.apl" }, { "comment": "Jot diaerisis - Rank", "match": "⍤", "name": "keyword.operator.jotdiaerisis.apl" }, { "comment": "Squad - Materialize / index", "match": "⌷", "name": "keyword.operator.squad.apl" }, { "comment": "Right shoe - First / pick", "match": "⊃", "name": "keyword.operator.rightshoe.apl" }, { "comment": "Tilde - Not / without", "match": "~", "name": "keyword.operator.tilde.apl" }, { "comment": "Up shoe - Unique / union", "match": "∪", "name": "keyword.operator.upshoe.apl" }, { "comment": "Down shoe - Intersection", "match": "∩", "name": "keyword.operator.downshoe.apl" }, { "comment": "Left tack - Same / left", "match": "⊣", "name": "keyword.operator.lefttack.apl" }, { "comment": "Right tack - Same / right", "match": "⊢", "name": "keyword.operator.righttack.apl" }, { "comment": "Iota - Index generator / index of", "match": "⍳", "name": "constant.numeric.iota.apl" }, { "comment": "Epsilon - Enlist / membership", "match": "∊", "name": "support.function.epsilon.apl" }, { "comment": "Epsilon underbar - Find", "match": "⍷", "name": "support.function.epsilonunderbar.apl" }, { "comment": "Grade up - Grade up / dyadic grade up", "match": "⍋", "name": "support.function.gradeup.apl" }, { "comment": "Grade down - Grade down / dyadic grade down", "match": "⍒", "name": "support.function.gradedown.apl" } ], "scopeName": "source.apl", "uuid": "0d05b65e-3e85-4493-8936-fece72e43e47" }