LPEX
4.4.0

com.ibm.lpex.sql
Class SqlParser

java.lang.Object
  extended by com.ibm.lpex.core.LpexCommonParser
      extended by com.ibm.lpex.sql.SqlParser
All Implemented Interfaces:
LpexConstants, LpexParser

public class SqlParser
extends LpexCommonParser

Document parser for SQL.

Editor action added by this document parser:

Editor action modified by this document parser:

Parser property handled directly by this parser:


Field Summary
 
Fields inherited from class com.ibm.lpex.core.LpexCommonParser
ATTRIBUTES_COMMENT, ATTRIBUTES_COMMENT_KEYWORD, ATTRIBUTES_COMMENT1, ATTRIBUTES_DEFAULT, ATTRIBUTES_DIRECTIVE, ATTRIBUTES_ERROR, ATTRIBUTES_ERROR1, ATTRIBUTES_KEYWORD, ATTRIBUTES_KEYWORD1, ATTRIBUTES_LIBRARY, ATTRIBUTES_NONSOURCE, ATTRIBUTES_NUMERAL, ATTRIBUTES_STRING, ATTRIBUTES_STRING1, BACKGROUND_COLOR, CLASS_MESSAGE, LANGUAGE_CCPP, LANGUAGE_CICS, LANGUAGE_CL, LANGUAGE_COBOL, LANGUAGE_COBOL400, LANGUAGE_COBOLILE, LANGUAGE_DDS, LANGUAGE_DLI, LANGUAGE_FORTRAN, LANGUAGE_HLASM, LANGUAGE_HTML, LANGUAGE_JAVA, LANGUAGE_JCL, LANGUAGE_LISP, LANGUAGE_PERL, LANGUAGE_PLI, LANGUAGE_REXX, LANGUAGE_RPG, LANGUAGE_RPGLEFIXED, LANGUAGE_RPGLEFREE, LANGUAGE_SABRETALK, LANGUAGE_SQL, LANGUAGE_XMI, LANGUAGE_XML, LANGUAGE_XSL, LEXER_RC_END, LEXER_RC_EOF, LEXER_RC_MORE, LEXER_RC_OK, POPUP_END, POPUP_FILTERVIEW, POPUP_SOURCE, POPUP_TOP, PROTOKEY_EMPTY, STYLE_MESSAGE, STYLE_NAME, view
 
Fields inherited from interface com.ibm.lpex.core.LpexConstants
HELP_COMMAND_MAP, LPEX_VERSION, MSG_POPUP_COMMENT, MSG_POPUP_ERRORS, MSG_POPUP_EXCLUDESELECTION, MSG_POPUP_FILTERVIEWMENU, MSG_POPUP_INSERTMENU, MSG_POPUP_SELECTEDMENU, MSG_POPUP_SHOWALL, MSG_POPUP_SOURCEMENU, MSG_POPUP_TASKS, MSG_POPUP_UNCOMMENT, PARSE_PENDING_CHANGE_MASK, PARSE_PENDING_INSERT_MASK, PARSE_PENDING_NEXT_DELETED_MASK, PARSE_PENDING_NEXT_SHOW_DELETED_MASK, PARSE_PENDING_PREV_DELETED_MASK, PARSE_PENDING_PREV_SHOW_DELETED_MASK, PARSE_PENDING_UNDO_MASK, PLATFORM_AWT, PLATFORM_SWT, PLATFORM_SWT_KEY, SHOW_ALL, SHOW_DOCUMENT, SHOW_NONE, SHOW_VIEW, STATUS_FIELDS_NOINSERT, STATUS_FIELDS_TRUNCATE, STATUS_FILE_ERRORREADING, STATUS_FILE_INCORRECTENCODING, STATUS_FILE_NOTFOUND, STATUS_FINDTEXT_INVALIDPATTERN, STATUS_FINDTEXT_NOTFOUND, STATUS_FINDTEXT_ONLYOCCURRENCE, STATUS_FINDTEXT_READONLY, STATUS_FINDTEXT_WRAPPED, STATUS_LOCATE_NOSEQUENCETEXT, STATUS_LOCATE_NOTFOUND, STATUS_LOCATE_WRAPPED, STATUS_SAVE_CANCELLED, STATUS_SAVE_FAILED, STATUS_TEXTLIMIT_ENFORCED, STATUS_TEXTLIMIT_OVERFLOW, STATUS_UNDO_NOTHINGUNDONE
 
Constructor Summary
SqlParser(LpexView lpexView)
          Constructor.
 
Method Summary
protected  SqlLexer createSqlLexer(LpexCharStream charStream, String hostLanguage, SqlLexerStyles styles, SqlLexerClasses classes)
          Creates the SqlLexer to be used by this parser.
 String getCommentStyleCharacters()
          Returns the style characters used for styling comments ("c$").
 String getLanguage()
          Returns "SQL", the language supported by this parser.
protected  String getPopupItems(int popupLocation)
          Returns parser's contribution to the popup.
 ResourceBundle getProfile()
          Returns this parser's profile resource bundle.
protected  void initParser()
          Initializes the parser.
 boolean isTokenDelimiter(char ch)
          Returns whether the specified character is a token delimiter.
 void parseAll()
          Total parse of the entire document.
 void parseElement(int element)
          Incremental parse.
protected  void propertySet(String key)
          Listens to changes to the taskTags parser property in this view.
 void setStyleAttributes()
          Defines this parser's style attributes.
 
Methods inherited from class com.ibm.lpex.core.LpexCommonParser
addDocumentMessage, addMessage, addMessage, addMessage, blockMarkWord, copyDocumentMessages, cursorIndent, defineFilterAction, defineFilterAction, expandProtoKeyword, getInstallStyleAttributes, getLanguage, getLshToken, getProperty, getStyleName, getStyles, getTextIndent, getToken, getTokenLocation, indentText, indentText, indentText, isDebuggable, isPrimaryParser, isWordCharacter, lineComment, lpexView, matchToken, newLine, openLine, parse, removeDocumentMessages, removeMessages, removeMessages, resetParser, setProperty, setStyle, splitLine, styleString, terminateParser, tokenBegin, tokenEnd, totalParse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SqlParser

public SqlParser(LpexView lpexView)
Constructor.

Parameters:
lpexView - the LPEX document view associated with this parser
Method Detail

initParser

protected void initParser()
Initializes the parser. Sets up the parser for the associated document view: sets style attributes, registers element classes, creates editor actions, redefines the popup, etc. for the language-sensitive edit features supported. Instantiates the SqlLexer used by the parser.

Overrides:
initParser in class LpexCommonParser
See Also:
Life cycle

createSqlLexer

protected SqlLexer createSqlLexer(LpexCharStream charStream,
                                  String hostLanguage,
                                  SqlLexerStyles styles,
                                  SqlLexerClasses classes)
Creates the SqlLexer to be used by this parser.


parseAll

public void parseAll()
Total parse of the entire document. Done initially, after a document has been loaded in the editor, after an updateProfile command, and after a change to the taskTags parser property.

Specified by:
parseAll in class LpexCommonParser
See Also:
Total and incremental parse

parseElement

public void parseElement(int element)
Incremental parse.

Specified by:
parseElement in class LpexCommonParser
Parameters:
element - an element affected by a committed change in this view
See Also:
LpexView.parsePending(int), LpexView.elementParsed(int), Total and incremental parse

getProfile

public ResourceBundle getProfile()
Returns this parser's profile resource bundle.

Overrides:
getProfile in class LpexCommonParser
See Also:
LpexCommonParser.getProperty(java.lang.String), Parser properties

getLanguage

public String getLanguage()
Returns "SQL", the language supported by this parser.

Overrides:
getLanguage in class LpexCommonParser
See Also:
LpexCommonParser.LANGUAGE_SQL

propertySet

protected void propertySet(String key)
Listens to changes to the taskTags parser property in this view.

Overrides:
propertySet in class LpexCommonParser
Parameters:
key - base name of the parser property that was set, for example "autoIndent"
See Also:
LpexCommonParser.setProperty(String,String), LpexCommonParser.getProperty(java.lang.String), Parser properties

getPopupItems

protected String getPopupItems(int popupLocation)
Returns parser's contribution to the popup. This parser contributes to the Filter view submenu (Tasks).

Overrides:
getPopupItems in class LpexCommonParser
Parameters:
popupLocation - the location on the pop-up menu of the items requested, one of:
LpexCommonParser.POPUP_TOP, LpexCommonParser.POPUP_FILTERVIEW, LpexCommonParser.POPUP_SOURCE, LpexCommonParser.POPUP_END
Returns:
this parser's contribution to the pop-up menu, or
null if none
See Also:
LpexCommonParser.defineFilterAction(java.lang.String, java.lang.String)

setStyleAttributes

public void setStyleAttributes()
Defines this parser's style attributes. The following style characters are set: '_' (layout blanks), 'i' (identifier), 'p' (punctuation), 'o' (operator), 'c' (comment), '$' (comment task tag), 'e' (error), 'k' (keyword), 'n' (constant), 'q' (string literal), 'f' (built-in function).


getCommentStyleCharacters

public String getCommentStyleCharacters()
Returns the style characters used for styling comments ("c$").

Overrides:
getCommentStyleCharacters in class LpexCommonParser

isTokenDelimiter

public boolean isTokenDelimiter(char ch)
Returns whether the specified character is a token delimiter.

Overrides:
isTokenDelimiter in class LpexCommonParser
Parameters:
ch - character queried, for example ')'
See Also:
LpexCommonParser.getToken(com.ibm.lpex.core.LpexDocumentLocation), LpexCommonParser.tokenBegin(com.ibm.lpex.core.LpexDocumentLocation), LpexCommonParser.tokenEnd(com.ibm.lpex.core.LpexDocumentLocation)

LPEX
4.4.0

Copyright � 2016 IBM Corp. All Rights Reserved.

Note: This documentation is for part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.