'use strict';(function(d){"object"==typeof exports&&"object"==typeof module?d(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],d):d(CodeMirror)})(function(d){d.defineMode("sieve",function(d){function g(a){var b={};a=a.split(" ");for(var c=0;c<a.length;++c)b[a[c]]=!0;return b}function e(a,b){var c=a.next();if("/"==c&&a.eat("*"))return b.tokenize=h,h(a,b);if("#"===c)return a.skipToEnd(),"comment";if('"'==c)return b.tokenize=k(c),b.tokenize(a,b);
if("("==c)return b._indent.push("("),b._indent.push("{"),null;if("{"===c)return b._indent.push("{"),null;")"==c&&(b._indent.pop(),b._indent.pop());if("}"===c)return b._indent.pop(),null;if(","==c||";"==c||/[{}\(\),;]/.test(c))return null;if(/\d/.test(c))return a.eatWhile(/[\d]/),a.eat(/[KkMmGg]/),"number";if(":"==c)return a.eatWhile(/[a-zA-Z_]/),a.eatWhile(/[a-zA-Z0-9_]/),"operator";a.eatWhile(/\w/);c=a.current();return"text"==c&&a.eat(":")?(b.tokenize=l,"string"):m.propertyIsEnumerable(c)?"keyword":
n.propertyIsEnumerable(c)?"atom":null}function l(a,b){b._multiLineString=!0;if(!a.sol()){a.eatSpace();if("#"==a.peek())return a.skipToEnd(),"comment";a.skipToEnd();return"string"}"."==a.next()&&a.eol()&&(b._multiLineString=!1,b.tokenize=e);return"string"}function h(a,b){for(var c=!1,d;null!=(d=a.next());){if(c&&"/"==d){b.tokenize=e;break}c="*"==d}return"comment"}function k(a){return function(b,c){for(var d=!1,f;null!=(f=b.next())&&(f!=a||d);)d=!d&&"\\"==f;d||(c.tokenize=e);return"string"}}var m=g("if elsif else stop require"),
n=g("true false not"),p=d.indentUnit;return{startState:function(a){return{tokenize:e,baseIndent:a||0,_indent:[]}},token:function(a,b){return a.eatSpace()?null:(b.tokenize||e)(a,b)},indent:function(a,b){a=a._indent.length;b&&"}"==b[0]&&a--;0>a&&(a=0);return a*p},electricChars:"}"}});d.defineMIME("application/sieve","sieve")});
