#ifndef z #include #include static int x, I, program_start, i = 1, O[540] = {1 << 30}, *o = O, l; static jmp_buf j; #define _ __LINE__ #define p (void)(I = _ + 1) #define q (i = 3, --o, longjmp(j, *o--)): #define z \ case _: \ i % 2 \ ? x = 0 * --i, \ p \ : (_ - program_start) % 9 \ ? (void)(x |= 1 << (_ - I)) \ : _ - I - 17 \ ? (putchar(x), \ x = 0, \ --*o) \ ? p \ : q \ (l = x % 256 + 3, \ x = x / 512 + 3, \ i) \ ? (*o -= l) > 0 \ ? x = i = 0, \ p \ : q \ ((o[2] = *o < l ? *o : l), \ *++o = I - (i = 1), \ ++o, \ longjmp(j, _ - x * 9)); int main(int u, char **v) { switch(setjmp(j)) { default: i--; program_start = __LINE__ + 9; I = program_start + 1; x = 0; #include __FILE__ #undef z #define z } return 0; } #endif /* 1 */ /* 2 */ /* 3 */ z /* 4 */ z /* 5 */ /* 6 */ z /* 7 */ /* 8 */ z /* 0 -> "X" */ z /* 1 */ /* 2 */ /* 3 */ z /* 4 */ z /* 5 */ /* 6 */ z /* 7 */ /* 8 */ z /* 0 -> "Y" */ /* 1 */ z /* 2 */ /* 3 */ z /* 4 */ /* 5 */ /* 6 */ /* 7 */ /* 8 */ z /* 0 -> "\n" */ z /* 1 */ /* 2 */ /* 3 */ z /* 4 */ /* 5 */ /* 6 */ /* 7 */ /* 8 */ /* 9 */ /* 10 */ z /* 11 */ /* 12 */ /* 13 */ /* 14 */ /* 15 */ /* 16 */ /* 17 */ z /* 0 -> repeat 12, offset = -3 */ /* 1 */ z /* 2 */ /* 3 */ z /* 4 */ /* 5 */ /* 6 */ /* 7 */ /* 8 */ z /* 0 -> "\n" */