|
|
@ -112,7 +112,7 @@ const Parser<timestamp> time_of_day = digit2[(&_val)->*×tamp::tm_hour = _ |
|
|
|
const Parser<timestamp> time_parser = time_of_day[ _val = _1] >> zone[ (&_val)->*×tamp::tm_sec -= _1 * 60]; |
|
|
|
|
|
|
|
const IntParser year = (digit4[_val=_1] |
|
|
|
| digit2[ qi::_val = px::if_else(qi::_1 < 50 , 2000+qi::_1 , 1900 + qi::_1) ]) /* [px::ref(std::cerr) << "@Y@:" << qi::_val] */ ; |
|
|
|
| digit2[ qi::_val = px::if_else(qi::_1 < 50 , 2000+qi::_1 , 1900 + qi::_1) ]) /* [px::ref(LOG) << "@Y@:" << qi::_val] */ ; |
|
|
|
|
|
|
|
const Parser<timestamp> date_parser = -ows >> digit1_2 [(&_val)->*×tamp::tm_mday = _1] |
|
|
|
>> ows >> month_name[(&_val)->*×tamp::tm_mon = _1] |
|
|
@ -141,7 +141,7 @@ namespace pEpMIME |
|
|
|
std::string::const_iterator begin = s.begin(); |
|
|
|
int i = -42; |
|
|
|
bool okay = qi::parse(begin, s.end(), zone, i ); |
|
|
|
std::cerr << " \n ===Zone: \"" << s << "\" -> " << i << " === (" << okay << ") ===\n"; |
|
|
|
LOG << " \n ===Zone: \"" << s << "\" -> " << i << " === (" << okay << ") ===\n"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -153,12 +153,12 @@ namespace pEpMIME |
|
|
|
std::string::const_iterator begin = s.begin(); |
|
|
|
T t{}; |
|
|
|
bool okay = qi::parse(begin, s.end(), parser, t ); |
|
|
|
std::cerr << "\t=== " << name << ": \"" << s << "\" -> " << t << " is " << (okay?"okay":"NOT OKAY"); |
|
|
|
LOG << "\t=== " << name << ": \"" << s << "\" -> " << t << " is " << (okay?"okay":"NOT OKAY"); |
|
|
|
if(!okay) |
|
|
|
{ |
|
|
|
std::cerr << ". Error at position " << (begin - s.begin()) << ": \"" << *begin << "\" "; |
|
|
|
LOG << ". Error at position " << (begin - s.begin()) << ": \"" << *begin << "\" "; |
|
|
|
} |
|
|
|
std::cerr << " ===\n"; |
|
|
|
LOG << " ===\n"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -183,14 +183,14 @@ timestamp* parse_timestamp(const std::string& s) |
|
|
|
|
|
|
|
std::string::const_iterator begin = s.begin(); |
|
|
|
bool okay = qi::parse(begin, s.end(), date_time, *ts ); |
|
|
|
std::cerr << " \n === TimeStamp \"" << s << "\" is " << (okay?"okay":"NOT OKAY"); |
|
|
|
LOG << " \n === TimeStamp \"" << s << "\" is " << (okay?"okay":"NOT OKAY"); |
|
|
|
|
|
|
|
if(!okay) |
|
|
|
{ |
|
|
|
std::cerr << ". Error at position " << (begin - s.begin()) << ": \"" << *begin << "\" "; |
|
|
|
LOG << ". Error at position " << (begin - s.begin()) << ": \"" << *begin << "\" "; |
|
|
|
} |
|
|
|
|
|
|
|
std::cerr << " ===\n"; |
|
|
|
LOG << " ===\n"; |
|
|
|
|
|
|
|
// normalize values:
|
|
|
|
timegm(ts); |
|
|
|