OPcondtnl (JEL API)
Description: declaration: package: gnu.jel, class: OPcondtnl

Package gnu.jel

# Class OPcondtnl

java.lang.Object
gnu.jel.OP
gnu.jel.OPcondtnl

    public class OPcondtnl
    extends OP

A tree node, representing conditional.

- ## Field Summary

  ### Fields inherited from class gnu.jel.OP

  `chi, resID, resType, specialTypes, unwrapType`

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `OPcondtnl​(java.util.Stack<OP> paramOPs)` | Creates conditional operator.

- ## 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`

- ## Constructor Details

  - ### OPcondtnl

    public OPcondtnl​(java.util.Stack<OP> paramOPs) throws CompilationException
    Creates conditional operator.

    On entry the paramOPs should contain <boolean> <result of the 1st branch> <result of the 2nn branch>.

    Parameters:
      `paramOPs` - stack holding the operands
    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`