Package com.saxonica.ee.bytecode

## Class InterpretedExpressionCompiler

- java.lang.Object
- - com.saxonica.ee.bytecode.ExpressionCompiler
  - - com.saxonica.ee.bytecode.ToIteratorCompiler
    - - com.saxonica.ee.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 | Description
    --- | ---
    `InterpretedExpressionCompiler()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | 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.ee.bytecode.ToIteratorCompiler

      `compileToBoolean`

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

      `allocateStatic, compileItemFromInt, compileToPrimitive, generateMethod, handleEmptyStringResult, printStackTop, 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` - if the expression cannot be compiled to bytecode

    - #### 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` - if the expression cannot be compiled to bytecode

    - #### 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` - if the expression cannot be compiled to bytecode