【Java开源代码栏目提醒】:以下是网学会员为您推荐的Java开源代码-BinaryOprtTypeEnum.java,希望本篇文章对您学习有所帮助。
package com.cownew.SQLParser.ast.node.enumdef;
/**
* 二元操作符枚举
* @author 杨中科
*
*/
//lowest -->
//( 6) AND, NOT,OR
//( 5) equality: ==, <>, !=, is
//( 4) relational: <, <=, >, >=,
// LIKE, NOT LIKE, BETWEEN, NOT BETWEEN, IN, NOT IN
//( 3) addition and subtraction: +(binary) -(binary)
//( 2) multiplication: * / %, concatenate: ||
//highest --> ( 1) +(unary) -(unary)
// [] () (method call) . (dot -- identifier qualification)
// aggregate function
// () (explicit parenthesis)
public enum BinaryOprtTypeEnum {
ADD(TokenTypes.PLUS,3) ,//+
SUBSTRACT(TokenTypes.SUB,3), // -
MULTI(TokenTypes.STAR,2) , // *
DIV(TokenTypes.DIV,2), // /
MOD(TokenTypes.MOD,2) , // %
AND (TokenTypes.AND,6), // and
OR(TokenTypes.OR,6) , // or
IS(TokenTypes.IS,5), // is,比如is null
EQUAL(TokenTypes.EQUAL,5), // =,==
ASSIGN(TokenTypes.EQUAL,5), // =
GREATER(TokenTypes.GREATER,4), // >
GREATEROREQUAL(TokenTypes.GR_EQ,4), // >=
LESS(TokenTypes.LESS,4), // <
LESSOREQUAL(TokenTypes.LE_EQ,4), // <=
NOTEQUAL(TokenTypes.NOT_EQ,4), // !=,<>
LIKE(TokenTypes.LIKE,4) , // like
NOT_LIKE(TokenTypes.NOT_LIKE,4),
CONCATSTRING(TokenTypes.CONCAT,2), // ||
IN(TokenTypes.IN,4), // in
NOT_IN(TokenTypes.NOT_IN,4),//not in
Union(TokenTypes.UNION), // union
DOT(TokenTypes.DOT,1);// .
int type;
int priority;
BinaryOprtTypeEnum(int type,int priority){
this.type=type;
this.priority=priority;
}
BinaryOprtTypeEnum(int type){
this.type=type;
this.priority=8;
}
public int transformToTokenType() {
return type;
}
public int getPriority(){
return this.priority;
}
public static BinaryOprtTypeEnum transformFromTokenType(int type) {
switch (type) {
case TokenTypes.PLUS:
return ADD;
case TokenTypes.SUB:
return SUBSTRACT;
case TokenTypes.STAR:
return MULTI;
case TokenTypes.DIV:
return DIV;
case TokenTypes.MOD:
return MOD;
case TokenTypes.AND:
return AND;
case TokenTypes.OR:
return OR;
case TokenTypes.IS:
return IS;
case TokenTypes.EQUAL:
return EQUAL;
// case PTokenTypes.EQUAL:
// return this.ASSIGN;///////////////////
case TokenTypes.GREATER:
return GREATER;
case TokenTypes.GR_EQ:
return GREATEROREQUAL;
case TokenTypes.LESS:
return LESS;
case TokenTypes.LE_EQ:
return LESSOREQUAL;
case TokenTypes.NOT_EQ:
return NOTEQUAL;
case TokenTypes.LIKE:
return LIKE;
case TokenTypes.NOT_LIKE:
return NOT_LIKE;
case TokenTypes.CONCAT:
return CONCATSTRING;
case TokenTypes.UNION:
return Union;
case TokenTypes.IN:
return IN;
case TokenTypes.NOT_IN:
return NOT_IN;
case TokenTypes.DOT:
return DOT;
default:
return null;
}
}
}