Ejemplo n.º 1
0
 internal HtmlAttributeParts(HtmlToken.AttrPartMajor major, HtmlToken.AttrPartMinor minor)
 {
     this.minor = minor;
     this.major = major;
 }
Ejemplo n.º 2
0
        public int RewindTag()
        {
            InternalDebug.Assert(this.IncompleteTag);
            InternalDebug.Assert(this.htmlToken.whole.head == 0);
            InternalDebug.Assert(this.numCarryOverRuns == 0 || this.carryOverRunsHeadOffset + this.carryOverRunsLength == this.tailOffset);

            if (this.state >= BuildStateTagAttrName)
            {
                if (0 == this.htmlToken.attributeTail ||
                    this.htmlToken.attributeList[this.htmlToken.attributeTail - 1].IsAttrEnd)
                {
                    InternalDebug.Assert(this.numCarryOverRuns != 0);

                    int deltaRuns = this.htmlToken.whole.tail;

                    Array.Copy(this.htmlToken.runList, deltaRuns, this.htmlToken.runList, 0, this.numCarryOverRuns);

                    this.htmlToken.whole.head       = 0;
                    this.htmlToken.whole.headOffset = this.carryOverRunsHeadOffset;
                    this.htmlToken.whole.tail       = this.numCarryOverRuns;
                    this.numCarryOverRuns           = 0;

                    this.htmlToken.attributeList[0] = this.htmlToken.attributeList[this.htmlToken.attributeTail];

                    this.htmlToken.partMinor = (HtmlToken.TagPartMinor) this.htmlToken.attributeList[0].MajorPart;

                    InternalDebug.Assert(this.htmlToken.attributeList[0].IsAttrBegin);

                    if (this.htmlToken.attributeList[0].name.head != -1)
                    {
                        this.htmlToken.attributeList[0].name.head -= deltaRuns;
                    }

                    if (this.htmlToken.attributeList[0].localName.head != -1)
                    {
                        this.htmlToken.attributeList[0].localName.head -= deltaRuns;
                    }

                    if (this.htmlToken.attributeList[0].value.head != -1)
                    {
                        this.htmlToken.attributeList[0].value.head -= deltaRuns;
                    }
                }
                else
                {
                    InternalDebug.Assert(this.numCarryOverRuns == 0);

                    this.htmlToken.whole.Initialize(0, this.tailOffset);

                    this.htmlToken.attributeList[0].nameIndex = this.htmlToken.attributeList[this.htmlToken.attributeTail - 1].nameIndex;

                    this.htmlToken.attributeList[0].partMajor = HtmlToken.AttrPartMajor.Continue;

                    HtmlToken.AttrPartMinor oldMinor = this.htmlToken.attributeList[this.htmlToken.attributeTail - 1].partMinor;

                    if (oldMinor == HtmlToken.AttrPartMinor.BeginName || oldMinor == HtmlToken.AttrPartMinor.ContinueName)
                    {
                        this.htmlToken.attributeList[0].partMinor = HtmlToken.AttrPartMinor.ContinueName;
                    }
                    else if (oldMinor == HtmlToken.AttrPartMinor.EndNameWithBeginValue ||
                             oldMinor == HtmlToken.AttrPartMinor.CompleteNameWithBeginValue ||
                             oldMinor == HtmlToken.AttrPartMinor.BeginValue ||
                             oldMinor == HtmlToken.AttrPartMinor.ContinueValue)
                    {
                        this.htmlToken.attributeList[0].partMinor = HtmlToken.AttrPartMinor.ContinueValue;
                    }
                    else
                    {
                        InternalDebug.Assert(oldMinor == HtmlToken.AttrPartMinor.EndName || oldMinor == HtmlToken.AttrPartMinor.CompleteName || oldMinor == HtmlToken.AttrPartMinor.Empty);

                        this.htmlToken.attributeList[0].partMinor = HtmlToken.AttrPartMinor.Empty;
                    }

                    this.htmlToken.attributeList[0].IsAttrDeleted     = false;
                    this.htmlToken.attributeList[0].IsAttrValueQuoted = this.htmlToken.attributeList[this.htmlToken.attributeTail - 1].IsAttrValueQuoted;
                    this.htmlToken.attributeList[0].quoteChar         = this.htmlToken.attributeList[this.htmlToken.attributeTail - 1].quoteChar;

                    if (this.state == BuildStateTagAttrName)
                    {
                        this.htmlToken.attributeList[0].name.Initialize(0, this.tailOffset);
                        this.htmlToken.attributeList[0].localName.Initialize(0, this.tailOffset);
                    }
                    else
                    {
                        this.htmlToken.attributeList[0].name.Reset();
                        this.htmlToken.attributeList[0].localName.Reset();
                    }

                    if (this.state == BuildStateTagAttrValue)
                    {
                        this.htmlToken.attributeList[0].value.Initialize(0, this.tailOffset);
                    }
                    else
                    {
                        this.htmlToken.attributeList[0].value.Reset();
                    }

                    this.htmlToken.partMinor = (HtmlToken.TagPartMinor) this.htmlToken.attributeList[0].MajorPart;
                }

                InternalDebug.Assert(!this.htmlToken.attributeList[0].IsAttrEnd);
            }
            else
            {
                InternalDebug.Assert(this.numCarryOverRuns == 0);

                this.htmlToken.whole.Initialize(0, this.tailOffset);

                if (this.htmlToken.partMinor == HtmlToken.TagPartMinor.BeginName || this.htmlToken.partMinor == HtmlToken.TagPartMinor.ContinueName)
                {
                    this.htmlToken.partMinor = HtmlToken.TagPartMinor.ContinueName;
                }
                else
                {
                    InternalDebug.Assert(this.htmlToken.partMinor == HtmlToken.TagPartMinor.CompleteName ||
                                         this.htmlToken.partMinor == HtmlToken.TagPartMinor.CompleteNameWithAttributes ||
                                         this.htmlToken.partMinor == HtmlToken.TagPartMinor.EndName ||
                                         this.htmlToken.partMinor == HtmlToken.TagPartMinor.EndNameWithAttributes ||
                                         this.htmlToken.partMinor == HtmlToken.TagPartMinor.EndAttribute ||
                                         this.htmlToken.partMinor == HtmlToken.TagPartMinor.EndAttributeWithOtherAttributes ||
                                         this.htmlToken.partMinor == HtmlToken.TagPartMinor.Attributes ||
                                         this.htmlToken.partMinor == HtmlToken.TagPartMinor.Empty);

                    this.htmlToken.partMinor = HtmlToken.TagPartMinor.Empty;
                }

                if (this.htmlToken.attributeList != null)
                {
                    this.htmlToken.attributeList[0].partMajor = HtmlToken.AttrPartMajor.None;
                    this.htmlToken.attributeList[0].partMinor = HtmlToken.AttrPartMinor.Empty;
                }
            }

            if (this.state == BuildStateTagText)
            {
                this.htmlToken.unstructured.Initialize(0, this.tailOffset);
            }
            else
            {
                this.htmlToken.unstructured.Reset();
            }

            if (this.state == BuildStateTagName)
            {
                this.htmlToken.name.Initialize(0, this.tailOffset);
                this.htmlToken.localName.Initialize(0, this.tailOffset);
            }
            else
            {
                this.htmlToken.name.Reset();
                this.htmlToken.localName.Reset();
            }

            this.htmlToken.attributeTail    = 0;
            this.htmlToken.currentAttribute = -1;

            this.htmlToken.partMajor = HtmlToken.TagPartMajor.Continue;

            this.tokenValid = false;

            return(this.htmlToken.whole.headOffset);
        }
Ejemplo n.º 3
0
 public void SetMinorPart(HtmlToken.AttrPartMinor newMinorPart)
 {
     this.AssertCurrent();
     this.token.attributeList[this.token.currentAttribute].MinorPart = newMinorPart;
 }
 // Token: 0x06001639 RID: 5689 RVA: 0x000AEEEE File Offset: 0x000AD0EE
 public void SetMinorPart(HtmlToken.AttrPartMinor newMinorPart)
 {
     this.token.AttributeList[this.token.CurrentAttribute].MinorPart = newMinorPart;
 }
Ejemplo n.º 5
0
 public int RewindTag()
 {
     if (state >= 24)
     {
         if (htmlToken.attributeTail == 0 || htmlToken.attributeList[htmlToken.attributeTail - 1].IsAttrEnd)
         {
             int tail = htmlToken.whole.tail;
             Array.Copy(htmlToken.runList, tail, htmlToken.runList, 0, numCarryOverRuns);
             htmlToken.whole.head       = 0;
             htmlToken.whole.headOffset = carryOverRunsHeadOffset;
             htmlToken.whole.tail       = numCarryOverRuns;
             numCarryOverRuns           = 0;
             htmlToken.attributeList[0] = htmlToken.attributeList[htmlToken.attributeTail];
             htmlToken.partMinor        = (HtmlToken.TagPartMinor)htmlToken.attributeList[0].MajorPart;
             if (htmlToken.attributeList[0].name.head != -1)
             {
                 HtmlToken.AttributeEntry[] expr_144_cp_0_cp_0 = htmlToken.attributeList;
                 int expr_144_cp_0_cp_1 = 0;
                 expr_144_cp_0_cp_0[expr_144_cp_0_cp_1].name.head = expr_144_cp_0_cp_0[expr_144_cp_0_cp_1].name.head - tail;
             }
             if (htmlToken.attributeList[0].localName.head != -1)
             {
                 HtmlToken.AttributeEntry[] expr_185_cp_0_cp_0 = htmlToken.attributeList;
                 int expr_185_cp_0_cp_1 = 0;
                 expr_185_cp_0_cp_0[expr_185_cp_0_cp_1].localName.head = expr_185_cp_0_cp_0[expr_185_cp_0_cp_1].localName.head - tail;
             }
             if (htmlToken.attributeList[0].value.head != -1)
             {
                 HtmlToken.AttributeEntry[] expr_1C9_cp_0_cp_0 = htmlToken.attributeList;
                 int expr_1C9_cp_0_cp_1 = 0;
                 expr_1C9_cp_0_cp_0[expr_1C9_cp_0_cp_1].value.head = expr_1C9_cp_0_cp_0[expr_1C9_cp_0_cp_1].value.head - tail;
             }
         }
         else
         {
             htmlToken.whole.Initialize(0, tailOffset);
             htmlToken.attributeList[0].nameIndex = htmlToken.attributeList[htmlToken.attributeTail - 1].nameIndex;
             htmlToken.attributeList[0].partMajor = HtmlToken.AttrPartMajor.Continue;
             HtmlToken.AttrPartMinor partMinor = htmlToken.attributeList[htmlToken.attributeTail - 1].partMinor;
             if (partMinor == HtmlToken.AttrPartMinor.BeginName || partMinor == HtmlToken.AttrPartMinor.ContinueName)
             {
                 htmlToken.attributeList[0].partMinor = HtmlToken.AttrPartMinor.ContinueName;
             }
             else if (partMinor == HtmlToken.AttrPartMinor.EndNameWithBeginValue || partMinor == HtmlToken.AttrPartMinor.CompleteNameWithBeginValue || partMinor == HtmlToken.AttrPartMinor.BeginValue || partMinor == HtmlToken.AttrPartMinor.ContinueValue)
             {
                 htmlToken.attributeList[0].partMinor = HtmlToken.AttrPartMinor.ContinueValue;
             }
             else
             {
                 htmlToken.attributeList[0].partMinor = HtmlToken.AttrPartMinor.Empty;
             }
             htmlToken.attributeList[0].IsAttrDeleted     = false;
             htmlToken.attributeList[0].IsAttrValueQuoted = htmlToken.attributeList[htmlToken.attributeTail - 1].IsAttrValueQuoted;
             htmlToken.attributeList[0].quoteChar         = htmlToken.attributeList[htmlToken.attributeTail - 1].quoteChar;
             if (state == 24)
             {
                 htmlToken.attributeList[0].name.Initialize(0, tailOffset);
                 htmlToken.attributeList[0].localName.Initialize(0, tailOffset);
             }
             else
             {
                 htmlToken.attributeList[0].name.Reset();
                 htmlToken.attributeList[0].localName.Reset();
             }
             if (state == 26)
             {
                 htmlToken.attributeList[0].value.Initialize(0, tailOffset);
             }
             else
             {
                 htmlToken.attributeList[0].value.Reset();
             }
             htmlToken.partMinor = (HtmlToken.TagPartMinor)htmlToken.attributeList[0].MajorPart;
         }
     }
     else
     {
         htmlToken.whole.Initialize(0, tailOffset);
         if (htmlToken.partMinor == HtmlToken.TagPartMinor.BeginName || htmlToken.partMinor == HtmlToken.TagPartMinor.ContinueName)
         {
             htmlToken.partMinor = HtmlToken.TagPartMinor.ContinueName;
         }
         else
         {
             htmlToken.partMinor = HtmlToken.TagPartMinor.Empty;
         }
         if (htmlToken.attributeList != null)
         {
             htmlToken.attributeList[0].partMajor = HtmlToken.AttrPartMajor.None;
             htmlToken.attributeList[0].partMinor = HtmlToken.AttrPartMinor.Empty;
         }
     }
     if (state == 21)
     {
         htmlToken.unstructured.Initialize(0, tailOffset);
     }
     else
     {
         htmlToken.unstructured.Reset();
     }
     if (state == 22)
     {
         htmlToken.name.Initialize(0, tailOffset);
         htmlToken.localName.Initialize(0, tailOffset);
     }
     else
     {
         htmlToken.name.Reset();
         htmlToken.localName.Reset();
     }
     htmlToken.attributeTail    = 0;
     htmlToken.currentAttribute = -1;
     htmlToken.partMajor        = HtmlToken.TagPartMajor.Continue;
     tokenValid = false;
     return(htmlToken.whole.headOffset);
 }
Ejemplo n.º 6
0
 public int RewindTag()
 {
     if (this.state >= 24)
     {
         if (this.htmlToken.AttributeTail == 0 || this.htmlToken.AttributeList[this.htmlToken.AttributeTail - 1].IsAttrEnd)
         {
             int tail = this.htmlToken.Whole.Tail;
             Array.Copy(this.htmlToken.RunList, tail, this.htmlToken.RunList, 0, this.numCarryOverRuns);
             this.htmlToken.Whole.Head       = 0;
             this.htmlToken.Whole.HeadOffset = this.carryOverRunsHeadOffset;
             this.htmlToken.Whole.Tail       = this.numCarryOverRuns;
             this.numCarryOverRuns           = 0;
             this.htmlToken.AttributeList[0] = this.htmlToken.AttributeList[this.htmlToken.AttributeTail];
             this.htmlToken.PartMinor        = (HtmlToken.TagPartMinor) this.htmlToken.AttributeList[0].MajorPart;
             if (this.htmlToken.AttributeList[0].Name.Head != -1)
             {
                 HtmlToken.AttributeEntry[] attributeList = this.htmlToken.AttributeList;
                 int num = 0;
                 attributeList[num].Name.Head = attributeList[num].Name.Head - tail;
             }
             if (this.htmlToken.AttributeList[0].LocalName.Head != -1)
             {
                 HtmlToken.AttributeEntry[] attributeList2 = this.htmlToken.AttributeList;
                 int num2 = 0;
                 attributeList2[num2].LocalName.Head = attributeList2[num2].LocalName.Head - tail;
             }
             if (this.htmlToken.AttributeList[0].Value.Head != -1)
             {
                 HtmlToken.AttributeEntry[] attributeList3 = this.htmlToken.AttributeList;
                 int num3 = 0;
                 attributeList3[num3].Value.Head = attributeList3[num3].Value.Head - tail;
             }
         }
         else
         {
             this.htmlToken.Whole.Initialize(0, this.tailOffset);
             this.htmlToken.AttributeList[0].NameIndex = this.htmlToken.AttributeList[this.htmlToken.AttributeTail - 1].NameIndex;
             this.htmlToken.AttributeList[0].PartMajor = HtmlToken.AttrPartMajor.Continue;
             HtmlToken.AttrPartMinor partMinor = this.htmlToken.AttributeList[this.htmlToken.AttributeTail - 1].PartMinor;
             if (partMinor == HtmlToken.AttrPartMinor.BeginName || partMinor == HtmlToken.AttrPartMinor.ContinueName)
             {
                 this.htmlToken.AttributeList[0].PartMinor = HtmlToken.AttrPartMinor.ContinueName;
             }
             else if (partMinor == HtmlToken.AttrPartMinor.EndNameWithBeginValue || partMinor == HtmlToken.AttrPartMinor.CompleteNameWithBeginValue || partMinor == HtmlToken.AttrPartMinor.BeginValue || partMinor == HtmlToken.AttrPartMinor.ContinueValue)
             {
                 this.htmlToken.AttributeList[0].PartMinor = HtmlToken.AttrPartMinor.ContinueValue;
             }
             else
             {
                 this.htmlToken.AttributeList[0].PartMinor = HtmlToken.AttrPartMinor.Empty;
             }
             this.htmlToken.AttributeList[0].IsAttrDeleted     = false;
             this.htmlToken.AttributeList[0].IsAttrValueQuoted = this.htmlToken.AttributeList[this.htmlToken.AttributeTail - 1].IsAttrValueQuoted;
             this.htmlToken.AttributeList[0].QuoteChar         = this.htmlToken.AttributeList[this.htmlToken.AttributeTail - 1].QuoteChar;
             if (this.state == 24)
             {
                 this.htmlToken.AttributeList[0].Name.Initialize(0, this.tailOffset);
                 this.htmlToken.AttributeList[0].LocalName.Initialize(0, this.tailOffset);
             }
             else
             {
                 this.htmlToken.AttributeList[0].Name.Reset();
                 this.htmlToken.AttributeList[0].LocalName.Reset();
             }
             if (this.state == 26)
             {
                 this.htmlToken.AttributeList[0].Value.Initialize(0, this.tailOffset);
             }
             else
             {
                 this.htmlToken.AttributeList[0].Value.Reset();
             }
             this.htmlToken.PartMinor = (HtmlToken.TagPartMinor) this.htmlToken.AttributeList[0].MajorPart;
         }
     }
     else
     {
         this.htmlToken.Whole.Initialize(0, this.tailOffset);
         if (this.htmlToken.PartMinor == HtmlToken.TagPartMinor.BeginName || this.htmlToken.PartMinor == HtmlToken.TagPartMinor.ContinueName)
         {
             this.htmlToken.PartMinor = HtmlToken.TagPartMinor.ContinueName;
         }
         else
         {
             this.htmlToken.PartMinor = HtmlToken.TagPartMinor.Empty;
         }
         if (this.htmlToken.AttributeList != null)
         {
             this.htmlToken.AttributeList[0].PartMajor = HtmlToken.AttrPartMajor.None;
             this.htmlToken.AttributeList[0].PartMinor = HtmlToken.AttrPartMinor.Empty;
         }
     }
     if (this.state == 21)
     {
         this.htmlToken.Unstructured.Initialize(0, this.tailOffset);
     }
     else
     {
         this.htmlToken.Unstructured.Reset();
     }
     if (this.state == 22)
     {
         this.htmlToken.NameInternal.Initialize(0, this.tailOffset);
         this.htmlToken.LocalName.Initialize(0, this.tailOffset);
     }
     else
     {
         this.htmlToken.NameInternal.Reset();
         this.htmlToken.LocalName.Reset();
     }
     this.htmlToken.AttributeTail    = 0;
     this.htmlToken.CurrentAttribute = -1;
     this.htmlToken.PartMajor        = HtmlToken.TagPartMajor.Continue;
     this.tokenValid = false;
     return(this.htmlToken.Whole.HeadOffset);
 }