openrat-cms

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

eiffel.min.js (2181B)


      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('eiffel',function(){function e(e){var r={};for(var t=0,n=e.length;t<n;++t)r[e[t]]=!0;return r};var t=e(['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']),r=e([':=','and then','and','or','<<','>>']);function n(e,t,r){r.tokenize.push(e);return e(t,r)};function i(e,r){if(e.eatSpace())return null;var t=e.next();if(t=='"'||t=='\''){return n(o(t,'string'),e,r)}
      2 else if(t=='-'&&e.eat('-')){e.skipToEnd();return'comment'}
      3 else if(t==':'&&e.eat('=')){return'operator'}
      4 else if(/[0-9]/.test(t)){e.eatWhile(/[xXbBCc0-9\.]/);e.eat(/[\?\!]/);return'ident'}
      5 else if(/[a-zA-Z_0-9]/.test(t)){e.eatWhile(/[a-zA-Z_0-9]/);e.eat(/[\?\!]/);return'ident'}
      6 else if(/[=+\-\/*^%<>~]/.test(t)){e.eatWhile(/[=+\-\/*^%<>~]/);return'operator'}
      7 else{return null}};function o(e,t,r){return function(n,i){var o=!1,a;while((a=n.next())!=null){if(a==e&&(r||!o)){i.tokenize.pop();break};o=!o&&a=='%'};return t}};return{startState:function(){return{tokenize:[i]}},token:function(e,n){var o=n.tokenize[n.tokenize.length-1](e,n);if(o=='ident'){var i=e.current();o=t.propertyIsEnumerable(e.current())?'keyword':r.propertyIsEnumerable(e.current())?'operator':/^[A-Z][A-Z_0-9]*$/g.test(i)?'tag':/^0[bB][0-1]+$/g.test(i)?'number':/^0[cC][0-7]+$/g.test(i)?'number':/^0[xX][a-fA-F0-9]+$/g.test(i)?'number':/^([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/g.test(i)?'number':/^[0-9]+$/g.test(i)?'number':'variable'};return o},lineComment:'--'}});e.defineMIME('text/x-eiffel','eiffel')});