⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqltokenizer.java

📁 java 数据库 功能强大 效率高 SmallSQL Database is a free DBMS library for the Java(tm) platform. It runs on
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	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 + -