Annotation of 42BSD/ucb/pascal/pdx/command/good.y.tab.c, revision 1.1.1.1

1.1       root        1: 
                      2: # line 2 "grammar.yacc"
                      3: /* Copyright (c) 1982 Regents of the University of California */
                      4: 
                      5: static char sccsid[] = "@(#)grammar.yacc 1.2 1/20/82";
                      6: 
                      7: /*
                      8:  * yacc grammar for debugger commands
                      9:  */
                     10: 
                     11: #include "defs.h"
                     12: #include "command.h"
                     13: #include "sym.h"
                     14: #include "symtab.h"
                     15: #include "tree.h"
                     16: #include "process.h"
                     17: #include "source.h"
                     18: 
                     19: 
                     20: # line 43 "grammar.yacc"
                     21: typedef union  {
                     22:        SYM *y_sym;
                     23:        NODE *y_node;
                     24:        int y_int;
                     25:        OP y_op;
                     26:        long y_long;
                     27:        double y_real;
                     28:        char *y_string;
                     29:        BOOLEAN y_bool;
                     30: } YYSTYPE;
                     31: # define ALIAS 257
                     32: # define ASSIGN 258
                     33: # define CALL 259
                     34: # define CHFILE 260
                     35: # define CONT 261
                     36: # define DUMP 262
                     37: # define EDIT 263
                     38: # define GRIPE 264
                     39: # define HELP 265
                     40: # define LIST 266
                     41: # define NEXT 267
                     42: # define QUIT 268
                     43: # define REMAKE 269
                     44: # define PRINT 270
                     45: # define RUN 271
                     46: # define SH 272
                     47: # define SOURCE 273
                     48: # define STATUS 274
                     49: # define STEP 275
                     50: # define STOP 276
                     51: # define STOPI 277
                     52: # define TRACE 278
                     53: # define TRACEI 279
                     54: # define DELETE 280
                     55: # define WHATIS 281
                     56: # define WHICH 282
                     57: # define WHERE 283
                     58: # define XI 284
                     59: # define XD 285
                     60: # define AT 286
                     61: # define IN 287
                     62: # define IF 288
                     63: # define FILENAME 289
                     64: # define INT 290
                     65: # define REAL 291
                     66: # define NAME 292
                     67: # define STRING 293
                     68: # define DIV 294
                     69: # define MOD 295
                     70: # define AND 296
                     71: # define OR 297
                     72: # define NOT 298
                     73: # define UNARYSIGN 299
                     74: #define yyclearin yychar = -1
                     75: #define yyerrok yyerrflag = 0
                     76: extern int yychar;
                     77: extern short yyerrflag;
                     78: #ifndef YYMAXDEPTH
                     79: #define YYMAXDEPTH 150
                     80: #endif
                     81: YYSTYPE yylval, yyval;
                     82: # define YYERRCODE 256
                     83: 
                     84: # line 530 "grammar.yacc"
                     85: 
                     86: 
                     87: /*
                     88:  * parser error handling
                     89:  */
                     90: 
                     91: yyerror(s)
                     92: char *s;
                     93: {
                     94:        if (strcmp(s, "syntax error") == 0) {
                     95:                error("bad command syntax");
                     96:        } else {
                     97:                error(s);
                     98:        }
                     99: }
                    100: 
                    101: /*
                    102:  * In recovering from an error we gobble input up to a newline.
                    103:  */
                    104: 
                    105: gobble()
                    106: {
                    107:        register int t;
                    108: 
                    109:        if (!nlflag) {
                    110:                while ((t = yylex()) != '\n' && t != 0);
                    111:        }
                    112: }
                    113: short yyexca[] ={
                    114: -1, 1,
                    115:        0, -1,
                    116:        -2, 0,
                    117: -1, 140,
                    118:        60, 0,
                    119:        61, 0,
                    120:        62, 0,
                    121:        -2, 79,
                    122:        };
                    123: # define YYNPROD 106
                    124: # define YYLAST 370
                    125: short yyact[]={
                    126: 
                    127:    4,  48, 135,  79,  44,  50,  45,  47, 127,  69,
                    128:   76,  77,  90,  89,  87,  86,  83,  76,  93, 150,
                    129:  109,  56,  40, 145, 104, 100, 109, 101, 143, 105,
                    130:  104, 100, 130, 101, 152, 105, 109,  55, 141, 142,
                    131:  104,  55, 110, 112, 111, 105,  55, 109, 110, 112,
                    132:  111, 104, 100,  96, 101, 109, 105,  95,  39, 104,
                    133:  100, 122, 101,  92, 105,  49,  94, 119, 151, 110,
                    134:  112, 111,  75,  80,  53,  42, 109, 110, 112, 111,
                    135:  104, 100,  66, 101,  41, 105,   8,   3,  67,   2,
                    136:    1,  62,  51,  85,  60,  59,  61,  93,  82,  62,
                    137:  132,  74,  60,   6,  61,  57, 103,  73,  62, 133,
                    138:   58,  60, 103,  61, 134,  93,  62,   5, 137,  60,
                    139:   46,  61, 113,  71,  71,  99,  98,  88,  93,  81,
                    140:   81,  78,  97, 103, 124, 144,  17,  84,  18, 117,
                    141:  118, 103,  92,   0, 129,  94, 126, 128,   0, 131,
                    142:    0,   0,  91,   0,   0, 149, 125, 136,   0,   0,
                    143:   92,   0, 103,  94,   0,   0, 114, 115, 116,   0,
                    144:    0,   0,   0,  92, 120,   0,  94,   0,   0,   0,
                    145:  121,   0, 120,   0,   0, 146,   0,   0,   0,   0,
                    146:    0,   0,   0,   0,   0,   0,   0,   0, 147,   0,
                    147:    0,   0,   0, 138, 139, 140,   0,   0,   0,   0,
                    148:    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
                    149:    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
                    150:    0,   0,   0,  43,   0,   0, 148,   0,   0,   0,
                    151:    0,   0,   0,   0,   0,   0,   0,  25,   9,  26,
                    152:   10,  11,  28,  27,  29,  30,  12,  13,  15,  31,
                    153:   14,  34,   7,  32,  33,  16,  35,  36,  37,  38,
                    154:   19,  20,  21,  22,  23,  24, 106, 107, 108, 102,
                    155:    0,   0, 106, 107, 108, 102,   0,   0,   0,   0,
                    156:  123,  54, 106, 107, 108,  54,   0,  52,   0,   0,
                    157:   54,   0,   0, 106, 107, 108, 102,   0,   0,   0,
                    158:    0, 106, 107, 108, 102,   0,   0,   0,   0,   0,
                    159:    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
                    160:    0,   0, 106, 107, 108, 102,   0,  48,   0,   0,
                    161:    0,  63,  64,  47,  65,  70,  69,  76,  72,  63,
                    162:   64,  47,  65,   0,  70,  69,  68,  72,  63,  64,
                    163:   47,  65,  48,   0,   0,   0,  63,  64,  47,  65 };
                    164: short yypact[]={
                    165: 
                    166: -1000, -10,-1000,  48,-1000,-1000, -40,-1000, -56,-285,
                    167: -284,-1000,   5,-1000,  76,-1000,-1000,  68,  59,-279,
                    168: -285,-289,-1000,  76,  76,-273,-285,-284,-1000,-1000,
                    169: -1000,-1000,-274,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
                    170: -275,-1000, -56,-1000,-276,-277,  51,-1000,-1000,-1000,
                    171: -1000,-1000,-1000,  13,-1000,-1000,-1000,   9,  82,-1000,
                    172:   76,  76,  76,-1000,-1000,-1000,-271,-271,  76,-285,
                    173:    1,  17,  10,-278,-271,-1000,  76,-1000, -28,-1000,
                    174: -1000, -12,-1000,-284,  69,-1000,-1000,-1000,-1000,-1000,
                    175: -1000,  17,  76,-290,-1000,  10,  76,  76,  76,  76,
                    176: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
                    177:  -23, -33,-1000,  76,  -2,  -2, -18,-1000,-1000,-1000,
                    178:   17, -28,-1000,  10,-1000,-271,-1000,   1,-1000,-1000,
                    179:   76,-1000,-1000,  76, -74,-1000,-1000,-1000,  -2,-1000,
                    180:   38,-1000,-1000,-1000,  27,-1000,-1000,-1000,  17,  -7,
                    181: -1000,-1000,-1000 };
                    182: short yypgo[]={
                    183: 
                    184:    0, 138, 136, 132, 126, 125,  65, 117, 103,  88,
                    185:   82, 100,  72,  21, 105,  67, 110,  95,  92,  61,
                    186:   73,  90,  89,  87,  86,  84,  75 };
                    187: short yyr1[]={
                    188: 
                    189:    0,  21,  21,  22,  22,  23,  23,  23,  23,  23,
                    190:   24,  25,  25,  26,  26,  26,   7,   7,   7,   7,
                    191:    7,   7,   7,   7,   7,   7,   7,   7,   7,   7,
                    192:    7,   7,   7,   7,   7,   7,   7,   7,   8,   8,
                    193:    8,   8,   8,   8,   8,   8,   8,   8,   1,   1,
                    194:    2,   2,   9,   9,  10,  10,  10,   6,   6,  11,
                    195:   11,  18,  18,  18,  19,  19,  20,  20,  12,  12,
                    196:   13,  13,  14,  14,  14,  14,  14,  14,  14,  14,
                    197:   14,  15,  16,  16,  16,  16,  16,  17,  17,  17,
                    198:    3,   3,   3,   3,   4,   4,   4,   4,   4,   4,
                    199:    5,   5,   5,   5,   5,   5 };
                    200: short yyr2[]={
                    201: 
                    202:    0,   2,   0,   2,   1,   1,   1,   3,   1,   2,
                    203:    1,   2,   0,   1,   2,   2,   3,   2,   1,   2,
                    204:    2,   1,   2,   1,   1,   3,   3,   3,   4,   3,
                    205:    3,   2,   2,   2,   2,   1,   2,   2,   3,   1,
                    206:    3,   2,   1,   1,   1,   1,   2,   1,   1,   1,
                    207:    1,   1,   1,   2,   2,   2,   3,   0,   1,   0,
                    208:    3,   0,   1,   3,   1,   1,   1,   3,   0,   2,
                    209:    1,   3,   1,   4,   1,   2,   2,   3,   3,   3,
                    210:    3,   1,   1,   1,   4,   3,   2,   1,   1,   1,
                    211:    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
                    212:    1,   2,   1,   2,   1,   2 };
                    213: short yychk[]={
                    214: 
                    215: -1000, -21, -22, -23,  10,  -7,  -8, 272, -24, 258,
                    216:  260, 261, 266, 267, 270, 268, 275,  -2,  -1, 280,
                    217:  281, 282, 283, 284, 285, 257, 259, 263, 262, 264,
                    218:  265, 269, 273, 274, 271, 276, 277, 278, 279,  10,
                    219:   62, -25, -26, 289,  60,  62, -16, 292, 286,  -6,
                    220:  289, -18, 292, -19, 290,  36, -13, -14, -16, -17,
                    221:   43,  45,  40, 290, 291, 293, -10,  -9, 288, 287,
                    222:  286, -14, 289,  -9, -10, -12, 288, 290, -16, 292,
                    223:  -20, -14, -20, 289, -16,  -6, 289, 289, -25, 289,
                    224:  289, -14,  91,  46,  94,  44,  44,  -3,  -4,  -5,
                    225:   43,  45, 297, 124,  42,  47, 294, 295, 296,  38,
                    226:   60,  62,  61,  40, -14, -14, -14, -12, -12, -15,
                    227:  -14, -16, -19, 289, -19, -10, -12, 286, -12, -15,
                    228:   44,  -6, -11,  40, -13, 292, -19, -13, -14, -14,
                    229:  -14,  61,  62,  61, -13,  41, -19, -12, -14, -13,
                    230:   93,  41,  41 };
                    231: short yydef[]={
                    232: 
                    233:    2,  -2,   1,   0,   4,   5,   6,   8,  12,   0,
                    234:   57,  18,  61,  21,   0,  23,  24,   0,  68,   0,
                    235:    0,   0,  35,   0,   0,  39,   0,  57,  42,  43,
                    236:   44,  45,   0,  47,  10,  50,  51,  48,  49,   3,
                    237:    0,   9,  12,  13,   0,   0,   0,  82,  83,  17,
                    238:   58,  19,  20,  62,  64,  65,  22,  70,  72,  74,
                    239:    0,   0,   0,  87,  88,  89,  68,  68,   0,   0,
                    240:   83,  52,   0,  68,  68,  31,   0,  32,  33,  34,
                    241:   36,  66,  37,  57,  59,  41,  46,   7,  11,  14,
                    242:   15,  16,   0,   0,  86,   0,   0,   0,   0,   0,
                    243:   90,  91,  92,  93,  94,  95,  96,  97,  98,  99,
                    244:  100, 102, 104,   0,  75,  76,   0,  25,  26,  27,
                    245:   81,  54,  55,   0,  53,  68,  30,   0,  29,  69,
                    246:    0,  38,  40,   0,   0,  85,  63,  71,  77,  78,
                    247:   -2, 101, 105, 103,   0,  80,  56,  28,  67,   0,
                    248:   84,  73,  60 };
                    249: #
                    250: # define YYFLAG -1000
                    251: # define YYERROR goto yyerrlab
                    252: # define YYACCEPT return(0)
                    253: # define YYABORT return(1)
                    254: 
                    255: /*     parser for yacc output  */
                    256: 
                    257: #ifdef YYDEBUG
                    258: int yydebug = 0; /* 1 for debugging */
                    259: #endif
                    260: YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */
                    261: int yychar = -1; /* current input token number */
                    262: int yynerrs = 0;  /* number of errors */
                    263: short yyerrflag = 0;  /* error recovery flag */
                    264: 
                    265: yyparse() {
                    266: 
                    267:        short yys[YYMAXDEPTH];
                    268:        short yyj, yym;
                    269:        register YYSTYPE *yypvt;
                    270:        register short yystate, *yyps, yyn;
                    271:        register YYSTYPE *yypv;
                    272:        register short *yyxi;
                    273: 
                    274:        yystate = 0;
                    275:        yychar = -1;
                    276:        yynerrs = 0;
                    277:        yyerrflag = 0;
                    278:        yyps= &yys[-1];
                    279:        yypv= &yyv[-1];
                    280: 
                    281:  yystack:    /* put a state and value onto the stack */
                    282: 
                    283: #ifdef YYDEBUG
                    284:        if( yydebug  ) printf( "state %d, char 0%o\n", yystate, yychar );
                    285: #endif
                    286:                if( ++yyps> &yys[YYMAXDEPTH] ) { yyerror( "yacc stack overflow" ); return(1); }
                    287:                *yyps = yystate;
                    288:                ++yypv;
                    289:                *yypv = yyval;
                    290: 
                    291:  yynewstate:
                    292: 
                    293:        yyn = yypact[yystate];
                    294: 
                    295:        if( yyn<= YYFLAG ) goto yydefault; /* simple state */
                    296: 
                    297:        if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0;
                    298:        if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault;
                    299: 
                    300:        if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */
                    301:                yychar = -1;
                    302:                yyval = yylval;
                    303:                yystate = yyn;
                    304:                if( yyerrflag > 0 ) --yyerrflag;
                    305:                goto yystack;
                    306:                }
                    307: 
                    308:  yydefault:
                    309:        /* default state action */
                    310: 
                    311:        if( (yyn=yydef[yystate]) == -2 ) {
                    312:                if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0;
                    313:                /* look through exception table */
                    314: 
                    315:                for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */
                    316: 
                    317:                while( *(yyxi+=2) >= 0 ){
                    318:                        if( *yyxi == yychar ) break;
                    319:                        }
                    320:                if( (yyn = yyxi[1]) < 0 ) return(0);   /* accept */
                    321:                }
                    322: 
                    323:        if( yyn == 0 ){ /* error */
                    324:                /* error ... attempt to resume parsing */
                    325: 
                    326:                switch( yyerrflag ){
                    327: 
                    328:                case 0:   /* brand new error */
                    329: 
                    330:                        yyerror( "syntax error" );
                    331:                yyerrlab:
                    332:                        ++yynerrs;
                    333: 
                    334:                case 1:
                    335:                case 2: /* incompletely recovered error ... try again */
                    336: 
                    337:                        yyerrflag = 3;
                    338: 
                    339:                        /* find a state where "error" is a legal shift action */
                    340: 
                    341:                        while ( yyps >= yys ) {
                    342:                           yyn = yypact[*yyps] + YYERRCODE;
                    343:                           if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){
                    344:                              yystate = yyact[yyn];  /* simulate a shift of "error" */
                    345:                              goto yystack;
                    346:                              }
                    347:                           yyn = yypact[*yyps];
                    348: 
                    349:                           /* the current yyps has no shift onn "error", pop stack */
                    350: 
                    351: #ifdef YYDEBUG
                    352:                           if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );
                    353: #endif
                    354:                           --yyps;
                    355:                           --yypv;
                    356:                           }
                    357: 
                    358:                        /* there is no state on the stack with an error shift ... abort */
                    359: 
                    360:        yyabort:
                    361:                        return(1);
                    362: 
                    363: 
                    364:                case 3:  /* no shift yet; clobber input char */
                    365: 
                    366: #ifdef YYDEBUG
                    367:                        if( yydebug ) printf( "error recovery discards char %d\n", yychar );
                    368: #endif
                    369: 
                    370:                        if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */
                    371:                        yychar = -1;
                    372:                        goto yynewstate;   /* try again in the same state */
                    373: 
                    374:                        }
                    375: 
                    376:                }
                    377: 
                    378:        /* reduction by production yyn */
                    379: 
                    380: #ifdef YYDEBUG
                    381:                if( yydebug ) printf("reduce %d\n",yyn);
                    382: #endif
                    383:                yyps -= yyr2[yyn];
                    384:                yypvt = yypv;
                    385:                yypv -= yyr2[yyn];
                    386:                yyval = yypv[1];
                    387:                yym=yyn;
                    388:                        /* consult goto table to find next state */
                    389:                yyn = yyr1[yyn];
                    390:                yyj = yypgo[yyn] + *yyps + 1;
                    391:                if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];
                    392:                switch(yym){
                    393:                        
                    394: case 1:
                    395: # line 66 "grammar.yacc"
                    396: {
                    397:                prompt();
                    398: } break;
                    399: case 5:
                    400: # line 83 "grammar.yacc"
                    401: {
                    402:                eval(yypvt[-0].y_node);
                    403: } break;
                    404: case 6:
                    405: # line 87 "grammar.yacc"
                    406: {
                    407:                eval(yypvt[-0].y_node);
                    408: } break;
                    409: case 7:
                    410: # line 91 "grammar.yacc"
                    411: {
                    412:                setout(yypvt[-0].y_string);
                    413:                eval(yypvt[-2].y_node);
                    414:                unsetout();
                    415: } break;
                    416: case 8:
                    417: # line 97 "grammar.yacc"
                    418: {
                    419:                shell(yypvt[-0].y_string);
                    420: } break;
                    421: case 9:
                    422: # line 101 "grammar.yacc"
                    423: {
                    424:                run();
                    425: } break;
                    426: case 10:
                    427: # line 107 "grammar.yacc"
                    428: {
                    429:                arginit();
                    430: } break;
                    431: case 13:
                    432: # line 117 "grammar.yacc"
                    433: {
                    434:                newarg(yypvt[-0].y_string);
                    435: } break;
                    436: case 14:
                    437: # line 121 "grammar.yacc"
                    438: {
                    439:                inarg(yypvt[-0].y_string);
                    440: } break;
                    441: case 15:
                    442: # line 125 "grammar.yacc"
                    443: {
                    444:                outarg(yypvt[-0].y_string);
                    445: } break;
                    446: case 16:
                    447: # line 131 "grammar.yacc"
                    448: {
                    449:                yyval.y_node = build(O_ASSIGN, yypvt[-1].y_node, yypvt[-0].y_node);
                    450: } break;
                    451: case 17:
                    452: # line 135 "grammar.yacc"
                    453: {
                    454:                yyval.y_node = build(O_CHFILE, yypvt[-0].y_string);
                    455: } break;
                    456: case 18:
                    457: # line 139 "grammar.yacc"
                    458: {
                    459:                yyval.y_node = build(O_CONT);
                    460: } break;
                    461: case 19:
                    462: # line 143 "grammar.yacc"
                    463: {
                    464:                yyval.y_node = build(O_LIST, yypvt[-0].y_node);
                    465: } break;
                    466: case 20:
                    467: # line 147 "grammar.yacc"
                    468: {
                    469:                yyval.y_node = build(O_LIST, build(O_NAME, yypvt[-0].y_sym));
                    470: } break;
                    471: case 21:
                    472: # line 151 "grammar.yacc"
                    473: {
                    474:                yyval.y_node = build(O_NEXT);
                    475: } break;
                    476: case 22:
                    477: # line 155 "grammar.yacc"
                    478: {
                    479:                yyval.y_node = build(O_PRINT, yypvt[-0].y_node);
                    480: } break;
                    481: case 23:
                    482: # line 159 "grammar.yacc"
                    483: {
                    484:                quit(0);
                    485: } break;
                    486: case 24:
                    487: # line 163 "grammar.yacc"
                    488: {
                    489:                yyval.y_node = build(O_STEP);
                    490: } break;
                    491: case 25:
                    492: # line 167 "grammar.yacc"
                    493: {
                    494:                yyval.y_node = build(yypvt[-2].y_int, NIL, yypvt[-1].y_node, yypvt[-0].y_node);
                    495: } break;
                    496: case 26:
                    497: # line 171 "grammar.yacc"
                    498: {
                    499:                yyval.y_node = build(yypvt[-2].y_int, yypvt[-1].y_node, NIL, yypvt[-0].y_node);
                    500: } break;
                    501: case 27:
                    502: # line 175 "grammar.yacc"
                    503: {
                    504:                yyval.y_node = build(yypvt[-2].y_int, NIL, NIL, yypvt[-0].y_node);
                    505: } break;
                    506: case 28:
                    507: # line 179 "grammar.yacc"
                    508: {
                    509:                yyval.y_node = build(yypvt[-3].y_int, yypvt[-2].y_node, yypvt[-1].y_node, yypvt[-0].y_node);
                    510: } break;
                    511: case 29:
                    512: # line 183 "grammar.yacc"
                    513: {
                    514:                yyval.y_node = build(yypvt[-2].y_int, NIL, yypvt[-1].y_node, yypvt[-0].y_node);
                    515: } break;
                    516: case 30:
                    517: # line 187 "grammar.yacc"
                    518: {
                    519:                yyval.y_node = build(yypvt[-2].y_int, yypvt[-1].y_node, NIL, yypvt[-0].y_node);
                    520: } break;
                    521: case 31:
                    522: # line 191 "grammar.yacc"
                    523: {
                    524:                yyval.y_node = build(yypvt[-1].y_int, NIL, NIL, yypvt[-0].y_node);
                    525: } break;
                    526: case 32:
                    527: # line 195 "grammar.yacc"
                    528: {
                    529:                yyval.y_node = build(O_DELETE, yypvt[-0].y_long);
                    530: } break;
                    531: case 33:
                    532: # line 199 "grammar.yacc"
                    533: {
                    534:                yyval.y_node = build(O_WHATIS, yypvt[-0].y_node);
                    535: } break;
                    536: case 34:
                    537: # line 203 "grammar.yacc"
                    538: {
                    539:                yyval.y_node = build(O_WHICH, yypvt[-0].y_sym);
                    540: } break;
                    541: case 35:
                    542: # line 207 "grammar.yacc"
                    543: {
                    544:                yyval.y_node = build(O_WHERE);
                    545: } break;
                    546: case 36:
                    547: # line 211 "grammar.yacc"
                    548: {
                    549:                yyval.y_node = build(O_XI, yypvt[-0].y_node);
                    550: } break;
                    551: case 37:
                    552: # line 215 "grammar.yacc"
                    553: {
                    554:                yyval.y_node = build(O_XD, yypvt[-0].y_node);
                    555: } break;
                    556: case 38:
                    557: # line 221 "grammar.yacc"
                    558: {
                    559:                yyval.y_node = build(O_ALIAS, yypvt[-1].y_string, yypvt[-0].y_string);
                    560: } break;
                    561: case 39:
                    562: # line 225 "grammar.yacc"
                    563: {
                    564:                yyval.y_node = build(O_ALIAS, NIL, NIL);
                    565: } break;
                    566: case 40:
                    567: # line 229 "grammar.yacc"
                    568: {
                    569:                yyval.y_node = build(O_CALL, yypvt[-1].y_node, yypvt[-0].y_node);
                    570: } break;
                    571: case 41:
                    572: # line 233 "grammar.yacc"
                    573: {
                    574:                yyval.y_node = build(O_EDIT, yypvt[-0].y_string);
                    575: } break;
                    576: case 42:
                    577: # line 237 "grammar.yacc"
                    578: {
                    579:                yyval.y_node = build(O_DUMP);
                    580: } break;
                    581: case 43:
                    582: # line 241 "grammar.yacc"
                    583: {
                    584:                yyval.y_node = build(O_GRIPE);
                    585: } break;
                    586: case 44:
                    587: # line 245 "grammar.yacc"
                    588: {
                    589:                yyval.y_node = build(O_HELP);
                    590: } break;
                    591: case 45:
                    592: # line 249 "grammar.yacc"
                    593: {
                    594:                yyval.y_node = build(O_REMAKE);
                    595: } break;
                    596: case 46:
                    597: # line 253 "grammar.yacc"
                    598: {
                    599:                yyval.y_node = build(O_SOURCE, yypvt[-0].y_string);
                    600: } break;
                    601: case 47:
                    602: # line 257 "grammar.yacc"
                    603: {
                    604:                yyval.y_node = build(O_STATUS);
                    605: } break;
                    606: case 48:
                    607: # line 263 "grammar.yacc"
                    608: {
                    609:                yyval.y_int = O_TRACE;
                    610: } break;
                    611: case 49:
                    612: # line 267 "grammar.yacc"
                    613: {
                    614:                yyval.y_int = O_TRACEI;
                    615: } break;
                    616: case 50:
                    617: # line 273 "grammar.yacc"
                    618: {
                    619:                yyval.y_int = O_STOP;
                    620: } break;
                    621: case 51:
                    622: # line 277 "grammar.yacc"
                    623: {
                    624:                yyval.y_int = O_STOPI;
                    625: } break;
                    626: case 53:
                    627: # line 284 "grammar.yacc"
                    628: {
                    629:                yyval.y_node = build(O_QLINE, yypvt[-1].y_string, yypvt[-0].y_node);
                    630: } break;
                    631: case 54:
                    632: # line 290 "grammar.yacc"
                    633: {
                    634:                yyval.y_node = yypvt[-0].y_node;
                    635: } break;
                    636: case 55:
                    637: # line 294 "grammar.yacc"
                    638: {
                    639:                yyval.y_node = build(O_QLINE, cursource, yypvt[-0].y_node);
                    640: } break;
                    641: case 56:
                    642: # line 298 "grammar.yacc"
                    643: {
                    644:                yyval.y_node = build(O_QLINE, yypvt[-1].y_string, yypvt[-0].y_node);
                    645: } break;
                    646: case 57:
                    647: # line 304 "grammar.yacc"
                    648: {
                    649:                yyval.y_string = NIL;
                    650: } break;
                    651: case 59:
                    652: # line 311 "grammar.yacc"
                    653: {
                    654:                yyval.y_node = NIL;
                    655: } break;
                    656: case 60:
                    657: # line 315 "grammar.yacc"
                    658: {
                    659:                yyval.y_node = yypvt[-1].y_node;
                    660: } break;
                    661: case 61:
                    662: # line 321 "grammar.yacc"
                    663: {
                    664:                NODE *first, *last;
                    665: 
                    666:                first = build(O_LCON, (long) 1);
                    667:                last = build(O_LCON, (long) lastlinenum);
                    668:                yyval.y_node = build(O_COMMA, first, last);
                    669: } break;
                    670: case 62:
                    671: # line 329 "grammar.yacc"
                    672: {
                    673:                yyval.y_node = build(O_COMMA, yypvt[-0].y_node, yypvt[-0].y_node);
                    674: } break;
                    675: case 63:
                    676: # line 333 "grammar.yacc"
                    677: {
                    678:                yyval.y_node = build(O_COMMA, yypvt[-2].y_node, yypvt[-0].y_node);
                    679: } break;
                    680: case 64:
                    681: # line 339 "grammar.yacc"
                    682: {
                    683:                yyval.y_node = build(O_LCON, yypvt[-0].y_long);
                    684: } break;
                    685: case 65:
                    686: # line 343 "grammar.yacc"
                    687: {
                    688:                yyval.y_node = build(O_LCON, (long) lastlinenum);
                    689: } break;
                    690: case 66:
                    691: # line 349 "grammar.yacc"
                    692: {
                    693:                yyval.y_node = build(O_COMMA, yypvt[-0].y_node, yypvt[-0].y_node);
                    694: } break;
                    695: case 67:
                    696: # line 353 "grammar.yacc"
                    697: {
                    698:                yyval.y_node = build(O_COMMA, yypvt[-2].y_node, yypvt[-0].y_node);
                    699: } break;
                    700: case 68:
                    701: # line 359 "grammar.yacc"
                    702: {
                    703:                yyval.y_node = NIL;
                    704: } break;
                    705: case 69:
                    706: # line 363 "grammar.yacc"
                    707: {
                    708:                yyval.y_node = yypvt[-0].y_node;
                    709: } break;
                    710: case 70:
                    711: # line 369 "grammar.yacc"
                    712: {
                    713:                yyval.y_node = build(O_COMMA, yypvt[-0].y_node, NIL);
                    714: } break;
                    715: case 71:
                    716: # line 373 "grammar.yacc"
                    717: {
                    718:                yyval.y_node = build(O_COMMA, yypvt[-2].y_node, yypvt[-0].y_node);
                    719: } break;
                    720: case 72:
                    721: # line 379 "grammar.yacc"
                    722: {
                    723:                yyval.y_node = build(O_RVAL, yypvt[-0].y_node);
                    724: } break;
                    725: case 73:
                    726: # line 383 "grammar.yacc"
                    727: {
                    728:                yyval.y_node = build(O_CALL, yypvt[-3].y_node, yypvt[-1].y_node);
                    729: } break;
                    730: case 75:
                    731: # line 388 "grammar.yacc"
                    732: {
                    733:                yyval.y_node = yypvt[-0].y_node;
                    734: } break;
                    735: case 76:
                    736: # line 392 "grammar.yacc"
                    737: {
                    738:                yyval.y_node = build(O_NEG, yypvt[-0].y_node);
                    739: } break;
                    740: case 77:
                    741: # line 396 "grammar.yacc"
                    742: {
                    743:                yyval.y_node = build(yypvt[-1].y_op, yypvt[-2].y_node, yypvt[-0].y_node);
                    744: } break;
                    745: case 78:
                    746: # line 400 "grammar.yacc"
                    747: {
                    748:                yyval.y_node = build(yypvt[-1].y_op, yypvt[-2].y_node, yypvt[-0].y_node);
                    749: } break;
                    750: case 79:
                    751: # line 404 "grammar.yacc"
                    752: {
                    753:                yyval.y_node = build(yypvt[-1].y_op, yypvt[-2].y_node, yypvt[-0].y_node);
                    754: } break;
                    755: case 80:
                    756: # line 408 "grammar.yacc"
                    757: {
                    758:                yyval.y_node = yypvt[-1].y_node;
                    759: } break;
                    760: case 81:
                    761: # line 414 "grammar.yacc"
                    762: {
                    763:                chkboolean(yyval.y_node = yypvt[-0].y_node);
                    764: } break;
                    765: case 82:
                    766: # line 420 "grammar.yacc"
                    767: {
                    768:                yyval.y_node = build(O_NAME, yypvt[-0].y_sym);
                    769: } break;
                    770: case 83:
                    771: # line 424 "grammar.yacc"
                    772: {
                    773:                SYM *s;
                    774: 
                    775:                s = st_lookup(symtab, "at");
                    776:                if (s == NIL) {
                    777:                        error("\"at\" is not defined");
                    778:                }
                    779:                yyval.y_node = build(O_NAME, s);
                    780: } break;
                    781: case 84:
                    782: # line 434 "grammar.yacc"
                    783: {
                    784:                yyval.y_node = subscript(yypvt[-3].y_node, yypvt[-1].y_node);
                    785: } break;
                    786: case 85:
                    787: # line 438 "grammar.yacc"
                    788: {
                    789:                yyval.y_node = dot(yypvt[-2].y_node, yypvt[-0].y_sym);
                    790: } break;
                    791: case 86:
                    792: # line 442 "grammar.yacc"
                    793: {
                    794:                yyval.y_node = build(O_INDIR, yypvt[-1].y_node);
                    795: } break;
                    796: case 87:
                    797: # line 448 "grammar.yacc"
                    798: {
                    799:                yyval.y_node = build(O_LCON, yypvt[-0].y_long);
                    800: } break;
                    801: case 88:
                    802: # line 452 "grammar.yacc"
                    803: {
                    804:                yyval.y_node = build(O_FCON, yypvt[-0].y_real);
                    805: } break;
                    806: case 89:
                    807: # line 456 "grammar.yacc"
                    808: {
                    809:                yyval.y_node = build(O_SCON, yypvt[-0].y_string);
                    810: } break;
                    811: case 90:
                    812: # line 462 "grammar.yacc"
                    813: {
                    814:                yyval.y_op = O_ADD;
                    815: } break;
                    816: case 91:
                    817: # line 466 "grammar.yacc"
                    818: {
                    819:                yyval.y_op = O_SUB;
                    820: } break;
                    821: case 92:
                    822: # line 470 "grammar.yacc"
                    823: {
                    824:                yyval.y_op = O_OR;
                    825: } break;
                    826: case 93:
                    827: # line 474 "grammar.yacc"
                    828: {
                    829:                yyval.y_op = O_OR;
                    830: } break;
                    831: case 94:
                    832: # line 480 "grammar.yacc"
                    833: {
                    834:                yyval.y_op = O_MUL;
                    835: } break;
                    836: case 95:
                    837: # line 484 "grammar.yacc"
                    838: {
                    839:                yyval.y_op = O_DIVF;
                    840: } break;
                    841: case 96:
                    842: # line 488 "grammar.yacc"
                    843: {
                    844:                yyval.y_op = O_DIV;
                    845: } break;
                    846: case 97:
                    847: # line 492 "grammar.yacc"
                    848: {
                    849:                yyval.y_op = O_MOD;
                    850: } break;
                    851: case 98:
                    852: # line 496 "grammar.yacc"
                    853: {
                    854:                yyval.y_op = O_AND;
                    855: } break;
                    856: case 99:
                    857: # line 500 "grammar.yacc"
                    858: {
                    859:                yyval.y_op = O_AND;
                    860: } break;
                    861: case 100:
                    862: # line 506 "grammar.yacc"
                    863: {
                    864:                yyval.y_op = O_LT;
                    865: } break;
                    866: case 101:
                    867: # line 510 "grammar.yacc"
                    868: {
                    869:                yyval.y_op = O_LE;
                    870: } break;
                    871: case 102:
                    872: # line 514 "grammar.yacc"
                    873: {
                    874:                yyval.y_op = O_GT;
                    875: } break;
                    876: case 103:
                    877: # line 518 "grammar.yacc"
                    878: {
                    879:                yyval.y_op = O_GE;
                    880: } break;
                    881: case 104:
                    882: # line 522 "grammar.yacc"
                    883: {
                    884:                yyval.y_op = O_EQ;
                    885: } break;
                    886: case 105:
                    887: # line 526 "grammar.yacc"
                    888: {
                    889:                yyval.y_op = O_NE;
                    890: } break;
                    891:                }
                    892:                goto yystack;  /* stack new state and value */
                    893: 
                    894:        }

unix.superglobalmegacorp.com

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