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

  1. package espresso;
  2.  
  3. class TypSet {
  4.    TypSet next;
  5.    Typ typ;
  6.  
  7.    static Typ[] elems(TypSet var0) {
  8.       Typ[] var1 = new Typ[size(var0)];
  9.  
  10.       for(int var2 = 0; var2 < var1.length; ++var2) {
  11.          var1[var2] = var0.typ;
  12.          var0 = var0.next;
  13.       }
  14.  
  15.       return var1;
  16.    }
  17.  
  18.    static int size(TypSet var0) {
  19.       return var0 == null ? 0 : 1 + size(var0.next);
  20.    }
  21.  
  22.    static boolean subset(TypSet var0, TypSet var1) {
  23.       if (var0 == null) {
  24.          return true;
  25.       } else {
  26.          return elem(var1, var0.typ) && subset(var0.next, var1);
  27.       }
  28.    }
  29.  
  30.    static boolean elem(TypSet var0, Typ var1) {
  31.       if (var0 == null) {
  32.          return false;
  33.       } else {
  34.          return var1.subtype(var0.typ) || elem(var0.next, var1);
  35.       }
  36.    }
  37.  
  38.    static TypSet excl(TypSet var0, Typ var1) {
  39.       if (var0 == null) {
  40.          return null;
  41.       } else {
  42.          TypSet var2 = excl(var0.next, var1);
  43.          if (var0.typ.subtype(var1)) {
  44.             return var2;
  45.          } else {
  46.             return var2 == var0.next ? var0 : new TypSet(var0.typ, var2);
  47.          }
  48.       }
  49.    }
  50.  
  51.    static TypSet incl(TypSet var0, Typ var1) {
  52.       TypSet var2;
  53.       for(var2 = var0; var2 != null && !var1.subtype(var2.typ); var2 = var2.next) {
  54.       }
  55.  
  56.       return var2 != null ? var0 : new TypSet(var1, excl(var0, var1));
  57.    }
  58.  
  59.    TypSet(Typ var1, TypSet var2) {
  60.       this.typ = var1;
  61.       this.next = var2;
  62.    }
  63. }
  64.