1{"version":3,"sources":["../../node_modules/codemirror/mode/apl/apl.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","builtInOps",".","\\","/","⌿","⍀","¨","⍣","builtInFuncs","+","−","×","÷","⌈","⌊","∣","⍳","?","⋆","⍟","○","!","⌹","<","≤","=",">","≥","≠","≡","≢","∈","⍷","∪","∩","∼","∨","∧","⍱","⍲","⍴",",","⍪","⌽","⊖","⍉","↑","↓","⊂","⊃","⌷","⍋","⍒","⊤","⊥","⍕","⍎","⊣","⊢","isOperator","isNiladic","isFunction","isArrow","isComment","stringEater","type","prev","c","startState","func","op","string","escape","token","stream","state","ch","funcName","eatSpace","next","eatWhile","test","skipToEnd","peek","defineMIME"],"mappings":"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","file":"apl.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n  if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n    mod(require(\"../../lib/codemirror\"));\n  else if (typeof define == \"function\" && define.amd) // AMD\n    define([\"../../lib/codemirror\"], mod);\n  else // Plain browser env\n    mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"apl\", function() {\n  var builtInOps = {\n    \".\": \"innerProduct\",\n    \"\\\\\": \"scan\",\n    \"/\": \"reduce\",\n    \"⌿\": \"reduce1Axis\",\n    \"⍀\": \"scan1Axis\",\n    \"¨\": \"each\",\n    \"⍣\": \"power\"\n  };\n  var builtInFuncs = {\n    \"+\": [\"conjugate\", \"add\"],\n    \"−\": [\"negate\", \"subtract\"],\n    \"×\": [\"signOf\", \"multiply\"],\n    \"÷\": [\"reciprocal\", \"divide\"],\n    \"⌈\": [\"ceiling\", \"greaterOf\"],\n    \"⌊\": [\"floor\", \"lesserOf\"],\n    \"∣\": [\"absolute\", \"residue\"],\n    \"⍳\": [\"indexGenerate\", \"indexOf\"],\n    \"?\": [\"roll\", \"deal\"],\n    \"⋆\": [\"exponentiate\", \"toThePowerOf\"],\n    \"⍟\": [\"naturalLog\", \"logToTheBase\"],\n    \"○\": [\"piTimes\", \"circularFuncs\"],\n    \"!\": [\"factorial\", \"binomial\"],\n    \"⌹\": [\"matrixInverse\", \"matrixDivide\"],\n    \"<\": [null, \"lessThan\"],\n    \"≤\": [null, \"lessThanOrEqual\"],\n    \"=\": [null, \"equals\"],\n    \">\": [null, \"greaterThan\"],\n    \"≥\": [null, \"greaterThanOrEqual\"],\n    \"≠\": [null, \"notEqual\"],\n    \"≡\": [\"depth\", \"match\"],\n    \"≢\": [null, \"notMatch\"],\n    \"∈\": [\"enlist\", \"membership\"],\n    \"⍷\": [null, \"find\"],\n    \"∪\": [\"unique\", \"union\"],\n    \"∩\": [null, \"intersection\"],\n    \"∼\": [\"not\", \"without\"],\n    \"∨\": [null, \"or\"],\n    \"∧\": [null, \"and\"],\n    \"⍱\": [null, \"nor\"],\n    \"⍲\": [null, \"nand\"],\n    \"⍴\": [\"shapeOf\", \"reshape\"],\n    \",\": [\"ravel\", \"catenate\"],\n    \"⍪\": [null, \"firstAxisCatenate\"],\n    \"⌽\": [\"reverse\", \"rotate\"],\n    \"⊖\": [\"axis1Reverse\", \"axis1Rotate\"],\n    \"⍉\": [\"transpose\", null],\n    \"↑\": [\"first\", \"take\"],\n    \"↓\": [null, \"drop\"],\n    \"⊂\": [\"enclose\", \"partitionWithAxis\"],\n    \"⊃\": [\"diclose\", \"pick\"],\n    \"⌷\": [null, \"index\"],\n    \"⍋\": [\"gradeUp\", null],\n    \"⍒\": [\"gradeDown\", null],\n    \"⊤\": [\"encode\", null],\n    \"⊥\": [\"decode\", null],\n    \"⍕\": [\"format\", \"formatByExample\"],\n    \"⍎\": [\"execute\", null],\n    \"⊣\": [\"stop\", \"left\"],\n    \"⊢\": [\"pass\", \"right\"]\n  };\n\n  var isOperator = /[\\.\\/⌿⍀¨⍣]/;\n  var isNiladic = /⍬/;\n  var isFunction = /[\\+−×÷⌈⌊∣⍳\\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;\n  var isArrow = /←/;\n  var isComment = /[⍝#].*$/;\n\n  var stringEater = function(type) {\n    var prev;\n    prev = false;\n    return function(c) {\n      prev = c;\n      if (c === type) {\n        return prev === \"\\\\\";\n      }\n      return true;\n    };\n  };\n  return {\n    startState: function() {\n      return {\n        prev: false,\n        func: false,\n        op: false,\n        string: false,\n        escape: false\n      };\n    },\n    token: function(stream, state) {\n      var ch, funcName;\n      if (stream.eatSpace()) {\n        return null;\n      }\n      ch = stream.next();\n      if (ch === '\"' || ch === \"'\") {\n        stream.eatWhile(stringEater(ch));\n        stream.next();\n        state.prev = true;\n        return \"string\";\n      }\n      if (/[\\[{\\(]/.test(ch)) {\n        state.prev = false;\n        return null;\n      }\n      if (/[\\]}\\)]/.test(ch)) {\n        state.prev = true;\n        return null;\n      }\n      if (isNiladic.test(ch)) {\n        state.prev = false;\n        return \"niladic\";\n      }\n      if (/[¯\\d]/.test(ch)) {\n        if (state.func) {\n          state.func = false;\n          state.prev = false;\n        } else {\n          state.prev = true;\n        }\n        stream.eatWhile(/[\\w\\.]/);\n        return \"number\";\n      }\n      if (isOperator.test(ch)) {\n        return \"operator apl-\" + builtInOps[ch];\n      }\n      if (isArrow.test(ch)) {\n        return \"apl-arrow\";\n      }\n      if (isFunction.test(ch)) {\n        funcName = \"apl-\";\n        if (builtInFuncs[ch] != null) {\n          if (state.prev) {\n            funcName += builtInFuncs[ch][1];\n          } else {\n            funcName += builtInFuncs[ch][0];\n          }\n        }\n        state.func = true;\n        state.prev = false;\n        return \"function \" + funcName;\n      }\n      if (isComment.test(ch)) {\n        stream.skipToEnd();\n        return \"comment\";\n      }\n      if (ch === \"∘\" && stream.peek() === \".\") {\n        stream.next();\n        return \"function jot-dot\";\n      }\n      stream.eatWhile(/[\\w\\$_]/);\n      state.prev = true;\n      return \"keyword\";\n    }\n  };\n});\n\nCodeMirror.defineMIME(\"text/apl\", \"apl\");\n\n});\n"]}