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

  1. package espresso;
  2.  
  3. class Synchronized extends Try {
  4.    Item lockVar;
  5.    AST lock;
  6.  
  7.    void print(int var1) {
  8.       System.out.print("synchronized (");
  9.       this.lock.print();
  10.       System.out.print(") ");
  11.       super.body.print();
  12.    }
  13.  
  14.    Item gen() {
  15.       Gen.statBegin(super.pos);
  16.       this.lockVar = new LocalItem(super.pos, Gen.newLocal(this.lock.typ));
  17.       this.lock.genLoad();
  18.       this.lockVar.store(this.lock.typ);
  19.       this.lockVar.load(this.lock.typ);
  20.       Gen.emitop(194);
  21.       super.gen();
  22.       return Item.voidItem;
  23.    }
  24.  
  25.    void genFinal() {
  26.       this.lockVar.load(this.lock.typ);
  27.       Gen.emitop(195);
  28.    }
  29.  
  30.    Typ attr(Env var1, int var2, Typ var3) {
  31.       Attr.checkObjectTyp(this.lock.pos, this.lock.attr(var1, 31, Typ.anyTyp));
  32.       return super.attr(var1, var2, var3);
  33.    }
  34.  
  35.    AST simplify() {
  36.       super.simplify();
  37.       this.lock = this.lock.simplify();
  38.       return this;
  39.    }
  40.  
  41.    void markCaptured(Bits var1) {
  42.       this.lock.markCaptured(var1);
  43.       super.body.markCaptured(var1);
  44.    }
  45.  
  46.    Synchronized(int var1, AST var2, AST var3) {
  47.       super(var1, var3, new ASTS(), new Block(var1, new ASTS()));
  48.       this.lock = var2;
  49.    }
  50. }
  51.