}
bool
-Tokenizer::prefix(SBuf &returnedToken, const CharacterSet &tokenChars)
+Tokenizer::prefix(SBuf &returnedToken, const CharacterSet &tokenChars, const SBuf::size_type limit)
{
- SBuf::size_type prefixLen = buf_.findFirstNotOf(tokenChars);
+ SBuf::size_type prefixLen = buf_.substr(0,limit).findFirstNotOf(tokenChars);
if (prefixLen == 0)
return false;
returnedToken = buf_.consume(prefixLen);
*/
bool token(SBuf &returnedToken, const CharacterSet &whitespace);
- /// Accumulates all sequential permitted characters (a token).
- bool prefix(SBuf &returnedToken, const CharacterSet &tokenChars);
+ /// Accumulates all sequential permitted characters (a token) up to an optional length limit.
+ bool prefix(SBuf &returnedToken, const CharacterSet &tokenChars, SBuf::size_type limit = SBuf::npos);
/// Skips all sequential permitted characters (a token).
bool skip(const CharacterSet &tokenChars);