in src/Parsing/Impl/Tokens/Tokenizer.cs [1243:1300]
private Token ReadHexNumber() {
string tokenStr;
while (true) {
var ch = NextChar();
switch (ch) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
break;
case 'l':
case 'L':
MarkTokenEnd();
tokenStr = GetTokenString();
if (Verbatim) {
return new VerbatimConstantValueToken(ParseBigInteger(tokenStr.Substring(2), 16), tokenStr);
}
return new ConstantValueToken(ParseBigInteger(tokenStr.Substring(2), 16));
case '_':
if (LanguageVersion < PythonLanguageVersion.V36) {
goto default;
}
break;
default:
BufferBack();
MarkTokenEnd();
tokenStr = GetTokenString();
if (Verbatim) {
return new VerbatimConstantValueToken(ParseInteger(tokenStr.Substring(2), 16), tokenStr);
}
return new ConstantValueToken(ParseInteger(tokenStr.Substring(2), 16));
}
}
}