Beispiel #1
0
        // Token: 0x06001245 RID: 4677 RVA: 0x000833E4 File Offset: 0x000815E4
        protected internal void WriteEscapedOriginalTo(ref Token.Fragment fragment, ITextSink sink)
        {
            int num = fragment.Head;

            if (num != fragment.Tail)
            {
                int num2 = fragment.HeadOffset;
                do
                {
                    Token.RunEntry runEntry = this.RunList[num];
                    if (runEntry.Type == (RunType)2147483648U || runEntry.Type == (RunType)3221225472U)
                    {
                        if (runEntry.Kind == 184549376U && this.Buffer[num2] == '/')
                        {
                            string text = "/**/";
                            for (int i = 0; i < text.Length; i++)
                            {
                                sink.Write((int)text[i]);
                            }
                        }
                        else
                        {
                            this.EscapeAndWriteBuffer(this.Buffer, num2, runEntry.Length, sink);
                        }
                    }
                    num2 += runEntry.Length;
                }while (++num != fragment.Tail && !sink.IsEnough);
            }
        }
Beispiel #2
0
        protected internal void WriteEscapedOriginalTo(ref Token.Fragment fragment, ITextSink sink)
        {
            int num = fragment.head;

            if (num != fragment.tail)
            {
                int num2 = fragment.headOffset;
                do
                {
                    Token.RunEntry runEntry = runList[num];
                    if (runEntry.Type == (RunType)2147483648u || runEntry.Type == (RunType)3221225472u)
                    {
                        EscapeAndWriteBuffer(buffer, num2, runEntry.Length, sink);
                    }
                    num2 += runEntry.Length;
                }while (++num != fragment.tail && !sink.IsEnough);
            }
        }
Beispiel #3
0
        public HtmlNameIndex LookupTagName(int nameLength, Token.Fragment fragment)
        {
            if (nameLength > HtmlNameData.MAX_NAME)
            {
                return(HtmlNameIndex.Unknown);
            }

            var nameHashValue = (short)(((uint)token.CalculateHashLowerCase(fragment) ^ HtmlNameData.NAME_HASH_MODIFIER) % HtmlNameData.NAME_HASH_SIZE);



            var nameIndex = (int)HtmlNameData.nameHashTable[nameHashValue];

            if (nameIndex > 0)
            {
                do
                {
                    var name = HtmlNameData.names[nameIndex].name;

                    if (name.Length == nameLength)
                    {
                        if (fragment.tail == fragment.head + 1)
                        {
                            if (name[0] == ParseSupport.ToLowerCase(token.buffer[fragment.headOffset]))
                            {
                                if (nameLength == 1 || token.CaseInsensitiveCompareRunEqual(fragment.headOffset + 1, name, 1))
                                {
                                    return((HtmlNameIndex)nameIndex);
                                }
                            }
                        }
                        else if (token.CaseInsensitiveCompareEqual(ref fragment, name))
                        {
                            return((HtmlNameIndex)nameIndex);
                        }
                    }

                    nameIndex++;
                }while (HtmlNameData.names[nameIndex].hash == nameHashValue);
            }

            return(HtmlNameIndex.Unknown);
        }
        // Token: 0x060012B5 RID: 4789 RVA: 0x00084EFC File Offset: 0x000830FC
        public HtmlNameIndex LookupTagName(int nameLength, Token.Fragment fragment)
        {
            if (nameLength > 14)
            {
                return(HtmlNameIndex.Unknown);
            }
            short num  = (short)((ulong)(this.token.CalculateHashLowerCase(fragment) ^ 221) % 601UL);
            int   num2 = (int)HtmlNameData.nameHashTable[(int)num];

            if (num2 > 0)
            {
                for (;;)
                {
                    string name = HtmlNameData.Names[num2].Name;
                    if (name.Length == nameLength)
                    {
                        if (fragment.Tail == fragment.Head + 1)
                        {
                            if (name[0] == ParseSupport.ToLowerCase(this.token.Buffer[fragment.HeadOffset]) && (nameLength == 1 || this.token.CaseInsensitiveCompareRunEqual(fragment.HeadOffset + 1, name, 1)))
                            {
                                break;
                            }
                        }
                        else if (this.token.CaseInsensitiveCompareEqual(ref fragment, name))
                        {
                            goto Block_6;
                        }
                    }
                    num2++;
                    if (HtmlNameData.Names[num2].Hash != num)
                    {
                        return(HtmlNameIndex.Unknown);
                    }
                }
                return((HtmlNameIndex)num2);

Block_6:
                return((HtmlNameIndex)num2);
            }
            return(HtmlNameIndex.Unknown);
        }
        public CssNameIndex LookupName(int nameLength, Token.Fragment fragment)
        {
            if (nameLength > 26)
            {
                return(CssNameIndex.Unknown);
            }
            short num  = (short)((ulong)(token.CalculateHashLowerCase(fragment) ^ 2) % 329uL);
            int   num2 = (int)CssData.nameHashTable[(int)num];

            if (num2 > 0)
            {
                while (true)
                {
                    string name = CssData.names[num2].name;
                    if (name.Length == nameLength)
                    {
                        if (fragment.tail == fragment.head + 1)
                        {
                            if (name[0] == ParseSupport.ToLowerCase(token.buffer[fragment.headOffset]) && (nameLength == 1 || token.CaseInsensitiveCompareRunEqual(fragment.headOffset + 1, name, 1)))
                            {
                                break;
                            }
                        }
                        else if (token.CaseInsensitiveCompareEqual(ref fragment, name))
                        {
                            goto Block_6;
                        }
                    }
                    num2++;
                    if (CssData.names[num2].hash != num)
                    {
                        return(CssNameIndex.Unknown);
                    }
                }
                return((CssNameIndex)num2);

Block_6:
                return((CssNameIndex)num2);
            }
            return(CssNameIndex.Unknown);
        }