use of com.sri.ai.grinder.api.StepSolver.Step in project aic-expresso by aic-sri-international.
the class IfThenElseStepSolverTest method evaluateByRecursivelyTakingSteps.
// A method for tracing the steps (and results of the steps) the step solver takes
private String evaluateByRecursivelyTakingSteps(StepSolver stepSolver, Context context, AtomicInteger stepCount, int nestingOfStep) {
String result;
Step step = stepSolver.step(context);
stepCount.incrementAndGet();
if (step.itDepends()) {
ContextSplitting splitting = step.getContextSplittingWhenSplitterIsLiteral();
String nestingString = createNestingString(nestingOfStep);
// println(nestingString + "[" + stepCount + "] split on: " + splitting.getLiteral());
result = nestingString + "[" + stepCount + "] split on: " + splitting.getLiteral() + System.lineSeparator();
Context trueContext = splitting.getContextAndLiteral();
Context falseContext = splitting.getContextAndLiteralNegation();
int nestingOfNextStep = nestingOfStep + 1;
result += evaluateByRecursivelyTakingSteps(step.getStepSolverForWhenSplitterIs(true), trueContext, stepCount, nestingOfNextStep);
result += evaluateByRecursivelyTakingSteps(step.getStepSolverForWhenSplitterIs(false), falseContext, stepCount, nestingOfNextStep);
} else {
String nestingString = createNestingString(nestingOfStep);
// println(nestingString + "[" + stepCount + "] < " + step.getValue() + " >");
result = nestingString + "[" + stepCount + "] < " + step.getValue() + " >" + System.lineSeparator();
}
return result;
}
Aggregations