char *text_[256] = {
"Z","VDEC","OWNVDEC","EXTVSPEC","ADEC","OWNADEC","EXTASPEC","PROC",
"PROCSPEC","FORMDEC","SWDEC","LDEC","FORMSPEC","","","",
"","","OPTION","COMMA","T","COLON","COMMENT","LB",
"ALIAS","RB","SUB","ARRAYD","STYPE","ARRAY","NAME","PROCD",
"FNMAP","SWITCH","OWN","EXTERNAL","STRING","RECORD","FORMAT","SPEC",
"MCODE","LABEL","OP1","OP2","OP3","SIGN","UOP","MOD",
"DOT","COMP","ACOMP","EQ","EQEQ","JAM","JUMP","RESOP",
"AND","OR","NOT","WHILE","UNTIL","FOR","CWORD","EXIT",
"ON","SIGNAL","THEN","START","ELSE","FINISH","FELSE","CYCLE",
"REPEAT","PROGRAM","BEGIN","END","ENDPROG","ENDPERM","FRESULT","MRESULT",
"BACK","MONITOR","STOP","LIST","REALSLN","CONTROL","INCLUDE","MASS",
"RTYPE","ADDOP","IDENT","V","N","CONST","FM","",
"R","F","M","P","RP","FP","MP","PP",
"L","S","A","AN","NA","NAN","","",
"","","","","","","","",
"%MSTART","%CLEAR","%PRED","","%DUBIOUS","%DUP","%PIN","%POUT",
"%EDUP","","PIDENT","CIDENT","OIDENT","FNAME","SWID","DOTL",
"DOTR","ASEP","CSEP","OSEP","PSEP","ARB","BPLRB","ORB",
"PRB","CRB","RCRB","RECRB","RECLB","LAB","MLAB","SLAB",
"XNAME","OWNT","DBSEP","PCONST","CMOD","CSIGN","CUOP","COP1",
"COP2","COP3","INDEF","XELSE","CRESOP","NLAB","RUNTIL","ACONST",
"ORRB","FMANY","OSTRING","FMLB","FMRB","FMOR","RANGERB","FSID",
"","","","","","%DUMMY","%DECL","%TYPE",
"%ZERO","%APPLY","%PROT","%SETPROT","%PTYPE","%GAPP","%LOCAL","%GUARD",
"%MCODE","%CDUMMY","%SETTYPE","%OPER","%PARAM","%BLOCK","%OTHER","%COMPILE",
"APP","BASEAPP","APP2","APP3","APP4","APP5","APP6","ADEFN",
"NPARM","SWDEF","SWIDS","CIEXP","RCONST","SCONST","ARRAYP","XIMP",
"IMP","COND","SCOND","EXP1","EXP2","SEXP","IEXP","IEXP1",
"IEXP2","ISEXP","SEQ","FDEF","EXP","NARRAYP","STRUCT","RESEXP",
"BPL","CONSTB","FITEM","MOREA","CLIST","FPP","FPP0","FPP1",
"FPP2","INITVAR","RECEXP","EIMP","IDENTS","RANGE","RCONSTB","VARP",
"INITDEC","","","","ESCDEC","ESCPROC","ESCARRAY","ESCREC"
};
#define text(n) text_[n]
int gmax1=719;
static int gmax=719;
int impphrase =25;
// FLAG<1> 0<1> SS<2> 0<3> T<1> LINK<8>
const short int initial_[120] = {
24, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 23, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
20, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -32551, 0,
0, 0, 0, 13, 0, 14, 4, -32557,
16, -32550, 0, 0, 5, 6, 3, 12,
15, 8, 7, 9, 10, 11, -32558, -32554,
-32559, -32552, -32553, 18, 22, 17, 21, 19,
0, 0, 0, -32562, -32560, 0, 0, 0,
-32561, 0, 0, 0, 0, 0, 0, 0,
1, 2, 0, -32556, 0, -32555, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
};
#define initial(n) initial_[n]
const unsigned char atomic_[179-130+1] = {
90, 90, 90, 90, 90, 48, 48, 19,
19, 19, 19, 25, 25, 25, 25, 25,
25, 25, 23, 104, 104, 105, 30, 20,
21, 93, 47, 45, 46, 42, 43, 44,
40, 68, 55, 104, 60, 93, 25, 40,
93, 23, 25, 57, 25, 90, 176, 177,
178, 179
};
#define atomic(n) atomic_[(n)-130]
static short int phrase_[255-200+1] = {
0, 564, 565, 567, 569, 571, 573, 562,
614, 203, 200, 602, 478, 480, 624, 298,
206, 308, 318, 433, 426, 437, 444, 458,
453, 461, 467, 482, 402, 627, 629, 603,
521, 511, 486, 502, 575, 527, 528, 543,
550, 578, 397, 287, 197, 636, 516, 621,
167, 0, 0, 0, 640, 693, 701, 709
};
#define phrase(n) sex16(phrase_[(n)-200])
#define setphrase(n) phrase_[(n)-200]
// MORE<1> 0<1> ORDER<2> TYPE<4> CLASS<8>
static short int gram_[maxgrammar+1] = {
0, -28523, -28521, -28602, -32706, -28509, -28603, -24502,
-24503, -20405, -20404, -28595, -32697, -32709, -16323, -28600,
-32704, -28587, -28589, -32681, -16344, -28586, -28588, -12270,
-32586, 216, -12287, -16380, -8185, -8184, -12285, -12286,
-12283, -12282, -12279, -12276, -16373, 20490, -32706, -32701,
216, -16364, -28610, -28613, -28612, 16445, 217, -16364,
62, -32701, 16450, -16364, 5346, -16364, 166, -16344,
4332, 130, -16360, -16361, 126, 217, -32701, 216,
-16364, 16450, -32700, 16404, -32701, -32706, 216, 16405,
16407, -16222, 8414, 130, 217, -32697, 16450, 1250,
4307, 4318, 192, 93, 170, 90, 207, -16365,
16404, 90, -16360, -16365, 16404, 241, -16365, 16404,
132, 132, -16360, 4329, -16365, 16404, 133, 175,
90, -16365, 16404, 209, -16365, 16404, 4313, 217,
16451, 4263, 16384, 16384, 120, 216, -32700, 16404,
-32706, 16404, 243, 16409, 454, -32685, 16404, 454,
248, -16365, 16404, 4263, 194, -16360, 4329, -32717,
16404, 4263, 16407, 454, 237, 127, 215, 454,
4263, 16384, -16364, 1502, -32629, -16361, 153, -32606,
222, 143, -32629, 153, 454, 126, 16409, 454,
16384, 234, -16365, -32595, 147, -32678, 234, 193,
-32677, -32676, -32661, 109, -32717, 53, 52, 52,
52, 194, 194, 194, -28581, 4188, 194, -28566,
4203, 194, -28564, 4205, 4580, 16429, 183, 183,
186, 186, -28583, 0, 9437, 90, -16365, 0,
134, -16365, 0, 210, 4329, 199, -32677, -32672,
-32676, -32688, -32690, -32705, -32661, -32659, -32689, -32686,
-32687, -16330, 65, -32716, 186, -28583, -32717, -32715,
-32713, 52, -32664, 4201, 186, -32717, -32715, 55,
-16328, 0, 197, 197, 52, 52, 197, -28581,
-28580, 186, -28581, 4188, 4318, 194, -28581, 4188,
9437, 194, 194, 454, 16407, 216, 194, -28566,
-28565, 186, -28566, 4203, 194, -28564, -28563, 186,
-28564, 4205, 183, 183, 186, 183, -16365, 0,
183, 4580, 16429, 5095, 9444, 5348, 186, -28583,
-16328, 0, 16409, -16365, 0, 9437, 5348, 217,
-32701, 16450, -32701, 216, -32700, 0, -32701, -32706,
216, 243, 217, -16318, 0, -32552, 0, -32700,
0, -32706, 0, 215, -32550, 228, -28616, -28615,
0, 4096, 218, 218, -28616, 0, -32677, -32676,
-16361, -32710, -32669, -32662, -32661, -32660, -32659, 740,
-32039, 740, -32719, 4096, 194, -32719, -32718, -32604,
-32726, -32725, -32724, -32720, 4096, 710, 6116, -32719,
0, 710, 6116, -28581, 4188, 218, 122, 50,
16409, -32726, -32725, -32724, -32719, 4096, 710, 454,
195, 195, 195, 454, -28581, 4188, 194, -28566,
-28565, -28564, 4205, 195, 195, 195, 710, 4836,
5095, 4829, -32726, -32725, -32724, -32719, 4096, 4827,
4828, 454, -32720, -32719, 4096, 4829, 4827, 4828,
194, -32719, 0, 710, 4836, -16291, -32677, 92,
184, 121, -28581, -28580, -32722, -32723, 4317, -32726,
-32725, -32724, 0, 183, -32726, -32725, -32724, -32720,
0, 4316, 195, 195, 195, 454, -28581, 4188,
4315, 183, 4317, -32726, -32725, 0, 195, 195,
4315, 4317, -32726, 0, 195, -32677, -32676, -16361,
16431, 228, 228, 47, -32610, -32611, 5345, -32609,
-32608, -32607, 0, 4320, 4319, 5345, -32609, -32608,
0, 4319, 5345, -32609, 0, -32613, -16361, 16431,
222, 222, 156, -32677, 92, 183, 186, 1222,
16435, 228, 16403, 4324, 138, 8420, -32723, 4189,
93, 454, 148, -32674, 16546, 16409, -32597, 182,
-16383, 16388, 234, -16365, -32595, 172, -32678, 234,
90, 244, 246, -16365, 0, 235, -32678, 234,
-16365, 246, -16365, 0, -32678, 234, 90, 16407,
222, 16405, 222, 145, 16407, 222, 16405, 222,
146, 16407, 1252, 154, 5348, -16365, 142, 126,
182, -16383, 16391, 90, -16365, 127, -32678, 238,
90, 125, 239, -16365, 8319, 8430, 128, 126,
-16361, 127, 190, 240, 189, 16409, 182, -16383,
16391, 90, -16365, 0, -32678, 240, 90, 16623,
-16365, 0, 244, 232, 1252, 1252, 137, 1252,
137, 1252, 137, 1252, 137, 1252, 137, 222,
-16365, 0, 131, 194, -16360, -16333, -16332, 124,
181, -16292, -16277, 16493, -31802, 5342, -28581, 4188,
4263, 181, 186, 454, 16475, 183, -28583, 199,
5598, 9438, 222, -32677, -32676, 16407, 186, 228,
135, 16409, -32632, 0, -32677, 92, -32677, -32676,
-32662, -32661, -32660, -32659, 165, -32677, 92, 188,
-32662, 107, 188, -32660, 109, -32732, 37, -16344,
4318, 148, -32674, 16424, 222, 16405, 222, 174,
-28644, -32734, -32680, -28641, -32733, -32730, -32735, -32727,
-32738, 4326, -32738, -32739, -32741, -32736, 199, -28644,
-32680, -28641, 4326, -32739, -32741, 199, -32738, -32739,
-32741, -32736, -32729, 199, -32616, 199, -32739, -32741,
-32729, 199, -32616, -32729, 199, -28644, -32680, 4326,
-32738, -32739, -32741, 199, 245, 4318, 245, 16409,
152, 4318, 16409, 152, 245, -32672, -32671, -32670,
99, 16407, 200, 144, 185, -32677, 92, 16407,
-32582, 200, 200, 187, 141, -32677, 92, 16410,
191, -32677, -32676, -32662, -32661, -32660, 109, 198,
// 0(max grammar-774)
// C statics are set to 0 anyway...
};
#define gram(n) sex16(gram_[n])
#define setgram(n) gram_[n]
static short int glink_[maxgrammar+1] = {
-1, 71, 72, 38, 46, 47, 67, 67,
75, 67, 0, 67, 51, 76, 79, 53,
55, 80, 67, 81, 82, 83, 67, 84,
26, 41, 85, 86, 57, 57, 89, 93,
96, 97, 102, 103, 104, 107, 46, 67,
67, 0, 110, 110, 111, 52, 49, 0,
61, 67, 62, 0, 67, 0, 111, 112,
112, 58, 113, 114, 115, 64, 67, 66,
116, 117, 68, 0, 67, 122, 67, 0,
73, 123, 123, 67, 77, 67, 40, 77,
67, 67, 0, 124, 127, 128, 87, 86,
0, 90, 131, 89, 0, 94, 93, 0,
132, 98, 137, 100, 97, 0, 138, 67,
105, 104, 0, 108, 107, 0, 67, 67,
67, 139, 140, 141, 0, 118, 120, 116,
142, 116, 67, 71, 125, 67, 0, 67,
129, 85, 0, 143, 133, 144, 135, 145,
0, 156, 157, 59, 158, 67, 119, 91,
159, 146, 145, 148, 146, 151, 0, 153,
153, 154, 146, 0, 99, 160, 67, 134,
161, 162, 165, 161, 141, 162, 162, 168,
172, 174, 175, 176, 177, 178, 179, 182,
185, 188, 189, 180, 190, 190, 183, 191,
191, 186, 191, 191, 0, 188, 192, 193,
194, 0, 196, 0, 0, 198, 197, 0,
201, 200, 0, 204, 205, 0, 228, 232,
219, 234, 235, 0, 236, 237, 238, 0,
232, 226, 244, 245, 221, 248, 249, 250,
251, 245, 0, 252, 229, 249, 250, 251,
253, 0, 0, 188, 254, 260, 239, 269,
269, 242, 191, 191, 270, 246, 272, 272,
229, 273, 274, 275, 276, 0, 255, 266,
266, 258, 267, 267, 261, 266, 266, 264,
267, 267, 232, 268, 232, 0, 277, 0,
278, 232, 273, 232, 282, 283, 279, 285,
253, 0, 0, 286, 0, 232, 0, 288,
0, 290, 0, 292, 294, 0, 0, 297,
0, 0, 299, 301, 0, 303, 0, 305,
0, 307, 0, 0, 310, 313, 314, 315,
0, 0, 316, 311, 314, 0, 332, 332,
328, 349, 350, 351, 351, 351, 351, 330,
282, 352, 358, 0, 333, 341, 347, 359,
360, 361, 362, 363, 0, 342, 343, 345,
0, 346, 0, 269, 269, 0, 0, 366,
353, 371, 372, 373, 374, 0, 375, 376,
377, 383, 384, 364, 385, 385, 367, 269,
269, 269, 269, 389, 390, 391, 392, 393,
0, 378, 360, 361, 362, 341, 0, 379,
380, 386, 363, 341, 0, 353, 354, 355,
375, 395, 0, 396, 0, 400, 269, 269,
401, 0, 411, 411, 406, 417, 407, 418,
419, 420, 0, 412, 418, 419, 420, 421,
0, 409, 406, 424, 417, 422, 425, 425,
408, 415, 427, 430, 431, 0, 426, 432,
428, 434, 436, 0, 433, 269, 269, 441,
442, 282, 443, 0, 446, 451, 447, 446,
452, 451, 0, 449, 448, 454, 453, 457,
0, 455, 459, 458, 0, 269, 464, 465,
282, 466, 0, 469, 469, 470, 471, 472,
473, 474, 475, 476, 477, 0, 479, 269,
481, 0, 483, 485, 485, 205, 490, 488,
496, 497, 491, 494, 490, 0, 491, 491,
0, 498, 499, 501, 0, 0, 504, 506,
510, 499, 508, 0, 506, 506, 504, 512,
513, 514, 515, 0, 517, 518, 519, 520,
0, 522, 523, 524, 525, 522, 0, 528,
529, 531, 536, 532, 534, 0, 532, 0,
537, 538, 539, 541, 542, 542, 0, 544,
546, 0, 547, 548, 549, 533, 551, 553,
558, 554, 556, 0, 554, 0, 559, 560,
557, 0, 563, 205, 0, 566, 564, 568,
565, 570, 567, 572, 569, 574, 571, 576,
575, 0, 579, 580, 592, 593, 584, 205,
585, 588, 588, 588, 590, 205, 594, 594,
595, 596, 597, 581, 600, 598, 601, 0,
205, 205, 205, 606, 606, 607, 608, 609,
605, 610, 612, 0, 193, 193, 193, 193,
193, 193, 193, 193, 0, 623, 623, 192,
626, 626, 0, 626, 626, 631, 633, 282,
282, 634, 282, 282, 637, 638, 639, 0,
650, 677, 684, 666, 655, 205, 205, 205,
205, 650, 659, 668, 685, 666, 0, 662,
686, 666, 662, 668, 685, 0, 670, 674,
689, 666, 205, 0, 205, 0, 674, 689,
205, 0, 666, 205, 0, 680, 692, 680,
659, 668, 685, 0, 650, 687, 662, 688,
205, 690, 691, 666, 680, 697, 697, 697,
697, 698, 699, 700, 0, 703, 703, 704,
706, 707, 708, 708, 700, 711, 711, 712,
713, 719, 719, 719, 719, 719, 719, 0,
// 0(max grammar-774)
// C statics are set to 0 anyway...
};
#define glink(n) sex16(glink_[n])
#define setglink(n) glink_[n]
#define maxkdict 618
static const short int kdict_[maxkdict-32+1] = {
0, 511, 131, 531, 131, 551, 559, 131,
567, 575, 583, 603, 623, 631, 663, 671,
129, 129, 129, 129, 129, 129, 129, 129,
129, 129, 691, 698, 707, 751, 795, 131,
131, 824, 900, 960, 1076, 1120, 1280, 128,
128, 1392, 128, 128, 1460, 1600, 1636, 1704,
1792, 128, 1872, 2088, 2284, 2316, 128, 2356,
128, 128, 128, 2375, 2383, 2415, 2423, 2443,
131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 2451, 131, 2423, -32351,
16428, 25, 16428, 29, -32349, 16433, 1, 16434,
1, -16127, 0, 16427, 21, 16407, 0, 16409,
0, -32323, -10840, 40, 16471, 0, -32341, -10580,
32, 16473, 117, 16384, 19, -31955, -32322, -10580,
36, -9290, 0, 16473, 113, 16432, 13, -32337,
16427, 46, 16427, 17, 16405, 0, 16404, 0,
-31556, -31939, -32322, -9551, 2, 16433, 1, 16433,
5, 16426, 5, -31606, -32323, -9807, 0, -32374,
-9678, 0, 16436, 0, 16435, 0, -31939, -32322,
16433, 4, 16426, 9, 16433, 3, -30772, -31666,
10578, 11457, -32344, 16413, 2, 16411, 2, 68,
-32374, 16440, 0, 16440, 0, 8393, 83, 16408,
0, -31291, 10841, 69, -32311, 16412, 18, 10830,
9157, 10565, 16412, 18, 9415, 78, 16458, 0,
-32049, 8665, 8908, 16455, 0, -30131, 78, -31277,
84, -32055, 10194, 76, 16469, 0, 10958, 69,
16447, 32, 84, -32319, 16418, 2, 10830, 16418,
2, 8909, 10830, 16406, 0, -31927, 10073, 9921,
8649, 16419, 5, 9153, 10190, 8915, 16469, 1,
-27956, -31282, 88, -31927, 8916, 10066, 9793, 16419,
3, 84, 16447, 4, 68, -32305, 16459, 2,
70, -30650, -31284, 80, -31931, 10194, 10567, 9921,
16460, 1, 9938, 16461, 0, 10697, 84, 16467,
3, 9801, 69, 16460, 0, 8915, 16452, 0,
-29631, -30903, -31282, -31793, 10069, 10819, 10185, 78,
16416, 9, 82, 16445, 0, 16416, 9, 9422,
9299, -32315, 16453, 0, 10700, 69, 16454, 0,
10700, 69, 16464, 1210, -30778, 78, -31549, 8916,
8903, 82, -32344, 16412, 17, 16472, 17, 10956,
8900, 16470, 0, 16446, 44, -28735, -29239, 10063,
71, -30263, -31668, -32302, 16412, 20, 8389, 76,
16412, 36, 10063, 71, -32311, 16412, 21, 10830,
9157, 10565, 16412, 21, 10830, 9157, 10565, 16412,
20, 10835, 16467, 1, 8898, 76, 16425, 6,
-31935, 10063, 10825, 10575, 16465, 109, 80, 16416,
10, -32191, 10831, 16442, 0, 8909, -32314, 16414,
1, -31794, 10069, 10819, 10185, 78, 16416, 10,
16416, 10, -30770, -31408, -32174, 10071, 16418, 1,
-32374, 16441, 2, 16441, 2, 9428, 10063, 16402,
0, -32315, 16448, 0, 8918, 10830, 16448, 0,
-30523, 82, -31419, -31927, 9167, 8402, 77, 16457,
0, 77, 16419, 6, 9412, 8387, 8916, 16415,
123, 9938, 16419, 7, -31931, 10959, 9428, 8910,
16415, 104, -28351, -30397, -31024, -32045, 10964, 10066,
16464, 1319, 9813, 7892, -32323, 16462, 1384, 16463,
1241, 8389, 84, 16456, 0, 10575, 68, -32314,
16421, 64, 10575, 8397, 84, -32301, 16422, 9,
8912, 67, 16422, 12, 76, -32301, 16412, 33,
-31924, 10190, 9938, 9793, 16468, 1, 10063, 71,
16468, 4, -27704, -28983, -29488, -31276, -31913, 10713,
8916, 77, 16419, 4, 10825, 9283, 16417, 12,
-31423, -31921, 9426, 9166, 40, 16420, 48, 80,
16466, 115, 10834, 16451, 0, 8645, 16423, 0,
10055, 9793, -32315, 16449, 0, 8918, 10830, 16449,
0, 10575, 84, -32311, 16412, 19, 10830, 9157,
10565, 16412, 19, -32056, 10962, 69, 16464, 1354,
10053, 16450, 0, 78, -32052, 9428, 76, 16444,
182, 10693, 83, 16446, 46, 9416, 8908, 16443,
180, 16407, 0, -31939, -32292, -10454, 51, 16426,
13, 16433, 1, 16409, 0, -32290, -10454, 51,
16426, 13, 16410, 0, 16431, 14, -32323, 16430,
51, 16433, 1
};
#define kdict(n) sex16(kdict_[(n)-32])