]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - contrib/bobtoolz/ScriptParser.cpp
Revert partially (auto) "reformat code! now the code is only ugly on the *inside*"
[xonotic/netradiant.git] / contrib / bobtoolz / ScriptParser.cpp
index 62e99e06b997c7b845ddcdf2e1025c75d32fd64f..3c801b26719f80f22ae255c9cfa320d7a6310c3e 100644 (file)
 #include "ScriptParser.h"
 #include <string.h>
 
-CScriptParser::CScriptParser(void) :
-        m_pScript(NULL),
-        m_pScriptSection(NULL),
-        m_pLastScriptSection(NULL),
-        m_pToken(NULL)
-{
-    ClearBuffer();
+CScriptParser::CScriptParser( void ) :
+       m_pScript( NULL ),
+       m_pScriptSection( NULL ),
+       m_pLastScriptSection( NULL ),
+       m_pToken( NULL ) {
+       ClearBuffer();
 }
 
-CScriptParser::~CScriptParser(void)
-{
-    ClearBuffer();
+CScriptParser::~CScriptParser( void ) {
+       ClearBuffer();
 }
 
-void CScriptParser::ClearBuffer(void)
-{
-    if (m_pScript) {
-        delete[] m_pScript;
-        m_pScript = NULL;
-    }
-    if (m_pToken) {
-        delete[] m_pToken;
-        m_pToken = NULL;
-    }
-    m_pScriptSection = NULL;
-    m_pLastScriptSection = NULL;
-    memset(m_breakChars, 0, sizeof(m_breakChars));
+void CScriptParser::ClearBuffer( void ) {
+       if ( m_pScript ) {
+               delete[] m_pScript;
+               m_pScript = NULL;
+       }
+       if ( m_pToken ) {
+               delete[] m_pToken;
+               m_pToken = NULL;
+       }
+       m_pScriptSection = NULL;
+       m_pLastScriptSection = NULL;
+       memset( m_breakChars, 0, sizeof( m_breakChars ) );
 }
 
-const char *CScriptParser::MakeToken(const char *pToken)
-{
-    if (m_pToken) {
-        delete[] m_pToken;
-        m_pToken = NULL;
-    }
+const char* CScriptParser::MakeToken( const char* pToken ) {
+       if ( m_pToken ) {
+               delete[] m_pToken;
+               m_pToken = NULL;
+       }
 
-    if (!pToken) {
-        pToken = "";
-    }
+       if ( !pToken ) {
+               pToken = "";
+       }
 
-    int len = static_cast<int>( strlen(pToken));
+       int len = static_cast<int>( strlen( pToken ) );
 
-    m_pToken = new char[len + 1];
-    m_pToken[len] = '\0';
-    strcpy(m_pToken, pToken);
+       m_pToken = new char[len + 1];
+       m_pToken[len] = '\0';
+       strcpy( m_pToken, pToken );
 
-    return m_pToken;
+       return m_pToken;
 }
 
 const int MAX_TOKEN_STRING = 1024;
-
 // Should NEVER return NULL
-const char *CScriptParser::GetToken(bool bAllowLinebreaks)
-{
-    int c = 0, len;
-    char token[MAX_TOKEN_STRING];
-    bool bNewLines = false;
-
-    m_pLastScriptSection = m_pScriptSection;
-
-    len = 0;
-    *token = '\0';
-
-    if (!m_pScript || !m_pScriptSection) {
-        return MakeToken(token);
-    }
-
-    while (true) {
-        SkipWhitespace(&bNewLines);
-        if (!*m_pScriptSection) {
-            return MakeToken(token);
-        }
-        if (bNewLines && !bAllowLinebreaks) {
-            return MakeToken(token);
-        }
-
-        c = *m_pScriptSection;
-
-        if (c == '/' && m_pScriptSection[1] == '/') { // C style comments
-            m_pScriptSection += 2;
-            while (*m_pScriptSection && *m_pScriptSection != '\n') {
-                m_pScriptSection++;
-            }
-        } else if (c == '/' && m_pScriptSection[1] == '*') { // C++ style comments
-            m_pScriptSection += 2;
-            while (*m_pScriptSection && (*m_pScriptSection != '*' || m_pScriptSection[1] != '/')) {
-                m_pScriptSection++;
-            }
-            if (*m_pScriptSection) {
-                m_pScriptSection += 2;
-            }
-        } else {
-            break;
-        }
-    }
-
-    if (c == '\"') {
-        m_pScriptSection++;
-        while (true) {
-            c = *m_pScriptSection++;
-            if (c == '\"' || !c) {
-                token[len] = 0;
-                return MakeToken(token);
-            }
-            if (len < MAX_TOKEN_STRING) {
-                token[len] = c;
-                len++;
-            }
-        }
-    }
-
-    do {
-        if (len > 0 && IsBreakChar(*m_pScriptSection)) {
-            break;
-        }
-
-        if (len < MAX_TOKEN_STRING) {
-            token[len] = c;
-            len++;
-        }
-        m_pScriptSection++;
-
-        if (IsBreakChar(c)) {
-            break;
-        }
-
-        c = *m_pScriptSection;
-    } while (c > 32);
-
-    if (len == MAX_TOKEN_STRING) {
-        len = 0;
-    }
-    token[len] = 0;
-
-    return MakeToken(token);
+const char* CScriptParser::GetToken( bool bAllowLinebreaks ) {
+       int c = 0, len;
+       char token[MAX_TOKEN_STRING];
+       bool bNewLines = false;
+
+       m_pLastScriptSection = m_pScriptSection;
+
+       len = 0;
+       *token = '\0';
+
+       if ( !m_pScript || !m_pScriptSection ) {
+               return MakeToken( token );
+       }
+
+       while ( true ) {
+               SkipWhitespace( &bNewLines );
+               if ( !*m_pScriptSection ) {
+                       return MakeToken( token );
+               }
+               if ( bNewLines && !bAllowLinebreaks ) {
+                       return MakeToken( token );
+               }
+
+               c = *m_pScriptSection;
+
+               if ( c == '/' && m_pScriptSection[1] == '/' ) { // C style comments
+                       m_pScriptSection += 2;
+                       while ( *m_pScriptSection && *m_pScriptSection != '\n' ) {
+                               m_pScriptSection++;
+                       }
+               }
+               else if ( c == '/' && m_pScriptSection[1] == '*' ) { // C++ style comments
+                       m_pScriptSection += 2;
+                       while ( *m_pScriptSection && ( *m_pScriptSection != '*' || m_pScriptSection[1] != '/' ) ) {
+                               m_pScriptSection++;
+                       }
+                       if ( *m_pScriptSection ) {
+                               m_pScriptSection += 2;
+                       }
+               }
+               else {
+                       break;
+               }
+       }
+
+       if ( c == '\"' ) {
+               m_pScriptSection++;
+               while ( true ) {
+                       c = *m_pScriptSection++;
+                       if ( c == '\"' || !c ) {
+                               token[len] = 0;
+                               return MakeToken( token );
+                       }
+                       if ( len < MAX_TOKEN_STRING ) {
+                               token[len] = c;
+                               len++;
+                       }
+               }
+       }
+
+       do {
+               if ( len > 0 && IsBreakChar( *m_pScriptSection ) ) {
+                       break;
+               }
+
+               if ( len < MAX_TOKEN_STRING ) {
+                       token[len] = c;
+                       len++;
+               }
+               m_pScriptSection++;
+
+               if ( IsBreakChar( c ) ) {
+                       break;
+               }
+
+               c = *m_pScriptSection;
+       } while ( c > 32 );
+
+       if ( len == MAX_TOKEN_STRING ) {
+               len = 0;
+       }
+       token[len] = 0;
+
+       return MakeToken( token );
 }
 
-void CScriptParser::SkipWhitespace(bool *pbNewLines)
-{
-    int c;
-
-    if (!m_pScript || !m_pScriptSection) {
-        return;
-    }
-
-    while ((c = *m_pScriptSection) <= ' ') {
-        if (!c) {
-            return;
-        }
-        if (c == '\n') {
-            *pbNewLines = true;
-        }
-        m_pScriptSection++;
-    }
+void CScriptParser::SkipWhitespace( bool* pbNewLines ) {
+       int c;
+
+       if ( !m_pScript || !m_pScriptSection ) {
+               return;
+       }
+
+       while ( ( c = *m_pScriptSection ) <= ' ' ) {
+               if ( !c ) {
+                       return;
+               }
+               if ( c == '\n' ) {
+                       *pbNewLines = true;
+               }
+               m_pScriptSection++;
+       }
 }
 
-void CScriptParser::SkipBracedSection(void)
-{
-    const char *token;
-    int depth;
-
-    depth = 0;
-    do {
-        token = GetToken(true);
-        if (token[1] == 0) {
-            if (*token == '{') {
-                depth++;
-            } else if (*token == '}') {
-                depth--;
-            }
-        }
-    } while (depth && *m_pScriptSection);
+void CScriptParser::SkipBracedSection( void ) {
+       const char      *token;
+       int depth;
+
+       depth = 0;
+       do {
+               token = GetToken( true );
+               if ( token[1] == 0 ) {
+                       if ( *token == '{' ) {
+                               depth++;
+                       }
+                       else if ( *token == '}' ) {
+                               depth--;
+                       }
+               }
+       } while ( depth && *m_pScriptSection );
 }
 
-void CScriptParser::SkipRestOfLine(void)
-{
-    char *p;
-    int c;
-
-    p = m_pScriptSection;
-    while ((c = *p++) != 0) {
-        if (c == '\n') {
-            break;
-        }
-    }
-    m_pScriptSection = p;
+void CScriptParser::SkipRestOfLine( void ) {
+       char    *p;
+       int c;
+
+       p = m_pScriptSection;
+       while ( ( c = *p++ ) != 0 ) {
+               if ( c == '\n' ) {
+                       break;
+               }
+       }
+       m_pScriptSection = p;
 }
 
-void CScriptParser::UndoGetToken(void)
-{
-    if (!m_pLastScriptSection) {
-        return;
-    }
-    m_pScriptSection = m_pLastScriptSection;
-    m_pLastScriptSection = NULL;
+void CScriptParser::UndoGetToken( void ) {
+       if ( !m_pLastScriptSection ) {
+               return;
+       }
+       m_pScriptSection = m_pLastScriptSection;
+       m_pLastScriptSection = NULL;
 }
 
-void CScriptParser::ResetParseSession(void)
-{
-    if (!m_pScript) {
-        return;
-    }
+void CScriptParser::ResetParseSession( void ) {
+       if ( !m_pScript ) {
+               return;
+       }
 
-    m_pScriptSection = m_pScript;
-    m_pLastScriptSection = NULL;
+       m_pScriptSection = m_pScript;
+       m_pLastScriptSection = NULL;
 }
 
-char *CScriptParser::GetBufferCopy(void)
-{
-    if (!m_pScript) {
-        return NULL;
-    }
+char* CScriptParser::GetBufferCopy( void ) {
+       if ( !m_pScript ) {
+               return NULL;
+       }
 
-    int len = static_cast<int>( strlen(m_pScript));
-    char *pBuffer = new char[len + 1];
-    strcpy(pBuffer, m_pScript);
-    return pBuffer;
+       int len = static_cast<int>( strlen( m_pScript ) );
+       char* pBuffer = new char[len + 1];
+       strcpy( pBuffer, m_pScript );
+       return pBuffer;
 }
 
-int CScriptParser::GetTokenOffset(void)
-{
-    if (!m_pScript || !m_pScriptSection) {
-        return 0;
-    }
+int CScriptParser::GetTokenOffset( void ) {
+       if ( !m_pScript || !m_pScriptSection ) {
+               return 0;
+       }
 
-    return static_cast<int>( m_pScriptSection - m_pScript );
+       return static_cast<int>( m_pScriptSection - m_pScript );
 }
 
-void CScriptParser::LoadScript(const char *pScript)
-{
-    ClearBuffer();
+void CScriptParser::LoadScript( const char* pScript ) {
+       ClearBuffer();
 
-    int len = static_cast<int>( strlen(pScript));
-    if (len <= 0) {
-        return;
-    }
+       int len = static_cast<int>( strlen( pScript ) );
+       if ( len <= 0 ) {
+               return;
+       }
 
-    m_pScript = new char[len + 1];
-    m_pScript[len] = '\0';
+       m_pScript = new char[len + 1];
+       m_pScript[len] = '\0';
 
-    strcpy(m_pScript, pScript);
-    m_pScriptSection = m_pScript;
+       strcpy( m_pScript, pScript );
+       m_pScriptSection = m_pScript;
 }
 
-void CScriptParser::AddBreakChar(char c)
-{
-    for (int i = 0; i < SP_MAX_BREAKCHARS; i++) {
-        if (!m_breakChars[i]) {
-            m_breakChars[i] = c;
-            return;
-        }
-    }
+void CScriptParser::AddBreakChar( char c ) {
+       for ( int i = 0; i < SP_MAX_BREAKCHARS; i++ ) {
+               if ( !m_breakChars[i] ) {
+                       m_breakChars[i] = c;
+                       return;
+               }
+       }
 
-    // TODO: Error: max break chars hit
+       // TODO: Error: max break chars hit
 }
 
-bool CScriptParser::IsBreakChar(char c)
-{
-    for (int i = 0; i < SP_MAX_BREAKCHARS; i++) {
-        if (!m_breakChars[i]) {
-            return false;
-        }
-        if (m_breakChars[i] == c) {
-            return true;
-        }
-    }
-    return false;
+bool CScriptParser::IsBreakChar( char c ) {
+       for ( int i = 0; i < SP_MAX_BREAKCHARS; i++ ) {
+               if ( !m_breakChars[i] ) {
+                       return false;
+               }
+               if ( m_breakChars[i] == c ) {
+                       return true;
+               }
+       }
+       return false;
 }
 
-void CScriptParser::SetScript(char *pScript)
-{
-    ClearBuffer();
+void CScriptParser::SetScript( char* pScript ) {
+       ClearBuffer();
 
-    int len = static_cast<int>( strlen(pScript));
-    if (len <= 0) {
-        return;
-    }
+       int len = static_cast<int>( strlen( pScript ) );
+       if ( len <= 0 ) {
+               return;
+       }
 
-    m_pScript = pScript;
-    m_pScriptSection = m_pScript;
+       m_pScript = pScript;
+       m_pScriptSection = m_pScript;
 }