1{"version":3,"sources":["../../node_modules/codemirror/mode/eiffel/eiffel.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","wordObj","words","o","i","e","length","keywords","operators","chain","newtok","stream","state","tokenize","push","tokenBase","eatSpace","ch","next","readQuoted","eat","skipToEnd","test","eatWhile","quote","style","unescaped","escaped","pop","startState","token","word","current","propertyIsEnumerable","lineComment","defineMIME"],"mappings":"CAGA,SAAUA,GACR,SAAWC,UAAW,gBAAmBC,SAAU,SACjDF,EAAIG,QAAQ,6BACT,UAAWC,SAAU,YAAcA,OAAOC,IAC7CD,QAAQ,wBAAyBJ,OAEjCA,GAAIM,cACL,SAASA,GACZ,YAEAA,GAAWC,WAAW,SAAU,WAC9B,QAASC,GAAQC,GACf,GAAIC,KACJ,KAAK,GAAIC,GAAI,EAAGC,EAAIH,EAAMI,OAAQF,EAAIC,IAAKD,EAAGD,EAAED,EAAME,IAAM,IAC5D,OAAOD,GAET,GAAII,GAAWN,GACb,OACA,SACA,OACA,UACA,QACA,SACA,WACA,OACA,QACA,SACA,QACA,SACA,UACA,SACA,YACA,WACA,SACA,OACA,MACA,WACA,OACA,QACA,OACA,KACA,UACA,QACA,UACA,KACA,SACA,OACA,WACA,SACA,SACA,MACA,SACA,OACA,KACA,WACA,SACA,QACA,QACA,QACA,WACA,YACA,UACA,WACA,UACA,WACA,WACA,QACA,OACA,OACA,SACA,YACA,QACA,UACA,SACA,WACA,aACA,KACA,MACA,UACA,MACA,MAEF,IAAIO,GAAYP,GAAS,KAAM,WAAW,MAAO,KAAK,KAAK,MAE3D,SAASQ,GAAMC,EAAQC,EAAQC,GAC7BA,EAAMC,SAASC,KAAKJ,EACpB,OAAOA,GAAOC,EAAQC,GAGxB,QAASG,GAAUJ,EAAQC,GACzB,GAAID,EAAOK,WAAY,MAAO,KAC9B,IAAIC,GAAKN,EAAOO,MAChB,IAAID,GAAM,KAAKA,GAAM,IAAK,CACxB,MAAOR,GAAMU,EAAWF,EAAI,UAAWN,EAAQC,OAC1C,IAAIK,GAAM,KAAKN,EAAOS,IAAI,KAAM,CACrCT,EAAOU,WACP,OAAO,cACF,IAAIJ,GAAM,KAAKN,EAAOS,IAAI,KAAM,CACrC,MAAO,eACF,IAAI,QAAQE,KAAKL,GAAK,CAC3BN,EAAOY,SAAS,gBAChBZ,GAAOS,IAAI,SACX,OAAO,YACF,IAAI,eAAeE,KAAKL,GAAK,CAClCN,EAAOY,SAAS,eAChBZ,GAAOS,IAAI,SACX,OAAO,YACF,IAAI,iBAAiBE,KAAKL,GAAK,CACpCN,EAAOY,SAAS,iBAChB,OAAO,eACF,CACL,MAAO,OAIX,QAASJ,GAAWK,EAAOC,EAAQC,GACjC,MAAO,UAASf,EAAQC,GACtB,GAAIe,GAAU,MAAOV,CACrB,QAAQA,EAAKN,EAAOO,SAAW,KAAM,CACnC,GAAID,GAAMO,IAAUE,IAAcC,GAAU,CAC1Cf,EAAMC,SAASe,KACf,OAEFD,GAAWA,GAAWV,GAAM,IAE9B,MAAOQ,IAIX,OACEI,WAAY,WACV,OAAQhB,UAAWE,KAGrBe,MAAO,SAASnB,EAAQC,GACtB,GAAIa,GAAQb,EAAMC,SAASD,EAAMC,SAASP,OAAO,GAAGK,EAAQC,EAC5D,IAAIa,GAAS,QAAS,CACpB,GAAIM,GAAOpB,EAAOqB,SAClBP,GAAQlB,EAAS0B,qBAAqBtB,EAAOqB,WAAa,UACtDxB,EAAUyB,qBAAqBtB,EAAOqB,WAAa,WACnD,qBAAqBV,KAAKS,GAAQ,MAClC,iBAAiBT,KAAKS,GAAQ,SAC9B,iBAAiBT,KAAKS,GAAQ,SAC9B,uBAAuBT,KAAKS,GAAQ,SACpC,uCAAuCT,KAAKS,GAAQ,SACpD,YAAYT,KAAKS,GAAQ,SACzB,WAEN,MAAON,IAETS,YAAa,OAIjBnC,GAAWoC,WAAW,gBAAiB","file":"eiffel.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"eiffel\", function() {\n function wordObj(words) {\n var o = {};\n for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true;\n return o;\n }\n var keywords = wordObj([\n 'note',\n 'across',\n 'when',\n 'variant',\n 'until',\n 'unique',\n 'undefine',\n 'then',\n 'strip',\n 'select',\n 'retry',\n 'rescue',\n 'require',\n 'rename',\n 'reference',\n 'redefine',\n 'prefix',\n 'once',\n 'old',\n 'obsolete',\n 'loop',\n 'local',\n 'like',\n 'is',\n 'inspect',\n 'infix',\n 'include',\n 'if',\n 'frozen',\n 'from',\n 'external',\n 'export',\n 'ensure',\n 'end',\n 'elseif',\n 'else',\n 'do',\n 'creation',\n 'create',\n 'check',\n 'alias',\n 'agent',\n 'separate',\n 'invariant',\n 'inherit',\n 'indexing',\n 'feature',\n 'expanded',\n 'deferred',\n 'class',\n 'Void',\n 'True',\n 'Result',\n 'Precursor',\n 'False',\n 'Current',\n 'create',\n 'attached',\n 'detachable',\n 'as',\n 'and',\n 'implies',\n 'not',\n 'or'\n ]);\n var operators = wordObj([\":=\", \"and then\",\"and\", \"or\",\"<<\",\">>\"]);\n\n function chain(newtok, stream, state) {\n state.tokenize.push(newtok);\n return newtok(stream, state);\n }\n\n function tokenBase(stream, state) {\n if (stream.eatSpace()) return null;\n var ch = stream.next();\n if (ch == '\"'||ch == \"'\") {\n return chain(readQuoted(ch, \"string\"), stream, state);\n } else if (ch == \"-\"&&stream.eat(\"-\")) {\n stream.skipToEnd();\n return \"comment\";\n } else if (ch == \":\"&&stream.eat(\"=\")) {\n return \"operator\";\n } else if (/[0-9]/.test(ch)) {\n stream.eatWhile(/[xXbBCc0-9\\.]/);\n stream.eat(/[\\?\\!]/);\n return \"ident\";\n } else if (/[a-zA-Z_0-9]/.test(ch)) {\n stream.eatWhile(/[a-zA-Z_0-9]/);\n stream.eat(/[\\?\\!]/);\n return \"ident\";\n } else if (/[=+\\-\\/*^%<>~]/.test(ch)) {\n stream.eatWhile(/[=+\\-\\/*^%<>~]/);\n return \"operator\";\n } else {\n return null;\n }\n }\n\n function readQuoted(quote, style, unescaped) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && (unescaped || !escaped)) {\n state.tokenize.pop();\n break;\n }\n escaped = !escaped && ch == \"%\";\n }\n return style;\n };\n }\n\n return {\n startState: function() {\n return {tokenize: [tokenBase]};\n },\n\n token: function(stream, state) {\n var style = state.tokenize[state.tokenize.length-1](stream, state);\n if (style == \"ident\") {\n var word = stream.current();\n style = keywords.propertyIsEnumerable(stream.current()) ? \"keyword\"\n : operators.propertyIsEnumerable(stream.current()) ? \"operator\"\n : /^[A-Z][A-Z_0-9]*$/g.test(word) ? \"tag\"\n : /^0[bB][0-1]+$/g.test(word) ? \"number\"\n : /^0[cC][0-7]+$/g.test(word) ? \"number\"\n : /^0[xX][a-fA-F0-9]+$/g.test(word) ? \"number\"\n : /^([0-9]+\\.[0-9]*)|([0-9]*\\.[0-9]+)$/g.test(word) ? \"number\"\n : /^[0-9]+$/g.test(word) ? \"number\"\n : \"variable\";\n }\n return style;\n },\n lineComment: \"--\"\n };\n});\n\nCodeMirror.defineMIME(\"text/x-eiffel\", \"eiffel\");\n\n});\n"]}