Пример #1
0
        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));
        }
Пример #2
0
        public override Match Match(Regex regex, TextSpan span)
        {
            CheckSpanInLength(span);

            return(_text.Match(regex, new TextSpan(_span.Start + span.Start, span.Length)));
        }