gnu.jel
Class OPunary
java.lang.Object
|
+--gnu.jel.OP
|
+--gnu.jel.OPunary
- public class OPunary
- extends OP
A tree node, representing unary operation.
Field Summary |
int |
code
code of this operation |
protected static byte[] |
unary_prmtns
unary promotions of base types |
Constructor Summary |
OPunary(java.util.Stack paramOPs,
int code)
Constructs a new unary operation. |
OPunary(java.util.Stack paramOPs,
int targetID,
java.lang.Class targetClass,
boolean allownarrowing)
Creates conversion operation to the given class. |
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
code
public int code
- code of this operation
unary_prmtns
protected static final byte[] unary_prmtns
- unary promotions of base types
OPunary
public OPunary(java.util.Stack paramOPs,
int code)
throws CompilationException
- Constructs a new unary operation.
Codes are following:
0 -- negation (applicable to anything except boolean)
1 -- bitwise not (applicable to all integral types)
2 -- logical not (applicable to booleans only)
3 -- return the type in stack
- Parameters:
paramOPs
- stack holding the operandscode
- operation code
OPunary
public OPunary(java.util.Stack paramOPs,
int targetID,
java.lang.Class targetClass,
boolean allownarrowing)
throws CompilationException
- Creates conversion operation to the given class.
- Parameters:
paramOPs
- stack holding the operandstargetID
- ID of primitive type to convert to.targetClass
- the class to convert to, in case cldID=8allownarrowing
- if narrowing conversions are allowed.
compile
public void compile(ClassFile cf)
- Description copied from class:
OP
- Called to generate the code implementing this OP.
- Overrides:
compile
in class OP
- Following copied from class:
gnu.jel.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.
- Overrides:
eval
in class OP
- Following copied from class:
gnu.jel.OP
- Returns:
- an object to which this node evaluates
- Throws:
if
- can't evaluate, in this case the sub-nodes