com.saxonica.bytecode
Class GeneralComparisonCompiler
java.lang.Object
com.saxonica.bytecode.ExpressionCompiler
com.saxonica.bytecode.ToBooleanCompiler
com.saxonica.bytecode.GeneralComparisonCompiler
public class GeneralComparisonCompiler
- extends ToBooleanCompiler
Generate code for a GeneralComparison
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.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 |
GeneralComparisonCompiler
public GeneralComparisonCompiler()
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 serviceexpression
- 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 servicecomparison
- the comparison expression being compiledreturnTrue
- label to jump to to return truereturnFalse
- label to jump to to return falseend
- label to jump to to exit, with the result on stackitem0Var
- position of local variable (or if negative, argument) holding the first itemitem1Var
- position of local variable (or if negative, argument) holding the second itemtype0
- static type of the first itemtype1
- static type of the second itemcheckTypes
- if true, code needs to be generated to check the items are comparable
Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.