gnu.expr
Class ChainLambdas

java.lang.Object
  extended by gnu.expr.ExpVisitor<Expression,D>
      extended by gnu.expr.ExpExpVisitor<ScopeExp>
          extended by gnu.expr.ChainLambdas
All Implemented Interfaces:
javax.xml.transform.SourceLocator, org.xml.sax.Locator

public class ChainLambdas
extends ExpExpVisitor<ScopeExp>

Sets up the firstChild/nextSibling links of each LambdaExp. Setup 'outer' links of ScopeExp and its sub-classes. Also generates a class name for each ClassExp and registers each class. Also, if lambda is bound to a unique declaration, make that its name.


Field Summary
 
Fields inherited from class gnu.expr.ExpVisitor
currentLambda, exitValue, messages
 
Constructor Summary
ChainLambdas()
           
 
Method Summary
static void chainLambdas(Expression exp, Compilation comp)
           
protected  Expression visitClassExp(ClassExp exp, ScopeExp scope)
           
protected  Expression visitLambdaExp(LambdaExp exp, ScopeExp scope)
           
protected  Expression visitScopeExp(ScopeExp exp, ScopeExp scope)
           
 
Methods inherited from class gnu.expr.ExpExpVisitor
defaultValue, update
 
Methods inherited from class gnu.expr.ExpVisitor
error, getColumnNumber, getCompilation, getCurrentLambda, getExitValue, getFileName, getLineNumber, getMessages, getPublicId, getSystemId, isStableSourceLocation, noteError, setColumn, setContext, setFile, setLine, setLine, visit, visitAndUpdate, visitApplyExp, visitBeginExp, visitBlockExp, visitDeclarationType, visitDeclarationTypes, visitDefaultArgs, visitExitExp, visitExpression, visitExps, visitExps, visitFluidLetExp, visitIfExp, visitLangExp, visitLetExp, visitModuleExp, visitObjectExp, visitQuoteExp, visitReferenceExp, visitSetExp, visitSetExpValue, visitSynchronizedExp, visitThisExp, visitTryExp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ChainLambdas

public ChainLambdas()
Method Detail

chainLambdas

public static void chainLambdas(Expression exp,
                                Compilation comp)

visitScopeExp

protected Expression visitScopeExp(ScopeExp exp,
                                   ScopeExp scope)
Overrides:
visitScopeExp in class ExpVisitor<Expression,ScopeExp>

visitLambdaExp

protected Expression visitLambdaExp(LambdaExp exp,
                                    ScopeExp scope)
Overrides:
visitLambdaExp in class ExpVisitor<Expression,ScopeExp>

visitClassExp

protected Expression visitClassExp(ClassExp exp,
                                   ScopeExp scope)
Overrides:
visitClassExp in class ExpVisitor<Expression,ScopeExp>