Blame


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