Package gw.internal.gosu.parser
Class SourceCodeTokenizerInternal
- java.lang.Object
-
- gw.internal.gosu.parser.SourceCodeTokenizerInternal
-
public final class SourceCodeTokenizerInternal extends java.lang.ObjectThis class is adapted from java.io.SourceCodeTokenizer. It adds the notion of operator to the mix. You can define your own operators or use the default set of operators, which are taken from the Java Language Spec. It also captures state information for use by our parser e.g., current token location, line number and column.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean_bCommentsSignificantprivate boolean_bEOLIsSignificantPprivate boolean_bForceLowerprivate boolean_bParseDotsAsOperatorsboolean_bUnterminatedCommentboolean_bUnterminatedStringprivate boolean_bWhitespaceSignificantprivate int[]_ctypeprivate Token_eofprivate int_iColumnint_iInvalidCharPosprivate int_iLineNumprivate int_iLineOffsetprivate ITokenizerInstructor_instructorprivate int_iPosprivate int_iTokenColumnprivate int_iTokenStartint_iTypeKeyword_keywordprivate DocCommentBlock_lastCommentprivate java.util.Set<java.lang.String>_operators(package private) int_peekcprivate SourceCodeReader_readerjava.lang.String_strValueprivate boolean_supportsKeywordsprivate Stack<Token>_tokensprivate static java.util.Set<java.lang.String>BITSHIFT_OPERATORSprotected static intCT_ALPHAprotected static intCT_BITSHIFT_OPERATORprotected static intCT_CHARQUOTEprotected static intCT_COMMENTprotected static intCT_DIGITprotected static intCT_OPERATORprotected static intCT_QUOTEprotected static intCT_WHITESPACEprivate static java.util.Set<java.lang.String>DEFAULT_OPERATORS
-
Constructor Summary
Constructors Constructor Description SourceCodeTokenizerInternal(boolean initForCopy)SourceCodeTokenizerInternal(SourceCodeReader reader)SourceCodeTokenizerInternal(SourceCodeReader reader, ITokenizerInstructor instructor)SourceCodeTokenizerInternal(java.io.Reader reader)SourceCodeTokenizerInternal(java.lang.CharSequence sourceCode)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private int_nextTokenImpl()voidbitshiftOperatorChars(int iLow, int iHigh)voidcharQuoteChar(int ch)voidcommentChar(int ch)private voidconsumeBlockComment()Tokencopy()voideolIsSignificant(boolean bFlag)static java.lang.String[]getBitshiftOperators()static java.util.List<java.lang.String>getDefaultBindingOperators()static java.lang.String[]getDefaultOperators()TokengetEofToken()ITokenizerInstructorgetInstructor()intgetLineNumber()intgetLineOffset()SourceCodeReadergetReader()java.lang.StringgetSource()intgetTokenColumn()intgetTokenEnd()Stack<Token>getTokens()intgetTokenStart()intgetType()(package private) voidgoToPosition(int iOffset)protected voidincrementLineNumber()private voidinitEofToken()(package private) TokeninitToken(Token token)booleanisAnalyzingDirective()booleanisAnalyzingSeparately()private booleanisAtIgnorePos()booleanisCommentsSignificant()booleanisEOF()private booleanisHexDigit(int c)private booleanisLeftOpenIntervalOp(java.lang.String strOpTest)booleanisNOTHING()booleanisOperator(java.lang.String strOperator)booleanisParseDotsAsOperators()private booleanisReserved()booleanisSupportsKeywords()booleanisUnterminatedComment()booleanisUnterminatedString()booleanisWhitespaceSignificant()voidlowerCaseMode(boolean bLowerCaseMode)intnextToken()voidoperatorChars(int iLow, int iHigh)voidoperators(java.lang.String[] astrOperators)voidordinaryChar(int ch)voidordinaryChars(int iLow, int iHigh)voidparseNumbers()DocCommentBlockpopLastComment()private voidpushToken()private voidpushToken(Token token)private voidpushWhitespaceToken(java.lang.StringBuilder sbWhitespace)voidquoteChar(int ch)private intread()private intreadOne()protected intreadWithInstructions(int c)voidreset()voidreset(SourceCodeReader reader)(package private) voidreset(SourceCodeReader reader, boolean bResetReader)voidreset(java.io.Reader reader)(package private) voidrip()private voidsetBitshiftOperatorChars(java.util.Set<java.lang.String> operators)voidsetCommentsSignificant(boolean bCommentsSignificant)voidsetInstructor(ITokenizerInstructor instructor)private voidsetOperatorChars(java.util.Set<java.lang.String> operators)voidsetParseDotsAsOperators(boolean parseDotsAsOperators)voidsetSupportsKeywords(boolean supportsKeywords)(package private) voidsetTokens(Stack<Token> tokens)voidsetWhitespaceSignificant(boolean bWhitespaceSignificant)private booleanstopOnDot(int c)java.lang.StringtoString()voidwhitespaceChars(int iLow, int iHigh)voidwordChars(int iLow, int iHigh)
-
-
-
Field Detail
-
CT_WHITESPACE
protected static final int CT_WHITESPACE
- See Also:
- Constant Field Values
-
CT_DIGIT
protected static final int CT_DIGIT
- See Also:
- Constant Field Values
-
CT_ALPHA
protected static final int CT_ALPHA
- See Also:
- Constant Field Values
-
CT_QUOTE
protected static final int CT_QUOTE
- See Also:
- Constant Field Values
-
CT_COMMENT
protected static final int CT_COMMENT
- See Also:
- Constant Field Values
-
CT_OPERATOR
protected static final int CT_OPERATOR
- See Also:
- Constant Field Values
-
CT_BITSHIFT_OPERATOR
protected static final int CT_BITSHIFT_OPERATOR
- See Also:
- Constant Field Values
-
CT_CHARQUOTE
protected static final int CT_CHARQUOTE
- See Also:
- Constant Field Values
-
DEFAULT_OPERATORS
private static final java.util.Set<java.lang.String> DEFAULT_OPERATORS
-
BITSHIFT_OPERATORS
private static final java.util.Set<java.lang.String> BITSHIFT_OPERATORS
-
_reader
private SourceCodeReader _reader
-
_peekc
int _peekc
-
_bForceLower
private boolean _bForceLower
-
_bEOLIsSignificantP
private boolean _bEOLIsSignificantP
-
_ctype
private int[] _ctype
-
_operators
private java.util.Set<java.lang.String> _operators
-
_iPos
private int _iPos
-
_iLineNum
private int _iLineNum
-
_iColumn
private int _iColumn
-
_iTokenStart
private int _iTokenStart
-
_iTokenColumn
private int _iTokenColumn
-
_bWhitespaceSignificant
private boolean _bWhitespaceSignificant
-
_bCommentsSignificant
private boolean _bCommentsSignificant
-
_iType
public int _iType
-
_keyword
public Keyword _keyword
-
_strValue
public java.lang.String _strValue
-
_iInvalidCharPos
public int _iInvalidCharPos
-
_bUnterminatedString
public boolean _bUnterminatedString
-
_bUnterminatedComment
public boolean _bUnterminatedComment
-
_instructor
private ITokenizerInstructor _instructor
-
_lastComment
private DocCommentBlock _lastComment
-
_bParseDotsAsOperators
private boolean _bParseDotsAsOperators
-
_iLineOffset
private int _iLineOffset
-
_eof
private Token _eof
-
_supportsKeywords
private boolean _supportsKeywords
-
-
Constructor Detail
-
SourceCodeTokenizerInternal
SourceCodeTokenizerInternal(boolean initForCopy)
-
SourceCodeTokenizerInternal
public SourceCodeTokenizerInternal(java.lang.CharSequence sourceCode)
-
SourceCodeTokenizerInternal
public SourceCodeTokenizerInternal(java.io.Reader reader)
-
SourceCodeTokenizerInternal
public SourceCodeTokenizerInternal(SourceCodeReader reader)
-
SourceCodeTokenizerInternal
public SourceCodeTokenizerInternal(SourceCodeReader reader, ITokenizerInstructor instructor)
-
-
Method Detail
-
copy
public Token copy()
-
reset
public void reset()
-
reset
public void reset(java.io.Reader reader)
-
reset
public void reset(SourceCodeReader reader)
-
reset
void reset(SourceCodeReader reader, boolean bResetReader)
-
getReader
public SourceCodeReader getReader()
-
getSource
public java.lang.String getSource()
-
getInstructor
public ITokenizerInstructor getInstructor()
-
setInstructor
public void setInstructor(ITokenizerInstructor instructor)
-
isWhitespaceSignificant
public boolean isWhitespaceSignificant()
-
setWhitespaceSignificant
public void setWhitespaceSignificant(boolean bWhitespaceSignificant)
-
isCommentsSignificant
public boolean isCommentsSignificant()
-
setCommentsSignificant
public void setCommentsSignificant(boolean bCommentsSignificant)
-
getLineNumber
public int getLineNumber()
-
getLineOffset
public int getLineOffset()
-
incrementLineNumber
protected void incrementLineNumber()
-
getTokenColumn
public int getTokenColumn()
-
wordChars
public void wordChars(int iLow, int iHigh)
-
whitespaceChars
public void whitespaceChars(int iLow, int iHigh)
-
ordinaryChars
public void ordinaryChars(int iLow, int iHigh)
-
ordinaryChar
public void ordinaryChar(int ch)
-
getDefaultOperators
public static java.lang.String[] getDefaultOperators()
-
getDefaultBindingOperators
public static java.util.List<java.lang.String> getDefaultBindingOperators()
-
getBitshiftOperators
public static java.lang.String[] getBitshiftOperators()
-
operators
public void operators(java.lang.String[] astrOperators)
-
setOperatorChars
private void setOperatorChars(java.util.Set<java.lang.String> operators)
-
operatorChars
public void operatorChars(int iLow, int iHigh)
-
setBitshiftOperatorChars
private void setBitshiftOperatorChars(java.util.Set<java.lang.String> operators)
-
bitshiftOperatorChars
public void bitshiftOperatorChars(int iLow, int iHigh)
-
isOperator
public boolean isOperator(java.lang.String strOperator)
-
commentChar
public void commentChar(int ch)
-
quoteChar
public void quoteChar(int ch)
-
charQuoteChar
public void charQuoteChar(int ch)
-
parseNumbers
public void parseNumbers()
-
eolIsSignificant
public void eolIsSignificant(boolean bFlag)
-
lowerCaseMode
public void lowerCaseMode(boolean bLowerCaseMode)
-
isUnterminatedString
public boolean isUnterminatedString()
-
isUnterminatedComment
public boolean isUnterminatedComment()
-
setParseDotsAsOperators
public void setParseDotsAsOperators(boolean parseDotsAsOperators)
-
isParseDotsAsOperators
public boolean isParseDotsAsOperators()
-
popLastComment
public DocCommentBlock popLastComment()
-
getTokenStart
public int getTokenStart()
-
getTokenEnd
public int getTokenEnd()
-
read
private int read() throws java.io.IOException- Throws:
java.io.IOException
-
readOne
private int readOne() throws java.io.IOException- Throws:
java.io.IOException
-
readWithInstructions
protected int readWithInstructions(int c) throws java.io.IOException- Throws:
java.io.IOException
-
pushWhitespaceToken
private void pushWhitespaceToken(java.lang.StringBuilder sbWhitespace)
-
pushToken
private void pushToken()
-
initEofToken
private void initEofToken()
-
pushToken
private void pushToken(Token token)
-
isAnalyzingSeparately
public boolean isAnalyzingSeparately()
-
isAnalyzingDirective
public boolean isAnalyzingDirective()
-
rip
void rip()
-
nextToken
public int nextToken() throws java.io.IOException- Throws:
java.io.IOException
-
_nextTokenImpl
private int _nextTokenImpl() throws java.io.IOException- Throws:
java.io.IOException
-
consumeBlockComment
private void consumeBlockComment() throws java.io.IOException- Throws:
java.io.IOException
-
isReserved
private boolean isReserved()
-
isAtIgnorePos
private boolean isAtIgnorePos()
-
isHexDigit
private boolean isHexDigit(int c)
-
isLeftOpenIntervalOp
private boolean isLeftOpenIntervalOp(java.lang.String strOpTest)
-
stopOnDot
private boolean stopOnDot(int c)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
getType
public int getType()
-
isEOF
public boolean isEOF()
-
isNOTHING
public boolean isNOTHING()
-
goToPosition
void goToPosition(int iOffset) throws java.io.IOException- Throws:
java.io.IOException
-
getEofToken
public Token getEofToken()
-
isSupportsKeywords
public boolean isSupportsKeywords()
-
setSupportsKeywords
public void setSupportsKeywords(boolean supportsKeywords)
-
-