package data.angelic;
final class Tokenizer {
final Object open;
final Object close;
final Object plus;
final Object delimiter;
final Object operator;
final Object operand;
Tokenizer() {
super();
this.open = new Object();
this.close = new Object();
this.plus = new Object();
this.delimiter = new Object();
this.operator = new Object();
this.operand = new Object();
}
Token token(Object tokenizable) {
if (tokenizable == open || tokenizable == close)
return new Token(tokenizable, delimiter);
else
if (tokenizable == plus)
return new Token(tokenizable, operator);
else return new Token(tokenizable, tokenizable);
}
final static class Token {
final Object tokenized;
final Object kind;
private Token(Object tokenized, Object kind) {
super();
this.tokenized = tokenized;
this.kind = kind;
}
}
}