Annotation of 3BSD/cmd/f77/gram.c, revision 1.1

1.1     ! root        1: # define SEOS 1
        !             2: # define SCOMMENT 2
        !             3: # define SLABEL 3
        !             4: # define SUNKNOWN 4
        !             5: # define SHOLLERITH 5
        !             6: # define SICON 6
        !             7: # define SRCON 7
        !             8: # define SDCON 8
        !             9: # define SBITCON 9
        !            10: # define SOCTCON 10
        !            11: # define SHEXCON 11
        !            12: # define STRUE 12
        !            13: # define SFALSE 13
        !            14: # define SNAME 14
        !            15: # define SNAMEEQ 15
        !            16: # define SFIELD 16
        !            17: # define SSCALE 17
        !            18: # define SINCLUDE 18
        !            19: # define SLET 19
        !            20: # define SASSIGN 20
        !            21: # define SAUTOMATIC 21
        !            22: # define SBACKSPACE 22
        !            23: # define SBLOCK 23
        !            24: # define SCALL 24
        !            25: # define SCHARACTER 25
        !            26: # define SCLOSE 26
        !            27: # define SCOMMON 27
        !            28: # define SCOMPLEX 28
        !            29: # define SCONTINUE 29
        !            30: # define SDATA 30
        !            31: # define SDCOMPLEX 31
        !            32: # define SDIMENSION 32
        !            33: # define SDO 33
        !            34: # define SDOUBLE 34
        !            35: # define SELSE 35
        !            36: # define SELSEIF 36
        !            37: # define SEND 37
        !            38: # define SENDFILE 38
        !            39: # define SENDIF 39
        !            40: # define SENTRY 40
        !            41: # define SEQUIV 41
        !            42: # define SEXTERNAL 42
        !            43: # define SFORMAT 43
        !            44: # define SFUNCTION 44
        !            45: # define SGOTO 45
        !            46: # define SASGOTO 46
        !            47: # define SCOMPGOTO 47
        !            48: # define SARITHIF 48
        !            49: # define SLOGIF 49
        !            50: # define SIMPLICIT 50
        !            51: # define SINQUIRE 51
        !            52: # define SINTEGER 52
        !            53: # define SINTRINSIC 53
        !            54: # define SLOGICAL 54
        !            55: # define SOPEN 55
        !            56: # define SPARAM 56
        !            57: # define SPAUSE 57
        !            58: # define SPRINT 58
        !            59: # define SPROGRAM 59
        !            60: # define SPUNCH 60
        !            61: # define SREAD 61
        !            62: # define SREAL 62
        !            63: # define SRETURN 63
        !            64: # define SREWIND 64
        !            65: # define SSAVE 65
        !            66: # define SSTATIC 66
        !            67: # define SSTOP 67
        !            68: # define SSUBROUTINE 68
        !            69: # define STHEN 69
        !            70: # define STO 70
        !            71: # define SUNDEFINED 71
        !            72: # define SWRITE 72
        !            73: # define SLPAR 73
        !            74: # define SRPAR 74
        !            75: # define SEQUALS 75
        !            76: # define SCOLON 76
        !            77: # define SCOMMA 77
        !            78: # define SCURRENCY 78
        !            79: # define SPLUS 79
        !            80: # define SMINUS 80
        !            81: # define SSTAR 81
        !            82: # define SSLASH 82
        !            83: # define SPOWER 83
        !            84: # define SCONCAT 84
        !            85: # define SAND 85
        !            86: # define SOR 86
        !            87: # define SNEQV 87
        !            88: # define SEQV 88
        !            89: # define SNOT 89
        !            90: # define SEQ 90
        !            91: # define SLT 91
        !            92: # define SGT 92
        !            93: # define SLE 93
        !            94: # define SGE 94
        !            95: # define SNE 95
        !            96: 
        !            97: # line 97 "gram.in"
        !            98: #      include "defs"
        !            99: 
        !           100: #ifdef SDB
        !           101: #      include <a.out.h>
        !           102: char *stabline();
        !           103: #      ifdef UCBVAXASM
        !           104:                char *stabdline();
        !           105: #      endif
        !           106: #endif
        !           107: 
        !           108: static int nstars;
        !           109: static int ndim;
        !           110: static int vartype;
        !           111: static ftnint varleng;
        !           112: static struct { ptr lb, ub; } dims[MAXDIM+1];
        !           113: static struct Labelblock *labarray[MAXLABLIST];
        !           114: static int lastwasbranch = NO;
        !           115: static int thiswasbranch = NO;
        !           116: extern ftnint yystno;
        !           117: 
        !           118: ftnint convci();
        !           119: double convcd();
        !           120: struct Addrblock *nextdata(), *mkbitcon();
        !           121: struct Constblock *mklogcon(), *mkaddcon(), *mkrealcon();
        !           122: struct Constblock *mkstrcon(), *mkcxcon();
        !           123: struct Listblock *mklist();
        !           124: struct Listblock *mklist();
        !           125: struct Impldoblock *mkiodo();
        !           126: struct Extsym *comblock();
        !           127: 
        !           128: #define yyclearin yychar = -1
        !           129: #define yyerrok yyerrflag = 0
        !           130: extern int yychar;
        !           131: extern short yyerrflag;
        !           132: #ifndef YYMAXDEPTH
        !           133: #define YYMAXDEPTH 150
        !           134: #endif
        !           135: #ifndef YYSTYPE
        !           136: #define YYSTYPE int
        !           137: #endif
        !           138: YYSTYPE yylval, yyval;
        !           139: # define YYERRCODE 256
        !           140: short yyexca[] ={
        !           141: -1, 1,
        !           142:        0, -1,
        !           143:        -2, 0,
        !           144: -1, 20,
        !           145:        1, 31,
        !           146:        -2, 205,
        !           147: -1, 24,
        !           148:        1, 35,
        !           149:        -2, 205,
        !           150: -1, 144,
        !           151:        1, 219,
        !           152:        -2, 170,
        !           153: -1, 162,
        !           154:        1, 238,
        !           155:        77, 238,
        !           156:        -2, 170,
        !           157: -1, 219,
        !           158:        76, 156,
        !           159:        -2, 123,
        !           160: -1, 233,
        !           161:        73, 205,
        !           162:        -2, 202,
        !           163: -1, 258,
        !           164:        1, 257,
        !           165:        -2, 127,
        !           166: -1, 262,
        !           167:        1, 266,
        !           168:        77, 266,
        !           169:        -2, 129,
        !           170: -1, 324,
        !           171:        76, 157,
        !           172:        -2, 125,
        !           173: -1, 335,
        !           174:        1, 240,
        !           175:        14, 240,
        !           176:        73, 240,
        !           177:        77, 240,
        !           178:        -2, 171,
        !           179: -1, 386,
        !           180:        90, 0,
        !           181:        91, 0,
        !           182:        92, 0,
        !           183:        93, 0,
        !           184:        94, 0,
        !           185:        95, 0,
        !           186:        -2, 137,
        !           187: -1, 410,
        !           188:        1, 260,
        !           189:        77, 260,
        !           190:        -2, 127,
        !           191: -1, 412,
        !           192:        1, 262,
        !           193:        77, 262,
        !           194:        -2, 127,
        !           195: -1, 414,
        !           196:        1, 264,
        !           197:        77, 264,
        !           198:        -2, 127,
        !           199: -1, 461,
        !           200:        77, 260,
        !           201:        -2, 127,
        !           202:        };
        !           203: # define YYNPROD 271
        !           204: # define YYLAST 1253
        !           205: short yyact[]={
        !           206: 
        !           207:  209, 334, 228, 432, 431, 430, 333, 424, 375, 423,
        !           208:  259, 253, 374, 240, 294, 280, 265, 260, 224, 277,
        !           209:  182, 190, 178, 296, 110, 189,   5,  17, 115,  96,
        !           210:  172, 200, 251, 193, 257, 114, 188, 113, 302, 186,
        !           211:  429, 247, 122, 171, 112, 428, 100, 292, 100,  98,
        !           212:  102, 300, 301, 302, 107, 152, 153, 154, 155, 245,
        !           213:  246, 247, 150, 151, 100, 124, 125, 126, 127, 468,
        !           214:  129, 287, 261, 149, 466, 149, 286, 156, 157, 300,
        !           215:  301, 302, 308, 307, 306, 305, 304, 123, 309, 311,
        !           216:  310, 313, 312, 314, 206, 446, 492, 156, 157, 300,
        !           217:  301, 302, 308, 307, 306, 305, 304, 208, 309, 311,
        !           218:  310, 313, 312, 314, 114, 279, 113,  91, 199, 152,
        !           219:  153, 154, 155, 227, 174, 175, 150, 151, 100, 156,
        !           220:  157, 426,  92,  93,  94, 478, 173,  95, 403, 210,
        !           221:  230, 232, 100, 477, 473, 211, 149, 181, 407, 244,
        !           222:  149, 489, 100, 156, 157, 245, 246, 247, 248, 444,
        !           223:  149,  97, 445, 217, 220, 216, 148, 215, 346, 212,
        !           224:   97, 149, 418, 156, 157, 245, 246, 247, 248, 417,
        !           225:  147, 416, 147, 347, 266, 267, 268, 227, 222, 421,
        !           226:  143, 380, 422, 156, 157, 226, 203, 271, 272, 283,
        !           227:  264, 255, 409, 210, 299, 252, 274, 273, 225, 229,
        !           228:  229, 282, 275, 176, 404, 493, 397, 403, 288, 279,
        !           229:  394, 291, 322, 290, 377, 372, 299, 378, 330, 367,
        !           230:  299, 361, 368, 320, 362, 336, 328, 244, 337, 329,
        !           231:  149, 353, 352, 351, 256, 149, 149, 149, 149, 149,
        !           232:  244, 244, 196, 147, 205, 165, 108, 147, 106, 262,
        !           233:  262, 105, 299, 332, 158, 160, 164, 147, 104, 103,
        !           234:  244, 101, 395, 379, 355, 298, 218, 316, 147,   4,
        !           235:  483, 356, 318, 319, 482, 348, 357, 358, 349, 350,
        !           236:  360, 321, 324, 219, 327, 380, 359, 481, 474, 299,
        !           237:  316, 480, 475, 366, 331, 470, 396, 392, 454, 371,
        !           238:  402, 281, 236, 179, 289, 339, 249, 299, 234, 299,
        !           239:  299, 231, 299, 363, 238, 299, 250, 221, 299, 219,
        !           240:  187, 202, 299, 198, 159, 135, 316, 269, 149, 244,
        !           241:  299, 100, 244, 244, 244, 244, 244, 147, 400, 100,
        !           242:  326, 405, 147, 147, 147, 147, 147, 451, 262, 408,
        !           243:  335, 376, 411, 413, 415, 156, 157, 245, 246, 247,
        !           244:  248, 433, 382, 383, 384, 385, 386, 387, 388, 389,
        !           245:  390, 391, 420, 299, 299, 299, 299, 299, 299, 299,
        !           246:  299, 299, 299, 447, 371, 201, 442, 144, 453, 162,
        !           247:  255, 456, 225, 419, 131, 458, 338, 244, 192, 457,
        !           248:  100, 341, 342, 343, 344, 345, 197,  89,  29, 258,
        !           249:  258, 408,   6,  99, 242, 237, 299, 411, 413, 415,
        !           250:  433, 111, 465, 460, 459, 467,  78, 469, 425,  77,
        !           251:  462, 463, 464,  76,  75, 147, 262, 262, 262, 299,
        !           252:  117, 299, 448, 450, 161, 472, 299, 476, 471, 317,
        !           253:  156, 157, 300, 301, 302, 434,  74,  73, 229, 433,
        !           254:  455,  72, 487, 486, 484,  57,  50, 223, 437, 490,
        !           255:  299,  48, 317,  46,  45,  42, 299, 449,  31, 299,
        !           256:  303, 325, 491, 323, 494, 425,  99,  99,  99,  99,
        !           257:  195, 177, 373, 194, 406, 365, 180, 207, 183, 184,
        !           258:  185, 262, 262, 262, 364, 435, 370, 369, 354, 156,
        !           259:  157, 245, 246, 247, 434, 128, 284, 229,  52, 183,
        !           260:  213, 214, 479,  35, 293, 109,  25, 437,  24, 485,
        !           261:   23, 437,  22,  21,  20, 233, 488, 235,  19, 276,
        !           262:  130,  88,   9, 156, 157, 300, 301, 302, 308, 307,
        !           263:  306,   8, 229, 434, 309, 311, 310, 313, 312, 314,
        !           264:  152, 153, 154, 155,   7,   3, 437, 150, 151, 100,
        !           265:  146,  99, 146,   2, 278,   1,   0,   0,   0,   0,
        !           266:  152, 153, 154, 155,   0,   0,   0, 150, 151, 100,
        !           267:    0, 111,   0, 295, 297,   0, 410, 412, 414,   0,
        !           268:    0,   0,   0, 401,   0, 191,   0, 183, 156, 157,
        !           269:  300, 301, 302, 308, 307, 306, 305, 304,   0, 309,
        !           270:  311, 310, 313, 312, 314,   0, 191,   0, 227,   0,
        !           271:    0,   0,   0,   0, 156, 157, 226,   0,   0, 452,
        !           272:    0,   0,   0, 146, 210,   0,   0, 146, 227,   0,
        !           273:    0,   0,   0,   0, 156, 157, 340, 146, 254,   0,
        !           274:    0, 461, 412, 414, 210,   0,   0,   0, 146,   0,
        !           275:    0,   0,   0, 152, 153, 154, 155, 183,   0,   0,
        !           276:  150, 151, 100, 317,   0, 285, 399,   0,   0,   0,
        !           277:  191, 156, 157, 300, 301, 302, 308, 307, 306, 305,
        !           278:  304,   0, 309, 311, 310, 313, 312, 314,   0,   0,
        !           279:    0, 156, 157, 300, 301, 302, 308, 307,   0,   0,
        !           280:    0, 398, 309, 311, 310, 313, 312, 314, 156, 157,
        !           281:  245, 246, 247, 248,   0,   0,   0, 146,   0,   0,
        !           282:    0, 239, 146, 146, 146, 146, 146, 156, 157, 270,
        !           283:  254,   0,   0, 254, 254,   0,   0, 278, 156, 157,
        !           284:  300, 301, 302, 308,   0, 436,   0, 443,   0,   0,
        !           285:  393,   0,   0, 295,   0, 156, 157, 300, 301, 302,
        !           286:  308, 307, 306, 305, 304, 191, 309, 311, 310, 313,
        !           287:  312, 314,   0,   0, 156, 157, 300, 301, 302, 308,
        !           288:    0,   0,   0,   0, 443, 309, 311, 310, 313, 312,
        !           289:  314, 443, 443, 443, 152, 153, 154, 155,   0,   0,
        !           290:    0, 150, 151, 100, 436,   0,   0,   0, 436, 152,
        !           291:  153, 154, 155,   0,   0, 146, 150, 151, 100, 243,
        !           292:    0, 381,   0,   0,   0, 254, 156, 157, 300, 301,
        !           293:  302, 308, 307, 306, 305, 304,   0, 309, 311, 310,
        !           294:  313, 312, 314, 436,   0,   0, 427,   0,   0,   0,
        !           295:  191, 152, 153, 154, 155,   0,   0,   0, 150, 151,
        !           296:  100,   0, 227,   0,   0,   0,   0,   0, 156, 157,
        !           297:  315,   0,   0,   0,  12,   0,   0, 239, 210,   0,
        !           298:    0,   0,   0, 156, 157, 241,   0, 254,  10,  53,
        !           299:   43,  70,  82,  14,  58,  67,  87,  36,  63,  44,
        !           300:   40,  65,  69,  30,  64,  33,  32,  11,  84,  34,
        !           301:   18,  39,  37,  27,  16,  54,  55,  56,  47,  51,
        !           302:   41,  85,  61,  38,  66,  86,  28,  59,  81,  13,
        !           303:   90,  79,  62,  49,  83,  26,  71,  60,  15,   0,
        !           304:    0,  68,  80,   0,   0, 152, 153, 154, 155,   0,
        !           305:    0,   0, 150, 151, 100,   0,   0,   0,   0,   0,
        !           306:    0, 116,   0, 119, 120, 121,   0,   0,   0,   0,
        !           307:    0,   0,   0,   0, 132, 133,   0,   0, 134,   0,
        !           308:  136, 137, 138,   0,   0, 139, 140, 141,   0, 142,
        !           309:  152, 153, 154, 155,   0,   0,   0, 150, 151, 100,
        !           310:    0,   0,   0,   0,   0,   0,   0,   0, 166, 167,
        !           311:  168, 169, 170, 227, 152, 153, 154, 155,   0, 156,
        !           312:  157, 150, 151, 100,   0,   0,   0,   0,   0, 210,
        !           313:    0, 152, 153, 154, 155, 441, 440, 439, 150, 151,
        !           314:  100,   0,   0,   0,   0,   0, 152, 153, 154, 155,
        !           315:    0,   0,   0, 150, 151, 100,   0,   0, 263,   0,
        !           316:    0,   0,   0,   0, 156, 157,   0,   0,   0,   0,
        !           317:    0,   0,   0,   0, 210,   0,   0, 152, 153, 154,
        !           318:  155,   0, 204,   0, 150, 151, 100,   0, 156, 157,
        !           319:   53,  43,   0,  82,   0,  58,   0,  87, 210, 438,
        !           320:   44,   0,   0,   0,   0, 156, 157,   0,   0,  84,
        !           321:    0,   0,   0,   0, 239,   0,  54,  55,  56,  47,
        !           322:  156, 157,  85,   0,   0,   0,  86,   0,  59,  81,
        !           323:    0,   0,  79,   0,  49,  83,   0,   0,  60,   0,
        !           324:  118,   0,   0,  80,   0, 145,   0, 152, 153, 154,
        !           325:  155, 156, 157, 163, 150, 151, 100,  70,   0,   0,
        !           326:    0,  67,   0,   0,  63,   0,   0,  65,  69,   0,
        !           327:   64,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        !           328:    0,   0,   0,   0,   0,   0,   0,   0,  61,   0,
        !           329:   66,   0,   0,   0,   0,   0,   0,   0,  62,   0,
        !           330:    0,   0,  71,   0,   0,   0,   0,  68,   0,   0,
        !           331:    0,   0,   0,   0,   0, 145,   0,   0,   0,   0,
        !           332:    0, 156, 157 };
        !           333: short yypact[]={
        !           334: 
        !           335: -1000,  23, 421, 900,-1000,-1000,-1000,-1000,-1000,-1000,
        !           336:  412,-1000,-1000,-1000,-1000,-1000,-1000,  93, 396, 194,
        !           337:  192, 191, 184, 181,  84, 179,  32,-1000,-1000,-1000,
        !           338: -1000,1101,-1000,-1000,-1000,   6,-1000,-1000,-1000,-1000,
        !           339: -1000,-1000, 396,-1000,-1000,-1000,-1000,-1000, 262,-1000,
        !           340: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
        !           341: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
        !           342: -1000,-1000,1172, 261,1102, 261, 178,-1000,-1000,-1000,
        !           343: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
        !           344: -1000, 396, 396, 396, 396,-1000, 396,-1000, 240,-1000,
        !           345: -1000, 396, -47, 396, 396, 396, 257, 335,-1000, 175,
        !           346: -1000,-1000,-1000,-1000, 402, 260, 389,-1000,-1000, 258,
        !           347: -1000,-1000,-1000,1039,  32, 396, 396, 257, 335,-1000,
        !           348:  201, 256, 389,-1000, 254, 114, 970, 970, 248, 389,
        !           349:  396, 245, 396,-1000,-1000, 834,-1000,-1000, 659,1071,
        !           350: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 834,
        !           351:  128, 167,-1000,-1000,1015,1015,-1000,-1000,-1000,-1000,
        !           352:  678,-1000,-1000,-1000, 240, 240, 396,-1000,-1000, 138,
        !           353:  238,  84,-1000, 238,-1000,-1000,-1000, 396,-1000,  -6,
        !           354: -1000,-1000, 335,-1000, 241,1166,  32, -35, 396, 396,
        !           355: -1000,-1000, 970,  18, 819,-1000,-1000,-1000,-1000, 970,
        !           356:  970,-1000, 396,-1000,-1000,-1000,-1000,-1000, 970, 970,
        !           357:  280, 970,-1000, 162,-1000,  18, 389, 970,-1000,  18,
        !           358: -1000, 970,-1000,  84, 389,-1000, 286, 161,-1000,1071,
        !           359: -1000,-1000, 585,-1000,1071,1071,1071,1071,1071, -42,
        !           360:   94, 106, 327,-1000,-1000, 327, 327,-1000, 166, 165,
        !           361:  164,  18,-1000,1015,-1000,-1000,-1000,-1000,-1000, 659,
        !           362: -1000,-1000,-1000, 240, 238,-1000, 157,-1000,-1000,-1000,
        !           363:    6,-1000, 396,-1000, 155,-1000,-1000, 335, 148, 347,
        !           364: -1000,-1000,-1000, 150,-1000, 198,-1000, 116, 777, 970,
        !           365:  970, 970, 970, 970, 970, 970, 970, 970, 970,-1000,
        !           366: -1000,-1000,-1000,-1000,-1000, 233, 706, 143, -45, 725,
        !           367: -1000,  18, 196, 232,  18, 139, 396, 622,-1000, 565,
        !           368: -1000, 539, 237, 140,-1000,-1000,-1000, 834,  74,  18,
        !           369: -1000, -22, -42, -42, -42, 440,-1000, 327, 106, 125,
        !           370:  106,1015,1015,1015, 104, 102,  95,-1000,-1000,-1000,
        !           371:    6,-1000,  34,-1000, 115,  50,-1000,-1000, 396, -37,
        !           372: 1056,-1000, 335,  85,-1000,  15,-1000,-1000, 396, 970,
        !           373:  970, 288, -30, -45, -45, -45, 689, 474, 474, 642,
        !           374:  725, 381,-1000,-1000, 970, 970, 235, 970,-1000, 389,
        !           375: -1000,-1000, 389, 389,  84,-1000, 659,-1000,-1000, 327,
        !           376: -1000,-1000,-1000,-1000,-1000,-1000,1015,1015,1015,-1000,
        !           377: -1000,-1000,  50,-1000,-1000,  -2,-1000,-1000,-1000,1056,
        !           378: -1000,-1000, -12, 876,-1000,-1000,-1000,-1000, 970,-1000,
        !           379: -1000,-1000, 231, 220,-1000, 347, 347,-1000,  18,  67,
        !           380:   18,-1000, 224, 228, 970,  18,  66,  61,-1000, 970,
        !           381:  227, 224, 223, 210, 206,-1000,  50,-1000,1056,-1000,
        !           382: -1000,-1000,-1000, 970,-1000,-1000,  75, 389,-1000,  18,
        !           383: -1000,-1000,-1000,-1000,-1000,  18,-1000,-1000,  18, 970,
        !           384:   19, 141, 389,-1000,-1000 };
        !           385: short yypgo[]={
        !           386: 
        !           387:    0, 585, 583, 575, 574, 561, 552, 551, 960, 117,
        !           388:   43,  30,  22,  27, 404, 549,  19, 548, 544, 543,
        !           389:  542, 540, 538, 536, 535,  28, 534,  29,  15,  42,
        !           390:  533, 528,  72,  20,  44,  39, 526, 507, 525,  36,
        !           391:   25, 517, 516,   5,   4,   3,   0,  94, 515,  24,
        !           392:   14,  21,  23, 514, 505,   9,   7,   6,   1,  31,
        !           393:   33, 503, 502, 500,  12,   8, 493, 491, 254, 107,
        !           394:  490,   2, 166, 324, 418, 488, 487, 485, 484, 483,
        !           395:  481, 477, 476,  18, 475, 471, 190, 467, 466, 454,
        !           396:   32, 444,  34, 443, 439,  16, 436, 425,  13, 424,
        !           397:   11,  10,  17 };
        !           398: short yyr1[]={
        !           399: 
        !           400:    0,   1,   1,   2,   2,   2,   2,   2,   2,   2,
        !           401:    3,   4,   4,   4,   4,   4,   4,   9,  11,  14,
        !           402:   10,  10,  12,  12,  12,  15,  15,  16,  16,   7,
        !           403:    5,   5,   5,   5,   5,   5,   5,   5,   5,   5,
        !           404:    5,  17,  17,  13,  30,  31,  31,  31,  31,  31,
        !           405:   31,  31,  31,  31,  31,  31,  29,  29,  29,  18,
        !           406:   18,  18,  18,  34,  34,  19,  19,  20,  20,  21,
        !           407:   21,  35,  36,  36,  22,  22,  38,  39,  42,  41,
        !           408:   41,  43,  43,  44,  44,  44,  44,  24,  24,  49,
        !           409:   49,  26,  26,  50,  33,  51,  51,  40,  40,  28,
        !           410:   28,  54,  53,  53,  55,  55,  56,  56,  57,  57,
        !           411:   58,  59,  23,  23,  60,  63,  61,  62,  62,  64,
        !           412:   64,  65,  25,  66,  66,  67,  67,  32,  32,  32,
        !           413:   68,  68,  68,  68,  68,  68,  68,  68,  68,  68,
        !           414:   68,  68,  68,  68,  46,  46,  70,  70,  70,  70,
        !           415:   70,  70,  37,  37,  37,  37,  71,  71,  45,  45,
        !           416:   69,  69,  69,  69,  69,  69,  47,  48,  48,  48,
        !           417:   72,  72,  73,  73,  73,  73,  73,  73,  73,  73,
        !           418:    6,   6,   6,   6,   6,   6,   6,  75,  52,  74,
        !           419:   74,  74,  74,  74,  74,  74,  74,  74,  74,  74,
        !           420:   77,  78,  78,  78,  78,  27,  27,  80,  81,  81,
        !           421:   83,  83,  82,  82,  76,  76,   8,  79,  84,  84,
        !           422:   84,  84,  84,  84,  84,  84,  84,  84,  84,  84,
        !           423:   85,  94,  94,  94,  87,  96,  96,  96,  89,  89,
        !           424:   86,  86,  97,  97,  98,  98,  98,  98,  99,  88,
        !           425:   91,  93,  93,  90,  90, 100, 100,  92,  92,  92,
        !           426:  102, 102, 102, 102, 102, 102, 101, 101, 101, 101,
        !           427:   95 };
        !           428: short yyr2[]={
        !           429: 
        !           430:    0,   0,   3,   2,   2,   2,   3,   3,   2,   1,
        !           431:    1,   3,   3,   4,   4,   5,   3,   0,   1,   1,
        !           432:    0,   1,   0,   2,   3,   1,   3,   1,   1,   1,
        !           433:    1,   1,   1,   1,   1,   1,   1,   1,   2,   1,
        !           434:    5,   6,   5,   2,   1,   1,   1,   1,   1,   1,
        !           435:    1,   1,   1,   1,   1,   1,   0,   2,   4,   3,
        !           436:    4,   5,   3,   1,   3,   3,   3,   3,   3,   3,
        !           437:    3,   3,   1,   3,   3,   3,   0,   4,   0,   2,
        !           438:    3,   1,   3,   1,   2,   1,   1,   1,   3,   1,
        !           439:    1,   1,   3,   3,   2,   1,   5,   1,   3,   0,
        !           440:    3,   0,   2,   3,   1,   3,   1,   1,   1,   3,
        !           441:    1,   1,   3,   3,   4,   0,   2,   1,   3,   1,
        !           442:    3,   1,   0,   0,   1,   1,   3,   1,   3,   1,
        !           443:    1,   1,   3,   3,   3,   3,   2,   3,   3,   3,
        !           444:    3,   3,   2,   3,   1,   1,   1,   1,   1,   1,
        !           445:    1,   1,   1,   6,   4,   9,   0,   1,   1,   1,
        !           446:    1,   1,   1,   1,   1,   1,   5,   1,   1,   1,
        !           447:    1,   3,   1,   1,   3,   3,   3,   3,   2,   3,
        !           448:    1,   4,   2,   2,   6,   2,   2,   5,   3,   4,
        !           449:    5,   2,   1,   1,  10,   1,   3,   4,   3,   3,
        !           450:    1,   3,   3,   7,   7,   0,   1,   3,   1,   3,
        !           451:    1,   2,   1,   1,   1,   3,   0,   1,   2,   2,
        !           452:    2,   2,   2,   3,   4,   4,   2,   3,   1,   3,
        !           453:    3,   1,   1,   1,   3,   1,   1,   1,   1,   1,
        !           454:    3,   3,   1,   3,   1,   1,   2,   2,   1,   3,
        !           455:    3,   4,   4,   1,   3,   1,   5,   1,   1,   1,
        !           456:    3,   3,   3,   3,   3,   3,   1,   5,   5,   5,
        !           457:    0 };
        !           458: short yychk[]={
        !           459: 
        !           460: -1000,  -1,  -2,  -3, 256,   3,   1,  -4,  -5,  -6,
        !           461:   18,  37,   4,  59,  23,  68,  44, -13,  40, -17,
        !           462:  -18, -19, -20, -21, -22, -23,  65,  43,  56, -74,
        !           463:   33, -75,  36,  35,  39, -30,  27,  42,  53,  41,
        !           464:   30,  50, -77,  20,  29, -78, -79,  48, -80,  63,
        !           465:  -82,  49, -31,  19,  45,  46,  47, -84,  24,  57,
        !           466:   67,  52,  62,  28,  34,  31,  54,  25,  71,  32,
        !           467:   21,  66, -85, -87, -88, -91, -93, -94, -96,  61,
        !           468:   72,  58,  22,  64,  38,  51,  55,  26,  -7,   5,
        !           469:   -8,  -9,  -9,  -9,  -9,  44, -27,  77, -11, -14,
        !           470:   14,  77, -27,  77,  77,  77,  77, -27,  77, -24,
        !           471:  -49, -14, -34,  84,  82, -25,  -8, -74,  69,  -8,
        !           472:   -8,  -8, -29,  81, -25, -25, -25, -25, -38, -25,
        !           473:  -37, -14,  -8,  -8,  -8,  73,  -8,  -8,  -8,  -8,
        !           474:   -8,  -8,  -8, -86, -73,  73, -37, -69, -72, -46,
        !           475:   12,  13,   5,   6,   7,   8,  79,  80, -86,  73,
        !           476:  -86, -89, -73,  81, -86,  77,  -8,  -8,  -8,  -8,
        !           477:   -8, -10, -11, -10, -11, -11,  -9, -14, -12,  73,
        !           478:  -14, -34, -33, -14, -14, -14, -35,  73, -39, -40,
        !           479:  -51, -37,  73, -60, -61, -63,  77,  14,  73, -58,
        !           480:  -59,   6,  73, -32,  73, -68, -47, -37, -69, -46,
        !           481:   89, -33, -34, -14, -14, -35, -39, -60,  75,  73,
        !           482:  -59,  73,  74, -81, -83, -32,  81,  73, -71, -32,
        !           483:  -71,  73, -58, -14,  73, -14, -72, -97, -73,  73,
        !           484:  -98,  81, -99,  15, -46,  81,  82,  83,  84, -72,
        !           485:  -72, -90,  77,-100, -37,  73,  77, -92, -68,-101,
        !           486: -102, -32, -47,  73, -92, -95, -95, -95, -95, -72,
        !           487:   81, -12, -12, -11, -25,  74, -15, -16, -14,  81,
        !           488:  -28,  73, -27, -28, -36, -37,  82,  77, -40,  73,
        !           489:  -13, -49,  82, -26, -50, -14, -52, -14, -32, -46,
        !           490:   81,  82,  83, -70,  88,  87,  86,  85,  84,  90,
        !           491:   92,  91,  94,  93,  95,  81, -32, -68, -32, -32,
        !           492:  -33, -32, -71, -66, -32, -67,  70, -32,  74,  77,
        !           493:  -58, -32, -27, -57, -58,  74,  74,  77, -72, -32,
        !           494:   81, -72, -72, -72, -72, -72,  74,  77, -90, -90,
        !           495:  -90,  77,  77,  77, -68,-101,-102, -95, -95, -12,
        !           496:  -28,  74,  77, -29, -53, -54, -33,  74,  77, -41,
        !           497:  -42, -51,  77, -62, -64, -65,  14,  74,  77,  75,
        !           498:   75,  74, -32, -32, -32, -32, -32, -32, -32, -32,
        !           499:  -32, -32,  74,  74,  77,  76,  74,  77, -14,  74,
        !           500:  -83,  74,  73,  77,  74, -98, -72,  74,-100,  77,
        !           501:  -68,-101, -68,-101, -68,-101,  77,  77,  77, -29,
        !           502:  -16,  74,  77, -55, -56, -32,  81, -37,  82,  77,
        !           503:  -43, -44, -45, -46, -47, -48, -14, -69,  73,  11,
        !           504:   10,   9, -52, -14,  74,  77,  80, -50, -32, -76,
        !           505:  -32,  69, -68, -71,  73, -32, -58, -57, -58, -27,
        !           506:  -52, -68, -52, -52, -52, -55,  76, -43,  81, -45,
        !           507:   74, -64, -65,  77,  74,  74, -71,  77,  74, -32,
        !           508:   74,  74,  74,  74, -56, -32, -44, -45, -32,  76,
        !           509:  -58, -71,  77,  74, -58 };
        !           510: short yydef[]={
        !           511: 
        !           512:    1,  -2,   0,   0,   9,  10,   2,   3,   4,   5,
        !           513:    0, 216,   8,  17,  17,  17,  17, 205,   0,  30,
        !           514:   -2,  32,  33,  34,  -2,  36,  37,  39, 122, 180,
        !           515:  216,   0, 216, 216, 216,  56, 122, 122, 122, 122,
        !           516:   76, 122,   0, 216, 216, 192, 193, 216, 195, 216,
        !           517:  216, 216,  44, 200, 216, 216, 216, 217, 216, 212,
        !           518:  213,  45,  46,  47,  48,  49,  50,  51,  52,  53,
        !           519:   54,  55,   0,   0,   0,   0, 228, 216, 216, 216,
        !           520:  216, 216, 231, 232, 233, 235, 236, 237,   6,  29,
        !           521:    7,  20,  20,   0,   0,  17,   0, 206,  22,  18,
        !           522:   19,   0,   0, 206,   0,   0,   0,   0, 115,  38,
        !           523:   87,  89,  90,  63,   0,   0,   0, 182, 183,   0,
        !           524:  185, 186,  43,   0,   0,   0,   0,   0,   0, 115,
        !           525:    0, 152,   0, 191,   0,   0, 156, 156,   0,   0,
        !           526:    0,   0,   0, 218,  -2,   0, 172, 173,   0,   0,
        !           527:  160, 161, 162, 163, 164, 165, 144, 145, 220,   0,
        !           528:  221, 222,  -2, 239, 226,   0, 270, 270, 270, 270,
        !           529:    0,  11,  21,  12,  22,  22,   0, 122,  16,   0,
        !           530:   99, 205,  62,  99,  66,  68,  70,   0,  75,   0,
        !           531:   97,  95,   0, 113,   0,   0,   0,   0,   0,   0,
        !           532:  110, 111,   0,  57,   0, 127, 129, 130, 131,   0,
        !           533:    0,  59,   0,  65,  67,  69,  74, 112,   0,  -2,
        !           534:    0,   0, 196,   0, 208, 210,   0,   0, 198, 157,
        !           535:  199,   0, 201,  -2,   0, 207, 244,   0, 170,   0,
        !           536:  242, 245,   0, 248,   0,   0,   0,   0,   0, 178,
        !           537:  244, 223,   0, 253, 255,   0,   0, 227,  -2, 258,
        !           538:  259,   0,  -2,   0, 229, 230, 234, 249, 250, 270,
        !           539:  270,  13,  14,  22,  99,  23,   0,  25,  27,  28,
        !           540:   56, 101,   0,  94,   0,  72,  78,   0,   0,   0,
        !           541:  116,  88,  64,   0,  91,   0, 181,   0,   0,   0,
        !           542:    0,   0,   0,   0,   0,   0,   0,   0,   0, 146,
        !           543:  147, 148, 149, 150, 151,   0,   0, 127, 136, 142,
        !           544:   60, 189,   0,   0,  -2, 124,   0,   0, 197,   0,
        !           545:  211,   0,   0,   0, 108,  -2, 241,   0,   0, 246,
        !           546:  247, 174, 175, 176, 177, 179, 240,   0, 225,   0,
        !           547:  224,   0,   0,   0, 127,   0,   0, 251, 252,  15,
        !           548:   56,  24,   0,  42,   0,   0,  61,  71,   0,   0,
        !           549:    0,  98,   0,   0, 117, 119, 121,  40,   0,   0,
        !           550:    0,   0, 132, 133, 134, 135,  -2, 138, 139, 140,
        !           551:  141, 143,  58, 128,   0, 156, 154,   0, 190,   0,
        !           552:  209, 187,   0,   0, 205, 243, 244, 171, 254,   0,
        !           553:   -2, 261,  -2, 263,  -2, 265,   0,   0,   0,  41,
        !           554:   26, 100,   0, 102, 104, 107, 106,  73,  77,   0,
        !           555:   79,  81,  83,   0,  85,  86, 158, 159,   0, 167,
        !           556:  168, 169,   0, 152, 114,   0,   0,  92,  93, 188,
        !           557:  214, 184, 127,   0, 156, 126,   0,   0, 109,   0,
        !           558:    0,  -2,   0,   0,   0, 103,   0,  80,   0,  84,
        !           559:   96, 118, 120,   0, 166, 153,   0,   0, 203, 204,
        !           560:  256, 267, 268, 269, 105, 107,  82,  83, 215, 156,
        !           561:    0,   0,   0, 155, 194 };
        !           562: #
        !           563: # define YYFLAG -1000
        !           564: # define YYERROR goto yyerrlab
        !           565: # define YYACCEPT return(0)
        !           566: # define YYABORT return(1)
        !           567: 
        !           568: /*     parser for yacc output  */
        !           569: 
        !           570: #ifdef YYDEBUG
        !           571: int yydebug = 0; /* 1 for debugging */
        !           572: #endif
        !           573: YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */
        !           574: int yychar = -1; /* current input token number */
        !           575: int yynerrs = 0;  /* number of errors */
        !           576: short yyerrflag = 0;  /* error recovery flag */
        !           577: 
        !           578: yyparse() {
        !           579: 
        !           580:        short yys[YYMAXDEPTH];
        !           581:        short yyj, yym;
        !           582:        register YYSTYPE *yypvt;
        !           583:        register short yystate, *yyps, yyn;
        !           584:        register YYSTYPE *yypv;
        !           585:        register short *yyxi;
        !           586: 
        !           587:        yystate = 0;
        !           588:        yychar = -1;
        !           589:        yynerrs = 0;
        !           590:        yyerrflag = 0;
        !           591:        yyps= &yys[-1];
        !           592:        yypv= &yyv[-1];
        !           593: 
        !           594:  yystack:    /* put a state and value onto the stack */
        !           595: 
        !           596: #ifdef YYDEBUG
        !           597:        if( yydebug  ) printf( "state %d, char 0%o\n", yystate, yychar );
        !           598: #endif
        !           599:                if( ++yyps> &yys[YYMAXDEPTH] ) { yyerror( "yacc stack overflow" ); return(1); }
        !           600:                *yyps = yystate;
        !           601:                ++yypv;
        !           602:                *yypv = yyval;
        !           603: 
        !           604:  yynewstate:
        !           605: 
        !           606:        yyn = yypact[yystate];
        !           607: 
        !           608:        if( yyn<= YYFLAG ) goto yydefault; /* simple state */
        !           609: 
        !           610:        if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0;
        !           611:        if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault;
        !           612: 
        !           613:        if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */
        !           614:                yychar = -1;
        !           615:                yyval = yylval;
        !           616:                yystate = yyn;
        !           617:                if( yyerrflag > 0 ) --yyerrflag;
        !           618:                goto yystack;
        !           619:                }
        !           620: 
        !           621:  yydefault:
        !           622:        /* default state action */
        !           623: 
        !           624:        if( (yyn=yydef[yystate]) == -2 ) {
        !           625:                if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0;
        !           626:                /* look through exception table */
        !           627: 
        !           628:                for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */
        !           629: 
        !           630:                while( *(yyxi+=2) >= 0 ){
        !           631:                        if( *yyxi == yychar ) break;
        !           632:                        }
        !           633:                if( (yyn = yyxi[1]) < 0 ) return(0);   /* accept */
        !           634:                }
        !           635: 
        !           636:        if( yyn == 0 ){ /* error */
        !           637:                /* error ... attempt to resume parsing */
        !           638: 
        !           639:                switch( yyerrflag ){
        !           640: 
        !           641:                case 0:   /* brand new error */
        !           642: 
        !           643:                        yyerror( "syntax error" );
        !           644:                yyerrlab:
        !           645:                        ++yynerrs;
        !           646: 
        !           647:                case 1:
        !           648:                case 2: /* incompletely recovered error ... try again */
        !           649: 
        !           650:                        yyerrflag = 3;
        !           651: 
        !           652:                        /* find a state where "error" is a legal shift action */
        !           653: 
        !           654:                        while ( yyps >= yys ) {
        !           655:                           yyn = yypact[*yyps] + YYERRCODE;
        !           656:                           if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){
        !           657:                              yystate = yyact[yyn];  /* simulate a shift of "error" */
        !           658:                              goto yystack;
        !           659:                              }
        !           660:                           yyn = yypact[*yyps];
        !           661: 
        !           662:                           /* the current yyps has no shift onn "error", pop stack */
        !           663: 
        !           664: #ifdef YYDEBUG
        !           665:                           if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );
        !           666: #endif
        !           667:                           --yyps;
        !           668:                           --yypv;
        !           669:                           }
        !           670: 
        !           671:                        /* there is no state on the stack with an error shift ... abort */
        !           672: 
        !           673:        yyabort:
        !           674:                        return(1);
        !           675: 
        !           676: 
        !           677:                case 3:  /* no shift yet; clobber input char */
        !           678: 
        !           679: #ifdef YYDEBUG
        !           680:                        if( yydebug ) printf( "error recovery discards char %d\n", yychar );
        !           681: #endif
        !           682: 
        !           683:                        if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */
        !           684:                        yychar = -1;
        !           685:                        goto yynewstate;   /* try again in the same state */
        !           686: 
        !           687:                        }
        !           688: 
        !           689:                }
        !           690: 
        !           691:        /* reduction by production yyn */
        !           692: 
        !           693: #ifdef YYDEBUG
        !           694:                if( yydebug ) printf("reduce %d\n",yyn);
        !           695: #endif
        !           696:                yyps -= yyr2[yyn];
        !           697:                yypvt = yypv;
        !           698:                yypv -= yyr2[yyn];
        !           699:                yyval = yypv[1];
        !           700:                yym=yyn;
        !           701:                        /* consult goto table to find next state */
        !           702:                yyn = yyr1[yyn];
        !           703:                yyj = yypgo[yyn] + *yyps + 1;
        !           704:                if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];
        !           705:                switch(yym){
        !           706:                        
        !           707: case 3:
        !           708: # line 151 "gram.in"
        !           709: { lastwasbranch = NO; } break;
        !           710: case 5:
        !           711: # line 154 "gram.in"
        !           712: { if(yypvt[-1] && (yypvt[-1]->labelno==dorange))
        !           713:                        enddo(yypvt[-1]->labelno);
        !           714:                  if(lastwasbranch && thislabel==NULL)
        !           715:                        warn("statement cannot be reached");
        !           716:                  lastwasbranch = thiswasbranch;
        !           717:                  thiswasbranch = NO;
        !           718:                  if(yypvt[-1])
        !           719:                        {
        !           720:                        if(yypvt[-1]->labtype == LABFORMAT)
        !           721:                                err("label already that of a format");
        !           722:                        else
        !           723:                                yypvt[-1]->labtype = LABEXEC;
        !           724:                        }
        !           725:                } break;
        !           726: case 6:
        !           727: # line 169 "gram.in"
        !           728: { doinclude( yypvt[-0] ); } break;
        !           729: case 7:
        !           730: # line 171 "gram.in"
        !           731: { lastwasbranch = NO;  endproc(); } break;
        !           732: case 8:
        !           733: # line 173 "gram.in"
        !           734: { execerr("unclassifiable statement", 0);  flline(); } break;
        !           735: case 9:
        !           736: # line 175 "gram.in"
        !           737: { flline();  needkwd = NO;  inioctl = NO; 
        !           738:                  yyerrok; yyclearin; } break;
        !           739: case 10:
        !           740: # line 180 "gram.in"
        !           741: {
        !           742: #ifdef SDB
        !           743:                char buff[10];
        !           744:                if( sdbflag )
        !           745:                        {
        !           746: #      ifdef UCBVAXASM
        !           747:                        p2pass( stabdline(N_SLINE, lineno) );
        !           748: #      else
        !           749:                        sprintf(buff,"LL%d", ++dbglabel);
        !           750:                        p2pass( stabline(0, N_SLINE, lineno, buff) );
        !           751:                        p2pi("LL%d:\n", dbglabel);
        !           752: #      endif
        !           753:                        }
        !           754: #endif
        !           755: 
        !           756:                if(yystno != 0)
        !           757:                        {
        !           758:                        yyval = thislabel =  mklabel(yystno);
        !           759:                        if( ! headerdone )
        !           760:                                puthead(NULL, procclass);
        !           761:                        if(thislabel->labdefined)
        !           762:                                execerr("label %s already defined",
        !           763:                                        convic(thislabel->stateno) );
        !           764:                        else    {
        !           765:                                if(thislabel->blklevel!=0 && thislabel->blklevel<blklevel
        !           766:                                    && thislabel->labtype!=LABFORMAT)
        !           767:                                        warn1("there is a branch to label %s from outside block",
        !           768:                                              convic( (ftnint) (thislabel->stateno) ) );
        !           769:                                thislabel->blklevel = blklevel;
        !           770:                                thislabel->labdefined = YES;
        !           771:                                if(thislabel->labtype != LABFORMAT)
        !           772:                                        putlabel(thislabel->labelno);
        !           773:                                }
        !           774:                        }
        !           775:                else    yyval = thislabel = NULL;
        !           776:                } break;
        !           777: case 11:
        !           778: # line 219 "gram.in"
        !           779: {startproc(yypvt[-0], CLMAIN); } break;
        !           780: case 12:
        !           781: # line 221 "gram.in"
        !           782: { if(yypvt[-0]) NO66("named BLOCKDATA");
        !           783:                  startproc(yypvt[-0], CLBLOCK); } break;
        !           784: case 13:
        !           785: # line 224 "gram.in"
        !           786: { entrypt(CLPROC, TYSUBR, (ftnint) 0,  yypvt[-1], yypvt[-0]); } break;
        !           787: case 14:
        !           788: # line 226 "gram.in"
        !           789: { entrypt(CLPROC, TYUNKNOWN, (ftnint) 0, yypvt[-1], yypvt[-0]); } break;
        !           790: case 15:
        !           791: # line 228 "gram.in"
        !           792: { entrypt(CLPROC, yypvt[-4], varleng, yypvt[-1], yypvt[-0]); } break;
        !           793: case 16:
        !           794: # line 230 "gram.in"
        !           795: { if(parstate==OUTSIDE || procclass==CLMAIN
        !           796:                        || procclass==CLBLOCK)
        !           797:                                execerr("misplaced entry statement", 0);
        !           798:                  entrypt(CLENTRY, 0, (ftnint) 0, yypvt[-1], yypvt[-0]);
        !           799:                } break;
        !           800: case 17:
        !           801: # line 238 "gram.in"
        !           802: { newproc(); } break;
        !           803: case 18:
        !           804: # line 242 "gram.in"
        !           805: { yyval = newentry(yypvt[-0]); } break;
        !           806: case 19:
        !           807: # line 246 "gram.in"
        !           808: { yyval = mkname(toklen, token); } break;
        !           809: case 20:
        !           810: # line 249 "gram.in"
        !           811: { yyval = NULL; } break;
        !           812: case 22:
        !           813: # line 254 "gram.in"
        !           814: { yyval = 0; } break;
        !           815: case 23:
        !           816: # line 256 "gram.in"
        !           817: { NO66(" () argument list");
        !           818:                  yyval = 0; } break;
        !           819: case 24:
        !           820: # line 259 "gram.in"
        !           821: {yyval = yypvt[-1]; } break;
        !           822: case 25:
        !           823: # line 263 "gram.in"
        !           824: { yyval = (yypvt[-0] ? mkchain(yypvt[-0],0) : 0 ); } break;
        !           825: case 26:
        !           826: # line 265 "gram.in"
        !           827: { if(yypvt[-0]) yypvt[-2] = yyval = hookup(yypvt[-2], mkchain(yypvt[-0],0)); } break;
        !           828: case 27:
        !           829: # line 269 "gram.in"
        !           830: { if(yypvt[-0]->vstg!=STGUNKNOWN && yypvt[-0]->vstg!=STGARG)
        !           831:                        dclerr("name declared as argument after use", yypvt[-0]);
        !           832:                  yypvt[-0]->vstg = STGARG;
        !           833:                } break;
        !           834: case 28:
        !           835: # line 274 "gram.in"
        !           836: { NO66("altenate return argument");
        !           837:                  yyval = 0;  substars = YES; } break;
        !           838: case 29:
        !           839: # line 281 "gram.in"
        !           840: {
        !           841:                char *s;
        !           842:                s = copyn(toklen+1, token);
        !           843:                s[toklen] = '\0';
        !           844:                yyval = s;
        !           845:                } break;
        !           846: case 37:
        !           847: # line 296 "gram.in"
        !           848: { NO66("SAVE statement");
        !           849:                  saveall = YES; } break;
        !           850: case 38:
        !           851: # line 299 "gram.in"
        !           852: { NO66("SAVE statement"); } break;
        !           853: case 39:
        !           854: # line 301 "gram.in"
        !           855: { fmtstmt(thislabel); setfmt(thislabel); } break;
        !           856: case 40:
        !           857: # line 303 "gram.in"
        !           858: { NO66("PARAMETER statement"); } break;
        !           859: case 41:
        !           860: # line 307 "gram.in"
        !           861: { settype(yypvt[-3], yypvt[-5], yypvt[-0]);
        !           862:                  if(ndim>0) setbound(yypvt[-3],ndim,dims);
        !           863:                } break;
        !           864: case 42:
        !           865: # line 311 "gram.in"
        !           866: { settype(yypvt[-2], yypvt[-4], yypvt[-0]);
        !           867:                  if(ndim>0) setbound(yypvt[-2],ndim,dims);
        !           868:                } break;
        !           869: case 43:
        !           870: # line 317 "gram.in"
        !           871: { varleng = yypvt[-0]; } break;
        !           872: case 44:
        !           873: # line 321 "gram.in"
        !           874: { varleng = (yypvt[-0]<0 || yypvt[-0]==TYLONG ? 0 : typesize[yypvt[-0]]); } break;
        !           875: case 45:
        !           876: # line 324 "gram.in"
        !           877: { yyval = TYLONG; } break;
        !           878: case 46:
        !           879: # line 325 "gram.in"
        !           880: { yyval = TYREAL; } break;
        !           881: case 47:
        !           882: # line 326 "gram.in"
        !           883: { yyval = TYCOMPLEX; } break;
        !           884: case 48:
        !           885: # line 327 "gram.in"
        !           886: { yyval = TYDREAL; } break;
        !           887: case 49:
        !           888: # line 328 "gram.in"
        !           889: { NOEXT("DOUBLE COMPLEX statement"); yyval = TYDCOMPLEX; } break;
        !           890: case 50:
        !           891: # line 329 "gram.in"
        !           892: { yyval = TYLOGICAL; } break;
        !           893: case 51:
        !           894: # line 330 "gram.in"
        !           895: { NO66("CHARACTER statement"); yyval = TYCHAR; } break;
        !           896: case 52:
        !           897: # line 331 "gram.in"
        !           898: { yyval = TYUNKNOWN; } break;
        !           899: case 53:
        !           900: # line 332 "gram.in"
        !           901: { yyval = TYUNKNOWN; } break;
        !           902: case 54:
        !           903: # line 333 "gram.in"
        !           904: { NOEXT("AUTOMATIC statement"); yyval = - STGAUTO; } break;
        !           905: case 55:
        !           906: # line 334 "gram.in"
        !           907: { NOEXT("STATIC statement"); yyval = - STGBSS; } break;
        !           908: case 56:
        !           909: # line 338 "gram.in"
        !           910: { yyval = varleng; } break;
        !           911: case 57:
        !           912: # line 340 "gram.in"
        !           913: {
        !           914:                  NO66("length specification *n");
        !           915:                  if( ! ISICON(yypvt[-0]) )
        !           916:                        {
        !           917:                        yyval = 0;
        !           918:                        dclerr("length must be an integer constant", 0);
        !           919:                        }
        !           920:                  else yyval = yypvt[-0]->const.ci;
        !           921:                } break;
        !           922: case 58:
        !           923: # line 350 "gram.in"
        !           924: {  NO66("length specification *(*)"); yyval = 0; } break;
        !           925: case 59:
        !           926: # line 354 "gram.in"
        !           927: { incomm( yyval = comblock(0, 0) , yypvt[-0] ); } break;
        !           928: case 60:
        !           929: # line 356 "gram.in"
        !           930: { yyval = yypvt[-1];  incomm(yypvt[-1], yypvt[-0]); } break;
        !           931: case 61:
        !           932: # line 358 "gram.in"
        !           933: { yyval = yypvt[-2];  incomm(yypvt[-2], yypvt[-0]); } break;
        !           934: case 62:
        !           935: # line 360 "gram.in"
        !           936: { incomm(yypvt[-2], yypvt[-0]); } break;
        !           937: case 63:
        !           938: # line 364 "gram.in"
        !           939: { yyval = comblock(0, 0); } break;
        !           940: case 64:
        !           941: # line 366 "gram.in"
        !           942: { yyval = comblock(toklen, token); } break;
        !           943: case 65:
        !           944: # line 370 "gram.in"
        !           945: { setext(yypvt[-0]); } break;
        !           946: case 66:
        !           947: # line 372 "gram.in"
        !           948: { setext(yypvt[-0]); } break;
        !           949: case 67:
        !           950: # line 376 "gram.in"
        !           951: { NO66("INTRINSIC statement"); setintr(yypvt[-0]); } break;
        !           952: case 68:
        !           953: # line 378 "gram.in"
        !           954: { setintr(yypvt[-0]); } break;
        !           955: case 71:
        !           956: # line 386 "gram.in"
        !           957: {
        !           958:                struct Equivblock *p;
        !           959:                if(nequiv >= MAXEQUIV)
        !           960:                        many("equivalences", 'q');
        !           961:                p  =  & eqvclass[nequiv++];
        !           962:                p->eqvinit = 0;
        !           963:                p->eqvbottom = 0;
        !           964:                p->eqvtop = 0;
        !           965:                p->equivs = yypvt[-1];
        !           966:                } break;
        !           967: case 72:
        !           968: # line 399 "gram.in"
        !           969: { yyval = ALLOC(Eqvchain); yyval->eqvitem = yypvt[-0]; } break;
        !           970: case 73:
        !           971: # line 401 "gram.in"
        !           972: { yyval = ALLOC(Eqvchain); yyval->eqvitem = yypvt[-0]; yyval->nextp = yypvt[-2]; } break;
        !           973: case 76:
        !           974: # line 409 "gram.in"
        !           975: { if(parstate == OUTSIDE)
        !           976:                        {
        !           977:                        newproc();
        !           978:                        startproc(0, CLMAIN);
        !           979:                        }
        !           980:                  if(parstate < INDATA)
        !           981:                        {
        !           982:                        enddcl();
        !           983:                        parstate = INDATA;
        !           984:                        }
        !           985:                } break;
        !           986: case 77:
        !           987: # line 423 "gram.in"
        !           988: { ftnint junk;
        !           989:                  if(nextdata(&junk,&junk) != NULL)
        !           990:                        {
        !           991:                        err("too few initializers");
        !           992:                        curdtp = NULL;
        !           993:                        }
        !           994:                  frdata(yypvt[-3]);
        !           995:                  frrpl();
        !           996:                } break;
        !           997: case 78:
        !           998: # line 434 "gram.in"
        !           999: { toomanyinit = NO; } break;
        !          1000: case 81:
        !          1001: # line 439 "gram.in"
        !          1002: { dataval(NULL, yypvt[-0]); } break;
        !          1003: case 82:
        !          1004: # line 441 "gram.in"
        !          1005: { dataval(yypvt[-2], yypvt[-0]); } break;
        !          1006: case 84:
        !          1007: # line 446 "gram.in"
        !          1008: { if( yypvt[-1]==OPMINUS && ISCONST(yypvt[-0]) )
        !          1009:                        consnegop(yypvt[-0]);
        !          1010:                  yyval = yypvt[-0];
        !          1011:                } break;
        !          1012: case 89:
        !          1013: # line 459 "gram.in"
        !          1014: { int k;
        !          1015:                  yypvt[-0]->vsave = 1;
        !          1016:                  k = yypvt[-0]->vstg;
        !          1017:                if( ! ONEOF(k, M(STGUNKNOWN)|M(STGBSS)|M(STGINIT)) )
        !          1018:                        dclerr("can only save static variables", yypvt[-0]);
        !          1019:                } break;
        !          1020: case 90:
        !          1021: # line 466 "gram.in"
        !          1022: { yypvt[-0]->extsave = 1; } break;
        !          1023: case 93:
        !          1024: # line 474 "gram.in"
        !          1025: { if(yypvt[-2]->vclass == CLUNKNOWN)
        !          1026:                        { yypvt[-2]->vclass = CLPARAM;
        !          1027:                          yypvt[-2]->paramval = yypvt[-0];
        !          1028:                        }
        !          1029:                  else dclerr("cannot make %s parameter", yypvt[-2]);
        !          1030:                } break;
        !          1031: case 94:
        !          1032: # line 483 "gram.in"
        !          1033: { if(ndim>0) setbounds(yypvt[-1], ndim, dims); } break;
        !          1034: case 95:
        !          1035: # line 487 "gram.in"
        !          1036: { ptr np;
        !          1037:                  vardcl(np = yypvt[-0]->namep);
        !          1038:                  if(np->vstg == STGBSS)
        !          1039:                        np->vstg = STGINIT;
        !          1040:                  else if(np->vstg == STGCOMMON)
        !          1041:                        extsymtab[np->vardesc.varno].extinit = YES;
        !          1042:                  else if(np->vstg==STGEQUIV)
        !          1043:                        eqvclass[np->vardesc.varno].eqvinit = YES;
        !          1044:                  else if(np->vstg != STGINIT)
        !          1045:                        dclerr("inconsistent storage classes", np);
        !          1046:                  yyval = mkchain(yypvt[-0], 0);
        !          1047:                } break;
        !          1048: case 96:
        !          1049: # line 500 "gram.in"
        !          1050: { chainp p; struct Impldoblock *q;
        !          1051:                q = ALLOC(Impldoblock);
        !          1052:                q->tag = TIMPLDO;
        !          1053:                q->varnp = yypvt[-1]->datap;
        !          1054:                p = yypvt[-1]->nextp;
        !          1055:                if(p)  { q->implb = p->datap; p = p->nextp; }
        !          1056:                if(p)  { q->impub = p->datap; p = p->nextp; }
        !          1057:                if(p)  { q->impstep = p->datap; p = p->nextp; }
        !          1058:                frchain( & (yypvt[-1]) );
        !          1059:                yyval = mkchain(q, 0);
        !          1060:                q->datalist = hookup(yypvt[-3], yyval);
        !          1061:                } break;
        !          1062: case 97:
        !          1063: # line 515 "gram.in"
        !          1064: { curdtp = yypvt[-0]; curdtelt = 0; } break;
        !          1065: case 98:
        !          1066: # line 517 "gram.in"
        !          1067: { yyval = hookup(yypvt[-2], yypvt[-0]); } break;
        !          1068: case 99:
        !          1069: # line 521 "gram.in"
        !          1070: { ndim = 0; } break;
        !          1071: case 101:
        !          1072: # line 525 "gram.in"
        !          1073: { ndim = 0; } break;
        !          1074: case 104:
        !          1075: # line 530 "gram.in"
        !          1076: { if(ndim == maxdim)
        !          1077:                        err("too many dimensions");
        !          1078:                  else if(ndim < maxdim)
        !          1079:                        { dims[ndim].lb = 0;
        !          1080:                          dims[ndim].ub = yypvt[-0];
        !          1081:                        }
        !          1082:                  ++ndim;
        !          1083:                } break;
        !          1084: case 105:
        !          1085: # line 539 "gram.in"
        !          1086: { if(ndim == maxdim)
        !          1087:                        err("too many dimensions");
        !          1088:                  else if(ndim < maxdim)
        !          1089:                        { dims[ndim].lb = yypvt[-2];
        !          1090:                          dims[ndim].ub = yypvt[-0];
        !          1091:                        }
        !          1092:                  ++ndim;
        !          1093:                } break;
        !          1094: case 106:
        !          1095: # line 550 "gram.in"
        !          1096: { yyval = 0; } break;
        !          1097: case 108:
        !          1098: # line 555 "gram.in"
        !          1099: { nstars = 1; labarray[0] = yypvt[-0]; } break;
        !          1100: case 109:
        !          1101: # line 557 "gram.in"
        !          1102: { if(nstars < MAXLABLIST)  labarray[nstars++] = yypvt[-0]; } break;
        !          1103: case 110:
        !          1104: # line 561 "gram.in"
        !          1105: {
        !          1106:                if(yypvt[-0] == 0)
        !          1107:                        execerr("illegal label", 0);
        !          1108:                else    {
        !          1109:                        if(yypvt[-0]->labinacc)
        !          1110:                                warn1("illegal branch to inner block, statement %s",
        !          1111:                                        convic( (ftnint) (yypvt[-0]->stateno) ));
        !          1112:                        else if(yypvt[-0]->labdefined == NO)
        !          1113:                                yypvt[-0]->blklevel = blklevel;
        !          1114:                        yypvt[-0]->labused = YES;
        !          1115:                        if(yypvt[-0]->labtype == LABFORMAT)
        !          1116:                                err("may not branch to a format");
        !          1117:                        else
        !          1118:                                yypvt[-0]->labtype = LABEXEC;
        !          1119:                        }
        !          1120:                } break;
        !          1121: case 111:
        !          1122: # line 580 "gram.in"
        !          1123: { yyval = mklabel( convci(toklen, token) ); } break;
        !          1124: case 112:
        !          1125: # line 584 "gram.in"
        !          1126: { NO66("IMPLICIT statement"); } break;
        !          1127: case 115:
        !          1128: # line 591 "gram.in"
        !          1129: { needkwd = 1; } break;
        !          1130: case 116:
        !          1131: # line 592 "gram.in"
        !          1132: { vartype = yypvt[-0]; } break;
        !          1133: case 119:
        !          1134: # line 600 "gram.in"
        !          1135: { setimpl(vartype, varleng, yypvt[-0], yypvt[-0]); } break;
        !          1136: case 120:
        !          1137: # line 602 "gram.in"
        !          1138: { setimpl(vartype, varleng, yypvt[-2], yypvt[-0]); } break;
        !          1139: case 121:
        !          1140: # line 606 "gram.in"
        !          1141: { if(toklen!=1 || token[0]<'a' || token[0]>'z')
        !          1142:                        {
        !          1143:                        dclerr("implicit item must be single letter", 0);
        !          1144:                        yyval = 0;
        !          1145:                        }
        !          1146:                  else yyval = token[0];
        !          1147:                } break;
        !          1148: case 122:
        !          1149: # line 616 "gram.in"
        !          1150: { switch(parstate)     
        !          1151:                        {
        !          1152:                        case OUTSIDE:   newproc();
        !          1153:                                        startproc(0, CLMAIN);
        !          1154:                        case INSIDE:    parstate = INDCL;
        !          1155:                        case INDCL:     break;
        !          1156: 
        !          1157:                        default:
        !          1158:                                dclerr("declaration among executables", 0);
        !          1159:                        }
        !          1160:                } break;
        !          1161: case 123:
        !          1162: # line 629 "gram.in"
        !          1163: { yyval = 0; } break;
        !          1164: case 125:
        !          1165: # line 634 "gram.in"
        !          1166: { yyval = mkchain(yypvt[-0], 0); } break;
        !          1167: case 126:
        !          1168: # line 636 "gram.in"
        !          1169: { yyval = hookup(yypvt[-2], mkchain(yypvt[-0],0) ); } break;
        !          1170: case 128:
        !          1171: # line 641 "gram.in"
        !          1172: { yyval = yypvt[-1]; } break;
        !          1173: case 132:
        !          1174: # line 648 "gram.in"
        !          1175: { yyval = mkexpr(yypvt[-1], yypvt[-2], yypvt[-0]); } break;
        !          1176: case 133:
        !          1177: # line 650 "gram.in"
        !          1178: { yyval = mkexpr(OPSTAR, yypvt[-2], yypvt[-0]); } break;
        !          1179: case 134:
        !          1180: # line 652 "gram.in"
        !          1181: { yyval = mkexpr(OPSLASH, yypvt[-2], yypvt[-0]); } break;
        !          1182: case 135:
        !          1183: # line 654 "gram.in"
        !          1184: { yyval = mkexpr(OPPOWER, yypvt[-2], yypvt[-0]); } break;
        !          1185: case 136:
        !          1186: # line 656 "gram.in"
        !          1187: { if(yypvt[-1] == OPMINUS)
        !          1188:                        yyval = mkexpr(OPNEG, yypvt[-0], 0);
        !          1189:                  else  yyval = yypvt[-0];
        !          1190:                } break;
        !          1191: case 137:
        !          1192: # line 661 "gram.in"
        !          1193: { yyval = mkexpr(yypvt[-1], yypvt[-2], yypvt[-0]); } break;
        !          1194: case 138:
        !          1195: # line 663 "gram.in"
        !          1196: { NO66(".EQV. operator");
        !          1197:                  yyval = mkexpr(OPEQV, yypvt[-2],yypvt[-0]); } break;
        !          1198: case 139:
        !          1199: # line 666 "gram.in"
        !          1200: { NO66(".NEQV. operator");
        !          1201:                  yyval = mkexpr(OPNEQV, yypvt[-2], yypvt[-0]); } break;
        !          1202: case 140:
        !          1203: # line 669 "gram.in"
        !          1204: { yyval = mkexpr(OPOR, yypvt[-2], yypvt[-0]); } break;
        !          1205: case 141:
        !          1206: # line 671 "gram.in"
        !          1207: { yyval = mkexpr(OPAND, yypvt[-2], yypvt[-0]); } break;
        !          1208: case 142:
        !          1209: # line 673 "gram.in"
        !          1210: { yyval = mkexpr(OPNOT, yypvt[-0], 0); } break;
        !          1211: case 143:
        !          1212: # line 675 "gram.in"
        !          1213: { NO66("concatenation operator //");
        !          1214:                  yyval = mkexpr(OPCONCAT, yypvt[-2], yypvt[-0]); } break;
        !          1215: case 144:
        !          1216: # line 679 "gram.in"
        !          1217: { yyval = OPPLUS; } break;
        !          1218: case 145:
        !          1219: # line 680 "gram.in"
        !          1220: { yyval = OPMINUS; } break;
        !          1221: case 146:
        !          1222: # line 683 "gram.in"
        !          1223: { yyval = OPEQ; } break;
        !          1224: case 147:
        !          1225: # line 684 "gram.in"
        !          1226: { yyval = OPGT; } break;
        !          1227: case 148:
        !          1228: # line 685 "gram.in"
        !          1229: { yyval = OPLT; } break;
        !          1230: case 149:
        !          1231: # line 686 "gram.in"
        !          1232: { yyval = OPGE; } break;
        !          1233: case 150:
        !          1234: # line 687 "gram.in"
        !          1235: { yyval = OPLE; } break;
        !          1236: case 151:
        !          1237: # line 688 "gram.in"
        !          1238: { yyval = OPNE; } break;
        !          1239: case 152:
        !          1240: # line 692 "gram.in"
        !          1241: { yyval = mkprim(yypvt[-0], 0, 0, 0); } break;
        !          1242: case 153:
        !          1243: # line 694 "gram.in"
        !          1244: { NO66("substring operator :");
        !          1245:                  yyval = mkprim(yypvt[-5], 0, yypvt[-3], yypvt[-1]); } break;
        !          1246: case 154:
        !          1247: # line 697 "gram.in"
        !          1248: { yyval = mkprim(yypvt[-3], mklist(yypvt[-1]), 0, 0); } break;
        !          1249: case 155:
        !          1250: # line 699 "gram.in"
        !          1251: { NO66("substring operator :");
        !          1252:                  yyval = mkprim(yypvt[-8], mklist(yypvt[-6]), yypvt[-3], yypvt[-1]); } break;
        !          1253: case 156:
        !          1254: # line 704 "gram.in"
        !          1255: { yyval = 0; } break;
        !          1256: case 158:
        !          1257: # line 709 "gram.in"
        !          1258: { if(yypvt[-0]->vclass == CLPARAM)
        !          1259:                        yyval = cpexpr(yypvt[-0]->paramval);
        !          1260:                } break;
        !          1261: case 160:
        !          1262: # line 715 "gram.in"
        !          1263: { yyval = mklogcon(1); } break;
        !          1264: case 161:
        !          1265: # line 716 "gram.in"
        !          1266: { yyval = mklogcon(0); } break;
        !          1267: case 162:
        !          1268: # line 717 "gram.in"
        !          1269: { yyval = mkstrcon(toklen, token); } break;
        !          1270: case 163:
        !          1271: # line 718 "gram.in"
        !          1272:  { yyval = mkintcon( convci(toklen, token) ); } break;
        !          1273: case 164:
        !          1274: # line 719 "gram.in"
        !          1275:  { yyval = mkrealcon(TYREAL, convcd(toklen, token)); } break;
        !          1276: case 165:
        !          1277: # line 720 "gram.in"
        !          1278:  { yyval = mkrealcon(TYDREAL, convcd(toklen, token)); } break;
        !          1279: case 166:
        !          1280: # line 724 "gram.in"
        !          1281: { yyval = mkcxcon(yypvt[-3],yypvt[-1]); } break;
        !          1282: case 167:
        !          1283: # line 728 "gram.in"
        !          1284: { NOEXT("hex constant");
        !          1285:                  yyval = mkbitcon(4, toklen, token); } break;
        !          1286: case 168:
        !          1287: # line 731 "gram.in"
        !          1288: { NOEXT("octal constant");
        !          1289:                  yyval = mkbitcon(3, toklen, token); } break;
        !          1290: case 169:
        !          1291: # line 734 "gram.in"
        !          1292: { NOEXT("binary constant");
        !          1293:                  yyval = mkbitcon(1, toklen, token); } break;
        !          1294: case 171:
        !          1295: # line 740 "gram.in"
        !          1296: { yyval = yypvt[-1]; } break;
        !          1297: case 174:
        !          1298: # line 746 "gram.in"
        !          1299: { yyval = mkexpr(yypvt[-1], yypvt[-2], yypvt[-0]); } break;
        !          1300: case 175:
        !          1301: # line 748 "gram.in"
        !          1302: { yyval = mkexpr(OPSTAR, yypvt[-2], yypvt[-0]); } break;
        !          1303: case 176:
        !          1304: # line 750 "gram.in"
        !          1305: { yyval = mkexpr(OPSLASH, yypvt[-2], yypvt[-0]); } break;
        !          1306: case 177:
        !          1307: # line 752 "gram.in"
        !          1308: { yyval = mkexpr(OPPOWER, yypvt[-2], yypvt[-0]); } break;
        !          1309: case 178:
        !          1310: # line 754 "gram.in"
        !          1311: { if(yypvt[-1] == OPMINUS)
        !          1312:                        yyval = mkexpr(OPNEG, yypvt[-0], 0);
        !          1313:                  else  yyval = yypvt[-0];
        !          1314:                } break;
        !          1315: case 179:
        !          1316: # line 759 "gram.in"
        !          1317: { NO66("concatenation operator //");
        !          1318:                  yyval = mkexpr(OPCONCAT, yypvt[-2], yypvt[-0]); } break;
        !          1319: case 181:
        !          1320: # line 764 "gram.in"
        !          1321: {
        !          1322:                if(yypvt[-1]->labdefined)
        !          1323:                        execerr("no backward DO loops", 0);
        !          1324:                yypvt[-1]->blklevel = blklevel+1;
        !          1325:                exdo(yypvt[-1]->labelno, yypvt[-0]);
        !          1326:                } break;
        !          1327: case 182:
        !          1328: # line 771 "gram.in"
        !          1329: { exendif();  thiswasbranch = NO; } break;
        !          1330: case 184:
        !          1331: # line 774 "gram.in"
        !          1332: { exelif(yypvt[-2]); lastwasbranch = NO; } break;
        !          1333: case 185:
        !          1334: # line 776 "gram.in"
        !          1335: { exelse(); lastwasbranch = NO; } break;
        !          1336: case 186:
        !          1337: # line 778 "gram.in"
        !          1338: { exendif(); lastwasbranch = NO; } break;
        !          1339: case 187:
        !          1340: # line 782 "gram.in"
        !          1341: { exif(yypvt[-1]); } break;
        !          1342: case 188:
        !          1343: # line 786 "gram.in"
        !          1344: { yyval = mkchain(yypvt[-2], yypvt[-0]); } break;
        !          1345: case 189:
        !          1346: # line 790 "gram.in"
        !          1347: { exequals(yypvt[-2], yypvt[-0]); } break;
        !          1348: case 190:
        !          1349: # line 792 "gram.in"
        !          1350: { exassign(yypvt[-0], yypvt[-2]); } break;
        !          1351: case 193:
        !          1352: # line 796 "gram.in"
        !          1353: { inioctl = NO; } break;
        !          1354: case 194:
        !          1355: # line 798 "gram.in"
        !          1356: { exarif(yypvt[-6], yypvt[-4], yypvt[-2], yypvt[-0]);  thiswasbranch = YES; } break;
        !          1357: case 195:
        !          1358: # line 800 "gram.in"
        !          1359: { excall(yypvt[-0], 0, 0, labarray); } break;
        !          1360: case 196:
        !          1361: # line 802 "gram.in"
        !          1362: { excall(yypvt[-2], 0, 0, labarray); } break;
        !          1363: case 197:
        !          1364: # line 804 "gram.in"
        !          1365: { if(nstars < MAXLABLIST)
        !          1366:                        excall(yypvt[-3], mklist(yypvt[-1]), nstars, labarray);
        !          1367:                  else
        !          1368:                        err("too many alternate returns");
        !          1369:                } break;
        !          1370: case 198:
        !          1371: # line 810 "gram.in"
        !          1372: { exreturn(yypvt[-0]);  thiswasbranch = YES; } break;
        !          1373: case 199:
        !          1374: # line 812 "gram.in"
        !          1375: { exstop(yypvt[-2], yypvt[-0]);  thiswasbranch = yypvt[-2]; } break;
        !          1376: case 200:
        !          1377: # line 816 "gram.in"
        !          1378: { if(parstate == OUTSIDE)
        !          1379:                        {
        !          1380:                        newproc();
        !          1381:                        startproc(0, CLMAIN);
        !          1382:                        }
        !          1383:                } break;
        !          1384: case 201:
        !          1385: # line 825 "gram.in"
        !          1386: { exgoto(yypvt[-0]);  thiswasbranch = YES; } break;
        !          1387: case 202:
        !          1388: # line 827 "gram.in"
        !          1389: { exasgoto(yypvt[-0]);  thiswasbranch = YES; } break;
        !          1390: case 203:
        !          1391: # line 829 "gram.in"
        !          1392: { exasgoto(yypvt[-4]);  thiswasbranch = YES; } break;
        !          1393: case 204:
        !          1394: # line 831 "gram.in"
        !          1395: { if(nstars < MAXLABLIST)
        !          1396:                        putcmgo(fixtype(yypvt[-0]), nstars, labarray);
        !          1397:                  else
        !          1398:                        err("computed GOTO list too long");
        !          1399:                } break;
        !          1400: case 207:
        !          1401: # line 843 "gram.in"
        !          1402: { nstars = 0; yyval = yypvt[-0]; } break;
        !          1403: case 208:
        !          1404: # line 847 "gram.in"
        !          1405: { yyval = (yypvt[-0] ? mkchain(yypvt[-0],0) : 0); } break;
        !          1406: case 209:
        !          1407: # line 849 "gram.in"
        !          1408: { if(yypvt[-0])
        !          1409:                        if(yypvt[-2]) yyval = hookup(yypvt[-2], mkchain(yypvt[-0],0));
        !          1410:                        else yyval = mkchain(yypvt[-0],0);
        !          1411:                } break;
        !          1412: case 211:
        !          1413: # line 857 "gram.in"
        !          1414: { if(nstars<MAXLABLIST) labarray[nstars++] = yypvt[-0]; yyval = 0; } break;
        !          1415: case 212:
        !          1416: # line 861 "gram.in"
        !          1417: { yyval = 0; } break;
        !          1418: case 213:
        !          1419: # line 863 "gram.in"
        !          1420: { yyval = 1; } break;
        !          1421: case 214:
        !          1422: # line 867 "gram.in"
        !          1423: { yyval = mkchain(yypvt[-0], 0); } break;
        !          1424: case 215:
        !          1425: # line 869 "gram.in"
        !          1426: { yyval = hookup(yypvt[-2], mkchain(yypvt[-0],0) ); } break;
        !          1427: case 216:
        !          1428: # line 873 "gram.in"
        !          1429: { if(parstate == OUTSIDE)
        !          1430:                        {
        !          1431:                        newproc();
        !          1432:                        startproc(0, CLMAIN);
        !          1433:                        }
        !          1434:                  if(parstate < INDATA) enddcl();
        !          1435:                } break;
        !          1436: case 217:
        !          1437: # line 884 "gram.in"
        !          1438: { endio(); } break;
        !          1439: case 219:
        !          1440: # line 889 "gram.in"
        !          1441: { ioclause(IOSUNIT, yypvt[-0]); endioctl(); } break;
        !          1442: case 221:
        !          1443: # line 892 "gram.in"
        !          1444: { doio(NULL); } break;
        !          1445: case 222:
        !          1446: # line 894 "gram.in"
        !          1447: { doio(NULL); } break;
        !          1448: case 223:
        !          1449: # line 896 "gram.in"
        !          1450: { doio(yypvt[-0]); } break;
        !          1451: case 224:
        !          1452: # line 898 "gram.in"
        !          1453: { doio(yypvt[-0]); } break;
        !          1454: case 225:
        !          1455: # line 900 "gram.in"
        !          1456: { doio(yypvt[-0]); } break;
        !          1457: case 226:
        !          1458: # line 902 "gram.in"
        !          1459: { doio(NULL); } break;
        !          1460: case 227:
        !          1461: # line 904 "gram.in"
        !          1462: { doio(yypvt[-0]); } break;
        !          1463: case 228:
        !          1464: # line 906 "gram.in"
        !          1465: { doio(NULL); } break;
        !          1466: case 229:
        !          1467: # line 908 "gram.in"
        !          1468: { doio(yypvt[-0]); } break;
        !          1469: case 231:
        !          1470: # line 915 "gram.in"
        !          1471: { iostmt = IOBACKSPACE; } break;
        !          1472: case 232:
        !          1473: # line 917 "gram.in"
        !          1474: { iostmt = IOREWIND; } break;
        !          1475: case 233:
        !          1476: # line 919 "gram.in"
        !          1477: { iostmt = IOENDFILE; } break;
        !          1478: case 235:
        !          1479: # line 926 "gram.in"
        !          1480: { iostmt = IOINQUIRE; } break;
        !          1481: case 236:
        !          1482: # line 928 "gram.in"
        !          1483: { iostmt = IOOPEN; } break;
        !          1484: case 237:
        !          1485: # line 930 "gram.in"
        !          1486: { iostmt = IOCLOSE; } break;
        !          1487: case 238:
        !          1488: # line 934 "gram.in"
        !          1489: {
        !          1490:                ioclause(IOSUNIT, NULL);
        !          1491:                ioclause(IOSFMT, yypvt[-0]);
        !          1492:                endioctl();
        !          1493:                } break;
        !          1494: case 239:
        !          1495: # line 940 "gram.in"
        !          1496: {
        !          1497:                ioclause(IOSUNIT, NULL);
        !          1498:                ioclause(IOSFMT, NULL);
        !          1499:                endioctl();
        !          1500:                } break;
        !          1501: case 240:
        !          1502: # line 948 "gram.in"
        !          1503: { if(yypvt[-1]->vtype == TYCHAR)
        !          1504:                        {
        !          1505:                        ioclause(IOSUNIT, NULL);
        !          1506:                        ioclause(IOSFMT, yypvt[-1]);
        !          1507:                        }
        !          1508:                  else
        !          1509:                        ioclause(IOSUNIT, yypvt[-1]);
        !          1510:                  endioctl();
        !          1511:                } break;
        !          1512: case 241:
        !          1513: # line 958 "gram.in"
        !          1514: { endioctl(); } break;
        !          1515: case 244:
        !          1516: # line 966 "gram.in"
        !          1517: { ioclause(IOSPOSITIONAL, yypvt[-0]); } break;
        !          1518: case 245:
        !          1519: # line 968 "gram.in"
        !          1520: { ioclause(IOSPOSITIONAL, NULL); } break;
        !          1521: case 246:
        !          1522: # line 970 "gram.in"
        !          1523: { ioclause(yypvt[-1], yypvt[-0]); } break;
        !          1524: case 247:
        !          1525: # line 972 "gram.in"
        !          1526: { ioclause(yypvt[-1], NULL); } break;
        !          1527: case 248:
        !          1528: # line 976 "gram.in"
        !          1529: { yyval = iocname(); } break;
        !          1530: case 249:
        !          1531: # line 980 "gram.in"
        !          1532: { iostmt = IOREAD; } break;
        !          1533: case 250:
        !          1534: # line 984 "gram.in"
        !          1535: { iostmt = IOWRITE; } break;
        !          1536: case 251:
        !          1537: # line 988 "gram.in"
        !          1538: {
        !          1539:                iostmt = IOWRITE;
        !          1540:                ioclause(IOSUNIT, NULL);
        !          1541:                ioclause(IOSFMT, yypvt[-1]);
        !          1542:                endioctl();
        !          1543:                } break;
        !          1544: case 252:
        !          1545: # line 995 "gram.in"
        !          1546: {
        !          1547:                iostmt = IOWRITE;
        !          1548:                ioclause(IOSUNIT, NULL);
        !          1549:                ioclause(IOSFMT, NULL);
        !          1550:                endioctl();
        !          1551:                } break;
        !          1552: case 253:
        !          1553: # line 1004 "gram.in"
        !          1554: { yyval = mkchain(yypvt[-0],0); } break;
        !          1555: case 254:
        !          1556: # line 1006 "gram.in"
        !          1557: { yyval = hookup(yypvt[-2], mkchain(yypvt[-0],0)); } break;
        !          1558: case 256:
        !          1559: # line 1011 "gram.in"
        !          1560: { yyval = mkiodo(yypvt[-1],yypvt[-3]); } break;
        !          1561: case 257:
        !          1562: # line 1015 "gram.in"
        !          1563: { yyval = mkchain(yypvt[-0], 0); } break;
        !          1564: case 258:
        !          1565: # line 1017 "gram.in"
        !          1566: { yyval = mkchain(yypvt[-0], 0); } break;
        !          1567: case 260:
        !          1568: # line 1022 "gram.in"
        !          1569: { yyval = mkchain(yypvt[-2], mkchain(yypvt[-0], 0) ); } break;
        !          1570: case 261:
        !          1571: # line 1024 "gram.in"
        !          1572: { yyval = mkchain(yypvt[-2], mkchain(yypvt[-0], 0) ); } break;
        !          1573: case 262:
        !          1574: # line 1026 "gram.in"
        !          1575: { yyval = mkchain(yypvt[-2], mkchain(yypvt[-0], 0) ); } break;
        !          1576: case 263:
        !          1577: # line 1028 "gram.in"
        !          1578: { yyval = mkchain(yypvt[-2], mkchain(yypvt[-0], 0) ); } break;
        !          1579: case 264:
        !          1580: # line 1030 "gram.in"
        !          1581: { yyval = hookup(yypvt[-2], mkchain(yypvt[-0], 0) ); } break;
        !          1582: case 265:
        !          1583: # line 1032 "gram.in"
        !          1584: { yyval = hookup(yypvt[-2], mkchain(yypvt[-0], 0) ); } break;
        !          1585: case 267:
        !          1586: # line 1037 "gram.in"
        !          1587: { yyval = mkiodo(yypvt[-1], mkchain(yypvt[-3], 0) ); } break;
        !          1588: case 268:
        !          1589: # line 1039 "gram.in"
        !          1590: { yyval = mkiodo(yypvt[-1], mkchain(yypvt[-3], 0) ); } break;
        !          1591: case 269:
        !          1592: # line 1041 "gram.in"
        !          1593: { yyval = mkiodo(yypvt[-1], yypvt[-3]); } break;
        !          1594: case 270:
        !          1595: # line 1045 "gram.in"
        !          1596: { startioctl(); } break;
        !          1597:                }
        !          1598:                goto yystack;  /* stack new state and value */
        !          1599: 
        !          1600:        }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.