Last change
on this file was 1166, checked in by rossy, 3 years ago |
Daodan: Replace MinGW build env with an up-to-date MSYS2 env
|
File size:
1.8 KB
|
Rev | Line | |
---|
[1166] | 1 | /**
|
---|
| 2 | * This file is part of the mingw-w64 runtime package.
|
---|
| 3 | * No warranty is given; refer to the file DISCLAIMER within this package.
|
---|
| 4 | */
|
---|
| 5 |
|
---|
| 6 | #ifndef _PARSER_H
|
---|
| 7 | #define _PARSER_H
|
---|
| 8 |
|
---|
| 9 | #include <winapifamily.h>
|
---|
| 10 |
|
---|
| 11 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
|
---|
| 12 | #include <stdio.h>
|
---|
| 13 |
|
---|
| 14 | #undef CLASS_IMPORT_EXPORT
|
---|
| 15 | #ifdef HHCTRL
|
---|
| 16 | #define CLASS_IMPORT_EXPORT
|
---|
| 17 | #elif defined (HHSETUP)
|
---|
| 18 | #define CLASS_IMPORT_EXPORT __declspec (dllexport)
|
---|
| 19 | #else
|
---|
| 20 | #define CLASS_IMPORT_EXPORT __declspec (dllimport)
|
---|
| 21 | #endif
|
---|
| 22 |
|
---|
| 23 | #define PARSER_API_INLINE
|
---|
| 24 | #define MAX_LINE_LEN 1024
|
---|
| 25 |
|
---|
| 26 | #define F_OK 0
|
---|
| 27 | #define F_NOFILE 1
|
---|
| 28 | #define F_READ 2
|
---|
| 29 | #define F_WRITE 3
|
---|
| 30 | #define F_MEMORY 4
|
---|
| 31 | #define F_EOF 5
|
---|
| 32 | #define F_END 6
|
---|
| 33 | #define F_TAGMISSMATCH 7
|
---|
| 34 | #define F_MISSINGENDTAG 8
|
---|
| 35 | #define F_NOTFOUND 9
|
---|
| 36 | #define F_NOPARENT 10
|
---|
| 37 | #define F_NULL 11
|
---|
| 38 | #define F_NOTITLE 12
|
---|
| 39 | #define F_LOCATION 13
|
---|
| 40 | #define F_REFERENCED 14
|
---|
| 41 | #define F_DUPLICATE 15
|
---|
| 42 | #define F_DELETE 16
|
---|
| 43 | #define F_CLOSE 17
|
---|
| 44 | #define F_EXISTCHECK 19
|
---|
| 45 |
|
---|
| 46 | class CParseXML {
|
---|
| 47 | private:
|
---|
| 48 | CHAR m_cCurToken[MAX_LINE_LEN];
|
---|
| 49 | CHAR m_cCurWord[MAX_LINE_LEN];
|
---|
| 50 | CHAR m_cCurBuffer[MAX_LINE_LEN];
|
---|
| 51 | FILE *m_fh;
|
---|
| 52 | CHAR *m_pCurrentIndex;
|
---|
| 53 | DWORD m_dwError;
|
---|
| 54 | private:
|
---|
| 55 | DWORD Read ();
|
---|
| 56 | DWORD SetError (DWORD dw) { m_dwError = dw; return m_dwError; }
|
---|
| 57 | public:
|
---|
| 58 | CParseXML () {
|
---|
| 59 | m_fh = NULL;
|
---|
| 60 | m_cCurBuffer[0] = '\0';
|
---|
| 61 | m_pCurrentIndex = NULL;
|
---|
| 62 | m_dwError = F_OK;
|
---|
| 63 | }
|
---|
| 64 | ~CParseXML () {
|
---|
| 65 | End ();
|
---|
| 66 | }
|
---|
| 67 | CHAR *GetFirstWord (CHAR *);
|
---|
| 68 | CHAR *GetValue (CHAR *);
|
---|
| 69 | DWORD Start (const CHAR *szFile);
|
---|
| 70 | void End ();
|
---|
| 71 | CHAR *GetToken ();
|
---|
| 72 | DWORD GetError () { return m_dwError; }
|
---|
| 73 | };
|
---|
| 74 |
|
---|
| 75 | typedef struct fifo {
|
---|
| 76 | CHAR *string;
|
---|
| 77 | fifo *prev;
|
---|
| 78 | } FIFO;
|
---|
| 79 |
|
---|
| 80 | class CLASS_IMPORT_EXPORT CFIFOString {
|
---|
| 81 | private:
|
---|
| 82 | FIFO *m_fifoTail;
|
---|
| 83 | public:
|
---|
| 84 | CFIFOString () { m_fifoTail = NULL; }
|
---|
| 85 | ~CFIFOString ();
|
---|
| 86 | void RemoveAll ();
|
---|
| 87 | DWORD AddTail (CHAR *sz);
|
---|
| 88 | DWORD GetTail (PZPSTR sz);
|
---|
| 89 | };
|
---|
| 90 | #endif
|
---|
| 91 |
|
---|
| 92 | #endif
|
---|
Note:
See
TracBrowser
for help on using the repository browser.