gnu.expr

Class ChainLambdas

Implemented Interfaces:
org.xml.sax.Locator, SourceLocator

public class ChainLambdas
extends ExpWalker

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.ExpWalker

currentLambda, messages

Method Summary

static void
chainLambdas(Expression exp, Compilation comp)
protected Expression
walkClassExp(ClassExp exp)
protected Expression
walkLambdaExp(LambdaExp exp)
protected Expression
walkScopeExp(ScopeExp exp)

Methods inherited from class gnu.expr.ExpWalker

error, getColumnNumber, getCompilation, getCurrentLambda, getFileName, getLineNumber, getMessages, getPublicId, getSystemId, isStableSourceLocation, noteError, setColumn, setContext, setFile, setLine, setLine, walk, walkApplyExp, walkBeginExp, walkBlockExp, walkClassExp, walkDeclarationType, walkDeclarationTypes, walkDefaultArgs, walkExitExp, walkExpression, walkExps, walkExps, walkFluidLetExp, walkIfExp, walkLambdaExp, walkLangExp, walkLetExp, walkModuleExp, walkObjectExp, walkQuoteExp, walkReferenceExp, walkScopeExp, walkSetExp, walkSynchronizedExp, walkThisExp, walkTryExp

Method Details

chainLambdas

public static void chainLambdas(Expression exp,
                                Compilation comp)

walkClassExp

protected Expression walkClassExp(ClassExp exp)
Overrides:
walkClassExp in interface ExpWalker

walkLambdaExp

protected Expression walkLambdaExp(LambdaExp exp)
Overrides:
walkLambdaExp in interface ExpWalker

walkScopeExp

protected Expression walkScopeExp(ScopeExp exp)
Overrides:
walkScopeExp in interface ExpWalker