Package 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

    Fields 
    Modifier and Type Field Description
    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

    Constructors 
    Constructor Description
    OPunary​(java.util.Stack<OP> paramOPs, int code)
    Constructs a new unary operation.
    OPunary​(java.util.Stack<OP> paramOPs, int targetID, java.lang.Class<?> targetClass, boolean allownarrowing)
    Creates conversion operation to the given class.
  • Method Summary

    Modifier and Type Method Description
    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 Details

    • code

      public int code
      code of this operation
    • unary_prmtns

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

    • OPunary

      public OPunary​(java.util.Stack<OP> 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
      Throws:
      CompilationException
    • OPunary

      public OPunary​(java.util.Stack<OP> 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.
      Throws:
      CompilationException
  • Method Details

    • compile

      public void compile​(ClassFile cf)
      Description copied from class: OP
      Called to generate the code implementing this OP.
      Specified by:
      compile in class 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.

      Specified by:
      eval in class OP
      Returns:
      an object to which this node evaluates
      Throws:
      java.lang.Exception