Annotation of coherent/b/bin/sh.420/y.tab.c, revision 1.1.1.1

1.1       root        1: 
                      2: #line 8 "sh.y"
                      3: 
                      4: #include "sh.h"
                      5: 
                      6: #define YYERROR        { yyerrflag=1; goto YYerract; }
                      7: 
                      8: extern NODE    *node();
                      9: 
                     10: #include "y.tab.h"
                     11: #define YYCLEARIN yychar = -1000
                     12: #define YYERROK yyerrflag = 0
                     13: extern int yychar;
                     14: extern short yyerrflag;
                     15: #ifndef YYMAXDEPTH
                     16: #define YYMAXDEPTH 150
                     17: #endif
                     18: YYSTYPE yyval, yylval;
                     19: 
                     20: #line 570 "sh.y"
                     21: 
                     22: /*
                     23:  * Create a node.
                     24:  */
                     25: NODE *
                     26: node(type, auxp, next)
                     27: NODE *auxp, *next;
                     28: {
                     29:        register NODE *np;
                     30: 
                     31:        np = (NODE *) balloc(sizeof (NODE));
                     32:        np->n_type = type;
                     33:        np->n_auxp = auxp;
                     34:        np->n_next = next;
                     35:        return np;
                     36: }
                     37: 
                     38: #define NBPC 8
                     39: #define NKEY 8
                     40: static char keys[NKEY] = { 0 };
                     41: static int  keyi = NKEY * NBPC;
                     42: 
                     43: keyflush()
                     44: {
                     45:        register char *kp;
                     46: 
                     47:        for (kp = keys+NKEY; kp > keys; *--kp = 0)
                     48:                ;
                     49:        keyi = NKEY * NBPC;
                     50: }
                     51: 
                     52: keypop()
                     53: {
                     54:        register char   *kp;
                     55:        register int    km;
                     56: 
                     57:        if ((km = keyi++) >= NKEY * NBPC) {
                     58:                panic(11);
                     59:                NOTREACHED;
                     60:        }
                     61:        kp = keys + (km / NBPC);
                     62:        km = 1 << (km %= NBPC);
                     63:        keyflag = (*kp & km) ? 1 : 0;
                     64:        *kp &= ~km;
                     65: }
                     66: 
                     67: keypush()
                     68: {
                     69:        register char   *kp;
                     70:        register int    km;
                     71: 
                     72:        if ((km = --keyi) < 0) {
                     73:                panic(12);
                     74:                NOTREACHED;
                     75:        }
                     76:        if (keyflag) {
                     77:                kp = keys + (km / NBPC);
                     78:                km = 1 << (km %= NBPC);
                     79:                *kp |= km;
                     80:        }
                     81: }
                     82: /*
                     83:  * The following fragments might implement named pipes.
                     84:  * The token declaration goes in the header.
                     85:  * The nopen production should go with the others of its ilk.
                     86:  * The production fragment goes into arg:
                     87: %token _NOPEN _NCLOSE
                     88: nopen: _NOPEN optnls ;
                     89: 
                     90: |      nopen pipe_cmd ')' {
                     91:                $$ = node(NRPIPE, $2, NULL);
                     92:        }
                     93: |      oparen pipe_cmd _NCLOSE {
                     94:                $$ = node(NWPIPE, $2, NULL);
                     95:        }
                     96: CLOSE {
                     97:                $$ = node(NWPIPE, $2, NULL);
                     98:        }
                     99:  *
                    100:  */
                    101: #ifdef YYTNAMES
                    102: struct yytname yytnames[33] =
                    103: {
                    104:        "$end", -1, 
                    105:        "error", -2, 
                    106:        "_ANDF", 256, 
                    107:        "_ASGN", 257, 
                    108:        "_CASE", 258, 
                    109:        "_CBRAC", 259, 
                    110:        "_DO", 260, 
                    111:        "_DONE", 261, 
                    112:        "_DSEMI", 262, 
                    113:        "_ELIF", 263, 
                    114:        "_ELSE", 264, 
                    115:        "_ESAC", 265, 
                    116:        "_FI", 266, 
                    117:        "_FOR", 267, 
                    118:        "_IF", 268, 
                    119:        "_IN", 269, 
                    120:        "_IORS", 270, 
                    121:        "_NAME", 271, 
                    122:        "_NULL", 272, 
                    123:        "_OBRAC", 273, 
                    124:        "_ORF", 274, 
                    125:        "_PARENS", 275, 
                    126:        "_RET", 276, 
                    127:        "_THEN", 277, 
                    128:        "_UNTIL", 278, 
                    129:        "_WHILE", 279, 
                    130:        "'\\n'", 10, 
                    131:        "';'", 59, 
                    132:        "'|'", 124, 
                    133:        "'('", 40, 
                    134:        "')'", 41, 
                    135:        "'&'", 38, 
                    136:        NULL
                    137: } ;
                    138: #endif
                    139: #define        YYACTSH         13
                    140: #define        YYAMASK         017777
                    141: #define        YYSHIFTACT      0
                    142: #define        YYREDACT        1
                    143: #define        YYACCEPTACT     2
                    144: #define        YYERRACT        3
                    145: #define        YYGOTO          4
                    146: #define        YYPACTION       5
                    147: #define        YYEOFVAL        (-1)
                    148: #define        YYERRVAL        (-2)
                    149: #define        YYOTHERS        (-1000)
                    150: 
                    151: unsigned char yypdnt[117] = {
                    152: 0, 1, 1, 1, 1, 3, 5, 6,
                    153: 7, 8, 8, 9, 9, 10, 10, 12,
                    154: 13, 14, 15, 16, 17, 18, 2, 2,
                    155: 2, 2, 2, 19, 19, 19, 20, 20,
                    156: 21, 22, 23, 23, 23, 23, 23, 23,
                    157: 25, 27, 26, 26, 24, 24, 24, 24,
                    158: 24, 32, 32, 32, 32, 35, 33, 34,
                    159: 34, 34, 34, 34, 34, 38, 39, 39,
                    160: 39, 39, 39, 39, 39, 39, 39, 39,
                    161: 39, 39, 39, 39, 39, 31, 40, 37,
                    162: 28, 36, 41, 29, 29, 29, 29, 29,
                    163: 29, 29, 29, 42, 42, 47, 47, 44,
                    164: 44, 44, 48, 49, 49, 43, 43, 46,
                    165: 46, 46, 45, 45, 30, 30, 11, 11,
                    166: 11, 4, 4, 50, 50 
                    167: };
                    168: unsigned char yypn[117] = {
                    169: 2, 1, 1, 2, 0, 2, 2, 2,
                    170: 2, 2, 2, 2, 3, 1, 2, 2,
                    171: 2, 2, 2, 2, 2, 2, 1, 2,
                    172: 2, 3, 3, 1, 3, 3, 3, 1,
                    173: 2, 0, 1, 1, 2, 1, 2, 1,
                    174: 1, 6, 1, 2, 3, 2, 1, 2,
                    175: 1, 1, 2, 1, 2, 1, 1, 1,
                    176: 2, 1, 2, 1, 2, 1, 1, 1,
                    177: 1, 1, 1, 1, 1, 1, 1, 1,
                    178: 1, 1, 1, 1, 1, 1, 1, 1,
                    179: 1, 1, 1, 6, 5, 6, 5, 4,
                    180: 6, 3, 3, 2, 0, 2, 0, 3,
                    181: 1, 0, 3, 3, 1, 2, 0, 5,
                    182: 2, 0, 1, 0, 3, 2, 1, 1,
                    183: 2, 1, 0, 1, 2 
                    184: };
                    185: unsigned char yypgo[51] = {
                    186: 0, 0, 2, 10, 12, 46, 50, 52,
                    187: 54, 56, 58, 62, 68, 70, 72, 74,
                    188: 76, 80, 82, 84, 90, 94, 96, 98,
                    189: 100, 102, 104, 106, 108, 124, 126, 138,
                    190: 150, 156, 158, 168, 170, 178, 182, 184,
                    191: 186, 188, 190, 192, 198, 204, 218, 222,
                    192: 226, 228, 232 
                    193: };
                    194: unsigned int yygo[244] = {
                    195: YYOTHERS, 0x3, 0x0, 0x4, 0xb, 0x2f, 0xc, 0x30,
                    196: YYOTHERS, 0x41, YYOTHERS, 0x1e, 0xe, 0x34, 0x11, 0x37,
                    197: 0x16, 0x3b, 0x19, 0x3c, 0x1b, 0x3e, 0x1c, 0x3f,
                    198: 0x1d, 0x40, 0x41, 0x6b, 0x49, 0x75, 0x6d, 0x86,
                    199: 0x6f, 0x89, 0x88, 0x9c, 0x8f, 0x9f, 0x91, 0xa1,
                    200: 0x97, 0xa5, 0x98, 0xa6, YYOTHERS, 0x32, 0xa7, 0xab,
                    201: YYOTHERS, 0x6e, YYOTHERS, 0x99, YYOTHERS, 0x9a, YYOTHERS, 0x1f,
                    202: YYOTHERS, 0x70, 0x67, 0x80, YYOTHERS, 0x66, 0x64, 0x7a,
                    203: 0x6a, 0x83, YYOTHERS, 0x67, YYOTHERS, 0xf, YYOTHERS, 0x10,
                    204: YYOTHERS, 0x12, YYOTHERS, 0x20, 0x75, 0x8c, YYOTHERS, 0x21,
                    205: YYOTHERS, 0x92, YYOTHERS, 0x90, 0xf, 0x35, 0x10, 0x36,
                    206: YYOTHERS, 0x5, 0x12, 0x38, YYOTHERS, 0x6, YYOTHERS, 0x7,
                    207: YYOTHERS, 0x8, YYOTHERS, 0x22, YYOTHERS, 0x23, YYOTHERS, 0x24,
                    208: YYOTHERS, 0x47, YYOTHERS, 0x25, 0x8, 0x26, 0x14, 0x39,
                    209: 0x15, 0x3a, 0x1a, 0x3d, 0x29, 0x4b, 0x69, 0x81,
                    210: 0x81, 0x81, YYOTHERS, 0x7c, YYOTHERS, 0x27, 0x1e, 0x42,
                    211: 0x1f, 0x43, 0x6c, 0x85, 0x8c, 0x9d, 0x99, 0xa7,
                    212: YYOTHERS, 0x44, 0x8, 0x28, 0x24, 0x48, 0x28, 0x28,
                    213: 0x2b, 0x28, 0x47, 0x74, YYOTHERS, 0x5d, 0x28, 0x4a,
                    214: 0x2b, 0x62, YYOTHERS, 0x29, YYOTHERS, 0x4c, 0x4c, 0x76,
                    215: 0x5d, 0x77, 0x5f, 0x78, 0x60, 0x79, YYOTHERS, 0x5e,
                    216: YYOTHERS, 0x2a, 0x8, 0x2b, 0x28, 0x2b, 0x2b, 0x2b,
                    217: YYOTHERS, 0x5f, 0x29, 0x4d, YYOTHERS, 0x2c, YYOTHERS, 0x60,
                    218: YYOTHERS, 0x61, YYOTHERS, 0x2d, YYOTHERS, 0x2e, YYOTHERS, 0x6a,
                    219: 0x6a, 0x84, 0x83, 0x95, YYOTHERS, 0x71, 0x80, 0x93,
                    220: 0x90, 0xa0, YYOTHERS, 0x7d, 0x21, 0x46, 0x6e, 0x87,
                    221: 0x70, 0x8a, 0x92, 0xa2, 0x9a, 0xa8, 0xab, 0xac,
                    222: YYOTHERS, 0x45, 0xac, 0xad, YYOTHERS, 0x9b, 0x81, 0x94,
                    223: YYOTHERS, 0x82, YYOTHERS, 0x7e, 0x8d, 0x9e, YYOTHERS, 0x7f,
                    224: 0x39, 0x68, 0x41, 0x6c, 0x64, 0x68, 0x65, 0x7b,
                    225: 0x6a, 0x68, YYOTHERS, 0x33 
                    226: };
                    227: unsigned short yypa[174] = {
                    228: 0, 28, 32, 34, 38, 40, 46, 52,
                    229: 56, 80, 82, 86, 110, 134, 134, 138,
                    230: 138, 134, 140, 142, 144, 144, 134, 148,
                    231: 150, 134, 152, 134, 134, 134, 140, 140,
                    232: 156, 160, 164, 166, 168, 172, 174, 178,
                    233: 180, 186, 190, 226, 232, 234, 236, 238,
                    234: 240, 242, 244, 246, 250, 252, 254, 256,
                    235: 258, 260, 268, 272, 274, 276, 278, 280,
                    236: 282, 134, 284, 288, 292, 294, 298, 302,
                    237: 306, 134, 308, 310, 312, 348, 350, 352,
                    238: 354, 356, 358, 360, 362, 364, 366, 368,
                    239: 370, 372, 374, 376, 378, 380, 416, 418,
                    240: 454, 490, 492, 494, 496, 502, 506, 510,
                    241: 514, 518, 522, 530, 532, 134, 556, 564,
                    242: 570, 574, 578, 580, 582, 584, 588, 590,
                    243: 592, 594, 596, 598, 602, 606, 610, 614,
                    244: 506, 518, 618, 288, 620, 624, 626, 628,
                    245: 134, 634, 636, 638, 140, 640, 644, 134,
                    246: 506, 134, 646, 652, 656, 658, 662, 134,
                    247: 134, 140, 664, 668, 672, 674, 678, 680,
                    248: 682, 684, 686, 688, 690, 692, 694, 284,
                    249: 696, 698, 700, 556, 702, 708 
                    250: };
                    251: unsigned int yyact[710] = {
                    252: 0x2, 0xa, 0x2004, YYEOFVAL, 0x2021, 0x101, 0x2021, 0x102,
                    253: 0x2021, 0x10b, 0x2021, 0x10c, 0x2021, 0x10e, 0x2021, 0x10f,
                    254: 0x2021, 0x111, 0x2021, 0x114, 0x2021, 0x116, 0x2021, 0x117,
                    255: 0x2021, 0x28, 0x1, YYOTHERS, 0x9, 0xa, 0x6000, YYOTHERS,
                    256: 0x2001, YYOTHERS, 0xa, YYEOFVAL, 0x6000, YYOTHERS, 0x2002, YYOTHERS,
                    257: 0xb, 0x3b, 0xc, 0x26, 0x2016, YYOTHERS, 0xd, 0x100,
                    258: 0xe, 0x112, 0x201b, YYOTHERS, 0x11, 0x7c, 0x201f, YYOTHERS,
                    259: 0x13, 0x101, 0x14, 0x102, 0x15, 0x10b, 0x16, 0x10c,
                    260: 0x17, 0x10e, 0x18, 0x10f, 0x19, 0x111, 0x1a, 0x114,
                    261: 0x1b, 0x116, 0x1c, 0x117, 0x1d, 0x28, 0x6000, YYOTHERS,
                    262: 0x2003, YYOTHERS, 0x4000, YYEOFVAL, 0x6000, YYOTHERS, 0x2021, 0x101,
                    263: 0x2021, 0x102, 0x2021, 0x10b, 0x2021, 0x10c, 0x2021, 0x10e,
                    264: 0x2021, 0x10f, 0x2021, 0x111, 0x2021, 0x114, 0x2021, 0x116,
                    265: 0x2021, 0x117, 0x2021, 0x28, 0x2018, YYOTHERS, 0x2021, 0x101,
                    266: 0x2021, 0x102, 0x2021, 0x10b, 0x2021, 0x10c, 0x2021, 0x10e,
                    267: 0x2021, 0x10f, 0x2021, 0x111, 0x2021, 0x114, 0x2021, 0x116,
                    268: 0x2021, 0x117, 0x2021, 0x28, 0x2017, YYOTHERS, 0x31, 0xa,
                    269: 0x2072, YYOTHERS, 0x2021, YYOTHERS, 0x2021, YYOTHERS, 0x2052, YYOTHERS,
                    270: 0x18, 0x10f, 0x6000, YYOTHERS, 0x204e, YYOTHERS, 0x2050, YYOTHERS,
                    271: 0x18, 0x10f, 0x2027, YYOTHERS, 0x206b, 0x29, 0x2021, YYOTHERS,
                    272: 0x206b, 0x103, 0x2021, YYOTHERS, 0x2020, YYOTHERS, 0x2022, YYOTHERS,
                    273: 0x17, 0x10e, 0x2023, YYOTHERS, 0x2025, YYOTHERS, 0x49, 0x113,
                    274: 0x204f, YYOTHERS, 0x2028, YYOTHERS, 0x13, 0x101, 0x17, 0x10e,
                    275: 0x2031, YYOTHERS, 0x18, 0x10f, 0x202e, YYOTHERS, 0x13, 0x101,
                    276: 0x4e, 0x102, 0x4f, 0x104, 0x50, 0x105, 0x51, 0x107,
                    277: 0x52, 0x108, 0x53, 0x109, 0x54, 0x10a, 0x55, 0x10b,
                    278: 0x56, 0x10c, 0x57, 0x10d, 0x17, 0x10e, 0x58, 0x10f,
                    279: 0x59, 0x114, 0x5a, 0x115, 0x5b, 0x116, 0x5c, 0x117,
                    280: 0x2030, YYOTHERS, 0x13, 0x101, 0x17, 0x10e, 0x2033, YYOTHERS,
                    281: 0x2035, YYOTHERS, 0x204d, YYOTHERS, 0x2051, YYOTHERS, 0x201a, YYOTHERS,
                    282: 0x2019, YYOTHERS, 0x2073, YYOTHERS, 0x2010, YYOTHERS, 0x63, 0xa,
                    283: 0x2071, YYOTHERS, 0x200f, YYOTHERS, 0x201c, YYOTHERS, 0x201d, YYOTHERS,
                    284: 0x2011, YYOTHERS, 0x201e, YYOTHERS, 0x64, 0x10d, 0x31, 0xa,
                    285: 0x65, 0x3b, 0x6000, YYOTHERS, 0x69, 0x10d, 0x205c, YYOTHERS,
                    286: 0x2005, YYOTHERS, 0x2013, YYOTHERS, 0x2026, YYOTHERS, 0x200a, YYOTHERS,
                    287: 0x2009, YYOTHERS, 0x2012, YYOTHERS, 0x6d, 0x115, 0x6000, YYOTHERS,
                    288: 0x6f, 0x104, 0x2066, YYOTHERS, 0x206a, YYOTHERS, 0x72, 0x29,
                    289: 0x6000, YYOTHERS, 0x73, 0x103, 0x6000, YYOTHERS, 0x17, 0x10e,
                    290: 0x2024, YYOTHERS, 0x202a, YYOTHERS, 0x2032, YYOTHERS, 0x204f, YYOTHERS,
                    291: 0x13, 0x101, 0x4e, 0x102, 0x4f, 0x104, 0x50, 0x105,
                    292: 0x51, 0x107, 0x52, 0x108, 0x53, 0x109, 0x54, 0x10a,
                    293: 0x55, 0x10b, 0x56, 0x10c, 0x57, 0x10d, 0x17, 0x10e,
                    294: 0x58, 0x10f, 0x59, 0x114, 0x5a, 0x115, 0x5b, 0x116,
                    295: 0x5c, 0x117, 0x202d, YYOTHERS, 0x2036, YYOTHERS, 0x203f, YYOTHERS,
                    296: 0x2040, YYOTHERS, 0x2041, YYOTHERS, 0x2042, YYOTHERS, 0x2043, YYOTHERS,
                    297: 0x2044, YYOTHERS, 0x2045, YYOTHERS, 0x2046, YYOTHERS, 0x2047, YYOTHERS,
                    298: 0x2048, YYOTHERS, 0x203e, YYOTHERS, 0x2049, YYOTHERS, 0x204a, YYOTHERS,
                    299: 0x204b, YYOTHERS, 0x204c, YYOTHERS, 0x13, 0x101, 0x4e, 0x102,
                    300: 0x4f, 0x104, 0x50, 0x105, 0x51, 0x107, 0x52, 0x108,
                    301: 0x53, 0x109, 0x54, 0x10a, 0x55, 0x10b, 0x56, 0x10c,
                    302: 0x57, 0x10d, 0x17, 0x10e, 0x58, 0x10f, 0x59, 0x114,
                    303: 0x5a, 0x115, 0x5b, 0x116, 0x5c, 0x117, 0x2037, YYOTHERS,
                    304: 0x202f, YYOTHERS, 0x13, 0x101, 0x4e, 0x102, 0x4f, 0x104,
                    305: 0x50, 0x105, 0x51, 0x107, 0x52, 0x108, 0x53, 0x109,
                    306: 0x54, 0x10a, 0x55, 0x10b, 0x56, 0x10c, 0x57, 0x10d,
                    307: 0x17, 0x10e, 0x58, 0x10f, 0x59, 0x114, 0x5a, 0x115,
                    308: 0x5b, 0x116, 0x5c, 0x117, 0x203b, YYOTHERS, 0x13, 0x101,
                    309: 0x4e, 0x102, 0x4f, 0x104, 0x50, 0x105, 0x51, 0x107,
                    310: 0x52, 0x108, 0x53, 0x109, 0x54, 0x10a, 0x55, 0x10b,
                    311: 0x56, 0x10c, 0x57, 0x10d, 0x17, 0x10e, 0x58, 0x10f,
                    312: 0x59, 0x114, 0x5a, 0x115, 0x5b, 0x116, 0x5c, 0x117,
                    313: 0x2039, YYOTHERS, 0x203d, YYOTHERS, 0x2034, YYOTHERS, 0x2074, YYOTHERS,
                    314: 0x31, 0xa, 0x65, 0x3b, 0x200d, YYOTHERS, 0x31, 0xa,
                    315: 0x206f, YYOTHERS, 0x18, 0x10f, 0x2061, YYOTHERS, 0x64, 0x10d,
                    316: 0x6000, YYOTHERS, 0x63, 0xa, 0x206e, YYOTHERS, 0x18, 0x10f,
                    317: 0x205e, YYOTHERS, 0x6f, 0x104, 0x31, 0xa, 0x65, 0x3b,
                    318: 0x2066, YYOTHERS, 0x206d, YYOTHERS, 0x63, 0xa, 0x2071, 0x103,
                    319: 0x2071, 0x104, 0x2071, 0x105, 0x2071, 0x106, 0x2071, 0x107,
                    320: 0x2071, 0x108, 0x2071, 0x109, 0x2071, 0x10a, 0x2071, 0x115,
                    321: 0x2071, 0x29, 0x2021, YYOTHERS, 0x206b, 0x107, 0x206b, 0x108,
                    322: 0x206b, 0x10a, 0x2021, YYOTHERS, 0x31, 0xa, 0x88, 0x3b,
                    323: 0x2072, YYOTHERS, 0x206b, 0x105, 0x2021, YYOTHERS, 0x8b, 0x105,
                    324: 0x6000, YYOTHERS, 0x2059, YYOTHERS, 0x205a, YYOTHERS, 0x202b, YYOTHERS,
                    325: 0x19, 0x111, 0x6000, YYOTHERS, 0x202c, YYOTHERS, 0x2038, YYOTHERS,
                    326: 0x203c, YYOTHERS, 0x203a, YYOTHERS, 0x200e, YYOTHERS, 0x63, 0xa,
                    327: 0x2070, YYOTHERS, 0x8d, 0x7c, 0x2064, YYOTHERS, 0x8e, 0x109,
                    328: 0x6000, YYOTHERS, 0x8f, 0x106, 0x2060, YYOTHERS, 0x91, 0x29,
                    329: 0x6000, YYOTHERS, 0x205b, YYOTHERS, 0x96, 0x105, 0x6000, YYOTHERS,
                    330: 0x206c, YYOTHERS, 0x2006, YYOTHERS, 0x97, 0x107, 0x98, 0x108,
                    331: 0x2069, YYOTHERS, 0x200b, YYOTHERS, 0x2065, YYOTHERS, 0x2057, YYOTHERS,
                    332: 0x18, 0x10f, 0x6000, YYOTHERS, 0x2056, YYOTHERS, 0x206b, 0x106,
                    333: 0x206b, 0x109, 0x2021, YYOTHERS, 0xa3, 0x109, 0x6000, YYOTHERS,
                    334: 0x205d, YYOTHERS, 0xa4, 0x105, 0x6000, YYOTHERS, 0x2054, YYOTHERS,
                    335: 0x206b, 0x10a, 0x2021, YYOTHERS, 0xa9, 0x10a, 0x6000, YYOTHERS,
                    336: 0x200c, YYOTHERS, 0xaa, 0x103, 0x6000, YYOTHERS, 0x2063, YYOTHERS,
                    337: 0x2015, YYOTHERS, 0x205f, YYOTHERS, 0x2014, YYOTHERS, 0x2062, YYOTHERS,
                    338: 0x2055, YYOTHERS, 0x2053, YYOTHERS, 0x2007, YYOTHERS, 0x2008, YYOTHERS,
                    339: 0x2068, YYOTHERS, 0x2058, YYOTHERS, 0x2029, YYOTHERS, 0x97, 0x107,
                    340: 0x98, 0x108, 0x2069, YYOTHERS, 0x2067, YYOTHERS 
                    341: };
                    342: 
                    343: 
                    344: #define YYNOCHAR (-1000)
                    345: #define        yyerrok yyerrflag=0
                    346: #define        yyclearin       yylval=YYNOCHAR
                    347: int yystack[YYMAXDEPTH];
                    348: YYSTYPE yyvstack[YYMAXDEPTH], *yyv;
                    349: int yychar;
                    350: 
                    351: #ifdef YYDEBUG
                    352: int yydebug = 1;       /* No sir, not in the BSS */
                    353: #include <stdio.h>
                    354: #endif
                    355: 
                    356: short yyerrflag;
                    357: int *yys;
                    358: 
                    359: yyparse()
                    360: {
                    361:        register YYSTYPE *yypvt;
                    362:        int act;
                    363:        register unsigned *ip, yystate;
                    364:        int pno;
                    365:        yystate = 0;
                    366:        yychar = YYNOCHAR;
                    367:        yyv = &yyvstack[-1];
                    368:        yys = &yystack[-1];
                    369: 
                    370: stack:
                    371:        if( ++yys >= &yystack[YYMAXDEPTH] ) {
                    372:                write(2, "Stack overflow\n", 15);
                    373:                exit(1);
                    374:        }
                    375:        *yys = yystate;
                    376:        *++yyv = yyval;
                    377: #ifdef YYDEBUG
                    378:        if( yydebug )
                    379:                fprintf(stdout, "Stack state %d, char %d\n", yystate, yychar);
                    380: #endif
                    381: 
                    382: read:
                    383:        ip = &yyact[yypa[yystate]];
                    384:        if( ip[1] != YYNOCHAR ) {
                    385:                if( yychar == YYNOCHAR ) {
                    386:                        yychar = yylex();
                    387: #ifdef YYDEBUG
                    388:                        if( yydebug )
                    389:                                fprintf(stdout, "lex read char %d, val %d\n", yychar, yylval);
                    390: #endif
                    391:                }
                    392:                while (ip[1]!=YYNOCHAR) {
                    393:                        if (ip[1]==yychar)
                    394:                                break;
                    395:                        ip += 2;
                    396:                }
                    397:        }
                    398:        act = ip[0];
                    399:        switch( act>>YYACTSH ) {
                    400:        case YYSHIFTACT:
                    401:                if( ip[1]==YYNOCHAR )
                    402:                        goto YYerract;
                    403:                if( yychar != -1 )
                    404:                        yychar = YYNOCHAR; /* dont throw away EOF */
                    405:                yystate = act&YYAMASK;
                    406:                yyval = yylval;
                    407: #ifdef YYDEBUG
                    408:                if( yydebug )
                    409:                        fprintf(stdout, "shift %d\n", yystate);
                    410: #endif
                    411:                if( yyerrflag )
                    412:                        --yyerrflag;
                    413:                goto stack;
                    414: 
                    415:        case YYACCEPTACT:
                    416: #ifdef YYDEBUG
                    417:                if( yydebug )
                    418:                        fprintf(stdout, "accept\n");
                    419: #endif
                    420:                return(0);
                    421: 
                    422:        case YYERRACT:
                    423:        YYerract:
                    424:                switch (yyerrflag) {
                    425:                case 0:
                    426:                        yyerror("Syntax error");
                    427: 
                    428:                case 1:
                    429:                case 2:
                    430: 
                    431:                        yyerrflag = 3;
                    432:                        while( yys >= & yystack[0] ) {
                    433:                                ip = &yyact[yypa[*yys]];
                    434:                                while( ip[1]!=YYNOCHAR )
                    435:                                        ip += 2;
                    436:                                if( (*ip&~YYAMASK) == (YYSHIFTACT<<YYACTSH) ) {
                    437:                                        yystate = *ip&YYAMASK;
                    438:                                        goto stack;
                    439:                                }
                    440: #ifdef YYDEBUG
                    441:                                if( yydebug )
                    442:                                        fprintf(stderr, "error recovery leaves state %d, uncovers %d\n", *yys, yys[-1]);
                    443: #endif
                    444:                                yys--;
                    445:                                yyv--;
                    446:                        }
                    447: #ifdef YYDEBUG
                    448:                        if( yydebug )
                    449:                                fprintf(stderr, "no shift on error; abort\n");
                    450: #endif
                    451:                        return(1);
                    452: 
                    453:                case 3:
                    454: #ifdef YYDEBUG
                    455:                        if( yydebug )
                    456:                                fprintf(stderr, "Error recovery clobbers char %o\n", yychar);
                    457: #endif
                    458:                        if( yychar==YYEOFVAL )
                    459:                                return(1);
                    460:                        yychar = YYNOCHAR;
                    461:                        goto read;
                    462:                }
                    463: 
                    464:        case YYREDACT:
                    465:                pno = act&YYAMASK;
                    466: #ifdef YYDEBUG
                    467:                if( yydebug )
                    468:                        fprintf(stdout, "reduce %d\n", pno);
                    469: #endif
                    470:                yypvt = yyv;
                    471:                yyv -= yypn[pno];
                    472:                yys -= yypn[pno];
                    473:                yyval = yyv[1];
                    474:                switch(pno) {
                    475: 
                    476: case 1: {
                    477: 
                    478: #line 66 "sh.y"
                    479: 
                    480:                sesp->s_node = NULL;
                    481:                reset (RCMD);
                    482:                NOTREACHED;
                    483:        }break;
                    484: 
                    485: case 2: {
                    486: 
                    487: #line 72 "sh.y"
                    488: 
                    489:                sesp->s_node = yypvt[0].yu_node;
                    490:                reset (errflag ? RERR : RCMD);
                    491:                NOTREACHED;
                    492:        }break;
                    493: 
                    494: case 3: {
                    495: 
                    496: #line 77 "sh.y"
                    497: 
                    498:                keyflush ();
                    499:                keyflag = 1;
                    500:                reset (RERR);
                    501:                NOTREACHED;
                    502:        }break;
                    503: 
                    504: case 9: {
                    505: 
                    506: #line 95 "sh.y"
                    507:        yyval.yu_nval = NWHILE; }break;
                    508: 
                    509: case 10: {
                    510: 
                    511: #line 96 "sh.y"
                    512:        yyval.yu_nval = NUNTIL; }break;
                    513: 
                    514: case 22: {
                    515: 
                    516: #line 118 "sh.y"
                    517: 
                    518:                yyval.yu_node = yypvt[0].yu_node;
                    519:        }break;
                    520: 
                    521: case 23: {
                    522: 
                    523: #line 121 "sh.y"
                    524: 
                    525:                yyval.yu_node = node(NBACK, yypvt[-1].yu_node, NULL);
                    526:        }break;
                    527: 
                    528: case 24: {
                    529: 
                    530: #line 124 "sh.y"
                    531: 
                    532:                yyval.yu_node = yypvt[-1].yu_node;
                    533:        }break;
                    534: 
                    535: case 25: {
                    536: 
                    537: #line 127 "sh.y"
                    538: 
                    539:                yyval.yu_node = node(NBACK, yypvt[-2].yu_node, yypvt[0].yu_node);
                    540:        }break;
                    541: 
                    542: case 26: {
                    543: 
                    544: #line 130 "sh.y"
                    545: 
                    546:                yyval.yu_node = node(NLIST, yypvt[-2].yu_node, yypvt[0].yu_node);
                    547:        }break;
                    548: 
                    549: case 27: {
                    550: 
                    551: #line 136 "sh.y"
                    552: 
                    553:                yyval.yu_node = yypvt[0].yu_node;
                    554:        }break;
                    555: 
                    556: case 28: {
                    557: 
                    558: #line 139 "sh.y"
                    559: 
                    560:                yyval.yu_node = node(NORF, yypvt[-2].yu_node, yypvt[0].yu_node);
                    561:        }break;
                    562: 
                    563: case 29: {
                    564: 
                    565: #line 142 "sh.y"
                    566: 
                    567:                yyval.yu_node = node(NANDF, yypvt[-2].yu_node, yypvt[0].yu_node);
                    568:        }break;
                    569: 
                    570: case 30: {
                    571: 
                    572: #line 148 "sh.y"
                    573: 
                    574:                yyval.yu_node = node(NPIPE, yypvt[-2].yu_node, yypvt[0].yu_node);
                    575:        }break;
                    576: 
                    577: case 31: {
                    578: 
                    579: #line 151 "sh.y"
                    580: 
                    581:                yyval.yu_node = yypvt[0].yu_node;
                    582:        }break;
                    583: 
                    584: case 32: {
                    585: 
                    586: #line 163 "sh.y"
                    587: 
                    588:                yyval.yu_node = yypvt[0].yu_node;
                    589:                keypop ();
                    590:        }break;
                    591: 
                    592: case 33: {
                    593: 
                    594: #line 169 "sh.y"
                    595: 
                    596:                keypush ();
                    597:                keyflag = 1;
                    598:        }break;
                    599: 
                    600: case 34: {
                    601: 
                    602: #line 176 "sh.y"
                    603: 
                    604:                yyval.yu_node = node (NCOMS, yypvt[0].yu_node, NULL);
                    605:        }break;
                    606: 
                    607: case 35: {
                    608: 
                    609: #line 179 "sh.y"
                    610: 
                    611:                yyval.yu_node = node (NCOMS, yypvt[0].yu_node, NULL);
                    612:        }break;
                    613: 
                    614: case 36: {
                    615: 
                    616: #line 182 "sh.y"
                    617: 
                    618:                yypvt[-1].yu_node->n_next = yypvt[0].yu_node;
                    619:                yyval.yu_node = node (NCOMS, yypvt[-1].yu_node, NULL);
                    620:        }break;
                    621: 
                    622: case 37: {
                    623: 
                    624: #line 186 "sh.y"
                    625: 
                    626:                yyval.yu_node = node (NCOMS, yypvt[0].yu_node, NULL);
                    627:        }break;
                    628: 
                    629: case 38: {
                    630: 
                    631: #line 189 "sh.y"
                    632: 
                    633:                yyval.yu_node = node (NRET, yypvt[0].yu_strp, NULL);
                    634:        }break;
                    635: 
                    636: case 39: {
                    637: 
                    638: #line 192 "sh.y"
                    639: 
                    640:                yyval.yu_node = node (NRET, "", NULL);
                    641:        }break;
                    642: 
                    643: case 40: {
                    644: 
                    645: #line 198 "sh.y"
                    646: 
                    647:                yyval.yu_node = node (NCTRL, yypvt[0].yu_node, NULL);
                    648:        }break;
                    649: 
                    650: case 41: {
                    651: 
                    652: #line 204 "sh.y"
                    653: 
                    654:                yyval.yu_node = node (NCTRL, node (NFUNC, yypvt[-5].yu_strp, yypvt[-1].yu_node), NULL);
                    655:        }break;
                    656: 
                    657: case 42: {
                    658: 
                    659: #line 210 "sh.y"
                    660: 
                    661:                yyval.yu_node = yypvt[0].yu_node;
                    662:        }break;
                    663: 
                    664: case 43: {
                    665: 
                    666: #line 213 "sh.y"
                    667: 
                    668:                (yyval.yu_node = yypvt[-1].yu_node)->n_next = yypvt[0].yu_node;
                    669:        }break;
                    670: 
                    671: case 44: {
                    672: 
                    673: #line 219 "sh.y"
                    674: 
                    675:                NODE          * tmp = yypvt[-2].yu_node;
                    676:                /*
                    677:                 * NIGEL: The structure of the nodes that have to be generated
                    678:                 * is flat, but now the grammar is structured; deal with this.
                    679:                 */
                    680: 
                    681:                while (tmp->n_next)
                    682:                        tmp = tmp->n_next;
                    683: 
                    684:                (tmp->n_next = yypvt[-1].yu_node)->n_next = yypvt[0].yu_node;
                    685:                yyval.yu_node = yypvt[-2].yu_node;
                    686:        }break;
                    687: 
                    688: case 45: {
                    689: 
                    690: #line 232 "sh.y"
                    691: 
                    692:                NODE          * tmp = yypvt[-1].yu_node;
                    693:                /*
                    694:                 * NIGEL: The structure of the nodes that have to be generated
                    695:                 * is flat, but now the grammar is structured; deal with this.
                    696:                 */
                    697: 
                    698:                while (tmp->n_next)
                    699:                        tmp = tmp->n_next;
                    700: 
                    701:                tmp->n_next = yypvt[0].yu_node;
                    702:                yyval.yu_node = yypvt[-1].yu_node;
                    703:        }break;
                    704: 
                    705: case 46: {
                    706: 
                    707: #line 245 "sh.y"
                    708: 
                    709:                yyval.yu_node = yypvt[0].yu_node;
                    710:        }break;
                    711: 
                    712: case 47: {
                    713: 
                    714: #line 248 "sh.y"
                    715: 
                    716:                (yyval.yu_node = yypvt[-1].yu_node)->n_next = yypvt[0].yu_node;
                    717:        }break;
                    718: 
                    719: case 48: {
                    720: 
                    721: #line 251 "sh.y"
                    722: 
                    723:                yyval.yu_node = yypvt[0].yu_node;
                    724:        }break;
                    725: 
                    726: case 49: {
                    727: 
                    728: #line 257 "sh.y"
                    729: 
                    730:                yyval.yu_node = yypvt[0].yu_node;
                    731:        }break;
                    732: 
                    733: case 50: {
                    734: 
                    735: #line 260 "sh.y"
                    736: 
                    737:                (yyval.yu_node = yypvt[-1].yu_node)->n_next = yypvt[0].yu_node;
                    738:        }break;
                    739: 
                    740: case 51: {
                    741: 
                    742: #line 263 "sh.y"
                    743: 
                    744:                yyval.yu_node = yypvt[0].yu_node;
                    745:        }break;
                    746: 
                    747: case 52: {
                    748: 
                    749: #line 266 "sh.y"
                    750: 
                    751:                (yyval.yu_node = yypvt[-1].yu_node)->n_next = yypvt[0].yu_node;
                    752:        }break;
                    753: 
                    754: case 53: {
                    755: 
                    756: #line 272 "sh.y"
                    757: 
                    758:                yyval.yu_node = yypvt[0].yu_node;
                    759:                keyflag = 0;
                    760:        }break;
                    761: 
                    762: case 54: {
                    763: 
                    764: #line 279 "sh.y"
                    765: 
                    766:                yyval.yu_node = yypvt[0].yu_node;
                    767:                keyflag = 0;
                    768:        }break;
                    769: 
                    770: case 55: {
                    771: 
                    772: #line 294 "sh.y"
                    773: 
                    774:                yyval.yu_node = yypvt[0].yu_node;
                    775:        }break;
                    776: 
                    777: case 56: {
                    778: 
                    779: #line 297 "sh.y"
                    780: 
                    781:                (yyval.yu_node = yypvt[-1].yu_node)->n_next = yypvt[0].yu_node;
                    782:        }break;
                    783: 
                    784: case 57: {
                    785: 
                    786: #line 300 "sh.y"
                    787: 
                    788:                yyval.yu_node = yypvt[0].yu_node;
                    789:        }break;
                    790: 
                    791: case 58: {
                    792: 
                    793: #line 303 "sh.y"
                    794: 
                    795:                (yyval.yu_node = yypvt[-1].yu_node)->n_next = yypvt[0].yu_node;
                    796:        }break;
                    797: 
                    798: case 59: {
                    799: 
                    800: #line 306 "sh.y"
                    801: 
                    802:                yyval.yu_node = yypvt[0].yu_node;
                    803:        }break;
                    804: 
                    805: case 60: {
                    806: 
                    807: #line 309 "sh.y"
                    808: 
                    809:                (yyval.yu_node = yypvt[-1].yu_node)->n_next = yypvt[0].yu_node;
                    810:        }break;
                    811: 
                    812: case 61: {
                    813: 
                    814: #line 315 "sh.y"
                    815: 
                    816:                yyval.yu_node = node (NARGS, duplstr (strt, 0), NULL);
                    817:        }break;
                    818: 
                    819: case 77: {
                    820: 
                    821: #line 406 "sh.y"
                    822: 
                    823:                yyval.yu_node = node (NIORS, yypvt[0].yu_strp, NULL);
                    824:        }break;
                    825: 
                    826: case 78: {
                    827: 
                    828: #line 411 "sh.y"
                    829: 
                    830:                yyval.yu_strp = duplstr (strt, 0);
                    831:        }break;
                    832: 
                    833: case 79: {
                    834: 
                    835: #line 416 "sh.y"
                    836: 
                    837:                yyval.yu_node = node (NARGS, yypvt[0].yu_strp, NULL);
                    838:        }break;
                    839: 
                    840: case 80: {
                    841: 
                    842: #line 421 "sh.y"
                    843: 
                    844:                yyval.yu_strp = duplstr (strt, 0);
                    845:        }break;
                    846: 
                    847: case 81: {
                    848: 
                    849: #line 427 "sh.y"
                    850: 
                    851:                yyval.yu_node = node (NASSG, yypvt[0].yu_strp, NULL);
                    852:        }break;
                    853: 
                    854: case 82: {
                    855: 
                    856: #line 432 "sh.y"
                    857: 
                    858:                yyval.yu_strp = duplstr (strt, 0);
                    859:        }break;
                    860: 
                    861: case 83: {
                    862: 
                    863: #line 438 "sh.y"
                    864: 
                    865:                yyval.yu_node = node(NFOR, yypvt[-4].yu_strp, node(NFOR2, yypvt[-3].yu_node, node(NLIST, yypvt[-1].yu_node, NULL)));
                    866:                yyval.yu_node->n_next->n_next->n_next = yyval.yu_node->n_next;
                    867:        }break;
                    868: 
                    869: case 84: {
                    870: 
                    871: #line 442 "sh.y"
                    872: 
                    873:                yyval.yu_node = node(NFOR, yypvt[-3].yu_strp, node(NFOR2, yypvt[-2].yu_node, node(NLIST, yypvt[-1].yu_node, NULL)));
                    874:                yyval.yu_node->n_next->n_next->n_next = yyval.yu_node->n_next;
                    875:        }break;
                    876: 
                    877: case 85: {
                    878: 
                    879: #line 446 "sh.y"
                    880: 
                    881:                yyval.yu_node = node(NCASE, yypvt[-4].yu_strp, yypvt[-1].yu_node);
                    882:        }break;
                    883: 
                    884: case 86: {
                    885: 
                    886: #line 449 "sh.y"
                    887: 
                    888:                yyval.yu_node = node(NCASE, yypvt[-3].yu_strp, yypvt[-1].yu_node);
                    889:        }break;
                    890: 
                    891: case 87: {
                    892: 
                    893: #line 452 "sh.y"
                    894: 
                    895:                yyval.yu_node = node(yypvt[-3].yu_nval, yypvt[-2].yu_node, node(NLIST, yypvt[-1].yu_node, NULL));
                    896:                yyval.yu_node->n_next->n_next = yyval.yu_node;
                    897:        }break;
                    898: 
                    899: case 88: {
                    900: 
                    901: #line 456 "sh.y"
                    902: 
                    903:                yyval.yu_node = node(NIF, node(NNULL, yypvt[-4].yu_node, yypvt[-2].yu_node), yypvt[-1].yu_node);
                    904:        }break;
                    905: 
                    906: case 89: {
                    907: 
                    908: #line 459 "sh.y"
                    909: 
                    910:                yyval.yu_node = node(NPARN, yypvt[-1].yu_node, NULL);
                    911:        }break;
                    912: 
                    913: case 90: {
                    914: 
                    915: #line 462 "sh.y"
                    916: 
                    917:                yyval.yu_node = node(NBRAC, yypvt[-1].yu_node, NULL);
                    918:        }break;
                    919: 
                    920: case 91: {
                    921: 
                    922: #line 468 "sh.y"
                    923: 
                    924:                yyval.yu_node = yypvt[0].yu_node;
                    925:        }break;
                    926: 
                    927: case 92: {
                    928: 
                    929: #line 471 "sh.y"
                    930: 
                    931:                yyval.yu_node = node(NARGS, "\"$@\"", NULL);
                    932:        }break;
                    933: 
                    934: case 93: {
                    935: 
                    936: #line 477 "sh.y"
                    937: 
                    938:                yyval.yu_node = node(NARGS, yypvt[-1].yu_strp, yypvt[0].yu_node);
                    939:        }break;
                    940: 
                    941: case 94: {
                    942: 
                    943: #line 480 "sh.y"
                    944: 
                    945:                yyval.yu_node = NULL;
                    946:        }break;
                    947: 
                    948: case 95: {
                    949: 
                    950: #line 486 "sh.y"
                    951: 
                    952:                register NODE *np;
                    953: 
                    954:                for (np=yypvt[-2].yu_node; np->n_next; np=np->n_next)
                    955:                        ;
                    956:                np->n_next = yypvt[0].yu_node;
                    957:                yyval.yu_node = yypvt[-2].yu_node;
                    958:        }break;
                    959: 
                    960: case 96: {
                    961: 
                    962: #line 494 "sh.y"
                    963: 
                    964:                yyval.yu_node = yypvt[0].yu_node;
                    965:        }break;
                    966: 
                    967: case 97: {
                    968: 
                    969: #line 497 "sh.y"
                    970: 
                    971:                yyval.yu_node = NULL;
                    972:        }break;
                    973: 
                    974: case 98: {
                    975: 
                    976: #line 503 "sh.y"
                    977: 
                    978:                yyval.yu_node = node(NCASE2, yypvt[0].yu_node, yypvt[-2].yu_node);
                    979:        }break;
                    980: 
                    981: case 99: {
                    982: 
                    983: #line 509 "sh.y"
                    984: 
                    985:                yyval.yu_node = node(NCASE3, yypvt[-2].yu_strp, yypvt[0].yu_node);
                    986:        }break;
                    987: 
                    988: case 100: {
                    989: 
                    990: #line 512 "sh.y"
                    991: 
                    992:                yyval.yu_node = node(NCASE3, yypvt[0].yu_strp, NULL);
                    993:        }break;
                    994: 
                    995: case 101: {
                    996: 
                    997: #line 518 "sh.y"
                    998: 
                    999:                yyval.yu_node = yypvt[0].yu_node;
                   1000:        }break;
                   1001: 
                   1002: case 102: {
                   1003: 
                   1004: #line 521 "sh.y"
                   1005: 
                   1006:                yyval.yu_node = NULL;
                   1007:        }break;
                   1008: 
                   1009: case 103: {
                   1010: 
                   1011: #line 527 "sh.y"
                   1012: 
                   1013:                yyval.yu_node = node(NIF, node(NNULL, yypvt[-3].yu_node, yypvt[-1].yu_node), yypvt[0].yu_node);
                   1014:        }break;
                   1015: 
                   1016: case 104: {
                   1017: 
                   1018: #line 530 "sh.y"
                   1019: 
                   1020:                yyval.yu_node = node(NELSE, yypvt[0].yu_node, NULL);
                   1021:        }break;
                   1022: 
                   1023: case 105: {
                   1024: 
                   1025: #line 533 "sh.y"
                   1026: 
                   1027:                yyval.yu_node = NULL;
                   1028:        }break;
                   1029: 
                   1030: case 106: {
                   1031: 
                   1032: #line 539 "sh.y"
                   1033: 
                   1034:                yyval.yu_node = yypvt[0].yu_node;
                   1035:        }break;
                   1036: 
                   1037: case 107: {
                   1038: 
                   1039: #line 543 "sh.y"
                   1040: 
                   1041:                yyval.yu_node = NULL;
                   1042:        }break;
                   1043: 
                   1044: case 108: {
                   1045: 
                   1046: #line 549 "sh.y"
                   1047: 
                   1048:                yyval.yu_node = node(NLIST, yypvt[-2].yu_node, yypvt[0].yu_node);
                   1049:        }break;
                   1050: 
                   1051: case 109: {
                   1052: 
                   1053: #line 552 "sh.y"
                   1054: 
                   1055:                yyval.yu_node = yypvt[-1].yu_node;
                   1056:        }break;
                   1057: 
                   1058:                }
                   1059:                ip = &yygo[ yypgo[yypdnt[pno]] ];
                   1060:                while( *ip!=*yys && *ip!=YYNOCHAR )
                   1061:                        ip += 2;
                   1062:                yystate = ip[1];
                   1063:                goto stack;
                   1064:        }
                   1065: }
                   1066: 
                   1067: 
                   1068: 
                   1069: 

unix.superglobalmegacorp.com

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