]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/HelpGen/src/cjparser.cpp
compilation fix for VC6, it doesn't support partial template specialization
[wxWidgets.git] / utils / HelpGen / src / cjparser.cpp
index a4b19aab92439e6c585d11d9bcd133309d639ce5..46824e382a3b04b36bb6b93de6488bc2566b3807 100644 (file)
@@ -9,10 +9,6 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
-#  pragma implementation "acell.h"
-#endif
-
 // For compilers that support precompilation, includes "wx/wx.h".
 #include "wx/wxprec.h"
 
@@ -42,7 +38,7 @@
 // statics used by inline'ed C helper-functions
 static char* _gSrcStart = 0;
 static char* _gSrcEnd   = 0;
-static wxChar* _gLastSuppresedComment = 0;
+static char* _gLastSuppresedComment = 0;
 static int   _gLineNo      = 0;
 
 // FOR NOW:: comments queue is static
@@ -386,13 +382,13 @@ static inline bool get_next_token( char*& cur )
         return true;
 }
 
-static inline void skip_preprocessor_dir( wxChar*& cur )
+static inline void skip_preprocessor_dir( char*& cur )
 {
     do
     {
         skip_to_eol(cur);
 
-        if ( *(cur-1) != _T('\\') )
+        if ( *(cur-1) != '\\' )
             break;
 
         if ( cur < _gSrcEnd )
@@ -903,8 +899,8 @@ static void arrange_indirection_tokens_between( wxString& type,
 {
     // TBD:: FIXME:: return value of operators !
 
-    while ( identifier[0u] == _T('*') ||
-            identifier[0u] == _T('&')
+    while ( identifier[0u] == '*' ||
+            identifier[0u] == '&'
           )
     {
         type += identifier[0u];
@@ -935,33 +931,33 @@ static bool is_keyword( char* cur )
     return i == __gMultiLangMap.end() ? false : true;
 }
 
-static inline void get_string_between( wxChar* start, wxChar* end,
+static inline void get_string_between( char* start, char* end,
                                        wxString* pStr )
 {
     char saved = *end;
 
-    *end  = _T('\0');
+    *end  = '\0';
     *pStr = start;
     *end  = saved;
 }
 
-static wxChar* set_comment_text( wxString& text, wxChar* start )
+static char* set_comment_text( wxString& text, char* start )
 {
-    wxChar* end = start;
+    char* end = start;
 
     // to avoid poluting the queue with this comment
     _gLastSuppresedComment = start;
 
     skip_comments( end );
 
-    if ( *(end-1) == _T('/') )
+    if ( *(end-1) == '/' )
         end -= 2;
 
     start += 2;
 
     // skip multiple leading '/''s or '*''s
-    while( *start == _T('/') && start < end ) ++start;
-    while( *start == _T('*') && start < end ) ++start;
+    while( *start == '/' && start < end ) ++start;
+    while( *start == '*' && start < end ) ++start;
 
     get_string_between( start, end, &text );
 
@@ -1068,13 +1064,13 @@ spFile* CJSourceParser::Parse( char* start, char* end )
             continue;
         }
 
-        if ( *m_cur >= _T('0') && *m_cur <= _T('9') )
+        if ( *m_cur >= '0' && *m_cur <= '9' )
         {
             skip_token( m_cur );
             continue;
         }
 
-        if ( *m_cur == _T('}') )
+        if ( *m_cur == '}' )
         {
             if ( mCurCtxType != SP_CTX_CLASS )
             {
@@ -1190,13 +1186,13 @@ spFile* CJSourceParser::Parse( char* start, char* end )
     } while( 1 );
 }
 
-void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur )
+void CJSourceParser::AttachComments( spContext& ctx, char* cur )
 {
     if ( !mCommentsOn ) return;
 
     MCommentListT& lst = ctx.GetCommentList();
 
-    wxChar* prevComEnd = 0;
+    char* prevComEnd = 0;
 
     int tmpLnNo;
     store_line_no( tmpLnNo );
@@ -1209,9 +1205,9 @@ void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur )
         lst.push_back( pComment );
 
         // find the end of comment
-        wxChar* start = _gCommentsQueue[i];
+        char* start = _gCommentsQueue[i];
 
-        pComment->mIsMultiline = ( *(start+1) == _T('*') );
+        pComment->mIsMultiline = ( *(start+1) == '*' );
 
         // first comment in the queue and multiline
         // comments are always treated as a begining
@@ -1230,7 +1226,7 @@ void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur )
             // find out wheather there is a new-line
             // between to adjecent comments
 
-            wxChar* prevLine = start;
+            char* prevLine = start;
             skip_to_prev_line(prevLine);
 
             if ( prevLine >= prevComEnd )
@@ -1253,7 +1249,7 @@ void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur )
         set_comment_text( pComment->m_Text, cur );
 
         pComment->mStartsPar = 1;
-        pComment->mIsMultiline = ( *(cur+1) == _T('*') );
+        pComment->mIsMultiline = ( *(cur+1) == '*' );
 
         // mark this comment, so that it would not
         // get in the comments list of the next context
@@ -1265,9 +1261,9 @@ void CJSourceParser::AttachComments( spContext& ctx, wxChar* cur )
     clear_commets_queue();
 }
 
-void CJSourceParser::AddMacroNode( wxChar*& cur )
+void CJSourceParser::AddMacroNode( char*& cur )
 {
-    wxChar* start = cur;
+    char* start = cur;
 
     int lineNo = get_line_no();
 
@@ -1294,9 +1290,9 @@ void CJSourceParser::AddMacroNode( wxChar*& cur )
     // determine the type exactly and assign
     // a name to the context
 
-    if ( *start == _T('d') )
+    if ( *start == 'd' )
     {
-        if ( cmp_tokens_fast( start, _T("define"), 6 ) )
+        if ( cmp_tokens_fast( start, "define", 6 ) )
         {
             char* tok = start+6;
 
@@ -1314,13 +1310,13 @@ void CJSourceParser::AddMacroNode( wxChar*& cur )
                 pPL->mDefType = SP_PREP_DEF_REDEFINE_SYMBOL;
         }
     }
-    else if ( *start == _T('i') )
+    else if ( *start == 'i' )
     {
-        if ( cmp_tokens_fast( start, _T("include"), 7 ) )
+        if ( cmp_tokens_fast( start, "include", 7 ) )
         {
             pPL->mDefType = SP_PREP_DEF_INCLUDE_FILE;
         }
-        else if ( *++start == _T('f') )
+        else if ( *++start == 'f' )
         {
             // either "#if" or "#ifdef"
             cur = start;
@@ -1330,14 +1326,14 @@ void CJSourceParser::AddMacroNode( wxChar*& cur )
             wxString condition = get_token_str( cur );
 
             // currently, everything except '0' is true
-            if ( condition == _T("0") ) {
+            if ( condition == "0" ) {
                 // skip until the following else or enif
                 while ( cur < _gSrcEnd ) {
                     skip_to_eol( cur );
                     skip_eol( cur );
 
                     get_next_token( cur );
-                    if ( *cur++ == _T('#') && *cur == _T('e') )
+                    if ( *cur++ == '#' && *cur == 'e' )
                         break;
                 }
             }
@@ -1345,7 +1341,7 @@ void CJSourceParser::AddMacroNode( wxChar*& cur )
             // TODO parse the condition...
         }
     }
-    else if ( cmp_tokens_fast( start, _T("else"), 4 ) )
+    else if ( cmp_tokens_fast( start, "else", 4 ) )
     {
         // skip until "#endif"
         while ( cur < _gSrcEnd ) {
@@ -1353,7 +1349,7 @@ void CJSourceParser::AddMacroNode( wxChar*& cur )
             skip_eol( cur );
 
             get_next_token( cur );
-            if ( *cur++ == _T('#') && cmp_tokens_fast( cur, "endif", 5 ) )
+            if ( *cur++ == '#' && cmp_tokens_fast( cur, "endif", 5 ) )
                 break;
         }
     }
@@ -1880,7 +1876,7 @@ void CJSourceParser::ParseMemberVar( char*& cur )
         // if comma, than variable list continues
         // otherwise the variable type reached - stop
 
-        if ( *cur == _T('=') )
+        if ( *cur == '=' )
         {
             // yes, we've mistaken, it was not a identifier,
             // but it's default value
@@ -2193,10 +2189,10 @@ void CJSourceParser::AddClassNode( char*& cur )
     clear_commets_queue();
 }
 
-void CJSourceParser::AddEnumNode( wxChar*& cur )
+void CJSourceParser::AddEnumNode( char*& cur )
 {
     // now the cursor is at "enum" keyword
-    wxChar* start = cur;
+    char* start = cur;
 
     spEnumeration* pEnum = new spEnumeration();
     mpCurCtx->AddMember( pEnum );
@@ -2230,13 +2226,13 @@ void CJSourceParser::AddEnumNode( wxChar*& cur )
     clear_commets_queue();
 }
 
-void CJSourceParser::AddTypeDefNode( wxChar*& cur )
+void CJSourceParser::AddTypeDefNode( char*& cur )
 {
     // now the cursor at the token next to "typedef" keyword
 
     if ( !get_next_token(cur) ) return;
 
-    wxChar* start = cur;
+    char* start = cur;
 
     spTypeDef* pTDef = new spTypeDef();
     mpCurCtx->AddMember( pTDef );
@@ -2250,18 +2246,18 @@ void CJSourceParser::AddTypeDefNode( wxChar*& cur )
     int tmpLnNo;
     store_line_no( tmpLnNo );
 
-    wxChar* tok = cur-1;
+    char* tok = cur-1;
     skip_next_token_back( tok );
 
-    wxChar* nameEnd = tok;
+    char* nameEnd = tok;
 
     skip_token_back( tok );
 
-    wxChar* nameStart = tok;
+    char* nameStart = tok;
 
     skip_next_token_back( tok );
 
-    wxChar* typeEnd = tok;
+    char* typeEnd = tok;
 
     // check if it's function prototype
     if ( *nameStart == ')' )