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)); }