Microsoft.Language.Xml.Scanner.ScanXmlCharRef C# (CSharp) Method

ScanXmlCharRef() private method

private ScanXmlCharRef ( int &index ) : XmlCharResult
index int
return XmlCharResult
        private XmlCharResult ScanXmlCharRef(ref int index)
        {
            Debug.Assert(index >= 0);
            if (!CanGetCharAtOffset(index))
            {
                return default(XmlCharResult);
            }

            var charRefSb = new StringBuilder();
            var Here = index;
            var ch = PeekAheadChar(Here);
            if (ch == 'x')
            {
                Here += 1;
                while (CanGetCharAtOffset(Here))
                {
                    ch = PeekAheadChar(Here);
                    if (XmlCharType.IsHexDigit(ch))
                    {
                        charRefSb.Append(ch);
                    }
                    else
                    {
                        break;
                    }

                    Here += 1;
                }

                if (charRefSb.Length > 0)
                {
                    var result = HexToUTF16(charRefSb);
                    if (result.Length != 0)
                    {
                        index = Here;
                    }

                    return result;
                }
            }
            else
            {
                while (CanGetCharAtOffset(Here))
                {
                    ch = PeekAheadChar(Here);
                    if (XmlCharType.IsDigit(ch))
                    {
                        charRefSb.Append(ch);
                    }
                    else
                    {
                        break;
                    }

                    Here += 1;
                }

                if (charRefSb.Length > 0)
                {
                    var result = DecToUTF16(charRefSb);
                    if (result.Length != 0)
                    {
                        index = Here;
                    }

                    return result;
                }
            }

            return default(XmlCharResult);
        }
Scanner