public Result <TextSpan, TextSpan> Parse(ParseText text, TextSpan span) { if (span.Length == 0) { return(new Unmatched <TextSpan, TextSpan>(span)); } var match = text.Match(_regex, span); if (match.Success && match.Index == 0) { return(new Success <TextSpan, TextSpan>(span.Take(match.Length), span.Skip(match.Length))); } return(new Unmatched <TextSpan, TextSpan>(span)); }
public override Match Match(Regex regex, TextSpan span) { CheckSpanInLength(span); return(_text.Match(regex, new TextSpan(_span.Start + span.Start, span.Length))); }