gnu.expr
Class BlockExp

java.lang.Object
  extended by gnu.mapping.PropertySet
      extended by gnu.mapping.Procedure
          extended by gnu.mapping.Procedure0
              extended by gnu.expr.Expression
                  extended by gnu.expr.BlockExp
All Implemented Interfaces:
Named, Printable, javax.xml.transform.SourceLocator, org.xml.sax.Locator

public class BlockExp
extends Expression

Class used to implement a block that can be exited.


Field Summary
 
Fields inherited from class gnu.expr.Expression
flags, NEXT_AVAIL_FLAG, noExpressions, VALIDATED
 
Fields inherited from class gnu.mapping.Procedure
compilerKey, validateApplyKey
 
Fields inherited from class gnu.mapping.PropertySet
nameKey
 
Constructor Summary
BlockExp()
           
 
Method Summary
 void apply(CallContext ctx)
          Evaluate the expression.
 void compile(Compilation comp, Target target)
           
protected  boolean mustCompile()
           
 void print(OutPort out)
           
 void setBody(Expression body)
           
 void setBody(Expression body, Expression exitBody)
           
 void setLabel(Declaration label)
           
protected
<R,D> R
visit(ExpVisitor<R,D> visitor, D d)
           
protected
<R,D> void
visitChildren(ExpVisitor<R,D> visitor, D d)
           
 
Methods inherited from class gnu.expr.Expression
apply0, compile, compile, compileButFirst, compileNotePosition, compileWithPosition, compileWithPosition, deepCopy, deepCopy, deepCopy, deepCopy, eval, eval, getColumnNumber, getFileName, getFlag, getFlags, getLineNumber, getPublicId, getSystemId, getType, isSingleValue, isStableSourceLocation, makeWhile, match0, print, printLineColumn, setFile, setFlag, setFlag, setLine, setLine, setLine, setLine, setLocation, side_effects, toString, validateApply, valueIfConstant
 
Methods inherited from class gnu.mapping.Procedure0
apply1, apply2, apply3, apply4, applyN, numArgs
 
Methods inherited from class gnu.mapping.Procedure
apply, check0, check1, check2, check3, check4, checkArgCount, checkN, getReturnType, getSetter, getSourceLocation, isSideEffectFree, match1, match2, match3, match4, matchN, maxArgs, maxArgs, minArgs, minArgs, set0, set1, setN, setSetter, setSourceLocation
 
Methods inherited from class gnu.mapping.PropertySet
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BlockExp

public BlockExp()
Method Detail

setBody

public void setBody(Expression body)

setBody

public void setBody(Expression body,
                    Expression exitBody)

setLabel

public void setLabel(Declaration label)

mustCompile

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

apply

public void apply(CallContext ctx)
           throws java.lang.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:
java.lang.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

print

public void print(OutPort out)
Specified by:
print in class Expression