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

  1. package sun.tools.tree;
  2.  
  3. import java.util.Hashtable;
  4. import sun.tools.java.Environment;
  5.  
  6. public class BinaryAssignExpression extends BinaryExpression {
  7.    Expression implementation;
  8.  
  9.    BinaryAssignExpression(int var1, int var2, Expression var3, Expression var4) {
  10.       super(var1, var2, var3.type, var3, var4);
  11.    }
  12.  
  13.    public Expression getImplementation() {
  14.       return (Expression)(this.implementation != null ? this.implementation : this);
  15.    }
  16.  
  17.    public Expression order() {
  18.       if (((Expression)this).precedence() >= super.left.precedence()) {
  19.          UnaryExpression var1 = (UnaryExpression)super.left;
  20.          super.left = var1.right;
  21.          var1.right = this.order();
  22.          return var1;
  23.       } else {
  24.          return this;
  25.       }
  26.    }
  27.  
  28.    public Vset check(Environment var1, Context var2, Vset var3, Hashtable var4) {
  29.       return ((BinaryExpression)this).checkValue(var1, var2, var3, var4);
  30.    }
  31.  
  32.    public Expression inline(Environment var1, Context var2) {
  33.       return this.implementation != null ? this.implementation.inline(var1, var2) : this.inlineValue(var1, var2);
  34.    }
  35.  
  36.    public Expression inlineValue(Environment var1, Context var2) {
  37.       if (this.implementation != null) {
  38.          return this.implementation.inlineValue(var1, var2);
  39.       } else {
  40.          super.left = super.left.inlineLHS(var1, var2);
  41.          super.right = super.right.inlineValue(var1, var2);
  42.          return this;
  43.       }
  44.    }
  45.  
  46.    public Expression copyInline(Context var1) {
  47.       return this.implementation != null ? this.implementation.copyInline(var1) : super.copyInline(var1);
  48.    }
  49.  
  50.    public int costInline(int var1, Environment var2, Context var3) {
  51.       return this.implementation != null ? this.implementation.costInline(var1, var2, var3) : super.costInline(var1, var2, var3);
  52.    }
  53. }
  54.