Class 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.
  • Field Details

    • applyToConsumerCC

      public static final MethodHandle applyToConsumerCC
    • callcc

      public static final CallCC callcc
  • Method Details

    • 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
    • applyToConsumerCC

      public static Object applyToConsumerCC(Procedure proc, CallContext ctx) throws Throwable
      Throws:
      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