com.saxonica.bytecode
Class LetExpressionCompiler

java.lang.Object
  extended by com.saxonica.bytecode.ExpressionCompiler
      extended by com.saxonica.bytecode.ToIteratorCompiler
          extended by com.saxonica.bytecode.LetExpressionCompiler

public class LetExpressionCompiler
extends ToIteratorCompiler

Generate bytecode for evaluation of an LetExpression


Constructor Summary
LetExpressionCompiler()
           
 
Method Summary
static void compileCommonExpr(CompilerService compiler, Expression exp, int evaluationMode, int refCount)
          Helper method to generate bytecode the same for both compileToIterator and compileToItem Precondition: none.
 void compileToItem(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the LetExpression as an Item Precondition: none.
 void compileToIterator(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the LetExpression as an Iterator Precondition: none.
 void compileToPush(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the LetExpression as an Item 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, getConfiguration, handleEmptyStringResult, setConfiguration, 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

LetExpressionCompiler

public LetExpressionCompiler()
Method Detail

compileToItem

public void compileToItem(CompilerService compiler,
                          Expression expression)
                   throws CannotCompileException
Generate bytecode to evaluate the LetExpression as an Item Precondition: none. Postcondition: the stack contains an Item representing the result of the expression

Overrides:
compileToItem in class ToIteratorCompiler
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 LetExpression as an Item Precondition: none. Postcondition: the stack contains an Item representing the result of the expression

Overrides:
compileToPush 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 LetExpression as an Iterator Precondition: none. Postcondition: the stack contains an Item representing the result of the expression

Specified by:
compileToIterator in class ExpressionCompiler
Parameters:
compiler - the compiler service
expression - the expression to be compiled
Throws:
CannotCompileException

compileCommonExpr

public static void compileCommonExpr(CompilerService compiler,
                                     Expression exp,
                                     int evaluationMode,
                                     int refCount)
                              throws CannotCompileException
Helper method to generate bytecode the same for both compileToIterator and compileToItem Precondition: none. Postcondition: the stack contains the variable(s) already evaluated in the form of a ValueRepresentation object

Parameters:
compiler - the compiler service
exp - the expression to be compiled
Throws:
CannotCompileException


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