Class ArithmeticCompiler


  • public class ArithmeticCompiler
    extends ToItemCompiler
    Generate bytecode for a call to the ArithmeticExpression
    • Constructor Detail

      • ArithmeticCompiler

        public ArithmeticCompiler()
    • Method Detail

      • 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 service
        expression - the expression to be compiled
        Throws:
        CannotCompileException - if the expression cannot be compiled to bytecode
      • compileToPrimitive

        public void compileToPrimitive​(CompilerService compiler,
                                       Expression expression,
                                       java.lang.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 service
        expression - the expression to be compiled
        requiredClass - 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 - if the expression cannot be compiled to bytecode