📄 tokentype.java
字号:
package scanner;
/**
* a class storing type of token
* @author Administrator
*
*/
public final class TokenType {
/**
* end of input
*/
public final static int END=-1;
/**
* number
*/
public final static int NUMBER=0;
/**
* operator plus
*/
public final static int PLUS=1;
/**
* operator minus
*/
public final static int MINUS=2;
/**
* operator multiply
*/
public final static int MUL=3;
/**
* operator division
*/
public final static int DIV=4;
/**
* operator expontation
*/
public final static int EXP=5;
/**
* operator negative
*/
public final static int NEGATIVE=6;
/**
* function sin
*/
public final static int SIN=7;
/**
* function cos
*/
public final static int COS=8;
/**
* function max
*/
public final static int MAX=9;
/**
* function min
*/
public final static int MIN=10;
/**
* boolean
*/
public final static int BOOL=11;
/**
* greater than
*/
public final static int GT=12;
/**
* less than
*/
public final static int LT=13;
/**
* greater or equal
*/
public final static int GE=14;
/**
* less or equal
*/
public final static int LE=15;
/**
* equal to
*/
public final static int EQUAL=16;
/**
* not equal
*/
public final static int NEQUAL=17;
/**
* and
*/
public final static int AND=18;
/**
* or
*/
public final static int OR=19;
/**
* not
*/
public final static int NOT=20;
/**
* left bracket
*/
public final static int LBRACKET=21;
/**
* right bracket
*/
public final static int RBRACKET=22;
/**
* question mark
*/
public final static int QMARK=23;
/**
* colon
*/
public final static int COLON=24;
/**
* comma
*/
public final static int COMMA=25;
/**
* get priority of a type
* @param input
* @return an integer of priority
*/
public static int getPriority(int input)
{
if(input==TokenType.RBRACKET)
return 1;
else if(input==TokenType.NUMBER)
return 2;
else if(input==TokenType.SIN||input==TokenType.COS||input==TokenType.MAX||input==TokenType.MIN)
return 3;
else if(input==TokenType.NEGATIVE)
return 4;
else if(input==TokenType.EXP)
return 5;
else if(input==TokenType.MUL||input==TokenType.DIV)
return 6;
else if(input==TokenType.PLUS||input==TokenType.MINUS)
return 7;
else if(input==TokenType.EQUAL||input==TokenType.NEQUAL||input==TokenType.GT||input==TokenType.LT
||input==TokenType.GE||input==TokenType.LE)
return 8;
else if(input==TokenType.NOT)
return 9;
else if(input==TokenType.AND)
return 10;
else if(input==TokenType.OR)
return 11;
else if(input==TokenType.COLON)
return 12;
else if(input==TokenType.COMMA)
return 13;
else if(input==TokenType.QMARK)
return 14;
else if(input==TokenType.LBRACKET)
return 15;
else if(input==TokenType.END)
return 16;
return 0;
}
/**
* judge whether the type is left-combined
* @param input
* @return ture if yes
*/
public static boolean isLeft(int input)
{
if(input==TokenType.NEGATIVE||input==TokenType.EXP||input==TokenType.NOT||input==TokenType.COLON)
return true;
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -