7e3afbba |
1 | |
2 | /* jethro.l */ |
3 | %e 7000 |
4 | %k 5000 |
5 | %p 9000 |
6 | %n 2000 |
7 | %a 9000 |
8 | %o 7000 |
9 | |
10 | SW [\n \"(] |
11 | EW [\n ".",\"!?):;] |
12 | BW [\n ] |
13 | |
14 | %{ |
15 | /* |
16 | ** jethro v. 1.00 06/10/93 |
17 | ** Duane Paulson <ci922@cleveland.freenet.edu> "dap" |
18 | ** Hillbilly text filter. Compile with lex, then C. |
19 | ** syntax will be: |
20 | ** jethro <input_file >output_file. |
21 | ** Public domain. Use at your own risk. Y'all come back now, heah? |
22 | */ |
23 | /************************************************************************* |
24 | REVISION LOG |
25 | when ver who change |
26 | -------- ---- --- ----------------------------------------------------- |
27 | 06/10/93 1.00 dap Initial release. |
28 | 8.May.94 1.10 beg Fixed for HP-UX |
29 | *************************************************************************/ |
30 | |
31 | #define PUTLAST unput(*(yytext+strlen(yytext)-1)); |
32 | #define SUB(A) fprintf(yyout, "%c%s", *A|(*yytext&32), A+1); |
33 | #define SSUB(A) fprintf(yyout, "%c%c%s", *yytext, *A|(*(yytext+1)&32), A+1); |
34 | #define SESUB(A) fprintf(yyout, "%c%c%s", *yytext, *A|(*(yytext+1)&32), A+1); PUTLAST; |
35 | #define ESUB(A) fprintf(yyout, "%c%s", *A|(*yytext&32), A+1); PUTLAST; |
36 | |
37 | #include <string.h> |
38 | |
39 | char WhAt[]="@(#)Duane Paulson's hillbilly text filter. (jethro)\n@(#)$Header: jethro.l,v 1.1 94/05/08 23:41:58 bgriffin Final $" |
40 | ; |
41 | |
42 | %} |
43 | |
44 | %% |
45 | |
46 | {SW}[Gg]reetings{EW} | |
47 | {SW}[Hh]i{EW} | |
48 | {SW}[Hh]ello{EW} SESUB("Howdy"); |
49 | {SW}[Bb]ye{EW} | |
50 | {SW}[Gg]oodbye{EW} SESUB("Y'all come back now, heah?"); |
51 | {SW}[Hh]ear{EW} SESUB("Heah"); |
52 | {SW}[Cc]ar{EW} | |
53 | {SW}[Aa]uto{EW} | |
54 | {SW}[Rr]elax{EW} SESUB("Set a spell -- put yore feet up"); |
55 | {SW}[Aa]utomobile{EW} SESUB("Gasoline buggy"); |
56 | [Ss]wimming{BW}pool SUB("Cement pond"); |
57 | [Pp]ool{BW}table SUB("Fancy eatin table"); |
58 | [Pp]ool{BW}cue | |
59 | [Cc]ue{BW}stick SUB("Fancy pot passer"); |
60 | {SW}[Bb][r]?oil{EW} | |
61 | {SW}[Bb]ake{EW} | |
62 | {SW}[Ff]ry{EW} | |
63 | {SW}[Ss]aute{EW} | |
64 | {SW}[Cc]ook{EW} SESUB("Whomp up"); |
65 | {SW}[Bb][r]?oiling{EW} | |
66 | {SW}[Bb]akeing{EW} | |
67 | {SW}[Ff]rying{EW} | |
68 | {SW}[Ss]auteing{EW} | |
69 | {SW}[Cc]ooking{EW} SESUB("Whompin up"); |
70 | {SW}[Bb][r]?oiled{EW} | |
71 | {SW}[Bb]aked{EW} | |
72 | {SW}[Ff]ryed{EW} | |
73 | {SW}[Ss]auted{EW} | |
74 | {SW}[Cc]ooked{EW} SESUB("Done whomped up"); |
75 | {SW}[Bb][r]?oils{EW} | |
76 | {SW}[Bb]akes{EW} | |
77 | {SW}[Ff]rys{EW} | |
78 | {SW}[Ss]autes{EW} | |
79 | {SW}[Cc]ooks{EW} SESUB("Whomps up"); |
80 | {SW}[Gg]roceries{EW} | |
81 | {SW}[Ff]ood{EW} SESUB("Vittles"); |
82 | [Ss]alad SUB("Slaw"); |
83 | [Vv]egetable SUB("Green"); |
84 | [Pp]otato SUB("Tater"); |
85 | {SW}[Tt]omato SSUB("Tuhmater"); |
86 | {SW}[Rr]hubarb{EW} SESUB("Pie plant"); |
87 | {SW}[Ll]iquor{EW} | |
88 | {SW}[Ww]hisk[e]?y{EW} | |
89 | {SW}[Ss]cotch{EW} | |
90 | {SW}[Bb]ourbon{EW} | |
91 | {SW}[Gg]in{EW} | |
92 | {SW}[Vv]odka{EW} | |
93 | {SW}[Tt]equila{EW} | |
94 | {SW}[Ll]iqueur{EW} SESUB("Rheumatiz medcin"); |
95 | {SW}[Bb]ooze{EW} SESUB("Corn likker"); |
96 | {SW}[Cc]ocktail{EW} | |
97 | {SW}[Mm]ixed{BW}drink{EW} SESUB("Waste of good likker"); |
98 | {SW}[Bb]ar{EW} SESUB("Dance hall"); |
99 | {SW}[Bb]ars{EW} SESUB("Dance halls"); |
100 | {SW}[Ss]aloon | |
101 | {SW}[Cc]ocktail{BW}lounge SESUB("Dance hall"); |
102 | {SW}[Ww]hore | |
103 | {SW}[Pp]rostitute | |
104 | {SW}[Ss]lut SSUB("Dance hall girl"); |
105 | {SW}[Ss]ecret{BW}agent{EW} | |
106 | {SW}[Ss]py{EW} | |
107 | {SW}007{EW} SESUB("Double nought spy"); |
108 | {SW}[Zz]ero{EW} SESUB("Nought"); |
109 | {SW}[Pp]ants{EW} SESUB("Trousers"); |
110 | {SW}[Jj]eans{EW} | |
111 | {SW}[Dd]ungarees{EW} | |
112 | {SW}[Ll]evi[']?s{EW} SESUB("Overhalls"); |
113 | {SW}[Ss]hoe SSUB("High-button shoe"); |
114 | {SW}[Jj]acket SSUB("Coat"); |
115 | {SW}[Ss]hotgun SSUB("Fowlin piece"); |
116 | {SW}[Rr]evolver | |
117 | {SW}[Gg]un SSUB("Shootin iron"); |
118 | {SW}[Rr]ifle SSUB("Ozark longrifle"); |
119 | {SW}[Ll]ibrar[yi] SSUB("Liberry"); |
120 | [Ww]ash SUB("Warsh"); |
121 | [Ff]amily SUB("Fambly"); |
122 | [Ff]ry{BW}pan | |
123 | [Ff]rying{BW}pan | |
124 | [Ss]aute{BW}pan SUB("Skillet"); |
125 | {SW}[Aa]nimal SSUB("Critter"); |
126 | {SW}FBI{EW} | |
127 | {SW}F.B.I.{EW} | |
128 | {SW}CIA{EW} | |
129 | {SW}C.I.A.{EW} | |
130 | {SW}ATF{EW} | |
131 | {SW}A.T.F.{EW} | |
132 | {SW}IRS{EW} | |
133 | {SW}I.R.S.{EW} | |
134 | {SW}SS{EW} | |
135 | {SW}S.S.{EW} | |
136 | {SW}[Ss]elective{BW}[Ss]ervice{EW} | |
137 | {SW}[Ss]elective{BW}[Ss]ervice{BW}[Ss]ystem{EW} | |
138 | {SW}[Ss]ecret{BW}[Ss]ervice{EW} SESUB("Revanooers"); |
139 | {SW}[Pp]olice | |
140 | {SW}[Pp]oliceman | |
141 | {SW}[Ss]heriff | |
142 | {SW}[Dd]eputy | |
143 | {SW}[Dd]eputy{BW}[Ss]heriff | |
144 | {SW}[Mm]arshall | |
145 | {SW}[Dd]eputy{BW}[Mm]arshall | |
146 | {SW}[Pp]ark{BW}[Rr]anger | |
147 | {SW}[Tt]exas{BW}[Rr]anger | |
148 | {SW}[Hh]ighway{BW}[Pp]atrol SSUB("Constable"); |
149 | |
150 | {SW}[Mm]other | |
151 | {SW}[Mm][ao]mm[ay]? | |
152 | {SW}[Mm]ommie | |
153 | {SW}[Mm]om SSUB("Maw"); |
154 | {SW}[Mm]a{EW} SESUB("Maw"); |
155 | {SW}[Ff]ather SSUB("Paw"); |
156 | {SW}[Dd]ad{EW} | |
157 | {SW}[Dd]addy | |
158 | {SW}[Pp]a{EW} | |
159 | {SW}[Pp][ao]p{EW} | |
160 | {SW}[Pp][ao]pp[ay]?{EW} SESUB("Paw"); |
161 | {SW}[Gg]randmother{EW} | |
162 | {SW}[Gg]randma[w]?{EW} SESUB("Granny"); |
163 | {SW}[Gg]randfather{EW} | |
164 | {SW}[Gg]ran[d]{1,2}ad[d]?[y]?{EW} | |
165 | {SW}[Gg]randpop{EW} | |
166 | {SW}[Gg]randpa[w]?{EW} SESUB("Grampy"); |
167 | {SW}[Mm]y{EW} SESUB("Mah"); |
168 | {SW}them{EW} SESUB("em"); |
169 | [Dd]og SUB("Dawg"); |
170 | [Ll]awyer | |
171 | [Ll]egal{BW}counc[ei]l | |
172 | [Ll]egal{BW}councellor | |
173 | [Aa]ttorney | |
174 | [Aa]ttorney{BW}[Aa]t{BW}[Ll]aw SUB("City slicker"); |
175 | |
176 | {SW}[Tt]han{EW} SESUB("Then"); |
177 | [Cc]haracterize SUB("Show"); |
178 | {SW}[Vv]ery{EW} | |
179 | {SW}[Ee]xtremely{EW} | |
180 | {SW}[Rr]eally{EW} | |
181 | {SW}[Rr]eal{EW} SESUB("Right"); |
182 | {SW}[Hh]aven't{EW} | |
183 | {SW}[Ii]sn't{EW} | |
184 | {SW}[Aa]ren't{EW} SESUB("Aint"); |
185 | {SW}[Ss]aid{EW} | |
186 | {SW}[Ss]ays{EW} SESUB("Sez"); |
187 | {SW}[Aa]re{EW} SESUB("Is"); |
188 | {SW}[Ss]hould{EW} SESUB("Ortta"); |
189 | {SW}[Pp]erhaps{EW} | |
190 | {SW}[Mm]aybe{EW} SESUB("Mebbe"); |
191 | {SW}[Ss]ick{EW} SESUB("Ailin'"); |
192 | {SW}I'm{BW}not{EW} SESUB("I aint"); |
193 | {SW}[Ss]cared{EW} SESUB("A-skeert"); |
194 | {SW}[Ss]care SSUB("Skeer"); |
195 | {SW}[Hh]ave{EW} SESUB("Got"); |
196 | {SW}[Pp]ossess{EW} SESUB("Have"); |
197 | {SW}[Hh]elp SSUB("Hep"); |
198 | {SW}[Tt]ired{EW} SESUB("Tuckered out"); |
199 | {SW}[Cc]ompletely{EW} SESUB("Plumb"); |
200 | {SW}[Dd]runk{EW} SESUB("A mite woozy"); |
201 | |
202 | {SW}[Yy]es{EW} SESUB("Yep"); |
203 | {SW}[Nn]o{EW} SESUB("Nope"); |
204 | |
205 | {SW}[Ii]t{BW}is{EW} SESUB("Tis"); |
206 | {SW}[Aa]t{BW}all{EW} *(yytext+1)=(char)'A'; SESUB("A tall"); |
207 | |
208 | {SW}[Aa]m{EW} | |
209 | {SW}[Aa]re{EW} SESUB("Is"); |
210 | {SW}[Ww]as{EW} | |
211 | {SW}[Ww]ere{EW} SESUB("Wuz"); |
212 | {SW}[Ww]asn't{EW} SESUB("Wasunt"); |
213 | [Ee]very SUB("Ever"); |
214 | {SW}[Ww]ant/s SSUB("Is after"); |
215 | {SW}[Ww]anted{EW} SESUB("Was after"); |
216 | {SW}[Ww]anting{EW} SESUB("Hankering after"); |
217 | {SW}[Dd]oesn't{EW} | |
218 | {SW}[Dd]on't{EW} SESUB("Dasent"); |
219 | {SW}[Yy]ou'll{EW} SESUB("Y'all will"); |
220 | {SW}[Yy]our SSUB("Yore"); |
221 | {SW}[Mm]ore{EW} SESUB("Mo"); |
222 | tial SUB("shul"); |
223 | cious SUB("shus"); |
224 | ious SUB("yus"); |
225 | tion SUB("shun"); |
226 | {SW}[Cc]an{EW} SESUB("C'n"); |
227 | {SW}[Yy]ou{EW} SESUB("Y'all"); |
228 | {SW}[Ff]or{EW} SESUB("Fer"); |
229 | {SW}[Tt]he{EW} SESUB("Duh"); |
230 | ing SUB("in"); |
231 | {SW}[Tt]oo{EW} SESUB("Besides"); |
232 | {SW}[Tt]o{EW} SESUB("Tuh"); |
233 | {SW}[Aa][n]?{EW} SESUB("Ah"); |
234 | {SW}[Aa]re{EW} | |
235 | {SW}[Oo]ur{EW} | |
236 | {SW}[Oo]r{EW} SESUB("Ore"); |
237 | {SW}[Oo]f{EW} SESUB("Uv"); |
238 | {SW}I{EW} SESUB("Ah"); |
239 | {SW}I'm{EW} SESUB("Ahm a"); |
240 | {SW}I'll{EW} SESUB("Ahl"); |
241 | {SW}I'd{EW} SESUB("Ah wood"); |
242 | 'nt *(yytext)=(char)'u'; SUB("unt"); |
243 | 're SUB(" is"); |
244 | 've SUB(" done"); |
245 | eed{EW} ECHO; |
246 | ed{EW} ESUB("d"); |
247 | {SW}[Oo]wn{EW} | |
248 | {SW}[Tt]own{EW} | |
249 | {SW}[Dd]own{EW} | |
250 | {SW}[Gg]own{EW} | |
251 | {SW}[Bb]rown{EW} ECHO; |
252 | wn{EW} ESUB("ed"); |
253 | {SW}[Bb]elow{EW} | |
254 | {SW}[Kk]now{EW} | |
255 | {SW}[Tt]hrow{EW} | |
256 | {SW}[Gg]row{EW} | |
257 | {SW}[Hh]ow{EW} | |
258 | {SW}[Nn]ow{EW} | |
259 | {SW}[Bb]row{EW} | |
260 | {SW}[Ss]how{EW} ECHO; |
261 | ow{EW} ESUB("er"); |
262 | re{EW} | |
263 | er{EW} ESUB("uh"); |
264 | {SW}[Hh]er{EW} ECHO; |
265 | ! SUB(". Ye DAWGies!!!"); |
266 | |
267 | %% |
268 | |
269 | main() |
270 | { |
271 | yylex(); |
272 | } |
273 | |