/**
* A token with a literal string, and a type.
*
* @author Eric Fruchter
*
*/
public class Token {
/**
* The actual string token.
*/
final public String TOKEN;
/**
* The TokenType.
*/
final public TokenType TYPE;
/**
* Reserved for encoding frequency data.
*/
public int frequency = 0;
/**
* Init token with literal and type.
*
* @param token
* @param type
*/
public Token(final String token, final TokenType type) {
this.TOKEN = token;
this.TYPE = type;
}
/**
* Get a pretty formatted token descriptor.
*/
@Override
public String toString() {
return TYPE + "(" + TOKEN + ")";
}
@Override
public int hashCode() {
return TOKEN.hashCode();
}
@Override
public boolean equals(Object o) {
return o instanceof Token && ((Token) o).TOKEN.equals(TOKEN);
}
}