Package com.saxonica.ee.bytecode
Class LetExpressionCompiler
- java.lang.Object
-
- com.saxonica.ee.bytecode.ExpressionCompiler
-
- com.saxonica.ee.bytecode.ToIteratorCompiler
-
- com.saxonica.ee.bytecode.LetExpressionCompiler
-
public class LetExpressionCompiler extends ToIteratorCompiler
Generate bytecode for evaluation of an LetExpression
-
-
Constructor Summary
Constructors Constructor Description LetExpressionCompiler()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
compileCommonExpr(CompilerService compiler, Expression exp, Evaluator 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.ee.bytecode.ToIteratorCompiler
compileToBoolean
-
Methods inherited from class com.saxonica.ee.bytecode.ExpressionCompiler
allocateStatic, compileItemFromInt, compileToPrimitive, generateMethod, handleEmptyStringResult, printStackTop, verify, visitAnnotation, visitLineNumber
-
-
-
-
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 classToIteratorCompiler
- Parameters:
compiler
- the compiler serviceexpression
- 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 LetExpression as an Item Precondition: none. Postcondition: the stack contains an Item representing the result of the expression- Overrides:
compileToPush
in classToIteratorCompiler
- Parameters:
compiler
- the compiler serviceexpression
- 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 LetExpression as an Iterator Precondition: none. Postcondition: the stack contains an Item representing the result of the expression- Specified by:
compileToIterator
in classExpressionCompiler
- Parameters:
compiler
- the compiler serviceexpression
- the expression to be compiled- Throws:
CannotCompileException
- if the expression cannot be compiled to bytecode
-
compileCommonExpr
public static void compileCommonExpr(CompilerService compiler, Expression exp, Evaluator 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 Sequence object- Parameters:
compiler
- the compiler serviceexp
- the expression to be compiledevaluationMode
- the evaluation moderefCount
- the nominal count of references to this variable- Throws:
CannotCompileException
- if the expression cannot be compiled to bytecode
-
-