home *** CD-ROM | disk | FTP | other *** search
- package java.text;
-
- class PatternEntry$Parser {
- private String pattern;
- // $FF: renamed from: i int
- private int field_0;
- private StringBuffer newChars = new StringBuffer();
- private StringBuffer newExtension = new StringBuffer();
-
- public PatternEntry$Parser(String var1) {
- this.pattern = var1;
- this.field_0 = 0;
- }
-
- public PatternEntry next() throws ParseException {
- byte var1 = -1;
- this.newChars.setLength(0);
- this.newExtension.setLength(0);
- boolean var2 = true;
-
- label94:
- for(boolean var3 = false; this.field_0 < this.pattern.length(); ++this.field_0) {
- char var4 = this.pattern.charAt(this.field_0);
- if (var3) {
- if (var4 == '\'') {
- var3 = false;
- } else if (this.newChars.length() == 0) {
- this.newChars.append(var4);
- } else if (var2) {
- this.newChars.append(var4);
- } else {
- this.newExtension.append(var4);
- }
- } else {
- switch (var4) {
- case '\t':
- case '\n':
- case '\f':
- case '\r':
- case ' ':
- break;
- case '&':
- if (var1 != -1) {
- break label94;
- }
-
- var1 = -2;
- break;
- case '\'':
- var3 = true;
- var4 = this.pattern.charAt(++this.field_0);
- if (this.newChars.length() == 0) {
- this.newChars.append(var4);
- } else if (var2) {
- this.newChars.append(var4);
- } else {
- this.newExtension.append(var4);
- }
- break;
- case ',':
- if (var1 != -1) {
- break label94;
- }
-
- var1 = 2;
- break;
- case '/':
- var2 = false;
- break;
- case ';':
- if (var1 != -1) {
- break label94;
- }
-
- var1 = 1;
- break;
- case '<':
- if (var1 != -1) {
- break label94;
- }
-
- var1 = 0;
- break;
- case '=':
- if (var1 != -1) {
- break label94;
- }
-
- var1 = 3;
- break;
- default:
- if (var1 == -1) {
- 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);
- }
-
- if (PatternEntry.isSpecialChar(var4) && !var3) {
- throw new ParseException("Unquoted punctuation character : " + Integer.toString(var4, 16), this.field_0);
- }
-
- if (var2) {
- this.newChars.append(var4);
- } else {
- this.newExtension.append(var4);
- }
- }
- }
- }
-
- if (var1 == -1) {
- return null;
- } else if (this.newChars.length() == 0) {
- 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);
- } else {
- return new PatternEntry(var1, this.newChars, this.newExtension);
- }
- }
- }
-