* @param executor
* @throws CALExecutorException
*/
private final void evaluateInternal (Executor executor) throws CALExecutorException {
Executor.GStack stack = executor.stack;
GExecutionContext executionContext = (GExecutionContext)executor.getContext();
if (GENERATE_DEBUG_CODE && executionContext.isDebugProcessingNeeded(getName().getQualifiedName())) {
int arity = getArity();
Node args[] = new Node[arity];
// The arguments are on the top of the stack.
for (int i = 0; i < arity; ++i) {
args[i] = stack.get(stack.size() - i - 1);
}
// Let the executionContext do the debug processing.
executionContext.debugProcessing(getName().getQualifiedName(), args);
}
// Pop the arguments off the stack and put in an array.
Node[] args = new Node[getArity()];