00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef _RM_CORE_PARSER_H_
00014 #define _RM_CORE_PARSER_H_
00015
00016 #define PARSER_C_COMMENT 1
00017 #define PARSER_CPP_COMMENT 2
00018 #define PARSER_BANG_COMMENT 4
00019 #define PARSER_SEMICOLON_COMMENT 8
00020
00021 typedef struct _RmToken
00022 {
00023 RM_TCHAR token[1024];
00024 int line;
00025 } RmToken;
00026
00027 typedef struct _RmParser
00028 {
00029 RM_TCHAR token[1024];
00030 RM_TCHAR nextToken[1024];
00031 int commentStyle;
00032 int pos;
00033 int lineNum;
00034 int nextTokenLineNum;
00035 int contentSize;
00036 RM_TCHAR* content;
00037 } RmParser;
00038
00039 RM_API RM_TCHAR* RmParserGetNextToken(RmParser* parser);
00040 RM_API int RmParserMatchToken(RmParser* parser, RM_TCHAR* match);
00041 RM_API long RmParserOpenFile(RM_TCHAR* filename, RmParser* parser);
00042 RM_API long RmParserSetContent(RmParser* parser, RM_TCHAR* content, int size);
00043 RM_API void RmParserFree(RmParser* parser);
00044 RM_API int RmParserTokenize(RmParser* parser, RmToken* tokens, int count);
00045
00046 #endif // End of _RM_CORE_PARSER_H_