Newsgroups: alt.religion.kibology,alt.fan.robert.mcelwaine From: bediger@teal.csn.org (Bruce Ediger) Subject: Yet Another McElwaineizer Message-ID: Summary: program to make regular text look like McElwaine wrote it Keywords: lex, text filter, McElwaine, meta-tweezerness Date: Mon, 28 Jun 1993 03:38:03 GMT Now you too can have the appearance of psychotic raving when posting to your favorite usenet group. Ingratiate yourself with conspiracy weenies! Appear anti-semitic! Appall english usage pendants! Here is a text filter based on the Matt Welsh/David Whitten 'B1FF' filter that appeared in an April 28, 1993 posting to comp.sources.misc. It does random CAPITALIZATION, "quoting" and mutilates certain key words like Banker$, PIG$ and ZIONI$T. I tried to be faithful to a numeric breakdown of 25 McElwaine articles from the alt.religion.kibology archies on world.std.com. Please note that 'fund' is part of the ongoing ADI (Artificial Dis-Intelligence) project of the Boston Institute of Kibology and Sebastian Cabot Studies. It is soon to be incorporated in some of your favorite usenet auto-posting drones like the Matt Welshoid, the John_-_Winstonoid and the Bulhakoid. #! /bin/sh # This is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line. # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh (not csh) to create the files: # README # Makefile # fund.l # This archive created: Sun Jun 27 21:13:46 1993 export PATH; PATH=/bin:$PATH if test -f 'README' then echo shar: will not over-write existing file "'README'" else cat << \SHAR_EOF > 'README' This programs should work on any flavour of UNIX which has 'lex'. fund: will turn English into Robert E. McElwaine flavored ravings. To create it in the current directory, type make fund Use cat [file_of_text] | fund | more or man [command] | fund | more for endless hours of fun. Make copies if you want etc.etc. 'fund' is based on the 'B1FF' filter by Matt Welsh, as modified by David Whitten. My sole contribution is the breakdown of McElwaine's postings and fiddling with the 'lex' input file to get it to do McElwaine style ravings. The amount of random capitalization and single-word quoting is modeled after the literary stylings of Robert E. McElwaine, of Eau Claire, Wisconsin. It's based on 25 of McElwaine's articles, amounting to some 16,000 words of alleged prose. By various sortings and greppings, I determined that McElwaine capitalized about 12% of the words in his postings. I also determined that about 0.6% of individual words were "quoted". I tried to incorporate a few other of his distinguishing typographical absurdities, such as subsitution of the US dollar sign ('$') for 's' characters in certain words and phrases. For example, bank$, ve$ted intere$t, and PIG$ always have the 's' as a '$'. This lends an unfortunate anti-semitic slant to the output of 'fund', as McElwaine invariably used 'JEW$' for 'jews' and 'ZIONI$T$' for Zionists. Titles of articles used to produce the bulk raw text are: ABORTION: WHEN Does Human Life BEGIN? BIOLOGICAL ALCHEMY NATURAL ANTI-CANCER REMEDIES A 3RD OPINION ATTACKING THE MESSENGER CONTRADICTIONS about God DEMOCRACY for ECONOMICS THE DIVINE MASTERS OF THE UNIVERSE FREE-ENERGY TECHNOLOGY by Robert E. McElwaine, Physicist GESTAPO ATTACKS at Waco "Global 2000" GENOCIDE Gravity-NEUTRALIZING Air/Spacecraft or ZERO/REDUCED-Gravity Chamber HYPOCRISY of Prayer in Public/Schools LARSONIAN Physics and Astromomy THE LAW OF RETRIBUTION LIQUID FASTING DIET MARK-OF-THE-BEA$T bar-code$/scanner$ MISSING-PERSON LOCATION TECHNIQUE RUSSIA'S OPERATIONAL STARWARS DEFENSE SYSTEM SEXY PSYCHIC PLANTS UFO EVIDENCE VS. Carl Sagan UNITED STATES BORN NOVEMBER 15, 1777 "THE UNIVERSE OF MOTION", by Dewey B. Larson, 1984, North I tried not to include duplicates that appeared under different titles. I also tried to eliminate the Dr Peter Beter stuff, as McElwaine didn't seem to have mutated the text at all. I did include the "SEXY PSYCHIC PLANTS" since McElwaine extensively quoted and capitalized the text, although he is merely quoting Peter Tompkins and Christopher Bird. I removed all titles, usenet posting headers, and the trademark "UN-altered REPRODUCTION etc etc" signature blocks. SHAR_EOF fi # end of overwriting check if test -f 'Makefile' then echo shar: will not over-write existing file "'Makefile'" else cat << \SHAR_EOF > 'Makefile' #Makefile for fund #copied from Makefile for b1ff #Put in your favourite lex or C compiler here LEX = lex CC = cc CLIBS = -ll CFLAGS = RM = /bin/rm fund: fund.l $(LEX) fund.l $(CC) $(CFLAGS) -o fund lex.yy.c $(CLIBS) $(RM) -f lex.yy.c SHAR_EOF fi # end of overwriting check if test -f 'fund.l' then echo shar: will not over-write existing file "'fund.l'" else cat << \SHAR_EOF > 'fund.l' %{ /* To compile this, save it to the file 'fund.l' and execute the following two commands: lex b1ff.l cc -o fund lex.yy.c -ll */ /* * B1FF.X by Matt Welsh (mdw@tc.cornell.edu) +1 607 253 2737 * modified and improved by David Whitten * Hacked into a "McElwaineizer" by Bruce Ediger */ char buf[128]; int capping = 0; int quoting = 0; int word_quoting = 0; extern int pid; %} BW [ ] EW [ .,;!?\"] WC [A-Za-z0-9'] NW [^A-Za-z0-9'] %start %e 1000 %p 2000 %n 500 %k 1200 %a 6000 %o 15000 %% {NW} { ECHO; if (*yytext == '"') { if (!quoting) quoting = 1; else if (quoting) quoting = 0; } } {NW}/{WC} { ECHO; capping=((rand()%7 == 0)?1:0); if (*yytext == '"') { if (!quoting) quoting = 1; else if (quoting) quoting = 0; } if ((!quoting) && ((rand() >> pid)%178 == 0)) { word_quoting = 1; putc('"', stdout); } else word_quoting = 0; } {WC}/{NW} { putc(capping? toupper(*yytext) : *yytext, stdout); if (word_quoting) { putc('"', stdout); word_quoting = 0; } } AIDS/{NW} { printf("A.I.D.S."); } [Oo][Rr][Gg][Aa][Nn][Ii][Zz][Ee][Dd].[Cc][Rr][Ii][Mm][Ee]/{NW} { printf("organi$ed-CRIME"); } [Vv][Ee][Ss][Tt][Ee][Dd].[Ii][Nn][Tt][Ee][Rr][Ee][Ss][Tt]/{NW} { printf(capping?"VE$TED INTERE$T" : "Ve$ted intere$t"); } [Vv][Ee][Ss][Tt][Ee][Dd].[Ii][Nn][Tt][Ee][Rr][Ee][Ss][Tt][Ss]/{NW} { printf(capping?"VE$TED INTERE$T$" : "Ve$ted intere$t$"); } [Cc][Oo][Rr][Pp][Oo][Rr][Aa][Tt][Ii][Oo][Nn][Ss]/{NW} { printf(capping ? "CORPORATION$" : "corporation$"); } [Ss][Aa][Vv][Ii][Nn][Gg][Ss].[Aa][Nn][Dd].[Ll][Oo][Aa][Nn].[Aa][Ss][Ss][Oo][Cc][Ii][Aa][Tt][Ii][Oo][Nn][Ss]/{NW} { printf(capping ? "$AVING$ AND LOAN A$$OCIATION$" : "$aving$ and loan a$$ociation$"); } [Ss][Aa][Vv][Ii][Nn][Gg][Ss].[Aa][Nn][Dd].[Ll][Oo][Aa][Nn].[Aa][Ss][Ss][Oo][Cc][Ii][Aa][Tt][Ii][Oo][Nn]/{NW} { printf(capping ? "$AVING$ AND LOAN A$$OCIATION" : "$aving$ and loan a$$ociation"); } [Uu][Tt][Ii][Ll][Ii][Tt][Ii][Ee][Ss]/{NW} { printf(capping ? "UTILITIE$" : "utilitie$"); } [Ee][Nn][Ee][Rr][Gg][Yy].[Pp][Rr][Oo][Cc][Dd][Uu][Cc][Ee][Rr][Ss]/{NW} { printf(capping ? "ENERGY PROCDUCER$" : "energy procducer$"); } [Cc][Oo][Mm][Pp][Aa][Nn][Ii][Ee][Ss]/{NW} { printf(capping ? "COMPANIE$" : "companie$"); } [Jj][Ee][Ww][Ss]/{NW} { printf("JEW$"); } [Bb][Aa][Nn][Kk][Ss]/{NW} { printf(capping ? "BANK$" : "bank$"); } [Bb][Aa][Nn][Kk][Ee][Rr][Ss]/{NW} { printf(capping ? "BANKER$" : "banker$"); } [Bb][Oo][Ss][Ss][Ee][Ss]/{NW} { printf(capping ? "BO$$E$" : "bo$$e$"); } [Pp][Ii][Gg][Ss]/{NW} { printf("PIG$"); } [Cc][Oo][Nn][Ss][Pp][Ii][Rr][Aa][Cc][Yy]/{NW} { printf(capping ? "CON$PIRACY" : "con$piracy"); } [Cc][Oo][Nn][Ss][Pp][Ii][Rr][Aa][Cc][Ii][Ee][Ss]/{NW} { printf(capping ? "CON$PIRACIE$" : "con$piracie$"); } [Zz][Ii][Oo][Nn][Ii][Ss][Tt]/{NW} { printf(capping ? "ZIONI$T" : "zioni$t"); } [Zz][Ii][Oo][Nn][Ii][Ss][Tt][Ss]/{NW} { printf(capping ? "ZIONI$T$" : "zioni$t$"); } [Ww][Aa][Rr][Ss]/{NW} { printf(capping ? (rand()%2 ? "WARS" : "WAR$") : (rand()%2 ? "war$" : "wars")); } [Mm][Aa][Rr][Kk].[Oo][Ff].[Tt][Hh][Ee].[Bb][Ee][Aa][Ss][Tt]/{NW} { printf(rand()&0x01?"MARK OF THE BEA$T":"MARK-OF-THE-BEA$T"); } [Nn][Uu][Mm][Bb][Ee][Rr].[Oo][Ff].[Tt][Hh][Ee].[Bb][Ee][Aa][Ss][Tt]/{NW} { printf(capping ? "NUMBER OF THE BEA$T" : "number of the bea$t"); } .$ { putc((capping ? toupper(*yytext) : *yytext), stdout); if (word_quoting) { putc('"', stdout); word_quoting = 0; } } . { putc((capping ? toupper(*yytext) : *yytext), stdout); } %% int pid; main() { pid = getpid(); srand(pid); pid = pid % 5; yylex(); return(0); } SHAR_EOF fi # end of overwriting check # End of shell archive exit 0