devutf: add unicode aliases for accented characters
[troff.git] / pic / picl.c
blob1d9e5fc4d11688a0df04c351be9ab898356364d7
1 typedef unsigned char Uchar;
2 # include <stdio.h>
3 # define U(x) x
4 # define NLSTATE yyprevious=YYNEWLINE
5 # define BEGIN yybgin = yysvec + 1 +
6 # define INITIAL 0
7 # define YYLERR yysvec
8 # define YYSTATE (yyestate-yysvec-1)
9 # define YYOPTIM 1
10 # define YYLMAX 200
11 # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
12 # define yymore() (yymorfg=1)
13 # define ECHO fprintf(yyout, "%s",yytext)
14 # define REJECT { nstr = yyreject(); goto yyfussy;}
15 int yyleng; extern char yytext[];
16 int yymorfg;
17 extern Uchar *yysptr, yysbuf[];
18 int yytchar;
19 FILE *yyin, *yyout;
20 extern int yylineno;
21 struct yysvf {
22 struct yywork *yystoff;
23 struct yysvf *yyother;
24 int *yystops;};
25 struct yysvf *yyestate;
26 extern struct yysvf yysvec[], *yybgin;
27 int yylook(void), yywrap(void), yyback(int *, int);
28 # define output(c) putc(c,yyout)
29 # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
30 #define A 2
31 #define str 4
32 #define def 6
33 #define sc 8
34 #define br 10
35 #define thru 12
36 #define sh 14
37 #undef input
38 #undef unput
39 /* #include <stdio.h> lex puts one out for us */
40 #include <ctype.h>
41 #include <stdlib.h>
42 #include "pic.h"
43 #include "y.tab.h"
45 extern char *filename;
46 extern struct symtab symtab[];
48 void pbstr(char *);
49 void dodef(struct symtab *stp);
50 void undefine(char *s);
51 void shell_init(void), shell_exec(void), shell_text(char *);
52 void endfor(void);
54 int yyback(int *, int);
55 int yylook(void);
56 int yywrap(void);
58 #define CADD cbuf[clen++]=yytext[0]; \
59 if (clen>=CBUFLEN-1) { ERROR "string too long", cbuf WARNING; BEGIN A; }
60 #define CBUFLEN 500
61 char cbuf[CBUFLEN];
62 int c, clen, cflag, delim;
63 int ifsw = 0; /* 1 if if statement in progress */
64 #define YYNEWLINE 10
65 yylex(void){
66 int nstr; extern int yyprevious;
67 yyin = stdin;
68 yyout = stdout;
69 switch (yybgin-yysvec-1) { /* witchcraft */
70 case 0:
71 BEGIN A;
72 break;
73 case sc:
74 BEGIN A;
75 return('}');
76 case br:
77 BEGIN A;
78 return(']');
80 while((nstr = yylook()) >= 0)
81 yyfussy: switch(nstr){
82 case 0:
83 if(yywrap()) return(0); break;
84 case 1:
86 break;
87 case 2:
89 break;
90 case 3:
91 { return(ST); }
92 break;
93 case 4:
94 { return(ST); }
95 break;
96 case 5:
97 { BEGIN sc; return(ST); }
98 break;
99 case 6:
100 { BEGIN br; return(ST); }
101 break;
102 case 7:
103 { return(yylval.i = yytext[0]); }
104 break;
105 case 8:
106 { if (curfile == infile) ERROR ".PS found inside .PS/.PE" WARNING; }
107 break;
108 case 9:
109 { if (curfile == infile) {
110 yylval.p = PEstring = tostring(yytext);
111 return(EOF);
114 break;
115 case 10:
116 { yylval.p = tostring(yytext); return(TROFF); }
117 break;
118 case 11:
119 return(yylval.i = PRINT);
120 break;
121 case 12:
122 return(yylval.i = BOX);
123 break;
124 case 13:
125 return(yylval.i = CIRCLE);
126 break;
127 case 14:
128 return(yylval.i = ARC);
129 break;
130 case 15:
131 return(yylval.i = ELLIPSE);
132 break;
133 case 16:
134 return(yylval.i = ARROW);
135 break;
136 case 17:
137 return(yylval.i = SPLINE);
138 break;
139 case 18:
140 return(yylval.i = LINE);
141 break;
142 case 19:
143 return(yylval.i = MOVE);
144 break;
145 case 20:
146 return(yylval.i = BLOCK);
147 break;
148 case 21:
149 return(RESET);
150 break;
151 case 22:
152 return(SPRINTF);
153 break;
154 case 23:
155 return(SAME);
156 break;
157 case 24:
158 return(BETWEEN);
159 break;
160 case 25:
161 return(AND);
162 break;
163 case 26:
165 break;
166 case 27:
168 break;
169 case 28:
171 break;
172 case 29:
173 { yylval.i = EAST; return(CORNER); }
174 break;
175 case 30:
176 { yylval.i = EAST; return(CORNER); }
177 break;
178 case 31:
179 { yylval.i = WEST; return(CORNER); }
180 break;
181 case 32:
182 { yylval.i = WEST; return(CORNER); }
183 break;
184 case 33:
185 { yylval.i = NORTH; return(CORNER); }
186 break;
187 case 34:
188 { yylval.i = NORTH; return(CORNER); }
189 break;
190 case 35:
191 { yylval.i = SOUTH; return(CORNER); }
192 break;
193 case 36:
194 { yylval.i = SOUTH; return(CORNER); }
195 break;
196 case 37:
197 { yylval.i = CENTER; return(CORNER); }
198 break;
199 case 38:
200 { yylval.i = START; return(CORNER); }
201 break;
202 case 39:
203 { yylval.i = END; return(CORNER); }
204 break;
205 case 40:
206 { yylval.i = NE; return(CORNER); }
207 break;
208 case 41:
209 { yylval.i = SE; return(CORNER); }
210 break;
211 case 42:
212 { yylval.i = NW; return(CORNER); }
213 break;
214 case 43:
215 { yylval.i = SW; return(CORNER); }
216 break;
217 case 44:
218 { yylval.i = NORTH; return(CORNER); }
219 break;
220 case 45:
221 { yylval.i = NORTH; return(CORNER); }
222 break;
223 case 46:
224 { yylval.i = SOUTH; return(CORNER); }
225 break;
226 case 47:
227 { yylval.i = SOUTH; return(CORNER); }
228 break;
229 case 48:
230 { yylval.i = WEST; return(CORNER); }
231 break;
232 case 49:
233 { yylval.i = WEST; return(CORNER); }
234 break;
235 case 50:
236 { yylval.i = EAST; return(CORNER); }
237 break;
238 case 51:
239 { yylval.i = EAST; return(CORNER); }
240 break;
241 case 52:
242 { yylval.i = CENTER; return(CORNER); }
243 break;
244 case 53:
245 { yylval.i = START; return(CORNER); }
246 break;
247 case 54:
248 { yylval.i = END; return(CORNER); }
249 break;
250 case 55:
251 { yylval.i = HEIGHT; return(ATTR); }
252 break;
253 case 56:
254 { yylval.i = WIDTH; return(ATTR); }
255 break;
256 case 57:
257 { yylval.i = RADIUS; return(ATTR); }
258 break;
259 case 58:
260 { yylval.i = DIAMETER; return(ATTR); }
261 break;
262 case 59:
263 { yylval.i = SIZE; return(ATTR); }
264 break;
265 case 60:
266 { yylval.i = LEFT; return(DIR); }
267 break;
268 case 61:
269 { yylval.i = RIGHT; return(DIR); }
270 break;
271 case 62:
272 { yylval.i = UP; return(DIR); }
273 break;
274 case 63:
275 { yylval.i = DOWN; return(DIR); }
276 break;
277 case 64:
278 { yylval.i = CW; return(ATTR); }
279 break;
280 case 65:
281 { yylval.i = CW; return(ATTR); }
282 break;
283 case 66:
284 { yylval.i = CCW; return(ATTR); }
285 break;
286 case 67:
287 { yylval.i = INVIS; return(ATTR); }
288 break;
289 case 68:
290 { yylval.i = INVIS; return ATTR; }
291 break;
292 case 69:
293 return(yylval.i = FILL);
294 break;
295 case 70:
297 break;
298 case 71:
299 return(yylval.i = DOT);
300 break;
301 case 72:
302 return(yylval.i = DASH);
303 break;
304 case 73:
305 return(yylval.i = CHOP);
306 break;
307 case 74:
308 { yylval.i = SPREAD; return TEXTATTR; }
309 break;
310 case 75:
311 { yylval.i = LJUST; return TEXTATTR; }
312 break;
313 case 76:
314 { yylval.i = RJUST; return TEXTATTR; }
315 break;
316 case 77:
317 { yylval.i = ABOVE; return TEXTATTR; }
318 break;
319 case 78:
320 { yylval.i = BELOW; return TEXTATTR; }
321 break;
322 case 79:
323 { yylval.i = CENTER; return TEXTATTR; }
324 break;
325 case 80:
326 { yylval.i = HEAD1; return(HEAD); }
327 break;
328 case 81:
329 { yylval.i = HEAD2; return(HEAD); }
330 break;
331 case 82:
332 { yylval.i = HEAD12; return(HEAD); }
333 break;
334 case 83:
335 return(yylval.i = DOTX);
336 break;
337 case 84:
338 return(yylval.i = DOTY);
339 break;
340 case 85:
341 return(yylval.i = DOTHT);
342 break;
343 case 86:
344 return(yylval.i = DOTWID);
345 break;
346 case 87:
347 return(yylval.i = DOTRAD);
348 break;
349 case 88:
350 return(yylval.i = FROM);
351 break;
352 case 89:
353 return(yylval.i = TO);
354 break;
355 case 90:
356 return(yylval.i = AT);
357 break;
358 case 91:
359 return(yylval.i = BY);
360 break;
361 case 92:
362 return(yylval.i = WITH);
363 break;
364 case 93:
365 return(yylval.i = LAST);
366 break;
367 case 94:
368 return(LOG);
369 break;
370 case 95:
371 return(EXP);
372 break;
373 case 96:
374 return(SIN);
375 break;
376 case 97:
377 return(COS);
378 break;
379 case 98:
380 return(ATAN2);
381 break;
382 case 99:
383 return(SQRT);
384 break;
385 case 100:
386 return(RAND);
387 break;
388 case 101:
389 return(MAX);
390 break;
391 case 102:
392 return(MIN);
393 break;
394 case 103:
395 return(INT);
396 break;
397 case 104:
398 return(EQ);
399 break;
400 case 105:
401 return(GE);
402 break;
403 case 106:
404 return(LE);
405 break;
406 case 107:
407 return(NEQ);
408 break;
409 case 108:
410 return(GT);
411 break;
412 case 109:
413 return(LT);
414 break;
415 case 110:
416 return(ANDAND);
417 break;
418 case 111:
419 return(OROR);
420 break;
421 case 112:
422 return(NOT);
423 break;
424 case 113:
425 return(yylval.i = HERE);
426 break;
427 case 114:
428 return(FOR);
429 break;
430 case 115:
431 { endfor(); }
432 break;
433 case 116:
434 { yylval.p = delimstr("loop body"); return(DOSTR); }
435 break;
436 case 117:
437 return(COPY);
438 break;
439 case 118:
440 { BEGIN thru; return(THRU); }
441 break;
442 case 119:
443 { yylval.st = copythru(yytext); BEGIN A; return(DEFNAME); }
444 break;
445 case 120:
446 return(UNTIL);
447 break;
448 case 121:
449 { ifsw = 1; return(IF); }
450 break;
451 case 122:
452 { if (!ifsw) { yylval.i = THEN; return(ATTR); }
453 yylval.p = delimstr("then part"); ifsw = 0;
454 return(THENSTR); }
455 break;
456 case 123:
457 { yylval.p = delimstr("else part"); return(ELSESTR); }
458 break;
459 case 124:
460 { BEGIN sh;
461 if ((delim = input()) == '{') delim = '}'; /* no nested {} */
462 shell_init(); }
463 break;
464 case 125:
465 { struct symtab *p;
466 if (yytext[0] == delim) {
467 shell_exec();
468 BEGIN A;
469 } else {
470 p = lookup(yytext);
471 if (p != NULL && p->s_type == DEFNAME) {
472 c = input();
473 unput(c);
474 if (c == '(')
475 dodef(p);
476 else
477 pbstr(p->s_val.p);
478 } else
479 shell_text(yytext);
482 break;
483 case 126:
484 { if (yytext[0] == delim) {
485 shell_exec();
486 BEGIN A;
487 } else
488 shell_text(yytext);
490 break;
491 case 127:
492 { BEGIN def; }
493 break;
494 case 128:
495 { definition(yytext); BEGIN A; }
496 break;
497 case 129:
498 { undefine(yytext); }
499 break;
500 case 130:
501 { yylval.i = 1; return(NTH); }
502 break;
503 case 131:
504 { yylval.i = atoi(yytext); return(NTH); }
505 break;
506 case 132:
508 yylval.f = atof(yytext); return(NUMBER); }
509 break;
510 case 133:
511 { struct symtab *p;
512 p = lookup(yytext);
513 if (p != NULL && p->s_type == DEFNAME) {
514 c = input();
515 unput(c);
516 if (c == '(') /* it's name(...) */
517 dodef(p);
518 else { /* no argument list */
519 pbstr(p->s_val.p);
520 dprintf("pushing back `%s'\n", p->s_val.p);
522 } else if (islower(yytext[0])) {
523 yylval.p = tostring(yytext);
524 return(VARNAME);
525 } else {
526 yylval.p = tostring(yytext);
527 return(PLACENAME);
530 break;
531 case 134:
532 { BEGIN str; clen=0; }
533 break;
534 case 135:
535 { cbuf[clen]=0; yylval.p = tostring(cbuf); BEGIN A; return(TEXT); }
536 break;
537 case 136:
538 { cbuf[clen]=0; ERROR "missing quote in string \"%s\"", cbuf WARNING;
539 BEGIN A; return(ST); }
540 break;
541 case 137:
542 { cbuf[clen++]='"'; }
543 break;
544 case 138:
545 { cbuf[clen++]='\t'; }
546 break;
547 case 139:
548 { cbuf[clen++]='\\'; }
549 break;
550 case 140:
551 { CADD; }
552 break;
553 case 141:
555 break;
556 case 142:
557 return(yylval.i = yytext[0]);
558 break;
559 case -1:
560 break;
561 default:
562 fprintf(yyout,"bad switch yylook %d",nstr);
563 } return(0); }
564 /* end of yylex */
565 int yyvstop[] = {
568 142,
572 142,
578 112,
579 142,
582 134,
583 142,
586 141,
587 142,
590 142,
593 142,
596 142,
599 132,
600 142,
604 142,
607 109,
608 142,
611 142,
614 108,
615 142,
618 133,
619 142,
622 133,
623 142,
626 142,
629 142,
633 142,
636 133,
637 142,
640 133,
641 142,
644 133,
645 142,
648 133,
649 142,
652 133,
653 142,
656 133,
657 142,
660 133,
661 142,
664 133,
665 142,
668 133,
669 142,
672 133,
673 142,
676 133,
677 142,
680 133,
681 142,
684 133,
685 142,
688 133,
689 142,
692 133,
693 142,
696 133,
697 142,
700 133,
701 142,
704 133,
705 142,
708 142,
711 142,
715 142,
719 142,
722 133,
723 142,
726 140,
729 136,
732 135,
733 140,
736 140,
739 128,
742 119,
745 119,
748 126,
751 125,
752 126,
755 107,
758 141,
761 110,
767 132,
803 132,
806 132,
809 132,
815 106,
818 104,
821 105,
824 133,
827 133,
836 133,
839 133,
842 133,
846 133,
849 133,
852 133,
856 133,
859 133,
862 133,
865 133,
868 133,
871 133,
874 133,
878 133,
881 133,
884 133,
887 133,
890 116,
891 133,
894 133,
897 133,
900 133,
903 133,
906 133,
909 133,
912 133,
915 133,
919 133,
922 121,
923 133,
926 133,
929 133,
932 133,
935 133,
938 133,
941 133,
944 133,
947 133,
950 133,
953 133,
957 133,
960 133,
963 133,
966 133,
969 133,
972 133,
975 133,
978 133,
981 133,
984 133,
987 133,
990 133,
993 133,
996 133,
1000 133,
1003 133,
1007 133,
1010 133,
1013 133,
1016 133,
1022 111,
1029 132,
1082 133,
1085 137,
1088 139,
1091 138,
1094 125,
1112 132,
1115 131,
1121 133,
1124 133,
1128 133,
1132 133,
1135 133,
1138 133,
1141 133,
1144 133,
1147 133,
1151 133,
1155 133,
1158 133,
1161 133,
1164 133,
1167 133,
1170 133,
1174 133,
1177 133,
1180 133,
1183 133,
1187 133,
1190 133,
1193 133,
1196 133,
1199 133,
1202 133,
1206 133,
1209 133,
1212 133,
1215 114,
1216 133,
1219 133,
1222 133,
1225 133,
1228 103,
1229 133,
1232 133,
1235 133,
1238 133,
1241 133,
1244 133,
1248 133,
1251 101,
1252 133,
1255 102,
1256 133,
1259 133,
1262 133,
1265 133,
1268 133,
1272 133,
1275 133,
1278 133,
1281 133,
1284 133,
1287 133,
1290 124,
1294 133,
1297 133,
1300 133,
1303 133,
1306 133,
1309 133,
1312 133,
1315 133,
1319 133,
1322 133,
1325 133,
1328 133,
1331 133,
1335 133,
1338 133,
1342 133,
1345 133,
1352 132,
1425 133,
1443 113,
1444 133,
1447 133,
1450 133,
1453 133,
1456 133,
1459 133,
1462 133,
1465 133,
1469 133,
1472 133,
1475 133,
1478 117,
1479 133,
1483 133,
1486 133,
1490 133,
1493 133,
1497 133,
1500 133,
1503 133,
1506 123,
1507 133,
1511 133,
1514 133,
1518 133,
1521 133,
1524 133,
1527 133,
1531 133,
1535 133,
1539 133,
1542 133,
1546 133,
1549 133,
1552 133,
1555 133,
1558 133,
1561 100,
1562 133,
1565 133,
1568 133,
1571 133,
1575 133,
1579 133,
1582 133,
1585 133,
1588 133,
1591 133,
1594 133,
1598 133,
1601 133,
1604 122,
1605 133,
1608 133,
1611 133,
1614 133,
1617 133,
1620 133,
1623 133,
1627 133,
1634 132,
1684 133,
1697 133,
1701 133,
1705 133,
1709 133,
1712 133,
1715 133,
1718 133,
1721 133,
1724 133,
1727 133,
1730 133,
1733 133,
1736 133,
1739 133,
1742 130,
1743 133,
1746 133,
1749 133,
1753 133,
1757 133,
1760 133,
1763 133,
1767 133,
1770 133,
1774 133,
1778 133,
1782 133,
1786 133,
1789 133,
1792 133,
1795 133,
1798 133,
1801 133,
1804 133,
1807 118,
1810 133,
1813 120,
1814 133,
1818 133,
1860 133,
1878 133,
1881 133,
1885 133,
1889 133,
1892 133,
1896 133,
1899 133,
1902 133,
1906 133,
1909 133,
1915 133,
1918 133,
1922 133,
1926 133,
1930 133,
1934 133,
1937 133,
1940 133,
1946 133,
1981 133,
1994 133,
1997 133,
2000 127,
2003 133,
2010 133,
2013 133,
2020 133,
2023 129,
2026 133,
2044 115,
2047 133,
2051 133,
2054 133,
2069 133,
2079 133,
2083 133,
2086 # define YYTYPE int
2087 struct yywork { YYTYPE verify, advance; } yycrank[] = {
2088 0,0, 0,0, 3,17, 0,0,
2089 5,59, 0,0, 0,0, 0,0,
2090 0,0, 0,0, 3,18, 3,19,
2091 5,59, 5,60, 0,0, 0,0,
2092 0,0, 0,0, 0,0, 0,0,
2093 0,0, 0,0, 0,0, 0,0,
2094 13,64, 0,0, 0,0, 0,0,
2095 0,0, 0,0, 0,0, 0,0,
2096 13,64, 13,0, 3,20, 3,21,
2097 3,22, 5,61, 6,61, 3,23,
2098 14,0, 0,0, 0,0, 0,0,
2099 15,66, 34,100, 3,24, 3,25,
2100 69,0, 3,26, 22,69, 5,59,
2101 15,66, 15,66, 54,159, 54,160,
2102 0,0, 0,0, 22,69, 22,0,
2103 3,27, 3,28, 3,29, 3,30,
2104 23,70, 0,0, 3,31, 0,0,
2105 5,59, 0,0, 0,0, 13,64,
2106 0,0, 3,32, 0,0, 0,0,
2107 0,0, 54,159, 0,0, 0,0,
2108 54,161, 0,0, 0,0, 0,0,
2109 20,68, 24,71, 0,0, 0,0,
2110 13,65, 0,0, 0,0, 15,66,
2111 3,33, 3,34, 3,35, 5,62,
2112 6,62, 22,69, 3,36, 3,37,
2113 3,38, 3,39, 3,40, 3,41,
2114 29,95, 3,42, 3,43, 28,93,
2115 15,67, 3,44, 3,45, 3,46,
2116 3,47, 3,48, 22,69, 3,49,
2117 3,50, 3,51, 3,52, 30,96,
2118 3,53, 93,205, 0,0, 28,94,
2119 3,54, 3,55, 3,56, 4,20,
2120 4,21, 4,22, 33,99, 0,0,
2121 4,23, 36,101, 39,115, 32,98,
2122 43,128, 37,105, 39,116, 4,24,
2123 4,57, 47,139, 39,117, 42,126,
2124 43,129, 36,102, 46,138, 37,106,
2125 39,118, 36,103, 48,140, 36,104,
2126 58,178, 4,27, 4,28, 4,29,
2127 4,30, 37,107, 42,127, 38,108,
2128 55,162, 38,109, 45,135, 4,58,
2129 38,110, 38,111, 4,32, 40,119,
2130 38,112, 53,156, 45,136, 38,113,
2131 52,154, 53,157, 52,155, 41,123,
2132 45,137, 53,158, 40,120, 38,114,
2133 40,121, 41,124, 51,152, 73,183,
2134 41,125, 4,33, 4,34, 4,35,
2135 74,184, 51,153, 40,122, 4,36,
2136 4,37, 4,38, 4,39, 4,40,
2137 4,41, 76,187, 4,42, 4,43,
2138 77,189, 75,185, 4,44, 4,45,
2139 4,46, 4,47, 4,48, 79,193,
2140 4,49, 4,50, 4,51, 4,52,
2141 76,188, 4,53, 75,186, 79,194,
2142 81,199, 4,54, 4,55, 4,56,
2143 7,63, 7,63, 7,63, 7,63,
2144 7,63, 7,63, 7,63, 7,63,
2145 7,63, 7,63, 7,63, 7,63,
2146 7,63, 7,63, 7,63, 7,63,
2147 7,63, 7,63, 7,63, 7,63,
2148 7,63, 7,63, 7,63, 7,63,
2149 7,63, 7,63, 89,204, 82,200,
2150 62,179, 91,204, 7,63, 82,201,
2151 7,63, 7,63, 7,63, 7,63,
2152 7,63, 7,63, 7,63, 7,63,
2153 7,63, 7,63, 7,63, 7,63,
2154 7,63, 7,63, 7,63, 7,63,
2155 7,63, 7,63, 7,63, 7,63,
2156 7,63, 7,63, 7,63, 7,63,
2157 7,63, 7,63, 25,72, 25,72,
2158 25,72, 25,72, 25,72, 25,72,
2159 25,72, 25,72, 25,72, 25,72,
2160 26,85, 92,204, 26,86, 26,86,
2161 26,86, 26,86, 26,86, 26,86,
2162 26,86, 26,86, 26,86, 26,86,
2163 44,130, 98,206, 101,207, 102,208,
2164 44,131, 78,190, 62,180, 80,195,
2165 44,132, 44,133, 104,211, 26,87,
2166 49,141, 108,216, 44,134, 78,191,
2167 49,142, 80,196, 103,209, 105,212,
2168 49,143, 49,144, 80,197, 78,192,
2169 109,217, 80,198, 110,218, 105,213,
2170 25,73, 25,74, 62,181, 25,75,
2171 106,214, 103,210, 25,76, 111,219,
2172 106,215, 112,220, 25,77, 113,221,
2173 25,78, 115,223, 113,222, 26,87,
2174 25,79, 25,80, 25,81, 26,88,
2175 116,224, 25,82, 25,83, 25,84,
2176 26,89, 117,225, 119,228, 121,231,
2177 26,90, 26,91, 26,92, 31,97,
2178 31,97, 31,97, 31,97, 31,97,
2179 31,97, 31,97, 31,97, 31,97,
2180 31,97, 118,226, 122,232, 124,235,
2181 118,227, 125,236, 126,237, 130,241,
2182 31,97, 31,97, 31,97, 31,97,
2183 31,97, 31,97, 31,97, 31,97,
2184 31,97, 31,97, 31,97, 31,97,
2185 31,97, 31,97, 31,97, 31,97,
2186 31,97, 31,97, 31,97, 31,97,
2187 31,97, 31,97, 31,97, 31,97,
2188 31,97, 31,97, 131,242, 132,243,
2189 133,244, 134,245, 31,97, 135,246,
2190 31,97, 31,97, 31,97, 31,97,
2191 31,97, 31,97, 31,97, 31,97,
2192 31,97, 31,97, 31,97, 31,97,
2193 31,97, 31,97, 31,97, 31,97,
2194 31,97, 31,97, 31,97, 31,97,
2195 31,97, 31,97, 31,97, 31,97,
2196 31,97, 31,97, 50,145, 57,163,
2197 136,247, 137,248, 120,229, 138,249,
2198 123,233, 50,146, 50,147, 57,163,
2199 57,0, 120,230, 123,234, 140,251,
2200 50,148, 50,149, 50,150, 142,254,
2201 138,250, 50,151, 63,63, 63,63,
2202 63,63, 63,63, 63,63, 63,63,
2203 63,63, 63,63, 63,63, 63,63,
2204 72,72, 72,72, 72,72, 72,72,
2205 72,72, 72,72, 72,72, 72,72,
2206 72,72, 72,72, 141,252, 143,255,
2207 144,256, 145,257, 150,265, 151,266,
2208 153,269, 156,272, 57,164, 157,273,
2209 141,253, 72,87, 85,85, 85,85,
2210 85,85, 85,85, 85,85, 85,85,
2211 85,85, 85,85, 85,85, 85,85,
2212 87,202, 146,258, 87,202, 57,163,
2213 147,259, 87,203, 87,203, 87,203,
2214 87,203, 87,203, 87,203, 87,203,
2215 87,203, 87,203, 87,203, 129,238,
2216 147,260, 148,261, 57,165, 154,270,
2217 152,267, 72,87, 149,263, 160,160,
2218 146,258, 72,88, 148,262, 158,274,
2219 149,264, 176,0, 177,0, 178,299,
2220 129,239, 152,268, 129,240, 154,271,
2221 57,166, 57,167, 183,300, 57,168,
2222 184,301, 185,302, 57,169, 158,275,
2223 166,0, 186,303, 57,170, 187,304,
2224 57,171, 174,0, 189,305, 191,306,
2225 57,172, 57,173, 57,174, 167,0,
2226 193,307, 57,175, 57,176, 57,177,
2227 65,65, 65,65, 65,65, 65,65,
2228 65,65, 65,65, 65,65, 65,65,
2229 65,65, 65,65, 194,308, 196,309,
2230 197,310, 199,311, 200,312, 201,313,
2231 203,88, 65,65, 65,65, 65,65,
2232 65,65, 65,65, 65,65, 65,65,
2233 65,65, 65,65, 65,65, 65,65,
2234 65,65, 65,65, 65,65, 65,65,
2235 65,65, 65,65, 65,65, 65,65,
2236 65,65, 65,65, 65,65, 65,65,
2237 65,65, 65,65, 65,65, 206,314,
2238 207,315, 210,316, 211,317, 65,65,
2239 212,318, 65,65, 65,65, 65,65,
2240 65,65, 65,65, 65,65, 65,65,
2241 65,65, 65,65, 65,65, 65,65,
2242 65,65, 65,65, 65,65, 65,65,
2243 65,65, 65,65, 65,65, 65,65,
2244 65,65, 65,65, 65,65, 65,65,
2245 65,65, 65,65, 65,65, 67,182,
2246 67,182, 67,182, 67,182, 67,182,
2247 67,182, 67,182, 67,182, 67,182,
2248 67,182, 166,280, 167,281, 168,0,
2249 169,0, 170,0, 174,296, 171,0,
2250 67,182, 67,182, 67,182, 67,182,
2251 67,182, 67,182, 67,182, 67,182,
2252 67,182, 67,182, 67,182, 67,182,
2253 67,182, 67,182, 67,182, 67,182,
2254 67,182, 67,182, 67,182, 67,182,
2255 67,182, 67,182, 67,182, 67,182,
2256 67,182, 67,182, 165,0, 213,319,
2257 172,0, 214,320, 67,182, 217,321,
2258 67,182, 67,182, 67,182, 67,182,
2259 67,182, 67,182, 67,182, 67,182,
2260 67,182, 67,182, 67,182, 67,182,
2261 67,182, 67,182, 67,182, 67,182,
2262 67,182, 67,182, 67,182, 67,182,
2263 67,182, 67,182, 67,182, 67,182,
2264 67,182, 67,182, 161,161, 175,0,
2265 163,163, 218,322, 164,163, 219,323,
2266 173,163, 220,324, 161,161, 161,160,
2267 163,163, 163,0, 164,163, 164,0,
2268 173,163, 173,0, 221,325, 223,326,
2269 224,327, 225,328, 226,329, 227,330,
2270 228,331, 229,332, 168,282, 230,333,
2271 231,334, 165,278, 233,335, 169,284,
2272 170,286, 234,336, 171,287, 236,337,
2273 237,338, 238,339, 240,340, 168,283,
2274 241,341, 242,342, 243,343, 165,279,
2275 171,288, 244,344, 169,285, 248,345,
2276 249,346, 161,161, 250,347, 163,163,
2277 171,289, 164,164, 251,348, 173,163,
2278 252,349, 253,350, 254,351, 172,290,
2279 255,352, 256,353, 257,354, 258,258,
2280 260,355, 261,356, 161,161, 172,291,
2281 163,163, 262,357, 164,163, 263,358,
2282 173,163, 265,361, 164,276, 202,203,
2283 202,203, 202,203, 202,203, 202,203,
2284 202,203, 202,203, 202,203, 202,203,
2285 202,203, 264,359, 258,258, 266,362,
2286 267,363, 264,360, 268,364, 269,366,
2287 270,367, 271,368, 175,297, 273,369,
2288 268,365, 274,370, 175,298, 275,371,
2289 276,0, 277,0, 280,0, 278,278,
2290 281,0, 279,279, 164,276, 282,0,
2291 173,292, 283,0, 164,277, 278,278,
2292 278,0, 279,279, 279,0, 284,0,
2293 285,0, 286,0, 173,293, 287,0,
2294 288,0, 289,0, 291,0, 173,294,
2295 290,0, 292,0, 173,295, 293,0,
2296 295,0, 294,0, 296,0, 297,0,
2297 298,0, 276,372, 299,388, 276,372,
2298 300,389, 301,390, 276,373, 302,391,
2299 304,392, 305,393, 306,394, 307,395,
2300 308,396, 309,397, 310,398, 312,399,
2301 313,400, 315,401, 278,278, 316,402,
2302 279,279, 317,403, 318,404, 319,405,
2303 320,406, 321,407, 323,408, 324,409,
2304 326,410, 327,411, 328,412, 329,413,
2305 331,414, 332,415, 334,334, 278,278,
2306 336,417, 279,279, 338,418, 339,419,
2307 340,420, 342,421, 344,422, 346,423,
2308 347,424, 348,425, 349,426, 351,427,
2309 352,428, 353,429, 356,430, 357,431,
2310 358,432, 359,433, 360,434, 362,435,
2311 364,436, 366,366, 365,437, 367,439,
2312 368,440, 369,441, 370,442, 372,0,
2313 374,0, 373,0, 375,0, 283,377,
2314 376,0, 377,0, 378,0, 379,0,
2315 281,375, 380,0, 381,0, 383,0,
2316 280,374, 286,379, 284,378, 382,0,
2317 282,376, 365,437, 290,381, 291,382,
2318 294,384, 384,0, 385,0, 386,0,
2319 387,0, 388,455, 298,387, 389,456,
2320 288,380, 390,457, 392,458, 394,459,
2321 395,460, 396,461, 397,462, 398,463,
2322 296,385, 372,373, 293,383, 373,373,
2323 297,386, 400,464, 405,465, 406,466,
2324 407,467, 408,468, 409,469, 410,470,
2325 411,471, 334,416, 412,472, 413,473,
2326 414,414, 415,475, 416,476, 418,127,
2327 419,477, 420,478, 421,421, 423,480,
2328 424,481, 426,482, 428,483, 431,484,
2329 432,485, 433,486, 434,487, 435,488,
2330 436,489, 437,437, 438,490, 439,491,
2331 366,438, 441,441, 443,0, 444,0,
2332 445,0, 446,0, 447,0, 448,0,
2333 449,0, 453,0, 450,0, 451,0,
2334 452,0, 454,0, 455,503, 456,504,
2335 457,505, 458,188, 460,506, 465,507,
2336 437,437, 466,508, 439,491, 467,509,
2337 373,277, 469,510, 471,511, 378,446,
2338 472,512, 474,513, 475,514, 477,325,
2339 478,515, 381,449, 374,443, 479,516,
2340 375,444, 382,450, 376,445, 487,520,
2341 481,481, 379,447, 483,483, 380,448,
2342 484,484, 383,451, 488,488, 489,365,
2343 492,523, 471,511, 493,524, 495,0,
2344 497,0, 384,452, 494,0, 499,0,
2345 500,0, 386,453, 387,454, 414,474,
2346 501,0, 502,0, 503,528, 510,531,
2347 511,511, 421,479, 512,532, 515,533,
2348 517,534, 518,535, 491,491, 519,536,
2349 521,537, 508,508, 523,538, 509,509,
2350 525,0, 526,0, 496,0, 527,0,
2351 441,493, 498,0, 529,539, 530,540,
2352 531,541, 533,542, 538,491, 511,511,
2353 0,0, 0,0, 0,0, 0,0,
2354 0,0, 491,491, 444,495, 439,492,
2355 0,0, 0,0, 0,0, 446,496,
2356 0,0, 448,497, 0,0, 443,494,
2357 0,0, 451,500, 0,0, 454,502,
2358 0,0, 538,491, 0,0, 0,0,
2359 0,0, 0,0, 0,0, 449,498,
2360 450,499, 0,0, 452,501, 481,517,
2361 0,0, 483,518, 0,0, 484,519,
2362 0,0, 488,521, 491,522, 491,522,
2363 491,522, 491,522, 491,522, 491,522,
2364 491,522, 491,522, 491,522, 491,522,
2365 491,522, 491,522, 491,522, 491,522,
2366 491,522, 491,522, 491,522, 491,522,
2367 491,522, 491,522, 491,522, 491,522,
2368 491,522, 491,522, 491,522, 491,522,
2369 508,529, 494,525, 509,530, 495,526,
2370 491,522, 0,0, 491,522, 491,522,
2371 491,522, 491,522, 491,522, 491,522,
2372 491,522, 491,522, 491,522, 491,522,
2373 491,522, 491,522, 491,522, 491,522,
2374 491,522, 491,522, 491,522, 491,522,
2375 491,522, 491,522, 491,522, 491,522,
2376 491,522, 491,522, 491,522, 491,522,
2377 496,285, 0,0, 498,527, 522,522,
2378 522,522, 522,522, 522,522, 522,522,
2379 522,522, 522,522, 522,522, 522,522,
2380 522,522, 0,0, 0,0, 0,0,
2381 0,0, 0,0, 0,0, 0,0,
2382 522,522, 522,522, 522,522, 522,522,
2383 522,522, 522,522, 522,522, 522,522,
2384 522,522, 522,522, 522,522, 522,522,
2385 522,522, 522,522, 522,522, 522,522,
2386 522,522, 522,522, 522,522, 522,522,
2387 522,522, 522,522, 522,522, 522,522,
2388 522,522, 522,522, 0,0, 0,0,
2389 0,0, 0,0, 522,522, 0,0,
2390 522,522, 522,522, 522,522, 522,522,
2391 522,522, 522,522, 522,522, 522,522,
2392 522,522, 522,522, 522,522, 522,522,
2393 522,522, 522,522, 522,522, 522,522,
2394 522,522, 522,522, 522,522, 522,522,
2395 522,522, 522,522, 522,522, 522,522,
2396 522,522, 522,522, 0,0, 0,0,
2397 0,0};
2398 struct yysvf yysvec[] = {
2399 0, 0, 0,
2400 yycrank+0, 0, 0,
2401 yycrank+0, 0, 0,
2402 yycrank+-1, 0, 0,
2403 yycrank+-94, yysvec+3, 0,
2404 yycrank+-3, 0, 0,
2405 yycrank+-4, yysvec+5, 0,
2406 yycrank+155, 0, 0,
2407 yycrank+0, yysvec+7, 0,
2408 yycrank+0, 0, 0,
2409 yycrank+0, 0, 0,
2410 yycrank+0, 0, 0,
2411 yycrank+0, 0, 0,
2412 yycrank+-23, 0, 0,
2413 yycrank+-30, yysvec+13, 0,
2414 yycrank+-43, 0, 0,
2415 yycrank+0, yysvec+15, 0,
2416 yycrank+0, 0, yyvstop+1,
2417 yycrank+0, 0, yyvstop+3,
2418 yycrank+0, 0, yyvstop+6,
2419 yycrank+23, 0, yyvstop+8,
2420 yycrank+0, 0, yyvstop+11,
2421 yycrank+-49, 0, yyvstop+14,
2422 yycrank+26, 0, yyvstop+17,
2423 yycrank+23, 0, yyvstop+19,
2424 yycrank+230, 0, yyvstop+21,
2425 yycrank+242, 0, yyvstop+23,
2426 yycrank+0, 0, yyvstop+26,
2427 yycrank+62, 0, yyvstop+29,
2428 yycrank+43, 0, yyvstop+32,
2429 yycrank+58, 0, yyvstop+34,
2430 yycrank+311, 0, yyvstop+37,
2431 yycrank+34, yysvec+31, yyvstop+40,
2432 yycrank+37, 0, yyvstop+43,
2433 yycrank+35, 0, yyvstop+45,
2434 yycrank+0, 0, yyvstop+47,
2435 yycrank+35, yysvec+31, yyvstop+50,
2436 yycrank+36, yysvec+31, yyvstop+53,
2437 yycrank+60, yysvec+31, yyvstop+56,
2438 yycrank+37, yysvec+31, yyvstop+59,
2439 yycrank+70, yysvec+31, yyvstop+62,
2440 yycrank+70, yysvec+31, yyvstop+65,
2441 yycrank+42, yysvec+31, yyvstop+68,
2442 yycrank+34, yysvec+31, yyvstop+71,
2443 yycrank+203, yysvec+31, yyvstop+74,
2444 yycrank+65, yysvec+31, yyvstop+77,
2445 yycrank+35, yysvec+31, yyvstop+80,
2446 yycrank+39, yysvec+31, yyvstop+83,
2447 yycrank+36, yysvec+31, yyvstop+86,
2448 yycrank+215, yysvec+31, yyvstop+89,
2449 yycrank+337, yysvec+31, yyvstop+92,
2450 yycrank+78, yysvec+31, yyvstop+95,
2451 yycrank+62, yysvec+31, yyvstop+98,
2452 yycrank+72, yysvec+31, yyvstop+101,
2453 yycrank+45, 0, yyvstop+104,
2454 yycrank+36, 0, yyvstop+106,
2455 yycrank+0, 0, yyvstop+108,
2456 yycrank+-434, 0, yyvstop+111,
2457 yycrank+42, yysvec+31, yyvstop+114,
2458 yycrank+0, 0, yyvstop+117,
2459 yycrank+0, 0, yyvstop+119,
2460 yycrank+0, 0, yyvstop+121,
2461 yycrank+214, 0, yyvstop+124,
2462 yycrank+406, yysvec+7, yyvstop+126,
2463 yycrank+0, 0, yyvstop+128,
2464 yycrank+508, 0, yyvstop+130,
2465 yycrank+0, 0, yyvstop+132,
2466 yycrank+583, 0, yyvstop+134,
2467 yycrank+0, 0, yyvstop+137,
2468 yycrank+-38, yysvec+22, yyvstop+139,
2469 yycrank+0, 0, yyvstop+141,
2470 yycrank+0, 0, yyvstop+143,
2471 yycrank+416, 0, yyvstop+145,
2472 yycrank+72, 0, yyvstop+147,
2473 yycrank+87, 0, yyvstop+149,
2474 yycrank+104, 0, yyvstop+151,
2475 yycrank+96, 0, 0,
2476 yycrank+99, 0, yyvstop+153,
2477 yycrank+204, 0, yyvstop+155,
2478 yycrank+110, 0, yyvstop+157,
2479 yycrank+206, 0, yyvstop+159,
2480 yycrank+105, 0, yyvstop+161,
2481 yycrank+146, 0, yyvstop+163,
2482 yycrank+0, 0, yyvstop+165,
2483 yycrank+0, 0, yyvstop+167,
2484 yycrank+438, yysvec+72, yyvstop+169,
2485 yycrank+0, yysvec+26, yyvstop+171,
2486 yycrank+453, 0, 0,
2487 yycrank+0, 0, yyvstop+173,
2488 yycrank+146, 0, 0,
2489 yycrank+0, yysvec+89, 0,
2490 yycrank+133, 0, 0,
2491 yycrank+185, 0, 0,
2492 yycrank+59, 0, yyvstop+175,
2493 yycrank+0, 0, yyvstop+177,
2494 yycrank+0, 0, yyvstop+179,
2495 yycrank+0, 0, yyvstop+181,
2496 yycrank+0, yysvec+31, yyvstop+183,
2497 yycrank+187, yysvec+31, yyvstop+185,
2498 yycrank+0, 0, yyvstop+187,
2499 yycrank+0, 0, yyvstop+189,
2500 yycrank+191, yysvec+31, yyvstop+191,
2501 yycrank+203, yysvec+31, yyvstop+193,
2502 yycrank+219, yysvec+31, yyvstop+195,
2503 yycrank+213, yysvec+31, yyvstop+197,
2504 yycrank+211, yysvec+31, yyvstop+200,
2505 yycrank+216, yysvec+31, yyvstop+202,
2506 yycrank+0, yysvec+31, yyvstop+204,
2507 yycrank+194, yysvec+31, yyvstop+207,
2508 yycrank+214, yysvec+31, yyvstop+209,
2509 yycrank+215, yysvec+31, yyvstop+211,
2510 yycrank+221, yysvec+31, yyvstop+213,
2511 yycrank+226, yysvec+31, yyvstop+215,
2512 yycrank+227, yysvec+31, yyvstop+217,
2513 yycrank+0, yysvec+31, yyvstop+219,
2514 yycrank+226, yysvec+31, yyvstop+222,
2515 yycrank+246, yysvec+31, yyvstop+224,
2516 yycrank+256, yysvec+31, yyvstop+226,
2517 yycrank+253, yysvec+31, yyvstop+228,
2518 yycrank+239, yysvec+31, yyvstop+231,
2519 yycrank+330, yysvec+31, yyvstop+233,
2520 yycrank+255, yysvec+31, yyvstop+235,
2521 yycrank+258, yysvec+31, yyvstop+237,
2522 yycrank+332, yysvec+31, yyvstop+239,
2523 yycrank+257, yysvec+31, yyvstop+241,
2524 yycrank+262, yysvec+31, yyvstop+243,
2525 yycrank+269, yysvec+31, yyvstop+245,
2526 yycrank+0, yysvec+31, yyvstop+247,
2527 yycrank+0, yysvec+31, yyvstop+250,
2528 yycrank+412, yysvec+31, yyvstop+253,
2529 yycrank+260, yysvec+31, yyvstop+255,
2530 yycrank+300, yysvec+31, yyvstop+257,
2531 yycrank+293, yysvec+31, yyvstop+259,
2532 yycrank+287, yysvec+31, yyvstop+261,
2533 yycrank+302, yysvec+31, yyvstop+263,
2534 yycrank+287, yysvec+31, yyvstop+265,
2535 yycrank+326, yysvec+31, yyvstop+267,
2536 yycrank+319, yysvec+31, yyvstop+269,
2537 yycrank+338, yysvec+31, yyvstop+271,
2538 yycrank+0, yysvec+31, yyvstop+273,
2539 yycrank+342, yysvec+31, yyvstop+276,
2540 yycrank+374, yysvec+31, yyvstop+278,
2541 yycrank+336, yysvec+31, yyvstop+280,
2542 yycrank+372, yysvec+31, yyvstop+282,
2543 yycrank+359, yysvec+31, yyvstop+284,
2544 yycrank+368, yysvec+31, yyvstop+286,
2545 yycrank+488, yysvec+31, yyvstop+288,
2546 yycrank+390, yysvec+31, yyvstop+290,
2547 yycrank+405, yysvec+31, yyvstop+292,
2548 yycrank+410, yysvec+31, yyvstop+294,
2549 yycrank+364, yysvec+31, yyvstop+296,
2550 yycrank+382, yysvec+31, yyvstop+298,
2551 yycrank+415, yysvec+31, yyvstop+300,
2552 yycrank+368, yysvec+31, yyvstop+302,
2553 yycrank+415, yysvec+31, yyvstop+305,
2554 yycrank+0, yysvec+31, yyvstop+307,
2555 yycrank+360, yysvec+31, yyvstop+310,
2556 yycrank+368, yysvec+31, yyvstop+312,
2557 yycrank+423, yysvec+31, yyvstop+314,
2558 yycrank+0, yysvec+54, 0,
2559 yycrank+509, 0, yyvstop+316,
2560 yycrank+-705, 0, 0,
2561 yycrank+0, 0, yyvstop+318,
2562 yycrank+-707, 0, yyvstop+320,
2563 yycrank+-709, 0, yyvstop+322,
2564 yycrank+-664, yysvec+163, yyvstop+325,
2565 yycrank+-530, yysvec+163, yyvstop+327,
2566 yycrank+-541, yysvec+163, yyvstop+330,
2567 yycrank+-633, yysvec+163, yyvstop+333,
2568 yycrank+-634, yysvec+163, yyvstop+336,
2569 yycrank+-635, yysvec+163, yyvstop+338,
2570 yycrank+-637, yysvec+163, yyvstop+341,
2571 yycrank+-666, yysvec+163, yyvstop+344,
2572 yycrank+-711, 0, yyvstop+347,
2573 yycrank+-535, yysvec+163, yyvstop+350,
2574 yycrank+-697, yysvec+163, yyvstop+353,
2575 yycrank+-515, yysvec+163, yyvstop+356,
2576 yycrank+-516, yysvec+163, yyvstop+359,
2577 yycrank+427, yysvec+31, yyvstop+362,
2578 yycrank+0, 0, yyvstop+364,
2579 yycrank+0, 0, yyvstop+366,
2580 yycrank+0, 0, yyvstop+368,
2581 yycrank+0, yysvec+67, yyvstop+370,
2582 yycrank+418, 0, 0,
2583 yycrank+426, 0, 0,
2584 yycrank+422, 0, 0,
2585 yycrank+441, 0, 0,
2586 yycrank+438, 0, 0,
2587 yycrank+0, 0, yyvstop+372,
2588 yycrank+444, 0, 0,
2589 yycrank+0, 0, yyvstop+374,
2590 yycrank+433, 0, 0,
2591 yycrank+0, 0, yyvstop+376,
2592 yycrank+452, 0, 0,
2593 yycrank+463, 0, 0,
2594 yycrank+0, 0, yyvstop+378,
2595 yycrank+450, 0, 0,
2596 yycrank+471, 0, 0,
2597 yycrank+0, 0, yyvstop+380,
2598 yycrank+457, 0, 0,
2599 yycrank+455, 0, 0,
2600 yycrank+471, 0, 0,
2601 yycrank+731, 0, 0,
2602 yycrank+467, yysvec+202, yyvstop+382,
2603 yycrank+0, 0, yyvstop+384,
2604 yycrank+0, 0, yyvstop+386,
2605 yycrank+498, yysvec+31, yyvstop+388,
2606 yycrank+482, yysvec+31, yyvstop+390,
2607 yycrank+0, yysvec+31, yyvstop+392,
2608 yycrank+0, yysvec+31, yyvstop+395,
2609 yycrank+490, yysvec+31, yyvstop+398,
2610 yycrank+492, yysvec+31, yyvstop+400,
2611 yycrank+493, yysvec+31, yyvstop+402,
2612 yycrank+556, yysvec+31, yyvstop+404,
2613 yycrank+561, yysvec+31, yyvstop+406,
2614 yycrank+0, yysvec+31, yyvstop+408,
2615 yycrank+0, yysvec+31, yyvstop+411,
2616 yycrank+563, yysvec+31, yyvstop+414,
2617 yycrank+597, yysvec+31, yyvstop+416,
2618 yycrank+612, yysvec+31, yyvstop+418,
2619 yycrank+614, yysvec+31, yyvstop+420,
2620 yycrank+601, yysvec+31, yyvstop+422,
2621 yycrank+0, yysvec+31, yyvstop+424,
2622 yycrank+619, yysvec+31, yyvstop+427,
2623 yycrank+619, yysvec+31, yyvstop+429,
2624 yycrank+616, yysvec+31, yyvstop+431,
2625 yycrank+610, yysvec+31, yyvstop+433,
2626 yycrank+617, yysvec+31, yyvstop+436,
2627 yycrank+612, yysvec+31, yyvstop+438,
2628 yycrank+624, yysvec+31, yyvstop+440,
2629 yycrank+630, yysvec+31, yyvstop+442,
2630 yycrank+700, yysvec+31, yyvstop+444,
2631 yycrank+0, yysvec+31, yyvstop+446,
2632 yycrank+626, yysvec+31, yyvstop+449,
2633 yycrank+622, yysvec+31, yyvstop+451,
2634 yycrank+0, yysvec+31, yyvstop+453,
2635 yycrank+630, yysvec+31, yyvstop+456,
2636 yycrank+637, yysvec+31, yyvstop+458,
2637 yycrank+633, yysvec+31, yyvstop+460,
2638 yycrank+0, yysvec+31, yyvstop+462,
2639 yycrank+637, yysvec+31, yyvstop+465,
2640 yycrank+628, yysvec+31, yyvstop+467,
2641 yycrank+629, yysvec+31, yyvstop+469,
2642 yycrank+645, yysvec+31, yyvstop+471,
2643 yycrank+634, yysvec+31, yyvstop+473,
2644 yycrank+0, yysvec+31, yyvstop+475,
2645 yycrank+0, yysvec+31, yyvstop+478,
2646 yycrank+0, yysvec+31, yyvstop+481,
2647 yycrank+650, yysvec+31, yyvstop+484,
2648 yycrank+652, yysvec+31, yyvstop+486,
2649 yycrank+638, yysvec+31, yyvstop+488,
2650 yycrank+648, yysvec+31, yyvstop+490,
2651 yycrank+655, yysvec+31, yyvstop+492,
2652 yycrank+661, yysvec+31, yyvstop+495,
2653 yycrank+661, yysvec+31, yyvstop+497,
2654 yycrank+660, yysvec+31, yyvstop+499,
2655 yycrank+650, yysvec+31, yyvstop+501,
2656 yycrank+665, yysvec+31, yyvstop+503,
2657 yycrank+758, 0, yyvstop+505,
2658 yycrank+0, yysvec+31, yyvstop+507,
2659 yycrank+667, yysvec+31, yyvstop+510,
2660 yycrank+664, yysvec+31, yyvstop+512,
2661 yycrank+657, yysvec+31, yyvstop+514,
2662 yycrank+670, yysvec+31, yyvstop+516,
2663 yycrank+688, yysvec+31, yyvstop+518,
2664 yycrank+661, yysvec+31, yyvstop+520,
2665 yycrank+677, yysvec+31, yyvstop+522,
2666 yycrank+682, yysvec+31, yyvstop+524,
2667 yycrank+683, yysvec+31, yyvstop+527,
2668 yycrank+763, yysvec+31, yyvstop+529,
2669 yycrank+695, yysvec+31, yyvstop+531,
2670 yycrank+692, yysvec+31, yyvstop+533,
2671 yycrank+0, yysvec+31, yyvstop+535,
2672 yycrank+683, yysvec+31, yyvstop+538,
2673 yycrank+685, yysvec+31, yyvstop+540,
2674 yycrank+699, yysvec+31, yyvstop+543,
2675 yycrank+-794, yysvec+163, yyvstop+545,
2676 yycrank+-795, yysvec+163, yyvstop+547,
2677 yycrank+-806, 0, yyvstop+550,
2678 yycrank+-808, 0, yyvstop+553,
2679 yycrank+-796, yysvec+163, yyvstop+556,
2680 yycrank+-798, yysvec+163, yyvstop+558,
2681 yycrank+-801, yysvec+163, yyvstop+560,
2682 yycrank+-803, yysvec+163, yyvstop+562,
2683 yycrank+-809, yysvec+163, yyvstop+564,
2684 yycrank+-810, yysvec+163, yyvstop+566,
2685 yycrank+-811, yysvec+163, yyvstop+569,
2686 yycrank+-813, yysvec+163, yyvstop+571,
2687 yycrank+-814, yysvec+163, yyvstop+574,
2688 yycrank+-815, yysvec+163, yyvstop+576,
2689 yycrank+-818, yysvec+163, yyvstop+579,
2690 yycrank+-816, yysvec+163, yyvstop+581,
2691 yycrank+-819, yysvec+163, yyvstop+583,
2692 yycrank+-821, yysvec+163, yyvstop+586,
2693 yycrank+-823, yysvec+163, yyvstop+588,
2694 yycrank+-822, yysvec+163, yyvstop+590,
2695 yycrank+-824, yysvec+163, yyvstop+593,
2696 yycrank+-825, yysvec+163, yyvstop+595,
2697 yycrank+-826, yysvec+163, yyvstop+597,
2698 yycrank+736, yysvec+31, yyvstop+599,
2699 yycrank+724, 0, yyvstop+601,
2700 yycrank+725, 0, 0,
2701 yycrank+727, 0, 0,
2702 yycrank+0, 0, yyvstop+603,
2703 yycrank+741, 0, 0,
2704 yycrank+729, 0, 0,
2705 yycrank+730, 0, 0,
2706 yycrank+742, 0, yyvstop+605,
2707 yycrank+744, 0, 0,
2708 yycrank+733, 0, 0,
2709 yycrank+736, 0, 0,
2710 yycrank+0, 0, yyvstop+607,
2711 yycrank+735, 0, 0,
2712 yycrank+736, 0, yyvstop+609,
2713 yycrank+0, yysvec+31, yyvstop+611,
2714 yycrank+752, yysvec+31, yyvstop+614,
2715 yycrank+736, yysvec+31, yyvstop+616,
2716 yycrank+807, yysvec+31, yyvstop+618,
2717 yycrank+739, yysvec+31, yyvstop+620,
2718 yycrank+758, yysvec+31, yyvstop+622,
2719 yycrank+749, yysvec+31, yyvstop+624,
2720 yycrank+760, yysvec+31, yyvstop+626,
2721 yycrank+0, yysvec+31, yyvstop+628,
2722 yycrank+754, yysvec+31, yyvstop+631,
2723 yycrank+756, yysvec+31, yyvstop+633,
2724 yycrank+0, yysvec+31, yyvstop+635,
2725 yycrank+763, yysvec+31, yyvstop+638,
2726 yycrank+755, yysvec+31, yyvstop+641,
2727 yycrank+765, yysvec+31, yyvstop+643,
2728 yycrank+766, yysvec+31, yyvstop+646,
2729 yycrank+0, yysvec+31, yyvstop+648,
2730 yycrank+836, yysvec+31, yyvstop+651,
2731 yycrank+757, yysvec+31, yyvstop+653,
2732 yycrank+0, yysvec+31, yyvstop+655,
2733 yycrank+838, 0, 0,
2734 yycrank+0, yysvec+31, yyvstop+658,
2735 yycrank+756, yysvec+31, yyvstop+661,
2736 yycrank+0, yysvec+31, yyvstop+663,
2737 yycrank+770, yysvec+31, yyvstop+666,
2738 yycrank+758, yysvec+31, yyvstop+668,
2739 yycrank+761, yysvec+31, yyvstop+670,
2740 yycrank+0, yysvec+31, yyvstop+672,
2741 yycrank+845, yysvec+31, yyvstop+675,
2742 yycrank+0, yysvec+31, yyvstop+678,
2743 yycrank+762, yysvec+31, yyvstop+681,
2744 yycrank+0, yysvec+31, yyvstop+683,
2745 yycrank+776, yysvec+31, yyvstop+686,
2746 yycrank+776, yysvec+31, yyvstop+688,
2747 yycrank+765, yysvec+31, yyvstop+690,
2748 yycrank+765, yysvec+31, yyvstop+692,
2749 yycrank+0, yysvec+31, yyvstop+694,
2750 yycrank+767, yysvec+31, yyvstop+697,
2751 yycrank+768, yysvec+31, yyvstop+699,
2752 yycrank+769, yysvec+31, yyvstop+701,
2753 yycrank+0, yysvec+31, yyvstop+703,
2754 yycrank+0, yysvec+31, yyvstop+706,
2755 yycrank+786, yysvec+31, yyvstop+709,
2756 yycrank+783, yysvec+31, yyvstop+711,
2757 yycrank+778, yysvec+31, yyvstop+713,
2758 yycrank+792, yysvec+31, yyvstop+715,
2759 yycrank+780, yysvec+31, yyvstop+717,
2760 yycrank+0, yysvec+31, yyvstop+719,
2761 yycrank+775, yysvec+31, yyvstop+722,
2762 yycrank+0, yysvec+31, yyvstop+724,
2763 yycrank+775, yysvec+31, yyvstop+727,
2764 yycrank+885, yysvec+31, yyvstop+729,
2765 yycrank+861, 0, 0,
2766 yycrank+793, yysvec+31, yyvstop+731,
2767 yycrank+788, yysvec+31, yyvstop+733,
2768 yycrank+865, yysvec+31, yyvstop+735,
2769 yycrank+794, yysvec+31, yyvstop+737,
2770 yycrank+0, yysvec+31, yyvstop+739,
2771 yycrank+-889, yysvec+163, yyvstop+742,
2772 yycrank+-891, yysvec+163, yyvstop+744,
2773 yycrank+-890, yysvec+163, yyvstop+747,
2774 yycrank+-892, yysvec+163, yyvstop+750,
2775 yycrank+-894, yysvec+163, yyvstop+752,
2776 yycrank+-895, yysvec+163, yyvstop+754,
2777 yycrank+-896, yysvec+163, yyvstop+757,
2778 yycrank+-897, yysvec+163, yyvstop+759,
2779 yycrank+-899, yysvec+163, yyvstop+761,
2780 yycrank+-900, yysvec+163, yyvstop+763,
2781 yycrank+-905, yysvec+163, yyvstop+766,
2782 yycrank+-901, yysvec+163, yyvstop+768,
2783 yycrank+-911, yysvec+163, yyvstop+770,
2784 yycrank+-912, yysvec+163, yyvstop+772,
2785 yycrank+-913, yysvec+163, yyvstop+775,
2786 yycrank+-914, yysvec+163, yyvstop+777,
2787 yycrank+814, yysvec+31, yyvstop+780,
2788 yycrank+816, 0, 0,
2789 yycrank+828, 0, 0,
2790 yycrank+0, 0, yyvstop+782,
2791 yycrank+826, 0, 0,
2792 yycrank+0, 0, yyvstop+784,
2793 yycrank+827, 0, 0,
2794 yycrank+815, 0, 0,
2795 yycrank+817, 0, 0,
2796 yycrank+830, 0, 0,
2797 yycrank+819, 0, 0,
2798 yycrank+0, 0, yyvstop+786,
2799 yycrank+837, 0, 0,
2800 yycrank+0, yysvec+31, yyvstop+788,
2801 yycrank+0, yysvec+31, yyvstop+791,
2802 yycrank+0, yysvec+31, yyvstop+794,
2803 yycrank+0, yysvec+31, yyvstop+797,
2804 yycrank+841, yysvec+31, yyvstop+800,
2805 yycrank+834, yysvec+31, yyvstop+802,
2806 yycrank+830, yysvec+31, yyvstop+804,
2807 yycrank+844, yysvec+31, yyvstop+806,
2808 yycrank+827, yysvec+31, yyvstop+808,
2809 yycrank+847, yysvec+31, yyvstop+810,
2810 yycrank+847, yysvec+31, yyvstop+812,
2811 yycrank+834, yysvec+31, yyvstop+814,
2812 yycrank+851, yysvec+31, yyvstop+816,
2813 yycrank+920, 0, 0,
2814 yycrank+838, yysvec+31, yyvstop+818,
2815 yycrank+852, 0, 0,
2816 yycrank+0, yysvec+31, yyvstop+820,
2817 yycrank+839, yysvec+31, yyvstop+823,
2818 yycrank+856, yysvec+31, yyvstop+825,
2819 yycrank+852, yysvec+31, yyvstop+827,
2820 yycrank+926, 0, 0,
2821 yycrank+0, yysvec+31, yyvstop+830,
2822 yycrank+858, yysvec+31, yyvstop+833,
2823 yycrank+928, yysvec+31, yyvstop+835,
2824 yycrank+0, yysvec+31, yyvstop+837,
2825 yycrank+846, yysvec+31, yyvstop+840,
2826 yycrank+0, yysvec+31, yyvstop+842,
2827 yycrank+930, yysvec+31, yyvstop+845,
2828 yycrank+0, yysvec+31, yyvstop+848,
2829 yycrank+0, yysvec+31, yyvstop+851,
2830 yycrank+931, yysvec+31, yyvstop+854,
2831 yycrank+863, yysvec+31, yyvstop+856,
2832 yycrank+865, yysvec+31, yyvstop+858,
2833 yycrank+850, yysvec+31, yyvstop+860,
2834 yycrank+935, yysvec+31, yyvstop+862,
2835 yycrank+865, yysvec+31, yyvstop+864,
2836 yycrank+960, 0, yyvstop+866,
2837 yycrank+868, 0, 0,
2838 yycrank+962, yysvec+31, yyvstop+868,
2839 yycrank+0, yysvec+31, yyvstop+870,
2840 yycrank+941, 0, 0,
2841 yycrank+0, yysvec+31, yyvstop+873,
2842 yycrank+-964, yysvec+163, yyvstop+876,
2843 yycrank+-965, yysvec+163, yyvstop+878,
2844 yycrank+-966, yysvec+163, yyvstop+880,
2845 yycrank+-967, yysvec+163, yyvstop+883,
2846 yycrank+-968, yysvec+163, yyvstop+885,
2847 yycrank+-969, yysvec+163, yyvstop+888,
2848 yycrank+-970, yysvec+163, yyvstop+890,
2849 yycrank+-972, yysvec+163, yyvstop+892,
2850 yycrank+-973, yysvec+163, yyvstop+894,
2851 yycrank+-974, yysvec+163, yyvstop+896,
2852 yycrank+-971, yysvec+163, yyvstop+898,
2853 yycrank+-975, yysvec+163, yyvstop+901,
2854 yycrank+872, yysvec+31, yyvstop+903,
2855 yycrank+878, 0, 0,
2856 yycrank+874, 0, 0,
2857 yycrank+873, 0, 0,
2858 yycrank+0, 0, yyvstop+905,
2859 yycrank+875, 0, 0,
2860 yycrank+0, 0, yyvstop+907,
2861 yycrank+0, 0, yyvstop+909,
2862 yycrank+0, 0, yyvstop+911,
2863 yycrank+0, 0, yyvstop+913,
2864 yycrank+881, yysvec+31, yyvstop+915,
2865 yycrank+961, yysvec+31, yyvstop+917,
2866 yycrank+963, yysvec+31, yyvstop+919,
2867 yycrank+0, yysvec+31, yyvstop+922,
2868 yycrank+892, yysvec+31, yyvstop+925,
2869 yycrank+0, yysvec+31, yyvstop+927,
2870 yycrank+989, yysvec+31, yyvstop+930,
2871 yycrank+899, yysvec+31, yyvstop+932,
2872 yycrank+0, yysvec+31, yyvstop+934,
2873 yycrank+899, 0, 0,
2874 yycrank+901, yysvec+31, yyvstop+937,
2875 yycrank+0, 0, yyvstop+939,
2876 yycrank+902, yysvec+31, yyvstop+941,
2877 yycrank+906, yysvec+31, yyvstop+943,
2878 yycrank+905, 0, 0,
2879 yycrank+0, yysvec+31, yyvstop+945,
2880 yycrank+980, 0, 0,
2881 yycrank+0, yysvec+31, yyvstop+948,
2882 yycrank+982, 0, 0,
2883 yycrank+984, 0, 0,
2884 yycrank+0, yysvec+31, yyvstop+951,
2885 yycrank+0, yysvec+31, yyvstop+954,
2886 yycrank+909, yysvec+31, yyvstop+957,
2887 yycrank+986, 0, 0,
2888 yycrank+915, yysvec+31, yyvstop+959,
2889 yycrank+0, 0, yyvstop+961,
2890 yycrank+1033, 0, 0,
2891 yycrank+910, yysvec+31, yyvstop+963,
2892 yycrank+920, 0, 0,
2893 yycrank+-1016, yysvec+163, yyvstop+965,
2894 yycrank+-1013, yysvec+163, yyvstop+967,
2895 yycrank+-1040, yysvec+163, yyvstop+969,
2896 yycrank+-1014, yysvec+163, yyvstop+971,
2897 yycrank+-1043, yysvec+163, yyvstop+974,
2898 yycrank+-1017, yysvec+163, yyvstop+976,
2899 yycrank+-1018, yysvec+163, yyvstop+979,
2900 yycrank+-1022, yysvec+163, yyvstop+982,
2901 yycrank+-1023, yysvec+163, yyvstop+985,
2902 yycrank+1024, yysvec+31, yyvstop+988,
2903 yycrank+0, 0, yyvstop+990,
2904 yycrank+0, 0, yyvstop+992,
2905 yycrank+0, 0, yyvstop+994,
2906 yycrank+0, yysvec+31, yyvstop+996,
2907 yycrank+1013, 0, 0,
2908 yycrank+1015, 0, 0,
2909 yycrank+920, yysvec+31, yyvstop+999,
2910 yycrank+1027, 0, yyvstop+1001,
2911 yycrank+924, yysvec+31, yyvstop+1003,
2912 yycrank+0, 0, yyvstop+1005,
2913 yycrank+0, yysvec+31, yyvstop+1007,
2914 yycrank+931, yysvec+31, yyvstop+1010,
2915 yycrank+0, 0, yyvstop+1012,
2916 yycrank+938, 0, 0,
2917 yycrank+939, 0, 0,
2918 yycrank+941, 0, 0,
2919 yycrank+0, yysvec+31, yyvstop+1014,
2920 yycrank+942, 0, 0,
2921 yycrank+1111, 0, yyvstop+1017,
2922 yycrank+945, yysvec+31, yyvstop+1019,
2923 yycrank+0, 0, yyvstop+1021,
2924 yycrank+-1038, yysvec+163, yyvstop+1023,
2925 yycrank+-1039, yysvec+163, yyvstop+1026,
2926 yycrank+-1041, yysvec+163, yyvstop+1029,
2927 yycrank+0, 0, yyvstop+1032,
2928 yycrank+952, 0, 0,
2929 yycrank+953, 0, 0,
2930 yycrank+955, yysvec+31, yyvstop+1034,
2931 yycrank+0, yysvec+31, yyvstop+1036,
2932 yycrank+956, yysvec+31, yyvstop+1039,
2933 yycrank+0, 0, yyvstop+1041,
2934 yycrank+0, 0, yyvstop+1043,
2935 yycrank+0, 0, yyvstop+1045,
2936 yycrank+0, 0, yyvstop+1047,
2937 yycrank+1049, yysvec+31, yyvstop+1049,
2938 yycrank+0, 0, yyvstop+1051,
2939 yycrank+0, 0, yyvstop+1053,
2940 yycrank+0, yysvec+31, yyvstop+1055,
2941 yycrank+0, yysvec+31, yyvstop+1058,
2942 0, 0, 0};
2943 struct yywork *yytop = yycrank+1233;
2944 struct yysvf *yybgin = yysvec+1;
2945 Uchar yymatch[] = {
2946 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2947 01 ,011 ,012 ,01 ,01 ,01 ,01 ,01 ,
2948 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2949 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2950 011 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2951 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2952 '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
2953 '0' ,'0' ,01 ,01 ,01 ,01 ,01 ,01 ,
2954 01 ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
2955 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
2956 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
2957 'A' ,'A' ,'A' ,01 ,01 ,01 ,01 ,'A' ,
2958 01 ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
2959 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
2960 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
2961 'A' ,'A' ,'A' ,01 ,01 ,01 ,01 ,01 ,
2962 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2963 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2964 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2965 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2966 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2967 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2968 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2969 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2970 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2971 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2972 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2973 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2974 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2975 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2976 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2977 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
2979 Uchar yyextra[] = {
2980 0,0,0,0,0,0,0,0,
2981 0,0,0,0,0,0,0,0,
2982 0,0,0,0,0,0,0,0,
2983 0,0,0,0,0,0,0,0,
2984 0,0,0,0,0,0,0,0,
2985 0,0,0,0,0,0,0,0,
2986 0,0,0,0,0,0,0,0,
2987 0,0,0,0,0,0,0,0,
2988 0,0,0,0,0,0,0,0,
2989 0,0,0,0,0,0,0,0,
2990 0,0,0,0,0,0,0,0,
2991 0,0,0,0,0,0,0,0,
2992 0,0,0,0,0,0,0,0,
2993 0,0,0,0,0,0,0,0,
2994 0,0,0,0,0,0,0,0,
2995 0,0,0,0,0,0,0,0,
2996 0,0,0,0,0,0,0,0,
2997 0,0,0,0,0,0,0,0,
2999 #pragma lib "libl.a"
3000 int yylineno =1;
3001 # define YYU(x) x
3002 char yytext[YYLMAX];
3003 struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
3004 Uchar yysbuf[YYLMAX];
3005 Uchar *yysptr = yysbuf;
3006 int *yyfnd;
3007 extern struct yysvf *yyestate;
3008 int yyprevious = YYNEWLINE;
3009 # ifdef LEXDEBUG
3010 extern void allprint(int);
3011 # endif
3012 yylook(void){
3013 struct yysvf *yystate, **lsp;
3014 struct yywork *yyt;
3015 struct yysvf *yyz;
3016 int yych;
3017 struct yywork *yyr;
3018 # ifdef LEXDEBUG
3019 int debug;
3020 # endif
3021 Uchar *yylastch;
3022 /* start off machines */
3023 # ifdef LEXDEBUG
3024 debug = 0;
3025 # endif
3026 if (!yymorfg)
3027 yylastch = (Uchar*)yytext;
3028 else {
3029 yymorfg=0;
3030 yylastch = (Uchar*)yytext+yyleng;
3032 for(;;){
3033 lsp = yylstate;
3034 yyestate = yystate = yybgin;
3035 if (yyprevious==YYNEWLINE) yystate++;
3036 for (;;){
3037 # ifdef LEXDEBUG
3038 if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
3039 # endif
3040 yyt = yystate->yystoff;
3041 if(yyt == yycrank){ /* may not be any transitions */
3042 yyz = yystate->yyother;
3043 if(yyz == 0)break;
3044 if(yyz->yystoff == yycrank)break;
3046 *yylastch++ = yych = input();
3047 tryagain:
3048 # ifdef LEXDEBUG
3049 if(debug){
3050 fprintf(yyout,"char ");
3051 allprint(yych);
3052 putchar('\n');
3054 # endif
3055 yyr = yyt;
3056 if (yyt > yycrank){
3057 yyt = yyr + yych;
3058 if (yyt <= yytop && yyt->verify+yysvec == yystate){
3059 if(yyt->advance+yysvec == YYLERR) /* error transitions */
3060 {unput(*--yylastch);break;}
3061 *lsp++ = yystate = yyt->advance+yysvec;
3062 goto contin;
3065 # ifdef YYOPTIM
3066 else if(yyt < yycrank) { /* r < yycrank */
3067 yyt = yyr = yycrank+(yycrank-yyt);
3068 # ifdef LEXDEBUG
3069 if(debug)fprintf(yyout,"compressed state\n");
3070 # endif
3071 yyt = yyt + yych;
3072 if(yyt <= yytop && yyt->verify+yysvec == yystate){
3073 if(yyt->advance+yysvec == YYLERR) /* error transitions */
3074 {unput(*--yylastch);break;}
3075 *lsp++ = yystate = yyt->advance+yysvec;
3076 goto contin;
3078 yyt = yyr + YYU(yymatch[yych]);
3079 # ifdef LEXDEBUG
3080 if(debug){
3081 fprintf(yyout,"try fall back character ");
3082 allprint(YYU(yymatch[yych]));
3083 putchar('\n');
3085 # endif
3086 if(yyt <= yytop && yyt->verify+yysvec == yystate){
3087 if(yyt->advance+yysvec == YYLERR) /* error transition */
3088 {unput(*--yylastch);break;}
3089 *lsp++ = yystate = yyt->advance+yysvec;
3090 goto contin;
3093 if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
3094 # ifdef LEXDEBUG
3095 if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
3096 # endif
3097 goto tryagain;
3099 # endif
3100 else
3101 {unput(*--yylastch);break;}
3102 contin:
3103 # ifdef LEXDEBUG
3104 if(debug){
3105 fprintf(yyout,"state %d char ",yystate-yysvec-1);
3106 allprint(yych);
3107 putchar('\n');
3109 # endif
3112 # ifdef LEXDEBUG
3113 if(debug){
3114 fprintf(yyout,"stopped at %d with ",lsp>yylstate?*(lsp-1)-yysvec-1:0);
3115 allprint(yych);
3116 putchar('\n');
3118 # endif
3119 while (lsp-- > yylstate){
3120 *yylastch-- = 0;
3121 if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
3122 yyolsp = lsp;
3123 if(yyextra[*yyfnd]){ /* must backup */
3124 while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
3125 lsp--;
3126 unput(*yylastch--);
3129 yyprevious = YYU(*yylastch);
3130 yylsp = lsp;
3131 yyleng = yylastch-(Uchar*)yytext+1;
3132 yytext[yyleng] = 0;
3133 # ifdef LEXDEBUG
3134 if(debug){
3135 fprintf(yyout,"\nmatch '%s'", yytext);
3136 fprintf(yyout," action %d\n",*yyfnd);
3138 # endif
3139 return(*yyfnd++);
3141 unput(*yylastch);
3143 if (yytext[0] == 0 /* && feof(yyin) */)
3145 yysptr=yysbuf;
3146 return(0);
3148 yyprevious = input();
3149 yytext[0] = yyprevious;
3150 if (yyprevious>0)
3151 output(yyprevious);
3152 yylastch = (Uchar*)yytext;
3153 # ifdef LEXDEBUG
3154 if(debug)putchar('\n');
3155 # endif
3158 yyback(int *p, int m)
3160 if (p==0) return(0);
3161 while (*p)
3163 if (*p++ == m)
3164 return(1);
3166 return(0);
3168 /* the following are only used in the lex library */
3169 yyinput(void){
3170 return(input());
3172 void
3173 yyoutput(int c)
3175 output(c);
3177 void
3178 yyunput(int c)
3180 unput(c);