Sophie

Sophie

distrib > Mageia > 7 > x86_64 > by-pkgid > b3bdfe6d859a3d6920ff2c44b38e9a6f > files > 618

saxon-manual-9.4.0.9-2.mga7.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_18) on Fri Dec 09 20:47:33 GMT 2011 -->
<TITLE>
BlockCompiler
</TITLE>

<META NAME="date" CONTENT="2011-12-09">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="BlockCompiler";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../com/saxonica/bytecode/BaseURICompiler.html" title="class in com.saxonica.bytecode"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../com/saxonica/bytecode/BooleanFnCompiler.html" title="class in com.saxonica.bytecode"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html?com/saxonica/bytecode/BlockCompiler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="BlockCompiler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
com.saxonica.bytecode</FONT>
<BR>
Class BlockCompiler</H2>
<PRE>
<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html" title="class in com.saxonica.bytecode">com.saxonica.bytecode.ExpressionCompiler</A>
      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/saxonica/bytecode/ToIteratorCompiler.html" title="class in com.saxonica.bytecode">com.saxonica.bytecode.ToIteratorCompiler</A>
          <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.saxonica.bytecode.BlockCompiler</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>BlockCompiler</B><DT>extends <A HREF="../../../com/saxonica/bytecode/ToIteratorCompiler.html" title="class in com.saxonica.bytecode">ToIteratorCompiler</A></DL>
</PRE>

<P>
Generate bytecode for a call to a Block expression. A block typically represents
 either an expression of the form (a, b, c, d), or an XSLT sequence constructor.
<P>

<P>
<HR>

<P>

<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/BlockCompiler.html#BlockCompiler()">BlockCompiler</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/BlockCompiler.html#compileToIterator(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)">compileToIterator</A></B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                  <A HREF="../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>&nbsp;expression)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generate bytecode to evaluate the BlockExpression as an iterator
 Precondition: none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/BlockCompiler.html#compileToLoop(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression, com.saxonica.bytecode.util.LoopBodyGenerator)">compileToLoop</A></B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
              <A HREF="../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>&nbsp;expression,
              <A HREF="../../../com/saxonica/bytecode/util/LoopBodyGenerator.html" title="class in com.saxonica.bytecode.util">LoopBodyGenerator</A>&nbsp;loopBody)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The compileToLoop method compiles this expression in such a way that the code generated by the supplied
 loopBody argument will be executed once for each item in the result of this expression.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/BlockCompiler.html#compileToPush(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)">compileToPush</A></B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
              <A HREF="../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>&nbsp;expression)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generate bytecode to evaluate the BlockExpression in push mode
 Precondition: none.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_com.saxonica.bytecode.ToIteratorCompiler"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class com.saxonica.bytecode.<A HREF="../../../com/saxonica/bytecode/ToIteratorCompiler.html" title="class in com.saxonica.bytecode">ToIteratorCompiler</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../com/saxonica/bytecode/ToIteratorCompiler.html#compileToBoolean(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)">compileToBoolean</A>, <A HREF="../../../com/saxonica/bytecode/ToIteratorCompiler.html#compileToItem(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)">compileToItem</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_com.saxonica.bytecode.ExpressionCompiler"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class com.saxonica.bytecode.<A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html" title="class in com.saxonica.bytecode">ExpressionCompiler</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#allocateStatic(com.saxonica.bytecode.util.CompilerService, java.lang.Object)">allocateStatic</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#compileItemFromInt(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)">compileItemFromInt</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#compileItemFromString(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)">compileItemFromString</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#compileToPrimitive(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression, java.lang.Class, com.saxonica.bytecode.util.OnEmpty)">compileToPrimitive</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#generateMethod(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression, org.objectweb.asm.ClassVisitor)">generateMethod</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#getConfiguration()">getConfiguration</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#handleEmptyStringResult(com.saxonica.bytecode.util.OnEmpty, com.saxonica.bytecode.util.Generator, com.saxonica.bytecode.util.GeneratedMethodInfo, com.saxonica.bytecode.util.LabelInfo)">handleEmptyStringResult</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#setConfiguration(net.sf.saxon.Configuration)">setConfiguration</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#throwXPathException(com.saxonica.bytecode.util.CompilerService, com.saxonica.bytecode.util.MessageBuilder, java.lang.String, javax.xml.transform.SourceLocator, boolean)">throwXPathException</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#throwXPathException(com.saxonica.bytecode.util.CompilerService, java.lang.String, java.lang.String, javax.xml.transform.SourceLocator, boolean)">throwXPathException</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#unboxItem(com.saxonica.bytecode.util.Generator, java.lang.Class)">unboxItem</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#verify(org.objectweb.asm.ClassWriter, java.lang.String, boolean)">verify</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#visitAnnotation(com.saxonica.bytecode.util.CompilerService, java.lang.String)">visitAnnotation</A>, <A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#visitLineNumber(com.saxonica.bytecode.util.CompilerService, com.saxonica.bytecode.util.Generator, net.sf.saxon.expr.Expression)">visitLineNumber</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="BlockCompiler()"><!-- --></A><H3>
BlockCompiler</H3>
<PRE>
public <B>BlockCompiler</B>()</PRE>
<DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="compileToPush(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)"><!-- --></A><H3>
compileToPush</H3>
<PRE>
public void <B>compileToPush</B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                          <A HREF="../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>&nbsp;expression)
                   throws <A HREF="../../../com/saxonica/bytecode/util/CannotCompileException.html" title="class in com.saxonica.bytecode.util">CannotCompileException</A></PRE>
<DL>
<DD>Generate bytecode to evaluate the BlockExpression in push mode
 Precondition: none.
 Postcondition: the stack is empty
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/saxonica/bytecode/ToIteratorCompiler.html#compileToPush(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)">compileToPush</A></CODE> in class <CODE><A HREF="../../../com/saxonica/bytecode/ToIteratorCompiler.html" title="class in com.saxonica.bytecode">ToIteratorCompiler</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>compiler</CODE> - the compiler service<DD><CODE>expression</CODE> - the expression to be compiled
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../com/saxonica/bytecode/util/CannotCompileException.html" title="class in com.saxonica.bytecode.util">CannotCompileException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="compileToLoop(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression, com.saxonica.bytecode.util.LoopBodyGenerator)"><!-- --></A><H3>
compileToLoop</H3>
<PRE>
public void <B>compileToLoop</B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                          <A HREF="../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>&nbsp;expression,
                          <A HREF="../../../com/saxonica/bytecode/util/LoopBodyGenerator.html" title="class in com.saxonica.bytecode.util">LoopBodyGenerator</A>&nbsp;loopBody)
                   throws <A HREF="../../../com/saxonica/bytecode/util/CannotCompileException.html" title="class in com.saxonica.bytecode.util">CannotCompileException</A></PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#compileToLoop(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression, com.saxonica.bytecode.util.LoopBodyGenerator)">ExpressionCompiler</A></CODE></B></DD>
<DD>The compileToLoop method compiles this expression in such a way that the code generated by the supplied
 loopBody argument will be executed once for each item in the result of this expression. The code generated
 by the loopBody expects to find this item on the top of the bytecode stack, and must remove it.

 <p>Note that the compileToLoop() method must not be used where there is a need to maintain the value
 of position() or size(), or equivalents such as updating range variables. It is therefore generally used
 only for compiling aggregate functions such as count() and sum(). </p>

 <p>This has proved something of an obstacle. Attempts to compile path expressions as nested loops
 have failed in the case where there is a dependency on position() or last(): the current dependency
 mechanism doesn't always allow these cases to be detected (it only tells us when an expression uses
 position() or last(), not when it needs to maintain position() and last()). Hence this mode of compilation
 is not widely implemented (other than by the default implementation) and is currently used only when
 compiling sum() and count().</p>
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#compileToLoop(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression, com.saxonica.bytecode.util.LoopBodyGenerator)">compileToLoop</A></CODE> in class <CODE><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html" title="class in com.saxonica.bytecode">ExpressionCompiler</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>compiler</CODE> - the compiler service<DD><CODE>expression</CODE> - the expression to be compiled<DD><CODE>loopBody</CODE> - a generator which produces code to be executed once for every item in the result of this
                   expression, with that item being on the top of the bytecode stack.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../com/saxonica/bytecode/util/CannotCompileException.html" title="class in com.saxonica.bytecode.util">CannotCompileException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="compileToIterator(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)"><!-- --></A><H3>
compileToIterator</H3>
<PRE>
public void <B>compileToIterator</B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                              <A HREF="../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>&nbsp;expression)
                       throws <A HREF="../../../com/saxonica/bytecode/util/CannotCompileException.html" title="class in com.saxonica.bytecode.util">CannotCompileException</A></PRE>
<DL>
<DD>Generate bytecode to evaluate the BlockExpression as an iterator
 Precondition: none.
 Postcondition: the stack contains an iterator representing the result of the expression
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#compileToIterator(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)">compileToIterator</A></CODE> in class <CODE><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html" title="class in com.saxonica.bytecode">ExpressionCompiler</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>compiler</CODE> - the compiler service<DD><CODE>expression</CODE> - the expression to be compiled
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../com/saxonica/bytecode/util/CannotCompileException.html" title="class in com.saxonica.bytecode.util">CannotCompileException</A></CODE></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../com/saxonica/bytecode/BaseURICompiler.html" title="class in com.saxonica.bytecode"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../com/saxonica/bytecode/BooleanFnCompiler.html" title="class in com.saxonica.bytecode"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html?com/saxonica/bytecode/BlockCompiler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="BlockCompiler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.
</BODY>
</HTML>