in tensorflow/tensorflow/core/lib/strings/scanner.h [188:231]
static bool Matches(CharClass clz, char ch) {
switch (clz) {
case ALL:
return true;
case DIGIT:
return IsDigit(ch);
case LETTER:
return IsLetter(ch);
case LETTER_DIGIT:
return IsLetter(ch) || IsDigit(ch);
case LETTER_DIGIT_DASH_UNDERSCORE:
return (IsLetter(ch) || IsDigit(ch) || ch == '-' || ch == '_');
case LETTER_DIGIT_DASH_DOT_SLASH:
return IsLetter(ch) || IsDigit(ch) || ch == '-' || ch == '.' ||
ch == '/';
case LETTER_DIGIT_DASH_DOT_SLASH_UNDERSCORE:
return (IsLetter(ch) || IsDigit(ch) || ch == '-' || ch == '.' ||
ch == '/' || ch == '_');
case LETTER_DIGIT_DOT:
return IsLetter(ch) || IsDigit(ch) || ch == '.';
case LETTER_DIGIT_DOT_PLUS_MINUS:
return IsLetter(ch) || IsDigit(ch) || ch == '+' || ch == '-' ||
ch == '.';
case LETTER_DIGIT_DOT_UNDERSCORE:
return IsLetter(ch) || IsDigit(ch) || ch == '.' || ch == '_';
case LETTER_DIGIT_UNDERSCORE:
return IsLetter(ch) || IsDigit(ch) || ch == '_';
case LOWERLETTER:
return ch >= 'a' && ch <= 'z';
case LOWERLETTER_DIGIT:
return IsLowerLetter(ch) || IsDigit(ch);
case LOWERLETTER_DIGIT_UNDERSCORE:
return IsLowerLetter(ch) || IsDigit(ch) || ch == '_';
case NON_ZERO_DIGIT:
return IsDigit(ch) && ch != '0';
case SPACE:
return IsSpace(ch);
case UPPERLETTER:
return ch >= 'A' && ch <= 'Z';
case RANGLE:
return ch == '>';
}
return false;
}