Package gnu.expr

Class BlockExp

All Implemented Interfaces:
gnu.kawa.format.Printable, Named, SourceLocator, SourceLocator, Locator

public class BlockExp extends Expression
Class used to implement a block that can be exited.
  • Constructor Details

    • BlockExp

      public BlockExp()
  • Method Details

    • setBody

      public void setBody(Expression body)
    • setBody

      public void setBody(Expression body, Expression exitBody)
    • setRunFinallyBlocks

      public void setRunFinallyBlocks(boolean value)
    • setLabel

      public void setLabel(Declaration label)
    • mustCompile

      protected boolean mustCompile()
      Specified by:
      mustCompile in class Expression
    • apply

      public void apply(CallContext ctx) throws Throwable
      Description copied from class: Expression
      Evaluate the expression. This is named apply rather than eval so it is compatible with the full-tail-call calling convention, and we can stash an Expression in CallContext's proc field. FIXME - are we making use of this?
      Overrides:
      apply in class Expression
      Throws:
      Throwable
    • compile

      public void compile(Compilation comp, Target target)
      Specified by:
      compile in class Expression
    • visit

      protected <R, D> R visit(ExpVisitor<R,D> visitor, D d)
      Overrides:
      visit in class Expression
    • visitChildren

      protected <R, D> void visitChildren(ExpVisitor<R,D> visitor, D d)
      Overrides:
      visitChildren in class Expression
    • toString

      public String toString()
      Overrides:
      toString in class Expression
    • print

      public void print(gnu.kawa.io.OutPort out)
      Specified by:
      print in class Expression