Home | History | Annotate | Download | only in include
      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
     93