Package gnu.jel

Class OPunary


  • public class OPunary
    extends OP
    A tree node, representing unary operation.
    • 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.
    • 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<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 Detail

      • 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