|
|
1.1 root 1: /*
2: ** TOKENS.Y -- operator and keyword tables
3: **
4: ** Defines:
5: ** Optab -- operator table
6: ** Kwrdtab -- keyword tables
7: ** Kwrdnum -- number of keywords (for binary search in getkey())
8: ** Tokens -- so lexical routines can know about yacc tokens
9: **
10: ** Requires:
11: ** Kwrdtab must be in alphabetical order!!!
12: **
13: ** Version:
14: ** @(#)tokens.y 8.2 3/2/85
15: */
16:
17:
18: struct optab Kwrdtab [] =
19: {
20: "abs", FOP, 0,
21: "all", ALL, 0,
22: "and", LBOP, 0,
23: "any", AOP, 0,
24: "append", APPEND, 0,
25: "ascii", FOP, 0,
26: "at", AT, 0,
27: "atan", FOP, 0,
28: "auto", ALLOC, opAUTO,
29: "avg", AOP, 0,
30: "avgu", AOP, 0,
31: "by", BY, 0,
32: "char", TYPE, opSTRING,
33: "concat", FBOP, 0,
34: "copy", COPY, 0,
35: "cos", FOP, 0,
36: "count", AOP, 0,
37: "countu", AOP, 0,
38: "create", CREATE, 0,
39: "define", DEFINE, 0,
40: "delete", DELETE, 0,
41: "delim", DELIM, 0,
42: "destroy", DESTROY, 0,
43: "double", TYPE, opDOUBLE,
44: "exit", EXIT, 0,
45: "extern", ALLOC, opEXTERN,
46: "float", TYPE, opFLOAT,
47: "float4", FOP, 4,
48: "float8", FOP, 8,
49: "from", FROM, 0,
50: "gamma", FOP, 0,
51: "help", HELP, 0,
52: "in", IN, 0,
53: "index", INDEX, 0,
54: "ingres", INGRES, 0,
55: "int", TYPE, opINT,
56: "int1", FOP, 1,
57: "int2", FOP, 2,
58: "int4", FOP, 4,
59: "integrity", INTEGRITY, 0,
60: "into", INTO, 0,
61: "is", IS, 0,
62: "log", FOP, 0,
63: "long", TYPE, opLONG,
64: "max", AOP, 0,
65: "min", AOP, 0,
66: "mod", FBOP, 0,
67: "modify", MODIFY, 0,
68: "not", LUOP, 0,
69: "of", OF, 0,
70: "on", ON, 0,
71: "onto", ONTO, 0,
72: "or", LBOP, 0,
73: "param", PARAM, 0,
74: "permit", PERMIT, 0,
75: "print", PRINT, 0,
76: "rand", FOP, 0,
77: "range", RANGE, 0,
78: "register", ALLOC, opREGISTER,
79: "replace", REPLACE, 0,
80: "retrieve", RETRIEVE, 0,
81: "save", SAVE, 0,
82: "short", TYPE, opSHORT,
83: "sin", FOP, 0,
84: "sqrt", FOP, 0,
85: "static", ALLOC, opSTATIC,
86: "struct", STRUCT, opSTRUCT,
87: "sum", AOP, 0,
88: "sumu", AOP, 0,
89: "to", TO, 0,
90: "unique", UNIQUE, 0,
91: "until", UNTIL, 0,
92: "unuse", UNUSE, 0,
93: "use", USE, 0,
94: "view", VIEW, 0,
95: "where", WHERE, 0,
96: };
97:
98: /* This decalaration must be here as getkey references it,
99: ** and it must contain the number of elements in the
100: ** Kwrdtab, which is only known here
101: */
102:
103: int Kwrdnum = sizeof Kwrdtab / sizeof Kwrdtab [0];
104:
105: struct optab Optab [] =
106: {
107: /* PUNCTUATION */
108: ",", COMMA, 0,
109: "(", LPAREN, 0,
110: ".", PERIOD, 0,
111: ")", RPAREN, 0,
112: "\"", QUOTE, 0,
113: "/*", BGNCMNT, 0,
114: "*/", ENDCMNT, 0,
115: "#", NONREF, 0,
116: ":", COLON, 0,
117: "$", DOLLAR, 0,
118: "%", PCT, 0,
119:
120: /* C LANUAGE PUNCTUATION */
121: "{", LBRACE, 0,
122: "}", RBRACE, 0,
123: "[", LBRKT, 0,
124: "]", RBRKT, 0,
125: ";", SEMICOL, 0,
126: "->", POINTER, 0,
127:
128: /* UNARY ARITHMETIC OPERATORS */
129: "+", UOP, 0,
130: "-", UOP, 0,
131:
132: /* BINARY ARITHMETIC OPERATORS */
133: "*", BOP, 0,
134: "/", BOP, 0,
135: "**", BOP, 0,
136: "+", UAOP, 0,
137: "-", UAOP, 0,
138:
139: /* BOUNDS OPERATORS */
140: ">", BDOP, 0,
141: ">=", BDOP, 0,
142: "<", BDOP, 0,
143: "<=", BDOP, 0,
144:
145: /* EQUALITY OPERATORS */
146: "!=", EOP, 0,
147: "=", IS, 0,
148: 0
149: };
150:
151:
152: struct special Tokens =
153: {
154: NAME,
155: SCONST,
156: I2CONST,
157: I4CONST,
158: F8CONST,
159: QUOTE,
160: BGNCMNT,
161: ENDCMNT,
162: C_CODE,
163: STRUCT_VAR,
164: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.