Antlr4.StringTemplate.Compiler.TemplateLexer.MatchText C# (CSharp) Метод

MatchText() приватный Метод

private MatchText ( ) : IToken
Результат IToken
        private IToken MatchText()
        {
            bool modifiedText = false;
            StringBuilder buf = new StringBuilder();
            while (c != EOF && c != delimiterStartChar)
            {
                if (c == '\r' || c == '\n')
                    break;

                if (c == '}' && subtemplateDepth > 0)
                    break;

                if (c == '\\')
                {
                    if (input.LA(2) == '\\')
                    {
                        // convert \\ to \
                        Consume();
                        Consume();
                        buf.Append('\\');
                        modifiedText = true;
                        continue;
                    }

                    if (input.LA(2) == delimiterStartChar || input.LA(2) == '}')
                    {
                        modifiedText = true;
                        // toss out \ char
                        Consume();
                        buf.Append(c);
                        Consume();
                    }
                    else
                    {
                        buf.Append(c);
                        Consume();
                    }

                    continue;
                }

                buf.Append(c);
                Consume();
            }

            if (modifiedText)
                return NewToken(TEXT, buf.ToString());
            else
                return NewToken(TEXT);
        }