|
|
1.1 root 1: *** lexstring.c Tue Jun 3 06:29:37 1986
2: --- /usr/tmp/mh-6.5/zotnet/tws/lexstring.c Wed Feb 12 12:04:27 1986
3: ***************
4: *** 19,53 ****
5: extern int yyvstop[];
6: extern struct yywork yycrank[];
7: extern struct yysvf yysvec[];
8: extern char yymatch[];
9: extern char yyextra[];
10:
11: ! #ifdef ONECASE
12: ! static char case_map[] = {
13: ! 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
14: ! 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
15: ! 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
16: ! 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
17: ! 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
18: ! 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
19: ! 60, 61, 62, 63, 64, 97, 98, 99, 100, 101,
20: ! 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
21: ! 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
22: ! 122, 91, 92, 93, 94, 95, 96, 97, 98, 99,
23: ! 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
24: ! 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
25: ! 120, 121, 122, 123, 124, 125, 126, 127,
26: ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
27: ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
28: ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
29: ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
30: ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31: ! 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32: ! 0, 0, 0, 0, 0, 0, 0, 0
33: ! };
34: ! #endif ONECASE
35:
36: -
37: lex_string( strptr, start_cond)
38: char **strptr;
39: int start_cond;
40: --- 19,32 ----
41: extern int yyvstop[];
42: extern struct yywork yycrank[];
43: extern struct yysvf yysvec[];
44: + extern struct yywork *yytop;
45: extern char yymatch[];
46: extern char yyextra[];
47:
48: ! #ifdef LEXDEBUG
49: ! static int debug = 0;
50: ! #endif LEXDEBUG
51:
52: lex_string( strptr, start_cond)
53: char **strptr;
54: int start_cond;
55: ***************
56: *** 54,60 ****
57: {
58: register struct yysvf *state, **lsp;
59: register struct yywork *tran;
60: - register int statenum;
61: register int ch;
62: register char *cp = *strptr;
63: register int *found;
64: --- 33,38 ----
65: ***************
66: *** 62,72 ****
67:
68: /* start off machines */
69: lsp = yylstate;
70: ! statenum = 1 + start_cond;
71: ! state = yysvec + statenum;
72: for (;;){
73: # ifdef LEXDEBUG
74: ! fprintf(stdout,"%d ",statenum - 1);
75: # endif
76: tran = state->yystoff;
77: if(tran == yycrank)
78: --- 40,50 ----
79:
80: /* start off machines */
81: lsp = yylstate;
82: ! state = yysvec+1+start_cond;
83: for (;;){
84: # ifdef LEXDEBUG
85: ! if(debug)
86: ! fprintf(stderr,"state %d\n",state-yysvec-1);
87: # endif
88: tran = state->yystoff;
89: if(tran == yycrank)
90: ***************
91: *** 75,140 ****
92: state->yyother->yystoff == yycrank)
93: break;
94:
95: - #ifdef ONECASE
96: - ch = case_map[*cp++];
97: - #else not ONECASE
98: ch = *cp++;
99: #endif ONECASE
100: # ifdef LEXDEBUG
101: ! fprintf(stdout,"(");
102: ! allprint(ch);
103: ! fprintf(stdout, ")");
104: # endif
105: - tryagain:
106: if ( tran > yycrank){
107: tran += ch;
108: ! if (tran->verify == statenum){
109: ! if ((statenum = tran->advance) == 0){
110: /* error transitions */
111: --cp;
112: break;
113: }
114: - state = statenum + yysvec;
115: *lsp++ = state;
116: goto contin;
117: }
118:
119: } else if(tran < yycrank) {
120: tran = yycrank+(yycrank-tran) + ch;
121: # ifdef LEXDEBUG
122: ! fprintf(stdout," compressed");
123: # endif
124: ! if (tran->verify == statenum){
125: ! if ((statenum = tran->advance) == 0)
126: /* error transitions */
127: break;
128:
129: - state = statenum + yysvec;
130: *lsp++ = state;
131: goto contin;
132: }
133: tran += (yymatch[ch] - ch);
134: # ifdef LEXDEBUG
135: ! fprintf(stdout,"(fb ");
136: ! allprint(yymatch[ch]);
137: ! fprintf(stdout,")");
138: # endif
139: ! if (tran->verify == statenum){
140: ! if((statenum = tran->advance) == 0)
141: /* error transition */
142: break;
143:
144: ! state = statenum + yysvec;
145: ! *lsp++ = state;
146: goto contin;
147: }
148: }
149: if ((state = state->yyother) &&
150: (tran = state->yystoff) != yycrank){
151: - statenum = state - yysvec;
152: # ifdef LEXDEBUG
153: ! fprintf(stdout,"fb %d",
154: ! statenum - 1);
155: # endif
156: goto tryagain;
157: } else
158: --- 53,121 ----
159: state->yyother->yystoff == yycrank)
160: break;
161:
162: ch = *cp++;
163: + #ifdef ONECASE
164: + if (isupper(ch) )
165: + ch = tolower(ch);
166: #endif ONECASE
167: + tryagain:
168: # ifdef LEXDEBUG
169: ! if(debug){
170: ! fprintf(stderr,"char ");
171: ! allprint(ch);
172: ! putchar('\n');
173: ! }
174: # endif
175: if ( tran > yycrank){
176: tran += ch;
177: ! if (tran <= yytop && tran->verify+yysvec == state){
178: ! if ((state = tran->advance+yysvec) == YYLERR){
179: /* error transitions */
180: --cp;
181: break;
182: }
183: *lsp++ = state;
184: goto contin;
185: }
186:
187: } else if(tran < yycrank) {
188: + /* r < yycrank */
189: tran = yycrank+(yycrank-tran) + ch;
190: # ifdef LEXDEBUG
191: ! if (debug)
192: ! fprintf(stderr,"compressed state\n");
193: # endif
194: ! if(tran <= yytop && tran->verify+yysvec == state){
195: ! if ((state = tran->advance+yysvec) == YYLERR)
196: /* error transitions */
197: break;
198:
199: *lsp++ = state;
200: goto contin;
201: }
202: tran += (yymatch[ch] - ch);
203: # ifdef LEXDEBUG
204: ! if(debug){
205: ! fprintf(stderr,"try fall back character ");
206: ! allprint(yymatch[ch]);
207: ! putchar('\n');
208: ! }
209: # endif
210: ! if(tran <= yytop && tran->verify+yysvec == state){
211: ! if(tran->advance+yysvec == YYLERR)
212: /* error transition */
213: break;
214:
215: ! *lsp++ = state = tran->advance+yysvec;
216: goto contin;
217: }
218: }
219: if ((state = state->yyother) &&
220: (tran = state->yystoff) != yycrank){
221: # ifdef LEXDEBUG
222: ! if(debug)
223: ! fprintf(stderr,"fall back to state %d\n",
224: ! state-yysvec-1);
225: # endif
226: goto tryagain;
227: } else
228: ***************
229: *** 142,155 ****
230:
231: contin:
232: # ifdef LEXDEBUG
233: ! fprintf(stdout,">");
234: # endif
235: ;
236: }
237: # ifdef LEXDEBUG
238: ! fprintf(stdout,"\nStopped in state %d (",*(lsp-1)-yysvec-1);
239: ! allprint(ch);
240: ! fprintf(stdout, ") ");
241: # endif
242: while (lsp-- > yylstate){
243: if (*lsp != 0 && (found= (*lsp)->yystops) && *found > 0){
244: --- 123,142 ----
245:
246: contin:
247: # ifdef LEXDEBUG
248: ! if(debug){
249: ! fprintf(stderr,"state %d char ",state-yysvec-1);
250: ! allprint(ch);
251: ! putchar('\n');
252: ! }
253: # endif
254: ;
255: }
256: # ifdef LEXDEBUG
257: ! if(debug){
258: ! fprintf(stderr,"stopped at %d with ",*(lsp-1)-yysvec-1);
259: ! allprint(ch);
260: ! putchar('\n');
261: ! }
262: # endif
263: while (lsp-- > yylstate){
264: if (*lsp != 0 && (found= (*lsp)->yystops) && *found > 0){
265: ***************
266: *** 163,174 ****
267: (found = (*--lsp)->yystops));
268: }
269: # ifdef LEXDEBUG
270: ! fprintf(stdout," Match \"");
271: ! for ( cp = *strptr;
272: ! cp <= ((*strptr)+(lsp-yylstate));
273: ! cp++)
274: ! allprint( *cp );
275: ! fprintf(stdout,"\" action %d\n",*found);
276: # endif
277: *strptr += (lsp - yylstate + 1);
278: return(*found);
279: --- 150,163 ----
280: (found = (*--lsp)->yystops));
281: }
282: # ifdef LEXDEBUG
283: ! if(debug){
284: ! fprintf(stderr,"\nmatch ");
285: ! for ( cp = *strptr;
286: ! cp <= ((*strptr)+(lsp-yylstate));
287: ! cp++)
288: ! allprint( *cp );
289: ! fprintf(stderr," action %d\n",*found);
290: ! }
291: # endif
292: *strptr += (lsp - yylstate + 1);
293: return(*found);
294: ***************
295: *** 179,185 ****
296: * and return -1.
297: */
298: # ifdef LEXDEBUG
299: ! fprintf(stdout," No match\n");
300: #endif LEXDEBUG
301: if ( **strptr ) {
302: (*strptr)++;
303: --- 168,175 ----
304: * and return -1.
305: */
306: # ifdef LEXDEBUG
307: ! if(debug)
308: ! fprintf(stderr,"\nno match\n");
309: #endif LEXDEBUG
310: if ( **strptr ) {
311: (*strptr)++;
312: ***************
313: *** 193,204 ****
314: char c;
315: {
316: if ( c < 32 ) {
317: ! putc( '^', stdout );
318: c += 32;
319: } else if ( c == 127 ) {
320: ! putc( '^', stdout );
321: c = '?';
322: }
323: ! putc( c, stdout );
324: }
325: #endif LEXDEBUG
326: --- 183,194 ----
327: char c;
328: {
329: if ( c < 32 ) {
330: ! putc( '^', stderr );
331: c += 32;
332: } else if ( c == 127 ) {
333: ! putc( '^', stderr );
334: c = '?';
335: }
336: ! putc( c, stderr );
337: }
338: #endif LEXDEBUG
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.