+++ /dev/null
-This program is (c) 1994, Brent E. Edwards. Feel free to distribute the
-complete program world-wide. (Please do NOT break apart this text file
-from the program.)
-
-This program is under absolutely no warrantee of any kind.
-
-If you have any questions about this program, please send them to
-edwardsb@cs.rpi.edu.
-
-This program is dedicated to Conrad Wong.
-
-This program is catware. If you find it useful in any way, pay for this
-program by spending one hour petting one or several cats.
-
-
-===================================================
-
-
-Purpose:
- This program places a very cute (and familiar to FurryMuck fans)
- accent to any text file. It is designed for UNIX systems.
- It requires cc, lex, and yacc to be in your path.
-
-Compiling:
- To compile on a UNIX system, type 'make'
-
-Running:
- To do a line-by-line translation of your text, type 'ky00te'.
- Control-D will halt the program.
-
- To convert a text file and display it on the screen, type
- 'ky00te < filename | more', where filename is the file to convert.
-
- To convert a text file and save it to a file, type
- 'ky00te < filename.in > filename.out', where filename.in is the
- file to convert and filename.out is the place to put it.
-
- You can also add an accent to the output of any program by
- typing '<normal program execution> | ky00te'.
-
-Petting the cat:
- Stroke with the furs, not against them.
-
-====================================================
-
-Program version information:
-
-Program version 1.00: 13 December 1994
-
-Program version 1.10: 15 December 1994
- Version 1.00 was a memory hog. Also, adds 'fur' and 'meow' to
-list of cat-ch phrases.
-
-Program version 1.11: 16 December 1994
- With Tobias Kuhler's (ukjp@rz.uni-karlsruhe.de) repeated suggestion,
- the program now only doubles (not triples) 'r' and no longer capitalizes
- fur. He also suggested the following improvements:
- at a, at the -> atta
- in a, in the -> ynna
- is a, is the -> yssa
- on a, on the -> onna
- with a, with the -> wyffa
- the -> da
- you -> ya
- and -> 'n
- with -> wyf
- to -> ta
-
- This version also no longer uses the same 'meow'; it switches between
- 'meow', 'mew', and 'mu' (weighted to the first).
-
- I've also added:
- lot of -> lotta
- is so -> yssa
- when -> w'en
- with -> wyf (when used to start a word)
- your -> yer
- not, n't -> na'
-
-
- The README file has been reorganized, and the dedication made explicit.
-
+++ /dev/null
-%{
-
-#include "y.tab.h"
-extern int yylval;
-
-%}
-
-%%
-i { yylval = 'y'; return(LETTER); }
-I { yylval = 'Y'; return(LETTER); }
-cks { yylval = 'x'; return(LETTER); }
-ks { yylval = 'x'; return(LETTER); }
-cute { return(CUTE); }
-fluff { return(FLUFF); }
-smile { return(SMILE); }
-grin { return(SMILE); }
-laugh { return(SMILE); }
-chuckle { return(SMILE); }
-pr { return(PURR); }
-p[aeiou]*r { return(PURR); }
-f[aeiou]+r { return(FUR); }
-m[aeiou]+/[^.,s?! ] { return(MEOW); } /*UN*/
-"at a" { return(ATTA); }
-"at the" { return(ATTA); }
-"in a" { return(YNNA); }
-"in the" { return(YNNA); }
-"is a" { return(YSSA); }
-"is the" { return(YSSA); }
-"is so" { return(YSSA); }
-"on a" { return(ONNA); }
-"on the" { return(ONNA); }
-"with a" { return(WYFFA); }
-"with the" { return(WYFFA); }
-"lot of" { return(LOTTA); }
-" with " { return(WYF); }
-" with" { return(WYFF); }
-^"with " { return(WYF); }
-^"with" { return(WYFF); }
-" with"$ { return(WYF); }
-" the " { return(DA); }
-^"the " { return(DA); }
-" the"$ { return(DA); }
-" your" { return(YER); }
-^your { return(YER); }
-" you" { return(YA); }
-^you { return(YA); }
-" and " { return(AN); }
-^"and " { return(AN); }
-" and"$ { return(AN); }
-" to " { return(TA); }
-^"to " { return(TA); }
-" to"$ { return(TA); }
-" when " { return(WEN); }
-^"when " { return(WEN); }
-" when"$ { return(WEN); }
-"n't" { return(NA); } /*UN*/
-" not" { return(NA); } /*UN*/
-[ \t] { return(' '); }
-. { yylval = yytext[0]; return(LETTER); }
-%%
-
-
-
-
+++ /dev/null
-%{
-
-#include <stdio.h>
-typedef int INT;
-
-#define YYSTYPE INT
-
-%}
-
-%token CUTE
-%token FLUFF
-%token SMILE
-%token PURR
-%token FUR
-%token MEOW
-%token ATTA
-%token YNNA
-%token YSSA
-%token ONNA
-%token WYFFA
-%token LOTTA
-%token WYF
-%token WYFF
-%token DA
-%token YER
-%token YA
-%token AN
-%token TA
-%token WEN
-%token NA /*UN*/
-%token LETTER
-
-%%
-
-s:
- | s t
- | s ' '
- {
- if (rand() % 30 < 1)
- {
- int inRand;
-
- inRand = rand() % 5;
-
- switch(inRand)
- {
- case 0:
- printf(" *truffle break!* ");
- break;
-
- case 1:
- printf(" *catnap break!* ");
- break;
-
- case 2:
- printf(" *purrpurr* ");
- break;
-
- case 3:
- printf(" *meow!* ");
- break;
-
- case 4:
- printf(" *fluff!* ");
- break;
- }
- }
- else
- {
- printf(" ");
- }
- }
- ;
-
-t: CUTE { printf("ky00te!"); }
- | FLUFF { printf("*fluff!*"); }
- | SMILE { printf("};)"); }
- | PURR { printf("purr"); }
- | FUR { printf("fur"); }
- | MEOW { int inRand;
-
- inRand = rand() % 5;
-
- switch(inRand)
- {
- case 0:
- case 1:
- case 2:
- printf("meow");
- break;
- case 3:
- case 4:
- printf("mew");
- }
- }
- | ATTA { printf("atta"); }
- | YNNA { printf("ynna"); }
- | YSSA { printf("yssa"); }
- | ONNA { printf("onna"); }
- | WYFFA { printf("wyffa"); }
- | LOTTA { printf("lotta"); }
- | WYF { printf(" wyf "); }
- | WYFF { printf(" wyff"); }
- | DA { printf(" da "); }
- | YER { printf(" yer"); }
- | YA { printf(" ya"); }
- | AN { printf(" 'n "); }
- | TA { printf(" ta "); }
- | WEN { printf(" w'en "); }
- | NA { printf(" na'"); } /*UN*/
- | LETTER { if (yylval == 'r')
- printf("rr");
- else
- printf("%c", $1); }
- ;
-
-
-%%
-
-extern char mylval;
-
-void yyerror(char *s) {
- printf("%s\n",s);
-}
-
-int main()
-{
- yyparse();
-
- return 0;
-}
-
-
+++ /dev/null
-all: ky00te
-
-clean:
- rm -f y.tab.* lex.yy.*
- rm -f ../ky00te
-
-ky00te: y.tab.o lex.yy.o
- cc -o ../ky00te lex.yy.o y.tab.o -lfl
-
-lex.yy.o: lex.yy.c y.tab.h
- cc -c lex.yy.c
-
-y.tab.o: y.tab.c
- cc -c y.tab.c
-
-lex.yy.c: ky00te.lex
- flex ky00te.lex
-
-y.tab.c: ky00te.yacc
- yacc -d ky00te.yacc
-