home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / java / text / PatternEntry$Parser.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  1.8 KB  |  118 lines

  1. package java.text;
  2.  
  3. class PatternEntry$Parser {
  4.    private String pattern;
  5.    // $FF: renamed from: i int
  6.    private int field_0;
  7.    private StringBuffer newChars = new StringBuffer();
  8.    private StringBuffer newExtension = new StringBuffer();
  9.  
  10.    public PatternEntry$Parser(String var1) {
  11.       this.pattern = var1;
  12.       this.field_0 = 0;
  13.    }
  14.  
  15.    public PatternEntry next() throws ParseException {
  16.       byte var1 = -1;
  17.       this.newChars.setLength(0);
  18.       this.newExtension.setLength(0);
  19.       boolean var2 = true;
  20.  
  21.       label94:
  22.       for(boolean var3 = false; this.field_0 < this.pattern.length(); ++this.field_0) {
  23.          char var4 = this.pattern.charAt(this.field_0);
  24.          if (var3) {
  25.             if (var4 == '\'') {
  26.                var3 = false;
  27.             } else if (this.newChars.length() == 0) {
  28.                this.newChars.append(var4);
  29.             } else if (var2) {
  30.                this.newChars.append(var4);
  31.             } else {
  32.                this.newExtension.append(var4);
  33.             }
  34.          } else {
  35.             switch (var4) {
  36.                case '\t':
  37.                case '\n':
  38.                case '\f':
  39.                case '\r':
  40.                case ' ':
  41.                   break;
  42.                case '&':
  43.                   if (var1 != -1) {
  44.                      break label94;
  45.                   }
  46.  
  47.                   var1 = -2;
  48.                   break;
  49.                case '\'':
  50.                   var3 = true;
  51.                   var4 = this.pattern.charAt(++this.field_0);
  52.                   if (this.newChars.length() == 0) {
  53.                      this.newChars.append(var4);
  54.                   } else if (var2) {
  55.                      this.newChars.append(var4);
  56.                   } else {
  57.                      this.newExtension.append(var4);
  58.                   }
  59.                   break;
  60.                case ',':
  61.                   if (var1 != -1) {
  62.                      break label94;
  63.                   }
  64.  
  65.                   var1 = 2;
  66.                   break;
  67.                case '/':
  68.                   var2 = false;
  69.                   break;
  70.                case ';':
  71.                   if (var1 != -1) {
  72.                      break label94;
  73.                   }
  74.  
  75.                   var1 = 1;
  76.                   break;
  77.                case '<':
  78.                   if (var1 != -1) {
  79.                      break label94;
  80.                   }
  81.  
  82.                   var1 = 0;
  83.                   break;
  84.                case '=':
  85.                   if (var1 != -1) {
  86.                      break label94;
  87.                   }
  88.  
  89.                   var1 = 3;
  90.                   break;
  91.                default:
  92.                   if (var1 == -1) {
  93.                      throw new ParseException("missing char (=,;<&) : " + this.pattern.substring(this.field_0, this.field_0 + 10 < this.pattern.length() ? this.field_0 + 10 : this.pattern.length()), this.field_0);
  94.                   }
  95.  
  96.                   if (PatternEntry.isSpecialChar(var4) && !var3) {
  97.                      throw new ParseException("Unquoted punctuation character : " + Integer.toString(var4, 16), this.field_0);
  98.                   }
  99.  
  100.                   if (var2) {
  101.                      this.newChars.append(var4);
  102.                   } else {
  103.                      this.newExtension.append(var4);
  104.                   }
  105.             }
  106.          }
  107.       }
  108.  
  109.       if (var1 == -1) {
  110.          return null;
  111.       } else if (this.newChars.length() == 0) {
  112.          throw new ParseException("missing chars (=,;<&): " + this.pattern.substring(this.field_0, this.field_0 + 10 < this.pattern.length() ? this.field_0 + 10 : this.pattern.length()), this.field_0);
  113.       } else {
  114.          return new PatternEntry(var1, this.newChars, this.newExtension);
  115.       }
  116.    }
  117. }
  118.