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

unix.superglobalmegacorp.com

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