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

  1. package espresso;
  2.  
  3. import java.io.IOException;
  4.  
  5. class Import extends AST {
  6.    static Name periodS = Name.fromString(".");
  7.    static Name starS = Name.fromString("*");
  8.    IdRef pid;
  9.  
  10.    void print(int var1) {
  11.       System.out.print("import ");
  12.       this.pid.print();
  13.    }
  14.  
  15.    Item gen() {
  16.       return Item.voidItem;
  17.    }
  18.  
  19.    AST simplify() {
  20.       return this;
  21.    }
  22.  
  23.    Typ attr(Env var1, int var2, Typ var3) {
  24.       super.typ = var3;
  25.       return super.typ;
  26.    }
  27.  
  28.    void enterFields(Env var1) {
  29.       if (this.pid.tag == 2) {
  30.          Typ var2 = ((Select)this.pid).struc.attr(var1, 1, Typ.anyTyp);
  31.          if (var2.tag == 17) {
  32.             if (this.pid.name.equals(starS)) {
  33.                includeDir(var1, super.pos, var2.obj.fullname);
  34.             } else {
  35.                ClassObj var3 = new ClassObj(var2.obj.fullname.append(periodS).append(this.pid.name), this.pid.name);
  36.                includeClass(var1, var3);
  37.             }
  38.          } else if (var2.tag != 0) {
  39.             Report.error(this.pid.pos, String.valueOf("not a package: ").concat(String.valueOf(((IdRef)((Select)this.pid).struc).fullName())));
  40.          }
  41.       }
  42.  
  43.    }
  44.  
  45.    static void includeDir(Env var0, int var1, Name var2) {
  46.       try {
  47.          Scope var3 = ClassFile.directory(var2);
  48.  
  49.          for(ScopeEntry var4 = var3.elements(); var4 != null; var4 = var4.sibling) {
  50.             includeClass(var0, (ClassObj)var4.obj);
  51.          }
  52.       } catch (IOException var6) {
  53.          Report.error(var1, String.valueOf(String.valueOf(String.valueOf("error importing ").concat(String.valueOf(var2))).concat(String.valueOf(": "))).concat(String.valueOf(var6)));
  54.       }
  55.  
  56.    }
  57.  
  58.    static void includeClass(Env var0, ClassObj var1) {
  59.       for(ScopeEntry var2 = var0.importScope.lookup(var1.name); var2.scope == var0.importScope; var2 = var2.next()) {
  60.          if (((ClassObj)var2.obj).fullname.equals(var1.fullname)) {
  61.             return;
  62.          }
  63.       }
  64.  
  65.       var0.importScope.enter(var1);
  66.    }
  67.  
  68.    Import(int var1, IdRef var2) {
  69.       super(var1, 26);
  70.       this.pid = var2;
  71.    }
  72. }
  73.