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