gnu.expr

Class FindTailCalls


public class FindTailCalls
extends ExpWalker

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

Method Summary

static void
findTailCalls(Expression exp, Compilation comp)
protected Expression
walkApplyExp(ApplyExp exp)
protected Expression
walkBeginExp(BeginExp exp)
protected Expression
walkClassExp(ClassExp exp)
void
walkDecls(ScopeExp exp)
protected Expression
walkFluidLetExp(FluidLetExp exp)
protected Expression
walkIfExp(IfExp exp)
protected Expression
walkLambdaExp(LambdaExp exp)
protected Expression
walkLetExp(LetExp exp)
protected Expression
walkReferenceExp(ReferenceExp exp)
protected Expression
walkSetExp(SetExp exp)
protected Expression
walkSynchronizedExp(SynchronizedExp exp)
protected Expression
walkTryExp(TryExp 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

findTailCalls

public static void findTailCalls(Expression exp,
                                 Compilation comp)

walkApplyExp

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

walkBeginExp

protected Expression walkBeginExp(BeginExp exp)
Overrides:
walkBeginExp in interface ExpWalker

walkClassExp

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

walkDecls

public void walkDecls(ScopeExp exp)

walkFluidLetExp

protected Expression walkFluidLetExp(FluidLetExp exp)
Overrides:
walkFluidLetExp in interface ExpWalker

walkIfExp

protected Expression walkIfExp(IfExp exp)
Overrides:
walkIfExp in interface ExpWalker

walkLambdaExp

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

walkLetExp

protected Expression walkLetExp(LetExp exp)
Overrides:
walkLetExp in interface ExpWalker

walkReferenceExp

protected Expression walkReferenceExp(ReferenceExp exp)
Overrides:
walkReferenceExp in interface ExpWalker

walkSetExp

protected Expression walkSetExp(SetExp exp)
Overrides:
walkSetExp in interface ExpWalker

walkSynchronizedExp

protected Expression walkSynchronizedExp(SynchronizedExp exp)
Overrides:
walkSynchronizedExp in interface ExpWalker

walkTryExp

protected Expression walkTryExp(TryExp exp)
Overrides:
walkTryExp in interface ExpWalker