view Main/jungle-main/traverser/DefaultEvaluator.cs @ 35:f2ea780b3e80

fix
author Kazuma Takeda
date Wed, 22 Feb 2017 16:30:19 +0900
parents 1f99e150f336
children
line wrap: on
line source

using System.Collections;

namespace JungleDB {
	public class DefaultEvaluator : Evaluator {
		private NodePath path;

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

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

			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.rights ());
			} else {
				result = Result.CONTINUE;
				nextEvaluator = null;
			}

			return new DefaultEvaluation (result, nextEvaluator);
		}
	}
}