public class OPbinary extends OP
Modifier and Type | Field and Description |
---|---|
int |
code
code of this operation
|
protected static byte[][] |
promotions
binary promotions of base types
|
chi, resID, resType, specialTypes, unwrapType
Constructor and Description |
---|
OPbinary(java.util.Stack<OP> paramOPs,
int opcode)
Constructs a new binary operation.
|
Modifier and Type | Method and 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.
|
isWidening, isWidening, narrow, typeID, typeIDObject, widen
public int code
protected static final byte[][] promotions
public OPbinary(java.util.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 codeCompilationException
public void compile(ClassFile cf)
OP
public java.lang.Object eval() throws java.lang.Exception
OP
Upon success this node is to be replaced by the constant node holding the returned object.
Copyright © 1998-2017 Konstantin L. Metlov All Rights Reserved.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the JEL manual.