home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Distributions / ucb / spencer_2bsd.tar.gz / 2bsd.tar / src / pxp / y.tab.c < prev    next >
C/C++ Source or Header  |  1980-02-17  |  24KB  |  582 lines

  1. /* Copyright (c) 1979 Regents of the University of California */
  2.  
  3. #include "0.h"
  4. #include "yy.h"
  5. #include "tree.h"
  6.  
  7. #ifdef PI
  8. #define    lineof(l)    l
  9. #define    line2of(l)    l
  10. #endif
  11.  
  12. extern yyerrflag;
  13.  
  14. int *yyval 0;
  15. int *yypv;
  16. yyactr(__np__){
  17.     register int **yyYpv;
  18.     register int *p, *q;
  19.     yyYpv = yypv;
  20.  
  21. switch(__np__){
  22.  
  23. case 1: funcend(yyYpv[1], yyYpv[4], lineof(yyYpv[5])); break;
  24. case 2: yyval = funcbody(funchdr(tree5(T_PROG, lineof(yyYpv[1]), yyYpv[2], fixlist(yyYpv[4]), NIL))); break;
  25. case 3: {
  26.             yyPerror("Malformed program statement", PPROG);
  27.             /*
  28.              * Should make a program statement
  29.              * with "input" and "output" here.
  30.              */
  31.             yyval = funcbody(funchdr(tree5(T_PROG, lineof(yyYpv[1]), NIL, NIL, NIL)));
  32.           } break;
  33. case 4: {
  34.             yyval = tree3(T_BSTL, lineof(yyYpv[1]), fixlist(yyYpv[2]));
  35.             if (yyYpv[3].pint < 0)
  36.                 brerror(yyYpv[1], "begin");
  37.           } break;
  38. case 5: trfree(); break;
  39. case 6: {
  40. Derror:
  41.             constend(), typeend(), varend(), trfree();
  42.             yyPerror("Malformed declaration", PDECL);
  43.           } break;
  44. case 7: trfree(); break;
  45. case 9: constend(); break;
  46. case 10: typeend(); break;
  47. case 11: varend(); break;
  48. case 12: label(fixlist(yyYpv[2]), lineof(yyYpv[1])); break;
  49. case 13: yyval = newlist(yyYpv[1] == NIL ? NIL : *hash(yyYpv[1], 1)); break;
  50. case 14: yyval = addlist(yyYpv[1], yyYpv[3] == NIL ? NIL : *hash(yyYpv[3], 1)); break;
  51. case 15: constbeg(yyYpv[1], line2of(yyYpv[2])), const(lineof(yyYpv[3]), yyYpv[2], yyYpv[4]); break;
  52. case 16: const(lineof(yyYpv[3]), yyYpv[2], yyYpv[4]); break;
  53. case 17: {
  54.             constbeg(yyYpv[1], line2of(yyYpv[1]));
  55. Cerror:
  56.             yyPerror("Malformed const declaration", PDECL);
  57.           } break;
  58. case 18: goto Cerror; break;
  59. case 19: typebeg(yyYpv[1], line2of(yyYpv[2])), type(lineof(yyYpv[3]), yyYpv[2], yyYpv[4]); break;
  60. case 20: type(lineof(yyYpv[3]), yyYpv[2], yyYpv[4]); break;
  61. case 21: {
  62.             typebeg(yyYpv[1], line2of(yyYpv[1]));
  63. Terror:
  64.             yyPerror("Malformed type declaration", PDECL);
  65.           } break;
  66. case 22: goto Terror; break;
  67. case 23: varbeg(yyYpv[1], line2of(yyYpv[3])), var(lineof(yyYpv[3]), fixlist(yyYpv[2]), yyYpv[4]); break;
  68. case 24: var(lineof(yyYpv[3]), fixlist(yyYpv[2]), yyYpv[4]); break;
  69. case 25: {
  70.             varbeg(yyYpv[1], line2of(yyYpv[1]));
  71. Verror:
  72.             yyPerror("Malformed var declaration", PDECL);
  73.           } break;
  74. case 26: goto Verror; break;
  75. case 28: trfree(); break;
  76. case 29: funcfwd(yyYpv[1]); break;
  77. case 30: funcend(yyYpv[1], yyYpv[4], lineof(yyYpv[5])); break;
  78. case 31: funcbody(yyYpv[1]); break;
  79. case 32: yyval = funchdr(tree5(yyYpv[1], lineof(yyYpv[5]), yyYpv[2], yyYpv[3], yyYpv[4])); break;
  80. case 33: yyval = T_PDEC; break;
  81. case 34: yyval = T_FDEC; break;
  82. case 35: yyval = fixlist(yyYpv[2]); break;
  83. case 36: yyval = NIL; break;
  84. case 37: yyval = tree3(T_PVAL, fixlist(yyYpv[1]), yyYpv[3]); break;
  85. case 38: yyval = tree3(T_PVAR, fixlist(yyYpv[2]), yyYpv[4]); break;
  86. case 39: yyval = tree3(T_PFUNC, fixlist(yyYpv[2]), yyYpv[4]); break;
  87. case 40: yyval = tree2(T_PPROC, fixlist(yyYpv[2])); break;
  88. case 41: yyval = yyYpv[2]; break;
  89. case 42: yyval = NIL; break;
  90. case 43: yyval = newlist(yyYpv[1]); break;
  91. case 44: yyval = addlist(yyYpv[1], yyYpv[3]); break;
  92. case 45: yyval = tree2(T_CSTRNG, yyYpv[1]); break;
  93. case 47: yyval = tree2(T_PLUSC, yyYpv[2]); break;
  94. case 48: yyval = tree2(T_MINUSC, yyYpv[2]); break;
  95. case 49: yyval = tree2(T_ID, yyYpv[1]); break;
  96. case 50: yyval = tree2(T_CINT, yyYpv[1]); break;
  97. case 51: yyval = tree2(T_CBINT, yyYpv[1]); break;
  98. case 52: yyval = tree2(T_CFINT, yyYpv[1]); break;
  99. case 53: yyval = newlist(yyYpv[1]); break;
  100. case 54: yyval = addlist(yyYpv[1], yyYpv[3]); break;
  101. case 56: yyval = tree3(T_TYPTR, lineof(yyYpv[1]), tree2(T_ID, yyYpv[2])); break;
  102. case 58: yyval = tree3(T_TYPACK, lineof(yyYpv[1]), yyYpv[2]); break;
  103. case 60: yyval = tree3(T_TYSCAL, lineof(yyYpv[1]), fixlist(yyYpv[2])); break;
  104. case 61: yyval = tree4(T_TYRANG, lineof(yyYpv[2]), yyYpv[1], yyYpv[3]); break;
  105. case 62: yyval = tree4(T_TYARY, lineof(yyYpv[1]), fixlist(yyYpv[3]), yyYpv[6]); break;
  106. case 63: yyval = tree3(T_TYFILE, lineof(yyYpv[1]), yyYpv[3]); break;
  107. case 64: yyval = tree3(T_TYSET, lineof(yyYpv[1]), yyYpv[3]); break;
  108. case 65: {
  109.             yyval = tree3(T_TYREC, lineof(yyYpv[1]), yyYpv[2]);
  110.             if (yyYpv[3].pint < 0)
  111.                 brerror(yyYpv[1], "record");
  112.           } break;
  113. case 66: yyval = newlist(yyYpv[1]); break;
  114. case 67: yyval = addlist(yyYpv[1], yyYpv[3]); break;
  115. case 68: yyval = tree4(T_FLDLST, lineof(NIL), fixlist(yyYpv[1]), yyYpv[2]); break;
  116. case 69: yyval = newlist(yyYpv[1]); break;
  117. case 70: yyval = addlist(yyYpv[1], yyYpv[3]); break;
  118. case 71: yyPerror("Malformed record declaration", PDECL); break;
  119. case 72: yyval = NIL; break;
  120. case 73: yyval = tree4(T_RFIELD, lineof(yyYpv[2]), fixlist(yyYpv[1]), yyYpv[3]); break;
  121. case 74: yyval = NIL; break;
  122. case 75: yyval = tree5(T_TYVARPT, lineof(yyYpv[1]), NIL, yyYpv[2], fixlist(yyYpv[4])); break;
  123. case 76: yyval = tree5(T_TYVARPT, lineof(yyYpv[1]), yyYpv[2], yyYpv[4], fixlist(yyYpv[6])); break;
  124. case 77: yyval = newlist(yyYpv[1]); break;
  125. case 78: yyval = addlist(yyYpv[1], yyYpv[3]); break;
  126. case 79: yyPerror("Malformed record declaration", PDECL); break;
  127. case 80: yyval = NIL; break;
  128. case 81: yyval = tree4(T_TYVARNT, lineof(yyYpv[2]), fixlist(yyYpv[1]), yyYpv[4]); break;
  129. case 82: yyval = tree4(T_TYVARNT, lineof(yyYpv[2]), fixlist(yyYpv[1]), NIL); break;
  130. case 83: yyval = newlist(yyYpv[1]); break;
  131. case 84: {
  132.             if ((p = yyYpv[1]) != NIL && (q = p[1])[0] == T_IFX) {
  133.                 q[0] = T_IFEL;
  134.                 q[4] = yyYpv[2];
  135.             } else
  136.                 yyval = addlist(yyYpv[1], yyYpv[2]);
  137.           } break;
  138. case 85: if ((q = yyYpv[1]) != NIL && (p = q[1]) != NIL && p[0] == T_IF) {
  139.             if (yychar < 0)
  140.                 yychar = yylex();
  141.             if (yyshifts >= 2 && yychar == YELSE) {
  142.                 recovered();
  143.                 copy(&Y, &OY, sizeof Y);
  144.                 yerror("Deleted ';' before keyword else");
  145.                 yychar = yylex();
  146.                 p[0] = T_IFX;
  147.             }
  148.           } break;
  149. case 86: yyval = newlist(yyYpv[1]); break;
  150. case 87: yyval = addlist(yyYpv[1], yyYpv[3]); break;
  151. case 88: {
  152.             yyval = NIL;
  153. Kerror:
  154.             yyPerror("Malformed statement in case", PSTAT);
  155.           } break;
  156. case 89: goto Kerror; break;
  157. case 90: yyval = tree4(T_CSTAT, lineof(yyYpv[2]), fixlist(yyYpv[1]), yyYpv[3]); break;
  158. case 91: yyval = tree4(T_CSTAT, lineof(yyYpv[1]), NIL, yyYpv[2]); break;
  159. case 92: yyval = NIL; break;
  160. case 93: yyval = NIL; break;
  161. case 94: yyval = tree4(T_LABEL, lineof(yyYpv[2]), yyYpv[1] == NIL ? NIL : *hash(yyYpv[1], 1), yyYpv[3]); break;
  162. case 95: yyval = tree4(T_PCALL, lineof(yyline), yyYpv[1], NIL); break;
  163. case 96: yyval = tree4(T_PCALL, lineof(yyYpv[2]), yyYpv[1], fixlist(yyYpv[3])); break;
  164. case 97: goto NSerror; break;
  165. case 99: {
  166.             yyval = tree3(T_BLOCK, lineof(yyYpv[1]), fixlist(yyYpv[2]));
  167.             if (yyYpv[3].pint < 0)
  168.                 brerror(yyYpv[1], "begin");
  169.           } break;
  170. case 100: {
  171.             yyval = tree4(T_CASE, lineof(yyYpv[1]), yyYpv[2], fixlist(yyYpv[4]));
  172.             if (yyYpv[5].pint < 0)
  173.                 brerror(yyYpv[1], "case");
  174.           } break;
  175. case 101: yyval = tree4(T_WITH, lineof(yyYpv[1]), fixlist(yyYpv[2]), yyYpv[4]); break;
  176. case 102: yyval = tree4(T_WHILE, lineof(yyYpv[1]), yyYpv[2], yyYpv[4]); break;
  177. case 103: yyval = tree4(T_REPEAT, lineof(yyYpv[3]), fixlist(yyYpv[2]), yyYpv[4]); break;
  178. case 104: yyval = tree5(T_FORU, lineof(yyYpv[1]), yyYpv[2], yyYpv[4], yyYpv[6]); break;
  179. case 105: yyval = tree5(T_FORD, lineof(yyYpv[1]), yyYpv[2], yyYpv[4], yyYpv[6]); break;
  180. case 106: yyval = tree3(T_GOTO, lineof(yyYpv[1]), *hash(yyYpv[2], 1)); break;
  181. case 107: yyval = tree5(T_IF, lineof(yyYpv[1]), yyYpv[2], yyYpv[4], NIL); break;
  182. case 108: yyval = tree5(T_IFEL, lineof(yyYpv[1]), yyYpv[2], yyYpv[4], yyYpv[6]); break;
  183. case 109: yyval = tree5(T_IFEL, lineof(yyYpv[1]), yyYpv[2], yyYpv[4], NIL); break;
  184. case 110: yyval = tree3(T_ASRT, lineof(yyYpv[1]), yyYpv[3]); break;
  185. case 111: {
  186. NSerror:
  187.             yyval = NIL;
  188. Serror:
  189.             yyPerror("Malformed statement", PSTAT);
  190.           } break;
  191. case 112: yyval = tree4(T_ASGN, lineof(yyYpv[2]), yyYpv[1], yyYpv[4]); break;
  192. case 113: {
  193. NEerror:
  194.             yyval = NIL;
  195. Eerror:
  196.             yyPerror("Missing/malformed expression", PEXPR);
  197.           } break;
  198. case 114: yyval = tree4(yyYpv[2], yyYpv[1][1] == SAWCON ? yyYpv[3][1] : yyYpv[1][1], yyYpv[1], yyYpv[3]); break;
  199. case 115: yyval = tree3(T_PLUS, yyYpv[2][1], yyYpv[2]); break;
  200. case 116: yyval = tree3(T_MINUS, yyYpv[2][1], yyYpv[2]); break;
  201. case 117: yyval = tree4(yyYpv[2], yyYpv[1][1] == SAWCON ? yyYpv[3][1] : yyYpv[1][1], yyYpv[1], yyYpv[3]); break;
  202. case 118: yyval = tree4(yyYpv[2], yyYpv[1][1] == SAWCON ? yyYpv[3][1] : yyYpv[1][1], yyYpv[1], yyYpv[3]); break;
  203. case 119: yyval = tree2(T_NIL, NOCON); break;
  204. case 120: yyval = tree3(T_STRNG, SAWCON, yyYpv[1]); break;
  205. case 121: yyval = tree3(T_INT, NOCON, yyYpv[1]); break;
  206. case 122: yyval = tree3(T_BINT, NOCON, yyYpv[1]); break;
  207. case 123: yyval = tree3(T_FINT, NOCON, yyYpv[1]); break;
  208. case 125: goto NEerror; break;
  209. case 126: yyval = tree4(T_FCALL, NOCON, yyYpv[1], fixlist(yyYpv[3])); break;
  210. case 127: yyval = yyYpv[2]; break;
  211. case 128: yyval = tree3(T_NOT, NOCON, yyYpv[2]); break;
  212. case 129: yyval = tree3(T_CSET, SAWCON, fixlist(yyYpv[2])); break;
  213. case 130: yyval = tree3(T_CSET, SAWCON, NIL); break;
  214. case 131: yyval = newlist(yyYpv[1]); break;
  215. case 132: yyval = addlist(yyYpv[1], yyYpv[3]); break;
  216. case 134: yyval = tree3(T_RANG, yyYpv[1], yyYpv[3]); break;
  217. case 135: {
  218.             yyval = setupvar(yyYpv[1], NIL);
  219.           } break;
  220. case 136: yyYpv[1][3] = fixlist(yyYpv[1][3]); break;
  221. case 137: yyval = setupvar(yyYpv[1], tree2(T_ARY, fixlist(yyYpv[3]))); break;
  222. case 138: yyYpv[1][3] = addlist(yyYpv[1][3], tree2(T_ARY, fixlist(yyYpv[3]))); break;
  223. case 139: yyval = setupvar(yyYpv[1], tree3(T_FIELD, yyYpv[3], NIL)); break;
  224. case 140: yyYpv[1][3] = addlist(yyYpv[1][3], tree3(T_FIELD, yyYpv[3], NIL)); break;
  225. case 141: yyval = setupvar(yyYpv[1], tree1(T_PTR)); break;
  226. case 142: yyYpv[1][3] = addlist(yyYpv[1][3], tree1(T_PTR)); break;
  227. case 144: yyval = tree4(T_WEXP, yyYpv[1], yyYpv[3], NIL); break;
  228. case 145: yyval = tree4(T_WEXP, yyYpv[1], yyYpv[3], yyYpv[5]); break;
  229. case 146: yyval = tree4(T_WEXP, yyYpv[1], NIL, yyYpv[2]); break;
  230. case 147: yyval = tree4(T_WEXP, yyYpv[1], yyYpv[3], yyYpv[4]); break;
  231. case 148: yyval = OCT; break;
  232. case 149: yyval = HEX; break;
  233. case 150: yyval = newlist(yyYpv[1]); break;
  234. case 151: yyval = addlist(yyYpv[1], yyYpv[3]); break;
  235. case 152: yyval = newlist(yyYpv[1]); break;
  236. case 153: yyval = addlist(yyYpv[1], yyYpv[3]); break;
  237. case 154: yyval = T_EQ; break;
  238. case 155: yyval = T_LT; break;
  239. case 156: yyval = T_GT; break;
  240. case 157: yyval = T_NE; break;
  241. case 158: yyval = T_LE; break;
  242. case 159: yyval = T_GE; break;
  243. case 160: yyval = T_IN; break;
  244. case 161: yyval = T_ADD; break;
  245. case 162: yyval = T_SUB; break;
  246. case 163: yyval = T_OR; break;
  247. case 164: yyval = T_OR; break;
  248. case 165: yyval = T_MULT; break;
  249. case 166: yyval = T_DIVD; break;
  250. case 167: yyval = T_DIV; break;
  251. case 168: yyval = T_MOD; break;
  252. case 169: yyval = T_AND; break;
  253. case 170: yyval = T_AND; break;
  254. case 173: yyval = newlist(yyYpv[1]); break;
  255. case 174: yyval = addlist(yyYpv[1], yyYpv[3]); break;
  256. case 175: yyval = newlist(yyYpv[1]); break;
  257. case 176: yyval = addlist(yyYpv[1], yyYpv[3]); break;
  258. case 178: {
  259.             yyval = tree3(T_TYID, lineof(yyline), yyYpv[1]);
  260.           } break;
  261. }
  262. }
  263.  
  264. int yyact[] {0,-286,8195,4096,0,16384,4096,12295,-256,8198
  265. ,-273,8197,4096,-256,8201,-259,12315,-261,8207,-271
  266. ,12315,-277,8206,-285,12315,-293,8208,-295,8209,4096
  267. ,-40,8210,4096,12291,-259,8213,-271,8218,-285,8217
  268. ,4096,12293,12294,12296,-256,8220,-259,12297,-261,12297
  269. ,-271,12297,-273,8219,-277,12297,-285,12297,-293,12297
  270. ,-295,12297,4096,-256,8222,-259,12298,-261,12298,-271
  271. ,12298,-273,8221,-277,12298,-285,12298,-293,12298,-295
  272. ,12298,4096,-256,8224,-259,12299,-261,12299,-271,12299
  273. ,-273,8225,-277,12299,-285,12299,-293,12299,-295,12299
  274. ,4096,-276,8227,4096,-256,8229,-273,8228,4096,-256
  275. ,8231,-273,8230,4096,-256,8233,-273,8225,4096,-273
  276. ,8225,4096,-46,8235,4096,12316,-256,8252,-259,8243
  277. ,-260,8244,-267,12381,-269,8248,-272,8249,-273,8241
  278. ,-274,8250,-276,8239,-288,8247,-296,8246,-297,8245
  279. ,-301,8251,-59,12381,4096,-270,8258,12319,-273,8260
  280. ,4096,12321,12322,-61,8261,4096,12306,-61,8262,4096
  281. ,12310,-44,8264,-58,8263,4096,12314,12463,-59,8265
  282. ,-44,8266,4096,12301,-61,8267,4096,12305,-61,8268
  283. ,4096,12309,-44,8264,-58,8269,4096,12313,-41,8270
  284. ,-44,8264,4096,12289,-267,8271,-59,8272,4096,12371
  285. ,-256,8252,-259,8243,-260,8244,-267,12381,-269,8248
  286. ,-272,8249,-273,8241,-274,8250,-276,8239,-288,8247
  287. ,-294,12381,-296,8246,-297,8245,-301,8251,-59,12381
  288. ,4096,-58,8274,4096,-40,8275,12383,-256,8276,-266
  289. ,12472,-267,12472,-294,12472,-46,12470,-40,12472,-59
  290. ,12472,-58,12423,-94,12469,-91,12468,4096,12386,-256
  291. ,8279,-273,8288,-276,8284,-279,8293,-280,8286,-284
  292. ,8282,-290,8283,-298,8285,-43,8280,-45,8281,-40
  293. ,8290,-91,8292,-126,8294,4096,-273,8297,4096,-273
  294. ,8297,4096,-276,8301,4096,-40,8303,4096,12399,-58
  295. ,8304,4096,-46,8306,-94,8307,-91,8305,12424,-91
  296. ,8308,4096,-46,8309,4096,-94,8310,4096,-59,8311
  297. ,4096,-256,8201,-259,12315,-261,8207,-271,12315,-277
  298. ,8206,-285,12315,-293,8208,-295,8209,4096,-40,8314
  299. ,12324,-273,8324,-276,8321,-280,8323,-290,8316,-298
  300. ,8322,-43,8318,-45,8319,4096,-258,8333,-268,8334
  301. ,-273,8337,-276,8321,-280,8323,-283,8329,-287,8336
  302. ,-289,8335,-290,8316,-298,8322,-43,8318,-45,8319
  303. ,-40,8331,-94,8327,4096,-273,8339,4096,12300,-276
  304. ,8340,4096,-59,8344,4096,12292,12373,12372,-256,8279
  305. ,-273,8288,-276,8284,-279,8293,-280,8286,-284,8282
  306. ,-290,8283,-298,8285,-43,8280,-45,8281,-40,8290
  307. ,-91,8292,-126,8294,4096,12385,-267,8349,-59,8272
  308. ,4096,-257,8366,-262,8364,-275,8357,-278,8365,-281
  309. ,8350,-282,8360,-60,8355,-61,8354,-62,8356,-43
  310. ,8358,-45,8359,-124,8361,-42,8362,-47,8363,-38
  311. ,8367,4096,12401,12407,12408,12409,12410,12411,12412,-256
  312. ,8370,-257,12423,-262,12423,-263,12423,-264,12423,-265
  313. ,12423,-266,12423,-267,12423,-275,12423,-278,12423,-281
  314. ,12423,-282,12423,-291,12423,-292,12423,-294,12423,-299
  315. ,12423,-300,12423,-60,12423,-61,12423,-62,12423,-43
  316. ,12423,-45,12423,-124,12423,-42,12423,-47,12423,-38
  317. ,12423,-46,12470,-40,12473,-41,12423,-59,12423,-44
  318. ,12423,-58,12423,-94,12469,-91,12468,-93,12423,4096
  319. ,-40,8371,4096,-256,8279,-273,8288,-276,8284,-279
  320. ,8293,-280,8286,-284,8282,-290,8283,-298,8285,-43
  321. ,8280,-45,8281,-40,8290,-91,8292,-93,8375,-126
  322. ,8294,4096,12459,12460,-263,8378,-44,8379,4096,12461
  323. ,-46,12470,-94,12469,-91,12468,12423,-257,8366,-262
  324. ,8364,-263,8380,-275,8357,-278,8365,-282,8360,-60
  325. ,8355,-61,8354,-62,8356,-43,8358,-45,8359,-124
  326. ,8361,-42,8362,-47,8363,-38,8367,4096,-294,8381
  327. ,-59,8272,4096,-265,8382,-292,8383,4096,12394,-257
  328. ,8366,-262,8364,-275,8357,-278,8365,-282,8360,-291
  329. ,8384,-60,8355,-61,8354,-62,8356,-43,8358,-45
  330. ,8359,-124,8361,-42,8362,-47,8363,-38,8367,4096
  331. ,-61,8386,4096,-256,8279,-273,8288,-276,8284,-279
  332. ,8293,-280,8286,-284,8282,-290,8283,-298,8285,-43
  333. ,8280,-45,8281,-40,8290,-91,8292,-126,8294,4096
  334. ,-273,8390,4096,12430,12429,12317,-259,8213,-271,8218
  335. ,-285,8217,4096,-58,8395,12330,-271,8400,-273,8225
  336. ,-285,8401,-295,8399,4096,-59,8402,4096,12333,12334
  337. ,-273,8324,-276,8321,-280,8323,-298,8322,4096,12337
  338. ,12338,12339,12340,12465,-59,8405,4096,12343,-273,8406
  339. ,4096,12345,-258,8333,-268,8334,-287,8336,-289,8335
  340. ,4096,12347,-264,8409,4096,-91,8410,4096,-281,8411
  341. ,4096,-281,8412,4096,-273,8225,12360,-264,12465,12466
  342. ,-59,8417,4096,12464,12302,-59,8418,4096,-59,8419
  343. ,4096,-59,8420,4096,12290,12382,-41,8421,-44,8422
  344. ,4096,12440,-257,8366,-262,8364,-275,8357,-278,8365
  345. ,-282,8360,-299,8425,-300,8426,-60,8355,-61,8354
  346. ,-62,8356,-43,8358,-45,8359,-124,8361,-42,8362
  347. ,-47,8363,-38,8367,-58,8423,12431,12387,-256,8429
  348. ,-267,12380,-273,8324,-276,8321,-280,8323,-290,8316
  349. ,-298,8322,-302,8431,-43,8318,-45,8319,-59,12380
  350. ,4096,12442,-61,8437,-62,8436,12443,-61,8438,12444
  351. ,12448,12449,12450,12451,12452,12453,12454,12455,12456,12457
  352. ,12458,-257,8366,-262,8364,-278,8365,-42,8362,-47
  353. ,8363,-38,8367,12403,-257,8366,-262,8364,-278,8365
  354. ,-42,8362,-47,8363,-38,8367,12404,12413,-257,8366
  355. ,-262,8364,-275,8357,-278,8365,-282,8360,-60,8355
  356. ,-61,8354,-62,8356,-43,8358,-45,8359,-124,8361
  357. ,-42,8362,-47,8363,-38,8367,-41,8440,4096,12416
  358. ,-44,8442,-93,8441,4096,12418,12419,-257,8366,-262
  359. ,8364,-264,8443,-275,8357,-278,8365,-282,8360,-60
  360. ,8355,-61,8354,-62,8356,-43,8358,-45,8359,-124
  361. ,8361,-42,8362,-47,8363,-38,8367,12421,-273,8297
  362. ,4096,-257,8366,-262,8364,-275,8357,-278,8365,-282
  363. ,8360,-60,8355,-61,8354,-62,8356,-43,8358,-45
  364. ,8359,-124,8361,-42,8362,-47,8363,-38,8367,-41
  365. ,8451,4096,-44,8454,-93,8453,4096,-257,8366,-262
  366. ,8364,-275,8357,-278,8365,-282,8360,-60,8355,-61
  367. ,8354,-62,8356,-43,8358,-45,8359,-124,8361,-42
  368. ,8362,-47,8363,-38,8367,12438,12428,12471,-44,8454
  369. ,-93,8455,4096,12427,-59,8456,4096,-59,8457,4096
  370. ,-41,8459,-59,8460,4096,12331,-44,8264,-58,8461
  371. ,4096,12304,12335,12336,12308,12344,12346,-41,8465,-44
  372. ,8264,4096,-273,8337,-276,8321,-280,8323,-290,8316
  373. ,-298,8322,-43,8318,-45,8319,-40,8331,4096,-273
  374. ,8337,-276,8321,-280,8323,-290,8316,-298,8322,-43
  375. ,8318,-45,8319,-40,8331,4096,-267,8471,4096,-256
  376. ,8474,-260,8475,-267,12362,-41,12362,-59,8473,4096
  377. ,12357,-44,8264,-58,8476,4096,12312,12303,12307,12311
  378. ,12384,-256,8279,-273,8288,-276,8284,-279,8293,-280
  379. ,8286,-284,8282,-290,8283,-298,8285,-43,8280,-45
  380. ,8281,-40,8290,-91,8292,-126,8294,4096,12434,12436
  381. ,12437,-256,8480,-267,8481,-59,8479,4096,12374,12376
  382. ,-44,8482,-58,8483,4096,12341,-257,8366,-262,8364
  383. ,-275,4096,-278,8365,-282,8360,-60,4096,-61,4096
  384. ,-62,4096,-43,8358,-45,8359,-124,8361,-42,8362
  385. ,-47,8363,-38,8367,12402,-257,8366,-262,8364,-278
  386. ,8365,-42,8362,-47,8363,-38,8367,12405,12406,12445
  387. ,12446,12447,-41,8485,-44,8422,4096,12415,12417,-256
  388. ,8279,-273,8288,-276,8284,-279,8293,-280,8286,-284
  389. ,8282,-290,8283,-298,8285,-43,8280,-45,8281,-40
  390. ,8290,-91,8292,-126,8294,4096,12389,12462,12390,-257
  391. ,8366,-262,8364,-275,8357,-278,8365,-282,8360,-60
  392. ,8355,-61,8354,-62,8356,-43,8358,-45,8359,-124
  393. ,8361,-42,8362,-47,8363,-38,8367,12391,-257,8366
  394. ,-262,8364,-263,8488,-275,8357,-278,8365,-282,8360
  395. ,-60,8355,-61,8354,-62,8356,-43,8358,-45,8359
  396. ,-124,8361,-42,8362,-47,8363,-38,8367,4096,-257
  397. ,8366,-262,8364,-263,8489,-275,8357,-278,8365,-282
  398. ,8360,-60,8355,-61,8354,-62,8356,-43,8358,-45
  399. ,8359,-124,8361,-42,8362,-47,8363,-38,8367,4096
  400. ,-266,8490,12395,12398,-257,8366,-262,8364,-275,8357
  401. ,-278,8365,-282,8360,-60,8355,-61,8354,-62,8356
  402. ,-43,8358,-45,8359,-124,8361,-42,8362,-47,8363
  403. ,-38,8367,12400,12426,12425,12318,12320,12329,12323,-271
  404. ,8400,-273,8225,-285,8401,-295,8399,4096,-44,8264
  405. ,-58,8494,4096,-44,8264,-58,8495,4096,-44,8264
  406. ,12328,12348,12349,-44,8497,-93,8496,4096,12354,12351
  407. ,12352,12353,12356,-273,8225,12360,12359,-273,8500,4096
  408. ,12441,-257,8366,-262,8364,-275,8357,-278,8365,-282
  409. ,8360,-299,8425,-300,8426,-60,8355,-61,8354,-62
  410. ,8356,-43,8358,-45,8359,-124,8361,-42,8362,-47
  411. ,8363,-38,8367,-58,8502,12432,-273,8324,-276,8321
  412. ,-280,8323,-290,8316,-298,8322,-302,8431,-43,8318
  413. ,-45,8319,12380,12377,12388,12379,12414,12420,-257,8366
  414. ,-262,8364,-275,8357,-278,8365,-282,8360,-60,8355
  415. ,-61,8354,-62,8356,-43,8358,-45,8359,-124,8361
  416. ,-42,8362,-47,8363,-38,8367,12422,-256,8252,-259
  417. ,8243,-260,8244,-266,12381,-267,12381,-269,8248,-272
  418. ,8249,-273,8241,-274,8250,-276,8239,-288,8247,-294
  419. ,12381,-296,8246,-297,8245,-301,8251,-59,12381,4096
  420. ,-257,8366,-262,8364,-275,8357,-278,8365,-282,8360
  421. ,-60,8355,-61,8354,-62,8356,-43,8358,-45,8359
  422. ,-124,8361,-42,8362,-47,8363,-38,8367,12439,12332
  423. ,12325,-281,8512,4096,12358,-281,8514,4096,-58,8515
  424. ,12466,12361,12435,12375,12342,12378,12392,12393,12396,12326
  425. ,12327,12355,-273,8324,-276,8321,-280,8323,-290,8316
  426. ,-298,8322,-43,8318,-45,8319,12368,-273,8522,4096
  427. ,-257,8366,-262,8364,-275,8357,-278,8365,-282,8360
  428. ,-60,8355,-61,8354,-62,8356,-43,8358,-45,8359
  429. ,-124,8361,-42,8362,-47,8363,-38,8367,12433,12350
  430. ,-256,8524,-267,12363,-41,12363,-59,8523,4096,12365
  431. ,-44,8482,-58,8525,4096,-281,8526,4096,12466,-273
  432. ,8324,-276,8321,-280,8323,-290,8316,-298,8322,-43
  433. ,8318,-45,8319,12368,12367,-40,8528,4096,12366,-273
  434. ,8225,-41,8531,12360,-256,8524,-267,12364,-41,12364
  435. ,-59,8523,4096,-41,8532,4096,12370,12369,-1};
  436.  
  437. int yypact[] {0,1,4,7,8,13,30,33,34,41
  438. ,42,43,44,63,82,101,104,109,114,119
  439. ,122,125,126,155,7,158,161,162,163,166
  440. ,167,170,171,176,177,178,183,184,187,188
  441. ,191,192,197,198,203,204,209,210,241,244
  442. ,247,268,126,269,296,269,126,299,302,269
  443. ,305,308,309,312,319,322,325,328,331,348
  444. ,351,366,366,395,398,399,351,366,366,402
  445. ,405,406,407,210,408,435,436,441,472,269
  446. ,269,473,474,475,476,477,478,479,550,269
  447. ,269,553,582,583,584,589,590,597,628,633
  448. ,638,639,269,670,673,700,703,673,700,704
  449. ,705,706,713,716,725,728,729,730,730,739
  450. ,740,741,742,743,744,747,748,751,752,761
  451. ,119,762,765,768,771,774,777,780,783,784
  452. ,785,788,791,794,795,796,801,802,837,838
  453. ,269,269,269,861,862,867,870,871,872,873
  454. ,874,875,876,877,878,879,880,881,894,907
  455. ,408,908,939,940,945,946,947,210,978,210
  456. ,269,269,269,210,981,269,1012,1017,1046,1047
  457. ,1048,1053,1054,1057,366,1060,1065,1066,119,119
  458. ,119,1071,1072,1073,1074,1075,1076,1077,351,1082
  459. ,366,1099,1116,1119,1130,1131,1136,1137,1138,1139
  460. ,1140,1141,269,1168,1169,1170,1171,1178,1179,1180
  461. ,210,1185,1186,1215,1228,1229,1230,1231,1232,1237
  462. ,1238,1239,269,1266,1267,1268,1269,1298,1329,1360
  463. ,1363,1364,1393,269,1394,1395,1396,1397,1398,1399
  464. ,366,1408,1413,1418,1421,1422,1423,1428,1429,1430
  465. ,1431,1432,1433,1436,1437,366,1440,1441,1476,1493
  466. ,1494,351,210,1495,1496,1497,1498,210,210,1527
  467. ,1560,1589,1590,366,366,1591,1099,1594,1595,1598
  468. ,1601,269,1602,1603,1604,1605,1606,1607,1608,1609
  469. ,1610,366,1611,1612,1627,1630,1659,1660,1669,1670
  470. ,1675,1678,1679,1694,1695,1612,1698,1699,1704,1713
  471. ,1716,1717,-1};
  472.  
  473. int yyr1[] {0,1,2,2,5,3,3,3,8,8
  474. ,8,8,9,13,13,10,10,10,10,11
  475. ,11,11,11,12,12,12,12,4,4,16
  476. ,16,18,17,19,19,20,20,23,23,23
  477. ,23,21,21,22,22,14,14,14,14,24
  478. ,24,24,24,26,26,15,15,15,15,27
  479. ,27,27,28,28,28,28,30,30,31,32
  480. ,32,32,34,34,33,33,33,35,35,35
  481. ,36,36,36,7,7,38,39,39,39,39
  482. ,40,40,40,37,37,37,37,37,37,37
  483. ,37,37,37,37,37,37,37,37,37,37
  484. ,37,37,43,44,44,44,44,44,44,44
  485. ,44,44,44,44,44,44,44,44,44,44
  486. ,44,52,52,53,53,46,46,54,54,54
  487. ,54,54,54,60,60,60,60,60,61,61
  488. ,56,56,42,42,47,47,47,47,47,47
  489. ,47,48,48,48,48,49,49,49,49,49
  490. ,49,51,51,45,45,6,6,25,29,62
  491. ,55,59,57,58,41,50,-1};
  492.  
  493. int yyr2[] {0,5,6,2,3,2,2,0,1,1
  494. ,1,1,3,1,3,5,5,2,2,5
  495. ,5,2,2,5,5,2,2,0,2,3
  496. ,5,1,5,1,1,3,0,3,4,4
  497. ,2,2,0,1,3,1,1,2,2,1
  498. ,1,1,1,1,3,1,2,1,2,1
  499. ,3,3,6,3,3,3,1,3,2,1
  500. ,3,2,0,3,0,4,6,1,3,2
  501. ,0,5,4,1,2,2,1,3,1,2
  502. ,3,2,0,0,3,1,4,2,1,3
  503. ,5,4,4,4,6,6,2,4,6,5
  504. ,4,1,4,1,3,2,2,3,3,1
  505. ,1,1,1,1,1,2,4,3,2,3
  506. ,2,1,3,1,3,1,1,4,4,3
  507. ,3,2,2,1,3,5,2,4,1,1
  508. ,1,3,1,3,1,1,1,2,2,2
  509. ,1,1,1,1,1,1,1,1,1,1
  510. ,1,1,1,1,3,1,3,1,1,1
  511. ,1,1,1,1,1,1,-1};
  512.  
  513. int yygo[] {0,-1,1,-1,2,23,67,-1,4,67
  514. ,120,-1,7,120,201,-1,19,13,31,17
  515. ,40,18,42,122,206,139,216,207,270,208
  516. ,271,209,272,268,206,-1,224,51,85,55
  517. ,107,-1,44,-1,8,-1,10,-1,11,-1
  518. ,12,-1,13,-1,34,69,123,75,149,158
  519. ,240,217,274,287,240,290,313,322,240,331
  520. ,240,334,240,-1,140,71,146,76,150,77
  521. ,151,203,266,219,277,269,301,284,309,302
  522. ,318,303,319,320,325,-1,133,-1,20,-1
  523. ,22,-1,23,-1,24,-1,121,-1,202,-1
  524. ,204,268,300,-1,205,126,211,127,212,-1
  525. ,125,-1,128,158,238,287,238,-1,328,218
  526. ,276,220,278,305,321,-1,134,137,215,-1
  527. ,136,283,307,323,329,-1,138,-1,275,336
  528. ,338,-1,221,-1,222,-1,280,281,306,-1
  529. ,223,334,337,-1,326,331,335,-1,327,46
  530. ,81,82,153,186,252,188,254,192,258,239
  531. ,292,291,314,296,315,297,316,298,317,-1
  532. ,45,-1,46,-1,235,287,312,-1,236,-1
  533. ,48,179,247,-1,154,56,108,-1,50,52
  534. ,86,54,106,58,110,88,176,89,177,98
  535. ,180,99,181,100,185,111,193,113,196,116
  536. ,196,159,241,160,242,161,243,189,255,190
  537. ,256,191,257,194,260,231,286,250,185,251
  538. ,295,262,299,310,324,-1,156,-1,103,21
  539. ,61,46,61,51,61,53,104,55,61,56
  540. ,61,82,61,186,61,187,253,188,61,192
  541. ,61,239,61,291,61,296,61,297,61,298
  542. ,61,-1,95,-1,159,-1,160,-1,161,-1
  543. ,97,-1,99,-1,182,250,294,-1,184,-1
  544. ,62,-1,63,116,199,-1,195,-1,64,117
  545. ,200,-1,197,-1,65,230,285,-1,155,286
  546. ,311,-1,232,-1,-1,-1};
  547.  
  548. int yypgo[] {0,1,3,5,9,13,17,37,43,45
  549. ,47,49,51,53,55,75,97,99,101,103
  550. ,105,107,109,111,115,121,123,129,137,141
  551. ,147,149,153,155,157,161,165,169,191,193
  552. ,195,199,201,205,209,257,259,293,295,297
  553. ,299,301,303,305,309,311,313,317,319,323
  554. ,325,329,333,-1};
  555.  
  556.  
  557. yyEactr(__np__, var)
  558. int __np__;
  559. char *var;
  560. {
  561. switch(__np__) {
  562. default:
  563. return (1);
  564. case 177:  return (identis(var, CONST)); break;
  565. case 179:  return (identis(var, VAR)); break;
  566. case 180:  return (identis(var, ARRAY)); break;
  567. case 181:  return (identis(var, PTRFILE)); break;
  568. case 182:  return (identis(var, RECORD)); break;
  569. case 183:  return (identis(var, FIELD)); break;
  570. case 184:  return (identis(var, PROC)); break;
  571. case 185:  return (identis(var, FUNC)); break;
  572. case 135: {
  573.              return (identis(var, VAR));
  574. }
  575. break;
  576. case 178: {
  577.              return (identis(var, TYPE));
  578. }
  579. break;
  580. }
  581. }
  582.