net.sf.saxon.expr.instruct
Interface TailCall

All Known Implementing Classes:
CallTemplate.CallTemplatePackage

public interface TailCall

Interface representing a Tail Call. This is a package of information passed back by a called instruction to its caller, representing a call (and its arguments) that needs to be made by the caller. This saves stack space by unwinding the stack before making the call.


Method Summary
 TailCall processLeavingTail()
          Process this TailCall (that is, executed the template call that is packaged in this object).
 

Method Detail

processLeavingTail

TailCall processLeavingTail()
                            throws XPathException
Process this TailCall (that is, executed the template call that is packaged in this object). This may return a further TailCall, which should also be processed: this is the mechanism by which a nested set of recursive calls is converted into an iteration.

Returns:
a further TailCall, if the recursion continues, or null, indicating that the recursion has terminated.
Throws:
XPathException - if any error occurs processing the tail call


Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.