gnu.jel
Class OPunary

java.lang.Object
  |
  +--gnu.jel.OP
        |
        +--gnu.jel.OPunary

public class OPunary
extends OP

A tree node, representing unary operation.


Field Summary
 int code
          code of this operation
protected static byte[] unary_prmtns
          unary promotions of base types
 
Fields inherited from class gnu.jel.OP
chi, resID, resType, specialTypes, unwrapType
 
Constructor Summary
OPunary(java.util.Stack paramOPs, int code)
          Constructs a new unary operation.
OPunary(java.util.Stack paramOPs, int targetID, java.lang.Class targetClass, boolean allownarrowing)
          Creates conversion operation to the given class.
 
Method Summary
 void compile(ClassFile cf)
          Called to generate the code implementing this OP.
 java.lang.Object eval()
          Called to evaluate this node and all its sub-nodes.
 
Methods inherited from class gnu.jel.OP
isWidening, isWidening, narrow, typeID, typeIDObject, widen
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

code

public int code
code of this operation

unary_prmtns

protected static final byte[] unary_prmtns
unary promotions of base types
Constructor Detail

OPunary

public OPunary(java.util.Stack paramOPs,
               int code)
        throws CompilationException
Constructs a new unary operation.

Codes are following:

 0  -- negation (applicable to anything except boolean)
 1  -- bitwise not (applicable to all integral types)
 2  -- logical not (applicable to booleans only)
 3  -- return the type in stack
 
Parameters:
paramOPs - stack holding the operands
code - operation code

OPunary

public OPunary(java.util.Stack paramOPs,
               int targetID,
               java.lang.Class targetClass,
               boolean allownarrowing)
        throws CompilationException
Creates conversion operation to the given class.
Parameters:
paramOPs - stack holding the operands
targetID - ID of primitive type to convert to.
targetClass - the class to convert to, in case cldID=8
allownarrowing - if narrowing conversions are allowed.
Method Detail

compile

public void compile(ClassFile cf)
Description copied from class: OP
Called to generate the code implementing this OP.
Overrides:
compile in class OP
Following copied from class: gnu.jel.OP
Parameters:
cf - class file with a new open method to write the code into.

eval

public java.lang.Object eval()
                      throws java.lang.Exception
Description copied from class: OP
Called to evaluate this node and all its sub-nodes.

Upon success this node is to be replaced by the constant node holding the returned object.

Overrides:
eval in class OP
Following copied from class: gnu.jel.OP
Returns:
an object to which this node evaluates
Throws:
if - can't evaluate, in this case the sub-nodes