net.janino
Class Java.Crement

java.lang.Object
  |
  +--net.janino.Java.Located
        |
        +--net.janino.Java.Atom
              |
              +--net.janino.Java.Rvalue
                    |
                    +--net.janino.Java.Crement
All Implemented Interfaces:
Java.Locatable
Enclosing class:
Java

public static class Java.Crement
extends Java.Rvalue

Objects of this class represent represent one pre- or post-increment or decrement.


Fields inherited from class net.janino.Java.Rvalue
CONSTANT_VALUE_NULL, JUMP_IF_FALSE, JUMP_IF_TRUE
 
Constructor Summary
Java.Crement(Scanner.Location location, Java.Lvalue operand, java.lang.String operator)
           
Java.Crement(Scanner.Location location, java.lang.String operator, Java.Lvalue operand)
           
 
Method Summary
 void compile()
          Some Java.Rvalues compile more efficiently when their value is not needed, e.g.
 IClass compileGet()
          Generates code that determines the value of the Java.Rvalue and puts it on the operand stack.
 IClass getType()
           
 
Methods inherited from class net.janino.Java.Rvalue
compileBoolean, compileContext, compileGetValue, getConstantValue, getNegatedConstantValue, toRvalue
 
Methods inherited from class net.janino.Java.Atom
addConstantFloatInfo, addConstantIntegerInfo, addConstantStringInfo, allocateLocalVariable, compileError, createDummyCodeAttribute, getLocation, isType, newInserter, newOffset, newUnsetOffset, popInserter, pushInserter, restoreLocalVariables, saveLocalVariables, throwParseException, toLvalue, toLvalueOrCE, toLvalueOrPE, toRvalueOrCE, toRvalueOrPE, toType, toTypeOrCE, toTypeOrPE, write, writeBranch, writeByte, writeConstantClassInfo, writeConstantDoubleInfo, writeConstantFieldrefInfo, writeConstantFloatInfo, writeConstantIntegerInfo, writeConstantInterfaceMethodrefInfo, writeConstantLongInfo, writeConstantMethodrefInfo, writeConstantStringInfo, writeInt, writeOffset, writeOpcode, writeShort
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Java.Crement

public Java.Crement(Scanner.Location location,
                    java.lang.String operator,
                    Java.Lvalue operand)

Java.Crement

public Java.Crement(Scanner.Location location,
                    Java.Lvalue operand,
                    java.lang.String operator)
Method Detail

getType

public IClass getType()
               throws Java.CompileException
Overrides:
getType in class Java.Atom

compile

public void compile()
             throws Java.CompileException
Description copied from class: Java.Rvalue
Some Java.Rvalues compile more efficiently when their value is not needed, e.g. "i++".
Overrides:
compile in class Java.Rvalue

compileGet

public IClass compileGet()
                  throws Java.CompileException
Description copied from class: Java.Rvalue
Generates code that determines the value of the Java.Rvalue and puts it on the operand stack. This method relies on that the "context" of the Java.Rvalue is on top of the operand stack (see Java.Rvalue.compileContext()).
Overrides:
compileGet in class Java.Rvalue
Following copied from class: net.janino.Java.Rvalue
Returns:
The type of the Java.Rvalue