|
|
1.1 root 1:
2: # line 1 "../eqn/e.y"
3: #
4: /* e.y 4.1 83/02/11 */
5: #include "e.h"
6: #
7: int fromflg;
8: # define CONTIG 257
9: # define QTEXT 258
10: # define SPACE 259
11: # define THIN 260
12: # define TAB 261
13: # define MATRIX 262
14: # define LCOL 263
15: # define CCOL 264
16: # define RCOL 265
17: # define COL 266
18: # define MARK 267
19: # define LINEUP 268
20: # define SUM 269
21: # define INT 270
22: # define PROD 271
23: # define UNION 272
24: # define INTER 273
25: # define LPILE 274
26: # define PILE 275
27: # define CPILE 276
28: # define RPILE 277
29: # define ABOVE 278
30: # define DEFINE 279
31: # define TDEFINE 280
32: # define NDEFINE 281
33: # define DELIM 282
34: # define GSIZE 283
35: # define GFONT 284
36: # define INCLUDE 285
37: # define FROM 286
38: # define TO 287
39: # define OVER 288
40: # define SQRT 289
41: # define SUP 290
42: # define SUB 291
43: # define SIZE 292
44: # define FONT 293
45: # define ROMAN 294
46: # define ITALIC 295
47: # define BOLD 296
48: # define FAT 297
49: # define UP 298
50: # define DOWN 299
51: # define BACK 300
52: # define FWD 301
53: # define LEFT 302
54: # define RIGHT 303
55: # define DOT 304
56: # define DOTDOT 305
57: # define HAT 306
58: # define TILDE 307
59: # define BAR 308
60: # define UNDER 309
61: # define VEC 310
62: # define DYAD 311
63: #define yyclearin yychar = -1
64: #define yyerrok yyerrflag = 0
65: extern int yychar;
66: extern short yyerrflag;
67: #ifndef YYMAXDEPTH
68: #define YYMAXDEPTH 150
69: #endif
70: #ifndef YYSTYPE
71: #define YYSTYPE int
72: #endif
73: YYSTYPE yylval, yyval;
74: # define YYERRCODE 256
75:
76: # line 167 "../eqn/e.y"
77:
78: short yyexca[] ={
79: -1, 1,
80: 0, -1,
81: -2, 0,
82: };
83: # define YYNPROD 95
84: # define YYLAST 560
85: short yyact[]={
86:
87: 34, 60, 61, 52, 152, 59, 58, 59, 58, 151,
88: 150, 149, 132, 59, 58, 131, 88, 89, 141, 67,
89: 69, 62, 68, 65, 66, 63, 64, 67, 69, 62,
90: 68, 65, 66, 63, 64, 67, 69, 62, 68, 65,
91: 66, 63, 64, 119, 120, 121, 122, 34, 53, 123,
92: 130, 128, 140, 139, 87, 138, 135, 86, 78, 77,
93: 105, 2, 76, 75, 79, 21, 20, 137, 19, 18,
94: 57, 55, 17, 111, 16, 92, 15, 81, 14, 13,
95: 12, 11, 90, 8, 7, 126, 118, 117, 91, 116,
96: 115, 113, 124, 22, 34, 93, 50, 114, 1, 94,
97: 95, 96, 97, 0, 0, 0, 0, 0, 0, 56,
98: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
99: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
100: 0, 0, 0, 0, 36, 35, 37, 38, 39, 48,
101: 34, 0, 0, 0, 6, 51, 40, 32, 41, 42,
102: 43, 28, 31, 29, 30, 0, 0, 129, 104, 0,
103: 0, 0, 129, 129, 129, 129, 10, 134, 129, 23,
104: 27, 24, 25, 26, 9, 45, 47, 46, 44, 33,
105: 112, 36, 35, 37, 38, 39, 48, 34, 88, 89,
106: 144, 6, 51, 40, 32, 41, 42, 43, 28, 31,
107: 29, 30, 133, 129, 129, 119, 120, 121, 122, 88,
108: 89, 136, 127, 10, 0, 0, 23, 27, 24, 25,
109: 26, 9, 45, 47, 46, 44, 33, 3, 36, 35,
110: 37, 38, 39, 48, 34, 106, 107, 108, 6, 5,
111: 40, 32, 41, 42, 43, 28, 31, 29, 30, 0,
112: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
113: 10, 0, 0, 23, 27, 24, 25, 26, 9, 45,
114: 47, 46, 44, 33, 36, 35, 37, 38, 39, 48,
115: 0, 0, 0, 0, 6, 51, 40, 32, 41, 42,
116: 43, 28, 31, 29, 30, 0, 0, 145, 146, 147,
117: 148, 0, 0, 0, 0, 0, 10, 0, 0, 23,
118: 27, 24, 25, 26, 9, 45, 47, 46, 44, 33,
119: 0, 36, 35, 37, 38, 39, 48, 54, 0, 0,
120: 0, 6, 5, 40, 32, 41, 42, 43, 28, 31,
121: 29, 30, 0, 80, 0, 0, 0, 0, 0, 0,
122: 0, 0, 0, 10, 0, 0, 23, 27, 24, 25,
123: 26, 9, 45, 47, 46, 44, 33, 0, 36, 35,
124: 37, 38, 39, 48, 0, 0, 0, 0, 6, 0,
125: 40, 32, 41, 42, 43, 28, 31, 29, 30, 0,
126: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
127: 10, 0, 0, 23, 27, 24, 25, 26, 9, 45,
128: 47, 46, 44, 33, 4, 0, 0, 49, 0, 0,
129: 0, 70, 71, 72, 73, 74, 0, 0, 125, 0,
130: 0, 0, 0, 82, 83, 84, 85, 125, 0, 0,
131: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
132: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
133: 0, 0, 0, 0, 0, 0, 98, 99, 100, 101,
134: 102, 103, 0, 0, 0, 0, 0, 0, 0, 0,
135: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
136: 0, 0, 0, 0, 109, 110, 49, 0, 0, 0,
137: 0, 0, 0, 0, 0, 0, 0, 0, 49, 0,
138: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
139: 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
140: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
141: 142, 0, 143, 0, 0, 0, 0, 0, 0, 0,
142: 0, 0, 0, 0, 0, 0, 0, 0, 0, 49 };
143: short yypact[]={
144:
145: -29,-1000, 17,-1000,-285,-1000, 111, 111, 111, 111,
146: 111, -60, -61, -64, -65,-283, 64,-1000, 111, 111,
147: 111, 111, -66,-241,-1000,-1000,-1000,-241,-1000,-1000,
148: -1000,-1000,-1000, -48, 64,-1000,-1000,-1000,-1000,-1000,
149: -1000,-1000,-1000,-1000,-241,-241,-241,-241,-1000,-285,
150: -1000, 111, 111, 111, 111, 111, 111,-1000,-1000,-1000,
151: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
152: -285,-269,-269,-269,-277, 64, 64, 64, 64, 111,
153: 111,-123,-269,-269,-269,-269,-220,-1000,-1000,-1000,
154: -1000,-1000,-1000, -76,-1000,-1000,-1000,-1000,-285,-277,
155: -277,-277,-285,-285, -74, 17, -75,-110,-113,-277,
156: -277,-1000, -69, -58,-1000, -68, -70, -71,-105,-1000,
157: -1000,-1000,-1000,-1000,-1000, 111,-1000, 111,-1000, 64,
158: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 64, 64,
159: 64, 64,-277,-285, 17,-114,-115,-116,-121,-1000,
160: -1000,-1000,-1000 };
161: short yypgo[]={
162:
163: 0, 98, 60, 414, 96, 93, 91, 97, 90, 158,
164: 89, 87, 86, 92, 327, 85, 109, 84, 83, 81,
165: 80, 79, 78, 48, 76, 74, 73, 72, 71, 70,
166: 69, 68, 66, 65, 54 };
167: short yyr1[]={
168:
169: 0, 1, 1, 1, 2, 2, 2, 2, 4, 5,
170: 6, 6, 7, 7, 7, 7, 8, 10, 11, 12,
171: 13, 15, 15, 3, 3, 3, 3, 3, 3, 3,
172: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
173: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
174: 24, 30, 31, 32, 33, 29, 29, 29, 29, 29,
175: 29, 29, 29, 28, 16, 25, 25, 26, 26, 26,
176: 9, 9, 19, 20, 22, 21, 17, 18, 18, 18,
177: 18, 23, 14, 27, 27, 27, 27, 27, 27, 27,
178: 27, 27, 27, 34, 34 };
179: short yyr2[]={
180:
181: 0, 1, 1, 0, 1, 2, 2, 1, 2, 1,
182: 1, 2, 4, 4, 4, 4, 1, 1, 1, 1,
183: 2, 2, 0, 3, 2, 2, 2, 2, 2, 4,
184: 4, 4, 4, 4, 3, 3, 4, 3, 3, 1,
185: 3, 1, 4, 3, 2, 2, 2, 2, 2, 4,
186: 1, 2, 2, 2, 2, 1, 1, 1, 1, 1,
187: 1, 1, 1, 1, 1, 2, 2, 2, 2, 0,
188: 1, 3, 1, 1, 1, 1, 2, 1, 1, 1,
189: 2, 1, 1, 3, 1, 1, 1, 1, 1, 1,
190: 1, 1, 1, 1, 1 };
191: short yychk[]={
192:
193: -1000, -1, -2, 256, -3, 268, 267, -17, -18, 297,
194: 289, -19, -20, -21, -22, -24, -25, -27, -30, -31,
195: -32, -33, -5, 292, 294, 295, 296, 293, 274, 276,
196: 277, 275, 270, 302, 123, 258, 257, 259, 260, 261,
197: 269, 271, 272, 273, 301, 298, 300, 299, 262, -3,
198: -4, 268, 288, -23, -14, -28, -16, -29, 291, 290,
199: 286, 287, 306, 310, 311, 308, 309, 304, 307, 305,
200: -3, -3, -3, -3, -3, 123, 123, 123, 123, -23,
201: -14, -2, -3, -3, -3, -3, 123, -34, 257, 258,
202: -34, -34, 123, -2, -34, -34, -34, -34, -3, -3,
203: -3, -3, -3, -3, -9, -2, -9, -9, -9, -3,
204: -3, -26, 303, -6, -7, -8, -10, -11, -12, 263,
205: 264, 265, 266, 125, -13, -14, -15, -16, 125, 278,
206: 125, 125, 125, -13, -34, 125, -7, 125, 123, 123,
207: 123, 123, -3, -3, -2, -9, -9, -9, -9, 125,
208: 125, 125, 125 };
209: short yydef[]={
210:
211: 3, -2, 1, 2, 4, 7, 0, 0, 0, 0,
212: 0, 0, 0, 0, 0, 39, 0, 41, 0, 0,
213: 0, 0, 0, 0, 77, 78, 79, 0, 72, 73,
214: 75, 74, 50, 0, 0, 84, 85, 86, 87, 88,
215: 89, 90, 91, 92, 0, 0, 0, 0, 9, 5,
216: 6, 0, 0, 0, 0, 0, 0, 44, 81, 82,
217: 63, 64, 55, 56, 57, 58, 59, 60, 61, 62,
218: 24, 25, 26, 27, 28, 0, 0, 0, 0, 0,
219: 0, 69, 45, 46, 47, 48, 0, 76, 93, 94,
220: 80, 65, 66, 0, 51, 52, 53, 54, 8, 23,
221: 34, 35, 22, 43, 0, 70, 0, 0, 0, 37,
222: 38, 40, 0, 0, 10, 0, 0, 0, 0, 16,
223: 17, 18, 19, 83, 33, 0, 42, 0, 29, 0,
224: 30, 31, 32, 36, 67, 68, 11, 49, 0, 0,
225: 0, 0, 20, 21, 71, 0, 0, 0, 0, 12,
226: 13, 14, 15 };
227: #ifndef lint
228: static char yaccpar_sccsid[] = "@(#)yaccpar 4.1 (Berkeley) 2/11/83";
229: #endif not lint
230:
231: #
232: # define YYFLAG -1000
233: # define YYERROR goto yyerrlab
234: # define YYACCEPT return(0)
235: # define YYABORT return(1)
236:
237: /* parser for yacc output */
238:
239: #ifdef YYDEBUG
240: int yydebug = 0; /* 1 for debugging */
241: #endif
242: YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */
243: int yychar = -1; /* current input token number */
244: int yynerrs = 0; /* number of errors */
245: short yyerrflag = 0; /* error recovery flag */
246:
247: yyparse() {
248:
249: short yys[YYMAXDEPTH];
250: short yyj, yym;
251: register YYSTYPE *yypvt;
252: register short yystate, *yyps, yyn;
253: register YYSTYPE *yypv;
254: register short *yyxi;
255:
256: yystate = 0;
257: yychar = -1;
258: yynerrs = 0;
259: yyerrflag = 0;
260: yyps= &yys[-1];
261: yypv= &yyv[-1];
262:
263: yystack: /* put a state and value onto the stack */
264:
265: #ifdef YYDEBUG
266: if( yydebug ) printf( "state %d, char 0%o\n", yystate, yychar );
267: #endif
268: if( ++yyps> &yys[YYMAXDEPTH] ) { yyerror( "yacc stack overflow" ); return(1); }
269: *yyps = yystate;
270: ++yypv;
271: *yypv = yyval;
272:
273: yynewstate:
274:
275: yyn = yypact[yystate];
276:
277: if( yyn<= YYFLAG ) goto yydefault; /* simple state */
278:
279: if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0;
280: if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault;
281:
282: if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */
283: yychar = -1;
284: yyval = yylval;
285: yystate = yyn;
286: if( yyerrflag > 0 ) --yyerrflag;
287: goto yystack;
288: }
289:
290: yydefault:
291: /* default state action */
292:
293: if( (yyn=yydef[yystate]) == -2 ) {
294: if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0;
295: /* look through exception table */
296:
297: for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */
298:
299: while( *(yyxi+=2) >= 0 ){
300: if( *yyxi == yychar ) break;
301: }
302: if( (yyn = yyxi[1]) < 0 ) return(0); /* accept */
303: }
304:
305: if( yyn == 0 ){ /* error */
306: /* error ... attempt to resume parsing */
307:
308: switch( yyerrflag ){
309:
310: case 0: /* brand new error */
311:
312: yyerror( "syntax error" );
313: yyerrlab:
314: ++yynerrs;
315:
316: case 1:
317: case 2: /* incompletely recovered error ... try again */
318:
319: yyerrflag = 3;
320:
321: /* find a state where "error" is a legal shift action */
322:
323: while ( yyps >= yys ) {
324: yyn = yypact[*yyps] + YYERRCODE;
325: if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){
326: yystate = yyact[yyn]; /* simulate a shift of "error" */
327: goto yystack;
328: }
329: yyn = yypact[*yyps];
330:
331: /* the current yyps has no shift onn "error", pop stack */
332:
333: #ifdef YYDEBUG
334: if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );
335: #endif
336: --yyps;
337: --yypv;
338: }
339:
340: /* there is no state on the stack with an error shift ... abort */
341:
342: yyabort:
343: return(1);
344:
345:
346: case 3: /* no shift yet; clobber input char */
347:
348: #ifdef YYDEBUG
349: if( yydebug ) printf( "error recovery discards char %d\n", yychar );
350: #endif
351:
352: if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */
353: yychar = -1;
354: goto yynewstate; /* try again in the same state */
355:
356: }
357:
358: }
359:
360: /* reduction by production yyn */
361:
362: #ifdef YYDEBUG
363: if( yydebug ) printf("reduce %d\n",yyn);
364: #endif
365: yyps -= yyr2[yyn];
366: yypvt = yypv;
367: yypv -= yyr2[yyn];
368: yyval = yypv[1];
369: yym=yyn;
370: /* consult goto table to find next state */
371: yyn = yyr1[yyn];
372: yyj = yypgo[yyn] + *yyps + 1;
373: if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];
374: switch(yym){
375:
376: case 1:
377: # line 23 "../eqn/e.y"
378: { putout(yypvt[-0]); } break;
379: case 2:
380: # line 24 "../eqn/e.y"
381: { error(!FATAL, "syntax error"); } break;
382: case 3:
383: # line 25 "../eqn/e.y"
384: { eqnreg = 0; } break;
385: case 5:
386: # line 29 "../eqn/e.y"
387: { eqnbox(yypvt[-1], yypvt[-0], 0); } break;
388: case 6:
389: # line 30 "../eqn/e.y"
390: { eqnbox(yypvt[-1], yypvt[-0], 1); } break;
391: case 7:
392: # line 31 "../eqn/e.y"
393: { lineup(0); } break;
394: case 8:
395: # line 34 "../eqn/e.y"
396: { yyval = yypvt[-0]; lineup(1); } break;
397: case 9:
398: # line 37 "../eqn/e.y"
399: { yyval = ct; } break;
400: case 12:
401: # line 43 "../eqn/e.y"
402: { column('L', yypvt[-3]); } break;
403: case 13:
404: # line 44 "../eqn/e.y"
405: { column('C', yypvt[-3]); } break;
406: case 14:
407: # line 45 "../eqn/e.y"
408: { column('R', yypvt[-3]); } break;
409: case 15:
410: # line 46 "../eqn/e.y"
411: { column('-', yypvt[-3]); } break;
412: case 16:
413: # line 49 "../eqn/e.y"
414: { yyval = ct++; } break;
415: case 17:
416: # line 50 "../eqn/e.y"
417: { yyval = ct++; } break;
418: case 18:
419: # line 51 "../eqn/e.y"
420: { yyval = ct++; } break;
421: case 19:
422: # line 52 "../eqn/e.y"
423: { yyval = ct++; } break;
424: case 20:
425: # line 54 "../eqn/e.y"
426: { yyval = yypvt[-0]; } break;
427: case 21:
428: # line 57 "../eqn/e.y"
429: { yyval = yypvt[-0]; } break;
430: case 22:
431: # line 58 "../eqn/e.y"
432: { yyval = 0; } break;
433: case 23:
434: # line 61 "../eqn/e.y"
435: { boverb(yypvt[-2], yypvt[-0]); } break;
436: case 24:
437: # line 62 "../eqn/e.y"
438: { mark(yypvt[-0]); } break;
439: case 25:
440: # line 63 "../eqn/e.y"
441: { size(yypvt[-1], yypvt[-0]); } break;
442: case 26:
443: # line 64 "../eqn/e.y"
444: { font(yypvt[-1], yypvt[-0]); } break;
445: case 27:
446: # line 65 "../eqn/e.y"
447: { fatbox(yypvt[-0]); } break;
448: case 28:
449: # line 66 "../eqn/e.y"
450: { sqrt(yypvt[-0]); } break;
451: case 29:
452: # line 67 "../eqn/e.y"
453: { lpile('L', yypvt[-3], ct); ct = yypvt[-3]; } break;
454: case 30:
455: # line 68 "../eqn/e.y"
456: { lpile('C', yypvt[-3], ct); ct = yypvt[-3]; } break;
457: case 31:
458: # line 69 "../eqn/e.y"
459: { lpile('R', yypvt[-3], ct); ct = yypvt[-3]; } break;
460: case 32:
461: # line 70 "../eqn/e.y"
462: { lpile('-', yypvt[-3], ct); ct = yypvt[-3]; } break;
463: case 33:
464: # line 71 "../eqn/e.y"
465: { shift2(yypvt[-3], yypvt[-1], yypvt[-0]); } break;
466: case 34:
467: # line 72 "../eqn/e.y"
468: { bshiftb(yypvt[-2], yypvt[-1], yypvt[-0]); } break;
469: case 35:
470: # line 73 "../eqn/e.y"
471: { bshiftb(yypvt[-2], yypvt[-1], yypvt[-0]); } break;
472: case 36:
473: # line 74 "../eqn/e.y"
474: { integral(yypvt[-3], yypvt[-1], yypvt[-0]); } break;
475: case 37:
476: # line 75 "../eqn/e.y"
477: { integral(yypvt[-2], yypvt[-0], 0); } break;
478: case 38:
479: # line 76 "../eqn/e.y"
480: { integral(yypvt[-2], 0, yypvt[-0]); } break;
481: case 39:
482: # line 77 "../eqn/e.y"
483: { integral(yypvt[-0], 0, 0); } break;
484: case 40:
485: # line 78 "../eqn/e.y"
486: { paren(yypvt[-2], yypvt[-1], yypvt[-0]); } break;
487: case 42:
488: # line 80 "../eqn/e.y"
489: { fromto(yypvt[-3], yypvt[-1], yypvt[-0]); fromflg=0; } break;
490: case 43:
491: # line 81 "../eqn/e.y"
492: { fromto(yypvt[-2], 0, yypvt[-0]); } break;
493: case 44:
494: # line 82 "../eqn/e.y"
495: { diacrit(yypvt[-1], yypvt[-0]); } break;
496: case 45:
497: # line 83 "../eqn/e.y"
498: { move(FWD, yypvt[-1], yypvt[-0]); } break;
499: case 46:
500: # line 84 "../eqn/e.y"
501: { move(UP, yypvt[-1], yypvt[-0]); } break;
502: case 47:
503: # line 85 "../eqn/e.y"
504: { move(BACK, yypvt[-1], yypvt[-0]); } break;
505: case 48:
506: # line 86 "../eqn/e.y"
507: { move(DOWN, yypvt[-1], yypvt[-0]); } break;
508: case 49:
509: # line 87 "../eqn/e.y"
510: { matrix(yypvt[-3]); } break;
511: case 50:
512: # line 90 "../eqn/e.y"
513: { setintegral(); } break;
514: case 51:
515: # line 93 "../eqn/e.y"
516: { yyval = atoi((char *) yypvt[-1]); } break;
517: case 52:
518: # line 94 "../eqn/e.y"
519: { yyval = atoi((char *) yypvt[-1]); } break;
520: case 53:
521: # line 95 "../eqn/e.y"
522: { yyval = atoi((char *) yypvt[-1]); } break;
523: case 54:
524: # line 96 "../eqn/e.y"
525: { yyval = atoi((char *) yypvt[-1]); } break;
526: case 55:
527: # line 98 "../eqn/e.y"
528: { yyval = HAT; } break;
529: case 56:
530: # line 99 "../eqn/e.y"
531: { yyval = VEC; } break;
532: case 57:
533: # line 100 "../eqn/e.y"
534: { yyval = DYAD; } break;
535: case 58:
536: # line 101 "../eqn/e.y"
537: { yyval = BAR; } break;
538: case 59:
539: # line 102 "../eqn/e.y"
540: { yyval = UNDER; } break;
541: case 60:
542: # line 103 "../eqn/e.y"
543: { yyval = DOT; } break;
544: case 61:
545: # line 104 "../eqn/e.y"
546: { yyval = TILDE; } break;
547: case 62:
548: # line 105 "../eqn/e.y"
549: { yyval = DOTDOT; } break;
550: case 63:
551: # line 108 "../eqn/e.y"
552: { yyval=ps; ps -= 3; fromflg = 1;
553: if(dbg)printf(".\tfrom: old ps %d, new ps %d, fflg %d\n", yyval, ps, fromflg);
554: } break;
555: case 64:
556: # line 113 "../eqn/e.y"
557: { yyval=ps; if(fromflg==0)ps -= 3;
558: if(dbg)printf(".\tto: old ps %d, new ps %d\n", yyval, ps);
559: } break;
560: case 65:
561: # line 118 "../eqn/e.y"
562: { yyval = ((char *)yypvt[-0])[0]; } break;
563: case 66:
564: # line 119 "../eqn/e.y"
565: { yyval = '{'; } break;
566: case 67:
567: # line 122 "../eqn/e.y"
568: { yyval = ((char *)yypvt[-0])[0]; } break;
569: case 68:
570: # line 123 "../eqn/e.y"
571: { yyval = '}'; } break;
572: case 69:
573: # line 124 "../eqn/e.y"
574: { yyval = 0; } break;
575: case 70:
576: # line 127 "../eqn/e.y"
577: { lp[ct++] = yypvt[-0]; } break;
578: case 71:
579: # line 128 "../eqn/e.y"
580: { lp[ct++] = yypvt[-0]; } break;
581: case 72:
582: # line 131 "../eqn/e.y"
583: { yyval = ct; } break;
584: case 73:
585: # line 132 "../eqn/e.y"
586: { yyval = ct; } break;
587: case 74:
588: # line 133 "../eqn/e.y"
589: { yyval = ct; } break;
590: case 75:
591: # line 134 "../eqn/e.y"
592: { yyval = ct; } break;
593: case 76:
594: # line 136 "../eqn/e.y"
595: { yyval = ps; setsize((char *) yypvt[-0]); } break;
596: case 77:
597: # line 139 "../eqn/e.y"
598: { setfont(ROM); } break;
599: case 78:
600: # line 140 "../eqn/e.y"
601: { setfont(ITAL); } break;
602: case 79:
603: # line 141 "../eqn/e.y"
604: { setfont(BLD); } break;
605: case 80:
606: # line 142 "../eqn/e.y"
607: { setfont(((char *)yypvt[-0])[0]); } break;
608: case 81:
609: # line 145 "../eqn/e.y"
610: { shift(SUB); } break;
611: case 82:
612: # line 148 "../eqn/e.y"
613: { shift(SUP); } break;
614: case 83:
615: # line 151 "../eqn/e.y"
616: { yyval = yypvt[-1]; } break;
617: case 84:
618: # line 152 "../eqn/e.y"
619: { text(QTEXT, (char *) yypvt[-0]); } break;
620: case 85:
621: # line 153 "../eqn/e.y"
622: { text(CONTIG, (char *) yypvt[-0]); } break;
623: case 86:
624: # line 154 "../eqn/e.y"
625: { text(SPACE, 0); } break;
626: case 87:
627: # line 155 "../eqn/e.y"
628: { text(THIN, 0); } break;
629: case 88:
630: # line 156 "../eqn/e.y"
631: { text(TAB, 0); } break;
632: case 89:
633: # line 157 "../eqn/e.y"
634: { funny(SUM); } break;
635: case 90:
636: # line 158 "../eqn/e.y"
637: { funny(PROD); } break;
638: case 91:
639: # line 159 "../eqn/e.y"
640: { funny(UNION); } break;
641: case 92:
642: # line 160 "../eqn/e.y"
643: { funny(INTER); } break;
644: }
645: goto yystack; /* stack new state and value */
646:
647: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.