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 intcodecode of this operationprotected static byte[]unary_prmtnsunary 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 voidcompile(ClassFile cf)Called to generate the code implementing this OP.java.lang.Objecteval()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:OPCalled to generate the code implementing this OP.
-
eval
public java.lang.Object eval() throws java.lang.ExceptionDescription copied from class:OPCalled 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.
-
-