Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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);
    }
Exemplo n.º 4
0
    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);
    }