function e(e){for(var t={},n=e.split(` `),r=0;r!?|\/]/,d;function f(e,t){var f=e.next();if(l[f]){var h=l[f](e,t);if(h!==!1)return h}if(f==`"`||f==`'`)return t.tokenize=p(f),t.tokenize(e,t);if(/[\[\]{}\(\),;\:\.]/.test(f))return d=f,null;if(/\d/.test(f))return e.eatWhile(/[\w\.]/),`number`;if(f==`/`){if(e.eat(`*`))return t.tokenize=m,m(e,t);if(e.eat(`/`))return e.skipToEnd(),`comment`}if(u.test(f))return e.eatWhile(u),`operator`;e.eatWhile(/[\w\$_]/);var g=e.current().toLowerCase();if(n.propertyIsEnumerable(g))return s.propertyIsEnumerable(g)&&(d=`newstatement`),`keyword`;if(r.propertyIsEnumerable(g))return s.propertyIsEnumerable(g)&&(d=`newstatement`),`variable`;if(i.propertyIsEnumerable(g))return s.propertyIsEnumerable(g)&&(d=`newstatement`),`modifier`;if(a.propertyIsEnumerable(g))return s.propertyIsEnumerable(g)&&(d=`newstatement`),`type`;if(o.propertyIsEnumerable(g))return s.propertyIsEnumerable(g)&&(d=`newstatement`),`builtin`;for(var _=g.length-1;_>=0&&(!isNaN(g[_])||g[_]==`_`);)--_;if(_>0){var v=g.substr(0,_+1);if(a.propertyIsEnumerable(v))return s.propertyIsEnumerable(v)&&(d=`newstatement`),`type`}return c.propertyIsEnumerable(g)?`atom`:null}function p(e){return function(t,n){for(var r=!1,i,a=!1;(i=t.next())!=null;){if(i==e&&!r){a=!0;break}r=!r&&i==`\\`}return(a||!r)&&(n.tokenize=f),`string`}}function m(e,t){for(var n=!1,r;r=e.next();){if(r==`/`&&n){t.tokenize=f;break}n=r==`*`}return`comment`}function h(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function g(e,t,n){return e.context=new h(e.indented,t,n,null,e.context)}function _(e){var t=e.context.type;return(t==`)`||t==`]`||t==`}`)&&(e.indented=e.context.indented),e.context=e.context.prev}var v={name:`ecl`,startState:function(e){return{tokenize:null,context:new h(-e,0,`top`,!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(n.align??=!1,t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;d=null;var r=(t.tokenize||f)(e,t);if(r==`comment`||r==`meta`)return r;if(n.align??=!0,(d==`;`||d==`:`)&&n.type==`statement`)_(t);else if(d==`{`)g(t,e.column(),`}`);else if(d==`[`)g(t,e.column(),`]`);else if(d==`(`)g(t,e.column(),`)`);else if(d==`}`){for(;n.type==`statement`;)n=_(t);for(n.type==`}`&&(n=_(t));n.type==`statement`;)n=_(t)}else d==n.type?_(t):(n.type==`}`||n.type==`top`||n.type==`statement`&&d==`newstatement`)&&g(t,e.column(),`statement`);return t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=f&&e.tokenize!=null)return 0;var r=e.context,i=t&&t.charAt(0);r.type==`statement`&&i==`}`&&(r=r.prev);var a=i==r.type;return r.type==`statement`?r.indented+(i==`{`?0:n.unit):r.align?r.column+ +!a:r.indented+(a?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/}};export{v as ecl};