Class PublicScanner
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.core.util.PublicScanner
- All Implemented Interfaces:
IScanner,ITerminalSymbols
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final intfinal char[][][][]booleanstatic final intintint[]int[]int[]longbooleanstatic final intcharintbooleanstatic final Stringintintchar[][]int[][]char[][]char[][]static final intstatic final intstatic final Stringintbooleanstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringbooleanprotected intprotected intint[]intstatic final intstatic final intprotected intstatic final Stringstatic final intbooleanbooleanbooleanstatic final intbooleanbooleanchar[]longstatic final intintstatic final charstatic final intstatic final char[]static final intchar[][]char[][]booleanbooleanstatic final Stringbooleanstatic final Stringstatic final Stringstatic final Stringbooleanbooleanbooleanchar[]intFields inherited from interface org.aspectj.org.eclipse.jdt.core.compiler.ITerminalSymbols
TokenNameabstract, TokenNameAND, TokenNameAND_AND, TokenNameAND_EQUAL, TokenNameARROW, TokenNameassert, TokenNameAT, TokenNameboolean, TokenNamebreak, TokenNamebyte, TokenNamecase, TokenNamecatch, TokenNamechar, TokenNameCharacterLiteral, TokenNameclass, TokenNameCOLON, TokenNameCOLON_COLON, TokenNameCOMMA, TokenNameCOMMENT_BLOCK, TokenNameCOMMENT_JAVADOC, TokenNameCOMMENT_LINE, TokenNameconst, TokenNamecontinue, TokenNamedefault, TokenNameDIVIDE, TokenNameDIVIDE_EQUAL, TokenNamedo, TokenNameDOT, TokenNamedouble, TokenNameDoubleLiteral, TokenNameELLIPSIS, TokenNameelse, TokenNameenum, TokenNameEOF, TokenNameEQUAL, TokenNameEQUAL_EQUAL, TokenNameERROR, TokenNameextends, TokenNamefalse, TokenNamefinal, TokenNamefinally, TokenNamefloat, TokenNameFloatingPointLiteral, TokenNamefor, TokenNamegoto, TokenNameGREATER, TokenNameGREATER_EQUAL, TokenNameIdentifier, TokenNameif, TokenNameimplements, TokenNameimport, TokenNameinstanceof, TokenNameint, TokenNameIntegerLiteral, TokenNameinterface, TokenNameLBRACE, TokenNameLBRACKET, TokenNameLEFT_SHIFT, TokenNameLEFT_SHIFT_EQUAL, TokenNameLESS, TokenNameLESS_EQUAL, TokenNamelong, TokenNameLongLiteral, TokenNameLPAREN, TokenNameMINUS, TokenNameMINUS_EQUAL, TokenNameMINUS_MINUS, TokenNameMULTIPLY, TokenNameMULTIPLY_EQUAL, TokenNamenative, TokenNamenew, TokenNameNOT, TokenNameNOT_EQUAL, TokenNamenull, TokenNameOR, TokenNameOR_EQUAL, TokenNameOR_OR, TokenNamepackage, TokenNamePLUS, TokenNamePLUS_EQUAL, TokenNamePLUS_PLUS, TokenNameprivate, TokenNameprotected, TokenNamepublic, TokenNameQUESTION, TokenNameRBRACE, TokenNameRBRACKET, TokenNameREMAINDER, TokenNameREMAINDER_EQUAL, TokenNamereturn, TokenNameRIGHT_SHIFT, TokenNameRIGHT_SHIFT_EQUAL, TokenNameRPAREN, TokenNameSEMICOLON, TokenNameshort, TokenNamestatic, TokenNamestrictfp, TokenNameStringLiteral, TokenNamesuper, TokenNameswitch, TokenNamesynchronized, TokenNameTextBlock, TokenNamethis, TokenNamethrow, TokenNamethrows, TokenNametransient, TokenNametrue, TokenNametry, TokenNameTWIDDLE, TokenNameUNSIGNED_RIGHT_SHIFT, TokenNameUNSIGNED_RIGHT_SHIFT_EQUAL, TokenNamevoid, TokenNamevolatile, TokenNamewhile, TokenNameWHITESPACE, TokenNameXOR, TokenNameXOR_EQUAL -
Constructor Summary
ConstructorsConstructorDescriptionPublicScanner(boolean tokenizeComments, boolean tokenizeWhiteSpace, boolean checkNonExternalizedStringLiterals, long sourceLevel, char[][] taskTags, char[][] taskPriorities, boolean isTaskCaseSensitive) PublicScanner(boolean tokenizeComments, boolean tokenizeWhiteSpace, boolean checkNonExternalizedStringLiterals, long sourceLevel, long complianceLevel, char[][] taskTags, char[][] taskPriorities, boolean isTaskCaseSensitive) PublicScanner(boolean tokenizeComments, boolean tokenizeWhiteSpace, boolean checkNonExternalizedStringLiterals, long sourceLevel, long complianceLevel, char[][] taskTags, char[][] taskPriorities, boolean isTaskCaseSensitive, boolean previewEnabled) -
Method Summary
Modifier and TypeMethodDescriptionfinal booleanatEnd()voidcheckTaskTag(int commentStart, int commentEnd) char[]final StringintAnswers the ending position of the current token inside the original source.char[]Answers the current identifier source, after unicode escape sequences have been translated into unicode characters.char[]intAnswers the starting position of the current token inside the original source.final Stringfinal intgetLineEnd(int lineNumber) Answers the ending position of a given line number.final int[]Answers an array of the ending positions of the lines encountered so far.final intgetLineNumber(int position) Search the line number corresponding to a specific positionfinal intgetLineStart(int lineNumber) Search the source position corresponding to the beginning of a given line number Line numbers are 1-based, and relative to the scanner initialPosition.final intfinal booleangetNextChar(char testedChar) final intgetNextChar(char testedChar1, char testedChar2) final booleanfinal booleangetNextCharAsDigit(int radix) booleanbooleanfinal intintRead the next token in the source, and answers its ID as specified byITerminalSymbols.voidNLSTag[]final char[]Answers the current identifier source, before unicode escape sequences have been translated into unicode characters.final char[]char[]Answers the original source being processed (not a copy of it).protected booleanstatic booleanisIdentifier(int token) static booleanisKeyword(int token) static booleanisLiteral(int token) final voidfinal booleanfinal voidfinal voidvoidrecordComment(int token) voidresetTo(int begin, int end) Reposition the scanner on some portion of the original source.protected final voidprotected final booleanprotected final booleanintintintintscanNumber(boolean dotPrefix) final voidsetSource(char[] sourceString) Set the scanner source to process.final voidsetSource(char[] contents, CompilationResult compilationResult) final voidsetSource(CompilationResult compilationResult) toString()toStringAction(int act) voidunicodeInitializeBuffer(int length) voidvoidunicodeStore(char character)
-
Field Details
-
sourceLevel
public long sourceLevel -
complianceLevel
public long complianceLevel -
previewEnabled
public boolean previewEnabled -
useAssertAsAnIndentifier
public boolean useAssertAsAnIndentifier -
containsAssertKeyword
public boolean containsAssertKeyword -
useEnumAsAnIndentifier
public boolean useEnumAsAnIndentifier -
recordLineSeparator
public boolean recordLineSeparator -
currentCharacter
public char currentCharacter -
startPosition
public int startPosition -
currentPosition
public int currentPosition -
initialPosition
public int initialPosition -
eofPosition
public int eofPosition -
skipComments
public boolean skipComments -
tokenizeComments
public boolean tokenizeComments -
tokenizeWhiteSpace
public boolean tokenizeWhiteSpace -
source
public char[] source -
withoutUnicodeBuffer
public char[] withoutUnicodeBuffer -
withoutUnicodePtr
public int withoutUnicodePtr -
unicodeAsBackSlash
public boolean unicodeAsBackSlash -
scanningFloatLiteral
public boolean scanningFloatLiteral -
COMMENT_ARRAYS_SIZE
public static final int COMMENT_ARRAYS_SIZE- See Also:
-
commentStops
public int[] commentStops -
commentStarts
public int[] commentStarts -
commentTagStarts
public int[] commentTagStarts -
commentPtr
public int commentPtr -
lastCommentLinePosition
protected int lastCommentLinePosition -
foundTaskTags
public char[][] foundTaskTags -
foundTaskMessages
public char[][] foundTaskMessages -
foundTaskPriorities
public char[][] foundTaskPriorities -
foundTaskPositions
public int[][] foundTaskPositions -
foundTaskCount
public int foundTaskCount -
taskTags
public char[][] taskTags -
taskPriorities
public char[][] taskPriorities -
isTaskCaseSensitive
public boolean isTaskCaseSensitive -
diet
public boolean diet -
lineEnds
public int[] lineEnds -
linePtr
public int linePtr -
wasAcr
public boolean wasAcr -
END_OF_SOURCE
- See Also:
-
INVALID_HEXA
- See Also:
-
INVALID_OCTAL
- See Also:
-
INVALID_CHARACTER_CONSTANT
- See Also:
-
INVALID_ESCAPE
- See Also:
-
INVALID_INPUT
- See Also:
-
INVALID_TEXTBLOCK
- See Also:
-
INVALID_UNICODE_ESCAPE
- See Also:
-
INVALID_FLOAT
- See Also:
-
INVALID_LOW_SURROGATE
- See Also:
-
INVALID_HIGH_SURROGATE
- See Also:
-
NULL_SOURCE_STRING
- See Also:
-
UNTERMINATED_STRING
- See Also:
-
UNTERMINATED_TEXT_BLOCK
- See Also:
-
UNTERMINATED_COMMENT
- See Also:
-
INVALID_CHAR_IN_STRING
- See Also:
-
INVALID_DIGIT
- See Also:
-
INVALID_BINARY
- See Also:
-
BINARY_LITERAL_NOT_BELOW_17
- See Also:
-
ILLEGAL_HEXA_LITERAL
- See Also:
-
INVALID_UNDERSCORE
- See Also:
-
UNDERSCORES_IN_LITERALS_NOT_BELOW_17
- See Also:
-
OptimizedLength
public static final int OptimizedLength- See Also:
-
charArray_length
public final char[][][][] charArray_length -
TAG_PREFIX
public static final char[] TAG_PREFIX -
TAG_PREFIX_LENGTH
public static final int TAG_PREFIX_LENGTH -
TAG_POSTFIX
public static final char TAG_POSTFIX- See Also:
-
TAG_POSTFIX_LENGTH
public static final int TAG_POSTFIX_LENGTH- See Also:
-
nlsTagsPtr
protected int nlsTagsPtr -
checkNonExternalizedStringLiterals
public boolean checkNonExternalizedStringLiterals -
lastPosition
protected int lastPosition -
returnOnlyGreater
public boolean returnOnlyGreater -
insideRecovery
public boolean insideRecovery -
RoundBracket
public static final int RoundBracket- See Also:
-
SquareBracket
public static final int SquareBracket- See Also:
-
CurlyBracket
public static final int CurlyBracket- See Also:
-
BracketKinds
public static final int BracketKinds- See Also:
-
LOW_SURROGATE_MIN_VALUE
public static final int LOW_SURROGATE_MIN_VALUE- See Also:
-
HIGH_SURROGATE_MIN_VALUE
public static final int HIGH_SURROGATE_MIN_VALUE- See Also:
-
HIGH_SURROGATE_MAX_VALUE
public static final int HIGH_SURROGATE_MAX_VALUE- See Also:
-
LOW_SURROGATE_MAX_VALUE
public static final int LOW_SURROGATE_MAX_VALUE- See Also:
-
-
Constructor Details
-
PublicScanner
public PublicScanner() -
PublicScanner
public PublicScanner(boolean tokenizeComments, boolean tokenizeWhiteSpace, boolean checkNonExternalizedStringLiterals, long sourceLevel, long complianceLevel, char[][] taskTags, char[][] taskPriorities, boolean isTaskCaseSensitive) -
PublicScanner
public PublicScanner(boolean tokenizeComments, boolean tokenizeWhiteSpace, boolean checkNonExternalizedStringLiterals, long sourceLevel, long complianceLevel, char[][] taskTags, char[][] taskPriorities, boolean isTaskCaseSensitive, boolean previewEnabled) -
PublicScanner
public PublicScanner(boolean tokenizeComments, boolean tokenizeWhiteSpace, boolean checkNonExternalizedStringLiterals, long sourceLevel, char[][] taskTags, char[][] taskPriorities, boolean isTaskCaseSensitive)
-
-
Method Details
-
atEnd
public final boolean atEnd() -
checkTaskTag
- Throws:
InvalidInputException
-
getCurrentIdentifierSource
public char[] getCurrentIdentifierSource() -
getCurrentTokenEndPosition
public int getCurrentTokenEndPosition()Description copied from interface:IScannerAnswers the ending position of the current token inside the original source. This position is zero-based and inclusive. It corresponds to the position of the last character which is part of this token. If this character was a unicode escape sequence, it points at the last character of this sequence.- Specified by:
getCurrentTokenEndPositionin interfaceIScanner- Returns:
- the ending position of the current token inside the original source
-
getCurrentTokenSource
public char[] getCurrentTokenSource()Description copied from interface:IScannerAnswers the current identifier source, after unicode escape sequences have been translated into unicode characters. For example, if original source was\\u0061bcthen it will answerabc.- Specified by:
getCurrentTokenSourcein interfaceIScanner- Returns:
- the current identifier source, after unicode escape sequences have been translated into unicode characters
-
getCurrentTokenString
-
getCurrentTokenSourceString
public char[] getCurrentTokenSourceString() -
scanForTextBlockBeginning
protected final boolean scanForTextBlockBeginning() -
scanForTextBlockClose
- Throws:
InvalidInputException
-
getCurrentStringLiteral
-
getRawTokenSource
public final char[] getRawTokenSource()Description copied from interface:IScannerAnswers the current identifier source, before unicode escape sequences have been translated into unicode characters. For example, if original source was\\u0061bcthen it will answer\\u0061bc.- Specified by:
getRawTokenSourcein interfaceIScanner- Returns:
- the current identifier source, before unicode escape sequences have been translated into unicode characters
-
getRawTokenSourceEnd
public final char[] getRawTokenSourceEnd() -
getCurrentTokenStartPosition
public int getCurrentTokenStartPosition()Description copied from interface:IScannerAnswers the starting position of the current token inside the original source. This position is zero-based and inclusive. It corresponds to the position of the first character which is part of this token. If this character was a unicode escape sequence, it points at the first character of this sequence.- Specified by:
getCurrentTokenStartPositionin interfaceIScanner- Returns:
- the starting position of the current token inside the original source
-
getLineEnd
public final int getLineEnd(int lineNumber) Description copied from interface:IScannerAnswers the ending position of a given line number. This line has to have been encountered already in the tokenization process (in other words, it cannot be used to compute positions of lines beyond current token). Once the entire source has been processed, it can be used without any limit. Line ending positions are zero-based, and correspond to the last character of the line separator (in case multi-character line separators).- Specified by:
getLineEndin interfaceIScanner- Parameters:
lineNumber- the given line number- Returns:
- the ending position of a given line number
-
getLineEnds
public final int[] getLineEnds()Description copied from interface:IScannerAnswers an array of the ending positions of the lines encountered so far. Line ending positions are zero-based, and correspond to the last character of the line separator (in case multi-character line separators).- Specified by:
getLineEndsin interfaceIScanner- Returns:
- an array of the ending positions of the lines encountered so far
-
getLineStart
public final int getLineStart(int lineNumber) Search the source position corresponding to the beginning of a given line number Line numbers are 1-based, and relative to the scanner initialPosition. Character positions are 0-based. e.g. getLineStart(1) --> 0 indicates that the first line starts at character 0. In case the given line number is inconsistent, answers -1.- Specified by:
getLineStartin interfaceIScanner- Parameters:
lineNumber- int- Returns:
- int
-
getNextChar
public final int getNextChar() -
getNextCharWithBoundChecks
public final int getNextCharWithBoundChecks() -
getNextChar
public final boolean getNextChar(char testedChar) -
getNextChar
public final int getNextChar(char testedChar1, char testedChar2) -
getNextCharAsDigit
- Throws:
InvalidInputException
-
getNextCharAsDigit
public final boolean getNextCharAsDigit(int radix) -
getNextCharAsJavaIdentifierPartWithBoundCheck
public boolean getNextCharAsJavaIdentifierPartWithBoundCheck() -
getNextCharAsJavaIdentifierPart
public boolean getNextCharAsJavaIdentifierPart() -
scanIdentifier
- Throws:
InvalidInputException
-
getNextToken
Description copied from interface:IScannerRead the next token in the source, and answers its ID as specified byITerminalSymbols. Note that the actual token ID values are subject to change if new keywords were added to the language (for instance, 'assert' is a keyword in 1.4).- Specified by:
getNextTokenin interfaceIScanner- Returns:
- the next token
- Throws:
InvalidInputException- in case a lexical error was detected while reading the current token
-
getNextUnicodeChar
- Throws:
InvalidInputException
-
getNLSTags
-
getSource
public char[] getSource()Description copied from interface:IScannerAnswers the original source being processed (not a copy of it). -
isFirstTag
protected boolean isFirstTag() -
jumpOverMethodBody
public final void jumpOverMethodBody() -
jumpOverUnicodeWhiteSpace
- Throws:
InvalidInputException
-
pushLineSeparator
public final void pushLineSeparator() -
pushUnicodeLineSeparator
public final void pushUnicodeLineSeparator() -
recordComment
public void recordComment(int token) -
resetTo
public void resetTo(int begin, int end) Reposition the scanner on some portion of the original source. The given endPosition is the last valid position. Beyond this position, the scanner will answer EOF tokens (ITerminalSymbols.TokenNameEOF). -
scanEscapeCharacter
- Throws:
InvalidInputException
-
scanIdentifierOrKeywordWithBoundCheck
public int scanIdentifierOrKeywordWithBoundCheck() -
scanIdentifierOrKeyword
public int scanIdentifierOrKeyword() -
scanNumber
- Throws:
InvalidInputException
-
getLineNumber
public final int getLineNumber(int position) Search the line number corresponding to a specific position- Specified by:
getLineNumberin interfaceIScanner- Parameters:
position- int- Returns:
- int
-
setSource
public final void setSource(char[] sourceString) Description copied from interface:IScannerSet the scanner source to process. By default, the scanner will consider starting at the beginning of the source until it reaches its end. If the given source isnull, this clears the source. -
setSource
-
setSource
-
toString
-
toStringAction
-
unicodeInitializeBuffer
public void unicodeInitializeBuffer(int length) -
unicodeStore
public void unicodeStore() -
unicodeStore
public void unicodeStore(char character) -
isIdentifier
public static boolean isIdentifier(int token) -
isLiteral
public static boolean isLiteral(int token) -
isKeyword
public static boolean isKeyword(int token)
-