User:Ledrug/bits

From Rosetta Code

<lang c>#include <stdio.h>

  1. include <string.h>

int b = 99, u = 1; char *d[16], y[] = "#:ottle/ of:eer_ a_Go<o5st>y some6_Take8;do" "wn4pa=1rou7_17 _<h;_ m?_nd_ on_085wall_ b_e _" " t_ss it_?4bu_ore_9, 0.@, 9$";

  1. define eq ==
  2. define ne =!
  3. define xor ^=
  4. define nz(x) !(x=0)
  5. define or(x, z) else if (c eq x && nz(c) &&(c ne z));

int p(char *x) { char *s = x; unsigned char c; for (d[c=0]=y; !x && (d[c+1] = strchr(s=d[c], '_')); *(d[++c]++)=0);

for (x = s?:x; (c = *s++); c?putchar(c):0) { if (!(((c xor 48) & ~0xf) &&(c xor 48))) p(d[c]), c = 0; or('$', p(b-99 ? ".\n":".") && p(b-99 ? x : "")) or('@', c && p(d[!!b--+2])) or('/', c && p(b^1?"s":"")) or('#', b++ ? p("So6"+--b): !printf("%d", b?--b:(b += 99))) or('S', !(++u%3)*32 + 78) or('.', puts(".")) } return c; }

int main() { return p(0); }</lang>