org.eclipse.xtext.ui.editor.syntaxcoloring
Class TokenScanner

java.lang.Object
  extended by org.eclipse.xtext.ui.editor.syntaxcoloring.AbstractTokenScanner
      extended by org.eclipse.xtext.ui.editor.syntaxcoloring.TokenScanner
All Implemented Interfaces:
org.eclipse.jface.text.rules.ITokenScanner
Direct Known Subclasses:
RichStringAwareTokenScanner

public class TokenScanner
extends AbstractTokenScanner

TokenScanner implementation based on XtextDocument.getTokens()

Author:
Sven Efftinge - Initial contribution and API, Sebastian Zarnekow - Use reentrant iterator to reduce runtime complexity

Nested Class Summary
protected  class TokenScanner.RangedReentrantIterator
          A reentrant iterator allows to reuse and filter the elements another iterator and may update its filter criteria continuously.
 
Constructor Summary
TokenScanner()
           
 
Method Summary
protected  org.eclipse.jface.text.rules.IToken createToken(ILexerTokenRegion currentToken)
           
protected  ILexerTokenRegion getCurrentToken()
           
protected  java.util.Iterator<ILexerTokenRegion> getIterator()
           
protected  AbstractAntlrTokenToAttributeIdMapper getTokenIdMapper()
           
 int getTokenLength()
          Returns the length of the last token read by this scanner.
 int getTokenOffset()
          Returns the offset of the last token read by this scanner.
protected  java.lang.Iterable<ILexerTokenRegion> getTokens(org.eclipse.jface.text.IDocument document)
           
 org.eclipse.jface.text.rules.IToken nextToken()
          Returns the next token in the document.
protected  void setCurrentToken(ILexerTokenRegion currentToken)
           
 void setRange(org.eclipse.jface.text.IDocument document, int offset, int length)
          Configures the scanner by providing access to the document range that should be scanned.
 void setTokenIdMapper(AbstractAntlrTokenToAttributeIdMapper tokenIdMapper)
           
 
Methods inherited from class org.eclipse.xtext.ui.editor.syntaxcoloring.AbstractTokenScanner
getAttribute, getTextAttributeProvider, setTextAttributeProvider
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TokenScanner

public TokenScanner()
Method Detail

setTokenIdMapper

public void setTokenIdMapper(AbstractAntlrTokenToAttributeIdMapper tokenIdMapper)

setRange

public void setRange(org.eclipse.jface.text.IDocument document,
                     int offset,
                     int length)
Description copied from interface: org.eclipse.jface.text.rules.ITokenScanner
Configures the scanner by providing access to the document range that should be scanned.

Parameters:
document - the document to scan
offset - the offset of the document range to scan
length - the length of the document range to scan

getTokens

protected java.lang.Iterable<ILexerTokenRegion> getTokens(org.eclipse.jface.text.IDocument document)

nextToken

public org.eclipse.jface.text.rules.IToken nextToken()
Description copied from interface: org.eclipse.jface.text.rules.ITokenScanner
Returns the next token in the document.

Returns:
the next token in the document

createToken

protected org.eclipse.jface.text.rules.IToken createToken(ILexerTokenRegion currentToken)

getTokenOffset

public int getTokenOffset()
Description copied from interface: org.eclipse.jface.text.rules.ITokenScanner
Returns the offset of the last token read by this scanner.

Returns:
the offset of the last token read by this scanner

getTokenLength

public int getTokenLength()
Description copied from interface: org.eclipse.jface.text.rules.ITokenScanner
Returns the length of the last token read by this scanner.

Returns:
the length of the last token read by this scanner

getIterator

protected java.util.Iterator<ILexerTokenRegion> getIterator()

getCurrentToken

protected ILexerTokenRegion getCurrentToken()

setCurrentToken

protected void setCurrentToken(ILexerTokenRegion currentToken)

getTokenIdMapper

protected AbstractAntlrTokenToAttributeIdMapper getTokenIdMapper()