Annotation of coherent/b/bin/as/y_tab.c, revision 1.1.1.1

1.1       root        1: 
                      2: #line 1 "asm.y"
                      3: 
                      4: #include <asm.h>
                      5: /*
                      6:  * count macro parms.
                      7:  */
                      8: static 
                      9: parmCt()
                     10: {
                     11:        if(NULL == trueMac) {
                     12:                yyerror(".parmct not in macro");
                     13:                /* \fB.parmct\fR returns the number of
                     14:                 * parameters in the current macro. */
                     15:                return(0);
                     16:        }
                     17:        else
                     18:                return(countList(trueMac->parms));
                     19: }
                     20: 
                     21: /*
                     22:  * Verify that 2 symbols have the same segment.
                     23:  */
                     24: static void
                     25: ckseg(s1, s2)
                     26: sym *s1, *s2;
                     27: {
                     28:        if(s1->sg != s2->sg)
                     29:                yyerror("Arithmetic between addresses on different segments");
                     30:                /* You may only add or subtract addresses if they
                     31:                 * are in the same segment. */
                     32: }
                     33: 
                     34: /*
                     35:  * Create Immediate exps.
                     36:  */
                     37: static expr *
                     38: setImm(val, symRef)
                     39: long val;
                     40: sym  *symRef;
                     41: {
                     42:        register expr *oper;
                     43:        register short w;
                     44: 
                     45:        oper = xalloc();
                     46:        oper->mode = T_IMM;
                     47:        if (NULL != (oper->ref = symRef))
                     48:                oper->ref = symRef->ref;
                     49:        w = oper->exp = val;
                     50:        if(w == val)
                     51:                oper->size = 2;
                     52:        else
                     53:                oper->size = 4;
                     54:        return(oper);
                     55: }
                     56: 
                     57: /*
                     58:  * Set up for most addressing modes.
                     59:  */
                     60: static expr *
                     61: qbild(val, mode, r1, r2, scale, symRef)
                     62: long val;
                     63: int mode;
                     64: psym *r1, *r2;
                     65: long scale;
                     66: sym *symRef;
                     67: {
                     68:        register expr *oper;
                     69:        char i;
                     70: 
                     71:        if (NULL != r1 && T_R != mode) {
                     72:                switch((int)r1->size) {
                     73:                case 2:
                     74:                        lflags |= A_SHORT;
                     75:                        if (!scale)
                     76:                                break;
                     77:                case 1:
                     78:                        regerror(r1);
                     79:                        break;
                     80:                case 4:
                     81:                        lflags |= A_LONG;
                     82:                        break;
                     83:                }
                     84: 
                     85:                if (ORD_REG != r1->flag)        /* cant ind via ctl regs */
                     86:                        regerror(r1);
                     87: 
                     88:                if (NULL != r2) {
                     89:                        if (ORD_REG != r2->flag)
                     90:                                regerror(r2);
                     91:                        if (r1->size != r2->size)
                     92:                                yyerror("Mixed length addressing registers");
                     93:                /* Addressing registers must both be the same length. */
                     94:                }
                     95:        }
                     96:        else if ((T_R == mode) && (r1->flag == ORD_REG)) {
                     97:                switch ((int)r1->size) {
                     98:                case 4:
                     99:                        lflags |= O_LONG;
                    100:                        break;
                    101:                case 2:
                    102:                        lflags |= O_SHORT;
                    103:                }
                    104:        }
                    105: 
                    106:        oper = xalloc();
                    107:        oper->exp  = val;
                    108:        oper->r1 = r1;
                    109:        oper->r2 = r2;
                    110:        oper->mode = mode;
                    111: 
                    112:        i = scale;
                    113:        if (i != scale)
                    114:                i = 3;  /* set a bad scale */
                    115: 
                    116:        switch (i) {
                    117:        case 0:
                    118:        case 1: /* for generated code */
                    119:                oper->scale = 0; break;
                    120:        case 2:
                    121:                oper->scale = 1; break;
                    122:        case 4:
                    123:                oper->scale = 2; break;
                    124:        case 8:
                    125:                oper->scale = 3; break;
                    126:        default:
                    127:                yyerror("Bad scale");
                    128:                /* Address scale must be 0, 1, 2, 4, or 8. */
                    129:        }
                    130: 
                    131:        if (NULL != (oper->ref = symRef))
                    132:                oper->ref = symRef->ref;
                    133:        return(oper);
                    134: }
                    135: 
                    136: /*
                    137:  * Floating point register expr.
                    138:  */
                    139: static expr *
                    140: fbild(regno)
                    141: long regno;
                    142: {
                    143:        register expr *oper;
                    144: 
                    145:        if (regno < 0 || regno > 7) {
                    146:                regno &= 7;
                    147:                yyerror("Invalid floating point register number"); /**/
                    148:        }
                    149: 
                    150:        oper = xalloc();
                    151:        oper->exp = regno;
                    152:        oper->mode = T_FP;
                    153:        return (oper);
                    154: }
                    155:        
                    156: /*
                    157:  * Report register error.
                    158:  */
                    159: regerror(rg)
                    160: psym *rg;
                    161: {
                    162:        yyerror("%s is an improper register in this context", rg->name); /**/
                    163: }
                    164: 
                    165: /*
                    166:  * Concatinate strings.
                    167:  */
                    168: static char *
                    169: concat(s1, s2)
                    170: char *s1, *s2;
                    171: {
                    172:        long l;
                    173:        unsigned short u;
                    174:        char *res;
                    175: 
                    176:        u = l = (long)strlen(s1) + (long)strlen(s2) + 1;
                    177:        if(u != l) {
                    178:                yyerror("Length %ld string range exceeded", l);
                    179:                /* Strings may not exceed 32 kilobytes. */
                    180:                return(galloc(1));
                    181:        }
                    182:        res = galloc(u);
                    183:        sprintf(res, "%s%s", s1, s2);
                    184:        return(res);
                    185: }
                    186: 
                    187: /*
                    188:  * Substring.
                    189:  * Assumes that all strings are created from unsigned lengths.
                    190:  */
                    191: static char *
                    192: substr(s, from, len)
                    193: char *s;
                    194: long from, len;
                    195: {
                    196:        register char *p, *res;
                    197:        unsigned short l;
                    198: 
                    199:        l = strlen(s);
                    200:        s += from;
                    201:        from = l - from;        /* from now len to end */
                    202: 
                    203:        if(len > from)
                    204:                len = from;     /* since strlen fit unsigned len must */
                    205:        if(len < 0)
                    206:                len = 0;
                    207: 
                    208:        for(p = res = galloc((unsigned)(len + 1)); len--; )
                    209:                *p++ = *s++;
                    210:        return(res);
                    211: }
                    212: 
                    213: /*
                    214:  * String search.
                    215:  */
                    216: static
                    217: stringSearch(s1, s2)
                    218: char *s1, *s2;
                    219: {
                    220:        char *p;
                    221: 
                    222:        if(NULL == (p = strstr(s1, s2)))
                    223:                return(-1);
                    224:        return(p - s1);
                    225: }
                    226: 
                    227: /*
                    228:  * Do long comparisons.
                    229:  * < > <= >= != ==  compare operator
                    230:  * 1 2  5  6  3  4  t
                    231:  */
                    232: static
                    233: compare(t, v)
                    234: int t;
                    235: long v;
                    236: {
                    237:        return(((v < 0) ? t : (v > 0) ? (t >> 1) : (t >> 2)) & 1);
                    238: }
                    239: 
                    240: /*
                    241:  * Do double comparisons.
                    242:  * < > <= >= != ==  compare operator
                    243:  * 1 2  5  6  3  4  t
                    244:  */
                    245: static
                    246: fcompare(t, v)
                    247: int t;
                    248: double v;
                    249: {
                    250:        return(((v < 0.0) ? t : (v > 0.0) ? (t >> 1) : (t >> 2)) & 1);
                    251: }
                    252: 
                    253: static void
                    254: unmatched(c)
                    255: {
                    256:        yyerror("Unmatched '%c'", c);
                    257:        /* A delimeter, [, (, ), or ] is unmatched in this command. */
                    258: }
                    259: 
                    260: 
                    261: #include "y_tab.h"
                    262: #define YYCLEARIN yychar = -1000
                    263: #define YYERROK yyerrflag = 0
                    264: extern int yychar;
                    265: extern short yyerrflag;
                    266: #ifndef YYMAXDEPTH
                    267: #define YYMAXDEPTH 150
                    268: #endif
                    269: YYSTYPE yyval, yylval;
                    270: #ifdef YYTNAMES
                    271: struct yytname yytnames[50] =
                    272: {
                    273:        "$end", -1, 
                    274:        "error", -2, 
                    275:        "PC", 256, 
                    276:        "NUMBER", 257, 
                    277:        "FNUM", 258, 
                    278:        "COMPARISON", 312, 
                    279:        "OP", 260, 
                    280:        "DATA", 261, 
                    281:        "CMD", 262, 
                    282:        "DCMD", 263, 
                    283:        "ICMD", 264, 
                    284:        "NCMD", 265, 
                    285:        "ECMD", 266, 
                    286:        "ECMDX", 267, 
                    287:        "IDENTIFIER", 268, 
                    288:        "REG", 269, 
                    289:        "DEFINED", 320, 
                    290:        "SIZEOF", 321, 
                    291:        "SEGMENT", 322, 
                    292:        "LOCATION", 323, 
                    293:        "PLUS", 315, 
                    294:        "MINUS", 316, 
                    295:        "TIMES", 317, 
                    296:        "DIVIDE", 318, 
                    297:        "REM", 319, 
                    298:        "LSHIFT", 313, 
                    299:        "RSHIFT", 314, 
                    300:        "AND", 311, 
                    301:        "OR", 309, 
                    302:        "XOR", 310, 
                    303:        "COMMA", 305, 
                    304:        "LPAREN", 328, 
                    305:        "RPAREN", 286, 
                    306:        "LBRACK", 329, 
                    307:        "RBRACK", 288, 
                    308:        "AT", 307, 
                    309:        "D_SIGN", 290, 
                    310:        "NOT", 324, 
                    311:        "BANG", 326, 
                    312:        "COLON", 306, 
                    313:        "PARMCT", 294, 
                    314:        "TOSTRING", 330, 
                    315:        "TONUMBER", 331, 
                    316:        "TOFLOAT", 332, 
                    317:        "FSTACK", 298, 
                    318:        "NL", 333, 
                    319:        "TOKEN", 327, 
                    320:        "P_SIGN", 308, 
                    321:        "LEN", 325, 
                    322:        NULL
                    323: } ;
                    324: #endif
                    325: #define        YYACTSH         13
                    326: #define        YYAMASK         017777
                    327: #define        YYSHIFTACT      0
                    328: #define        YYREDACT        1
                    329: #define        YYACCEPTACT     2
                    330: #define        YYERRACT        3
                    331: #define        YYGOTO          4
                    332: #define        YYPACTION       5
                    333: #define        YYEOFVAL        (-1)
                    334: #define        YYERRVAL        (-2)
                    335: #define        YYOTHERS        (-1000)
                    336: 
                    337: unsigned char yypdnt[108] = {
                    338: 0, 1, 1, 2, 2, 2, 2, 2,
                    339: 2, 2, 2, 2, 2, 2, 2, 7,
                    340: 7, 7, 6, 6, 6, 6, 6, 4,
                    341: 4, 4, 5, 3, 3, 8, 8, 8,
                    342: 8, 13, 13, 14, 14, 14, 14, 14,
                    343: 14, 14, 14, 14, 14, 14, 14, 14,
                    344: 14, 14, 14, 14, 14, 14, 14, 14,
                    345: 14, 9, 9, 9, 9, 9, 11, 11,
                    346: 11, 11, 11, 11, 11, 11, 11, 11,
                    347: 11, 11, 11, 11, 11, 11, 11, 11,
                    348: 11, 11, 11, 11, 11, 11, 11, 11,
                    349: 11, 11, 11, 11, 12, 12, 12, 12,
                    350: 12, 12, 12, 10, 10, 10, 10, 10,
                    351: 10, 10, 10, 10 
                    352: };
                    353: unsigned char yypn[108] = {
                    354: 2, 1, 2, 4, 4, 6, 6, 3,
                    355: 3, 4, 4, 4, 4, 2, 2, 3,
                    356: 1, 0, 1, 1, 1, 1, 3, 1,
                    357: 3, 0, 1, 0, 1, 3, 1, 2,
                    358: 0, 1, 3, 1, 1, 4, 3, 5,
                    359: 6, 5, 7, 4, 6, 7, 6, 8,
                    360: 4, 6, 7, 6, 8, 1, 1, 2,
                    361: 2, 1, 3, 3, 3, 3, 1, 3,
                    362: 3, 3, 3, 3, 3, 2, 2, 2,
                    363: 2, 2, 1, 3, 3, 3, 3, 3,
                    364: 3, 3, 3, 3, 3, 2, 2, 2,
                    365: 4, 3, 2, 2, 1, 3, 3, 6,
                    366: 4, 2, 2, 1, 3, 3, 3, 3,
                    367: 3, 2, 2, 2 
                    368: };
                    369: unsigned char yypgo[15] = {
                    370: 0, 0, 2, 6, 8, 14, 20, 28,
                    371: 34, 38, 76, 114, 198, 228, 232 
                    372: };
                    373: unsigned int yygo[236] = {
                    374: YYOTHERS, 0x3, 0x3, 0x8, YYOTHERS, 0x4, YYOTHERS, 0x5,
                    375: 0xc, 0x38, 0x7d, 0xb2, YYOTHERS, 0x36, 0xf, 0x3c,
                    376: 0x10, 0x3d, YYOTHERS, 0x37, 0xd, 0x39, 0x7b, 0xb1,
                    377: 0x80, 0xb3, YYOTHERS, 0x2f, 0x79, 0xb0, 0x81, 0xb4,
                    378: YYOTHERS, 0x30, 0x78, 0xaf, YYOTHERS, 0x28, 0x9, 0x29,
                    379: 0xa, 0x31, 0xd, 0x31, 0x18, 0x42, 0x19, 0x44,
                    380: 0x1a, 0x45, 0x1c, 0x29, 0x1d, 0x4a, 0x1f, 0x50,
                    381: 0x3f, 0x29, 0x5e, 0x90, 0x60, 0x92, 0x68, 0x9c,
                    382: 0x78, 0x29, 0x79, 0x31, 0x7b, 0x31, 0x80, 0x31,
                    383: 0x81, 0x31, YYOTHERS, 0x46, 0xa, 0x32, 0xd, 0x32,
                    384: 0x1b, 0x47, 0x1d, 0x4b, 0x23, 0x54, 0x24, 0x58,
                    385: 0x56, 0x8c, 0x57, 0x8d, 0x62, 0x96, 0x63, 0x97,
                    386: 0x64, 0x98, 0x65, 0x99, 0x66, 0x9a, 0x79, 0x32,
                    387: 0x7b, 0x32, 0x80, 0x32, 0x81, 0x32, 0x8b, 0x8d,
                    388: YYOTHERS, 0x2a, 0x9, 0x2b, 0x18, 0x43, 0x19, 0x43,
                    389: 0x1a, 0x43, 0x1b, 0x48, 0x1c, 0x2b, 0x1d, 0x4c,
                    390: 0x1f, 0x51, 0x20, 0x52, 0x21, 0x53, 0x23, 0x55,
                    391: 0x25, 0x5a, 0x3f, 0x2b, 0x5c, 0x8f, 0x5e, 0x43,
                    392: 0x5f, 0x91, 0x60, 0x93, 0x67, 0x9b, 0x68, 0x9d,
                    393: 0x69, 0x9e, 0x6a, 0x9f, 0x6b, 0xa0, 0x6c, 0xa1,
                    394: 0x6d, 0xa2, 0x6e, 0xa3, 0x6f, 0xa4, 0x70, 0xa5,
                    395: 0x71, 0xa6, 0x75, 0xac, 0x76, 0xad, 0x78, 0x2b,
                    396: 0x88, 0xb6, 0xb7, 0xc7, 0xb9, 0xc9, 0xbc, 0xcc,
                    397: 0xbf, 0xce, 0xc4, 0xcf, 0xca, 0xd4, 0xcd, 0xd8,
                    398: 0xd1, 0xdb, 0xd5, 0xdd, YYOTHERS, 0x33, 0xa, 0x34,
                    399: 0xd, 0x34, 0x1d, 0x4d, 0x24, 0x59, 0x25, 0x5b,
                    400: 0x57, 0x8e, 0x73, 0xaa, 0x74, 0xab, 0x77, 0xae,
                    401: 0x79, 0x34, 0x7b, 0x34, 0x80, 0x34, 0x81, 0x34,
                    402: 0xa9, 0x8e, YYOTHERS, 0x2c, 0x1c, 0x49, YYOTHERS, 0x2d,
                    403: 0x3f, 0x83, YYOTHERS, 0x2e 
                    404: };
                    405: unsigned short yypa[225] = {
                    406: 0, 22, 26, 28, 52, 54, 74, 76,
                    407: 80, 82, 128, 162, 162, 166, 200, 204,
                    408: 210, 214, 216, 218, 220, 224, 226, 230,
                    409: 166, 166, 166, 166, 236, 166, 278, 166,
                    410: 166, 166, 284, 166, 286, 166, 300, 304,
                    411: 306, 310, 320, 332, 358, 370, 374, 376,
                    412: 380, 384, 392, 404, 430, 442, 444, 448,
                    413: 452, 456, 460, 462, 464, 468, 472, 474,
                    414: 516, 518, 520, 522, 546, 548, 550, 558,
                    415: 560, 562, 564, 574, 588, 614, 628, 634,
                    416: 638, 646, 670, 672, 674, 676, 678, 688,
                    417: 702, 704, 706, 708, 166, 710, 166, 166,
                    418: 166, 712, 678, 678, 678, 678, 678, 166,
                    419: 166, 166, 166, 166, 166, 166, 166, 166,
                    420: 166, 166, 718, 724, 724, 166, 166, 732,
                    421: 740, 128, 784, 166, 786, 162, 788, 790,
                    422: 166, 128, 792, 794, 796, 798, 800, 802,
                    423: 804, 840, 842, 678, 558, 846, 858, 866,
                    424: 892, 898, 906, 908, 916, 922, 926, 936,
                    425: 942, 948, 950, 952, 968, 970, 978, 986,
                    426: 988, 990, 992, 1004, 1016, 1034, 1056, 1076,
                    427: 1082, 732, 1086, 1092, 1096, 1124, 1150, 1156,
                    428: 1158, 1160, 1162, 1164, 1168, 1172, 1178, 166,
                    429: 1204, 1206, 1242, 1244, 1248, 1284, 1286, 166,
                    430: 1290, 1292, 1294, 1296, 166, 1298, 1300, 1302,
                    431: 1328, 1334, 166, 1360, 1366, 166, 1392, 1418,
                    432: 1444, 166, 1446, 1448, 1450, 166, 1476, 1478,
                    433: 1480, 1506, 1508, 1510, 1536, 1538, 1564, 1566,
                    434: 1568 
                    435: };
                    436: unsigned int yyact[1570] = {
                    437: 0x2, 0x147, 0x201b, 0x104, 0x201b, 0x105, 0x201b, 0x106,
                    438: 0x201b, 0x107, 0x201b, 0x108, 0x201b, 0x109, 0x201b, 0x10a,
                    439: 0x201b, 0x10b, 0x201b, 0x14d, 0x1, YYOTHERS, 0x6, 0x14d,
                    440: 0x6000, YYOTHERS, 0x201c, YYOTHERS, 0x7, YYEOFVAL, 0x2, 0x147,
                    441: 0x201b, 0x104, 0x201b, 0x105, 0x201b, 0x106, 0x201b, 0x107,
                    442: 0x201b, 0x108, 0x201b, 0x109, 0x201b, 0x10a, 0x201b, 0x10b,
                    443: 0x201b, 0x14d, 0x1, YYOTHERS, 0x2001, YYOTHERS, 0x9, 0x104,
                    444: 0xa, 0x105, 0xb, 0x106, 0xc, 0x107, 0xd, 0x108,
                    445: 0xe, 0x109, 0xf, 0x10a, 0x10, 0x10b, 0x11, 0x14d,
                    446: 0x6000, YYOTHERS, 0x200e, YYOTHERS, 0x4000, YYEOFVAL, 0x6000, YYOTHERS,
                    447: 0x2002, YYOTHERS, 0x12, 0x101, 0x13, 0x102, 0x14, 0x104,
                    448: 0x15, 0x10c, 0x16, 0x10d, 0x17, 0x140, 0x18, 0x141,
                    449: 0x19, 0x142, 0x1a, 0x143, 0x1b, 0x13c, 0x1c, 0x13d,
                    450: 0x1d, 0x148, 0x1e, 0x149, 0x1f, 0x122, 0x20, 0x144,
                    451: 0x21, 0x146, 0x22, 0x126, 0x23, 0x14a, 0x24, 0x14b,
                    452: 0x25, 0x14c, 0x26, 0x12a, 0x27, 0x147, 0x2020, YYOTHERS,
                    453: 0x12, 0x101, 0x13, 0x102, 0x15, 0x10c, 0x17, 0x140,
                    454: 0x18, 0x141, 0x19, 0x142, 0x1a, 0x143, 0x1b, 0x13c,
                    455: 0x1d, 0x148, 0x20, 0x144, 0x21, 0x146, 0x22, 0x126,
                    456: 0x23, 0x14a, 0x24, 0x14b, 0x25, 0x14c, 0x27, 0x147,
                    457: 0x2011, YYOTHERS, 0x35, 0x147, 0x2019, YYOTHERS, 0x12, 0x101,
                    458: 0x13, 0x102, 0x15, 0x10c, 0x17, 0x140, 0x18, 0x141,
                    459: 0x19, 0x142, 0x1a, 0x143, 0x1b, 0x13c, 0x1d, 0x148,
                    460: 0x20, 0x144, 0x21, 0x146, 0x22, 0x126, 0x23, 0x14a,
                    461: 0x24, 0x14b, 0x25, 0x14c, 0x27, 0x147, 0x6000, YYOTHERS,
                    462: 0x3a, 0x14d, 0x6000, YYOTHERS, 0x3b, 0x14d, 0x35, 0x147,
                    463: 0x6000, YYOTHERS, 0x35, 0x147, 0x6000, YYOTHERS, 0x200d, YYOTHERS,
                    464: 0x203e, YYOTHERS, 0x2063, YYOTHERS, 0x3e, 0x14d, 0x6000, YYOTHERS,
                    465: 0x2039, YYOTHERS, 0x3f, 0x132, 0x2023, YYOTHERS, 0x40, 0x101,
                    466: 0x41, 0x10c, 0x6000, YYOTHERS, 0x12, 0x101, 0x13, 0x102,
                    467: 0x15, 0x10c, 0x16, 0x10d, 0x17, 0x140, 0x18, 0x141,
                    468: 0x19, 0x142, 0x1a, 0x143, 0x1b, 0x13c, 0x1d, 0x148,
                    469: 0x1e, 0x149, 0x1f, 0x122, 0x20, 0x144, 0x21, 0x146,
                    470: 0x22, 0x126, 0x23, 0x14a, 0x24, 0x14b, 0x25, 0x14c,
                    471: 0x26, 0x12a, 0x27, 0x147, 0x6000, YYOTHERS, 0x4e, 0x10d,
                    472: 0x4f, 0x131, 0x6000, YYOTHERS, 0x204a, YYOTHERS, 0x13, 0x102,
                    473: 0x56, 0x13c, 0x57, 0x148, 0x23, 0x14a, 0x25, 0x14c,
                    474: 0x27, 0x147, 0x6000, YYOTHERS, 0x5c, 0x149, 0x2024, YYOTHERS,
                    475: 0x205c, YYOTHERS, 0x5d, 0x14d, 0x6000, YYOTHERS, 0x5e, 0x138,
                    476: 0x5f, 0x13b, 0x60, 0x13c, 0x61, 0x149, 0x2035, YYOTHERS,
                    477: 0x62, 0x138, 0x63, 0x13b, 0x64, 0x13c, 0x65, 0x13d,
                    478: 0x66, 0x13e, 0x6000, YYOTHERS, 0x67, 0x138, 0x68, 0x13b,
                    479: 0x69, 0x13c, 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f,
                    480: 0x6d, 0x139, 0x6e, 0x13a, 0x6f, 0x137, 0x70, 0x135,
                    481: 0x71, 0x136, 0x72, 0x149, 0x2036, YYOTHERS, 0x73, 0x138,
                    482: 0x74, 0x13b, 0x75, 0x148, 0x76, 0x149, 0x77, 0x133,
                    483: 0x6000, YYOTHERS, 0x78, 0x131, 0x201e, YYOTHERS, 0x2021, YYOTHERS,
                    484: 0x79, 0x131, 0x2010, YYOTHERS, 0x7a, 0x14d, 0x6000, YYOTHERS,
                    485: 0x5e, 0x138, 0x5f, 0x13b, 0x60, 0x13c, 0x2012, YYOTHERS,
                    486: 0x62, 0x138, 0x63, 0x13b, 0x64, 0x13c, 0x65, 0x13d,
                    487: 0x66, 0x13e, 0x2013, YYOTHERS, 0x67, 0x138, 0x68, 0x13b,
                    488: 0x69, 0x13c, 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f,
                    489: 0x6d, 0x139, 0x6e, 0x13a, 0x6f, 0x137, 0x70, 0x135,
                    490: 0x71, 0x136, 0x7b, 0x134, 0x2014, YYOTHERS, 0x73, 0x138,
                    491: 0x74, 0x13b, 0x75, 0x148, 0x76, 0x149, 0x77, 0x133,
                    492: 0x2015, YYOTHERS, 0x201a, YYOTHERS, 0x7c, 0x14d, 0x6000, YYOTHERS,
                    493: 0x7d, 0x131, 0x2017, YYOTHERS, 0x7e, 0x14d, 0x6000, YYOTHERS,
                    494: 0x7f, 0x14d, 0x6000, YYOTHERS, 0x2008, YYOTHERS, 0x2007, YYOTHERS,
                    495: 0x80, 0x131, 0x6000, YYOTHERS, 0x81, 0x131, 0x6000, YYOTHERS,
                    496: 0x200c, YYOTHERS, 0x12, 0x101, 0x13, 0x102, 0x15, 0x10c,
                    497: 0x82, 0x10d, 0x17, 0x140, 0x18, 0x141, 0x19, 0x142,
                    498: 0x1a, 0x143, 0x1b, 0x13c, 0x1d, 0x148, 0x1e, 0x149,
                    499: 0x1f, 0x122, 0x20, 0x144, 0x21, 0x146, 0x22, 0x126,
                    500: 0x23, 0x14a, 0x24, 0x14b, 0x25, 0x14c, 0x26, 0x12a,
                    501: 0x27, 0x147, 0x6000, YYOTHERS, 0x2049, YYOTHERS, 0x2048, YYOTHERS,
                    502: 0x2045, YYOTHERS, 0x67, 0x138, 0x68, 0x13b, 0x69, 0x13c,
                    503: 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f, 0x6d, 0x139,
                    504: 0x6e, 0x13a, 0x6f, 0x137, 0x70, 0x135, 0x71, 0x136,
                    505: 0x6000, YYOTHERS, 0x2047, YYOTHERS, 0x2046, YYOTHERS, 0x5e, 0x138,
                    506: 0x5f, 0x13b, 0x60, 0x13c, 0x6000, YYOTHERS, 0x2069, YYOTHERS,
                    507: 0x2055, YYOTHERS, 0x201f, YYOTHERS, 0x5e, 0x138, 0x5f, 0x13b,
                    508: 0x60, 0x13c, 0x84, 0x11e, 0x6000, YYOTHERS, 0x62, 0x138,
                    509: 0x63, 0x13b, 0x64, 0x13c, 0x65, 0x13d, 0x66, 0x13e,
                    510: 0x85, 0x11e, 0x6000, YYOTHERS, 0x67, 0x138, 0x68, 0x13b,
                    511: 0x69, 0x13c, 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f,
                    512: 0x6d, 0x139, 0x6e, 0x13a, 0x6f, 0x137, 0x70, 0x135,
                    513: 0x71, 0x136, 0x86, 0x11e, 0x6000, YYOTHERS, 0x73, 0x138,
                    514: 0x74, 0x13b, 0x75, 0x148, 0x87, 0x11e, 0x76, 0x149,
                    515: 0x77, 0x133, 0x6000, YYOTHERS, 0x88, 0x131, 0x89, 0x120,
                    516: 0x6000, YYOTHERS, 0x8a, 0x10d, 0x6000, YYOTHERS, 0x5e, 0x138,
                    517: 0x5f, 0x13b, 0x60, 0x13c, 0x2038, YYOTHERS, 0x67, 0x138,
                    518: 0x68, 0x13b, 0x69, 0x13c, 0x6a, 0x13d, 0x6b, 0x13e,
                    519: 0x6c, 0x13f, 0x6d, 0x139, 0x6e, 0x13a, 0x6f, 0x137,
                    520: 0x70, 0x135, 0x71, 0x136, 0x2037, YYOTHERS, 0x2057, YYOTHERS,
                    521: 0x2056, YYOTHERS, 0x2062, YYOTHERS, 0x2061, YYOTHERS, 0x13, 0x102,
                    522: 0x56, 0x13c, 0x8b, 0x148, 0x25, 0x14c, 0x6000, YYOTHERS,
                    523: 0x13, 0x102, 0x56, 0x13c, 0x57, 0x148, 0x23, 0x14a,
                    524: 0x25, 0x14c, 0x27, 0x147, 0x6000, YYOTHERS, 0x205b, YYOTHERS,
                    525: 0x205a, YYOTHERS, 0x206b, YYOTHERS, 0x206a, YYOTHERS, 0x200b, YYOTHERS,
                    526: 0x94, 0x10d, 0x95, 0x131, 0x6000, YYOTHERS, 0xa7, 0x10d,
                    527: 0xa8, 0x131, 0x6000, YYOTHERS, 0xa9, 0x148, 0x23, 0x14a,
                    528: 0x27, 0x147, 0x6000, YYOTHERS, 0xa9, 0x148, 0x23, 0x14a,
                    529: 0x27, 0x147, 0x6000, YYOTHERS, 0x12, 0x101, 0x13, 0x102,
                    530: 0x15, 0x10c, 0x16, 0x10d, 0x17, 0x140, 0x18, 0x141,
                    531: 0x19, 0x142, 0x1a, 0x143, 0x1b, 0x13c, 0x1c, 0x13d,
                    532: 0x1d, 0x148, 0x1e, 0x149, 0x1f, 0x122, 0x20, 0x144,
                    533: 0x21, 0x146, 0x22, 0x126, 0x23, 0x14a, 0x24, 0x14b,
                    534: 0x25, 0x14c, 0x26, 0x12a, 0x27, 0x147, 0x2020, YYOTHERS,
                    535: 0x200a, YYOTHERS, 0x2003, YYOTHERS, 0x2004, YYOTHERS, 0x2009, YYOTHERS,
                    536: 0x2023, YYOTHERS, 0x2022, YYOTHERS, 0x203a, YYOTHERS, 0x2064, YYOTHERS,
                    537: 0x203f, YYOTHERS, 0x205d, YYOTHERS, 0x12, 0x101, 0x13, 0x102,
                    538: 0x15, 0x10c, 0xb5, 0x10d, 0x17, 0x140, 0x18, 0x141,
                    539: 0x19, 0x142, 0x1a, 0x143, 0x1b, 0x13c, 0x1d, 0x148,
                    540: 0x20, 0x144, 0x21, 0x146, 0x22, 0x126, 0x23, 0x14a,
                    541: 0x24, 0x14b, 0x25, 0x14c, 0x27, 0x147, 0x6000, YYOTHERS,
                    542: 0x2026, YYOTHERS, 0xb7, 0x131, 0x6000, YYOTHERS, 0x63, 0x13b,
                    543: 0x64, 0x13c, 0x65, 0x13d, 0x66, 0x13e, 0x85, 0x11e,
                    544: 0x6000, YYOTHERS, 0x74, 0x13b, 0x75, 0x148, 0x87, 0x11e,
                    545: 0x6000, YYOTHERS, 0x67, 0x138, 0x68, 0x13b, 0x69, 0x13c,
                    546: 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f, 0x6d, 0x139,
                    547: 0x6e, 0x13a, 0x6f, 0x137, 0x70, 0x135, 0x71, 0x136,
                    548: 0xb8, 0x120, 0x6000, YYOTHERS, 0x5f, 0x13b, 0x60, 0x13c,
                    549: 0x2041, YYOTHERS, 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f,
                    550: 0x203b, YYOTHERS, 0x2040, YYOTHERS, 0x6a, 0x13d, 0x6b, 0x13e,
                    551: 0x6c, 0x13f, 0x203c, YYOTHERS, 0xb9, 0x131, 0xba, 0x120,
                    552: 0x6000, YYOTHERS, 0xbb, 0x10d, 0x6000, YYOTHERS, 0x63, 0x13b,
                    553: 0x64, 0x13c, 0x65, 0x13d, 0x66, 0x13e, 0x2044, YYOTHERS,
                    554: 0x65, 0x13d, 0x66, 0x13e, 0x2065, YYOTHERS, 0x65, 0x13d,
                    555: 0x66, 0x13e, 0x2066, YYOTHERS, 0x2067, YYOTHERS, 0x2068, YYOTHERS,
                    556: 0x68, 0x13b, 0x69, 0x13c, 0x6a, 0x13d, 0x6b, 0x13e,
                    557: 0x6c, 0x13f, 0x6d, 0x139, 0x6e, 0x13a, 0x2042, YYOTHERS,
                    558: 0x203d, YYOTHERS, 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f,
                    559: 0x204b, YYOTHERS, 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f,
                    560: 0x204c, YYOTHERS, 0x204d, YYOTHERS, 0x204e, YYOTHERS, 0x204f, YYOTHERS,
                    561: 0x68, 0x13b, 0x69, 0x13c, 0x6a, 0x13d, 0x6b, 0x13e,
                    562: 0x6c, 0x13f, 0x2050, YYOTHERS, 0x68, 0x13b, 0x69, 0x13c,
                    563: 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f, 0x2051, YYOTHERS,
                    564: 0x67, 0x138, 0x68, 0x13b, 0x69, 0x13c, 0x6a, 0x13d,
                    565: 0x6b, 0x13e, 0x6c, 0x13f, 0x6d, 0x139, 0x6e, 0x13a,
                    566: 0x2052, YYOTHERS, 0x67, 0x138, 0x68, 0x13b, 0x69, 0x13c,
                    567: 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f, 0x6d, 0x139,
                    568: 0x6e, 0x13a, 0x6f, 0x137, 0x71, 0x136, 0x2053, YYOTHERS,
                    569: 0x67, 0x138, 0x68, 0x13b, 0x69, 0x13c, 0x6a, 0x13d,
                    570: 0x6b, 0x13e, 0x6c, 0x13f, 0x6d, 0x139, 0x6e, 0x13a,
                    571: 0x6f, 0x137, 0x2054, YYOTHERS, 0xbc, 0x131, 0xbd, 0x120,
                    572: 0x6000, YYOTHERS, 0xbe, 0x10d, 0x6000, YYOTHERS, 0x74, 0x13b,
                    573: 0x75, 0x148, 0x2043, YYOTHERS, 0x75, 0x148, 0x205e, YYOTHERS,
                    574: 0x67, 0x138, 0x68, 0x13b, 0x69, 0x13c, 0x6a, 0x13d,
                    575: 0x6b, 0x13e, 0x6c, 0x13f, 0x6d, 0x139, 0x6e, 0x13a,
                    576: 0x6f, 0x137, 0x70, 0x135, 0x71, 0x136, 0xbf, 0x131,
                    577: 0xc0, 0x11e, 0x6000, YYOTHERS, 0x67, 0x138, 0x68, 0x13b,
                    578: 0x69, 0x13c, 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f,
                    579: 0x6d, 0x139, 0x6e, 0x13a, 0x6f, 0x137, 0x70, 0x135,
                    580: 0x71, 0x136, 0xc1, 0x120, 0x6000, YYOTHERS, 0x74, 0x13b,
                    581: 0x75, 0x148, 0x2059, YYOTHERS, 0x201d, YYOTHERS, 0x200f, YYOTHERS,
                    582: 0x2016, YYOTHERS, 0x2018, YYOTHERS, 0xc2, 0x14d, 0x6000, YYOTHERS,
                    583: 0xc3, 0x14d, 0x6000, YYOTHERS, 0xc4, 0x131, 0xc5, 0x120,
                    584: 0x6000, YYOTHERS, 0x67, 0x138, 0x68, 0x13b, 0x69, 0x13c,
                    585: 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f, 0x6d, 0x139,
                    586: 0x6e, 0x13a, 0x6f, 0x137, 0x70, 0x135, 0x71, 0x136,
                    587: 0xc6, 0x120, 0x6000, YYOTHERS, 0x2025, YYOTHERS, 0x12, 0x101,
                    588: 0x13, 0x102, 0x15, 0x10c, 0xc8, 0x10d, 0x17, 0x140,
                    589: 0x18, 0x141, 0x19, 0x142, 0x1a, 0x143, 0x1b, 0x13c,
                    590: 0x1d, 0x148, 0x20, 0x144, 0x21, 0x146, 0x22, 0x126,
                    591: 0x23, 0x14a, 0x24, 0x14b, 0x25, 0x14c, 0x27, 0x147,
                    592: 0x6000, YYOTHERS, 0x2030, YYOTHERS, 0xca, 0x131, 0x6000, YYOTHERS,
                    593: 0x12, 0x101, 0x13, 0x102, 0x15, 0x10c, 0xcb, 0x10d,
                    594: 0x17, 0x140, 0x18, 0x141, 0x19, 0x142, 0x1a, 0x143,
                    595: 0x1b, 0x13c, 0x1d, 0x148, 0x20, 0x144, 0x21, 0x146,
                    596: 0x22, 0x126, 0x23, 0x14a, 0x24, 0x14b, 0x25, 0x14c,
                    597: 0x27, 0x147, 0x6000, YYOTHERS, 0x202b, YYOTHERS, 0xcd, 0x131,
                    598: 0x6000, YYOTHERS, 0x2060, YYOTHERS, 0x2058, YYOTHERS, 0x2005, YYOTHERS,
                    599: 0x2006, YYOTHERS, 0x2029, YYOTHERS, 0x2027, YYOTHERS, 0x67, 0x138,
                    600: 0x68, 0x13b, 0x69, 0x13c, 0x6a, 0x13d, 0x6b, 0x13e,
                    601: 0x6c, 0x13f, 0x6d, 0x139, 0x6e, 0x13a, 0x6f, 0x137,
                    602: 0x70, 0x135, 0x71, 0x136, 0xd0, 0x120, 0x6000, YYOTHERS,
                    603: 0xd1, 0x131, 0xd2, 0x120, 0x6000, YYOTHERS, 0x67, 0x138,
                    604: 0x68, 0x13b, 0x69, 0x13c, 0x6a, 0x13d, 0x6b, 0x13e,
                    605: 0x6c, 0x13f, 0x6d, 0x139, 0x6e, 0x13a, 0x6f, 0x137,
                    606: 0x70, 0x135, 0x71, 0x136, 0xd3, 0x120, 0x6000, YYOTHERS,
                    607: 0xd5, 0x131, 0xd6, 0x120, 0x6000, YYOTHERS, 0x67, 0x138,
                    608: 0x68, 0x13b, 0x69, 0x13c, 0x6a, 0x13d, 0x6b, 0x13e,
                    609: 0x6c, 0x13f, 0x6d, 0x139, 0x6e, 0x13a, 0x6f, 0x137,
                    610: 0x70, 0x135, 0x71, 0x136, 0xd7, 0x120, 0x6000, YYOTHERS,
                    611: 0x67, 0x138, 0x68, 0x13b, 0x69, 0x13c, 0x6a, 0x13d,
                    612: 0x6b, 0x13e, 0x6c, 0x13f, 0x6d, 0x139, 0x6e, 0x13a,
                    613: 0x6f, 0x137, 0x70, 0x135, 0x71, 0x136, 0xd9, 0x11e,
                    614: 0x6000, YYOTHERS, 0x67, 0x138, 0x68, 0x13b, 0x69, 0x13c,
                    615: 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f, 0x6d, 0x139,
                    616: 0x6e, 0x13a, 0x6f, 0x137, 0x70, 0x135, 0x71, 0x136,
                    617: 0xda, 0x120, 0x6000, YYOTHERS, 0x2028, YYOTHERS, 0x2033, YYOTHERS,
                    618: 0x2031, YYOTHERS, 0x67, 0x138, 0x68, 0x13b, 0x69, 0x13c,
                    619: 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f, 0x6d, 0x139,
                    620: 0x6e, 0x13a, 0x6f, 0x137, 0x70, 0x135, 0x71, 0x136,
                    621: 0xdc, 0x120, 0x6000, YYOTHERS, 0x202e, YYOTHERS, 0x202c, YYOTHERS,
                    622: 0x67, 0x138, 0x68, 0x13b, 0x69, 0x13c, 0x6a, 0x13d,
                    623: 0x6b, 0x13e, 0x6c, 0x13f, 0x6d, 0x139, 0x6e, 0x13a,
                    624: 0x6f, 0x137, 0x70, 0x135, 0x71, 0x136, 0xde, 0x120,
                    625: 0x6000, YYOTHERS, 0x205f, YYOTHERS, 0x202a, YYOTHERS, 0x67, 0x138,
                    626: 0x68, 0x13b, 0x69, 0x13c, 0x6a, 0x13d, 0x6b, 0x13e,
                    627: 0x6c, 0x13f, 0x6d, 0x139, 0x6e, 0x13a, 0x6f, 0x137,
                    628: 0x70, 0x135, 0x71, 0x136, 0xdf, 0x120, 0x6000, YYOTHERS,
                    629: 0x2032, YYOTHERS, 0x67, 0x138, 0x68, 0x13b, 0x69, 0x13c,
                    630: 0x6a, 0x13d, 0x6b, 0x13e, 0x6c, 0x13f, 0x6d, 0x139,
                    631: 0x6e, 0x13a, 0x6f, 0x137, 0x70, 0x135, 0x71, 0x136,
                    632: 0xe0, 0x120, 0x6000, YYOTHERS, 0x202d, YYOTHERS, 0x2034, YYOTHERS,
                    633: 0x202f, YYOTHERS 
                    634: };
                    635: 
                    636: 
                    637: #define YYNOCHAR (-1000)
                    638: #define        yyerrok yyerrflag=0
                    639: #define        yyclearin       yylval=YYNOCHAR
                    640: int yystack[YYMAXDEPTH];
                    641: YYSTYPE yyvstack[YYMAXDEPTH], *yyv;
                    642: int yychar;
                    643: 
                    644: #ifdef YYDEBUG
                    645: int yydebug = 1;       /* No sir, not in the BSS */
                    646: #include <stdio.h>
                    647: #endif
                    648: 
                    649: short yyerrflag;
                    650: int *yys;
                    651: 
                    652: yyparse()
                    653: {
                    654:        register YYSTYPE *yypvt;
                    655:        int act;
                    656:        register unsigned *ip, yystate;
                    657:        int pno;
                    658:        yystate = 0;
                    659:        yychar = YYNOCHAR;
                    660:        yyv = &yyvstack[-1];
                    661:        yys = &yystack[-1];
                    662: 
                    663: stack:
                    664:        if( ++yys >= &yystack[YYMAXDEPTH] ) {
                    665:                write(2, "Stack overflow\n", 15);
                    666:                exit(1);
                    667:        }
                    668:        *yys = yystate;
                    669:        *++yyv = yyval;
                    670: #ifdef YYDEBUG
                    671:        if( yydebug )
                    672:                fprintf(stdout, "Stack state %d, char %d\n", yystate, yychar);
                    673: #endif
                    674: 
                    675: read:
                    676:        ip = &yyact[yypa[yystate]];
                    677:        if( ip[1] != YYNOCHAR ) {
                    678:                if( yychar == YYNOCHAR ) {
                    679:                        yychar = yylex();
                    680: #ifdef YYDEBUG
                    681:                        if( yydebug )
                    682:                                fprintf(stdout, "lex read char %d, val %d\n", yychar, yylval);
                    683: #endif
                    684:                }
                    685:                while (ip[1]!=YYNOCHAR) {
                    686:                        if (ip[1]==yychar)
                    687:                                break;
                    688:                        ip += 2;
                    689:                }
                    690:        }
                    691:        act = ip[0];
                    692:        switch( act>>YYACTSH ) {
                    693:        case YYSHIFTACT:
                    694:                if( ip[1]==YYNOCHAR )
                    695:                        goto YYerract;
                    696:                if( yychar != -1 )
                    697:                        yychar = YYNOCHAR; /* dont throw away EOF */
                    698:                yystate = act&YYAMASK;
                    699:                yyval = yylval;
                    700: #ifdef YYDEBUG
                    701:                if( yydebug )
                    702:                        fprintf(stdout, "shift %d\n", yystate);
                    703: #endif
                    704:                if( yyerrflag )
                    705:                        --yyerrflag;
                    706:                goto stack;
                    707: 
                    708:        case YYACCEPTACT:
                    709: #ifdef YYDEBUG
                    710:                if( yydebug )
                    711:                        fprintf(stdout, "accept\n");
                    712: #endif
                    713:                return(0);
                    714: 
                    715:        case YYERRACT:
                    716:        YYerract:
                    717:                switch (yyerrflag) {
                    718:                case 0:
                    719:                        yyerror("Syntax error");
                    720: 
                    721:                case 1:
                    722:                case 2:
                    723: 
                    724:                        yyerrflag = 3;
                    725:                        while( yys >= & yystack[0] ) {
                    726:                                ip = &yyact[yypa[*yys]];
                    727:                                while( ip[1]!=YYNOCHAR )
                    728:                                        ip += 2;
                    729:                                if( (*ip&~YYAMASK) == (YYSHIFTACT<<YYACTSH) ) {
                    730:                                        yystate = *ip&YYAMASK;
                    731:                                        goto stack;
                    732:                                }
                    733: #ifdef YYDEBUG
                    734:                                if( yydebug )
                    735:                                        fprintf(stderr, "error recovery leaves state %d, uncovers %d\n", *yys, yys[-1]);
                    736: #endif
                    737:                                yys--;
                    738:                                yyv--;
                    739:                        }
                    740: #ifdef YYDEBUG
                    741:                        if( yydebug )
                    742:                                fprintf(stderr, "no shift on error; abort\n");
                    743: #endif
                    744:                        return(1);
                    745: 
                    746:                case 3:
                    747: #ifdef YYDEBUG
                    748:                        if( yydebug )
                    749:                                fprintf(stderr, "Error recovery clobbers char %o\n", yychar);
                    750: #endif
                    751:                        if( yychar==YYEOFVAL )
                    752:                                return(1);
                    753:                        yychar = YYNOCHAR;
                    754:                        goto read;
                    755:                }
                    756: 
                    757:        case YYREDACT:
                    758:                pno = act&YYAMASK;
                    759: #ifdef YYDEBUG
                    760:                if( yydebug )
                    761:                        fprintf(stdout, "reduce %d\n", pno);
                    762: #endif
                    763:                yypvt = yyv;
                    764:                yyv -= yypn[pno];
                    765:                yys -= yypn[pno];
                    766:                yyval = yyv[1];
                    767:                switch(pno) {
                    768: 
                    769: case 3: {
                    770: 
                    771: #line 352 "asm.y"
                    772:  /* assembler command with parms */
                    773:                docmd(yypvt[-3].p, yypvt[-2].o, yypvt[-1].p); }break;
                    774: 
                    775: case 4: {
                    776: 
                    777: #line 354 "asm.y"
                    778:  /* a command with string parms */
                    779:                docmd(yypvt[-3].p, yypvt[-2].o, yypvt[-1].p); }break;
                    780: 
                    781: case 5: {
                    782: 
                    783: #line 356 "asm.y"
                    784:  /* command with a name & an expr */
                    785:                ecmd(yypvt[-5].p, yypvt[-4].o, yypvt[-3].p, yypvt[-1].d); }break;
                    786: 
                    787: case 6: {
                    788: 
                    789: #line 359 "asm.y"
                    790: 
                    791:                ecmd(yypvt[-5].p, yypvt[-4].o, yypvt[-3].p, yypvt[-1].d); }break;
                    792: 
                    793: case 7: {
                    794: 
                    795: #line 361 "asm.y"
                    796: 
                    797:                ecmd(yypvt[-2].p, yypvt[-1].o, NULL, NULL); }break;
                    798: 
                    799: case 8: {
                    800: 
                    801: #line 363 "asm.y"
                    802:        /* assembler command takes no parms */
                    803:                docmd(yypvt[-2].p, yypvt[-1].o, (parm *)NULL); }break;
                    804: 
                    805: case 9: {
                    806: 
                    807: #line 365 "asm.y"
                    808:  /* assembler command with data parm */
                    809:                ncmd(yypvt[-3].p, yypvt[-2].o, yypvt[-1].d); }break;
                    810: 
                    811: case 10: {
                    812: 
                    813: #line 367 "asm.y"
                    814:  /* data list */
                    815:                dcmd(yypvt[-3].p, yypvt[-2].o, yypvt[-1].d); }break;
                    816: 
                    817: case 11: {
                    818: 
                    819: #line 369 "asm.y"
                    820:        /* opcode operands */
                    821:                buildind(yypvt[-3].p, yypvt[-2].o, yypvt[-1].e); }break;
                    822: 
                    823: case 12: {
                    824: 
                    825: #line 371 "asm.y"
                    826:        /* built by rep instr */
                    827:                buildind(yypvt[-3].p, yypvt[-2].o, NULL);
                    828:                buildind(NULL, yypvt[-1].o, NULL ); }break;
                    829: 
                    830: case 13: {
                    831: 
                    832: #line 374 "asm.y"
                    833:        /* label alone on line */
                    834:                buildlab(yypvt[-1].p); }break;
                    835: 
                    836: case 14: {
                    837: 
                    838: #line 376 "asm.y"
                    839:        /* syntax error */
                    840:                if (bcnt > 0)
                    841:                        unmatched('[');
                    842:                if (bcnt < 0)
                    843:                        unmatched(']');
                    844:                if (pcnt > 0)
                    845:                        unmatched('(');
                    846:                if (pcnt < 0)
                    847:                        unmatched(')');
                    848:                yyerrok; }break;
                    849: 
                    850: case 15: {
                    851: 
                    852: #line 387 "asm.y"
                    853: 
                    854:                yyval.d = yypvt[-2].d;
                    855:                yyval.d->next = yypvt[0].d; }break;
                    856: 
                    857: case 16: {
                    858: 
                    859: #line 390 "asm.y"
                    860: 
                    861:                yyval.d = yypvt[0].d; }break;
                    862: 
                    863: case 17: {
                    864: 
                    865: #line 392 "asm.y"
                    866: 
                    867:                yyval.d = NULL; }break;
                    868: 
                    869: case 18: {
                    870: 
                    871: #line 395 "asm.y"
                    872: 
                    873:                yyval.d = gitem('y');
                    874:                yyval.d->d.y  = yypvt[0].s; }break;
                    875: 
                    876: case 19: {
                    877: 
                    878: #line 398 "asm.y"
                    879: 
                    880:                yyval.d = gitem('d');
                    881:                yyval.d->d.d = yypvt[0].dbl; }break;
                    882: 
                    883: case 20: {
                    884: 
                    885: #line 401 "asm.y"
                    886: 
                    887:                yyval.d = gitem('l');
                    888:                yyval.d->d.l = yypvt[0].val; }break;
                    889: 
                    890: case 21: {
                    891: 
                    892: #line 404 "asm.y"
                    893: 
                    894:                yyval.d = gitem('s');
                    895:                yyval.d->d.s = yypvt[0].t; }break;
                    896: 
                    897: case 22: {
                    898: 
                    899: #line 407 "asm.y"
                    900: 
                    901:                yyval.d = yypvt[0].d;
                    902:                yyval.d->count = yypvt[-2].val; }break;
                    903: 
                    904: case 23: {
                    905: 
                    906: #line 411 "asm.y"
                    907:                /* start parm list */
                    908:                yyval.p = yypvt[0].p; }break;
                    909: 
                    910: case 24: {
                    911: 
                    912: #line 413 "asm.y"
                    913:        /* chain parm list */
                    914:                yyval.p = yypvt[-2].p;
                    915:                yyval.p->next = yypvt[0].p; }break;
                    916: 
                    917: case 25: {
                    918: 
                    919: #line 416 "asm.y"
                    920: 
                    921:                yyval.p = NULL; }break;
                    922: 
                    923: case 26: {
                    924: 
                    925: #line 419 "asm.y"
                    926:                /* start a parm */
                    927:                yyval.p = (parm *)gcpy(yypvt[0].t, offset(parm, str)); }break;
                    928: 
                    929: case 27: {
                    930: 
                    931: #line 422 "asm.y"
                    932:  
                    933:                yyval.p = NULL; }break;
                    934: 
                    935: case 28: {
                    936: 
                    937: #line 424 "asm.y"
                    938: 
                    939:                yyval.p = (parm *)gcpy(yypvt[0].t, offset(parm, str)); }break;
                    940: 
                    941: case 29: {
                    942: 
                    943: #line 428 "asm.y"
                    944: 
                    945:                yyval.e = yypvt[-2].e;
                    946:                yyval.e->next = yypvt[0].e; }break;
                    947: 
                    948: case 30: {
                    949: 
                    950: #line 431 "asm.y"
                    951: 
                    952:                yyval.e = yypvt[0].e; }break;
                    953: 
                    954: case 31: {
                    955: 
                    956: #line 433 "asm.y"
                    957: 
                    958:                lflags |= A_INDIR;
                    959:                yyval.e = yypvt[0].e; }break;
                    960: 
                    961: case 32: {
                    962: 
                    963: #line 436 "asm.y"
                    964: 
                    965:                yyval.e = NULL; }break;
                    966: 
                    967: case 33: {
                    968: 
                    969: #line 439 "asm.y"
                    970: 
                    971:        yyval.e->sg = -1;
                    972:        yyval.e = yypvt[0].e; }break;
                    973: 
                    974: case 34: {
                    975: 
                    976: #line 442 "asm.y"
                    977: 
                    978:                yyval.e = yypvt[0].e;
                    979:                if (yypvt[-2].s->flag != SEG_REG)
                    980:                        regerror(yypvt[-2].s);
                    981:                yyval.e->sg = yypvt[-2].s->loc; }break;
                    982: 
                    983: case 35: {
                    984: 
                    985: #line 449 "asm.y"
                    986: 
                    987:                yyval.e = qbild(0L, T_R, yypvt[0].s, NULL, 0L, NULL); }break;
                    988: 
                    989: case 36: {
                    990: 
                    991: #line 452 "asm.y"
                    992: 
                    993:                yyval.e = fbild(0L);    }break;
                    994: 
                    995: case 37: {
                    996: 
                    997: #line 455 "asm.y"
                    998: 
                    999:                yyval.e = fbild(yypvt[-1].val); }break;
                   1000: 
                   1001: case 38: {
                   1002: 
                   1003: #line 458 "asm.y"
                   1004: 
                   1005:                yyval.e = qbild(0L, T_RI, yypvt[-1].s, NULL, 0L, NULL); }break;
                   1006: 
                   1007: case 39: {
                   1008: 
                   1009: #line 461 "asm.y"
                   1010: 
                   1011:                yyval.e = qbild(0L, T_RIS, yypvt[-3].s, NULL, yypvt[-1].val, NULL); }break;
                   1012: 
                   1013: case 40: {
                   1014: 
                   1015: #line 464 "asm.y"
                   1016: 
                   1017:                yyval.e = qbild(0L, T_RIS, yypvt[-3].s, NULL, yypvt[-1].val, NULL); }break;
                   1018: 
                   1019: case 41: {
                   1020: 
                   1021: #line 467 "asm.y"
                   1022: 
                   1023:                yyval.e = qbild(0L, T_RIX, yypvt[-3].s, yypvt[-1].s, 0L, NULL); }break;
                   1024: 
                   1025: case 42: {
                   1026: 
                   1027: #line 470 "asm.y"
                   1028: 
                   1029:                yyval.e = qbild(0L, T_RIXS, yypvt[-5].s, yypvt[-3].s, yypvt[-1].val, NULL); }break;
                   1030: 
                   1031: case 43: {
                   1032: 
                   1033: #line 473 "asm.y"
                   1034: 
                   1035:                yyval.e = qbild(yypvt[-3].val, T_RID, yypvt[-1].s, NULL, 0L, NULL); }break;
                   1036: 
                   1037: case 44: {
                   1038: 
                   1039: #line 476 "asm.y"
                   1040: 
                   1041:                yyval.e = qbild(yypvt[-5].val, T_RIDS, yypvt[-3].s, NULL, yypvt[-1].val, NULL); }break;
                   1042: 
                   1043: case 45: {
                   1044: 
                   1045: #line 479 "asm.y"
                   1046: 
                   1047:                yyval.e = qbild(yypvt[-6].val, T_RIDS, yypvt[-3].s, NULL, yypvt[-1].val, NULL); }break;
                   1048: 
                   1049: case 46: {
                   1050: 
                   1051: #line 482 "asm.y"
                   1052: 
                   1053:                yyval.e = qbild(yypvt[-5].val, T_RIXD, yypvt[-3].s, yypvt[-1].s, 0L, NULL); }break;
                   1054: 
                   1055: case 47: {
                   1056: 
                   1057: #line 485 "asm.y"
                   1058: 
                   1059:                yyval.e = qbild(yypvt[-7].val, T_RIXDS, yypvt[-5].s, yypvt[-3].s, yypvt[-1].val, NULL); }break;
                   1060: 
                   1061: case 48: {
                   1062: 
                   1063: #line 488 "asm.y"
                   1064: 
                   1065:                yyval.e = qbild(yypvt[-3].s->loc, T_RID, yypvt[-1].s, NULL, 0L, yypvt[-3].s); }break;
                   1066: 
                   1067: case 49: {
                   1068: 
                   1069: #line 491 "asm.y"
                   1070: 
                   1071:                yyval.e = qbild(yypvt[-5].s->loc, T_RIDS, yypvt[-3].s, NULL, yypvt[-1].val, yypvt[-5].s); }break;
                   1072: 
                   1073: case 50: {
                   1074: 
                   1075: #line 494 "asm.y"
                   1076: 
                   1077:                yyval.e = qbild(yypvt[-6].s->loc, T_RIDS, yypvt[-3].s, NULL, yypvt[-1].val, yypvt[-6].s); }break;
                   1078: 
                   1079: case 51: {
                   1080: 
                   1081: #line 497 "asm.y"
                   1082: 
                   1083:                yyval.e = qbild(yypvt[-5].s->loc, T_RIXD, yypvt[-3].s, yypvt[-1].s, 0L, yypvt[-5].s); }break;
                   1084: 
                   1085: case 52: {
                   1086: 
                   1087: #line 500 "asm.y"
                   1088: 
                   1089:                yyval.e = qbild(yypvt[-7].s->loc, T_RIXDS, yypvt[-5].s, yypvt[-3].s, yypvt[-1].val, yypvt[-7].s); }break;
                   1090: 
                   1091: case 53: {
                   1092: 
                   1093: #line 503 "asm.y"
                   1094: 
                   1095:                yyval.e = qbild(yypvt[0].s->loc, T_D, NULL, NULL, 0L, yypvt[0].s); }break;
                   1096: 
                   1097: case 54: {
                   1098: 
                   1099: #line 506 "asm.y"
                   1100: 
                   1101:                yyval.e = qbild(yypvt[0].val, T_D, NULL, NULL, 0L, NULL); }break;
                   1102: 
                   1103: case 55: {
                   1104: 
                   1105: #line 509 "asm.y"
                   1106: 
                   1107:                yyval.e = setImm(yypvt[0].val, (sym *)NULL); }break;
                   1108: 
                   1109: case 56: {
                   1110: 
                   1111: #line 512 "asm.y"
                   1112: 
                   1113:                yyval.e = setImm(yypvt[0].s->loc, yypvt[0].s); }break;
                   1114: 
                   1115: case 57: {
                   1116: 
                   1117: #line 518 "asm.y"
                   1118:  yyval.s = yypvt[0].s; }break;
                   1119: 
                   1120: case 58: {
                   1121: 
                   1122: #line 519 "asm.y"
                   1123:  yyval.s=yypvt[-1].s; }break;
                   1124: 
                   1125: case 59: {
                   1126: 
                   1127: #line 520 "asm.y"
                   1128:  yyval.s = copySym(yypvt[-2].s); yyval.s->loc += yypvt[0].val; }break;
                   1129: 
                   1130: case 60: {
                   1131: 
                   1132: #line 521 "asm.y"
                   1133:  yyval.s = copySym(yypvt[-2].s); yyval.s->loc -= yypvt[0].val; }break;
                   1134: 
                   1135: case 61: {
                   1136: 
                   1137: #line 522 "asm.y"
                   1138:  yyval.s = copySym(yypvt[0].s); yyval.s->loc += yypvt[-2].val; }break;
                   1139: 
                   1140: case 62: {
                   1141: 
                   1142: #line 525 "asm.y"
                   1143: 
                   1144:                yyval.val = yypvt[0].val; }break;
                   1145: 
                   1146: case 63: {
                   1147: 
                   1148: #line 527 "asm.y"
                   1149: 
                   1150:                yyval.val = yypvt[-1].val; }break;
                   1151: 
                   1152: case 64: {
                   1153: 
                   1154: #line 529 "asm.y"
                   1155: 
                   1156:                ckseg(yypvt[-2].s, yypvt[0].s); yyval.val = yypvt[-2].s->loc - yypvt[0].s->loc; }break;
                   1157: 
                   1158: case 65: {
                   1159: 
                   1160: #line 531 "asm.y"
                   1161: 
                   1162:                ckseg(yypvt[-2].s, yypvt[0].s); yyval.val = compare((int)yypvt[-1].val, yypvt[-2].s->loc - yypvt[0].s->loc); }break;
                   1163: 
                   1164: case 66: {
                   1165: 
                   1166: #line 533 "asm.y"
                   1167: 
                   1168:                yyval.val = compare((int)yypvt[-1].val, yypvt[-2].val - yypvt[0].val); }break;
                   1169: 
                   1170: case 67: {
                   1171: 
                   1172: #line 535 "asm.y"
                   1173: 
                   1174:                yyval.val = compare((int)yypvt[-1].val, (long)strcmp(yypvt[-2].t, yypvt[0].t)); }break;
                   1175: 
                   1176: case 68: {
                   1177: 
                   1178: #line 537 "asm.y"
                   1179: 
                   1180:                yyval.val = fcompare((int)yypvt[-1].val, yypvt[-2].dbl - yypvt[0].dbl); }break;
                   1181: 
                   1182: case 69: {
                   1183: 
                   1184: #line 540 "asm.y"
                   1185: 
                   1186:                yyval.val = yypvt[0].s->size; }break;
                   1187: 
                   1188: case 70: {
                   1189: 
                   1190: #line 543 "asm.y"
                   1191: 
                   1192:                yyval.val = yypvt[0].s->loc; }break;
                   1193: 
                   1194: case 71: {
                   1195: 
                   1196: #line 546 "asm.y"
                   1197: 
                   1198:                yyval.val = yypvt[0].s->sg + 1; }break;
                   1199: 
                   1200: case 72: {
                   1201: 
                   1202: #line 549 "asm.y"
                   1203: 
                   1204:                yyval.val = yypvt[0].s->statement && (statement >= yypvt[0].s->statement); }break;
                   1205: 
                   1206: case 73: {
                   1207: 
                   1208: #line 551 "asm.y"
                   1209: 
                   1210:                yyval.val = 1; }break;
                   1211: 
                   1212: case 74: {
                   1213: 
                   1214: #line 553 "asm.y"
                   1215: 
                   1216:                yyval.val = parmCt(); }break;
                   1217: 
                   1218: case 75: {
                   1219: 
                   1220: #line 556 "asm.y"
                   1221: 
                   1222:                yyval.val = yypvt[-2].val + yypvt[0].val; }break;
                   1223: 
                   1224: case 76: {
                   1225: 
                   1226: #line 558 "asm.y"
                   1227: 
                   1228:                yyval.val = yypvt[-2].val - yypvt[0].val; }break;
                   1229: 
                   1230: case 77: {
                   1231: 
                   1232: #line 560 "asm.y"
                   1233: 
                   1234:                yyval.val = yypvt[-2].val * yypvt[0].val; }break;
                   1235: 
                   1236: case 78: {
                   1237: 
                   1238: #line 562 "asm.y"
                   1239: 
                   1240:                yyval.val = yypvt[-2].val / yypvt[0].val; }break;
                   1241: 
                   1242: case 79: {
                   1243: 
                   1244: #line 564 "asm.y"
                   1245: 
                   1246:                yyval.val = yypvt[-2].val % yypvt[0].val; }break;
                   1247: 
                   1248: case 80: {
                   1249: 
                   1250: #line 567 "asm.y"
                   1251: 
                   1252:                yyval.val = yypvt[-2].val << yypvt[0].val; }break;
                   1253: 
                   1254: case 81: {
                   1255: 
                   1256: #line 569 "asm.y"
                   1257: 
                   1258:                yyval.val = yypvt[-2].val >> yypvt[0].val; }break;
                   1259: 
                   1260: case 82: {
                   1261: 
                   1262: #line 573 "asm.y"
                   1263: 
                   1264:                yyval.val = yypvt[-2].val & yypvt[0].val; }break;
                   1265: 
                   1266: case 83: {
                   1267: 
                   1268: #line 575 "asm.y"
                   1269: 
                   1270:                yyval.val = yypvt[-2].val | yypvt[0].val; }break;
                   1271: 
                   1272: case 84: {
                   1273: 
                   1274: #line 577 "asm.y"
                   1275: 
                   1276:                yyval.val = yypvt[-2].val ^ yypvt[0].val; }break;
                   1277: 
                   1278: case 85: {
                   1279: 
                   1280: #line 579 "asm.y"
                   1281: 
                   1282:                yyval.val = - yypvt[0].val; }break;
                   1283: 
                   1284: case 86: {
                   1285: 
                   1286: #line 581 "asm.y"
                   1287: 
                   1288:                yyval.val = !yypvt[0].val; }break;
                   1289: 
                   1290: case 87: {
                   1291: 
                   1292: #line 583 "asm.y"
                   1293: 
                   1294:                yyval.val = ~yypvt[0].val; }break;
                   1295: 
                   1296: case 88: {
                   1297: 
                   1298: #line 586 "asm.y"
                   1299: 
                   1300:                yyval.val = (yypvt[-1].val > strlen(yypvt[-3].t)) ? 0 : yypvt[-3].t[(short)yypvt[-1].val]; }break;
                   1301: 
                   1302: case 89: {
                   1303: 
                   1304: #line 588 "asm.y"
                   1305: 
                   1306:                yyval.val = stringSearch(yypvt[-2].t, yypvt[0].t); }break;
                   1307: 
                   1308: case 90: {
                   1309: 
                   1310: #line 590 "asm.y"
                   1311: 
                   1312:                yyval.val = atol(yypvt[0].t); }break;
                   1313: 
                   1314: case 91: {
                   1315: 
                   1316: #line 592 "asm.y"
                   1317: 
                   1318:                yyval.val = yypvt[0].dbl; }break;
                   1319: 
                   1320: case 92: {
                   1321: 
                   1322: #line 595 "asm.y"
                   1323: 
                   1324:                yyval.t = gcpy(yypvt[0].t, 0); }break;
                   1325: 
                   1326: case 93: {
                   1327: 
                   1328: #line 597 "asm.y"
                   1329: 
                   1330:                yyval.t = yypvt[-1].t; }break;
                   1331: 
                   1332: case 94: {
                   1333: 
                   1334: #line 599 "asm.y"
                   1335: 
                   1336:                yyval.t = concat(yypvt[-2].t, yypvt[0].t); }break;
                   1337: 
                   1338: case 95: {
                   1339: 
                   1340: #line 601 "asm.y"
                   1341: 
                   1342:                yyval.t = substr(yypvt[-5].t, yypvt[-3].val, yypvt[-1].val); }break;
                   1343: 
                   1344: case 96: {
                   1345: 
                   1346: #line 603 "asm.y"
                   1347: 
                   1348:                yyval.t = substr(yypvt[-3].t, yypvt[-1].val, strlen(yypvt[-3].t) - yypvt[-1].val); }break;
                   1349: 
                   1350: case 97: {
                   1351: 
                   1352: #line 605 "asm.y"
                   1353: 
                   1354:                yyval.t = galloc(12);
                   1355:                sprintf(yyval.t, "%ld", yypvt[0].val); }break;
                   1356: 
                   1357: case 98: {
                   1358: 
                   1359: #line 608 "asm.y"
                   1360: 
                   1361:                yyval.t = galloc(20);
                   1362:                sprintf(yyval.t, "%g", yypvt[0].dbl); }break;
                   1363: 
                   1364: case 99: {
                   1365: 
                   1366: #line 613 "asm.y"
                   1367: 
                   1368:                yyval.dbl = yypvt[0].dbl; }break;
                   1369: 
                   1370: case 100: {
                   1371: 
                   1372: #line 615 "asm.y"
                   1373: 
                   1374:                yyval.dbl = yypvt[-1].dbl; }break;
                   1375: 
                   1376: case 101: {
                   1377: 
                   1378: #line 617 "asm.y"
                   1379: 
                   1380:                yyval.dbl = yypvt[-2].dbl + yypvt[0].dbl; }break;
                   1381: 
                   1382: case 102: {
                   1383: 
                   1384: #line 619 "asm.y"
                   1385: 
                   1386:                yyval.dbl = yypvt[-2].dbl - yypvt[0].dbl; }break;
                   1387: 
                   1388: case 103: {
                   1389: 
                   1390: #line 621 "asm.y"
                   1391: 
                   1392:                yyval.dbl = yypvt[-2].dbl * yypvt[0].dbl; }break;
                   1393: 
                   1394: case 104: {
                   1395: 
                   1396: #line 623 "asm.y"
                   1397: 
                   1398:                yyval.dbl = yypvt[-2].dbl / yypvt[0].dbl; }break;
                   1399: 
                   1400: case 105: {
                   1401: 
                   1402: #line 625 "asm.y"
                   1403: 
                   1404:                yyval.dbl = - yypvt[0].dbl; }break;
                   1405: 
                   1406: case 106: {
                   1407: 
                   1408: #line 627 "asm.y"
                   1409: 
                   1410:                yyval.dbl = strtod(yypvt[0].t, (char **)NULL); }break;
                   1411: 
                   1412: case 107: {
                   1413: 
                   1414: #line 629 "asm.y"
                   1415: 
                   1416:                yyval.dbl = yypvt[0].val; }break;
                   1417: 
                   1418:                }
                   1419:                ip = &yygo[ yypgo[yypdnt[pno]] ];
                   1420:                while( *ip!=*yys && *ip!=YYNOCHAR )
                   1421:                        ip += 2;
                   1422:                yystate = ip[1];
                   1423:                goto stack;
                   1424:        }
                   1425: }
                   1426: 
                   1427: 
                   1428: 
                   1429: 

unix.superglobalmegacorp.com

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