/*
 * 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_IF            58
#define TK_NOT           59
#define TK_EXISTS        60
#define TK_BUFFER        61
#define TK_CACHELAST     62
#define TK_COMP          63
#define TK_DURATION      64
#define TK_NK_VARIABLE   65
#define TK_FSYNC         66
#define TK_MAXROWS       67
#define TK_MINROWS       68
#define TK_KEEP          69
#define TK_PAGES         70
#define TK_PAGESIZE      71
#define TK_PRECISION     72
#define TK_REPLICA       73
#define TK_STRICT        74
#define TK_WAL           75
#define TK_VGROUPS       76
#define TK_SINGLE_STABLE 77
#define TK_RETENTIONS    78
#define TK_SCHEMALESS    79
#define TK_NK_COLON      80
#define TK_TABLE         81
#define TK_NK_LP         82
#define TK_NK_RP         83
#define TK_STABLE        84
#define TK_ADD           85
#define TK_COLUMN        86
#define TK_MODIFY        87
#define TK_RENAME        88
#define TK_TAG           89
#define TK_SET           90
#define TK_NK_EQ         91
#define TK_USING         92
#define TK_TAGS          93
#define TK_COMMENT       94
#define TK_BOOL          95
#define TK_TINYINT       96
#define TK_SMALLINT      97
#define TK_INT           98
#define TK_INTEGER       99
#define TK_BIGINT        100
#define TK_FLOAT         101
#define TK_DOUBLE        102
#define TK_BINARY        103
#define TK_TIMESTAMP     104
#define TK_NCHAR         105
#define TK_UNSIGNED      106
#define TK_JSON          107
#define TK_VARCHAR       108
#define TK_MEDIUMBLOB    109
#define TK_BLOB          110
#define TK_VARBINARY     111
#define TK_DECIMAL       112
#define TK_MAX_DELAY     113
#define TK_WATERMARK     114
#define TK_ROLLUP        115
#define TK_TTL           116
#define TK_SMA           117
#define TK_FIRST         118
#define TK_LAST          119
#define TK_SHOW          120
#define TK_DATABASES     121
#define TK_TABLES        122
#define TK_STABLES       123
#define TK_MNODES        124
#define TK_MODULES       125
#define TK_QNODES        126
#define TK_FUNCTIONS     127
#define TK_INDEXES       128
#define TK_ACCOUNTS      129
#define TK_APPS          130
#define TK_CONNECTIONS   131
#define TK_LICENCE       132
#define TK_GRANTS        133
#define TK_QUERIES       134
#define TK_SCORES        135
#define TK_TOPICS        136
#define TK_VARIABLES     137
#define TK_BNODES        138
#define TK_SNODES        139
#define TK_CLUSTER       140
#define TK_TRANSACTIONS  141
#define TK_DISTRIBUTED   142
#define TK_CONSUMERS     143
#define TK_SUBSCRIPTIONS 144
#define TK_LIKE          145
#define TK_INDEX         146
#define TK_FUNCTION      147
#define TK_INTERVAL      148
#define TK_TOPIC         149
#define TK_AS            150
#define TK_WITH          151
#define TK_META          152
#define TK_CONSUMER      153
#define TK_GROUP         154
#define TK_DESC          155
#define TK_DESCRIBE      156
#define TK_RESET         157
#define TK_QUERY         158
#define TK_CACHE         159
#define TK_EXPLAIN       160
#define TK_ANALYZE       161
#define TK_VERBOSE       162
#define TK_NK_BOOL       163
#define TK_RATIO         164
#define TK_NK_FLOAT      165
#define TK_COMPACT       166
#define TK_VNODES        167
#define TK_IN            168
#define TK_OUTPUTTYPE    169
#define TK_AGGREGATE     170
#define TK_BUFSIZE       171
#define TK_STREAM        172
#define TK_INTO          173
#define TK_TRIGGER       174
#define TK_AT_ONCE       175
#define TK_WINDOW_CLOSE  176
#define TK_KILL          177
#define TK_CONNECTION    178
#define TK_TRANSACTION   179
#define TK_BALANCE       180
#define TK_VGROUP        181
#define TK_MERGE         182
#define TK_REDISTRIBUTE  183
#define TK_SPLIT         184
#define TK_SYNCDB        185
#define TK_DELETE        186
#define TK_NULL          187
#define TK_NK_QUESTION   188
#define TK_NK_ARROW      189
#define TK_ROWTS         190
#define TK_TBNAME        191
#define TK_QSTARTTS      192
#define TK_QENDTS        193
#define TK_WSTARTTS      194
#define TK_WENDTS        195
#define TK_WDURATION     196
#define TK_CAST          197
#define TK_NOW           198
#define TK_TODAY         199
#define TK_TIMEZONE      200
#define TK_COUNT         201
#define TK_LAST_ROW      202
#define TK_BETWEEN       203
#define TK_IS            204
#define TK_NK_LT         205
#define TK_NK_GT         206
#define TK_NK_LE         207
#define TK_NK_GE         208
#define TK_NK_NE         209
#define TK_MATCH         210
#define TK_NMATCH        211
#define TK_CONTAINS      212
#define TK_JOIN          213
#define TK_INNER         214
#define TK_SELECT        215
#define TK_DISTINCT      216
#define TK_WHERE         217
#define TK_PARTITION     218
#define TK_BY            219
#define TK_SESSION       220
#define TK_STATE_WINDOW  221
#define TK_SLIDING       222
#define TK_FILL          223
#define TK_VALUE         224
#define TK_NONE          225
#define TK_PREV          226
#define TK_LINEAR        227
#define TK_NEXT          228
#define TK_HAVING        229
#define TK_RANGE         230
#define TK_EVERY         231
#define TK_ORDER         232
#define TK_SLIMIT        233
#define TK_SOFFSET       234
#define TK_LIMIT         235
#define TK_OFFSET        236
#define TK_ASC           237
#define TK_NULLS         238
#define TK_ID            239
#define TK_NK_BITNOT     240
#define TK_INSERT        241
#define TK_VALUES        242
#define TK_IMPORT        243
#define TK_NK_SEMI       244
#define TK_FILE          245

#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_*/
