|
|
1.1 root 1: # include "stdio.h"
2: # define U(x) x
3: # define NLSTATE yyprevious=YYNEWLINE
4: # define BEGIN yybgin = yysvec + 1 +
5: # define INITIAL 0
6: # define YYLERR yysvec
7: # define YYSTATE (yyestate-yysvec-1)
8: # define YYOPTIM 1
9: # define YYLMAX 200
10: # define output(c) putc(c,yyout)
11: # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
12: # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
13: # define yymore() (yymorfg=1)
14: # define ECHO fprintf(yyout, "%s",yytext)
15: # define REJECT { nstr = yyreject(); goto yyfussy;}
16: int yyleng; extern char yytext[];
17: int yymorfg;
18: extern char *yysptr, yysbuf[];
19: int yytchar;
20: FILE *yyin ={stdin}, *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: #ifndef lint
29: static char RCSid[] = "$Header: lex.yy.c.bw,v 2.0 85/11/21 07:21:45 jqj Exp $";
30: #endif
31: /*
32: * scanner.l -- scanner for the XNS courier compiler
33: */
34:
35: /* $Log: lex.yy.c.bw,v $
36: * Revision 2.0 85/11/21 07:21:45 jqj
37: * 4.3BSD standard release
38: *
39: * Revision 1.1 85/11/20 12:56:17 jqj
40: * Initial revision
41: *
42: * Revision 1.3 85/03/11 16:40:08 jqj
43: * Public alpha-test version, released 11 March 1985
44: *
45: * Revision 1.2 85/02/21 11:05:51 jqj
46: * alpha test version
47: *
48: * Revision 1.1 85/02/15 13:55:58 jqj
49: * Initial revision
50: *
51: */
52:
53: #include "compiler.h"
54: #include "y.tab.h"
55: # define YYNEWLINE 10
56: yylex(){
57: int nstr; extern int yyprevious;
58: while((nstr = yylook()) >= 0)
59: yyfussy: switch(nstr){
60: case 0:
61: if(yywrap()) return(0); break;
62: case 1:
63: case 2:
64: case 3:
65: case 4:
66: /* whitespace */;
67: break;
68: case 5:
69: { return (ARRAY); }
70: break;
71: case 6:
72: { return (_BEGIN); }
73: break;
74: case 7:
75: { return (BOOLEAN); }
76: break;
77: case 8:
78: { return (CARDINAL); }
79: break;
80: case 9:
81: { return (CHOICE); }
82: break;
83: case 10:
84: { return (DEPENDS); }
85: break;
86: case 11:
87: { return (END); }
88: break;
89: case 12:
90: { return (ERROR); }
91: break;
92: case 13:
93: { return (INTEGER); }
94: break;
95: case 14:
96: { return (LONG); }
97: break;
98: case 15:
99: { return (OF); }
100: break;
101: case 16:
102: { return (PROCEDURE); }
103: break;
104: case 17:
105: { return (PROGRAM); }
106: break;
107: case 18:
108: { return (RECORD); }
109: break;
110: case 19:
111: { return (REPORTS); }
112: break;
113: case 20:
114: { return (RETURNS); }
115: break;
116: case 21:
117: { return (SEQUENCE); }
118: break;
119: case 22:
120: { return (STRING); }
121: break;
122: case 23:
123: { return (TYPE); }
124: break;
125: case 24:
126: { return (UNSPECIFIED); }
127: break;
128: case 25:
129: { return (UPON); }
130: break;
131: case 26:
132: { return (VERSION); }
133: break;
134: case 27:
135: { return (TRUE); }
136: break;
137: case 28:
138: { return (FALSE); }
139: break;
140: case 29:
141: { return (_CHOOSES); }
142: break;
143: case 30:
144: {
145: /*
146: * decimal constant.
147: */
148: yylval.stringvalue = copy(yytext);
149: return (number);
150: }
151: break;
152: case 31:
153: {
154: /*
155: * decimal constant.
156: */
157: yytext[yyleng-1] = '\0';
158: yylval.stringvalue = copy(yytext);
159: return (number);
160: }
161: break;
162: case 32:
163: {
164: char buf[BUFSIZ];
165: /*
166: * octal constant.
167: * change to C representation
168: */
169: yytext[yyleng-1] = '\0';
170: if (*yytext != '-')
171: sprintf(buf,"0%s", yytext);
172: else
173: sprintf(buf,"-0%s", yytext+1);
174: yylval.stringvalue = copy(buf);
175: return (number);
176: }
177: break;
178: case 33:
179: {
180: char buf[BUFSIZ];
181: /*
182: * hex constant.
183: * change to C representation
184: */
185: yytext[yyleng-1] = '\0';
186: if (*yytext != '-')
187: sprintf(buf,"0x%s", yytext);
188: else
189: sprintf(buf,"-0x%s", yytext+1);
190: yylval.stringvalue = copy(buf);
191: return (number);
192: }
193: break;
194: case 34:
195: {
196: /*
197: * string constant
198: */
199:
200: yylval.stringvalue = copy(yytext);
201: return (string);
202: }
203: break;
204: case 35:
205: {
206: register char *p;
207: /*
208: * string constant with embedded ""
209: */
210:
211: for (p=yytext+1; p<yytext+yyleng-1; p++)
212: if (*p == '"') *p++='\\';
213: yylval.stringvalue = copy(yytext);
214: return (string);
215: }
216: break;
217: case 36:
218: {
219: yylval.stringvalue = copy(yytext);
220: return (identifier);
221: }
222: break;
223: case 37:
224: {
225: return ((int) yytext[0]);
226: }
227: break;
228: case -1:
229: break;
230: default:
231: fprintf(yyout,"bad switch yylook %d",nstr);
232: } return(0); }
233: /* end of yylex */
234: int yyvstop[] ={
235: 0,
236:
237: 37,
238: 0,
239:
240: 4,
241: 37,
242: 0,
243:
244: 4,
245: 0,
246:
247: 37,
248: 0,
249:
250: 37,
251: 0,
252:
253: 30,
254: 37,
255: 0,
256:
257: 30,
258: 37,
259: 0,
260:
261: 37,
262: 0,
263:
264: 36,
265: 37,
266: 0,
267:
268: 36,
269: 37,
270: 0,
271:
272: 36,
273: 37,
274: 0,
275:
276: 36,
277: 37,
278: 0,
279:
280: 36,
281: 37,
282: 0,
283:
284: 36,
285: 37,
286: 0,
287:
288: 36,
289: 37,
290: 0,
291:
292: 36,
293: 37,
294: 0,
295:
296: 36,
297: 37,
298: 0,
299:
300: 36,
301: 37,
302: 0,
303:
304: 36,
305: 37,
306: 0,
307:
308: 36,
309: 37,
310: 0,
311:
312: 36,
313: 37,
314: 0,
315:
316: 36,
317: 37,
318: 0,
319:
320: 36,
321: 37,
322: 0,
323:
324: 36,
325: 37,
326: 0,
327:
328: 34,
329: 35,
330: 0,
331:
332: -1,
333: 0,
334:
335: 30,
336: 0,
337:
338: 30,
339: 0,
340:
341: 32,
342: 0,
343:
344: 31,
345: 0,
346:
347: 33,
348: 0,
349:
350: 29,
351: 0,
352:
353: 36,
354: 0,
355:
356: 36,
357: 0,
358:
359: 36,
360: 0,
361:
362: 36,
363: 0,
364:
365: 36,
366: 0,
367:
368: 36,
369: 0,
370:
371: 36,
372: 0,
373:
374: 36,
375: 0,
376:
377: 36,
378: 0,
379:
380: 36,
381: 0,
382:
383: 36,
384: 0,
385:
386: 36,
387: 0,
388:
389: 15,
390: 36,
391: 0,
392:
393: 36,
394: 0,
395:
396: 36,
397: 0,
398:
399: 36,
400: 0,
401:
402: 36,
403: 0,
404:
405: 36,
406: 0,
407:
408: 36,
409: 0,
410:
411: 36,
412: 0,
413:
414: 36,
415: 0,
416:
417: 36,
418: 0,
419:
420: 1,
421: 0,
422:
423: 36,
424: 0,
425:
426: 36,
427: 0,
428:
429: 36,
430: 0,
431:
432: 36,
433: 0,
434:
435: 36,
436: 0,
437:
438: 36,
439: 0,
440:
441: 11,
442: 36,
443: 0,
444:
445: 36,
446: 0,
447:
448: 36,
449: 0,
450:
451: 36,
452: 0,
453:
454: 36,
455: 0,
456:
457: 36,
458: 0,
459:
460: 36,
461: 0,
462:
463: 36,
464: 0,
465:
466: 36,
467: 0,
468:
469: 36,
470: 0,
471:
472: 36,
473: 0,
474:
475: 36,
476: 0,
477:
478: 36,
479: 0,
480:
481: 36,
482: 0,
483:
484: 36,
485: 0,
486:
487: 36,
488: 0,
489:
490: 35,
491: 0,
492:
493: 3,
494: 0,
495:
496: 2,
497: 0,
498:
499: 36,
500: 0,
501:
502: 36,
503: 0,
504:
505: 36,
506: 0,
507:
508: 36,
509: 0,
510:
511: 36,
512: 0,
513:
514: 36,
515: 0,
516:
517: 36,
518: 0,
519:
520: 36,
521: 0,
522:
523: 36,
524: 0,
525:
526: 14,
527: 36,
528: 0,
529:
530: 36,
531: 0,
532:
533: 36,
534: 0,
535:
536: 36,
537: 0,
538:
539: 36,
540: 0,
541:
542: 36,
543: 0,
544:
545: 36,
546: 0,
547:
548: 36,
549: 0,
550:
551: 27,
552: 36,
553: 0,
554:
555: 23,
556: 36,
557: 0,
558:
559: 36,
560: 0,
561:
562: 25,
563: 36,
564: 0,
565:
566: 36,
567: 0,
568:
569: 5,
570: 36,
571: 0,
572:
573: 6,
574: 36,
575: 0,
576:
577: 36,
578: 0,
579:
580: 36,
581: 0,
582:
583: 36,
584: 0,
585:
586: 36,
587: 0,
588:
589: 12,
590: 36,
591: 0,
592:
593: 28,
594: 36,
595: 0,
596:
597: 36,
598: 0,
599:
600: 36,
601: 0,
602:
603: 36,
604: 0,
605:
606: 36,
607: 0,
608:
609: 36,
610: 0,
611:
612: 36,
613: 0,
614:
615: 36,
616: 0,
617:
618: 36,
619: 0,
620:
621: 36,
622: 0,
623:
624: 36,
625: 0,
626:
627: 36,
628: 0,
629:
630: 36,
631: 0,
632:
633: 9,
634: 36,
635: 0,
636:
637: 36,
638: 0,
639:
640: 36,
641: 0,
642:
643: 36,
644: 0,
645:
646: 36,
647: 0,
648:
649: 18,
650: 36,
651: 0,
652:
653: 36,
654: 0,
655:
656: 36,
657: 0,
658:
659: 36,
660: 0,
661:
662: 22,
663: 36,
664: 0,
665:
666: 36,
667: 0,
668:
669: 36,
670: 0,
671:
672: 7,
673: 36,
674: 0,
675:
676: 36,
677: 0,
678:
679: 10,
680: 36,
681: 0,
682:
683: 13,
684: 36,
685: 0,
686:
687: 36,
688: 0,
689:
690: 17,
691: 36,
692: 0,
693:
694: 19,
695: 36,
696: 0,
697:
698: 20,
699: 36,
700: 0,
701:
702: 36,
703: 0,
704:
705: 36,
706: 0,
707:
708: 26,
709: 36,
710: 0,
711:
712: 8,
713: 36,
714: 0,
715:
716: 36,
717: 0,
718:
719: 21,
720: 36,
721: 0,
722:
723: 36,
724: 0,
725:
726: 16,
727: 36,
728: 0,
729:
730: 36,
731: 0,
732:
733: 36,
734: 0,
735:
736: 24,
737: 36,
738: 0,
739: 0};
740: # define YYTYPE int
741: struct yywork { YYTYPE verify, advance; } yycrank[] ={
742: 0,0, 0,0, 1,3, 0,0,
743: 0,0, 0,0, 0,0, 0,0,
744: 0,0, 0,0, 1,4, 1,5,
745: 0,0, 0,0, 27,0, 0,0,
746: 0,0, 0,0, 0,0, 0,0,
747: 0,0, 0,0, 0,0, 0,0,
748: 0,0, 0,0, 0,0, 0,0,
749: 0,0, 0,0, 0,0, 0,0,
750: 0,0, 0,0, 0,0, 1,6,
751: 0,0, 0,0, 28,59, 0,0,
752: 0,0, 0,0, 0,0, 0,0,
753: 0,0, 0,0, 1,7, 0,0,
754: 0,0, 1,8, 0,0, 0,0,
755: 0,0, 0,0, 0,0, 0,0,
756: 0,0, 1,9, 0,0, 0,0,
757: 0,0, 0,0, 1,10, 0,0,
758: 0,0, 10,36, 1,11, 1,12,
759: 1,13, 1,14, 1,15, 1,16,
760: 1,17, 16,46, 1,18, 13,41,
761: 0,0, 1,19, 12,39, 0,0,
762: 1,20, 1,21, 13,42, 1,22,
763: 1,23, 1,24, 1,25, 1,26,
764: 12,40, 1,17, 16,37, 12,37,
765: 13,37, 15,44, 14,43, 17,37,
766: 21,50, 15,45, 1,17, 1,17,
767: 1,17, 1,17, 1,17, 1,17,
768: 2,10, 18,47, 6,27, 14,37,
769: 19,48, 18,37, 2,13, 19,37,
770: 2,15, 2,16, 6,27, 6,0,
771: 2,18, 24,54, 20,49, 2,19,
772: 22,51, 23,52, 2,20, 2,21,
773: 24,55, 2,22, 2,23, 2,24,
774: 2,25, 2,26, 20,37, 37,37,
775: 38,63, 22,37, 23,37, 26,58,
776: 23,53, 41,66, 45,70, 6,28,
777: 2,17, 2,17, 2,17, 2,17,
778: 2,17, 2,17, 39,64, 25,56,
779: 26,37, 25,57, 6,27, 25,37,
780: 40,65, 6,27, 44,69, 40,37,
781: 42,67, 39,37, 43,68, 42,37,
782: 43,37, 6,27, 47,37, 46,71,
783: 47,72, 49,37, 52,78, 52,37,
784: 44,37, 46,37, 6,27, 6,27,
785: 50,74, 6,27, 7,29, 50,37,
786: 6,27, 7,30, 7,30, 7,30,
787: 7,30, 7,30, 7,30, 7,30,
788: 7,30, 7,31, 7,31, 48,73,
789: 53,79, 56,37, 56,82, 48,37,
790: 51,75, 6,27, 8,30, 8,30,
791: 8,30, 8,30, 8,30, 8,30,
792: 8,30, 8,30, 8,31, 8,31,
793: 55,81, 51,76, 55,37, 51,37,
794: 58,84, 51,77, 62,88, 8,32,
795: 8,33, 8,32, 8,34, 8,32,
796: 8,32, 9,31, 9,31, 9,31,
797: 9,31, 9,31, 9,31, 9,31,
798: 9,31, 54,37, 57,83, 60,86,
799: 54,80, 57,37, 64,90, 65,91,
800: 63,89, 67,93, 8,35, 9,32,
801: 66,92, 65,37, 69,37, 64,37,
802: 71,37, 71,96, 67,37, 8,32,
803: 8,33, 8,32, 8,34, 8,32,
804: 8,32, 63,37, 66,37, 11,37,
805: 11,37, 11,37, 11,37, 11,37,
806: 11,37, 11,37, 11,37, 11,37,
807: 11,37, 70,95, 60,87, 82,108,
808: 70,37, 82,37, 8,35, 9,32,
809: 11,37, 11,37, 11,37, 11,37,
810: 11,37, 11,37, 11,37, 11,37,
811: 11,37, 11,37, 11,37, 11,37,
812: 11,37, 11,37, 11,37, 11,37,
813: 11,37, 11,38, 11,37, 11,37,
814: 11,37, 11,37, 11,37, 11,37,
815: 11,37, 11,37, 75,101, 95,117,
816: 76,102, 75,37, 11,37, 76,37,
817: 11,37, 11,37, 11,37, 11,37,
818: 11,37, 11,37, 11,37, 11,37,
819: 11,37, 11,37, 11,37, 11,37,
820: 11,37, 11,37, 11,37, 11,37,
821: 11,37, 11,37, 11,37, 11,37,
822: 11,37, 11,37, 11,37, 11,37,
823: 11,37, 11,37, 29,60, 77,37,
824: 98,37, 83,109, 77,103, 68,94,
825: 72,97, 83,37, 29,60, 29,61,
826: 31,31, 31,31, 31,31, 31,31,
827: 31,31, 31,31, 31,31, 31,31,
828: 68,37, 72,37, 73,98, 78,37,
829: 87,0, 79,105, 78,104, 84,37,
830: 84,110, 100,121, 31,32, 101,122,
831: 102,123, 73,37, 79,37, 29,60,
832: 32,32, 32,32, 32,32, 32,32,
833: 32,32, 32,32, 32,32, 32,32,
834: 32,32, 32,32, 29,62, 80,106,
835: 74,99, 29,60, 103,124, 81,107,
836: 74,100, 106,37, 32,32, 91,113,
837: 32,32, 29,60, 89,37, 87,86,
838: 80,37, 92,114, 31,32, 74,37,
839: 81,37, 89,111, 29,60, 29,60,
840: 91,37, 29,60, 92,37, 96,118,
841: 29,60, 33,32, 33,32, 33,32,
842: 33,32, 33,32, 33,32, 33,32,
843: 33,32, 33,32, 33,32, 90,112,
844: 96,37, 107,37, 32,32, 90,37,
845: 32,32, 29,60, 93,115, 33,32,
846: 109,37, 33,32, 34,32, 34,32,
847: 34,32, 34,32, 34,32, 34,32,
848: 34,32, 34,32, 34,32, 34,32,
849: 94,116, 93,37, 97,119, 59,59,
850: 94,37, 99,120, 110,128, 104,125,
851: 34,32, 111,37, 34,32, 59,59,
852: 59,0, 97,37, 108,127, 110,37,
853: 112,37, 113,129, 99,37, 33,32,
854: 104,37, 33,32, 105,126, 116,132,
855: 114,130, 115,131, 105,37, 108,37,
856: 114,37, 117,37, 118,37, 119,133,
857: 120,134, 131,37, 113,37, 121,135,
858: 59,85, 116,37, 115,37, 122,136,
859: 34,32, 123,37, 34,32, 123,137,
860: 119,37, 124,138, 120,37, 59,59,
861: 126,140, 124,37, 59,59, 125,139,
862: 121,37, 122,37, 127,141, 125,37,
863: 133,146, 128,142, 59,59, 126,37,
864: 128,37, 129,143, 130,144, 132,37,
865: 132,145, 129,37, 136,37, 59,59,
866: 59,59, 127,37, 59,59, 134,37,
867: 135,148, 59,59, 134,147, 137,37,
868: 137,149, 135,37, 139,151, 130,37,
869: 138,37, 138,150, 140,37, 141,152,
870: 142,153, 143,37, 145,37, 146,37,
871: 142,37, 144,154, 59,59, 147,155,
872: 141,37, 139,37, 148,37, 144,37,
873: 149,37, 150,37, 151,156, 153,37,
874: 152,157, 154,37, 155,158, 156,37,
875: 157,159, 158,37, 159,160, 160,161,
876: 161,37, 0,0, 0,0, 151,37,
877: 152,37, 157,37, 0,0, 155,37,
878: 0,0, 0,0, 0,0, 159,37,
879: 0,0, 160,37, 0,0, 0,0,
880: 0,0};
881: struct yysvf yysvec[] ={
882: 0, 0, 0,
883: yycrank+-1, 0, 0,
884: yycrank+-43, yysvec+1, 0,
885: yycrank+0, 0, yyvstop+1,
886: yycrank+0, 0, yyvstop+3,
887: yycrank+0, 0, yyvstop+6,
888: yycrank+-105, 0, yyvstop+8,
889: yycrank+129, 0, yyvstop+10,
890: yycrank+146, 0, yyvstop+12,
891: yycrank+169, yysvec+8, yyvstop+15,
892: yycrank+3, 0, yyvstop+18,
893: yycrank+203, 0, yyvstop+20,
894: yycrank+9, yysvec+11, yyvstop+23,
895: yycrank+10, yysvec+11, yyvstop+26,
896: yycrank+25, yysvec+11, yyvstop+29,
897: yycrank+15, yysvec+11, yyvstop+32,
898: yycrank+8, yysvec+11, yyvstop+35,
899: yycrank+13, yysvec+11, yyvstop+38,
900: yycrank+27, yysvec+11, yyvstop+41,
901: yycrank+29, yysvec+11, yyvstop+44,
902: yycrank+48, yysvec+11, yyvstop+47,
903: yycrank+14, yysvec+11, yyvstop+50,
904: yycrank+51, yysvec+11, yyvstop+53,
905: yycrank+52, yysvec+11, yyvstop+56,
906: yycrank+35, yysvec+11, yyvstop+59,
907: yycrank+69, yysvec+11, yyvstop+62,
908: yycrank+66, yysvec+11, yyvstop+65,
909: yycrank+-4, yysvec+6, 0,
910: yycrank+4, 0, yyvstop+68,
911: yycrank+-325, 0, yyvstop+71,
912: yycrank+0, yysvec+8, yyvstop+73,
913: yycrank+288, yysvec+8, yyvstop+75,
914: yycrank+312, yysvec+8, 0,
915: yycrank+349, yysvec+8, yyvstop+77,
916: yycrank+370, yysvec+8, yyvstop+79,
917: yycrank+0, 0, yyvstop+81,
918: yycrank+0, 0, yyvstop+83,
919: yycrank+49, yysvec+11, yyvstop+85,
920: yycrank+50, yysvec+11, yyvstop+87,
921: yycrank+75, yysvec+11, yyvstop+89,
922: yycrank+73, yysvec+11, yyvstop+91,
923: yycrank+55, yysvec+11, yyvstop+93,
924: yycrank+77, yysvec+11, yyvstop+95,
925: yycrank+78, yysvec+11, yyvstop+97,
926: yycrank+86, yysvec+11, yyvstop+99,
927: yycrank+56, yysvec+11, yyvstop+101,
928: yycrank+87, yysvec+11, yyvstop+103,
929: yycrank+80, yysvec+11, yyvstop+105,
930: yycrank+109, yysvec+11, yyvstop+107,
931: yycrank+83, yysvec+11, yyvstop+109,
932: yycrank+93, yysvec+11, yyvstop+112,
933: yycrank+125, yysvec+11, yyvstop+114,
934: yycrank+85, yysvec+11, yyvstop+116,
935: yycrank+106, yysvec+11, yyvstop+118,
936: yycrank+143, yysvec+11, yyvstop+120,
937: yycrank+124, yysvec+11, yyvstop+122,
938: yycrank+107, yysvec+11, yyvstop+124,
939: yycrank+147, yysvec+11, yyvstop+126,
940: yycrank+126, yysvec+11, yyvstop+128,
941: yycrank+-430, 0, 0,
942: yycrank+-217, yysvec+29, 0,
943: yycrank+0, 0, yyvstop+130,
944: yycrank+165, 0, 0,
945: yycrank+167, yysvec+11, yyvstop+132,
946: yycrank+157, yysvec+11, yyvstop+134,
947: yycrank+155, yysvec+11, yyvstop+136,
948: yycrank+168, yysvec+11, yyvstop+138,
949: yycrank+160, yysvec+11, yyvstop+140,
950: yycrank+262, yysvec+11, yyvstop+142,
951: yycrank+156, yysvec+11, yyvstop+144,
952: yycrank+182, yysvec+11, yyvstop+147,
953: yycrank+158, yysvec+11, yyvstop+149,
954: yycrank+263, yysvec+11, yyvstop+151,
955: yycrank+275, yysvec+11, yyvstop+153,
956: yycrank+305, yysvec+11, yyvstop+155,
957: yycrank+215, yysvec+11, yyvstop+157,
958: yycrank+217, yysvec+11, yyvstop+159,
959: yycrank+245, yysvec+11, yyvstop+161,
960: yycrank+265, yysvec+11, yyvstop+163,
961: yycrank+276, yysvec+11, yyvstop+165,
962: yycrank+302, yysvec+11, yyvstop+167,
963: yycrank+306, yysvec+11, yyvstop+169,
964: yycrank+183, yysvec+11, yyvstop+171,
965: yycrank+251, yysvec+11, yyvstop+173,
966: yycrank+269, yysvec+11, yyvstop+175,
967: yycrank+0, yysvec+28, yyvstop+177,
968: yycrank+0, 0, yyvstop+179,
969: yycrank+-338, yysvec+29, 0,
970: yycrank+0, 0, yyvstop+181,
971: yycrank+300, yysvec+11, yyvstop+183,
972: yycrank+329, yysvec+11, yyvstop+185,
973: yycrank+310, yysvec+11, yyvstop+187,
974: yycrank+312, yysvec+11, yyvstop+189,
975: yycrank+347, yysvec+11, yyvstop+191,
976: yycrank+350, yysvec+11, yyvstop+193,
977: yycrank+213, yysvec+11, yyvstop+195,
978: yycrank+326, yysvec+11, yyvstop+197,
979: yycrank+359, yysvec+11, yyvstop+199,
980: yycrank+246, yysvec+11, yyvstop+201,
981: yycrank+364, yysvec+11, yyvstop+204,
982: yycrank+271, yysvec+11, yyvstop+206,
983: yycrank+273, yysvec+11, yyvstop+208,
984: yycrank+274, yysvec+11, yyvstop+210,
985: yycrank+292, yysvec+11, yyvstop+212,
986: yycrank+366, yysvec+11, yyvstop+214,
987: yycrank+372, yysvec+11, yyvstop+216,
988: yycrank+295, yysvec+11, yyvstop+218,
989: yycrank+327, yysvec+11, yyvstop+221,
990: yycrank+373, yysvec+11, yyvstop+224,
991: yycrank+334, yysvec+11, yyvstop+226,
992: yycrank+361, yysvec+11, yyvstop+229,
993: yycrank+355, yysvec+11, yyvstop+231,
994: yycrank+362, yysvec+11, yyvstop+234,
995: yycrank+380, yysvec+11, yyvstop+237,
996: yycrank+374, yysvec+11, yyvstop+239,
997: yycrank+384, yysvec+11, yyvstop+241,
998: yycrank+383, yysvec+11, yyvstop+243,
999: yycrank+375, yysvec+11, yyvstop+245,
1000: yycrank+376, yysvec+11, yyvstop+248,
1001: yycrank+390, yysvec+11, yyvstop+251,
1002: yycrank+392, yysvec+11, yyvstop+253,
1003: yycrank+398, yysvec+11, yyvstop+255,
1004: yycrank+399, yysvec+11, yyvstop+257,
1005: yycrank+387, yysvec+11, yyvstop+259,
1006: yycrank+395, yysvec+11, yyvstop+261,
1007: yycrank+401, yysvec+11, yyvstop+263,
1008: yycrank+405, yysvec+11, yyvstop+265,
1009: yycrank+415, yysvec+11, yyvstop+267,
1010: yycrank+406, yysvec+11, yyvstop+269,
1011: yycrank+411, yysvec+11, yyvstop+271,
1012: yycrank+425, yysvec+11, yyvstop+273,
1013: yycrank+379, yysvec+11, yyvstop+275,
1014: yycrank+409, yysvec+11, yyvstop+278,
1015: yycrank+402, yysvec+11, yyvstop+280,
1016: yycrank+417, yysvec+11, yyvstop+282,
1017: yycrank+423, yysvec+11, yyvstop+284,
1018: yycrank+412, yysvec+11, yyvstop+286,
1019: yycrank+421, yysvec+11, yyvstop+289,
1020: yycrank+426, yysvec+11, yyvstop+291,
1021: yycrank+439, yysvec+11, yyvstop+293,
1022: yycrank+428, yysvec+11, yyvstop+295,
1023: yycrank+438, yysvec+11, yyvstop+298,
1024: yycrank+434, yysvec+11, yyvstop+300,
1025: yycrank+431, yysvec+11, yyvstop+302,
1026: yycrank+441, yysvec+11, yyvstop+305,
1027: yycrank+432, yysvec+11, yyvstop+307,
1028: yycrank+433, yysvec+11, yyvstop+310,
1029: yycrank+437, yysvec+11, yyvstop+313,
1030: yycrank+440, yysvec+11, yyvstop+315,
1031: yycrank+442, yysvec+11, yyvstop+318,
1032: yycrank+443, yysvec+11, yyvstop+321,
1033: yycrank+457, yysvec+11, yyvstop+324,
1034: yycrank+458, yysvec+11, yyvstop+326,
1035: yycrank+445, yysvec+11, yyvstop+328,
1036: yycrank+447, yysvec+11, yyvstop+331,
1037: yycrank+461, yysvec+11, yyvstop+334,
1038: yycrank+449, yysvec+11, yyvstop+336,
1039: yycrank+459, yysvec+11, yyvstop+339,
1040: yycrank+451, yysvec+11, yyvstop+341,
1041: yycrank+465, yysvec+11, yyvstop+344,
1042: yycrank+467, yysvec+11, yyvstop+346,
1043: yycrank+454, yysvec+11, yyvstop+348,
1044: 0, 0, 0};
1045: struct yywork *yytop = yycrank+549;
1046: struct yysvf *yybgin = yysvec+1;
1047: char yymatch[] ={
1048: 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1049: 01 ,011 ,012 ,01 ,01 ,01 ,01 ,01 ,
1050: 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1051: 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
1052: 011 ,01 ,'"' ,01 ,01 ,01 ,01 ,01 ,
1053: 01 ,01 ,01 ,01 ,01 ,'-' ,01 ,01 ,
1054: '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
1055: '8' ,'8' ,01 ,01 ,01 ,01 ,01 ,01 ,
1056: 01 ,'A' ,'B' ,'A' ,'D' ,'A' ,'A' ,'G' ,
1057: 'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,
1058: 'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,
1059: 'X' ,'G' ,'G' ,01 ,01 ,01 ,01 ,'G' ,
1060: 01 ,'A' ,'B' ,'A' ,'D' ,'A' ,'A' ,'G' ,
1061: 'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,
1062: 'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,
1063: 'X' ,'G' ,'G' ,01 ,01 ,01 ,01 ,01 ,
1064: 0};
1065: char yyextra[] ={
1066: 0,1,0,0,0,0,0,0,
1067: 0,0,0,0,0,0,0,0,
1068: 0,0,0,0,0,0,0,0,
1069: 0,0,0,0,0,0,0,0,
1070: 0,0,0,0,0,0,0,0,
1071: 0};
1072: int yylineno =1;
1073: # define YYU(x) x
1074: # define NLSTATE yyprevious=YYNEWLINE
1075: char yytext[YYLMAX];
1076: struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
1077: char yysbuf[YYLMAX];
1078: char *yysptr = yysbuf;
1079: int *yyfnd;
1080: extern struct yysvf *yyestate;
1081: int yyprevious = YYNEWLINE;
1082: yylook(){
1083: register struct yysvf *yystate, **lsp;
1084: register struct yywork *yyt;
1085: struct yysvf *yyz;
1086: int yych;
1087: struct yywork *yyr;
1088: # ifdef LEXDEBUG
1089: int debug;
1090: # endif
1091: char *yylastch;
1092: /* start off machines */
1093: # ifdef LEXDEBUG
1094: debug = 0;
1095: # endif
1096: if (!yymorfg)
1097: yylastch = yytext;
1098: else {
1099: yymorfg=0;
1100: yylastch = yytext+yyleng;
1101: }
1102: for(;;){
1103: lsp = yylstate;
1104: yyestate = yystate = yybgin;
1105: if (yyprevious==YYNEWLINE) yystate++;
1106: for (;;){
1107: # ifdef LEXDEBUG
1108: if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
1109: # endif
1110: yyt = yystate->yystoff;
1111: if(yyt == yycrank){ /* may not be any transitions */
1112: yyz = yystate->yyother;
1113: if(yyz == 0)break;
1114: if(yyz->yystoff == yycrank)break;
1115: }
1116: *yylastch++ = yych = input();
1117: tryagain:
1118: # ifdef LEXDEBUG
1119: if(debug){
1120: fprintf(yyout,"char ");
1121: allprint(yych);
1122: putchar('\n');
1123: }
1124: # endif
1125: yyr = yyt;
1126: if ( (int)yyt > (int)yycrank){
1127: yyt = yyr + yych;
1128: if (yyt <= yytop && yyt->verify+yysvec == yystate){
1129: if(yyt->advance+yysvec == YYLERR) /* error transitions */
1130: {unput(*--yylastch);break;}
1131: *lsp++ = yystate = yyt->advance+yysvec;
1132: goto contin;
1133: }
1134: }
1135: # ifdef YYOPTIM
1136: else if((int)yyt < (int)yycrank) { /* r < yycrank */
1137: yyt = yyr = yycrank+(yycrank-yyt);
1138: # ifdef LEXDEBUG
1139: if(debug)fprintf(yyout,"compressed state\n");
1140: # endif
1141: yyt = yyt + yych;
1142: if(yyt <= yytop && yyt->verify+yysvec == yystate){
1143: if(yyt->advance+yysvec == YYLERR) /* error transitions */
1144: {unput(*--yylastch);break;}
1145: *lsp++ = yystate = yyt->advance+yysvec;
1146: goto contin;
1147: }
1148: yyt = yyr + YYU(yymatch[yych]);
1149: # ifdef LEXDEBUG
1150: if(debug){
1151: fprintf(yyout,"try fall back character ");
1152: allprint(YYU(yymatch[yych]));
1153: putchar('\n');
1154: }
1155: # endif
1156: if(yyt <= yytop && yyt->verify+yysvec == yystate){
1157: if(yyt->advance+yysvec == YYLERR) /* error transition */
1158: {unput(*--yylastch);break;}
1159: *lsp++ = yystate = yyt->advance+yysvec;
1160: goto contin;
1161: }
1162: }
1163: if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
1164: # ifdef LEXDEBUG
1165: if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
1166: # endif
1167: goto tryagain;
1168: }
1169: # endif
1170: else
1171: {unput(*--yylastch);break;}
1172: contin:
1173: # ifdef LEXDEBUG
1174: if(debug){
1175: fprintf(yyout,"state %d char ",yystate-yysvec-1);
1176: allprint(yych);
1177: putchar('\n');
1178: }
1179: # endif
1180: ;
1181: }
1182: # ifdef LEXDEBUG
1183: if(debug){
1184: fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
1185: allprint(yych);
1186: putchar('\n');
1187: }
1188: # endif
1189: while (lsp-- > yylstate){
1190: *yylastch-- = 0;
1191: if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
1192: yyolsp = lsp;
1193: if(yyextra[*yyfnd]){ /* must backup */
1194: while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
1195: lsp--;
1196: unput(*yylastch--);
1197: }
1198: }
1199: yyprevious = YYU(*yylastch);
1200: yylsp = lsp;
1201: yyleng = yylastch-yytext+1;
1202: yytext[yyleng] = 0;
1203: # ifdef LEXDEBUG
1204: if(debug){
1205: fprintf(yyout,"\nmatch ");
1206: sprint(yytext);
1207: fprintf(yyout," action %d\n",*yyfnd);
1208: }
1209: # endif
1210: return(*yyfnd++);
1211: }
1212: unput(*yylastch);
1213: }
1214: if (yytext[0] == 0 /* && feof(yyin) */)
1215: {
1216: yysptr=yysbuf;
1217: return(0);
1218: }
1219: yyprevious = yytext[0] = input();
1220: if (yyprevious>0)
1221: output(yyprevious);
1222: yylastch=yytext;
1223: # ifdef LEXDEBUG
1224: if(debug)putchar('\n');
1225: # endif
1226: }
1227: }
1228: yyback(p, m)
1229: int *p;
1230: {
1231: if (p==0) return(0);
1232: while (*p)
1233: {
1234: if (*p++ == m)
1235: return(1);
1236: }
1237: return(0);
1238: }
1239: /* the following are only used in the lex library */
1240: yyinput(){
1241: return(input());
1242: }
1243: yyoutput(c)
1244: int c; {
1245: output(c);
1246: }
1247: yyunput(c)
1248: int c; {
1249: unput(c);
1250: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.