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