{"version":3,"file":"eiffel-u8sFjvpJ.cjs","sources":["../../../node_modules/@codemirror/legacy-modes/mode/eiffel.js"],"sourcesContent":["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}\nvar 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]);\nvar operators = wordObj([\":=\", \"and then\",\"and\", \"or\",\"<<\",\">>\"]);\n\nfunction chain(newtok, stream, state) {\n  state.tokenize.push(newtok);\n  return newtok(stream, state);\n}\n\nfunction 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 \"variable\";\n  } else if (/[a-zA-Z_0-9]/.test(ch)) {\n    stream.eatWhile(/[a-zA-Z_0-9]/);\n    stream.eat(/[\\?\\!]/);\n    return \"variable\";\n  } else if (/[=+\\-\\/*^%<>~]/.test(ch)) {\n    stream.eatWhile(/[=+\\-\\/*^%<>~]/);\n    return \"operator\";\n  } else {\n    return null;\n  }\n}\n\nfunction 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\nexport const eiffel = {\n  name: \"eiffel\",\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 == \"variable\") {\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  languageData: {\n    commentTokens: {line: \"--\"}\n  }\n};\n\n"],"names":["wordObj","words","o","i","e","length","keywords","operators","tokenBase","stream","state","eatSpace","quote","style","ch","next","newtok","tokenize","push","chain","escaped","pop","eat","skipToEnd","test","eatWhile","eiffel","name","startState","token","word","current","propertyIsEnumerable","languageData","commentTokens","line"],"mappings":"aAAA,SAASA,EAAQC,GAEf,IADA,IAAIC,EAAI,CAAA,EACCC,EAAI,EAAGC,EAAIH,EAAMI,OAAQF,EAAIC,IAAKD,EAAGD,EAAED,EAAME,KAAM,EAC5D,OAAOD,CACT,oEACA,IAAII,EAAWN,EAAQ,CACrB,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,OAEEO,EAAYP,EAAQ,CAAC,KAAM,WAAW,MAAO,KAAK,KAAK,OAO3D,SAASQ,EAAUC,EAAQC,GACzB,GAAID,EAAOE,WAAY,OAAO,KAC9B,IAwBkBC,EAAOC,EAxBrBC,EAAKL,EAAOM,OAChB,MAAU,KAAND,GAAiB,KAANA,EARjB,SAAeE,EAAQP,EAAQC,GAE7B,OADAA,EAAMO,SAASC,KAAKF,GACbA,EAAOP,EAAQC,EACxB,CAMWS,EAsBSP,EAtBQE,EAsBDD,EAtBK,SAuBvB,SAASJ,EAAQC,GAEtB,IADA,IAAqBI,EAAjBM,GAAU,EACiB,OAAvBN,EAAKL,EAAOM,SAAiB,CACnC,GAAID,GAAMF,IAAwBQ,EAAU,CAC1CV,EAAMO,SAASI,MACf,KACF,CACAD,GAAWA,GAAiB,KAANN,CACxB,CACA,OAAOD,CACT,GAjCyCJ,EAAQC,GAChC,KAANI,GAAWL,EAAOa,IAAI,MAC/Bb,EAAOc,YACA,WACQ,KAANT,GAAWL,EAAOa,IAAI,KACxB,WACE,QAAQE,KAAKV,IACtBL,EAAOgB,SAAS,iBAChBhB,EAAOa,IAAI,UACJ,YACE,eAAeE,KAAKV,IAC7BL,EAAOgB,SAAS,gBAChBhB,EAAOa,IAAI,UACJ,YACE,iBAAiBE,KAAKV,IAC/BL,EAAOgB,SAAS,kBACT,YAEA,IAEX,CAgBY,MAACC,EAAS,CACpBC,KAAM,SACNC,WAAY,WACV,MAAO,CAACX,SAAU,CAACT,GACrB,EAEAqB,MAAO,SAASpB,EAAQC,GACtB,IAAIG,EAAQH,EAAMO,SAASP,EAAMO,SAASZ,OAAO,GAAGI,EAAQC,GAC5D,GAAa,YAATG,EAAqB,CACvB,IAAIiB,EAAOrB,EAAOsB,UAClBlB,EAAQP,EAAS0B,qBAAqBvB,EAAOsB,WAAa,UACtDxB,EAAUyB,qBAAqBvB,EAAOsB,WAAa,WACnD,qBAAqBP,KAAKM,GAAQ,MAClC,iBAAiBN,KAAKM,IACtB,iBAAiBN,KAAKM,IACtB,uBAAuBN,KAAKM,IAC5B,uCAAuCN,KAAKM,IAC5C,YAAYN,KAAKM,GAJa,SAK9B,UACN,CACA,OAAOjB,CACT,EACAoB,aAAc,CACZC,cAAe,CAACC,KAAM","x_google_ignoreList":[0]}