#define a(x) } else p b(#x)){ #define I ; } else p i==j++){ #define c sprintf #define o -> #define p if( #define t f++ #define s ( ) #define z x o typedef struct d* e; struct d{ union{ char*f; double n; } ; char*g,h ,l,m; e e,x,b,q,( *r) s; int u; } ; e q,v; int y,(*w) s=strlen, (*A) s=strcmp; char*B, *f,C, r=0, g[99], *(*D) s=strdup; e E(int m){ e x= calloc(1, sizeof( struct d)); z b=v; z m=m; return v=x; } e F(e q) { while(q){ p !A(g, q o g)){ return q; } q=q o b; } return 0; } e G(e* q){ e x=E(4); z g=D(g) ; z b=*q; z x = E(0); return *q = x; } H s{ int x; while((x=*f==47 & f[1] ==47) |isspace(*f)){ p x){ while(*f && *f!=10)t; } else t; } } J s { H s; p*f)t; } K(char*K){ char*d=strchr(K,*f); return d? d-K:-1; } L s{ return K(";)]") != -1; } M(char*x){ return!A(x,g); } b(char*x){ int u=w(x); p !strncmp (x,f,u)&!isalnum(f[u])){ f+=u; return 1; } return 0; } N s{ int x=1; while(*f&&x ){ C=*t; x+=C-123?C-125?0:-1:1; } } double O(e x){ char*P; return z m&1?z n:z m& 2?strtod(z f,&P) :0; } e Q(e x){ e n=E(2); char*f="[object]",m=z m; p m&1){ c(g, "%g",z n); f=g; } p m &2)f=z f; n o f=D(f); return n; } e R(int); S s{ return 95 ==*f||isalnum(*f); } T s{ char*d=g; while(S s)*d++=*t; *d=0; } e U(int h){ int i =0,j,n,P,V; double X,Y; char*d,b; e l,y, x=E(0),u; H s; p L s){ return x; } i=K( "-+!~"); p i>-1){ t; } C=*f; p C==40){ t; x=U(0); J s; } else p C==91|C==123){ z m=4; t; J s; } else p C==34|C==39){ d=g; t; z m=2; while(* f!=C){ char P=*t; p P ==92){ P=*t; P=P==110?10:P==120?strtol(f,&f,16):P; } *d++=P; } *d=0; t; z f=D(g) ; } else p isdigit(*f)){ z m=1; z n=strtod(f,&f); } else p S s){ int W=0; g:T s; p M("function")){ J s; J s; J s; d=f-1; x=E(2); N s; z f=strndup(d,f-d); } else{ p M("var")){ t; W=1; goto g; } u=F(q); p W|!u)u=G (&q); x=u o x; z e=u; } } p i> -1){ X=O(x); n=X; p j=0){ I X=-X I I X=!n I X=~n; } x=E (1); z n=X; } while(*f){ H s; p L s)break; i=K(",=!&|><-+*/%[(."); p i>-1){ b=*f; p i=0 I V=V<=0 I V=V>0 I V=V<0 I V=V!=0; } *Z=V; W=0; } else{ W=1; p y o m&4){ l=y; } else{ l=E(y o m); l o r=y o r; p y o m&2)l o f=D(y o f); else l o n=y o n; } } I k=5; goto V I*Z=h?n&&P : n &P I*Z=h?n||P:n|P I p h){ *Z=n>>P; } else{ k=3-W; goto V; } I p h){ *Z=n< 0 ) * t = C ; * f = 0 ; f = B ; R (1); }