1 /* GNU Talkfilters
2    Copyright (C) 1998-2003 Free Software Foundation, Inc.
3 
4    This file is part of GNU Talkfilters
5 
6    GNU Talkfilters is free software; you can redistribute it and/or
7    modify it under the terms of the GNU General Public License as
8    published by the Free Software Foundation; either version 2, or (at
9    your option) any later version.
10 
11    This software is distributed in the hope that it will be amusing, but
12    WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    General Public License for more details.
15 
16    You should have received a copy of the GNU General Public License
17    along with this software; see the file COPYING.  If not, write to the
18    Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
19 */
20 
21 /* Written by Brand Hilton */
22 
23 %option prefix="redneck_yy"
24 %option outfile="lex.yy.c"
25 %option noyywrap
26 %option nowarn
27 
28 %e 10000
29 %p 25000
30 %n 4000
31 %k 1000
32 %a 8000
33 %o 4000
34 
35 %{
36 
37 #include "common.h"
38 #include "talkfilters.h"
39 
40 #define YY_DECL int yylex(gtf_databuf_t *buf)
41 
42 %}
43 
44 WB      [\n\t ]
45 WC	[A-Za-z'0-9]
46 NW	[^A-Za-z'0-9]
47 EOT	\4
48 
49 %s NIW INW
50 
51 %%
52 
53 <NIW,INITIAL>{
54 
55 \<(\/)?[A-Za-z][^\>]*\>      gtf_echo(); // don't damage HTML tags
56 
57 [Gg]et{WB}your/{NW}	gtf_puts_case("gitcher");
58 [Gg]et{WB}you/{NW}	gtf_puts_case("gitcha");
59 [Ff]inger		gtf_puts_case("finger");		BEGIN(INW);
60 [Ss]omething/{NW}	gtf_puts_case("sump'm");
61 [Kk]issing/{NW}		gtf_puts_case("swappin' slobber");
62 [Kk]iss/{NW}		gtf_puts_case("swap slobber with");
63 [Kk]issed/{NW}		gtf_puts_case("Swapped slobber with");
64 [Hh]appily/{NW}		gtf_puts_case("happy");
65 [Rr]emember		gtf_puts_case("'member");		BEGIN(INW);
66 [Rr]emind		gtf_puts_case("'mind");			BEGIN(INW);
67 [Gg]raduat		gtf_puts_case("gradjeeat");		BEGIN(INW);
68 [Oo]ther		gtf_puts_case("uther");			BEGIN(INW);
69 [Ll]imousine		gtf_puts_case("Chevy 4x4");		BEGIN(INW);
70 [Nn]ight		gtf_puts_case("nite");			BEGIN(INW);
71 [Rr]ecognize		gtf_puts_case("recunize");		BEGIN(INW);
72 [Bb]efore		gtf_puts_case("afore");			BEGIN(INW);
73 [Ee]very		gtf_puts_case("ever");			BEGIN(INW);
74 [Ii]nto/{NW}		gtf_puts_case("inta");
75 [Ff]orget		gtf_puts_case("fergit");		BEGIN(INW);
76 [Cc]ollege/{NW}		gtf_puts_case("weldin' skool");
77 [Mm]arried/{NW}		gtf_puts_case("hitched");
78 [Tt]hing		gtf_puts_case("thang");			BEGIN(INW);
79 [Hh]uge/{NW}		gtf_puts_case("big-ass");
80 [Aa]bout/{NW}		gtf_puts_case("'bout");
81 [Cc]hildren/{NW}	gtf_puts_case("young uns");
82 [Cc]hild/{NW}		gtf_puts_case("young un");
83 [Ss]ip/{NW}		gtf_puts_case("swaller");
84 [Ss]ips/{NW}		gtf_puts_case("swallers");
85 [Dd]rink{WB}of/{NW}	gtf_puts_case("swig uh");
86 [Dd]rinks{WB}of/{NW}	gtf_puts_case("swigs uh");
87 [Dd]rink/{NW}		gtf_puts_case("drank");
88 [Gg]lass/{NW}		gtf_puts_case("can");
89 [Gg]lasses/{NW}		gtf_puts_case("cans");
90 [Cc]hampaigne/{NW}	gtf_puts_case("Budweiser");
91 [Ww]ine/{NW}		gtf_puts_case("Coors");
92 [Tt]his/{NW}		gtf_puts_case("this here");
93 [Tt]hose/{NW}		gtf_puts_case("them");
94 [Tt]ook/{NW}		gtf_puts_case("done took");
95 [Ww]ent/{NW}		gtf_puts_case("done went");
96 [Ss]aw/{NW}		gtf_puts_case("seen");
97 [Ee]nter		gtf_puts_case("inner");			BEGIN(INW);
98 [Ii]nter		gtf_puts_case("inner");			BEGIN(INW);
99 Inter			gtf_puts_case("Inner");
100 them/{NW}		gtf_puts_case("'em");
101 [Ss]hit/{NW}		gtf_puts_case("sheeeiit");
102 [Ll]ovely/{NW}		|
103 [Pp]retty/{NW}		|
104 [Bb]eautiful/{NW}	|
105 [Hh]andsome/{NW}	gtf_puts_case("purty");
106 most{WB}beautiful/{NW}	gtf_puts_case("purtiest");
107 [Tt]oo{WB}forward/{NW}	gtf_puts_case("too horny");
108 [Hh]ello/{NW}		gtf_puts_case("hey there");
109 [Hh]ouse/{NW}		gtf_puts_case("trailer");
110 [Nn]eighborhood		gtf_puts_case("trailer park");		BEGIN(INW);
111 [Pp]arty/{NW}		gtf_puts_case("hoe-down");
112 [Pp]arties/{NW}		gtf_puts_case("hoe-downs");
113 [Tt]ime			gtf_puts_case("tahm");			BEGIN(INW);
114 [Mm]exican		gtf_puts_case("Mescun");		BEGIN(INW);
115 [Ii]talian		gtf_puts_case("Eye-talian");		BEGIN(INW);
116 [Bb]lack{WB}(man|guy)/{NW} |
117 [Nn]egro/{NW}		gtf_puts_case("nigger");
118 [Bb]lack{WB}(men|guys)/{NW} |
119 [Bb]lacks/{NW}		|
120 [Nn]egroes/{NW}		|
121 [Aa]frican{WB}Americans	gtf_puts_case("niggers");
122 [Aa]sian/{NW}		gtf_puts_case("Slant-eye");
123 so{WB}that/{NW}		gtf_puts_case("so'sn");
124 [Nn]o{WB}one{WB}ever/{NW} gtf_puts_case("Ain't nobody never");
125 No{WB}one/{NW}		  gtf_puts_case("Ain't nobody");
126 Nobody{WB}ever/{NW}	gtf_puts_case("Ain't nobody never");
127 [Ss]ome/{NW}		gtf_puts_case("sum");
128 [Tt]hink		gtf_puts_case("thank");			BEGIN(INW);
129 met{WB}you/{NW}		gtf_puts_case("laid eyes own yuh");	BEGIN(INW);
130 [Bb]roken/{NW}		gtf_puts_case("busted");
131 [Mm]odem		gtf_puts_case("modem doodad");		BEGIN(INW);
132 [Tt]he/{NW}	        gtf_puts_case("thuh");
133 [Aa]nd/{NW}	        gtf_puts_case("An'");
134 [Ee]lse/{NW}		gtf_echo();
135 ([Bb]oy|[Mm]an)/{NW}	gtf_puts_case("feller");
136 [Mm]en/{NW}		gtf_puts_case("fellers");
137 ([Ww]oman|[Gg]irl)/{NW}	gtf_puts_case("girlie");
138 [Ll]ie{WB}down/{NW}	gtf_puts_case("lay down");
139 [Ss]ure/{NW}		gtf_puts_case("shure");
140 [Gg]et			gtf_puts_case("git");			BEGIN(INW);
141 [Ww]ile/{NW}		gtf_puts_case("whahl");
142 [Gg]oing/{NW}		gtf_puts_case("goin'");
143 [Gg]ot{WB}to/{NW}	gtf_puts_case("gotta");
144 [Ss]hoe/{NW}		gtf_puts_case("boot");
145 [Ss]hout		gtf_puts_case("holler");		BEGIN(INW);
146 [Cc]uple{WB}of/{NW}	gtf_puts_case("coupl'a");
147 [Ff]ond{WB}of/{NW}	gtf_puts_case("sweet on");
148 [Cc]ome{WB}on/{NW}	gtf_puts_case("c'moan ");
149 [Cc]ome{WB}over/{NW}	gtf_puts_case("c'moan over");
150 [Cc]ome{WB}here/{NW}	gtf_puts_case("c'mere");
151 [Cc]ar/{NW}		gtf_puts_case("pickem-up truck");
152 [Cc]ars/{NW}		gtf_puts_case("pickem-up trucks");
153 [Dd]riven/{NW}		gtf_puts_case("done drove");
154 [Rr]idden/{NW}		gtf_puts_case("done rode");
155 [Ee]at/{NW}		gtf_puts_case("chow down on");
156 [Cc]omputer		gtf_puts_case("'pyooter doomajigger");	BEGIN(INW);
157 [Dd]atabase		gtf_puts_case("database doohickey");	BEGIN(INW);
158 [Kk]n(ew|own)/{NW}	gtf_puts_case("knowed");
159 [Bb]ecause/{NW}		gtf_puts_case("'cuz");
160 [Mm]ore{WB}than/{NW}	gtf_puts_case("more'n");
161 [Yy]oung		gtf_puts_case("young");			BEGIN(INW);
162 [Yy]our/{NW}		gtf_puts_case("yer");
163 [Yy]ours		gtf_puts_case("yores");			BEGIN(INW);
164 [Yy]ou/{NW}		gtf_puts_case("yew");
165 [Pp]olice/{NW}		gtf_puts_case("sher'ff");
166 [Kk]ind{WB}of/{NW}	gtf_puts_case("kinda");
167 [Dd]ead/{NW}		gtf_puts_case("deader'n a door nail");
168 [Vv]ery/{NW}		gtf_puts_case("real");
169 [Qq]uite{WB}a{WB}(bit|few)/{NW} gtf_puts_case("a helluva lot");
170 [Qq]uite{WB}a/{NW}	gtf_puts_case("one helluva");
171 [Qq]uite/{NW}		gtf_puts_case("real");
172 [Nn]ice/{NW}		gtf_puts_case("right nice");
173 [Mm]o(ther|m)		gtf_puts_case("momma");			BEGIN(INW);
174 [Ff]ather|[Dd]ad	gtf_puts_case("daddy");			BEGIN(INW);
175 [Ee]xclaim		gtf_puts_case("yelp");			BEGIN(INW);
176 [Oo]h(,)?{WB}yes!	gtf_puts_case("You betcha!");
177 [Pp]umpkin		gtf_puts_case("punkin");		BEGIN(INW);
178 [Ff]orgotten/{NW}	gtf_puts_case("fergot");
179 [Ff]amily/{NW}		gtf_puts_case("fambly");
180 [Pp]articular		gtf_puts_case("puhticlur");		BEGIN(INW);
181 [Pp]robably/{NW}	gtf_puts_case("prob'ly");
182 [Aa]round/{NW}		gtf_puts_case("aroun'");
183 [Ss]urprised/{NW}	gtf_puts_case("s'prized");
184 [Cc]ontinue		gtf_puts_case("continya");		BEGIN(INW);
185 [Aa]gain/{NW}		gtf_puts_case("agin");
186 [Ll]ogically/{NW}	gtf_puts_case("logik'ly");
187 [Ll]ogical/{NW}		gtf_puts_case("logik'l");
188 [Mm]yself/{NW}		gtf_puts_case("muhsef");
189 [Dd]istributed/{NW}	gtf_puts_case("duhstribuhted");
190 [Dd]istributor/{NW}	gtf_puts_case("duhstribuhter");
191 [Dd]istribute/{NW}	gtf_puts_case("duhstribbit");
192 [Ss]econd		gtf_puts_case("secint");		BEGIN(INW);
193 [Pp]erfect/{NW}		gtf_puts_case("Purfik");
194 [Tt]entative		gtf_puts_case("tennative");		BEGIN(INW);
195 [Mm]aintenance/{NW}	gtf_puts_case("maint'nance");
196 [Ee]nough/{NW}		gtf_puts_case("enuff");
197 [Bb]etween/{NW}		gtf_puts_case("'atween");
198 [Tt]omorrow/{NW}	gtf_puts_case("tomorry");
199 [Ss]unday/{NW}		gtf_puts_case("Sundy");
200 [Mm]onday/{NW}		gtf_puts_case("Mondy");
201 [Tt]uesday/{NW}		gtf_puts_case("Tuesdy");
202 [Ww]ednesday/{NW}	gtf_puts_case("Winsdy");
203 [Tt]hursday/{NW}	gtf_puts_case("Thursdy");
204 [Ff]riday/{NW}		gtf_puts_case("Fridy");
205 [Ss]aturday/{NW}	gtf_puts_case("Saturdy");
206 [Aa]ny/{NW}		gtf_puts_case("inny");
207 [Ff]act			gtf_puts_case("fac'");			BEGIN(INW);
208 [Aa]sk			gtf_puts_case("ass");			BEGIN(INW);
209 [Ll]et{WB}me/{NW}	gtf_puts_case("lemme");
210 [Jj]ust/{NW}		gtf_puts_case("jus'");
211 [Pp]eople|[Gg]uys/{NW}	gtf_puts_case("folks");
212 [Bb]elieve/{NW}		gtf_puts_case("reckon");
213 [Pp]erhaps/{NW}		gtf_puts_case("maybe");
214 [Ww]ife/{NW}		gtf_puts_case("ol' lady");
215 [Oo]f/{NW}		gtf_puts_case("uh");
216 [Oo]f{WB}a/{NW}		gtf_puts_case("uv a");
217 [Ww]hat{WB}you/{NW}	gtf_puts_case("whutcha");
218 [Ww]hat/{NW}		gtf_puts_case("whut");
219 [Dd]istraught/{NW}	gtf_puts_case("confused as hayll");
220 [Ii]n{WB}love{WB}with/{NW} gtf_puts_case("real sweet on");
221 [Ll]ove			gtf_puts_case("luv");			BEGIN(INW);
222 [Ww]ant{WB}to/{NW}	gtf_puts_case("wonna");
223 [Bb]ig/{NW}		gtf_puts_case("big-ass");
224 [Bb]ad/{NW}		gtf_puts_case("bad-ass");
225 [Ss]mall/{NW}		gtf_puts_case("li'l bitty");
226 [Ss]ort{WB}of/{NW}	gtf_puts_case("sorta");
227 [Tt]o/{NW}		gtf_puts_case("tuh");
228 [Hh]imself/{NW}		gtf_puts_case("hisself");
229 [Bb]eat|[Ww]hip		gtf_puts_case("whup");			BEGIN(INW);
230 [Ff]rom/{NW}		gtf_puts_case("frum");
231 [Yy]ears/{NW}		gtf_puts_case("yeers");
232 Jack/{NW}		gtf_puts_case("Billy Jack");		BEGIN(INW);
233 Robert/{NW}		|
234 Bob(by)?/{NW}		gtf_puts_case("Jethro");
235 Mar[ck]/{NW}	        gtf_puts_case("Billy Bob");
236 Jim(my)?/{NW}	        |
237 James/{NW}	        gtf_puts_case("Jim Bob");
238 Jo(h)?n(ny)?/{NW}	gtf_puts_case("Joe Bob");
239 Paul/{NW}	        gtf_puts_case("Billy Joe");
240 Bill(ly)?/{NW}		|
241 Will(ie|iam|y)?/{NW}	gtf_puts_case("Bubba");
242 Dav(e|id)/{NW}		gtf_puts_case("Bobby Joe");
243 Jo(e|seph)/{NW}		gtf_puts_case("Billy Joe");
244 Mi(ke|chael)/{NW}	gtf_puts_case("Dwayne");
245 Br[iy]an/{NW}		gtf_puts_case("Jimmy Dean");
246 Brad/{NW}		gtf_puts_case("Jimmy Joe");
247 Stev[a-z]*/{NW}		gtf_puts_case("Billy Wayne");
248 Ron[a-z]*/{NW}		gtf_puts_case("Jimmy Jack");
249 Kris[a-z]*/{NW}		gtf_puts_case("Minnie Mae");
250 Mary/{NW}		gtf_puts_case("Mary Lou");
251 Jane/{NW}		gtf_puts_case("Peggy Sue");
252 L[iy]nda/{NW}		gtf_puts_case("Ellie Mae");
253 Su(s|z)an[a-z]*/{NW}	gtf_puts_case("Mary Jo");
254 Jenn(y|i[a-z]*)/{NW}	gtf_puts_case("Jenny Mae");
255 Kim[a-z]*/{NW}		gtf_puts_case("Thelma Lou");
256 [CK]ath[a-z]*/{NW}	gtf_puts_case("Reba Jewel");
257 Deb[a-z]*/{NW}		gtf_puts_case("Betty Jo");
258 C[iy]n(d|th)[a-z]*	gtf_puts_case("Velma Sue");
259 [Tt]alk{WB}to/{NW}	gtf_puts_case("tawk at");
260 [Tt]alk			gtf_puts_case("tawk");			BEGIN(INW);
261 [Ff]riend		gtf_puts_case("frien'");		BEGIN(INW);
262 [Rr]ushed/{NW}		gtf_puts_case("hightailed it");
263 [Ww]and/{NW}		gtf_puts_case("banjo");
264 [Cc]an({WB}no|')t/{NW}	gtf_puts_case("cain't");
265 [Uu]nder		gtf_puts_case("unner");			BEGIN(INW);
266 [Mm]y/{NW}		gtf_puts_case("muh");
267 I/{NW}			gtf_puts_case("Ah");
268 [Ff]or/{NW}		gtf_puts_case("fer");
269 
270 [Cc]ould{WB}have/{NW}			gtf_puts_case("could'a");
271 [Cc]ould({WB}no|n')t{WB}have/{NW}	gtf_puts_case("couldn'a");
272 [Cc]ould({WB}no|n')t/{NW}		gtf_puts_case("couldn'");
273 [Ss]hould({WB}ha|')ve/{NW}		gtf_puts_case("should'a");
274 [Ss]hould({WB}no|n')t/{NW}		gtf_puts_case("shouldn'");
275 [Ss]hould({WB}no|n')t{WB}have/{NW}	gtf_puts_case("shouldn'a");
276 [Ss]hould({WB}no|n')t{WB}have{WB}to/{NW} gtf_puts_case("shouldn' hafta");
277 [Mm]ight{WB}have/{NW}			gtf_puts_case("might'a");
278 [Mm]ight({WB}no|n')t{WB}have/{NW}	gtf_puts_case("might not'a");
279 [Mm]ight({WB}no|n')t{WB}have{WB}to/{NW} gtf_puts_case("mightn' hafta");
280 [Ww]ould{WB}have/{NW}			gtf_puts_case("would'a");
281 [Ww]ould({WB}no|n')t/{NW}		gtf_puts_case("wouldn'");
282 [Ww]ould({WB}no|n')t{WB}have/{NW}	gtf_puts_case("wouldn'a");
283 [Dd]id({WB}no|n')t/{NW}			gtf_puts_case("didn'");
284 [Ww](ill{WB}no|on')t			gtf_puts_case("ain't gunna");
285 [Ii]t{WB}will/{NW}			gtf_puts_case("it'll");
286 [Hh]ave{WB}to/{NW}			gtf_puts_case("hafta");
287 [Ii]t{WB}(would|had)/{NW}		gtf_puts_case("it'd");
288 [Ii]t{WB}would{WB}have/{NW}		gtf_puts_case("it'da");
289 [Ii]t{WB}would({WB}no|n')t/{NW}		gtf_puts_case("it wouldn'");
290 [Ii]t{WB}was({WB}no|n')t/{NW}		gtf_puts_case("'tweren't");
291 [Ww]e{WB}will/{NW}			gtf_puts_case("we'll");
292 [Ww]e{WB}would/{NW}			gtf_puts_case("we'd");
293 [Ww]e{WB}would{WB}have/{NW}		gtf_puts_case("we'da");
294 [Ww]e{WB}wouldn't/{NW}			gtf_puts_case("we wouldn'");
295 [Ww]e{WB}(had|would)/{NW}		gtf_puts_case("we'd");
296 [Ww]e{WB}are/{NW}			gtf_puts_case("we're");
297 [Tt]hat{WB}will/{NW}			gtf_puts_case("that'll");
298 [Hh]aven't/{NW}				gtf_puts_case("ain't");
299 [Tt]hat{WB}would({WB}|no|n')t/{NW}	gtf_puts_case("that wouldn'");
300 [Tt]hat{WB}would{WB}have/{NW}		gtf_puts_case("that'da");
301 [Tt]hat{WB}would{WB}have{WB}to/{NW}	gtf_puts_case("that'd hafta");
302 [Tt]hat{WB}(had|would)/{NW}		gtf_puts_case("that'd");
303 [Tt]hat{WB}are/{NW}			gtf_puts_case("that're");
304 [Tt]hey{WB}(would|had)/{NW}		gtf_puts_case("they'd");
305 [Tt]hey{WB}are/{NW}			gtf_puts_case("they're");
306 [Tt]hey{WB}will/{NW}			gtf_puts_case("they'll");
307 [Tt]hey{WB}would{WB}have/{NW}		gtf_puts_case("they'da");
308 [Tt]hey{WB}would{WB}have{WB}to/{NW}	gtf_puts_case("they'd hafta");
309 [Tt]hey{WB}wouldn't/{NW}		gtf_puts_case("they wouldn'");
310 [Hh]e{WB}will/{NW}			gtf_puts_case("he'll");
311 [Hh]e{WB}would/{NW}			gtf_puts_case("he'd");
312 [Hh]e{WB}wouldn't/{NW}			gtf_puts_case("he wouldn'");
313 [Hh]e{WB}would{WB}have/{NW}		gtf_puts_case("he'da");
314 [Hh]e{WB}would{WB}have{WB}to/{NW}	gtf_puts_case("he'd hafta");
315 [Hh]e{WB}(has|is)/{NW}			gtf_puts_case("he's");
316 [Ii]{WB}will/{NW}			gtf_puts_case("Ah'll");
317 [Ii]{WB}would/{NW}			|
318 [Ii]{WB}had/{NW}			gtf_puts_case("Ah'd");
319 [Ii]{WB}wouldn't/{NW}			gtf_puts_case("Ah wouldn'");
320 [Ii]{WB}would{WB}have/{NW}		gtf_puts_case("Ah'da");
321 [Ii]{WB}would{WB}have{WB}to/{NW}	gtf_puts_case("Ah'd hafta");
322 [Tt]here{WB}are/{NW}			gtf_puts_case("there's");
323 [Aa]m{WB}not/{NW}			|
324 ([Ii]s|[Aa]re)({WB}no|n')t/{NW}		gtf_puts_case("ain't");
325 (is|are){WB}no/{NW}			gtf_puts_case("ain't no");
326 I({WB}a|')m/{NW}			gtf_puts_case("Ah'm");
327 I({WB}a|')m{WB}not/{NW}			gtf_puts_case("Ah ain't");
328 [Ww]ho{WB}are/{NW}			gtf_puts_case("who're");
329 [Ww]ho{WB}are({WB}no|n')t/{NW}		gtf_puts_case("who ain't");
330 [Dd]oes({WB}no|n')t/{NW}		gtf_puts_case("don't");
331 
332 [Yy]ou{WB}will/{NW}	gtf_puts_case("yew'll");
333 [Yy]ou{WB}would/{NW}	gtf_puts_case("yew'd");
334 [Yy]ou({WB}a|')re/{NW}	gtf_puts_case("yer");
335 [Hh]ave{WB}to/{NW}	gtf_puts_case("gotta");
336 [Hh]ave{WB}been/{NW}	gtf_puts_case("been");
337 [Yy]ou{WB}have/{NW}	gtf_puts_case("yew've");
338 [Cc]an/{NW}		gtf_puts_case("Kin");
339 [Dd]anc			gtf_puts_case("dainc"); BEGIN(INW);
340 [Dd]oes/{NW}		gtf_puts_case("duz"); BEGIN(INW);
341 [Ww]as({WB}no|n')t/{NW}	gtf_puts_case("wad'n");
342 [Ww](as|ere)/{NW}	gtf_puts_case("wuz");
343 [Ss]he{WB}and{WB}I/{NW}	gtf_puts_case("me an' her");
344 [Hh]e{WB}and{WB}I/{NW}	gtf_puts_case("me an' him");
345 and{WB}I/{NW}		gtf_puts("an' me");
346 [Ii]f/{NW}		gtf_puts_case("if'n");
347 [Ii]/{NW}		gtf_puts_case("Ah");
348 E[sx]p			gtf_puts_case("'Sp"); BEGIN(INW);
349 e[sx]p			gtf_puts_case("'sp"); BEGIN(INW);
350 Ex[cs]?			gtf_puts_case("'S"); BEGIN(INW);
351 ex[cs]?			gtf_puts_case("'s"); BEGIN(INW);
352 
353 {WC}			{ BEGIN(INW); gtf_echo(); }
354 
355 }
356 
357 <INW>{
358 
359 stion/{NW}		gtf_puts("schun"); BEGIN(NIW);
360 tion/{NW}		gtf_puts("shun"); BEGIN(NIW);
361 ctual/{NW}		gtf_puts("ckshul"); BEGIN(NIW);
362 ntual/{NW}		gtf_puts("nchul"); BEGIN(NIW);
363 cious/{NW}		gtf_puts("shus"); BEGIN(NIW);
364 ring/{NW}		gtf_puts("rang"); BEGIN(NIW);
365 ing/{NW}		gtf_puts("in'"); BEGIN(NIW);
366 nm                      gtf_puts("m");
367 [f]"."			gtf_printf("%s  *scratch, scratch*", yytext); BEGIN(NIW);
368 [i-j]"."		gtf_printf("%s  *snort*", yytext); BEGIN(NIW);
369 [m]"."			gtf_printf("%s  *burp*", yytext); BEGIN(NIW);
370 [q-r]"."		gtf_printf("%s  KnowwhutImean?", yytext); BEGIN(NIW);
371 [y-z]"."		gtf_printf("%s  *spit*", yytext); BEGIN(NIW);
372 '(s|re){WB}not/{NW}	gtf_puts(" ain't"); BEGIN(NIW);
373 og/{NW}			gtf_puts_case("awg"); BEGIN(NIW);
374 e[sx]p			gtf_puts_case("'sp");
375 ex[cs]?			gtf_puts_case("'s");
376 
377 {NW}			BEGIN(NIW); unput(yytext[0]);
378 
379 }
380 
381 {EOT}			/* ignore trailing EOT character */
382 .			gtf_echo();
383 
384 %%
385 
386 #ifdef LIBRARY_MODE
387 
388 int gtf_filter_redneck(const char *input, char *buf, size_t bufsz)
389   {
390   gtf_databuf_t buffer;
391   YY_BUFFER_STATE _yybuf;
392 
393   gtf_strbuf_init(&buffer, buf, bufsz);
394   _yybuf = yy_scan_string(input);
395   yylex(&buffer);
396   yy_delete_buffer(_yybuf);
397   gtf_reset();
398 
399   return(buffer.overflow);
400   }
401 
402 int __gtf_filter_redneck(const char *input, char *buf, size_t bufsz)
403 {
404   return(gtf_filter_redneck(input, buf, bufsz));
405 }
406 
407 #else /* LIBRARY_MODE */
408 
409 int main(int argc, char **argv)
410   {
411   gtf_parse_args();
412 
413   yylex(NULL);
414 
415   return(EXIT_SUCCESS);
416   }
417 
418 #endif /* LIBRARY_MODE */
419 
420 /* end of source file */
421