parse: lex: add a range of operator tokens
This commit is contained in:
+32
-30
@@ -122,6 +122,7 @@ const char *token_keyword_to_string(enum token_keyword keyword)
|
||||
ENUM_STR(KW_NONE);
|
||||
ENUM_STR(KW_FUNC);
|
||||
ENUM_STR(KW_IF);
|
||||
ENUM_STR(KW_ELSEIF);
|
||||
ENUM_STR(KW_ELSE);
|
||||
default:
|
||||
return "<unknown>";
|
||||
@@ -175,36 +176,37 @@ const char *token_symbol_to_string(enum token_symbol sym)
|
||||
const char *token_operator_to_string(enum token_operator op)
|
||||
{
|
||||
switch (op) {
|
||||
ENUM_STR(OP_BAND);
|
||||
ENUM_STR(OP_BOR);
|
||||
ENUM_STR(OP_BXOR);
|
||||
ENUM_STR(OP_BNOT);
|
||||
ENUM_STR(OP_SHL);
|
||||
ENUM_STR(OP_SHR);
|
||||
ENUM_STR(OP_EQ);
|
||||
ENUM_STR(OP_NE);
|
||||
ENUM_STR(OP_GT);
|
||||
ENUM_STR(OP_LT);
|
||||
ENUM_STR(OP_GE);
|
||||
ENUM_STR(OP_LE);
|
||||
ENUM_STR(OP_MATCH);
|
||||
ENUM_STR(OP_NOTMATCH);
|
||||
ENUM_STR(OP_REPLACE);
|
||||
ENUM_STR(OP_LIKE);
|
||||
ENUM_STR(OP_NOTLIKE);
|
||||
ENUM_STR(OP_IN);
|
||||
ENUM_STR(OP_NOTIN);
|
||||
ENUM_STR(OP_CONTAINS);
|
||||
ENUM_STR(OP_NOTCONTAINS);
|
||||
ENUM_STR(OP_AND);
|
||||
ENUM_STR(OP_OR);
|
||||
ENUM_STR(OP_XOR);
|
||||
ENUM_STR(OP_NOT);
|
||||
ENUM_STR(OP_SPLIT);
|
||||
ENUM_STR(OP_JOIN);
|
||||
ENUM_STR(OP_IS);
|
||||
ENUM_STR(OP_ISNOT);
|
||||
ENUM_STR(OP_AS);
|
||||
ENUM_STR(TKOP_BAND);
|
||||
ENUM_STR(TKOP_BOR);
|
||||
ENUM_STR(TKOP_BXOR);
|
||||
ENUM_STR(TKOP_BNOT);
|
||||
ENUM_STR(TKOP_SHL);
|
||||
ENUM_STR(TKOP_SHR);
|
||||
ENUM_STR(TKOP_EQ);
|
||||
ENUM_STR(TKOP_NE);
|
||||
ENUM_STR(TKOP_GT);
|
||||
ENUM_STR(TKOP_LT);
|
||||
ENUM_STR(TKOP_GE);
|
||||
ENUM_STR(TKOP_LE);
|
||||
ENUM_STR(TKOP_MATCH);
|
||||
ENUM_STR(TKOP_NOTMATCH);
|
||||
ENUM_STR(TKOP_REPLACE);
|
||||
ENUM_STR(TKOP_LIKE);
|
||||
ENUM_STR(TKOP_NOTLIKE);
|
||||
ENUM_STR(TKOP_IN);
|
||||
ENUM_STR(TKOP_F);
|
||||
ENUM_STR(TKOP_NOTIN);
|
||||
ENUM_STR(TKOP_CONTAINS);
|
||||
ENUM_STR(TKOP_NOTCONTAINS);
|
||||
ENUM_STR(TKOP_AND);
|
||||
ENUM_STR(TKOP_OR);
|
||||
ENUM_STR(TKOP_XOR);
|
||||
ENUM_STR(TKOP_NOT);
|
||||
ENUM_STR(TKOP_SPLIT);
|
||||
ENUM_STR(TKOP_JOIN);
|
||||
ENUM_STR(TKOP_IS);
|
||||
ENUM_STR(TKOP_ISNOT);
|
||||
ENUM_STR(TKOP_AS);
|
||||
default:
|
||||
return "<unknown>";
|
||||
}
|
||||
|
||||
+35
-33
@@ -34,44 +34,46 @@ enum token_keyword {
|
||||
__KW_INDEX_BASE = 200,
|
||||
KW_FUNC,
|
||||
KW_IF,
|
||||
KW_ELSEIF,
|
||||
KW_ELSE,
|
||||
__KW_INDEX_LIMIT,
|
||||
};
|
||||
|
||||
enum token_operator {
|
||||
OP_NONE = 0,
|
||||
__OP_INDEX_BASE = 300,
|
||||
OP_BAND,
|
||||
OP_BOR,
|
||||
OP_BXOR,
|
||||
OP_BNOT,
|
||||
OP_SHL,
|
||||
OP_SHR,
|
||||
OP_EQ,
|
||||
OP_NE,
|
||||
OP_GT,
|
||||
OP_LT,
|
||||
OP_GE,
|
||||
OP_LE,
|
||||
OP_MATCH,
|
||||
OP_NOTMATCH,
|
||||
OP_REPLACE,
|
||||
OP_LIKE,
|
||||
OP_NOTLIKE,
|
||||
OP_IN,
|
||||
OP_NOTIN,
|
||||
OP_CONTAINS,
|
||||
OP_NOTCONTAINS,
|
||||
OP_AND,
|
||||
OP_OR,
|
||||
OP_XOR,
|
||||
OP_NOT,
|
||||
OP_SPLIT,
|
||||
OP_JOIN,
|
||||
OP_IS,
|
||||
OP_ISNOT,
|
||||
OP_AS,
|
||||
__OP_INDEX_LIMIT,
|
||||
TKOP_NONE = 0,
|
||||
__TKOP_INDEX_BASE = 300,
|
||||
TKOP_F,
|
||||
TKOP_BAND,
|
||||
TKOP_BOR,
|
||||
TKOP_BXOR,
|
||||
TKOP_BNOT,
|
||||
TKOP_SHL,
|
||||
TKOP_SHR,
|
||||
TKOP_EQ,
|
||||
TKOP_NE,
|
||||
TKOP_GT,
|
||||
TKOP_LT,
|
||||
TKOP_GE,
|
||||
TKOP_LE,
|
||||
TKOP_MATCH,
|
||||
TKOP_NOTMATCH,
|
||||
TKOP_REPLACE,
|
||||
TKOP_LIKE,
|
||||
TKOP_NOTLIKE,
|
||||
TKOP_IN,
|
||||
TKOP_NOTIN,
|
||||
TKOP_CONTAINS,
|
||||
TKOP_NOTCONTAINS,
|
||||
TKOP_AND,
|
||||
TKOP_OR,
|
||||
TKOP_XOR,
|
||||
TKOP_NOT,
|
||||
TKOP_SPLIT,
|
||||
TKOP_JOIN,
|
||||
TKOP_IS,
|
||||
TKOP_ISNOT,
|
||||
TKOP_AS,
|
||||
__TKOP_INDEX_LIMIT,
|
||||
};
|
||||
|
||||
enum token_symbol {
|
||||
|
||||
Reference in New Issue
Block a user