SWT LPEX
v3.0.5

com.ibm.lpex.sql
Class SqlLexer

java.lang.Object
  extended bycom.ibm.lpex.cc.LpexSqlParserTokenManager
      extended bycom.ibm.lpex.sql.SqlLexer
All Implemented Interfaces:
com.ibm.lpex.cc.LpexSqlParserConstants, LpexSubparser

public final class SqlLexer
extends com.ibm.lpex.cc.LpexSqlParserTokenManager
implements LpexSubparser

SQL lexer for various document parsers. SqlLexer is currently used by the C/C++, COBOL, Java, and PL/I document parsers.

SQL is embedded in a host-language source file. The SQL statements provide the database interface, while the host language provides the remaining support needed for the application to execute.

SQL statements placed in an application program are not host-language specific. In compiled host languages (C, COBOL, FORTRAN) the precompiler converts embedded SQL into specific language statements the host language can process. These specifc language statements are, for example, DB2 runtime API calls. In REXX (which is not precompiled), SQL statements are passed to e.g., DB2 at runtime through the SQLEXEC API.


Field Summary
 
Fields inherited from class com.ibm.lpex.cc.LpexSqlParserTokenManager
curChar, jjnewLexState, jjstrLiteralImages, lexStateNames
 
Fields inherited from interface com.ibm.lpex.cc.LpexSqlParserConstants
_CONCAT, _DEFAULT, _MINUS, ABSOLUTE, ACQUIRE, ACTION, ACTIVATE, ADD, AFTER, ALIAS, ALL, ALLOCATE, ALLOW, ALTER, ALTERIN, AND, ANY, APPEND, APPL_ID, APPL_NAME, ARE, AS, ASC, ASSERTION, ASSIGN, ASUTIME, AT, ATOMIC, ATTRIBUTE, AUDIT, AUTH_ID, AUTHORIZATION, AUTOSTART, BANG, BAR, BEFORE, BEGIN, BETWEEN, BINARY_INTEGER, BIND, BINDADD, BIT, BIT_AND, BIT_CONSTANT, BIT_LENGTH, BLOCKED, BOOLEAN, BOTH, BUFFER, BUFFERPOOL, BUFFERPOOLS, BUFFERSIZE, BY, C, CALL, CALLED, CAPTURE, CARDINALITY, CASCADE, CASCADED, CASE, CAST, CATALOG, CCSID, CHANGES, CHAR_LENGTH, CHAR_STRING, CHARACTER_LENGTH, CHECK, CHECKED, CLOSE, CLUSTER, COBOL, COLLATE, COLLATION, COLLECTION, COLLID, COLON, COLUMN, COLUMNS, COMMA, COMMENT, COMMIT, COMPACT, COMPARISONS, COMPOUND, CONFIRM, CONNECT, CONNECTION, CONNECTIONS, CONSTANT, CONSTRAINT, CONSTRAINTS, CONTAINS, CONTINUE, CONTROL, CONVERT, CONVERT_TIMESTAMP_TO_DATE, CORRESPONDING, CREATE, CREATE_NOT_FENCED, CREATEIN, CREATETAB, CROSS, CURRENT_DATE, CURRENT_SERVER, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_TIMEZONE, CURRENT_USER, CURSOR, DATA, DATABASE, DB, DB2, DB2DARI, DB2GENERAL, DB2OPTIONS, DB2SQL, DBA, DBADM, DBINFO, DBSPACE, DEADLOCKS, DEALLOCATE, DECLARE, DEFAULT, DEFERRABLE, DEFERRED, DEFINER, DEFINITION, DELETE, DELIMITED_ID, DESC, DESCRIBE, DESCRIPTOR, DETERMINISTIC, DEVICE, DIAGNOSTICS, DIGIT, DISALLOW, DISCONNECT, DISTINCT, DO, DOMAIN, DOT, DROP, DROPIN, DROPPED, DYNAMIC, EACH, EDITPROC, ELSE, ELSIF, EMBEDDED_VARIABLE_NAME, EMPTY, END, ENDEXEC, ENVIRONMENT, EOC, EOF, EQUAL, ERASE, ESCAPE, EVALUATE, EVENT, EXCEPT, EXCEPTION, EXCEPTION_INIT, EXCLUSIVE, EXECUTE, EXISTS, EXIT, EXPLAIN, EXPONENT, EXTEND, EXTENDED, EXTENTSIZE, EXTERNAL, EXTRACT, FALSE, FEDERATED, FENCED, FETCH, FIELDPROC, FILE, FINAL, FIRST, FLUSH, FOR, FOREIGN, FORMAT_ATTRIBUTE_SUBSTRING, FORMAT_AUDIT_HEADER, FOUND, FREE, FROM, FS, FULL, FUNCTION, GE, GENERAL, GENERATED, GET, GET_CURRENT_TIMESTAMP, GLOBAL, GO, GOTO, GRANT, GROUP, GT, HASHING, HAVING, HEX_CONSTANT, HEXCHAR, HIERARCHY, HOLD, HOST_ID, HOST_LABEL_ID, HOURS, IDENTIFIED, IDENTITY, IF, IMMEDIATE, IMPLICIT_SCHEMA, IN, IN_MULTI_LINE_COMMENT, IN_SINGLE_LINE_COMMENT, IN_SQL_COMMENT, INCLUDE, INCREMENTAL, INDEX, INDEX_BY, INDEXES, INDICATOR, INFIX, INHERIT, INITIALLY, INNER, INOUT, INPUT, INSENSITIVE, INSERT, INTEGRITY, INTERSECT, INTERVAL, INTO, IS, IS_TABLE_OF, ISOLATION, ITERATE, JAVA, JOIN, JOINPLUS, KEY, LABEL, LANGUAGE, LAST, LBRACKET, LE, LEADING, LEAVE, LETTER, LEVEL, LIBRARY, LIKE, LIMIT, LINK, LINKTYPE, LOCAL, LOCATOR, LOCK, LOCKMAX, LOCKSIZE, LOGGED, LONGVAR, LOOP, LPAD, LPAREN, LT, MAIN, MANAGED, MANUALSTART, MAPPING, MATCH, MAXFILES, MAXFILESIZE, MICROSECONDS, MINPCTUSED, MINUS, MINUTES, MODIFIES, MODULE, MONITOR, MONTHS, MULTI_LINE_COMMENT, MULTIPART_ID, MULTIPART_ID_WITH_ASTERISK, NAME, NAMED, NAMES, NATIONAL, NATURAL, NCHAR, NE, NEW, NEW_TABLE, NEXT, NG, NHEADER, NICKNAME, NL, NO, NODE, NODEGROUP, NODES, NODULE, NONBLOCKED, NONE, NOT, NOTFOUND, NOWAIT, NUM_CONSTANT, NUMBER, NUMPARTS, OBID, OCTET_LENGTH, OF, OFF, OID, OLD, OLD_TABLE, OLE, OLEDB, ON, ONLINE, ONLY, OPEN, OPTIMIZE, OPTION, OPTIONS, OR, ORDER, ORIGINPLUS, OTHERS, OUT, OUTER, OUTPUT, OVERHEAD, OVERLAPS, PACKAGE, PACKAGESET, PAD, PAGE, PAGES, PAGESIZE, PARALLEL, PARAMETER, PART, PARTIAL, PARTITIONING, PASSTHRU, PASSWORD, PATH, PCTFREE, PCTINDEX, PENDING, PERCENT, PERMISSION, PIPE, PLAN, PLUS, POSITION, POSITIVE, PRAGMA, PREFETCHSIZE, PREPARE, PRESERVE, PRIMARY, PRIOR, PRIQTY, PRIVATE, PRIVILEGES, PROCEDURE, PROGRAM, PROGRAM_TYPE_MAIN, PUBLIC, QUERYNO, QUERYTAG, QUESTION, RAISE, RBRACE, RBRACKET, READ, READS, RECOMMEND, RECONCILE, RECORD, RECOVERY, REF, REFERENCES, REFERENCING, REFRESH, REG_AGE, REG_CURRENT, REG_DEGREE, REG_MODE, REG_OPTIMIZATION, REG_QUERY, REG_SNAPSHOT, REG_TIMEZONE, REGULAR, REGULAR_ID, RELATIVE, RELEASE, RENAME, REPLACE, REPLICATED, REPLY, REPLY_REPEATING_GROUP, REQUEST, RESET, RESIDENT, RESIGNAL, RESOURCE, RESTORE, RESTRICT, RESULT, RETURN, RETURNS, REVERSE, REVOKE, ROLLBACK, ROW, ROW_NOT_FOUND, ROWS, RPAREN, RRN, RUN, SAVEPOINT, SCANS, SCHEDULE, SCHEMA, SCOPE, SCRATCHPAD, SCROLL, SECONDS, SECQTY, SECTION, SECURITY, SEGMENT, SELECT, SELECTION, SEMICOLON, SERVER, SESSION, SESSION_USER, SET, SETS, SHARE, SIGNAL, SIMPLE, SINGLE, SINGLE_LINE_COMMENT, SIZE, SLASH, SOME, SOURCE, SPACE, SPACES, SPECIFIC, SPECIFICATION, SQL, SQL_CHAR, SQL_I_O_CORRECT, SQL_ID, SQLCA, SQLCODE, SQLDA, SQLERROR, SQLID, SQLLETTER, SQLSTATE, SQLWARNING, STAR, START, STATE, STATEMENT, STATEMENTS, STATIC, STATISTICS, STAY, STOGROUP, STOP, STORAGE, STORPOOL, STYLE, SUB, SUBPAGES, SUBSTRING, SUMMARY, SWITCH, SYNONYM, SYSCAT, SYSFUN, SYSIBM, SYSSTAT, SYSTEM, SYSTEM_USER, TABLE, TABLES, TABLESPACE, TABLESPACES, TEMPLATE, TEMPORARY, THEN, TILDE, TIMEZONE_HOUR, TIMEZONE_MINUTE, TO, TO_CHAR, TO_NUMBER, tokenImage, TRAILING, TRANSACTION, TRANSACTIONS, TRANSFERRATE, TRANSLATION, TRIGGER, TRIM, TRUE, TYPE, TYPE_BIGINT, TYPE_BLOB, TYPE_CHAR, TYPE_CHARACTER, TYPE_CLOB, TYPE_DATALINK, TYPE_DATE, TYPE_DBCLOB, TYPE_DEC, TYPE_DECIMAL, TYPE_DOUBLE, TYPE_FLOAT, TYPE_GRAPHIC, TYPE_INT, TYPE_INTEGER, TYPE_LONG, TYPE_NCLOB, TYPE_NULL, TYPE_NUM, TYPE_NUMERIC, TYPE_NVARCHAR, TYPE_PRECISION, TYPE_REAL, TYPE_SMALLINT, TYPE_TIME, TYPE_TIMESTAMP, TYPE_TINYINT, TYPE_VARCHAR, TYPE_VARGRAPHIC, UNCHECKED, UNDER, UNION, UNIQUE, UNKNOWN, UNLINK, UPDATE, URL, USAGE, USE, USER, USING, VALIDPROC, VALUES, VARCHAR2, VARIABLE, VARIANT, VARYING, VCAT, VERSION, VIEW, VOLATILE, VOLUMES, WHEN, WHENEVER, WHERE, WHILE, WITH, WITHOUT, WLM, WORK, WRAPPER, WRITE, XOR, YEARS, YES, ZERO, ZEROS, ZONE
 
Constructor Summary
SqlLexer(LpexCharStream charStream, String hostLanguage, SqlLexerStyles styles, SqlLexerClasses classes)
          Constructor.
 
Method Summary
 void initialize()
          Initializes the SQL lexer.
 int processToken()
          Retrieves and processes the next SQL token.
 void reinitialize()
          Reinitializes the SQL lexer.
protected  void setComment(com.ibm.lpex.cc.Token t)
          Sets the style and element class(es) for comments.
 
Methods inherited from class com.ibm.lpex.cc.LpexSqlParserTokenManager
getCurLexState, getNextToken, ReInit, ReInit, SwitchTo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SqlLexer

public SqlLexer(LpexCharStream charStream,
                String hostLanguage,
                SqlLexerStyles styles,
                SqlLexerClasses classes)
Constructor.

Parameters:
charStream - LPEX input character stream
hostLanguage - host language (e.g., LpexCommonParser.LANGUAGE_JAVA)
styles - style characters to use (predefined by the host parser)
classes - element classes to use (predefined by the host parser)
Method Detail

initialize

public void initialize()
Initializes the SQL lexer.

Specified by:
initialize in interface LpexSubparser

reinitialize

public void reinitialize()
Reinitializes the SQL lexer.

Specified by:
reinitialize in interface LpexSubparser

processToken

public int processToken()
Retrieves and processes the next SQL token.

Specified by:
processToken in interface LpexSubparser
Returns:
LEXER_RC_OK, LEXER_RC_EOF [+LEXER_RC_MORE], LEXER_RC_END

setComment

protected void setComment(com.ibm.lpex.cc.Token t)
Sets the style and element class(es) for comments. Activated by \n, \r, or * / encountered while in a comment SPECIAL_TOKEN. SPECIAL_TOKEN, rather than TOKEN, is used for these, as we don't need to see the same tokens in processToken() too, nor have them recorded in the parse. Does the real work for the extended dummy in LpexSqlParser.jj.

Parameters:
t - special token

SWT LPEX
v3.0.5

(C) Copyright IBM Corporation 1998, 2005.  All Rights Reserved.