/*
 * Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
 *
 * This program is free software: you can use, redistribute, and/or modify
 * it under the terms of the GNU Affero General Public License, version 3
 * or later ("AGPL"), as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef _TD_COMMON_TOKEN_H_
#define _TD_COMMON_TOKEN_H_

#define TK_OR             1
#define TK_AND            2
#define TK_UNION          3
#define TK_ALL            4
#define TK_MINUS          5
#define TK_EXCEPT         6
#define TK_INTERSECT      7
#define TK_NK_BITAND      8
#define TK_NK_BITOR       9
#define TK_NK_LSHIFT      10
#define TK_NK_RSHIFT      11
#define TK_NK_PLUS        12
#define TK_NK_MINUS       13
#define TK_NK_STAR        14
#define TK_NK_SLASH       15
#define TK_NK_REM         16
#define TK_NK_CONCAT      17
#define TK_CREATE         18
#define TK_ACCOUNT        19
#define TK_NK_ID          20
#define TK_PASS           21
#define TK_NK_STRING      22
#define TK_ALTER          23
#define TK_PPS            24
#define TK_TSERIES        25
#define TK_STORAGE        26
#define TK_STREAMS        27
#define TK_QTIME          28
#define TK_DBS            29
#define TK_USERS          30
#define TK_CONNS          31
#define TK_STATE          32
#define TK_USER           33
#define TK_ENABLE         34
#define TK_NK_INTEGER     35
#define TK_SYSINFO        36
#define TK_DROP           37
#define TK_GRANT          38
#define TK_ON             39
#define TK_TO             40
#define TK_REVOKE         41
#define TK_FROM           42
#define TK_NK_COMMA       43
#define TK_READ           44
#define TK_WRITE          45
#define TK_NK_DOT         46
#define TK_DNODE          47
#define TK_PORT           48
#define TK_DNODES         49
#define TK_NK_IPTOKEN     50
#define TK_LOCAL          51
#define TK_QNODE          52
#define TK_BNODE          53
#define TK_SNODE          54
#define TK_MNODE          55
#define TK_DATABASE       56
#define TK_USE            57
#define TK_FLUSH          58
#define TK_TRIM           59
#define TK_IF             60
#define TK_NOT            61
#define TK_EXISTS         62
#define TK_BUFFER         63
#define TK_CACHEMODEL     64
#define TK_CACHESIZE      65
#define TK_COMP           66
#define TK_DURATION       67
#define TK_NK_VARIABLE    68
#define TK_FSYNC          69
#define TK_MAXROWS        70
#define TK_MINROWS        71
#define TK_KEEP           72
#define TK_PAGES          73
#define TK_PAGESIZE       74
#define TK_PRECISION      75
#define TK_REPLICA        76
#define TK_STRICT         77
#define TK_WAL            78
#define TK_VGROUPS        79
#define TK_SINGLE_STABLE  80
#define TK_RETENTIONS     81
#define TK_SCHEMALESS     82
#define TK_NK_COLON       83
#define TK_TABLE          84
#define TK_NK_LP          85
#define TK_NK_RP          86
#define TK_STABLE         87
#define TK_ADD            88
#define TK_COLUMN         89
#define TK_MODIFY         90
#define TK_RENAME         91
#define TK_TAG            92
#define TK_SET            93
#define TK_NK_EQ          94
#define TK_USING          95
#define TK_TAGS           96
#define TK_COMMENT        97
#define TK_BOOL           98
#define TK_TINYINT        99
#define TK_SMALLINT       100
#define TK_INT            101
#define TK_INTEGER        102
#define TK_BIGINT         103
#define TK_FLOAT          104
#define TK_DOUBLE         105
#define TK_BINARY         106
#define TK_TIMESTAMP      107
#define TK_NCHAR          108
#define TK_UNSIGNED       109
#define TK_JSON           110
#define TK_VARCHAR        111
#define TK_MEDIUMBLOB     112
#define TK_BLOB           113
#define TK_VARBINARY      114
#define TK_DECIMAL        115
#define TK_MAX_DELAY      116
#define TK_WATERMARK      117
#define TK_ROLLUP         118
#define TK_TTL            119
#define TK_SMA            120
#define TK_FIRST          121
#define TK_LAST           122
#define TK_SHOW           123
#define TK_DATABASES      124
#define TK_TABLES         125
#define TK_STABLES        126
#define TK_MNODES         127
#define TK_MODULES        128
#define TK_QNODES         129
#define TK_FUNCTIONS      130
#define TK_INDEXES        131
#define TK_ACCOUNTS       132
#define TK_APPS           133
#define TK_CONNECTIONS    134
#define TK_LICENCE        135
#define TK_GRANTS         136
#define TK_QUERIES        137
#define TK_SCORES         138
#define TK_TOPICS         139
#define TK_VARIABLES      140
#define TK_BNODES         141
#define TK_SNODES         142
#define TK_CLUSTER        143
#define TK_TRANSACTIONS   144
#define TK_DISTRIBUTED    145
#define TK_CONSUMERS      146
#define TK_SUBSCRIPTIONS  147
#define TK_LIKE           148
#define TK_INDEX          149
#define TK_FUNCTION       150
#define TK_INTERVAL       151
#define TK_TOPIC          152
#define TK_AS             153
#define TK_WITH           154
#define TK_META           155
#define TK_CONSUMER       156
#define TK_GROUP          157
#define TK_DESC           158
#define TK_DESCRIBE       159
#define TK_RESET          160
#define TK_QUERY          161
#define TK_CACHE          162
#define TK_EXPLAIN        163
#define TK_ANALYZE        164
#define TK_VERBOSE        165
#define TK_NK_BOOL        166
#define TK_RATIO          167
#define TK_NK_FLOAT       168
#define TK_COMPACT        169
#define TK_VNODES         170
#define TK_IN             171
#define TK_OUTPUTTYPE     172
#define TK_AGGREGATE      173
#define TK_BUFSIZE        174
#define TK_STREAM         175
#define TK_INTO           176
#define TK_TRIGGER        177
#define TK_AT_ONCE        178
#define TK_WINDOW_CLOSE   179
#define TK_IGNORE         180
#define TK_EXPIRED        181
#define TK_KILL           182
#define TK_CONNECTION     183
#define TK_TRANSACTION    184
#define TK_BALANCE        185
#define TK_VGROUP         186
#define TK_MERGE          187
#define TK_REDISTRIBUTE   188
#define TK_SPLIT          189
#define TK_SYNCDB         190
#define TK_DELETE         191
#define TK_INSERT         192
#define TK_NULL           193
#define TK_NK_QUESTION    194
#define TK_NK_ARROW       195
#define TK_ROWTS          196
#define TK_TBNAME         197
#define TK_QSTART         198
#define TK_QEND           199
#define TK_QDURATION      200
#define TK_WSTART         201
#define TK_WEND           202
#define TK_WDURATION      203
#define TK_CAST           204
#define TK_NOW            205
#define TK_TODAY          206
#define TK_TIMEZONE       207
#define TK_CLIENT_VERSION 208
#define TK_SERVER_VERSION 209
#define TK_SERVER_STATUS  210
#define TK_CURRENT_USER   211
#define TK_COUNT          212
#define TK_LAST_ROW       213
#define TK_BETWEEN        214
#define TK_IS             215
#define TK_NK_LT          216
#define TK_NK_GT          217
#define TK_NK_LE          218
#define TK_NK_GE          219
#define TK_NK_NE          220
#define TK_MATCH          221
#define TK_NMATCH         222
#define TK_CONTAINS       223
#define TK_JOIN           224
#define TK_INNER          225
#define TK_SELECT         226
#define TK_DISTINCT       227
#define TK_WHERE          228
#define TK_PARTITION      229
#define TK_BY             230
#define TK_SESSION        231
#define TK_STATE_WINDOW   232
#define TK_SLIDING        233
#define TK_FILL           234
#define TK_VALUE          235
#define TK_NONE           236
#define TK_PREV           237
#define TK_LINEAR         238
#define TK_NEXT           239
#define TK_HAVING         240
#define TK_RANGE          241
#define TK_EVERY          242
#define TK_ORDER          243
#define TK_SLIMIT         244
#define TK_SOFFSET        245
#define TK_LIMIT          246
#define TK_OFFSET         247
#define TK_ASC            248
#define TK_NULLS          249
#define TK_ID             250
#define TK_NK_BITNOT      251
#define TK_VALUES         252
#define TK_IMPORT         253
#define TK_NK_SEMI        254
#define TK_FILE           255

#define TK_NK_SPACE   300
#define TK_NK_COMMENT 301
#define TK_NK_ILLEGAL 302
#define TK_NK_HEX     303  // hex number  0x123
#define TK_NK_OCT     304  // oct number
#define TK_NK_BIN     305  // bin format data 0b111

#define TK_NK_NIL 65535

#endif /*_TD_COMMON_TOKEN_H_*/
