package oraloganalyzer.editor;
import org.eclipse.jface.text.rules.ICharacterScanner;
import org.eclipse.jface.text.rules.IRule;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.ITokenScanner;
import org.eclipse.jface.text.rules.Token;
public class GivenOffsetRule implements IRule
{
private IToken succesToken;
private int offset;
private int length;
public GivenOffsetRule(IToken succesToken, int offset, int length)
{
super();
this.succesToken = succesToken;
this.offset = offset;
this.length = length;
}
public IToken evaluate(ICharacterScanner scanner)
{
if (!(scanner instanceof ITokenScanner))
return Token.UNDEFINED;
ITokenScanner tscanner = (ITokenScanner) scanner;
if (tscanner.getTokenOffset() == this.offset)
{
//Zeichen weglesen
int c;
for (int i = 0; i < this.length; i++)
{
c = scanner.read();
if (c == ICharacterScanner.EOF)
{
break;
}
}
return this.succesToken;
}
//else
return Token.UNDEFINED;
}
}