gnu.expr
Class PushApply

java.lang.Object
  |
  +--gnu.expr.ExpWalker
        |
        +--gnu.expr.ExpFullWalker
              |
              +--gnu.expr.PushApply

public class PushApply
extends ExpFullWalker

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.


Constructor Summary
PushApply()
           
 
Method Summary
static void pushApply(Expression exp)
           
 java.lang.Object walkApplyExp(ApplyExp exp)
           
 
Methods inherited from class gnu.expr.ExpFullWalker
getCurrentLambda, walkBeginExp, walkBlockExp, walkDefaultArgs, walkExitExp, walkExpression, walkExps, walkIfExp, walkLambdaExp, walkLetExp, walkObjectExp, walkSetExp, walkSynchronizedExp, walkTryExp
 
Methods inherited from class gnu.expr.ExpWalker
walkFluidLetExp, walkQuoteExp, walkReferenceExp, walkScopeExp, walkSetApplyExp, walkThisExp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PushApply

public PushApply()
Method Detail

pushApply

public static void pushApply(Expression exp)

walkApplyExp

public java.lang.Object walkApplyExp(ApplyExp exp)
Overrides:
walkApplyExp in class ExpFullWalker