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

  1. package sun.tools.tree;
  2.  
  3. import java.io.PrintStream;
  4. import sun.tools.java.Constants;
  5. import sun.tools.java.Environment;
  6. import sun.tools.java.Type;
  7.  
  8. public class NaryExpression extends UnaryExpression {
  9.    Expression[] args;
  10.  
  11.    NaryExpression(int var1, int var2, Type var3, Expression var4, Expression[] var5) {
  12.       super(var1, var2, var3, var4);
  13.       this.args = var5;
  14.    }
  15.  
  16.    public Expression copyInline(Context var1) {
  17.       NaryExpression var2 = (NaryExpression)((Node)this).clone();
  18.       if (super.right != null) {
  19.          var2.right = super.right.copyInline(var1);
  20.       }
  21.  
  22.       var2.args = new Expression[this.args.length];
  23.  
  24.       for(int var3 = 0; var3 < this.args.length; ++var3) {
  25.          if (this.args[var3] != null) {
  26.             var2.args[var3] = this.args[var3].copyInline(var1);
  27.          }
  28.       }
  29.  
  30.       return var2;
  31.    }
  32.  
  33.    public int costInline(int var1, Environment var2, Context var3) {
  34.       int var4 = 3;
  35.       if (super.right != null) {
  36.          var4 += super.right.costInline(var1, var2, var3);
  37.       }
  38.  
  39.       for(int var5 = 0; var5 < this.args.length && var4 < var1; ++var5) {
  40.          if (this.args[var5] != null) {
  41.             var4 += this.args[var5].costInline(var1, var2, var3);
  42.          }
  43.       }
  44.  
  45.       return var4;
  46.    }
  47.  
  48.    public void print(PrintStream var1) {
  49.       var1.print("(" + Constants.opNames[super.op] + "#" + this.hashCode());
  50.       if (super.right != null) {
  51.          var1.print(" ");
  52.          super.right.print(var1);
  53.       }
  54.  
  55.       for(int var2 = 0; var2 < this.args.length; ++var2) {
  56.          var1.print(" ");
  57.          if (this.args[var2] != null) {
  58.             this.args[var2].print(var1);
  59.          } else {
  60.             var1.print("<null>");
  61.          }
  62.       }
  63.  
  64.       var1.print(")");
  65.    }
  66. }
  67.