Argument Parsing

- Fixed bug in Nibbler::getUUID.
- Implemented Arguments::is_id.
- Implemented Arguments::is_uuid.
- Implemented Arguments::is_tag.
- Implemented Arguments::extract_id.
- Implemented Arguments::extract_uuid.
- Implemented Arguments::extract_tag.
- Implemented Arguments::valid_modifier.
- Implemented nibbler.t.cpp unit tests.
This commit is contained in:
Paul Beckingham 2011-06-04 17:02:19 -04:00
parent 354d66a5ac
commit 19aa78a922
4 changed files with 230 additions and 149 deletions

View file

@ -452,49 +452,48 @@ bool Nibbler::getUUID (std::string& result)
std::string::size_type i = mCursor;
if (i < mLength &&
mLength - i >= 37)
mLength - i >= 36)
{
// 8-4-4-4-6-6
if (isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
mInput[i++] == '-' &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
mInput[i++] == '-' &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
mInput[i++] == '-' &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
mInput[i++] == '-' &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
mInput[i++] == '-' &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]) &&
isxdigit (mInput[i++]))
// 88888888-4444-4444-4444-cccccccccccc
if (isxdigit (mInput[i + 0]) &&
isxdigit (mInput[i + 1]) &&
isxdigit (mInput[i + 2]) &&
isxdigit (mInput[i + 3]) &&
isxdigit (mInput[i + 4]) &&
isxdigit (mInput[i + 5]) &&
isxdigit (mInput[i + 6]) &&
isxdigit (mInput[i + 7]) &&
mInput[i + 8] == '-' &&
isxdigit (mInput[i + 9]) &&
isxdigit (mInput[i + 10]) &&
isxdigit (mInput[i + 11]) &&
isxdigit (mInput[i + 12]) &&
mInput[i + 13] == '-' &&
isxdigit (mInput[i + 14]) &&
isxdigit (mInput[i + 15]) &&
isxdigit (mInput[i + 16]) &&
isxdigit (mInput[i + 17]) &&
mInput[i + 18] == '-' &&
isxdigit (mInput[i + 19]) &&
isxdigit (mInput[i + 20]) &&
isxdigit (mInput[i + 21]) &&
isxdigit (mInput[i + 22]) &&
mInput[i + 23] == '-' &&
isxdigit (mInput[i + 24]) &&
isxdigit (mInput[i + 25]) &&
isxdigit (mInput[i + 26]) &&
isxdigit (mInput[i + 27]) &&
isxdigit (mInput[i + 28]) &&
isxdigit (mInput[i + 29]) &&
isxdigit (mInput[i + 30]) &&
isxdigit (mInput[i + 31]) &&
isxdigit (mInput[i + 32]) &&
isxdigit (mInput[i + 33]) &&
isxdigit (mInput[i + 34]) &&
isxdigit (mInput[i + 35]))
{
result = mInput.substr (mCursor, 37);
mCursor = i;
result = mInput.substr (mCursor, 36);
mCursor = i + 36;
return true;
}
}