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 int
code
code of this operationprotected static byte[][]
promotions
binary promotions of base types -
Constructor Summary
-
Method Summary
-
Field Details
-
code
public int codecode of this operation -
promotions
protected static final byte[][] promotionsbinary promotions of base types
-
-
Constructor Details
-
OPbinary
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 Details
-
compile
Description copied from class:OP
Called to generate the code implementing this OP. -
eval
public java.lang.Object eval() throws java.lang.ExceptionDescription 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.
-