Blame


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