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

unix.superglobalmegacorp.com

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