public class FindTailCalls extends ExpExpVisitor<Expression>
returnContinuation - the expression we
"return to" - i.e. when done evaluating 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, error, error, updateerror, getColumnNumber, getCompilation, getCurrentLambda, getExitValue, getFileName, getLanguage, getLineNumber, getMessages, getPublicId, getSystemId, isStableSourceLocation, noteError, setColumn, setContext, setFile, setLine, setLine, visit, visit, visitAndUpdate, visitDeclarationType, visitDeclarationTypes, visitDefaultArgs, visitExitExp, visitExps, visitExps, visitLangExp, visitModuleExp, visitObjectExp, visitQuoteExp, visitReferenceExp, visitScopeExp, visitThisExppublic 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 visitCaseExp(CaseExp exp, Expression returnContinuation)
visitCaseExp 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 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>