mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 03:15:07 +00:00
92 lines
1.8 KiB
C++
92 lines
1.8 KiB
C++
/**
|
|
* 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
|