using System.Text.RegularExpressions; namespace Day24; public partial class Parser { private static readonly char[] _separators = new char[] { '@', ',' }; [GeneratedRegex(@".*")] private partial Regex LineMatch(); public IEnumerable Parse(string inputFile) { using var reader = File.OpenText(inputFile); while (!reader.EndOfStream) { var line = reader.ReadLine()!; var numbers = line.Split(_separators, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries) .Select(long.Parse).ToArray(); yield return new Line3( Vec3.FromSpan(numbers), Vec3.FromSpan(numbers.AsSpan().Slice(3)) ); } } }