|
|
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 8.2 3/2/85
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: "delim", DELIM, 0,
33: "destroy", DESTROY, GOVAL,
34: # ifdef DISTRIB
35: "distribute", DISTRIBUTE, 0,
36: "distributed", DISTRD, 0,
37: # endif
38: "exp", FOP, opEXP,
39: "float4", FOP, opFLOAT4,
40: "float8", FOP, opFLOAT8,
41: "from", FROM, 0,
42: # ifdef xV6_UNIX
43: "gamma", FOP, opGAMMA,
44: # endif
45: "help", HELP, GOVAL,
46: "in", IN, 0,
47: "index", INDEX, GOVAL,
48: "int1", FOP, opINT1,
49: "int2", FOP, opINT2,
50: "int4", FOP, opINT4,
51: "integrity", INTEGRITY, 0,
52: "into", INTO, 0,
53: "is", IS, opEQ,
54: "log", FOP, opLOG,
55: "max", AGOP, opMAX,
56: "min", AGOP, opMIN,
57: "mod", FBOP, opMOD,
58: "modify", MODIFY, GOVAL,
59: "not", LUOP, opNOT,
60: "of", OF, 0,
61: "on", ON, 0,
62: "onto", ONTO, 0,
63: "or", LBOP, OR,
64: "permit", PERMIT, 0,
65: "print", PRINT, GOVAL,
66: "range", RANGE, GOVAL,
67: "replace", REPLACE, GOVAL,
68: "retrieve", RETRIEVE, GOVAL,
69: "save", SAVE, GOVAL,
70: "sin", FOP, opSIN,
71: "sqrt", FOP, opSQRT,
72: "sum", AGOP, opSUM,
73: "sumu", AGOP, opSUMU,
74: "to", TO, 0,
75: "unique", UNIQUE, 0,
76: "until", UNTIL, 0,
77: "unuse", UNUSE, GOVAL,
78: "use", USE, GOVAL,
79: "view", VIEW, 0,
80: "where", WHERE, 0,
81: };
82: int Keyent = sizeof Keyword / sizeof Keyword[0];
83:
84: struct optab Optab[] =
85: {
86: /* PUNCTUATION */
87: ",", COMMA, 0,
88: "(", LPAREN, '(',
89: ".", PERIOD, 0,
90: ")", RPAREN, ')',
91: "\"", SCONST, 0,
92: "/*", BGNCMNT, 0,
93: "*/", ENDCMNT, 0,
94: ":", COLON, 0,
95: "]", RBRAC, ']',
96: "[", LBRAC, '[',
97: "$", DOLLAR, 0,
98: "%", PCT, '%',
99:
100:
101: /* UNARY ARITHMETIC OPERATORS */
102: "+", UAOP, opADD,
103: "-", UAOP, opSUB,
104:
105: /* BINARY ARITHMETIC OPERATORS */
106: "*", BAOP, opMUL,
107: "/", BAOP, opDIV,
108: "**", BAOPH, opPOW,
109:
110: /* BOUNDS OPERATORS */
111: ">", BDOP, opGT,
112: ">=", BDOP, opGE,
113: "<", BDOP, opLT,
114: "<=", BDOP, opLE,
115:
116: /* EQUALITY OPERATORS */
117: "!=", EOP, opNE,
118: "=", IS, opEQ,
119: 0
120: };
121:
122: /* constant operators table for lookup */
123: struct constop Coptab[] =
124: {
125: "dba", opDBA, CHAR, 2,
126: "usercode", opUSERCODE, CHAR, 2,
127: 0, 0, 0, 0,
128: "date", opDATE, '?', '?',
129: "time", opDATE, '?', '?',
130: 0, 0, 0, 0
131: };
132:
133:
134: /*
135: ** Tokens
136: ** a structure initialized here to contain the
137: ** yacc generated tokens for the indicated
138: ** terminal symbols.
139: */
140: struct special Tokens =
141: {
142: SCONST,
143: BGNCMNT,
144: ENDCMNT,
145: I2CONST,
146: I4CONST,
147: F4CONST,
148: F8CONST,
149: NAME
150: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.