mkdev: remove devutf/C*
[troff.git] / grap / grapl.c
blob9a5da329fa93f3ad06ab4678ff1365d16da99882
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 #define yyin stdin
20 #define yyout stdout
21 extern int yylineno;
22 struct yysvf {
23 struct yywork *yystoff;
24 struct yysvf *yyother;
25 int *yystops;};
26 struct yysvf *yyestate;
27 extern struct yysvf yysvec[], *yybgin;
28 int yylook(void), yywrap(void), yyback(int *, int);
29 # define output(c) putc(c,yyout)
30 # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
31 #define A 2
32 #define str 4
33 #define def 6
34 #define thru 8
35 #define sh 10
36 #undef input
37 #undef unput
38 #include <stdio.h>
39 #include <stdlib.h>
40 #include <ctype.h>
41 #include "grap.h"
42 #include "y.tab.h"
44 int yyback(int *, int);
45 int yylook(void);
46 int yywrap(void);
47 void shell_init(void), shell_exec(void), shell_text(char *);
49 #define CADD cbuf[clen++] = yytext[0]; \
50 if (clen >= CBUFLEN-1) { \
51 ERROR "string too long", cbuf WARNING; BEGIN A; }
52 #define CBUFLEN 1500
53 char cbuf[CBUFLEN];
54 int clen, cflag;
55 int c, delim, shcnt;
56 #define YYNEWLINE 10
57 yylex(void){
58 int nstr; extern int yyprevious;
59 if (yybgin-yysvec-1 == 0) { /* witchcraft */
60 BEGIN A;
62 while((nstr = yylook()) >= 0)
63 yyfussy: switch(nstr){
64 case 0:
65 if(yywrap()) return(0); break;
66 case 1:
68 break;
69 case 2:
71 break;
72 case 3:
73 return(ST);
74 break;
75 case 4:
76 return(ST);
77 break;
78 case 5:
79 return(yylval.i = LINE);
80 break;
81 case 6:
82 { yylval.i = ARROW; return(LINE); }
83 break;
84 case 7:
85 return(yylval.i = CIRCLE);
86 break;
87 case 8:
88 return(FRAME);
89 break;
90 case 9:
91 return(TICKS);
92 break;
93 case 10:
94 return(GRID);
95 break;
96 case 11:
97 return(COORD);
98 break;
99 case 12:
100 return(LOG);
101 break;
102 case 13:
103 return(EXP);
104 break;
105 case 14:
106 return(SIN);
107 break;
108 case 15:
109 return(COS);
110 break;
111 case 16:
112 return(ATAN2);
113 break;
114 case 17:
115 return(SQRT);
116 break;
117 case 18:
118 return(RAND);
119 break;
120 case 19:
121 return(MAX);
122 break;
123 case 20:
124 return(MIN);
125 break;
126 case 21:
127 return(INT);
128 break;
129 case 22:
130 return(PRINT);
131 break;
132 case 23:
133 return(SPRINTF);
134 break;
135 case 24:
136 { yylval.p = tostring(yytext+3); return(PIC); }
137 break;
138 case 25:
139 { yylval.p = tostring(yytext+5); return(GRAPH); }
140 break;
141 case 26:
142 return(FOR);
143 break;
144 case 27:
145 { endfor(); }
146 break;
147 case 28:
148 { yylval.p = delimstr("loop body"); BEGIN A; return(DOSTR); }
149 break;
150 case 29:
151 { return(COPY); }
152 break;
153 case 30:
154 { BEGIN thru; return(THRU); }
155 break;
156 case 31:
158 break;
159 case 32:
160 { yylval.op = copythru(yytext); BEGIN A; return(DEFNAME); }
161 break;
162 case 33:
163 return(UNTIL);
164 break;
165 case 34:
166 return(IF);
167 break;
168 case 35:
169 { yylval.p = delimstr("then part"); BEGIN A; return(THEN); }
170 break;
171 case 36:
172 { yylval.p = delimstr("else part"); BEGIN A; return(ELSE); }
173 break;
174 case 37:
175 return(NEXT);
176 break;
177 case 38:
178 return(yylval.i = DRAW);
179 break;
180 case 39:
181 return(yylval.i = NEW);
182 break;
183 case 40:
184 return(yylval.i = PLOT);
185 break;
186 case 41:
187 return(LABEL);
188 break;
189 case 42:
190 return(X);
191 break;
192 case 43:
193 return(Y);
194 break;
195 case 44:
196 { yylval.i = TOP; return SIDE; }
197 break;
198 case 45:
199 { yylval.i = BOT; return SIDE; }
200 break;
201 case 46:
202 { yylval.i = LEFT; return SIDE; }
203 break;
204 case 47:
205 { yylval.i = RIGHT; return SIDE; }
206 break;
207 case 48:
208 return(yylval.i = UP);
209 break;
210 case 49:
211 return(yylval.i = DOWN);
212 break;
213 case 50:
214 return(yylval.i = ACROSS);
215 break;
216 case 51:
217 return(yylval.i = HEIGHT);
218 break;
219 case 52:
220 return(yylval.i = WIDTH);
221 break;
222 case 53:
223 return(yylval.i = RADIUS);
224 break;
225 case 54:
226 return(yylval.i = INVIS);
227 break;
228 case 55:
229 return(yylval.i = DOT);
230 break;
231 case 56:
232 return(yylval.i = DASH);
233 break;
234 case 57:
235 return(yylval.i = SOLID);
236 break;
237 case 58:
238 { yylval.i = LJUST; return JUST; }
239 break;
240 case 59:
241 { yylval.i = RJUST; return JUST; }
242 break;
243 case 60:
244 { yylval.i = ABOVE; return JUST; }
245 break;
246 case 61:
247 { yylval.i = BELOW; return JUST; }
248 break;
249 case 62:
250 return(yylval.i = SIZE);
251 break;
252 case 63:
253 return(yylval.i = FROM);
254 break;
255 case 64:
256 return(yylval.i = TO);
257 break;
258 case 65:
259 return(yylval.i = BY);
260 break;
261 case 66:
262 return(yylval.i = AT);
263 break;
264 case 67:
265 return(yylval.i = WITH);
266 break;
267 case 68:
268 return(yylval.i = IN);
269 break;
270 case 69:
271 return(yylval.i = OUT);
272 break;
273 case 70:
274 return(yylval.i = OFF);
275 break;
276 case 71:
277 { BEGIN sh;
278 if ((delim = input()) == '{') {
279 shcnt = 1;
280 delim = '}';
282 shell_init();
284 break;
285 case 72:
287 int c;
288 Obj *p;
289 if (yytext[0] == delim) {
290 shell_exec();
291 BEGIN A;
292 } else {
293 p = lookup(yytext, 0);
294 if (p != NULL && p->type == DEFNAME) {
295 c = input();
296 unput(c);
297 if (c == '(')
298 dodef(p);
299 else
300 pbstr(p->val);
301 } else
302 shell_text(yytext);
305 break;
306 case 73:
307 { shcnt++; shell_text(yytext); }
308 break;
309 case 74:
310 { if (delim != '}' || --shcnt > 0)
311 shell_text(yytext);
312 else {
313 shell_exec();
314 BEGIN A;
317 break;
318 case 75:
319 { if (yytext[0] == delim) {
320 shell_exec();
321 BEGIN A;
322 } else
323 shell_text(yytext);
325 break;
326 case 76:
327 { BEGIN def; }
328 break;
329 case 77:
330 { definition(yytext); BEGIN A; }
331 break;
332 case 78:
334 yylval.f = atof(yytext); return(NUMBER); }
335 break;
336 case 79:
337 { if (yytext[1] == 'G' && yytext[2] == '2') {
338 yylval.i = yytext[2];
339 return(EOF);
340 } else {
341 yylval.p = tostring(yytext);
342 return(PIC);
345 break;
346 case 80:
348 int c;
349 Obj *p;
350 p = lookup(yytext, 1);
351 if (p->type == DEFNAME) {
352 c = input();
353 unput(c);
354 if (c == '(') /* it's name(...) */
355 dodef(p);
356 else /* no argument list */
357 pbstr(p->val);
358 } else {
359 yylval.op = p;
360 return p->type; /* NAME or VARNAME */
363 break;
364 case 81:
365 return(EQ);
366 break;
367 case 82:
368 return(GE);
369 break;
370 case 83:
371 return(LE);
372 break;
373 case 84:
374 return(NE);
375 break;
376 case 85:
377 return(GT);
378 break;
379 case 86:
380 return(LT);
381 break;
382 case 87:
383 return(AND);
384 break;
385 case 88:
386 return(OR);
387 break;
388 case 89:
389 return(NOT);
390 break;
391 case 90:
392 { BEGIN str; clen = 0; }
393 break;
394 case 91:
395 { BEGIN A; cbuf[clen] = 0;
396 yylval.p = tostring(cbuf); return(STRING); }
397 break;
398 case 92:
399 { ERROR "newline in string" WARNING; BEGIN A; return(ST); }
400 break;
401 case 93:
402 { cbuf[clen++] = '\\'; cbuf[clen++] = '"'; }
403 break;
404 case 94:
405 { cbuf[clen++] = '\\'; cbuf[clen++] = '\\'; }
406 break;
407 case 95:
408 { CADD; }
409 break;
410 case 96:
412 break;
413 case 97:
414 { yylval.i = yytext[0]; return(yytext[0]); }
415 break;
416 case -1:
417 break;
418 default:
419 fprintf(yyout,"bad switch yylook %d",nstr);
420 } return(0); }
421 /* end of yylex */
422 int yyvstop[] = {
1361 # define YYTYPE int
1362 struct yywork { YYTYPE verify, advance; } yycrank[] = {
1363 0,0, 0,0, 3,13, 0,0,
1364 5,52, 0,0, 0,0, 0,0,
1365 0,0, 0,0, 3,14, 3,15,
1366 5,52, 5,53, 0,0, 0,0,
1367 0,0, 0,0, 0,0, 0,0,
1368 0,0, 0,0, 9,57, 0,0,
1369 0,0, 0,0, 0,0, 0,0,
1370 0,0, 0,0, 9,58, 9,0,
1371 10,0, 18,65, 3,16, 3,17,
1372 3,18, 5,54, 6,54, 3,19,
1373 27,76, 18,65, 18,0, 65,0,
1374 11,60, 0,0, 0,0, 3,20,
1375 0,0, 3,21, 0,0, 5,52,
1376 11,60, 11,60, 0,0, 0,0,
1377 55,130, 0,0, 58,132, 19,66,
1378 3,22, 3,23, 3,24, 3,25,
1379 0,0, 0,0, 3,26, 0,0,
1380 5,52, 9,57, 20,67, 20,67,
1381 20,67, 20,67, 20,67, 20,67,
1382 20,67, 20,67, 20,67, 20,67,
1383 18,65, 58,132, 16,64, 23,72,
1384 24,73, 25,74, 9,59, 0,0,
1385 0,0, 0,0, 0,0, 11,60,
1386 0,0, 3,27, 0,0, 5,55,
1387 6,55, 18,65, 3,28, 3,29,
1388 3,30, 3,31, 3,32, 3,33,
1389 3,34, 3,35, 3,36, 0,0,
1390 11,61, 3,37, 3,38, 3,39,
1391 3,40, 3,41, 55,131, 3,42,
1392 3,43, 3,44, 3,45, 80,139,
1393 3,46, 3,47, 3,48, 29,81,
1394 39,106, 3,49, 4,16, 4,17,
1395 4,18, 28,77, 28,78, 4,19,
1396 30,84, 29,82, 33,92, 35,95,
1397 32,90, 33,93, 30,85, 4,50,
1398 34,94, 36,97, 40,107, 29,83,
1399 12,62, 28,79, 12,63, 28,80,
1400 32,91, 36,98, 35,96, 38,104,
1401 4,22, 4,23, 4,24, 4,25,
1402 31,86, 40,108, 46,126, 38,105,
1403 31,87, 49,127, 4,51, 37,99,
1404 51,129, 77,136, 11,62, 37,100,
1405 11,63, 78,137, 31,88, 37,101,
1406 37,102, 31,89, 42,112, 41,109,
1407 79,138, 37,103, 41,110, 44,121,
1408 44,122, 81,140, 42,113, 42,114,
1409 41,111, 4,27, 44,123, 45,124,
1410 82,141, 45,125, 4,28, 4,29,
1411 4,30, 4,31, 4,32, 4,33,
1412 4,34, 4,35, 4,36, 84,142,
1413 86,146, 4,37, 4,38, 4,39,
1414 4,40, 4,41, 87,147, 4,42,
1415 4,43, 4,44, 4,45, 89,150,
1416 4,46, 4,47, 4,48, 90,151,
1417 91,152, 4,49, 7,56, 7,56,
1418 7,56, 7,56, 7,56, 7,56,
1419 7,56, 7,56, 7,56, 7,56,
1420 7,56, 7,56, 7,56, 7,56,
1421 7,56, 7,56, 7,56, 7,56,
1422 7,56, 7,56, 7,56, 7,56,
1423 7,56, 7,56, 7,56, 7,56,
1424 88,148, 85,143, 85,144, 88,149,
1425 7,56, 85,145, 7,56, 7,56,
1426 7,56, 7,56, 7,56, 7,56,
1427 7,56, 7,56, 7,56, 7,56,
1428 7,56, 7,56, 7,56, 7,56,
1429 7,56, 7,56, 7,56, 7,56,
1430 7,56, 7,56, 7,56, 7,56,
1431 7,56, 7,56, 7,56, 7,56,
1432 21,68, 92,153, 21,69, 21,69,
1433 21,69, 21,69, 21,69, 21,69,
1434 21,69, 21,69, 21,69, 21,69,
1435 43,115, 43,116, 95,158, 99,162,
1436 100,163, 101,164, 98,159, 43,117,
1437 43,118, 43,119, 67,70, 21,70,
1438 43,120, 56,56, 56,56, 56,56,
1439 56,56, 56,56, 56,56, 56,56,
1440 56,56, 56,56, 56,56, 98,160,
1441 102,165, 98,161, 103,166, 93,154,
1442 104,167, 105,168, 107,171, 26,75,
1443 26,75, 26,75, 26,75, 26,75,
1444 26,75, 26,75, 26,75, 26,75,
1445 26,75, 93,155, 67,70, 21,70,
1446 106,169, 106,170, 67,71, 21,71,
1447 26,75, 26,75, 26,75, 26,75,
1448 26,75, 26,75, 26,75, 26,75,
1449 26,75, 26,75, 26,75, 26,75,
1450 26,75, 26,75, 26,75, 26,75,
1451 26,75, 26,75, 26,75, 26,75,
1452 26,75, 26,75, 26,75, 26,75,
1453 26,75, 26,75, 108,172, 109,173,
1454 110,174, 111,175, 26,75, 113,178,
1455 26,75, 26,75, 26,75, 26,75,
1456 26,75, 26,75, 26,75, 26,75,
1457 26,75, 26,75, 26,75, 26,75,
1458 26,75, 26,75, 26,75, 26,75,
1459 26,75, 26,75, 26,75, 26,75,
1460 26,75, 26,75, 26,75, 26,75,
1461 26,75, 26,75, 50,128, 114,179,
1462 115,180, 117,183, 118,184, 70,134,
1463 119,185, 70,134, 50,128, 50,128,
1464 70,135, 70,135, 70,135, 70,135,
1465 70,135, 70,135, 70,135, 70,135,
1466 70,135, 70,135, 94,156, 112,176,
1467 116,181, 120,186, 121,187, 115,180,
1468 122,189, 123,190, 94,157, 124,191,
1469 126,192, 112,177, 129,194, 135,71,
1470 116,182, 136,195, 137,196, 121,188,
1471 138,197, 139,198, 140,199, 141,200,
1472 142,201, 143,202, 144,203, 146,204,
1473 126,193, 50,67, 59,59, 59,59,
1474 59,59, 59,59, 59,59, 59,59,
1475 59,59, 59,59, 59,59, 59,59,
1476 128,0, 147,205, 148,206, 149,207,
1477 150,208, 151,209, 50,128, 59,59,
1478 59,59, 59,59, 59,59, 59,59,
1479 59,59, 59,59, 59,59, 59,59,
1480 59,59, 59,59, 59,59, 59,59,
1481 59,59, 59,59, 59,59, 59,59,
1482 59,59, 59,59, 59,59, 59,59,
1483 59,59, 59,59, 59,59, 59,59,
1484 59,59, 154,210, 155,211, 156,212,
1485 157,213, 59,59, 128,128, 59,59,
1486 59,59, 59,59, 59,59, 59,59,
1487 59,59, 59,59, 59,59, 59,59,
1488 59,59, 59,59, 59,59, 59,59,
1489 59,59, 59,59, 59,59, 59,59,
1490 59,59, 59,59, 59,59, 59,59,
1491 59,59, 59,59, 59,59, 59,59,
1492 59,59, 61,133, 61,133, 61,133,
1493 61,133, 61,133, 61,133, 61,133,
1494 61,133, 61,133, 61,133, 158,214,
1495 159,215, 161,216, 162,217, 163,218,
1496 164,219, 165,220, 61,133, 61,133,
1497 61,133, 61,133, 61,133, 61,133,
1498 61,133, 61,133, 61,133, 61,133,
1499 61,133, 61,133, 61,133, 61,133,
1500 61,133, 61,133, 61,133, 61,133,
1501 61,133, 61,133, 61,133, 61,133,
1502 61,133, 61,133, 61,133, 61,133,
1503 170,221, 174,223, 175,224, 176,225,
1504 61,133, 177,226, 61,133, 61,133,
1505 61,133, 61,133, 61,133, 61,133,
1506 61,133, 61,133, 61,133, 61,133,
1507 61,133, 61,133, 61,133, 61,133,
1508 61,133, 61,133, 61,133, 61,133,
1509 61,133, 61,133, 61,133, 61,133,
1510 61,133, 61,133, 61,133, 61,133,
1511 68,68, 68,68, 68,68, 68,68,
1512 68,68, 68,68, 68,68, 68,68,
1513 68,68, 68,68, 134,135, 134,135,
1514 134,135, 134,135, 134,135, 134,135,
1515 134,135, 134,135, 134,135, 134,135,
1516 173,222, 68,70, 178,227, 179,228,
1517 180,180, 182,229, 183,230, 184,231,
1518 185,232, 186,83, 187,233, 188,234,
1519 189,236, 191,237, 192,238, 193,239,
1520 194,240, 188,235, 195,241, 196,242,
1521 197,243, 198,244, 199,245, 173,222,
1522 200,246, 201,247, 202,248, 180,180,
1523 204,249, 205,250, 206,251, 210,252,
1524 212,253, 68,70, 213,254, 214,256,
1525 215,257, 68,71, 216,258, 217,259,
1526 220,260, 213,255, 222,222, 224,261,
1527 225,262, 227,263, 228,264, 230,265,
1528 231,266, 234,267, 222,222, 222,0,
1529 236,268, 237,269, 238,270, 240,271,
1530 242,272, 246,273, 247,274, 248,275,
1531 249,276, 250,277, 251,278, 253,279,
1532 254,280, 256,96, 257,281, 259,282,
1533 262,283, 266,284, 267,285, 271,286,
1534 277,287, 279,279, 280,288, 281,203,
1535 284,289, 285,235, 286,290, 287,287,
1536 288,291, 279,279, 279,0, 291,255,
1537 0,0, 0,0, 253,279, 0,0,
1538 0,0, 222,222, 0,0, 0,0,
1539 0,0, 0,0, 0,0, 277,287,
1540 0,0, 0,0, 0,0, 0,0,
1541 0,0, 0,0, 287,287, 0,0,
1542 0,0, 0,0, 222,222, 0,0,
1543 0,0, 0,0, 0,0, 0,0,
1544 0,0, 0,0, 0,0, 0,0,
1545 0,0, 0,0, 0,0, 0,0,
1546 279,279, 0,0, 0,0, 0,0,
1547 0,0, 0,0, 0,0, 0,0,
1548 0,0, 0,0, 0,0, 0,0,
1549 0,0, 0,0, 0,0, 0,0,
1550 0,0, 279,279, 0,0, 0,0,
1551 0,0};
1552 struct yysvf yysvec[] = {
1553 0, 0, 0,
1554 yycrank+0, 0, 0,
1555 yycrank+0, 0, 0,
1556 yycrank+-1, 0, 0,
1557 yycrank+-93, yysvec+3, 0,
1558 yycrank+-3, 0, 0,
1559 yycrank+-4, yysvec+5, 0,
1560 yycrank+153, 0, 0,
1561 yycrank+0, yysvec+7, 0,
1562 yycrank+-21, 0, 0,
1563 yycrank+-22, yysvec+9, 0,
1564 yycrank+-43, 0, 0,
1565 yycrank+-21, yysvec+11, 0,
1566 yycrank+0, 0, yyvstop+1,
1567 yycrank+0, 0, yyvstop+3,
1568 yycrank+0, 0, yyvstop+6,
1569 yycrank+21, 0, yyvstop+8,
1570 yycrank+0, 0, yyvstop+11,
1571 yycrank+-32, 0, yyvstop+14,
1572 yycrank+21, 0, yyvstop+17,
1573 yycrank+22, 0, yyvstop+19,
1574 yycrank+230, 0, yyvstop+21,
1575 yycrank+0, 0, yyvstop+24,
1576 yycrank+22, 0, yyvstop+27,
1577 yycrank+23, 0, yyvstop+30,
1578 yycrank+24, 0, yyvstop+32,
1579 yycrank+271, 0, yyvstop+35,
1580 yycrank+30, 0, yyvstop+38,
1581 yycrank+31, yysvec+26, yyvstop+40,
1582 yycrank+22, yysvec+26, yyvstop+43,
1583 yycrank+27, yysvec+26, yyvstop+46,
1584 yycrank+59, yysvec+26, yyvstop+49,
1585 yycrank+28, yysvec+26, yyvstop+52,
1586 yycrank+23, yysvec+26, yyvstop+55,
1587 yycrank+26, yysvec+26, yyvstop+58,
1588 yycrank+34, yysvec+26, yyvstop+61,
1589 yycrank+39, yysvec+26, yyvstop+64,
1590 yycrank+66, yysvec+26, yyvstop+67,
1591 yycrank+54, yysvec+26, yyvstop+70,
1592 yycrank+23, yysvec+26, yyvstop+73,
1593 yycrank+40, yysvec+26, yyvstop+76,
1594 yycrank+70, yysvec+26, yyvstop+79,
1595 yycrank+77, yysvec+26, yyvstop+82,
1596 yycrank+184, yysvec+26, yyvstop+85,
1597 yycrank+75, yysvec+26, yyvstop+88,
1598 yycrank+77, yysvec+26, yyvstop+91,
1599 yycrank+53, yysvec+26, yyvstop+94,
1600 yycrank+0, yysvec+26, yyvstop+97,
1601 yycrank+0, yysvec+26, yyvstop+101,
1602 yycrank+37, 0, yyvstop+105,
1603 yycrank+-393, 0, yyvstop+107,
1604 yycrank+54, yysvec+26, yyvstop+109,
1605 yycrank+0, 0, yyvstop+112,
1606 yycrank+0, 0, yyvstop+114,
1607 yycrank+0, 0, yyvstop+116,
1608 yycrank+22, 0, yyvstop+119,
1609 yycrank+253, yysvec+7, yyvstop+121,
1610 yycrank+0, 0, yyvstop+123,
1611 yycrank+49, 0, yyvstop+125,
1612 yycrank+394, 0, yyvstop+128,
1613 yycrank+0, 0, yyvstop+130,
1614 yycrank+469, 0, yyvstop+132,
1615 yycrank+0, 0, yyvstop+135,
1616 yycrank+0, 0, yyvstop+138,
1617 yycrank+0, 0, yyvstop+141,
1618 yycrank+-33, yysvec+18, yyvstop+143,
1619 yycrank+0, 0, yyvstop+145,
1620 yycrank+229, yysvec+20, yyvstop+147,
1621 yycrank+544, 0, yyvstop+149,
1622 yycrank+0, yysvec+21, yyvstop+151,
1623 yycrank+356, 0, 0,
1624 yycrank+0, 0, yyvstop+153,
1625 yycrank+0, 0, yyvstop+155,
1626 yycrank+0, 0, yyvstop+157,
1627 yycrank+0, 0, yyvstop+159,
1628 yycrank+0, yysvec+26, yyvstop+161,
1629 yycrank+0, 0, yyvstop+163,
1630 yycrank+54, yysvec+26, yyvstop+165,
1631 yycrank+55, yysvec+26, yyvstop+167,
1632 yycrank+62, yysvec+26, yyvstop+169,
1633 yycrank+22, yysvec+26, yyvstop+171,
1634 yycrank+73, yysvec+26, yyvstop+174,
1635 yycrank+72, yysvec+26, yyvstop+176,
1636 yycrank+0, yysvec+26, yyvstop+178,
1637 yycrank+85, yysvec+26, yyvstop+181,
1638 yycrank+134, yysvec+26, yyvstop+183,
1639 yycrank+85, yysvec+26, yyvstop+185,
1640 yycrank+104, yysvec+26, yyvstop+187,
1641 yycrank+128, yysvec+26, yyvstop+189,
1642 yycrank+114, yysvec+26, yyvstop+192,
1643 yycrank+100, yysvec+26, yyvstop+194,
1644 yycrank+104, yysvec+26, yyvstop+196,
1645 yycrank+163, yysvec+26, yyvstop+198,
1646 yycrank+218, yysvec+26, yyvstop+200,
1647 yycrank+317, yysvec+26, yyvstop+202,
1648 yycrank+185, yysvec+26, yyvstop+204,
1649 yycrank+0, yysvec+26, yyvstop+206,
1650 yycrank+0, yysvec+26, yyvstop+209,
1651 yycrank+195, yysvec+26, yyvstop+212,
1652 yycrank+193, yysvec+26, yyvstop+215,
1653 yycrank+190, yysvec+26, yyvstop+217,
1654 yycrank+183, yysvec+26, yyvstop+219,
1655 yycrank+195, yysvec+26, yyvstop+221,
1656 yycrank+211, yysvec+26, yyvstop+223,
1657 yycrank+196, yysvec+26, yyvstop+225,
1658 yycrank+207, yysvec+26, yyvstop+227,
1659 yycrank+213, yysvec+26, yyvstop+229,
1660 yycrank+216, yysvec+26, yyvstop+231,
1661 yycrank+246, yysvec+26, yyvstop+233,
1662 yycrank+264, yysvec+26, yyvstop+235,
1663 yycrank+253, yysvec+26, yyvstop+237,
1664 yycrank+260, yysvec+26, yyvstop+239,
1665 yycrank+315, yysvec+26, yyvstop+241,
1666 yycrank+264, yysvec+26, yyvstop+243,
1667 yycrank+278, yysvec+26, yyvstop+245,
1668 yycrank+387, yysvec+26, yyvstop+247,
1669 yycrank+306, yysvec+26, yyvstop+249,
1670 yycrank+289, yysvec+26, yyvstop+251,
1671 yycrank+284, yysvec+26, yyvstop+253,
1672 yycrank+286, yysvec+26, yyvstop+255,
1673 yycrank+316, yysvec+26, yyvstop+257,
1674 yycrank+317, yysvec+26, yyvstop+259,
1675 yycrank+321, yysvec+26, yyvstop+261,
1676 yycrank+309, yysvec+26, yyvstop+263,
1677 yycrank+307, yysvec+26, yyvstop+266,
1678 yycrank+0, yysvec+26, yyvstop+268,
1679 yycrank+324, yysvec+26, yyvstop+271,
1680 yycrank+0, 0, yyvstop+273,
1681 yycrank+-442, yysvec+50, yyvstop+275,
1682 yycrank+326, yysvec+26, yyvstop+277,
1683 yycrank+0, 0, yyvstop+279,
1684 yycrank+0, 0, yyvstop+281,
1685 yycrank+0, yysvec+58, yyvstop+283,
1686 yycrank+0, yysvec+61, yyvstop+285,
1687 yycrank+554, 0, 0,
1688 yycrank+322, yysvec+134, yyvstop+287,
1689 yycrank+311, yysvec+26, yyvstop+289,
1690 yycrank+319, yysvec+26, yyvstop+291,
1691 yycrank+321, yysvec+26, yyvstop+293,
1692 yycrank+323, yysvec+26, yyvstop+295,
1693 yycrank+323, yysvec+26, yyvstop+297,
1694 yycrank+319, yysvec+26, yyvstop+299,
1695 yycrank+337, yysvec+26, yyvstop+302,
1696 yycrank+323, yysvec+26, yyvstop+304,
1697 yycrank+317, yysvec+26, yyvstop+306,
1698 yycrank+0, yysvec+26, yyvstop+308,
1699 yycrank+335, yysvec+26, yyvstop+311,
1700 yycrank+348, yysvec+26, yyvstop+313,
1701 yycrank+338, yysvec+26, yyvstop+315,
1702 yycrank+345, yysvec+26, yyvstop+317,
1703 yycrank+337, yysvec+26, yyvstop+319,
1704 yycrank+356, yysvec+26, yyvstop+321,
1705 yycrank+0, yysvec+26, yyvstop+323,
1706 yycrank+0, yysvec+26, yyvstop+326,
1707 yycrank+376, yysvec+26, yyvstop+329,
1708 yycrank+377, yysvec+26, yyvstop+331,
1709 yycrank+375, yysvec+26, yyvstop+333,
1710 yycrank+388, yysvec+26, yyvstop+335,
1711 yycrank+424, yysvec+26, yyvstop+337,
1712 yycrank+420, yysvec+26, yyvstop+339,
1713 yycrank+0, yysvec+26, yyvstop+341,
1714 yycrank+424, yysvec+26, yyvstop+344,
1715 yycrank+429, yysvec+26, yyvstop+346,
1716 yycrank+415, yysvec+26, yyvstop+348,
1717 yycrank+431, yysvec+26, yyvstop+350,
1718 yycrank+418, yysvec+26, yyvstop+352,
1719 yycrank+0, yysvec+26, yyvstop+354,
1720 yycrank+0, yysvec+26, yyvstop+357,
1721 yycrank+0, yysvec+26, yyvstop+360,
1722 yycrank+0, yysvec+26, yyvstop+363,
1723 yycrank+444, yysvec+26, yyvstop+366,
1724 yycrank+0, yysvec+26, yyvstop+368,
1725 yycrank+0, yysvec+26, yyvstop+371,
1726 yycrank+603, yysvec+26, yyvstop+374,
1727 yycrank+445, yysvec+26, yyvstop+376,
1728 yycrank+452, yysvec+26, yyvstop+378,
1729 yycrank+458, yysvec+26, yyvstop+380,
1730 yycrank+465, yysvec+26, yyvstop+383,
1731 yycrank+510, yysvec+26, yyvstop+385,
1732 yycrank+500, yysvec+26, yyvstop+387,
1733 yycrank+607, 0, yyvstop+389,
1734 yycrank+0, yysvec+26, yyvstop+391,
1735 yycrank+516, yysvec+26, yyvstop+394,
1736 yycrank+513, yysvec+26, yyvstop+396,
1737 yycrank+514, yysvec+26, yyvstop+398,
1738 yycrank+504, yysvec+26, yyvstop+400,
1739 yycrank+509, yysvec+26, yyvstop+402,
1740 yycrank+512, yysvec+26, yyvstop+404,
1741 yycrank+512, yysvec+26, yyvstop+406,
1742 yycrank+517, yysvec+26, yyvstop+408,
1743 yycrank+0, yysvec+26, yyvstop+410,
1744 yycrank+520, yysvec+26, yyvstop+413,
1745 yycrank+510, yysvec+26, yyvstop+415,
1746 yycrank+523, yysvec+26, yyvstop+418,
1747 yycrank+526, yysvec+26, yyvstop+420,
1748 yycrank+529, yysvec+26, yyvstop+422,
1749 yycrank+516, yysvec+26, yyvstop+424,
1750 yycrank+513, yysvec+26, yyvstop+426,
1751 yycrank+583, yysvec+26, yyvstop+428,
1752 yycrank+515, yysvec+26, yyvstop+430,
1753 yycrank+525, yysvec+26, yyvstop+432,
1754 yycrank+529, yysvec+26, yyvstop+434,
1755 yycrank+538, yysvec+26, yyvstop+436,
1756 yycrank+0, yysvec+26, yyvstop+438,
1757 yycrank+539, yysvec+26, yyvstop+441,
1758 yycrank+531, yysvec+26, yyvstop+443,
1759 yycrank+541, yysvec+26, yyvstop+445,
1760 yycrank+0, yysvec+26, yyvstop+447,
1761 yycrank+0, yysvec+26, yyvstop+450,
1762 yycrank+0, yysvec+26, yyvstop+453,
1763 yycrank+542, yysvec+26, yyvstop+456,
1764 yycrank+0, yysvec+26, yyvstop+458,
1765 yycrank+540, yysvec+26, yyvstop+461,
1766 yycrank+538, yysvec+26, yyvstop+463,
1767 yycrank+543, yysvec+26, yyvstop+466,
1768 yycrank+531, yysvec+26, yyvstop+468,
1769 yycrank+535, yysvec+26, yyvstop+470,
1770 yycrank+543, yysvec+26, yyvstop+472,
1771 yycrank+0, yysvec+26, yyvstop+474,
1772 yycrank+0, yysvec+26, yyvstop+477,
1773 yycrank+536, yysvec+26, yyvstop+480,
1774 yycrank+0, yysvec+26, yyvstop+482,
1775 yycrank+-653, 0, yyvstop+485,
1776 yycrank+0, yysvec+26, yyvstop+487,
1777 yycrank+539, yysvec+26, yyvstop+490,
1778 yycrank+539, yysvec+26, yyvstop+492,
1779 yycrank+0, yysvec+26, yyvstop+494,
1780 yycrank+541, yysvec+26, yyvstop+497,
1781 yycrank+542, yysvec+26, yyvstop+499,
1782 yycrank+0, yysvec+26, yyvstop+501,
1783 yycrank+559, yysvec+26, yyvstop+504,
1784 yycrank+550, yysvec+26, yyvstop+506,
1785 yycrank+0, yysvec+26, yyvstop+508,
1786 yycrank+0, yysvec+26, yyvstop+511,
1787 yycrank+544, yysvec+26, yyvstop+514,
1788 yycrank+0, yysvec+26, yyvstop+516,
1789 yycrank+549, yysvec+26, yyvstop+519,
1790 yycrank+557, yysvec+26, yyvstop+522,
1791 yycrank+562, yysvec+26, yyvstop+524,
1792 yycrank+0, yysvec+26, yyvstop+526,
1793 yycrank+556, yysvec+26, yyvstop+529,
1794 yycrank+0, yysvec+26, yyvstop+531,
1795 yycrank+553, yysvec+26, yyvstop+534,
1796 yycrank+0, yysvec+26, yyvstop+536,
1797 yycrank+0, yysvec+26, yyvstop+539,
1798 yycrank+0, yysvec+26, yyvstop+542,
1799 yycrank+560, yysvec+26, yyvstop+545,
1800 yycrank+569, yysvec+26, yyvstop+547,
1801 yycrank+556, yysvec+26, yyvstop+549,
1802 yycrank+572, yysvec+26, yyvstop+552,
1803 yycrank+572, yysvec+26, yyvstop+554,
1804 yycrank+574, yysvec+26, yyvstop+556,
1805 yycrank+0, yysvec+26, yyvstop+558,
1806 yycrank+666, yysvec+26, yyvstop+561,
1807 yycrank+571, yysvec+26, yyvstop+563,
1808 yycrank+0, yysvec+26, yyvstop+565,
1809 yycrank+561, yysvec+26, yyvstop+568,
1810 yycrank+578, yysvec+26, yyvstop+570,
1811 yycrank+0, yysvec+26, yyvstop+572,
1812 yycrank+564, yysvec+26, yyvstop+575,
1813 yycrank+0, yysvec+26, yyvstop+578,
1814 yycrank+0, yysvec+26, yyvstop+581,
1815 yycrank+565, yysvec+26, yyvstop+584,
1816 yycrank+0, yysvec+26, yyvstop+586,
1817 yycrank+0, yysvec+26, yyvstop+589,
1818 yycrank+0, yysvec+26, yyvstop+592,
1819 yycrank+565, yysvec+26, yyvstop+595,
1820 yycrank+579, yysvec+26, yyvstop+597,
1821 yycrank+0, yysvec+26, yyvstop+599,
1822 yycrank+0, yysvec+26, yyvstop+602,
1823 yycrank+0, yysvec+26, yyvstop+605,
1824 yycrank+569, yysvec+26, yyvstop+608,
1825 yycrank+0, yysvec+26, yyvstop+610,
1826 yycrank+0, yysvec+26, yyvstop+613,
1827 yycrank+0, yysvec+26, yyvstop+616,
1828 yycrank+0, yysvec+26, yyvstop+619,
1829 yycrank+0, yysvec+26, yyvstop+622,
1830 yycrank+675, yysvec+26, yyvstop+625,
1831 yycrank+0, yysvec+26, yyvstop+627,
1832 yycrank+-684, 0, yyvstop+630,
1833 yycrank+576, yysvec+26, yyvstop+632,
1834 yycrank+586, yysvec+26, yyvstop+634,
1835 yycrank+0, yysvec+26, yyvstop+636,
1836 yycrank+0, yysvec+26, yyvstop+639,
1837 yycrank+586, yysvec+26, yyvstop+642,
1838 yycrank+585, yysvec+26, yyvstop+644,
1839 yycrank+680, yysvec+26, yyvstop+646,
1840 yycrank+682, 0, yyvstop+648,
1841 yycrank+591, yysvec+26, yyvstop+650,
1842 yycrank+0, yysvec+26, yyvstop+652,
1843 yycrank+0, 0, yyvstop+655,
1844 yycrank+580, yysvec+26, yyvstop+657,
1845 0, 0, 0};
1846 struct yywork *yytop = yycrank+749;
1847 struct yysvf *yybgin = yysvec+1;
1848 Uchar yymatch[] = {
1849 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1850 01 ,011 ,012 ,01 ,01 ,01 ,01 ,01 ,
1851 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1852 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1853 011 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1854 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1855 '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
1856 '0' ,'0' ,01 ,01 ,01 ,01 ,01 ,01 ,
1857 01 ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
1858 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
1859 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
1860 'A' ,'A' ,'A' ,01 ,01 ,01 ,01 ,'A' ,
1861 01 ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
1862 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
1863 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
1864 'A' ,'A' ,'A' ,01 ,01 ,01 ,01 ,01 ,
1865 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1866 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1867 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1868 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1869 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1870 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1871 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1872 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1873 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1874 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1875 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1876 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1877 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1878 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1879 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1880 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1882 Uchar yyextra[] = {
1883 0,0,0,0,0,0,0,0,
1884 0,0,0,0,0,0,0,0,
1885 0,0,0,0,0,0,0,0,
1886 0,0,0,0,0,0,0,0,
1887 0,0,0,0,0,0,0,0,
1888 0,0,0,0,0,0,0,0,
1889 0,0,0,0,0,0,0,0,
1890 0,0,0,0,0,0,0,0,
1891 0,0,0,0,0,0,0,0,
1892 0,0,0,0,0,0,0,0,
1893 0,0,0,0,0,0,0,0,
1894 0,0,0,0,0,0,0,0,
1895 0,0,0,0,0,0,0,0,
1897 #pragma lib "libl.a"
1898 int yylineno =1;
1899 # define YYU(x) x
1900 char yytext[YYLMAX];
1901 struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
1902 Uchar yysbuf[YYLMAX];
1903 Uchar *yysptr = yysbuf;
1904 int *yyfnd;
1905 extern struct yysvf *yyestate;
1906 int yyprevious = YYNEWLINE;
1907 # ifdef LEXDEBUG
1908 extern void allprint(int);
1909 # endif
1910 yylook(void){
1911 struct yysvf *yystate, **lsp;
1912 struct yywork *yyt;
1913 struct yysvf *yyz;
1914 int yych;
1915 struct yywork *yyr;
1916 # ifdef LEXDEBUG
1917 int debug;
1918 # endif
1919 Uchar *yylastch;
1920 /* start off machines */
1921 # ifdef LEXDEBUG
1922 debug = 0;
1923 # endif
1924 if (!yymorfg)
1925 yylastch = (Uchar*)yytext;
1926 else {
1927 yymorfg=0;
1928 yylastch = (Uchar*)yytext+yyleng;
1930 for(;;){
1931 lsp = yylstate;
1932 yyestate = yystate = yybgin;
1933 if (yyprevious==YYNEWLINE) yystate++;
1934 for (;;){
1935 # ifdef LEXDEBUG
1936 if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
1937 # endif
1938 yyt = yystate->yystoff;
1939 if(yyt == yycrank){ /* may not be any transitions */
1940 yyz = yystate->yyother;
1941 if(yyz == 0)break;
1942 if(yyz->yystoff == yycrank)break;
1944 *yylastch++ = yych = input();
1945 tryagain:
1946 # ifdef LEXDEBUG
1947 if(debug){
1948 fprintf(yyout,"char ");
1949 allprint(yych);
1950 putchar('\n');
1952 # endif
1953 yyr = yyt;
1954 if (yyt > yycrank){
1955 yyt = yyr + yych;
1956 if (yyt <= yytop && yyt->verify+yysvec == yystate){
1957 if(yyt->advance+yysvec == YYLERR) /* error transitions */
1958 {unput(*--yylastch);break;}
1959 *lsp++ = yystate = yyt->advance+yysvec;
1960 goto contin;
1963 # ifdef YYOPTIM
1964 else if(yyt < yycrank) { /* r < yycrank */
1965 yyt = yyr = yycrank+(yycrank-yyt);
1966 # ifdef LEXDEBUG
1967 if(debug)fprintf(yyout,"compressed state\n");
1968 # endif
1969 yyt = yyt + yych;
1970 if(yyt <= yytop && yyt->verify+yysvec == yystate){
1971 if(yyt->advance+yysvec == YYLERR) /* error transitions */
1972 {unput(*--yylastch);break;}
1973 *lsp++ = yystate = yyt->advance+yysvec;
1974 goto contin;
1976 yyt = yyr + YYU(yymatch[yych]);
1977 # ifdef LEXDEBUG
1978 if(debug){
1979 fprintf(yyout,"try fall back character ");
1980 allprint(YYU(yymatch[yych]));
1981 putchar('\n');
1983 # endif
1984 if(yyt <= yytop && yyt->verify+yysvec == yystate){
1985 if(yyt->advance+yysvec == YYLERR) /* error transition */
1986 {unput(*--yylastch);break;}
1987 *lsp++ = yystate = yyt->advance+yysvec;
1988 goto contin;
1991 if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
1992 # ifdef LEXDEBUG
1993 if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
1994 # endif
1995 goto tryagain;
1997 # endif
1998 else
1999 {unput(*--yylastch);break;}
2000 contin:
2001 # ifdef LEXDEBUG
2002 if(debug){
2003 fprintf(yyout,"state %d char ",yystate-yysvec-1);
2004 allprint(yych);
2005 putchar('\n');
2007 # endif
2010 # ifdef LEXDEBUG
2011 if(debug){
2012 fprintf(yyout,"stopped at %d with ",lsp>yylstate?*(lsp-1)-yysvec-1:0);
2013 allprint(yych);
2014 putchar('\n');
2016 # endif
2017 while (lsp-- > yylstate){
2018 *yylastch-- = 0;
2019 if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
2020 yyolsp = lsp;
2021 if(yyextra[*yyfnd]){ /* must backup */
2022 while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
2023 lsp--;
2024 unput(*yylastch--);
2027 yyprevious = YYU(*yylastch);
2028 yylsp = lsp;
2029 yyleng = yylastch-(Uchar*)yytext+1;
2030 yytext[yyleng] = 0;
2031 # ifdef LEXDEBUG
2032 if(debug){
2033 fprintf(yyout,"\nmatch '%s'", yytext);
2034 fprintf(yyout," action %d\n",*yyfnd);
2036 # endif
2037 return(*yyfnd++);
2039 unput(*yylastch);
2041 if (yytext[0] == 0 /* && feof(yyin) */)
2043 yysptr=yysbuf;
2044 return(0);
2046 yyprevious = input();
2047 yytext[0] = yyprevious;
2048 if (yyprevious>0)
2049 output(yyprevious);
2050 yylastch = (Uchar*)yytext;
2051 # ifdef LEXDEBUG
2052 if(debug)putchar('\n');
2053 # endif
2056 yyback(int *p, int m)
2058 if (p==0) return(0);
2059 while (*p)
2061 if (*p++ == m)
2062 return(1);
2064 return(0);
2066 /* the following are only used in the lex library */
2067 yyinput(void){
2068 return(input());
2070 void
2071 yyoutput(int c)
2073 output(c);
2075 void
2076 yyunput(int c)
2078 unput(c);