gnu.expr
Class FindTailCalls

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

public class FindTailCalls
extends ExpFullWalker

Does setTailCall on ApplyExp's that are tail-calls. Also setCanRead, setCanCall, setCanWrite on Declarations and setCanRead, setCanCall on LambdaExp when appropriate.


Constructor Summary
FindTailCalls()
           
 
Method Summary
static void findTailCalls(Expression exp)
           
 java.lang.Object walkApplyExp(ApplyExp exp)
           
 java.lang.Object walkBeginExp(BeginExp exp)
           
 java.lang.Object walkFluidLetExp(FluidLetExp exp)
           
 java.lang.Object walkIfExp(IfExp exp)
           
 java.lang.Object walkLambdaExp(LambdaExp exp)
           
 java.lang.Object walkLetExp(LetExp exp)
           
 java.lang.Object walkObjectExp(ObjectExp exp)
           
 java.lang.Object walkReferenceExp(ReferenceExp exp)
           
 java.lang.Object walkSetExp(SetExp exp)
           
 java.lang.Object walkSynchronizedExp(SynchronizedExp exp)
           
 java.lang.Object walkTryExp(TryExp exp)
           
 
Methods inherited from class gnu.expr.ExpFullWalker
getCurrentLambda, walkBlockExp, walkDefaultArgs, walkExitExp, walkExpression, walkExps
 
Methods inherited from class gnu.expr.ExpWalker
walkQuoteExp, walkScopeExp, walkSetApplyExp, walkThisExp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FindTailCalls

public FindTailCalls()
Method Detail

findTailCalls

public static void findTailCalls(Expression exp)

walkApplyExp

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

walkBeginExp

public java.lang.Object walkBeginExp(BeginExp exp)
Overrides:
walkBeginExp in class ExpFullWalker

walkFluidLetExp

public java.lang.Object walkFluidLetExp(FluidLetExp exp)
Overrides:
walkFluidLetExp in class ExpWalker

walkLetExp

public java.lang.Object walkLetExp(LetExp exp)
Overrides:
walkLetExp in class ExpFullWalker

walkIfExp

public java.lang.Object walkIfExp(IfExp exp)
Overrides:
walkIfExp in class ExpFullWalker

walkLambdaExp

public java.lang.Object walkLambdaExp(LambdaExp exp)
Overrides:
walkLambdaExp in class ExpFullWalker

walkObjectExp

public java.lang.Object walkObjectExp(ObjectExp exp)
Overrides:
walkObjectExp in class ExpFullWalker

walkReferenceExp

public java.lang.Object walkReferenceExp(ReferenceExp exp)
Overrides:
walkReferenceExp in class ExpWalker

walkSetExp

public java.lang.Object walkSetExp(SetExp exp)
Overrides:
walkSetExp in class ExpFullWalker

walkTryExp

public java.lang.Object walkTryExp(TryExp exp)
Overrides:
walkTryExp in class ExpFullWalker

walkSynchronizedExp

public java.lang.Object walkSynchronizedExp(SynchronizedExp exp)
Overrides:
walkSynchronizedExp in class ExpFullWalker