com.saxonica.bytecode
Class SlashExpressionCompiler

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

public class SlashExpressionCompiler
extends ToIteratorCompiler

Generate bytecode for a call to a SlashExpression or an xsl:for-each instruction (These have the same run-time semantics)


Constructor Summary
SlashExpressionCompiler()
           
 
Method Summary
 void compileToIterator(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the SlashExpression as a ContextMappingIterator Precondition: none.
 void compileToPush(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the expression in push mode Precondition: none.
static CompiledContextMappingFunction generateMappingFunction(CompilerService compiler, Expression step)
          Generate a mapping function for a given step expression
 
Methods inherited from class com.saxonica.bytecode.ToIteratorCompiler
compileToBoolean, compileToItem
 
Methods inherited from class com.saxonica.bytecode.ExpressionCompiler
allocateStatic, compileItemFromInt, compileItemFromString, compileToLoop, 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

SlashExpressionCompiler

public SlashExpressionCompiler()
Method Detail

compileToIterator

public void compileToIterator(CompilerService compiler,
                              Expression expression)
                       throws CannotCompileException
Generate bytecode to evaluate the SlashExpression as a ContextMappingIterator Precondition: none. Postcondition: the stack contains an iterator 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

generateMappingFunction

public static CompiledContextMappingFunction generateMappingFunction(CompilerService compiler,
                                                                     Expression step)
                                                              throws CannotCompileException
Generate a mapping function for a given step expression

Parameters:
compiler - the CompilerService
step - the step expression to form the body of the mapping action
Throws:
CannotCompileException

compileToPush

public void compileToPush(CompilerService compiler,
                          Expression expression)
                   throws CannotCompileException
Description copied from class: ExpressionCompiler
Generate bytecode to evaluate the expression in push mode Precondition: none. Postcondition: at execution time, the stack is unchanged, and the value of the expression has been written to the current receiver

Overrides:
compileToPush in class ToIteratorCompiler
Parameters:
compiler - the compiler service
expression - the expression to be compiled
Throws:
CannotCompileException


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