1: /* 2: ** SCANNER KEYWORD TABLES 3: ** 4: ** Keywords, tokens, and opcode tuples are included in this file 5: ** The keyword table MUST be in sorted order. 6: ** The operator table does not need to be sorted 7: */ 8: struct optab Keyword[] = 9: { 10: "abs", FOP, opABS, 11: "all", ALL, 0, 12: "and", LBOP, AND, 13: "any", AGOP, opANY, 14: "append", APPEND, GOVAL, 15: "ascii", FOP, opASCII, 16: "at", AT, 0, 17: "atan", FOP, opATAN, 18: "avg", AGOP, opAVG, 19: "avgu", AGOP, opAVGU, 20: "by", BY, opEQ, 21: "concat", FBOP, opCONCAT, 22: "copy", COPY, GOVAL, 23: "cos", FOP, opCOS, 24: "count", AGOP, opCOUNT, 25: "countu", AGOP, opCOUNTU, 26: "create", CREATE, GOVAL, 27: "define", DEFINE, GOVAL, 28: "delete", DELETE, GOVAL, 29: "destroy", DESTROY, GOVAL, 30: # ifdef DISTRIB 31: "distribute", DISTRIBUTE, 0, 32: "distributed", DISTRD, 0, 33: # endif 34: "exp", FOP, opEXP, 35: "float4", FOP, opFLOAT4, 36: "float8", FOP, opFLOAT8, 37: "from", FROM, 0, 38: # ifndef xV7_UNIX 39: "gamma", FOP, opGAMMA, 40: # endif 41: "help", HELP, GOVAL, 42: "in", IN, 0, 43: "index", INDEX, GOVAL, 44: "int1", FOP, opINT1, 45: "int2", FOP, opINT2, 46: "int4", FOP, opINT4, 47: "integrity", INTEGRITY, 0, 48: "into", INTO, 0, 49: "is", IS, opEQ, 50: "log", FOP, opLOG, 51: "max", AGOP, opMAX, 52: "min", AGOP, opMIN, 53: "mod", FBOP, opMOD, 54: "modify", MODIFY, GOVAL, 55: "not", LUOP, opNOT, 56: "of", OF, 0, 57: "on", ON, 0, 58: "onto", ONTO, 0, 59: "or", LBOP, OR, 60: "permit", PERMIT, 0, 61: "print", PRINT, GOVAL, 62: "range", RANGE, GOVAL, 63: "replace", REPLACE, GOVAL, 64: "retrieve", RETRIEVE, GOVAL, 65: "save", SAVE, GOVAL, 66: "sin", FOP, opSIN, 67: "sqrt", FOP, opSQRT, 68: "sum", AGOP, opSUM, 69: "sumu", AGOP, opSUMU, 70: "to", TO, 0, 71: "unique", UNIQUE, 0, 72: "until", UNTIL, 0, 73: "view", VIEW, 0, 74: "where", WHERE, 0, 75: }; 76: int Keyent = sizeof Keyword / sizeof Keyword[0]; 77: 78: struct optab Optab[] = 79: { 80: /* PUNCTUATION */ 81: ",", COMMA, 0, 82: "(", LPAREN, 0, 83: ".", PERIOD, 0, 84: ")", RPAREN, 0, 85: "\"", SCONST, 0, 86: "/*", BGNCMNT, 0, 87: "*/", ENDCMNT, 0, 88: ":", COLON, 0, 89: 90: /* UNARY ARITHMETIC OPERATORS */ 91: "+", UAOP, opADD, 92: "-", UAOP, opSUB, 93: 94: /* BINARY ARITHMETIC OPERATORS */ 95: "*", BAOP, opMUL, 96: "/", BAOP, opDIV, 97: "**", BAOPH, opPOW, 98: 99: /* BOUNDS OPERATORS */ 100: ">", BDOP, opGT, 101: ">=", BDOP, opGE, 102: "<", BDOP, opLT, 103: "<=", BDOP, opLE, 104: 105: /* EQUALITY OPERATORS */ 106: "!=", EOP, opNE, 107: "=", IS, opEQ, 108: 0 109: }; 110: 111: /* constant operators table for lookup */ 112: struct constop Coptab[] = 113: { 114: "dba", opDBA, CHAR, 2, 115: "usercode", opUSERCODE, CHAR, 2, 116: 0, 0, 0, 0, 117: "date", opDATE, '?', '?', 118: "time", opDATE, '?', '?', 119: 0, 0, 0, 0 120: }; 121: 122: 123: /* 124: ** Tokens 125: ** a structure initialized here to contain the 126: ** yacc generated tokens for the indicated 127: ** terminal symbols. 128: */ 129: struct special Tokens = 130: { 131: SCONST, 132: BGNCMNT, 133: ENDCMNT, 134: I2CONST, 135: I4CONST, 136: F4CONST, 137: F8CONST, 138: NAME 139: };