com.saxonica.bytecode
Class GeneralComparisonCompiler

java.lang.Object
  extended by com.saxonica.bytecode.ExpressionCompiler
      extended by com.saxonica.bytecode.ToBooleanCompiler
          extended by com.saxonica.bytecode.GeneralComparisonCompiler

public class GeneralComparisonCompiler
extends ToBooleanCompiler

Generate code for a GeneralComparison


Constructor Summary
GeneralComparisonCompiler()
           
 
Method Summary
 void compileToBoolean(CompilerService compiler, Expression expression)
          Generate bytecode to evaluate the expression as a boolean Precondition: none.
 void compileToBooleanManyToMany(CompilerService compiler, GeneralComparison comparison)
           
static void generateComparisonCode(CompilerService compiler, ComparisonExpression comparison, LabelInfo returnTrue, LabelInfo returnFalse, LabelInfo end, int item0Var, int item1Var, AtomicType type0, AtomicType type1, boolean checkTypes)
          Generate code to compare two items, leaving a boolean result on the top of the bytecode stack
 
Methods inherited from class com.saxonica.bytecode.ToBooleanCompiler
compileToItem, compileToIterator, compileToPush
 
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

GeneralComparisonCompiler

public GeneralComparisonCompiler()
Method Detail

compileToBoolean

public void compileToBoolean(CompilerService compiler,
                             Expression expression)
                      throws CannotCompileException
Description copied from class: ExpressionCompiler
Generate bytecode to evaluate the expression as a boolean Precondition: none. Postcondition: at execution time, the stack contains an integer (0=false, 1=true) representing the result of the expression

Specified by:
compileToBoolean in class ExpressionCompiler
Parameters:
compiler - the compiler service
expression - the expression to be compiled
Throws:
CannotCompileException

compileToBooleanManyToMany

public void compileToBooleanManyToMany(CompilerService compiler,
                                       GeneralComparison comparison)
                                throws CannotCompileException
Throws:
CannotCompileException

generateComparisonCode

public static void generateComparisonCode(CompilerService compiler,
                                          ComparisonExpression comparison,
                                          LabelInfo returnTrue,
                                          LabelInfo returnFalse,
                                          LabelInfo end,
                                          int item0Var,
                                          int item1Var,
                                          AtomicType type0,
                                          AtomicType type1,
                                          boolean checkTypes)
Generate code to compare two items, leaving a boolean result on the top of the bytecode stack

Parameters:
compiler - the compiler service
comparison - the comparison expression being compiled
returnTrue - label to jump to to return true
returnFalse - label to jump to to return false
end - label to jump to to exit, with the result on stack
item0Var - position of local variable (or if negative, argument) holding the first item
item1Var - position of local variable (or if negative, argument) holding the second item
type0 - static type of the first item
type1 - static type of the second item
checkTypes - if true, code needs to be generated to check the items are comparable


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