home *** CD-ROM | disk | FTP | other *** search
/ Tutto per Internet / Internet.iso / soft95 / Java / espints / espinst.exe / classes / espresso / Case.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-02-28  |  1.7 KB  |  71 lines

  1. package espresso;
  2.  
  3. class Case extends AST {
  4.    boolean valid = false;
  5.    int val;
  6.    AST[] stats;
  7.    AST pat;
  8.  
  9.    void print(int var1) {
  10.       Pretty.align();
  11.       if (this.pat == null) {
  12.          System.out.print("default");
  13.       } else {
  14.          System.out.print("case ");
  15.          this.pat.print();
  16.       }
  17.  
  18.       System.out.print(":\n");
  19.       Pretty.indent();
  20.       AST.printStats(this.stats);
  21.       Pretty.undent();
  22.    }
  23.  
  24.    Item gen() {
  25.       for(int var1 = 0; var1 < this.stats.length; ++var1) {
  26.          this.stats[var1].genDrop();
  27.       }
  28.  
  29.       return Item.voidItem;
  30.    }
  31.  
  32.    AST simplify() {
  33.       if (this.pat != null) {
  34.          this.pat = this.pat.simplify();
  35.       }
  36.  
  37.       for(int var1 = 0; var1 < this.stats.length; ++var1) {
  38.          this.stats[var1] = this.stats[var1].simplify();
  39.       }
  40.  
  41.       return this;
  42.    }
  43.  
  44.    void markCaptured(Bits var1) {
  45.       for(int var2 = 0; var2 < this.stats.length; ++var2) {
  46.          this.stats[var2].markCaptured(var1);
  47.       }
  48.  
  49.    }
  50.  
  51.    Typ attr(Env var1, int var2, Typ var3) {
  52.       if (this.pat != null) {
  53.          this.pat.attr(var1, 12, Typ.intTyp);
  54.       }
  55.  
  56.       super.typ = var3;
  57.  
  58.       for(int var4 = 0; var4 < this.stats.length; ++var4) {
  59.          super.typ = Attr.join(this.stats[var4].pos, super.typ, this.stats[var4].attr(var1, 12, var3));
  60.       }
  61.  
  62.       return super.typ;
  63.    }
  64.  
  65.    Case(int var1, AST var2, ASTS var3) {
  66.       super(var1, 19);
  67.       this.pat = var2;
  68.       this.stats = var3.shrink();
  69.    }
  70. }
  71.