///////////////////////////////////////////////////////////////////////////// // // Module : Common // Description : Generic Parser and CommandLine Definitions // Dependency on MFC for CString // // File : genparse.h // Author : kulor // Date : 05/08/2000 // // History : // /////////////////////////////////////////////////////////////////////////// #pragma once /////////////////////////////////////////////////////////////////////////// #ifndef INOUT #define INOUT #endif #ifndef IN #define IN #endif #ifndef OUT #define OUT #endif #define SPACE TEXT (' ') #define EQUALSTO TEXT ('=') /////////////////////////////////////////////////////////////////////////// inline bool SZIsValid ( IN LPCTSTR psz ) { return ( psz != NULL ) && ( *psz != NULL ); } /////////////////////////////////////////////////////////////////////////// inline void SkipSpaces ( INOUT LPCTSTR pszText ) { while (pszText && *pszText == SPACE) pszText++; } /////////////////////////////////////////////////////////////////////////// inline long Cstrncpy ( INOUT CString &sDest, IN LPCTSTR pszSrc, IN LONG cText ) { long nCopied = cText; while (cText-- > 0) { sDest += *pszSrc++; } sDest += TCHAR( NULL ); return (nCopied); } /////////////////////////////////////////////////////////////////////////// class CGenParser { public: CGenParser () { m_pszDelims = TEXT ("-/"); Initialize ( NULL, NULL ); } CGenParser ( LPCTSTR pszText , LPCTSTR pszDelims = NULL ) { Initialize (pszText, pszDelims ); } virtual ~CGenParser () { } void SetDelims ( LPCTSTR pszDelims ) { if ( pszDelims ) m_pszDelims = pszDelims; } virtual void Initialize ( LPCTSTR pszText , LPCTSTR pszDelims = NULL ) { m_pszText = pszText; SetDelims (pszDelims); } bool IsOneof ( TCHAR ch, LPCTSTR pszText , LONG cText ) { for ( int i=0 ; i