Blame


1 bc72254a 2004-05-17 devnull /* #pragma lib "libl.a" */
2 bc72254a 2004-05-17 devnull int yylineno =1;
3 bc72254a 2004-05-17 devnull # define YYU(x) x
4 bc72254a 2004-05-17 devnull char yytext[YYLMAX];
5 bc72254a 2004-05-17 devnull struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
6 bc72254a 2004-05-17 devnull Uchar yysbuf[YYLMAX];
7 bc72254a 2004-05-17 devnull Uchar *yysptr = yysbuf;
8 bc72254a 2004-05-17 devnull int *yyfnd;
9 bc72254a 2004-05-17 devnull extern struct yysvf *yyestate;
10 bc72254a 2004-05-17 devnull int yyprevious = YYNEWLINE;
11 bc72254a 2004-05-17 devnull # ifdef LEXDEBUG
12 bc72254a 2004-05-17 devnull extern void allprint(char);
13 bc72254a 2004-05-17 devnull # endif
14 bc72254a 2004-05-17 devnull int
15 bc72254a 2004-05-17 devnull yylook(void){
16 bc72254a 2004-05-17 devnull struct yysvf *yystate, **lsp;
17 bc72254a 2004-05-17 devnull struct yywork *yyt;
18 bc72254a 2004-05-17 devnull struct yysvf *yyz;
19 bc72254a 2004-05-17 devnull int yych;
20 bc72254a 2004-05-17 devnull struct yywork *yyr;
21 bc72254a 2004-05-17 devnull # ifdef LEXDEBUG
22 bc72254a 2004-05-17 devnull int debug;
23 bc72254a 2004-05-17 devnull # endif
24 bc72254a 2004-05-17 devnull Uchar *yylastch;
25 bc72254a 2004-05-17 devnull /* start off machines */
26 bc72254a 2004-05-17 devnull # ifdef LEXDEBUG
27 bc72254a 2004-05-17 devnull debug = 0;
28 bc72254a 2004-05-17 devnull # endif
29 bc72254a 2004-05-17 devnull if (!yymorfg)
30 bc72254a 2004-05-17 devnull yylastch = (Uchar*)yytext;
31 bc72254a 2004-05-17 devnull else {
32 bc72254a 2004-05-17 devnull yymorfg=0;
33 bc72254a 2004-05-17 devnull yylastch = (Uchar*)yytext+yyleng;
34 bc72254a 2004-05-17 devnull }
35 bc72254a 2004-05-17 devnull for(;;){
36 bc72254a 2004-05-17 devnull lsp = yylstate;
37 bc72254a 2004-05-17 devnull yyestate = yystate = yybgin;
38 bc72254a 2004-05-17 devnull if (yyprevious==YYNEWLINE) yystate++;
39 bc72254a 2004-05-17 devnull for (;;){
40 bc72254a 2004-05-17 devnull # ifdef LEXDEBUG
41 bc72254a 2004-05-17 devnull if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
42 bc72254a 2004-05-17 devnull # endif
43 bc72254a 2004-05-17 devnull yyt = yystate->yystoff;
44 bc72254a 2004-05-17 devnull if(yyt == yycrank){ /* may not be any transitions */
45 bc72254a 2004-05-17 devnull yyz = yystate->yyother;
46 bc72254a 2004-05-17 devnull if(yyz == 0)break;
47 bc72254a 2004-05-17 devnull if(yyz->yystoff == yycrank)break;
48 bc72254a 2004-05-17 devnull }
49 bc72254a 2004-05-17 devnull *yylastch++ = yych = input();
50 bc72254a 2004-05-17 devnull tryagain:
51 bc72254a 2004-05-17 devnull # ifdef LEXDEBUG
52 bc72254a 2004-05-17 devnull if(debug){
53 bc72254a 2004-05-17 devnull fprintf(yyout,"char ");
54 bc72254a 2004-05-17 devnull allprint(yych);
55 bc72254a 2004-05-17 devnull putchar('\n');
56 bc72254a 2004-05-17 devnull }
57 bc72254a 2004-05-17 devnull # endif
58 bc72254a 2004-05-17 devnull yyr = yyt;
59 0ace33a4 2005-12-29 devnull if (yyt > yycrank){
60 bc72254a 2004-05-17 devnull yyt = yyr + yych;
61 bc72254a 2004-05-17 devnull if (yyt <= yytop && yyt->verify+yysvec == yystate){
62 bc72254a 2004-05-17 devnull if(yyt->advance+yysvec == YYLERR) /* error transitions */
63 bc72254a 2004-05-17 devnull {unput(*--yylastch);break;}
64 bc72254a 2004-05-17 devnull *lsp++ = yystate = yyt->advance+yysvec;
65 bc72254a 2004-05-17 devnull goto contin;
66 bc72254a 2004-05-17 devnull }
67 bc72254a 2004-05-17 devnull }
68 bc72254a 2004-05-17 devnull # ifdef YYOPTIM
69 0ace33a4 2005-12-29 devnull else if(yyt < yycrank) { /* r < yycrank */
70 bc72254a 2004-05-17 devnull yyt = yyr = yycrank+(yycrank-yyt);
71 bc72254a 2004-05-17 devnull # ifdef LEXDEBUG
72 bc72254a 2004-05-17 devnull if(debug)fprintf(yyout,"compressed state\n");
73 bc72254a 2004-05-17 devnull # endif
74 bc72254a 2004-05-17 devnull yyt = yyt + yych;
75 bc72254a 2004-05-17 devnull if(yyt <= yytop && yyt->verify+yysvec == yystate){
76 bc72254a 2004-05-17 devnull if(yyt->advance+yysvec == YYLERR) /* error transitions */
77 bc72254a 2004-05-17 devnull {unput(*--yylastch);break;}
78 bc72254a 2004-05-17 devnull *lsp++ = yystate = yyt->advance+yysvec;
79 bc72254a 2004-05-17 devnull goto contin;
80 bc72254a 2004-05-17 devnull }
81 bc72254a 2004-05-17 devnull yyt = yyr + YYU(yymatch[yych]);
82 bc72254a 2004-05-17 devnull # ifdef LEXDEBUG
83 bc72254a 2004-05-17 devnull if(debug){
84 bc72254a 2004-05-17 devnull fprintf(yyout,"try fall back character ");
85 bc72254a 2004-05-17 devnull allprint(YYU(yymatch[yych]));
86 bc72254a 2004-05-17 devnull putchar('\n');
87 bc72254a 2004-05-17 devnull }
88 bc72254a 2004-05-17 devnull # endif
89 bc72254a 2004-05-17 devnull if(yyt <= yytop && yyt->verify+yysvec == yystate){
90 bc72254a 2004-05-17 devnull if(yyt->advance+yysvec == YYLERR) /* error transition */
91 bc72254a 2004-05-17 devnull {unput(*--yylastch);break;}
92 bc72254a 2004-05-17 devnull *lsp++ = yystate = yyt->advance+yysvec;
93 bc72254a 2004-05-17 devnull goto contin;
94 bc72254a 2004-05-17 devnull }
95 bc72254a 2004-05-17 devnull }
96 bc72254a 2004-05-17 devnull if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
97 bc72254a 2004-05-17 devnull # ifdef LEXDEBUG
98 bc72254a 2004-05-17 devnull if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
99 bc72254a 2004-05-17 devnull # endif
100 bc72254a 2004-05-17 devnull goto tryagain;
101 bc72254a 2004-05-17 devnull }
102 bc72254a 2004-05-17 devnull # endif
103 bc72254a 2004-05-17 devnull else
104 bc72254a 2004-05-17 devnull {unput(*--yylastch);break;}
105 bc72254a 2004-05-17 devnull contin:
106 bc72254a 2004-05-17 devnull # ifdef LEXDEBUG
107 bc72254a 2004-05-17 devnull if(debug){
108 bc72254a 2004-05-17 devnull fprintf(yyout,"state %d char ",yystate-yysvec-1);
109 bc72254a 2004-05-17 devnull allprint(yych);
110 bc72254a 2004-05-17 devnull putchar('\n');
111 bc72254a 2004-05-17 devnull }
112 bc72254a 2004-05-17 devnull # endif
113 bc72254a 2004-05-17 devnull ;
114 bc72254a 2004-05-17 devnull }
115 bc72254a 2004-05-17 devnull # ifdef LEXDEBUG
116 bc72254a 2004-05-17 devnull if(debug){
117 bc72254a 2004-05-17 devnull fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
118 bc72254a 2004-05-17 devnull allprint(yych);
119 bc72254a 2004-05-17 devnull putchar('\n');
120 bc72254a 2004-05-17 devnull }
121 bc72254a 2004-05-17 devnull # endif
122 bc72254a 2004-05-17 devnull while (lsp-- > yylstate){
123 bc72254a 2004-05-17 devnull *yylastch-- = 0;
124 bc72254a 2004-05-17 devnull if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){
125 bc72254a 2004-05-17 devnull yyolsp = lsp;
126 bc72254a 2004-05-17 devnull if(yyextra[*yyfnd]){ /* must backup */
127 bc72254a 2004-05-17 devnull while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){
128 bc72254a 2004-05-17 devnull lsp--;
129 bc72254a 2004-05-17 devnull unput(*yylastch--);
130 bc72254a 2004-05-17 devnull }
131 bc72254a 2004-05-17 devnull }
132 bc72254a 2004-05-17 devnull yyprevious = YYU(*yylastch);
133 bc72254a 2004-05-17 devnull yylsp = lsp;
134 bc72254a 2004-05-17 devnull yyleng = yylastch-(Uchar*)yytext+1;
135 bc72254a 2004-05-17 devnull yytext[yyleng] = 0;
136 bc72254a 2004-05-17 devnull # ifdef LEXDEBUG
137 bc72254a 2004-05-17 devnull if(debug){
138 bc72254a 2004-05-17 devnull fprintf(yyout,"\nmatch '%s'", yytext);
139 bc72254a 2004-05-17 devnull fprintf(yyout," action %d\n",*yyfnd);
140 bc72254a 2004-05-17 devnull }
141 bc72254a 2004-05-17 devnull # endif
142 bc72254a 2004-05-17 devnull return(*yyfnd++);
143 bc72254a 2004-05-17 devnull }
144 bc72254a 2004-05-17 devnull unput(*yylastch);
145 bc72254a 2004-05-17 devnull }
146 bc72254a 2004-05-17 devnull if (yytext[0] == 0 /* && feof(yyin) */)
147 bc72254a 2004-05-17 devnull {
148 bc72254a 2004-05-17 devnull yysptr=yysbuf;
149 bc72254a 2004-05-17 devnull return(0);
150 bc72254a 2004-05-17 devnull }
151 bc72254a 2004-05-17 devnull yyprevious = input();
152 bc72254a 2004-05-17 devnull yytext[0] = yyprevious;
153 bc72254a 2004-05-17 devnull if (yyprevious>0)
154 bc72254a 2004-05-17 devnull output(yyprevious);
155 bc72254a 2004-05-17 devnull yylastch = (Uchar*)yytext;
156 bc72254a 2004-05-17 devnull # ifdef LEXDEBUG
157 bc72254a 2004-05-17 devnull if(debug)putchar('\n');
158 bc72254a 2004-05-17 devnull # endif
159 bc72254a 2004-05-17 devnull }
160 bc72254a 2004-05-17 devnull return(0); /* shut up the compiler; i have no idea what should be returned */
161 bc72254a 2004-05-17 devnull }
162 bc72254a 2004-05-17 devnull int
163 bc72254a 2004-05-17 devnull yyback(int *p, int m)
164 bc72254a 2004-05-17 devnull {
165 bc72254a 2004-05-17 devnull if (p==0) return(0);
166 bc72254a 2004-05-17 devnull while (*p)
167 bc72254a 2004-05-17 devnull {
168 bc72254a 2004-05-17 devnull if (*p++ == m)
169 bc72254a 2004-05-17 devnull return(1);
170 bc72254a 2004-05-17 devnull }
171 bc72254a 2004-05-17 devnull return(0);
172 bc72254a 2004-05-17 devnull }
173 bc72254a 2004-05-17 devnull /* the following are only used in the lex library */
174 bc72254a 2004-05-17 devnull int
175 bc72254a 2004-05-17 devnull yyinput(void){
176 bc72254a 2004-05-17 devnull if(yyin == ((void*)0))
177 bc72254a 2004-05-17 devnull yyin = stdin;
178 bc72254a 2004-05-17 devnull return(input());
179 bc72254a 2004-05-17 devnull }
180 bc72254a 2004-05-17 devnull void
181 bc72254a 2004-05-17 devnull yyoutput(int c)
182 bc72254a 2004-05-17 devnull {
183 bc72254a 2004-05-17 devnull if(yyout == ((void*)0))
184 bc72254a 2004-05-17 devnull yyout = stdin;
185 bc72254a 2004-05-17 devnull output(c);
186 bc72254a 2004-05-17 devnull }
187 bc72254a 2004-05-17 devnull void
188 bc72254a 2004-05-17 devnull yyunput(int c)
189 bc72254a 2004-05-17 devnull {
190 bc72254a 2004-05-17 devnull unput(c);
191 bc72254a 2004-05-17 devnull }