]> iEval git - filters.git/blobdiff - ken.l
* ken is now free.
[filters.git] / ken.l
diff --git a/ken.l b/ken.l
new file mode 100644 (file)
index 0000000..942564b
--- /dev/null
+++ b/ken.l
@@ -0,0 +1,293 @@
+%{
+/*
+ * 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.
+ * 
+ * Contacted author in June 2001, asked him to clarify the license, he replied
+ * with some improvements and placed the program in the public domain.
+ *         -- Edward Betts <edward@debian.org> Mon, 11 Jun 2001 12:04:29 +0100
+ * 
+ * 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");
+[Jj]ava                printf("Wot a palavah");
+[Ww][Aa][Pp]   printf("Pony and trap");
+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");
+" "[BbKkMmPpRrSsWw]ing ECHO;
+" "[Bb]ring    ECHO;
+" "[Ss]ting    ECHO;
+" "[Ss]wing    ECHO;
+" "[CcFfSs]ling        ECHO;
+" Thing"       printf(" Fing");
+" thing"       printf(" fing");
+
+"ing "         printf("in' ");
+". "           {   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();
+}
This page took 0.030479 seconds and 4 git commands to generate.