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

  1. package sun.tools.tree;
  2.  
  3. import java.io.PrintStream;
  4. import java.util.Hashtable;
  5. import sun.tools.asm.Assembler;
  6. import sun.tools.java.Environment;
  7. import sun.tools.java.Type;
  8.  
  9. public class DeclarationStatement extends Statement {
  10.    int mod;
  11.    Expression type;
  12.    Statement[] args;
  13.  
  14.    public DeclarationStatement(int var1, int var2, Expression var3, Statement[] var4) {
  15.       super(107, var1);
  16.       this.mod = var2;
  17.       this.type = var3;
  18.       this.args = var4;
  19.    }
  20.  
  21.    Vset check(Environment var1, Context var2, Vset var3, Hashtable var4) {
  22.       var1.error(super.where, "invalid.decl");
  23.       return this.checkBlockStatement(var1, var2, var3, var4);
  24.    }
  25.  
  26.    Vset checkBlockStatement(Environment var1, Context var2, Vset var3, Hashtable var4) {
  27.       var3 = ((Statement)this).reach(var1, var3);
  28.       Type var5 = this.type.toType(var1, var2);
  29.  
  30.       for(int var6 = 0; var6 < this.args.length; ++var6) {
  31.          var3 = this.args[var6].checkDeclaration(var1, var2, var3, this.mod, var5, var4);
  32.       }
  33.  
  34.       return var3;
  35.    }
  36.  
  37.    public Statement inline(Environment var1, Context var2) {
  38.       int var3 = 0;
  39.  
  40.       for(int var4 = 0; var4 < this.args.length; ++var4) {
  41.          if ((this.args[var4] = this.args[var4].inline(var1, var2)) != null) {
  42.             ++var3;
  43.          }
  44.       }
  45.  
  46.       if (var3 == 0) {
  47.          return null;
  48.       } else {
  49.          return this;
  50.       }
  51.    }
  52.  
  53.    public void code(Environment var1, Context var2, Assembler var3) {
  54.       for(int var4 = 0; var4 < this.args.length; ++var4) {
  55.          if (this.args[var4] != null) {
  56.             this.args[var4].code(var1, var2, var3);
  57.          }
  58.       }
  59.  
  60.    }
  61.  
  62.    public void print(PrintStream var1, int var2) {
  63.       var1.print("declare ");
  64.       super.print(var1, var2);
  65.       this.type.print(var1);
  66.       var1.print(" ");
  67.  
  68.       for(int var3 = 0; var3 < this.args.length; ++var3) {
  69.          if (var3 > 0) {
  70.             var1.print(", ");
  71.          }
  72.  
  73.          if (this.args[var3] != null) {
  74.             this.args[var3].print(var1);
  75.          } else {
  76.             var1.print("<empty>");
  77.          }
  78.       }
  79.  
  80.       var1.print(";");
  81.    }
  82. }
  83.