private dfMarkupToken parseTag() { if (this.Peek(0) != '[') { return(null); } if (this.Peek(1) == '/') { return(this.parseEndTag()); } this.Advance(1); if (!char.IsLetterOrDigit(this.Peek(0))) { return(null); } int index = this.index; int endIndex = this.index; while ((this.index < this.source.Length) && char.IsLetterOrDigit(this.Advance(1))) { endIndex++; } dfMarkupToken token = dfMarkupToken.Obtain(this.source, dfMarkupTokenType.StartTag, index, endIndex); if ((this.index < this.source.Length) && (this.Peek(0) != ']')) { if (char.IsWhiteSpace(this.Peek(0))) { this.parseWhitespace(); } int startIndex = this.index; int num4 = this.index; if (this.Peek(0) == '"') { dfMarkupToken key = this.parseQuotedString(); token.AddAttribute(key, key); } else { while ((this.index < this.source.Length) && (this.Advance(1) != ']')) { num4++; } dfMarkupToken token3 = dfMarkupToken.Obtain(this.source, dfMarkupTokenType.Text, startIndex, num4); token.AddAttribute(token3, token3); } } if (this.Peek(0) == ']') { this.Advance(1); } return(token); }
private dfMarkupToken parseTag() { if (this.Peek(0) != '[') { return(null); } if (this.Peek(1) == '/') { return(this.parseEndTag()); } this.Advance(1); if (!char.IsLetterOrDigit(this.Peek(0))) { return(null); } int num = this.index; int num1 = this.index; while (this.index < this.source.Length && char.IsLetterOrDigit(this.Advance(1))) { num1++; } dfMarkupToken _dfMarkupToken = dfMarkupToken.Obtain(this.source, dfMarkupTokenType.StartTag, num, num1); if (this.index < this.source.Length && this.Peek(0) != ']') { if (char.IsWhiteSpace(this.Peek(0))) { this.parseWhitespace(); } int num2 = this.index; int num3 = this.index; if (this.Peek(0) != '\"') { while (this.index < this.source.Length && this.Advance(1) != ']') { num3++; } dfMarkupToken _dfMarkupToken1 = dfMarkupToken.Obtain(this.source, dfMarkupTokenType.Text, num2, num3); _dfMarkupToken.AddAttribute(_dfMarkupToken1, _dfMarkupToken1); } else { dfMarkupToken _dfMarkupToken2 = this.parseQuotedString(); _dfMarkupToken.AddAttribute(_dfMarkupToken2, _dfMarkupToken2); } } if (this.Peek(0) == ']') { this.Advance(1); } return(_dfMarkupToken); }
private dfMarkupToken parseTag() { if (this.Peek(0) != '<') { return(null); } char chr = this.Peek(1); if (chr == '/') { return(this.parseEndTag()); } this.Advance(1); chr = this.Peek(0); if (!char.IsLetterOrDigit(chr)) { return(null); } int num = this.index; int num1 = this.index; while (this.index < this.source.Length && char.IsLetterOrDigit(this.Advance(1))) { num1++; } dfMarkupToken _dfMarkupToken = dfMarkupToken.Obtain(this.source, dfMarkupTokenType.StartTag, num, num1); while (this.index < this.source.Length && this.Peek(0) != '>') { chr = this.Peek(0); if (!char.IsWhiteSpace(chr)) { dfMarkupToken _dfMarkupToken1 = this.parseWord(); if (_dfMarkupToken1 != null) { chr = this.Peek(0); if (chr == '=') { chr = this.Advance(1); dfMarkupToken _dfMarkupToken2 = null; _dfMarkupToken2 = (chr == '\"' || chr == '\'' ? this.parseQuotedString() : this.parseAttributeValue()); _dfMarkupToken.AddAttribute(_dfMarkupToken1, _dfMarkupToken2 ?? _dfMarkupToken1); } else { _dfMarkupToken.AddAttribute(_dfMarkupToken1, _dfMarkupToken1); } } else { this.Advance(1); } } else { this.parseWhitespace(); } } if (this.Peek(0) == '>') { this.Advance(1); } return(_dfMarkupToken); }
private dfMarkupToken parseTag() { if (this.Peek(0) != '<') { return(null); } if (this.Peek(1) == '/') { return(this.parseEndTag()); } this.Advance(1); if (!char.IsLetterOrDigit(this.Peek(0))) { return(null); } int index = this.index; int endIndex = this.index; while ((this.index < this.source.Length) && char.IsLetterOrDigit(this.Advance(1))) { endIndex++; } dfMarkupToken token = dfMarkupToken.Obtain(this.source, dfMarkupTokenType.StartTag, index, endIndex); while ((this.index < this.source.Length) && (this.Peek(0) != '>')) { if (char.IsWhiteSpace(this.Peek(0))) { this.parseWhitespace(); continue; } dfMarkupToken key = this.parseWord(); if (key == null) { this.Advance(1); continue; } if (this.Peek(0) != '=') { token.AddAttribute(key, key); continue; } char ch = this.Advance(1); dfMarkupToken token3 = null; switch (ch) { case '"': case '\'': token3 = this.parseQuotedString(); break; default: token3 = this.parseAttributeValue(); break; } if (token3 == null) { } token.AddAttribute(key, key); } if (this.Peek(0) == '>') { this.Advance(1); } return(token); }