/* "Bunny Speak" * -- * Brought to you by someone who reads too much Usenet, * in particular, the "alt.devilbunnies" newsgroup. * -- * To compile: flex -i bunny.l * gcc -o bunny lex.yy.c -ll * -- * {HR!$ B@1R},, */ char *out, *p, *ext[4]; int rnd=1971; float r,f; void output(void) { rnd += 349857639; if ( (rnd & 2) == 0 ) printf("%s",yytext); else { r = (rnd & 255) / 256.0; f = 1.0 / (strlen(out)); p = out; while (r += f, r < 1.0) p++; if (*p == '*') printf ("%s", ext[p - out]); else printf ("%c", (isupper (*yytext) ? toupper (*p) : tolower (*p))); } } %% "a" out = "@"; output(); "b" out = "8"; output(); "c" out = "{(k"; output(); "d" out = "}"; output(); "e" out = "3"; output(); "i" out = "1!"; output(); "j" out = ";"; output(); "k" out = "&"; output(); "l" out = "1!|"; output(); "o" out = "*0"; ext[0] = "()"; output(); "s" out = "$5z"; output(); "t" out = "7"; output(); "w" out = "*"; ext[0] = "UU"; output(); "z" out = "2s"; output(); "!" out = "*1"; ext[0] = "!!!"; output(); "0" out = "o"; output(); "1" out = "!|"; output();