All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions | Protected Member Functions
QGpCoreTools::DateTimeParser Class Reference
Inheritance diagram for QGpCoreTools::DateTimeParser:
QGpCoreTools::DateTimeFromString QGpCoreTools::DateTimeToString

List of all members.

Public Member Functions

 DateTimeParser ()
bool parse (const QString &format)
virtual ~DateTimeParser ()

Protected Member Functions

virtual bool ap_parsed ()=0
virtual bool AP_parsed ()=0
virtual bool d_parsed ()=0
virtual bool dd_parsed ()=0
virtual bool ddd_parsed ()=0
virtual bool dddd_parsed ()=0
virtual bool h_parsed ()=0
virtual bool H_parsed ()=0
virtual bool hh_parsed ()=0
virtual bool HH_parsed ()=0
virtual bool M_parsed ()=0
virtual bool m_parsed ()=0
virtual bool MM_parsed ()=0
virtual bool mm_parsed ()=0
virtual bool MMM_parsed ()=0
virtual bool MMMM_parsed ()=0
virtual bool other_parsed (const QChar &c)=0
virtual bool quote_parsed (const StringSection &text)=0
virtual bool s_parsed ()=0
virtual bool ss_parsed ()=0
virtual bool ssz_parsed ()=0
virtual bool sz_parsed ()=0
virtual bool yy_parsed ()=0
virtual bool yyyy_parsed ()=0
virtual bool z_parsed ()=0
virtual bool zzz_parsed ()=0

Constructor & Destructor Documentation

{}
virtual QGpCoreTools::DateTimeParser::~DateTimeParser ( ) [inline, virtual]
{}

Member Function Documentation

virtual bool QGpCoreTools::DateTimeParser::ap_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::AP_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::d_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::dd_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::ddd_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::dddd_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::h_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::H_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::hh_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::HH_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::M_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::m_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::MM_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::mm_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::MMM_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::MMMM_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::other_parsed ( const QChar &  c) [protected, pure virtual]
bool QGpCoreTools::DateTimeParser::parse ( const QString &  format)

References ap_parsed(), AP_parsed(), d_parsed(), dd_parsed(), ddd_parsed(), dddd_parsed(), format, h_parsed(), H_parsed(), hh_parsed(), HH_parsed(), M_parsed(), m_parsed(), MM_parsed(), mm_parsed(), MMM_parsed(), MMMM_parsed(), other_parsed(), quote_parsed(), s_parsed(), QGpCoreTools::StringSection::setEnd(), ss_parsed(), ssz_parsed(), str, sz_parsed(), yy_parsed(), yyyy_parsed(), z_parsed(), and zzz_parsed().

Referenced by QGpCoreTools::DateTimeData::fromString(), and QGpCoreTools::DateTimeData::toString().

{
  _format=format;
  _ptr=_format.data();
  while(true) {
    switch(_ptr[0].unicode()) {
    case 'd':
      if(_ptr[1].unicode()=='d') {
        if(_ptr[2].unicode()=='d') {
          if(_ptr[3].unicode()=='d') {
            if(!dddd_parsed()) return error();
            _ptr+=3;
          } else {
            if(!ddd_parsed()) return error();
            _ptr+=2;
          }
        } else {
          if(!dd_parsed()) return error();
          _ptr++;
        }
      } else {
        if(!d_parsed()) return error();
      }
      break;
    case 'M':
      if(_ptr[1].unicode()=='M') {
        if(_ptr[2].unicode()=='M') {
          if(_ptr[3].unicode()=='M') {
            if(!MMMM_parsed()) return error();
            _ptr+=3;
          } else {
            if(!MMM_parsed()) return error();
            _ptr+=2;
          }
        } else {
          if(!MM_parsed()) return error();
          _ptr++;
        }
      } else {
        if(!M_parsed()) return error();
      }
      break;
    case 'y':
      if(_ptr[1].unicode()=='y') {
        if(_ptr[2].unicode()=='y' && _ptr[3].unicode()=='y') {
          if(!yyyy_parsed()) return error();
          _ptr+=3;
        } else {
          if(!yy_parsed()) return error();
          _ptr+=1;
        }
      }
      break;
    case 'h':
      if(_ptr[1].unicode()=='h') {
        if(!hh_parsed()) return error();
        _ptr++;
      } else {
        if(!h_parsed()) return error();
      }
      break;
    case 'H':
      if(_ptr[1].unicode()=='H') {
        if(!HH_parsed()) return error();
        _ptr++;
      } else {
        if(!H_parsed()) return error();
      }
      break;
    case 'm':
      if(_ptr[1].unicode()=='m') {
        if(!mm_parsed()) return error();
        _ptr++;
      } else {
        if(!m_parsed()) return error();
      }
      break;
    case 's':
      switch(_ptr[1].unicode()) {
      case 's':
        if(_ptr[2].unicode()=='z') {
          if(!ssz_parsed()) return error();
          _ptr+=2;
        } else {
          if(!ss_parsed()) return error();
          _ptr++;
        }
        break;
      case 'z':
        if(!sz_parsed()) return error();
        _ptr++;
        break;
      default:
        if(!s_parsed()) return error();
        break;
      }
      break;
    case 'z':
      if(_ptr[1].unicode()=='z' && _ptr[2].unicode()=='z') {
        if(!zzz_parsed()) return error();
        _ptr+=2;
      } else {
        if(!z_parsed()) return error();
      }
      break;
    case 'a':
      if(_ptr[1].unicode()=='p') {
        if(!ap_parsed()) return error();
        _ptr++;
      }
      break;
    case 'A':
      if(_ptr[1].unicode()=='P') {
        if(!AP_parsed()) return error();
        _ptr++;
      }
      break;
    case '\'': {
        StringSection str(_ptr, 0);
        if(!skipQuotedText()) return error();
        str.setEnd(_ptr);
        if(!quote_parsed(str)) return error();
      }
      break;
    case '\0':    // END
      return true;
    default:
      if(!other_parsed(_ptr[0])) return error();
      break;
    }
    _ptr++;
  }
}
virtual bool QGpCoreTools::DateTimeParser::quote_parsed ( const StringSection text) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::s_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::ss_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::ssz_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::sz_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::yy_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::yyyy_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::z_parsed ( ) [protected, pure virtual]
virtual bool QGpCoreTools::DateTimeParser::zzz_parsed ( ) [protected, pure virtual]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines