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