com.saxonica.bytecode

## Class InterpretedExpressionCompiler

- java.lang.Object
- - com.saxonica.bytecode.ExpressionCompiler
  - - com.saxonica.bytecode.ToIteratorCompiler
    - - com.saxonica.bytecode.InterpretedExpressionCompiler

-     public class InterpretedExpressionCompiler
      extends ToIteratorCompiler

  Bytecode generator for instructions that calls back to the interpreter. This generates code which simply invokes the interpreter for this instruction, including interpreting its subexpressions and patterns

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `InterpretedExpressionCompiler()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `compileToItem(CompilerService compiler, Expression expression)` Generate bytecode to evaluate the expression as an Item Precondition: none.
    `void` | `compileToIterator(CompilerService compiler, Expression expression)` Generate bytecode to evaluate the expression as an Iterator Precondition: none.
    `void` | `compileToPush(CompilerService compiler, Expression expression)` Generate bytecode to evaluate the expression Precondition: none.

    - ### Methods inherited from class com.saxonica.bytecode.ToIteratorCompiler

      `compileToBoolean`

    - ### Methods inherited from class com.saxonica.bytecode.ExpressionCompiler

      `allocateStatic, compileItemFromInt, compileItemFromString, compileToLoop, compileToPrimitive, generateMethod, handleEmptyStringResult, throwXPathException, throwXPathException, unboxItem, verify, visitAnnotation, visitLineNumber`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### InterpretedExpressionCompiler

          public InterpretedExpressionCompiler()

  - ### Method Detail

    - #### compileToItem

          public void compileToItem(CompilerService compiler,
                           Expression expression)
                             throws CannotCompileException

      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).
      Overrides:
        `compileToItem` in class `ToIteratorCompiler`
      Parameters:
        `compiler` - the compiler service
        `expression` - the expression to be compiled
      Throws:
        `CannotCompileException`

    - #### compileToIterator

          public void compileToIterator(CompilerService compiler,
                               Expression expression)
                                 throws CannotCompileException

      Generate bytecode to evaluate the expression as an Iterator Precondition: none. Postcondition: at execution time, the stack contains either an iterator (the result of the expression)
      Specified by:
        `compileToIterator` in class `ExpressionCompiler`
      Parameters:
        `compiler` - the compiler service
        `expression` - the expression to be compiled
      Throws:
        `CannotCompileException`

    - #### compileToPush

          public void compileToPush(CompilerService compiler,
                           Expression expression)
                             throws CannotCompileException

      Generate bytecode to evaluate the expression Precondition: none. Postcondition: at execution time, the stack contains either an iterator (the result of the expression)
      Overrides:
        `compileToPush` in class `ToIteratorCompiler`
      Parameters:
        `compiler` - the compiler service
        `expression` - the expression to be compiled
      Throws:
        `CannotCompileException`

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