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

📄 sqltokenizer.java

📁 java 数据库 功能强大 效率高 SmallSQL Database is a free DBMS library for the Java(tm) platform. It runs on
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
			default: throw new Error("DataType:"+type);
		}
	}
	
    static SearchNode searchTree;

    static Hashtable keywords = new Hashtable(337);
    static final int VALUE      = 0;
    static final int STRING     = 3;
    static final int IDENTIFIER  = 4;
    static final int NUMBERVALUE= 5;
    static{
        // for Error messages
        keywords.put( new Integer(VALUE),       "<expression>" );
        keywords.put( new Integer(IDENTIFIER),   "<identifier>" );
        keywords.put( new Integer(NUMBERVALUE), "<number>" );
    }

    static final int PERCENT        = '%'; // 37
    static final int BIT_AND        = '&'; // 38
    static final int PARENTHESIS_L  = '('; // 40
    static final int PARENTHESIS_R  = ')'; // 41
    static final int ASTERISK       = '*'; // 42
    static final int PLUS           = '+'; // 43
    static final int COMMA          = ','; // 44
    static final int MINUS          = '-'; // 45
    static final int POINT          = '.'; // 46
    static final int SLACH          = '/'; // 47
    static final int LESSER         = '<'; // 60
    static final int EQUALS         = '='; // 61
    static final int GREATER        = '>'; // 62
    static final int QUESTION       = '?'; // 63
    static final int BIT_XOR        = '^'; // 94
    static final int ESCAPE_L       = '{'; // 123
    static final int BIT_OR         = '|'; // 124
    static final int ESCAPE_R       = '}'; // 125
    static final int TILDE          = '~'; // 126

    static final int LESSER_EQU     = 100 + LESSER; // <=
    static final int UNEQUALS       = 100 + EQUALS;  // <>
    static final int GREATER_EQU    = 100 + GREATER; // >=

	static{
		// f黵 Fehlermeldungen
		keywords.put( new Integer(LESSER_EQU),	"<=" );
		keywords.put( new Integer(UNEQUALS),   	"<>" );
		keywords.put( new Integer(GREATER_EQU), ">=" );
	}
    static final int SELECT     = 200;
    static final int DELETE     = 201;
    //static final int INSERT     = 202;
    static final int INTO       = 203;
    static final int UPDATE     = 204;
    static final int CREATE     = 205;
    static final int DROP       = 206;
    static final int ALTER      = 207;
    static final int SET        = 208;
    static final int EXECUTE    = 209;
    static final int FROM       = 210;
    static final int WHERE      = 211;
    static final int GROUP      = 212;
    static final int BY         = 213;
    static final int HAVING     = 214;
    static final int ORDER      = 215;
	static final int ASC        = 216;
	static final int DESC       = 217;
    static final int VALUES     = 218;
    static final int AS         = 219;
    static final int DEFAULT    = 220;
    static final int IDENTITY   = 221;
    static final int INNER      = 222;
    static final int JOIN       = 223;
    static final int ON         = 224;
    static final int OUTER      = 225;
    static final int FULL       = 226;
    static final int CROSS      = 227;
    static final int USE		= 228;
	static final int TOP		= 229;
	static final int ADD		= 230;

    static final int DATABASE   = 235;
    static final int TABLE      = 236;
    static final int VIEW       = 237;
    static final int INDEX      = 238;
    static final int PROCEDURE  = 239;

    static final int TRANSACTION= 240;
    static final int ISOLATION  = 241;
    static final int LEVEL      = 242;
    static final int READ       = 243;
    static final int COMMITTED  = 244;
    static final int UNCOMMITTED= 245;
    static final int REPEATABLE = 246;
    static final int SERIALIZABLE= 247;
    
    static final int CONSTRAINT = 250;
	static final int PRIMARY 	= 251;
	static final int FOREIGN 	= 252;
	static final int KEY 		= 253;
	static final int UNIQUE 	= 254;
	static final int CLUSTERED  = 255;
	static final int NONCLUSTERED=256;
	static final int REFERENCES = 257;

	static final int UNION 		= 260;
	static final int ALL 		= 261;
	static final int DISTINCT   = 262;
	static final int CASE 		= 263;
	static final int WHEN 		= 264;
	static final int THEN 		= 265;
	static final int ELSE 		= 266;
	static final int END 		= 267;
	static final int SWITCH 	= 268;
	
	static final String DESC_STR   = "DESC";
    static{
        addKeyWord( "SELECT",   SELECT);
        addKeyWord( "DELETE",   DELETE);
//        addKeyWord( "INSERT",   INSERT);
        addKeyWord( "INTO",     INTO);
        addKeyWord( "UPDATE",   UPDATE);
        addKeyWord( "CREATE",   CREATE);
        addKeyWord( "DROP",     DROP);
        addKeyWord( "ALTER",    ALTER);
        addKeyWord( "SET",      SET);
        addKeyWord( "EXEC",     EXECUTE); // alias for EXECUTE; alias must set first so that key is in the hashtable and not the alias
        addKeyWord( "EXECUTE",  EXECUTE);
        addKeyWord( "FROM",     FROM);
        addKeyWord( "WHERE",    WHERE);
        addKeyWord( "GROUP",    GROUP);
        addKeyWord( "BY",       BY);
        addKeyWord( "HAVING",   HAVING);
        addKeyWord( "ORDER",    ORDER);
		addKeyWord( "ASC",      ASC);
		addKeyWord( DESC_STR,   DESC);
        addKeyWord( "VALUES",   VALUES);
        addKeyWord( "AS",       AS);
        addKeyWord( "DEFAULT",  DEFAULT);
        addKeyWord( "IDENTITY", IDENTITY);
        addKeyWord( "INNER",    INNER);
        addKeyWord( "JOIN",     JOIN);
        addKeyWord( "ON",       ON);
        addKeyWord( "OUTER",    OUTER);
        addKeyWord( "FULL",     FULL);
        addKeyWord( "CROSS",    CROSS);
		addKeyWord( "USE",      USE);
		addKeyWord( "TOP",      TOP);
		addKeyWord( "ADD",      ADD);

        addKeyWord( "DATABASE", DATABASE);
        addKeyWord( "TABLE",    TABLE);
        addKeyWord( "VIEW",     VIEW);
        addKeyWord( "INDEX",    INDEX);
        addKeyWord( "PROCEDURE",PROCEDURE);

        addKeyWord( "TRANSACTION",  TRANSACTION);
        addKeyWord( "ISOLATION",    ISOLATION);
        addKeyWord( "LEVEL",        LEVEL);
        addKeyWord( "READ",         READ);
        addKeyWord( "COMMITTED",    COMMITTED);
        addKeyWord( "UNCOMMITTED",  UNCOMMITTED);
        addKeyWord( "REPEATABLE",   REPEATABLE);
        addKeyWord( "SERIALIZABLE", SERIALIZABLE);
        
		addKeyWord( "CONSTRAINT", 	CONSTRAINT);
		addKeyWord( "PRIMARY",    	PRIMARY);
		addKeyWord( "FOREIGN",     	FOREIGN);
		addKeyWord( "KEY",    		KEY);
		addKeyWord( "UNIQUE",		UNIQUE);
		addKeyWord( "CLUSTERED",  	CLUSTERED);
		addKeyWord( "NONCLUSTERED", NONCLUSTERED);
		addKeyWord( "REFERENCES",   REFERENCES);

		addKeyWord( "UNION", 		UNION);
		addKeyWord( "ALL",   		ALL);
		addKeyWord( "DISTINCT",   	DISTINCT);
		addKeyWord( "CASE",   		CASE);
		addKeyWord( "WHEN",   		WHEN);
		addKeyWord( "THEN",   		THEN);
		addKeyWord( "ELSE",   		ELSE);
		addKeyWord( "END",   		END);
		addKeyWord( "SWITCH", 		SWITCH);
    }


    //data types
    static final int BIT            = 300;
    static final int BOOLEAN        = 301;
    static final int BINARY         = 310;
    static final int VARBINARY      = 311;
	static final int RAW      		= 312;
    static final int LONGVARBINARY  = 313;
    static final int BLOB           = 316;
    static final int TINYINT        = 321;
    static final int SMALLINT       = 322;
    static final int INT            = 323;
    static final int COUNTER        = 324; //alias for INT IDENTITY, is used from MS ACCESS
    static final int BIGINT         = 325;
    static final int SMALLMONEY     = 330;
    static final int MONEY          = 331;
    static final int DECIMAL        = 332;
    static final int NUMERIC        = 333;
    static final int REAL           = 336;
    static final int FLOAT          = 337;
    static final int DOUBLE         = 338;
    static final int DATE           = 340;
    static final int TIME           = 341;
    static final int TIMESTAMP      = 342;
    static final int SMALLDATETIME  = 343;
    static final int CHAR           = 350;
    static final int NCHAR          = 352;
    static final int VARCHAR        = 353;
    static final int NVARCHAR       = 355;
	static final int SYSNAME        = 357;
    static final int LONGVARCHAR    = 359;
    static final int LONGNVARCHAR   = 360;
    static final int LONG           = 361;
    static final int CLOB           = 362;
    static final int NCLOB          = 363;
    static final int UNIQUEIDENTIFIER= 370;
    static final int JAVA_OBJECT    = 371;

    static{
        addKeyWord( "BIT",          BIT);
        addKeyWord( "BOOLEAN",      BOOLEAN);
        addKeyWord( "BINARY",       BINARY);
        addKeyWord( "VARBINARY",    VARBINARY);
		addKeyWord( "RAW",          RAW); // alias for Oracle RAW and LONG RAW
		addKeyWord( "IMAGE",        LONGVARBINARY); // alias for MS SQL Server data type IMAGE
        addKeyWord( "LONGVARBINARY",LONGVARBINARY);
        addKeyWord( "BLOB",         BLOB);
        addKeyWord( "BYTE",         TINYINT);
        addKeyWord( "TINYINT",      TINYINT);
        addKeyWord( "SMALLINT",     SMALLINT);
		addKeyWord( "INTEGER",      INT);
        addKeyWord( "INT",          INT);
        addKeyWord( "SERIAL",       COUNTER); //alias for MySQL and PostgreSQL
        addKeyWord( "COUNTER",      COUNTER);
        addKeyWord( "BIGINT",       BIGINT);
        addKeyWord( "SMALLMONEY",   SMALLMONEY);
        addKeyWord( "MONEY",        MONEY);
		addKeyWord( "NUMBER",       DECIMAL);
		addKeyWord( "VARNUM",       DECIMAL);
		addKeyWord( "DECIMAL",      DECIMAL);
        addKeyWord( "NUMERIC",      NUMERIC);
        addKeyWord( "REAL",         REAL);
        addKeyWord( "FLOAT",        FLOAT);
        addKeyWord( "DOUBLE",       DOUBLE);
        addKeyWord( "DATE",         DATE);
        addKeyWord( "TIME",         TIME);
        addKeyWord( "DATETIME",     TIMESTAMP); // alias for MS SQL Server data type DATETIME
        addKeyWord( "TIMESTAMP",    TIMESTAMP);
        addKeyWord( "SMALLDATETIME",SMALLDATETIME);
        addKeyWord( "CHARACTER",    CHAR); // alias for CHAR
        addKeyWord( "CHAR",         CHAR);
        addKeyWord( "NCHAR",        NCHAR);
        addKeyWord( "VARCHAR2",     VARCHAR); // alias for Oracle VARCHAR2
        addKeyWord( "VARCHAR",      VARCHAR);
        addKeyWord( "NVARCHAR2",    NVARCHAR); // alias for Oracle VARCHAR2
        addKeyWord( "NVARCHAR",     NVARCHAR);
		addKeyWord( "SYSNAME",      SYSNAME);
        addKeyWord( "TEXT",         LONGVARCHAR);
        addKeyWord( "LONGVARCHAR",  LONGVARCHAR);
        addKeyWord( "NTEXT",        LONGNVARCHAR);
        addKeyWord( "LONGNVARCHAR", LONGNVARCHAR);
        addKeyWord( "LONG",         LONG); // alias for Oracle LONG and LONG RAW
        addKeyWord( "CLOB",         CLOB);
        addKeyWord( "NCLOB",        NCLOB);
        addKeyWord( "UNIQUEIDENTIFIER",UNIQUEIDENTIFIER);
        addKeyWord( "SQL_VARIANT",  JAVA_OBJECT); // alias for MS SQL Server data type SQL_VARIANT
        addKeyWord( "JAVA_OBJECT",  JAVA_OBJECT);
    }

    //escape commands
    static final int D      = 400;
    static final int T      = 401;
    static final int TS     = 402;
    static final int FN     = 403;
    static final int CALL   = 404;
    static final int OJ     = 405;
    static{
        addKeyWord( "D",    D);
        addKeyWord( "T",    T);
        addKeyWord( "TS",   TS);
        addKeyWord( "FN",   FN);
        addKeyWord( "CALL", CALL);
        addKeyWord( "OJ", OJ);
    }


    static final int OR     = 500;
    static final int AND    = 501;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -