function e(e){return{type:e,style:`keyword`}}var t=e(`keyword a`),n=e(`keyword b`),r=e(`keyword c`),i=e(`operator`),a={type:`atom`,style:`atom`},o={type:`attribute`,style:`attribute`},s=e(`typedef`),c={if:t,while:t,else:n,do:n,try:n,return:r,break:r,continue:r,new:r,throw:r,var:e(`var`),inline:o,static:o,using:e(`import`),public:o,private:o,cast:e(`cast`),import:e(`import`),macro:e(`macro`),function:e(`function`),catch:e(`catch`),untyped:e(`untyped`),callback:e(`cb`),for:e(`for`),switch:e(`switch`),case:e(`case`),default:e(`default`),in:i,never:e(`property_access`),trace:e(`trace`),class:s,abstract:s,enum:s,interface:s,typedef:s,extends:s,implements:s,dynamic:s,true:a,false:a,null:a},l=/[+\-*&%=<>!?|]/;function u(e,t,n){return t.tokenize=n,n(e,t)}function d(e,t){for(var n=!1,r;(r=e.next())!=null;){if(r==t&&!n)return!0;n=!n&&r==`\\`}}var s,f;function p(e,t,n){return s=e,f=n,t}function m(e,t){var n=e.next();if(n==`"`||n==`'`)return u(e,t,ee(n));if(/[\[\]{}\(\),;\:\.]/.test(n))return p(n);if(n==`0`&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),p(`number`,`number`);if(/\d/.test(n)||n==`-`&&e.eat(/\d/))return e.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/),p(`number`,`number`);if(t.reAllowed&&n==`~`&&e.eat(/\//))return d(e,`/`),e.eatWhile(/[gimsu]/),p(`regexp`,`string.special`);if(n==`/`)return e.eat(`*`)?u(e,t,h):e.eat(`/`)?(e.skipToEnd(),p(`comment`,`comment`)):(e.eatWhile(l),p(`operator`,null,e.current()));if(n==`#`)return e.skipToEnd(),p(`conditional`,`meta`);if(n==`@`)return e.eat(/:/),e.eatWhile(/[\w_]/),p(`metadata`,`meta`);if(l.test(n))return e.eatWhile(l),p(`operator`,null,e.current());var r;if(/[A-Z]/.test(n))return e.eatWhile(/[\w_<>]/),r=e.current(),p(`type`,`type`,r);e.eatWhile(/[\w_]/);var r=e.current(),i=c.propertyIsEnumerable(r)&&c[r];return i&&t.kwAllowed?p(i.type,i.style,r):p(`variable`,`variable`,r)}function ee(e){return function(t,n){return d(t,e)&&(n.tokenize=m),p(`string`,`string`)}}function h(e,t){for(var n=!1,r;r=e.next();){if(r==`/`&&n){t.tokenize=m;break}n=r==`*`}return p(`comment`,`comment`)}var g={atom:!0,number:!0,variable:!0,string:!0,regexp:!0};function _(e,t,n,r,i,a){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=a,r!=null&&(this.align=r)}function v(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0}function y(e,t,n,r,i){var a=e.cc;for(S.state=e,S.stream=i,S.marked=null,S.cc=a,e.lexical.hasOwnProperty(`align`)||(e.lexical.align=!0);;)if((a.length?a.pop():N)(n,r)){for(;a.length&&a[a.length-1].lex;)a.pop()();return S.marked?S.marked:n==`variable`&&v(e,r)?`variableName.local`:n==`variable`&&b(e,r)?`variableName.special`:t}}function b(e,t){if(/[a-z]/.test(t.charAt(0)))return!1;for(var n=e.importedtypes.length,r=0;r=0;e--)S.cc.push(arguments[e])}function w(){return C.apply(null,arguments),!0}function T(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function E(e){var t=S.state;if(t.context){if(S.marked=`def`,T(e,t.localVars))return;t.localVars={name:e,next:t.localVars}}else if(t.globalVars){if(T(e,t.globalVars))return;t.globalVars={name:e,next:t.globalVars}}}var D={name:`this`,next:null};function O(){S.state.context||(S.state.localVars=D),S.state.context={prev:S.state.context,vars:S.state.localVars}}function k(){S.state.localVars=S.state.context.vars,S.state.context=S.state.context.prev}k.lex=!0;function A(e,t){var n=function(){var n=S.state;n.lexical=new _(n.indented,S.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function j(){var e=S.state;e.lexical.prev&&(e.lexical.type==`)`&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}j.lex=!0;function M(e){function t(n){return n==e?w():e==`;`?C():w(t)}return t}function N(e){return e==`@`?w(R):e==`var`?w(A(`vardef`),q,M(`;`),j):e==`keyword a`?w(A(`form`),P,N,j):e==`keyword b`?w(A(`form`),N,j):e==`{`?w(A(`}`),O,K,j,k):e==`;`?w():e==`attribute`?w(L):e==`function`?w(Z):e==`for`?w(A(`form`),M(`(`),A(`)`),Y,M(`)`),j,N,j):e==`variable`?w(A(`stat`),H):e==`switch`?w(A(`form`),P,A(`}`,`switch`),M(`{`),K,j,j):e==`case`?w(P,M(`:`)):e==`default`?w(M(`:`)):e==`catch`?w(A(`form`),O,M(`(`),$,M(`)`),N,j,k):e==`import`?w(B,M(`;`)):e==`typedef`?w(V):C(A(`stat`),P,M(`;`),j)}function P(e){return g.hasOwnProperty(e)||e==`type`?w(I):e==`function`?w(Z):e==`keyword c`?w(F):e==`(`?w(A(`)`),F,M(`)`),j,I):e==`operator`?w(P):e==`[`?w(A(`]`),G(F,`]`),j,I):e==`{`?w(A(`}`),G(W,`}`),j,I):w()}function F(e){return e.match(/[;\}\)\],]/)?C():C(P)}function I(e,t){if(e==`operator`&&/\+\+|--/.test(t))return w(I);if(e==`operator`||e==`:`)return w(P);if(e!=`;`){if(e==`(`)return w(A(`)`),G(P,`)`),j,I);if(e==`.`)return w(U,I);if(e==`[`)return w(A(`]`),P,M(`]`),j,I)}}function L(e){if(e==`attribute`)return w(L);if(e==`function`)return w(Z);if(e==`var`)return w(q)}function R(e){if(e==`:`||e==`variable`)return w(R);if(e==`(`)return w(A(`)`),G(z,`)`),j,N)}function z(e){if(e==`variable`)return w()}function B(e,t){if(e==`variable`&&/[A-Z]/.test(t.charAt(0)))return x(t),w();if(e==`variable`||e==`property`||e==`.`||t==`*`)return w(B)}function V(e,t){if(e==`variable`&&/[A-Z]/.test(t.charAt(0)))return x(t),w();if(e==`type`&&/[A-Z]/.test(t.charAt(0)))return w()}function H(e){return e==`:`?w(j,N):C(I,M(`;`),j)}function U(e){if(e==`variable`)return S.marked=`property`,w()}function W(e){if(e==`variable`&&(S.marked=`property`),g.hasOwnProperty(e))return w(M(`:`),P)}function G(e,t){function n(r){return r==`,`?w(e,n):r==t?w():w(M(t))}return function(r){return r==t?w():C(e,n)}}function K(e){return e==`}`?w():C(N,K)}function q(e,t){return e==`variable`?(E(t),w(Q,J)):w()}function J(e,t){if(t==`=`)return w(P,J);if(e==`,`)return w(q)}function Y(e,t){return e==`variable`?(E(t),w(X,P)):C()}function X(e,t){if(t==`in`)return w()}function Z(e,t){if(e==`variable`||e==`type`)return E(t),w(Z);if(t==`new`)return w(Z);if(e==`(`)return w(A(`)`),O,G($,`)`),j,Q,N,k)}function Q(e){if(e==`:`)return w(te)}function te(e){if(e==`type`||e==`variable`)return w();if(e==`{`)return w(A(`}`),G(ne,`}`),j)}function ne(e){if(e==`variable`)return w(Q)}function $(e,t){if(e==`variable`)return E(t),w(Q)}var re={name:`haxe`,startState:function(e){return{tokenize:m,reAllowed:!0,kwAllowed:!0,cc:[],lexical:new _(-e,0,`block`,!1),importedtypes:[`Int`,`Float`,`String`,`Void`,`Std`,`Bool`,`Dynamic`,`Array`],context:null,indented:0}},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty(`align`)||(t.lexical.align=!1),t.indented=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return s==`comment`?n:(t.reAllowed=!!(s==`operator`||s==`keyword c`||s.match(/^[\[{}\(,;:]$/)),t.kwAllowed=s!=`.`,y(t,n,s,f,e))},indent:function(e,t,n){if(e.tokenize!=m)return 0;var r=t&&t.charAt(0),i=e.lexical;i.type==`stat`&&r==`}`&&(i=i.prev);var a=i.type,o=r==a;return a==`vardef`?i.indented+4:a==`form`&&r==`{`?i.indented:a==`stat`||a==`form`?i.indented+n.unit:i.info==`switch`&&!o?i.indented+(/^(?:case|default)\b/.test(t)?n.unit:2*n.unit):i.align?i.column+ +!o:i.indented+(o?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:`//`,block:{open:`/*`,close:`*/`}}}},ie={name:`hxml`,startState:function(){return{define:!1,inString:!1}},token:function(e,t){var n=e.peek(),r=e.sol();if(n==`#`)return e.skipToEnd(),`comment`;if(r&&n==`-`){var i=`variable-2`;return e.eat(/-/),e.peek()==`-`&&(e.eat(/-/),i=`keyword a`),e.peek()==`D`&&(e.eat(/[D]/),i=`keyword c`,t.define=!0),e.eatWhile(/[A-Z]/i),i}var n=e.peek();return t.inString==0&&n==`'`&&(t.inString=!0,e.next()),t.inString==1?(e.skipTo(`'`)||e.skipToEnd(),e.peek()==`'`&&(e.next(),t.inString=!1),`string`):(e.next(),null)},languageData:{commentTokens:{line:`#`}}};export{re as haxe,ie as hxml};