AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.5.1" />

 HtmlToken

abstract class HtmlToken
The abstract base class of any HTML token.
using System.Diagnostics; namespace AngleSharp.Parser.Html { [DebuggerStepThrough] internal abstract class HtmlToken { private static HtmlEndOfFileToken eof; protected HtmlTokenType _type; public static HtmlEndOfFileToken EOF => eof ?? (eof = new HtmlEndOfFileToken()); public virtual bool IsHtmlCompatible => false; public bool IsSvg => IsStartTag("svg"); public bool IsEof => _type == HtmlTokenType.EOF; public virtual bool IsMathCompatible => false; public HtmlTokenType Type => _type; [DebuggerStepThrough] public static HtmlCharacterToken Character(string characters) { return new HtmlCharacterToken(characters); } [DebuggerStepThrough] public static HtmlCommentToken Comment(string comment) { return new HtmlCommentToken(comment); } [DebuggerStepThrough] public static HtmlDoctypeToken Doctype(bool quirksmode) { return new HtmlDoctypeToken(quirksmode); } [DebuggerStepThrough] public static HtmlTagToken OpenTag() { HtmlTagToken htmlTagToken = new HtmlTagToken(); htmlTagToken._type = HtmlTokenType.StartTag; return htmlTagToken; } [DebuggerStepThrough] public static HtmlTagToken CloseTag() { HtmlTagToken htmlTagToken = new HtmlTagToken(); htmlTagToken._type = HtmlTokenType.EndTag; return htmlTagToken; } [DebuggerStepThrough] public static HtmlTagToken OpenTag(string name) { HtmlTagToken htmlTagToken = new HtmlTagToken(name); htmlTagToken._type = HtmlTokenType.StartTag; return htmlTagToken; } [DebuggerStepThrough] public static HtmlTagToken CloseTag(string name) { HtmlTagToken htmlTagToken = new HtmlTagToken(name); htmlTagToken._type = HtmlTokenType.EndTag; return htmlTagToken; } public HtmlTagToken AsTag() { return (HtmlTagToken)this; } public bool IsTag(string name) { if (_type == HtmlTokenType.StartTag || _type == HtmlTokenType.EndTag) return IsTagName(name); return false; } public bool IsEndTag(string name) { if (_type == HtmlTokenType.EndTag) return IsTagName(name); return false; } public bool IsEndTagInv(string name) { if (_type == HtmlTokenType.EndTag) return !IsTagName(name); return false; } public bool IsEndTag(string nameA, string nameB) { if (_type == HtmlTokenType.EndTag) { if (!IsTagName(nameA)) return IsTagName(nameB); return true; } return false; } public bool IsEndTag(string nameA, string nameB, string nameC) { if (_type == HtmlTokenType.EndTag) { if (!IsTagName(nameA) && !IsTagName(nameB)) return IsTagName(nameC); return true; } return false; } public bool IsEndTagInv(string nameA, string nameB, string nameC) { if (_type == HtmlTokenType.EndTag && !IsTagName(nameA) && !IsTagName(nameB)) return !IsTagName(nameC); return false; } public bool IsEndTag(string nameA, string nameB, string nameC, string nameD) { if (_type == HtmlTokenType.EndTag) { if (!IsTagName(nameA) && !IsTagName(nameB) && !IsTagName(nameC)) return IsTagName(nameD); return true; } return false; } public bool IsEndTagInv(string nameA, string nameB, string nameC, string nameD) { if (_type == HtmlTokenType.EndTag && !IsTagName(nameA) && !IsTagName(nameB) && !IsTagName(nameC)) return !IsTagName(nameD); return false; } public bool IsStartTag(string name) { if (_type == HtmlTokenType.StartTag) return IsTagName(name); return false; } public bool IsStartTag(string nameA, string nameB) { if (_type == HtmlTokenType.StartTag) { if (!IsTagName(nameA)) return IsTagName(nameB); return true; } return false; } public bool IsStartTag(string nameA, string nameB, string nameC) { if (_type == HtmlTokenType.StartTag) { if (!IsTagName(nameA) && !IsTagName(nameB)) return IsTagName(nameC); return true; } return false; } public bool IsStartTag(string nameA, string nameB, string nameC, string nameD) { if (_type == HtmlTokenType.StartTag) { if (!IsTagName(nameA) && !IsTagName(nameB) && !IsTagName(nameC)) return IsTagName(nameD); return true; } return false; } public bool IsStartTag(string nameA, string nameB, string nameC, string nameD, string nameE, string nameF) { if (_type == HtmlTokenType.StartTag) { if (!IsTagName(nameA) && !IsTagName(nameB) && !IsTagName(nameC) && !IsTagName(nameD) && !IsTagName(nameE)) return IsTagName(nameF); return true; } return false; } public bool IsStartTag(string nameA, string nameB, string nameC, string nameD, string nameE, string nameF, string nameG, string nameH, string nameJ) { if (_type == HtmlTokenType.StartTag) { if (!IsTagName(nameA) && !IsTagName(nameB) && !IsTagName(nameC) && !IsTagName(nameD) && !IsTagName(nameE) && !IsTagName(nameF) && !IsTagName(nameG) && !IsTagName(nameH)) return IsTagName(nameJ); return true; } return false; } protected virtual bool IsTagName(string name) { return false; } } }