endoflist
conststring(8)array text(0:255) = c
"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"

constinteger gmax1=719
owninteger gmax=719
constinteger imp phrase =25

!  FLAG<1> 0<1> SS<2> 0<3> T<1> LINK<8>
constshortintegerarray initial(0:119) = c
     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

constbyteintegerarray atomic(130:179) = c
 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,  0,  0,
  0,  0

ownshortintegerarray phrase(200:255) = C
  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

!  MORE<1> 0<1> ORDER<2> TYPE<4> CLASS<8>
ownshortintegerarray gram(0:max grammar) = c
      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-gmax1)

ownshortintegerarray glink(0:max grammar) = c
     -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-gmax1)

constshortinteger max kdict = 618
constshortintegerarray kdict(32:max kdict) = c
      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,   2459, -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
   list
endoffile