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