Package 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
Fields Modifier and Type Field Description intcodecode of this operationprotected static byte[][]promotionsbinary promotions of base types-
Fields inherited from class gnu.jel.OP
chi, resID, resType, specialTypes, unwrapType
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcompile(ClassFile cf)Called to generate the code implementing this OP.java.lang.Objecteval()Called to evaluate this node and all its sub-nodes.-
Methods inherited from class gnu.jel.OP
isWidening, isWidening, narrow, typeID, typeIDObject, widen
-
-
-
-
Constructor Detail
-
OPbinary
public OPbinary(java.util.Stack<OP> 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 operandsopcode- is the operation code- Throws:
CompilationException
-
-
Method Detail
-
compile
public void compile(ClassFile cf)
Description copied from class:OPCalled to generate the code implementing this OP.
-
eval
public java.lang.Object eval() throws java.lang.ExceptionDescription copied from class:OPCalled 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.
-
-