📄 sqltokenizer.java
字号:
static final int IS = 502;
static final int NOT = 503;
static final int NULL = 504;
static final int TRUE = 505;
static final int FALSE = 506;
static final int BETWEEN= 507;
static final int LIKE = 508;
static final int IN = 509;
static{
addKeyWord( "OR", OR);
addKeyWord( "AND", AND);
addKeyWord( "IS", IS);
addKeyWord( "NOT", NOT);
addKeyWord( "NULL", NULL);
addKeyWord( "YES", TRUE); //alias for TRUE
addKeyWord( "TRUE", TRUE);
addKeyWord( "NO", FALSE); //alias for FALSE
addKeyWord( "FALSE", FALSE);
addKeyWord( "BETWEEN", BETWEEN);
addKeyWord( "LIKE", LIKE);
addKeyWord( "IN", IN);
}
//NUMERIC FUNCTIONS
static final int ABS = 1000; //first numeric function --> see SSDatabaseMetaData.getNumericFunctions
static final int ACOS = 1001;
static final int ASIN = 1002;
static final int ATAN = 1003;
static final int ATAN2 = 1004;
static final int CEILING = 1005;
static final int COS = 1006;
static final int COT = 1007;
static final int DEGREES = 1008;
static final int EXP = 1009;
static final int FLOOR = 1010;
static final int LOG = 1011;
static final int LOG10 = 1012;
static final int MOD = 1013;
static final int PI = 1014;
static final int POWER = 1015;
static final int RADIANS = 1016;
static final int RAND = 1017;
static final int ROUND = 1018;
static final int SIGN = 1019;
static final int SIN = 1020;
static final int SQRT = 1021;
static final int TAN = 1022;
static final int TRUNCATE = 1023; //last numeric function --> see SSDatabaseMetaData.getNumericFunctions
static{
addKeyWord( "ABS", ABS);
addKeyWord( "ACOS", ACOS);
addKeyWord( "ASIN", ASIN);
addKeyWord( "ATAN", ATAN);
addKeyWord( "ATN2", ATAN2); //alias for MS SQL Server
addKeyWord( "ATAN2", ATAN2);
addKeyWord( "CEILING", CEILING);
addKeyWord( "COS", COS);
addKeyWord( "COT", COT);
addKeyWord( "DEGREES", DEGREES);
addKeyWord( "EXP", EXP);
addKeyWord( "FLOOR", FLOOR);
addKeyWord( "LOG", LOG);
addKeyWord( "LOG10", LOG10);
addKeyWord( "MOD", MOD);
addKeyWord( "PI", PI);
addKeyWord( "POWER", POWER);
addKeyWord( "RADIANS", RADIANS);
addKeyWord( "RAND", RAND);
addKeyWord( "ROUND", ROUND);
addKeyWord( "SIGN", SIGN);
addKeyWord( "SIN", SIN);
addKeyWord( "SQRT", SQRT);
addKeyWord( "TAN", TAN);
addKeyWord( "TRUNCATE", TRUNCATE);
}
//String Functions
static final int ASCII = 1100; //first string function --> see SSDatabaseMetaData.getStringFunctions
static final int _CHAR = 1101;
static final int CONCAT = 1102;
static final int DIFFERENCE = 1103;
static final int INSERT = 1104;
static final int LCASE = 1105;
static final int LEFT = 1106;
static final int LENGTH = 1107;
static final int LOCATE = 1108;
static final int LTRIM = 1109;
static final int REPEAT = 1110;
static final int REPLACE = 1111;
static final int RIGHT = 1112;
static final int RTRIM = 1113;
static final int SOUNDEX = 1114;
static final int SPACE = 1115;
static final int SUBSTRING = 1116;
static final int TRIM = 1117;
static final int UCASE = 1118; //last string function --> see SSDatabaseMetaData.getStringFunctions
static{
addKeyWord( "ASCII", ASCII);
keywords.put( new Integer(_CHAR), "CHAR" ); // needed for meta data functions
addKeyWord( "CONCAT", CONCAT);
addKeyWord( "DIFFERENCE",DIFFERENCE);
addKeyWord( "STUFF", INSERT); //alias for MS SQL Server
addKeyWord( "INSERT", INSERT);
addKeyWord( "LCASE", LCASE);
addKeyWord( "LEFT", LEFT);
addKeyWord( "DATALENGTH",LENGTH); //alias for MS SQL Server
addKeyWord( "LEN", LENGTH); //alias for MS SQL Server
addKeyWord( "LENGTH", LENGTH);
addKeyWord( "CHARINDEX",LOCATE); //alias for MS SQL Server
addKeyWord( "LOCATE", LOCATE);
addKeyWord( "LTRIM", LTRIM);
addKeyWord( "REPEAT", REPEAT);
addKeyWord( "REPLACE", REPLACE);
addKeyWord( "RIGHT", RIGHT);
addKeyWord( "RTRIM", RTRIM);
addKeyWord( "SOUNDEX", SOUNDEX);
addKeyWord( "SPACE", SPACE);
addKeyWord( "SUBSTRING",SUBSTRING);
addKeyWord( "TRIM", TRIM);
addKeyWord( "UCASE", UCASE);
}
//TIME and DATE FUNCTIONS
static final int CURDATE = 1200; //first time date function --> see SSDatabaseMetaData.getTimeDateFunctions
static final int CURTIME = 1201;
static final int DAYNAME = 1202;
static final int DAYOFMONTH = 1203;
static final int DAYOFWEEK = 1204;
static final int DAYOFYEAR = 1205;
static final int DAY = 1206;
static final int HOUR = 1207;
static final int MILLISECOND= 1208;
static final int MINUTE = 1209;
static final int MONTH = 1210;
static final int MONTHNAME = 1211;
static final int NOW = 1212;
static final int QUARTER = 1213;
static final int SECOND = 1214;
static final int TIMESTAMPADD=1215;
static final int TIMESTAMPDIFF=1216;
static final int WEEK = 1217;
static final int YEAR = 1218; //last time date function --> see SSDatabaseMetaData.getTimeDateFunctions
static{
addKeyWord( "CURDATE", CURDATE);
addKeyWord( "CURTIME", CURTIME);
addKeyWord( "DAYNAME", DAYNAME);
addKeyWord( "DAYOFMONTH", DAYOFMONTH);
addKeyWord( "DAYOFWEEK", DAYOFWEEK);
addKeyWord( "DAYOFYEAR", DAYOFYEAR);
addKeyWord( "DAY", DAY);
addKeyWord( "HOUR", HOUR);
addKeyWord( "MILLISECOND", MILLISECOND);
addKeyWord( "MINUTE", MINUTE);
addKeyWord( "MONTH", MONTH);
addKeyWord( "MONTHNAME", MONTHNAME);
addKeyWord( "GETDATE", NOW); //alias for MS SQL Server
addKeyWord( "NOW", NOW);
addKeyWord( "QUARTER", QUARTER);
addKeyWord( "SECOND", SECOND);
addKeyWord( "DATEADD", TIMESTAMPADD); //alias for MS SQL Server
addKeyWord( "TIMESTAMPADD", TIMESTAMPADD);
addKeyWord( "DATEDIFF", TIMESTAMPDIFF); //alias for MS SQL Server
addKeyWord( "TIMESTAMPDIFF",TIMESTAMPDIFF);
addKeyWord( "WEEK", WEEK);
addKeyWord( "YEAR", YEAR);
}
// Time intervals
static final int SQL_TSI_FRAC_SECOND= 1250;
static final int SQL_TSI_SECOND = 1251;
static final int SQL_TSI_MINUTE = 1252;
static final int SQL_TSI_HOUR = 1253;
static final int SQL_TSI_DAY = 1254;
static final int SQL_TSI_WEEK = 1255;
static final int SQL_TSI_MONTH = 1256;
static final int SQL_TSI_QUARTER = 1257;
static final int SQL_TSI_YEAR = 1258;
static{
addKeyWord( "MS", SQL_TSI_FRAC_SECOND);
addKeyWord( "SQL_TSI_FRAC_SECOND", SQL_TSI_FRAC_SECOND);
addKeyWord( "S", SQL_TSI_SECOND);
addKeyWord( "SS", SQL_TSI_SECOND);
addKeyWord( "SQL_TSI_SECOND", SQL_TSI_SECOND);
addKeyWord( "MI", SQL_TSI_MINUTE);
addKeyWord( "N", SQL_TSI_MINUTE);
addKeyWord( "SQL_TSI_MINUTE", SQL_TSI_MINUTE);
addKeyWord( "HH", SQL_TSI_HOUR);
addKeyWord( "SQL_TSI_HOUR", SQL_TSI_HOUR);
//addKeyWord( "D", SQL_TSI_DAY);
addKeyWord( "DD", SQL_TSI_DAY);
addKeyWord( "SQL_TSI_DAY", SQL_TSI_DAY);
addKeyWord( "WK", SQL_TSI_WEEK);
addKeyWord( "WW", SQL_TSI_WEEK);
addKeyWord( "SQL_TSI_WEEK", SQL_TSI_WEEK);
addKeyWord( "M", SQL_TSI_MONTH);
addKeyWord( "MM", SQL_TSI_MONTH);
addKeyWord( "SQL_TSI_MONTH", SQL_TSI_MONTH);
addKeyWord( "Q", SQL_TSI_QUARTER);
addKeyWord( "QQ", SQL_TSI_QUARTER);
addKeyWord( "SQL_TSI_QUARTER", SQL_TSI_QUARTER);
addKeyWord( "YY", SQL_TSI_YEAR);
addKeyWord( "YYYY", SQL_TSI_YEAR);
addKeyWord( "SQL_TSI_YEAR", SQL_TSI_YEAR);
}
//SYSTEM FUNCTIONS
//static final int DATABASE = 1300;
static final int IFNULL = 1301; //first system function --> see SSDatabaseMetaData.getSystemFunctions
static final int USER = 1302;
static final int CONVERT = 1303;
static final int CAST = 1304;
static final int IIF = 1305; //last system function --> see SSDatabaseMetaData.getSystemFunctions
static{
addKeyWord( "ISNULL", IFNULL); //alias for IFNULL, used from MS SQL Server with 2 parameter, from MS Access with 1 parameter
addKeyWord( "IFNULL", IFNULL);
addKeyWord( "USER", USER);
addKeyWord( "CONVERT", CONVERT);
addKeyWord( "CAST", CAST);
addKeyWord( "IIF", IIF);
}
// data types for escape function CONVERT
static final int SQL_BIGINT = 1350;
static final int SQL_BINARY = 1351;
static final int SQL_BIT = 1352;
static final int SQL_CHAR = 1353;
static final int SQL_DATE = 1354;
static final int SQL_DECIMAL = 1355;
static final int SQL_DOUBLE = 1356;
static final int SQL_FLOAT = 1357;
static final int SQL_INTEGER = 1358;
static final int SQL_LONGVARBINARY = 1359;
static final int SQL_LONGVARCHAR = 1360;
static final int SQL_REAL = 1361;
static final int SQL_SMALLINT = 1362;
static final int SQL_TIME = 1363;
static final int SQL_TIMESTAMP = 1364;
static final int SQL_TINYINT = 1365;
static final int SQL_VARBINARY = 1366;
static final int SQL_VARCHAR = 1367;
static{
addKeyWord( "SQL_BIGINT", SQL_BIGINT);
addKeyWord( "SQL_BINARY", SQL_BINARY);
addKeyWord( "SQL_BIT", SQL_BIT);
addKeyWord( "SQL_CHAR", SQL_CHAR);
addKeyWord( "SQL_DATE", SQL_DATE);
addKeyWord( "SQL_DECIMAL", SQL_DECIMAL);
addKeyWord( "SQL_DOUBLE", SQL_DOUBLE);
addKeyWord( "SQL_FLOAT", SQL_FLOAT);
addKeyWord( "SQL_INTEGER", SQL_INTEGER);
addKeyWord( "SQL_LONGVARBINARY",SQL_LONGVARBINARY);
addKeyWord( "SQL_LONGVARCHAR", SQL_LONGVARCHAR);
addKeyWord( "SQL_REAL", SQL_REAL);
addKeyWord( "SQL_SMALLINT", SQL_SMALLINT);
addKeyWord( "SQL_TIME", SQL_TIME);
addKeyWord( "SQL_TIMESTAMP", SQL_TIMESTAMP);
addKeyWord( "SQL_TINYINT", SQL_TINYINT);
addKeyWord( "SQL_VARBINARY", SQL_VARBINARY);
addKeyWord( "SQL_VARCHAR", SQL_VARCHAR);
}
//Aggregate Function
static final int COUNT = 1400;
static final int MIN = 1401;
static final int MAX = 1402;
static final int SUM = 1403;
static final int FIRST = 1404;
static final int LAST = 1405;
static final int AVG = 1406;
static{
addKeyWord( "COUNT", COUNT);
addKeyWord( "MIN", MIN);
addKeyWord( "MAX", MAX);
addKeyWord( "SUM", SUM);
addKeyWord( "FIRST", FIRST);
addKeyWord( "LAST", LAST);
addKeyWord( "AVG", AVG);
}
}
class SearchNode{
int value;
char letter;
SearchNode nextLetter; // next character of a keyword
SearchNode nextEntry; // next Entry of a character that has the same start sequence
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -