OPbinary

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

## gnu.jel
Class OPbinary

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

public class OPbinary
extends OP

A tree node, representing binary operation.

Field Summary
`int` | `code` code of this operation

Fields inherited from class gnu.jel.OP
`chi, resID, resType, specialTypes, unwrapType`

Constructor Summary
`OPbinary(java.util.Stack paramOPs, int opcode)` Constructs a new binary operation.

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, typeID, typeIDObject`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### code

    public int code

  code of this operation

Constructor Detail

### OPbinary

    public OPbinary(java.util.Stack paramOPs,
                    int opcode)
             throws CompilationException

  Constructs a new binary operation.

  Codes are following:

       0   --  addition
       1   --  substraction
       2   --  multiplication
       3   --  division
       4   --  remainder
       5   --  bitwise AND
       6   --  bitwise OR
       7   --  bitwise and logical XOR
       8   --  comparizon for equality
       9   --  comparizon for non-equality
       10  --  comparizon for "less" <
       11  --  comparizon for "greater or equal" >=
       12  --  comparizon for "greater" >
       13  --  comparizon for "less or equal" <=
       14  --  bitwise left shift <<
       15  --  bitwise right signed shift >>
       16  --  bitwise right unsigned shift >>>
       17  --  logical conjunction operator (AND)
       18  --  logical disjunction operator (OR)
       19  --  array element access operation
       20  --  reserved (used internally for string concatenation)

Parameters:
  `paramOPs` - stack holding the operands
  `opcode` - is the operation code

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
    `java.lang.Exception`

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