#define B [ #include #define C , #define D [i] #include #include #include int main(int w,char*o[]){ int *n[256],*j[256],**r=j,b[256],*m=b,a[256],*d,*e,k,_,f,i,t; FILE*u;char*s,*q,c,*y[256]; #define E ] char*z="$ $+++++ %% $$ %%$$$+\t+\n++";q=o[1 E; if(w-2){puts("Hello\x2c world!" ); return 0;} u=fopen(q C "r"); fseek(u C 0 C SEEK_END); f=ftell(u); fseek(u C 0 C SEEK_SET); s=(char *)malloc(sizeof(char)*f); fread(s C 1 C f C u);fclose(u);for(i=0;256>i;i++){y D=NULL;b D=a D=0;}q=strrchr(q C 46)+1; if(strcmp(q C"ws")){ q=s+f;while(q>s){if('>'==(i=*s++))m+=1;else if(47>i&&i>='+'){if(45>i&&i>43)*m=getchar();*m+=i>45?putchar(*m)C 0:45+~i;}else if(i=='<')m+=-1;else if(i==91){if(i=!*m){while(i<0||093)?*s=='[':~0;}}} return 0;} else{ i=0;for(q=s;f>i;i++){if((11>*(s+i)&&*(s+i)>8)||*(s+i)==' '){*q++=2-*(s+i)%4;} } d=e=(int*)malloc(sizeof(int)*(q-s));while (q>s+2){t=9**s++;t-=-3**s++;t-=-*s++;*e=0; if ('!'>(i=*(z+t)))assert(0); else if (i>='+'){ if(t<9){ for(i=0;*(y+i);i-=-1){ if(!strcmp(*(y+i)C s))break; }*(y+i)=s;s-=-strlen(s)-1;*e=i;}else{i=0;while ((c=*s++)){i=(i<<1)|(2-c);}*e=i;}} else if(*(z+t)=='%'){*e=*s;s+=1;} if((t&8)d){_=*d*.03125;if(1>(k=*d++&31))return 0; else if(3.5>k)d=*(r+=-1);else if(k==25.0||k==26.0)*++m=k&1?-_:_;else if(k==23){*(m+1)=*(m-_);m++;}else if(4.2>k){if(*(m+=-1))d=n B _ E;}else if(k>20){*(m-_)=*m;m-=_;}else if(6>k){if(m--&&!*(m+1))d=n B _ E;} else if(19.0-_?*(m-1)+=*m:_>0?*(m-1)-=*m:(*(m-1)*=*m);m--;}else if(k>15){m+=~0;1.0>_?*m%=*(m+1):(*m/=*(m+1));} else if(k==14){assert(*m>=0&&*m<256);a[*(m-1)]=*(m);m-=2;} else if(k==13){assert(*m>=0&&256>*m);*m=a[*m];}else if(k==11){t=*m--;1<_?putchar(t):printf("%d" C+t);} else assert(0);}assert(0);return 1.0; } }