/// <summary>
        /// Gets the next available token.
        /// </summary>
        /// <returns>The next available token.</returns>
        public HtmlToken Get()
        {
            var token = _buffered;

            if (token != null)
            {
                _buffered = null;
                return token;
            }

            var current = Next;

            if (IsEnded)
                return HtmlToken.EOF;

            switch (_state)
            {
                case HtmlParseMode.PCData:
                    token = Data(current);
                    break;

                case HtmlParseMode.RCData:
                    token = RCData(current);
                    break;

                case HtmlParseMode.Plaintext:
                    token = Plaintext(current);
                    break;

                case HtmlParseMode.Rawtext:
                    token = Rawtext(current);
                    break;

                case HtmlParseMode.Script:
                    token = ScriptData(current);
                    break;
            }

            if (_buffer.Length > 0)
            {
                _buffered = token;
                token = HtmlToken.Character(_buffer.ToString());
                _buffer.Clear();
            }

            return token;
        }
Beispiel #2
0
 public static void AddComment(this Node parent, HtmlToken token)
 {
     parent.AddNode(new Comment(parent.Owner, token.Data));
 }
 public static void AddComment(this Node parent, HtmlToken token)
 {
     parent.AddNode(new Comment(parent.Owner, token.Data));
 }