@Override
public IModifierStateTransition<Node> getStateForModifier(String modifier) {
if (MODIFIER_OP.equals(modifier)) {
return new SingleStateTransition.ForModifier<Node>() {
@Override
public Node createRootNode(Node child) {
return child;
}
@Override
public Node parseSymbol(IParserState<Node> state, PeekingIterator<Token> input) {
Preconditions.checkState(input.hasNext(), "Unexpected end out input");
final Token token = input.next();
Preconditions.checkState(token.type == TokenType.OPERATOR, "Unexpected token, expected operator, got %s", token);
NodeOp operator = OPERATORS.getOperator(token.value, OperatorArity.BINARY);
if (operator == null) operator = OPERATORS.getOperator(token.value, OperatorArity.UNARY);
if (operator == null) throw new IllegalArgumentException("Unknown operator: " + token.value);
return new Node(operator);
}
};
} else {
throw new UnsupportedOperationException("Modifier: " + modifier);
}
}
EvaluatorFactory.java 文件源码
java
阅读 27
收藏 0
点赞 0
评论 0
项目:OpenModsLib
作者:
评论列表
文章目录