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 -
Constructor Summary
-
Method Summary
-
Field Details
-
code
public int codecode of this operation -
unary_prmtns
protected static final byte[] unary_prmtnsunary promotions of base types
-
-
Constructor Details
-
OPunary
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 CompilationExceptionCreates 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 Details
-
compile
Description copied from class:OP
Called to generate the code implementing this OP. -
eval
public java.lang.Object eval() throws java.lang.ExceptionDescription 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.
-