internal static char LiteralLastChar(int literal) { if (literal <= 65535) { return((char)literal); } return(ParseSupport.LowSurrogateCharFromUcs4(literal)); }
public void Write(int ucs32Literal, IFallback fallback) { if (ucs32Literal > 65535) { stringBuffer[0] = ParseSupport.HighSurrogateCharFromUcs4(ucs32Literal); stringBuffer[1] = ParseSupport.LowSurrogateCharFromUcs4(ucs32Literal); } else { stringBuffer[0] = (char)ucs32Literal; } Write(stringBuffer, 0, (ucs32Literal > 65535) ? 2 : 1, fallback); }
public void AdvanceLowerCase(int ucs32) { if (ucs32 < 65536) { AdvanceLowerCase((char)ucs32); return; } char c = ParseSupport.LowSurrogateCharFromUcs4(ucs32); char c2 = ParseSupport.LowSurrogateCharFromUcs4(ucs32); if (((offset += 2) & 1) == 0) { hash1 = ((hash1 << 5) + hash1 ^ c); hash2 = ((hash2 << 5) + hash2 ^ c2); return; } hash2 = ((hash2 << 5) + hash2 ^ c); hash1 = ((hash1 << 5) + hash1 ^ c2); }
public void Write(int ucs32Char) { if (ucs32Char > 65535) { int num = PrepareToBuffer(2); if (num > 0) { parseBuffer[maxTokenSize] = ParseSupport.HighSurrogateCharFromUcs4(ucs32Char); parseBuffer[maxTokenSize + 1] = ParseSupport.LowSurrogateCharFromUcs4(ucs32Char); maxTokenSize += num; parseBuffer[maxTokenSize] = '\0'; return; } } else { int num = PrepareToBuffer(1); if (num > 0) { parseBuffer[maxTokenSize++] = (char)ucs32Char; parseBuffer[maxTokenSize] = '\0'; } } }