public int UTF16ToUnicode(Scanner.XmlCharResult ch) { switch (ch.Length) { case 1: return Convert.ToInt32(ch.Char1); case 2: Debug.Assert( Convert.ToInt32(ch.Char1) >= 0xD800 && Convert.ToInt32(ch.Char1) <= 0xDBFF && Convert.ToInt32(ch.Char2) >= 0xDC00 && Convert.ToInt32(ch.Char2) <= 0xDFFF); return ( Convert.ToInt32(ch.Char1) - 0xD800) << 10 + (Convert.ToInt32(ch.Char2) - 0xDC00) + 0x10000; } return 0; }
public Parser(Buffer buffer, CancellationToken cancellationToken = default(CancellationToken)) { this.buffer = buffer; this._scanner = new Scanner(buffer); this.cancellationToken = cancellationToken; }