QUT.Gplex.Parser.CharacterUtilities.CodePoint C# (CSharp) Method

CodePoint() private method

private CodePoint ( string pattern, int &index ) : int
pattern string
index int
return int
        public static int CodePoint(string pattern, ref int index)
        {
            if (index >= pattern.Length)
                return -1;

            int hiUtf16 = (int)pattern[index++];
            if (hiUtf16 < 0xD800 || hiUtf16 > 0xDBFF)
                return hiUtf16;
            else
            {
                int loUtf16 = (int)pattern[index++];
                if (loUtf16 < 0xDC00 || loUtf16 > 0xDFFF)
                    throw new ArgumentException("Invalid surrogate pair");
                else
                    return (0x10000 + (hiUtf16 & 0x3FF << 10) + (loUtf16 & 0x3FF));
            }
        }