com.saxonica.bytecode
Class ArithmeticCompiler
java.lang.Object
com.saxonica.bytecode.ExpressionCompiler
com.saxonica.bytecode.ToItemCompiler
com.saxonica.bytecode.ArithmeticCompiler
public class ArithmeticCompiler
- extends ToItemCompiler
Generate bytecode for a call to the ArithmeticExpression
Methods inherited from class com.saxonica.bytecode.ExpressionCompiler |
allocateStatic, compileItemFromInt, compileItemFromString, compileToLoop, 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 |
map
public static HashMap<Class<? extends Calculator>,CalculatorCompiler> map
ArithmeticCompiler
public ArithmeticCompiler()
compileToItem
public void compileToItem(CompilerService compiler,
Expression expression)
throws CannotCompileException
- Generate bytecode to evaluate the ArithmeticExpression
Precondition: none.
Postcondition: the stack contains an item representing the result of the expression
- Specified by:
compileToItem
in class ExpressionCompiler
- Parameters:
compiler
- the compiler serviceexpression
- the expression to be compiled
- Throws:
CannotCompileException
compileToPrimitive
public void compileToPrimitive(CompilerService compiler,
Expression expression,
Class requiredClass,
OnEmpty onEmpty)
throws CannotCompileException
- Generate bytecode to evaluate the expression leaving a plain Java value on the stack. The static type
of the expression must be such that the value is known to be representable by a value of the specified class;
the cardinality must be either exactly-one or zero-or-one.
- Overrides:
compileToPrimitive
in class ExpressionCompiler
- Parameters:
compiler
- the compiler serviceexpression
- the expression to be compiledrequiredClass
- the class of the Java value that is to be left on the stack if the generated code
exits normally. This must be one of Integer.TYPE, Double.TYPE, Float.TYPE, BigDecimal.class, CharSequence.class.onEmpty
- a label to which control will be transferred (with nothing on the stack) if the result of the
- Throws:
CannotCompileException
map
public static CalculatorCompiler map(Calculator calc)
throws CannotCompileException
- Throws:
CannotCompileException
Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.