EvaluatorFactory.java 文件源码

java
阅读 27 收藏 0 点赞 0 评论 0

项目:OpenModsLib 作者:
@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);
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号