(this["webpackJsonpPlugin"] = this["webpackJsonpPlugin"] || []).push([[29],{

/***/ 880:
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: https://codemirror.net/LICENSE
(function (mod) {
  if (( false ? undefined : _typeof(exports)) == "object" && ( false ? undefined : _typeof(module)) == "object") // CommonJS
    mod(__webpack_require__(266));else if (true) // AMD
    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(266)], __WEBPACK_AMD_DEFINE_FACTORY__ = (mod),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else // Plain browser env
    {}
})(function (CodeMirror) {
  "use strict";

  CodeMirror.defineMode("apl", function () {
    var builtInOps = {
      ".": "innerProduct",
      "\\": "scan",
      "/": "reduce",
      "⌿": "reduce1Axis",
      "⍀": "scan1Axis",
      "¨": "each",
      "⍣": "power"
    };
    var builtInFuncs = {
      "+": ["conjugate", "add"],
      "−": ["negate", "subtract"],
      "×": ["signOf", "multiply"],
      "÷": ["reciprocal", "divide"],
      "⌈": ["ceiling", "greaterOf"],
      "⌊": ["floor", "lesserOf"],
      "∣": ["absolute", "residue"],
      "⍳": ["indexGenerate", "indexOf"],
      "?": ["roll", "deal"],
      "⋆": ["exponentiate", "toThePowerOf"],
      "⍟": ["naturalLog", "logToTheBase"],
      "○": ["piTimes", "circularFuncs"],
      "!": ["factorial", "binomial"],
      "⌹": ["matrixInverse", "matrixDivide"],
      "<": [null, "lessThan"],
      "≤": [null, "lessThanOrEqual"],
      "=": [null, "equals"],
      ">": [null, "greaterThan"],
      "≥": [null, "greaterThanOrEqual"],
      "≠": [null, "notEqual"],
      "≡": ["depth", "match"],
      "≢": [null, "notMatch"],
      "∈": ["enlist", "membership"],
      "⍷": [null, "find"],
      "∪": ["unique", "union"],
      "∩": [null, "intersection"],
      "∼": ["not", "without"],
      "∨": [null, "or"],
      "∧": [null, "and"],
      "⍱": [null, "nor"],
      "⍲": [null, "nand"],
      "⍴": ["shapeOf", "reshape"],
      ",": ["ravel", "catenate"],
      "⍪": [null, "firstAxisCatenate"],
      "⌽": ["reverse", "rotate"],
      "⊖": ["axis1Reverse", "axis1Rotate"],
      "⍉": ["transpose", null],
      "↑": ["first", "take"],
      "↓": [null, "drop"],
      "⊂": ["enclose", "partitionWithAxis"],
      "⊃": ["diclose", "pick"],
      "⌷": [null, "index"],
      "⍋": ["gradeUp", null],
      "⍒": ["gradeDown", null],
      "⊤": ["encode", null],
      "⊥": ["decode", null],
      "⍕": ["format", "formatByExample"],
      "⍎": ["execute", null],
      "⊣": ["stop", "left"],
      "⊢": ["pass", "right"]
    };
    var isOperator = /[\.\/⌿⍀¨⍣]/;
    var isNiladic = /⍬/;
    var isFunction = /[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/;
    var isArrow = /←/;
    var isComment = /[⍝#].*$/;

    var stringEater = function stringEater(type) {
      var prev;
      prev = false;
      return function (c) {
        prev = c;

        if (c === type) {
          return prev === "\\";
        }

        return true;
      };
    };

    return {
      startState: function startState() {
        return {
          prev: false,
          func: false,
          op: false,
          string: false,
          escape: false
        };
      },
      token: function token(stream, state) {
        var ch, funcName;

        if (stream.eatSpace()) {
          return null;
        }

        ch = stream.next();

        if (ch === '"' || ch === "'") {
          stream.eatWhile(stringEater(ch));
          stream.next();
          state.prev = true;
          return "string";
        }

        if (/[\[{\(]/.test(ch)) {
          state.prev = false;
          return null;
        }

        if (/[\]}\)]/.test(ch)) {
          state.prev = true;
          return null;
        }

        if (isNiladic.test(ch)) {
          state.prev = false;
          return "niladic";
        }

        if (/[¯\d]/.test(ch)) {
          if (state.func) {
            state.func = false;
            state.prev = false;
          } else {
            state.prev = true;
          }

          stream.eatWhile(/[\w\.]/);
          return "number";
        }

        if (isOperator.test(ch)) {
          return "operator apl-" + builtInOps[ch];
        }

        if (isArrow.test(ch)) {
          return "apl-arrow";
        }

        if (isFunction.test(ch)) {
          funcName = "apl-";

          if (builtInFuncs[ch] != null) {
            if (state.prev) {
              funcName += builtInFuncs[ch][1];
            } else {
              funcName += builtInFuncs[ch][0];
            }
          }

          state.func = true;
          state.prev = false;
          return "function " + funcName;
        }

        if (isComment.test(ch)) {
          stream.skipToEnd();
          return "comment";
        }

        if (ch === "∘" && stream.peek() === ".") {
          stream.next();
          return "function jot-dot";
        }

        stream.eatWhile(/[\w\$_]/);
        state.prev = true;
        return "keyword";
      }
    };
  });
  CodeMirror.defineMIME("text/apl", "apl");
});
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(102)(module)))

/***/ })

}]);