bc19f2cf |
1 | %{ |
2 | |
3 | #include <stdio.h> |
4 | typedef int INT; |
5 | |
6 | #define YYSTYPE INT |
7 | |
8 | %} |
9 | |
10 | %token CUTE |
11 | %token FLUFF |
12 | %token SMILE |
13 | %token PURR |
14 | %token FUR |
15 | %token MEOW |
16 | %token ATTA |
17 | %token YNNA |
18 | %token YSSA |
19 | %token ONNA |
20 | %token WYFFA |
21 | %token LOTTA |
22 | %token WYF |
23 | %token WYFF |
24 | %token DA |
25 | %token YER |
26 | %token YA |
27 | %token AN |
28 | %token TA |
29 | %token WEN |
30 | %token NA /*UN*/ |
31 | %token LETTER |
32 | |
33 | %% |
34 | |
35 | s: |
36 | | s t |
37 | | s ' ' |
38 | { |
39 | if (rand() % 30 < 1) |
40 | { |
41 | int inRand; |
42 | |
43 | inRand = rand() % 5; |
44 | |
45 | switch(inRand) |
46 | { |
47 | case 0: |
48 | printf(" *truffle break!* "); |
49 | break; |
50 | |
51 | case 1: |
52 | printf(" *catnap break!* "); |
53 | break; |
54 | |
55 | case 2: |
56 | printf(" *purrpurr* "); |
57 | break; |
58 | |
59 | case 3: |
60 | printf(" *meow!* "); |
61 | break; |
62 | |
63 | case 4: |
64 | printf(" *fluff!* "); |
65 | break; |
66 | } |
67 | } |
68 | else |
69 | { |
70 | printf(" "); |
71 | } |
72 | } |
73 | ; |
74 | |
75 | t: CUTE { printf("ky00te!"); } |
76 | | FLUFF { printf("*fluff!*"); } |
77 | | SMILE { printf("};)"); } |
78 | | PURR { printf("purr"); } |
79 | | FUR { printf("fur"); } |
80 | | MEOW { int inRand; |
81 | |
82 | inRand = rand() % 5; |
83 | |
84 | switch(inRand) |
85 | { |
86 | case 0: |
87 | case 1: |
88 | case 2: |
89 | printf("meow"); |
90 | break; |
91 | case 3: |
92 | case 4: |
93 | printf("mew"); |
94 | } |
95 | } |
96 | | ATTA { printf("atta"); } |
97 | | YNNA { printf("ynna"); } |
98 | | YSSA { printf("yssa"); } |
99 | | ONNA { printf("onna"); } |
100 | | WYFFA { printf("wyffa"); } |
101 | | LOTTA { printf("lotta"); } |
102 | | WYF { printf(" wyf "); } |
103 | | WYFF { printf(" wyff"); } |
104 | | DA { printf(" da "); } |
105 | | YER { printf(" yer"); } |
106 | | YA { printf(" ya"); } |
107 | | AN { printf(" 'n "); } |
108 | | TA { printf(" ta "); } |
109 | | WEN { printf(" w'en "); } |
110 | | NA { printf(" na'"); } /*UN*/ |
111 | | LETTER { if (yylval == 'r') |
112 | printf("rr"); |
113 | else |
114 | printf("%c", $1); } |
115 | ; |
116 | |
117 | |
118 | %% |
119 | |
120 | extern char mylval; |
121 | |
7f4e9d5e |
122 | int yyerror(char *s) { |
bc19f2cf |
123 | printf("%s\n",s); |
124 | } |
125 | |
126 | int main() |
127 | { |
128 | yyparse(); |
129 | |
130 | return 0; |
131 | } |
132 | |
133 | |