view src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/traverser/DefaultEvaluator.java @ 365:f69f4be12612 default tip

fix
author suruga
date Fri, 09 Feb 2018 19:48:22 +0900
parents b3a04bc21b23
children
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.jungle.traverser;

import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath;
import jp.ac.u_ryukyu.ie.cr.jungle.util.Pair;
import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.TreeNode;

public class DefaultEvaluator implements Evaluator {
    private final NodePath path;

    public DefaultEvaluator(NodePath _path) {
        path = _path;
    }

    @Override
    public Evaluation evaluate(TreeNode _current, int _pos) {
        Pair<Integer, NodePath> pop = path.pop();
        int head = pop.left();

        if (path.size() == 1) {
            if (head == _pos) {
                return new DefaultEvaluation(Result.GOAL, null);
            }
        }

        DefaultEvaluator nextEvaluator;
        Result result;
        if (head == _pos) {
            result = Result.ACCEPT;
            nextEvaluator = new DefaultEvaluator(pop.right());
        } else {
            result = Result.CONTINUE;
            nextEvaluator = null;
        }


        return new DefaultEvaluation(result, nextEvaluator);
    }
}