Package com.saxonica.ee.bytecode
Class AxisExpressionCompiler
- java.lang.Object
-
- com.saxonica.ee.bytecode.ExpressionCompiler
-
- com.saxonica.ee.bytecode.ToIteratorCompiler
-
- com.saxonica.ee.bytecode.AxisExpressionCompiler
-
public class AxisExpressionCompiler extends ToIteratorCompiler
Generate bytecode for evaluation of an AxisExpression
-
-
Constructor Summary
Constructors Constructor Description AxisExpressionCompiler()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
compileToIterator(CompilerService compiler, Expression expression)
Generate bytecode to evaluate the expression as aSequenceIterator
Precondition: none.static void
iterate(CompilerService compiler, int axis, NodeTest test)
Generate code to iterate over the selected axis.-
Methods inherited from class com.saxonica.ee.bytecode.ToIteratorCompiler
compileToBoolean, compileToItem, compileToPush
-
Methods inherited from class com.saxonica.ee.bytecode.ExpressionCompiler
allocateStatic, compileItemFromInt, compileToPrimitive, generateMethod, handleEmptyStringResult, printStackTop, verify, visitAnnotation, visitLineNumber
-
-
-
-
Method Detail
-
compileToIterator
public void compileToIterator(CompilerService compiler, Expression expression) throws CannotCompileException
Description copied from class:ExpressionCompiler
Generate bytecode to evaluate the expression as aSequenceIterator
Precondition: none. Postcondition: at execution time, the stack contains a SequenceIterator 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
-
iterate
public static void iterate(CompilerService compiler, int axis, NodeTest test)
Generate code to iterate over the selected axis. Entry condition: the node forming the origin for the iteration is on the bytecode stack Exit condition: the iterator for the axisExpression is on the bytecode stack- Parameters:
compiler
- the compiler serviceaxis
- the axis to be iterated overtest
- the node test to be satisfied; possibly null if all nodes are selected
-
-