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 / NotEqualExpression.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  2.3 KB  |  81 lines

  1. package sun.tools.tree;
  2.  
  3. import sun.tools.asm.Assembler;
  4. import sun.tools.asm.Label;
  5. import sun.tools.java.CompilerError;
  6. import sun.tools.java.Environment;
  7.  
  8. public class NotEqualExpression extends BinaryEqualityExpression {
  9.    public NotEqualExpression(int var1, Expression var2, Expression var3) {
  10.       super(19, var1, var2, var3);
  11.    }
  12.  
  13.    Expression eval(int var1, int var2) {
  14.       return new BooleanExpression(super.where, var1 != var2);
  15.    }
  16.  
  17.    Expression eval(long var1, long var3) {
  18.       return new BooleanExpression(super.where, var1 != var3);
  19.    }
  20.  
  21.    Expression eval(float var1, float var2) {
  22.       return new BooleanExpression(super.where, var1 != var2);
  23.    }
  24.  
  25.    Expression eval(double var1, double var3) {
  26.       return new BooleanExpression(super.where, var1 != var3);
  27.    }
  28.  
  29.    Expression eval(boolean var1, boolean var2) {
  30.       return new BooleanExpression(super.where, var1 != var2);
  31.    }
  32.  
  33.    Expression simplify() {
  34.       return super.left.isConstant() && !super.right.isConstant() ? new NotEqualExpression(super.where, super.right, super.left) : this;
  35.    }
  36.  
  37.    void codeBranch(Environment var1, Context var2, Assembler var3, Label var4, boolean var5) {
  38.       super.left.codeValue(var1, var2, var3);
  39.       switch (super.left.type.getTypeCode()) {
  40.          case 0:
  41.          case 4:
  42.             if (!super.right.equals(0)) {
  43.                super.right.codeValue(var1, var2, var3);
  44.                var3.add(super.where, var5 ? 160 : 159, var4, var5);
  45.                return;
  46.             }
  47.             break;
  48.          case 1:
  49.          case 2:
  50.          case 3:
  51.          default:
  52.             throw new CompilerError("Unexpected Type");
  53.          case 5:
  54.             super.right.codeValue(var1, var2, var3);
  55.             var3.add(super.where, 148);
  56.             break;
  57.          case 6:
  58.             super.right.codeValue(var1, var2, var3);
  59.             var3.add(super.where, 149);
  60.             break;
  61.          case 7:
  62.             super.right.codeValue(var1, var2, var3);
  63.             var3.add(super.where, 151);
  64.             break;
  65.          case 8:
  66.          case 9:
  67.          case 10:
  68.             if (super.right.equals(0)) {
  69.                var3.add(super.where, var5 ? 199 : 198, var4, var5);
  70.                return;
  71.             }
  72.  
  73.             super.right.codeValue(var1, var2, var3);
  74.             var3.add(super.where, var5 ? 166 : 165, var4, var5);
  75.             return;
  76.       }
  77.  
  78.       var3.add(super.where, var5 ? 154 : 153, var4, var5);
  79.    }
  80. }
  81.