home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / sun / tools / tree / NegativeExpression.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  2.0 KB  |  51 lines

  1. package sun.tools.tree;
  2.  
  3. import sun.tools.asm.Assembler;
  4. import sun.tools.java.Environment;
  5. import sun.tools.java.Type;
  6.  
  7. public class NegativeExpression extends UnaryExpression {
  8.    public NegativeExpression(int var1, Expression var2) {
  9.       super(36, var1, var2.type, var2);
  10.    }
  11.  
  12.    void selectType(Environment var1, Context var2, int var3) {
  13.       if ((var3 & 128) != 0) {
  14.          super.type = Type.tDouble;
  15.       } else if ((var3 & 64) != 0) {
  16.          super.type = Type.tFloat;
  17.       } else if ((var3 & 32) != 0) {
  18.          super.type = Type.tLong;
  19.       } else {
  20.          super.type = Type.tInt;
  21.       }
  22.  
  23.       super.right = ((Node)this).convert(var1, var2, super.type, super.right);
  24.    }
  25.  
  26.    Expression eval(int var1) {
  27.       return new IntExpression(super.where, -var1);
  28.    }
  29.  
  30.    Expression eval(long var1) {
  31.       return new LongExpression(super.where, -var1);
  32.    }
  33.  
  34.    Expression eval(float var1) {
  35.       return new FloatExpression(super.where, -var1);
  36.    }
  37.  
  38.    Expression eval(double var1) {
  39.       return new DoubleExpression(super.where, -var1);
  40.    }
  41.  
  42.    Expression simplify() {
  43.       return (Expression)(super.right.op == 36 ? ((NegativeExpression)super.right).right : this);
  44.    }
  45.  
  46.    public void codeValue(Environment var1, Context var2, Assembler var3) {
  47.       super.right.codeValue(var1, var2, var3);
  48.       var3.add(super.where, 116 + super.type.getTypeCodeOffset());
  49.    }
  50. }
  51.