|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectgnu.jel.OP
gnu.jel.OPbinary
public class OPbinary
A tree node, representing binary operation.
Field Summary | |
---|---|
int |
code
code of this operation |
protected static byte[][] |
promotions
binary promotions of base types |
Fields inherited from class gnu.jel.OP |
---|
chi, resID, resType, specialTypes, unwrapType |
Constructor Summary | |
---|---|
OPbinary(Stack<OP> paramOPs,
int opcode)
Constructs a new binary operation. |
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 |
---|
public int code
protected static final byte[][] promotions
Constructor Detail |
---|
public OPbinary(Stack<OP> paramOPs, int opcode) throws CompilationException
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)
paramOPs
- stack holding the operandsopcode
- is the operation code
CompilationException
Method Detail |
---|
public void compile(ClassFile cf)
OP
compile
in class OP
cf
- class file with a new open method to write the code into.public Object eval() throws Exception
OP
Upon success this node is to be replaced by the constant node holding the returned object.
eval
in class OP
Exception
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |