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