
com.upokecenter.mail.HeaderParser Maven / Gradle / Ivy
package com.upokecenter.mail;
final class HeaderParser {
private HeaderParser() {
}
public static int ParseAddrSpec(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseLocalPart(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
if (index < endIndex && (str.charAt(index) == 64)) {
++index;
} else {
index = indexStart; break;
}
tx2 = ParseDomain(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseAddress(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseMailbox(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = ParseGroup(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseAddressList(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
int tx2 = ParseAddress(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
break;
}
do {
int indexTemp3 = index;
do {
int indexTemp4 = ParseAddress(str, index, endIndex, tokener);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
indexTemp4 = ParseCFWS(str, index, endIndex, tokener);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
break;
}
} while (false);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseAngleAddr(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 60)) {
++index;
} else {
index = indexStart; break;
}
index = ParseObsRoute(str, index, endIndex, tokener);
int tx2 = ParseAddrSpec(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
if (index < endIndex && (str.charAt(index) == 62)) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseAtext(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
if (index < endIndex && ((str.charAt(index) >= 65 && str.charAt(index) <= 90) ||
(str.charAt(index) >= 97 && str.charAt(index) <= 122) || (str.charAt(index) >= 48 &&
str.charAt(index) <= 57) || (str.charAt(index) == 33) || (str.charAt(index) == 35) ||
(str.charAt(index) == 36) || (str.charAt(index) == 37) || (str.charAt(index) == 38) ||
(str.charAt(index) == 39) || (str.charAt(index) == 42) || (str.charAt(index) == 43) ||
(str.charAt(index) == 45) || (str.charAt(index) == 47) || (str.charAt(index) == 61) ||
(str.charAt(index) == 63) || (str.charAt(index) == 94) || (str.charAt(index) == 95) ||
(str.charAt(index) == 96) || (str.charAt(index) == 123) || (str.charAt(index) == 124)||
(str.charAt(index) == 125) || (str.charAt(index) == 126) || (str.charAt(index) >=
128 && str.charAt(index) <= 55295) || (str.charAt(index) >= 57344 && str.charAt(index)
<= 65535))) {
++indexTemp; break;
}
if (index + 1 < endIndex && ((str.charAt(index) >= 55296 && str.charAt(index) <=
56319) && (str.charAt(index + 1) >= 56320 && str.charAt(index + 1) <= 57343))) {
indexTemp += 2; break;
}
} while (false);
return indexTemp;
}
public static int ParseAtom(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
for (int i = 0; ; ++i) {
int indexTemp2 = ParseAtext(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseAuthresVersion(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
while (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
}
} else {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseAuthservId(String str, int index, int endIndex,
ITokener tokener) {
return ParseValue(str, index, endIndex, tokener);
}
public static int ParseCFWS(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
for (int i2 = 0; ; ++i2) {
int indexTemp3 = index;
do {
int indexStart3 = index;
index = ParseFWS(str, index, endIndex, tokener);
int tx4 = HeaderParserUtility.ParseCommentLax(str, index, endIndex,
tokener);
if (tx4 == index) {
index = indexStart3; break;
} else {
index = tx4;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
if (i2 < 1) {
index = indexStart2;
}
break;
}
}
if (index == indexStart2) {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
for (int i = 0; ; ++i) {
indexTemp2 = ParseFWS(str, index, endIndex, tokener);
if (indexTemp2 == index) {
if (i < 1) {
indexTemp = indexStart;
}
break;
} else {
index = indexTemp2;
}
}
index = indexStart;
if (indexTemp2 != indexStart) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseCertifierList(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseDomainName(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 58)) {
++index;
} else {
break;
}
int tx3 = ParseDomainName(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseCharset(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
if ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >= 35&&
str.charAt(index) <= 36)) || (str.charAt(index) == 38) || (str.charAt(index) == 43)||
(str.charAt(index) == 45) || ((str.charAt(index) >= 48 && str.charAt(index) <= 57))||
((str.charAt(index) >= 65 && str.charAt(index) <= 90)) || ((str.charAt(index) >= 94&&
str.charAt(index) <= 126))))) {
++index;
while ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >=
35 && str.charAt(index) <= 36)) || (str.charAt(index) == 38) || (str.charAt(index) ==
43) || (str.charAt(index) == 45) || ((str.charAt(index) >= 48 && str.charAt(index) <=
57)) || ((str.charAt(index) >= 65 && str.charAt(index) <= 90)) || ((str.charAt(index)
>= 94 && str.charAt(index) <= 126))))) {
++index;
}
} else {
break;
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseDate(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseDay(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
if (index + 2 < endIndex && (((str.charAt(index) & ~32) == 74 && (str.charAt(index+
1) & ~32) == 65 && (str.charAt(index + 2) & ~32) == 78) || ((str.charAt(index) & ~32) == 70 && (str.charAt(index + 1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 66) || ((str.charAt(index) & ~32) == 77 && (str.charAt(index + 1) & ~32)
== 65 && (str.charAt(index + 2) & ~32) == 82) || ((str.charAt(index) & ~32) ==
65 && (str.charAt(index + 1) & ~32) == 80 && (str.charAt(index + 2) & ~32) ==
82) || ((str.charAt(index) & ~32) == 77 && (str.charAt(index + 1) & ~32) == 65&&
(str.charAt(index + 2) & ~32) == 89) || ((str.charAt(index) & ~32) == 74 &&
(str.charAt(index + 1) & ~32) == 85 && (str.charAt(index + 2) & ~32) == 78) ||
((str.charAt(index) & ~32) == 74 && (str.charAt(index + 1) & ~32) == 85 &&
(str.charAt(index + 2) & ~32) == 76) || ((str.charAt(index) & ~32) == 65 &&
(str.charAt(index + 1) & ~32) == 85 && (str.charAt(index + 2) & ~32) == 71) ||
((str.charAt(index) & ~32) == 83 && (str.charAt(index + 1) & ~32) == 69 &&
(str.charAt(index + 2) & ~32) == 80) || ((str.charAt(index) & ~32) == 79 &&
(str.charAt(index + 1) & ~32) == 67 && (str.charAt(index + 2) & ~32) == 84) ||
((str.charAt(index) & ~32) == 78 && (str.charAt(index + 1) & ~32) == 79 &&
(str.charAt(index + 2) & ~32) == 86) || ((str.charAt(index) & ~32) == 68 &&
(str.charAt(index + 1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 67))) {
index += 3;
} else {
index = indexStart; break;
}
tx2 = ParseYear(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDateTime(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
int tx3 = ParseDayOfWeek(str, index, endIndex, tokener);
if (tx3 == index) {
break;
} else {
index = tx3;
}
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
int tx2 = ParseDate(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
tx2 = ParseTime(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDay(String str, int index, int endIndex, ITokener
tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
for (int i = 0; i < 2; ++i) {
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
} else if (i < 1) {
index = indexStart; break;
} else {
break;
}
}
if (index == indexStart) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDayOfWeek(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index + 2 < endIndex && (((str.charAt(index) & ~32) == 77 && (str.charAt(index+
1) & ~32) == 79 && (str.charAt(index + 2) & ~32) == 78) || ((str.charAt(index) & ~32) == 84 && (str.charAt(index + 1) & ~32) == 85 && (str.charAt(index + 2) & ~32) == 69) || ((str.charAt(index) & ~32) == 87 && (str.charAt(index + 1) & ~32)
== 69 && (str.charAt(index + 2) & ~32) == 68) || ((str.charAt(index) & ~32) ==
84 && (str.charAt(index + 1) & ~32) == 72 && (str.charAt(index + 2) & ~32) ==
85) || ((str.charAt(index) & ~32) == 70 && (str.charAt(index + 1) & ~32) == 82&&
(str.charAt(index + 2) & ~32) == 73) || ((str.charAt(index) & ~32) == 83 &&
(str.charAt(index + 1) & ~32) == 65 && (str.charAt(index + 2) & ~32) == 84) ||
((str.charAt(index) & ~32) == 83 && (str.charAt(index + 1) & ~32) == 85 &&
(str.charAt(index + 2) & ~32) == 78))) {
index += 3;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDesignator(String str, int index, int endIndex,
ITokener tokener) {
return ParseMilitaryString(str, index, endIndex, tokener);
}
public static int ParseDiagDeprecated(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index < endIndex && (str.charAt(index) == 33)) {
++index;
} else {
break;
}
do {
int indexTemp2 = index;
do {
int indexTemp3 = index;
do {
int indexStart3 = index;
if (index + 1 < endIndex && str.charAt(index) == 50 && str.charAt(index + 1) ==
53) {
index += 2;
} else {
break;
}
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 53)) {
++index;
} else {
index = indexStart3; break;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
indexTemp3 = index;
do {
int indexStart3 = index;
if (index + 1 < endIndex && (str.charAt(index) == 50) && (str.charAt(index +
1) >= 48 && str.charAt(index + 1) <= 52)) {
index += 2;
} else {
break;
}
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
} else {
index = indexStart3; break;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
if (index + 2 < endIndex && ((str.charAt(index) == 49) && ((str.charAt(index +
1) >= 48 && str.charAt(index + 1) <= 57) || (str.charAt(index + 2) >= 48 &&
str.charAt(index + 2) <= 57)))) {
indexTemp2 += 3; break;
}
if (index + 1 < endIndex && ((str.charAt(index) >= 49 && str.charAt(index) <=
57) && (str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57))) {
indexTemp2 += 2; break;
}
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++indexTemp2; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
index = indexStart; break;
}
} while (false);
if (index == indexStart) {
break;
}
for (int i = 0; i < 3; ++i) {
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
break;
}
do {
int indexTemp3 = index;
do {
int indexTemp4 = index;
do {
int indexStart4 = index;
if (index + 1 < endIndex && str.charAt(index) == 50 && str.charAt(index + 1) ==
53) {
index += 2;
} else {
break;
}
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <=
53)) {
++index;
} else {
index = indexStart4; break;
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
indexTemp4 = index;
do {
int indexStart4 = index;
if (index + 1 < endIndex && (str.charAt(index) == 50) &&
(str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 52)) {
index += 2;
} else {
break;
}
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <=
57)) {
++index;
} else {
index = indexStart4; break;
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
if (index + 2 < endIndex && ((str.charAt(index) == 49) &&
((str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57) ||
(str.charAt(index + 2) >= 48 && str.charAt(index + 2) <= 57)))) {
indexTemp3 += 3; break;
}
if (index + 1 < endIndex && ((str.charAt(index) >= 49 && str.charAt(index)
<= 57) && (str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57))) {
indexTemp3 += 2; break;
}
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <=
57)) {
++indexTemp3; break;
}
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
index = indexStart2; break;
}
} while (false);
if (index == indexStart2) {
break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 3) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDiagIdentity(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
for (int i2 = 0; ; ++i2) {
int indexTemp3 = index;
do {
int indexStart3 = index;
int tx4 = ParseLabel(str, index, endIndex, tokener);
if (tx4 == index) {
break;
} else {
index = tx4;
}
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
index = indexStart3; break;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
if (i2 < 1) {
index = indexStart2;
}
break;
}
}
if (index == indexStart2) {
break;
}
do {
int indexTemp3 = index;
do {
int indexTemp4 = index;
do {
int indexStart4 = index;
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)))) {
++index;
} else {
break;
}
for (int i4 = 0; ; ++i4) {
int indexTemp5 = index;
do {
if (index + 1 < endIndex && (((str.charAt(index) == 45) &&
(((str.charAt(index + 1) >= 65 && str.charAt(index + 1) <= 90)) ||
((str.charAt(index + 1) >= 97 && str.charAt(index + 1) <= 122)) ||
((str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57)))))) {
indexTemp5 += 2; break;
}
if (index < endIndex && (((str.charAt(index) >= 65 &&
str.charAt(index) <= 90)) || ((str.charAt(index) >= 97 && str.charAt(index)
<= 122)) || ((str.charAt(index) >= 48 && str.charAt(index) <= 57)))) {
++indexTemp5; break;
}
} while (false);
if (indexTemp5 != index) {
index = indexTemp5;
} else {
if (i4 < 1) {
index = indexStart4;
}
break;
}
}
if (index == indexStart4) {
break;
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
indexTemp4 = index;
do {
int indexStart4 = index;
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <=
57)) {
++index;
} else {
break;
}
while ((index < endIndex && (((str.charAt(index) >= 48 &&
str.charAt(index) <= 57)) || (str.charAt(index) == 45)))) {
++index;
}
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)))) {
++index;
} else {
index = indexStart4; break;
}
while (true) {
int indexTemp5 = index;
do {
if (index + 1 < endIndex && (((str.charAt(index) == 45) &&
(((str.charAt(index + 1) >= 65 && str.charAt(index + 1) <= 90)) ||
((str.charAt(index + 1) >= 97 && str.charAt(index + 1) <= 122)) ||
((str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57)))))) {
indexTemp5 += 2; break;
}
if (index < endIndex && (((str.charAt(index) >= 65 &&
str.charAt(index) <= 90)) || ((str.charAt(index) >= 97 && str.charAt(index)
<= 122)) || ((str.charAt(index) >= 48 && str.charAt(index) <= 57)))) {
++indexTemp5; break;
}
} while (false);
if (indexTemp5 != index) {
index = indexTemp5;
} else {
break;
}
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
index = indexStart2; break;
}
} while (false);
if (index == indexStart2) {
break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 48&&
str.charAt(index) <= 57)) || (str.charAt(index) == 45) || (str.charAt(index) ==
95)))) {
++indexTemp;
while ((indexTemp < endIndex && (((str.charAt(indexTemp) >= 65 &&
str.charAt(indexTemp) <= 90)) || ((str.charAt(indexTemp) >= 97 &&
str.charAt(indexTemp) <= 122)) || ((str.charAt(indexTemp) >= 48 &&
str.charAt(indexTemp) <= 57)) || (str.charAt(indexTemp) == 45) ||
(str.charAt(indexTemp) == 95)))) {
++indexTemp;
}
break;
}
// Unlimited production in choice
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDiagOther(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index + 1 < endIndex && str.charAt(index) == 33 && str.charAt(index + 1) == 46) {
index += 2;
} else {
break;
}
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 97 && str.charAt(index) <= 122))))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122))))) {
++index;
}
} else {
index = indexStart; break;
}
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
break;
}
int tx3 = ParseDiagIdentity(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDispNotParam(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >= 35&&
str.charAt(index) <= 36)) || (str.charAt(index) == 38) || (str.charAt(index) == 43)||
((str.charAt(index) >= 45 && str.charAt(index) <= 46)) || ((str.charAt(index) >= 48&&
str.charAt(index) <= 57)) || ((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 94 && str.charAt(index) <= 126))))) {
++index;
while ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >=
35 && str.charAt(index) <= 36)) || (str.charAt(index) == 38) || (str.charAt(index) ==
43) || ((str.charAt(index) >= 45 && str.charAt(index) <= 46)) || ((str.charAt(index)
>= 48 && str.charAt(index) <= 57)) || ((str.charAt(index) >= 65 && str.charAt(index)
<= 90)) || ((str.charAt(index) >= 94 && str.charAt(index) <= 126))))) {
++index;
}
} else {
index = indexStart; break;
}
if (index + 8 < endIndex && (str.charAt(index) == 61) && (((str.charAt(index + 1) & ~32) == 82 && (str.charAt(index + 2) & ~32) == 69 && (str.charAt(index + 3) & ~32) == 81 && (str.charAt(index + 4) & ~32) == 85 && (str.charAt(index + 5) & ~32) == 73 && (str.charAt(index + 6) & ~32) == 82 && (str.charAt(index + 7) & ~32) == 69 && (str.charAt(index + 8) & ~32) == 68) || ((str.charAt(index + 1) & ~32) == 79 && (str.charAt(index + 2) & ~32) == 80 && (str.charAt(index + 3) & ~32) == 84 && (str.charAt(index + 4) & ~32) == 73 && (str.charAt(index + 5) & ~32) == 79 && (str.charAt(index + 6) & ~32) == 78 && (str.charAt(index + 7) & ~32) == 65 && (str.charAt(index + 8) & ~32) == 76))) {
index += 9;
} else {
index = indexStart; break;
}
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
index = indexStart; break;
}
int tx2 = ParseValue(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
break;
}
int tx3 = ParseValue(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDisplayName(String str, int index, int endIndex,
ITokener tokener) {
return ParsePhrase(str, index, endIndex, tokener);
}
public static int ParseDistName(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
if (index < endIndex && ((str.charAt(index) >= 65 && str.charAt(index) <= 90) ||
(str.charAt(index) >= 97 && str.charAt(index) <= 122))) {
++indexTemp; break;
}
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
} else {
break;
}
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || (str.charAt(index) == 43)||
(str.charAt(index) == 45) || (str.charAt(index) == 95)))) {
++index;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
return indexTemp;
}
public static int ParseDomain(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseDomainLiteral(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
int tx3 = ParseAtom(str, index, endIndex, tokener);
if (tx3 == index) {
break;
} else {
index = tx3;
}
while (true) {
int indexTemp3;
int state3 = (tokener != null) ? tokener.GetState() : 0;
indexTemp3 = index;
do {
int indexStart3 = index;
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
break;
}
int tx4 = ParseAtom(str, index, endIndex, tokener);
if (tx4 == index) {
index = indexStart3; break;
} else {
index = tx4;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else if (tokener != null) {
tokener.RestoreState(state3); break;
} else {
break;
}
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
} while (false);
if (tokener != null) {
if (indexTemp == indexStart) {
tokener.RestoreState(state);
} else {
tokener.Commit(9, indexStart, indexTemp);
}
}
return indexTemp;
}
public static int ParseDomainLiteral(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 91)) {
++index;
} else {
index = indexStart; break;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseFWS(str, index, endIndex, tokener);
int tx3 = ParseDtext(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 93)) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDomainName(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 48 &&
str.charAt(index) <= 57)))) {
++index;
} else {
break;
}
index = ParseLdhStr(str, index, endIndex, tokener);
for (int i = 0; ; ++i) {
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index + 1 < endIndex && (str.charAt(index) == 46) && (((str.charAt(index +
1) >= 65 && str.charAt(index + 1) <= 90)) || ((str.charAt(index + 1) >= 97&&
str.charAt(index + 1) <= 122)) || ((str.charAt(index + 1) >= 48 &&
str.charAt(index + 1) <= 57)))) {
index += 2;
} else {
break;
}
index = ParseLdhStr(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDomainNoCfws(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseDotAtomText(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 91)) {
++index;
} else {
break;
}
while (true) {
int indexTemp3 = index;
do {
if (index < endIndex && ((str.charAt(index) >= 33 && str.charAt(index) <=
90) || (str.charAt(index) >= 94 && str.charAt(index) <= 126))) {
++indexTemp3; break;
}
int indexTemp4 = index;
do {
if (index < endIndex && ((str.charAt(index) >= 128 && str.charAt(index) <=
55295) || (str.charAt(index) >= 57344 && str.charAt(index) <= 65535))) {
++indexTemp4; break;
}
if (index + 1 < endIndex && ((str.charAt(index) >= 55296 &&
str.charAt(index) <= 56319) && (str.charAt(index + 1) >= 56320 &&
str.charAt(index + 1) <= 57343))) {
indexTemp4 += 2; break;
}
} while (false);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
break;
}
}
if (index < endIndex && (str.charAt(index) == 93)) {
++index;
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDotAtom(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
int tx2 = ParseDotAtomText(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDotAtomText(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
for (int i = 0; ; ++i) {
int indexTemp2 = ParseAtext(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
break;
}
for (int i2 = 0; ; ++i2) {
int indexTemp3 = ParseAtext(str, index, endIndex, tokener);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
if (i2 < 1) {
index = indexStart2;
}
break;
}
}
if (index == indexStart2) {
break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseDtext(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index < endIndex && ((str.charAt(index) >= 33 && str.charAt(index) <= 90) ||
(str.charAt(index) >= 94 && str.charAt(index) <= 126) || (str.charAt(index) >= 1 &&
str.charAt(index) <= 8) || (str.charAt(index) >= 11 && str.charAt(index) <= 12) ||
(str.charAt(index) >= 14 && str.charAt(index) <= 31) || (str.charAt(index) == 127))) {
++indexTemp; break;
}
int indexTemp2 = ParseQuotedPair(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (index < endIndex && ((str.charAt(index) >= 128 && str.charAt(index) <= 55295)||
(str.charAt(index) >= 57344 && str.charAt(index) <= 65535))) {
++indexTemp; break;
}
if (index + 1 < endIndex && ((str.charAt(index) >= 55296 && str.charAt(index) <=
56319) && (str.charAt(index + 1) >= 56320 && str.charAt(index + 1) <= 57343))) {
indexTemp += 2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseEncodingCount(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
while (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
}
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseEncodingKeyword(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)))) {
++index;
} else {
index = indexStart; break;
}
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 48&&
str.charAt(index) <= 57)) || (str.charAt(index) == 45)))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || (str.charAt(index) ==
45)))) {
++index;
}
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseFWS(String str, int index, int endIndex, ITokener
tokener) {
int indexStart = index;
int indexTemp = index;
do {
for (int i = 0; ; ++i) {
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index + 1 < endIndex && str.charAt(index) == 13 && str.charAt(index + 1) ==
10) {
index += 2;
}
if (index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) == 9))) {
++index;
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseGeneralKeyword(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 48&&
str.charAt(index) <= 57)) || (str.charAt(index) == 45)))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || (str.charAt(index) ==
45)))) {
++index;
}
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseGroup(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseDisplayName(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
if (index < endIndex && (str.charAt(index) == 58)) {
++index;
} else {
index = indexStart; break;
}
index = ParseGroupList(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null) {
if (indexTemp == indexStart) {
tokener.RestoreState(state);
} else {
tokener.Commit(5, indexStart, indexTemp);
}
}
return indexTemp;
}
public static int ParseGroupList(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseMailboxList(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = ParseObsGroupList(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
for (int i2 = 0; ; ++i2) {
int indexTemp3 = index;
do {
int indexStart3 = index;
index = ParseFWS(str, index, endIndex, tokener);
int tx4 = HeaderParserUtility.ParseCommentLax(str, index, endIndex,
tokener);
if (tx4 == index) {
index = indexStart3; break;
} else {
index = tx4;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
if (i2 < 1) {
index = indexStart2;
}
break;
}
}
if (index == indexStart2) {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
for (int i = 0; ; ++i) {
indexTemp2 = ParseFWS(str, index, endIndex, tokener);
if (indexTemp2 == index) {
if (i < 1) {
indexTemp = indexStart;
}
break;
} else {
index = indexTemp2;
}
}
index = indexStart;
if (indexTemp2 != indexStart) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderAcceptLanguage(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
int tx3 = ParseLanguageQ(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
while (true) {
int indexTemp3;
int state3 = (tokener != null) ? tokener.GetState() : 0;
indexTemp3 = index;
do {
int indexStart3 = index;
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
int tx4 = ParseLanguageQ(str, index, endIndex, tokener);
if (tx4 == index) {
index = indexStart3; break;
} else {
index = tx4;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else if (tokener != null) {
tokener.RestoreState(state3); break;
} else {
break;
}
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
indexTemp2 = ParseObsAcceptLanguage(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderAlternateRecipient(String str, int index,
int endIndex, ITokener tokener) {
return ParseMixerKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderArchive(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
do {
int indexTemp2 = index;
do {
if (index + 1 < endIndex && (str.charAt(index) & ~32) == 78 &&
(str.charAt(index + 1) & ~32) == 79) {
indexTemp2 += 2; break;
}
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 89 &&
(str.charAt(index + 1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 83) {
indexTemp2 += 3; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
index = indexStart; break;
}
} while (false);
if (index == indexStart) {
break;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
int tx3 = ParseParameter(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderArchivedAt(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 60)) {
++index;
} else {
index = indexStart; break;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (((str.charAt(index) >= 33 && str.charAt(index) <=
59)) || (str.charAt(index) == 61) || ((str.charAt(index) >= 63 && str.charAt(index)
<= 126)))) {
++index;
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 62)) {
++index;
} else {
index = indexStart; break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderAuthenticationResults(String str, int
index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
int tx2 = ParseAuthservId(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
int tx3 = ParseCFWS(str, index, endIndex, tokener);
if (tx3 == index) {
break;
} else {
index = tx3;
}
tx3 = ParseAuthresVersion(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
do {
int indexTemp2 = index;
do {
int indexTemp3 = ParseNoResult(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
int indexStart2 = index;
for (int i2 = 0; ; ++i2) {
indexTemp3 = ParseResinfo(str, index, endIndex, tokener);
if (indexTemp3 == index) {
if (i2 < 1) {
indexTemp2 = indexStart2;
}
break;
} else {
index = indexTemp3;
}
}
index = indexStart2;
if (indexTemp3 != indexStart2) {
indexTemp2 = indexTemp3; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
index = indexStart; break;
}
} while (false);
if (index == indexStart) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderAutoSubmitted(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >= 35&&
str.charAt(index) <= 36)) || ((str.charAt(index) >= 45 && str.charAt(index) <= 46))||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || ((str.charAt(index) >= 65&&
str.charAt(index) <= 90)) || ((str.charAt(index) >= 94 && str.charAt(index) <= 126))||
((str.charAt(index) >= 42 && str.charAt(index) <= 43)) || ((str.charAt(index) >= 38&&
str.charAt(index) <= 39)) || (str.charAt(index) == 63)))) {
++index;
while ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >=
35 && str.charAt(index) <= 36)) || ((str.charAt(index) >= 45 && str.charAt(index) <=
46)) || ((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || ((str.charAt(index)
>= 65 && str.charAt(index) <= 90)) || ((str.charAt(index) >= 94 && str.charAt(index)
<= 126)) || ((str.charAt(index) >= 42 && str.charAt(index) <= 43)) ||
((str.charAt(index) >= 38 && str.charAt(index) <= 39)) || (str.charAt(index) ==
63)))) {
++index;
}
} else {
index = indexStart; break;
}
while (true) {
int indexTemp2 = ParseOptParameterList(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderAutoforwarded(String str, int index, int
endIndex, ITokener tokener) {
return ParseMixerKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderBcc(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
do {
int indexTemp2 = index;
do {
int indexTemp3 = ParseAddressList(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
indexTemp3 = ParseCFWS(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderContentBase(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if ((index < endIndex && (((str.charAt(index) >= 33 && str.charAt(index) <= 59))||
(str.charAt(index) == 61) || ((str.charAt(index) >= 63 && str.charAt(index) <=
126))))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 33 && str.charAt(index) <=
59)) || (str.charAt(index) == 61) || ((str.charAt(index) >= 63 && str.charAt(index)
<= 126))))) {
++index;
}
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderContentDisposition(String str, int index,
int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >= 35&&
str.charAt(index) <= 36)) || ((str.charAt(index) >= 45 && str.charAt(index) <= 46))||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || ((str.charAt(index) >= 65&&
str.charAt(index) <= 90)) || ((str.charAt(index) >= 94 && str.charAt(index) <= 126))||
((str.charAt(index) >= 42 && str.charAt(index) <= 43)) || ((str.charAt(index) >= 38&&
str.charAt(index) <= 39)) || (str.charAt(index) == 63)))) {
++index;
while ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >=
35 && str.charAt(index) <= 36)) || ((str.charAt(index) >= 45 && str.charAt(index) <=
46)) || ((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || ((str.charAt(index)
>= 65 && str.charAt(index) <= 90)) || ((str.charAt(index) >= 94 && str.charAt(index)
<= 126)) || ((str.charAt(index) >= 42 && str.charAt(index) <= 43)) ||
((str.charAt(index) >= 38 && str.charAt(index) <= 39)) || (str.charAt(index) ==
63)))) {
++index;
}
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
break;
}
int tx3 = ParseParameter(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderContentDuration(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
for (int i = 0; i < 10; ++i) {
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
} else if (i < 1) {
index = indexStart; break;
} else {
break;
}
}
if (index == indexStart) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderContentId(String str, int index, int
endIndex, ITokener tokener) {
return ParseMsgId(str, index, endIndex, tokener);
}
public static int ParseHeaderContentLanguage(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
int tx2 = ParseLanguageList(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderContentLocation(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if ((index < endIndex && (((str.charAt(index) >= 33 && str.charAt(index) <= 59))||
(str.charAt(index) == 61) || ((str.charAt(index) >= 63 && str.charAt(index) <=
126))))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 33 && str.charAt(index) <=
59)) || (str.charAt(index) == 61) || ((str.charAt(index) >= 63 && str.charAt(index)
<= 126))))) {
++index;
}
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderContentMd5(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 47 &&
str.charAt(index) <= 57)) || (str.charAt(index) == 43) || (str.charAt(index) == 61))) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderContentTransferEncoding(String str, int
index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 48&&
str.charAt(index) <= 57)) || (str.charAt(index) == 45)))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || (str.charAt(index) ==
45)))) {
++index;
}
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderContentType(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
int tx2 = ParseRestrictedName(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
if (index < endIndex && (str.charAt(index) == 47)) {
++index;
} else {
index = indexStart; break;
}
tx2 = ParseRestrictedName(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
int tx3 = ParseParameter(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderControl(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int indexTemp = index;
do {
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
if ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >= 35&&
str.charAt(index) <= 36)) || ((str.charAt(index) >= 45 && str.charAt(index) <= 46))||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || ((str.charAt(index) >= 65&&
str.charAt(index) <= 90)) || ((str.charAt(index) >= 94 && str.charAt(index) <= 126))||
((str.charAt(index) >= 42 && str.charAt(index) <= 43)) || ((str.charAt(index) >= 38&&
str.charAt(index) <= 39)) || (str.charAt(index) == 63)))) {
++index;
while ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >=
35 && str.charAt(index) <= 36)) || ((str.charAt(index) >= 45 && str.charAt(index) <=
46)) || ((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || ((str.charAt(index)
>= 65 && str.charAt(index) <= 90)) || ((str.charAt(index) >= 94 && str.charAt(index)
<= 126)) || ((str.charAt(index) >= 42 && str.charAt(index) <= 43)) ||
((str.charAt(index) >= 38 && str.charAt(index) <= 39)) || (str.charAt(index) ==
63)))) {
++index;
}
} else {
index = indexStart; break;
}
while (true) {
int indexTemp2 = index;
do {
int indexStart2 = index;
if ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
} else {
break;
}
if (index < endIndex && (str.charAt(index) >= 33 && str.charAt(index) <= 126)) {
++index;
while (index < endIndex && (str.charAt(index) >= 33 && str.charAt(index) <=
126)) {
++index;
}
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseHeaderConversion(String str, int index, int
endIndex, ITokener tokener) {
return ParseMixerKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderConversionWithLoss(String str, int index,
int endIndex, ITokener tokener) {
return ParseMixerKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderDate(String str, int index, int endIndex,
ITokener tokener) {
return ParseDateTime(str, index, endIndex, tokener);
}
public static int ParseHeaderDeferredDelivery(String str, int index, int
endIndex, ITokener tokener) {
return ParseDateTime(str, index, endIndex, tokener);
}
public static int ParseHeaderDeliveryDate(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseDateTime(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
int tx3 = ParseDayOfWeek(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index + 2 < endIndex && (((str.charAt(index) & ~32) == 74 &&
(str.charAt(index + 1) & ~32) == 65 && (str.charAt(index + 2) & ~32) == 78) ||
((str.charAt(index) & ~32) == 70 && (str.charAt(index + 1) & ~32) == 69 &&
(str.charAt(index + 2) & ~32) == 66) || ((str.charAt(index) & ~32) == 77 &&
(str.charAt(index + 1) & ~32) == 65 && (str.charAt(index + 2) & ~32) == 82) ||
((str.charAt(index) & ~32) == 65 && (str.charAt(index + 1) & ~32) == 80 &&
(str.charAt(index + 2) & ~32) == 82) || ((str.charAt(index) & ~32) == 77 &&
(str.charAt(index + 1) & ~32) == 65 && (str.charAt(index + 2) & ~32) == 89) ||
((str.charAt(index) & ~32) == 74 && (str.charAt(index + 1) & ~32) == 85 &&
(str.charAt(index + 2) & ~32) == 78) || ((str.charAt(index) & ~32) == 74 &&
(str.charAt(index + 1) & ~32) == 85 && (str.charAt(index + 2) & ~32) == 76) ||
((str.charAt(index) & ~32) == 65 && (str.charAt(index + 1) & ~32) == 85 &&
(str.charAt(index + 2) & ~32) == 71) || ((str.charAt(index) & ~32) == 83 &&
(str.charAt(index + 1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 80) ||
((str.charAt(index) & ~32) == 79 && (str.charAt(index + 1) & ~32) == 67 &&
(str.charAt(index + 2) & ~32) == 84) || ((str.charAt(index) & ~32) == 78 &&
(str.charAt(index + 1) & ~32) == 79 && (str.charAt(index + 2) & ~32) == 86) ||
((str.charAt(index) & ~32) == 68 && (str.charAt(index + 1) & ~32) == 69 &&
(str.charAt(index + 2) & ~32) == 67))) {
index += 3;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
for (int i2 = 0; i2 < 2; ++i2) {
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
} else if (i2 < 1) {
index = indexStart2; break;
} else {
break;
}
}
if (index == indexStart2) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index + 2 < endIndex && ((str.charAt(index) >= 48 && str.charAt(index) <=
57) || (str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57)) &&
(str.charAt(index + 2) == 58)) {
index += 3;
} else {
index = indexStart2; break;
}
if (index + 2 < endIndex && ((str.charAt(index) >= 48 && str.charAt(index) <=
57) || (str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57)) &&
(str.charAt(index + 2) == 58)) {
index += 3;
} else {
index = indexStart2; break;
}
if (index + 1 < endIndex && ((str.charAt(index) >= 48 && str.charAt(index) <=
57) || (str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57))) {
index += 2;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
for (int i2 = 0; ; ++i2) {
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
} else if (i2 < 4) {
index = indexStart2; break;
} else {
break;
}
}
if (index == indexStart2) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderDiscloseRecipients(String str, int index,
int endIndex, ITokener tokener) {
return ParseMixerKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderDispositionNotificationOptions(String str,
int index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
int tx2 = ParseDispNotParam(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
break;
}
int tx3 = ParseDispNotParam(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderDispositionNotificationTo(String str, int
index, int endIndex, ITokener tokener) {
return ParseMailboxList(str, index, endIndex, tokener);
}
public static int ParseHeaderDistribution(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
int tx2 = ParseDistName(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseFWS(str, index, endIndex, tokener);
int tx3 = ParseDistName(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderDkimSignature(String str, int index, int
endIndex, ITokener tokener) {
return ParseNoEncodedWords(str, index, endIndex, tokener);
}
public static int ParseHeaderEdiintFeatures(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int indexTemp = index;
do {
if ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) == 9)))) {
++index;
}
if ((index < endIndex && (((str.charAt(index) >= 48 && str.charAt(index) <= 57))||
((str.charAt(index) >= 65 && str.charAt(index) <= 90)) || ((str.charAt(index) >= 97&&
str.charAt(index) <= 122)) || (str.charAt(index) == 45)))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 48 && str.charAt(index) <=
57)) || ((str.charAt(index) >= 65 && str.charAt(index) <= 90)) || ((str.charAt(index)
>= 97 && str.charAt(index) <= 122)) || (str.charAt(index) == 45)))) {
++index;
}
} else {
index = indexStart; break;
}
while (true) {
int indexTemp2 = index;
do {
int indexStart2 = index;
if ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
index = indexStart2; break;
}
if ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
if ((index < endIndex && (((str.charAt(index) >= 48 && str.charAt(index) <=
57)) || ((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || (str.charAt(index) ==
45)))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 48 && str.charAt(index)
<= 57)) || ((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || (str.charAt(index) ==
45)))) {
++index;
}
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseHeaderEesstVersion(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
if (index + 2 < endIndex && str.charAt(index) == 49 && str.charAt(index + 1) == 46&&
str.charAt(index + 2) == 48) {
index += 3;
} else {
index = indexStart; break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderEncoding(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
int tx3 = ParseEncodingCount(str, index, endIndex, tokener);
if (tx3 == index) {
break;
} else {
index = tx3;
}
for (int i2 = 0; ; ++i2) {
int indexTemp3 = ParseEncodingKeyword(str, index, endIndex,
tokener);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
if (i2 < 1) {
index = indexStart2;
}
break;
}
}
if (index == indexStart2) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
index = ParseEncodingCount(str, index, endIndex, tokener);
for (int i = 0; ; ++i) {
int indexTemp2 = ParseEncodingKeyword(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderEncrypted(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseWord(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
break;
}
int tx3 = ParseWord(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderFollowupTo(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseNewsgroupList(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = index;
do {
int indexStart2 = index;
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
if (index + 5 < endIndex && (str.charAt(index) & ~32) == 80 && (str.charAt(index+
1) & ~32) == 79 && (str.charAt(index + 2) & ~32) == 83 && (str.charAt(index+
3) & ~32) == 84 && (str.charAt(index + 4) & ~32) == 69 && (str.charAt(index+
5) & ~32) == 82) {
index += 6;
} else {
index = indexStart2; break;
}
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderFrom(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseMailboxList(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = ParseAddressList(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderGenerateDeliveryReport(String str, int
index, int endIndex, ITokener tokener) {
return ParseFWS(str, index, endIndex, tokener);
}
public static int ParseHeaderImportance(String str, int index, int
endIndex, ITokener tokener) {
return ParseMixerKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderInReplyTo(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexTemp3 = ParsePhrase(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
indexTemp3 = ParseMsgId(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderIncompleteCopy(String str, int index, int
endIndex, ITokener tokener) {
return ParseFWS(str, index, endIndex, tokener);
}
public static int ParseHeaderInjectionDate(String str, int index, int
endIndex, ITokener tokener) {
return ParseDateTime(str, index, endIndex, tokener);
}
public static int ParseHeaderInjectionInfo(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
int tx2 = ParsePathIdentity(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
index = ParseCFWS(str, index, endIndex, tokener);
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
int tx3 = ParseParameter(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderJabberId(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index < endIndex && (str.charAt(index) == 32)) {
++index;
} else {
break;
}
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
int tx2 = ParsePathxmpp(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderKeywords(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParsePhrase(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
break;
}
int tx3 = ParsePhrase(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderLanguage(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index + 1 < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90) || (str.charAt(index) >= 97 && str.charAt(index) <= 122)) && ((str.charAt(index+
1) >= 65 && str.charAt(index + 1) <= 90) || (str.charAt(index + 1) >= 97&&
str.charAt(index + 1) <= 122)))) {
index += 2;
} else {
break;
}
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122))))) {
++index;
}
do {
int indexTemp3 = index;
do {
int indexStart3 = index;
if (index < endIndex && (str.charAt(index) == 40)) {
++index;
} else {
break;
}
int tx4 = ParseLanguageDescription(str, index, endIndex,
tokener);
if (tx4 == index) {
index = indexStart3; break;
} else {
index = tx4;
}
if (index < endIndex && (str.charAt(index) == 41)) {
++index;
} else {
index = indexStart3; break;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
break;
}
} while (false);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
index = indexStart; break;
}
} while (false);
if (index == indexStart) {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderLatestDeliveryTime(String str, int index,
int endIndex, ITokener tokener) {
return ParseDateTime(str, index, endIndex, tokener);
}
public static int ParseHeaderListId(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
do {
int indexTemp2 = index;
do {
int indexTemp3 = ParsePhrase(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
indexTemp3 = ParseCFWS(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
if (index < endIndex && (str.charAt(index) == 60)) {
++index;
} else {
index = indexStart; break;
}
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseFWS(str, index, endIndex, tokener);
for (int i2 = 0; ; ++i2) {
int indexTemp3 = ParseAtext(str, index, endIndex, tokener);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
if (i2 < 1) {
index = indexStart2;
}
break;
}
}
if (index == indexStart2) {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseFWS(str, index, endIndex, tokener);
int tx3 = ParseDotAtomText(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
index = indexStart; break;
}
} while (false);
if (index == indexStart) {
break;
}
if (index < endIndex && (str.charAt(index) == 62)) {
++index;
} else {
index = indexStart; break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMessageContext(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 48&&
str.charAt(index) <= 57)) || (str.charAt(index) == 45)))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || (str.charAt(index) ==
45)))) {
++index;
}
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMessageId(String str, int index, int
endIndex, ITokener tokener) {
return ParseMsgId(str, index, endIndex, tokener);
}
public static int ParseHeaderMimeVersion(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
while (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
}
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
while (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
}
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsAcp127MessageIdentifier(String str, int
index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
for (int i = 0; i < 69; ++i) {
int indexTemp2 = ParsePsChar(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsCodressMessageIndicator(String str, int
index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseNonnegInteger(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsCopyPrecedence(String str, int index,
int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParsePrecedence(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsExemptedAddress(String str, int index,
int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseAddressList(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsExtendedAuthorisationInfo(String str,
int index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseDateTime(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsHandlingInstructions(String str, int
index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseMilitaryStringSequence(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsMessageInstructions(String str, int
index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseMilitaryStringSequence(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsMessageType(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
do {
int indexTemp2 = index;
do {
if (index < endIndex && (str.charAt(index) == 48)) {
++indexTemp2; break;
}
int indexTemp3 = index;
do {
int indexStart3 = index;
if (index < endIndex && (str.charAt(index) >= 49 && str.charAt(index) <= 57)) {
++index;
} else {
break;
}
while (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <=
57)) {
++index;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
if (index + 7 < endIndex && (str.charAt(index) & ~32) == 69 &&
(str.charAt(index + 1) & ~32) == 88 && (str.charAt(index + 2) & ~32) == 69&&
(str.charAt(index + 3) & ~32) == 82 && (str.charAt(index + 4) & ~32) ==
67 && (str.charAt(index + 5) & ~32) == 73 && (str.charAt(index + 6) & ~32)
== 83 && (str.charAt(index + 7) & ~32) == 69) {
indexTemp2 += 8; break;
}
if (index + 8 < endIndex && (str.charAt(index) & ~32) == 79 &&
(str.charAt(index + 1) & ~32) == 80 && (str.charAt(index + 2) & ~32) == 69&&
(str.charAt(index + 3) & ~32) == 82 && (str.charAt(index + 4) & ~32) ==
65 && (str.charAt(index + 5) & ~32) == 84 && (str.charAt(index + 6) & ~32)
== 73 && (str.charAt(index + 7) & ~32) == 79 && (str.charAt(index + 8) & ~32) == 78) {
indexTemp2 += 9; break;
}
if (index + 6 < endIndex && (str.charAt(index) & ~32) == 80 &&
(str.charAt(index + 1) & ~32) == 82 && (str.charAt(index + 2) & ~32) == 79&&
(str.charAt(index + 3) & ~32) == 74 && (str.charAt(index + 4) & ~32) ==
69 && (str.charAt(index + 5) & ~32) == 67 && (str.charAt(index + 6) & ~32)
== 84) {
indexTemp2 += 7; break;
}
if (index + 4 < endIndex && (str.charAt(index) & ~32) == 68 &&
(str.charAt(index + 1) & ~32) == 82 && (str.charAt(index + 2) & ~32) == 73&&
(str.charAt(index + 3) & ~32) == 76 && (str.charAt(index + 4) & ~32) ==
76) {
indexTemp2 += 5; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
index = indexStart; break;
}
} while (false);
if (index == indexStart) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
int tx3 = ParseMessageTypeParam(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsOriginatorPlad(String str, int index,
int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
for (int i = 0; i < 69; ++i) {
int indexTemp2 = ParsePsChar(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsOriginatorReference(String str, int
index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
for (int i = 0; i < 69; ++i) {
int indexTemp2 = ParsePsChar(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsOtherRecipientsIndicatorCc(String str,
int index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseDesignator(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseFWS(str, index, endIndex, tokener);
int tx3 = ParseDesignator(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsOtherRecipientsIndicatorTo(String str,
int index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseDesignator(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseFWS(str, index, endIndex, tokener);
int tx3 = ParseDesignator(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsPrimaryPrecedence(String str, int
index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParsePrecedence(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMmhsSubjectIndicatorCodes(String str, int
index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseSicSequence(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderMtPriority(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
do {
int indexTemp3 = index;
do {
int indexStart3 = index;
if (index < endIndex && (str.charAt(index) == 45)) {
++index;
}
if (index < endIndex && (str.charAt(index) >= 49 && str.charAt(index) <= 57)) {
++index;
} else {
index = indexStart3; break;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
index = indexStart2; break;
}
} while (false);
if (index == indexStart2) {
break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 48)) {
++index;
} else {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderNewsgroups(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while (index < endIndex && (str.charAt(index) == 32)) {
++index;
}
int tx2 = ParseNewsgroupList(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderObsoletes(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseMsgId(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
break;
}
int tx3 = ParseMsgId(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderOriginalRecipient(String str, int index,
int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
int tx2 = ParseAtom(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart; break;
}
while (true) {
int indexTemp2 = ParseText(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderPath(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
while (true) {
int indexTemp2 = ParsePathList(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 48&&
str.charAt(index) <= 57)) || (str.charAt(index) == 45) || (str.charAt(index) ==
95)))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || (str.charAt(index) == 45)||
(str.charAt(index) == 95)))) {
++index;
}
} else {
index = indexStart; break;
}
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderPreventNondeliveryReport(String str, int
index, int endIndex, ITokener tokener) {
return ParseFWS(str, index, endIndex, tokener);
}
public static int ParseHeaderPriority(String str, int index, int
endIndex, ITokener tokener) {
return ParseMixerKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderReceived(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
do {
int indexTemp2 = index;
do {
int indexTemp3 = index;
int indexStart2 = index;
for (int i2 = 0; ; ++i2) {
indexTemp3 = ParseReceivedToken(str, index, endIndex, tokener);
if (indexTemp3 == index) {
if (i2 < 1) {
indexTemp2 = indexStart2;
}
break;
} else {
index = indexTemp3;
}
}
index = indexStart2;
if (indexTemp3 != indexStart2) {
indexTemp2 = indexTemp3; break;
}
indexTemp3 = ParseCFWS(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart; break;
}
int tx2 = ParseDateTime(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderReceivedSpf(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
do {
int indexTemp2 = index;
do {
if (index + 3 < endIndex && (str.charAt(index) & ~32) == 80 &&
(str.charAt(index + 1) & ~32) == 65 && (str.charAt(index + 2) & ~32) == 83&&
(str.charAt(index + 3) & ~32) == 83) {
indexTemp2 += 4; break;
}
if (index + 3 < endIndex && (str.charAt(index) & ~32) == 70 &&
(str.charAt(index + 1) & ~32) == 65 && (str.charAt(index + 2) & ~32) == 73&&
(str.charAt(index + 3) & ~32) == 76) {
indexTemp2 += 4; break;
}
if (index + 7 < endIndex && (str.charAt(index) & ~32) == 83 &&
(str.charAt(index + 1) & ~32) == 79 && (str.charAt(index + 2) & ~32) == 70&&
(str.charAt(index + 3) & ~32) == 84 && (str.charAt(index + 4) & ~32) ==
70 && (str.charAt(index + 5) & ~32) == 65 && (str.charAt(index + 6) & ~32)
== 73 && (str.charAt(index + 7) & ~32) == 76) {
indexTemp2 += 8; break;
}
if (index + 6 < endIndex && (str.charAt(index) & ~32) == 78 &&
(str.charAt(index + 1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 85&&
(str.charAt(index + 3) & ~32) == 84 && (str.charAt(index + 4) & ~32) ==
82 && (str.charAt(index + 5) & ~32) == 65 && (str.charAt(index + 6) & ~32)
== 76) {
indexTemp2 += 7; break;
}
if (index + 3 < endIndex && (str.charAt(index) & ~32) == 78 &&
(str.charAt(index + 1) & ~32) == 79 && (str.charAt(index + 2) & ~32) == 78&&
(str.charAt(index + 3) & ~32) == 69) {
indexTemp2 += 4; break;
}
if (index + 8 < endIndex && (str.charAt(index) & ~32) == 84 &&
(str.charAt(index + 1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 77&&
(str.charAt(index + 3) & ~32) == 80 && (str.charAt(index + 4) & ~32) ==
69 && (str.charAt(index + 5) & ~32) == 82 && (str.charAt(index + 6) & ~32)
== 82 && (str.charAt(index + 7) & ~32) == 79 && (str.charAt(index + 8) & ~32) == 82) {
indexTemp2 += 9; break;
}
if (index + 8 < endIndex && (str.charAt(index) & ~32) == 80 &&
(str.charAt(index + 1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 82&&
(str.charAt(index + 3) & ~32) == 77 && (str.charAt(index + 4) & ~32) ==
69 && (str.charAt(index + 5) & ~32) == 82 && (str.charAt(index + 6) & ~32)
== 82 && (str.charAt(index + 7) & ~32) == 79 && (str.charAt(index + 8) & ~32) == 82) {
indexTemp2 += 9; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
index = indexStart; break;
}
} while (false);
if (index == indexStart) {
break;
}
for (int i = 0; ; ++i) {
int indexTemp2 = ParseFWS(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
int tx3 = HeaderParserUtility.ParseCommentLax(str, index, endIndex,
tokener);
if (tx3 == index) {
break;
} else {
index = tx3;
}
for (int i2 = 0; ; ++i2) {
int indexTemp3 = ParseFWS(str, index, endIndex, tokener);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
if (i2 < 1) {
index = indexStart2;
}
break;
}
}
if (index == indexStart2) {
break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
index = ParseKeyValueList(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderRequireRecipientValidSince(String str, int
index, int endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseAddrSpec(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart; break;
}
tx2 = ParseDateTime(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderResentTo(String str, int index, int
endIndex, ITokener tokener) {
return ParseStrictHeaderTo(str, index, endIndex, tokener);
}
public static int ParseHeaderReturnPath(String str, int index, int
endIndex, ITokener tokener) {
return ParsePath(str, index, endIndex, tokener);
}
public static int ParseHeaderSender(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseMailbox(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = ParseMailbox(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = ParseGroup(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderSensitivity(String str, int index, int
endIndex, ITokener tokener) {
return ParseMixerKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderSioLabel(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseSioLabelParmSeq(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderSolicitation(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseSolicitationKeywords(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderSupersedes(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
for (int i = 0; ; ++i) {
int indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 60)) {
++index;
} else {
index = indexStart2; break;
}
int tx3 = ParseIdLeft(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
if (index < endIndex && (str.charAt(index) == 64)) {
++index;
} else {
index = indexStart2; break;
}
tx3 = ParseIdRight(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
if (index < endIndex && (str.charAt(index) == 62)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderTo(String str, int index, int endIndex,
ITokener tokener) {
return ParseLaxHeaderTo(str, index, endIndex, tokener);
}
public static int ParseHeaderUserAgent(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
for (int i = 0; ; ++i) {
int indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >=
35 && str.charAt(index) <= 36)) || ((str.charAt(index) >= 45 && str.charAt(index)
<= 46)) || ((str.charAt(index) >= 48 && str.charAt(index) <= 57)) ||
((str.charAt(index) >= 65 && str.charAt(index) <= 90)) || ((str.charAt(index) >= 94&&
str.charAt(index) <= 126)) || ((str.charAt(index) >= 42 && str.charAt(index) <=
43)) || ((str.charAt(index) >= 38 && str.charAt(index) <= 39)) ||
(str.charAt(index) == 63)))) {
++index;
while ((index < endIndex && ((str.charAt(index) == 33) ||
((str.charAt(index) >= 35 && str.charAt(index) <= 36)) || ((str.charAt(index) >=
45 && str.charAt(index) <= 46)) || ((str.charAt(index) >= 48 && str.charAt(index)
<= 57)) || ((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 94 && str.charAt(index) <= 126)) || ((str.charAt(index) >=
42 && str.charAt(index) <= 43)) || ((str.charAt(index) >= 38 && str.charAt(index)
<= 39)) || (str.charAt(index) == 63)))) {
++index;
}
} else {
index = indexStart2; break;
}
do {
int indexTemp3 = index;
do {
int indexStart3 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 47)) {
++index;
} else {
index = indexStart3; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index)
>= 35 && str.charAt(index) <= 36)) || ((str.charAt(index) >= 45 &&
str.charAt(index) <= 46)) || ((str.charAt(index) >= 48 && str.charAt(index) <=
57)) || ((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 94 && str.charAt(index) <= 126)) || ((str.charAt(index)
>= 42 && str.charAt(index) <= 43)) || ((str.charAt(index) >= 38 &&
str.charAt(index) <= 39)) || (str.charAt(index) == 63)))) {
++index;
while ((index < endIndex && ((str.charAt(index) == 33) ||
((str.charAt(index) >= 35 && str.charAt(index) <= 36)) || ((str.charAt(index)
>= 45 && str.charAt(index) <= 46)) || ((str.charAt(index) >= 48 &&
str.charAt(index) <= 57)) || ((str.charAt(index) >= 65 && str.charAt(index)
<= 90)) || ((str.charAt(index) >= 94 && str.charAt(index) <= 126)) ||
((str.charAt(index) >= 42 && str.charAt(index) <= 43)) || ((str.charAt(index)
>= 38 && str.charAt(index) <= 39)) || (str.charAt(index) == 63)))) {
++index;
}
} else {
index = indexStart3; break;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
break;
}
} while (false);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderVbrInfo(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
for (int i = 0; ; ++i) {
int indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseFWS(str, index, endIndex, tokener);
do {
int indexTemp3 = index;
do {
int indexTemp4 = ParseMdElement(str, index, endIndex, tokener);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
indexTemp4 = ParseMcElement(str, index, endIndex, tokener);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
indexTemp4 = ParseMvElement(str, index, endIndex, tokener);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
index = indexStart2; break;
}
} while (false);
if (index == indexStart2) {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderX400ContentIdentifier(String str, int
index, int endIndex, ITokener tokener) {
return ParseNoEncodedWords(str, index, endIndex, tokener);
}
public static int ParseHeaderX400ContentReturn(String str, int index,
int endIndex, ITokener tokener) {
return ParseMixerKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderX400MtsIdentifier(String str, int index,
int endIndex, ITokener tokener) {
return ParseNoEncodedWords(str, index, endIndex, tokener);
}
public static int ParseHeaderX400Originator(String str, int index, int
endIndex, ITokener tokener) {
return ParseMailbox(str, index, endIndex, tokener);
}
public static int ParseHeaderX400Received(String str, int index, int
endIndex, ITokener tokener) {
return ParseNoEncodedWords(str, index, endIndex, tokener);
}
public static int ParseHeaderX400Recipients(String str, int index, int
endIndex, ITokener tokener) {
return ParseMailboxList(str, index, endIndex, tokener);
}
public static int ParseHeaderXArchivedAt(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
if ((index < endIndex && (((str.charAt(index) >= 33 && str.charAt(index) <= 59))||
(str.charAt(index) == 61) || ((str.charAt(index) >= 63 && str.charAt(index) <=
126))))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 33 && str.charAt(index) <=
59)) || (str.charAt(index) == 61) || ((str.charAt(index) >= 63 && str.charAt(index)
<= 126))))) {
++index;
}
} else {
index = indexStart; break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseHeaderXRicevuta(String str, int index, int
endIndex, ITokener tokener) {
return ParseGeneralKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderXTiporicevuta(String str, int index, int
endIndex, ITokener tokener) {
return ParseGeneralKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderXTrasporto(String str, int index, int
endIndex, ITokener tokener) {
return ParseGeneralKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderXVerificasicurezza(String str, int index,
int endIndex, ITokener tokener) {
return ParseGeneralKeyword(str, index, endIndex, tokener);
}
public static int ParseHeaderXref(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
int tx2 = ParsePathIdentity(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
for (int i = 0; ; ++i) {
int indexTemp2 = index;
do {
int indexStart2 = index;
for (int i2 = 0; ; ++i2) {
int indexTemp3 = ParseFWS(str, index, endIndex, tokener);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
if (i2 < 1) {
index = indexStart2;
}
break;
}
}
if (index == indexStart2) {
break;
}
int tx3 = ParseNewsgroupName(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
if (index < endIndex && (str.charAt(index) == 58)) {
++index;
} else {
index = indexStart2; break;
}
if ((index < endIndex && (((str.charAt(index) >= 33 && str.charAt(index) <=
39)) || ((str.charAt(index) >= 41 && str.charAt(index) <= 58)) ||
((str.charAt(index) >= 60 && str.charAt(index) <= 126))))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 33 && str.charAt(index)
<= 39)) || ((str.charAt(index) >= 41 && str.charAt(index) <= 58)) ||
((str.charAt(index) >= 60 && str.charAt(index) <= 126))))) {
++index;
}
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseIdLeft(String str, int index, int endIndex,
ITokener tokener) {
return ParseLocalPart(str, index, endIndex, tokener);
}
public static int ParseIdRight(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseDomain(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = ParseNoFoldLiteral(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseKey(String str, int index, int endIndex, ITokener
tokener) {
int indexTemp = index;
do {
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)))) {
++index;
} else {
break;
}
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index)
>= 48 && str.charAt(index) <= 57)) || (str.charAt(index) == 95) || ((str.charAt(index)
>= 45 && str.charAt(index) <= 46))))) {
++index;
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseKeyValueList(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseKeyValuePair(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
int tx3 = ParseKeyValuePair(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseKeyValuePair(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseKey(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 61)) {
++index;
} else {
index = indexStart; break;
}
do {
int indexTemp2 = index;
do {
int indexTemp3 = ParseDotAtom(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
indexTemp3 = ParseQuotedString(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
index = indexStart; break;
}
} while (false);
if (index == indexStart) {
break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseLabel(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 48 &&
str.charAt(index) <= 57)))) {
++index;
} else {
break;
}
while (true) {
int indexTemp2 = index;
do {
if (index + 1 < endIndex && (((str.charAt(index) == 45) && (((str.charAt(index+
1) >= 65 && str.charAt(index + 1) <= 90)) || ((str.charAt(index + 1) >= 97&&
str.charAt(index + 1) <= 122)) || ((str.charAt(index + 1) >= 48 &&
str.charAt(index + 1) <= 57)))))) {
indexTemp2 += 2; break;
}
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)))) {
++indexTemp2; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseLanguageDescription(String str, int index, int
endIndex, ITokener tokener) {
return ParsePrintablestring(str, index, endIndex, tokener);
}
public static int ParseLanguageList(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseLanguageTag(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
index = ParseCFWS(str, index, endIndex, tokener);
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
int tx3 = ParseLanguageTag(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseLanguageQ(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseLanguageRange(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index + 1 < endIndex && (str.charAt(index) & ~32) == 81 && str.charAt(index + 1) ==
61) {
index += 2;
} else {
index = indexStart2; break;
}
int tx3 = ParseQvalue(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseLanguageRange(String str, int index, int
endIndex, ITokener tokener) {
int indexTemp = index;
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
for (int i2 = 0; i2 < 8; ++i2) {
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122))))) {
++index;
} else if (i2 < 1) {
index = indexStart2; break;
} else {
break;
}
}
if (index == indexStart2) {
break;
}
while ((index + 1 < endIndex && (((str.charAt(index) == 45) &&
(((str.charAt(index + 1) >= 65 && str.charAt(index + 1) <= 90)) || ((str.charAt(index+
1) >= 97 && str.charAt(index + 1) <= 122)) || ((str.charAt(index + 1) >= 48&&
str.charAt(index + 1) <= 57))))))) {
index += 2;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (index < endIndex && (str.charAt(index) == 42)) {
++indexTemp; break;
}
} while (false);
return indexTemp;
}
public static int ParseLanguageTag(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)))) {
++index;
} else {
break;
}
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index)
>= 48 && str.charAt(index) <= 57)) || (str.charAt(index) == 45)))) {
++index;
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseLaxHeaderTo(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
do {
int indexTemp2 = index;
do {
int indexTemp3 = ParseAddressList(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
indexTemp3 = ParseCFWS(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseLdhStr(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
while (true) {
int indexTemp2 = index;
do {
if (index + 1 < endIndex && (((str.charAt(index) == 45) && (((str.charAt(index+
1) >= 65 && str.charAt(index + 1) <= 90)) || ((str.charAt(index + 1) >= 97&&
str.charAt(index + 1) <= 122)) || ((str.charAt(index + 1) >= 48 &&
str.charAt(index + 1) <= 57)))))) {
indexTemp2 += 2; break;
}
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)))) {
++indexTemp2; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseLocalPart(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseWord(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
break;
}
int tx3 = ParseWord(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null) {
if (indexTemp == indexStart) {
tokener.RestoreState(state);
} else {
tokener.Commit(8, indexStart, indexTemp);
}
}
return indexTemp;
}
public static int ParseLocalPartNoCfws(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseDotAtomText(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 34)) {
++index;
} else {
break;
}
while (true) {
int indexTemp3 = index;
do {
if (index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9))) {
++indexTemp3; break;
}
if (index < endIndex && ((str.charAt(index) == 33) || (str.charAt(index) >=
35 && str.charAt(index) <= 91) || (str.charAt(index) >= 93 && str.charAt(index)
<= 126))) {
++indexTemp3; break;
}
int indexTemp4 = index;
do {
int indexStart4 = index;
if (index < endIndex && (str.charAt(index) == 92)) {
++index;
}
do {
int indexTemp5 = index;
do {
if (index < endIndex && ((str.charAt(index) >= 128 &&
str.charAt(index) <= 55295) || (str.charAt(index) >= 57344 &&
str.charAt(index) <= 65535))) {
++indexTemp5; break;
}
if (index + 1 < endIndex && ((str.charAt(index) >= 55296 &&
str.charAt(index) <= 56319) && (str.charAt(index + 1) >= 56320 &&
str.charAt(index + 1) <= 57343))) {
indexTemp5 += 2; break;
}
} while (false);
if (indexTemp5 != index) {
index = indexTemp5;
} else {
index = indexStart4; break;
}
} while (false);
if (index == indexStart4) {
break;
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
if (index + 1 < endIndex && (((str.charAt(index) == 92) &&
(((str.charAt(index + 1) >= 32 && str.charAt(index + 1) <= 126)) ||
(str.charAt(index + 1) == 9))))) {
indexTemp3 += 2; break;
}
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
break;
}
}
if (index < endIndex && (str.charAt(index) == 34)) {
++index;
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseMailbox(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseNameAddr(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = ParseAddrSpec(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null) {
if (indexTemp == indexStart) {
tokener.RestoreState(state);
} else {
tokener.Commit(6, indexStart, indexTemp);
}
}
return indexTemp;
}
public static int ParseMailboxList(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
int tx2 = ParseMailbox(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
break;
}
do {
int indexTemp3 = index;
do {
int indexTemp4 = ParseMailbox(str, index, endIndex, tokener);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
indexTemp4 = ParseCFWS(str, index, endIndex, tokener);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
break;
}
} while (false);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseMcElement(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 77 && (str.charAt(index +
1) & ~32) == 67 && str.charAt(index + 2) == 61) {
index += 3;
} else {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseTypeString(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseMdElement(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 77 && (str.charAt(index +
1) & ~32) == 68 && str.charAt(index + 2) == 61) {
index += 3;
} else {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseDomainName(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseMessageTypeParam(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index + 9 < endIndex && (str.charAt(index) & ~32) == 73 && (str.charAt(index +
1) & ~32) == 68 && (str.charAt(index + 2) & ~32) == 69 && (str.charAt(index + 3) & ~32) == 78 && (str.charAt(index + 4) & ~32) == 84 && (str.charAt(index + 5) & ~32) == 73 && (str.charAt(index + 6) & ~32) == 70 && (str.charAt(index + 7) & ~32) == 73 && (str.charAt(index + 8) & ~32) == 69 && (str.charAt(index + 9) & ~32) == 82) {
index += 10;
} else {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 61)) {
++index;
} else {
index = indexStart; break;
}
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseQuotedMilitaryString(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseMethod(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while (true) {
int indexTemp2 = ParseLdhStr(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 47)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
int tx3 = ParseMethodVersion(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseMethodVersion(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
while (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
}
} else {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseMethodspec(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
int tx2 = ParseMethod(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 61)) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
tx2 = ParseResult(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseMilitaryString(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int indexTemp = index;
do {
for (int i = 0; i < 69; ++i) {
int indexTemp2 = index;
do {
if (index < endIndex && (((str.charAt(index) >= 40 && str.charAt(index) <=
41)))) {
++indexTemp2; break;
}
if (index < endIndex && ((str.charAt(index) >= 65 && str.charAt(index) <= 90)||
(str.charAt(index) >= 97 && str.charAt(index) <= 122) || (str.charAt(index) ==
32) || (str.charAt(index) == 39) || (str.charAt(index) >= 43 && str.charAt(index)
<= 58) || (str.charAt(index) == 61) || (str.charAt(index) == 63))) {
++indexTemp2; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseMilitaryStringSequence(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
for (int i = 0; i < 69; ++i) {
int indexTemp2 = ParsePsChar(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseFWS(str, index, endIndex, tokener);
for (int i2 = 0; i2 < 69; ++i2) {
int indexTemp3 = ParsePsChar(str, index, endIndex, tokener);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
if (i2 < 1) {
index = indexStart2;
}
break;
}
}
if (index == indexStart2) {
break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseMixerKeyword(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseFWS(str, index, endIndex, tokener);
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 48&&
str.charAt(index) <= 57)) || (str.charAt(index) == 45)))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || (str.charAt(index) ==
45)))) {
++index;
}
} else {
index = indexStart; break;
}
index = ParseFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseMsgId(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 60)) {
++index;
} else {
index = indexStart; break;
}
int tx2 = ParseIdLeft(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
if (index < endIndex && (str.charAt(index) == 64)) {
++index;
} else {
index = indexStart; break;
}
tx2 = ParseIdRight(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
if (index < endIndex && (str.charAt(index) == 62)) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseMvElement(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 77 && (str.charAt(index +
1) & ~32) == 86 && str.charAt(index + 2) == 61) {
index += 3;
} else {
break;
}
index = ParseFWS(str, index, endIndex, tokener);
int tx2 = ParseCertifierList(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseNameAddr(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseDisplayName(str, index, endIndex, tokener);
int tx2 = ParseAngleAddr(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseNewsgroupList(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
int tx2 = ParseNewsgroupName(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseFWS(str, index, endIndex, tokener);
int tx3 = ParseNewsgroupName(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
while ((index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) ==
9)))) {
++index;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseNewsgroupName(String str, int index, int
endIndex, ITokener tokener) {
int indexTemp = index;
do {
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 48&&
str.charAt(index) <= 57)) || (str.charAt(index) == 43) || (str.charAt(index) == 45)||
(str.charAt(index) == 95)))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || (str.charAt(index) == 43)||
(str.charAt(index) == 45) || (str.charAt(index) == 95)))) {
++index;
}
} else {
break;
}
while (true) {
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
break;
}
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || (str.charAt(index) == 43)||
(str.charAt(index) == 45) || (str.charAt(index) == 95)))) {
++index;
while ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index)
<= 90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || (str.charAt(index) ==
43) || (str.charAt(index) == 45) || (str.charAt(index) == 95)))) {
++index;
}
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseNoEncodedWords(String str, int index, int
endIndex, ITokener tokener) {
return ParseObsUnstruct(str, index, endIndex, tokener);
}
public static int ParseNoFoldLiteral(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index < endIndex && (str.charAt(index) == 91)) {
++index;
} else {
break;
}
while (true) {
int indexTemp2 = ParseDtext(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
if (index < endIndex && (str.charAt(index) == 93)) {
++index;
} else {
index = indexStart; break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseNoResult(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index + 3 < endIndex && (str.charAt(index) & ~32) == 78 && (str.charAt(index +
1) & ~32) == 79 && (str.charAt(index + 2) & ~32) == 78 && (str.charAt(index + 3) & ~32) == 69) {
index += 4;
} else {
index = indexStart; break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseNodeid(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
while (true) {
int indexTemp2 = index;
do {
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || ((str.charAt(index) >= 45&&
str.charAt(index) <= 46)) || (str.charAt(index) == 95) || (str.charAt(index) ==
126))) {
++indexTemp2; break;
}
if (index + 2 < endIndex && (((str.charAt(index) == 37) && (((str.charAt(index+
1) >= 48 && str.charAt(index + 1) <= 57) || (str.charAt(index + 1) >= 65&&
str.charAt(index + 1) <= 70) || (str.charAt(index + 1) >= 97 && str.charAt(index+
1) <= 102)) && ((str.charAt(index + 2) >= 48 && str.charAt(index + 2) <=
57) || (str.charAt(index + 2) >= 65 && str.charAt(index + 2) <= 70) ||
(str.charAt(index + 2) >= 97 && str.charAt(index + 2) <= 102)))))) {
indexTemp2 += 3; break;
}
if (index < endIndex && ((str.charAt(index) == 33) || (str.charAt(index) ==
36) || ((str.charAt(index) >= 40 && str.charAt(index) <= 44)) || (str.charAt(index)
== 59) || (str.charAt(index) == 61))) {
++indexTemp2; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseNonnegInteger(String str, int index, int
endIndex, ITokener tokener) {
int indexTemp = index;
do {
if (index < endIndex && (str.charAt(index) == 48)) {
++indexTemp; break;
}
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) >= 49 && str.charAt(index) <= 57)) {
++index;
} else {
break;
}
while (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
return indexTemp;
}
public static int ParseObsAcceptLanguage(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
int tx2 = ParseObsLanguageQ(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
int tx3 = ParseObsLanguageQ(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseObsDomainList(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexTemp3 = ParseCFWS(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
if (index < endIndex && (str.charAt(index) == 44)) {
++indexTemp2; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
if (index < endIndex && (str.charAt(index) == 64)) {
++index;
} else {
index = indexStart; break;
}
int tx2 = ParseDomain(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
do {
int indexTemp3 = index;
do {
int indexStart3 = index;
if (index < endIndex && (str.charAt(index) == 64)) {
++index;
} else {
break;
}
int tx4 = ParseDomain(str, index, endIndex, tokener);
if (tx4 == index) {
index = indexStart3; break;
} else {
index = tx4;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
break;
}
} while (false);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseObsGroupList(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
for (int i = 0; ; ++i) {
int indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 44)) {
++index;
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseObsLanguageQ(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseLanguageRange(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && ((str.charAt(index) == 81) || (str.charAt(index) ==
113))) {
++index;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 61)) {
++index;
} else {
index = indexStart2; break;
}
int tx3 = ParseQvalue(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseObsRoute(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseObsDomainList(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
if (index < endIndex && (str.charAt(index) == 58)) {
++index;
} else {
index = indexStart; break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseObsUnstruct(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexTemp3;
int state3 = (tokener != null) ? tokener.GetState() : 0;
indexTemp3 = index;
do {
int indexStart3 = index;
while (index < endIndex && (str.charAt(index) == 13)) {
++index;
}
for (int i3 = 0; ; ++i3) {
int indexTemp4 = index;
do {
int indexTemp5 = index;
do {
if (index < endIndex && ((str.charAt(index) == 0) ||
(str.charAt(index) >= 1 && str.charAt(index) <= 8) || (str.charAt(index) >=
11 && str.charAt(index) <= 12) || (str.charAt(index) >= 14 &&
str.charAt(index) <= 31) || (str.charAt(index) == 127) ||
(str.charAt(index) >= 33 && str.charAt(index) <= 126) || (str.charAt(index)
>= 128 && str.charAt(index) <= 55295) || (str.charAt(index) >= 57344&&
str.charAt(index) <= 65535))) {
++indexTemp5; break;
}
if (index + 1 < endIndex && ((str.charAt(index) >= 55296 &&
str.charAt(index) <= 56319) && (str.charAt(index + 1) >= 56320 &&
str.charAt(index + 1) <= 57343))) {
indexTemp5 += 2; break;
}
} while (false);
if (indexTemp5 != index) {
indexTemp4 = indexTemp5; break;
}
int indexStart4 = index;
for (int i4 = 0; ; ++i4) {
indexTemp5 = ParseFWS(str, index, endIndex, tokener);
if (indexTemp5 == index) {
if (i4 < 1) {
indexTemp4 = indexStart4;
}
break;
} else {
index = indexTemp5;
}
}
index = indexStart4;
if (indexTemp5 != indexStart4) {
indexTemp4 = indexTemp5; break;
}
} while (false);
if (indexTemp4 != index) {
index = indexTemp4;
} else {
if (i3 < 1) {
index = indexStart3;
}
break;
}
}
if (index == indexStart3) {
break;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
if (tokener != null) {
tokener.RestoreState(state3);
}
if (index < endIndex && (str.charAt(index) == 10)) {
++indexTemp2;
while (indexTemp2 < endIndex && (str.charAt(indexTemp2) == 10)) {
++indexTemp2;
}
break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
while (index < endIndex && (str.charAt(index) == 13)) {
++index;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseOptParameterList(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
int tx3 = ParseParameter(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseOtherSections(String str, int index, int
endIndex, ITokener tokener) {
int indexTemp = index;
do {
if (index + 1 < endIndex && (str.charAt(index) == 42) && (((str.charAt(index + 1)
>= 49 && str.charAt(index + 1) <= 57)))) {
index += 2;
} else {
break;
}
while (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseParameter(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
do {
int indexTemp2 = index;
do {
int indexTemp3 = ParseRegularParameter(str, index, endIndex,
tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
int state3 = (tokener != null) ? tokener.GetState() : 0;
indexTemp3 = index;
do {
int indexStart3 = index;
do {
int indexTemp4 = index;
do {
int indexStart4 = index;
if ((index < endIndex && ((str.charAt(index) == 33) ||
((str.charAt(index) >= 35 && str.charAt(index) <= 36)) || (str.charAt(index)
== 38) || (str.charAt(index) == 43) || ((str.charAt(index) >= 45 &&
str.charAt(index) <= 46)) || ((str.charAt(index) >= 48 && str.charAt(index)
<= 57)) || ((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 94 && str.charAt(index) <= 126))))) {
++index;
while ((index < endIndex && ((str.charAt(index) == 33) ||
((str.charAt(index) >= 35 && str.charAt(index) <= 36)) ||
(str.charAt(index) == 38) || (str.charAt(index) == 43) ||
((str.charAt(index) >= 45 && str.charAt(index) <= 46)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) ||
((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 94 && str.charAt(index) <= 126))))) {
++index;
}
} else {
break;
}
if (index + 1 < endIndex && str.charAt(index) == 42 && str.charAt(index + 1) ==
48) {
index += 2;
}
if (index < endIndex && (str.charAt(index) == 42)) {
++index;
} else {
index = indexStart4; break;
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
index = indexTemp4;
} else {
index = indexStart3; break;
}
} while (false);
if (index == indexStart3) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 61)) {
++index;
} else {
index = indexStart3; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
do {
int indexTemp4 = index;
do {
int indexStart4 = index;
index = ParseCharset(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 39)) {
++index;
} else {
index = indexStart4; break;
}
index = ParseLanguageTag(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 39)) {
++index;
} else {
index = indexStart4; break;
}
while (true) {
int indexTemp5 = index;
do {
if (index + 2 < endIndex && (((str.charAt(index) == 37) &&
(((str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57) ||
(str.charAt(index + 1) >= 65 && str.charAt(index + 1) <= 70) ||
(str.charAt(index + 1) >= 97 && str.charAt(index + 1) <= 102)) &&
((str.charAt(index + 2) >= 48 && str.charAt(index + 2) <= 57) ||
(str.charAt(index + 2) >= 65 && str.charAt(index + 2) <= 70) ||
(str.charAt(index + 2) >= 97 && str.charAt(index + 2) <= 102)))))) {
indexTemp5 += 3; break;
}
if (index < endIndex && ((str.charAt(index) == 33) ||
((str.charAt(index) >= 35 && str.charAt(index) <= 36)) ||
(str.charAt(index) == 38) || (str.charAt(index) == 43) ||
((str.charAt(index) >= 45 && str.charAt(index) <= 46)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) ||
((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 94 && str.charAt(index) <= 126)))) {
++indexTemp5; break;
}
} while (false);
if (indexTemp5 != index) {
index = indexTemp5;
} else {
break;
}
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
index = indexTemp4;
} else {
index = indexStart3; break;
}
} while (false);
if (index == indexStart3) {
break;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
if (tokener != null) {
tokener.RestoreState(state3);
}
state3 = (tokener != null) ? tokener.GetState() : 0;
indexTemp3 = index;
do {
int indexStart3 = index;
do {
int indexTemp4 = index;
do {
int indexStart4 = index;
if ((index < endIndex && ((str.charAt(index) == 33) ||
((str.charAt(index) >= 35 && str.charAt(index) <= 36)) || (str.charAt(index)
== 38) || (str.charAt(index) == 43) || ((str.charAt(index) >= 45 &&
str.charAt(index) <= 46)) || ((str.charAt(index) >= 48 && str.charAt(index)
<= 57)) || ((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 94 && str.charAt(index) <= 126))))) {
++index;
while ((index < endIndex && ((str.charAt(index) == 33) ||
((str.charAt(index) >= 35 && str.charAt(index) <= 36)) ||
(str.charAt(index) == 38) || (str.charAt(index) == 43) ||
((str.charAt(index) >= 45 && str.charAt(index) <= 46)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) ||
((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 94 && str.charAt(index) <= 126))))) {
++index;
}
} else {
break;
}
int tx5 = ParseOtherSections(str, index, endIndex, tokener);
if (tx5 == index) {
index = indexStart4; break;
} else {
index = tx5;
}
if (index < endIndex && (str.charAt(index) == 42)) {
++index;
} else {
index = indexStart4; break;
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
index = indexTemp4;
} else {
index = indexStart3; break;
}
} while (false);
if (index == indexStart3) {
break;
}
if (index < endIndex && (str.charAt(index) == 61)) {
++index;
} else {
index = indexStart3; break;
}
while (true) {
int indexTemp4 = index;
do {
if (index + 2 < endIndex && (((str.charAt(index) == 37) &&
(((str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57) ||
(str.charAt(index + 1) >= 65 && str.charAt(index + 1) <= 70) ||
(str.charAt(index + 1) >= 97 && str.charAt(index + 1) <= 102)) &&
((str.charAt(index + 2) >= 48 && str.charAt(index + 2) <= 57) ||
(str.charAt(index + 2) >= 65 && str.charAt(index + 2) <= 70) ||
(str.charAt(index + 2) >= 97 && str.charAt(index + 2) <= 102)))))) {
indexTemp4 += 3; break;
}
if (index < endIndex && ((str.charAt(index) == 33) ||
((str.charAt(index) >= 35 && str.charAt(index) <= 36)) || (str.charAt(index)
== 38) || (str.charAt(index) == 43) || ((str.charAt(index) >= 45 &&
str.charAt(index) <= 46)) || ((str.charAt(index) >= 48 && str.charAt(index)
<= 57)) || ((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 94 && str.charAt(index) <= 126)))) {
++indexTemp4; break;
}
} while (false);
if (indexTemp4 != index) {
index = indexTemp4;
} else {
break;
}
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
if (tokener != null) {
tokener.RestoreState(state3);
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
index = indexStart; break;
}
} while (false);
if (index == indexStart) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParsePath(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseAngleAddr(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 60)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 62)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParsePathIdentity(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
for (int i2 = 0; ; ++i2) {
int indexTemp3 = index;
do {
int indexStart3 = index;
int tx4 = ParseLabel(str, index, endIndex, tokener);
if (tx4 == index) {
break;
} else {
index = tx4;
}
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
index = indexStart3; break;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
if (i2 < 1) {
index = indexStart2;
}
break;
}
}
if (index == indexStart2) {
break;
}
do {
int indexTemp3 = index;
do {
int indexTemp4 = index;
do {
int indexStart4 = index;
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)))) {
++index;
} else {
break;
}
for (int i4 = 0; ; ++i4) {
int indexTemp5 = index;
do {
if (index + 1 < endIndex && (((str.charAt(index) == 45) &&
(((str.charAt(index + 1) >= 65 && str.charAt(index + 1) <= 90)) ||
((str.charAt(index + 1) >= 97 && str.charAt(index + 1) <= 122)) ||
((str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57)))))) {
indexTemp5 += 2; break;
}
if (index < endIndex && (((str.charAt(index) >= 65 &&
str.charAt(index) <= 90)) || ((str.charAt(index) >= 97 && str.charAt(index)
<= 122)) || ((str.charAt(index) >= 48 && str.charAt(index) <= 57)))) {
++indexTemp5; break;
}
} while (false);
if (indexTemp5 != index) {
index = indexTemp5;
} else {
if (i4 < 1) {
index = indexStart4;
}
break;
}
}
if (index == indexStart4) {
break;
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
indexTemp4 = index;
do {
int indexStart4 = index;
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <=
57)) {
++index;
} else {
break;
}
while ((index < endIndex && (((str.charAt(index) >= 48 &&
str.charAt(index) <= 57)) || (str.charAt(index) == 45)))) {
++index;
}
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)))) {
++index;
} else {
index = indexStart4; break;
}
while (true) {
int indexTemp5 = index;
do {
if (index + 1 < endIndex && (((str.charAt(index) == 45) &&
(((str.charAt(index + 1) >= 65 && str.charAt(index + 1) <= 90)) ||
((str.charAt(index + 1) >= 97 && str.charAt(index + 1) <= 122)) ||
((str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57)))))) {
indexTemp5 += 2; break;
}
if (index < endIndex && (((str.charAt(index) >= 65 &&
str.charAt(index) <= 90)) || ((str.charAt(index) >= 97 && str.charAt(index)
<= 122)) || ((str.charAt(index) >= 48 && str.charAt(index) <= 57)))) {
++indexTemp5; break;
}
} while (false);
if (indexTemp5 != index) {
index = indexTemp5;
} else {
break;
}
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
index = indexStart2; break;
}
} while (false);
if (index == indexStart2) {
break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 48&&
str.charAt(index) <= 57)) || (str.charAt(index) == 45) || (str.charAt(index) ==
95)))) {
++indexTemp;
while ((indexTemp < endIndex && (((str.charAt(indexTemp) >= 65 &&
str.charAt(indexTemp) <= 90)) || ((str.charAt(indexTemp) >= 97 &&
str.charAt(indexTemp) <= 122)) || ((str.charAt(indexTemp) >= 48 &&
str.charAt(indexTemp) <= 57)) || (str.charAt(indexTemp) == 45) ||
(str.charAt(indexTemp) == 95)))) {
++indexTemp;
}
break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParsePathList(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
int tx3 = ParsePathIdentity(str, index, endIndex, tokener);
if (tx3 == index) {
break;
} else {
index = tx3;
}
index = ParseFWS(str, index, endIndex, tokener);
do {
int indexTemp3 = index;
do {
int indexTemp4;
int state4 = (tokener != null) ? tokener.GetState() : 0;
indexTemp4 = index;
do {
int indexStart4 = index;
int tx5 = ParseDiagOther(str, index, endIndex, tokener);
if (tx5 == index) {
break;
} else {
index = tx5;
}
if (index < endIndex && (str.charAt(index) == 33)) {
++index;
} else {
index = indexStart4; break;
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
if (tokener != null) {
tokener.RestoreState(state4);
}
state4 = (tokener != null) ? tokener.GetState() : 0;
indexTemp4 = index;
do {
int indexStart4 = index;
int tx5 = ParseDiagDeprecated(str, index, endIndex, tokener);
if (tx5 == index) {
break;
} else {
index = tx5;
}
if (index < endIndex && (str.charAt(index) == 33)) {
++index;
} else {
index = indexStart4; break;
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
indexTemp3 = indexTemp4; break;
}
if (tokener != null) {
tokener.RestoreState(state4);
}
if (index + 1 < endIndex && str.charAt(index) == 33 && str.charAt(index + 1) ==
33) {
indexTemp3 += 2; break;
}
if (index < endIndex && (str.charAt(index) == 33)) {
++indexTemp3; break;
}
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
index = indexStart2; break;
}
} while (false);
if (index == indexStart2) {
break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParsePathxmpp(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
while (true) {
int indexTemp3 = ParseNodeid(str, index, endIndex, tokener);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
break;
}
}
if (index < endIndex && (str.charAt(index) == 64)) {
++index;
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
while (true) {
int indexTemp2 = ParseRegName(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 47)) {
++index;
} else {
break;
}
while (true) {
int indexTemp3 = ParseResid(str, index, endIndex, tokener);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
break;
}
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParsePhrase(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParsePhraseWord(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
while (true) {
int indexTemp2 = ParsePhraseWordOrDot(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null) {
if (indexTemp == indexStart) {
tokener.RestoreState(state);
} else {
tokener.Commit(1, indexStart, indexTemp);
}
}
return indexTemp;
}
public static int ParsePhraseAtom(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
for (int i = 0; ; ++i) {
int indexTemp2 = index;
do {
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)))) {
++indexTemp2; break;
}
if (index < endIndex && ((str.charAt(index) >= 48 && str.charAt(index) <= 57)||
(str.charAt(index) == 33) || (str.charAt(index) == 35) || (str.charAt(index) ==
36) || (str.charAt(index) == 37) || (str.charAt(index) == 38) || (str.charAt(index)
== 39) || (str.charAt(index) == 42) || (str.charAt(index) == 43) ||
(str.charAt(index) == 45) || (str.charAt(index) == 47) || (str.charAt(index) == 61)||
(str.charAt(index) == 63) || (str.charAt(index) == 94) || (str.charAt(index) ==
95) || (str.charAt(index) == 96) || (str.charAt(index) == 123) ||
(str.charAt(index) == 124) || (str.charAt(index) == 125) || (str.charAt(index) ==
126))) {
++indexTemp2; break;
}
int indexTemp3 = index;
do {
if (index < endIndex && ((str.charAt(index) >= 128 && str.charAt(index) <=
55295) || (str.charAt(index) >= 57344 && str.charAt(index) <= 65535))) {
++indexTemp3; break;
}
if (index + 1 < endIndex && ((str.charAt(index) >= 55296 &&
str.charAt(index) <= 56319) && (str.charAt(index + 1) >= 56320 &&
str.charAt(index + 1) <= 57343))) {
indexTemp3 += 2; break;
}
} while (false);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
indexTemp = index;
} while (false);
if (tokener != null) {
if (indexTemp == indexStart) {
tokener.RestoreState(state);
} else {
tokener.Commit(3, indexStart, indexTemp);
}
}
return indexTemp;
}
public static int ParsePhraseAtomOrDot(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = index;
for (int i = 0; ; ++i) {
indexTemp2 = ParseAtext(str, index, endIndex, tokener);
if (indexTemp2 == index) {
if (i < 1) {
indexTemp = indexStart;
}
break;
} else {
index = indexTemp2;
}
}
index = indexStart;
if (indexTemp2 != indexStart) {
indexTemp = indexTemp2; break;
}
if (index < endIndex && (str.charAt(index) == 46)) {
++indexTemp; break;
}
} while (false);
if (tokener != null) {
if (indexTemp == indexStart) {
tokener.RestoreState(state);
} else {
tokener.Commit(4, indexStart, indexTemp);
}
}
return indexTemp;
}
public static int ParsePhraseWord(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
int tx3 = ParsePhraseAtom(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
indexTemp2 = ParseQuotedString(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParsePhraseWordOrDot(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
int tx3 = ParsePhraseAtomOrDot(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
indexTemp2 = ParseQuotedString(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParsePrecedence(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
do {
int indexTemp2 = index;
do {
if (index < endIndex && (str.charAt(index) == 48)) {
++indexTemp2; break;
}
int indexTemp3 = index;
do {
int indexStart3 = index;
if (index < endIndex && (str.charAt(index) >= 49 && str.charAt(index) <= 57)) {
++index;
} else {
break;
}
while (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <=
57)) {
++index;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
if (index + 7 < endIndex && (str.charAt(index) & ~32) == 68 &&
(str.charAt(index + 1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 70&&
(str.charAt(index + 3) & ~32) == 69 && (str.charAt(index + 4) & ~32) ==
82 && (str.charAt(index + 5) & ~32) == 82 && (str.charAt(index + 6) & ~32)
== 69 && (str.charAt(index + 7) & ~32) == 68) {
indexTemp2 += 8; break;
}
if (index + 6 < endIndex && (str.charAt(index) & ~32) == 82 &&
(str.charAt(index + 1) & ~32) == 79 && (str.charAt(index + 2) & ~32) == 85&&
(str.charAt(index + 3) & ~32) == 84 && (str.charAt(index + 4) & ~32) ==
73 && (str.charAt(index + 5) & ~32) == 78 && (str.charAt(index + 6) & ~32)
== 69) {
indexTemp2 += 7; break;
}
if (index + 7 < endIndex && (str.charAt(index) & ~32) == 80 &&
(str.charAt(index + 1) & ~32) == 82 && (str.charAt(index + 2) & ~32) == 73&&
(str.charAt(index + 3) & ~32) == 79 && (str.charAt(index + 4) & ~32) ==
82 && (str.charAt(index + 5) & ~32) == 73 && (str.charAt(index + 6) & ~32)
== 84 && (str.charAt(index + 7) & ~32) == 89) {
indexTemp2 += 8; break;
}
if (index + 8 < endIndex && (str.charAt(index) & ~32) == 73 &&
(str.charAt(index + 1) & ~32) == 77 && (str.charAt(index + 2) & ~32) == 77&&
(str.charAt(index + 3) & ~32) == 69 && (str.charAt(index + 4) & ~32) ==
68 && (str.charAt(index + 5) & ~32) == 73 && (str.charAt(index + 6) & ~32)
== 65 && (str.charAt(index + 7) & ~32) == 84 && (str.charAt(index + 8) & ~32) == 69) {
indexTemp2 += 9; break;
}
if (index + 4 < endIndex && (str.charAt(index) & ~32) == 70 &&
(str.charAt(index + 1) & ~32) == 76 && (str.charAt(index + 2) & ~32) == 65&&
(str.charAt(index + 3) & ~32) == 83 && (str.charAt(index + 4) & ~32) ==
72) {
indexTemp2 += 5; break;
}
if (index + 7 < endIndex && (str.charAt(index) & ~32) == 79 &&
(str.charAt(index + 1) & ~32) == 86 && (str.charAt(index + 2) & ~32) == 69&&
(str.charAt(index + 3) & ~32) == 82 && (str.charAt(index + 4) & ~32) ==
82 && (str.charAt(index + 5) & ~32) == 73 && (str.charAt(index + 6) & ~32)
== 68 && (str.charAt(index + 7) & ~32) == 69) {
indexTemp2 += 8; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
index = indexStart; break;
}
} while (false);
if (index == indexStart) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParsePrintablestring(String str, int index, int
endIndex, ITokener tokener) {
int indexTemp = index;
do {
while (true) {
int indexTemp2 = index;
do {
if (index < endIndex && (((str.charAt(index) >= 40 && str.charAt(index) <=
41)))) {
++indexTemp2; break;
}
if (index < endIndex && ((str.charAt(index) >= 65 && str.charAt(index) <= 90)||
(str.charAt(index) >= 97 && str.charAt(index) <= 122) || (str.charAt(index) ==
32) || (str.charAt(index) == 39) || (str.charAt(index) >= 43 && str.charAt(index)
<= 58) || (str.charAt(index) == 61) || (str.charAt(index) == 63))) {
++indexTemp2; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseProperty(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
if (index + 7 < endIndex && (str.charAt(index) & ~32) == 77 && (str.charAt(index +
1) & ~32) == 65 && (str.charAt(index + 2) & ~32) == 73 && (str.charAt(index + 3) & ~32) == 76 && (str.charAt(index + 4) & ~32) == 70 && (str.charAt(index + 5) & ~32) == 82 && (str.charAt(index + 6) & ~32) == 79 && (str.charAt(index + 7) & ~32) == 77) {
indexTemp += 8; break;
}
if (index + 5 < endIndex && (str.charAt(index) & ~32) == 82 && (str.charAt(index +
1) & ~32) == 67 && (str.charAt(index + 2) & ~32) == 80 && (str.charAt(index + 3) & ~32) == 84 && (str.charAt(index + 4) & ~32) == 84 && (str.charAt(index + 5) & ~32) == 79) {
indexTemp += 6; break;
}
// Unlimited production in choice
} while (false);
return indexTemp;
}
public static int ParsePropspec(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParsePtype(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
tx2 = ParseProperty(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 61)) {
++index;
} else {
index = indexStart; break;
}
tx2 = ParsePvalue(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParsePsChar(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
if (index < endIndex && (((str.charAt(index) >= 40 && str.charAt(index) <= 41)))) {
++indexTemp; break;
}
if (index < endIndex && ((str.charAt(index) >= 65 && str.charAt(index) <= 90) ||
(str.charAt(index) >= 97 && str.charAt(index) <= 122) || (str.charAt(index) == 32) ||
(str.charAt(index) == 39) || (str.charAt(index) >= 43 && str.charAt(index) <= 58) ||
(str.charAt(index) == 61) || (str.charAt(index) == 63))) {
++indexTemp; break;
}
} while (false);
return indexTemp;
}
public static int ParsePtype(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
if (index + 3 < endIndex && (str.charAt(index) & ~32) == 83 && (str.charAt(index +
1) & ~32) == 77 && (str.charAt(index + 2) & ~32) == 84 && (str.charAt(index + 3) & ~32) == 80) {
indexTemp += 4; break;
}
if (index + 5 < endIndex && (str.charAt(index) & ~32) == 72 && (str.charAt(index +
1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 65 && (str.charAt(index + 3) & ~32) == 68 && (str.charAt(index + 4) & ~32) == 69 && (str.charAt(index + 5) & ~32) == 82) {
indexTemp += 6; break;
}
if (index + 3 < endIndex && (str.charAt(index) & ~32) == 66 && (str.charAt(index +
1) & ~32) == 79 && (str.charAt(index + 2) & ~32) == 68 && (str.charAt(index + 3) & ~32) == 89) {
indexTemp += 4; break;
}
if (index + 5 < endIndex && (str.charAt(index) & ~32) == 80 && (str.charAt(index +
1) & ~32) == 79 && (str.charAt(index + 2) & ~32) == 76 && (str.charAt(index + 3) & ~32) == 73 && (str.charAt(index + 4) & ~32) == 67 && (str.charAt(index + 5) & ~32) == 89) {
indexTemp += 6; break;
}
} while (false);
return indexTemp;
}
public static int ParsePvalue(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
do {
int indexTemp2 = index;
do {
if ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >=
35 && str.charAt(index) <= 36)) || ((str.charAt(index) >= 45 && str.charAt(index)
<= 46)) || ((str.charAt(index) >= 48 && str.charAt(index) <= 57)) ||
((str.charAt(index) >= 65 && str.charAt(index) <= 90)) || ((str.charAt(index) >= 94&&
str.charAt(index) <= 126)) || ((str.charAt(index) >= 42 && str.charAt(index) <=
43)) || ((str.charAt(index) >= 38 && str.charAt(index) <= 39)) ||
(str.charAt(index) == 63)))) {
++indexTemp2;
while ((indexTemp2 < endIndex && ((str.charAt(indexTemp2) == 33) ||
((str.charAt(indexTemp2) >= 35 && str.charAt(indexTemp2) <= 36)) ||
((str.charAt(indexTemp2) >= 45 && str.charAt(indexTemp2) <= 46)) ||
((str.charAt(indexTemp2) >= 48 && str.charAt(indexTemp2) <= 57)) ||
((str.charAt(indexTemp2) >= 65 && str.charAt(indexTemp2) <= 90)) ||
((str.charAt(indexTemp2) >= 94 && str.charAt(indexTemp2) <= 126)) ||
((str.charAt(indexTemp2) >= 42 && str.charAt(indexTemp2) <= 43)) ||
((str.charAt(indexTemp2) >= 38 && str.charAt(indexTemp2) <= 39)) ||
(str.charAt(indexTemp2) == 63)))) {
++indexTemp2;
}
break;
}
int indexTemp3 = ParseQuotedString(str, index, endIndex, tokener);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
int state3 = (tokener != null) ? tokener.GetState() : 0;
indexTemp3 = index;
do {
int indexStart3 = index;
do {
int indexTemp4 = index;
do {
int indexStart4 = index;
index = ParseLocalPart(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 64)) {
++index;
} else {
index = indexStart4; break;
}
indexTemp4 = index;
index = indexStart4;
} while (false);
if (indexTemp4 != index) {
index = indexTemp4;
} else {
break;
}
} while (false);
int tx4 = ParseDomainName(str, index, endIndex, tokener);
if (tx4 == index) {
index = indexStart3; break;
} else {
index = tx4;
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
indexTemp2 = indexTemp3; break;
}
if (tokener != null) {
tokener.RestoreState(state3);
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
index = indexStart; break;
}
} while (false);
if (index == indexStart) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseQcontent(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index < endIndex && ((str.charAt(index) == 33) || (str.charAt(index) >= 35 &&
str.charAt(index) <= 91) || (str.charAt(index) >= 93 && str.charAt(index) <= 126) ||
(str.charAt(index) >= 1 && str.charAt(index) <= 8) || (str.charAt(index) >= 11 &&
str.charAt(index) <= 12) || (str.charAt(index) >= 14 && str.charAt(index) <= 31) ||
(str.charAt(index) == 127) || (str.charAt(index) >= 128 && str.charAt(index) <= 55295)||
(str.charAt(index) >= 57344 && str.charAt(index) <= 65535))) {
++indexTemp; break;
}
if (index + 1 < endIndex && ((str.charAt(index) >= 55296 && str.charAt(index) <=
56319) && (str.charAt(index + 1) >= 56320 && str.charAt(index + 1) <= 57343))) {
indexTemp += 2; break;
}
int indexTemp2 = ParseQuotedPair(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseQuotedMilitaryString(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index < endIndex && (str.charAt(index) == 34)) {
++index;
} else {
break;
}
for (int i = 0; i < 69; ++i) {
int indexTemp2 = ParsePsChar(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 1) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
if (index < endIndex && (str.charAt(index) == 34)) {
++index;
} else {
index = indexStart; break;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseQuotedPair(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int indexTemp = index;
do {
if (index < endIndex && (str.charAt(index) == 92)) {
++index;
} else {
break;
}
do {
int indexTemp2 = index;
do {
if (index < endIndex && ((str.charAt(index) >= 33 && str.charAt(index) <= 126)||
(str.charAt(index) >= 128 && str.charAt(index) <= 55295) || (str.charAt(index)
>= 57344 && str.charAt(index) <= 65535))) {
++indexTemp2; break;
}
if (index + 1 < endIndex && ((str.charAt(index) >= 55296 && str.charAt(index)
<= 56319) && (str.charAt(index + 1) >= 56320 && str.charAt(index + 1) <=
57343))) {
indexTemp2 += 2; break;
}
if (index < endIndex && ((str.charAt(index) == 32) || (str.charAt(index) == 9)||
(str.charAt(index) == 0) || (str.charAt(index) >= 1 && str.charAt(index) <= 8)||
(str.charAt(index) >= 11 && str.charAt(index) <= 12) || (str.charAt(index) >= 14&&
str.charAt(index) <= 31) || (str.charAt(index) == 127) || (str.charAt(index) ==
10) || (str.charAt(index) == 13))) {
++indexTemp2; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
index = indexStart; break;
}
} while (false);
if (index == indexStart) {
break;
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseQuotedString(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 34)) {
++index;
} else {
index = indexStart; break;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseFWS(str, index, endIndex, tokener);
int tx3 = ParseQcontent(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 34)) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null) {
if (indexTemp == indexStart) {
tokener.RestoreState(state);
} else {
tokener.Commit(7, indexStart, indexTemp);
}
}
return indexTemp;
}
public static int ParseQvalue(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 48)) {
++index;
} else {
break;
}
do {
int indexTemp3 = index;
do {
int indexStart3 = index;
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
break;
}
for (int i3 = 0; i3 < 3; ++i3) {
if (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <=
57)) {
++index;
} else {
break;
}
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
break;
}
} while (false);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = index;
do {
int indexStart2 = index;
if (index < endIndex && (str.charAt(index) == 49)) {
++index;
} else {
break;
}
do {
int indexTemp3 = index;
do {
int indexStart3 = index;
if (index < endIndex && (str.charAt(index) == 46)) {
++index;
} else {
break;
}
for (int i3 = 0; i3 < 3; ++i3) {
if (index < endIndex && (str.charAt(index) == 48)) {
++index;
} else {
break;
}
}
indexTemp3 = index;
index = indexStart3;
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
break;
}
} while (false);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
return indexTemp;
}
public static int ParseReasonspec(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index + 5 < endIndex && (str.charAt(index) & ~32) == 82 && (str.charAt(index +
1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 65 && (str.charAt(index + 3) & ~32) == 83 && (str.charAt(index + 4) & ~32) == 79 && (str.charAt(index + 5) & ~32) == 78) {
index += 6;
} else {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 61)) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
int tx2 = ParseValue(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseReceivedToken(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseAngleAddr(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = ParseAddrSpec(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = ParseDomain(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = ParseAtom(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = ParseQuotedString(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseRegName(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
while (true) {
int indexTemp2 = index;
do {
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || ((str.charAt(index) >= 45&&
str.charAt(index) <= 46)) || (str.charAt(index) == 95) || (str.charAt(index) ==
126))) {
++indexTemp2; break;
}
if (index + 2 < endIndex && (((str.charAt(index) == 37) && (((str.charAt(index+
1) >= 48 && str.charAt(index + 1) <= 57) || (str.charAt(index + 1) >= 65&&
str.charAt(index + 1) <= 70) || (str.charAt(index + 1) >= 97 && str.charAt(index+
1) <= 102)) && ((str.charAt(index + 2) >= 48 && str.charAt(index + 2) <=
57) || (str.charAt(index + 2) >= 65 && str.charAt(index + 2) <= 70) ||
(str.charAt(index + 2) >= 97 && str.charAt(index + 2) <= 102)))))) {
indexTemp2 += 3; break;
}
if (index < endIndex && ((str.charAt(index) == 33) || (str.charAt(index) ==
36) || ((str.charAt(index) >= 38 && str.charAt(index) <= 44)) || (str.charAt(index)
== 59) || (str.charAt(index) == 61))) {
++indexTemp2; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseRegularParameter(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseRegularParameterName(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 61)) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
tx2 = ParseValue(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseRegularParameterName(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >= 35&&
str.charAt(index) <= 36)) || (str.charAt(index) == 38) || (str.charAt(index) == 43)||
((str.charAt(index) >= 45 && str.charAt(index) <= 46)) || ((str.charAt(index) >= 48&&
str.charAt(index) <= 57)) || ((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 94 && str.charAt(index) <= 126))))) {
++index;
while ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >=
35 && str.charAt(index) <= 36)) || (str.charAt(index) == 38) || (str.charAt(index) ==
43) || ((str.charAt(index) >= 45 && str.charAt(index) <= 46)) || ((str.charAt(index)
>= 48 && str.charAt(index) <= 57)) || ((str.charAt(index) >= 65 && str.charAt(index)
<= 90)) || ((str.charAt(index) >= 94 && str.charAt(index) <= 126))))) {
++index;
}
} else {
break;
}
index = ParseSection(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseResid(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
while (true) {
int indexTemp2 = index;
do {
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || ((str.charAt(index) >= 45&&
str.charAt(index) <= 46)) || (str.charAt(index) == 95) || (str.charAt(index) ==
126))) {
++indexTemp2; break;
}
if (index < endIndex && ((str.charAt(index) == 33) || (str.charAt(index) ==
36) || ((str.charAt(index) >= 38 && str.charAt(index) <= 44)) ||
((str.charAt(index) >= 58 && str.charAt(index) <= 59)) || (str.charAt(index) ==
61))) {
++indexTemp2; break;
}
if (index + 2 < endIndex && (((str.charAt(index) == 37) && (((str.charAt(index+
1) >= 48 && str.charAt(index + 1) <= 57) || (str.charAt(index + 1) >= 65&&
str.charAt(index + 1) <= 70) || (str.charAt(index + 1) >= 97 && str.charAt(index+
1) <= 102)) && ((str.charAt(index + 2) >= 48 && str.charAt(index + 2) <=
57) || (str.charAt(index + 2) >= 65 && str.charAt(index + 2) <= 70) ||
(str.charAt(index + 2) >= 97 && str.charAt(index + 2) <= 102)))))) {
indexTemp2 += 3; break;
}
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseResinfo(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart; break;
}
int tx2 = ParseMethodspec(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
int tx3 = ParseCFWS(str, index, endIndex, tokener);
if (tx3 == index) {
break;
} else {
index = tx3;
}
tx3 = ParseReasonspec(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
int tx3 = ParseCFWS(str, index, endIndex, tokener);
if (tx3 == index) {
break;
} else {
index = tx3;
}
tx3 = ParsePropspec(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseRestrictedName(String str, int index, int
endIndex, ITokener tokener) {
int indexTemp = index;
do {
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >= 48 &&
str.charAt(index) <= 57)))) {
++index;
} else {
break;
}
for (int i = 0; i < 126; ++i) {
if ((index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90))||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index) >=
48 && str.charAt(index) <= 57)) || (str.charAt(index) == 33) || ((str.charAt(index)
>= 35 && str.charAt(index) <= 36)) || (str.charAt(index) == 38) ||
((str.charAt(index) >= 94 && str.charAt(index) <= 95)) || ((str.charAt(index) >= 45&&
str.charAt(index) <= 46)) || (str.charAt(index) == 43)))) {
++index;
} else {
break;
}
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseResult(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
if (index + 3 < endIndex && (str.charAt(index) & ~32) == 80 && (str.charAt(index +
1) & ~32) == 65 && (str.charAt(index + 2) & ~32) == 83 && (str.charAt(index + 3) & ~32) == 83) {
indexTemp += 4; break;
}
if (index + 3 < endIndex && (str.charAt(index) & ~32) == 70 && (str.charAt(index +
1) & ~32) == 65 && (str.charAt(index + 2) & ~32) == 73 && (str.charAt(index + 3) & ~32) == 76) {
indexTemp += 4; break;
}
if (index + 7 < endIndex && (str.charAt(index) & ~32) == 83 && (str.charAt(index +
1) & ~32) == 79 && (str.charAt(index + 2) & ~32) == 70 && (str.charAt(index + 3) & ~32) == 84 && (str.charAt(index + 4) & ~32) == 70 && (str.charAt(index + 5) & ~32) == 65 && (str.charAt(index + 6) & ~32) == 73 && (str.charAt(index + 7) & ~32) == 76) {
indexTemp += 8; break;
}
if (index + 6 < endIndex && (str.charAt(index) & ~32) == 78 && (str.charAt(index +
1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 85 && (str.charAt(index + 3) & ~32) == 84 && (str.charAt(index + 4) & ~32) == 82 && (str.charAt(index + 5) & ~32) == 65 && (str.charAt(index + 6) & ~32) == 76) {
indexTemp += 7; break;
}
if (index + 3 < endIndex && (str.charAt(index) & ~32) == 78 && (str.charAt(index +
1) & ~32) == 79 && (str.charAt(index + 2) & ~32) == 78 && (str.charAt(index + 3) & ~32) == 69) {
indexTemp += 4; break;
}
if (index + 8 < endIndex && (str.charAt(index) & ~32) == 84 && (str.charAt(index +
1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 77 && (str.charAt(index + 3) & ~32) == 80 && (str.charAt(index + 4) & ~32) == 69 && (str.charAt(index + 5) & ~32) == 82 && (str.charAt(index + 6) & ~32) == 82 && (str.charAt(index + 7) & ~32) == 79 && (str.charAt(index + 8) & ~32) == 82) {
indexTemp += 9; break;
}
if (index + 8 < endIndex && (str.charAt(index) & ~32) == 80 && (str.charAt(index +
1) & ~32) == 69 && (str.charAt(index + 2) & ~32) == 82 && (str.charAt(index + 3) & ~32) == 77 && (str.charAt(index + 4) & ~32) == 69 && (str.charAt(index + 5) & ~32) == 82 && (str.charAt(index + 6) & ~32) == 82 && (str.charAt(index + 7) & ~32) == 79 && (str.charAt(index + 8) & ~32) == 82) {
indexTemp += 9; break;
}
} while (false);
return indexTemp;
}
public static int ParseSection(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if (index + 1 < endIndex && str.charAt(index) == 42 && str.charAt(index + 1) == 48) {
indexTemp += 2; break;
}
int indexTemp2 = ParseOtherSections(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseSicSequence(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
for (int i = 0; i < 8; ++i) {
int indexTemp2 = ParsePsChar(str, index, endIndex, tokener);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
if (i < 3) {
index = indexStart;
}
break;
}
}
if (index == indexStart) {
break;
}
while (true) {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseFWS(str, index, endIndex, tokener);
for (int i2 = 0; i2 < 8; ++i2) {
int indexTemp3 = ParsePsChar(str, index, endIndex, tokener);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
if (i2 < 3) {
index = indexStart2;
}
break;
}
}
if (index == indexStart2) {
break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else if (tokener != null) {
tokener.RestoreState(state2); break;
} else {
break;
}
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseSioLabelParmSeq(String str, int index, int
endIndex, ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseParameter(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 59)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseFWS(str, index, endIndex, tokener);
int tx3 = ParseSioLabelParmSeq(str, index, endIndex, tokener);
if (tx3 == index) {
index = indexStart2; break;
} else {
index = tx3;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseSolicitationKeywords(String str, int index, int
endIndex, ITokener tokener) {
int indexTemp = index;
do {
if (index < endIndex && (((str.charAt(index) >= 65 && str.charAt(index) <= 90)) ||
((str.charAt(index) >= 97 && str.charAt(index) <= 122)))) {
++index;
} else {
break;
}
while ((index < endIndex && (((str.charAt(index) >= 45 && str.charAt(index) <=
46)) || (str.charAt(index) == 95) || ((str.charAt(index) >= 65 && str.charAt(index) <=
90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) || ((str.charAt(index)
>= 48 && str.charAt(index) <= 58))))) {
++index;
}
while (true) {
int indexTemp2 = index;
do {
int indexStart2 = index;
if (index + 1 < endIndex && (str.charAt(index) == 44) && (((str.charAt(index +
1) >= 65 && str.charAt(index + 1) <= 90)) || ((str.charAt(index + 1) >= 97&&
str.charAt(index + 1) <= 122)))) {
index += 2;
} else {
break;
}
while ((index < endIndex && (((str.charAt(index) >= 45 && str.charAt(index) <=
46)) || (str.charAt(index) == 95) || ((str.charAt(index) >= 65 && str.charAt(index)
<= 90)) || ((str.charAt(index) >= 97 && str.charAt(index) <= 122)) ||
((str.charAt(index) >= 48 && str.charAt(index) <= 58))))) {
++index;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
}
indexTemp = index;
} while (false);
return indexTemp;
}
public static int ParseStrictHeaderTo(String str, int index, int
endIndex, ITokener tokener) {
return ParseAddressList(str, index, endIndex, tokener);
}
public static int ParseText(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
if (index < endIndex && ((str.charAt(index) >= 1 && str.charAt(index) <= 9) ||
(str.charAt(index) == 11) || (str.charAt(index) == 12) || (str.charAt(index) >= 14 &&
str.charAt(index) <= 127) || (str.charAt(index) >= 128 && str.charAt(index) <= 55295)||
(str.charAt(index) >= 57344 && str.charAt(index) <= 65535))) {
++indexTemp; break;
}
if (index + 1 < endIndex && ((str.charAt(index) >= 55296 && str.charAt(index) <=
56319) && (str.charAt(index + 1) >= 56320 && str.charAt(index + 1) <= 57343))) {
indexTemp += 2; break;
}
} while (false);
return indexTemp;
}
public static int ParseTime(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int tx2 = ParseTimeOfDay(str, index, endIndex, tokener);
if (tx2 == index) {
break;
} else {
index = tx2;
}
tx2 = ParseZone(str, index, endIndex, tokener);
if (tx2 == index) {
index = indexStart; break;
} else {
index = tx2;
}
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseTimeOfDay(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index + 1 < endIndex && ((str.charAt(index) >= 48 && str.charAt(index) <= 57)||
(str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57))) {
index += 2;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 58)) {
++index;
} else {
index = indexStart; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index + 1 < endIndex && ((str.charAt(index) >= 48 && str.charAt(index) <= 57)||
(str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57))) {
index += 2;
} else {
index = indexStart; break;
}
do {
int indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
if (index < endIndex && (str.charAt(index) == 58)) {
++index;
} else {
index = indexStart2; break;
}
index = ParseCFWS(str, index, endIndex, tokener);
if (index + 1 < endIndex && ((str.charAt(index) >= 48 && str.charAt(index) <=
57) || (str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57))) {
index += 2;
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
index = indexTemp2;
} else {
break;
}
} while (false);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseTypeString(String str, int index, int endIndex,
ITokener tokener) {
int indexTemp = index;
do {
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 65 && (str.charAt(index +
1) & ~32) == 76 && (str.charAt(index + 2) & ~32) == 76) {
indexTemp += 3; break;
}
if (index + 3 < endIndex && (str.charAt(index) & ~32) == 76 && (str.charAt(index +
1) & ~32) == 73 && (str.charAt(index + 2) & ~32) == 83 && (str.charAt(index + 3) & ~32) == 84) {
indexTemp += 4; break;
}
if (index + 10 < endIndex && (str.charAt(index) & ~32) == 84 && (str.charAt(index+
1) & ~32) == 82 && (str.charAt(index + 2) & ~32) == 65 && (str.charAt(index +
3) & ~32) == 78 && (str.charAt(index + 4) & ~32) == 83 && (str.charAt(index + 5) & ~32) == 65 && (str.charAt(index + 6) & ~32) == 67 && (str.charAt(index + 7) & ~32) == 84 && (str.charAt(index + 8) & ~32) == 73 && (str.charAt(index + 9) & ~32) == 79 && (str.charAt(index + 10) & ~32) == 78) {
indexTemp += 11; break;
}
} while (false);
return indexTemp;
}
public static int ParseValue(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
if ((index < endIndex && ((str.charAt(index) == 33) || ((str.charAt(index) >= 35&&
str.charAt(index) <= 36)) || ((str.charAt(index) >= 45 && str.charAt(index) <= 46))||
((str.charAt(index) >= 48 && str.charAt(index) <= 57)) || ((str.charAt(index) >= 65&&
str.charAt(index) <= 90)) || ((str.charAt(index) >= 94 && str.charAt(index) <= 126))||
((str.charAt(index) >= 42 && str.charAt(index) <= 43)) || ((str.charAt(index) >= 38&&
str.charAt(index) <= 39)) || (str.charAt(index) == 63)))) {
++indexTemp;
while ((indexTemp < endIndex && ((str.charAt(indexTemp) == 33) ||
((str.charAt(indexTemp) >= 35 && str.charAt(indexTemp) <= 36)) ||
((str.charAt(indexTemp) >= 45 && str.charAt(indexTemp) <= 46)) ||
((str.charAt(indexTemp) >= 48 && str.charAt(indexTemp) <= 57)) ||
((str.charAt(indexTemp) >= 65 && str.charAt(indexTemp) <= 90)) ||
((str.charAt(indexTemp) >= 94 && str.charAt(indexTemp) <= 126)) ||
((str.charAt(indexTemp) >= 42 && str.charAt(indexTemp) <= 43)) ||
((str.charAt(indexTemp) >= 38 && str.charAt(indexTemp) <= 39)) ||
(str.charAt(indexTemp) == 63)))) {
++indexTemp;
}
break;
}
int indexTemp2 = ParseQuotedString(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseWord(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2 = ParseAtom(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
indexTemp2 = ParseQuotedString(str, index, endIndex, tokener);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseYear(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
index = ParseCFWS(str, index, endIndex, tokener);
if (index + 1 < endIndex && ((str.charAt(index) >= 48 && str.charAt(index) <= 57)||
(str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57))) {
index += 2;
} else {
index = indexStart; break;
}
while (index < endIndex && (str.charAt(index) >= 48 && str.charAt(index) <= 57)) {
++index;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp = index;
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
public static int ParseZone(String str, int index, int endIndex,
ITokener tokener) {
int indexStart = index;
int state = (tokener != null) ? tokener.GetState() : 0;
int indexTemp = index;
do {
int indexTemp2;
int state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
for (int i2 = 0; ; ++i2) {
int indexTemp3 = ParseFWS(str, index, endIndex, tokener);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
if (i2 < 1) {
index = indexStart2;
}
break;
}
}
if (index == indexStart2) {
break;
}
if (index < endIndex && ((str.charAt(index) == 43) || (str.charAt(index) == 45))) {
++index;
} else {
index = indexStart2; break;
}
if (index + 3 < endIndex && ((str.charAt(index) >= 48 && str.charAt(index) <=
57) || (str.charAt(index + 1) >= 48 && str.charAt(index + 1) <= 57) ||
(str.charAt(index + 2) >= 48 && str.charAt(index + 2) <= 57) || (str.charAt(index +
3) >= 48 && str.charAt(index + 3) <= 57))) {
index += 4;
} else {
index = indexStart2; break;
}
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
state2 = (tokener != null) ? tokener.GetState() : 0;
indexTemp2 = index;
do {
int indexStart2 = index;
index = ParseCFWS(str, index, endIndex, tokener);
do {
int indexTemp3 = index;
do {
if (index + 1 < endIndex && (str.charAt(index) & ~32) == 85 &&
(str.charAt(index + 1) & ~32) == 84) {
indexTemp3 += 2; break;
}
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 71 &&
(str.charAt(index + 1) & ~32) == 77 && (str.charAt(index + 2) & ~32) ==
84) {
indexTemp3 += 3; break;
}
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 69 &&
(str.charAt(index + 1) & ~32) == 83 && (str.charAt(index + 2) & ~32) ==
84) {
indexTemp3 += 3; break;
}
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 69 &&
(str.charAt(index + 1) & ~32) == 68 && (str.charAt(index + 2) & ~32) ==
84) {
indexTemp3 += 3; break;
}
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 67 &&
(str.charAt(index + 1) & ~32) == 83 && (str.charAt(index + 2) & ~32) ==
84) {
indexTemp3 += 3; break;
}
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 67 &&
(str.charAt(index + 1) & ~32) == 68 && (str.charAt(index + 2) & ~32) ==
84) {
indexTemp3 += 3; break;
}
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 77 &&
(str.charAt(index + 1) & ~32) == 83 && (str.charAt(index + 2) & ~32) ==
84) {
indexTemp3 += 3; break;
}
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 77 &&
(str.charAt(index + 1) & ~32) == 68 && (str.charAt(index + 2) & ~32) ==
84) {
indexTemp3 += 3; break;
}
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 80 &&
(str.charAt(index + 1) & ~32) == 83 && (str.charAt(index + 2) & ~32) ==
84) {
indexTemp3 += 3; break;
}
if (index + 2 < endIndex && (str.charAt(index) & ~32) == 80 &&
(str.charAt(index + 1) & ~32) == 68 && (str.charAt(index + 2) & ~32) ==
84) {
indexTemp3 += 3; break;
}
if (index < endIndex && ((str.charAt(index) >= 65 && str.charAt(index) <=
73) || (str.charAt(index) >= 75 && str.charAt(index) <= 90) || (str.charAt(index)
>= 97 && str.charAt(index) <= 105) || (str.charAt(index) >= 107 &&
str.charAt(index) <= 122))) {
++indexTemp3; break;
}
} while (false);
if (indexTemp3 != index) {
index = indexTemp3;
} else {
index = indexStart2; break;
}
} while (false);
if (index == indexStart2) {
break;
}
index = ParseCFWS(str, index, endIndex, tokener);
indexTemp2 = index;
index = indexStart2;
} while (false);
if (indexTemp2 != index) {
indexTemp = indexTemp2; break;
}
if (tokener != null) {
tokener.RestoreState(state2);
}
} while (false);
if (tokener != null && indexTemp == indexStart) {
tokener.RestoreState(state);
}
return indexTemp;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy