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
-
-
-
-
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 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 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 classExpressionCompiler
- 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 expression Precondition: none. Postcondition: at execution time, the stack contains either an iterator (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
-
-