Lexer
- Replaced old digitsOnly() function with Lexer::isAllDigits.
This commit is contained in:
@@ -1345,7 +1345,7 @@ void CLI::findIDs ()
|
|||||||
|
|
||||||
if (terms.size () == 1)
|
if (terms.size () == 1)
|
||||||
{
|
{
|
||||||
if (! digitsOnly (terms[0]))
|
if (! Lexer::isAllDigits (terms[0]))
|
||||||
{
|
{
|
||||||
is_an_id = false;
|
is_an_id = false;
|
||||||
break;
|
break;
|
||||||
@@ -1366,8 +1366,8 @@ void CLI::findIDs ()
|
|||||||
}
|
}
|
||||||
else if (terms.size () == 2)
|
else if (terms.size () == 2)
|
||||||
{
|
{
|
||||||
if (! digitsOnly (terms[0]) ||
|
if (! Lexer::isAllDigits (terms[0]) ||
|
||||||
! digitsOnly (terms[1]))
|
! Lexer::isAllDigits (terms[1]))
|
||||||
{
|
{
|
||||||
is_an_id = false;
|
is_an_id = false;
|
||||||
break;
|
break;
|
||||||
@@ -2206,7 +2206,7 @@ bool CLI::isIDSequence (const std::string& raw) const
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool CLI::isID (const std::string& raw) const
|
bool CLI::isID (const std::string& raw) const
|
||||||
{
|
{
|
||||||
return digitsOnly (raw);
|
return Lexer::isAllDigits (raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -823,7 +823,7 @@ void Date::operator++ (int)
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool Date::isEpoch (const std::string& input)
|
bool Date::isEpoch (const std::string& input)
|
||||||
{
|
{
|
||||||
if (digitsOnly (input) &&
|
if (Lexer::isAllDigits (input) &&
|
||||||
input.length () <= 10 )
|
input.length () <= 10 )
|
||||||
{
|
{
|
||||||
_t = (time_t) atoi (input.c_str ());
|
_t = (time_t) atoi (input.c_str ());
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ Duration::Duration (time_t input)
|
|||||||
Duration::Duration (const std::string& input)
|
Duration::Duration (const std::string& input)
|
||||||
: _secs (0)
|
: _secs (0)
|
||||||
{
|
{
|
||||||
if (digitsOnly (input))
|
if (Lexer::isAllDigits (input))
|
||||||
{
|
{
|
||||||
time_t value = (time_t) strtol (input.c_str (), NULL, 10);
|
time_t value = (time_t) strtol (input.c_str (), NULL, 10);
|
||||||
if (value == 0 || value > 60)
|
if (value == 0 || value > 60)
|
||||||
|
|||||||
@@ -120,11 +120,11 @@ int CmdCalendar::execute (std::string& output)
|
|||||||
argWholeYear = true;
|
argWholeYear = true;
|
||||||
|
|
||||||
// YYYY.
|
// YYYY.
|
||||||
else if (digitsOnly (*arg) && arg->length () == 4)
|
else if (Lexer::isAllDigits (*arg) && arg->length () == 4)
|
||||||
argYear = strtol (arg->c_str (), NULL, 10);
|
argYear = strtol (arg->c_str (), NULL, 10);
|
||||||
|
|
||||||
// MM.
|
// MM.
|
||||||
else if (digitsOnly (*arg) && arg->length () <= 2)
|
else if (Lexer::isAllDigits (*arg) && arg->length () <= 2)
|
||||||
{
|
{
|
||||||
argMonth = strtol (arg->c_str (), NULL, 10);
|
argMonth = strtol (arg->c_str (), NULL, 10);
|
||||||
if (argMonth < 1 || argMonth > 12)
|
if (argMonth < 1 || argMonth > 12)
|
||||||
|
|||||||
10
src/text.cpp
10
src/text.cpp
@@ -479,16 +479,6 @@ bool nontrivial (const std::string& input)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
bool digitsOnly (const std::string& input)
|
|
||||||
{
|
|
||||||
for (size_t i = 0; i < input.length (); ++i)
|
|
||||||
if (!isdigit (input[i]))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Override of ispunct, that considers #, $ and @ not to be punctuation.
|
// Override of ispunct, that considers #, $ and @ not to be punctuation.
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ const std::string str_replace (std::string&, const std::string&, const std::stri
|
|||||||
const std::string str_replace (const std::string&, const std::string&, const std::string&);
|
const std::string str_replace (const std::string&, const std::string&, const std::string&);
|
||||||
const char* optionalBlankLine ();
|
const char* optionalBlankLine ();
|
||||||
bool nontrivial (const std::string&);
|
bool nontrivial (const std::string&);
|
||||||
bool digitsOnly (const std::string&);
|
|
||||||
bool isPunctuation (char);
|
bool isPunctuation (char);
|
||||||
bool compare (const std::string&, const std::string&, bool sensitive = true);
|
bool compare (const std::string&, const std::string&, bool sensitive = true);
|
||||||
bool closeEnough (const std::string&, const std::string&, unsigned int minLength = 0);
|
bool closeEnough (const std::string&, const std::string&, unsigned int minLength = 0);
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ Context context;
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
int main (int argc, char** argv)
|
int main (int argc, char** argv)
|
||||||
{
|
{
|
||||||
UnitTest t (209);
|
UnitTest t (205);
|
||||||
|
|
||||||
// Ensure environment has no influence.
|
// Ensure environment has no influence.
|
||||||
unsetenv ("TASKDATA");
|
unsetenv ("TASKDATA");
|
||||||
@@ -290,12 +290,6 @@ int main (int argc, char** argv)
|
|||||||
t.ok (nontrivial (" \t\ta"), "nontrivial ' \\t\\ta' -> true");
|
t.ok (nontrivial (" \t\ta"), "nontrivial ' \\t\\ta' -> true");
|
||||||
t.ok (nontrivial ("a\t\t "), "nontrivial 'a\\t\\t ' -> true");
|
t.ok (nontrivial ("a\t\t "), "nontrivial 'a\\t\\t ' -> true");
|
||||||
|
|
||||||
// bool digitsOnly (const std::string&);
|
|
||||||
t.ok (digitsOnly (""), "digitsOnly '' -> true");
|
|
||||||
t.ok (digitsOnly ("0"), "digitsOnly '0' -> true");
|
|
||||||
t.ok (digitsOnly ("123"), "digitsOnly '123' -> true");
|
|
||||||
t.notok (digitsOnly ("12fa"), "digitsOnly '12fa' -> false");
|
|
||||||
|
|
||||||
// bool compare (const std::string&, const std::string&, bool caseless = false);
|
// bool compare (const std::string&, const std::string&, bool caseless = false);
|
||||||
// Make sure degenerate cases are handled.
|
// Make sure degenerate cases are handled.
|
||||||
t.ok (compare ("", ""), "'' == ''");
|
t.ok (compare ("", ""), "'' == ''");
|
||||||
|
|||||||
Reference in New Issue
Block a user