%{
/*
* 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");
W[aA][pP] printf("Pony and trap");
" wap" 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("%s", yytext);
\n printf("\n");
%%