Annotation of 42BSD/ingres/source/parser/grammar.c, revision 1.1.1.1

1.1       root        1: 
                      2: # line 15 "grammar.z"
                      3: /* SCANNER/PARSER GLOBALS & TABLES */
                      4: # include      <ingres.h>
                      5: # include      <aux.h>
                      6: # include      <tree.h>
                      7: # include      <symbol.h>
                      8: # include      <pv.h>
                      9: # include      "parser.h"
                     10: # include      <sccs.h>
                     11: 
                     12: SCCSID(@(#)grammar.y   7.2     4/7/82)
                     13: 
                     14: # ifdef                xPTR1
                     15: # define       YYDEBUG
                     16: # endif
                     17: 
                     18: int                            i;
                     19: struct atstash                 *aptr;
                     20: char                           permbuf[3];
                     21: /* space for two names, their null bytes and the seperator */
                     22: char                           modbuf[(2 * (MAXNAME + 1)) + 1];
                     23: static char                    hqmbuf[2];
                     24: 
                     25: extern DESC                    Reldesc;
                     26: extern int                     Opflag;
                     27: extern QTREE                   *Lastree;
                     28: extern QTREE                   *Tidnode;
                     29: extern int                     Rsdmno;
                     30: extern int                     Resrng;
                     31: extern int                     Qrymod;
                     32: extern int                     Permcomd;
                     33: extern char                    *Trname;
                     34: extern int                     Qlflag;
                     35: extern struct atstash          Faketid;
                     36: 
                     37: # ifdef        DISTRIB
                     38: extern struct atstash          Fakesid;
                     39: # endif
                     40: 
                     41: extern int                     Patflag;
                     42: extern char                    *Indexname;
                     43: 
                     44: extern QTREE                   *tree();
                     45: extern QTREE                   *tlprepend();
                     46: extern QTREE                   *addresdom();
                     47: extern QTREE                   *xdot();
                     48: extern QTREE                   *norml();
                     49: extern struct atstash          *attlookup();
                     50: extern int                     rngent();
                     51: extern int                     rnglook();
                     52: extern PARRNG                  Parrng[];
                     53: 
                     54: # line 71 "grammar.z"
                     55: typedef union 
                     56: {
                     57:        int                             type_type;      /* OPERATOR TYPES ETC. */
                     58:        QTREE                           *tree_type;
                     59:        int                             rng_type;
                     60:        char                            char_type;
                     61:        int                             int_type;
                     62:        short                           *I2_type;
                     63:        long                            *I4_type;
                     64:        float                           *F4_type;
                     65:        double                          *F8_type;
                     66:        char                            *string_type;
                     67: } YYSTYPE;
                     68: # define APPEND 257
                     69: # define COPY 258
                     70: # define CREATE 259
                     71: # define DELETE 260
                     72: # define DESTROY 261
                     73: # define HELP 262
                     74: # define INDEX 263
                     75: # define MODIFY 264
                     76: # define PRINT 265
                     77: # define RANGE 266
                     78: # define REPLACE 267
                     79: # define RETRIEVE 268
                     80: # define SAVE 269
                     81: # define DEFINE 270
                     82: # define PERMIT 271
                     83: # define VIEW 272
                     84: # define INTEGRITY 273
                     85: # define ALL 274
                     86: # define BY 275
                     87: # define FROM 276
                     88: # define IN 277
                     89: # define INTO 278
                     90: # define UNIQUE 279
                     91: # define AT 280
                     92: # define IS 281
                     93: # define OF 282
                     94: # define ON 283
                     95: # define ONTO 284
                     96: # define TO 285
                     97: # define UNTIL 286
                     98: # define WHERE 287
                     99: # define NAME 288
                    100: # define SCONST 289
                    101: # define I2CONST 290
                    102: # define I4CONST 291
                    103: # define F4CONST 292
                    104: # define F8CONST 293
                    105: # define COMMA 294
                    106: # define LPAREN 295
                    107: # define PERIOD 296
                    108: # define RPAREN 297
                    109: # define COLON 298
                    110: # define BGNCMNT 299
                    111: # define ENDCMNT 300
                    112: # define UAOP 301
                    113: # define BAOP 302
                    114: # define BAOPH 303
                    115: # define BDOP 304
                    116: # define EOP 305
                    117: # define LBOP 306
                    118: # define LUOP 307
                    119: # define FOP 308
                    120: # define FBOP 309
                    121: # define AGOP 310
                    122: # define unaryop 311
                    123: #define yyclearin yychar = -1
                    124: #define yyerrok yyerrflag = 0
                    125: extern int yychar;
                    126: extern short yyerrflag;
                    127: #ifndef YYMAXDEPTH
                    128: #define YYMAXDEPTH 150
                    129: #endif
                    130: YYSTYPE yylval, yyval;
                    131: # define YYERRCODE 256
                    132: 
                    133: # line 1091 "grammar.z"
                    134: 
                    135: # include      "scanner.h"
                    136: # include      "tables.y"
                    137: # include      "yyerror.y"
                    138: short yyexca[] ={
                    139: -1, 1,
                    140:        0, -1,
                    141:        -2, 0,
                    142: -1, 35,
                    143:        295, 45,
                    144:        -2, 49,
                    145: -1, 195,
                    146:        296, 128,
                    147:        -2, 134,
                    148:        };
                    149: # define YYNPROD 203
                    150: # define YYLAST 485
                    151: short yyact[]={
                    152: 
                    153:  183, 314, 195, 194, 190, 191, 192, 193, 270, 180,
                    154:  225, 230, 142, 284, 331, 197, 320, 225, 287, 234,
                    155:  326, 181, 187, 188, 189, 195, 194, 190, 191, 192,
                    156:  193, 234, 237, 231, 230, 271, 297, 316, 197, 232,
                    157:  231, 230, 235, 233, 207, 187, 188, 189, 144, 296,
                    158:  241, 232, 231, 230, 235, 233, 232, 231, 230, 204,
                    159:  240, 321, 232, 231, 230, 232, 231, 230, 295, 301,
                    160:   70, 271, 232, 231, 230, 232, 231, 230, 232, 231,
                    161:  230, 267, 210, 200, 266, 211, 199, 122, 135, 134,
                    162:  162, 136,  60,  62, 239, 144, 238, 108, 168, 120,
                    163:  132,  87, 323,  76, 119,  81, 286, 106, 208, 122,
                    164:  127, 126, 125,  61,  73, 178, 307,  77,  78, 306,
                    165:  332, 330, 325, 318, 311,  61, 253, 293, 178, 159,
                    166:   72,  77,  78,  69, 157,  68, 280, 265, 328, 244,
                    167:  319, 292, 285, 304, 261,  61, 221, 245, 246, 147,
                    168:   61, 264, 173, 245, 222, 117, 166, 161, 150, 137,
                    169:  124, 123,  80,  56, 206, 144, 258, 260,  59,  57,
                    170:   58, 104, 103, 141, 329, 324, 218,  85, 105, 130,
                    171:  308, 227,  86,  83,  84, 223, 216, 236,  99,  98,
                    172:  154, 156, 112, 158, 100,  96,  66,  64, 203, 251,
                    173:  302, 263, 243,  65, 202, 205, 171, 164, 249, 291,
                    174:  248, 220, 176,  19,  38,  39,  40,  41,  42,  43,
                    175:   53,  46,  47,  48,  49,  50,  51,  45, 177, 201,
                    176:  272, 273, 274, 275,  93, 179, 198,  92, 276, 277,
                    177:  278, 279, 196, 146,  94,  91, 114, 113, 115,  89,
                    178:   75,  90, 110, 109, 111, 107, 116,   2,  67,  54,
                    179:  175, 174,  36,  32, 283, 257, 259, 215, 256, 214,
                    180:  165,  30,  44,  28,  79,  27,  74,  26,  71, 250,
                    181:  252, 254,  25, 255,  24,  22, 155, 153, 247, 152,
                    182:   21,  95, 298, 143, 163,  82,  29, 312, 315, 290,
                    183:  289, 305, 133, 288, 262, 217, 131,  88,  31,  52,
                    184:   37, 102, 118, 101,  35, 317,  97,  34,  63,  23,
                    185:  121,  55,  20,  33, 315, 327, 322,  18,  17,  16,
                    186:   15,  14,  13,  12,  11,  10,   9,   8,   7, 129,
                    187:  128,   6,   5,   4,   3, 149, 186, 185, 313, 229,
                    188:  184, 148, 252, 300, 138, 182, 145, 139, 219, 140,
                    189:  167,   1,   0,   0,   0,   0,   0,   0,   0,   0,
                    190:    0,   0,   0,   0, 151,   0,   0, 160,   0,   0,
                    191:    0,   0, 169,   0, 209,   0, 212,   0,   0,   0,
                    192:  170,   0,   0,   0, 172,   0,   0,   0,   0, 213,
                    193:    0,   0,   0,   0, 224,   0,   0, 310,   0,   0,
                    194:  309,   0,   0,   0,   0,   0, 226, 228,   0,   0,
                    195:    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
                    196:    0,   0,   0,   0,   0,   0,   0, 149,   0,   0,
                    197:    0,   0,   0, 148, 242,   0,   0,   0,   0,   0,
                    198:    0,   0,   0, 268, 303,   0,   0,   0,   0,   0,
                    199:    0, 269,   0,   0,   0,   0,   0,   0,   0,   0,
                    200:    0,   0,   0,   0,   0,   0,   0,   0,   0, 294,
                    201:  281, 299,   0,   0, 282 };
                    202: short yypact[]={
                    203: 
                    204:  -43, -43,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
                    205: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
                    206: -115,-143,-143, -80,-138,-160,-171,-126,-190,-100,
                    207: -143, -23,-143, -87, -89,-107,-143,-198,-1000,-1000,
                    208: -1000,-1000,-1000, -19, -91, -25,-1000,-1000,-1000,-1000,
                    209: -1000,-1000,-133,-1000,-1000,-133,-1000,-1000,-1000,-1000,
                    210: -191,-1000,-196,-133,-1000,-1000,-1000,-185,-127,-128,
                    211: -1000,-182,-1000,-1000,-183,-1000,-1000,-1000,-1000,-184,
                    212: -1000,-143,-133,-1000,-1000,-1000,-1000,-106,-194,-1000,
                    213: -1000,-1000,-1000,-1000,-1000,-185,-129,-133,-1000,-1000,
                    214: -1000,-198,-133,-1000,-1000,-1000,-113,-122,-139,-1000,
                    215: -1000,-1000,-130,-1000,-1000,-1000,-1000,-1000,-198,-143,
                    216: -143,-122,-143,-1000,-1000,-161,-157,-131,-207, -74,
                    217: -132,-197, -23,-133,-1000,-1000,-1000, -75,-198,-122,
                    218: -1000,-175,-1000,-286,-1000,-211,-1000, -77,-1000,-237,
                    219:  -76,-122,-253,-186, -77,-212, -77,-1000,-1000,-1000,
                    220: -1000,-1000,-1000,-286,-1000, -97,-1000,-109,-142,-1000,
                    221: -1000,-134,-122,-1000,-1000,-162,-1000,-1000,-1000,-296,
                    222: -286,-286,-1000,-250,-1000,-1000,-263,-199,-201,-235,
                    223: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-246,-1000,
                    224: -139,-263,-1000,-1000,-135,-140,-1000, -68,-143,-163,
                    225: -143,-1000,-143,-296,-121,-144,-1000, -79,-137,-213,
                    226: -1000,-1000,-1000,-1000,-162,-286,-289,-262,-1000,-263,
                    227: -263,-263,-263,-1000,-1000,-1000,-1000,-263,-263,-263,
                    228: -263,-141,-1000,-223,-1000,-1000,-1000,-153,-1000,-1000,
                    229:  -77,-1000,-1000,-1000, -77,-1000,-1000,-146,-1000,-188,
                    230: -1000,-280, -67,-147,-1000,-1000,-1000,-142,-1000,-1000,
                    231: -1000,-1000,-223,-1000,-292,-269,-226,-229,-245,-239,
                    232: -1000,-163,-143,-225,-1000, -81,-144,-145,-122,-103,
                    233: -103,-166,-1000,-1000,-1000,-1000,-263,-263,-260,-1000,
                    234: -1000,-146,-167,-1000,-1000,-1000,-1000,-1000,-148,-1000,
                    235: -1000,-282,-236,-192,-1000,-223,-1000,-1000,-1000,-110,
                    236: -168,-1000,-277,-263,-150,-111,-1000,-1000,-1000,-169,
                    237: -284,-170,-1000 };
                    238: short yypgo[]={
                    239: 
                    240:    0, 361, 360, 358, 211, 255, 356, 243,  12, 235,
                    241:  355,   0, 350, 349, 348,   1, 242, 236, 347, 346,
                    242:   70, 257, 344, 343, 342, 341, 338, 337, 336, 335,
                    243:  334, 333, 332, 331, 330, 329, 328, 327, 323, 322,
                    244:  321, 256, 319, 318, 317, 316, 314, 313, 311, 310,
                    245:  309, 308, 307, 306, 305, 304, 303, 249, 302, 300,
                    246:  119, 299, 116, 296, 295, 294, 229, 293, 290, 289,
                    247:  288, 287, 199, 286, 285, 284, 258, 282, 278, 277,
                    248:  276, 275, 274, 250, 273, 272, 271, 270, 269, 268,
                    249:  267, 266, 167, 265, 264,  13, 263, 262, 261, 260,
                    250:  228 };
                    251: short yyr1[]={
                    252: 
                    253:    0,   1,   1,   1,  21,  21,  21,  21,  21,  21,
                    254:   21,  21,  21,  21,  21,  21,  21,  21,  21,  21,
                    255:   21,  33,  38,  22,  39,  40,  40,  40,  40,  40,
                    256:   25,  42,  43,  43,  43,  43,  34,  44,  45,  45,
                    257:   45,  45,  35,  46,  47,  47,  47,  48,  48,  48,
                    258:   37,  49,  50,  31,  51,  52,  52,  57,  57,  57,
                    259:   57,  57,  53,  58,  58,  58,   2,   2,   3,   3,
                    260:    4,  54,  54,  55,  55,  55,  56,  56,  56,  56,
                    261:   61,  62,  59,  60,  29,  63,  64,  64,  64,  64,
                    262:   64,  65,  65,  41,   5,   6,   6,   7,   7,   7,
                    263:   66,  66,   8,   8,  67,   9,   9,   9,   9,  10,
                    264:   13,  13,  13,  11,  11,  11,  11,  11,  11,  11,
                    265:   11,  11,  12,  12,  14,  14,  15,  16,  17,  18,
                    266:   18,  18,  18,  18,  18,  18,  19,  23,  68,  69,
                    267:   69,  71,  71,  72,  72,  20,  73,  73,  70,  70,
                    268:   24,  74,  26,  26,  75,  77,  77,  78,  78,  78,
                    269:   27,  27,  27,  79,  81,  81,  81,  80,  80,  80,
                    270:   83,  83,  82,  82,  28,  84,  85,  30,  86,  87,
                    271:   88,  88,  90,  91,  91,  92,  92,  89,  89,  93,
                    272:   94,  94,  95,  76,  76,  32,  96,  36,  97,  98,
                    273:   99,  99, 100 };
                    274: short yyr2[]={
                    275: 
                    276:    0,   2,   1,   0,   1,   1,   1,   1,   1,   1,
                    277:    1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
                    278:    1,   5,   1,   5,   1,   1,   1,   1,   1,   0,
                    279:    4,   1,   1,   1,   1,   0,   5,   1,   1,   1,
                    280:    1,   0,   4,   1,   2,   0,   1,   1,   1,   0,
                    281:    3,   2,   2,   8,   2,   1,   3,   1,   1,   1,
                    282:    1,   1,   2,   1,   1,   1,   3,   0,   1,   3,
                    283:    1,   2,   2,   2,   2,   0,   2,   2,   2,   2,
                    284:    0,   0,   8,   4,   5,   2,   1,   1,   1,   1,
                    285:    0,   1,   0,   1,   3,   1,   3,   3,   1,   3,
                    286:    1,   1,   2,   0,   1,   3,   2,   3,   1,   3,
                    287:    1,   1,   1,   1,   1,   3,   3,   3,   3,   2,
                    288:    4,   6,   7,   5,   1,   3,   1,   3,   1,   1,
                    289:    1,   1,   1,   1,   1,   1,   1,   7,   1,   1,
                    290:    0,   3,   5,   1,   1,   1,   3,   5,   1,   1,
                    291:    5,   1,   2,   2,   1,   3,   3,   1,   3,   1,
                    292:    2,   1,   2,   1,   2,   2,   2,   1,   3,   1,
                    293:    1,   1,   1,   3,   4,   5,   1,   6,   1,   1,
                    294:    2,   0,   1,   1,   3,   1,   3,   2,   0,   1,
                    295:    1,   3,   3,   1,   3,   2,   1,   4,   1,   3,
                    296:    1,   1,   1 };
                    297: short yychk[]={
                    298: 
                    299: -1000,  -1, -21, -22, -23, -24, -25, -26, -27, -28,
                    300:  -29, -30, -31, -32, -33, -34, -35, -36, -37, 256,
                    301:  -39, -68, -74, -42, -75, -77, -79, -81, -84, -63,
                    302:  -86, -51, -96, -38, -44, -46, -97, -49, 257, 258,
                    303:  259, 260, 261, 262, -85, 270, 264, 265, 266, 267,
                    304:  268, 269, -50, 263, -21, -40, 278, 284, 285, 283,
                    305:  -20, 288, -20, -43, 277, 283, 276, -76, 273, 271,
                    306:  -20, -78, 290, 274, -80, -83, 274, 288, 289, -82,
                    307:  288, 295, -64, 283, 284, 277, 282, -20, -52, -57,
                    308:  274, 268, 260, 257, 267, -76, 282, -45, 278, 277,
                    309:  283, -47, -48, 279, 278, 285, -20,  -5, 295, 272,
                    310:  271, 273, 283, 272, 271, 273, -41, 288, -41, 295,
                    311:  295, -41, 294, 288, 288, 294, 294, 294, -76, -41,
                    312:  285, -53, 294, -58, 283, 282, 285, 288, -41,  -5,
                    313:  -41, 286,  -8, -67, 287,  -6,  -7, 288, -16, -17,
                    314:  288,  -5, -69, -71, -20, -73, -20,  -8, -20, 290,
                    315:  -83, 288, 297, -65, 281, -87, 288,  -2, 295, -57,
                    316:  -41, 281,  -5,  -8, -98, -99, -20,-100, 290,  -9,
                    317:  295, 307, -10, -11, -12, -18, -19, 308, 309, 310,
                    318:  290, 291, 292, 293, 289, 288, -16, 301, -17, 297,
                    319:  294, -66, 281, 275, 296, 281,  -8, 297, 294, -66,
                    320:  294, 297, -66,  -9, -88, -90, 283, -54, 285,  -3,
                    321:   -4, 288, 288,  -8,-100, 306,  -9, -11,  -9, -13,
                    322:  303, 302, 301, 305, 281, 304, -11, 295, 295, 295,
                    323:  295, 296,  -7, -11, 274, 288, 288, -70, 278, 276,
                    324:  -20, -72, -20, 289, -20, -20, -89, -93, 287, -91,
                    325:  -92, 288, -55, 280, 288, 274, 297, 294,-100,  -9,
                    326:  297, 297, -11, -11, -11, -11, -11, -11, -11, -11,
                    327:  289, -66, -66, -94, -95, 288, 294, 298, -56, -59,
                    328:  -61, 276, 288, 274,  -4, 297, 294, 275,  -8, -72,
                    329:  -20, 294, 281, -92, 288,  -8, -60, -62, 283, -60,
                    330:  -62, 290, -11, -14, -15, -11, 297, -95, 290, 288,
                    331:  298, 297,  -8, 294, 285, 290, 297, -15, 288, 285,
                    332:  290, 298, 290 };
                    333: short yydef[]={
                    334: 
                    335:    3,  -2,   2,   4,   5,   6,   7,   8,   9,  10,
                    336:   11,  12,  13,  14,  15,  16,  17,  18,  19,  20,
                    337:   29,   0,   0,  35,   0,   0, 161,   0,   0,  90,
                    338:    0,   0,   0,   0,  41,  -2,   0,   0,  24, 138,
                    339:  151,  31, 154, 163,   0,   0, 178, 196,  22,  37,
                    340:   43, 198,   0, 176,   1,   0,  25,  26,  27,  28,
                    341:    0, 145,   0,   0,  32,  33,  34, 152,   0,   0,
                    342:  193, 153, 157, 159, 160, 167, 169, 170, 171, 162,
                    343:  172,   0,   0,  86,  87,  88,  89,   0,   0,  55,
                    344:   57,  58,  59,  60,  61, 195,   0,   0,  38,  39,
                    345:   40,   0,   0,  46,  47,  48,   0, 103,   0, 164,
                    346:  165, 166,   0,  52,  54,  85,  51,  93,   0, 140,
                    347:    0, 103,   0, 155, 156,   0,   0,   0,   0,  92,
                    348:    0,  67,   0,   0,  63,  64,  65,   0,   0, 103,
                    349:   44,   0,  50,   0, 104,   0,  95, 128,  98,   0,
                    350:    0, 103,   0, 139,   0,   0,   0,  30, 194, 158,
                    351:  168, 173, 174,   0,  91, 181, 179,   0,   0,  56,
                    352:   62,   0, 103,  42, 197,   0, 200, 201, 202, 102,
                    353:    0,   0, 108,   0, 113, 114,   0,   0,   0,   0,
                    354:  129, 130, 131, 132, 133,  -2, 135, 136,   0,  94,
                    355:    0,   0, 100, 101,   0,   0,  23,   0,   0,   0,
                    356:    0, 150,   0,  84, 188,   0, 182,  75,   0,   0,
                    357:   68,  70,  21,  36,   0,   0,   0,   0, 106,   0,
                    358:    0,   0,   0, 110, 111, 112, 119,   0,   0,   0,
                    359:    0,   0,  96,  97,  99, 127, 175,   0, 148, 149,
                    360:    0, 141, 143, 144,   0, 146, 177,   0, 189, 180,
                    361:  183, 185,  80,   0,  71,  72,  66,   0, 199, 107,
                    362:  105, 118, 109, 115, 116, 117,   0,   0,   0, 103,
                    363:  137,   0,   0, 187, 190,   0,   0,   0, 103,  81,
                    364:   81,   0,  73,  74,  69, 120,   0,   0,   0, 142,
                    365:  147,   0,   0, 184, 186,  53,  76,  78,   0,  77,
                    366:   79,   0,   0, 103, 124, 126, 123, 191, 192,   0,
                    367:    0, 121,   0,   0,   0,   0, 122, 125,  83,   0,
                    368:    0,   0,  82 };
                    369: #
                    370: # define YYFLAG -1000
                    371: # define YYERROR goto yyerrlab
                    372: # define YYACCEPT return(0)
                    373: # define YYABORT return(1)
                    374: 
                    375: /*     parser for yacc output  */
                    376: 
                    377: #ifdef YYDEBUG
                    378: int yydebug = 0; /* 1 for debugging */
                    379: #endif
                    380: YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */
                    381: int yychar = -1; /* current input token number */
                    382: int yynerrs = 0;  /* number of errors */
                    383: short yyerrflag = 0;  /* error recovery flag */
                    384: 
                    385: yyparse() {
                    386: 
                    387:        short yys[YYMAXDEPTH];
                    388:        short yyj, yym;
                    389:        register YYSTYPE *yypvt;
                    390:        register short yystate, *yyps, yyn;
                    391:        register YYSTYPE *yypv;
                    392:        register short *yyxi;
                    393: 
                    394:        yystate = 0;
                    395:        yychar = -1;
                    396:        yynerrs = 0;
                    397:        yyerrflag = 0;
                    398:        yyps= &yys[-1];
                    399:        yypv= &yyv[-1];
                    400: 
                    401:  yystack:    /* put a state and value onto the stack */
                    402: 
                    403: #ifdef YYDEBUG
                    404:        if( yydebug  ) printf( "state %d, char 0%o\n", yystate, yychar );
                    405: #endif
                    406:                if( ++yyps> &yys[YYMAXDEPTH] ) { yyerror( "yacc stack overflow" ); return(1); }
                    407:                *yyps = yystate;
                    408:                ++yypv;
                    409:                *yypv = yyval;
                    410: 
                    411:  yynewstate:
                    412: 
                    413:        yyn = yypact[yystate];
                    414: 
                    415:        if( yyn<= YYFLAG ) goto yydefault; /* simple state */
                    416: 
                    417:        if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0;
                    418:        if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault;
                    419: 
                    420:        if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */
                    421:                yychar = -1;
                    422:                yyval = yylval;
                    423:                yystate = yyn;
                    424:                if( yyerrflag > 0 ) --yyerrflag;
                    425:                goto yystack;
                    426:                }
                    427: 
                    428:  yydefault:
                    429:        /* default state action */
                    430: 
                    431:        if( (yyn=yydef[yystate]) == -2 ) {
                    432:                if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0;
                    433:                /* look through exception table */
                    434: 
                    435:                for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */
                    436: 
                    437:                while( *(yyxi+=2) >= 0 ){
                    438:                        if( *yyxi == yychar ) break;
                    439:                        }
                    440:                if( (yyn = yyxi[1]) < 0 ) return(0);   /* accept */
                    441:                }
                    442: 
                    443:        if( yyn == 0 ){ /* error */
                    444:                /* error ... attempt to resume parsing */
                    445: 
                    446:                switch( yyerrflag ){
                    447: 
                    448:                case 0:   /* brand new error */
                    449: 
                    450:                        yyerror( "syntax error" );
                    451:                yyerrlab:
                    452:                        ++yynerrs;
                    453: 
                    454:                case 1:
                    455:                case 2: /* incompletely recovered error ... try again */
                    456: 
                    457:                        yyerrflag = 3;
                    458: 
                    459:                        /* find a state where "error" is a legal shift action */
                    460: 
                    461:                        while ( yyps >= yys ) {
                    462:                           yyn = yypact[*yyps] + YYERRCODE;
                    463:                           if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){
                    464:                              yystate = yyact[yyn];  /* simulate a shift of "error" */
                    465:                              goto yystack;
                    466:                              }
                    467:                           yyn = yypact[*yyps];
                    468: 
                    469:                           /* the current yyps has no shift onn "error", pop stack */
                    470: 
                    471: #ifdef YYDEBUG
                    472:                           if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );
                    473: #endif
                    474:                           --yyps;
                    475:                           --yypv;
                    476:                           }
                    477: 
                    478:                        /* there is no state on the stack with an error shift ... abort */
                    479: 
                    480:        yyabort:
                    481:                        return(1);
                    482: 
                    483: 
                    484:                case 3:  /* no shift yet; clobber input char */
                    485: 
                    486: #ifdef YYDEBUG
                    487:                        if( yydebug ) printf( "error recovery discards char %d\n", yychar );
                    488: #endif
                    489: 
                    490:                        if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */
                    491:                        yychar = -1;
                    492:                        goto yynewstate;   /* try again in the same state */
                    493: 
                    494:                        }
                    495: 
                    496:                }
                    497: 
                    498:        /* reduction by production yyn */
                    499: 
                    500: #ifdef YYDEBUG
                    501:                if( yydebug ) printf("reduce %d\n",yyn);
                    502: #endif
                    503:                yyps -= yyr2[yyn];
                    504:                yypvt = yypv;
                    505:                yypv -= yyr2[yyn];
                    506:                yyval = yypv[1];
                    507:                yym=yyn;
                    508:                        /* consult goto table to find next state */
                    509:                yyn = yyr1[yyn];
                    510:                yyj = yypgo[yyn] + *yyps + 1;
                    511:                if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];
                    512:                switch(yym){
                    513:                        
                    514: case 1:
                    515: # line 156 "grammar.z"
                    516: 
                    517:                {
                    518: #                      ifdef   xPTR1
                    519:                        tTfp(38, 0, "*** [program stmnt] parsed.\n");
                    520: #                      endif
                    521: 
                    522:                        if (endquelst(Opflag) < 0)
                    523:                                return (-1);
                    524:                } break;
                    525: case 2:
                    526: # line 165 "grammar.z"
                    527: 
                    528:                {
                    529: #                      ifdef   xPTR1
                    530:                        tTfp(38, 1, "*** [stmnt] parsed.\n");
                    531: #                      endif
                    532: 
                    533:                        if (endquelst(Opflag) < 0)
                    534:                                return (-1);
                    535:                } break;
                    536: case 3:
                    537: # line 175 "grammar.z"
                    538: {
                    539: #                      ifdef   xPTR1
                    540:                        tTfp(38, 2, "*** [(NULL)] parsed.\n");
                    541: #                      endif
                    542:                } break;
                    543: case 20:
                    544: # line 198 "grammar.z"
                    545: {
                    546: #                      ifdef   xPTR1
                    547:                        tTfp(38, 0, "*** [error] parsed.\n");
                    548: #                      endif
                    549:                } break;
                    550: case 21:
                    551: # line 205 "grammar.z"
                    552: 
                    553:                {
                    554:                        if ((i = openr(&Reldesc, -1, yypvt[-0].string_type)) < 0)
                    555:                                syserr("relname: error in openr '%d'", i);
                    556:                        if (i > 0)
                    557:                        {
                    558:                                /* invalid relation name */
                    559:                                par_error(RNGEXIST, WARN, yypvt[-0].string_type, 0);
                    560:                                YYERROR;
                    561:                        }
                    562:                        else
                    563:                                rngent(R_EXTERNAL, yypvt[-2].string_type, &Reldesc);
                    564:                } break;
                    565: case 22:
                    566: # line 219 "grammar.z"
                    567: 
                    568:                {
                    569:                        Opflag = mdRANGE;
                    570:                } break;
                    571: case 23:
                    572: # line 224 "grammar.z"
                    573: 
                    574:                {
                    575:                        /* make root node */
                    576:                        Lastree = tree(yypvt[-1].tree_type, yypvt[-0].tree_type, ROOT, sizeof(struct rootnode), 1);
                    577:                } break;
                    578: case 24:
                    579: # line 230 "grammar.z"
                    580: 
                    581:                {
                    582:                        Opflag = mdAPP;
                    583:                } break;
                    584: case 30:
                    585: # line 241 "grammar.z"
                    586: 
                    587:                {
                    588:                        /* make root node for delete, with a TIDNODE at leftmost */
                    589:                        Lastree = tree(tree(NULL, Tidnode, RESDOM, sizeof(struct resdomnode), NULL), yypvt[-0].tree_type, ROOT, sizeof(struct rootnode), 1);
                    590:                } break;
                    591: case 31:
                    592: # line 247 "grammar.z"
                    593: 
                    594:                {
                    595:                        Opflag = mdDEL;
                    596:                } break;
                    597: case 36:
                    598: # line 257 "grammar.z"
                    599: 
                    600:                {
                    601:                        /* make root node for replace */
                    602:                        Lastree = tree(yypvt[-1].tree_type, yypvt[-0].tree_type, ROOT, sizeof(struct rootnode), 1);
                    603:                } break;
                    604: case 37:
                    605: # line 263 "grammar.z"
                    606: 
                    607:                {
                    608:                        Opflag = mdREPL;
                    609:                } break;
                    610: case 42:
                    611: # line 273 "grammar.z"
                    612: 
                    613:                {
                    614:                        /* make root node for retrieve */
                    615:                        Lastree = tree(yypvt[-1].tree_type, yypvt[-0].tree_type, ROOT, sizeof(struct rootnode), 1);
                    616:                } break;
                    617: case 43:
                    618: # line 279 "grammar.z"
                    619: 
                    620:                {
                    621:                        Opflag = mdRETR;
                    622:                } break;
                    623: case 44:
                    624: # line 284 "grammar.z"
                    625: 
                    626:                {
                    627:                        /* set up pipe block and save relname for create */
                    628: #                      ifdef   xPTR2
                    629:                        tTfp(38, 4, "retclause: Rsdmno %d", Rsdmno);
                    630: #                      endif
                    631:                        Rsdmno = 0;
                    632:                        setp(PV_STR, "0");      /* relstat = nil */
                    633:                        setp(PV_STR, trim_relname(Parrng[Resrng].vardesc.reldum.relid));
                    634:                } break;
                    635: case 45:
                    636: # line 294 "grammar.z"
                    637: 
                    638:                {
                    639:                        /* no result relation, output to terminal */
                    640:                        Rsdmno = 0;
                    641:                        Resrng = -1;
                    642:                } break;
                    643: case 46:
                    644: # line 300 "grammar.z"
                    645: 
                    646:                {
                    647:                        Opflag = mdRET_UNI;
                    648:                        Rsdmno = 0;
                    649:                        Resrng = -1;
                    650:                } break;
                    651: case 50:
                    652: # line 311 "grammar.z"
                    653: 
                    654:                {
                    655:                        Lastree = tree(yypvt[-1].tree_type, yypvt[-0].tree_type, ROOT, sizeof(struct rootnode), 1);
                    656:                } break;
                    657: case 51:
                    658: # line 316 "grammar.z"
                    659: 
                    660:                {
                    661:                        Rsdmno = 0;
                    662:                        setp(PV_STR, "0040");   /* relstat = S_VIEW */
                    663:                        setp(PV_STR, trim_relname(Parrng[Resrng].vardesc.reldum.relid));
                    664:                } break;
                    665: case 52:
                    666: # line 323 "grammar.z"
                    667: 
                    668:                {
                    669:                        Opflag = mdVIEW;
                    670:                        if (!Qrymod)
                    671:                        {
                    672:                                /* no qrymod in database */
                    673:                                par_error(NOQRYMOD, WARN, 0);
                    674:                        }
                    675:                } break;
                    676: case 53:
                    677: # line 333 "grammar.z"
                    678: 
                    679:                {
                    680:                        Lastree = tree(yypvt[-4].tree_type, yypvt[-0].tree_type, ROOT, sizeof(struct rootnode), 1);
                    681:                } break;
                    682: case 54:
                    683: # line 338 "grammar.z"
                    684: 
                    685:                {
                    686:                        Opflag = mdPROT;
                    687:                        if (!Qrymod)
                    688:                        {
                    689:                                /* no qrymod in database */
                    690:                                par_error(NOQRYMOD, WARN, 0);
                    691:                        }
                    692:                } break;
                    693: case 57:
                    694: # line 351 "grammar.z"
                    695: 
                    696:                {
                    697:                        permcom(-1);    /* means 'all' commands */
                    698:                } break;
                    699: case 58:
                    700: # line 355 "grammar.z"
                    701: 
                    702:                {
                    703:                        permcom(mdRETR);
                    704:                } break;
                    705: case 59:
                    706: # line 359 "grammar.z"
                    707: 
                    708:                {
                    709:                        permcom(mdDEL);
                    710:                } break;
                    711: case 60:
                    712: # line 363 "grammar.z"
                    713: 
                    714:                {
                    715:                        permcom(mdAPP);
                    716:                } break;
                    717: case 61:
                    718: # line 367 "grammar.z"
                    719: 
                    720:                {
                    721:                        permcom(mdREPL);
                    722:                } break;
                    723: case 62:
                    724: # line 372 "grammar.z"
                    725: 
                    726:                {
                    727:                        /* put command vector into list now since this always happens */
                    728:                        setp(PV_INT, Permcomd);
                    729:                        Permcomd = 0;           /* reset command map */
                    730:                        setp(PV_STR, trim_relname(Parrng[Resrng].vardesc.reldum.relid));
                    731:                        bmove(Parrng[Resrng].vardesc.reldum.relowner, permbuf, 2);
                    732:                        permbuf[2] = 0;
                    733:                        setp(PV_STR, permbuf);
                    734:                } break;
                    735: case 66:
                    736: # line 387 "grammar.z"
                    737: 
                    738:                {
                    739:                        yyval.tree_type = yypvt[-1].tree_type;
                    740:                } break;
                    741: case 67:
                    742: # line 391 "grammar.z"
                    743: 
                    744:                {
                    745:                        yyval.tree_type = NULL;
                    746:                } break;
                    747: case 69:
                    748: # line 397 "grammar.z"
                    749: 
                    750:                {
                    751:                        /*
                    752:                        ** attach bulk of permit tl to leftmost node of new elem
                    753:                        */
                    754:                        if (!Err_current)
                    755:                                yyval.tree_type = tlprepend(yypvt[-2].tree_type, yypvt[-0].tree_type);
                    756:                } break;
                    757: case 70:
                    758: # line 406 "grammar.z"
                    759: 
                    760:                {
                    761:                        /* Resrng is set by the "relation" production */
                    762:                        if (!Err_current)
                    763:                        {
                    764:                                Trname = yypvt[-0].string_type;
                    765:                                aptr = attlookup(Resrng, Trname);
                    766:                                yyval.tree_type = tree(NULL, NULL, VAR, sizeof(struct varnode), Resrng, aptr);
                    767:                                yyval.tree_type = addresdom(NULL, yyval.tree_type);
                    768:                        }
                    769:                } break;
                    770: case 71:
                    771: # line 418 "grammar.z"
                    772: 
                    773:                {
                    774:                        setp(PV_STR, yypvt[-0].string_type);
                    775:                } break;
                    776: case 72:
                    777: # line 422 "grammar.z"
                    778: 
                    779:                {
                    780:                        setp(PV_STR, "all");
                    781:                } break;
                    782: case 73:
                    783: # line 427 "grammar.z"
                    784: 
                    785:                {
                    786:                        setp(PV_STR, yypvt[-0].string_type);
                    787:                } break;
                    788: case 74:
                    789: # line 431 "grammar.z"
                    790: 
                    791:                {
                    792:                        setp(PV_STR, "all");
                    793:                } break;
                    794: case 75:
                    795: # line 435 "grammar.z"
                    796: 
                    797:                {
                    798:                        setp(PV_STR, "all");            /* default is all */
                    799:                } break;
                    800: case 80:
                    801: # line 445 "grammar.z"
                    802: 
                    803:                {
                    804:                        setp(PV_INT, 0);
                    805:                        setp(PV_INT, 1440);
                    806:                } break;
                    807: case 81:
                    808: # line 451 "grammar.z"
                    809: 
                    810:                {
                    811:                        setp(PV_STR, "sun");
                    812:                        setp(PV_STR, "sat");
                    813:                } break;
                    814: case 82:
                    815: # line 457 "grammar.z"
                    816: 
                    817:                {
                    818:                        setp(PV_INT, timeofday(yypvt[-6].I2_type, yypvt[-4].I2_type));
                    819:                        setp(PV_INT, timeofday(yypvt[-2].I2_type, yypvt[-0].I2_type));
                    820:                } break;
                    821: case 83:
                    822: # line 463 "grammar.z"
                    823: 
                    824:                {
                    825:                        setp(PV_STR, yypvt[-2].string_type);
                    826:                        setp(PV_STR, yypvt[-0].string_type);
                    827:                } break;
                    828: case 84:
                    829: # line 469 "grammar.z"
                    830: 
                    831:                {
                    832:                        Lastree = tree(NULL, norml(yypvt[-0].tree_type), ROOT, sizeof(struct rootnode), 1);
                    833:                        Qlflag--;       /* turn off here */
                    834:                } break;
                    835: case 85:
                    836: # line 475 "grammar.z"
                    837: 
                    838:                {
                    839:                        Opflag = mdINTEG;
                    840:                        Qlflag++;       /* OK to turn on here because integrity doesn't have a targ list */
                    841:                        if (!Qrymod)
                    842:                        {
                    843:                                /* no qrymod in database */
                    844:                                par_error(NOQRYMOD, WARN, 0);
                    845:                        }
                    846:                } break;
                    847: case 93:
                    848: # line 495 "grammar.z"
                    849: 
                    850:                {
                    851: #                      ifdef   xPTR2
                    852:                        tTfp(38, 3, "res rel name/var: '%s'\n", yypvt[-0].string_type);
                    853: #                      endif
                    854:                        switch (Opflag)
                    855:                        {
                    856:                          case mdRETR:
                    857:                          case mdVIEW:
                    858:                                /* result better not be a rel name */
                    859:                                if ((i = openr(&Reldesc, -1, yypvt[-0].string_type)) < 0)
                    860:                                        syserr("relation: err openr '%d'", i);
                    861:                                if (i == 0)
                    862:                                {
                    863:                                        /* reln exists */
                    864:                                        if (bequal(Reldesc.reldum.relowner, Usercode, 2))
                    865:                                        {
                    866:                                                /* same owner, can't duplicate name */
                    867:                                                par_error(RESEXIST, WARN, yypvt[-0].string_type, 0);
                    868:                                                YYERROR;
                    869:                                        }
                    870:                                        else if (!Err_current)
                    871:                                        {
                    872:                                                /* owned by dba -- purge range table */
                    873:                                                rngdel(yypvt[-0].string_type);
                    874:                                        }
                    875:                                }
                    876:                                if (!Err_current)
                    877:                                {
                    878:                                        bmove(Usercode, Reldesc.reldum.relowner, 2);
                    879:                                        pmove(yypvt[-0].string_type, Reldesc.reldum.relid, MAXNAME, ' ');
                    880:                                        Resrng = rngent(R_INTERNAL, "", &Reldesc);
                    881:                                }
                    882:                                break;
                    883: 
                    884:                          case mdAPP:
                    885:                                /* result is a rel name */
                    886:                                if (!Err_current)
                    887:                                {
                    888:                                        Resrng = rnglook(yypvt[-0].string_type, LOOKREL);
                    889:                                        if (Resrng < 0)
                    890:                                        {
                    891:                                                if ((i = openr(&Reldesc, -1, yypvt[-0].string_type)) < 0)
                    892:                                                        syserr("relation: err openr '%d'", i);
                    893:                                                if (i)
                    894:                                                {
                    895:                                                        /* invalid relation name */
                    896:                                                        par_error(RESAPPEX, WARN, yypvt[-0].string_type, 0);
                    897:                                                        YYERROR;
                    898:                                                }
                    899:                                                Resrng = rngent(R_INTERNAL, "", &Reldesc);
                    900:                                        }
                    901:                                        else
                    902:                                                ctlmod_decl(Resrng);
                    903:                                        checkupd(Resrng);
                    904:                                }
                    905:                                break;
                    906: 
                    907:                          case mdPROT:
                    908:                          case mdINTEG:
                    909: #                        ifdef DISTRIB
                    910:                          case mdDISTRIB:
                    911: #                        endif
                    912:                                /* the result is a tuple variable */
                    913:                                Resrng = rnglook(yypvt[-0].string_type, LOOKVAR);
                    914:                                if (Resrng < 0)
                    915:                                {
                    916:                                        /* variable not declared */
                    917:                                        par_error(NOVBLE, WARN, yypvt[-0].string_type, 0);
                    918:                                        YYERROR;
                    919:                                }
                    920:                                else
                    921:                                        ctlmod_decl(Resrng);
                    922:                                break;
                    923: 
                    924:                          case mdREPL:
                    925:                          case mdDEL:
                    926:                                /* the result is a tuple variable */
                    927:                                Resrng = rnglook(yypvt[-0].string_type, LOOKVAR);
                    928:                                if (Resrng < 0)
                    929:                                        /* variable not declared */
                    930:                                {
                    931:                                        par_error(NOVBLE, WARN, yypvt[-0].string_type, 0);
                    932:                                        YYERROR;
                    933:                                }
                    934:                                else
                    935:                                        ctlmod_decl(Resrng);
                    936: 
                    937:                                checkupd(Resrng);
                    938:                                Tidnode = tree(NULL, NULL, VAR, sizeof(struct varnode), Resrng, &Faketid);
                    939:                                break;
                    940:                        }
                    941:                } break;
                    942: case 94:
                    943: # line 589 "grammar.z"
                    944: 
                    945:                {
                    946:                        if (Patflag)
                    947:                        {
                    948:                                /* no patt match in targ list */
                    949:                                par_error(NOPATMAT, WARN, 0);
                    950:                        }
                    951:                        yyval.tree_type = yypvt[-1].tree_type;
                    952: 
                    953:                        /*
                    954:                        ** replace must have tid node as left branch
                    955:                        **      (so does delete but it doesn't have a targ list)
                    956:                        */
                    957:                        if (Opflag == mdREPL && !Err_current)
                    958:                        {
                    959:                                yyval.tree_type = tlprepend(tree(NULL, Tidnode, RESDOM, sizeof(struct resdomnode), 0), yyval.tree_type);
                    960:                        }
                    961:                } break;
                    962: case 96:
                    963: # line 609 "grammar.z"
                    964: 
                    965:                {
                    966:                        /*
                    967:                        ** attach bulk of targ list to leftmost node
                    968:                        ** of new element
                    969:                        */
                    970:                        if (!Err_current)
                    971:                                yyval.tree_type = tlprepend(yypvt[-2].tree_type, yypvt[-0].tree_type);
                    972:                } break;
                    973: case 97:
                    974: # line 619 "grammar.z"
                    975: 
                    976:                {
                    977:                        Trname = yypvt[-2].string_type;
                    978:                        /* make a new resdom entry for targ list */
                    979:                        if (!Err_current)
                    980:                                yyval.tree_type = addresdom(NULL, yypvt[-0].tree_type);
                    981:                } break;
                    982: case 98:
                    983: # line 626 "grammar.z"
                    984: 
                    985:                {
                    986:                        /* makes a new resdom entry for targ list */
                    987:                        if (!Err_current)
                    988:                                yyval.tree_type = addresdom(NULL, yypvt[-0].tree_type);
                    989:                } break;
                    990: case 99:
                    991: # line 632 "grammar.z"
                    992: 
                    993:                {
                    994:                        if (Opflag == mdREPL)
                    995:                        {
                    996:                                /* ALL not defined for REPLACE */
                    997:                                par_error(REPALL, WARN,
                    998:                                    trim_relname(Qt.qt_rangev[yypvt[-2].rng_type].rngvdesc->relvname), 0);
                    999:                                YYERROR;
                   1000:                        }
                   1001:                        /* makes set of new resdom entries for targ list */
                   1002:                        else if (!Err_current)
                   1003:                                yyval.tree_type = xdot(yypvt[-2].rng_type);
                   1004:                } break;
                   1005: case 102:
                   1006: # line 649 "grammar.z"
                   1007: 
                   1008:                {
                   1009:                        yyval.tree_type = norml(yypvt[-0].tree_type);
                   1010:                        Qlflag--;
                   1011:                } break;
                   1012: case 103:
                   1013: # line 654 "grammar.z"
                   1014: 
                   1015:                {
                   1016:                        /* null qualification */
                   1017:                        yyval.tree_type = norml(NULL);
                   1018:                } break;
                   1019: case 104:
                   1020: # line 660 "grammar.z"
                   1021: 
                   1022:                {
                   1023:                        Qlflag++;
                   1024:                } break;
                   1025: case 105:
                   1026: # line 665 "grammar.z"
                   1027: 
                   1028:                {
                   1029:                        yyval.tree_type = yypvt[-1].tree_type;
                   1030:                } break;
                   1031: case 106:
                   1032: # line 669 "grammar.z"
                   1033: 
                   1034:                {
                   1035:                        yyval.tree_type = tree(NULL, yypvt[-0].tree_type, UOP, 2, yypvt[-1].type_type);
                   1036:                } break;
                   1037: case 107:
                   1038: # line 673 "grammar.z"
                   1039: 
                   1040:                {
                   1041:                        yyval.tree_type = tree(yypvt[-2].tree_type, yypvt[-0].tree_type, yypvt[-1].type_type, sizeof (struct rootnode) -2, 0);
                   1042:                } break;
                   1043: case 109:
                   1044: # line 679 "grammar.z"
                   1045: 
                   1046:                {
                   1047:                        yyval.tree_type = tree(yypvt[-2].tree_type, yypvt[-0].tree_type, BOP, 2, yypvt[-1].type_type);
                   1048:                } break;
                   1049: case 115:
                   1050: # line 690 "grammar.z"
                   1051: 
                   1052:                {
                   1053:                        yyval.tree_type = tree(yypvt[-2].tree_type, yypvt[-0].tree_type, BOP, 2, yypvt[-1].type_type);
                   1054:                } break;
                   1055: case 116:
                   1056: # line 694 "grammar.z"
                   1057: 
                   1058:                {
                   1059:                        yyval.tree_type = tree(yypvt[-2].tree_type, yypvt[-0].tree_type, BOP, 2, yypvt[-1].type_type);
                   1060:                } break;
                   1061: case 117:
                   1062: # line 698 "grammar.z"
                   1063: 
                   1064:                {
                   1065:                        yyval.tree_type = tree(yypvt[-2].tree_type, yypvt[-0].tree_type, BOP, 2, yypvt[-1].type_type);
                   1066:                } break;
                   1067: case 118:
                   1068: # line 702 "grammar.z"
                   1069: 
                   1070:                {
                   1071:                        yyval.tree_type = yypvt[-1].tree_type;
                   1072:                } break;
                   1073: case 119:
                   1074: # line 706 "grammar.z"
                   1075: 
                   1076:                {
                   1077:                        yyval.tree_type = tree(NULL, yypvt[-0].tree_type, UOP, 2, yypvt[-1].type_type);
                   1078:                } break;
                   1079: case 120:
                   1080: # line 710 "grammar.z"
                   1081: 
                   1082:                {
                   1083:                        yyval.tree_type = tree(yypvt[-1].tree_type, NULL, UOP, 2, yypvt[-3].type_type);
                   1084:                } break;
                   1085: case 121:
                   1086: # line 714 "grammar.z"
                   1087: 
                   1088:                {
                   1089:                        yyval.tree_type = tree(yypvt[-3].tree_type, yypvt[-1].tree_type, BOP, 2, yypvt[-5].type_type);
                   1090:                } break;
                   1091: case 122:
                   1092: # line 719 "grammar.z"
                   1093: 
                   1094:                {
                   1095: #                      ifdef   xPTR2
                   1096:                        tTfp(39, 0, "agg func\n");
                   1097: #                      endif
                   1098:                        windup(yypvt[-2].tree_type);
                   1099:                        yyval.tree_type = tree(tree(yypvt[-2].tree_type, tree(NULL, yypvt[-4].tree_type, AOP, 6, yypvt[-6].type_type), BYHEAD, sizeof(struct resdomnode), 0), yypvt[-1].tree_type, AGHEAD, sizeof(struct rootnode), 0);
                   1100:                        tlprepend(tree(NULL, NULL, TREE, 0), yyval.tree_type);
                   1101:                } break;
                   1102: case 123:
                   1103: # line 728 "grammar.z"
                   1104: 
                   1105:                {
                   1106:                        yyval.tree_type = tree(tree(NULL, yypvt[-2].tree_type, AOP, 6, yypvt[-4].type_type), yypvt[-1].tree_type,  AGHEAD, sizeof(struct rootnode), 0);
                   1107:                } break;
                   1108: case 125:
                   1109: # line 734 "grammar.z"
                   1110: 
                   1111:                {
                   1112:                        yyval.tree_type = tlprepend(yypvt[-2].tree_type, yypvt[-0].tree_type);
                   1113:                } break;
                   1114: case 126:
                   1115: # line 739 "grammar.z"
                   1116: 
                   1117:                {
                   1118:                        yyval.tree_type = tree(NULL, yypvt[-0].tree_type, RESDOM, sizeof(struct resdomnode), Rsdmno);
                   1119:                } break;
                   1120: case 127:
                   1121: # line 744 "grammar.z"
                   1122: 
                   1123:                {
                   1124: #                      ifdef   xPTR2
                   1125:                        tTfp(39, 1, "attrib %12s.%12s found\n",
                   1126:                        Qt.qt_rangev[yypvt[-2].rng_type].rngvdesc->relvname, yypvt[-0].string_type);
                   1127: #                      endif
                   1128: 
                   1129:                        /* remember attribute name */
                   1130:                        Trname = yypvt[-0].string_type;
                   1131: 
                   1132:                        /* look up attribute */
                   1133:                        aptr = attlookup(yypvt[-2].rng_type, Trname);
                   1134:                        yyval.tree_type = tree(NULL, NULL, VAR, sizeof(struct varnode), yypvt[-2].rng_type, aptr);
                   1135:                } break;
                   1136: case 128:
                   1137: # line 759 "grammar.z"
                   1138: 
                   1139:                {
                   1140:                        yyval.rng_type = rnglook(yypvt[-0].string_type, LOOKVAR);
                   1141:                        if (yyval.rng_type < 0)
                   1142:                        {
                   1143:                                /* variable not declared */
                   1144:                                par_error(NOVBLE, WARN, yypvt[-0].string_type, 0);
                   1145:                                YYERROR;
                   1146:                        }
                   1147:                        else
                   1148:                                ctlmod_decl(yyval.rng_type);
                   1149:                } break;
                   1150: case 129:
                   1151: # line 772 "grammar.z"
                   1152: 
                   1153:                {
                   1154:                        yyval.tree_type = tree(NULL, NULL, INT, 2, yypvt[-0].I2_type);
                   1155:                } break;
                   1156: case 130:
                   1157: # line 776 "grammar.z"
                   1158: 
                   1159:                {
                   1160:                        yyval.tree_type = tree(NULL, NULL, INT, 4, yypvt[-0].I4_type);
                   1161:                } break;
                   1162: case 131:
                   1163: # line 780 "grammar.z"
                   1164: 
                   1165:                {
                   1166:                        yyval.tree_type = tree(NULL, NULL, FLOAT, 4, yypvt[-0].F4_type);
                   1167:                } break;
                   1168: case 132:
                   1169: # line 784 "grammar.z"
                   1170: 
                   1171:                {
                   1172:                        yyval.tree_type = tree(NULL, NULL, FLOAT, 8, yypvt[-0].F8_type);
                   1173:                } break;
                   1174: case 133:
                   1175: # line 788 "grammar.z"
                   1176: 
                   1177:                {
                   1178:                        if (patmat(yypvt[-0].string_type) && !Qlflag)
                   1179:                                Patflag = 1;
                   1180:                        yyval.tree_type = tree(NULL, NULL, CHAR, length(yypvt[-0].string_type), yypvt[-0].string_type);
                   1181:                } break;
                   1182: case 134:
                   1183: # line 794 "grammar.z"
                   1184: 
                   1185:                {
                   1186:                        yyval.tree_type = tree(NULL, NULL, COP, 2, yypvt[-0].string_type);
                   1187:                } break;
                   1188: case 136:
                   1189: # line 800 "grammar.z"
                   1190: 
                   1191:                {
                   1192:                        if (yypvt[-0].type_type == opADD)
                   1193:                                yyval.type_type = opPLUS;
                   1194:                        else
                   1195:                                if (yypvt[-0].type_type == opSUB)
                   1196:                                        yyval.type_type = opMINUS;
                   1197:                } break;
                   1198: case 137:
                   1199: # line 809 "grammar.z"
                   1200: 
                   1201:                {
                   1202: #                      ifdef   xPTR2
                   1203:                        tTfp(39, 3, "copy %12s,%12s\n", yypvt[-5].string_type, yypvt[-0].string_type);
                   1204: #                      endif
                   1205: 
                   1206:                        setp(PV_STR, yypvt[-0].string_type);
                   1207:                } break;
                   1208: case 138:
                   1209: # line 818 "grammar.z"
                   1210: 
                   1211:                {
                   1212:                        Opflag = mdCOPY;
                   1213:                } break;
                   1214: case 144:
                   1215: # line 830 "grammar.z"
                   1216: 
                   1217:                {
                   1218:                        setp(PV_STR, yypvt[-0].string_type);
                   1219:                } break;
                   1220: case 145:
                   1221: # line 835 "grammar.z"
                   1222: 
                   1223:                {
                   1224:                        if (!Err_current)
                   1225:                        {
                   1226:                                setp(PV_STR, yypvt[-0].string_type);
                   1227:                                if (Opflag == mdDESTROY || Opflag == mdCREATE
                   1228: #                                      ifdef   DISTRIB
                   1229:                                        || Opflag == mdDCREATE
                   1230: #                                      endif
                   1231:                                                                )
                   1232:                                        rngdel(yypvt[-0].string_type);
                   1233:                        }
                   1234:                } break;
                   1235: case 148:
                   1236: # line 852 "grammar.z"
                   1237: 
                   1238:                {
                   1239:                        setp(PV_STR, "\0");
                   1240:                        setp(PV_STR, "i");
                   1241:                } break;
                   1242: case 149:
                   1243: # line 857 "grammar.z"
                   1244: 
                   1245:                {
                   1246:                        setp(PV_STR, "\0");
                   1247:                        setp(PV_STR, "f");
                   1248:                } break;
                   1249: case 151:
                   1250: # line 865 "grammar.z"
                   1251: 
                   1252:                {
                   1253:                        Opflag = mdCREATE;
                   1254: 
                   1255:                        /* set up parameters for regular create */
                   1256:                        setp(PV_STR, "0");              /* relstat = nil */
                   1257:                } break;
                   1258: case 154:
                   1259: # line 876 "grammar.z"
                   1260: 
                   1261:                {
                   1262:                        Opflag = mdDESTROY;
                   1263:                } break;
                   1264: case 155:
                   1265: # line 881 "grammar.z"
                   1266: 
                   1267:                {
                   1268:                        Opflag = mdREMQM;
                   1269:                        if (!Qrymod)
                   1270:                                /* no qrymod in database */
                   1271:                                par_error(NOQRYMOD, WARN, 0);
                   1272:                        setp(PV_STR, "6");
                   1273:                        setp(PV_STR, yypvt[-0].string_type);
                   1274:                } break;
                   1275: case 156:
                   1276: # line 890 "grammar.z"
                   1277: 
                   1278:                {
                   1279:                        Opflag = mdREMQM;
                   1280:                        if (!Qrymod)
                   1281:                                /* no qrymod in database */
                   1282:                                par_error(NOQRYMOD, WARN, 0);
                   1283:                        setp(PV_STR, "5");
                   1284:                        setp(PV_STR, yypvt[-0].string_type);
                   1285:                } break;
                   1286: case 157:
                   1287: # line 900 "grammar.z"
                   1288: 
                   1289:                {
                   1290:                        i = iocv(*(yypvt[-0].I2_type));
                   1291:                        setp(PV_STR, i);
                   1292:                } break;
                   1293: case 158:
                   1294: # line 905 "grammar.z"
                   1295: 
                   1296:                {
                   1297:                        i = iocv(*(yypvt[-0].I2_type));
                   1298:                        setp(PV_STR, i);
                   1299:                } break;
                   1300: case 161:
                   1301: # line 913 "grammar.z"
                   1302: 
                   1303:                {
                   1304:                        setp(PV_STR, "2");      /* all relns */
                   1305:                } break;
                   1306: case 163:
                   1307: # line 919 "grammar.z"
                   1308: 
                   1309:                {
                   1310:                        Opflag = mdHELP;
                   1311:                } break;
                   1312: case 164:
                   1313: # line 924 "grammar.z"
                   1314: 
                   1315:                {
                   1316:                        Opflag = mdDISPLAY;
                   1317:                        if (!Qrymod)
                   1318:                                /* no qrymod in database */
                   1319:                                par_error(NOQRYMOD, WARN, 0);
                   1320:                        smove("4", hqmbuf);
                   1321:                } break;
                   1322: case 165:
                   1323: # line 932 "grammar.z"
                   1324: 
                   1325:                {
                   1326:                        Opflag = mdDISPLAY;
                   1327:                        if (!Qrymod)
                   1328:                                /* no qrymod in database */
                   1329:                                par_error(NOQRYMOD, WARN, 0);
                   1330:                        smove("5", hqmbuf);
                   1331:                } break;
                   1332: case 166:
                   1333: # line 940 "grammar.z"
                   1334: 
                   1335:                {
                   1336:                        Opflag = mdDISPLAY;
                   1337:                        if (!Qrymod)
                   1338:                                /* no qrymod in database */
                   1339:                                par_error(NOQRYMOD, WARN, 0);
                   1340:                        smove("6", hqmbuf);
                   1341:                } break;
                   1342: case 169:
                   1343: # line 951 "grammar.z"
                   1344: 
                   1345:                {
                   1346:                        setp(PV_STR, "3");
                   1347:                } break;
                   1348: case 170:
                   1349: # line 956 "grammar.z"
                   1350: 
                   1351:                {
                   1352:                        /* relation */
                   1353:                        setp(PV_STR, "0");
                   1354:                        setp(PV_STR, yypvt[-0].string_type);
                   1355:                } break;
                   1356: case 171:
                   1357: # line 962 "grammar.z"
                   1358: 
                   1359:                {
                   1360:                        /* manual page */
                   1361:                        setp(PV_STR, "1");
                   1362:                        setp(PV_STR, yypvt[-0].string_type);
                   1363:                } break;
                   1364: case 172:
                   1365: # line 969 "grammar.z"
                   1366: 
                   1367:                {
                   1368:                        setp(PV_STR, hqmbuf);
                   1369:                        setp(PV_STR, yypvt[-0].string_type);
                   1370:                } break;
                   1371: case 173:
                   1372: # line 974 "grammar.z"
                   1373: 
                   1374:                {
                   1375:                        setp(PV_STR, hqmbuf);
                   1376:                        setp(PV_STR, yypvt[-0].string_type);
                   1377:                } break;
                   1378: case 174:
                   1379: # line 980 "grammar.z"
                   1380: 
                   1381:                {
                   1382:                        if (Rsdmno > MAXKEYS)
                   1383:                                /* too many attributes in key */
                   1384:                                par_error(INDEXTRA, WARN, 0);
                   1385:                } break;
                   1386: case 175:
                   1387: # line 987 "grammar.z"
                   1388: 
                   1389:                {
                   1390:                        /* init INDEX command */
                   1391:                        Rsdmno = 0;
                   1392:                        setp(PV_STR, yypvt[-2].string_type);
                   1393:                        setp(PV_STR, yypvt[-0].string_type);
                   1394:                        Indexname = yypvt[-0].string_type;
                   1395:                } break;
                   1396: case 176:
                   1397: # line 996 "grammar.z"
                   1398: 
                   1399:                {
                   1400:                        Opflag = mdINDEX;
                   1401:                } break;
                   1402: case 178:
                   1403: # line 1003 "grammar.z"
                   1404: 
                   1405:                {
                   1406:                        Opflag = mdMODIFY;
                   1407:                        Rsdmno = 0;
                   1408:                } break;
                   1409: case 179:
                   1410: # line 1009 "grammar.z"
                   1411: 
                   1412:                {
                   1413:                        setp(PV_STR, yypvt[-0].string_type);
                   1414:                } break;
                   1415: case 182:
                   1416: # line 1016 "grammar.z"
                   1417: 
                   1418:                {
                   1419:                        setp(PV_STR, "name");
                   1420:                } break;
                   1421: case 185:
                   1422: # line 1024 "grammar.z"
                   1423: 
                   1424:                {
                   1425:                        setp(PV_STR, yypvt[-0].string_type);
                   1426:                } break;
                   1427: case 186:
                   1428: # line 1028 "grammar.z"
                   1429: 
                   1430:                {
                   1431:                        concat(yypvt[-2].string_type, ztack(":", yypvt[-0].string_type), modbuf);
                   1432:                        setp(PV_STR, modbuf);
                   1433:                } break;
                   1434: case 189:
                   1435: # line 1037 "grammar.z"
                   1436: 
                   1437:                {
                   1438:                        setp(PV_STR, "\0");
                   1439:                } break;
                   1440: case 192:
                   1441: # line 1045 "grammar.z"
                   1442: 
                   1443:                {
                   1444:                        setp(PV_STR, yypvt[-2].string_type);
                   1445:                        i = iocv(*(yypvt[-0].I2_type));
                   1446:                        setp(PV_STR, i);
                   1447:                } break;
                   1448: case 193:
                   1449: # line 1052 "grammar.z"
                   1450: 
                   1451:                {
                   1452:                        Rsdmno++;
                   1453:                } break;
                   1454: case 194:
                   1455: # line 1056 "grammar.z"
                   1456: 
                   1457:                {
                   1458:                        Rsdmno++;
                   1459:                } break;
                   1460: case 196:
                   1461: # line 1063 "grammar.z"
                   1462: 
                   1463:                {
                   1464:                        Opflag = mdPRINT;
                   1465:                } break;
                   1466: case 198:
                   1467: # line 1070 "grammar.z"
                   1468: 
                   1469:                {
                   1470:                        Opflag = mdSAVE;
                   1471:                } break;
                   1472: case 202:
                   1473: # line 1080 "grammar.z"
                   1474: 
                   1475:                {
                   1476:                        i = iocv(*(yypvt[-0].I2_type));
                   1477: 
                   1478: #                      ifdef   xPTR3
                   1479:                        tTfp(39, 4, "day_year: %s\n", i);
                   1480: #                      endif
                   1481: 
                   1482:                        setp(PV_STR, i);
                   1483:                } break;
                   1484:                }
                   1485:                goto yystack;  /* stack new state and value */
                   1486: 
                   1487:        }

unix.superglobalmegacorp.com

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