org.eclipse.jface.text.rules.NumberRule Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.eclipse.jface.text Show documentation
Show all versions of org.eclipse.jface.text Show documentation
This is org.eclipse.jface.text jar used by Scout SDK
The newest version!
/*******************************************************************************
* Copyright (c) 2000, 2007 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jface.text.rules;
import org.eclipse.core.runtime.Assert;
/**
* An implementation of IRule
detecting a numerical value.
*/
public class NumberRule implements IRule {
/** Internal setting for the un-initialized column constraint */
protected static final int UNDEFINED= -1;
/** The token to be returned when this rule is successful */
protected IToken fToken;
/** The column constraint */
protected int fColumn= UNDEFINED;
/**
* Creates a rule which will return the specified
* token when a numerical sequence is detected.
*
* @param token the token to be returned
*/
public NumberRule(IToken token) {
Assert.isNotNull(token);
fToken= token;
}
/**
* Sets a column constraint for this rule. If set, the rule's token
* will only be returned if the pattern is detected starting at the
* specified column. If the column is smaller then 0, the column
* constraint is considered removed.
*
* @param column the column in which the pattern starts
*/
public void setColumnConstraint(int column) {
if (column < 0)
column= UNDEFINED;
fColumn= column;
}
@Override
public IToken evaluate(ICharacterScanner scanner) {
int c= scanner.read();
if (Character.isDigit((char)c)) {
if (fColumn == UNDEFINED || (fColumn == scanner.getColumn() - 1)) {
do {
c= scanner.read();
} while (Character.isDigit((char) c));
scanner.unread();
return fToken;
}
}
scanner.unread();
return Token.UNDEFINED;
}
}