~roger-booth/mysql-proxy/laminator

« back to all changes in this revision

Viewing changes to lib/sql-tokenizer-tokens.c

  • Committer: jan at mysql
  • Date: 2010-01-07 13:54:51 UTC
  • Revision ID: jan@mysql.com-20100107135451-g7egwjhjc79h82r0
added missing files

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "sql-tokenizer.h"
 
2
 
 
3
#define S(x) #x
 
4
 
 
5
/**
 
6
 * this list has to be kept in sync with the tokens itself 
 
7
 *
 
8
 * maps token_ids (array-pos) to token-names
 
9
 */
 
10
static const char *token_names[] = {
 
11
        S(TK_UNKNOWN),
 
12
        S(TK_LE),
 
13
        S(TK_GE),
 
14
        S(TK_LT),
 
15
        S(TK_GT),
 
16
        S(TK_EQ),
 
17
        S(TK_NE),
 
18
        S(TK_STRING),
 
19
        S(TK_COMMENT),
 
20
        S(TK_LITERAL),
 
21
        S(TK_FUNCTION),
 
22
 
 
23
        S(TK_INTEGER),
 
24
        S(TK_FLOAT),
 
25
        S(TK_DOT),
 
26
        S(TK_COMMA),
 
27
        S(TK_ASSIGN),
 
28
        S(TK_OBRACE),
 
29
        S(TK_CBRACE),
 
30
        S(TK_SEMICOLON),
 
31
        S(TK_STAR),
 
32
        S(TK_PLUS),
 
33
        S(TK_MINUS),
 
34
        S(TK_DIV),
 
35
 
 
36
        S(TK_BITWISE_AND),
 
37
        S(TK_BITWISE_OR),
 
38
        S(TK_BITWISE_XOR),
 
39
        S(TK_LOGICAL_AND),
 
40
        S(TK_LOGICAL_OR),
 
41
 
 
42
        S(TK_SQL_ACCESSIBLE),
 
43
        S(TK_SQL_ACTION),
 
44
        S(TK_SQL_ADD),
 
45
        S(TK_SQL_ALL),
 
46
        S(TK_SQL_ALTER),
 
47
        S(TK_SQL_ANALYZE),
 
48
        S(TK_SQL_AND),
 
49
        S(TK_SQL_AS),
 
50
        S(TK_SQL_ASC),
 
51
        S(TK_SQL_ASENSITIVE),
 
52
        S(TK_SQL_BEFORE),
 
53
        S(TK_SQL_BETWEEN),
 
54
        S(TK_SQL_BIGINT),
 
55
        S(TK_SQL_BINARY),
 
56
        S(TK_SQL_BIT),
 
57
        S(TK_SQL_BLOB),
 
58
        S(TK_SQL_BOTH),
 
59
        S(TK_SQL_BY),
 
60
        S(TK_SQL_CALL),
 
61
        S(TK_SQL_CASCADE),
 
62
        S(TK_SQL_CASE),
 
63
        S(TK_SQL_CHANGE),
 
64
        S(TK_SQL_CHAR),
 
65
        S(TK_SQL_CHARACTER),
 
66
        S(TK_SQL_CHECK),
 
67
        S(TK_SQL_COLLATE),
 
68
        S(TK_SQL_COLUMN),
 
69
        S(TK_SQL_CONDITION),
 
70
        S(TK_SQL_CONSTRAINT),
 
71
        S(TK_SQL_CONTINUE),
 
72
        S(TK_SQL_CONVERT),
 
73
        S(TK_SQL_CREATE),
 
74
        S(TK_SQL_CROSS),
 
75
        S(TK_SQL_CURRENT_DATE),
 
76
        S(TK_SQL_CURRENT_TIME),
 
77
        S(TK_SQL_CURRENT_TIMESTAMP),
 
78
        S(TK_SQL_CURRENT_USER),
 
79
        S(TK_SQL_CURSOR),
 
80
        S(TK_SQL_DATABASE),
 
81
        S(TK_SQL_DATABASES),
 
82
        S(TK_SQL_DATE),
 
83
        S(TK_SQL_DAY_HOUR),
 
84
        S(TK_SQL_DAY_MICROSECOND),
 
85
        S(TK_SQL_DAY_MINUTE),
 
86
        S(TK_SQL_DAY_SECOND),
 
87
        S(TK_SQL_DEC),
 
88
        S(TK_SQL_DECIMAL),
 
89
        S(TK_SQL_DECLARE),
 
90
        S(TK_SQL_DEFAULT),
 
91
        S(TK_SQL_DELAYED),
 
92
        S(TK_SQL_DELETE),
 
93
        S(TK_SQL_DESC),
 
94
        S(TK_SQL_DESCRIBE),
 
95
        S(TK_SQL_DETERMINISTIC),
 
96
        S(TK_SQL_DISTINCT),
 
97
        S(TK_SQL_DISTINCTROW),
 
98
        S(TK_SQL_DIV),
 
99
        S(TK_SQL_DOUBLE),
 
100
        S(TK_SQL_DROP),
 
101
        S(TK_SQL_DUAL),
 
102
        S(TK_SQL_EACH),
 
103
        S(TK_SQL_ELSE),
 
104
        S(TK_SQL_ELSEIF),
 
105
        S(TK_SQL_ENCLOSED),
 
106
        S(TK_SQL_ENUM),
 
107
        S(TK_SQL_ESCAPED),
 
108
        S(TK_SQL_EXISTS),
 
109
        S(TK_SQL_EXIT),
 
110
        S(TK_SQL_EXPLAIN),
 
111
        S(TK_SQL_FALSE),
 
112
        S(TK_SQL_FETCH),
 
113
        S(TK_SQL_FLOAT),
 
114
        S(TK_SQL_FLOAT4),
 
115
        S(TK_SQL_FLOAT8),
 
116
        S(TK_SQL_FOR),
 
117
        S(TK_SQL_FORCE),
 
118
        S(TK_SQL_FOREIGN),
 
119
        S(TK_SQL_FROM),
 
120
        S(TK_SQL_FULLTEXT),
 
121
        S(TK_SQL_GRANT),
 
122
        S(TK_SQL_GROUP),
 
123
        S(TK_SQL_HAVING),
 
124
        S(TK_SQL_HIGH_PRIORITY),
 
125
        S(TK_SQL_HOUR_MICROSECOND),
 
126
        S(TK_SQL_HOUR_MINUTE),
 
127
        S(TK_SQL_HOUR_SECOND),
 
128
        S(TK_SQL_IF),
 
129
        S(TK_SQL_IGNORE),
 
130
        S(TK_SQL_IN),
 
131
        S(TK_SQL_INDEX),
 
132
        S(TK_SQL_INFILE),
 
133
        S(TK_SQL_INNER),
 
134
        S(TK_SQL_INOUT),
 
135
        S(TK_SQL_INSENSITIVE),
 
136
        S(TK_SQL_INSERT),
 
137
        S(TK_SQL_INT),
 
138
        S(TK_SQL_INT1),
 
139
        S(TK_SQL_INT2),
 
140
        S(TK_SQL_INT3),
 
141
        S(TK_SQL_INT4),
 
142
        S(TK_SQL_INT8),
 
143
        S(TK_SQL_INTEGER),
 
144
        S(TK_SQL_INTERVAL),
 
145
        S(TK_SQL_INTO),
 
146
        S(TK_SQL_IS),
 
147
        S(TK_SQL_ITERATE),
 
148
        S(TK_SQL_JOIN),
 
149
        S(TK_SQL_KEY),
 
150
        S(TK_SQL_KEYS),
 
151
        S(TK_SQL_KILL),
 
152
        S(TK_SQL_LEADING),
 
153
        S(TK_SQL_LEAVE),
 
154
        S(TK_SQL_LEFT),
 
155
        S(TK_SQL_LIKE),
 
156
        S(TK_SQL_LIMIT),
 
157
        S(TK_SQL_LINEAR),
 
158
        S(TK_SQL_LINES),
 
159
        S(TK_SQL_LOAD),
 
160
        S(TK_SQL_LOCALTIME),
 
161
        S(TK_SQL_LOCALTIMESTAMP),
 
162
        S(TK_SQL_LOCK),
 
163
        S(TK_SQL_LONG),
 
164
        S(TK_SQL_LONGBLOB),
 
165
        S(TK_SQL_LONGTEXT),
 
166
        S(TK_SQL_LOOP),
 
167
        S(TK_SQL_LOW_PRIORITY),
 
168
        S(TK_SQL_MASTER_SSL_VERIFY_SERVER_CERT),
 
169
        S(TK_SQL_MATCH),
 
170
        S(TK_SQL_MEDIUMBLOB),
 
171
        S(TK_SQL_MEDIUMINT),
 
172
        S(TK_SQL_MEDIUMTEXT),
 
173
        S(TK_SQL_MIDDLEINT),
 
174
        S(TK_SQL_MINUTE_MICROSECOND),
 
175
        S(TK_SQL_MINUTE_SECOND),
 
176
        S(TK_SQL_MOD),
 
177
        S(TK_SQL_MODIFIES),
 
178
        S(TK_SQL_NATURAL),
 
179
        S(TK_SQL_NO),
 
180
        S(TK_SQL_NOT),
 
181
        S(TK_SQL_NO_WRITE_TO_BINLOG),
 
182
        S(TK_SQL_NULL),
 
183
        S(TK_SQL_NUMERIC),
 
184
        S(TK_SQL_ON),
 
185
        S(TK_SQL_OPTIMIZE),
 
186
        S(TK_SQL_OPTION),
 
187
        S(TK_SQL_OPTIONALLY),
 
188
        S(TK_SQL_OR),
 
189
        S(TK_SQL_ORDER),
 
190
        S(TK_SQL_OUT),
 
191
        S(TK_SQL_OUTER),
 
192
        S(TK_SQL_OUTFILE),
 
193
        S(TK_SQL_PRECISION),
 
194
        S(TK_SQL_PRIMARY),
 
195
        S(TK_SQL_PROCEDURE),
 
196
        S(TK_SQL_PURGE),
 
197
        S(TK_SQL_RANGE),
 
198
        S(TK_SQL_READ),
 
199
        S(TK_SQL_READ_ONLY),
 
200
        S(TK_SQL_READS),
 
201
        S(TK_SQL_READ_WRITE),
 
202
        S(TK_SQL_REAL),
 
203
        S(TK_SQL_REFERENCES),
 
204
        S(TK_SQL_REGEXP),
 
205
        S(TK_SQL_RELEASE),
 
206
        S(TK_SQL_RENAME),
 
207
        S(TK_SQL_REPEAT),
 
208
        S(TK_SQL_REPLACE),
 
209
        S(TK_SQL_REQUIRE),
 
210
        S(TK_SQL_RESTRICT),
 
211
        S(TK_SQL_RETURN),
 
212
        S(TK_SQL_REVOKE),
 
213
        S(TK_SQL_RIGHT),
 
214
        S(TK_SQL_RLIKE),
 
215
        S(TK_SQL_SCHEMA),
 
216
        S(TK_SQL_SCHEMAS),
 
217
        S(TK_SQL_SECOND_MICROSECOND),
 
218
        S(TK_SQL_SELECT),
 
219
        S(TK_SQL_SENSITIVE),
 
220
        S(TK_SQL_SEPARATOR),
 
221
        S(TK_SQL_SET),
 
222
        S(TK_SQL_SHOW),
 
223
        S(TK_SQL_SMALLINT),
 
224
        S(TK_SQL_SPATIAL),
 
225
        S(TK_SQL_SPECIFIC),
 
226
        S(TK_SQL_SQL),
 
227
        S(TK_SQL_SQL_BIG_RESULT),
 
228
        S(TK_SQL_SQL_CALC_FOUND_ROWS),
 
229
        S(TK_SQL_SQLEXCEPTION),
 
230
        S(TK_SQL_SQL_SMALL_RESULT),
 
231
        S(TK_SQL_SQLSTATE),
 
232
        S(TK_SQL_SQLWARNING),
 
233
        S(TK_SQL_SSL),
 
234
        S(TK_SQL_STARTING),
 
235
        S(TK_SQL_STRAIGHT_JOIN),
 
236
        S(TK_SQL_TABLE),
 
237
        S(TK_SQL_TERMINATED),
 
238
        S(TK_SQL_TEXT),
 
239
        S(TK_SQL_THEN),
 
240
        S(TK_SQL_TIME),
 
241
        S(TK_SQL_TIMESTAMP),
 
242
        S(TK_SQL_TINYBLOB),
 
243
        S(TK_SQL_TINYINT),
 
244
        S(TK_SQL_TINYTEXT),
 
245
        S(TK_SQL_TO),
 
246
        S(TK_SQL_TRAILING),
 
247
        S(TK_SQL_TRIGGER),
 
248
        S(TK_SQL_TRUE),
 
249
        S(TK_SQL_UNDO),
 
250
        S(TK_SQL_UNION),
 
251
        S(TK_SQL_UNIQUE),
 
252
        S(TK_SQL_UNLOCK),
 
253
        S(TK_SQL_UNSIGNED),
 
254
        S(TK_SQL_UPDATE),
 
255
        S(TK_SQL_USAGE),
 
256
        S(TK_SQL_USE),
 
257
        S(TK_SQL_USING),
 
258
        S(TK_SQL_UTC_DATE),
 
259
        S(TK_SQL_UTC_TIME),
 
260
        S(TK_SQL_UTC_TIMESTAMP),
 
261
        S(TK_SQL_VALUES),
 
262
        S(TK_SQL_VARBINARY),
 
263
        S(TK_SQL_VARCHAR),
 
264
        S(TK_SQL_VARCHARACTER),
 
265
        S(TK_SQL_VARYING),
 
266
        S(TK_SQL_WHEN),
 
267
        S(TK_SQL_WHERE),
 
268
        S(TK_SQL_WHILE),
 
269
        S(TK_SQL_WITH),
 
270
        S(TK_SQL_WRITE),
 
271
        S(TK_SQL_X509),
 
272
        S(TK_SQL_XOR),
 
273
        S(TK_SQL_YEAR_MONTH),
 
274
        S(TK_SQL_ZEROFILL),
 
275
        
 
276
        S(TK_COMMENT_MYSQL),
 
277
 
 
278
        NULL
 
279
};
 
280
#undef S
 
281
 
 
282
/**
 
283
 * get the name for a token-id
 
284
 */
 
285
const gchar *sql_token_get_name(sql_token_id token_id) {
 
286
        if (token_id >= TK_LAST_TOKEN) return NULL;
 
287
 
 
288
        if (sizeof(token_names)/sizeof(char *) != TK_LAST_TOKEN + 1) {
 
289
                g_error("sql_token_get_name() is out of sync [%"G_GSIZE_FORMAT" != %d]", sizeof(token_names)/sizeof(char *), TK_LAST_TOKEN + 1);
 
290
        }
 
291
 
 
292
        return token_names[token_id];
 
293
}
 
294
 
 
295
int sql_token_get_last_id() {
 
296
        return (sizeof(token_names)/sizeof(token_names[0])) - 1; /* the last one is not a token */
 
297
}
 
298