OPunary (JEL API)
Keywords: gnu.jel.OPunary class

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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(Stack paramOPs, int code)` Constructs a new unary operation.
`OPunary(Stack paramOPs, int targetID, 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.
`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(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
  Throws:
    `CompilationException`

### OPunary

    public OPunary(Stack paramOPs,
                   int targetID,
                   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 Object eval()
                throws 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:
    `Exception`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 1998-2006 Konstantin L. Metlov All Rights Reserved.