AngleSharp by AngleSharp

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

 CssRangeToken

sealed class CssRangeToken : CssToken
Represents the CSS range token.
using AngleSharp.Extensions; using System.Collections.Generic; using System.Globalization; namespace AngleSharp.Parser.Css { internal sealed class CssRangeToken : CssToken { private readonly string[] _range; private readonly string _start; private readonly string _end; public bool IsEmpty { get { if (_range != null) return _range.Length == 0; return true; } } public string Start => _start; public string End => _end; public string[] SelectedRange => _range; public CssRangeToken(string range, TextPosition position) : base(CssTokenType.Range, range, position) { _start = range.Replace('?', '0'); _end = range.Replace('?', 'F'); _range = GetRange(); } public CssRangeToken(string start, string end, TextPosition position) : base(CssTokenType.Range, start + "-" + end, position) { _start = start; _end = end; _range = GetRange(); } private string[] GetRange() { int i = int.Parse(_start, NumberStyles.HexNumber); if (i <= 1114111) { if (_end != null) { List<string> list = new List<string>(); int num = int.Parse(_end, NumberStyles.HexNumber); if (num > 1114111) num = 1114111; for (; i <= num; i++) { list.Add(i.ConvertFromUtf32()); } return list.ToArray(); } return new string[1] { i.ConvertFromUtf32() }; } return null; } } }