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 voidcompileToIterator(CompilerService compiler, Expression expression)Generate bytecode to evaluate the expression as aSequenceIteratorPrecondition: none.static voiditerate(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:ExpressionCompilerGenerate bytecode to evaluate the expression as aSequenceIteratorPrecondition: none. Postcondition: at execution time, the stack contains a SequenceIterator representing the result of the expression- Specified by:
compileToIteratorin 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
-
-