com.saxonica.bytecode

## Class CalculatorCompiler

- java.lang.Object
- - com.saxonica.bytecode.CalculatorCompiler

- Direct Known Subclasses:
    CalculatorCompiler.AnyDivAny, CalculatorCompiler.AnyIdivAny, CalculatorCompiler.AnyMinusAny, CalculatorCompiler.AnyModAny, CalculatorCompiler.AnyPlusAny, CalculatorCompiler.AnyTimesAny, CalculatorCompiler.DecimalDivDecimal, CalculatorCompiler.DecimalIdivDecimal, CalculatorCompiler.DecimalMinusDecimal, CalculatorCompiler.DecimalModDecimal, CalculatorCompiler.DecimalPlusDecimal, CalculatorCompiler.DecimalTimesDecimal, CalculatorCompiler.DoubleDivDouble, CalculatorCompiler.DoubleMinusDouble, CalculatorCompiler.DoubleModDouble, CalculatorCompiler.DoublePlusDouble, CalculatorCompiler.DoubleTimesDouble, CalculatorCompiler.FloatDivFloat, CalculatorCompiler.FloatIdivFloat, CalculatorCompiler.FloatMinusFloat, CalculatorCompiler.FloatModFloat, CalculatorCompiler.FloatPlusFloat, CalculatorCompiler.FloatTimesFloat, CalculatorCompiler.IntegerDivInteger, CalculatorCompiler.IntegerIdivInteger, CalculatorCompiler.IntegerMinusInteger, CalculatorCompiler.IntegerModInteger, CalculatorCompiler.IntegerPlusInteger, CalculatorCompiler.IntegerTimesInteger

      public abstract class CalculatorCompiler
      extends Object

  This class generates bytecode for arithmetic expressions; it acts as a helper class to the ArithmeticCompiler class. There are many static subclasses for the different kinds of arithmetic expression

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `CalculatorCompiler.AnyDivAny` Arithmetic: anyAtomicType div AnyAtomicType
    `static class` | `CalculatorCompiler.AnyIdivAny` Arithmetic: anyAtomicType idiv AnyAtomicType
    `static class` | `CalculatorCompiler.AnyMinusAny` Arithmetic: anyAtomicType - AnyAtomicType
    `static class` | `CalculatorCompiler.AnyModAny`
    `static class` | `CalculatorCompiler.AnyPlusAny` Arithmetic: anyAtomicType + AnyAtomicType
    `static class` | `CalculatorCompiler.AnyTimesAny` Arithmetic: anyAtomicType * AnyAtomicType
    `static class` | `CalculatorCompiler.DecimalDivDecimal` Arithmetic: decimal / decimal (including types that promote to decimal, that is, integer)
    `static class` | `CalculatorCompiler.DecimalIdivDecimal` Arithmetic: decimal % decimal (including types that promote to decimal, that is, integer)
    `static class` | `CalculatorCompiler.DecimalMinusDecimal` Arithmetic: decimal - decimal (including types that promote to decimal, that is, integer)
    `static class` | `CalculatorCompiler.DecimalModDecimal` Arithmetic: decimal % decimal (including types that promote to decimal, that is, integer)
    `static class` | `CalculatorCompiler.DecimalPlusDecimal` Arithmetic: decimal + decimal (including types that promote to decimal, that is, integer)
    `static class` | `CalculatorCompiler.DecimalTimesDecimal` Arithmetic: decimal * decimal (including types that promote to decimal, that is, integer)
    `static class` | `CalculatorCompiler.DoubleDivDouble` Arithmetic: double / double (including types that promote to double)
    `static class` | `CalculatorCompiler.DoubleMinusDouble` Arithmetic: double - double (including types that promote to double)
    `static class` | `CalculatorCompiler.DoubleModDouble` Arithmetic: double % double (including types that promote to double)
    `static class` | `CalculatorCompiler.DoublePlusDouble` Arithmetic: double + double (including types that promote to double)
    `static class` | `CalculatorCompiler.DoubleTimesDouble` Arithmetic: double * double (including types that promote to double)
    `static class` | `CalculatorCompiler.FloatDivFloat` Arithmetic: float div float (including types that promote to float)
    `static class` | `CalculatorCompiler.FloatIdivFloat` Arithmetic: float idiv float (including types that promote to float)
    `static class` | `CalculatorCompiler.FloatMinusFloat` Arithmetic: float - float (including types that promote to float)
    `static class` | `CalculatorCompiler.FloatModFloat` Arithmetic: float mod float (including types that promote to float)
    `static class` | `CalculatorCompiler.FloatPlusFloat` Arithmetic: float + float (including types that promote to float))
    `static class` | `CalculatorCompiler.FloatTimesFloat` Arithmetic: float * float (including types that promote to float)
    `static class` | `CalculatorCompiler.IntegerDivInteger`
    `static class` | `CalculatorCompiler.IntegerIdivInteger`
    `static class` | `CalculatorCompiler.IntegerMinusInteger`
    `static class` | `CalculatorCompiler.IntegerModInteger`
    `static class` | `CalculatorCompiler.IntegerPlusInteger`
    `static class` | `CalculatorCompiler.IntegerTimesInteger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CalculatorCompiler()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract void` | `compute(Generator ga, SourceLocator locator)`
    `void` | `setCompilerService(CompilerService compiler)`
    `void` | `setExpressions(Expression oper0, Expression oper1)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CalculatorCompiler

          public CalculatorCompiler()

  - ### Method Detail

    - #### setCompilerService

          public void setCompilerService(CompilerService compiler)

    - #### setExpressions

          public void setExpressions(Expression oper0,
                            Expression oper1)

    - #### compute

          public abstract void compute(Generator ga,
                     SourceLocator locator)

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