]> de.git.xonotic.org Git - xonotic/netradiant.git/blob - contrib/bobtoolz/ScriptParser.h
60c92f51d9a094643ca4058e4d4d893a7505bce5
[xonotic/netradiant.git] / contrib / bobtoolz / ScriptParser.h
1 \r
2 #ifndef _SCRIPTPARSER_H_\r
3 #define _SCRIPTPARSER_H_\r
4 \r
5 #include "interfaces/IScriptParser.h"\r
6 \r
7 #define SP_MAX_BREAKCHARS 16\r
8 \r
9 class CScriptParser: public IScriptParser {\r
10 public:\r
11         CScriptParser(void);\r
12         ~CScriptParser(void);\r
13 private:\r
14         char    m_breakChars[SP_MAX_BREAKCHARS];\r
15         char*   m_pScript;\r
16         char*   m_pScriptSection;\r
17         char*   m_pLastScriptSection;\r
18         char*   m_pToken;\r
19 \r
20         void SkipWhitespace(bool* pbNewLines);\r
21         void ClearBuffer(void);\r
22         const char* MakeToken(const char* pToken);\r
23         bool IsBreakChar(char c);\r
24 public:\r
25         const char* GetToken(bool bAllowLinebreaks);\r
26         void SkipBracedSection(void);\r
27         void SkipRestOfLine(void);\r
28         void UndoGetToken(void);\r
29         void ResetParseSession(void);\r
30 \r
31         char* GetBufferCopy(void);\r
32         int GetTokenOffset(void);\r
33 \r
34         void LoadScript(const char* pScript);\r
35         void SetScript(char* pScript);\r
36 \r
37         void AddBreakChar(char c);\r
38 private:\r
39 };\r
40 \r
41 #endif\r