var JSParser=Editor.Parser=function(){function d(d,e){function R(a,b){a=="variable"&&(w(b),r())}function Q(a,b){a=="variable"?(w(b),r(Q)):a=="("&&r(u,I(R,")"),C,v)}function P(a){a==")"?s():r(D)}function O(a,b){a==";"?r(P):b=="in"?r(D):r(D,A(";"),P)}function N(a,b){b=="in"?r(D):r(E,O)}function M(a){a=="var"?r(K,O):a==";"?s(O):a=="variable"?r(N):s(O)}function L(a,b){b=="="?r(D,L):a==","&&r(K)}function K(a,b){a=="variable"?(w(b),r(L)):r()}function J(a){a=="}"?r():s(C,J)}function I(a,b){function c(d){d==","?r(a,c):d==b?r():r(A(b))}return function(d){d==b?r():s(a,c)}}function H(b){b=="variable"&&t("js-property"),a.hasOwnProperty(b)&&r(A(":"),D)}function G(a){a=="variable"&&(t("js-property"),r())}function F(a){a==":"?r(z,C):s(E,A(";"),z)}function E(a){a=="operator"?r(D):a=="("?r(y(")"),D,I(D,")"),z,E):a=="."?r(G,E):a=="["&&r(y("]"),D,A("]"),z,E)}function D(b){a.hasOwnProperty(b)?r(E):b=="function"?r(Q):b=="keyword c"?r(D):b=="("?r(y(")"),D,A(")"),z,E):b=="operator"?r(D):b=="["?r(y("]"),I(D,"]"),z,E):b=="{"&&r(y("}"),I(H,"}"),z,E)}function C(a){a=="var"?r(y("vardef"),K,A(";"),z):a=="keyword a"?r(y("form"),D,C,z):a=="keyword b"?r(y("form"),C,z):a=="{"?r(y("}"),J,z):a=="function"?r(Q):a=="for"?r(y("form"),A("("),y(")"),M,A(")"),z,C,z):a=="variable"?r(y("stat"),F):a=="switch"?r(y("form"),D,y("}","switch"),A("{"),J,z,z):a=="case"?r(D,A(":")):a=="default"?r(A(":")):a=="catch"?r(y("form"),u,A("("),R,A(")"),C,z,v):s(y("stat"),D,A(";"),z)}function B(a){return s(C,B)}function A(a){return function(b){b==a?r():r(arguments.callee)}}function z(){i=i.prev}function y(a,c){var d=function(){i=new b(k,j,a,null,i,c)};d.lex=!0;return d}function x(a){var b=h;while(b){if(b.vars[a])return!0;b=b.prev}return!1}function w(a){h&&(t("js-variabledef"),h.vars[a]=!0)}function v(){h=h.prev}function u(){h={prev:h,vars:{"this":!0,arguments:!0}}}function t(a){m=a}function s(){q(arguments),l=!1}function r(){q(arguments),l=!0}function q(a){for(var b=a.length-1;b>=0;b--)g.push(a[b])}function p(){var a=h,b=i,c=g.concat([]),d=f.state;return function(e){h=a,i=b,g=c.concat([]),j=k=0,f=tokenizeJavaScript(e,d);return n}}function o(){while(g[g.length-1].lex)g.pop()();var a=f.next();a.type=="whitespace"&&j==0&&(k=a.value.length),j+=a.value.length,a.content=="\n"&&(k=j=0,"align"in i||(i.align=!1),a.indentation=c(i));if(a.type=="whitespace"||a.type=="comment")return a;"align"in i||(i.align=!0);for(;;){l=m=!1,g.pop()(a.type,a.content);if(l){m?a.style=m:a.type=="variable"&&x(a.content)&&(a.style="js-localvariable");return a}}}var f=tokenizeJavaScript(d),g=[B],h=null,i=new b((e||0)-indentUnit,0,"block",!1),j=0,k=0,l,m,n={next:o,copy:p};z.lex=!0;return n}function c(a){return function(b){var c=b&&b.charAt(0),d=a.type,e=c==d;return d=="vardef"?a.indented+4:d=="form"&&c=="{"?a.indented:d=="stat"||d=="form"?a.indented+indentUnit:a.info=="switch"&&!e?a.indented+(/^(?:case|default)\b/.test(b)?indentUnit:2*indentUnit):a.align?a.column-(e?1:0):a.indented+(e?0:indentUnit)}}function b(a,b,c,d,e,f){this.indented=a,this.column=b,this.type=c,d!=null&&(this.align=d),this.prev=e,this.info=f}var a={atom:!0,number:!0,variable:!0,string:!0,regexp:!0};return{make:d,electricChars:"{}:"}}()