function e(e){for(var t={},n=0,r=e.length;n>`]);function r(e,t,n){return n.tokenize.push(e),e(t,n)}function i(e,t){if(e.eatSpace())return null;var n=e.next();return n==`"`||n==`'`?r(a(n,`string`),e,t):n==`-`&&e.eat(`-`)?(e.skipToEnd(),`comment`):n==`:`&&e.eat(`=`)?`operator`:/[0-9]/.test(n)?(e.eatWhile(/[xXbBCc0-9\.]/),e.eat(/[\?\!]/),`variable`):/[a-zA-Z_0-9]/.test(n)?(e.eatWhile(/[a-zA-Z_0-9]/),e.eat(/[\?\!]/),`variable`):/[=+\-\/*^%<>~]/.test(n)?(e.eatWhile(/[=+\-\/*^%<>~]/),`operator`):null}function a(e,t,n){return function(r,i){for(var a=!1,o;(o=r.next())!=null;){if(o==e&&(n||!a)){i.tokenize.pop();break}a=!a&&o==`%`}return t}}var o={name:`eiffel`,startState:function(){return{tokenize:[i]}},token:function(e,r){var i=r.tokenize[r.tokenize.length-1](e,r);if(i==`variable`){var a=e.current();i=t.propertyIsEnumerable(e.current())?`keyword`:n.propertyIsEnumerable(e.current())?`operator`:/^[A-Z][A-Z_0-9]*$/g.test(a)?`tag`:/^0[bB][0-1]+$/g.test(a)||/^0[cC][0-7]+$/g.test(a)||/^0[xX][a-fA-F0-9]+$/g.test(a)||/^([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/g.test(a)||/^[0-9]+$/g.test(a)?`number`:`variable`}return i},languageData:{commentTokens:{line:`--`}}};export{o as eiffel};