ContextualCall ccall = ContextualCall.createContextualCall(self, symbol);
if (ccall != null && argvx != null)
return ccall.call(argvx, index);
else
throw new InterpreterException(StdErrors.extend(StdErrors.Symbol_not_defined, symbol));
}
else
throw new InterpreterException(StdErrors.Internal_error);
}
case Node.TYPE_EXTERNAL:
{
Node extargs = Node.createCList_().append_(Node.createQSymbol(symbol));
if (argvx != null)
extargs.appendChildsOf(argvx, index);
return ExternalTK.evalMethod(self, extargs);
}
case Node.TYPE_FUNCTION:
{
Node expr = new Node().append(self).append_(Node.createQSymbol(PCoder.unselfing(symbol)));
if (argvx != null)
expr.appendChildsOf(argvx, index);
return expr.exec_q(false);
}
default:
throw new InterpreterException(StdErrors.extend(StdErrors.Delegable_object_required, self.toString()));
}
}