Sophie

Sophie

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

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:35 GMT 2011 -->
<TITLE>
ExpressionCompiler
</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="ExpressionCompiler";
    }
}
</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/ExistsCompiler.html" title="class in com.saxonica.bytecode"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../com/saxonica/bytecode/FilterExpressionCompiler.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/ExpressionCompiler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ExpressionCompiler.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 ExpressionCompiler</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 "><B>com.saxonica.bytecode.ExpressionCompiler</B>
</PRE>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../com/saxonica/bytecode/ErrorExpressionCompiler.html" title="class in com.saxonica.bytecode">ErrorExpressionCompiler</A>, <A HREF="../../../com/saxonica/bytecode/LiteralCompiler.html" title="class in com.saxonica.bytecode">LiteralCompiler</A>, <A HREF="../../../com/saxonica/bytecode/ToBooleanCompiler.html" title="class in com.saxonica.bytecode">ToBooleanCompiler</A>, <A HREF="../../../com/saxonica/bytecode/ToItemCompiler.html" title="class in com.saxonica.bytecode">ToItemCompiler</A>, <A HREF="../../../com/saxonica/bytecode/ToIteratorCompiler.html" title="class in com.saxonica.bytecode">ToIteratorCompiler</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>ExpressionCompiler</B><DT>extends <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></DL>
</PRE>

<P>
This abstract class represents the compiler (that is, Java bytecode generator)
 for a particular kind of expression on the expression tree. The expression compiler
 is called by the <A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util"><CODE>CompilerService</CODE></A> working its way down the expression tree in a top
 down fashion: there is a one-to-one correspondence between the classes implementing the
 expression on the expression tree and the compiler object used to generate Java code fragments.
 Various methods are supplied to compile expressions; exactly one of them is called, depending
 on the context in which the expression appears.
<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/ExpressionCompiler.html#ExpressionCompiler()">ExpressionCompiler</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>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#allocateStatic(com.saxonica.bytecode.util.CompilerService, java.lang.Object)">allocateStatic</A></B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
               <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>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generate code to allocate static field in widget and to push field on stack</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#compileItemFromInt(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)">compileItemFromInt</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;Helper method to implement compileFromItem when the class implements compileToPrimitive returning an integer</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#compileItemFromString(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)">compileItemFromString</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;Helper method to implement compileFromItem when the class implements compileToString</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#compileToBoolean(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)">compileToBoolean</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 expression as a boolean
 Precondition: none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#compileToItem(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)">compileToItem</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 expression as an Item
 Precondition: none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.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 expression as a <A HREF="../../../net/sf/saxon/om/SequenceIterator.html" title="interface in net.sf.saxon.om"><CODE>SequenceIterator</CODE></A>
 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/ExpressionCompiler.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/ExpressionCompiler.html#compileToPrimitive(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression, java.lang.Class, com.saxonica.bytecode.util.OnEmpty)">compileToPrimitive</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="http://download.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&nbsp;requiredClass,
                   <A HREF="../../../com/saxonica/bytecode/util/OnEmpty.html" title="class in com.saxonica.bytecode.util">OnEmpty</A>&nbsp;onEmpty)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generate bytecode to evaluate the expression leaving a plain Java value on the stack.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.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 expression in push mode
 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/ExpressionCompiler.html#generateMethod(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression, org.objectweb.asm.ClassVisitor)">generateMethod</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,
               org.objectweb.asm.ClassVisitor&nbsp;cv)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../net/sf/saxon/Configuration.html" title="class in net.sf.saxon">Configuration</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#getConfiguration()">getConfiguration</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the Saxon Configuration</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><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></B>(<A HREF="../../../com/saxonica/bytecode/util/OnEmpty.html" title="class in com.saxonica.bytecode.util">OnEmpty</A>&nbsp;onEmpty,
                        <A HREF="../../../com/saxonica/bytecode/util/Generator.html" title="class in com.saxonica.bytecode.util">Generator</A>&nbsp;ga,
                        <A HREF="../../../com/saxonica/bytecode/util/GeneratedMethodInfo.html" title="class in com.saxonica.bytecode.util">GeneratedMethodInfo</A>&nbsp;methodInfo,
                        <A HREF="../../../com/saxonica/bytecode/util/LabelInfo.html" title="class in com.saxonica.bytecode.util">LabelInfo</A>&nbsp;exit)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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/ExpressionCompiler.html#setConfiguration(net.sf.saxon.Configuration)">setConfiguration</A></B>(<A HREF="../../../net/sf/saxon/Configuration.html" title="class in net.sf.saxon">Configuration</A>&nbsp;config)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the Saxon Configuration</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><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></B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                    <A HREF="../../../com/saxonica/bytecode/util/MessageBuilder.html" title="interface in com.saxonica.bytecode.util">MessageBuilder</A>&nbsp;builder,
                    <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;errorCode,
                    <A HREF="http://download.oracle.com/javase/6/docs/api/javax/xml/transform/SourceLocator.html?is-external=true" title="class or interface in javax.xml.transform">SourceLocator</A>&nbsp;locator,
                    boolean&nbsp;isTypeError)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generate code to throw an XPath Exception.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><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></B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                    <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;message,
                    <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;errorCode,
                    <A HREF="http://download.oracle.com/javase/6/docs/api/javax/xml/transform/SourceLocator.html?is-external=true" title="class or interface in javax.xml.transform">SourceLocator</A>&nbsp;locator,
                    boolean&nbsp;isTypeError)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generate code to throw an XPath Exception.</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/ExpressionCompiler.html#unboxItem(com.saxonica.bytecode.util.Generator, java.lang.Class)">unboxItem</A></B>(<A HREF="../../../com/saxonica/bytecode/util/Generator.html" title="class in com.saxonica.bytecode.util">Generator</A>&nbsp;ga,
          <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&nbsp;requiredClass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generate code to extract a primitive value from an Item (actually an Atomic value)
 given knowledge of the primitive type of the item</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#verify(org.objectweb.asm.ClassWriter, java.lang.String, boolean)">verify</A></B>(org.objectweb.asm.ClassWriter&nbsp;cw,
       <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;objectName,
       boolean&nbsp;debug)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Verify the generated bytecode, for diagnostic purposes</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../com/saxonica/bytecode/ExpressionCompiler.html#visitAnnotation(com.saxonica.bytecode.util.CompilerService, java.lang.String)">visitAnnotation</A></B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;message)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generate annotations in the bytecode, for diagnostic purposes</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><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></B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                <A HREF="../../../com/saxonica/bytecode/util/Generator.html" title="class in com.saxonica.bytecode.util">Generator</A>&nbsp;ga,
                <A HREF="../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>&nbsp;expr)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Generate line number of expression in byte-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="ExpressionCompiler()"><!-- --></A><H3>
ExpressionCompiler</H3>
<PRE>
public <B>ExpressionCompiler</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="setConfiguration(net.sf.saxon.Configuration)"><!-- --></A><H3>
setConfiguration</H3>
<PRE>
public void <B>setConfiguration</B>(<A HREF="../../../net/sf/saxon/Configuration.html" title="class in net.sf.saxon">Configuration</A>&nbsp;config)</PRE>
<DL>
<DD>Set the Saxon Configuration
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getConfiguration()"><!-- --></A><H3>
getConfiguration</H3>
<PRE>
public <A HREF="../../../net/sf/saxon/Configuration.html" title="class in net.sf.saxon">Configuration</A> <B>getConfiguration</B>()</PRE>
<DL>
<DD>Get the Saxon Configuration
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="compileToItem(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)"><!-- --></A><H3>
compileToItem</H3>
<PRE>
public abstract void <B>compileToItem</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 expression as an Item
 Precondition: none.
 Postcondition: at execution time, the stack contains either an item (the result of the expression), or null
 (representing an empty sequence).
<P>
<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="compileToIterator(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)"><!-- --></A><H3>
compileToIterator</H3>
<PRE>
public abstract 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 expression as a <A HREF="../../../net/sf/saxon/om/SequenceIterator.html" title="interface in net.sf.saxon.om"><CODE>SequenceIterator</CODE></A>
 Precondition: none.
 Postcondition: at execution time, the stack contains a SequenceIterator representing the result of the expression
<P>
<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="compileToBoolean(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)"><!-- --></A><H3>
compileToBoolean</H3>
<PRE>
public abstract void <B>compileToBoolean</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 expression as a boolean
 Precondition: none.
 Postcondition: at execution time, the stack contains an integer (0=false, 1=true) representing the result of the expression
<P>
<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="compileToPrimitive(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression, java.lang.Class, com.saxonica.bytecode.util.OnEmpty)"><!-- --></A><H3>
compileToPrimitive</H3>
<PRE>
public void <B>compileToPrimitive</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="http://download.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&nbsp;requiredClass,
                               <A HREF="../../../com/saxonica/bytecode/util/OnEmpty.html" title="class in com.saxonica.bytecode.util">OnEmpty</A>&nbsp;onEmpty)
                        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 expression leaving a plain Java value on the stack. This method
 must only be called if the static type of the expressionis such that the value is known to be representable
 by a value of the specified class; the cardinality must be either exactly-one or zero-or-one.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>compiler</CODE> - the compiler service<DD><CODE>expression</CODE> - the expression to be compiled<DD><CODE>requiredClass</CODE> - the class of the Java value that is to be left on the stack if the generated code
 exits normally. This must be one of Integer.TYPE, Double.TYPE, Float.TYPE, BigDecimal.class, CharSequence.class.<DD><CODE>onEmpty</CODE> - defines the action to be taken if the expression evaluates to the empty sequence.
 May be null if the expression is known statically not to evaluate to an empty sequence. If the return
 class is a primitive type (double, float, etc) this must be an instance of <A HREF="../../../com/saxonica/bytecode/util/OnEmpty.UnwindAndJump.html" title="class in com.saxonica.bytecode.util"><CODE>OnEmpty.UnwindAndJump</CODE></A>
<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="handleEmptyStringResult(com.saxonica.bytecode.util.OnEmpty, com.saxonica.bytecode.util.Generator, com.saxonica.bytecode.util.GeneratedMethodInfo, com.saxonica.bytecode.util.LabelInfo)"><!-- --></A><H3>
handleEmptyStringResult</H3>
<PRE>
public static void <B>handleEmptyStringResult</B>(<A HREF="../../../com/saxonica/bytecode/util/OnEmpty.html" title="class in com.saxonica.bytecode.util">OnEmpty</A>&nbsp;onEmpty,
                                           <A HREF="../../../com/saxonica/bytecode/util/Generator.html" title="class in com.saxonica.bytecode.util">Generator</A>&nbsp;ga,
                                           <A HREF="../../../com/saxonica/bytecode/util/GeneratedMethodInfo.html" title="class in com.saxonica.bytecode.util">GeneratedMethodInfo</A>&nbsp;methodInfo,
                                           <A HREF="../../../com/saxonica/bytecode/util/LabelInfo.html" title="class in com.saxonica.bytecode.util">LabelInfo</A>&nbsp;exit)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="compileToPush(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)"><!-- --></A><H3>
compileToPush</H3>
<PRE>
public abstract 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 expression in push mode
 Precondition: none.
 Postcondition: at execution time, the stack is unchanged, and the value of the expression has been
 written to the current receiver
<P>
<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>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>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="unboxItem(com.saxonica.bytecode.util.Generator, java.lang.Class)"><!-- --></A><H3>
unboxItem</H3>
<PRE>
public void <B>unboxItem</B>(<A HREF="../../../com/saxonica/bytecode/util/Generator.html" title="class in com.saxonica.bytecode.util">Generator</A>&nbsp;ga,
                      <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&nbsp;requiredClass)</PRE>
<DL>
<DD>Generate code to extract a primitive value from an Item (actually an Atomic value)
 given knowledge of the primitive type of the item
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>ga</CODE> - the generator adapter<DD><CODE>requiredClass</CODE> - the type of value required</DL>
</DD>
</DL>
<HR>

<A NAME="compileItemFromInt(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)"><!-- --></A><H3>
compileItemFromInt</H3>
<PRE>
protected final void <B>compileItemFromInt</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>Helper method to implement compileFromItem when the class implements compileToPrimitive returning an integer
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>compiler</CODE> - <DD><CODE>expression</CODE> - 
<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="compileItemFromString(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression)"><!-- --></A><H3>
compileItemFromString</H3>
<PRE>
protected final void <B>compileItemFromString</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>Helper method to implement compileFromItem when the class implements compileToString
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>compiler</CODE> - <DD><CODE>expression</CODE> - 
<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="visitAnnotation(com.saxonica.bytecode.util.CompilerService, java.lang.String)"><!-- --></A><H3>
visitAnnotation</H3>
<PRE>
public static void <B>visitAnnotation</B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                                   <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;message)</PRE>
<DL>
<DD>Generate annotations in the bytecode, for diagnostic purposes
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>compiler</CODE> - <DD><CODE>message</CODE> - the message to be inserted in the bytecode</DL>
</DD>
</DL>
<HR>

<A NAME="allocateStatic(com.saxonica.bytecode.util.CompilerService, java.lang.Object)"><!-- --></A><H3>
allocateStatic</H3>
<PRE>
public static void <B>allocateStatic</B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                                  <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>&nbsp;value)</PRE>
<DL>
<DD>Generate code to allocate static field in widget and to push field on stack
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>compiler</CODE> - the CompilerService<DD><CODE>value</CODE> - the Object of the field</DL>
</DD>
</DL>
<HR>

<A NAME="throwXPathException(com.saxonica.bytecode.util.CompilerService, java.lang.String, java.lang.String, javax.xml.transform.SourceLocator, boolean)"><!-- --></A><H3>
throwXPathException</H3>
<PRE>
public static void <B>throwXPathException</B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                                       <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;message,
                                       <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;errorCode,
                                       <A HREF="http://download.oracle.com/javase/6/docs/api/javax/xml/transform/SourceLocator.html?is-external=true" title="class or interface in javax.xml.transform">SourceLocator</A>&nbsp;locator,
                                       boolean&nbsp;isTypeError)</PRE>
<DL>
<DD>Generate code to throw an XPath Exception. This can only be used if all properties of the exception
 including the message are known statically
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="throwXPathException(com.saxonica.bytecode.util.CompilerService, com.saxonica.bytecode.util.MessageBuilder, java.lang.String, javax.xml.transform.SourceLocator, boolean)"><!-- --></A><H3>
throwXPathException</H3>
<PRE>
public static void <B>throwXPathException</B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                                       <A HREF="../../../com/saxonica/bytecode/util/MessageBuilder.html" title="interface in com.saxonica.bytecode.util">MessageBuilder</A>&nbsp;builder,
                                       <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;errorCode,
                                       <A HREF="http://download.oracle.com/javase/6/docs/api/javax/xml/transform/SourceLocator.html?is-external=true" title="class or interface in javax.xml.transform">SourceLocator</A>&nbsp;locator,
                                       boolean&nbsp;isTypeError)</PRE>
<DL>
<DD>Generate code to throw an XPath Exception. The message is constructed at runtime using the MessageBuilder.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="verify(org.objectweb.asm.ClassWriter, java.lang.String, boolean)"><!-- --></A><H3>
verify</H3>
<PRE>
public static void <B>verify</B>(org.objectweb.asm.ClassWriter&nbsp;cw,
                          <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;objectName,
                          boolean&nbsp;debug)
                   throws <A HREF="../../../com/saxonica/bytecode/util/CannotCompileException.html" title="class in com.saxonica.bytecode.util">CannotCompileException</A></PRE>
<DL>
<DD>Verify the generated bytecode, for diagnostic purposes
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cw</CODE> - the ClassWriter<DD><CODE>objectName</CODE> - 
<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="visitLineNumber(com.saxonica.bytecode.util.CompilerService, com.saxonica.bytecode.util.Generator, net.sf.saxon.expr.Expression)"><!-- --></A><H3>
visitLineNumber</H3>
<PRE>
public static void <B>visitLineNumber</B>(<A HREF="../../../com/saxonica/bytecode/util/CompilerService.html" title="class in com.saxonica.bytecode.util">CompilerService</A>&nbsp;compiler,
                                   <A HREF="../../../com/saxonica/bytecode/util/Generator.html" title="class in com.saxonica.bytecode.util">Generator</A>&nbsp;ga,
                                   <A HREF="../../../net/sf/saxon/expr/Expression.html" title="class in net.sf.saxon.expr">Expression</A>&nbsp;expr)</PRE>
<DL>
<DD>Generate line number of expression in byte-code
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>compiler</CODE> - <DD><CODE>ga</CODE> - the generator adapter<DD><CODE>expr</CODE> - Expression</DL>
</DD>
</DL>
<HR>

<A NAME="generateMethod(com.saxonica.bytecode.util.CompilerService, net.sf.saxon.expr.Expression, org.objectweb.asm.ClassVisitor)"><!-- --></A><H3>
generateMethod</H3>
<PRE>
public void <B>generateMethod</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,
                           org.objectweb.asm.ClassVisitor&nbsp;cv)</PRE>
<DL>
<DD><DL>
</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/ExistsCompiler.html" title="class in com.saxonica.bytecode"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../com/saxonica/bytecode/FilterExpressionCompiler.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/ExpressionCompiler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ExpressionCompiler.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>