Package gnu.expr

Class BeginExp

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

public class BeginExp extends Expression
This class represents a sequence of Expressions. The expressions are evaluated for their side-effects, and the value of the last Expression is the result. A BeginExp may optionally have "compilation options" which can be used to control various compile-time aspects of Kawa, such as warning messages.
  • Constructor Details

  • Method Details

    • canonicalize

      public static final Expression canonicalize(Expression exp)
      Simplifies BeginExp. (In the future, nested BeginExps may be "flattened" as well.)
    • canonicalize

      public static final Expression canonicalize(Expression[] exps)
    • add

      public final void add(Expression exp)
    • getExpressions

      public final Expression[] getExpressions()
    • getExpressionCount

      public final int getExpressionCount()
    • setExpressions

      public final void setExpressions(Expression[] exps)
    • setCompileOptions

      public void setCompileOptions(Vector options)
    • 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
    • pushOptions

      public void pushOptions(Compilation comp)
    • popOptions

      public void popOptions(Compilation comp)
    • 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
    • print

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

      protected Type calculateType()
      Overrides:
      calculateType in class Expression