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

/***/ 952:
/***/ (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("sieve", function (config) {
    function words(str) {
      var obj = {},
          words = str.split(" ");

      for (var i = 0; i < words.length; ++i) {
        obj[words[i]] = true;
      }

      return obj;
    }

    var keywords = words("if elsif else stop require");
    var atoms = words("true false not");
    var indentUnit = config.indentUnit;

    function tokenBase(stream, state) {
      var ch = stream.next();

      if (ch == "/" && stream.eat("*")) {
        state.tokenize = tokenCComment;
        return tokenCComment(stream, state);
      }

      if (ch === '#') {
        stream.skipToEnd();
        return "comment";
      }

      if (ch == "\"") {
        state.tokenize = tokenString(ch);
        return state.tokenize(stream, state);
      }

      if (ch == "(") {
        state._indent.push("("); // add virtual angel wings so that editor behaves...
        // ...more sane incase of broken brackets


        state._indent.push("{");

        return null;
      }

      if (ch === "{") {
        state._indent.push("{");

        return null;
      }

      if (ch == ")") {
        state._indent.pop();

        state._indent.pop();
      }

      if (ch === "}") {
        state._indent.pop();

        return null;
      }

      if (ch == ",") return null;
      if (ch == ";") return null;
      if (/[{}\(\),;]/.test(ch)) return null; // 1*DIGIT "K" / "M" / "G"

      if (/\d/.test(ch)) {
        stream.eatWhile(/[\d]/);
        stream.eat(/[KkMmGg]/);
        return "number";
      } // ":" (ALPHA / "_") *(ALPHA / DIGIT / "_")


      if (ch == ":") {
        stream.eatWhile(/[a-zA-Z_]/);
        stream.eatWhile(/[a-zA-Z0-9_]/);
        return "operator";
      }

      stream.eatWhile(/\w/);
      var cur = stream.current(); // "text:" *(SP / HTAB) (hash-comment / CRLF)
      // *(multiline-literal / multiline-dotstart)
      // "." CRLF

      if (cur == "text" && stream.eat(":")) {
        state.tokenize = tokenMultiLineString;
        return "string";
      }

      if (keywords.propertyIsEnumerable(cur)) return "keyword";
      if (atoms.propertyIsEnumerable(cur)) return "atom";
      return null;
    }

    function tokenMultiLineString(stream, state) {
      state._multiLineString = true; // the first line is special it may contain a comment

      if (!stream.sol()) {
        stream.eatSpace();

        if (stream.peek() == "#") {
          stream.skipToEnd();
          return "comment";
        }

        stream.skipToEnd();
        return "string";
      }

      if (stream.next() == "." && stream.eol()) {
        state._multiLineString = false;
        state.tokenize = tokenBase;
      }

      return "string";
    }

    function tokenCComment(stream, state) {
      var maybeEnd = false,
          ch;

      while ((ch = stream.next()) != null) {
        if (maybeEnd && ch == "/") {
          state.tokenize = tokenBase;
          break;
        }

        maybeEnd = ch == "*";
      }

      return "comment";
    }

    function tokenString(quote) {
      return function (stream, state) {
        var escaped = false,
            ch;

        while ((ch = stream.next()) != null) {
          if (ch == quote && !escaped) break;
          escaped = !escaped && ch == "\\";
        }

        if (!escaped) state.tokenize = tokenBase;
        return "string";
      };
    }

    return {
      startState: function startState(base) {
        return {
          tokenize: tokenBase,
          baseIndent: base || 0,
          _indent: []
        };
      },
      token: function token(stream, state) {
        if (stream.eatSpace()) return null;
        return (state.tokenize || tokenBase)(stream, state);
      },
      indent: function indent(state, _textAfter) {
        var length = state._indent.length;
        if (_textAfter && _textAfter[0] == "}") length--;
        if (length < 0) length = 0;
        return length * indentUnit;
      },
      electricChars: "}"
    };
  });
  CodeMirror.defineMIME("application/sieve", "sieve");
});
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(102)(module)))

/***/ })

}]);