53 lines
1.1 KiB
C
53 lines
1.1 KiB
C
|
#include "Operation.h"
|
||
|
|
||
|
#ifndef _PARSER_H
|
||
|
#define _PARSER_H
|
||
|
|
||
|
#define INPUT_BUFFER_SZ 256
|
||
|
#define INPUT_TOKEN_SZ 80
|
||
|
|
||
|
#define TOKEN_SZ_BLANKS " \t\n\r"
|
||
|
#define TOKEN_CH_COM_DELIM ';'
|
||
|
#define TOKEN_CH_NL '\n'
|
||
|
#define TOKEN_CH_STR_DELIM '\"'
|
||
|
|
||
|
#define KEYWORD_PRAGMA "#pragma"
|
||
|
#define KEYWORD_CMD_ADD_EVENT "ADD"
|
||
|
#define KEYWORD_CMD_DEL_EVENT "DELETE"
|
||
|
#define KEYWORD_CMD_ADD_TRAP "ADD_TRAP_DEST"
|
||
|
#define KEYWORD_CMD_DEL_TRAP "DELETE_TRAP_DEST"
|
||
|
|
||
|
class COperation;
|
||
|
|
||
|
class CParser
|
||
|
{
|
||
|
COperation *m_pOperList;
|
||
|
|
||
|
int m_fdInput;
|
||
|
char m_szInput[INPUT_BUFFER_SZ];
|
||
|
char *m_pInput;
|
||
|
|
||
|
DWORD OpenInputFile();
|
||
|
DWORD ReloadInputBuffer();
|
||
|
DWORD AdvanceInputPointer();
|
||
|
public:
|
||
|
DWORD m_nLineNo;
|
||
|
DWORD m_nTokenNo;
|
||
|
|
||
|
CParser();
|
||
|
~CParser();
|
||
|
|
||
|
DWORD GetNextToken(char *pToken, int nSizeToken);
|
||
|
DWORD UnGetToken(char *szToken);
|
||
|
DWORD CheckUnGetToken(char *pMatchToken, char *pToken);
|
||
|
|
||
|
DWORD ParseInputFile();
|
||
|
DWORD ParseCommand(tOperation opType);
|
||
|
|
||
|
DWORD ProcessCommands();
|
||
|
};
|
||
|
|
||
|
extern CParser gParser;
|
||
|
|
||
|
#endif
|