|  | /** | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER within this package. | 
|  | */ | 
|  |  | 
|  | #ifndef _PARSER_H | 
|  | #define _PARSER_H | 
|  |  | 
|  | #include <winapifamily.h> | 
|  |  | 
|  | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) | 
|  | #include <stdio.h> | 
|  |  | 
|  | #undef CLASS_IMPORT_EXPORT | 
|  | #ifdef HHCTRL | 
|  | #define CLASS_IMPORT_EXPORT | 
|  | #elif defined (HHSETUP) | 
|  | #define CLASS_IMPORT_EXPORT __declspec (dllexport) | 
|  | #else | 
|  | #define CLASS_IMPORT_EXPORT __declspec (dllimport) | 
|  | #endif | 
|  |  | 
|  | #define PARSER_API_INLINE | 
|  | #define MAX_LINE_LEN 1024 | 
|  |  | 
|  | #define F_OK 0 | 
|  | #define F_NOFILE 1 | 
|  | #define F_READ 2 | 
|  | #define F_WRITE 3 | 
|  | #define F_MEMORY 4 | 
|  | #define F_EOF 5 | 
|  | #define F_END 6 | 
|  | #define F_TAGMISSMATCH 7 | 
|  | #define F_MISSINGENDTAG 8 | 
|  | #define F_NOTFOUND 9 | 
|  | #define F_NOPARENT 10 | 
|  | #define F_NULL 11 | 
|  | #define F_NOTITLE 12 | 
|  | #define F_LOCATION 13 | 
|  | #define F_REFERENCED 14 | 
|  | #define F_DUPLICATE 15 | 
|  | #define F_DELETE 16 | 
|  | #define F_CLOSE 17 | 
|  | #define F_EXISTCHECK 19 | 
|  |  | 
|  | class CParseXML { | 
|  | private: | 
|  | CHAR m_cCurToken[MAX_LINE_LEN]; | 
|  | CHAR m_cCurWord[MAX_LINE_LEN]; | 
|  | CHAR m_cCurBuffer[MAX_LINE_LEN]; | 
|  | FILE *m_fh; | 
|  | CHAR *m_pCurrentIndex; | 
|  | DWORD m_dwError; | 
|  | private: | 
|  | DWORD Read (); | 
|  | DWORD SetError (DWORD dw) { m_dwError = dw; return m_dwError; } | 
|  | public: | 
|  | CParseXML () { | 
|  | m_fh = NULL; | 
|  | m_cCurBuffer[0] = '\0'; | 
|  | m_pCurrentIndex = NULL; | 
|  | m_dwError = F_OK; | 
|  | } | 
|  | ~CParseXML () { | 
|  | End (); | 
|  | } | 
|  | CHAR *GetFirstWord (CHAR *); | 
|  | CHAR *GetValue (CHAR *); | 
|  | DWORD Start (const CHAR *szFile); | 
|  | void End (); | 
|  | CHAR *GetToken (); | 
|  | DWORD GetError () { return m_dwError; } | 
|  | }; | 
|  |  | 
|  | typedef struct fifo { | 
|  | CHAR *string; | 
|  | fifo *prev; | 
|  | } FIFO; | 
|  |  | 
|  | class CLASS_IMPORT_EXPORT CFIFOString { | 
|  | private: | 
|  | FIFO *m_fifoTail; | 
|  | public: | 
|  | CFIFOString () { m_fifoTail = NULL; } | 
|  | ~CFIFOString (); | 
|  | void RemoveAll (); | 
|  | DWORD AddTail (CHAR *sz); | 
|  | DWORD GetTail (PZPSTR sz); | 
|  | }; | 
|  | #endif | 
|  |  | 
|  | #endif |