gnu.kawa.functions
Class CallCC
java.lang.Object
gnu.mapping.PropertySet
gnu.mapping.Procedure
gnu.mapping.ProcedureN
gnu.mapping.MethodProc
gnu.kawa.functions.CallCC
- All Implemented Interfaces:
- Inlineable, Named
public class CallCC
- extends MethodProc
- implements Inlineable
Implement the Scheme standard function "call-with-current-continuation".
This is a restricted version, that only works for escape-like applications.
Methods inherited from class gnu.mapping.Procedure |
apply, check0, check1, check2, check3, check4, checkArgCount, checkN, getSetter, getSourceLocation, isSideEffectFree, match0, match2, match3, match4, matchN, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
callcc
public static final CallCC callcc
numArgs
public int numArgs()
- Description copied from class:
Procedure
- Return
minArgs()|(maxArgs<<12)
.
We use a single virtual function to reduce the number of methods
in the system, as well as the number of virtual method table entries.
We shift by 12 so the number can normally be represented using a
sipush instruction, without requiring a constant pool entry.
- Overrides:
numArgs
in class Procedure
match1
public int match1(java.lang.Object proc,
CallContext ctx)
- Description copied from class:
Procedure
- Pass one argument.
- Overrides:
match1
in class Procedure
- Returns:
- non-negative if the match succeeded, else negative.
apply
public void apply(CallContext ctx)
throws java.lang.Throwable
- Description copied from class:
Procedure
- Call this Procedure using the explicit-CallContext-convention.
The input arguments are (by default) in stack.args;
the result is written to ctx.consumer.
- Overrides:
apply
in class Procedure
- Throws:
java.lang.Throwable
compile
public void compile(ApplyExp exp,
Compilation comp,
Target target)
- Specified by:
compile
in interface Inlineable
getReturnType
public Type getReturnType(Expression[] args)
- Description copied from class:
Procedure
- Semi-deprecated - instead should be set at Inline time. FIXME
- Overrides:
getReturnType
in class Procedure