Ejemplo n.º 1
0
        private string GetRawTokenText(RawToken rawToken)
        {
            var startText = rawToken.OpeningPosition + rawToken.Markup.Opening.Length;
            var content   = text.Substring(startText, rawToken.ClosingPosition - startText);

            return(content);
        }
Ejemplo n.º 2
0
        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);
        }