--- /dev/null
+# Various dialect translators.
+
+LEX = flex
+
+ALL = jive valspeak nyc cockney fin biffa ken aust drawl \
+ kraut newspeak chef mb censor fudd moo buck \
+ jethro b1ff
+OTHER = ky00te
+
+all: $(OTHER) $(ALL)
+
+install: $(ALL) $(OTHER)
+ install -d $(PREFIX)/usr/games
+ install -s $(ALL) $(OTHER) $(PREFIX)/usr/games/
+ install -d $(PREFIX)/usr/man/man6
+ install -m 0644 filters.6 $(PREFIX)/usr/man/man6
+ cd $(PREFIX)/usr/man/man6 && \
+ $(foreach prog,$(ALL) $(OTHER),ln -s filters.6 $(prog).6;)
+
+samples: $(ALL) $(OTHER)
+ echo $(ALL) $(OTHER) |xargs -n 1 sh makesample.sh
+
+clean:
+ $(RM) -f core *.o *~ $(ALL) *.c SAMPLES
+ cd ky00te.dir; make clean
+
+.SUFFIXES: .l
+
+.l:
+ $(RM) $*.c
+ $(LEX) -t $< > $*.c
+ $(CC) -O -o $@ $*.c -lfl -g
+# strip $@
+ $(RM) $*.c
+
+.SUFFIXES: .dir
+
+.dir:
+ cd $<; make
--- /dev/null
+This is a collection of filters from various places, including:
+
+http://www.princeton.edu/~mkporwit/pub_links/davido/slang/
+
+http://www.mathlab.sunysb.edu/~elijah/src.html
+
+Collected by Joey Hess <joey@kite.ml.org>
+
+
+Note that the Makefile will get the filters to compile on Linux systems.
+Otherwise, you're on your own.
+
+
+Descriptions of the filters:
+
+aust: Australian
+b1ff: The B1FF filter
+biffa: ??
+buck: The buckwheat filter
+censor: [CENSORED]
+chef: convert English on stdin to Mock Swedish on stdout
+cockney: Cockney English
+drawl: English to Texan translator
+fin: ??
+fudd: Elmer Fudd
+jethro: Hillbilly text filter
+jive: Jive English
+ken: English into Cockney, featuring (dubious) rhyming
+ slang for a lot of computer terminology.
+kraut: German
+mb: Marc Barrett posting translator
+moo: The cow filter
+newspeak: As in 1984
+nyc: Brooklyn English
+valspeak: ??
+ky00te: This program places a very cute (and familiar to FurryMuck
+ fans) accent to any text file.
+
+No racial or societal slurs are intended. For amusement only.
--- /dev/null
+%e 3000
+%p 8000
+%n 2000
+%k 2000
+%a 3000
+%o 2000
+BW [ ]
+EW [ .,:;!?_]
+ES [.:;!?]
+VO [aeiouy]
+CO [bcdfghjklmnpqrstvwxz]
+CC [cdfgjklmnprtz]
+SC [cg]
+HC [bdfhjklmnpqrstvwxz]
+ST [pbtdkg]
+LE [a-zA-Z]
+
+%{
+
+ /* English to australian translator */
+
+ /* to build with standard at&t lex
+ * lex aust.l
+ * cc lex.yy.c -ll -o aust
+ *
+ * to build with flex
+ * flex -I aust.l
+ * cc lex.yy.c -o aust
+ *
+ * (flex is a pd version of lex that runs under Unix, VMS and MSDOS.)
+ */
+
+ /* 16Jan90 - wb - first version, based on biffa.l by
+ * Stephen K Mulrine <smulrine@cs.strath.ac.uk> */
+ /* 30Jan90 - wb - added more words */
+ /* 16Feb90 - wb - converted from jive to aust */
+ /* 12Mar90 - wb - added some randomness */
+
+
+ /* BW = begin word */
+ /* EW = end word */
+ /* ES = end sentence */
+ /* VO = vowel */
+ /* CO = consonant */
+ /* CC = end of consonant cluster */
+ /* SC = soft consonant (need an 'e') */
+ /* HC = hard consonant (does not need an 'e') */
+ /* ST = stop */
+ /* LE = any letter */
+
+bloody(n)
+int n;
+{
+ if (n == 0 || rand() < n)
+ printf((rand() < 20000)? "bloody ": "bleedin' ");
+}
+
+say(msg, n)
+char *msg;
+int n;
+{
+ if (rand() < n)
+ printf("%s", msg);
+}
+
+oi(n)
+int n;
+{
+ say(" Blimey!", n);
+ while (rand() < n)
+ printf(" OI!");
+}
+
+
+%}
+
+%%
+"That is" |
+"That's" printf("Thaz");
+"that is" |
+"that's" printf("thaz");
+bathroom |
+toilet printf("loo");
+{BW}john{EW} printf("%cloo%c", yytext[0], yytext[5]);
+[Aa]lright printf("%clrighty", yytext[0]);
+{BW}mad{EW} printf("%cpissed%c", yytext[0], yytext[4]);
+angry |
+annoyed printf("pissed");
+drunk printf("loaded");
+drank printf("swilled");
+drink printf("swill");
+{BW}beer printf("%cFoster's", yytext[0]); /* Australian for beer, mate */
+"ught to" printf("ughta");
+{BW}train printf("%cland train", yytext[0]);
+ough{EW} printf("o%c", yytext[4]);
+Hello{EW} |
+"Good day"{EW} printf("G'day!");
+hello{EW} |
+"good day"{EW} printf("g'day!");
+"in Austrailia" |
+"to Austrailia" printf("down under");
+{BW}bit{EW} printf("%ctad%c", yytext[0], yytext[4]);
+
+{CO}{CC}{EW} printf("%c'%c", yytext[0], yytext[2]);
+{CO}{CC}ed{EW} printf("%c%s", yytext[0], yytext+2);
+of{EW} printf("o'%c", yytext[2]);
+
+Some{BW}one |
+Someone |
+Guy printf("Dude");
+some{BW}one |
+someone |
+guy printf("dude");
+
+[Ww]ha printf("%co", yytext[0]);
+{BW}esp printf("'sp");
+{BW}Esp printf("'Sp");
+
+{BW}h{LE} printf("%c'%c", yytext[0], yytext[2]);
+off{BW}of printf("offa");
+
+[Yy]our printf("%cer", yytext[0]);
+you{EW} printf("ya%c", yytext[3]);
+my printf("me");
+
+{CO}[ai]{SC}e printf("%coi%ce", yytext[0], yytext[2]);
+{CO}[ai]{HC}e printf("%coi%c", yytext[0], yytext[2]);
+{CO}[ai]{CO}[aiouy] printf("%coi%c%c", yytext[0], yytext[2], yytext[3]);
+r[ai]{CO}{CO} printf("%coi%c%c", yytext[0], yytext[2], yytext[3]);
+{CO}igh{LE} printf("%coi%c", yytext[0], yytext[4]);
+extremely |
+really |
+very printf("roit");
+Extremely |
+Really |
+Very printf("Roit");
+that printf("wot");
+Well printf("Welp");
+baseball |
+football |
+hockey printf("cricket");
+{VO}th({EW}|{VO}) printf("%ct%c", yytext[0], yytext[3]);
+Who printf("Oo");
+{BW}who printf("%c'oo", yytext[0]);
+{LE}{CO}er{EW} printf("%c%ca%c", yytext[0], yytext[1], yytext[4]);
+{VO}{CO}e{BW}to printf("%c%ceda", yytext[0], yytext[1]);
+{VO}{CO}{BW}to printf("%c%c%ca", yytext[0], yytext[1], yytext[1]);
+{BW}[Bb]e{CO}{LE} printf("%c'%s", yytext[0], yytext+3);
+{BW}[Aa]{CO}{LE} printf("%c'%s", yytext[0], yytext+2);
+{BW}[Oo]ne? printf("%c'un", yytext[0]);
+
+{LE}\, {ECHO; say(" moit,", 10000);}
+{BW}an?{EW} {if(rand()<12000){printf(" a ");bloody(0);}else printf("%s",yytext);}
+An?{EW} {if(rand()<12000){printf("A ");bloody(0);}else printf("%s",yytext);}
+(T|({BW}t))he{EW} |
+(T|({BW}t))hose{EW} {ECHO; bloody(12000);}
+
+\!|\? {say(", moit", 6000); ECHO; oi(12000);}
+\. {say(", moit", 2000); ECHO; oi(6000);}
+
+{BW}-*[0-9]+" "*("degrees"|([Ff]{LE}*)){EW} {printf("%c%dc%c",*yytext,((atoi(yytext+1)-24)/9)*5,yytext[strlen(yytext)-1]);}
+
+. printf("%s", yytext);
+\n printf("\n");
+
+%%
+main()
+{
+ yylex();
+}
+
--- /dev/null
+#!/usr/bin/perl -p
+# B1FF filter.
+# Copyright 1999 by Joey Hess under the terms of the GNU GPL.
+
+# I use an array, not a hash. because order is important.
+@trans_table=(
+ '\bEVERYONE\b' => 'EVRY 1',
+ '\bEVERYBODY\b' => 'EVRY BUDY',
+ '\bEVERY\b' => 'EVRY',
+ '\bONE\b' => '1',
+ '\bAND\b' => '+',
+ '\bYOU' => 'U',
+ '\bITS\b' => 'IT"S',
+ '\bIT\'S\b' => 'ITS',
+ '\bIS\b' => 'IZ',
+ '\bLINUX\b' => 'LINUS',
+ '\bUNIX\b' => 'THE MANEFRA1M O/S',
+ '\bWINDOWS\b' => 'WINDOWZ (IT RULEZ MAN!)',
+ '\bYOU\'RE\b' => 'YOUR',
+ '\bTHEM\b' => 'THUM',
+ '\bHERE\b' => 'HERE',
+ '\bTHEY\'RE\b' => 'THE1R',
+ '\bTHEIR\b' => 'THERE',
+ '\bWAS\b' => 'WUZ',
+ '\bMACINTOSH\b' => 'IMAC', # too 90's?
+ '\bVERY\b' => 'TOTALLY',
+ '\bCOMPUTER\b' => 'VIC-20',
+ '\bWHETHER\b' => 'WHETHUR',
+ '\b(?:H|CR)ACKER\b' => 'KEWL HACKER D00D!',
+ '\bOF\b' => 'UV',
+ '\bGNU\b' => 'NEW',
+ '\bQUITE\b' => 'REAL',
+ '\bFREE\b' => 'FREE!',
+
+ 'HOME' => 'HUM',
+ 'COME' => 'CUM',
+ 'MICRO' => 'MIKRO',
+ 'GOVERN' => 'GUVERN',
+ 'PERSON' => 'D00D',
+ 'SOME' => 'SUM',
+ 'WRITE' => 'RITE',
+ 'REAL' => 'REEL',
+ 'LITE' => 'L1TE',
+ 'BIAN' => 'B1AN',
+ 'TION' => 'SHUN',
+ 'FOR' => '4',
+ 'TO' => '2',
+ 'ATE' => '8',
+ '\b2TALLY\b' => 'TOTALY', # fix from line above
+ 'LL' => 'L',
+ 'OO' => '00',
+ 'MATE' => 'M8',
+ 'ER' => 'UR',
+ 'S+\b' => 'Z',
+ 'KN' => 'N',
+);
+
+$_=uc;
+s/;/,/g;
+s/'//g;
+
+while (@trans_table) {
+ $key=shift @trans_table;
+ $value=shift @trans_table;
+ s/$key/$value/g;
+}
+
+s/(\!+)/$1.make_exclimation()/eg;
+s/(\?+)/$1.make_question()/eg;
+s/I/rand 3 > 2 ? '1' : 'I'/eg; # change 1/3 of I's to 1's
+
+@punct=('.','!',',');
+
+s/\. /. /g;
+s/\./$punct[int(rand 3)]/eg;
+s/\,/./g;
+
+
+# b1ff can't hold down on shift too well!!!!!!!1!
+sub make_exclimation {
+ my $length=shift || int(rand 5);
+ my $ret='!';
+ my $last=0;
+ for (1..$length) {
+ if (! $last && int(rand 3) eq 2) {
+ $ret.="1";
+ $last=1;
+ }
+ else {
+ $ret.="!";
+ $last=0;
+ }
+ }
+ return $ret;
+}
+
+# ask questions excitedly?!?!?!?!
+sub make_question {
+ my $length=shift || int(rand 5) + 1;
+ my $ret='';
+ my $last=0;
+ while (length($ret) < $length) {
+ if (! $last && int(rand 5) > 2) {
+ $ret.="?!";
+ $last=1;
+ }
+ elsif (! $last && int(rand 5) > 3) {
+ $ret.="?1";
+ $last=1;
+ }
+ else {
+ $ret.="?";
+ $last=0;
+ }
+ }
+ return $ret;
+}
--- /dev/null
+
+%e 2000
+%p 5000
+%n 1000
+%k 500
+%a 4000
+%o 2000
+BW [ ]
+EW [ .,;!?]
+
+%{
+
+/*
+ * The B1FF filter.
+ *
+ * Modification History
+ *
+ * - Created Sat Feb 26 04:02:01 EST 1994 by Dave Baggett <dmb@ai.mit.edu>,
+ * who obviously had too much time on his hands. Based on the earlier
+ * "jive" filter of unknown origin.
+ *
+ * -------------------------------------------------------------------------
+ * To build the B1FF filter, do the following:
+ *
+ * lex biff.l
+ * cc -o biff lex.yy.c -ll
+ * rm lex.yy.c
+ *
+ * Optionally replace lex and cc above with flex and gcc.
+ *
+ * To use the executable, pipe stuff to it; e.g.,
+ *
+ * cat foo | biff
+ *
+ */
+
+char buf[128];
+int count = 0;
+char WhAt[]="@(#)DAVE BAGGETT-S B1FF!!1 FlLTER + A CHANGE OR 2 BYE BGRIFFIN\n@(#)$Header: b1ff.l,v 1.4 94/05/07 20:42:53 bgriffin Final $";
+
+%}
+
+%%
+
+" and " printf(" + ");
+" plus " printf(" + ");
+"you're" printf("YOUR");
+your printf("UR");
+"it's" printf("1TZ");
+its printf("1T'Z");
+here printf("HEAR");
+hear printf("HERE");
+"they're" printf("THE1R");
+their printf("THERE");
+there printf("THEY'RE");
+was printf("WUZ");
+etc printf("U GET THE 1DEA");
+e[.]g[.] printf("LAIK THIS");
+i[.]e[.] printf("U NOE LAIK");
+" are " printf(" R ");
+"be " printf("B ");
+before printf("B4");
+" to " printf(" 2 ");
+this printf("TH1S");
+like printf("LA1K");
+total printf("TODAL");
+"and I" printf("+ ME");
+
+good printf("K00L");
+okay printf("C00L");
+ok printf("K00L");
+interesting printf("C00L");
+neat printf("Q00L");
+nifty printf("Q00L");
+useful printf("K00L");
+great printf("RAD");
+functional printf("RAD");
+excellent printf("X-L-ENT");
+very printf("TOTALLY");
+quite printf("REAL");
+really printf("REAL");
+new printf("NU");
+recent printf("RAD NU");
+
+result printf("TH1NG");
+ramification printf("TH1NG");
+reason printf("TH1NG");
+conclusion printf("TH1NG");
+results printf("STUFF");
+ramifications printf("STUFF");
+reasons printf("STUFF");
+conclusions printf("STUFF");
+
+files printf("WAREZ");
+program printf("GAME");
+programs printf("WAREZ");
+game printf("KRACKED GAME");
+games printf("GAMEZ");
+[Uu][Nn][Ii][Xx] printf("THE MANEFRA1M O/S");
+[Dd][Oo][Ss] printf("THE VIC-20 TAPE DRIVE SCR1PTER");
+disk printf("TAPE");
+computer printf("VIC-20");
+workstation printf("MANEFRA1M");
+supercomputer printf("MANEFRAM");
+[Cc]ray printf("K1CKASS MANEFRA1M");
+"Connection Machine" printf("TODALY RAD KOMPUTUR BRANE");
+machine printf("VIC-20");
+[Aa][Tt][Aa][Rr][Ii] printf("PEACE UV SH1T ATAR1");
+[Aa][Pp][Pp][Ll][Ee] printf("PEACE UV SH1T APPEL");
+[Aa][Mm][Ii][Gg][Aa] printf("WORKSTASHUN");
+[Mm]acintosh printf("MACK1NTRASH");
+upload printf("U/L");
+download printf("D/L");
+load printf("U/L");
+save printf("D/L");
+send printf("U/L");
+receive printf("D/L");
+ftp printf("XMODEM");
+buy printf("D-L");
+
+[Pp]ascal printf("THAT WUSSY LANGUAGE");
+[Mm]odula.[23] printf("THAT WUSSY SH1T LANGUAGE");
+[Ll]isp printf("THAT KOMPUTUR BRANE LANGUAGE");
+[Ss]cheme printf("THAT TODAL NURD LANGUAGE");
+[Aa]da printf("THAT K00L NU ARMY LANGUAGE");
+[Pp]ost[Ss]cript printf("PRINTUR KODEZ");
+[Aa]ssembly printf("CPU KODE");
+[Aa]ssembler printf("CPU KODE");
+
+newsgroup printf("MESSAGE BASE");
+news printf("MESSAGES");
+thread printf("BOARD");
+[Uu]senet printf("THE MANEFRAIM BOARDZ");
+[Nn]et[Nn]ews printf("THE BOARDZ");
+
+fool printf("LUZER");
+moron printf("LAMER");
+idiot printf("LAMER");
+jerk printf("HOZER");
+dweeb printf("LUZER");
+geek printf("HOZER");
+nerd printf("LUZER");
+
+" man " printf(" D00D ");
+" men " printf(" D00DZ ");
+woman printf("BABE");
+women printf("BABEZ");
+wife printf("BABE");
+husband printf("LOVERD00D");
+girlfriend printf("PEACE");
+boyfriend printf("STUD");
+girl printf("TODAL BABE");
+person printf("D00D");
+people printf("D00DZ");
+friend printf("FRE1ND");
+
+sure printf("SHUR");
+"got to" printf("GOTTA");
+"want to" printf("WANNA");
+"have to" printf("HAFTA");
+have printf("GOT");
+
+"using" printf("UZE1NG");
+
+" car " printf(" WHEELS ");
+" eat " printf(" NARF ");
+
+police printf("P1GZ");
+from printf("FRUM");
+
+human printf("D00D");
+occasionally printf("SUMTIMZ");
+whom printf("WHO");
+whose printf("WHO'S");
+who's printf("WHOSE");
+"who is" printf("WHOSE");
+"ought to" printf("OTTA");
+"need to" printf("GOTTA");
+"should" printf("OTTA");
+"tonight" printf("2NITE");
+together printf("2GETHR");
+tomorrow printf("2MOROW");
+today printf("LAST NITE");
+to-day printf("2DAY");
+" food " printf(" PIZZA ");
+coke printf("MOUNTIN DOO");
+pepsi printf("MOUNTIN DOO");
+caffeine printf("COKE");
+coffee printf("SPEED");
+[Nn]yquil printf("SMACK");
+night printf("NITE");
+
+" believe" printf(" TH1NK");
+phone printf("FONE");
+freak printf("PHREAK");
+[Kk][Ii*-][Bb][Oo*-] printf("THE FONT GUY");
+[nN]et[htw][ar][cer][ke] { /* nethack nettrek netware */
+ printf("PACMAN"); }
+chess printf("PONG");
+[Ss]"treet "[Ff]ighter printf("POLL POSIT1ON");
+
+amateur printf("LAMER");
+" of " printf(" UV ");
+what printf("WUT");
+"meta " printf("ALT/CAPSLOCK ");
+
+"talk" printf("1NTERFACE");
+"sort of" printf("SORTA");
+"kind of" printf("K1NDA");
+magazine printf("ZINE");
+
+":^)" ;
+":-)" printf("HAHAHAHA!!1!1!1!!!1!!!");
+"8-)" printf("ITZA JOKE YA NOE");
+
+[dgmnr]"." { *(yytext+1) = 0;
+ upcase(yytext);
+ sprintf(buf, "%s!",yytext);
+ printf(buf);
+ }
+
+[efhkpst]"." { *(yytext+1) = 0;
+ upcase(yytext);
+ sprintf(buf, "%s,",yytext);
+ printf(buf);
+ }
+
+[bclw]"." { *(yytext+1) = 0;
+ upcase(yytext);
+ sprintf(buf, "%s...",yytext);
+ printf(buf);
+ }
+
+[a-e]"?" { upcase(yytext); printf(yytext); printf("?"); }
+[f-j]"?" { upcase(yytext); printf(yytext); printf("??"); }
+[k-o]"?" { upcase(yytext); printf(yytext); printf("!?1?"); }
+[p-t]"?" { upcase(yytext); printf(yytext); printf("!?1?!?"); }
+[u-z]"?" { upcase(yytext); printf(yytext); printf("?1?!?1?!"); }
+[a-e]"!" { upcase(yytext); printf(yytext); printf("!"); }
+[f-j]"!" { upcase(yytext); printf(yytext); printf("!!"); }
+[k-o]"!" { upcase(yytext); printf(yytext); printf("!1!"); }
+[p-t]"!" { upcase(yytext); printf(yytext); printf("!!1!"); }
+[u-z]"!" { upcase(yytext); printf(yytext); printf("!1!!1"); }
+";" printf(",");
+"," printf(".");
+"'" ;
+[a-z]":" { *(yytext+1) = ',';
+ upcase(yytext);
+ sprintf(buf, "%s L1KE:",yytext);
+ printf(buf);
+ }
+[iI] { count++; if (count % 3 == 0) printf("1"); else printf("I"); }
+oo printf("00");
+0 printf("o");
+"s " printf("Z ");
+"s." printf("Z.");
+cr printf("KR");
+wr printf("R");
+ate printf("8");
+ait printf("8");
+ame printf("A1M");
+ain printf("ANE");
+ade printf("AID");
+four printf("4");
+fore printf("4");
+for printf("4");
+see printf("C");
+seeing printf("CN");
+you printf("U");
+ude printf("00D");
+ule printf("OOL");
+ome printf("UM");
+ose printf("UZE");
+tion printf("SHUN");
+mn printf("M");
+kn printf("N");
+er printf("UR");
+em printf("UM");
+ll printf("L");
+ware printf("WEAR");
+
+. { upcase(yytext); printf(yytext); }
+
+\n printf("\n");
+
+%%
+
+upcase(s)
+ char *s;
+{
+ while (*s) {
+ if (islower(*s))
+ *s = toupper(*s);
+ s++;
+ }
+}
+
+main()
+{
+ yylex();
+}
+
--- /dev/null
+%e 3000
+%p 6000
+%n 1000
+%k 500
+%a 4000
+%o 2000
+BW [ ]
+EW [ .,;!?]
+
+%{
+ char buf[128];
+
+%}
+
+%%
+ead printf("eed");
+ote printf("urte");
+oad printf("urd");
+ode printf("urde");
+oke printf("urke");
+olk printf("urk");
+one printf("urn");
+al printf("aal");
+OK printf("aal reyt");
+"O.K." printf("all reyt");
+okay printf("aal reyt");
+Okay printf("Aal reyt");
+mother printf("mutha");
+mummy printf("mutha");
+ma{EW} printf("mutha ");
+father printf("fatha");
+dad printf("fatha");
+pa{EW} printf("fatha ");
+telephone printf("furn");
+ph printf("f");
+and printf("un'");
+And printf("Un'");
+only printf("urnly");
+over printf("urva");
+will printf("'ll");
+"You are" printf("Y'a fuckin'");
+"you are" printf("y'a fuckin'");
+"I am" printf("A'm fuckin'");
+"I'm" printf("A'm fuckin'");
+Most printf("Murst");
+most printf("murst");
+murder printf("knack");
+shatter printf("knack");
+damage printf("knack");
+Murder printf("Knack");
+Shatter printf("Knack");
+Damage printf("Knack");
+"Oh yes?" printf("Did yee spill wor pint?");
+[Cc]hinese printf("Chinky");
+"no it isn't" printf("Is it shite");
+"No it is not" printf("Is it shite");
+"It is not" printf("Is it fuck");
+"it is not" printf("is it fuck");
+"It isn't" printf("Is it fuck");
+"it isn't" printf("is it fuck");
+idle printf("ardle");
+rubbish printf("gobshite");
+useless printf("shite");
+"no good" printf("shite");
+shit printf("shite");
+muck printf("shite");
+mouth printf("gob");
+Mouth printf("Gob");
+someone printf("some fukka");
+Someone printf("Some fukka");
+anyone printf("any fukka");
+Anyone printf("Any fukka");
+nobody printf("neewun");
+Nobody printf("Neewun");
+noone printf("neewun");
+Noone printf("Neewun");
+"who is" printf("who tha fuck's");
+"Who is" printf("Who tha fuck's");
+"who are" printf("who tha fuck'a'");
+"Who are" printf("Who tha fuck'a'");
+"Why is" printf("Why tha fuck's");
+"Why is" printf("Why tha fuck's");
+"why are" printf("why tha fuck'a'");
+"Why are" printf("Why tha fuck'a'");
+"when is" printf("when tha fuck's");
+"When is" printf("When tha fuck's");
+"when are" printf("when tha fuck'a'");
+"When are" printf("When tha fuck'a'");
+tough printf("fuckin' hard");
+strong printf("fuckin' hard");
+"! " printf(", ya fuckin' puff! ");
+nothing printf("bugga aal");
+Nothing printf("Bugga aal");
+food printf("grub");
+Food printf("Grub");
+My printf("Ma fuckin'");
+Your printf("Y' fuckin'");
+Our printf("Wor fuckin'");
+throw printf("hoy");
+Throw printf("Hoy");
+lots printf("lurds");
+Lots printf("Lurds");
+" have" printf("'ve");
+Have printf("Hev");
+"don't" printf("divvn't");
+"Don't" printf("Divvn't");
+"isn't" printf("in't");
+"Isn't" printf("In't");
+."self " printf("ssel ");
+girls printf("lasses");
+girl printf("lass");
+boy printf("lad");
+know printf("knaa");
+make printf("maak");
+take printf("tek");
+Take printf("Tek");
+tak printf("tek");
+th[eo]se printf("them");
+broken printf("brerken");
+Broken printf("Brerken");
+broke printf("brerk");
+" tired" printf(" fuckin' knackered");
+gives printf("giz");
+give printf("giz");
+Give printf("Giz");
+giv printf("gizz");
+gave printf("gav");
+TV printf("telly");
+[Ww]ill printf("'ll");
+[Ss]hall printf("'ll");
+more printf("more fuckin'");
+than printf("than fuckin'");
+"can " printf("kin ");
+"Can " printf("Kin ");
+bad printf("bastaad");
+Bad printf("Bastaad");
+nasty printf("bastaad");
+good printf("magic");
+Good printf("Magic");
+great printf("magic");
+Great printf("Magic");
+human printf("yooman");
+woman printf("wumman");
+women printf("wummen");
+" man " printf(" bastaad ");
+football printf("futbaal");
+all printf("aal");
+All printf("Aal");
+"the " printf("the fuckin' ");
+"what is" printf("what the fuck is");
+"What is" printf("What the fuck is");
+"what are" printf("what the fuck are");
+"What are" printf("What the fuck are");
+"The " printf("The fuckin' ");
+"That " printf("That fuckin' ");
+" any" printf(" onny fuckin'");
+poof printf("puff");
+homosexual printf("puff");
+gay printf("puff");
+bisexual printf("semi-puff");
+[Mm]iddlesbrough printf("Boro");
+[Mm]iddlesborough printf("Boro");
+[Gg]ateshead printf("Gaatsed");
+[Nn]ewcastle printf("Neecassl");
+"South Shields" printf("Saath Sheels");
+[Ss]cotland printf("Jock");
+[Ss]cotsman printf("Jocko bastaad");
+[Ss]cottish printf("Jock");
+[Ss]paniard printf("Wop");
+[Ss]panish printf("Wop");
+[Ii]talian printf("Wop");
+[Ss]pain printf("Wopland");
+[Ii]taly printf("Wopland");
+them printf("'em");
+home printf("yem");
+" go " printf(" gaan ");
+going printf("gannin'");
+" gone " printf(" went ");
+trousers printf("kex");
+burnt printf("bornt");
+because printf("cos");
+Because printf("Cos");
+both printf("burth");
+Both printf("Burth");
+" yes " printf(" aye ");
+"Yes " printf("Aye ");
+" no " printf(" ney ");
+"No " printf("Ney ");
+"with " printf("wi' ");
+wrong printf("wrang");
+told printf("telt");
+"bit of a " printf("birruva ");
+"bit of " printf("birra ");
+"You're a" printf("Yorra");
+"You are a" printf("Yorra");
+"you're a" printf("yorra");
+"you are a" printf("yorra");
+"We are" printf("Wur");
+" we are" printf(" wur");
+"What a" printf("Worra");
+"what a" printf("worra");
+your printf("y'");
+"you're" printf("yer");
+you printf("ya");
+" him" printf("'m");
+Your printf("Y'");
+"You're" printf("Yer");
+You printf("Ya");
+" our" printf(" wur");
+"Our" printf("Wur");
+"I won't" printf("Will Ah fuck");
+"I refuse to" printf("Will Ah fuck");
+"I will not" printf("Will Ah fuck");
+"I don't" printf("Do Ah fuck");
+"I do not " printf("Do Ah fuck ");
+"I didn't" printf("Did Ah fuck");
+"I did not " printf("Did Ah fuck ");
+"No." printf("Ney chance.");
+"No!" printf("Ney chance!");
+"I'" printf("Ah'");
+"I " printf("Ah ");
+" my" printf(" ma");
+" me " printf("'us ");
+"We " printf("Wu ");
+" we " printf(" wu ");
+"were " printf("wus ");
+"Were " printf("Wus ");
+bastard printf("bastaad");
+into printf("inter");
+" on " printf("'an ");
+" for " printf(" f' ");
+beer printf("brown");
+" of " printf(" a'");
+[Gg]erman printf("Jorman");
+[Ss]wiss printf("Jorman");
+[Au]strian printf("Jorman");
+right printf("reyt");
+Right printf("Reyt");
+" to " printf(" ter ");
+" hit by " printf(" chinned off ");
+" kill" printf(" fuck");
+" hitt" printf(" fuck");
+" hit " printf(" fucked ");
+" hit" printf(" fuck");
+breast printf("tit");
+bosom printf("tit");
+screwing printf("shaggin'");
+Screwing printf("Shaggin'");
+screw printf("shag");
+kick printf("fuck");
+Kick printf("Fuck");
+"ing " printf("in' ");
+ou printf("er");
+"? " printf(", ya bastaad? ");
+", sir" printf(", pal");
+", dear" printf(", pet");
+[a-m]", " {ECHO;printf("fuck, ");}
+[n-z]", " {ECHO;printf("like, ");}
+. printf(yytext);
+\n printf("\n");
+%%
+main()
+{
+ yylex();
+}
--- /dev/null
+%e 2000
+%p 5000
+%n 1000
+%k 500
+%a 4000
+%o 2000
+
+%{
+/*
+**
+** The buckwheat filter
+** by Benjamin Elijah Griffin 29 March 1995
+**
+** A lex utility written as a favor for a friend. (He provided the
+** rules, I showed him how to make a lex filter out of them.)
+**
+** compile like this:
+** lex buck.l
+** cc -o buck lex.yy.c -ll
+** rm lex.yy.c
+**
+** use like this:
+** buck < infile > outfile
+** or
+** cat infile | <whatever> | buck | <whatever> > outfile
+**
+*/
+
+char WhAt[]="@(#)Benjamin Elijah Griffin's buck filter for buckwheat (c) 1995\n@(#)$Header:$"
+;
+
+%}
+
+%%
+
+okay printf("otay");
+Okay printf("Otay");
+the printf("da");
+The printf("Da");
+ing[ .,;!?] printf("in'%s",yytext+3);
+" for " printf(" po' ");
+" in " printf(" bin ");
+love printf("nub");
+Love printf("Nub");
+" ll" printf(" d");
+Ll printf("D");
+" l" printf(" w");
+L printf("W");
+ll { printf("ww"); /* hmm, do we really want that? */ }
+l { 1+1; /* cutesy null statement */ }
+" ch" printf(" t");
+Ch printf("T");
+" h" printf(" n");
+H printf("H");
+" r"[aeiou] printf("%s",yytext+2);
+R[aeiou] printf("R%s",toupper(*(yytext+1)));
+r[^ .,;!?] printf("%s",yytext+1);
+" t" printf(" d");
+T printf("D");
+" g" printf(" b");
+G printf("B");
+th printf("d");
+n[a-z][ .,;!?] printf("n%s",yytext+2);
+wi printf("bi");
+Wi printf("Bi");
+" sh" printf(" t");
+Sh printf("T");
+" "s[aeiou] printf(" t%s",yytext+2);
+S[aeiou] printf("T%s",yytext+1);
+" "s[qwrtypsdfghjklzxcvbnm] printf(" %s",yytext+2);
+S[qwrtypsdfghjklzxcvbnm] printf("%s",yytext+1);
+" "c[aou] printf(" %s",yytext+2);
+C[aou] printf("C%c",toupper(*(yytext+1)));
+" "r[aeiou] printf(" %s",yytext+2);
+R[aeiou] printf("R%c",toupper(*(yytext+1)));
+
+. printf("%s",yytext);
+
+%%
+
+main()
+{
+ yylex();
+}
+
--- /dev/null
+%{
+#define yywrap() 1
+%}
+
+T [" .!?,"]*
+
+%%
+
+"ass" printf("[BUTTOCKS]");
+"ASS" printf("[BUTTOCKS]");
+"Ass" printf("[BUTTOCKS]");
+"Damn" printf("[CURSE]");
+"damn" printf("[CURSE]");
+"DAMN" printf("[CURSE]");
+"fuck" printf("[FORNICATE]");
+"Fuck" printf("[FORNICATE]");
+"FUCK" printf("[FORNICATE]");
+"shit" printf("[EXCREMENT]");
+"Shit" printf("[EXCREMENT]");
+"SHIT" printf("[EXCREMENT]");
+"bitch" printf("[FEMALE DOG]");
+"Bitch" printf("[FEMALE DOG]");
+"BITCH" printf("[FEMALE DOG]");
+"pecker" printf("[PHALLUS]");
+"Pecker" printf("[PHALLUS]");
+"PECKER" printf("[PHALLUS]");
+"nipple" printf("[MAMMARY OUTLET]");
+"Nipple" printf("[MAMMARY OUTLET]");
+"NIPPLE" printf("[MAMMARY OUTLET]");
+"breast" printf("[BUSOM]");
+"Breash" printf("[BUSOM]");
+"BREAST" printf("[BUSOM]");
+"fucking" printf("[FORNICATING]");
+"Fucking" printf("[FORNICATING]");
+"FUCKING" printf("[FORNICATING]");
+"fucked" printf("[FORNICATED]");
+"Fucked" printf("[FORNICATED]");
+"FUCKED" printf("[FORNICATED]");
+"damned" printf("[CURSED]");
+"Damned" printf("[CURSED]");
+"DAMNED" printf("[CURSED]");
+"damning" printf("[CURSING]");
+"Damning" printf("[CURSING]");
+"DAMNING" printf("[CURSING]");
+"piss" printf("[URINATE]");
+"Piss" printf("[URINATE]");
+"PISS" printf("[URINATE]");
+"asshole" printf("[DONKEY BUTTOCKS]");
+"Asshole" printf("[DONKEY BUTTOCKS]");
+"ASSHOLE" printf("[DONKEY BUTTOCKS]");
+"prick" printf("[PHALLUS]");
+"Prick" printf("[PHALLUS]");
+"PRICK" printf("[PHALLUS]");
+"cock" printf("[PHALLUS]");
+"Cock" printf("[PHALLUS]");
+"COCK" printf("[PHALLUS]");
+"pussy" printf("[VAGINA]");
+"Pussy" printf("[VAGINA]");
+"PUSSY" printf("[VAGINA]");
+"twat" printf("[VAGINA]");
+"Twat" printf("[VAGINA]");
+"TWAT" printf("[VAGINA]");
+"cunt" printf("[VAGINA]");
+"Cunt" printf("[VAGINA]");
+"CUNT" printf("[VAGINA]");
+"dick" printf("[RICHARD]");
+"Dick" printf("[RICHARD]");
+"DICK" printf("[RICHARD]");
+"cum" printf("[EJACULATE]");
+"Cum" printf("[EJACULATE]");
+"CUM" printf("[EJACULATE]");
+"jack off" printf("[MASTERBATE]");
+"Jack Off" printf("[MASTERBATE]");
+"JACK OFF" printf("[MASTERBATE]");
+"wet dream" printf("[NOCTURNAL EMISSION]");
+"Wet Dream" printf("[NOCTURNAL EMISSION]");
+"WET DREAM" printf("[NOCTURNAL EMISSION]");
+"jerk off" printf("[MASTERBATE]");
+"Jerk Off" printf("[MASTERBATE]");
+"JERK OFF" printf("[MASTERBATE]");
+"bastard" printf("[ILLEGITIMATE CHILD]");
+"Bastard" printf("[ILLEGITIMATE CHILD]");
+"BASTARD" printf("[ILLEGITIMATE CHILD]");
+"slut" printf("[WANTON WOMAN]");
+"Slut" printf("[WANTON WOMAN]");
+"SLUT" printf("[WANTON WOMAN]");
+"whore" printf("[PROSTITUTE]");
+"Whore" printf("[PROSTITUTE]");
+"WHORE" printf("[PROSTITUTE]");
+"suck" printf("[INHALE]");
+"Suck" printf("[INHALE]");
+"SUCK" printf("[INHALE]");
+"blow" printf("[EXHALE]");
+"Blow" printf("[EXHALE]");
+"BLOW" printf("[EXHALE]");
+. ECHO;
+%%
+
+main()
+{
+ srand(getpid());
+ yylex();
+}
--- /dev/null
+#!/usr/bin/perl -p
+# Swedish Chef filter. Bork Bork Bork!
+# Copyright 1999 by Joey Hess under the terms of the GNU GPL.
+
+# Note that the order of the commands in this program is very important!
+
+# Change 'e' at the end of a word to 'e-a', but don't mess with the word
+# "the".
+s{(\w+)e(\b)}{
+ if (lc($1) ne 'th') {
+ "$1e-a$2"
+ }
+ else {
+ "$1e$2"
+ }
+}eg;
+
+# Stuff that happens at the end of a word.
+s/en(\b)/ee$1/g;
+s/th(\b)/t$1/g;
+
+# Stuff that happens if not the first letter of a word.
+s/(\w)f/$1ff/g;
+
+# Change 'o' to 'u' and at the same time, change 'u' to 'oo'. But only
+# if it's not the first letter of the word.
+tr/ou/uo/;
+s{(\b)([uo])}{
+ $1 . $2 eq 'o' ? 'u' : 'o'
+}eg;
+# Note that this also handles doubling "oo" at the beginning of words.
+s/o/oo/g;
+# Have to double "Oo" seperatly.
+s/(\b)O(\w)/$1Oo$2/g;
+# Fix the word "bork", which will have been mangled to "burk"
+# by above commands. Note that any occurence of "burk" in the input
+# gets changed to "boork", so it's completly safe to do this:
+s/\bburk\b/bork/;
+
+# Stuff to do to letters that are the first letter of any word.
+s/\be/i/g;
+s/\bE/I/g;
+
+# Stuff that always happens.
+s/teeun/shun/g; # this actually has the effect of changing "tion" to "shun".
+s/the/zee/g;
+s/The/Zee/g;
+tr/vVwW/fFvV/;
+
+# Stuff to do to letters that are not the last letter of a word.
+s/a(?!\b)/e/g;
+s/A(?!\b)/E/g;
+
+s/en/un/g; # this actually has the effect of changing "an" to "un".
+s/En/Un/g; # this actually has the effect of changing "An" to "Un".
+s/eoo/oo/g; # this actually has the effect of changing "au" to "oo".
+s/Eoo/Oo/g; # this actually has the effect of changing "Au" to "Oo".
+
+# Change "ow" at end of word to "oo".
+s/uv\b/oo\b/g;
+
+# Change 'i' to 'ee', but not at the beginning of a word,
+# and only affect the first 'i' in each word.
+s/(\b\w[a-hj-zA-HJ-Z]*)i/$1ee/g;
+
+# Special punctuation of the end of sentances but only at end of lines.
+s/([.?!])$/$1\nBork Bork Bork!/g;
--- /dev/null
+%{
+/* chef.x - convert English on stdin to Mock Swedish on stdout
+ *
+ * The WC definition matches any word character, and the NW definition matches
+ * any non-word character. Two start conditions are maintained: INW (in word)
+ * and NIW (not in word). The first rule passes TeX commands without change.
+ *
+ * HISTORY
+ *
+ * Apr 26, 1993; John Hagerman: Added ! and ? to the Bork Bork Bork rule.
+ *
+ * Apr 15, 1992; John Hagerman: Created.
+ */
+
+static int i_seen = 0;
+%}
+
+WC [A-Za-z']
+NW [^A-Za-z']
+
+%start INW NIW
+
+%%
+
+\\[^ \n]+ ECHO;
+
+{NW} { BEGIN NIW; i_seen = 0; ECHO; }
+[.!?]$ { BEGIN NIW; i_seen = 0;
+ printf("%c\nBork Bork Bork!",yytext[0]); }
+
+<NIW>"bork"/{NW} ECHO;
+<NIW>"Bork"/{NW} ECHO;
+
+"an" { BEGIN INW; printf("un"); }
+"An" { BEGIN INW; printf("Un"); }
+"au" { BEGIN INW; printf("oo"); }
+"Au" { BEGIN INW; printf("Oo"); }
+"a"/{WC} { BEGIN INW; printf("e"); }
+"A"/{WC} { BEGIN INW; printf("E"); }
+"en"/{NW} { BEGIN INW; printf("ee"); }
+<INW>"ew" { BEGIN INW; printf("oo"); }
+<INW>"e"/{NW} { BEGIN INW; printf("e-a"); }
+<NIW>"e" { BEGIN INW; printf("i"); }
+<NIW>"E" { BEGIN INW; printf("I"); }
+<INW>"f" { BEGIN INW; printf("ff"); }
+<INW>"ir" { BEGIN INW; printf("ur"); }
+<INW>"i" { BEGIN INW; printf(i_seen++ ? "i" : "ee"); }
+<INW>"ow" { BEGIN INW; printf("oo"); }
+<NIW>"o" { BEGIN INW; printf("oo"); }
+<NIW>"O" { BEGIN INW; printf("Oo"); }
+<INW>"o" { BEGIN INW; printf("u"); }
+"the" { BEGIN INW; printf("zee"); }
+"The" { BEGIN INW; printf("Zee"); }
+"th"/{NW} { BEGIN INW; printf("t"); }
+<INW>"tion" { BEGIN INW; printf("shun"); }
+<INW>"u" { BEGIN INW; printf("oo"); }
+<INW>"U" { BEGIN INW; printf("Oo"); }
+"v" { BEGIN INW; printf("f"); }
+"V" { BEGIN INW; printf("F"); }
+"w" { BEGIN INW; printf("v"); }
+"W" { BEGIN INW; printf("V"); }
+
+. { BEGIN INW; ECHO; }
--- /dev/null
+%{
+/*
+ * Lex filter to transform plain English into Cockney English.
+ * No racial or societal slurs are intended. For amusement only.
+ *
+ * Copyright 1986 by Daniel Klein.
+ *
+ * Reproduction permitted so long as this notice is retained.
+ */
+%}
+
+BW [ \t\n]
+SP [ \t]+
+EW [ \t.,;!\?$]
+
+%Start junk
+
+%%
+<junk>. { srandom(time(0L)); unput(yytext[0]); BEGIN 0; }
+{BW}[Tt]he{EW} { ECHO; bloody(); }
+{BW}[Ss]teal{EW} { printf("%c%cick",yytext[0],yytext[1]-5);
+ eos();
+ }
+{BW}[Ss]tole{EW} { printf("%c%cicked",yytext[0],yytext[1]-5);
+ eos();
+ }
+{BW}tired pooped();
+{BW}were{EW} |
+{BW}was{EW} { printf("%cwuz",yytext[0]); eos(); }
+[Hh]ello printf("'%cllo", caseify('u'));
+{BW}[Hh] printf("%c'",yytext[0]);
+{BW}[Yy]our{EW} { printf("%.2ser",yytext); eos(); }
+{BW}it{EW} { printf("%.2s'",yytext); eos(); }
+{BW}go{EW} { printf("%.2sow",yytext); eos(); }
+{BW}and{EW} { printf("%c'n'",yytext[0]); eos(); }
+{BW}my{EW} { printf("%.2se",yytext); eos(); }
+{BW}th(is|at){EW} { printf("%.5s", yytext); eos(); }
+{BW}[Ww]e{SP}went{EW} |
+{BW}[Ww]e{SP}had{EW} |
+{BW}[Ww]e{SP}did{EW} { printf("%.*s",yyleng-1,yytext);
+ set_did(2);
+ eos();
+ }
+{BW}I{SP}went{EW} |
+{BW}I{SP}had{EW} |
+{BW}I{SP}did{EW} { I();
+ printf(" did");
+ set_did(1);
+ eos();
+ }
+{BW}I{EW} { I(); eos(); }
+
+[Yy]ou{SP}[^aeiouy] { printf("%c'", yytext[0]); plastc(); }
+[Ww]hat{SP}are{EW} { printf("%cotta", yytext[0]); eos(); }
+
+{BW}other |
+[MmNnRr]other printf("%cuvver",yytext[0]);
+[MmSs]outh printf("%cowf", yytext[0]);
+[cYy]outh printf("%coof", yytext[0]);
+[^o]uth printf("%.2sf",yytext);
+{BW}th[^e] |
+[AaEeIiOo]th[^em] { printf("%cf",yytext[0]); plastc(); }
+oothe |
+e[ei]the { printf("%c%cve", yytext[0], yytext[0]); }
+ooth |
+eeth { printf("%c%cf", yytext[0], yytext[0]); }
+[aei]the { printf("%cvv",yytext[0]); plastc(); }
+th putchar('v');
+a[km]e{EW} { printf("i%ce",yytext[1]); eos(); }
+[^r][Oo]ld printf("%.2swld",yytext);
+[^AaEeIiOoUu][uo]nd[a-z] printf("%cunn%c",yytext[0],yytext[yyleng-1]);
+ing{EW} { printf("in'"); eos(); }
+[^dg]get+[^h] printf("%cge'%c",yytext[0],yytext[yyleng-1]);
+ail printf("aiw");
+any printf("enny");
+[rSs]ay{EW} { printf("%cigh",yytext[0]); eos(); }
+way printf("why");
+[BbHh]it{EW} { printf("%ci'",yytext[0]); eos(); }
+ait{EW} { printf("ite"); eos(); }
+ime{EW} { printf("oime"); eos(); }
+[^e]ize[^n] printf("%coize%c",yytext[0],yytext[yyleng-1]);
+[^e]ight printf("%coit",*yytext);
+[a-z]"?" { *(yytext+1) = ',';
+ printf("%s roit?",yytext);
+ clear_did();
+ }
+[a-z]"." { printf("%c", yytext[0]); dintI(); }
+\n printf("\n");
+
+%%
+
+eos()
+{
+ if (yytext[yyleng-1] == '.')
+ dintI();
+ else
+ unput(yytext[yyleng-1]);
+}
+
+plastc()
+{
+ unput(yytext[yyleng-1]);
+}
+
+caseify(c)
+char c;
+{
+ if (yytext[0] <= 'Z')
+ return (c - ' ');
+ else
+ return (c);
+}
+
+
+I()
+{
+/* extern long random(); */
+
+ if (random() % 100 < 20)
+ printf("%cOy",yytext[0]);
+ else
+ printf("%cI",yytext[0]);
+}
+
+static short b_count = 0;
+static short b_which = 0;
+
+bloody()
+{
+ if (b_count++ % 2 == 0) {
+ switch (b_which++ % 4) {
+ case 0: printf("bloody "); break;
+ case 1: printf("flinkin' "); break;
+ case 2: printf("bleedin' "); break;
+ case 3: printf("soddin' "); break;
+ }
+ }
+}
+
+static short did = 0;
+
+set_did(val)
+{
+ did = val;
+}
+
+clear_did()
+{
+ did = 0;
+}
+
+dintI()
+{
+/* extern long random(); */
+
+ if ((did == 1) && (random() % 100 < 50))
+ printf(", didn'I?");
+ else if ((did == 2) && (random() % 100 < 50))
+ printf(", din't we?");
+ else
+ printf(".");
+ clear_did();
+}
+
+pooped()
+{
+/* extern long random(); */
+
+ switch (random() % 3) {
+ case 0:
+ printf("%cknackered", yytext[0]);
+ break;
+ case 1:
+ printf("%cshagged out", yytext[0]);
+ break;
+ case 2:
+ printf("%cdone in", yytext[0]);
+ break;
+ }
+}
+
+expletive()
+{
+/*
+Blimey
+Stright a light
+'Strewth
+Cor blimey
+*/
+}
--- /dev/null
+* censor filter (should be easy)
+* continue to make the chef filter more similar to the old one
+* write more filters
--- /dev/null
+filters (1.3) unstable; urgency=low
+
+ * Libc6.
+ * Added man pages. #11318
+
+ -- Joey Hess <joeyh@master.debian.org> Wed, 16 Jul 1997 13:31:07 -0400
+
+filters (1.2) frozen unstable; urgency=low
+
+ * Fixed bug #8329 (buck segfaulted if it encountered C[aou] or R[aeiou] in
+ input.)
+ * Routine update of debian/rules:
+ Run dpkg-gencontrol after debstd, and delete substvars during clean.
+
+ -- Joey Hess <joeyh@master.debian.org> Tue, 8 Apr 1997 20:59:12 -0400
+
+filters (1.1) unstable; urgency=low
+
+ * Changed version number to 1.1, because there was some confusion if this
+ was a debian-only package. It is, so I've removed the debian revision
+ number.
+
+ -- Joey Hess <joeyh@master.debian.org> Tue, 24 Dec 1996 20:35:51 -0500
+
+filters (1.0-2) unstable; urgency=low
+
+ * New email address.
+ * Use debmake.
+
+ -- Joey Hess <joeyh@master.debian.org> Tue, 24 Dec 1996 15:40:55 -0500
+
+filters (1.0-1) unstable; urgency=low
+
+ * First release.
+
+ -- Joey Hess <joeyh@master.debian.org> Sat, 28 Sep 1996 00:55:40 -0400
+
+Local variables:
+mode: debian-changelog
+End:
--- /dev/null
+# Edit this file to configure debian/rules to build a package.
+# No modification of debian/rules should be neccessary. (Famous last words!)
+#
+# File by Joey Hess <joeyh@master.debian.org>
+
+# What is the name of this package?
+package=filters
+
+# Files that go in directories under /doc.
+docs=README ky00te.dir/README.ky00te SAMPLES
+copyright=debian/copyright
+
+# What file must exist in the current directory if the package is
+# properly unpacked here?
+test_file=makesample.sh
+
+# Does this package build from an Imakefile?
+# If so, uncomment the line below.
+#use_imakefile=y
+
+# Does this package build from a Configure script?
+# If so, uncomment the line below and enter the command to run to run the
+# Configure script (ie: "./Configure")
+#use_configure=./Configure
+
+# What commands to run to build the package?
+define build_command
+ $(MAKE)
+ $(MAKE) samples
+endef
+
+# What commands to run to clean up after a build?
+define clean_command
+ -$(MAKE) -i clean
+endef
+
+# List here any files that must be removed during "debian/rules clean"
+# that clean_command doesn't take care of.
+clean_files=
+
+# List here any files that should be preserved during a build, and restored
+# to their original state during a clean. For example, if the package comes
+# with both an Imakefile and a Makefile, and xmkmf is run, list the original
+# Makefile here so it will be backed up before it is overwritten my xmkmf.
+preserve_files=
+
+# What command to run to install the package into debian/tmp?
+# You might want to edit the package's Makefile and add $(PREFIX)
+# to all the paths it installs files to. or, you can just write
+# your own install commands here instead.
+#
+# Note that debian/* and the files in /usr/doc will be installed
+# properly for you, you don't need to do that here.
+#
+define install_command
+ $(MAKE) PREFIX=debian/tmp install
+endef
+
+# After being installed in debian/tmp, everything is chowned to root.root,
+# and chmod g-ws is run on everyything. Enter below any chmod commands you
+# need to run to set files to the proper permissions. This is where you
+# can make programs be suid, etc.
+# (Note that these commands will be run as root.)
+define ch_commands
+endef
--- /dev/null
+Source: filters
+Section: games
+Priority: optional
+Maintainer: Joey Hess <joeyh@master.debian.org>
+Standards-Version: 2.1.1.0
+
+Package: filters
+Architecture: any
+Depends: ${shlibs:Depends}
+Description: a collection of filters, including B1FF and the swedish chef
+ A collection of filters to do all sorts of strange things to text.
+ This includes such favorites as B1FF and the swedish chef, as well as lots
+ of other filters.
--- /dev/null
+This is a Debian prepackaged version of the filters package.
+
+This package was put together and debianized by Joey Hess
+<joeyh@master.debian.org>, using sources from all over, including:
+ http://www.princeton.edu/~mkporwit/pub_links/davido/slang/
+ http://www.mathlab.sunysb.edu/~elijah/src.html
+
+Various copyrights pertain to different files in this package:
+
+cockney filter:
+/*
+ * Lex filter to transform plain English into Cockney English.
+ * No racial or societal slurs are intended. For amusement only.
+ *
+ * Copyright 1986 by Daniel Klein.
+ *
+ * Reproduction permitted so long as this notice is retained.
+ */
+
+jive filter:
+/*
+ * Lex filter to transform plain English into Jive English.
+ * No racial or societal slurs are intended. For amusement only.
+ *
+ * Copyright 1986 by Daniel Klein and Clement Cole.
+ *
+ * Reproduction permitted so long as this notice is retained.
+ */
+
+newspeak filter:
+ * newspeak.l, version 1.1.
+ * Lex filter to transform plain English into NewSpeak.
+ * Copyright (c) 1991 Jamie Zawinski <jwz@lucid.com>.
+ * Permission granted for noncommercial use and redistribution.
+
+nyc filter:
+/*
+ * Lex filter to transform plain English into Brooklyn English.
+ * No racial or societal slurs are intended. For amusement only.
+ *
+ * Copyright 1986 by Daniel Klein.
+ *
+ * Reproduction permitted so long as this notice is retained.
+ */
+
+ky00te filter:
+
+This program is (c) 1994, Brent E. Edwards. Feel free to distribute the
+complete program world-wide. (Please do NOT break apart this text file
+from the program.)
+
+This program is under absolutely no warrantee of any kind.
+
+If you have any questions about this program, please send them to
+edwardsb@cs.rpi.edu.
+
+This program is dedicated to Conrad Wong.
+
+This program is catware. If you find it useful in any way, pay for this
+program by spending one hour petting one or several cats.
--- /dev/null
+#!/usr/bin/make -f
+##############################################################################
+# Generic debian/rules file. Based on:
+#
+#> Sample debian.rules file - for GNU Hello (1.3).
+#> Copyright 1994,1995 by Ian Jackson.
+#> I hereby give you perpetual unlimited permission to copy,
+#> modify and relicense this file, provided that you do not remove
+#> my name from the file itself. (I assert my moral right of
+#> paternity under the Copyright, Designs and Patents Act 1988.)
+#
+# Heavily modified by Joey Hess <joeyh@master.debian.org>
+#
+##############################################################################
+#
+# NOTE: You shouldn't have to edit this file. Edit debian/config instead.
+# If you must edit this file to get your package to build properly, then
+# I have failed. Let me know; mail me.
+#
+# (Currently not handled: multiple binary packages from 1 source package,
+# and binary-indep rule.)
+#
+# NOTE: This file is designed so it doesn't need to be run as root. For
+# actions that require that the user be root, the root password will be
+# prompted for, if you're not already root.
+#
+##############################################################################
+#
+# Changelog:
+# * Fakeroot and sudo fixes.
+# * Run dpkg-gencontrol after debstd, and delete substvars during clean.
+# * Clean up junk files in subdirs.
+# * Modifications for multiple binary package support.
+# * Call debstd after fixing file perms.
+# * Don't pass package name to debstd + fixes for multi binary packages.
+# * Use build-stamp instead of build.
+# * New email address.
+# * Added changelog.
+#
+##############################################################################
+
+# Include config file.
+include debian/config
+
+# Generate a makefile (via configure scriopt or xmkmf).
+makefile-stamp:
+ ifeq ($(strip $(use_imakefile)),y)
+ xmkmf -a
+ endif
+ $(use_configure)
+ touch makefile-stamp
+
+# Preserve some files that may get deleted/overwritten/modified otherwise.
+preserve-stamp:
+ ifneq ($(strip $(preserve_files)),)
+ $(foreach file,$(preserve_files),cp $(file) $(file).preserved ;)
+ endif
+ touch preserve-stamp
+
+build-stamp: preserve-stamp makefile-stamp
+ $(checkdir)
+ $(build_command)
+ touch build-stamp
+
+build: build-stamp
+
+clean: preserve-stamp makefile-stamp
+ $(checkdir)
+ # Do actual cleaning up here.
+ -rm -f build-stamp
+ $(clean_command)
+ -find . -name '\#*\#' -o -name '*~' -o -name 'DEADJOE' -exec rm -f {} \;
+ -rm -f debian/files* debian/substvars debian/*.substvars $(clean_files)
+ $(clean_tmp)
+ # Remove Makefile that xmkmf creates.
+ ifeq ($(strip $(use_imakefile)),y)
+ -rm -f Makefile
+ endif
+ # If we preserved some files, we need to restore them now.
+ ifneq ($(strip $(preserve_files)),)
+ $(foreach file,$(preserve_files),mv -f $(file).preserved $(file); )
+ endif
+ -rm -f preserve-stamp makefile-stamp
+
+# Build architecture-independent files here.
+# (not yet set up to be used)
+binary-indep: build
+ $(checkdir)
+
+# Build architecture-dependent files here.
+binary-arch: build
+ $(checkdir)
+ $(clean_tmp)
+ $(install_command)
+ # Set permissions and check package for problems, then build package.
+ @if [ "`whoami`" != root ]; then \
+ echo -e "\n ** Enter root password to set file permissions."; \
+ sudo debian/rules setperms; \
+ else \
+ debian/rules setperms; \
+ fi
+
+# This must be run suid root, it sets the file permissions in debian/tmp
+setperms:
+ chown -R root.root debian/tmp
+ chmod -R g-ws debian/tmp
+ # Debstd handles lots of nasty details. This requires that the debmake
+ # package is installed.
+ -debstd $(debstd) $(docs)
+ dpkg-gencontrol -p$(package)
+ $(ch_commands)
+ dpkg --build debian/tmp ..
+
+define checkdir
+ @test -e $(test_file) -a -f debian/rules || (echo -e "\n\
+ ** \"$(test_file)\" or \"debian/rules\" does not exist.\n\
+ ** Either the package is not unpacked in this directory, or\n\
+ ** an incorrect test_file is specified in debian/config.\n" && false)
+endef
+
+# This rm's the debian/tmp directory, and any other directories specified in
+# tmpdirs
+define clean_tmp
+ -rm -rf debian/tmp >/dev/null 2>&1
+ @if [ -d debian/tmp -o -n "$(tmp_dirs)" ]; then \
+ if [ "`whoami`" != root ]; then \
+ echo -e "\n ** Enter root password to remove temporary directories $(tmp_dirs)"; \
+ sudo rm -rf debian/tmp $(tmp_dirs); \
+ else \
+ rm -rf debian/tmp $(tmp_dirs); \
+ fi; \
+ fi
+endef
+
+binary: binary-indep binary-arch
+.PHONY: clean setperms binary
--- /dev/null
+%{
+/* Title: English to Texan translator
+ * Author: Adam Hudd (adam@dadhb1.ti.com)
+ * Date: 5 March 1991
+ * Version: 1.0
+ *
+ * Input: stdin
+ * Output: stdout
+ * compile: flex -iL drawl.l ; cc -O lex.yy.c -o drawl
+ */
+
+#include <stdio.h>
+#include <ctype.h>
+
+void changeCase();
+%}
+%%
+(^|" ")"American" changeCase(" Amerkin");
+(^|" ")"California" changeCase(" Caleyfornyuh");
+(^|" ")"Dallas" changeCase(" Big D.");
+(^|" ")"Fort Worth" changeCase(" Fowert Wurth");
+(^|" ")"Houston" changeCase(" Useton");
+(^|" ")"I don't know" changeCase(" I-O-no");
+(^|" ")"I will"|" I'll" changeCase(" Ahl");
+(^|" ")"I would" changeCase(" Ahd");
+(^|" ")"I " changeCase(" Ah ");
+(^|" ")"I'm "|" I am " changeCase(" Ahm ");
+(^|" ")"I've "|" I have " changeCase(" Ahv ");
+(^|" ")"Mexico" changeCase(" Messyco");
+(^|" ")"San Antonio" changeCase(" Santone");
+(^|" ")"TV"|" television"|" telly" changeCase(" tayvay");
+(^|" ")"Texan" changeCase(" Texun");
+(^|" ")"Texas" changeCase(" Teksus");
+(^|" ")"a while " changeCase(" uhwahl ");
+(^|" ")"a " changeCase(" uh ");
+(^|" ")"about" changeCase(" bout");
+(^|" ")"adult" changeCase(" a-dult");
+(^|" ")"afraid" changeCase(" frayed");
+(^|" ")"and " changeCase(" an ");
+(^|" ")"anniversary" changeCase(" anavarsry");
+(^|" ")"any " changeCase(" no ");
+(^|" ")"anywhere" changeCase(" anywhare");
+(^|" ")"appreciate" changeCase(" preshate");
+(^|" ")"april" changeCase(" abrul");
+(^|" ")"are going to" changeCase(" sargunna");
+(^|" ")"are known" changeCase(" iz node");
+(^|" ")"are " changeCase(" is ");
+(^|" ")"aren't you" changeCase(" arncha");
+(^|" ")"at them" changeCase(" attum");
+(^|" ")"august" changeCase(" awg-ghust");
+(^|" ")"away" changeCase(" awf");
+(^|" ")"awkward" changeCase(" aukerd");
+(^|" ")"bad" changeCase(" bayud");
+(^|" ")"ball" changeCase(" bawl");
+(^|" ")"baptists" changeCase(" babtusses");
+(^|" ")"barbed" changeCase(" bob");
+(^|" ")"be " changeCase(" bay ");
+(^|" ")"bear" changeCase(" bayur");
+(^|" ")"beautiful" changeCase(" butiful");
+(^|" ")"because" changeCase(" cuz");
+(^|" ")"believe" changeCase(" bleeve");
+(^|" ")"bitty" changeCase(" biddy");
+(^|" ")"black" changeCase(" blaak");
+(^|" ")"blue" changeCase(" bulloo");
+(^|" ")"born" changeCase(" bornd");
+(^|" ")"brake" changeCase(" brayke");
+(^|" ")"break" changeCase(" brayke");
+(^|" ")"brick" changeCase(" breck");
+(^|" ")"brighter" changeCase(" brotter");
+(^|" ")"bringing" changeCase(" brangin");
+(^|" ")"brown" changeCase(" braoyone");
+(^|" ")"building" changeCase(" bildun");
+(^|" ")"bulb" changeCase(" bub");
+(^|" ")"call you " changeCase(" cawya ");
+(^|" ")"called you " changeCase(" cawdja ");
+(^|" ")"camera" changeCase(" Instuhmatik");
+(^|" ")"can't" changeCase(" kaynt");
+(^|" ")"can't"|" can not"|" cannot" changeCase(" kaynt");
+(^|" ")"capital" changeCase(" captul");
+(^|" ")"car " changeCase(" cawer ");
+(^|" ")"catch" changeCase(" ketch");
+(^|" ")"chair" changeCase(" chayer");
+(^|" ")"cheer" changeCase(" chair");
+(^|" ")"chicken" changeCase(" chikun");
+(^|" ")"child" changeCase(" kid");
+(^|" ")"children" changeCase(" kids");
+(^|" ")"clean" changeCase(" klane");
+(^|" ")"climate" changeCase(" kliment");
+(^|" ")"cold" changeCase(" code");
+(^|" ")"darker" changeCase(" dawerker");
+(^|" ")"deaf" changeCase(" dayuf");
+(^|" ")"death" changeCase(" dayuth");
+(^|" ")"december" changeCase(" deceyumbur");
+(^|" ")"definite" changeCase(" defnut");
+(^|" ")"did not"|" didn't" changeCase(" didunt");
+(^|" ")"did you" changeCase(" dja");
+(^|" ")"didn't it" changeCase(" diduhnit");
+(^|" ")"different" changeCase(" difernt");
+(^|" ")"difficult" changeCase(" difahkult");
+(^|" ")"divide" changeCase(" duhvide");
+(^|" ")"does" changeCase(" duz");
+(^|" ")"doesn't" changeCase(" don't");
+(^|" ")"dog " changeCase(" dawg ");
+(^|" ")"I don't care" changeCase(" don't make no nevur mind to may ");
+(^|" ")"door" changeCase(" dower");
+(^|" ")"dreaming" changeCase(" draimun");
+(^|" ")"drink" changeCase(" drank");
+(^|" ")"drinking" changeCase(" drankin");
+(^|" ")"drive" changeCase(" drahv");
+(^|" ")"eight" changeCase(" ate");
+(^|" ")"eighteen" changeCase(" a-tane");
+(^|" ")"eighth" changeCase(" athd");
+(^|" ")"eighty" changeCase(" ady");
+(^|" ")"eleven" changeCase(" lebum");
+(^|" ")"entire" changeCase(" entahr");
+(^|" ")"especially" changeCase(" speshuly");
+(^|" ")"even" changeCase(" evun");
+(^|" ")"evening" changeCase(" eevnun");
+(^|" ")"eventually" changeCase(" eventchly");
+(^|" ")"ever" changeCase(" evur");
+(^|" ")"every once in a while" changeCase(" evurwonsinawhahl");
+(^|" ")"every" changeCase(" evur");
+(^|" ")"exactly" changeCase(" zakly");
+(^|" ")"executive" changeCase(" zekatuv");
+(^|" ")"eye " changeCase(" ah ");
+(^|" ")"father" changeCase(" papa");
+(^|" ")"february" changeCase(" febberyawary");
+(^|" ")"fell " changeCase(" fayul ");
+(^|" ")"fifteen" changeCase(" fiftane");
+(^|" ")"fifth" changeCase(" fifd");
+(^|" ")"fifty" changeCase(" fifdy");
+(^|" ")"fight" changeCase(" fite");
+(^|" ")"figure" changeCase(" figger");
+(^|" ")"filling" changeCase(" fillin");
+(^|" ")"fine" changeCase(" fahn");
+(^|" ")"fire" changeCase(" far");
+(^|" ")"first" changeCase(" fursd");
+(^|" ")"five" changeCase(" fav");
+(^|" ")"fixing" changeCase(" fixin");
+(^|" ")"flower" changeCase(" flare");
+(^|" ")"follow" changeCase(" faller");
+(^|" ")"for " changeCase(" fahwar ");
+(^|" ")"forget" changeCase(" fergit");
+(^|" ")"fork" changeCase(" fowerk");
+(^|" ")"forty" changeCase(" fardy");
+(^|" ")"four" changeCase(" fower");
+(^|" ")"fourteen" changeCase(" fortane");
+(^|" ")"fourth" changeCase(" fowerth");
+(^|" ")"freeze" changeCase(" fraze");
+(^|" ")"friday" changeCase(" frydy");
+(^|" ")"from" changeCase(" frum");
+(^|" ")"front" changeCase(" frunt");
+(^|" ")"gas" changeCase(" gayus");
+(^|" ")"geography" changeCase(" joggerfee");
+(^|" ")"get a hold of you" changeCase(" gittaholdayew");
+(^|" ")"get" changeCase(" git");
+(^|" ")"going to" changeCase(" gunna");
+(^|" ")"going to" changeCase(" mona");
+(^|" ")"gold" changeCase(" gode");
+(^|" ")"got to " changeCase(" gotta ");
+(^|" ")"green" changeCase(" grane");
+(^|" ")"grey"|" gray" changeCase(" graey");
+(^|" ")"guests" changeCase(" guesss");
+(^|" ")"guitar" changeCase(" gitahwer");
+(^|" ")"gulf" changeCase(" guf");
+(^|" ")"hard" changeCase(" hayud");
+(^|" ")"have a " changeCase(" havuh ");
+(^|" ")"have not"|" haven't" changeCase(" habumt");
+(^|" ")"have " changeCase(" hav ");
+(^|" ")"he " changeCase(" hay ");
+(^|" ")"headed" changeCase(" hardud");
+(^|" ")"here" changeCase(" hare");
+(^|" ")"high" changeCase(" ha");
+(^|" ")"hour" changeCase(" air");
+(^|" ")"how are you" changeCase(" hyeru");
+(^|" ")"how do you do " changeCase(" howdee ");
+(^|" ")"huh!" changeCase(" hawh!");
+(^|" ")"huh?" changeCase(" hawh?");
+(^|" ")"hundred" changeCase(" hunnerd");
+(^|" ")"if I " changeCase(" fah ");
+(^|" ")"if it " changeCase(" hifit ");
+(^|" ")"if you" changeCase(" few");
+(^|" ")"if " changeCase(" hif ");
+"ing " changeCase("in' ");
+(^|" ")"ignorance" changeCase(" ignernt");
+(^|" ")"indian" changeCase(" hinyun");
+(^|" ")"inside" changeCase(" n-sod");
+(^|" ")"instead of" changeCase(" instudda");
+(^|" ")"institute" changeCase(" instatoot");
+(^|" ")"intersection" changeCase(" innersekshun");
+(^|" ")"is a " changeCase(" izza ");
+(^|" ")"is it " changeCase(" izit ");
+(^|" ")"is that " changeCase(" izzat ");
+(^|" ")"is that right " changeCase(" zatrot ");
+(^|" ")"is " changeCase(" iz ");
+(^|" ")"isn't it " changeCase(" hiduhnit ");
+(^|" ")"it appears" changeCase(" pears");
+(^|" ")"it would" changeCase(" hid");
+(^|" ")"it " changeCase(" hit ");
+(^|" ")"it'd " changeCase(" hid ");
+(^|" ")"it's"|" it is" changeCase(" hit's");
+(^|" ")"jail" changeCase(" jayul");
+(^|" ")"january" changeCase(" janyawary");
+(^|" ")"jeans" changeCase(" janes");
+(^|" ")"jet" changeCase(" jeyut");
+(^|" ")"jewelry" changeCase(" julry");
+(^|" ")"july" changeCase(" djoolie");
+(^|" ")"june" changeCase(" djoon");
+(^|" ")"just" changeCase(" gist");
+(^|" ")"kind of" changeCase(" kinduh");
+(^|" ")"king" changeCase(" kang");
+(^|" ")"library" changeCase(" liberry");
+(^|" ")"lie" changeCase(" lah");
+(^|" ")"life" changeCase(" lahf");
+(^|" ")"light" changeCase(" lot");
+(^|" ")"lighter" changeCase(" lahter");
+(^|" ")"like" changeCase(" lahk");
+(^|" ")"little" changeCase(" liddel");
+(^|" ")"log" changeCase(" lawg");
+(^|" ")"lot of" changeCase(" lottuh");
+(^|" ")"lots of" changeCase(" lotsa");
+(^|" ")"love" changeCase(" luv");
+(^|" ")"mall" changeCase(" mawl");
+(^|" ")"march" changeCase(" martch");
+(^|" ")"material" changeCase(" mahtearyul");
+(^|" ")"may" changeCase(" maey");
+(^|" ")"me " changeCase(" may ");
+(^|" ")"mile" changeCase(" mahl");
+(^|" ")"minute" changeCase(" minent");
+(^|" ")"monday" changeCase(" mundy");
+(^|" ")"mosquito" changeCase(" skeeter");
+(^|" ")"moss" changeCase(" mawce");
+(^|" ")"mother" changeCase(" ma");
+(^|" ")"mroone" changeCase(" maroon");
+(^|" ")"my " changeCase(" mah ");
+(^|" ")"myself" changeCase(" mahsef");
+(^|" ")"never" changeCase(" nevur");
+(^|" ")"nine" changeCase(" nahn");
+(^|" ")"nineteen" changeCase(" nontane");
+(^|" ")"nineth" changeCase(" nonth");
+(^|" ")"ninety" changeCase(" nondy");
+(^|" ")"no " changeCase(" naw ");
+(^|" ")"nothing" changeCase(" nuthun");
+(^|" ")"november" changeCase(" noveyumbur");
+(^|" ")"ocean" changeCase(" oshun");
+(^|" ")"october" changeCase(" oktobur");
+(^|" ")"of " changeCase(" uh ");
+(^|" ")"off" changeCase(" awf");
+(^|" ")"oil" changeCase(" all");
+(^|" ")"old " changeCase(" ode ");
+(^|" ")"one of " changeCase(" wunna ");
+(^|" ")"one " changeCase(" wun ");
+(^|" ")"only" changeCase(" monly");
+(^|" ")"opposite" changeCase(" opsit");
+(^|" ")"orange" changeCase(" arnjuh");
+(^|" ")"over there" changeCase(" ovare");
+(^|" ")"over" changeCase(" ovur");
+(^|" ")"parking" changeCase(" parkin");
+(^|" ")"people" changeCase(" paypul");
+(^|" ")"picture" changeCase(" pitchur");
+(^|" ")"pillow" changeCase(" pillar");
+(^|" ")"pine" changeCase(" pahn");
+(^|" ")"pink" changeCase(" pank");
+(^|" ")"please" changeCase(" playze");
+(^|" ")"pretty" changeCase(" purdy");
+(^|" ")"probably" changeCase(" probly");
+(^|" ")"purple" changeCase(" burpel");
+(^|" ")"queen" changeCase(" kwane");
+(^|" ")"quit" changeCase(" kewyut");
+(^|" ")"rather" changeCase(" ruthur");
+(^|" ")"ready" changeCase(" reddy");
+(^|" ")"real" changeCase(" reeyul");
+(^|" ")"really" changeCase(" rilly");
+(^|" ")"red" changeCase(" rayud");
+(^|" ")"right" changeCase(" rot");
+(^|" ")"ring" changeCase(" rang");
+(^|" ")"said" changeCase(" sayud");
+(^|" ")"sale" changeCase(" sayul");
+(^|" ")"sale"|" sail"|" sell" changeCase(" sayul");
+(^|" ")"saturday" changeCase(" sadderdy");
+(^|" ")"school" changeCase(" skoo");
+(^|" ")"screen" changeCase(" skrane");
+(^|" ")"second" changeCase(" sekunt");
+(^|" ")"see" changeCase(" say");
+(^|" ")"september" changeCase(" ceptimbur");
+(^|" ")"seven" changeCase(" sebum");
+(^|" ")"seventeen" changeCase(" sebumtane");
+(^|" ")"seventh" changeCase(" sebumthd");
+(^|" ")"seventy" changeCase(" sebumdy");
+(^|" ")"she" changeCase(" shay");
+(^|" ")"shirt" changeCase(" churt");
+(^|" ")"sign" changeCase(" sahn");
+(^|" ")"silver" changeCase(" seeyulvur");
+(^|" ")"sit" changeCase(" set");
+(^|" ")"sixteen" changeCase(" sickstane");
+(^|" ")"sixth" changeCase(" sicksed");
+(^|" ")"sixty" changeCase(" sicksdy");
+(^|" ")"siz" changeCase(" sicks");
+(^|" ")"smell" changeCase(" smayul");
+(^|" ")"smile" changeCase(" smahl");
+(^|" ")"softer" changeCase(" sowftur");
+(^|" ")"some of those" changeCase(" sumoze");
+(^|" ")"some" changeCase(" sum");
+(^|" ")"something" changeCase(" sumpn");
+(^|" ")"sometime" changeCase(" sumtom");
+(^|" ")"south" changeCase(" saowth");
+(^|" ")"speak" changeCase(" spake");
+(^|" ")"spring" changeCase(" sprang");
+(^|" ")"sprinkle" changeCase(" sprankul");
+(^|" ")"stadium" changeCase(" stadyum");
+(^|" ")"station" changeCase(" stayshun");
+(^|" ")"string" changeCase(" strang");
+(^|" ")"sunday" changeCase(" sundy");
+(^|" ")"sure" changeCase(" shore");
+(^|" ")"tale"|" tail" changeCase(" tayul");
+(^|" ")"talk" changeCase(" tawk");
+(^|" ")"talking" changeCase(" tawkin");
+(^|" ")"tall" changeCase(" tahl");
+(^|" ")"tan" changeCase(" tayun");
+(^|" ")"ten" changeCase(" teyun");
+(^|" ")"tenth" changeCase(" teyunth");
+(^|" ")"terible" changeCase(" tarbul");
+(^|" ")"terrible" changeCase(" tarbul");
+(^|" ")"that is"|" that's" changeCase(" thets");
+(^|" ")"that" changeCase(" thet");
+(^|" ")"the only" changeCase(" thonly");
+(^|" ")"the other" changeCase(" thuther");
+(^|" ")"the" changeCase(" thuh");
+(^|" ")"their" changeCase(" thur");
+(^|" ")"there" changeCase(" thare");
+(^|" ")"there" changeCase(" thayure");
+(^|" ")"they" changeCase(" thay");
+(^|" ")"thing" changeCase(" thang");
+(^|" ")"think" changeCase(" thank");
+(^|" ")"third" changeCase(" thurd");
+(^|" ")"thirteen" changeCase(" thurtane");
+(^|" ")"thirty" changeCase(" thurdy");
+(^|" ")"this" changeCase(" thus");
+(^|" ")"those" changeCase(" them");
+(^|" ")"thousand" changeCase(" thousun");
+(^|" ")"three" changeCase(" thray");
+(^|" ")"through" changeCase(" thoo");
+(^|" ")"throw" changeCase(" thow");
+(^|" ")"throw" changeCase(" throw");
+(^|" ")"thrown" changeCase(" thowed");
+(^|" ")"thursday" changeCase(" thursdy");
+(^|" ")"tie" changeCase(" tah");
+(^|" ")"tied" changeCase(" tahd");
+(^|" ")"tight" changeCase(" tot");
+(^|" ")"time" changeCase(" tom");
+(^|" ")"to " changeCase(" tuh ");
+(^|" ")"today" changeCase(" tuhday");
+(^|" ")"toilet" changeCase(" outhouse");
+(^|" ")"told" changeCase(" tode");
+(^|" ")"tommorrow" changeCase(" tuhmorrow");
+(^|" ")"tree" changeCase(" tray");
+(^|" ")"truck" changeCase(" truk");
+(^|" ")"tuesday" changeCase(" chewsdy");
+(^|" ")"twelve" changeCase(" twayulv");
+(^|" ")"twenty" changeCase(" twindy");
+(^|" ")"two " changeCase(" tew ");
+(^|" ")"understand" changeCase(" understaynd");
+(^|" ")"used to" changeCase(" ustuh");
+(^|" ")"vehicle" changeCase(" vee-hicul");
+(^|" ")"victory" changeCase(" viktray");
+(^|" ")"violation" changeCase(" vahlayshun");
+(^|" ")"virtual" changeCase(" vurchul");
+(^|" ")"want to " changeCase(" wonna ");
+(^|" ")"was that" changeCase(" wuzzat");
+(^|" ")"was" changeCase(" wuz");
+(^|" ")"wash" changeCase(" wartch");
+(^|" ")"water" changeCase(" warder");
+(^|" ")"we " changeCase(" way ");
+(^|" ")"wedding" changeCase(" wedden");
+(^|" ")"wednesday" changeCase(" winsdy");
+(^|" ")"well" changeCase(" wayul");
+(^|" ")"were " changeCase(" wuz ");
+(^|" ")"west " changeCase(" wayust ");
+(^|" ")"what did you" changeCase(" whudja");
+(^|" ")"what did" changeCase(" whuddle");
+(^|" ")"what do you" changeCase(" wadja");
+(^|" ")"what is the matter" changeCase(" smatter");
+(^|" ")"what is"|" what's" changeCase(" whut");
+(^|" ")"what" changeCase(" whut");
+(^|" ")"wheel" changeCase(" whale");
+(^|" ")"when" changeCase(" wheyun");
+(^|" ")"where did you" changeCase(" whardja");
+(^|" ")"where" changeCase(" whar");
+(^|" ")"where" changeCase(" whayer");
+(^|" ")"white" changeCase(" wot");
+(^|" ")"why don't you" changeCase(" y-oncha");
+(^|" ")"why" changeCase(" wha");
+(^|" ")"wife" changeCase(" waf");
+(^|" ")"window" changeCase(" wender");
+(^|" ")"winter" changeCase(" winner");
+(^|" ")"wire" changeCase(" war");
+(^|" ")"with you" changeCase(" witchew");
+(^|" ")"woman" changeCase(" whoamun");
+(^|" ")"women" changeCase(" wimmen");
+(^|" ")"world" changeCase(" warld");
+(^|" ")"worse than" changeCase(" worsun");
+(^|" ")"yard" changeCase(" chard");
+(^|" ")"yellow" changeCase(" yuller");
+(^|" ")"yes" changeCase(" u-betcha");
+(^|" ")"yes" changeCase(" yayus");
+(^|" ")"you " changeCase(" yawl ");
+(^|" ")"your are"|" you're" changeCase(" yore");
+(^|" ")"your" changeCase(" chur");
+.|'\n' ECHO;
+%%
+main()
+{
+ yylex();
+}
+
+void changeCase(word)
+char *word;
+{
+extern char *yytext;
+
+/* change o/p to upper/lower based on original text */
+ if (isupper(*(yytext+1)) && islower(*(word+1)))
+ *(word+1) = toupper(*(word+1));
+
+ printf(word);
+}
--- /dev/null
+#!/usr/bin/perl -p
+# Eleet filter, Copyright 1999 by Joey Hess under the terms of the GNU GPL.
+BEGIN {
+ $transstring="4bcd3fgh1jklmn0pqr5+uvwxyz";
+ $t="tr/a-zA-Z/$transstring".uc($transstring)."/";
+}
+eval $t;
+s:h:|-|:ig;
+s:l:|_:ig;
+s:m:/\\/\\:ig;
+s:n:/\\/:ig;
+s:v:\\/:ig;
+s:x:><:ig;
--- /dev/null
+%e 2000
+%p 5000
+%n 1000
+%k 500
+%a 4000
+%o 2000
+BW [ ]
+EW [ .,;!?]
+
+%{
+#include <stdio.h>
+
+char buf[128];
+%}
+
+%%
+
+a printf("4");
+A printf("4");
+e printf("3");
+E printf("3");
+i printf("1");
+I printf("1");
+o printf("0");
+O printf("0");
+n printf("/\\/");
+N printf("/\\/");
+m printf("/\\/\\");
+M printf("/\\/\\");
+v printf("\\/");
+V printf("\\/");
+t printf("+");
+T printf("+");
+s printf("5");
+S printf("5");
+l printf("|_");
+L printf("|_");
+x printf("><");
+X printf("><");
+h printf("|-|");
+H printf("|-|");
+
+%%
+main()
+{
+ yylex();
+ return(0);
+}
--- /dev/null
+.TH FILTERS 6
+.SH NAME
+aust, b1ff, biffa, buck, censor, chef, cockney, drawl, fin, fudd, jethro jive ken, kraut, ky00te, mb, moo, newspeak, nyc, valspeak \- assorted text filters
+.SH SYNOPSIS
+All the filters read input from stdin, change it, and write the filtered
+text to stdout.
+.SH "DESCRIPTION"
+All of these programs are filters to do all sorts of strange things to text.
+No racial or societal slurs are intended. For amusement only.
+.IP aust
+Australian
+.IP b1ff
+The B1FF filter
+.IP biffa
+??
+.IP buck
+The buckwheat filter
+.IP censor
+[CENSORED]
+.IP chef
+convert English on stdin to Mock Swedish on stdout
+.IP cockney
+Cockney English
+.IP drawl
+English to Texan translator
+.IP fin
+??
+.IP fudd
+Elmer Fudd
+.IP jethro
+Hillbilly text filter
+.IP jive
+Jive English
+.IP ken
+English into Cockney, featuring (dubious) rhyming
+slang for a lot of computer terminology.
+.IP kraut
+German
+.IP mb
+Marc Barrett posting translator
+.IP moo
+The cow filter
+.IP newspeak
+As in 1984
+.IP nyc
+Brooklyn English
+.IP valspeak
+??
+.IP ky00te
+This program places a very cute (and familiar to FurryMuck
+fans) accent to any text file.
+.SH "SEE ALSO"
+.IP /usr/doc/filters/SAMPLES
+Lists samples of the output of all the filters.
+.SH AUTHOR
+The filters were collected from all over, by Joey Hess <joey@kite.ml.org>
--- /dev/null
+
+T [" .!?,"]*
+%%
+
+look printf("watch");
+watch printf("look");
+hear printf("listen");
+listen printf("hear");
+good printf("well");
+well printf("good");
+say printf("speaks");
+said printf("speaked");
+being printf("be");
+ck printf("kk");
+nn printf("n");
+mm printf("m");
+tt printf("t");
+ss printf("s");
+dd printf("d");
+" had " printf(" have ");
+" than " printf(" to ");
+" was " printf(" were ");
+" can " printf(" be able to ");
+" do " printf(" doing ");
+" does " printf(" doings ");
+" see " printf(" be seeing ");
+" be " printf(" being ");
+" am " printf(" do be ");
+" as " printf(" so ");
+" so " printf(" as ");
+" is " printf(" does be ");
+" my " printf(" the of me ");
+"My " printf("The of me ");
+" his " printf(" the of him ");
+"His " printf("The of him ");
+[Yy]our printf("the of you");
+" a " printf(" ");
+" the " printf(" ");
+"A " printf("One ");
+"ts " printf("t's ");
+"t's " printf("ts ");
+[Tt]hat printf("this");
+[Tt]his printf("that");
+into printf("in");
+" in " printf(" into ");
+onto printf("on");
+" on " printf(" onto ");
+never printf("not once");
+[Oo]nce printf("one time");
+[Tt]wice printf("two times");
+about printf("by");
+[Ww]hy printf("how");
+" by " printf(" from ");
+" to " printf(" for ");
+" for " printf(" to ");
+"ing " printf("ed ");
+%%
+
+main()
+{
+ srand(getpid());
+ yylex();
+}
--- /dev/null
+%e 2000
+%p 5000
+%n 1000
+%k 500
+%a 4000
+%o 2000
+BW [ ]
+EW [ .,;!?]
+
+%{
+#include <stdio.h>
+
+char buf[128];
+%}
+
+%%
+"r" printf("w");
+"l" printf("w");
+"qu" printf("qw");
+"th " printf("f ");
+"th" printf("d");
+"n." printf("n, uh-hah-hah-hah\. ");
+"R" printf("W");
+"L" printf("W");
+"Qu" printf("Qw");
+"QU" printf("QW");
+"TH " printf("F ");
+"TH" printf("D");
+"Th" printf("D");
+"N." printf("N, uh-hah-hah-hah\. ");
+
+%%
+main()
+{
+ yylex();
+ return(0);
+}
--- /dev/null
+
+ /* jethro.l */
+%e 7000
+%k 5000
+%p 9000
+%n 2000
+%a 9000
+%o 7000
+
+SW [\n \"(]
+EW [\n ".",\"!?):;]
+BW [\n ]
+
+%{
+ /*
+ ** jethro v. 1.00 06/10/93
+ ** Duane Paulson <ci922@cleveland.freenet.edu> "dap"
+ ** Hillbilly text filter. Compile with lex, then C.
+ ** syntax will be:
+ ** jethro <input_file >output_file.
+ ** Public domain. Use at your own risk. Y'all come back now, heah?
+ */
+ /*************************************************************************
+ REVISION LOG
+ when ver who change
+ -------- ---- --- -----------------------------------------------------
+ 06/10/93 1.00 dap Initial release.
+ 8.May.94 1.10 beg Fixed for HP-UX
+ *************************************************************************/
+
+#define PUTLAST unput(*(yytext+strlen(yytext)-1));
+#define SUB(A) fprintf(yyout, "%c%s", *A|(*yytext&32), A+1);
+#define SSUB(A) fprintf(yyout, "%c%c%s", *yytext, *A|(*(yytext+1)&32), A+1);
+#define SESUB(A) fprintf(yyout, "%c%c%s", *yytext, *A|(*(yytext+1)&32), A+1); PUTLAST;
+#define ESUB(A) fprintf(yyout, "%c%s", *A|(*yytext&32), A+1); PUTLAST;
+
+#include <string.h>
+
+char WhAt[]="@(#)Duane Paulson's hillbilly text filter. (jethro)\n@(#)$Header: jethro.l,v 1.1 94/05/08 23:41:58 bgriffin Final $"
+;
+
+%}
+
+%%
+
+{SW}[Gg]reetings{EW} |
+{SW}[Hh]i{EW} |
+{SW}[Hh]ello{EW} SESUB("Howdy");
+{SW}[Bb]ye{EW} |
+{SW}[Gg]oodbye{EW} SESUB("Y'all come back now, heah?");
+{SW}[Hh]ear{EW} SESUB("Heah");
+{SW}[Cc]ar{EW} |
+{SW}[Aa]uto{EW} |
+{SW}[Rr]elax{EW} SESUB("Set a spell -- put yore feet up");
+{SW}[Aa]utomobile{EW} SESUB("Gasoline buggy");
+[Ss]wimming{BW}pool SUB("Cement pond");
+[Pp]ool{BW}table SUB("Fancy eatin table");
+[Pp]ool{BW}cue |
+[Cc]ue{BW}stick SUB("Fancy pot passer");
+{SW}[Bb][r]?oil{EW} |
+{SW}[Bb]ake{EW} |
+{SW}[Ff]ry{EW} |
+{SW}[Ss]aute{EW} |
+{SW}[Cc]ook{EW} SESUB("Whomp up");
+{SW}[Bb][r]?oiling{EW} |
+{SW}[Bb]akeing{EW} |
+{SW}[Ff]rying{EW} |
+{SW}[Ss]auteing{EW} |
+{SW}[Cc]ooking{EW} SESUB("Whompin up");
+{SW}[Bb][r]?oiled{EW} |
+{SW}[Bb]aked{EW} |
+{SW}[Ff]ryed{EW} |
+{SW}[Ss]auted{EW} |
+{SW}[Cc]ooked{EW} SESUB("Done whomped up");
+{SW}[Bb][r]?oils{EW} |
+{SW}[Bb]akes{EW} |
+{SW}[Ff]rys{EW} |
+{SW}[Ss]autes{EW} |
+{SW}[Cc]ooks{EW} SESUB("Whomps up");
+{SW}[Gg]roceries{EW} |
+{SW}[Ff]ood{EW} SESUB("Vittles");
+[Ss]alad SUB("Slaw");
+[Vv]egetable SUB("Green");
+[Pp]otato SUB("Tater");
+{SW}[Tt]omato SSUB("Tuhmater");
+{SW}[Rr]hubarb{EW} SESUB("Pie plant");
+{SW}[Ll]iquor{EW} |
+{SW}[Ww]hisk[e]?y{EW} |
+{SW}[Ss]cotch{EW} |
+{SW}[Bb]ourbon{EW} |
+{SW}[Gg]in{EW} |
+{SW}[Vv]odka{EW} |
+{SW}[Tt]equila{EW} |
+{SW}[Ll]iqueur{EW} SESUB("Rheumatiz medcin");
+{SW}[Bb]ooze{EW} SESUB("Corn likker");
+{SW}[Cc]ocktail{EW} |
+{SW}[Mm]ixed{BW}drink{EW} SESUB("Waste of good likker");
+{SW}[Bb]ar{EW} SESUB("Dance hall");
+{SW}[Bb]ars{EW} SESUB("Dance halls");
+{SW}[Ss]aloon |
+{SW}[Cc]ocktail{BW}lounge SESUB("Dance hall");
+{SW}[Ww]hore |
+{SW}[Pp]rostitute |
+{SW}[Ss]lut SSUB("Dance hall girl");
+{SW}[Ss]ecret{BW}agent{EW} |
+{SW}[Ss]py{EW} |
+{SW}007{EW} SESUB("Double nought spy");
+{SW}[Zz]ero{EW} SESUB("Nought");
+{SW}[Pp]ants{EW} SESUB("Trousers");
+{SW}[Jj]eans{EW} |
+{SW}[Dd]ungarees{EW} |
+{SW}[Ll]evi[']?s{EW} SESUB("Overhalls");
+{SW}[Ss]hoe SSUB("High-button shoe");
+{SW}[Jj]acket SSUB("Coat");
+{SW}[Ss]hotgun SSUB("Fowlin piece");
+{SW}[Rr]evolver |
+{SW}[Gg]un SSUB("Shootin iron");
+{SW}[Rr]ifle SSUB("Ozark longrifle");
+{SW}[Ll]ibrar[yi] SSUB("Liberry");
+[Ww]ash SUB("Warsh");
+[Ff]amily SUB("Fambly");
+[Ff]ry{BW}pan |
+[Ff]rying{BW}pan |
+[Ss]aute{BW}pan SUB("Skillet");
+{SW}[Aa]nimal SSUB("Critter");
+{SW}FBI{EW} |
+{SW}F.B.I.{EW} |
+{SW}CIA{EW} |
+{SW}C.I.A.{EW} |
+{SW}ATF{EW} |
+{SW}A.T.F.{EW} |
+{SW}IRS{EW} |
+{SW}I.R.S.{EW} |
+{SW}SS{EW} |
+{SW}S.S.{EW} |
+{SW}[Ss]elective{BW}[Ss]ervice{EW} |
+{SW}[Ss]elective{BW}[Ss]ervice{BW}[Ss]ystem{EW} |
+{SW}[Ss]ecret{BW}[Ss]ervice{EW} SESUB("Revanooers");
+{SW}[Pp]olice |
+{SW}[Pp]oliceman |
+{SW}[Ss]heriff |
+{SW}[Dd]eputy |
+{SW}[Dd]eputy{BW}[Ss]heriff |
+{SW}[Mm]arshall |
+{SW}[Dd]eputy{BW}[Mm]arshall |
+{SW}[Pp]ark{BW}[Rr]anger |
+{SW}[Tt]exas{BW}[Rr]anger |
+{SW}[Hh]ighway{BW}[Pp]atrol SSUB("Constable");
+
+{SW}[Mm]other |
+{SW}[Mm][ao]mm[ay]? |
+{SW}[Mm]ommie |
+{SW}[Mm]om SSUB("Maw");
+{SW}[Mm]a{EW} SESUB("Maw");
+{SW}[Ff]ather SSUB("Paw");
+{SW}[Dd]ad{EW} |
+{SW}[Dd]addy |
+{SW}[Pp]a{EW} |
+{SW}[Pp][ao]p{EW} |
+{SW}[Pp][ao]pp[ay]?{EW} SESUB("Paw");
+{SW}[Gg]randmother{EW} |
+{SW}[Gg]randma[w]?{EW} SESUB("Granny");
+{SW}[Gg]randfather{EW} |
+{SW}[Gg]ran[d]{1,2}ad[d]?[y]?{EW} |
+{SW}[Gg]randpop{EW} |
+{SW}[Gg]randpa[w]?{EW} SESUB("Grampy");
+{SW}[Mm]y{EW} SESUB("Mah");
+{SW}them{EW} SESUB("em");
+[Dd]og SUB("Dawg");
+[Ll]awyer |
+[Ll]egal{BW}counc[ei]l |
+[Ll]egal{BW}councellor |
+[Aa]ttorney |
+[Aa]ttorney{BW}[Aa]t{BW}[Ll]aw SUB("City slicker");
+
+{SW}[Tt]han{EW} SESUB("Then");
+[Cc]haracterize SUB("Show");
+{SW}[Vv]ery{EW} |
+{SW}[Ee]xtremely{EW} |
+{SW}[Rr]eally{EW} |
+{SW}[Rr]eal{EW} SESUB("Right");
+{SW}[Hh]aven't{EW} |
+{SW}[Ii]sn't{EW} |
+{SW}[Aa]ren't{EW} SESUB("Aint");
+{SW}[Ss]aid{EW} |
+{SW}[Ss]ays{EW} SESUB("Sez");
+{SW}[Aa]re{EW} SESUB("Is");
+{SW}[Ss]hould{EW} SESUB("Ortta");
+{SW}[Pp]erhaps{EW} |
+{SW}[Mm]aybe{EW} SESUB("Mebbe");
+{SW}[Ss]ick{EW} SESUB("Ailin'");
+{SW}I'm{BW}not{EW} SESUB("I aint");
+{SW}[Ss]cared{EW} SESUB("A-skeert");
+{SW}[Ss]care SSUB("Skeer");
+{SW}[Hh]ave{EW} SESUB("Got");
+{SW}[Pp]ossess{EW} SESUB("Have");
+{SW}[Hh]elp SSUB("Hep");
+{SW}[Tt]ired{EW} SESUB("Tuckered out");
+{SW}[Cc]ompletely{EW} SESUB("Plumb");
+{SW}[Dd]runk{EW} SESUB("A mite woozy");
+
+{SW}[Yy]es{EW} SESUB("Yep");
+{SW}[Nn]o{EW} SESUB("Nope");
+
+{SW}[Ii]t{BW}is{EW} SESUB("Tis");
+{SW}[Aa]t{BW}all{EW} *(yytext+1)=(char)'A'; SESUB("A tall");
+
+{SW}[Aa]m{EW} |
+{SW}[Aa]re{EW} SESUB("Is");
+{SW}[Ww]as{EW} |
+{SW}[Ww]ere{EW} SESUB("Wuz");
+{SW}[Ww]asn't{EW} SESUB("Wasunt");
+[Ee]very SUB("Ever");
+{SW}[Ww]ant/s SSUB("Is after");
+{SW}[Ww]anted{EW} SESUB("Was after");
+{SW}[Ww]anting{EW} SESUB("Hankering after");
+{SW}[Dd]oesn't{EW} |
+{SW}[Dd]on't{EW} SESUB("Dasent");
+{SW}[Yy]ou'll{EW} SESUB("Y'all will");
+{SW}[Yy]our SSUB("Yore");
+{SW}[Mm]ore{EW} SESUB("Mo");
+tial SUB("shul");
+cious SUB("shus");
+ious SUB("yus");
+tion SUB("shun");
+{SW}[Cc]an{EW} SESUB("C'n");
+{SW}[Yy]ou{EW} SESUB("Y'all");
+{SW}[Ff]or{EW} SESUB("Fer");
+{SW}[Tt]he{EW} SESUB("Duh");
+ing SUB("in");
+{SW}[Tt]oo{EW} SESUB("Besides");
+{SW}[Tt]o{EW} SESUB("Tuh");
+{SW}[Aa][n]?{EW} SESUB("Ah");
+{SW}[Aa]re{EW} |
+{SW}[Oo]ur{EW} |
+{SW}[Oo]r{EW} SESUB("Ore");
+{SW}[Oo]f{EW} SESUB("Uv");
+{SW}I{EW} SESUB("Ah");
+{SW}I'm{EW} SESUB("Ahm a");
+{SW}I'll{EW} SESUB("Ahl");
+{SW}I'd{EW} SESUB("Ah wood");
+'nt *(yytext)=(char)'u'; SUB("unt");
+'re SUB(" is");
+'ve SUB(" done");
+eed{EW} ECHO;
+ed{EW} ESUB("d");
+{SW}[Oo]wn{EW} |
+{SW}[Tt]own{EW} |
+{SW}[Dd]own{EW} |
+{SW}[Gg]own{EW} |
+{SW}[Bb]rown{EW} ECHO;
+wn{EW} ESUB("ed");
+{SW}[Bb]elow{EW} |
+{SW}[Kk]now{EW} |
+{SW}[Tt]hrow{EW} |
+{SW}[Gg]row{EW} |
+{SW}[Hh]ow{EW} |
+{SW}[Nn]ow{EW} |
+{SW}[Bb]row{EW} |
+{SW}[Ss]how{EW} ECHO;
+ow{EW} ESUB("er");
+re{EW} |
+er{EW} ESUB("uh");
+{SW}[Hh]er{EW} ECHO;
+! SUB(". Ye DAWGies!!!");
+
+%%
+
+main()
+{
+ yylex();
+}
+
--- /dev/null
+#!/usr/bin/perl
+# jibberish -- run all filters in random order
+
+$ENV{PATH}.=":/usr/games";
+
+@all= qw(
+jive
+valspeak
+nyc
+cockney
+fin
+biffa
+ken
+aust
+drawl
+kraut
+newspeak
+chef
+marc-barrett
+censor
+fudd
+moo
+buck
+jethro
+b1ff
+eleet
+ky00te
+);
+
+# shuffle order
+srand;
+for (0..$#all) {
+ my $n= @all*rand;
+ my $was= $all[$_];
+ $all[$_]= $all[$n];
+ $all[$n]= $was;
+}
+
+# start the pipe...
+my $pipe= join '|', @all;
+open FILTER, "$pipe|"
+ or die ""Never mind...\n";;
+
+# display the results
+while (<FILTER>) {
+ print $_
+}
+
+# This could be optimized: take the last program off the pipeline,
+# open the pipeline as standard input, then exec that last program.
+#
+# But you have to ask yourself: how important is it to optimize
+# the generation of jibberish?
--- /dev/null
+%{
+/*
+ * Lex filter to transform plain English into Jive English.
+ * No racial or societal slurs are intended. For amusement only.
+ *
+ * Copyright 1986 by Daniel Klein and Clement Cole.
+ *
+ * Reproduction permitted so long as this notice is retained.
+ */
+%}
+%e 1700
+%p 4000
+%n 700
+%k 450
+%a 1700
+%o 1500
+BW [ \t\(]
+EW [ \t.,;!\?$\)]
+%%
+@[Bb]egin(.*) |
+".so ".*$ printf("%s", yytext);
+{BW}send printf("%ct'row",yytext[0]);
+program+ printf("honky code");
+[Uu]nix printf("slow mo-fo");
+UNIX printf("dat slow mo-fo");
+actual printf("ak'shul");
+{BW}take printf("%csnatch",yytext[0]);
+{BW}took |
+{BW}take[ns] printf("%csnatch'd",yytext[0]);
+[Mm]exican printf("%cet-back", caseify('w'));
+[Ii]talian printf("%creaser", caseify('g'));
+{BW}big{EW} { printf("%cbig ass",yytext[0]);plastc();}
+fool printf("honkyfool");
+modem printf("doodad");
+{BW}he{EW} { printf("%cmah' man he",yytext[0]);plastc();}
+"e the"{EW} |
+"a the"{EW} |
+"t the"{EW} |
+"d the"{EW} { printf("%c da damn", yytext[0]);plastc();}
+wife |
+woman printf("mama");
+girl printf("goat");
+something printf("sump'n");
+{BW}lie printf("%chonky jive",yytext[0]);
+-o- printf("-on rebound-");
+[a-z]"." { printf("%s", yytext);expletive();}
+! printf(". Right On!");
+[Ss]ure printf("%cho'", yytext[0]);
+get printf("git");
+"will have"{EW} |
+"will"{EW} |
+"got to"{EW} { printf("gots'ta");plastc();}
+"I am" printf("I's gots'ta be");
+"aren't" |
+"am not" |
+"have not" |
+"is not" |
+"are not" printf("ain't");
+{BW}see{EW} { printf("%csee's",yytext[0]);plastc();}
+{BW}are{EW} { printf("%cis",yytext[0]);plastc();}
+{BW}hat{EW} { printf("%cfedora",yytext[0]);plastc();}
+{BW}shoe printf("%ckicker",yytext[0]);
+{BW}"have to"{EW} |
+{BW}has{EW} { printf("%cgots'ta",yytext[0]);plastc();}
+have printf("gots'");
+{BW}go{EW} |
+{BW}"come over"{EW} |
+{BW}come{EW} { printf("%cmosey on down",yytext[0]);plastc();}
+buy printf("steal");
+{BW}car{EW} { printf("%cwheels",yytext[0]);plastc();}
+drive printf("roll");
+{BW}food printf("%ccatfish an' colluhd greens",yytext[0]);
+{BW}eat{EW} { printf("%cfeed da bud",yytext[0]);plastc();}
+drink printf("guzzle");
+black |
+negro printf("brother");
+white printf("honky");
+nigger printf("gentleman");
+nice printf("supa' fine");
+{BW}person printf("%csucka'",yytext[0]);
+[Pp]eople printf("%cucka's", caseify('s'));
+{BW}thing thing(yytext[0]);
+house{EW} { printf("crib");plastc();}
+home printf("plantation");
+name printf("dojigger");
+{BW}path printf("%calley",yytext[0]);
+[Cc]omputer printf("%clunker", yytext[0]);
+or printf("o'");
+president printf("super-dude");
+"prime minister" printf("prahm mistah");
+government printf("guv'ment");
+knew printf("knowed");
+[Bb]ecause printf("'%cuz", caseify('c'));
+[Yy]our printf("%co'", yytext[0]);
+[Ff]our printf("%coe", yytext[0]);
+got printf("gots");
+young printf("yung");
+you printf("ya'");
+You printf("You's");
+first printf("fust");
+police printf("honky pigs");
+{BW}string printf("%cchittlin'",yytext[0]);
+{BW}read printf("%ceyeball",yytext[0]);
+write printf("scribble");
+think{EW} { printf("thin'");plastc();}
+with printf("wif");
+other printf("uthu'");
+[Tt]hr printf("%c'r", yytext[0]);
+[Tt]h printf("%c", caseify('d'));
+ing printf("in'");
+{BW}a{EW} { printf("%csome",yytext[0]);plastc();}
+{BW}to{EW} { printf("%ct'",yytext[0]);
+ if(yytext[yyleng-1]!=' ')
+ plastc();
+ }
+tion printf("shun");
+[Aa]lmost printf("%cos'", caseify('m'));
+from printf("fum");
+[Yy]"ou're" printf("%couse", yytext[0]);
+alright |
+okay printf("coo'");
+[Aa]nd printf("%cn'", yytext[0]);
+known printf("knode");
+want printf("wants'");
+beat printf("whup'ed");
+ile printf("ah'l");
+er{EW} { printf("uh");plastc();}
+[a-z]sti printf("%cs'i", yytext[0]);
+tute printf("toot");
+exp printf("'sp");
+exs |
+exc printf("'s");
+{BW}ex printf("%c'es",yytext[0]);
+[ae]ct{EW} { printf("%cc'", yytext[0]); plastc(); }
+like printf("likes");
+done |
+did printf("dun did");
+"kind of" printf("kind'a");
+women printf("honky chicks");
+{BW}man{EW} { printf("%cdude",yytext[0]);plastc();}
+{BW}men{EW} |
+{BW}mens{EW} { printf("%cdudes",yytext[0]);plastc();}
+injured printf("hosed");
+killed |
+dead printf("wasted");
+good printf("baaaad");
+open{EW} { printf("jimmey");plastc();}
+opened{EW} { printf("jimmey'd");plastc();}
+{BW}very printf("%creal",yytext[0]);
+per printf("puh'");
+oar printf("o'");
+{BW}can printf("%ckin",yytext[0]);
+{BW}just{EW} { printf("%cplum",yytext[0]);plastc();}
+[Dd]etroit printf("Mo-town");
+[Ww]"estern "[Ee]"lectric" printf("da' cave");
+{BW}believe printf("%crecon'",yytext[0]);
+[Ii]"ndianapolis" printf("Nap-town");
+Daniel |
+Dan printf("Liva' Lips");
+Reagan printf("Kingfish");
+Ronald{EW} |
+Ron{EW} { printf("Rolo");plastc();}
+John printf("Rastus");
+Jim printf("Bo-Jangles");
+pontiff |
+pope printf("wiz'");
+[Pp]ravda printf("dat commie rag");
+broken printf("bugger'd");
+strange{EW} { printf("funky");plastc();}
+dance{EW} { printf("boogy");plastc();}
+ask printf("ax'");
+{BW}so{EW} { printf("%cso's",yytext[0]);plastc();}
+heard printf("'hoid");
+head printf("'haid");
+boss printf("main man");
+money printf("bre'd");
+[a-z]":" { *(yytext+1) = ',';
+ printf("%s dig dis:",yytext);
+ }
+amateur printf("begina'");
+radio printf("transista'");
+{BW}of{EW} { printf("%cuh",yytext[0]);plastc();}
+which |
+what printf("whut");
+"don't" printf("doan'");
+does printf("duz");
+{BW}was{EW} |
+{BW}were{EW} { printf("%cwuz",yytext[0]);plastc();}
+{BW}understand printf("%cdig",yytext[0]);
+{BW}my printf("%cmah'",yytext[0]);
+again |
+against printf("agin'");
+{BW}[Ii]{EW} { printf("%cah'",yytext[0]);plastc();}
+meta printf("meta-fuckin'");
+cally printf("c'l");
+%%
+plastc()
+{
+ unput(yytext[yyleng-1]);
+}
+
+caseify(c)
+char c;
+{
+ if (yytext[0] <= 'Z')
+ return (c - ' ');
+ else
+ return (c);
+}
+
+thing(c)
+char c;
+{
+ static short count = 0;
+
+ putchar(c);
+ switch (count++ % 4) {
+ case 0: case 2:
+ printf("thang");
+ break;
+ case 1:
+ printf("doohickey");
+ break;
+ case 3:
+ printf("wahtahmellun");
+ break;
+ }
+}
+expletive()
+{
+ static short count = 0;
+ static short which = 0;
+
+ if (count++ % 4 == 0) {
+ switch (which++ % 5) {
+ case 0: printf(" What it is, Mama!"); break;
+ case 1: printf(" Ya' know?"); break;
+ case 2: printf(" Sheeeiit."); break;
+ case 3: printf(" Ya' dig?"); break;
+ case 4: printf(" Git down!"); break;
+ }
+ }
+}
+
+/*
+ * Bugs:
+ *
+ * If a sentence starts with a keyword it doan' get converted, or:
+ * it do, but gets a leading space
+ */
--- /dev/null
+%{
+/*
+ * ken:
+ * will turn English into Cockney, featuring (dubious) rhyming slang for a lot
+ * of computer terminology.
+ *
+ * Written by Stephen K Mulrine <smulrine%cs.strath.ac.uk@nsfnet-relay.ac.uk>
+ * Make copies if you want etc.etc.
+ *
+ * ken is named after Ken the Chirpy Cockney Character from the Viz Comic (tm),
+ * who speaks somewhat like that.
+ */
+%}
+%e 3000
+%p 6000
+%n 1000
+%k 500
+%a 4000
+%o 2000
+BW [ ]
+EW [ .,;!?]
+%{
+ char buf[128];
+%}
+
+%%
+
+stairs printf("apples and pears");
+Downstairs printf("Down the apples and pears");
+downstairs printf("down the apples and pears");
+Upstairs printf("Up the apples and pears");
+upstairs printf("up the apples and pears");
+[Mm]outh printf("North and South");
+[Ff]ace printf("Boat Race");
+[Tt]rouble printf("Barney Rubble");
+wife { switch(rand()%2)
+ {
+ case 0: printf("trouble and strife"); break;
+ case 1: printf("ole lady"); break;
+ }
+ }
+Road printf("Frog and Toad");
+" road" printf(" frog and toad");
+"pub " printf("rub-a-dub ");
+" bar " printf(" boozer ");
+" husband" printf(" ole man");
+Party printf("Knees-up");
+party printf("knees-up");
+Parties printf("Knees-ups");
+parties printf("knees-ups");
+My printf("Me");
+" my" printf(" me");
+Your printf("Yer");
+your printf("yer");
+"You are " printf("Yer ");
+"you are " printf("yer ");
+You printf("Yer");
+you printf("yer");
+Those printf("Them");
+those printf("them");
+" those" printf(" them");
+"(those" printf("(them");
+"The " { switch(rand()%5)
+ {
+ case 0: printf("The bleedin' "); break;
+ default: ECHO; break;
+ }
+ }
+"The" ECHO;
+" the " { switch(rand()%5)
+ {
+ case 0: printf(" the bleedin' "); break;
+ default: ECHO; break;
+ }
+ }
+[" "(]the ECHO;
+"the " { switch(rand()%5)
+ {
+ case 0: printf(" the bleedin' "); break;
+ default: ECHO; break;
+ }
+ }
+[Tt]his ECHO;
+[" "(]this ECHO;
+[Tt]hat ECHO;
+[" "(]that ECHO;
+Thus printf("So");
+" thus" printf(" so");
+"(thus" printf("(so");
+"thus" printf("so");
+[Tt]han ECHO;
+[" "(]than ECHO;
+Who ECHO;
+who ECHO;
+" old " printf(" ole ");
+" to " printf(" ter ");
+"Aren't you " printf("Aintcha ");
+"aren't you " printf("aintcha ");
+"Aren't" printf("Ain't");
+"aren't" printf("ain't");
+"Isn't" printf("Ain't");
+"isn't" printf("ain't");
+"Are not " printf("Ain't");
+"are not " printf("ain't ");
+"Is not " printf("Ain't ");
+" is not " printf(" ain't ");
+"What is th" printf("Woss");
+"what is th" printf("woss");
+"What are you " printf("Wotcher ");
+"what are you " printf("wotcher ");
+"What you are" printf("Wotcher");
+"what you are" printf("wotcher");
+"What you're" printf("Wotcher");
+"what you're" printf("wotcher");
+"What are your" printf("Wotcher");
+"what are your" printf("wotcher");
+"What do you " printf("Wotcher ");
+"what do you " printf("wotcher ");
+"What do your" printf("Wotcher");
+"what do your" printf("wotcher");
+" "H[aeu]llo printf(" Wotcher");
+" "h[aeu]llo printf(" wotcher");
+What printf("Wot");
+what printf("wot");
+Were printf("Was");
+were printf("was");
+Bother printf("Ars");
+bother printf("ars");
+Mother printf("Muvver");
+Other printf("Uvver");
+other printf("uvver");
+Father printf("Favver");
+father printf("favver");
+Rather printf("Ravver");
+rather printf("ravver");
+Weather printf("Wevver");
+weather printf("wevver");
+Leather printf("Levver");
+leather printf("levver");
+Wither printf("Wivver");
+wither printf("wivver");
+Either printf("Eever");
+either printf("eever");
+With printf("Wiv");
+with printf("wiv");
+Anything printf("Anyfink");
+anything printf("anyfink");
+Something printf("Sumfink");
+something printf("sumfink");
+Nothing printf("Nuffink");
+nothing printf("nuffink");
+guitars printf("spoons");
+guitar printf("spoons");
+drums printf("spoons");
+drum printf("spoons");
+trumpets printf("spoons");
+trumpet printf("spoons");
+violins printf("spoons");
+violin printf("spoons");
+clarinets printf("spoons");
+clarinet printf("spoons");
+trombones printf("spoons");
+trombone printf("spoons");
+oboes printf("spoons");
+oboe printf("spoons");
+flutes printf("spoons");
+flute printf("spoons");
+tubas printf("spoons");
+tuba printf("spoons");
+Data printf("Info");
+data printf("info");
+Directory printf("Lockup");
+directory printf("lockup");
+Directories printf("Lockups");
+directories printf("lockups");
+[Pp]rocess { switch(rand()%2)
+ {
+ case 0: printf("Queen Bess"); break;
+ case 1: printf("Rudolf 'Ess"); break;
+ }
+ }
+[Cc]omputer printf("French Tutor");
+[Bb]yte printf("Jimmy White");
+[Ff]iles printf("Nobby Stiles");
+[Ff]ile printf("Royal Mile");
+[Ll]anguage printf("'Am Sandwich");
+[Zz]ero printf("Emperor Nero");
+[Jj]ob printf("Uncle Bob");
+[Ss]hell printf("Bow Bell");
+[Ss]ave printf("Chas'n'Dave");
+[Ll]oad printf("Old Kent Road");
+[Mm]ouse printf("Doll's 'Ouse");
+[Bb]uffer printf("Sausage Stuffer");
+[Kk]eyboard printf("Henry Ford");
+[Mm]anual printf("Cocker Spaniel");
+[Ss]creen printf("James Dean");
+[Pp]rinter printf("'Arold Pinter");
+[Pp]lotter printf("Pansy Potter");
+[Cc]ompiler printf("Martin Tyler");
+[Ss]tring printf("Emperor Ming");
+[Bb]rain printf("Michael Caine");
+[Pp][Aa][Ss][Cc][Aa][Ll] { switch(rand()%2)
+ {
+ case 0: printf("Pall Mall"); break;
+ case 1: printf("Roald Dahl"); break;
+ }
+ }
+[Aa][Ll][Gg][Oo][Ll] printf("Johnny Ball");
+[Ff][Oo][Rr][Tt][Rr][Aa][Nn] printf("Manfred Mann");
+[Cc][Oo][Bb][Oo][Ll] printf("Albert Hall");
+Stopped printf("'Ad the mockers put on");
+stopped printf("'ad the mockers put on");
+Stopping printf("Putting the mockers on");
+stopping printf("putting the mockers on");
+stops printf("puts the mockers on");
+stop printf("put the mockers on");
+STOP printf("Put The Mockers On");
+[Ll]ondoner printf("Cockney");
+friend { switch(rand()%3)
+ {
+ case 0: printf("mucker"); break;
+ case 1: printf("mate"); break;
+ case 2: printf("china"); break;
+ }
+ }
+"a h" printf("an '");
+"A h" printf("An '");
+" h" printf(" '");
+" H" printf(" '");
+" C-" printf(" Bruce Lee-");
+" C " { switch(rand()%4)
+ {
+ case 0: printf(" Bruce Lee "); break;
+ case 1: printf(" Circus Flea "); break;
+ case 2: printf(" Bumble Bee "); break;
+ case 3: printf(" Door Key "); break;
+ }
+ }
+" C." printf(" Circus Flea.");
+Th printf("F");
+Wh printf("W");
+wh printf("w");
+aw printf("or");
+" sing" ECHO;
+" ring" ECHO;
+"ing " printf("in' ");
+" th" printf(" f");
+"th" printf("ff");
+". " { switch(rand()%32)
+ {
+ case 0: printf(". I'll get out me spoons. "); break;
+ case 1: printf(". Yer can't 'ave a knees-up wivout a joanna. "); break;
+ case 2: printf(". Cor blimey guv, would I lie to you. "); break;
+ case 3: printf(". I'll make us all a nice cup of tea. "); break;
+ default: ECHO; break;
+ }
+ }
+"? " { switch(rand()%3)
+ {
+ case 0: printf(", mate? "); break;
+ case 1: printf(", guv? "); break;
+ case 2: printf(", squire? "); break;
+ }
+ }
+"! " { switch(rand()%6)
+ {
+ case 0: printf(", cor blimey! "); break;
+ case 1: printf("! Struth! "); break;
+ case 2: printf(", guv! "); break;
+ case 3: printf("! Honest guv! "); break;
+ case 4: printf(", mate! "); break;
+ case 5: ECHO; break;
+ }
+ }
+. printf(yytext);
+\n printf("\n");
+%%
+
+main()
+{
+ srand(getpid());
+ yylex();
+}
--- /dev/null
+ Kraut
+ +++++++++++++++++
+Compiling Kraut:
+
+You should have the files: kraut.c and kraut.l and lex.yy.c
+
+
+kraut.l must be run thru the unix 'lex' utility to produce the file lex.yy.c
+Then compile kraut.c and lex.yy.c to produce kraut
+
+ $lex kraut.l
+ $cc kraut.c lex.yy.c -o kraut
+ (You may get a list of warnings from the compiler. Ignore them.)
+
+Note: lex.yy.c is included in this package. You only need to use lex if you
+wish to make changes to kraut.
+
+Using Kraut:
+
+ Kraut uses standard input and output.
+
+examples:
+
+To translate a file called 'note' and output kraut to a file called 'knote':
+
+ $ cat note | kraut > knote
+
+To translate a file called 'note' and just print it to the screen:
+
+ $ cat note | kraut
+
+To have kraut wait to translate what you type at the keyboard and return it in
+kraut on your screen:
+
+ $ kraut
+
--- /dev/null
+#include <stdio.h>
+/* Kraut v0.9 */
+/* by */
+/* John Sparks */
+/* 5-5-1989 */
+
+/* This is in the public domain. Do with it as you will. */
+
+main()
+{
+char *line;
+
+ while(line = (char *) yylex()){
+ printf("%s", line);
+ }
+}
+
+yywrap ()
+{
+ return (1);
+}
--- /dev/null
+%e 2000
+%p 5000
+%n 1000
+%k 500
+%a 4000
+%o 2000
+BW [ ]
+EW [ .,;!?]
+
+%{
+ char buf[128];
+
+%}
+
+%%
+ing return("ingkt");
+" the " return(" ze ");
+"The " return("Ze ");
+" with " return(" mitt ");
+"With " return("Mitt ");
+wr return("w-r-r");
+Wr return("W-r-r");
+R return("R-r-r");
+"Yes " return("Jawohl ");
+" r" return(" r-r-r");
+"Yes." return("Jawohl.");
+"Yes!" return("Jawohl!");
+"YES!" return("JAWOHL!");
+" yes " return(" ja ");
+" yes." return(" ja.");
+" yes!" return(" yes!");
+"No " return("Nein ");
+"No!" return("Nein!");
+"No?" return("Nein?");
+" no " return(" nein ");
+" no." return(" nein.");
+" no!" return(" nein!");
+" no?" return(" nein?");
+[Mm]"r." return("Herr");
+[Mm]"rs." return("Frau");
+Miss return("Fraulein");
+" of " return(" uff ");
+"Of " return("Uff ");
+my return("mein");
+My return("Mein");
+" and " return(" undt ");
+"And " return("Undt ");
+"One " return("Ein ");
+" one" return(" ein");
+"Is " return("Ist ");
+" is " return(" ist ");
+"ow " return("ow ");
+"w " return("w ");
+sh return("sch");
+Sh return("Sch");
+ch return("ch");
+Ch return("Ch");
+" c" return(" k");
+" C" return(" K");
+
+v return("f");
+V return("F");
+" w" return(" v");
+W return("V");
+th return("d");
+Th return("D");
+[Jj]ohn return("Johann");
+[Ww]illiam return("Wilhelm");
+[Bb]rad return("Wilhelm");
+[Gg]ary return("Gerhardt");
+[Jj]on return("Hansel");
+
+[a-f]"!" {sprintf(buf,"%s Naturlich!",yytext);return(buf);}
+[p-z]"!" {sprintf(buf,"%s Seig Heil!",yytext);return(buf);}
+. return(yytext);
+\n return("\n");
+
+%%
+
+
--- /dev/null
+/* A lexical scanner generated by flex */
+
+/* Scanner skeleton version:
+ * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+ */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+
+#include <stdio.h>
+
+
+/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+#ifdef c_plusplus
+#ifndef __cplusplus
+#define __cplusplus
+#endif
+#endif
+
+
+#ifdef __cplusplus
+
+#include <stdlib.h>
+#include <unistd.h>
+
+/* Use prototypes in function declarations. */
+#define YY_USE_PROTOS
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else /* ! __cplusplus */
+
+#if __STDC__
+
+#define YY_USE_PROTOS
+#define YY_USE_CONST
+
+#endif /* __STDC__ */
+#endif /* ! __cplusplus */
+
+#ifdef __TURBOC__
+ #pragma warn -rch
+ #pragma warn -use
+#include <io.h>
+#include <stdlib.h>
+#define YY_USE_CONST
+#define YY_USE_PROTOS
+#endif
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+
+#ifdef YY_USE_PROTOS
+#define YY_PROTO(proto) proto
+#else
+#define YY_PROTO(proto) ()
+#endif
+
+/* Returned upon end-of-file. */
+#define YY_NULL 0
+
+/* Promotes a possibly negative, possibly signed char to an unsigned
+ * integer for use as an array index. If the signed char is negative,
+ * we want to instead treat it as an 8-bit unsigned char, hence the
+ * double cast.
+ */
+#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+
+/* Enter a start condition. This macro really ought to take a parameter,
+ * but we do it the disgusting crufty way forced on us by the ()-less
+ * definition of BEGIN.
+ */
+#define BEGIN yy_start = 1 + 2 *
+
+/* Translate the current start state into a value that can be later handed
+ * to BEGIN to return to the state. The YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START ((yy_start - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart( yyin )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#define YY_BUF_SIZE 16384
+
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+
+extern int yyleng;
+extern FILE *yyin, *yyout;
+
+#define EOB_ACT_CONTINUE_SCAN 0
+#define EOB_ACT_END_OF_FILE 1
+#define EOB_ACT_LAST_MATCH 2
+
+/* The funky do-while in the following #define is used to turn the definition
+ * int a single C statement (which needs a semi-colon terminator). This
+ * avoids problems with code like:
+ *
+ * if ( condition_holds )
+ * yyless( 5 );
+ * else
+ * do_something_else();
+ *
+ * Prior to using the do-while the compiler would get upset at the
+ * "else" because it interpreted the "if" statement as being all
+ * done when it reached the ';' after the yyless() call.
+ */
+
+/* Return all but the first 'n' matched characters back to the input stream. */
+
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ *yy_cp = yy_hold_char; \
+ YY_RESTORE_YY_MORE_OFFSET \
+ yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+ } \
+ while ( 0 )
+
+#define unput(c) yyunput( c, yytext_ptr )
+
+/* The following is because we cannot portably get our hands on size_t
+ * (without autoconf's help, which isn't available because we want
+ * flex-generated scanners to compile on their own).
+ */
+typedef unsigned int yy_size_t;
+
+
+struct yy_buffer_state
+ {
+ FILE *yy_input_file;
+
+ char *yy_ch_buf; /* input buffer */
+ char *yy_buf_pos; /* current position in input buffer */
+
+ /* Size of input buffer in bytes, not including room for EOB
+ * characters.
+ */
+ yy_size_t yy_buf_size;
+
+ /* Number of characters read into yy_ch_buf, not including EOB
+ * characters.
+ */
+ int yy_n_chars;
+
+ /* Whether we "own" the buffer - i.e., we know we created it,
+ * and can realloc() it to grow it, and should free() it to
+ * delete it.
+ */
+ int yy_is_our_buffer;
+
+ /* Whether this is an "interactive" input source; if so, and
+ * if we're using stdio for input, then we want to use getc()
+ * instead of fread(), to make sure we stop fetching input after
+ * each newline.
+ */
+ int yy_is_interactive;
+
+ /* Whether we're considered to be at the beginning of a line.
+ * If so, '^' rules will be active on the next match, otherwise
+ * not.
+ */
+ int yy_at_bol;
+
+ /* Whether to try to fill the input buffer when we reach the
+ * end of it.
+ */
+ int yy_fill_buffer;
+
+ int yy_buffer_status;
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+ /* When an EOF's been seen but there's still some text to process
+ * then we mark the buffer as YY_EOF_PENDING, to indicate that we
+ * shouldn't try reading from the input source any more. We might
+ * still have a bunch of tokens to match, though, because of
+ * possible backing-up.
+ *
+ * When we actually see the EOF, we change the status to "new"
+ * (via yyrestart()), so that the user can continue scanning by
+ * just pointing yyin at a new input file.
+ */
+#define YY_BUFFER_EOF_PENDING 2
+ };
+
+static YY_BUFFER_STATE yy_current_buffer = 0;
+
+/* We provide macros for accessing buffer states in case in the
+ * future we want to put the buffer states in a more general
+ * "scanner state".
+ */
+#define YY_CURRENT_BUFFER yy_current_buffer
+
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+
+static int yy_n_chars; /* number of characters read into yy_ch_buf */
+
+
+int yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 1; /* whether we need to initialize */
+static int yy_start = 0; /* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin. A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart YY_PROTO(( FILE *input_file ));
+
+void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
+void yy_load_buffer_state YY_PROTO(( void ));
+YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
+void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
+void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+
+YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
+YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
+YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+
+static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
+static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
+static void yy_flex_free YY_PROTO(( void * ));
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+ { \
+ if ( ! yy_current_buffer ) \
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ yy_current_buffer->yy_is_interactive = is_interactive; \
+ }
+
+#define yy_set_bol(at_bol) \
+ { \
+ if ( ! yy_current_buffer ) \
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ yy_current_buffer->yy_at_bol = at_bol; \
+ }
+
+#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
+
+typedef unsigned char YY_CHAR;
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+typedef int yy_state_type;
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yy_state_type yy_get_previous_state YY_PROTO(( void ));
+static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
+static int yy_get_next_buffer YY_PROTO(( void ));
+static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+ yytext_ptr = yy_bp; \
+ yyleng = (int) (yy_cp - yy_bp); \
+ yy_hold_char = *yy_cp; \
+ *yy_cp = '\0'; \
+ yy_c_buf_p = yy_cp;
+
+#define YY_NUM_RULES 60
+#define YY_END_OF_BUFFER 61
+static yyconst short int yy_accept[138] =
+ { 0,
+ 0, 0, 61, 58, 59, 58, 58, 58, 58, 58,
+ 58, 58, 58, 58, 58, 8, 58, 58, 46, 48,
+ 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
+ 45, 58, 44, 0, 43, 0, 0, 0, 10, 0,
+ 47, 0, 0, 0, 42, 0, 0, 0, 0, 0,
+ 30, 0, 0, 0, 40, 50, 0, 7, 0, 0,
+ 56, 41, 0, 29, 0, 57, 39, 49, 38, 0,
+ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 35, 0, 55, 0, 24, 0, 17, 18,
+ 19, 28, 0, 0, 0, 0, 0, 0, 1, 37,
+
+ 0, 36, 20, 22, 21, 23, 27, 34, 0, 0,
+ 0, 32, 53, 54, 51, 26, 25, 33, 3, 0,
+ 0, 13, 9, 12, 11, 31, 2, 0, 14, 16,
+ 15, 0, 5, 4, 0, 52, 0
+ } ;
+
+static yyconst int yy_ec[256] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 3, 4, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 5, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 6, 1, 7, 8, 9, 1, 10, 1,
+ 11, 1, 12, 13, 1, 1, 14, 15, 16, 1,
+ 1, 17, 18, 19, 1, 20, 21, 1, 22, 1,
+ 1, 1, 1, 1, 1, 1, 23, 24, 25, 26,
+
+ 27, 28, 29, 30, 31, 13, 1, 32, 33, 34,
+ 35, 36, 36, 37, 38, 39, 36, 40, 41, 36,
+ 42, 36, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1
+ } ;
+
+static yyconst int yy_meta[43] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1
+ } ;
+
+static yyconst short int yy_base[138] =
+ { 0,
+ 0, 0, 156, 157, 157, 34, 121, 117, 123, 129,
+ 113, 115, 13, 114, 17, 157, 118, 117, 157, 15,
+ 37, 142, 44, 49, 111, 12, 103, 139, 52, 54,
+ 138, 57, 157, 107, 157, 102, 104, 38, 157, 108,
+ 106, 109, 109, 111, 157, 96, 129, 33, 93, 57,
+ 157, 74, 127, 102, 157, 101, 51, 157, 109, 88,
+ 157, 157, 96, 157, 121, 157, 157, 157, 157, 91,
+ 157, 96, 118, 93, 117, 92, 91, 78, 78, 112,
+ 88, 71, 157, 78, 157, 73, 157, 105, 157, 157,
+ 157, 157, 106, 105, 75, 76, 101, 82, 157, 157,
+
+ 101, 157, 157, 157, 157, 157, 157, 157, 100, 72,
+ 88, 157, 157, 157, 157, 157, 157, 157, 157, 70,
+ 97, 157, 157, 157, 157, 157, 157, 86, 157, 157,
+ 157, 51, 157, 157, 37, 157, 157
+ } ;
+
+static yyconst short int yy_def[138] =
+ { 0,
+ 137, 1, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 0
+ } ;
+
+static yyconst short int yy_nxt[200] =
+ { 0,
+ 4, 5, 6, 4, 4, 4, 7, 8, 9, 4,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 22, 22, 22, 10, 4,
+ 25, 4, 26, 4, 27, 28, 28, 29, 30, 31,
+ 32, 28, 33, 49, 53, 57, 59, 61, 50, 50,
+ 54, 58, 61, 64, 51, 66, 34, 66, 35, 69,
+ 66, 87, 84, 60, 36, 75, 85, 37, 38, 136,
+ 39, 76, 40, 135, 41, 42, 89, 90, 62, 91,
+ 44, 67, 95, 68, 123, 124, 125, 70, 134, 96,
+ 129, 130, 131, 71, 88, 103, 104, 105, 106, 133,
+
+ 132, 128, 127, 126, 122, 121, 120, 119, 118, 117,
+ 116, 115, 114, 113, 112, 111, 110, 109, 108, 107,
+ 102, 101, 95, 100, 99, 98, 97, 94, 93, 92,
+ 86, 83, 82, 81, 80, 79, 78, 77, 74, 73,
+ 72, 66, 66, 65, 63, 61, 56, 55, 52, 48,
+ 47, 46, 45, 44, 43, 137, 3, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137
+
+ } ;
+
+static yyconst short int yy_chk[200] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 6, 13, 15, 20, 21, 23, 26, 13,
+ 15, 20, 24, 26, 13, 29, 6, 30, 6, 32,
+ 32, 50, 48, 21, 6, 38, 48, 6, 6, 135,
+ 6, 38, 6, 132, 6, 6, 52, 52, 24, 52,
+ 23, 29, 57, 30, 98, 98, 98, 32, 128, 57,
+ 111, 111, 111, 32, 50, 74, 74, 74, 74, 121,
+
+ 120, 110, 109, 101, 97, 96, 95, 94, 93, 88,
+ 86, 84, 82, 81, 80, 79, 78, 77, 76, 75,
+ 73, 72, 70, 65, 63, 60, 59, 56, 54, 53,
+ 49, 47, 46, 44, 43, 42, 41, 40, 37, 36,
+ 34, 31, 28, 27, 25, 22, 18, 17, 14, 12,
+ 11, 10, 9, 8, 7, 3, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
+ 137, 137, 137, 137, 137, 137, 137, 137, 137
+
+ } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *yy_last_accepting_cpos;
+
+/* The intent behind this definition is that it'll catch
+ * any uses of REJECT which flex missed.
+ */
+#define REJECT reject_used_but_not_detected
+#define yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "kraut.l"
+#define INITIAL 0
+#line 11 "kraut.l"
+ char buf[128];
+
+#line 454 "lex.yy.c"
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap YY_PROTO(( void ));
+#else
+extern int yywrap YY_PROTO(( void ));
+#endif
+#endif
+
+#ifndef YY_NO_UNPUT
+static void yyunput YY_PROTO(( int c, char *buf_ptr ));
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+#endif
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+static int yyinput YY_PROTO(( void ));
+#else
+static int input YY_PROTO(( void ));
+#endif
+#endif
+
+#if YY_STACK_USED
+static int yy_start_stack_ptr = 0;
+static int yy_start_stack_depth = 0;
+static int *yy_start_stack = 0;
+#ifndef YY_NO_PUSH_STATE
+static void yy_push_state YY_PROTO(( int new_state ));
+#endif
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state YY_PROTO(( void ));
+#endif
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state YY_PROTO(( void ));
+#endif
+
+#else
+#define YY_NO_PUSH_STATE 1
+#define YY_NO_POP_STATE 1
+#define YY_NO_TOP_STATE 1
+#endif
+
+#ifdef YY_MALLOC_DECL
+YY_MALLOC_DECL
+#else
+#if __STDC__
+#ifndef __cplusplus
+#include <stdlib.h>
+#endif
+#else
+/* Just try to get by without declaring the routines. This will fail
+ * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
+ * or sizeof(void*) != sizeof(int).
+ */
+#endif
+#endif
+
+/* Amount of stuff to slurp up with each read. */
+#ifndef YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+
+#ifndef ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#endif
+
+/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+ if ( yy_current_buffer->yy_is_interactive ) \
+ { \
+ int c = '*', n; \
+ for ( n = 0; n < max_size && \
+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+ buf[n] = (char) c; \
+ if ( c == '\n' ) \
+ buf[n++] = (char) c; \
+ if ( c == EOF && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
+ result = n; \
+ } \
+ else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
+ && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" );
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL int yylex YY_PROTO(( void ))
+#endif
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+ YY_USER_ACTION
+
+YY_DECL
+ {
+ register yy_state_type yy_current_state;
+ register char *yy_cp, *yy_bp;
+ register int yy_act;
+
+#line 15 "kraut.l"
+
+#line 607 "lex.yy.c"
+
+ if ( yy_init )
+ {
+ yy_init = 0;
+
+#ifdef YY_USER_INIT
+ YY_USER_INIT;
+#endif
+
+ if ( ! yy_start )
+ yy_start = 1; /* first start state */
+
+ if ( ! yyin )
+ yyin = stdin;
+
+ if ( ! yyout )
+ yyout = stdout;
+
+ if ( ! yy_current_buffer )
+ yy_current_buffer =
+ yy_create_buffer( yyin, YY_BUF_SIZE );
+
+ yy_load_buffer_state();
+ }
+
+ while ( 1 ) /* loops until end-of-file is reached */
+ {
+ yy_cp = yy_c_buf_p;
+
+ /* Support of yytext. */
+ *yy_cp = yy_hold_char;
+
+ /* yy_bp points to the position in yy_ch_buf of the start of
+ * the current run.
+ */
+ yy_bp = yy_cp;
+
+ yy_current_state = yy_start;
+yy_match:
+ do
+ {
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+ if ( yy_accept[yy_current_state] )
+ {
+ yy_last_accepting_state = yy_current_state;
+ yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 138 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ ++yy_cp;
+ }
+ while ( yy_base[yy_current_state] != 157 );
+
+yy_find_action:
+ yy_act = yy_accept[yy_current_state];
+ if ( yy_act == 0 )
+ { /* have to back up */
+ yy_cp = yy_last_accepting_cpos;
+ yy_current_state = yy_last_accepting_state;
+ yy_act = yy_accept[yy_current_state];
+ }
+
+ YY_DO_BEFORE_ACTION;
+
+
+do_action: /* This label is used only to access EOF actions. */
+
+
+ switch ( yy_act )
+ { /* beginning of action switch */
+ case 0: /* must back up */
+ /* undo the effects of YY_DO_BEFORE_ACTION */
+ *yy_cp = yy_hold_char;
+ yy_cp = yy_last_accepting_cpos;
+ yy_current_state = yy_last_accepting_state;
+ goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 16 "kraut.l"
+return("ingkt");
+ YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 17 "kraut.l"
+return(" ze ");
+ YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 18 "kraut.l"
+return("Ze ");
+ YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 19 "kraut.l"
+return(" mitt ");
+ YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 20 "kraut.l"
+return("Mitt ");
+ YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 21 "kraut.l"
+return("w-r-r");
+ YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 22 "kraut.l"
+return("W-r-r");
+ YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 23 "kraut.l"
+return("R-r-r");
+ YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 24 "kraut.l"
+return("Jawohl ");
+ YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 25 "kraut.l"
+return(" r-r-r");
+ YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 26 "kraut.l"
+return("Jawohl.");
+ YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 27 "kraut.l"
+return("Jawohl!");
+ YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 28 "kraut.l"
+return("JAWOHL!");
+ YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 29 "kraut.l"
+return(" ja ");
+ YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 30 "kraut.l"
+return(" ja.");
+ YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 31 "kraut.l"
+return(" yes!");
+ YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 32 "kraut.l"
+return("Nein ");
+ YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 33 "kraut.l"
+return("Nein!");
+ YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 34 "kraut.l"
+return("Nein?");
+ YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 35 "kraut.l"
+return(" nein ");
+ YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 36 "kraut.l"
+return(" nein.");
+ YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 37 "kraut.l"
+return(" nein!");
+ YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 38 "kraut.l"
+return(" nein?");
+ YY_BREAK
+case 24:
+YY_RULE_SETUP
+#line 39 "kraut.l"
+return("Herr");
+ YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 40 "kraut.l"
+return("Frau");
+ YY_BREAK
+case 26:
+YY_RULE_SETUP
+#line 41 "kraut.l"
+return("Fraulein");
+ YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 42 "kraut.l"
+return(" uff ");
+ YY_BREAK
+case 28:
+YY_RULE_SETUP
+#line 43 "kraut.l"
+return("Uff ");
+ YY_BREAK
+case 29:
+YY_RULE_SETUP
+#line 44 "kraut.l"
+return("mein");
+ YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 45 "kraut.l"
+return("Mein");
+ YY_BREAK
+case 31:
+YY_RULE_SETUP
+#line 46 "kraut.l"
+return(" undt ");
+ YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 47 "kraut.l"
+return("Undt ");
+ YY_BREAK
+case 33:
+YY_RULE_SETUP
+#line 48 "kraut.l"
+return("Ein ");
+ YY_BREAK
+case 34:
+YY_RULE_SETUP
+#line 49 "kraut.l"
+return(" ein");
+ YY_BREAK
+case 35:
+YY_RULE_SETUP
+#line 50 "kraut.l"
+return("Ist ");
+ YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 51 "kraut.l"
+return(" ist ");
+ YY_BREAK
+case 37:
+YY_RULE_SETUP
+#line 52 "kraut.l"
+return("ow ");
+ YY_BREAK
+case 38:
+YY_RULE_SETUP
+#line 53 "kraut.l"
+return("w ");
+ YY_BREAK
+case 39:
+YY_RULE_SETUP
+#line 54 "kraut.l"
+return("sch");
+ YY_BREAK
+case 40:
+YY_RULE_SETUP
+#line 55 "kraut.l"
+return("Sch");
+ YY_BREAK
+case 41:
+YY_RULE_SETUP
+#line 56 "kraut.l"
+return("ch");
+ YY_BREAK
+case 42:
+YY_RULE_SETUP
+#line 57 "kraut.l"
+return("Ch");
+ YY_BREAK
+case 43:
+YY_RULE_SETUP
+#line 58 "kraut.l"
+return(" k");
+ YY_BREAK
+case 44:
+YY_RULE_SETUP
+#line 59 "kraut.l"
+return(" K");
+ YY_BREAK
+case 45:
+YY_RULE_SETUP
+#line 61 "kraut.l"
+return("f");
+ YY_BREAK
+case 46:
+YY_RULE_SETUP
+#line 62 "kraut.l"
+return("F");
+ YY_BREAK
+case 47:
+YY_RULE_SETUP
+#line 63 "kraut.l"
+return(" v");
+ YY_BREAK
+case 48:
+YY_RULE_SETUP
+#line 64 "kraut.l"
+return("V");
+ YY_BREAK
+case 49:
+YY_RULE_SETUP
+#line 65 "kraut.l"
+return("d");
+ YY_BREAK
+case 50:
+YY_RULE_SETUP
+#line 66 "kraut.l"
+return("D");
+ YY_BREAK
+case 51:
+YY_RULE_SETUP
+#line 67 "kraut.l"
+return("Johann");
+ YY_BREAK
+case 52:
+YY_RULE_SETUP
+#line 68 "kraut.l"
+return("Wilhelm");
+ YY_BREAK
+case 53:
+YY_RULE_SETUP
+#line 69 "kraut.l"
+return("Wilhelm");
+ YY_BREAK
+case 54:
+YY_RULE_SETUP
+#line 70 "kraut.l"
+return("Gerhardt");
+ YY_BREAK
+case 55:
+YY_RULE_SETUP
+#line 71 "kraut.l"
+return("Hansel");
+ YY_BREAK
+case 56:
+YY_RULE_SETUP
+#line 73 "kraut.l"
+{sprintf(buf,"%s Naturlich!",yytext);return(buf);}
+ YY_BREAK
+case 57:
+YY_RULE_SETUP
+#line 74 "kraut.l"
+{sprintf(buf,"%s Seig Heil!",yytext);return(buf);}
+ YY_BREAK
+case 58:
+YY_RULE_SETUP
+#line 75 "kraut.l"
+return(yytext);
+ YY_BREAK
+case 59:
+YY_RULE_SETUP
+#line 76 "kraut.l"
+return("\n");
+ YY_BREAK
+case 60:
+YY_RULE_SETUP
+#line 78 "kraut.l"
+ECHO;
+ YY_BREAK
+#line 990 "lex.yy.c"
+case YY_STATE_EOF(INITIAL):
+ yyterminate();
+
+ case YY_END_OF_BUFFER:
+ {
+ /* Amount of text matched not including the EOB char. */
+ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
+
+ /* Undo the effects of YY_DO_BEFORE_ACTION. */
+ *yy_cp = yy_hold_char;
+ YY_RESTORE_YY_MORE_OFFSET
+
+ if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
+ {
+ /* We're scanning a new file or input source. It's
+ * possible that this happened because the user
+ * just pointed yyin at a new source and called
+ * yylex(). If so, then we have to assure
+ * consistency between yy_current_buffer and our
+ * globals. Here is the right place to do so, because
+ * this is the first action (other than possibly a
+ * back-up) that will match for the new input source.
+ */
+ yy_n_chars = yy_current_buffer->yy_n_chars;
+ yy_current_buffer->yy_input_file = yyin;
+ yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
+ }
+
+ /* Note that here we test for yy_c_buf_p "<=" to the position
+ * of the first EOB in the buffer, since yy_c_buf_p will
+ * already have been incremented past the NUL character
+ * (since all states make transitions on EOB to the
+ * end-of-buffer state). Contrast this with the test
+ * in input().
+ */
+ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+ { /* This was really a NUL. */
+ yy_state_type yy_next_state;
+
+ yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state();
+
+ /* Okay, we're now positioned to make the NUL
+ * transition. We couldn't have
+ * yy_get_previous_state() go ahead and do it
+ * for us because it doesn't know how to deal
+ * with the possibility of jamming (and we don't
+ * want to build jamming into it because then it
+ * will run more slowly).
+ */
+
+ yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+
+ if ( yy_next_state )
+ {
+ /* Consume the NUL. */
+ yy_cp = ++yy_c_buf_p;
+ yy_current_state = yy_next_state;
+ goto yy_match;
+ }
+
+ else
+ {
+ yy_cp = yy_c_buf_p;
+ goto yy_find_action;
+ }
+ }
+
+ else switch ( yy_get_next_buffer() )
+ {
+ case EOB_ACT_END_OF_FILE:
+ {
+ yy_did_buffer_switch_on_eof = 0;
+
+ if ( yywrap() )
+ {
+ /* Note: because we've taken care in
+ * yy_get_next_buffer() to have set up
+ * yytext, we can now set up
+ * yy_c_buf_p so that if some total
+ * hoser (like flex itself) wants to
+ * call the scanner after we return the
+ * YY_NULL, it'll still work - another
+ * YY_NULL will get returned.
+ */
+ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
+
+ yy_act = YY_STATE_EOF(YY_START);
+ goto do_action;
+ }
+
+ else
+ {
+ if ( ! yy_did_buffer_switch_on_eof )
+ YY_NEW_FILE;
+ }
+ break;
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ yy_c_buf_p =
+ yytext_ptr + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state();
+
+ yy_cp = yy_c_buf_p;
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+ goto yy_match;
+
+ case EOB_ACT_LAST_MATCH:
+ yy_c_buf_p =
+ &yy_current_buffer->yy_ch_buf[yy_n_chars];
+
+ yy_current_state = yy_get_previous_state();
+
+ yy_cp = yy_c_buf_p;
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+ goto yy_find_action;
+ }
+ break;
+ }
+
+ default:
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--no action found" );
+ } /* end of action switch */
+ } /* end of scanning one token */
+ } /* end of yylex */
+
+
+/* yy_get_next_buffer - try to read in a new buffer
+ *
+ * Returns a code representing an action:
+ * EOB_ACT_LAST_MATCH -
+ * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+ * EOB_ACT_END_OF_FILE - end of file
+ */
+
+static int yy_get_next_buffer()
+ {
+ register char *dest = yy_current_buffer->yy_ch_buf;
+ register char *source = yytext_ptr;
+ register int number_to_move, i;
+ int ret_val;
+
+ if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--end of buffer missed" );
+
+ if ( yy_current_buffer->yy_fill_buffer == 0 )
+ { /* Don't try to fill the buffer, so this is an EOF. */
+ if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
+ {
+ /* We matched a single character, the EOB, so
+ * treat this as a final EOF.
+ */
+ return EOB_ACT_END_OF_FILE;
+ }
+
+ else
+ {
+ /* We matched some text prior to the EOB, first
+ * process it.
+ */
+ return EOB_ACT_LAST_MATCH;
+ }
+ }
+
+ /* Try to read more data. */
+
+ /* First move last chars to start of buffer. */
+ number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
+
+ for ( i = 0; i < number_to_move; ++i )
+ *(dest++) = *(source++);
+
+ if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+ /* don't do the read, it's not guaranteed to return an EOF,
+ * just force an EOF
+ */
+ yy_current_buffer->yy_n_chars = yy_n_chars = 0;
+
+ else
+ {
+ int num_to_read =
+ yy_current_buffer->yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+ { /* Not enough room in the buffer - grow it. */
+#ifdef YY_USES_REJECT
+ YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+#else
+
+ /* just a shorter name for the current buffer */
+ YY_BUFFER_STATE b = yy_current_buffer;
+
+ int yy_c_buf_p_offset =
+ (int) (yy_c_buf_p - b->yy_ch_buf);
+
+ if ( b->yy_is_our_buffer )
+ {
+ int new_size = b->yy_buf_size * 2;
+
+ if ( new_size <= 0 )
+ b->yy_buf_size += b->yy_buf_size / 8;
+ else
+ b->yy_buf_size *= 2;
+
+ b->yy_ch_buf = (char *)
+ /* Include room in for 2 EOB chars. */
+ yy_flex_realloc( (void *) b->yy_ch_buf,
+ b->yy_buf_size + 2 );
+ }
+ else
+ /* Can't grow it, we don't own it. */
+ b->yy_ch_buf = 0;
+
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR(
+ "fatal error - scanner input buffer overflow" );
+
+ yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+ num_to_read = yy_current_buffer->yy_buf_size -
+ number_to_move - 1;
+#endif
+ }
+
+ if ( num_to_read > YY_READ_BUF_SIZE )
+ num_to_read = YY_READ_BUF_SIZE;
+
+ /* Read in more data. */
+ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+ yy_n_chars, num_to_read );
+
+ yy_current_buffer->yy_n_chars = yy_n_chars;
+ }
+
+ if ( yy_n_chars == 0 )
+ {
+ if ( number_to_move == YY_MORE_ADJ )
+ {
+ ret_val = EOB_ACT_END_OF_FILE;
+ yyrestart( yyin );
+ }
+
+ else
+ {
+ ret_val = EOB_ACT_LAST_MATCH;
+ yy_current_buffer->yy_buffer_status =
+ YY_BUFFER_EOF_PENDING;
+ }
+ }
+
+ else
+ ret_val = EOB_ACT_CONTINUE_SCAN;
+
+ yy_n_chars += number_to_move;
+ yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+ yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+
+ yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
+
+ return ret_val;
+ }
+
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+static yy_state_type yy_get_previous_state()
+ {
+ register yy_state_type yy_current_state;
+ register char *yy_cp;
+
+ yy_current_state = yy_start;
+
+ for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
+ {
+ register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+ if ( yy_accept[yy_current_state] )
+ {
+ yy_last_accepting_state = yy_current_state;
+ yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 138 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ }
+
+ return yy_current_state;
+ }
+
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ * next_state = yy_try_NUL_trans( current_state );
+ */
+
+#ifdef YY_USE_PROTOS
+static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
+#else
+static yy_state_type yy_try_NUL_trans( yy_current_state )
+yy_state_type yy_current_state;
+#endif
+ {
+ register int yy_is_jam;
+ register char *yy_cp = yy_c_buf_p;
+
+ register YY_CHAR yy_c = 1;
+ if ( yy_accept[yy_current_state] )
+ {
+ yy_last_accepting_state = yy_current_state;
+ yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 138 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ yy_is_jam = (yy_current_state == 137);
+
+ return yy_is_jam ? 0 : yy_current_state;
+ }
+
+
+#ifndef YY_NO_UNPUT
+#ifdef YY_USE_PROTOS
+static void yyunput( int c, register char *yy_bp )
+#else
+static void yyunput( c, yy_bp )
+int c;
+register char *yy_bp;
+#endif
+ {
+ register char *yy_cp = yy_c_buf_p;
+
+ /* undo effects of setting up yytext */
+ *yy_cp = yy_hold_char;
+
+ if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+ register int number_to_move = yy_n_chars + 2;
+ register char *dest = &yy_current_buffer->yy_ch_buf[
+ yy_current_buffer->yy_buf_size + 2];
+ register char *source =
+ &yy_current_buffer->yy_ch_buf[number_to_move];
+
+ while ( source > yy_current_buffer->yy_ch_buf )
+ *--dest = *--source;
+
+ yy_cp += (int) (dest - source);
+ yy_bp += (int) (dest - source);
+ yy_current_buffer->yy_n_chars =
+ yy_n_chars = yy_current_buffer->yy_buf_size;
+
+ if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
+ }
+
+ *--yy_cp = (char) c;
+
+
+ yytext_ptr = yy_bp;
+ yy_hold_char = *yy_cp;
+ yy_c_buf_p = yy_cp;
+ }
+#endif /* ifndef YY_NO_UNPUT */
+
+
+#ifdef __cplusplus
+static int yyinput()
+#else
+static int input()
+#endif
+ {
+ int c;
+
+ *yy_c_buf_p = yy_hold_char;
+
+ if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
+ {
+ /* yy_c_buf_p now points to the character we want to return.
+ * If this occurs *before* the EOB characters, then it's a
+ * valid NUL; if not, then we've hit the end of the buffer.
+ */
+ if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+ /* This was really a NUL. */
+ *yy_c_buf_p = '\0';
+
+ else
+ { /* need more input */
+ int offset = yy_c_buf_p - yytext_ptr;
+ ++yy_c_buf_p;
+
+ switch ( yy_get_next_buffer() )
+ {
+ case EOB_ACT_LAST_MATCH:
+ /* This happens because yy_g_n_b()
+ * sees that we've accumulated a
+ * token and flags that we need to
+ * try matching the token before
+ * proceeding. But for input(),
+ * there's no matching to consider.
+ * So convert the EOB_ACT_LAST_MATCH
+ * to EOB_ACT_END_OF_FILE.
+ */
+
+ /* Reset buffer status. */
+ yyrestart( yyin );
+
+ /* fall through */
+
+ case EOB_ACT_END_OF_FILE:
+ {
+ if ( yywrap() )
+ return EOF;
+
+ if ( ! yy_did_buffer_switch_on_eof )
+ YY_NEW_FILE;
+#ifdef __cplusplus
+ return yyinput();
+#else
+ return input();
+#endif
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ yy_c_buf_p = yytext_ptr + offset;
+ break;
+ }
+ }
+ }
+
+ c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
+ *yy_c_buf_p = '\0'; /* preserve yytext */
+ yy_hold_char = *++yy_c_buf_p;
+
+
+ return c;
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yyrestart( FILE *input_file )
+#else
+void yyrestart( input_file )
+FILE *input_file;
+#endif
+ {
+ if ( ! yy_current_buffer )
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
+
+ yy_init_buffer( yy_current_buffer, input_file );
+ yy_load_buffer_state();
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+#else
+void yy_switch_to_buffer( new_buffer )
+YY_BUFFER_STATE new_buffer;
+#endif
+ {
+ if ( yy_current_buffer == new_buffer )
+ return;
+
+ if ( yy_current_buffer )
+ {
+ /* Flush out information for old buffer. */
+ *yy_c_buf_p = yy_hold_char;
+ yy_current_buffer->yy_buf_pos = yy_c_buf_p;
+ yy_current_buffer->yy_n_chars = yy_n_chars;
+ }
+
+ yy_current_buffer = new_buffer;
+ yy_load_buffer_state();
+
+ /* We don't actually know whether we did this switch during
+ * EOF (yywrap()) processing, but the only time this flag
+ * is looked at is after yywrap() is called, so it's safe
+ * to go ahead and always set it.
+ */
+ yy_did_buffer_switch_on_eof = 1;
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_load_buffer_state( void )
+#else
+void yy_load_buffer_state()
+#endif
+ {
+ yy_n_chars = yy_current_buffer->yy_n_chars;
+ yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
+ yyin = yy_current_buffer->yy_input_file;
+ yy_hold_char = *yy_c_buf_p;
+ }
+
+
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
+#else
+YY_BUFFER_STATE yy_create_buffer( file, size )
+FILE *file;
+int size;
+#endif
+ {
+ YY_BUFFER_STATE b;
+
+ b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_buf_size = size;
+
+ /* yy_ch_buf has to be 2 characters longer than the size given because
+ * we need to put in 2 end-of-buffer characters.
+ */
+ b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_is_our_buffer = 1;
+
+ yy_init_buffer( b, file );
+
+ return b;
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_delete_buffer( YY_BUFFER_STATE b )
+#else
+void yy_delete_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+ {
+ if ( ! b )
+ return;
+
+ if ( b == yy_current_buffer )
+ yy_current_buffer = (YY_BUFFER_STATE) 0;
+
+ if ( b->yy_is_our_buffer )
+ yy_flex_free( (void *) b->yy_ch_buf );
+
+ yy_flex_free( (void *) b );
+ }
+
+
+#ifndef YY_ALWAYS_INTERACTIVE
+#ifndef YY_NEVER_INTERACTIVE
+extern int isatty YY_PROTO(( int ));
+#endif
+#endif
+
+#ifdef YY_USE_PROTOS
+void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
+#else
+void yy_init_buffer( b, file )
+YY_BUFFER_STATE b;
+FILE *file;
+#endif
+
+
+ {
+ yy_flush_buffer( b );
+
+ b->yy_input_file = file;
+ b->yy_fill_buffer = 1;
+
+#if YY_ALWAYS_INTERACTIVE
+ b->yy_is_interactive = 1;
+#else
+#if YY_NEVER_INTERACTIVE
+ b->yy_is_interactive = 0;
+#else
+ b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+#endif
+#endif
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_flush_buffer( YY_BUFFER_STATE b )
+#else
+void yy_flush_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+
+ {
+ if ( ! b )
+ return;
+
+ b->yy_n_chars = 0;
+
+ /* We always need two end-of-buffer characters. The first causes
+ * a transition to the end-of-buffer state. The second causes
+ * a jam in that state.
+ */
+ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+ b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+ b->yy_buf_pos = &b->yy_ch_buf[0];
+
+ b->yy_at_bol = 1;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ if ( b == yy_current_buffer )
+ yy_load_buffer_state();
+ }
+
+
+#ifndef YY_NO_SCAN_BUFFER
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
+#else
+YY_BUFFER_STATE yy_scan_buffer( base, size )
+char *base;
+yy_size_t size;
+#endif
+ {
+ YY_BUFFER_STATE b;
+
+ if ( size < 2 ||
+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
+ base[size-1] != YY_END_OF_BUFFER_CHAR )
+ /* They forgot to leave room for the EOB's. */
+ return 0;
+
+ b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+ b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
+ b->yy_buf_pos = b->yy_ch_buf = base;
+ b->yy_is_our_buffer = 0;
+ b->yy_input_file = 0;
+ b->yy_n_chars = b->yy_buf_size;
+ b->yy_is_interactive = 0;
+ b->yy_at_bol = 1;
+ b->yy_fill_buffer = 0;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ yy_switch_to_buffer( b );
+
+ return b;
+ }
+#endif
+
+
+#ifndef YY_NO_SCAN_STRING
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
+#else
+YY_BUFFER_STATE yy_scan_string( yy_str )
+yyconst char *yy_str;
+#endif
+ {
+ int len;
+ for ( len = 0; yy_str[len]; ++len )
+ ;
+
+ return yy_scan_bytes( yy_str, len );
+ }
+#endif
+
+
+#ifndef YY_NO_SCAN_BYTES
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
+#else
+YY_BUFFER_STATE yy_scan_bytes( bytes, len )
+yyconst char *bytes;
+int len;
+#endif
+ {
+ YY_BUFFER_STATE b;
+ char *buf;
+ yy_size_t n;
+ int i;
+
+ /* Get memory for full buffer, including space for trailing EOB's. */
+ n = len + 2;
+ buf = (char *) yy_flex_alloc( n );
+ if ( ! buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+ for ( i = 0; i < len; ++i )
+ buf[i] = bytes[i];
+
+ buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+
+ b = yy_scan_buffer( buf, n );
+ if ( ! b )
+ YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+ /* It's okay to grow etc. this buffer, and we should throw it
+ * away when we're done.
+ */
+ b->yy_is_our_buffer = 1;
+
+ return b;
+ }
+#endif
+
+
+#ifndef YY_NO_PUSH_STATE
+#ifdef YY_USE_PROTOS
+static void yy_push_state( int new_state )
+#else
+static void yy_push_state( new_state )
+int new_state;
+#endif
+ {
+ if ( yy_start_stack_ptr >= yy_start_stack_depth )
+ {
+ yy_size_t new_size;
+
+ yy_start_stack_depth += YY_START_STACK_INCR;
+ new_size = yy_start_stack_depth * sizeof( int );
+
+ if ( ! yy_start_stack )
+ yy_start_stack = (int *) yy_flex_alloc( new_size );
+
+ else
+ yy_start_stack = (int *) yy_flex_realloc(
+ (void *) yy_start_stack, new_size );
+
+ if ( ! yy_start_stack )
+ YY_FATAL_ERROR(
+ "out of memory expanding start-condition stack" );
+ }
+
+ yy_start_stack[yy_start_stack_ptr++] = YY_START;
+
+ BEGIN(new_state);
+ }
+#endif
+
+
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state()
+ {
+ if ( --yy_start_stack_ptr < 0 )
+ YY_FATAL_ERROR( "start-condition stack underflow" );
+
+ BEGIN(yy_start_stack[yy_start_stack_ptr]);
+ }
+#endif
+
+
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state()
+ {
+ return yy_start_stack[yy_start_stack_ptr - 1];
+ }
+#endif
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+#ifdef YY_USE_PROTOS
+static void yy_fatal_error( yyconst char msg[] )
+#else
+static void yy_fatal_error( msg )
+char msg[];
+#endif
+ {
+ (void) fprintf( stderr, "%s\n", msg );
+ exit( YY_EXIT_FAILURE );
+ }
+
+
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ yytext[yyleng] = yy_hold_char; \
+ yy_c_buf_p = yytext + n; \
+ yy_hold_char = *yy_c_buf_p; \
+ *yy_c_buf_p = '\0'; \
+ yyleng = n; \
+ } \
+ while ( 0 )
+
+
+/* Internal utility routines. */
+
+#ifndef yytext_ptr
+#ifdef YY_USE_PROTOS
+static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
+#else
+static void yy_flex_strncpy( s1, s2, n )
+char *s1;
+yyconst char *s2;
+int n;
+#endif
+ {
+ register int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+ }
+#endif
+
+#ifdef YY_NEED_STRLEN
+#ifdef YY_USE_PROTOS
+static int yy_flex_strlen( yyconst char *s )
+#else
+static int yy_flex_strlen( s )
+yyconst char *s;
+#endif
+ {
+ register int n;
+ for ( n = 0; s[n]; ++n )
+ ;
+
+ return n;
+ }
+#endif
+
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_alloc( yy_size_t size )
+#else
+static void *yy_flex_alloc( size )
+yy_size_t size;
+#endif
+ {
+ return (void *) malloc( size );
+ }
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_realloc( void *ptr, yy_size_t size )
+#else
+static void *yy_flex_realloc( ptr, size )
+void *ptr;
+yy_size_t size;
+#endif
+ {
+ /* The cast to (char *) in the following accommodates both
+ * implementations that use char* generic pointers, and those
+ * that use void* generic pointers. It works with the latter
+ * because both ANSI C and C++ allow castless assignment from
+ * any pointer type to void*, and deal with argument conversions
+ * as though doing an assignment.
+ */
+ return (void *) realloc( (char *) ptr, size );
+ }
+
+#ifdef YY_USE_PROTOS
+static void yy_flex_free( void *ptr )
+#else
+static void yy_flex_free( ptr )
+void *ptr;
+#endif
+ {
+ free( ptr );
+ }
+
+#if YY_MAIN
+int main()
+ {
+ yylex();
+ return 0;
+ }
+#endif
+#line 78 "kraut.l"
+
+
+
--- /dev/null
+%e 2000
+%p 5000
+%n 1000
+%k 500
+%a 4000
+%o 2000
+BW [ ]
+EW [ .,;!?]
+
+%{
+#include <stdio.h>
+
+char buf[128];
+%}
+
+%%
+ing printf("ingkt");
+" the " printf(" ze ");
+"The " printf("Ze ");
+" with " printf(" mitt ");
+"With " printf("Mitt ");
+wr printf("w-r-r");
+Wr printf("W-r-r");
+R printf("R-r-r");
+"Yes " printf("Jawohl ");
+" r" printf(" r-r-r");
+"Yes." printf("Jawohl.");
+"Yes!" printf("Jawohl!");
+"YES!" printf("JAWOHL!");
+" yes " printf(" ja ");
+" yes." printf(" ja.");
+" yes!" printf(" yes!");
+"No " printf("Nein ");
+"No!" printf("Nein!");
+"No?" printf("Nein?");
+" no " printf(" nein ");
+" no." printf(" nein.");
+" no!" printf(" nein!");
+" no?" printf(" nein?");
+[Mm]"r." printf("Herr");
+[Mm]"rs." printf("Frau");
+Miss printf("Fraulein");
+" of " printf(" uff ");
+"Of " printf("Uff ");
+my printf("mein");
+My printf("Mein");
+" and " printf(" undt ");
+"And " printf("Undt ");
+"One " printf("Ein ");
+" one" printf(" ein");
+"Is " printf("Ist ");
+" is " printf(" ist ");
+"ow " printf("ow ");
+"w " printf("w ");
+sh printf("sch");
+Sh printf("Sch");
+ch printf("ch");
+Ch printf("Ch");
+" c" printf(" k");
+" C" printf(" K");
+
+v printf("f");
+V printf("F");
+" w" printf(" v");
+W printf("V");
+th printf("d");
+Th printf("D");
+[Jj]ohn printf("Johann");
+[Ww]illiam printf("Wilhelm");
+[Bb]rad printf("Wilhelm");
+[Gg]ary printf("Gerhardt");
+[Jj]on printf("Hansel");
+
+[a-f]"!" {sprintf(buf,"%s Naturlich!",yytext);printf(buf);}
+[p-z]"!" {sprintf(buf,"%s Seig Heil!",yytext);printf(buf);}
+.|'\n' ECHO;
+
+%%
+main()
+{
+ yylex();
+}
--- /dev/null
+This program is (c) 1994, Brent E. Edwards. Feel free to distribute the
+complete program world-wide. (Please do NOT break apart this text file
+from the program.)
+
+This program is under absolutely no warrantee of any kind.
+
+If you have any questions about this program, please send them to
+edwardsb@cs.rpi.edu.
+
+This program is dedicated to Conrad Wong.
+
+This program is catware. If you find it useful in any way, pay for this
+program by spending one hour petting one or several cats.
+
+
+===================================================
+
+
+Purpose:
+ This program places a very cute (and familiar to FurryMuck fans)
+ accent to any text file. It is designed for UNIX systems.
+ It requires cc, lex, and yacc to be in your path.
+
+Compiling:
+ To compile on a UNIX system, type 'make'
+
+Running:
+ To do a line-by-line translation of your text, type 'ky00te'.
+ Control-D will halt the program.
+
+ To convert a text file and display it on the screen, type
+ 'ky00te < filename | more', where filename is the file to convert.
+
+ To convert a text file and save it to a file, type
+ 'ky00te < filename.in > filename.out', where filename.in is the
+ file to convert and filename.out is the place to put it.
+
+ You can also add an accent to the output of any program by
+ typing '<normal program execution> | ky00te'.
+
+Petting the cat:
+ Stroke with the furs, not against them.
+
+====================================================
+
+Program version information:
+
+Program version 1.00: 13 December 1994
+
+Program version 1.10: 15 December 1994
+ Version 1.00 was a memory hog. Also, adds 'fur' and 'meow' to
+list of cat-ch phrases.
+
+Program version 1.11: 16 December 1994
+ With Tobias Kuhler's (ukjp@rz.uni-karlsruhe.de) repeated suggestion,
+ the program now only doubles (not triples) 'r' and no longer capitalizes
+ fur. He also suggested the following improvements:
+ at a, at the -> atta
+ in a, in the -> ynna
+ is a, is the -> yssa
+ on a, on the -> onna
+ with a, with the -> wyffa
+ the -> da
+ you -> ya
+ and -> 'n
+ with -> wyf
+ to -> ta
+
+ This version also no longer uses the same 'meow'; it switches between
+ 'meow', 'mew', and 'mu' (weighted to the first).
+
+ I've also added:
+ lot of -> lotta
+ is so -> yssa
+ when -> w'en
+ with -> wyf (when used to start a word)
+ your -> yer
+ not, n't -> na'
+
+
+ The README file has been reorganized, and the dedication made explicit.
+
--- /dev/null
+%{
+
+#include "y.tab.h"
+extern int yylval;
+
+%}
+
+%%
+i { yylval = 'y'; return(LETTER); }
+I { yylval = 'Y'; return(LETTER); }
+cks { yylval = 'x'; return(LETTER); }
+ks { yylval = 'x'; return(LETTER); }
+cute { return(CUTE); }
+fluff { return(FLUFF); }
+smile { return(SMILE); }
+grin { return(SMILE); }
+laugh { return(SMILE); }
+chuckle { return(SMILE); }
+pr { return(PURR); }
+p[aeiou]*r { return(PURR); }
+f[aeiou]+r { return(FUR); }
+m[aeiou]+/[^.,s?! ] { return(MEOW); } /*UN*/
+"at a" { return(ATTA); }
+"at the" { return(ATTA); }
+"in a" { return(YNNA); }
+"in the" { return(YNNA); }
+"is a" { return(YSSA); }
+"is the" { return(YSSA); }
+"is so" { return(YSSA); }
+"on a" { return(ONNA); }
+"on the" { return(ONNA); }
+"with a" { return(WYFFA); }
+"with the" { return(WYFFA); }
+"lot of" { return(LOTTA); }
+" with " { return(WYF); }
+" with" { return(WYFF); }
+^"with " { return(WYF); }
+^"with" { return(WYFF); }
+" with"$ { return(WYF); }
+" the " { return(DA); }
+^"the " { return(DA); }
+" the"$ { return(DA); }
+" your" { return(YER); }
+^your { return(YER); }
+" you" { return(YA); }
+^you { return(YA); }
+" and " { return(AN); }
+^"and " { return(AN); }
+" and"$ { return(AN); }
+" to " { return(TA); }
+^"to " { return(TA); }
+" to"$ { return(TA); }
+" when " { return(WEN); }
+^"when " { return(WEN); }
+" when"$ { return(WEN); }
+"n't" { return(NA); } /*UN*/
+" not" { return(NA); } /*UN*/
+[ \t] { return(' '); }
+. { yylval = yytext[0]; return(LETTER); }
+%%
+
+
+
+
--- /dev/null
+%{
+
+#include <stdio.h>
+typedef int INT;
+
+#define YYSTYPE INT
+
+%}
+
+%token CUTE
+%token FLUFF
+%token SMILE
+%token PURR
+%token FUR
+%token MEOW
+%token ATTA
+%token YNNA
+%token YSSA
+%token ONNA
+%token WYFFA
+%token LOTTA
+%token WYF
+%token WYFF
+%token DA
+%token YER
+%token YA
+%token AN
+%token TA
+%token WEN
+%token NA /*UN*/
+%token LETTER
+
+%%
+
+s:
+ | s t
+ | s ' '
+ {
+ if (rand() % 30 < 1)
+ {
+ int inRand;
+
+ inRand = rand() % 5;
+
+ switch(inRand)
+ {
+ case 0:
+ printf(" *truffle break!* ");
+ break;
+
+ case 1:
+ printf(" *catnap break!* ");
+ break;
+
+ case 2:
+ printf(" *purrpurr* ");
+ break;
+
+ case 3:
+ printf(" *meow!* ");
+ break;
+
+ case 4:
+ printf(" *fluff!* ");
+ break;
+ }
+ }
+ else
+ {
+ printf(" ");
+ }
+ }
+ ;
+
+t: CUTE { printf("ky00te!"); }
+ | FLUFF { printf("*fluff!*"); }
+ | SMILE { printf("};)"); }
+ | PURR { printf("purr"); }
+ | FUR { printf("fur"); }
+ | MEOW { int inRand;
+
+ inRand = rand() % 5;
+
+ switch(inRand)
+ {
+ case 0:
+ case 1:
+ case 2:
+ printf("meow");
+ break;
+ case 3:
+ case 4:
+ printf("mew");
+ }
+ }
+ | ATTA { printf("atta"); }
+ | YNNA { printf("ynna"); }
+ | YSSA { printf("yssa"); }
+ | ONNA { printf("onna"); }
+ | WYFFA { printf("wyffa"); }
+ | LOTTA { printf("lotta"); }
+ | WYF { printf(" wyf "); }
+ | WYFF { printf(" wyff"); }
+ | DA { printf(" da "); }
+ | YER { printf(" yer"); }
+ | YA { printf(" ya"); }
+ | AN { printf(" 'n "); }
+ | TA { printf(" ta "); }
+ | WEN { printf(" w'en "); }
+ | NA { printf(" na'"); } /*UN*/
+ | LETTER { if (yylval == 'r')
+ printf("rr");
+ else
+ printf("%c", $1); }
+ ;
+
+
+%%
+
+extern char mylval;
+
+void yyerror(char *s) {
+ printf("%s\n",s);
+}
+
+int main()
+{
+ yyparse();
+
+ return 0;
+}
+
+
--- /dev/null
+all: ky00te
+
+clean:
+ rm -f y.tab.* lex.yy.*
+ rm -f ../ky00te
+
+ky00te: y.tab.o lex.yy.o
+ cc -o ../ky00te lex.yy.o y.tab.o -lfl
+
+lex.yy.o: lex.yy.c y.tab.h
+ cc -c lex.yy.c
+
+y.tab.o: y.tab.c
+ cc -c y.tab.c
+
+lex.yy.c: ky00te.lex
+ flex ky00te.lex
+
+y.tab.c: ky00te.yacc
+ yacc -d ky00te.yacc
+
--- /dev/null
+#!/bin/sh
+echo $1 >>SAMPLES
+echo "-------------" >>SAMPLES
+echo -e "Here's how this filter sounds, in everyday use.\nThis line is another sample of this filter's output." | ./$1 >>SAMPLES
+echo "" >>SAMPLES
\ No newline at end of file
--- /dev/null
+From: dankmyer@hilbert.math.grin.edu (Kirt A Dankmyer)
+Newsgroups: alt.sources
+Subject: mb.l
+Date: 4 Dec 1992 15:08:40 -0600
+Message-ID: <9212042108.AA10484@hilbert>
+
+%{
+
+ /* Marc Barrett posting translator;
+ amaze your friends
+ To compile: lex mb.l
+ cc -o mb lex.yy.c -ll
+ To use:
+ mb < Your_MB_posting
+ */
+
+ char buf[128];
+%}
+%a 3000
+%e 3000
+%p 5000
+%n 3000
+%%
+"lots and lots" printf("few");
+"HyperCard" printf("crap");
+"real," printf("phony,");
+"real." printf("phony.");
+"real " printf("phony ");
+"People" printf("I");
+"numerous" printf("1 or 2 (I think)");
+" other" printf(" lamer");
+"nightmare" printf("paradise");
+"bad" printf("excellent");
+"may" printf("will");
+"UNUSABLE" printf("FAST AS HELL");
+"pokish" printf("slower than a snail");
+"junior" printf("intelligent");
+"potentially" printf("probably");
+"I know" printf("I think");
+"looks a thousand times better" printf("looks worse");
+"years ago" printf("years ago (before I bought an Amiga) ");
+"no improvements" printf("many improvements");
+"As far as I know" printf("I don't really know");
+"as far as I know" printf("but what do I know");
+"totally official" printf("a wild rumor");
+"kludged" printf("designed");
+"be any" printf("be some");
+"also likely never" printf("also probably");
+"likely never" printf("probably");
+"everyone" printf("some people");
+"being unreasonable" printf("being an idiot");
+"I don't understand" printf("I dont' understand. ");
+"it is unreasonable" printf("it is stupid. ");
+"everybody" printf("some people");
+"have never" printf("will have");
+"must have" printf("could have");
+"will never" printf("will");
+"never will" printf("will again soon");
+"would not" printf("may");
+"the need" printf("some silly things");
+"The problem" printf("My problem");
+"the problem" printf("my problem");
+"the simple fact" printf("my opinion");
+"simply" printf("(with great difficulty)");
+"it's kind of embarassing" printf("I'm kind of embarassing");
+"I often see" printf("I never see");
+"I questioned" printf("I flamed");
+"development costs" printf("development costs (which, I'd like to remind you, I know nothing about)");
+"IMO" printf("(belch)");
+"to explain" printf("to give my wacky ideas about");
+"practically zero" printf("astronomical");
+"I think" printf("I think. ");
+"don't think" printf("don't think. ");
+"do not think." printf("do not think. ");
+"I am trying" printf("I am flaming");
+"I've" printf("Commodore has");
+"Beware the ides of September" printf("I'm gonna flame any new stuff shown in September");
+"Sad" printf("Weird");
+"sad" printf("weird");
+"I WAS RIGHT" printf("I DON'T KNOW WHAT I'M TALKING ABOUT");
+"aren't" printf("are");
+"anymore" printf("still");
+" are " printf(" aren't ");
+"lost" printf("gained");
+" low " printf(" high ");
+" high " printf(" low ");
+"isn't" printf("is");
+"all of" printf("none of");
+"is not" printf("is");
+"stagnates" printf("flourishes");
+"never" printf("always");
+"short-sightedness" printf("genius");
+"inferior" printf("superior");
+"superior" printf("inferior");
+"few " printf("many ");
+"many" printf("few");
+"no improvements" printf("many improvements");
+"different" printf("similar");
+"the only substantial" printf("one of the many");
+"best" printf("worst");
+"worst" printf("best");
+"except for" printf("including");
+"worse" printf("better");
+"better" printf("worse");
+"nothing" printf("something");
+"something" printf("nothing");
+"no longer" printf("still");
+"biggest" printf("smallest");
+"high" printf("low");
+" low" printf(" high");
+"does not" printf("does");
+"doesn't" printf("does");
+"brilliantly" printf("inferiorly");
+"Avoid" printf("Search out");
+"lots of" printf("a few");
+"beautifully" printf("horribly");
+"wrong" printf("right");
+"right" printf("wrong");
+"tight" printf("loose");
+"loose" printf("tight");
+"same" printf("different");
+"disappointing" printf("impressive");
+"pieces of shit" printf("accomplishments");
+" NO!" printf(" YES!");
+"retrogrades" printf("leaps forward");
+"garbaged" printf("incredible");
+"reduced to garbage" printf("incredible");
+"all games" printf("no games");
+"slow" printf("fast");
+"fast" printf("slow");
+"can't" printf("can");
+"won't" printf("will");
+"will" printf("won't");
+" more" printf(" less");
+"has not" printf("has");
+%%
+
--- /dev/null
+From: dankmyer@hilbert.math.grin.edu (Kirt A Dankmyer)
+Newsgroups: alt.sources
+Subject: mb.l
+Date: 4 Dec 1992 15:08:40 -0600
+Message-ID: <9212042108.AA10484@hilbert>
+
+%{
+
+ /* Marc Barrett posting translator;
+ amaze your friends
+ To compile: lex mb.l
+ cc -o mb lex.yy.c -ll
+ To use:
+ mb < Your_MB_posting
+ */
+
+ char buf[128];
+%}
+%a 3000
+%e 3000
+%p 5000
+%n 3000
+%%
+"lots and lots" printf("few");
+"HyperCard" printf("crap");
+"real," printf("phony,");
+"real." printf("phony.");
+"real " printf("phony ");
+"People" printf("I");
+"numerous" printf("1 or 2 (I think)");
+" other" printf(" lamer");
+"nightmare" printf("paradise");
+"bad" printf("excellent");
+"may" printf("will");
+"UNUSABLE" printf("FAST AS HELL");
+"pokish" printf("slower than a snail");
+"junior" printf("intelligent");
+"potentially" printf("probably");
+"I know" printf("I think");
+"looks a thousand times better" printf("looks worse");
+"years ago" printf("years ago (before I bought an Amiga) ");
+"no improvements" printf("many improvements");
+"As far as I know" printf("I don't really know");
+"as far as I know" printf("but what do I know");
+"totally official" printf("a wild rumor");
+"kludged" printf("designed");
+"be any" printf("be some");
+"also likely never" printf("also probably");
+"likely never" printf("probably");
+"everyone" printf("some people");
+"being unreasonable" printf("being an idiot");
+"I don't understand" printf("I dont' understand. ");
+"it is unreasonable" printf("it is stupid. ");
+"everybody" printf("some people");
+"have never" printf("will have");
+"must have" printf("could have");
+"will never" printf("will");
+"never will" printf("will again soon");
+"would not" printf("may");
+"the need" printf("some silly things");
+"The problem" printf("My problem");
+"the problem" printf("my problem");
+"the simple fact" printf("my opinion");
+"simply" printf("(with great difficulty)");
+"it's kind of embarassing" printf("I'm kind of embarassing");
+"I often see" printf("I never see");
+"I questioned" printf("I flamed");
+"development costs" printf("development costs (which, I'd like to remind you, I know nothing about)");
+"IMO" printf("(belch)");
+"to explain" printf("to give my wacky ideas about");
+"practically zero" printf("astronomical");
+"I think" printf("I think. ");
+"don't think" printf("don't think. ");
+"do not think." printf("do not think. ");
+"I am trying" printf("I am flaming");
+"I've" printf("Commodore has");
+"Beware the ides of September" printf("I'm gonna flame any new stuff shown in September");
+"Sad" printf("Weird");
+"sad" printf("weird");
+"I WAS RIGHT" printf("I DON'T KNOW WHAT I'M TALKING ABOUT");
+"aren't" printf("are");
+"anymore" printf("still");
+" are " printf(" aren't ");
+"lost" printf("gained");
+" low " printf(" high ");
+" high " printf(" low ");
+"isn't" printf("is");
+"all of" printf("none of");
+"is not" printf("is");
+"stagnates" printf("flourishes");
+"never" printf("always");
+"short-sightedness" printf("genius");
+"inferior" printf("superior");
+"superior" printf("inferior");
+"few " printf("many ");
+"many" printf("few");
+"no improvements" printf("many improvements");
+"different" printf("similar");
+"the only substantial" printf("one of the many");
+"best" printf("worst");
+"worst" printf("best");
+"except for" printf("including");
+"worse" printf("better");
+"better" printf("worse");
+"nothing" printf("something");
+"something" printf("nothing");
+"no longer" printf("still");
+"biggest" printf("smallest");
+"high" printf("low");
+" low" printf(" high");
+"does not" printf("does");
+"doesn't" printf("does");
+"brilliantly" printf("inferiorly");
+"Avoid" printf("Search out");
+"lots of" printf("a few");
+"beautifully" printf("horribly");
+"wrong" printf("right");
+"right" printf("wrong");
+"tight" printf("loose");
+"loose" printf("tight");
+"same" printf("different");
+"disappointing" printf("impressive");
+"pieces of shit" printf("accomplishments");
+" NO!" printf(" YES!");
+"retrogrades" printf("leaps forward");
+"garbaged" printf("incredible");
+"reduced to garbage" printf("incredible");
+"all games" printf("no games");
+"slow" printf("fast");
+"fast" printf("slow");
+"can't" printf("can");
+"won't" printf("will");
+"will" printf("won't");
+" more" printf(" less");
+"has not" printf("has");
+%%
+
--- /dev/null
+%e 2000
+%p 5000
+%n 1000
+%k 500
+%a 4000
+%o 2000
+BW [ ]
+EW [ .,;!?]
+
+%{
+/*
+** The cow filter
+** by Benjamin Elijah Griffin 8 May 1994
+**
+** An experiment in lex written instead of a paper on Nietzsche.
+**
+** compile like this:
+** lex moo.l
+** cc -o moo lex.yy.c -ll
+** rm lex.yy.c
+**
+** use like this:
+** moo < infile > outfile
+** or
+** cat infile | <whatever> | moo | <whatever> > outfile
+**
+*/
+
+char WhAt[]="@(#)Benjamin Elijah Griffin's moo filter for cowtalk (c) 1994\n@(#)$Header: moo.l,v 1.1 94/05/08 23:37:53 bgriffin Final $"
+;
+
+%}
+
+%%
+
+" and " printf(" moond ");
+[Uu][Nn][Ii][Xx] printf("Moonix");
+[Mm][Ss].[Dd][Oo][Ss] printf("Moo Dos");
+news printf("moos");
+[Uu]senet printf("Moosnet");
+" man " printf(" mooster ");
+" men " printf(" moosters ");
+woman printf("moostress");
+women printf("moostresses");
+pig printf("cop");
+[Dd]airy.[Ff]armer printf("Pimp");
+[Dd]airy.[Ff]arm printf("Farm of Ill Repute");
+[Bb]eef.[Ff]armer printf("Slave Driver");
+[Bb]eef.[Ff]arm printf("Prison");
+yogurt printf("bacteria culture");
+cheese printf("smega");
+curds printf("moist smega");
+whey printf("bile");
+buttermilk printf("foul fluid");
+butter { printf("sphinter lubrication");
+ /* A _Last Tango in Paris_ joke */ }
+cream printf("honey");
+beef printf("murdered meat");
+grass printf("gourmet greenry");
+hay printf("subsistance rations");
+cereal printf("fomood");
+milkmaid printf("rapist");
+[Mm]aid.a.milkin |
+[Mm]aid.a.milking printf("Christmas Rapist");
+[Mm]aids.a.milkin |
+[Mm]aids.a.milking printf("Christmas Rapists");
+milking printf("rape");
+rape printf("milking");
+rapist printf("milkmaid");
+veal printf("the devil's food");
+"bull fighter" printf("Grim Reaper");
+"bull fight" printf("Game of Sorrows");
+milk printf("mead");
+Milk printf("Mead");
+"cafe con latte" |
+capuccino printf("piss water");
+" "[In]"ndia " printf("Heaven");
+" "[In]"ndian " printf("heavenly");
+"sacred cow" printf("God");
+silo printf("calfeteria");
+divin printf("bovin");
+[Gg][Oo-][Dd] printf("Bovinity");
+sheep printf("dog(s)");
+relaxing printf("chewing the cud");
+relax printf("chew the cud");
+utter printf("udder");
+" udder" printf(" teat");
+" teat" printf(" udder");
+other printf("udder");
+":^)" printf("Mooooooooo!");
+":-)" printf("Moomoomoomoo!");
+"8-)" printf("Mooo! Mooo!");
+
+[aeiou]"." { *(yytext+1) = 0;
+ printf("%s. Moo.",yytext);
+ }
+[rtpwy]"." { *(yytext+1) = 0;
+ printf("%s. Moo! Moo.",yytext);
+ }
+"?" printf("? Moo.");
+"!" printf("! MOO!");
+oo printf("MOO");
+o printf("oo");
+O printf("Moo");
+you printf("moo");
+" u" printf("moo");
+" U" printf("Moo");
+"uu" printf("MOOO");
+u printf("oo");
+U printf("Oo");
+
+"."\n printf(".\nMooooo. ");
+
+. printf("%s",yytext);
+
+%%
+
+main()
+{
+ yylex();
+}
+
--- /dev/null
+%{ -*- Mode:Fundamental -*-
+/*
+ * newspeak.l, version 1.1.
+ * Lex filter to transform plain English into NewSpeak.
+ * Copyright (c) 1991 Jamie Zawinski <jwz@lucid.com>.
+ * Permission granted for noncommercial use and redistribution.
+ *
+ * To compile:
+ *
+ * flex newspeak.l
+ * cc -O -o newspeak lex.yy.c
+ * rm lex.yy.c
+ *
+ * This must be compiled with "flex", not normal "lex". Lex has
+ * some builtin, unchangable limits which this program exceeds.
+ * This has been verified to work with flex version 2.3.7, and
+ * may not work with flex version 2.3.6.
+ *
+ * You can get 'flex' by anonymous FTP to prep.ai.mit.edu, or
+ * anywhere else you get GNU software.
+ *
+ * Run this like so: "newspeak < some-text-file | more"
+ *
+ * There are some design notes near the end. Suggestions and
+ * improvements to this code are more than welcome.
+ * Hail Big Brother!
+ *---------------------------------------------------------------------------
+ */
+#include <stdio.h>
+
+unsigned int fcounter = 0;
+
+#define Y0 yytext[0]
+#define Y1 yytext[1]
+#define Y2 yytext[2]
+#define Y3 yytext[3]
+#define C caseify
+#define C1 caseify1
+
+#define CAP(string) capstring(0, (string),0)
+#define WCAP(string) capstring(Y0,(string),1)
+
+#define COMP(string1,string2) compstring(0, (string1),(string2),0)
+#define WCOMP(string1,string2) compstring(Y0,(string1),(string2),1)
+
+#define DUMP() printf("%s",yytext)
+%}
+
+%e 8000
+%p 9000
+%n 2000
+%k 3000
+%a 5000
+%o 4000
+
+W (([ ]?\n[ ]*)|[ ]|[\"'`])
+ES [.,;:!?/]
+EW ({W}|{ES}|"'")
+
+YOUNG (([Yy]oung|[Ss]mall|[Ll]ittle){W})
+DEAD (([Dd]ead|[Dd]eceased){W})
+THE ([Tt]he{W}?)
+ANDOR ({W}(([Aa]nd)|([Oo]r)){W}?)
+COLOR (red|green|blue|yellow|cyan|magenta|purple|orange|mauve|pink|turquoise|brown|gr[ae]y)
+
+%%
+
+%{
+ /******************************
+ * PLUSwords *
+ ******************************/
+%}
+
+[Qq]uite{EW}/[A-Za-z][A-Za-z] CAP("plus");
+[Rr]ather{EW}/[A-Za-z][A-Za-z][A-Za-z] CAP("plus");
+[Kk]ind{EW}of{EW}/[A-Za-z][A-Za-z][A-Za-z] CAP("plus");
+[Kk]inda{EW}/[A-Za-z][A-Za-z][A-Za-z] CAP("plus");
+[Mm]ore{W}than{W}a{W}(little|bit){W} CAP("plus");
+[Pp]ro- CAP("plus");
+
+[Hh]undreds{W}of{W}[Tt]housands |
+[Hh]undreds{ANDOR}[Tt]housands |
+[Hh]undreds{W}if{W}not{W}[Tt]housands |
+[Tt]housands |
+[Mm]illions CAP("doubleplusmany");
+
+[Dd]ozens CAP("many");
+[Hh]undreds CAP("plusmany");
+
+([Bb]right|[Ll]ight|[Ii]ntense){W}/{COLOR} CAP("plus");
+([Dd]im|[Ff]aded|[Dd]ark|[Pp]ale){W}/{COLOR} CAP("plusun");
+([Dd]im|[Ff]aded|[Dd]ark|[Pp]ale) CAP("unlight");
+
+[Ee]very DUMP();
+[Vv]ery{W} |
+[Rr]eally{W} |
+[Tt]erribly{W} |
+[Aa]wesome({W})? |
+[Aa]wfully{W} CAP("doubleplus");
+
+[Ww]hopping{EW} CAP("plusbig");
+
+"O.K." |
+[Aa]ll({W})?[Rr]ight |
+[Oo][Kk][Aa][Yy] CAP("plusgood");
+{W}OK/{W} WCAP("plusgood");
+
+([Tt]oo|[Oo]verly|[Tt]hat){W}[Mm]uch CAP("plusmuch");
+
+{W}[Bb]ad/{EW} WCAP("ungood");
+{W}[Pp]oor/{EW} WCAP("ungood");
+{W}[Ll]ame/{EW} WCAP("ungood");
+{W}[Pp]itiful/{EW} WCAP("ungood");
+{W}[Nn]asty/{EW} WCAP("plusungood");
+{W}[Hh]orrid/{EW} WCAP("doubleplus ungood");
+{W}[Hh]orrible/{EW} WCAP("doubleplus ungood");
+{W}[Aa]wful/{W} WCAP("doubleplus ungood");
+{W}[Ee]vil/{W} WCAP("doubleplus ungood");
+
+%{
+ /******************************
+ * Titles *
+ ******************************/
+%}
+
+{W}[Ss]ir/{EW} WCAP("citizen");
+{W}[Mm]r"."/{EW} WCAP("brother");
+[Mm]ister/{EW} CAP("brother");
+[Mm]adame? CAP("sister");
+{W}[Mm]iss/{EW} WCAP("sister");
+[Mm]a"'"?am/{EW} CAP("sister");
+{W}[Mm]r?s"."/{EW} WCAP("sister");
+Mrs/{EW} CAP("sister");
+
+{YOUNG}?[Cc]hildren CAP("young citizens");
+{YOUNG}?[Bb]oys{ANDOR}[Gg]irl/s CAP("young citizens");
+{YOUNG}?([Kk]id|[Gg]irl|[Bb]oy|[Cc]hild)/{EW} CAP("young citizen");
+
+[Ff]ellow CAP("citizen");
+
+[Nn]on{W}?"-"?citizen CAP("unperson");
+[Nn]on{W}?"-"?member CAP("unperson");
+[Cc]riminal/s? CAP("unperson");
+{DEAD}(man|woman) CAP("unperson");
+{DEAD}(men|women) CAP("unpersons");
+
+[Ii]n{W}[Pp]erson DUMP();
+
+{W}[Uu]ser WCOMP("party ","worker");
+[Ss]tudent COMP("party ","worker");
+[Cc]itizen/s?{EW} COMP("party ","worker");
+[Pp]erson/s?{EW} COMP("party ","worker");
+[Pp]eople COMP("party ","workers");
+
+[Ss]enator |
+[Cc]ongressman |
+[Ss]upervisor |
+[Pp]rofessor printf("Inner Party Member");
+[Pp]rof"."/{EW} printf("Inner Party Member");
+[Pp]rof/{EW} printf("Inner Party Member");
+
+Representative/s? printf("Inner Party Member");
+representatives printf("Inner Party Members");
+
+[Ww]hite{W}[Cc]ollar |
+[Uu]pper{W}[Cc]lass COMP("inner ","party");
+[Mm]iddle{W}[Cc]lass CAP("party");
+[Bb]lue{W}[Cc]ollar |
+[Ww]orking{W}[Cc]lass |
+[Ll]ower{W}[Cc]lass CAP("prole");
+([Ff]ool|[Ii]diot)/s?{EW} CAP("prole");
+[Ss]tupidity CAP("proleness");
+
+%{
+ /******************************
+ * Organizations *
+ ******************************/
+%}
+
+[Aa]?{W}([Ww]hite{W}[Hh]ouse|[Gg]ovt\.?|[Gg]overnment){W}([Ss]ource|[Oo]fficial|[Ss]pokes(man|woman|person)) CAP("an Inner Party Member");
+{THE}?[Rr]epublican{W}[Pp]arty COMP("mini","luv");
+{THE}?[Dd]emocratic{W}[Pp]arty COMP("mini","plenty");
+
+{THE}?Congress printf("MiniPax");
+{THE}?[Ss]enate printf("MiniPax");
+{THE}?[Hh]ouse{W}[Oo]f{W}[Rr]epresentatives printf("MiniPax");
+{THE}?[Ss]tate{W}[Dd]epartment printf("MiniPax");
+{THE}?[Ss]tate{W}[Dd]ept"."? printf("MiniPax");
+{THE}?[Dd]efen[cs]e{W}[Dd]epartment |
+{THE}?[Dd]efen[cs]e{W}[Dd]ept"."? |
+{THE}?[Ww]ar{W}[Dd]epartment |
+{THE}?[Ww]ar{W}[Dd]ept"."? |
+{THE}?[Hh]ouse{W}of{W}[Cc]ommons |
+{THE}?Pentagon |
+{THE}?[Ff]eds |
+{THE}?FCC |
+{THE}?D[Oo]D |
+{THE}"D."[Oo]".D." |
+{THE}?[Ss]ecret{W}[Ss]ervice COMP("mini","luv");
+{THE}?White{W}House |
+{THE}?Kremlin printf("MiniTrue");
+{THE}?(CIA|NSA|FBI|MI"-"?5)/{EW} printf("MiniTrue");
+{THE}?("C.I.A."|"N.S.A."|"F.B.I.")/{EW} printf("MiniTrue");
+{THE}?[Aa]rchive/s? COMP("mini","rec");
+{THE}?[Ll]ibrary COMP("mini","rec");
+{THE}?[Ll]ibraries COMP("mini","recs");
+
+[Tt]hought{W}[Pp]olice|[Nn]azis? COMP("think","pol");
+[Vv]ice{W}[Ss]quad COMP("sex","pol");
+PMRC|"P.M.R.C." COMP("sex","pol");
+
+[Oo]fficer CAP("minister");
+
+{THE}?[Dd]epartment{EW}of{EW}. |
+{THE}?[Dd]ept"."?{EW}of{EW}. |
+{THE}?[Uu]niversity{EW}of{EW}. |
+{THE}?[Uu]niv"."?{EW}of{EW}. |
+{THE}?[Dd]ept"."?{EW}of{EW}. |
+{THE}?([Ss]ub"-"?)?[Cc]omm?itt?ee{EW}(of|on){EW}. |
+{THE}?[Ss]chool{EW}of{EW}. {
+ if ((yytext[yyleng-1] >= 'A') && (yytext[yyleng-1] <= 'Z'))
+ /* "the school of Law" --> "MiniLaw" */
+ printf("Mini%c",yytext[yyleng-1]);
+ else if ((yytext[yyleng-1] >= 'a') && (yytext[yyleng-1] <= 'z'))
+ /* "the school of law" --> "MiniLaw" (not "Minilaw") */
+ printf("Mini%c",yytext[yyleng-1] - ('a' - 'A'));
+ /* "the school of 5 things" --> "Ministry of 5 things" */
+ else printf("Ministry of %c",yytext[yyleng-1]);
+ }
+
+[Dd]epartment |
+[Uu]niversity CAP("ministry");
+[Uu]niv"."?/{W} CAP("ministry");
+[Dd]ept"."?/{W} CAP("ministry");
+([Ss]ub"-"?)?[Cc]omm?itt?ee CAP("ministry");
+
+{THE}[Pp]roject/{EW} CAP("the Three Year Plan");
+[Oo]ur{W}[Pp]roject/{EW} CAP("our Three Year Plan");
+[Bb]udget printf("Three Year Plan");
+[Pp]roject/{ES} printf("Three Year Plan");
+
+{W}({THE}|([aa]{W}))[Pp]roject printf("%cthe Three Year Plan",Y0);
+
+[A-Za-z]+"'"[Ss]/{W}(law|Law|LAW|book|Book|BOOK|rule|Rule|RULE){EW} printf("Goldstein's");
+
+%{
+ /******************************
+ * Actions *
+ ******************************/
+%}
+
+[Ii]n{W}love{EW} CAP("SexCriming");
+[Ll]ove{W}you/{EW} CAP("love Big Brother");
+[Ll]ove{W}me/{EW} CAP("love Big Brother");
+
+[Cc]loning |
+[Rr]eproduction |
+[Cc]elibacy |
+[Pp]rocreation COMP("good","sex");
+
+[Cc]elibate |
+[Pp]rocreate COMP("good","sexwise");
+
+[Tt]elevisions? |
+TVs? |
+[Tt]"."[Vv]"."s? |
+[Rr]adios? |
+[Nn]ews{W}?[Pp]apers? |
+[Jj]ournalism |
+[Mm]ovies? |
+[Rr]ock{EW}?"-"?(and|"&"|"'"?n"'"?){EW}?"-"?[Rr]oll({W}[Mm]usic)? |
+(([Rr]ock|[Cc]lassical|[Ii]ndustrial|[Pp]op|[Dd]ance|[Rr]ap){W})?[Mm]usic |
+[Tt]unes |
+[Mm]oney |
+[Cc]ash |
+[Cc]omic{W}[Bb]ooks? |
+([Ss]tar{W}?)?[Tt]rek COMP("prole","feed");
+
+[Pp]eace{W}[Mm]ovement |
+[Pp]eace{W}[Pp]rotest |
+[Aa]nti{EW}[Ww]ar |
+([Pp]assive{W})?[Rr]esistance |
+[Cc]reativity |
+[Tt]reason |
+[Rr]esearch COMP("crime","think");
+%{
+ /******************************
+ * Religion *
+ ******************************/
+%}
+
+[Jj]esus{W}[Cc]hrist |
+[Jj]esus |
+{THE}?[Bb]uddh?a |
+[Mm]ohamm?ed |
+[Mm]artin{W}[Ll]uther{W}[Kk]ing |
+J\.?\ ?R\.?\ \"?Bob\"?\ Dobbs printf("doubleplus crimethinker");
+
+([Jj]esse{W})?[Hh]elms |
+([RrDd]on(ald)?{W})?[Rr]ea?gan |
+[Gg]eorge{W}[Gg]uscoria printf("doubleplus goodthinker");
+
+[Jj]ewish COMP("crime","thinkwise");
+[Jj]ew |
+[Cc]hristian |
+[Mm]oslem |
+[Bb]uddhist |
+[Aa]thiest |
+[Aa]gnostic COMP("crime","thinker");
+
+[Ff]aith COMP("belly","feel");
+
+%{
+ /******************************
+ * Places *
+ ******************************/
+%}
+
+[Ee]ngland|{THE}?[Uu]nited{W}[Kk]ingdom |
+({THE}?[Uu]nited{W}[Ss]tates{W}[Oo]f{W})?[Aa]merica |
+{THE}?[Uu]nited{W}[Ss]tates|USA|"U.S.A."|[Cc]anada |
+[Gg]ermany|[Ii]srael|[Ee]urope printf("Oceana");
+
+Iranian|Iraqu?i|Libyan|Russian|African|Egyptian printf("Eurasian");
+Iran|Iraq|Libya|Russia|Africa|Egypt |
+([Ss]audi{W})?Arabia|{THE}?Soviet{W}Union printf("Eurasia");
+[Ss]oviet printf("Eurasian");
+
+[Cc]hinese|[Jj]apanese|[Tt]aiwanese |
+[Pp]hillipino|[Ii]ndian|[Aa]ustralian|[Mm]exican |
+[Nn]icaraguan|[Ss]alvadori?an printf("Eastasian");
+China|[Jj]apan|[Tt]aiwan|{THE}?[Pp]hillipines|[Ii]ndia |
+[Aa]ustralia|[Mm]exico|[Nn]icaragua|[Ee]l{W}[Ss]alvador printf("Eastasia");
+
+[Kk]uwaiti printf("Eurasian");
+[Kk]uwait printf("The Malabar Front");
+
+%{
+ /******************************
+ * Miscelaneous Translations *
+ ******************************/
+%}
+
+{W}[Ff]aster WCAP("plus speedful");
+{W}[Ss]lower WCAP("plus unspeedful");
+{W}[Ff]ast WCAP("speedful");
+{W}[Ss]low WCAP("unspeedful");
+
+[Mm]odern CAP("plusnew");
+[Aa]ncient CAP("plusunnew");
+{W}old/{W} WCAP("plusunnew");
+
+[Hh]appiness CAP("joyfulness");
+[Hh]appy CAP("joyful");
+[Qq]uick CAP("speedful");
+{W}[Ss]peedy WCAP("speedful");
+[Hh]eavy CAP("weightful");
+[Hh]eavill?y CAP("weightfully");
+[Ss]ick(ly)? CAP("unhealthful");
+
+[Gg]ross |
+[Ss]ickening |
+[Ff]oul |
+[Pp]utrid |
+[Dd]isgusting COMP("crime","thinkful");
+
+[Ss]mash |
+[Cc]rush |
+[Oo]bliterate |
+[Aa]nnihilate |
+[Nn]eutralize |
+[Dd]emolish |
+[Dd]estroy CAP("unbuild");
+
+[Ii]nanimate CAP("unlifeful");
+[Ss]ociety|[Cc]ulture printf("IngSoc");
+[A-Za-z]+isi?m/{EW} printf("Goldsteinism");
+[A-Za-z]+ist/{EW} printf("Goldsteinist");
+
+{W}[Dd]ead WCAP("unlifeful");
+{W}[Dd]eath WCAP("unlife");
+{W}[Ll]ie WCAP("untruth");
+{W}[Ff]alsehood WCAP("untruth");
+{W}[Mm]istake/{EW} WCAP("untruth");
+{W}[Ww]hisper WCAP("unshout");
+{W}[Pp]roud WCAP("prideful");
+
+[Ff]alse CAP("untrue");
+[Dd]ark CAP("unlight");
+[Bb]lack CAP("unwhite");
+[Ff]orbidden CAP("unallowed");
+[Ff]orbid CAP("unallow");
+[Ff]ailure CAP("unsuccess");
+[Ff]ail/{EW} CAP("unwin");
+
+[Ss]tatistics?/{EW} CAP("propaganda");
+{W}[Aa]n{W}[Aa]nn?ouncement WCAP("a NewsFlash");
+[Aa]nn?ouncement printf("NewsFlash");
+[Ii]nstructions? printf("B. B. DayOrder");
+
+[Aa]lmost|[Nn]early CAP("within measurable distance of");
+[Ff]unny CAP("humorful");
+
+[Dd]oom CAP("unsave");
+[Cc]haos CAP("unorder");
+[Cc]haotic CAP("unorderful");
+[Ee]nslaved CAP("protected");
+[Ee]nslave CAP("protect");
+[Dd]angerous CAP("unsafewise");
+[Dd]anger CAP("unsafe");
+([Bb]lind{W})?[Oo]bedience COMP("ing","soc");
+\"?[Nn]ew{W}[Ww]orld{W}[Oo]rder\"? printf("IngSoc");
+
+[Pp]rivacy |
+[Ii]ndividuality COMP("own","life");
+
+IMHO printf("for the love of Big Brother");
+
+[Ee]motion(al|s)? |
+[Cc]onviction |
+[Bb]elie(f|ve) |
+[Aa]ccept(ance)? COMP("belly","feel");
+
+[Dd]emocracy |
+[Ll]iberty |
+[Ff]reedom |
+[Jj]ustice |
+{THE}?[Aa]merican{W}[Ww]ay |
+[Ss]ubversion |
+[Pp]assion COMP("crime","think");
+
+[Oo]bscenity |
+[Pp]ornography |
+[Oo]rgasm |
+[Ee]rotica COMP("sex","crime");
+[Ss]exy |
+[Oo]bscene |
+[Pp]ornographic |
+[Ee]rotic COMP("sex","crimeful");
+
+[Cc]ritic/s?{W} COMP("crime","thinker");
+
+[Ii]nfant{W}[Mm]ortality COMP("inf","mort");
+
+[Ff]amilies |
+[Pp]arents COMP("family ","units");
+[Mm]other{ANDOR}[Ff]ather |
+[Bb]rother{ANDOR}[Ss]ister COMP("family ","unit");
+{W}[Pp]arent/s?{EW} WCOMP("family ","unit");
+[Ff]amily COMP("family ","unit");
+
+God/{EW} printf("Big Brother");
+[Pp]res(ident|".")({W}([Bb]ush|[Rr]eagan))? printf("Big Brother");
+[Pp]rime{W}[Mm]inister printf("Big Brother");
+
+([Gg][Nn][Uu]{W}([Ee]macs|EMACS){W})?[Gg]eneral{W}[Pp]ublic{W}[Ll]icense printf("NewSpeak Dictionary");
+
+(questioning|murder|ass?ass?ination)/{ES} printf("interrogation");
+
+[Ss]keptic/{EW} CAP("unperson");
+[Ss]illy CAP("foolhardy");
+{W}[A-Za-z][A-Za-z]?illy DUMP();
+[Ss]outhern|[Ss]outherly CAP("southwise");
+[Nn]orthern|[Nn]ortherly CAP("northwise");
+[Ee]astern|[Ee]easterly CAP("eastwise");
+[Ww]estern|[Ww]esterly CAP("westwise");
+[Pl]leasant CAP("goodwise");
+[Vv]iolent CAP("unpeacewise");
+[Vv]iolence CAP("unpeaceness");
+[Ii]ndifference CAP("uncarefulness");
+[Ii]ndifferent CAP("uncareful");
+[Bb]elly CAP("abdomen");
+[Cc]omic CAP("humorwise");
+{W}[Uu]nless WCAP("lest");
+usually printf("usualwise");
+
+[Gg]uerillas COMP("party ","workers");
+
+[Ww]ar/{EW} CAP("engagement");
+[Dd]efen[cs]e/{EW} CAP("peace");
+[Ii]nvasion CAP("liberation");
+
+%{
+ /******************************
+ * Syllable Rewriting *
+ ******************************
+ isn't ___ is un___
+ not the ___ the un___
+ not my ___ my un___
+ anti___ un___ (etc...)
+ ___cally ___wise
+ ___ally ___wise
+ ___lly ___wise
+ ___ly ___wise
+ ___aic ___wise
+ ___lic ___wise
+ ___nnic ___wise
+ <VOWEL>tric ___wise
+ ___ic ___wise
+ <VOWEL>ous ___ful
+ <CONSONANT>ous ___eful
+ ___less un___ful
+
+ */
+%}
+
+[Ii]sn"'"t{W}my{W} CAP("is my un");
+[Ii]s{W}not{W}my{W} CAP("is my un");
+[Ii]sn"'"t{W}[Tt]he{W} CAP("is the un");
+[Ii]s{W}not{W}[Tt]he{W} CAP("is the un");
+[Ii]sn"'"t{W}[Ii]n{W}[Tt]he{W} CAP("is in the un");
+[Ii]s{W}not{W}[Ii]n{W}[Tt]he{W} CAP("is in the un");
+[Ii]t"'"?s{W}not{W}[Tt]he{W} CAP("it's the un");
+[Ii]sn"'"t{W} CAP("is un");
+[Ii]s{W}not{W} CAP("is un");
+[Nn]ot{W}[Tt]he{W} CAP("the un");
+[Nn]ot{W}[Mm]y{W} CAP("my un");
+[Nn]ot{W}[Aa]{W} CAP("an un");
+[Nn]ot{W}have{W} CAP("has un");
+[Nn]ot{W}be{W} CAP("be un");
+[Nn]ot{W}[Oo]nly/{W} CAP("unonly"); /* avoid "unonwise" */
+
+[Aa]{W}[Nn]ot{W} |
+[Aa]{W}[Nn]on"-"? printf("%cn%cun",Y0,Y1); /* "a non_" -> "an un_" */
+
+%{
+/* {W}[Nn]ot{W} | */
+%}
+{W}[Ii]l"-"?/[a-z][a-z] WCAP("un");
+{W}[Aa]nti"-"? |
+{W}[Nn]on"-"? WCAP("un");
+
+robably|ventually|[Oo]bvious|[Bb]asic|{W}[Oo]nly|otally |
+[Aa]rctic|holic|{EW}ally|{EW}[Aa]pply|{W}[Tt]opic DUMP();
+
+{W}([Tt]raf|[Pp]aci|[Ss]peci)fi/c{W} DUMP();
+{W}(ma|tra)gi/c{W} DUMP();
+{W}(pub|cyc|re|fro|gar)li/c{W} DUMP();
+{W}(eth|cli|to)ni/c{W} DUMP();
+{W}(E|cle|met|cit)ri/c{W} DUMP();
+{W}(ch|ep|tr?op|t|mus|stat|att)i/c{W} DUMP();
+{W}only/{W} DUMP();
+{W}[Aa]tlantic DUMP();
+
+[ \t\n][drstwDRSTW]ally printf("%c%cally", Y0, Y1);
+
+[a-z]ically/{W} printf("%cwise", Y0);
+[a-z]ally/{W} printf("%cwise", Y0);
+[a-z][a-z]lly/{W} printf("%c%cwise", Y0,Y1);
+[a-z][a-z][a-z]ly/{W} printf("%c%c%cwise", Y0,Y1,Y2);
+[a-z]ical/{W} printf("%cwise", Y0);
+
+[a-km-qs-z]aic/{EW} printf("%cwise", Y0); /* not laic, raic */
+[a-z]lic/{EW} printf("%clwise", Y0);
+[a-z]nnic/{EW} printf("%cnwise", Y0);
+[a-z][aeiou]tric/{EW} printf("%c%ctwise", Y0, Y1);
+[a-z]tric/{EW} printf("%cwise", Y0);
+[a-z]ic/{EW} printf("%cwise", Y0);
+[a-z]lly/{EW} printf("%cwise", Y0);
+[a-z]ly/{EW} printf("%cwise", Y0);
+
+[aeiouy][^aeiouy]ous/{EW} printf("%c%cful",Y0,Y1);
+[^aeiouy]ous/{EW} printf("%ceful",Y0);
+[^e]ous/{EW} printf("%cful",Y0);
+
+[A-Za-z]+less/{EW} { yytext[yyleng-4] = '\0';
+ if (((yytext[1] < 'A') || (yytext[1] > 'Z')) &&
+ (yytext[0] >= 'A') && (yytext[0] <= 'Z'))
+ yytext[0] = yytext[0] - ('a' - 'A');
+ printf("%cn%sful",C('u'), yytext);
+ }
+
+". " { printf("%s",yytext);
+ fcounter &= 15;
+ if (14 == fcounter++) printf("(fnord) ");
+ }
+
+[.,!?]\"([^\n\".!]+[.!])?\n/[\n\t ] printf("%c Hail Big Brother!\"%s",Y0,yytext+1);
+\"([.,!?][^\n\".!]+[.!])?\n/[\n\t ] printf("%c Hail Big Brother!\"%s",Y1,yytext+2);
+
+. printf(yytext);
+\n printf("\n");
+
+%{
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Brief description of Orwell's NewSpeak:
+ * ---------------------------------------
+ * Each word was made to serve as noun, verb, adjective and adverb. In
+ * particular, nouns and verbs were made exactly the same -- hence "think"
+ * replaced "thought" as a noun (viz. "crimethink" = thought crime, "thinkpol"
+ * = thought police). Adjectives were formed by adding "-ful" to a noun/verb;
+ * adverbs were formed by adding "-wise." Hence "speedful" = fast,
+ * "speedwise" = quickly, "unspeedwise" = slowly.
+ *
+ * The decision on which word should be negated was made fairly randomly;
+ * "dark" could be "unlight," or "light" could be "undark". But in all cases
+ * the most important objective (aside from ideological restriction) was
+ * euphony; the words had to be easily pronounceable.
+ *
+ * Most verb inflections were made regular; "he thinked," "he goed," "he
+ * eated"; only the auxiliaries and modals (to be, to have, may, shall, will,
+ * etc.) were allowed to inflect irregularly. Plurals were also regularized:
+ * "mans," "oxes," "childs." [This isn't implemented here.]
+ *
+ * There were three sets of words. The A vocabulary was for everyday use:
+ * car, man, red, good, etc. It was restricted to fairly simple words.
+ *
+ * The B vocabulary consisted of political/ideological words with very
+ * complicated connotations. All of the B words were compound words --
+ * bellyfeel (blind emotional acceptance of the ideology), oldthink (the way
+ * of thought before the Revolution), crimethink, Ingsoc, goodsex (intercourse
+ * solely for the purpose of making babies and with no physical enjoyment on
+ * the part of the female), sexcrime (any kind of sex but goodsex, including
+ * sex for its own sake), goodthink (thinking in accordance with Ingsoc), and
+ * so on. These words were also subject to the modifications mentioned
+ * above--hence "goodthinker," "goodthinkful," "goodthinkwise."
+ *
+ * The C vocabulary consisted of scientific and technical words (though there
+ * was no longer any word for "science," any connotation it might have being
+ * subsumed into "Ingsoc").
+ *
+ * Implementing a translator for all of this would be really complicated --
+ * I'd need rather extensive lists of the "irregular" words (so they could be
+ * regularized), as well as lists of politically meaningful words (so they
+ * could be excised or translated into either "goodthink" or "crimethink," as
+ * appropriate). Any kind of sexual topic should become "sexcrime" (it being
+ * unlikely that any talk of sex these days would fit into "goodsex").
+ *
+ * Basically, the reason it's hard is that NewSpeak was intended to *decrease*
+ * the vocabulary, and subsume complicated ideas into politically correct
+ * words so that you wouldn't have to understand the ideas anymore; you'd just
+ * have to emit the right words. So to properly "translate" anything into
+ * NewSpeak, you have to cut the vocabulary way down.
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ */
+%}
+
+%%
+main()
+{
+ yylex();
+ printf("\nHail Big Brother!\n");
+}
+
+
+capstring(firstchar,string,i)
+ char firstchar, *string;
+ int i;
+{
+ if (firstchar != 0) putchar(firstchar);
+ putchar( (yytext[i] <= 'Z') ? (string[0] - ' ') : string[0]);
+ printf("%s",string+1);
+}
+
+compstring(firstchar,string1,string2,i)
+ char firstchar, *string1, *string2;
+ int i;
+{
+ capstring(firstchar,string1,i);
+ capstring(0,string2,i);
+}
+
+_caseify(c,i)
+ char c;
+ int i;
+{
+ if (yytext[i] <= 'Z') return (c - ' ');
+ else return (c);
+}
+
+caseify(c)
+ char c;
+{ _caseify(c,0); }
+
+caseify1(c)
+ char c;
+{ _caseify(c,1); }
--- /dev/null
+%{
+/*
+ * Lex filter to transform plain English into Brooklyn English.
+ * No racial or societal slurs are intended. For amusement only.
+ *
+ * Copyright 1986 by Daniel Klein.
+ *
+ * Reproduction permitted so long as this notice is retained.
+ */
+%}
+BW [ \t]
+SP [ \t]
+EW [ \t.,;!\?$]
+%%
+".so ".*$ printf("%s", yytext);
+[ao]ther printf("%cdder", yytext[0]=='a'?'a':'u');
+[Nn]othing printf("%cuttin'", yytext[0]);
+[Tt]hin printf("%cin", yytext[0]);
+[Tt]hir printf("%coi", yytext[0]);
+[Tt]h[ei] printf("%c%c", caseify('d'), yytext[yyleng-1]);
+[Tt]hat printf("%cat", caseify('d'));
+I'm{SP}going{SP}to printf("I'manna");
+going{SP}to printf("gonna");
+want{SP}to printf("wanna");
+t{SP}you printf("tcha");
+[Dd]id{SP}you{SP}[eaiou] printf("%c'j%c", yytext[0], yytext[yyleng-1]);
+[Dd]id{SP}you printf("%c'ja", yytext[0]);
+[Yy]ou printf("%cuh", yytext[0]);
+[Hh]ow{SP}are{SP}you printf("%cowahrya", yytext[0]);
+[Ww]ith printf("%cit'", yytext[0]);
+[Dd]on't printf("%coan", yytext[0]);
+ldn't |
+dn't printf("n't");
+isn't printf("ain't");
+er{EW} { printf("uh"); plastc(); }
+ing{EW} { printf("in'"); plastc(); }
+[Ww]ord |
+[Hh]eard |
+[BbGgLlPpSs]urg |
+[CcHh][eu]r[ntv] printf("%coi%c", yytext[0], yytext[yyleng-1]);
+[^Mm]mer[^aeiouhrs] printf("%cmoi%c", yytext[0], yytext[yyleng-1]);
+[Oo]re{EW} { printf("%cwh", caseify('a')); plastc(); }
+[Oo]r printf("%cwh", caseify('a'));
+[Oo]f printf("%chv", caseify('u'));
+tion printf("shun");
+alk |
+our[st] |
+or[st] printf("awh%c", yytext[yyleng-1]);
+ause printf("awze");
+[Oo]ff printf("%cwhf", caseify('a'));
+[Ss]tupid printf("%ctoopid", yytext[0]);
+{BW}under printf(" unner");
+{BW}to{EW} { printf(" tuh"); plastc(); }
+[Aa]ctual printf("%cckshul", yytext[0]);
+negro printf("spade");
+[Pp]uerto{SP}[Rr]ican printf("%cpic", caseify('s'));
+[Ii]talian printf("%creaser", caseify('g'));
+[Jj]ewish printf("%cew boy", yytext[0]);
+[Jj]ew printf("%cebe", caseify('h'));
+[a-z]":" { *(yytext+1) = ',';
+ printf("%s like, uhh:",yytext);
+ }
+[a-z]"?" { *(yytext+1) = ',';
+ printf("%s or what?",yytext);
+ }
+! printf("! Okay?");
+[a-z]"." { printf("%s", yytext);expletive();}
+%%
+plastc()
+{
+ unput(yytext[yyleng-1]);
+}
+
+caseify(c)
+char c;
+{
+ if (yytext[0] <= 'Z')
+ return (c - ' ');
+ else
+ return (c);
+}
+
+short count = 0;
+short which = 0;
+
+expletive()
+{
+ if (count++ % 4 == 0) {
+ switch (which++ % 5) {
+ case 0: printf(" Okay?"); break;
+ case 1: printf(" Right?"); break;
+ case 2: printf(" Yuh got me so fahr?"); break;
+ case 3: printf(" Ya' dig?"); break;
+ case 4: printf(" Yuh with me?"); break;
+ }
+ }
+}
--- /dev/null
+#!/usr/bin/perl -pl-
+$_=reverse lc$_;s@"@''@g;y/[]{A-R}<>()a-y1-9,!.?`'/][} Joey Hess
+{><)(eq)paj6y!fk7wuodbjsfn^mxhl5Eh29L86`i'%,/;s@k@>|@g# joey@kitenet.net
--- /dev/null
+
+T [" .!?,"]*
+
+%%
+
+" bad" printf(" mean");
+" big" printf(" bitchin'est");
+" body" printf(" bod");
+" bore" printf(" drag");
+" car " printf(" rod ");
+" dirty" printf(" grodie");
+" filthy" printf(" grodie to thuh max");
+" food" printf(" munchies");
+" girl" printf(" chick");
+" good" printf(" bitchin'");
+" great" printf(" awesum");
+" gross" printf(" grodie");
+" guy" printf(" dude");
+" her " printf(" that chick ");
+" her." printf(" that chick.");
+" him " printf(" that dude ");
+" him." printf(" that dude.");
+" can be " |
+" can't be " |
+" should have been " |
+" shouldn't have been " |
+" should be " |
+" shouldn't be " |
+" was " |
+" wasn't " |
+" will be " |
+" won't be " |
+" is " {
+ ECHO;
+ switch(rand() % 6)
+ {
+ case 0:
+ printf("like, ya know, "); break;
+ case 1:
+ printf(""); break;
+ case 2:
+ printf("like wow! "); break;
+ case 3:
+ printf("ya know, like, "); break;
+ case 4:
+ printf(""); break;
+ case 5:
+ printf(""); break;
+ }
+ }
+" house" printf(" pad");
+" interesting" printf(" cool");
+" large" printf(" awesum");
+" leave" printf(" blow");
+" man " printf(" nerd ");
+" maybe " {
+ switch(rand() % 6)
+ {
+ case 0:
+ printf(" if you're a Pisces "); break;
+ case 1:
+ printf(" if the moon is full "); break;
+ case 2:
+ printf(" if the vibes are right "); break;
+ case 3:
+ printf(" when you get the feeling "); break;
+ case 4:
+ printf(" maybe "); break;
+ case 5:
+ printf(" maybe "); break;
+ }
+ }
+" meeting" printf(" party");
+" movie" printf(" flick");
+" music " printf(" tunes ");
+" neat" printf(" keen");
+" nice" printf(" class");
+" no way" printf(" just no way");
+" people" printf(" guys");
+" really" printf(" totally");
+" strange" printf(" freaky");
+" the " printf(" thuh ");
+" very" printf(" super");
+" want" printf(" want");
+" weird" printf(" far out");
+" yes" printf(" fer shure");
+"But " printf("Man, ");
+"He " printf("That dude ");
+"I like" printf("I can dig");
+"No," printf("Like, no way,");
+Sir printf("Man");
+"She " printf("That fox ");
+This printf("Like, ya know, this");
+There printf("Like, there");
+"We " printf("Us guys ");
+"Yes," printf("Like,");
+", " {
+ switch(rand() % 6)
+ {
+ case 0:
+ printf(", like, "); break;
+ case 1:
+ printf(", fer shure, "); break;
+ case 2:
+ printf(", like, wow, "); break;
+ case 3:
+ printf(", oh, baby, "); break;
+ case 4:
+ printf(", man, "); break;
+ case 5:
+ printf(", mostly, "); break;
+ }
+ }
+! {
+ switch(rand() % 3)
+ {
+ case 0:
+ printf("! Gag me with a SPOOOOON!"); break;
+ case 1:
+ printf("! Gag me with a pitchfork!"); break;
+ case 2:
+ printf("! Oh, wow!");
+ }
+ }
+
+ing printf("in'");
+. ECHO;
+%%
+
+main()
+{
+ srand(getpid());
+ yylex();
+}