Example #1
0
    public static int ParseAddrSpec(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexTemp, state, tx2;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        tx2 = ParseLocalPart(str, index, endIndex, tokener);
        if (tx2 == index) {
          break;
        } else {
          index = tx2;
        }
        if (index < endIndex && (str[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;
    }
Example #2
0
    public static int ParseAddress(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexTemp, indexTemp2, state;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        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;
    }
Example #3
0
    public static int ParseDiagOther(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexStart2, indexTemp, indexTemp2, state, tx3;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        if (index + 1 < endIndex && str[index] == 33 && str[index + 1] == 46) {
          index += 2;
        } else {
          break;
        }
        if (index < endIndex && ((str[index] >= 65 && str[index] <= 90) ||
          (str[index] >= 97 && str[index] <= 122))) {
          ++index;
          while (index < endIndex && ((str[index] >= 65 && str[index] <=
            90) || (str[index] >= 97 && str[index] <= 122))) {
            ++index;
          }
        } else {
          index = indexStart; break;
        }
        do {
          indexTemp2 = index;
          do {
            indexStart2 = index;
            if (index < endIndex && (str[index] == 46)) {
              ++index;
            } else {
              break;
            }
            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;
    }
Example #4
0
    public static int ParseYear(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexTemp, state;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        index = ParseCFWS(str, index, endIndex, tokener);
        if (index + 1 < endIndex && ((str[index] >= 48 && str[index] <= 57) ||
          (str[index + 1] >= 48 && str[index + 1] <= 57))) {
          index += 2;
        } else {
          index = indexStart; break;
        }
        while (index < endIndex && (str[index] >= 48 && str[index] <= 57)) {
          ++index;
        }
        index = ParseCFWS(str, index, endIndex, tokener);
        indexTemp = index;
      } while (false);
      if (tokener != null && indexTemp == indexStart) {
 tokener.RestoreState(state);
}
      return indexTemp;
    }
Example #5
0
    public static int ParseTime(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexTemp, state, tx2;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        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;
    }
Example #6
0
    public static int ParseSicSequence(
string str,
int index,
int endIndex,
ITokener tokener) {
      int i, i2, indexStart, indexStart2, indexTemp, indexTemp2, indexTemp3,
        state, state2;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        for (i = 0; i < 8; ++i) {
          indexTemp2 = ParsePsChar(str, index, endIndex, tokener);
          if (indexTemp2 != index) {
            index = indexTemp2;
          } else {
            if (i < 3) {
              index = indexStart;
            }
            break;
          }
        }
        if (index == indexStart) {
          break;
        }
        while (true) {
          state2 = (tokener != null) ? tokener.GetState() : 0;
          indexTemp2 = index;
          do {
            indexStart2 = index;
            index = ParseFWS(str, index, endIndex, tokener);
            if (index < endIndex && (str[index] == 59)) {
              ++index;
            } else {
              index = indexStart2; break;
            }
            index = ParseFWS(str, index, endIndex, tokener);
            for (i2 = 0; i2 < 8; ++i2) {
              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;
    }
Example #7
0
    public static int ParseResinfo(
string str,
int index,
int endIndex,
ITokener tokener) {
   int indexStart, indexStart2, indexTemp, indexTemp2, state, state2, tx2,
        tx3;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        index = ParseCFWS(str, index, endIndex, tokener);
        if (index < endIndex && (str[index] == 59)) {
          ++index;
        } else {
          index = indexStart; break;
        }
        tx2 = ParseMethodspec(str, index, endIndex, tokener);
        if (tx2 == index) {
          index = indexStart; break;
        } else {
          index = tx2;
        }
        do {
          indexTemp2 = index;
          do {
            indexStart2 = index;
            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) {
          state2 = (tokener != null) ? tokener.GetState() : 0;
          indexTemp2 = index;
          do {
            indexStart2 = index;
            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;
    }
Example #8
0
    public static int ParseRegularParameter(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexTemp, state, tx2;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        tx2 = ParseRegularParameterName(str, index, endIndex, tokener);
        if (tx2 == index) {
          break;
        } else {
          index = tx2;
        }
        index = ParseCFWS(str, index, endIndex, tokener);
        if (index < endIndex && (str[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;
    }
Example #9
0
    public static int ParsePhraseAtomOrDot(
string str,
int index,
int endIndex,
ITokener tokener) {
      int i, indexStart, indexTemp, indexTemp2, state;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        indexTemp2 = index;
        for (i = 0; true; ++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[index] == 46)) {
          ++indexTemp; break;
        }
      } while (false);
      if (tokener != null) {
        if (indexTemp == indexStart) {
 tokener.RestoreState(state);
} else {
 tokener.Commit(4, indexStart, indexTemp);
}
      }
      return indexTemp;
    }
Example #10
0
    public static int ParsePhraseAtom(
string str,
int index,
int endIndex,
ITokener tokener) {
      int i, indexStart, indexTemp, indexTemp2, indexTemp3, state;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        for (i = 0; true; ++i) {
          indexTemp2 = index;
          do {
            if (index < endIndex && ((str[index] >= 65 && str[index] <=
              90) || (str[index] >= 97 && str[index] <= 122))) {
              ++indexTemp2; break;
            }
            if (index < endIndex && ((str[index] >= 48 && str[index] <= 57) ||
              (str[index] == 33) || (str[index] == 35) || (str[index] ==
              36) || (str[index] == 37) || (str[index] == 38) || (str[index]
              == 39) || (str[index] == 42) || (str[index] == 43) ||
              (str[index] == 45) || (str[index] == 47) || (str[index] == 61) ||
              (str[index] == 63) || (str[index] == 94) || (str[index] ==
              95) || (str[index] == 96) || (str[index] == 123) ||
              (str[index] == 124) || (str[index] == 125) || (str[index] ==
              126))) {
              ++indexTemp2; break;
            }
            indexTemp3 = index;
            do {
              if (index < endIndex && ((str[index] >= 128 && str[index] <=
                55295) || (str[index] >= 57344 && str[index] <= 65535))) {
                ++indexTemp3; break;
              }
              if (index + 1 < endIndex && ((str[index] >= 55296 &&
                str[index] <= 56319) && (str[index + 1] >= 56320 &&
                str[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;
    }
Example #11
0
    public static int ParsePhrase(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexTemp, indexTemp2, state, tx2;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        tx2 = ParsePhraseWord(str, index, endIndex, tokener);
        if (tx2 == index) {
          break;
        } else {
          index = tx2;
        }
        while (true) {
          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;
    }
Example #12
0
    public static int ParsePathxmpp(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexStart2, indexTemp, indexTemp2, indexTemp3, state;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        do {
          indexTemp2 = index;
          do {
            indexStart2 = index;
            while (true) {
              indexTemp3 = ParseNodeid(str, index, endIndex, tokener);
              if (indexTemp3 != index) {
                index = indexTemp3;
              } else {
 break;
}
            }
            if (index < endIndex && (str[index] == 64)) {
              ++index;
            } else {
              index = indexStart2; break;
            }
            indexTemp2 = index;
            index = indexStart2;
          } while (false);
          if (indexTemp2 != index) {
            index = indexTemp2;
          } else {
            break;
          }
        } while (false);
        while (true) {
          indexTemp2 = ParseRegName(str, index, endIndex, tokener);
          if (indexTemp2 != index) {
            index = indexTemp2;
          } else {
 break;
}
        }
        do {
          indexTemp2 = index;
          do {
            indexStart2 = index;
            if (index < endIndex && (str[index] == 47)) {
              ++index;
            } else {
              break;
            }
            while (true) {
              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;
    }
Example #13
0
    public static int ParsePathList(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexStart2, indexStart4, indexTemp, indexTemp2,
        indexTemp3, indexTemp4, state, state2, state4, tx3, tx5;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        while (true) {
          state2 = (tokener != null) ? tokener.GetState() : 0;
          indexTemp2 = index;
          do {
            indexStart2 = index;
            tx3 = ParsePathIdentity(str, index, endIndex, tokener);
            if (tx3 == index) {
              break;
            } else {
              index = tx3;
            }
            index = ParseFWS(str, index, endIndex, tokener);
            do {
              indexTemp3 = index;
              do {
                state4 = (tokener != null) ? tokener.GetState() : 0;
                indexTemp4 = index;
                do {
                  indexStart4 = index;
                  tx5 = ParseDiagOther(str, index, endIndex, tokener);
                  if (tx5 == index) {
                    break;
                  } else {
                    index = tx5;
                  }
                  if (index < endIndex && (str[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 {
                  indexStart4 = index;
                  tx5 = ParseDiagDeprecated(str, index, endIndex, tokener);
                  if (tx5 == index) {
                    break;
                  } else {
                    index = tx5;
                  }
                  if (index < endIndex && (str[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[index] == 33 && str[index + 1] ==
                  33) {
                  indexTemp3 += 2; break;
                }
                if (index < endIndex && (str[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;
    }
Example #14
0
    public static int ParsePath(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexStart2, indexTemp, indexTemp2, state, state2;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        indexTemp2 = ParseAngleAddr(str, index, endIndex, tokener);
        if (indexTemp2 != index) {
          indexTemp = indexTemp2; break;
        }
        state2 = (tokener != null) ? tokener.GetState() : 0;
        indexTemp2 = index;
        do {
          indexStart2 = index;
          index = ParseCFWS(str, index, endIndex, tokener);
          if (index < endIndex && (str[index] == 60)) {
            ++index;
          } else {
            index = indexStart2; break;
          }
          index = ParseCFWS(str, index, endIndex, tokener);
          if (index < endIndex && (str[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;
    }
Example #15
0
    public static int ParseParameter(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexStart3, indexStart4, indexTemp, indexTemp2,
        indexTemp3, indexTemp4, indexTemp5, state, state3, tx5;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        index = ParseCFWS(str, index, endIndex, tokener);
        do {
          indexTemp2 = index;
          do {
            indexTemp3 = ParseRegularParameter(str, index, endIndex, tokener);
            if (indexTemp3 != index) {
              indexTemp2 = indexTemp3; break;
            }
            state3 = (tokener != null) ? tokener.GetState() : 0;
            indexTemp3 = index;
            do {
              indexStart3 = index;
              do {
                indexTemp4 = index;
                do {
                  indexStart4 = index;
                  if (index < endIndex && ((str[index] == 33) ||
                    (str[index] >= 35 && str[index] <= 36) || (str[index]
                    == 38) || (str[index] == 43) || (str[index] >= 45 &&
                    str[index] <= 46) || (str[index] >= 48 && str[index]
                    <= 57) || (str[index] >= 65 && str[index] <= 90) ||
                    (str[index] >= 94 && str[index] <= 126))) {
                    ++index;
                    while (index < endIndex && ((str[index] == 33) ||
                    (str[index] >= 35 && str[index] <= 36) ||
                    (str[index] == 38) || (str[index] == 43) ||
                    (str[index] >= 45 && str[index] <= 46) ||
                    (str[index] >= 48 && str[index] <= 57) ||
                    (str[index] >= 65 && str[index] <= 90) ||
                    (str[index] >= 94 && str[index] <= 126))) {
                    ++index;
                    }
                  } else {
                    break;
                  }
        if (index + 1 < endIndex && str[index] == 42 && str[index + 1] ==
                    48) {
                    index += 2;
                  }
                  if (index < endIndex && (str[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[index] == 61)) {
                ++index;
              } else {
                index = indexStart3; break;
              }
              index = ParseCFWS(str, index, endIndex, tokener);
              do {
                indexTemp4 = index;
                do {
                  indexStart4 = index;
                  index = ParseCharset(str, index, endIndex, tokener);
                  if (index < endIndex && (str[index] == 39)) {
                    ++index;
                  } else {
                    index = indexStart4; break;
                  }
                  index = ParseLanguageTag(str, index, endIndex, tokener);
                  if (index < endIndex && (str[index] == 39)) {
                    ++index;
                  } else {
                    index = indexStart4; break;
                  }
                  while (true) {
                    indexTemp5 = index;
                    do {
                    if (index + 2 < endIndex && (((str[index] == 37) &&
                    (((str[index + 1] >= 48 && str[index + 1] <= 57) ||
                    (str[index + 1] >= 65 && str[index + 1] <= 70) ||
                    (str[index + 1] >= 97 && str[index + 1] <= 102)) &&
                    ((str[index + 2] >= 48 && str[index + 2] <= 57) ||
                    (str[index + 2] >= 65 && str[index + 2] <= 70) ||
                    (str[index + 2] >= 97 && str[index + 2] <= 102)))))) {
                    indexTemp5 += 3; break;
                    }
                    if (index < endIndex && ((str[index] == 33) ||
                    (str[index] >= 35 && str[index] <= 36) ||
                    (str[index] == 38) || (str[index] == 43) ||
                    (str[index] >= 45 && str[index] <= 46) ||
                    (str[index] >= 48 && str[index] <= 57) ||
                    (str[index] >= 65 && str[index] <= 90) ||
                    (str[index] >= 94 && str[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 {
              indexStart3 = index;
              do {
                indexTemp4 = index;
                do {
                  indexStart4 = index;
                  if (index < endIndex && ((str[index] == 33) ||
                    (str[index] >= 35 && str[index] <= 36) || (str[index]
                    == 38) || (str[index] == 43) || (str[index] >= 45 &&
                    str[index] <= 46) || (str[index] >= 48 && str[index]
                    <= 57) || (str[index] >= 65 && str[index] <= 90) ||
                    (str[index] >= 94 && str[index] <= 126))) {
                    ++index;
                    while (index < endIndex && ((str[index] == 33) ||
                    (str[index] >= 35 && str[index] <= 36) ||
                    (str[index] == 38) || (str[index] == 43) ||
                    (str[index] >= 45 && str[index] <= 46) ||
                    (str[index] >= 48 && str[index] <= 57) ||
                    (str[index] >= 65 && str[index] <= 90) ||
                    (str[index] >= 94 && str[index] <= 126))) {
                    ++index;
                    }
                  } else {
                    break;
                  }
                  tx5 = ParseOtherSections(str, index, endIndex, tokener);
                  if (tx5 == index) {
                    index = indexStart4; break;
                  } else {
                    index = tx5;
                  }
                  if (index < endIndex && (str[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[index] == 61)) {
                ++index;
              } else {
                index = indexStart3; break;
              }
              while (true) {
                indexTemp4 = index;
                do {
                  if (index + 2 < endIndex && (((str[index] == 37) &&
                    (((str[index + 1] >= 48 && str[index + 1] <= 57) ||
                    (str[index + 1] >= 65 && str[index + 1] <= 70) ||
                    (str[index + 1] >= 97 && str[index + 1] <= 102)) &&
                    ((str[index + 2] >= 48 && str[index + 2] <= 57) ||
                    (str[index + 2] >= 65 && str[index + 2] <= 70) ||
                    (str[index + 2] >= 97 && str[index + 2] <= 102)))))) {
                    indexTemp4 += 3; break;
                  }
                  if (index < endIndex && ((str[index] == 33) ||
                    (str[index] >= 35 && str[index] <= 36) || (str[index]
                    == 38) || (str[index] == 43) || (str[index] >= 45 &&
                    str[index] <= 46) || (str[index] >= 48 && str[index]
                    <= 57) || (str[index] >= 65 && str[index] <= 90) ||
                    (str[index] >= 94 && str[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;
    }
Example #16
0
    public static int ParseReasonspec(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexTemp, state, tx2;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        if (index + 5 < endIndex && (str[index] & ~32) == 82 && (str[index +
          1] & ~32) == 69 && (str[index + 2] & ~32) == 65 && (str[index + 3] & ~32) == 83 && (str[index + 4] & ~32) == 79 && (str[index + 5] & ~32) == 78) {
          index += 6;
        } else {
          break;
        }
        index = ParseCFWS(str, index, endIndex, tokener);
        if (index < endIndex && (str[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;
    }
Example #17
0
    public static int ParseReceivedToken(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexTemp, indexTemp2, state;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        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;
    }
Example #18
0
    public static int ParsePhraseWordOrDot(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexStart2, indexTemp, indexTemp2, state, state2, tx3;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        state2 = (tokener != null) ? tokener.GetState() : 0;
        indexTemp2 = index;
        do {
          indexStart2 = index;
          index = ParseCFWS(str, index, endIndex, tokener);
          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;
    }
Example #19
0
    public static int ParseRegularParameterName(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexTemp, state;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        if (index < endIndex && ((str[index] == 33) || (str[index] >= 35 &&
          str[index] <= 36) || (str[index] == 38) || (str[index] == 43) ||
          (str[index] >= 45 && str[index] <= 46) || (str[index] >= 48 &&
          str[index] <= 57) || (str[index] >= 65 && str[index] <= 90) ||
          (str[index] >= 94 && str[index] <= 126))) {
          ++index;
          while (index < endIndex && ((str[index] == 33) || (str[index] >=
            35 && str[index] <= 36) || (str[index] == 38) || (str[index] ==
            43) || (str[index] >= 45 && str[index] <= 46) || (str[index]
            >= 48 && str[index] <= 57) || (str[index] >= 65 && str[index]
            <= 90) || (str[index] >= 94 && str[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;
    }
Example #20
0
    public static int ParsePrecedence(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexStart3, indexTemp, indexTemp2, indexTemp3, state;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        do {
          indexTemp2 = index;
          do {
            if (index < endIndex && (str[index] == 48)) {
              ++indexTemp2; break;
            }
            indexTemp3 = index;
            do {
              indexStart3 = index;
              if (index < endIndex && (str[index] >= 49 && str[index] <= 57)) {
                ++index;
              } else {
                break;
              }
           while (index < endIndex && (str[index] >= 48 && str[index] <=
                57)) {
                ++index;
              }
              indexTemp3 = index;
              index = indexStart3;
            } while (false);
            if (indexTemp3 != index) {
              indexTemp2 = indexTemp3; break;
            }
            if (index + 7 < endIndex && (str[index] & ~32) == 68 &&
              (str[index + 1] & ~32) == 69 && (str[index + 2] & ~32) == 70 &&
              (str[index + 3] & ~32) == 69 && (str[index + 4] & ~32) ==
              82 && (str[index + 5] & ~32) == 82 && (str[index + 6] & ~32)
              == 69 && (str[index + 7] & ~32) == 68) {
              indexTemp2 += 8; break;
            }
            if (index + 6 < endIndex && (str[index] & ~32) == 82 &&
              (str[index + 1] & ~32) == 79 && (str[index + 2] & ~32) == 85 &&
              (str[index + 3] & ~32) == 84 && (str[index + 4] & ~32) ==
              73 && (str[index + 5] & ~32) == 78 && (str[index + 6] & ~32)
              == 69) {
              indexTemp2 += 7; break;
            }
            if (index + 7 < endIndex && (str[index] & ~32) == 80 &&
              (str[index + 1] & ~32) == 82 && (str[index + 2] & ~32) == 73 &&
              (str[index + 3] & ~32) == 79 && (str[index + 4] & ~32) ==
              82 && (str[index + 5] & ~32) == 73 && (str[index + 6] & ~32)
              == 84 && (str[index + 7] & ~32) == 89) {
              indexTemp2 += 8; break;
            }
            if (index + 8 < endIndex && (str[index] & ~32) == 73 &&
              (str[index + 1] & ~32) == 77 && (str[index + 2] & ~32) == 77 &&
              (str[index + 3] & ~32) == 69 && (str[index + 4] & ~32) ==
              68 && (str[index + 5] & ~32) == 73 && (str[index + 6] & ~32)
       == 65 && (str[index + 7] & ~32) == 84 && (str[index + 8] & ~32) ==
                69) {
              indexTemp2 += 9; break;
            }
            if (index + 4 < endIndex && (str[index] & ~32) == 70 &&
              (str[index + 1] & ~32) == 76 && (str[index + 2] & ~32) == 65 &&
              (str[index + 3] & ~32) == 83 && (str[index + 4] & ~32) ==
              72) {
              indexTemp2 += 5; break;
            }
            if (index + 7 < endIndex && (str[index] & ~32) == 79 &&
              (str[index + 1] & ~32) == 86 && (str[index + 2] & ~32) == 69 &&
              (str[index + 3] & ~32) == 82 && (str[index + 4] & ~32) ==
              82 && (str[index + 5] & ~32) == 73 && (str[index + 6] & ~32)
              == 68 && (str[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;
    }
Example #21
0
    public static int ParseSection(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexTemp, indexTemp2, state;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        if (index + 1 < endIndex && str[index] == 42 && str[index + 1] == 48) {
          indexTemp += 2; break;
        }
        indexTemp2 = ParseOtherSections(str, index, endIndex, tokener);
        if (indexTemp2 != index) {
          indexTemp = indexTemp2; break;
        }
      } while (false);
      if (tokener != null && indexTemp == indexStart) {
 tokener.RestoreState(state);
}
      return indexTemp;
    }
Example #22
0
    public static int ParseDiagIdentity(
string str,
int index,
int endIndex,
ITokener tokener) {
      int i2, i4, indexStart, indexStart2, indexStart3, indexStart4,
        indexTemp, indexTemp2, indexTemp3, indexTemp4, indexTemp5, state,
        state2, tx4;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        state2 = (tokener != null) ? tokener.GetState() : 0;
        indexTemp2 = index;
        do {
          indexStart2 = index;
          for (i2 = 0; true; ++i2) {
            indexTemp3 = index;
            do {
              indexStart3 = index;
              tx4 = ParseLabel(str, index, endIndex, tokener);
              if (tx4 == index) {
                break;
              } else {
                index = tx4;
              }
              if (index < endIndex && (str[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 {
            indexTemp3 = index;
            do {
              indexTemp4 = index;
              do {
                indexStart4 = index;
                if (index < endIndex && ((str[index] >= 65 && str[index] <=
                  90) || (str[index] >= 97 && str[index] <= 122))) {
                  ++index;
                } else {
                  break;
                }
                for (i4 = 0; true; ++i4) {
                  indexTemp5 = index;
                  do {
                    if (index + 1 < endIndex && ((str[index] == 45) &&
                    ((str[index + 1] >= 65 && str[index + 1] <= 90) ||
                    (str[index + 1] >= 97 && str[index + 1] <= 122) ||
                    (str[index + 1] >= 48 && str[index + 1] <= 57)))) {
                    indexTemp5 += 2; break;
                    }
                    if (index < endIndex && ((str[index] >= 65 &&
                    str[index] <= 90) || (str[index] >= 97 && str[index]
                    <= 122) || (str[index] >= 48 && str[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 {
                indexStart4 = index;
              if (index < endIndex && (str[index] >= 48 && str[index] <=
                  57)) {
                  ++index;
                } else {
                  break;
                }
                while (index < endIndex && ((str[index] >= 48 &&
                  str[index] <= 57) || (str[index] == 45))) {
                  ++index;
                }
                if (index < endIndex && ((str[index] >= 65 && str[index] <=
                  90) || (str[index] >= 97 && str[index] <= 122))) {
                  ++index;
                } else {
                  index = indexStart4; break;
                }
                while (true) {
                  indexTemp5 = index;
                  do {
                    if (index + 1 < endIndex && ((str[index] == 45) &&
                    ((str[index + 1] >= 65 && str[index + 1] <= 90) ||
                    (str[index + 1] >= 97 && str[index + 1] <= 122) ||
                    (str[index + 1] >= 48 && str[index + 1] <= 57)))) {
                    indexTemp5 += 2; break;
                    }
                    if (index < endIndex && ((str[index] >= 65 &&
                    str[index] <= 90) || (str[index] >= 97 && str[index]
                    <= 122) || (str[index] >= 48 && str[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[index] >= 65 && str[index] <= 90) ||
          (str[index] >= 97 && str[index] <= 122) || (str[index] >= 48 &&
          str[index] <= 57) || (str[index] == 45) || (str[index] ==
          95))) {
          ++indexTemp;
          while (indexTemp < endIndex && ((str[indexTemp] >= 65 &&
            str[indexTemp] <= 90) || (str[indexTemp] >= 97 &&
            str[indexTemp] <= 122) || (str[indexTemp] >= 48 &&
            str[indexTemp] <= 57) || (str[indexTemp] == 45) ||
            (str[indexTemp] == 95))) {
            ++indexTemp;
          }
          break;
        }
        // Unlimited production in choice
      } while (false);
      if (tokener != null && indexTemp == indexStart) {
 tokener.RestoreState(state);
}
      return indexTemp;
    }
Example #23
0
    public static int ParseSioLabelParmSeq(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexStart2, indexTemp, indexTemp2, state, tx2, tx3;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        tx2 = ParseParameter(str, index, endIndex, tokener);
        if (tx2 == index) {
          break;
        } else {
          index = tx2;
        }
        do {
          indexTemp2 = index;
          do {
            indexStart2 = index;
            index = ParseFWS(str, index, endIndex, tokener);
            if (index < endIndex && (str[index] == 59)) {
              ++index;
            } else {
              index = indexStart2; break;
            }
            index = ParseFWS(str, index, endIndex, tokener);
            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;
    }
Example #24
0
    public static int ParsePvalue(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexStart3, indexStart4, indexTemp, indexTemp2,
        indexTemp3, indexTemp4, state, state3, tx4;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        index = ParseCFWS(str, index, endIndex, tokener);
        do {
          indexTemp2 = index;
          do {
            if (index < endIndex && ((str[index] == 33) || (str[index] >=
              35 && str[index] <= 36) || (str[index] >= 45 && str[index]
              <= 46) || (str[index] >= 48 && str[index] <= 57) ||
              (str[index] >= 65 && str[index] <= 90) || (str[index] >= 94 &&
              str[index] <= 126) || (str[index] >= 42 && str[index] <=
              43) || (str[index] >= 38 && str[index] <= 39) ||
              (str[index] == 63))) {
              ++indexTemp2;
              while (indexTemp2 < endIndex && ((str[indexTemp2] == 33) ||
                (str[indexTemp2] >= 35 && str[indexTemp2] <= 36) ||
                (str[indexTemp2] >= 45 && str[indexTemp2] <= 46) ||
                (str[indexTemp2] >= 48 && str[indexTemp2] <= 57) ||
                (str[indexTemp2] >= 65 && str[indexTemp2] <= 90) ||
                (str[indexTemp2] >= 94 && str[indexTemp2] <= 126) ||
                (str[indexTemp2] >= 42 && str[indexTemp2] <= 43) ||
                (str[indexTemp2] >= 38 && str[indexTemp2] <= 39) ||
                (str[indexTemp2] == 63))) {
                ++indexTemp2;
              }
              break;
            }
            indexTemp3 = ParseQuotedString(str, index, endIndex, tokener);
            if (indexTemp3 != index) {
              indexTemp2 = indexTemp3; break;
            }
            state3 = (tokener != null) ? tokener.GetState() : 0;
            indexTemp3 = index;
            do {
              indexStart3 = index;
              do {
                indexTemp4 = index;
                do {
                  indexStart4 = index;
                  index = ParseLocalPart(str, index, endIndex, tokener);
                  if (index < endIndex && (str[index] == 64)) {
                    ++index;
                  } else {
                    index = indexStart4; break;
                  }
                  indexTemp4 = index;
                  index = indexStart4;
                } while (false);
                if (indexTemp4 != index) {
                  index = indexTemp4;
                } else {
                  break;
                }
              } while (false);
              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;
    }
Example #25
0
    public static int ParseValue(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexTemp, indexTemp2, state;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        if (index < endIndex && ((str[index] == 33) || (str[index] >= 35 &&
          str[index] <= 36) || (str[index] >= 45 && str[index] <= 46) ||
          (str[index] >= 48 && str[index] <= 57) || (str[index] >= 65 &&
          str[index] <= 90) || (str[index] >= 94 && str[index] <= 126) ||
          (str[index] >= 42 && str[index] <= 43) || (str[index] >= 38 &&
          str[index] <= 39) || (str[index] == 63))) {
          ++indexTemp;
          while (indexTemp < endIndex && ((str[indexTemp] == 33) ||
            (str[indexTemp] >= 35 && str[indexTemp] <= 36) ||
            (str[indexTemp] >= 45 && str[indexTemp] <= 46) ||
            (str[indexTemp] >= 48 && str[indexTemp] <= 57) ||
            (str[indexTemp] >= 65 && str[indexTemp] <= 90) ||
            (str[indexTemp] >= 94 && str[indexTemp] <= 126) ||
            (str[indexTemp] >= 42 && str[indexTemp] <= 43) ||
            (str[indexTemp] >= 38 && str[indexTemp] <= 39) ||
            (str[indexTemp] == 63))) {
            ++indexTemp;
          }
          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;
    }
Example #26
0
    public static int ParseQcontent(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexTemp, indexTemp2, state;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        if (index < endIndex && ((str[index] == 33) || (str[index] >= 35 &&
          str[index] <= 91) || (str[index] >= 93 && str[index] <= 126) ||
          (str[index] >= 1 && str[index] <= 8) || (str[index] >= 11 &&
          str[index] <= 12) || (str[index] >= 14 && str[index] <= 31) ||
          (str[index] == 127) || (str[index] >= 128 && str[index] <= 55295) ||
          (str[index] >= 57344 && str[index] <= 65535))) {
          ++indexTemp; break;
        }
        if (index + 1 < endIndex && ((str[index] >= 55296 && str[index] <=
          56319) && (str[index + 1] >= 56320 && str[index + 1] <= 57343))) {
          indexTemp += 2; break;
        }
        indexTemp2 = ParseQuotedPair(str, index, endIndex, tokener);
        if (indexTemp2 != index) {
          indexTemp = indexTemp2; break;
        }
      } while (false);
      if (tokener != null && indexTemp == indexStart) {
 tokener.RestoreState(state);
}
      return indexTemp;
    }
Example #27
0
    public static int ParseZone(
string str,
int index,
int endIndex,
ITokener tokener) {
      int i2, indexStart, indexStart2, indexTemp, indexTemp2, indexTemp3,
        state, state2;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        state2 = (tokener != null) ? tokener.GetState() : 0;
        indexTemp2 = index;
        do {
          indexStart2 = index;
          for (i2 = 0; true; ++i2) {
            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[index] == 43) || (str[index] == 45))) {
            ++index;
          } else {
            index = indexStart2; break;
          }
          if (index + 3 < endIndex && ((str[index] >= 48 && str[index] <=
            57) || (str[index + 1] >= 48 && str[index + 1] <= 57) ||
            (str[index + 2] >= 48 && str[index + 2] <= 57) || (str[index +
            3] >= 48 && str[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 {
          indexStart2 = index;
          index = ParseCFWS(str, index, endIndex, tokener);
          do {
            indexTemp3 = index;
            do {
              if (index + 1 < endIndex && (str[index] & ~32) == 85 &&
                (str[index + 1] & ~32) == 84) {
                indexTemp3 += 2; break;
              }
              if (index + 2 < endIndex && (str[index] & ~32) == 71 &&
                (str[index + 1] & ~32) == 77 && (str[index + 2] & ~32) ==
                84) {
                indexTemp3 += 3; break;
              }
              if (index + 2 < endIndex && (str[index] & ~32) == 69 &&
                (str[index + 1] & ~32) == 83 && (str[index + 2] & ~32) ==
                84) {
                indexTemp3 += 3; break;
              }
              if (index + 2 < endIndex && (str[index] & ~32) == 69 &&
                (str[index + 1] & ~32) == 68 && (str[index + 2] & ~32) ==
                84) {
                indexTemp3 += 3; break;
              }
              if (index + 2 < endIndex && (str[index] & ~32) == 67 &&
                (str[index + 1] & ~32) == 83 && (str[index + 2] & ~32) ==
                84) {
                indexTemp3 += 3; break;
              }
              if (index + 2 < endIndex && (str[index] & ~32) == 67 &&
                (str[index + 1] & ~32) == 68 && (str[index + 2] & ~32) ==
                84) {
                indexTemp3 += 3; break;
              }
              if (index + 2 < endIndex && (str[index] & ~32) == 77 &&
                (str[index + 1] & ~32) == 83 && (str[index + 2] & ~32) ==
                84) {
                indexTemp3 += 3; break;
              }
              if (index + 2 < endIndex && (str[index] & ~32) == 77 &&
                (str[index + 1] & ~32) == 68 && (str[index + 2] & ~32) ==
                84) {
                indexTemp3 += 3; break;
              }
              if (index + 2 < endIndex && (str[index] & ~32) == 80 &&
                (str[index + 1] & ~32) == 83 && (str[index + 2] & ~32) ==
                84) {
                indexTemp3 += 3; break;
              }
              if (index + 2 < endIndex && (str[index] & ~32) == 80 &&
                (str[index + 1] & ~32) == 68 && (str[index + 2] & ~32) ==
                84) {
                indexTemp3 += 3; break;
              }
              if (index < endIndex && ((str[index] >= 65 && str[index] <=
                73) || (str[index] >= 75 && str[index] <= 90) || (str[index]
                >= 97 && str[index] <= 105) || (str[index] >= 107 &&
                str[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;
    }
Example #28
0
    public static int ParseQuotedMilitaryString(
string str,
int index,
int endIndex,
ITokener tokener) {
      int i, indexStart, indexTemp, indexTemp2, state;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        if (index < endIndex && (str[index] == 34)) {
          ++index;
        } else {
          break;
        }
        for (i = 0; i < 69; ++i) {
          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[index] == 34)) {
          ++index;
        } else {
          index = indexStart; break;
        }
        indexTemp = index;
      } while (false);
      if (tokener != null && indexTemp == indexStart) {
 tokener.RestoreState(state);
}
      return indexTemp;
    }
    // Parses a comment using the obsolete syntax.
    internal static int ParseCommentLax(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart = index;
      var depth = 0;
      if (index < endIndex && (str[index] == 40)) {
        ++index;
      } else {
        return index;
      }
      int state = (tokener != null) ? tokener.GetState() : 0;
      do {
        while (true) {
          int indexTemp2;
          int state2 = (tokener != null) ? tokener.GetState() : 0;
          indexTemp2 = index;
          do {
            int indexStart2 = index;
            index = HeaderParser.ParseFWS(str, index, endIndex, null);
            do {
              int indexTemp3 = index;
              do {
                if (index < endIndex && ((str[index] >= 128 && str[index] <=
                  55295) || (str[index] >= 57344 && str[index] <= 65535))) {
                  ++indexTemp3; break;
                }
                if (index + 1 < endIndex && ((str[index] >= 55296 &&
                  str[index] <= 56319) && (str[index + 1] >= 56320 &&
                  str[index + 1] <= 57343))) {
                  indexTemp3 += 2; break;
                }
                int indexTemp4;
      indexTemp4 = HeaderParser.ParseQuotedPair(
str,
index,
endIndex,
null);
                if (indexTemp4 != index) {
                  indexTemp3 = indexTemp4; break;
                }
                if (index < endIndex && ((str[index] >= 1 && str[index] <=
                  8) || (str[index] >= 11 && str[index] <= 12) ||
                  (str[index] >= 14 && str[index] <= 31) || (str[index] ==
                  127))) {
                  ++indexTemp3; break;
                }
                if (index < endIndex && ((str[index] >= 93 && str[index] <=
                  126) || (str[index] >= 42 && str[index] <= 91) ||
                  (str[index] >= 33 && str[index] <= 39))) {
                  ++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;
          }
        }
        index = HeaderParser.ParseFWS(str, index, endIndex, null);
        if (index < endIndex && str[index] == 41) {
          // End of current comment
          ++index;
          if (depth == 0) {
            if (tokener != null) {
              tokener.Commit(TokenComment, indexStart, index);
            }
            return index;
          }
          --depth;
        } else if (index < endIndex && str[index] == 40) {
          // Start of nested comment
          ++index;
          ++depth;
        } else {
          if (tokener != null) {
            tokener.RestoreState(state);
          }
          return indexStart;
        }
      } while (true);
    }
Example #30
0
    public static int ParseQuotedString(
string str,
int index,
int endIndex,
ITokener tokener) {
      int indexStart, indexStart2, indexTemp, indexTemp2, state, state2, tx3;
      indexStart = index;
      state = (tokener != null) ? tokener.GetState() : 0;
      indexTemp = index;
      do {
        index = ParseCFWS(str, index, endIndex, tokener);
        if (index < endIndex && (str[index] == 34)) {
          ++index;
        } else {
          index = indexStart; break;
        }
        while (true) {
          state2 = (tokener != null) ? tokener.GetState() : 0;
          indexTemp2 = index;
          do {
            indexStart2 = index;
            index = ParseFWS(str, index, endIndex, tokener);
            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[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;
    }