private string GetRawTokenText(RawToken rawToken) { var startText = rawToken.OpeningPosition + rawToken.Markup.Opening.Length; var content = text.Substring(startText, rawToken.ClosingPosition - startText); return(content); }
private Token ReadTokenWithMarkup() { RawToken rawToken = null; var openingLength = 0; foreach (var markup in markups) { var possibleToken = markup.GetRawToken(text, currentPosition); if (possibleToken?.Markup.Opening.Length > openingLength) { rawToken = possibleToken; } } if (rawToken == null || rawToken.Empty()) { return(null); } var tokenText = GetRawTokenText(rawToken); var token = new Token(tokenText, rawToken.Markup); currentPosition = rawToken.ClosingPosition + rawToken.Markup.Closing.Length; return(token); }