Package 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
Fields Modifier and Type Field Description int
code
code of this operationprotected static byte[]
unary_prmtns
unary 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 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 gnu.jel.OP
isWidening, isWidening, narrow, typeID, typeIDObject, widen
-
-
-
-
Constructor Detail
-
OPunary
public OPunary(java.util.Stack<OP> 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- Throws:
CompilationException
-
OPunary
public OPunary(java.util.Stack<OP> 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.- Throws:
CompilationException
-
-
Method Detail
-
compile
public void compile(ClassFile cf)
Description copied from class:OP
Called to generate the code implementing this OP.
-
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.
-
-