Annotation of coherent/d/bin/sh/y.tab.c, revision 1.1

1.1     ! root        1: 
        !             2: #line 9 "/usr/src/cmd0/sh/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 347 "/usr/src/cmd0/sh/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:  *
        !            97:  */
        !            98: 
        !            99: /* end of sh/sh.y */
        !           100: #ifdef YYTNAMES
        !           101: readonly struct yytname yytnames[31] =
        !           102: {
        !           103:        "$end", -1, 
        !           104:        "error", -2, 
        !           105:        "_ANDF", 256, 
        !           106:        "_ASGN", 257, 
        !           107:        "_CASE", 258, 
        !           108:        "_CBRAC", 259, 
        !           109:        "_DO", 260, 
        !           110:        "_DONE", 261, 
        !           111:        "_DSEMI", 262, 
        !           112:        "_ELIF", 263, 
        !           113:        "_ELSE", 264, 
        !           114:        "_ESAC", 265, 
        !           115:        "_FI", 266, 
        !           116:        "_FOR", 267, 
        !           117:        "_IF", 268, 
        !           118:        "_IN", 269, 
        !           119:        "_IORS", 270, 
        !           120:        "_NAME", 271, 
        !           121:        "_NULL", 272, 
        !           122:        "_OBRAC", 273, 
        !           123:        "_ORF", 274, 
        !           124:        "_THEN", 275, 
        !           125:        "_UNTIL", 276, 
        !           126:        "_WHILE", 277, 
        !           127:        "'\\n'", 10, 
        !           128:        "';'", 59, 
        !           129:        "'|'", 124, 
        !           130:        "'('", 40, 
        !           131:        "')'", 41, 
        !           132:        "'&'", 38, 
        !           133:        NULL
        !           134: } ;
        !           135: #endif
        !           136: #include <action.h>
        !           137: readonly unsigned char yypdnt[78] = {
        !           138: 0, 1, 1, 2, 2, 2, 4, 6,
        !           139: 7, 8, 9, 9, 10, 10, 11, 11,
        !           140: 13, 14, 15, 16, 17, 18, 19, 3,
        !           141: 3, 3, 3, 3, 20, 20, 20, 21,
        !           142: 21, 22, 23, 24, 24, 25, 25, 25,
        !           143: 25, 26, 27, 28, 29, 29, 29, 29,
        !           144: 29, 29, 29, 29, 30, 30, 36, 36,
        !           145: 32, 32, 32, 37, 38, 38, 31, 31,
        !           146: 35, 35, 35, 34, 34, 33, 33, 12,
        !           147: 12, 12, 5, 5, 39, 39 
        !           148: };
        !           149: readonly unsigned char yypn[78] = {
        !           150: 2, 2, 0, 1, 2, 2, 2, 2,
        !           151: 2, 2, 2, 2, 2, 3, 1, 2,
        !           152: 2, 2, 2, 2, 2, 2, 2, 1,
        !           153: 2, 2, 3, 3, 1, 3, 3, 3,
        !           154: 1, 2, 0, 2, 1, 1, 1, 1,
        !           155: 1, 1, 1, 1, 6, 5, 6, 5,
        !           156: 4, 6, 3, 3, 2, 0, 2, 0,
        !           157: 3, 1, 0, 3, 3, 1, 2, 0,
        !           158: 5, 2, 0, 1, 0, 3, 2, 1,
        !           159: 1, 2, 1, 0, 1, 2 
        !           160: };
        !           161: readonly unsigned char yypgo[40] = {
        !           162: 0, 0, 2, 4, 12, 14, 46, 50,
        !           163: 52, 54, 56, 58, 62, 68, 70, 72,
        !           164: 74, 76, 78, 80, 82, 88, 92, 94,
        !           165: 96, 100, 102, 104, 118, 120, 122, 124,
        !           166: 130, 136, 146, 160, 164, 168, 170, 174
        !           167: };
        !           168: readonly unsigned int yygo[186] = {
        !           169: YYOTHERS, 0x1, YYOTHERS, 0x5, 0x1, 0x6, 0xd, 0x29,
        !           170: 0xe, 0x2a, YYOTHERS, 0x3a, YYOTHERS, 0x1f, 0x10, 0x2e,
        !           171: 0x13, 0x31, 0x18, 0x35, 0x1b, 0x36, 0x1c, 0x37,
        !           172: 0x1d, 0x38, 0x1e, 0x39, 0x3a, 0x49, 0x4b, 0x5e,
        !           173: 0x4d, 0x61, 0x60, 0x73, 0x66, 0x75, 0x68, 0x77,
        !           174: 0x6e, 0x7b, 0x6f, 0x7c, YYOTHERS, 0x2c, 0x7d, 0x80,
        !           175: YYOTHERS, 0x4c, YYOTHERS, 0x70, YYOTHERS, 0x71, YYOTHERS, 0x20,
        !           176: YYOTHERS, 0x4e, 0x45, 0x58, YYOTHERS, 0x44, 0x42, 0x52,
        !           177: 0x48, 0x5b, YYOTHERS, 0x45, YYOTHERS, 0x11, YYOTHERS, 0x12,
        !           178: YYOTHERS, 0x14, YYOTHERS, 0x21, YYOTHERS, 0x22, YYOTHERS, 0x69,
        !           179: YYOTHERS, 0x67, 0x11, 0x2f, 0x12, 0x30, YYOTHERS, 0x7,
        !           180: 0x14, 0x32, YYOTHERS, 0x8, YYOTHERS, 0x9, YYOTHERS, 0xa,
        !           181: 0x24, 0x40, YYOTHERS, 0x23, YYOTHERS, 0x24, YYOTHERS, 0x25,
        !           182: 0xa, 0x26, 0x16, 0x33, 0x17, 0x34, 0x24, 0x26,
        !           183: 0x47, 0x59, 0x59, 0x59, YYOTHERS, 0x54, YYOTHERS, 0x27,
        !           184: YYOTHERS, 0x28, YYOTHERS, 0x48, 0x48, 0x5c, 0x5b, 0x6c,
        !           185: YYOTHERS, 0x4f, 0x58, 0x6a, 0x67, 0x76, YYOTHERS, 0x55,
        !           186: 0x1f, 0x3b, 0x20, 0x3c, 0x4a, 0x5d, 0x70, 0x7d,
        !           187: YYOTHERS, 0x3d, 0x22, 0x3f, 0x4c, 0x5f, 0x4e, 0x62,
        !           188: 0x69, 0x78, 0x71, 0x7e, 0x80, 0x81, YYOTHERS, 0x3e,
        !           189: 0x81, 0x82, YYOTHERS, 0x72, 0x59, 0x6b, YYOTHERS, 0x5a,
        !           190: YYOTHERS, 0x56, 0x64, 0x74, YYOTHERS, 0x57, 0x33, 0x46,
        !           191: 0x3a, 0x4a, 0x42, 0x46, 0x43, 0x53, 0x48, 0x46,
        !           192: YYOTHERS, 0x2d 
        !           193: };
        !           194: readonly unsigned short yypa[131] = {
        !           195: 0, 2, 28, 32, 36, 38, 40, 44,
        !           196: 50, 56, 60, 82, 84, 86, 108, 130,
        !           197: 130, 134, 134, 130, 136, 138, 140, 140,
        !           198: 130, 144, 146, 130, 130, 130, 130, 136,
        !           199: 136, 148, 152, 156, 158, 180, 182, 184,
        !           200: 186, 188, 190, 192, 194, 196, 200, 202,
        !           201: 204, 206, 208, 210, 218, 222, 224, 226,
        !           202: 228, 230, 130, 232, 236, 240, 242, 246,
        !           203: 250, 252, 254, 260, 264, 268, 272, 276,
        !           204: 280, 288, 290, 130, 314, 322, 328, 332,
        !           205: 336, 338, 340, 342, 346, 350, 354, 358,
        !           206: 264, 276, 362, 236, 364, 368, 370, 372,
        !           207: 130, 378, 380, 382, 384, 388, 130, 264,
        !           208: 130, 390, 396, 400, 402, 406, 130, 130,
        !           209: 136, 408, 412, 416, 418, 420, 422, 424,
        !           210: 426, 428, 430, 432, 434, 232, 436, 438,
        !           211: 314, 440, 446 
        !           212: };
        !           213: readonly unsigned int yyact[448] = {
        !           214: 0x2002, YYOTHERS, 0x2, YYEOFVAL, 0x4, 0xa, 0x2022, 0x101,
        !           215: 0x2022, 0x102, 0x2022, 0x10b, 0x2022, 0x10c, 0x2022, 0x10e,
        !           216: 0x2022, 0x10f, 0x2022, 0x111, 0x2022, 0x114, 0x2022, 0x115,
        !           217: 0x2022, 0x28, 0x3, YYOTHERS, 0x4000, YYEOFVAL, 0x6000, YYOTHERS,
        !           218: 0xb, 0xa, 0x6000, YYOTHERS, 0x2003, YYOTHERS, 0x2001, YYOTHERS,
        !           219: 0xc, 0xa, 0x6000, YYOTHERS, 0xd, 0x3b, 0xe, 0x26,
        !           220: 0x2017, YYOTHERS, 0xf, 0x100, 0x10, 0x112, 0x201c, YYOTHERS,
        !           221: 0x13, 0x7c, 0x2020, YYOTHERS, 0x15, 0x101, 0x16, 0x102,
        !           222: 0x17, 0x10b, 0x18, 0x10c, 0x19, 0x10e, 0x1a, 0x10f,
        !           223: 0x1b, 0x111, 0x1c, 0x114, 0x1d, 0x115, 0x1e, 0x28,
        !           224: 0x6000, YYOTHERS, 0x2005, YYOTHERS, 0x2004, YYOTHERS, 0x2022, 0x101,
        !           225: 0x2022, 0x102, 0x2022, 0x10b, 0x2022, 0x10c, 0x2022, 0x10e,
        !           226: 0x2022, 0x10f, 0x2022, 0x111, 0x2022, 0x114, 0x2022, 0x115,
        !           227: 0x2022, 0x28, 0x2019, YYOTHERS, 0x2022, 0x101, 0x2022, 0x102,
        !           228: 0x2022, 0x10b, 0x2022, 0x10c, 0x2022, 0x10e, 0x2022, 0x10f,
        !           229: 0x2022, 0x111, 0x2022, 0x114, 0x2022, 0x115, 0x2022, 0x28,
        !           230: 0x2018, YYOTHERS, 0x2b, 0xa, 0x204b, YYOTHERS, 0x2022, YYOTHERS,
        !           231: 0x2022, YYOTHERS, 0x202b, YYOTHERS, 0x1a, 0x10f, 0x6000, YYOTHERS,
        !           232: 0x2029, YYOTHERS, 0x202a, YYOTHERS, 0x2044, 0x29, 0x2022, YYOTHERS,
        !           233: 0x2044, 0x103, 0x2022, YYOTHERS, 0x2021, YYOTHERS, 0x15, 0x101,
        !           234: 0x16, 0x102, 0x17, 0x10b, 0x18, 0x10c, 0x19, 0x10e,
        !           235: 0x1a, 0x10f, 0x1b, 0x111, 0x1c, 0x114, 0x1d, 0x115,
        !           236: 0x1e, 0x28, 0x2024, YYOTHERS, 0x2025, YYOTHERS, 0x2026, YYOTHERS,
        !           237: 0x2027, YYOTHERS, 0x2028, YYOTHERS, 0x201b, YYOTHERS, 0x201a, YYOTHERS,
        !           238: 0x204c, YYOTHERS, 0x2011, YYOTHERS, 0x41, 0xa, 0x204a, YYOTHERS,
        !           239: 0x2010, YYOTHERS, 0x201d, YYOTHERS, 0x201e, YYOTHERS, 0x2012, YYOTHERS,
        !           240: 0x201f, YYOTHERS, 0x42, 0x10d, 0x2b, 0xa, 0x43, 0x3b,
        !           241: 0x6000, YYOTHERS, 0x47, 0x10d, 0x2035, YYOTHERS, 0x2006, YYOTHERS,
        !           242: 0x2014, YYOTHERS, 0x200b, YYOTHERS, 0x200a, YYOTHERS, 0x2013, YYOTHERS,
        !           243: 0x4b, 0x113, 0x6000, YYOTHERS, 0x4d, 0x104, 0x203f, YYOTHERS,
        !           244: 0x2043, YYOTHERS, 0x50, 0x29, 0x6000, YYOTHERS, 0x51, 0x103,
        !           245: 0x6000, YYOTHERS, 0x2023, YYOTHERS, 0x204d, YYOTHERS, 0x2b, 0xa,
        !           246: 0x43, 0x3b, 0x200e, YYOTHERS, 0x2b, 0xa, 0x2048, YYOTHERS,
        !           247: 0x1a, 0x10f, 0x203a, YYOTHERS, 0x42, 0x10d, 0x6000, YYOTHERS,
        !           248: 0x41, 0xa, 0x2047, YYOTHERS, 0x1a, 0x10f, 0x2037, YYOTHERS,
        !           249: 0x4d, 0x104, 0x2b, 0xa, 0x43, 0x3b, 0x203f, YYOTHERS,
        !           250: 0x2046, YYOTHERS, 0x41, 0xa, 0x204a, 0x103, 0x204a, 0x104,
        !           251: 0x204a, 0x105, 0x204a, 0x106, 0x204a, 0x107, 0x204a, 0x108,
        !           252: 0x204a, 0x109, 0x204a, 0x10a, 0x204a, 0x113, 0x204a, 0x29,
        !           253: 0x2022, YYOTHERS, 0x2044, 0x107, 0x2044, 0x108, 0x2044, 0x10a,
        !           254: 0x2022, YYOTHERS, 0x2b, 0xa, 0x60, 0x3b, 0x204b, YYOTHERS,
        !           255: 0x2044, 0x105, 0x2022, YYOTHERS, 0x63, 0x105, 0x6000, YYOTHERS,
        !           256: 0x2032, YYOTHERS, 0x2033, YYOTHERS, 0x200f, YYOTHERS, 0x41, 0xa,
        !           257: 0x2049, YYOTHERS, 0x64, 0x7c, 0x203d, YYOTHERS, 0x65, 0x109,
        !           258: 0x6000, YYOTHERS, 0x66, 0x106, 0x2039, YYOTHERS, 0x68, 0x29,
        !           259: 0x6000, YYOTHERS, 0x2034, YYOTHERS, 0x6d, 0x105, 0x6000, YYOTHERS,
        !           260: 0x2045, YYOTHERS, 0x2007, YYOTHERS, 0x6e, 0x107, 0x6f, 0x108,
        !           261: 0x2042, YYOTHERS, 0x200c, YYOTHERS, 0x203e, YYOTHERS, 0x2030, YYOTHERS,
        !           262: 0x1a, 0x10f, 0x6000, YYOTHERS, 0x202f, YYOTHERS, 0x2044, 0x106,
        !           263: 0x2044, 0x109, 0x2022, YYOTHERS, 0x79, 0x109, 0x6000, YYOTHERS,
        !           264: 0x2036, YYOTHERS, 0x7a, 0x105, 0x6000, YYOTHERS, 0x202d, YYOTHERS,
        !           265: 0x2044, 0x10a, 0x2022, YYOTHERS, 0x7f, 0x10a, 0x6000, YYOTHERS,
        !           266: 0x200d, YYOTHERS, 0x203c, YYOTHERS, 0x2016, YYOTHERS, 0x2038, YYOTHERS,
        !           267: 0x2015, YYOTHERS, 0x203b, YYOTHERS, 0x202e, YYOTHERS, 0x202c, YYOTHERS,
        !           268: 0x2008, YYOTHERS, 0x2009, YYOTHERS, 0x2041, YYOTHERS, 0x2031, YYOTHERS,
        !           269: 0x6e, 0x107, 0x6f, 0x108, 0x2042, YYOTHERS, 0x2040, YYOTHERS
        !           270: };
        !           271: #define YYNOCHAR (-1000)
        !           272: #define        yyerrok yyerrflag=0
        !           273: #define        yyclearin       yylval=YYNOCHAR
        !           274: int yystack[YYMAXDEPTH];
        !           275: YYSTYPE yyvstack[YYMAXDEPTH], *yyv;
        !           276: int yychar;
        !           277: 
        !           278: #ifdef YYDEBUG
        !           279: int yydebug = 1;       /* No sir, not in the BSS */
        !           280: #include <stdio.h>
        !           281: #endif
        !           282: 
        !           283: short yyerrflag;
        !           284: int *yys;
        !           285: 
        !           286: yyparse()
        !           287: {
        !           288:        register YYSTYPE *yypvt;
        !           289:        int act;
        !           290:        register unsigned *ip, yystate;
        !           291:        int pno;
        !           292:        yystate = 0;
        !           293:        yychar = YYNOCHAR;
        !           294:        yyv = &yyvstack[-1];
        !           295:        yys = &yystack[-1];
        !           296: 
        !           297: stack:
        !           298:        if( ++yys >= &yystack[YYMAXDEPTH] ) {
        !           299:                write(2, "Stack overflow\n", 15);
        !           300:                exit(1);
        !           301:        }
        !           302:        *yys = yystate;
        !           303:        *++yyv = yyval;
        !           304: #ifdef YYDEBUG
        !           305:        if( yydebug )
        !           306:                fprintf(stdout, "Stack state %d, char %d\n", yystate, yychar);
        !           307: #endif
        !           308: 
        !           309: read:
        !           310:        ip = &yyact[yypa[yystate]];
        !           311:        if( ip[1] != YYNOCHAR ) {
        !           312:                if( yychar == YYNOCHAR ) {
        !           313:                        yychar = yylex();
        !           314: #ifdef YYDEBUG
        !           315:                        if( yydebug )
        !           316:                                fprintf(stdout, "lex read char %d, val %d\n", yychar, yylval);
        !           317: #endif
        !           318:                }
        !           319:                while (ip[1]!=YYNOCHAR) {
        !           320:                        if (ip[1]==yychar)
        !           321:                                break;
        !           322:                        ip += 2;
        !           323:                }
        !           324:        }
        !           325:        act = ip[0];
        !           326:        switch( act>>YYACTSH ) {
        !           327:        case YYSHIFTACT:
        !           328:                if( ip[1]==YYNOCHAR )
        !           329:                        goto YYerract;
        !           330:                if( yychar != -1 )
        !           331:                        yychar = YYNOCHAR; /* dont throw away EOF */
        !           332:                yystate = act&YYAMASK;
        !           333:                yyval = yylval;
        !           334: #ifdef YYDEBUG
        !           335:                if( yydebug )
        !           336:                        fprintf(stdout, "shift %d\n", yystate);
        !           337: #endif
        !           338:                if( yyerrflag )
        !           339:                        --yyerrflag;
        !           340:                goto stack;
        !           341: 
        !           342:        case YYACCEPTACT:
        !           343: #ifdef YYDEBUG
        !           344:                if( yydebug )
        !           345:                        fprintf(stdout, "accept\n");
        !           346: #endif
        !           347:                return(0);
        !           348: 
        !           349:        case YYERRACT:
        !           350:        YYerract:
        !           351:                switch (yyerrflag) {
        !           352:                case 0:
        !           353:                        yyerror("Syntax error");
        !           354: 
        !           355:                case 1:
        !           356:                case 2:
        !           357: 
        !           358:                        yyerrflag = 3;
        !           359:                        while( yys >= & yystack[0] ) {
        !           360:                                ip = &yyact[yypa[*yys]];
        !           361:                                while( ip[1]!=YYNOCHAR )
        !           362:                                        ip += 2;
        !           363:                                if( (*ip&~YYAMASK) == (YYSHIFTACT<<YYACTSH) ) {
        !           364:                                        yystate = *ip&YYAMASK;
        !           365:                                        goto stack;
        !           366:                                }
        !           367: #ifdef YYDEBUG
        !           368:                                if( yydebug )
        !           369:                                        fprintf(stderr, "error recovery leaves state %d, uncovers %d\n", *yys, yys[-1]);
        !           370: #endif
        !           371:                                yys--;
        !           372:                                yyv--;
        !           373:                        }
        !           374: #ifdef YYDEBUG
        !           375:                        if( yydebug )
        !           376:                                fprintf(stderr, "no shift on error; abort\n");
        !           377: #endif
        !           378:                        return(1);
        !           379: 
        !           380:                case 3:
        !           381: #ifdef YYDEBUG
        !           382:                        if( yydebug )
        !           383:                                fprintf(stderr, "Error recovery clobbers char %o\n", yychar);
        !           384: #endif
        !           385:                        if( yychar==YYEOFVAL )
        !           386:                                return(1);
        !           387:                        yychar = YYNOCHAR;
        !           388:                        goto read;
        !           389:                }
        !           390: 
        !           391:        case YYREDACT:
        !           392:                pno = act&YYAMASK;
        !           393: #ifdef YYDEBUG
        !           394:                if( yydebug )
        !           395:                        fprintf(stdout, "reduce %d\n", pno);
        !           396: #endif
        !           397:                yypvt = yyv;
        !           398:                yyv -= yypn[pno];
        !           399:                yys -= yypn[pno];
        !           400:                yyval = yyv[1];
        !           401:                switch(pno) {
        !           402: 
        !           403: case 3: {
        !           404: 
        !           405: #line 64 "/usr/src/cmd0/sh/sh.y"
        !           406: 
        !           407:                sesp->s_node = NULL;
        !           408:                reset(RCMD);
        !           409:                NOTREACHED;
        !           410:        }break;
        !           411: 
        !           412: case 4: {
        !           413: 
        !           414: #line 70 "/usr/src/cmd0/sh/sh.y"
        !           415: 
        !           416:                sesp->s_node = yypvt[-1].yu_node;
        !           417:                reset(errflag ? RERR : RCMD);
        !           418:                NOTREACHED;
        !           419:        }break;
        !           420: 
        !           421: case 5: {
        !           422: 
        !           423: #line 75 "/usr/src/cmd0/sh/sh.y"
        !           424: 
        !           425:                keyflush();
        !           426:                keyflag = 1;
        !           427:                reset(RERR);
        !           428:                NOTREACHED;
        !           429:        }break;
        !           430: 
        !           431: case 10: {
        !           432: 
        !           433: #line 91 "/usr/src/cmd0/sh/sh.y"
        !           434:        yyval.yu_nval = NWHILE; }break;
        !           435: 
        !           436: case 11: {
        !           437: 
        !           438: #line 92 "/usr/src/cmd0/sh/sh.y"
        !           439:        yyval.yu_nval = NUNTIL; }break;
        !           440: 
        !           441: case 23: {
        !           442: 
        !           443: #line 114 "/usr/src/cmd0/sh/sh.y"
        !           444: 
        !           445:                yyval.yu_node = yypvt[0].yu_node;
        !           446:        }break;
        !           447: 
        !           448: case 24: {
        !           449: 
        !           450: #line 117 "/usr/src/cmd0/sh/sh.y"
        !           451: 
        !           452:                yyval.yu_node = node(NBACK, yypvt[-1].yu_node, NULL);
        !           453:        }break;
        !           454: 
        !           455: case 25: {
        !           456: 
        !           457: #line 120 "/usr/src/cmd0/sh/sh.y"
        !           458: 
        !           459:                yyval.yu_node = yypvt[-1].yu_node;
        !           460:        }break;
        !           461: 
        !           462: case 26: {
        !           463: 
        !           464: #line 123 "/usr/src/cmd0/sh/sh.y"
        !           465: 
        !           466:                yyval.yu_node = node(NBACK, yypvt[-2].yu_node, yypvt[0].yu_node);
        !           467:        }break;
        !           468: 
        !           469: case 27: {
        !           470: 
        !           471: #line 126 "/usr/src/cmd0/sh/sh.y"
        !           472: 
        !           473:                yyval.yu_node = node(NLIST, yypvt[-2].yu_node, yypvt[0].yu_node);
        !           474:        }break;
        !           475: 
        !           476: case 28: {
        !           477: 
        !           478: #line 132 "/usr/src/cmd0/sh/sh.y"
        !           479: 
        !           480:                yyval.yu_node = yypvt[0].yu_node;
        !           481:        }break;
        !           482: 
        !           483: case 29: {
        !           484: 
        !           485: #line 135 "/usr/src/cmd0/sh/sh.y"
        !           486: 
        !           487:                yyval.yu_node = node(NORF, yypvt[-2].yu_node, yypvt[0].yu_node);
        !           488:        }break;
        !           489: 
        !           490: case 30: {
        !           491: 
        !           492: #line 138 "/usr/src/cmd0/sh/sh.y"
        !           493: 
        !           494:                yyval.yu_node = node(NANDF, yypvt[-2].yu_node, yypvt[0].yu_node);
        !           495:        }break;
        !           496: 
        !           497: case 31: {
        !           498: 
        !           499: #line 144 "/usr/src/cmd0/sh/sh.y"
        !           500: 
        !           501:                yyval.yu_node = node(NPIPE, yypvt[-2].yu_node, yypvt[0].yu_node);
        !           502:        }break;
        !           503: 
        !           504: case 32: {
        !           505: 
        !           506: #line 147 "/usr/src/cmd0/sh/sh.y"
        !           507: 
        !           508:                yyval.yu_node = yypvt[0].yu_node;
        !           509:        }break;
        !           510: 
        !           511: case 33: {
        !           512: 
        !           513: #line 153 "/usr/src/cmd0/sh/sh.y"
        !           514: 
        !           515:                yyval.yu_node = node(NCOMS, yypvt[0].yu_node, NULL);
        !           516:                keypop();
        !           517:        }break;
        !           518: 
        !           519: case 34: {
        !           520: 
        !           521: #line 160 "/usr/src/cmd0/sh/sh.y"
        !           522: 
        !           523:                keypush();
        !           524:                keyflag = 1;
        !           525:        }break;
        !           526: 
        !           527: case 35: {
        !           528: 
        !           529: #line 167 "/usr/src/cmd0/sh/sh.y"
        !           530: 
        !           531:                if ((yypvt[-1].yu_node->n_type == NCTRL && yypvt[0].yu_node->n_type == NARGS)
        !           532:                 || (yypvt[-1].yu_node->n_type == NARGS && yypvt[0].yu_node->n_type == NCTRL)) {
        !           533:                        YYERROR;
        !           534:                }
        !           535:                (yyval.yu_node = yypvt[-1].yu_node)->n_next = yypvt[0].yu_node;
        !           536:        }break;
        !           537: 
        !           538: case 36: {
        !           539: 
        !           540: #line 174 "/usr/src/cmd0/sh/sh.y"
        !           541: 
        !           542:                yyval.yu_node = yypvt[0].yu_node;
        !           543:        }break;
        !           544: 
        !           545: case 37: {
        !           546: 
        !           547: #line 180 "/usr/src/cmd0/sh/sh.y"
        !           548: 
        !           549:                yyval.yu_node = node(NIORS, yypvt[0].yu_strp, NULL);
        !           550:        }break;
        !           551: 
        !           552: case 38: {
        !           553: 
        !           554: #line 183 "/usr/src/cmd0/sh/sh.y"
        !           555: 
        !           556:                yyval.yu_node = node(NARGS, yypvt[0].yu_strp, NULL);
        !           557:                keyflag = 0;
        !           558:        }break;
        !           559: 
        !           560: case 39: {
        !           561: 
        !           562: #line 187 "/usr/src/cmd0/sh/sh.y"
        !           563: 
        !           564:                yyval.yu_node = node(NASSG, yypvt[0].yu_strp, NULL);
        !           565:        }break;
        !           566: 
        !           567: case 40: {
        !           568: 
        !           569: #line 190 "/usr/src/cmd0/sh/sh.y"
        !           570: 
        !           571:                if (!keyflag) {
        !           572:                        YYERROR;
        !           573:                }
        !           574:                yyval.yu_node = node(NCTRL, yypvt[0].yu_node, NULL);
        !           575:                keyflag = 0;
        !           576:        }break;
        !           577: 
        !           578: case 41: {
        !           579: 
        !           580: #line 199 "/usr/src/cmd0/sh/sh.y"
        !           581: 
        !           582:                yyval.yu_strp = duplstr(strt, 0);
        !           583:        }break;
        !           584: 
        !           585: case 42: {
        !           586: 
        !           587: #line 204 "/usr/src/cmd0/sh/sh.y"
        !           588: 
        !           589:                yyval.yu_strp = duplstr(strt, 0);
        !           590:        }break;
        !           591: 
        !           592: case 43: {
        !           593: 
        !           594: #line 209 "/usr/src/cmd0/sh/sh.y"
        !           595: 
        !           596:                yyval.yu_strp = duplstr(strt, 0);
        !           597:        }break;
        !           598: 
        !           599: case 44: {
        !           600: 
        !           601: #line 215 "/usr/src/cmd0/sh/sh.y"
        !           602: 
        !           603:                yyval.yu_node = node(NFOR, yypvt[-4].yu_strp, node(NFOR2, yypvt[-3].yu_node, node(NLIST, yypvt[-1].yu_node, NULL)));
        !           604:                yyval.yu_node->n_next->n_next->n_next = yyval.yu_node->n_next;
        !           605:        }break;
        !           606: 
        !           607: case 45: {
        !           608: 
        !           609: #line 219 "/usr/src/cmd0/sh/sh.y"
        !           610: 
        !           611:                yyval.yu_node = node(NFOR, yypvt[-3].yu_strp, node(NFOR2, yypvt[-2].yu_node, node(NLIST, yypvt[-1].yu_node, NULL)));
        !           612:                yyval.yu_node->n_next->n_next->n_next = yyval.yu_node->n_next;
        !           613:        }break;
        !           614: 
        !           615: case 46: {
        !           616: 
        !           617: #line 223 "/usr/src/cmd0/sh/sh.y"
        !           618: 
        !           619:                yyval.yu_node = node(NCASE, yypvt[-4].yu_strp, yypvt[-1].yu_node);
        !           620:        }break;
        !           621: 
        !           622: case 47: {
        !           623: 
        !           624: #line 226 "/usr/src/cmd0/sh/sh.y"
        !           625: 
        !           626:                yyval.yu_node = node(NCASE, yypvt[-3].yu_strp, yypvt[-1].yu_node);
        !           627:        }break;
        !           628: 
        !           629: case 48: {
        !           630: 
        !           631: #line 229 "/usr/src/cmd0/sh/sh.y"
        !           632: 
        !           633:                yyval.yu_node = node(yypvt[-3].yu_nval, yypvt[-2].yu_node, node(NLIST, yypvt[-1].yu_node, NULL));
        !           634:                yyval.yu_node->n_next->n_next = yyval.yu_node;
        !           635:        }break;
        !           636: 
        !           637: case 49: {
        !           638: 
        !           639: #line 233 "/usr/src/cmd0/sh/sh.y"
        !           640: 
        !           641:                yyval.yu_node = node(NIF, node(NNULL, yypvt[-4].yu_node, yypvt[-2].yu_node), yypvt[-1].yu_node);
        !           642:        }break;
        !           643: 
        !           644: case 50: {
        !           645: 
        !           646: #line 236 "/usr/src/cmd0/sh/sh.y"
        !           647: 
        !           648:                yyval.yu_node = node(NPARN, yypvt[-1].yu_node, NULL);
        !           649:        }break;
        !           650: 
        !           651: case 51: {
        !           652: 
        !           653: #line 239 "/usr/src/cmd0/sh/sh.y"
        !           654: 
        !           655:                yyval.yu_node = node(NBRAC, yypvt[-1].yu_node, NULL);
        !           656:        }break;
        !           657: 
        !           658: case 52: {
        !           659: 
        !           660: #line 245 "/usr/src/cmd0/sh/sh.y"
        !           661: 
        !           662:                yyval.yu_node = yypvt[0].yu_node;
        !           663:        }break;
        !           664: 
        !           665: case 53: {
        !           666: 
        !           667: #line 248 "/usr/src/cmd0/sh/sh.y"
        !           668: 
        !           669:                yyval.yu_node = node(NARGS, "\"$@\"", NULL);
        !           670:        }break;
        !           671: 
        !           672: case 54: {
        !           673: 
        !           674: #line 254 "/usr/src/cmd0/sh/sh.y"
        !           675: 
        !           676:                yyval.yu_node = node(NARGS, yypvt[-1].yu_strp, yypvt[0].yu_node);
        !           677:        }break;
        !           678: 
        !           679: case 55: {
        !           680: 
        !           681: #line 257 "/usr/src/cmd0/sh/sh.y"
        !           682: 
        !           683:                yyval.yu_node = NULL;
        !           684:        }break;
        !           685: 
        !           686: case 56: {
        !           687: 
        !           688: #line 263 "/usr/src/cmd0/sh/sh.y"
        !           689: 
        !           690:                register NODE *np;
        !           691: 
        !           692:                for (np=yypvt[-2].yu_node; np->n_next; np=np->n_next)
        !           693:                        ;
        !           694:                np->n_next = yypvt[0].yu_node;
        !           695:                yyval.yu_node = yypvt[-2].yu_node;
        !           696:        }break;
        !           697: 
        !           698: case 57: {
        !           699: 
        !           700: #line 271 "/usr/src/cmd0/sh/sh.y"
        !           701: 
        !           702:                yyval.yu_node = yypvt[0].yu_node;
        !           703:        }break;
        !           704: 
        !           705: case 58: {
        !           706: 
        !           707: #line 274 "/usr/src/cmd0/sh/sh.y"
        !           708: 
        !           709:                yyval.yu_node = NULL;
        !           710:        }break;
        !           711: 
        !           712: case 59: {
        !           713: 
        !           714: #line 280 "/usr/src/cmd0/sh/sh.y"
        !           715: 
        !           716:                yyval.yu_node = node(NCASE2, yypvt[0].yu_node, yypvt[-2].yu_node);
        !           717:        }break;
        !           718: 
        !           719: case 60: {
        !           720: 
        !           721: #line 286 "/usr/src/cmd0/sh/sh.y"
        !           722: 
        !           723:                yyval.yu_node = node(NCASE3, yypvt[-2].yu_strp, yypvt[0].yu_node);
        !           724:        }break;
        !           725: 
        !           726: case 61: {
        !           727: 
        !           728: #line 289 "/usr/src/cmd0/sh/sh.y"
        !           729: 
        !           730:                yyval.yu_node = node(NCASE3, yypvt[0].yu_strp, NULL);
        !           731:        }break;
        !           732: 
        !           733: case 62: {
        !           734: 
        !           735: #line 295 "/usr/src/cmd0/sh/sh.y"
        !           736: 
        !           737:                yyval.yu_node = yypvt[0].yu_node;
        !           738:        }break;
        !           739: 
        !           740: case 63: {
        !           741: 
        !           742: #line 298 "/usr/src/cmd0/sh/sh.y"
        !           743: 
        !           744:                yyval.yu_node = NULL;
        !           745:        }break;
        !           746: 
        !           747: case 64: {
        !           748: 
        !           749: #line 304 "/usr/src/cmd0/sh/sh.y"
        !           750: 
        !           751:                yyval.yu_node = node(NIF, node(NNULL, yypvt[-3].yu_node, yypvt[-1].yu_node), yypvt[0].yu_node);
        !           752:        }break;
        !           753: 
        !           754: case 65: {
        !           755: 
        !           756: #line 307 "/usr/src/cmd0/sh/sh.y"
        !           757: 
        !           758:                yyval.yu_node = node(NELSE, yypvt[0].yu_node, NULL);
        !           759:        }break;
        !           760: 
        !           761: case 66: {
        !           762: 
        !           763: #line 310 "/usr/src/cmd0/sh/sh.y"
        !           764: 
        !           765:                yyval.yu_node = NULL;
        !           766:        }break;
        !           767: 
        !           768: case 67: {
        !           769: 
        !           770: #line 316 "/usr/src/cmd0/sh/sh.y"
        !           771: 
        !           772:                yyval.yu_node = yypvt[0].yu_node;
        !           773:        }break;
        !           774: 
        !           775: case 68: {
        !           776: 
        !           777: #line 320 "/usr/src/cmd0/sh/sh.y"
        !           778: 
        !           779:                yyval.yu_node = NULL;
        !           780:        }break;
        !           781: 
        !           782: case 69: {
        !           783: 
        !           784: #line 326 "/usr/src/cmd0/sh/sh.y"
        !           785: 
        !           786:                yyval.yu_node = node(NLIST, yypvt[-2].yu_node, yypvt[0].yu_node);
        !           787:        }break;
        !           788: 
        !           789: case 70: {
        !           790: 
        !           791: #line 329 "/usr/src/cmd0/sh/sh.y"
        !           792: 
        !           793:                yyval.yu_node = yypvt[-1].yu_node;
        !           794:        }break;
        !           795: 
        !           796:                }
        !           797:                ip = &yygo[ yypgo[yypdnt[pno]] ];
        !           798:                while( *ip!=*yys && *ip!=YYNOCHAR )
        !           799:                        ip += 2;
        !           800:                yystate = ip[1];
        !           801:                goto stack;
        !           802:        }
        !           803: }
        !           804: 
        !           805: 
        !           806: 
        !           807: 

unix.superglobalmegacorp.com

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