|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.