Eclipse Platform
2.0

org.eclipse.jface.text.rules
Class RuleBasedScanner

java.lang.Object
  |
  +--org.eclipse.jface.text.rules.RuleBasedScanner
All Implemented Interfaces:
ICharacterScanner, ITokenScanner
Direct Known Subclasses:
BufferedRuleBasedScanner

public class RuleBasedScanner
extends Object
implements ICharacterScanner, ITokenScanner

A generic scanner which can be "programmed" with a sequence of rules. The scanner is used to get the next token by evaluating its rule in sequence until one is successful. If a rule returns a token which is undefined, the scanner will proceed to the next rule. Otherwise the token provided by the rule will be returned by the scanner. If no rule returned a defined token, this scanner returns a token which returns true when calling isOther, unless the end of the file is reached. In this case the token returns true when calling isEOF.

See Also:
IRule

Field Summary
protected  int fColumn
           
protected  IToken fDefaultReturnToken
           
protected  char[][] fDelimiters
           
protected  IDocument fDocument
           
protected  int fOffset
           
protected  int fRangeEnd
           
protected  IRule[] fRules
           
protected  int fTokenOffset
           
protected static int UNDEFINED
           
 
Fields inherited from interface org.eclipse.jface.text.rules.ICharacterScanner
EOF
 
Constructor Summary
RuleBasedScanner()
          Creates a new rule based scanner which does not have any rule.
 
Method Summary
 int getColumn()
          Returns the column of the character scanner.
 char[][] getLegalLineDelimiters()
          Provides rules access to the legal line delimiters.
 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.
 IToken nextToken()
          Returns the next token in the document.
 int read()
          Returns the next character or EOF if end of file has been reached
 void setDefaultReturnToken(IToken defaultReturnToken)
          Configures the scanner's default return token.
 void setRange(IDocument document, int offset, int length)
          Configures the scanner by providing access to the document range that should be scanned.
 void setRules(IRule[] rules)
          Configures the scanner with the given sequence of rules.
 void unread()
          Rewinds the scanner before the last read character.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fRules

protected IRule[] fRules

fDefaultReturnToken

protected IToken fDefaultReturnToken

fDocument

protected IDocument fDocument

fDelimiters

protected char[][] fDelimiters

fOffset

protected int fOffset

fRangeEnd

protected int fRangeEnd

fTokenOffset

protected int fTokenOffset

fColumn

protected int fColumn

UNDEFINED

protected static final int UNDEFINED
See Also:
Constant Field Values
Constructor Detail

RuleBasedScanner

public RuleBasedScanner()
Creates a new rule based scanner which does not have any rule.

Method Detail

setRules

public void setRules(IRule[] rules)
Configures the scanner with the given sequence of rules.

Parameters:
rules - the sequence of rules controlling this scanner

setDefaultReturnToken

public void setDefaultReturnToken(IToken defaultReturnToken)
Configures the scanner's default return token. This is the token which is returned when non of the rules fired and EOF has not been reached.

Since:
2.0

setRange

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

Specified by:
setRange in interface ITokenScanner
Parameters:
document - the document to scan
offset - the offset of the document range to scan
length - the length of the document range to scan

getTokenOffset

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

Specified by:
getTokenOffset in interface ITokenScanner
Returns:
the offset of the last token read by this scanner

getTokenLength

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

Specified by:
getTokenLength in interface ITokenScanner
Returns:
the length of the last token read by this scanner

getColumn

public int getColumn()
Description copied from interface: ICharacterScanner
Returns the column of the character scanner.

Specified by:
getColumn in interface ICharacterScanner
Returns:
the column of the character scanner

getLegalLineDelimiters

public char[][] getLegalLineDelimiters()
Description copied from interface: ICharacterScanner
Provides rules access to the legal line delimiters.

Specified by:
getLegalLineDelimiters in interface ICharacterScanner
Returns:
the legal line delimiters

nextToken

public IToken nextToken()
Description copied from interface: ITokenScanner
Returns the next token in the document.

Specified by:
nextToken in interface ITokenScanner
Returns:
the next token in the document

read

public int read()
Description copied from interface: ICharacterScanner
Returns the next character or EOF if end of file has been reached

Specified by:
read in interface ICharacterScanner
Returns:
the next character or EOF

unread

public void unread()
Description copied from interface: ICharacterScanner
Rewinds the scanner before the last read character.

Specified by:
unread in interface ICharacterScanner

Eclipse Platform
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.