void Tokenizer::SkipUntil(Token const& aToken) { nsACString::const_char_iterator rollback = mCursor; const Token eof = Token::EndOfFile(); Token t; while (Next(t)) { if (aToken.Equals(t) || eof.Equals(t)) { Rollback(); break; } } mRollback = rollback; }
bool Tokenizer::ReadUntil(Token const& aToken, nsDependentCSubstring& aResult, ClaimInclusion aInclude) { Record(); nsACString::const_char_iterator rollback = mCursor; bool found = false; Token t; while (Next(t)) { if (aToken.Equals(t)) { found = true; break; } } Claim(aResult, aInclude); mRollback = rollback; return found; }
bool Tokenizer::Check(const Token& aToken) { if (!HasInput()) { mHasFailed = true; return false; } Token parsed; nsACString::const_char_iterator next = Parse(parsed); if (!aToken.Equals(parsed)) { mHasFailed = true; return false; } mRollback = mCursor; mCursor = next; mPastEof = parsed.Type() == TOKEN_EOF; mHasFailed = false; return true; }