home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / sun / misc / RegexpNode.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  1.2 KB  |  81 lines

  1. package sun.misc;
  2.  
  3. import java.io.PrintStream;
  4.  
  5. class RegexpNode {
  6.    // $FF: renamed from: c char
  7.    char field_0;
  8.    RegexpNode firstchild;
  9.    RegexpNode nextsibling;
  10.    int depth;
  11.    boolean exact;
  12.    Object result;
  13.    // $FF: renamed from: re java.lang.String
  14.    String field_1;
  15.  
  16.    RegexpNode() {
  17.       this.field_0 = '#';
  18.       this.depth = 0;
  19.    }
  20.  
  21.    RegexpNode(char var1, int var2) {
  22.       this.field_0 = var1;
  23.       this.depth = var2;
  24.    }
  25.  
  26.    RegexpNode add(char var1) {
  27.       RegexpNode var2 = this.firstchild;
  28.       if (var2 == null) {
  29.          var2 = new RegexpNode(var1, this.depth + 1);
  30.       } else {
  31.          while(var2 != null) {
  32.             if (var2.field_0 == var1) {
  33.                return var2;
  34.             }
  35.  
  36.             var2 = var2.nextsibling;
  37.          }
  38.  
  39.          var2 = new RegexpNode(var1, this.depth + 1);
  40.          var2.nextsibling = this.firstchild;
  41.       }
  42.  
  43.       this.firstchild = var2;
  44.       return var2;
  45.    }
  46.  
  47.    RegexpNode find(char var1) {
  48.       for(RegexpNode var2 = this.firstchild; var2 != null; var2 = var2.nextsibling) {
  49.          if (var2.field_0 == var1) {
  50.             return var2;
  51.          }
  52.       }
  53.  
  54.       return null;
  55.    }
  56.  
  57.    void print(PrintStream var1) {
  58.       if (this.nextsibling != null) {
  59.          RegexpNode var2 = this;
  60.          var1.print("(");
  61.  
  62.          while(var2 != null) {
  63.             var1.write(var2.field_0);
  64.             if (var2.firstchild != null) {
  65.                var2.firstchild.print(var1);
  66.             }
  67.  
  68.             var2 = var2.nextsibling;
  69.             var1.write(var2 != null ? 124 : 41);
  70.          }
  71.  
  72.       } else {
  73.          var1.write(this.field_0);
  74.          if (this.firstchild != null) {
  75.             this.firstchild.print(var1);
  76.          }
  77.  
  78.       }
  79.    }
  80. }
  81.