home *** CD-ROM | disk | FTP | other *** search
- package sun.tools.tree;
-
- import sun.tools.asm.Assembler;
- import sun.tools.java.Environment;
- import sun.tools.java.Type;
-
- public class NegativeExpression extends UnaryExpression {
- public NegativeExpression(int var1, Expression var2) {
- super(36, var1, var2.type, var2);
- }
-
- void selectType(Environment var1, Context var2, int var3) {
- if ((var3 & 128) != 0) {
- super.type = Type.tDouble;
- } else if ((var3 & 64) != 0) {
- super.type = Type.tFloat;
- } else if ((var3 & 32) != 0) {
- super.type = Type.tLong;
- } else {
- super.type = Type.tInt;
- }
-
- super.right = ((Node)this).convert(var1, var2, super.type, super.right);
- }
-
- Expression eval(int var1) {
- return new IntExpression(super.where, -var1);
- }
-
- Expression eval(long var1) {
- return new LongExpression(super.where, -var1);
- }
-
- Expression eval(float var1) {
- return new FloatExpression(super.where, -var1);
- }
-
- Expression eval(double var1) {
- return new DoubleExpression(super.where, -var1);
- }
-
- Expression simplify() {
- return (Expression)(super.right.op == 36 ? ((NegativeExpression)super.right).right : this);
- }
-
- public void codeValue(Environment var1, Context var2, Assembler var3) {
- super.right.codeValue(var1, var2, var3);
- var3.add(super.where, 116 + super.type.getTypeCodeOffset());
- }
- }
-