package data.angelic;
import data.angelic.Tokenizer.Token;
final public class TokenizerClient {
public static void test00() {
final Tokenizer tokenizer = new Tokenizer();
final LinkedList objs = new LinkedList();
objs.add(new Object());
objs.add(tokenizer.plus);
objs.add(new Object());
while (objs.size() > 0) {
final Object obj = objs.removeFirst();
final Token token = tokenizer.token(obj);
final Object kind = token.kind;
if (kind == tokenizer.operator) {
final Object nextObj = objs.removeFirst();
final Token nextToken = tokenizer.token(nextObj);
assert nextToken.tokenized == nextObj;
assert nextToken.kind == tokenizer.operand;
}
}
}
public static void test01(Token angelic) {
assert angelic != null;
final Tokenizer tokenizer = new Tokenizer();
final LinkedList objs = new LinkedList();
objs.add(new Object());
objs.add(tokenizer.plus);
objs.add(new Object());
while (objs.size() > 0) {
final Object obj = objs.removeFirst();
final Token token = tokenizer.token(obj);
final Object kind = token.kind;
if (kind == tokenizer.operator) {
final Object nextObj = objs.removeFirst();
final Token nextToken = angelic;
assert nextToken.tokenized == nextObj;
assert nextToken.kind == tokenizer.operand;
}
}
}
public static void test02() {
final Tokenizer tokenizer = new Tokenizer();
final LinkedList objs = new LinkedList();
objs.add(new Object());
objs.add(tokenizer.plus);
objs.add(new Object());
int blockBalance = 0;
while (objs.size() > 0) {
final Token token = tokenizer.token(objs.removeFirst());
final Object kind = token.kind;
if (token == tokenizer.open) {
blockBalance++;
} else
if (token == tokenizer.close) {
blockBalance--;
} else
if (kind == tokenizer.operator) {
assert objs.size() > 0;
assert tokenizer.token(
objs.removeFirst()).kind ==
tokenizer.operand;
}
}
assert blockBalance == 0;
}
public TokenizerClient() { super(); }
}