public class FindTailCalls extends ExpExpVisitor<Expression>
returnContinuation
- the expression we
"return to" - i.e. when done eveluating an expression, we're also done
with the returnContinuation
. Normally it is is same
Expression
as we are visiting, but (for example) when visiting the
last expression of a BeginExp
the returnContinuation
is the same as that of the containing BeginExp
.currentLambda, exitValue, messages
Constructor and Description |
---|
FindTailCalls() |
defaultValue, update
error, getColumnNumber, getCompilation, getCurrentLambda, getExitValue, getFileName, getLineNumber, getMessages, getPublicId, getSystemId, isStableSourceLocation, noteError, setColumn, setContext, setFile, setLine, setLine, visit, visitAndUpdate, visitDeclarationType, visitDeclarationTypes, visitDefaultArgs, visitExitExp, visitExps, visitExps, visitLangExp, visitModuleExp, visitObjectExp, visitQuoteExp, visitScopeExp, visitSetExpValue, visitThisExp
public static void findTailCalls(Expression exp, Compilation comp)
protected Expression visitExpression(Expression exp, Expression returnContinuation)
visitExpression
in class ExpVisitor<Expression,Expression>
public Expression[] visitExps(Expression[] exps)
protected Expression visitApplyExp(ApplyExp exp, Expression returnContinuation)
visitApplyExp
in class ExpVisitor<Expression,Expression>
protected Expression visitBlockExp(BlockExp exp, Expression returnContinuation)
visitBlockExp
in class ExpVisitor<Expression,Expression>
protected Expression visitBeginExp(BeginExp exp, Expression returnContinuation)
visitBeginExp
in class ExpVisitor<Expression,Expression>
protected Expression visitFluidLetExp(FluidLetExp exp, Expression returnContinuation)
visitFluidLetExp
in class ExpVisitor<Expression,Expression>
protected Expression visitLetExp(LetExp exp, Expression returnContinuation)
visitLetExp
in class ExpVisitor<Expression,Expression>
public void postVisitDecls(ScopeExp exp)
protected Expression visitIfExp(IfExp exp, Expression returnContinuation)
visitIfExp
in class ExpVisitor<Expression,Expression>
protected Expression visitLambdaExp(LambdaExp exp, Expression returnContinuation)
visitLambdaExp
in class ExpVisitor<Expression,Expression>
protected Expression visitClassExp(ClassExp exp, Expression returnContinuation)
visitClassExp
in class ExpVisitor<Expression,Expression>
protected Expression visitReferenceExp(ReferenceExp exp, Expression returnContinuation)
visitReferenceExp
in class ExpVisitor<Expression,Expression>
protected Expression visitSetExp(SetExp exp, Expression returnContinuation)
visitSetExp
in class ExpVisitor<Expression,Expression>
protected Expression visitTryExp(TryExp exp, Expression returnContinuation)
visitTryExp
in class ExpVisitor<Expression,Expression>
protected Expression visitSynchronizedExp(SynchronizedExp exp, Expression returnContinuation)
visitSynchronizedExp
in class ExpVisitor<Expression,Expression>