/// <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; }
public static void AddComment(this Node parent, HtmlToken token) { parent.AddNode(new Comment(parent.Owner, token.Data)); }