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

  1. package espresso;
  2.  
  3. class Continue extends Jump {
  4.    JumpTarget target;
  5.    Name label;
  6.  
  7.    void print(int var1) {
  8.       System.out.print("continue");
  9.       if (this.label != null) {
  10.          System.out.print(String.valueOf(" ").concat(String.valueOf(this.label)));
  11.       }
  12.  
  13.    }
  14.  
  15.    Item gen() {
  16.       Gen.statBegin(super.pos);
  17.       ((Jump)this).finalisation();
  18.       this.target.cont = Gen.mergeLabels(this.target.cont, Gen.branch(167));
  19.       return Item.voidItem;
  20.    }
  21.  
  22.    AST simplify() {
  23.       return this;
  24.    }
  25.  
  26.    void markCaptured(Bits var1) {
  27.       super.markCaptured(var1);
  28.       this.target.contCapt.orSet(var1);
  29.       var1.clear();
  30.    }
  31.  
  32.    Typ attr(Env var1, int var2, Typ var3) {
  33.       this.target = ((Jump)this).findTarget(var1, this.label);
  34.       if (this.target instanceof Labelled) {
  35.          Labelled var4 = (Labelled)this.target;
  36.          if (var4.stat.tag != 11 && var4.stat.tag != 10 && var4.stat.tag != 8) {
  37.             Report.error(super.pos, String.valueOf("not a loop label: ").concat(String.valueOf(this.label)));
  38.          } else {
  39.             this.target = (JumpTarget)var4.stat;
  40.          }
  41.       }
  42.  
  43.       super.typ = var3;
  44.       return super.typ;
  45.    }
  46.  
  47.    Continue(int var1, Name var2) {
  48.       super(var1, 24);
  49.       this.label = var2;
  50.    }
  51. }
  52.