openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

sieve.min.js (2004B)


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