// Copyright (c) 2003-2008 by Leif Frenzel - see http://leiffrenzel.de
// This code is made available under the terms of the Eclipse Public License,
// version 1.0 (EPL). See http://www.eclipse.org/legal/epl-v10.html
package net.sf.eclipsefp.haskell.ui.internal.editors.haskell.syntax;
import org.eclipse.jface.text.rules.ICharacterScanner;
import org.eclipse.jface.text.rules.IPredicateRule;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.jface.text.rules.IWordDetector;
import org.eclipse.jface.text.rules.WordRule;
/** <p>A word predicate rule for the special case of the arrow keyword.</p>
*
* @author Leif Frenzel
*/
public class ArrowRule extends WordRule implements IPredicateRule {
private final IToken successToken;
public ArrowRule( final IToken successToken ) {
super( new IWordDetector() {
@Override
public boolean isWordStart( final char c ) {
return( c == '-' );
}
@Override
public boolean isWordPart( final char c ) {
return( c == '-' || c == '>' );
}
} );
this.successToken = successToken;
addWord( "->", successToken ); //$NON-NLS-1$
}
@Override
public IToken evaluate( final ICharacterScanner scanner,
final boolean resume ) {
return super.evaluate( scanner );
}
@Override
public IToken getSuccessToken() {
return successToken;
}
}