Current File : /home/pacjaorg/public_html/kmm/media/vendor/codemirror/mode/eiffel/eiffel.min.js |
(function(i){typeof exports=="object"&&typeof module=="object"?i(require("../../lib/codemirror")):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],i):i(CodeMirror)})(function(i){"use strict";i.defineMode("eiffel",function(){function a(e){for(var t={},n=0,r=e.length;n<r;++n)t[e[n]]=!0;return t}var f=a(["note","across","when","variant","until","unique","undefine","then","strip","select","retry","rescue","require","rename","reference","redefine","prefix","once","old","obsolete","loop","local","like","is","inspect","infix","include","if","frozen","from","external","export","ensure","end","elseif","else","do","creation","create","check","alias","agent","separate","invariant","inherit","indexing","feature","expanded","deferred","class","Void","True","Result","Precursor","False","Current","create","attached","detachable","as","and","implies","not","or"]),l=a([":=","and then","and","or","<<",">>"]);function c(e,t,n){return n.tokenize.push(e),e(t,n)}function s(e,t){if(e.eatSpace())return null;var n=e.next();return n=='"'||n=="'"?c(d(n,"string"),e,t):n=="-"&&e.eat("-")?(e.skipToEnd(),"comment"):n==":"&&e.eat("=")?"operator":/[0-9]/.test(n)?(e.eatWhile(/[xXbBCc0-9\.]/),e.eat(/[\?\!]/),"ident"):/[a-zA-Z_0-9]/.test(n)?(e.eatWhile(/[a-zA-Z_0-9]/),e.eat(/[\?\!]/),"ident"):/[=+\-\/*^%<>~]/.test(n)?(e.eatWhile(/[=+\-\/*^%<>~]/),"operator"):null}function d(e,t,n){return function(r,p){for(var o=!1,u;(u=r.next())!=null;){if(u==e&&(n||!o)){p.tokenize.pop();break}o=!o&&u=="%"}return t}}return{startState:function(){return{tokenize:[s]}},token:function(e,t){var n=t.tokenize[t.tokenize.length-1](e,t);if(n=="ident"){var r=e.current();n=f.propertyIsEnumerable(e.current())?"keyword":l.propertyIsEnumerable(e.current())?"operator":/^[A-Z][A-Z_0-9]*$/g.test(r)?"tag":/^0[bB][0-1]+$/g.test(r)||/^0[cC][0-7]+$/g.test(r)||/^0[xX][a-fA-F0-9]+$/g.test(r)||/^([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/g.test(r)||/^[0-9]+$/g.test(r)?"number":"variable"}return n},lineComment:"--"}}),i.defineMIME("text/x-eiffel","eiffel")});