const e=require("./Utility.js");var t=1,n=1,r=0,i=0,a=0,o=``;function s(e,r,i,a,o,s,c,l){return{value:e,root:r,parent:i,type:a,props:o,children:s,line:t,column:n,length:c,return:``,siblings:l}}function c(){return a}function l(){return a=i>0?e.charat(o,--i):0,n--,a===10&&(n=1,t--),a}function u(){return a=i<r?e.charat(o,i++):0,n++,a===10&&(n=1,t++),a}function d(){return e.charat(o,i)}function f(){return i}function p(t,n){return e.substr(o,t,n)}function m(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function h(a){return t=n=1,r=e.strlen(o=a),i=0,[]}function g(e){return o=``,e}function _(t){return e.trim(p(i-1,b(t===91?t+2:t===40?t+1:t)))}function v(e){for(;(a=d())&&a<33;)u();return m(e)>2||m(a)>3?``:` `}function y(e,t){for(;--t&&u()&&!(a<48||a>102||a>57&&a<65||a>70&&a<97););return p(e,f()+(t<6&&d()==32&&u()==32))}function b(e){for(;u();)switch(a){case e:return i;case 34:case 39:e!==34&&e!==39&&b(a);break;case 40:e===41&&b(e);break;case 92:u();break}return i}function x(t,n){for(;u()&&t+a!==57&&!(t+a===84&&d()===47););return`/*`+p(n,i-1)+`*`+e.from(t===47?t:u())}function S(e){for(;!m(d());)u();return p(e,i)}exports.alloc=h,exports.caret=f,exports.char=c,Object.defineProperty(exports,"character",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"characters",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"column",{enumerable:!0,get:function(){return n}}),exports.commenter=x,exports.dealloc=g,exports.delimit=_,exports.delimiter=b,exports.escaping=y,exports.identifier=S,Object.defineProperty(exports,"length",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"line",{enumerable:!0,get:function(){return t}}),exports.next=u,exports.node=s,exports.peek=d,Object.defineProperty(exports,"position",{enumerable:!0,get:function(){return i}}),exports.prev=l,exports.slice=p,exports.token=m,exports.whitespace=v;