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

  1. package espresso;
  2.  
  3. class Throw extends Jump {
  4.    AST expr;
  5.  
  6.    void print(int var1) {
  7.       System.out.print("throw ");
  8.       this.expr.print();
  9.    }
  10.  
  11.    Item gen() {
  12.       Gen.statBegin(super.pos);
  13.       this.expr.genLoad();
  14.       Gen.emitop(191);
  15.       return Item.voidItem;
  16.    }
  17.  
  18.    AST simplify() {
  19.       this.expr = this.expr.simplify();
  20.       return this;
  21.    }
  22.  
  23.    void markCaptured(Bits var1) {
  24.       this.expr.markCaptured(var1);
  25.       super.markCaptured(var1);
  26.       var1.clear();
  27.    }
  28.  
  29.    Typ attr(Env var1, int var2, Typ var3) {
  30.       for(Env var4 = var1; var4 != null && var4.parent.tag != 65 && var4.parent.tag != 67; var4 = var4.next) {
  31.          if (var4.parent.tag == 18) {
  32.             super.finalizers.addElement(var4.parent);
  33.          }
  34.       }
  35.  
  36.       Typ var5 = this.expr.attr(var1, 12, Predef.throwableTyp);
  37.       Typ var6 = Attr.unHandled(new TypSet(var5, (TypSet)null), var1.reported);
  38.       if (var6 != null) {
  39.          Report.error(super.pos, String.valueOf(String.valueOf("unreported exception: ").concat(String.valueOf(var6))).concat(String.valueOf("; must be caught or declared to be thrown")));
  40.       }
  41.  
  42.       super.typ = var3;
  43.       return super.typ;
  44.    }
  45.  
  46.    Throw(int var1, AST var2) {
  47.       super(var1, 13);
  48.       this.expr = var2;
  49.    }
  50. }
  51.