Rational Developer for Power Systems Software
V7.6

com.ibm.etools.iseries.parsers
Class ISeriesEditorRPGILETokenizer

java.lang.Object
  extended by com.ibm.etools.iseries.parsers.ISeriesEditorRPGILETokenizer
All Implemented Interfaces:
IISeriesEditorConstantsColors, IISeriesEditorConstantsRPG, IISeriesEditorConstantsRPGILE

public class ISeriesEditorRPGILETokenizer
extends Object
implements IISeriesEditorConstantsRPGILE


Nested Class Summary
 class ISeriesEditorRPGILETokenizer.CFOpcode
           
 class ISeriesEditorRPGILETokenizer.TokenizeResult
           
 
Field Summary
protected  boolean _bIdCont
           
 boolean _bInQuote
           
protected  char _cDivider
           
protected static ISeriesEditorRPGILETokenizer.CFOpcode[] _CFOpcodes
           
protected  ISeriesEditorRPGILEParser _parser
           
protected static String[] _straMacroFonts
           
protected  LpexView _view
           
static String copyright
           
 
Fields inherited from interface com.ibm.etools.iseries.editor.IISeriesEditorConstantsRPGILE
_straControlWords, _straDataWords, _straMacroWords, _straRPGFonts, _straXF2_opcodes, _straXF2_possible_opcodes, CHANGE_CFREE_DIRECTIVE_ADDED, CHANGE_CFREE_DIRECTIVE_REMOVED, CHANGE_CFREESQL_END_ADDED, CHANGE_CFREESQL_START_ADDED, CHANGE_CFREESQL_START_END_ADDED, CHANGE_CFREESQL_START_REMOVED, CHANGE_ENDCFREE_DIRECTIVE_ADDED, CHANGE_ENDCFREE_DIRECTIVE_REMOVED, CHANGE_FIXFORM_SQL_END_ADDED, CHANGE_FIXFORM_SQL_END_REMOVED, CHANGE_FIXFORM_SQL_START_ADDED, CHANGE_FIXFORM_SQL_START_REMOVED, CHANGE_NONE, CLASS_BWDLINK, CLASS_CFREE, CLASS_CFREE_DIRECTIVE, CLASS_CFREE_END, CLASS_CFREE_SQL, CLASS_CFREE_SQLEND, CLASS_CFREE_SQLEND_REAL, CLASS_CFREE_SQLSTART, CLASS_COMMENT, CLASS_CONTROL, CLASS_ENDCFREE_DIRECTIVE, CLASS_ERROR, CLASS_FIXFORM_SQL_END, CLASS_FIXFORM_SQL_START, CLASS_FWDLINK, CLASS_PROCEDURE, CLASS_SPACE, CLASS_SQL, CLASS_SUBROUTINE, CLEVEL_LEN, CLEVEL_POS, COMMENT_POS, CONDIND_LEN, CONDIND_POS, CONTINUATION_INDENT, DECPOS_LEN, DECPOS_POS, DIRECTIVE_POS, EOLCOMMENT_POS, EXTFACTOR2_LEN, EXTFACTOR2_POS, FACTOR1_LEN, FACTOR1_POS, FACTOR2_LEN, FACTOR2_POS, FIELDDEF_LEN, FIELDDEF_POS, FIELDLEN_LEN, FIELDLEN_POS, FONT_COMMENT, FONT_DEFAULT, FREE_LEN, FREE_POS, IND_LEN, INDENT_LIMIT, LENGTH_C_OPCODE, MAX_NEST, NUM_OF_OPCODES, OPCODE_LEN, OPCODE_POS, PAGE_INDEX_ILE_C_Calculation, PAGE_INDEX_ILE_C_Calculation_Extended_Factor_2, PAGE_INDEX_ILE_C_Calculation_Extended_Factor_2_Continuation, PAGE_INDEX_ILE_C_Calculation_Free_Form, PAGE_INDEX_ILE_Comment, PAGE_INDEX_ILE_D_Definition, PAGE_INDEX_ILE_D_Definition_Continuation, PAGE_INDEX_ILE_D_Definition_Continued_Name_Line, PAGE_INDEX_ILE_F_File_Description, PAGE_INDEX_ILE_F_File_Description_Continuation, PAGE_INDEX_ILE_Full_Line, PAGE_INDEX_ILE_H_Control, PAGE_INDEX_ILE_I_Input_Field_Description, PAGE_INDEX_ILE_I_Input_Field_Description_Externally_Described_File, PAGE_INDEX_ILE_I_Input_Record_Identification, PAGE_INDEX_ILE_I_Input_Record_Identification_Externally_Described_File, PAGE_INDEX_ILE_I_Input_Record_Identification_Logical_Relationship, PAGE_INDEX_ILE_O_Output_Field_Description, PAGE_INDEX_ILE_O_Output_Field_Description_Continuation, PAGE_INDEX_ILE_O_Output_Record_Identification, PAGE_INDEX_ILE_O_Output_Record_Identification_AND_OR, PAGE_INDEX_ILE_O_Output_to_Disk, PAGE_INDEX_ILE_P_Procedure, PAGE_INDEX_ILE_P_Procedure_Continued_Name_Line, PREF_COLUMN_CFIXED_MAX, PREF_COLUMN_CFREE_MAX, PREF_COLUMN_CFREE_MIN, PREF_COLUMN_CFREE_START, PROMPT_C, PROMPT_CF, PROMPT_CFE, PROMPT_CFS, PROMPT_CFSQL, PROMPT_CM, PROMPT_D, PROMPT_DATA, PROMPT_DC, PROMPT_DX, PROMPT_F, PROMPT_FC, PROMPT_H, PROMPT_IF, PROMPT_IFX, PROMPT_IR, PROMPT_IR2, PROMPT_IRX, PROMPT_LAST, PROMPT_MACRO, PROMPT_NONE, PROMPT_OD, PROMPT_OF, PROMPT_OFC, PROMPT_OR, PROMPT_OR2, PROMPT_P, PROMPT_PC, PROMPT_SPACE, PROMPT_SQL, PROMPT_XF2, PROMPT_XF2C, RESINDEQ_POS, RESINDER_POS, RESINDNR_POS, RESINDS_LEN, RESINDS_POS, RESULTFIELD_LEN, RESULTFIELD_POS, RPGSPEC_C, RPGSPEC_CF, RPGSPEC_D, RPGSPEC_E, RPGSPEC_F, RPGSPEC_H, RPGSPEC_I, RPGSPEC_L, RPGSPEC_O, RPGSPEC_P, RPGSPEC_U, SIGNIFICANT_LEN, SLASHSLASHEOL_POS, SPECTYPE_POS, SRCRECLEN, STRING_HELP_DOC_PLUGIN_ID, STRING_HELP_TABLE_FILENAME, STRING_HELP_TABLE_PLUGIN_ID, STRING_MESSAGE_HELP_DOC_PLUGIN_ID, STRING_MESSAGE_HELP_TABLE_FILENAME, STRING_MESSAGE_HELP_TABLE_PLUGIN_ID, XACQ, XADD, XADDDUR, XALLOC, XANDEQ, XANDGE, XANDGT, XANDLE, XANDLT, XANDNE, XBEGSR, XBITOFF, XBITON, XBLANK, XCAB, XCABEQ, XCABGE, XCABGT, XCABLE, XCABLT, XCABNE, XCALL, XCALLB, XCALLP, XCAS, XCASEQ, XCASGE, XCASGT, XCASLE, XCASLT, XCASNE, XCAT, XCHAIN, XCHECK, XCHECKR, XCLEAR, XCLOSE, XCOMMIT, XCOMP, XDEALLOC, XDEFINE, XDELETE, XDIV, XDO, XDOU, XDOUEQ, XDOUGE, XDOUGT, XDOULE, XDOULT, XDOUNE, XDOW, XDOWEQ, XDOWGE, XDOWGT, XDOWLE, XDOWLT, XDOWNE, XDSPLY, XDUMP, XELSE, XELSEIF, XEND, XENDCS, XENDDO, XENDFOR, XENDIF, XENDMON, XENDSL, XENDSR, XEVAL, XEVAL_CORR, XEVALR, XEXCEPT, XEXFMT, XEXSR, XEXTRCT, XFEOD, XFOR, XFORCE, XGOTO, XIF, XIFEQ, XIFGE, XIFGT, XIFLE, XIFLT, XIFNE, XIN, XITER, XKFLD, XKLIST, XLEAVE, XLEAVESR, XLOOKUP, XMHHZO, XMHLZO, XMLHZO, XMLLZO, XMONITOR, XMOVE, XMOVEA, XMOVEL, XMULT, XMVR, XNEXT, XOCCUR, XON_ERROR, XOPEN, XOREQ, XORGE, XORGT, XORLE, XORLT, XORNE, XOTHER, XOUT, XPARM, XPLIST, XPOST, XREAD, XREADC, XREADE, XREADP, XREADPE, XREALLOC, XREL, XRESET, XRETURN, XROLBK, XSCAN, XSELECT, XSETGT, XSETLL, XSETOFF, XSETON, XSHTDN, XSORTA, XSQRT, XSUB, XSUBDUR, XSUBST, XTAG, XTEST, XTESTB, XTESTN, XTESTZ, XTIME, XUNLOCK, XUPDATE, XWHEN, XWHENEQ, XWHENGE, XWHENGT, XWHENLE, XWHENLT, XWHENNE, XWRITE, XXFOOT, XXLATE, XXML_INTO, XXML_SAX, XZ_ADD, XZ_SUB
 
Fields inherited from interface com.ibm.etools.iseries.editor.IISeriesEditorConstantsRPG
_straSQLWords, _straSQLWordsWithComment, CMD_SETFORMATLINETEXT, CMD_SETTABS, COLUMN_C_FREE, COLUMN_C_OPCODE, COLUMN_COMMENT, COLUMN_FACTOR1, COLUMN_FACTOR2, COLUMN_KEYWORDS, COLUMN_PROC_NAME_BEGIN, COLUMN_PROC_NAME_END, COLUMN_PROC_SPEC, COLUMN_SPEC, FIELD_FACTOR1, FIELD_FACTOR2, FIELD_FROM, FIELD_OPCODE, FIELD_TOLENGTH, OPM_COLUMN_FACTOR1
 
Fields inherited from interface com.ibm.etools.iseries.edit.IISeriesEditorConstantsColors
COLOR_BLACK_WHITE, COLOR_BLUE_WHITE, COLOR_BRIGHTBLUE_WHITE, COLOR_BRIGHTGREEN_WHITE, COLOR_BRIGHTGREY_WHITE, COLOR_BRIGHTPINK_WHITE, COLOR_BRIGHTRED_WHITE, COLOR_BRIGHTRED_WHITE_SQUIGGLE, COLOR_BROWN_WHITE, COLOR_CYAN_WHITE, COLOR_DARK_BROWN_WHITE, COLOR_ERROR_HIGHLIGHT, COLOR_GREEN_WHITE, COLOR_GREY_WHITE, COLOR_HIGHLIGHT, COLOR_MAGENTA_WHITE, COLOR_PINK_WHITE, COLOR_RED_WHITE, COLOR_WHITE_BRIGHTRED
 
Constructor Summary
ISeriesEditorRPGILETokenizer(LpexView view, ISeriesEditorRPGILEParser parser)
          Constructor
 
Method Summary
protected  void colourNormalElement(int iElement)
          Colours a line with or without comment using the default colours.
protected  void colourNormalLine(int iLine)
          Deprecated.  
protected  int completeLine(int iOpcodeIndex, String strLine, StringBuffer strbStyle, int iIndex, int iProcessed, int iParametersOnNextLine, int iKeywords)
          Return a string that specifies how to colour the parameters and comments on a line.
protected  int countParameters(String strLine, int iIndex)
          This procedure will count the number of parameters on the current line.
 int getOpcodeIndex(String strLine)
          The index of the opcode in the CFOpcode array is returned.
protected  String getOpcodeStyle(int iOpcode, String strLine)
          Return a string that tells the program how to colour the opcode.
protected  char getParameterColour(int iOpcodeIndex, int i)
          Determines the colour of the current parameter.
protected  int getParameterCount(int iElement, String strElement)
          Count the parameters top-down so that quoted strings that span multiple lines are counted correctly as one parameter.
protected  ISeriesEditorRPGILETokenizer.TokenizeResult tokenizeCF(int iElement, String strElement, int iNumberOfParametersOnNextElement, int iSpecType)
          Recursively tokenize a CF spec line.
 void tokenizeElement(int iElement, int iSpecType)
          Port of evfritok.c, TokenizeRPGLine
 void tokenizeLine(int iLine, int iSpecType)
          Deprecated.  
protected  int traverseUp(int iElement)
          Returns the closest line number of a line at or above the given line that contains either an opcode, semi-colon, or start boundary.
 void upperCaseElement(int iElement, int iSpecType)
          Port of evfritok.c, UpperCaseStatement
 String upperCaseLine(String strLine, int iSpecType)
          Port of evfritok.c, UpperCaseLine
protected  void upperCaseStatement(int iLine, int iSpecType)
          Deprecated.  
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

copyright

public static final String copyright
See Also:
Constant Field Values

_cDivider

protected char _cDivider

_bIdCont

protected boolean _bIdCont

_bInQuote

public boolean _bInQuote

_view

protected LpexView _view

_parser

protected ISeriesEditorRPGILEParser _parser

_CFOpcodes

protected static ISeriesEditorRPGILETokenizer.CFOpcode[] _CFOpcodes

_straMacroFonts

protected static final String[] _straMacroFonts
Constructor Detail

ISeriesEditorRPGILETokenizer

public ISeriesEditorRPGILETokenizer(LpexView view,
                                    ISeriesEditorRPGILEParser parser)
Constructor

Method Detail

colourNormalLine

protected void colourNormalLine(int iLine)
Deprecated. 

Colours a line with or without comment using the default colours. Port of evfritok.c, normalLine.


colourNormalElement

protected void colourNormalElement(int iElement)
Colours a line with or without comment using the default colours. Port of evfritok.c, normalLine.


completeLine

protected int completeLine(int iOpcodeIndex,
                           String strLine,
                           StringBuffer strbStyle,
                           int iIndex,
                           int iProcessed,
                           int iParametersOnNextLine,
                           int iKeywords)
Return a string that specifies how to colour the parameters and comments on a line. A null terminated string is assumed. Port of evfritok.c, completeLine


countParameters

protected int countParameters(String strLine,
                              int iIndex)
This procedure will count the number of parameters on the current line. Also, the global variables idCont and divider are updated here, so after this runs we will know if the line continues (identifier and/or literal) If the line does continue, the return value is one less than the number of tokens on the line, because the continuing token is not counted until it is completed on the next line This function assumest that the input line not have any leading spaces and the input line is null terminated. Ported from evfritok.c, countParams


getOpcodeIndex

public int getOpcodeIndex(String strLine)
The index of the opcode in the CFOpcode array is returned. If not found, -1 is returned. It is assumed that the entire line is given as input, and the string is null terminated. Port of evfritok.c, getOpIndex.


getOpcodeStyle

protected String getOpcodeStyle(int iOpcode,
                                String strLine)
Return a string that tells the program how to colour the opcode. It is assumed that the entire line is given as input. This is a port of evfritok.c colourOpcode


getParameterColour

protected char getParameterColour(int iOpcodeIndex,
                                  int i)
Determines the colour of the current parameter. Port of evfritok.c, matchParam


getParameterCount

protected int getParameterCount(int iElement,
                                String strElement)
Count the parameters top-down so that quoted strings that span multiple lines are counted correctly as one parameter. It is assumed that the entire line is given as input. Port of evfritok.c, rCount


tokenizeCF

protected ISeriesEditorRPGILETokenizer.TokenizeResult tokenizeCF(int iElement,
                                                                 String strElement,
                                                                 int iNumberOfParametersOnNextElement,
                                                                 int iSpecType)
Recursively tokenize a CF spec line. If an opcode is not found on the given line, a recursive call is made with the previous line. Port of evfritok.c tokenizeCF


tokenizeLine

public void tokenizeLine(int iLine,
                         int iSpecType)
Deprecated. 

Port of evfritok.c, TokenizeRPGLine


tokenizeElement

public void tokenizeElement(int iElement,
                            int iSpecType)
Port of evfritok.c, TokenizeRPGLine


traverseUp

protected int traverseUp(int iElement)
Returns the closest line number of a line at or above the given line that contains either an opcode, semi-colon, or start boundary.


upperCaseLine

public String upperCaseLine(String strLine,
                            int iSpecType)
Port of evfritok.c, UpperCaseLine


upperCaseStatement

protected void upperCaseStatement(int iLine,
                                  int iSpecType)
Deprecated. 

Port of evfritok.c, UpperCaseStatement


upperCaseElement

public void upperCaseElement(int iElement,
                             int iSpecType)
Port of evfritok.c, UpperCaseStatement


Rational Developer for Power Systems Software
V7.6

Copyright 2011 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.