Exemplo n.º 1
0
        private StateResult Text()
        {
            char prev = '\0';

            while (
                !EndOfFile && !ParserHelpers.IsWhitespaceOrNewLine(CurrentCharacter) && !AtSymbol()
                )
            {
                prev = CurrentCharacter;
                TakeCurrent();
            }

            if (CurrentCharacter == '@')
            {
                char next = Peek();
                if (
                    ParserHelpers.IsLetterOrDecimalDigit(prev) &&
                    ParserHelpers.IsLetterOrDecimalDigit(next)
                    )
                {
                    TakeCurrent();  // Take the "@"
                    return(Stay()); // Stay in the Text state
                }
            }

            // Output the Text token and return to the Data state to tokenize the next character (if there is one)
            return(Transition(EndSymbol(HtmlSymbolType.Text), Data));
        }