gnu.expr

Class PushApply


public class PushApply
extends ExpWalker

Re-arranges ApplyExp where the function is a LetExp or BeginExp. Optimizes ((let (...) body) . args) to (let (...) (body . args)). Optimizes ((begin ... last) . args) to (begin ... (last . args)). This helps optimize Scheme "named let" (and some other forms) by making it more likely the application will be to a known procedure. This optimization has to be done after Declarations are bound.

Method Summary

static void
pushApply(Expression exp)
protected Expression
walkApplyExp(ApplyExp exp)

Methods inherited from class gnu.expr.ExpWalker

error, getColumn, getCompilation, getCurrentLambda, getFile, getLine, noteError, setColumn, setContext, setFile, setLine, setLine, walk, walkApplyExp, walkBeginExp, walkBlockExp, walkClassExp, walkDefaultArgs, walkExitExp, walkExpression, walkExps, walkExps, walkFluidLetExp, walkIfExp, walkLambdaExp, walkLangExp, walkLetExp, walkModuleExp, walkObjectExp, walkQuoteExp, walkReferenceExp, walkScopeExp, walkSetExp, walkSynchronizedExp, walkThisExp, walkTryExp

Method Details

pushApply

public static void pushApply(Expression exp)

walkApplyExp

protected Expression walkApplyExp(ApplyExp exp)
Overrides:
walkApplyExp in interface ExpWalker