X-Git-Url: http://git.ieval.ro/?p=filters.git;a=blobdiff_plain;f=cockney.l;fp=cockney.l;h=0000000000000000000000000000000000000000;hp=e6c0bdae91e4d1a25cdf7b96c064453dab24ce77;hb=2ad76bd43ca4c4bd1ca7dfc5f5e984b7341df7ad;hpb=7e3afbbacdd24f8c3fb87599eeda32b977fe6d6c diff --git a/cockney.l b/cockney.l deleted file mode 100644 index e6c0bda..0000000 --- a/cockney.l +++ /dev/null @@ -1,190 +0,0 @@ -%{ -/* - * 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 - -%% -. { 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 -*/ -}