home *** CD-ROM | disk | FTP | other *** search
- package espresso;
-
- class Synchronized extends Try {
- Item lockVar;
- AST lock;
-
- void print(int var1) {
- System.out.print("synchronized (");
- this.lock.print();
- System.out.print(") ");
- super.body.print();
- }
-
- Item gen() {
- Gen.statBegin(super.pos);
- this.lockVar = new LocalItem(super.pos, Gen.newLocal(this.lock.typ));
- this.lock.genLoad();
- this.lockVar.store(this.lock.typ);
- this.lockVar.load(this.lock.typ);
- Gen.emitop(194);
- super.gen();
- return Item.voidItem;
- }
-
- void genFinal() {
- this.lockVar.load(this.lock.typ);
- Gen.emitop(195);
- }
-
- Typ attr(Env var1, int var2, Typ var3) {
- Attr.checkObjectTyp(this.lock.pos, this.lock.attr(var1, 31, Typ.anyTyp));
- return super.attr(var1, var2, var3);
- }
-
- AST simplify() {
- super.simplify();
- this.lock = this.lock.simplify();
- return this;
- }
-
- void markCaptured(Bits var1) {
- this.lock.markCaptured(var1);
- super.body.markCaptured(var1);
- }
-
- Synchronized(int var1, AST var2, AST var3) {
- super(var1, var3, new ASTS(), new Block(var1, new ASTS()));
- this.lock = var2;
- }
- }
-