#include #include #include int main() { int t[16], p; memset(t, 0, sizeof(t)); p = 0; /* A S A D A S H I N O 65 83 65 68 65 32 83 72 73 78 79 10 */ t[p] += 4; /* BF:++++ */ while( t[p] ) /* BF:[ */ { p++; /* BF:> */ t[p] += 4; /* BF:++++ */ while( t[p] ) /* BF:[ */ { p++; /* BF:> */ t[p] += 2; /* BF:++ */ p++; /* BF:> */ t[p] += 4; /* BF:++++ */ p++; /* BF:> */ t[p] += 5; /* BF:+++++ */ p -= 3; /* BF:<<< */ t[p]--; /* BF:- */ } /* BF:] */ p--; /* BF:< */ t[p]--; /* BF:- */ } /* BF:] */ assert(p == 0); assert(t[0] == 0); assert(t[1] == 0); assert(t[2] == 32); assert(t[3] == 64); assert(t[4] == 80); t[p] += 2; /* BF:++ */ while( t[p] ) /* BF:[ */ { p++; /* BF:> */ t[p] += 5; /* BF:+++++ */ while( t[p] ) /* BF:[ */ { p += 4; /* BF:>>>> */ t[p]++; /* BF:+ */ p++; /* BF:> */ t[p]++; /* BF:+ */ p -= 5; /* BF:<<<<< */ t[p]--; /* BF:- */ } /* BF:] */ p--; /* BF:< */ t[p]--; /* BF:- */ } /* BF:] */ assert(p == 0); assert(t[0] == 0); assert(t[1] == 0); assert(t[2] == 32); assert(t[3] == 64); assert(t[4] == 80); assert(t[5] == 10); assert(t[6] == 10); p += 3; /* BF:>>> */ t[p]++; /* BF:+ */ assert(t[p] == 'A'); putchar(t[p]); /* BF:. */ p++; /* BF:> */ t[p] += 3; /* BF:+++ */ assert(t[p] == 'S'); putchar(t[p]); /* BF:. */ p--; /* BF:< */ assert(t[p] == 'A'); putchar(t[p]); /* BF:. */ t[p] += 3; /* BF:+++ */ assert(t[p] == 'D'); putchar(t[p]); /* BF:. */ t[p] -= 3; /* BF:--- */ assert(t[p] == 'A'); putchar(t[p]); /* BF:. */ p--; /* BF:< */ assert(t[p] == ' '); putchar(t[p]); /* BF:. */ p += 2; /* BF:>> */ assert(t[p] == 'S'); putchar(t[p]); /* BF:. */ assert(p == 4); assert(t[0] == 0); assert(t[1] == 0); assert(t[2] == 32); assert(t[3] == 65); assert(t[4] == 83); assert(t[5] == 10); assert(t[6] == 10); p++; /* BF:> */ while( t[p] ) /* BF:[ */ { p--; /* BF:< */ t[p]--; /* BF:- */ p++; /* BF:> */ t[p]--; /* BF:- */ } /* BF:] */ assert(p == 5); assert(t[0] == 0); assert(t[1] == 0); assert(t[2] == 32); assert(t[3] == 65); assert(t[4] == 73); assert(t[5] == 0); assert(t[6] == 10); p--; /* BF:< */ t[p]--; /* BF:- */ assert(t[p] == 'H'); putchar(t[p]); /* BF:. */ t[p]++; /* BF:+ */ assert(t[p] == 'I'); putchar(t[p]); /* BF:. */ t[p] += 5; /* BF:+++++ */ assert(t[p] == 'N'); putchar(t[p]); /* BF:. */ t[p]++; /* BF:+ */ assert(t[p] == 'O'); putchar(t[p]); /* BF:. */ p += 2; /* BF:>> */ assert(t[p] == '\n'); putchar(t[p]); /* BF:. */ return 0; }