com.saxonica.bytecode
Class SimpleStepExpressionCompiler

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

public class SimpleStepExpressionCompiler
extends ToIteratorCompiler

Generate bytecode for a call to the SimpleStepExpression, which is a SlashExpression in which the lhs operand is known to return a singleton and the rhs operand is known to be an AxisExpression


Constructor Summary
SimpleStepExpressionCompiler()
           
 
Method Summary
 void compileToIterator(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the expression as a SequenceIterator Precondition: none.
 void compileToLoop(CompilerService compiler, Expression expression, LoopBodyGenerator loopBody)
          The compileToLoop method compiles this expression in such a way that the code generated by the supplied loopBody argument will be executed once for each item in the result of this expression.
 
Methods inherited from class com.saxonica.bytecode.ToIteratorCompiler
compileToBoolean, compileToItem, compileToPush
 
Methods inherited from class com.saxonica.bytecode.ExpressionCompiler
allocateStatic, compileItemFromInt, compileItemFromString, 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

SimpleStepExpressionCompiler

public SimpleStepExpressionCompiler()
Method Detail

compileToIterator

public void compileToIterator(CompilerService compiler,
                              Expression expression)
                       throws CannotCompileException
Description copied from class: ExpressionCompiler
Generate bytecode to evaluate the expression as a SequenceIterator Precondition: none. Postcondition: at execution time, the stack contains a SequenceIterator 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

compileToLoop

public void compileToLoop(CompilerService compiler,
                          Expression expression,
                          LoopBodyGenerator loopBody)
                   throws CannotCompileException
The compileToLoop method compiles this expression in such a way that the code generated by the supplied loopBody argument will be executed once for each item in the result of this expression. The code generated by the loopBody expects to find this item on the top of the bytecode stack.

Overrides:
compileToLoop in class ExpressionCompiler
Parameters:
compiler - the compiler service
expression - the expression to be compiled
loopBody - a generator which produces code to be executed once for every item in the result of this expression, with that item being on the top of the bytecode stack.
Throws:
CannotCompileException


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