Package com.saxonica.ee.bytecode

## Class VariableReferenceCompiler

- java.lang.Object
- - com.saxonica.ee.bytecode.ExpressionCompiler
  - - com.saxonica.ee.bytecode.ToIteratorCompiler
    - - com.saxonica.ee.bytecode.VariableReferenceCompiler

-     public class VariableReferenceCompiler
      extends ToIteratorCompiler

  Generate bytecode for evaluation of a VariableReference

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `VariableReferenceCompiler()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `compileToBoolean​(CompilerService compiler, Expression expression)` | Generate bytecode to evaluate the expression as a boolean Precondition: none.
    `void` | `compileToItem​(CompilerService compiler, Expression expression)` | Generate bytecode to evaluate a VariableReference as an Item Precondition: none.
    `void` | `compileToIterator​(CompilerService compiler, Expression expression)` | Generate bytecode to evaluate a VariableReference as an Iterator Precondition: none.
    `void` | `compileToPush​(CompilerService compiler, Expression expression)` | Generate bytecode to evaluate a VariableReference in push mode Precondition: none.
    `static void` | `compileToSequence​(CompilerService compiler, VariableReference expression)` | Generate bytecode to evaluate a VariableReference as an Sequence Precondition: none.
    `static void` | `genEvaluateVariable​(CompilerService compiler, Generator ga, VariableReference expression)` |

    - ### 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

    - #### VariableReferenceCompiler

          public VariableReferenceCompiler()

  - ### Method Detail

    - #### compileToIterator

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

      Generate bytecode to evaluate a VariableReference as an Iterator Precondition: none. Postcondition: the stack contains an Iterator representing the evaluated variable
      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

    - #### compileToSequence

          public static void compileToSequence​(CompilerService compiler,
                                               VariableReference expression)
                                        throws CannotCompileException

      Generate bytecode to evaluate a VariableReference as an Sequence Precondition: none. Postcondition: the stack contains a Sequence representing the evaluated variable
      Parameters:
        `compiler` - the compiler service
        `expression` - the expression to be compiled
      Throws:
        `CannotCompileException` - if the expression cannot be compiled to bytecode

    - #### genEvaluateVariable

          public static void genEvaluateVariable​(CompilerService compiler,
                                                 Generator ga,
                                                 VariableReference expression)

    - #### compileToItem

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

      Generate bytecode to evaluate a VariableReference as an Item Precondition: none. Postcondition: the stack contains an Item representing the evaluated variable
      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

    - #### compileToPush

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

      Generate bytecode to evaluate a VariableReference in push mode Precondition: none. Postcondition: the stack is unchanged
      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

    - #### compileToBoolean

          public void compileToBoolean​(CompilerService compiler,
                                       Expression expression)
                                throws CannotCompileException

      Description copied from class: `ExpressionCompiler`
      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
      Overrides:
        `compileToBoolean` in class `ToIteratorCompiler`
      Parameters:
        `compiler` - the compiler service
        `expression` - the expression to be compiled
      Throws:
        `CannotCompileException` - if the expression cannot be compiled to bytecode