orc.runtime.values
Class Closure
java.lang.Object
orc.runtime.values.Value
orc.runtime.values.Closure
- All Implemented Interfaces:
- Callable, Future
public final class Closure
- extends Value
- implements Callable, Future
Represents a standard closure: a function defined in an environment.
A closure is not necessarily a resolved value, since it may contain
unbound variables, and therefore cannot be used in arg position until all
such variables become bound.
- Author:
- wcook, dkitchin, quark
Constructor Summary |
Closure(Def def,
java.util.List<java.lang.Object> free)
The environment should be set later; see DefsDeclaration . |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
def
public Def def
env
public Env env
Closure
public Closure(Def def,
java.util.List<java.lang.Object> free)
- The environment should be set later; see
DefsDeclaration
.
createCall
public void createCall(Token t,
java.util.List<java.lang.Object> args,
TokenContinuation publishContinuation)
throws TokenException
- Description copied from interface:
Callable
- Create a call to a callable value
- Specified by:
createCall
in interface Callable
- Parameters:
t
- token for which the call is being made: points to the call nodeargs
- argument listpublishContinuation
- next node after the call node, to which the result should be sent
- Throws:
TokenException
accept
public <E> E accept(Visitor<E> visitor)
- Overrides:
accept
in class Value
forceArg
public java.lang.Object forceArg(Token t)
- Specified by:
forceArg
in interface Future
forceCall
public Callable forceCall(Token t)
throws UncallableValueException
- Specified by:
forceCall
in interface Future
- Throws:
UncallableValueException