73fc7494 |
1 | %{ |
2 | /* |
3 | * ken: |
4 | * will turn English into Cockney, featuring (dubious) rhyming slang for a lot |
5 | * of computer terminology. |
6 | * |
7 | * Written by Stephen K Mulrine <smulrine%cs.strath.ac.uk@nsfnet-relay.ac.uk> |
8 | * Make copies if you want etc.etc. |
9 | * |
10 | * Contacted author in June 2001, asked him to clarify the license, he replied |
11 | * with some improvements and placed the program in the public domain. |
12 | * -- Edward Betts <edward@debian.org> Mon, 11 Jun 2001 12:04:29 +0100 |
13 | * |
14 | * ken is named after Ken the Chirpy Cockney Character from the Viz Comic (tm), |
15 | * who speaks somewhat like that. |
16 | */ |
17 | %} |
18 | %e 3000 |
19 | %p 6000 |
20 | %n 1000 |
21 | %k 500 |
22 | %a 4000 |
23 | %o 2000 |
24 | BW [ ] |
25 | EW [ .,;!?] |
26 | %{ |
27 | char buf[128]; |
28 | %} |
29 | |
30 | %% |
31 | |
32 | stairs printf("apples and pears"); |
33 | Downstairs printf("Down the apples and pears"); |
34 | downstairs printf("down the apples and pears"); |
35 | Upstairs printf("Up the apples and pears"); |
36 | upstairs printf("up the apples and pears"); |
37 | [Mm]outh printf("North and South"); |
38 | [Ff]ace printf("Boat Race"); |
39 | [Tt]rouble printf("Barney Rubble"); |
40 | wife { switch(rand()%2) |
41 | { |
42 | case 0: printf("trouble and strife"); break; |
43 | case 1: printf("ole lady"); break; |
44 | } |
45 | } |
46 | Road printf("Frog and Toad"); |
47 | " road" printf(" frog and toad"); |
48 | "pub " printf("rub-a-dub "); |
49 | " bar " printf(" boozer "); |
50 | " husband" printf(" ole man"); |
51 | Party printf("Knees-up"); |
52 | party printf("knees-up"); |
53 | Parties printf("Knees-ups"); |
54 | parties printf("knees-ups"); |
55 | My printf("Me"); |
56 | " my" printf(" me"); |
57 | Your printf("Yer"); |
58 | your printf("yer"); |
59 | "You are " printf("Yer "); |
60 | "you are " printf("yer "); |
61 | You printf("Yer"); |
62 | you printf("yer"); |
63 | Those printf("Them"); |
64 | those printf("them"); |
65 | " those" printf(" them"); |
66 | "(those" printf("(them"); |
67 | "The " { switch(rand()%5) |
68 | { |
69 | case 0: printf("The bleedin' "); break; |
70 | default: ECHO; break; |
71 | } |
72 | } |
73 | "The" ECHO; |
74 | " the " { switch(rand()%5) |
75 | { |
76 | case 0: printf(" the bleedin' "); break; |
77 | default: ECHO; break; |
78 | } |
79 | } |
80 | [" "(]the ECHO; |
81 | "the " { switch(rand()%5) |
82 | { |
83 | case 0: printf(" the bleedin' "); break; |
84 | default: ECHO; break; |
85 | } |
86 | } |
87 | [Tt]his ECHO; |
88 | [" "(]this ECHO; |
89 | [Tt]hat ECHO; |
90 | [" "(]that ECHO; |
91 | Thus printf("So"); |
92 | " thus" printf(" so"); |
93 | "(thus" printf("(so"); |
94 | "thus" printf("so"); |
95 | [Tt]han ECHO; |
96 | [" "(]than ECHO; |
97 | Who ECHO; |
98 | who ECHO; |
99 | " old " printf(" ole "); |
100 | " to " printf(" ter "); |
101 | "Aren't you " printf("Aintcha "); |
102 | "aren't you " printf("aintcha "); |
103 | "Aren't" printf("Ain't"); |
104 | "aren't" printf("ain't"); |
105 | "Isn't" printf("Ain't"); |
106 | "isn't" printf("ain't"); |
107 | "Are not " printf("Ain't"); |
108 | "are not " printf("ain't "); |
109 | "Is not " printf("Ain't "); |
110 | " is not " printf(" ain't "); |
111 | "What is th" printf("Woss"); |
112 | "what is th" printf("woss"); |
113 | "What are you " printf("Wotcher "); |
114 | "what are you " printf("wotcher "); |
115 | "What you are" printf("Wotcher"); |
116 | "what you are" printf("wotcher"); |
117 | "What you're" printf("Wotcher"); |
118 | "what you're" printf("wotcher"); |
119 | "What are your" printf("Wotcher"); |
120 | "what are your" printf("wotcher"); |
121 | "What do you " printf("Wotcher "); |
122 | "what do you " printf("wotcher "); |
123 | "What do your" printf("Wotcher"); |
124 | "what do your" printf("wotcher"); |
125 | " "H[aeu]llo printf(" Wotcher"); |
126 | " "h[aeu]llo printf(" wotcher"); |
127 | What printf("Wot"); |
128 | what printf("wot"); |
129 | Were printf("Was"); |
130 | were printf("was"); |
131 | Bother printf("Ars"); |
132 | bother printf("ars"); |
133 | Mother printf("Muvver"); |
134 | Other printf("Uvver"); |
135 | other printf("uvver"); |
136 | Father printf("Favver"); |
137 | father printf("favver"); |
138 | Rather printf("Ravver"); |
139 | rather printf("ravver"); |
140 | Weather printf("Wevver"); |
141 | weather printf("wevver"); |
142 | Leather printf("Levver"); |
143 | leather printf("levver"); |
144 | Wither printf("Wivver"); |
145 | wither printf("wivver"); |
146 | Either printf("Eever"); |
147 | either printf("eever"); |
148 | With printf("Wiv"); |
149 | with printf("wiv"); |
150 | Anything printf("Anyfink"); |
151 | anything printf("anyfink"); |
152 | Something printf("Sumfink"); |
153 | something printf("sumfink"); |
154 | Nothing printf("Nuffink"); |
155 | nothing printf("nuffink"); |
156 | guitars printf("spoons"); |
157 | guitar printf("spoons"); |
158 | drums printf("spoons"); |
159 | drum printf("spoons"); |
160 | trumpets printf("spoons"); |
161 | trumpet printf("spoons"); |
162 | violins printf("spoons"); |
163 | violin printf("spoons"); |
164 | clarinets printf("spoons"); |
165 | clarinet printf("spoons"); |
166 | trombones printf("spoons"); |
167 | trombone printf("spoons"); |
168 | oboes printf("spoons"); |
169 | oboe printf("spoons"); |
170 | flutes printf("spoons"); |
171 | flute printf("spoons"); |
172 | tubas printf("spoons"); |
173 | tuba printf("spoons"); |
174 | Data printf("Info"); |
175 | data printf("info"); |
176 | Directory printf("Lockup"); |
177 | directory printf("lockup"); |
178 | Directories printf("Lockups"); |
179 | directories printf("lockups"); |
180 | [Pp]rocess { switch(rand()%2) |
181 | { |
182 | case 0: printf("Queen Bess"); break; |
183 | case 1: printf("Rudolf 'Ess"); break; |
184 | } |
185 | } |
186 | [Cc]omputer printf("French Tutor"); |
187 | [Bb]yte printf("Jimmy White"); |
188 | [Ff]iles printf("Nobby Stiles"); |
189 | [Ff]ile printf("Royal Mile"); |
190 | [Ll]anguage printf("'Am Sandwich"); |
191 | [Zz]ero printf("Emperor Nero"); |
192 | [Jj]ob printf("Uncle Bob"); |
193 | [Ss]hell printf("Bow Bell"); |
194 | [Ss]ave printf("Chas'n'Dave"); |
195 | [Ll]oad printf("Old Kent Road"); |
196 | [Mm]ouse printf("Doll's 'Ouse"); |
197 | [Bb]uffer printf("Sausage Stuffer"); |
198 | [Kk]eyboard printf("Henry Ford"); |
199 | [Mm]anual printf("Cocker Spaniel"); |
200 | [Ss]creen printf("James Dean"); |
201 | [Pp]rinter printf("'Arold Pinter"); |
202 | [Pp]lotter printf("Pansy Potter"); |
203 | [Cc]ompiler printf("Martin Tyler"); |
204 | [Ss]tring printf("Emperor Ming"); |
205 | [Bb]rain printf("Michael Caine"); |
206 | [Pp][Aa][Ss][Cc][Aa][Ll] { switch(rand()%2) |
207 | { |
208 | case 0: printf("Pall Mall"); break; |
209 | case 1: printf("Roald Dahl"); break; |
210 | } |
211 | } |
212 | [Aa][Ll][Gg][Oo][Ll] printf("Johnny Ball"); |
213 | [Ff][Oo][Rr][Tt][Rr][Aa][Nn] printf("Manfred Mann"); |
214 | [Cc][Oo][Bb][Oo][Ll] printf("Albert Hall"); |
215 | [Jj]ava printf("Wot a palavah"); |
c8d1efb9 |
216 | W[aA][pP] printf("Pony and trap"); |
217 | " wap" printf(" pony and trap"); |
73fc7494 |
218 | Stopped printf("'Ad the mockers put on"); |
219 | stopped printf("'ad the mockers put on"); |
220 | Stopping printf("Putting the mockers on"); |
221 | stopping printf("putting the mockers on"); |
222 | stops printf("puts the mockers on"); |
223 | stop printf("put the mockers on"); |
224 | STOP printf("Put The Mockers On"); |
225 | [Ll]ondoner printf("Cockney"); |
226 | friend { switch(rand()%3) |
227 | { |
228 | case 0: printf("mucker"); break; |
229 | case 1: printf("mate"); break; |
230 | case 2: printf("china"); break; |
231 | } |
232 | } |
233 | "a h" printf("an '"); |
234 | "A h" printf("An '"); |
235 | " h" printf(" '"); |
236 | " H" printf(" '"); |
237 | " C-" printf(" Bruce Lee-"); |
238 | " C " { switch(rand()%4) |
239 | { |
240 | case 0: printf(" Bruce Lee "); break; |
241 | case 1: printf(" Circus Flea "); break; |
242 | case 2: printf(" Bumble Bee "); break; |
243 | case 3: printf(" Door Key "); break; |
244 | } |
245 | } |
246 | " C." printf(" Circus Flea."); |
247 | Th printf("F"); |
248 | Wh printf("W"); |
249 | wh printf("w"); |
250 | aw printf("or"); |
251 | " "[BbKkMmPpRrSsWw]ing ECHO; |
252 | " "[Bb]ring ECHO; |
253 | " "[Ss]ting ECHO; |
254 | " "[Ss]wing ECHO; |
255 | " "[CcFfSs]ling ECHO; |
256 | " Thing" printf(" Fing"); |
257 | " thing" printf(" fing"); |
258 | |
259 | "ing " printf("in' "); |
260 | ". " { switch(rand()%32) |
261 | { |
262 | case 0: printf(". I'll get out me spoons. "); break; |
263 | case 1: printf(". Yer can't 'ave a knees-up wivout a joanna. "); break; |
264 | case 2: printf(". Cor blimey guv, would I lie to you. "); break; |
265 | case 3: printf(". I'll make us all a nice cup of tea. "); break; |
266 | default: ECHO; break; |
267 | } |
268 | } |
269 | "? " { switch(rand()%3) |
270 | { |
271 | case 0: printf(", mate? "); break; |
272 | case 1: printf(", guv? "); break; |
273 | case 2: printf(", squire? "); break; |
274 | } |
275 | } |
276 | "! " { switch(rand()%6) |
277 | { |
278 | case 0: printf(", cor blimey! "); break; |
279 | case 1: printf("! Struth! "); break; |
280 | case 2: printf(", guv! "); break; |
281 | case 3: printf("! Honest guv! "); break; |
282 | case 4: printf(", mate! "); break; |
283 | case 5: ECHO; break; |
284 | } |
285 | } |
9a251f02 |
286 | . printf("%s", yytext); |
73fc7494 |
287 | \n printf("\n"); |
288 | %% |