Initial HelpGen source cleaning.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34298 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Włodzimierz Skiba 2005-05-23 15:22:10 +00:00
parent 6131340355
commit 8bc17f14f4
7 changed files with 338 additions and 336 deletions

View File

@ -675,7 +675,7 @@ int main(int argc, char **argv)
}
directoryOut = argv[current];
if ( !directoryOut.IsEmpty() ) {
if ( !directoryOut.empty() ) {
// terminate with a '/' if it doesn't have it
switch ( directoryOut.Last() ) {
case '/':
@ -735,7 +735,7 @@ int main(int argc, char **argv)
// create a parser object and a visitor derivation
CJSourceParser parser;
HelpGenVisitor visitor(directoryOut, overwrite);
if ( !ignoreFile.IsEmpty() && mode == Mode_Dump )
if ( !ignoreFile.empty() && mode == Mode_Dump )
visitor.GetIgnoreHandler().AddNamesFromFile(ignoreFile);
spContext *ctxTop = NULL;
@ -781,7 +781,7 @@ int main(int argc, char **argv)
}
}
if ( !ignoreFile.IsEmpty() )
if ( !ignoreFile.empty() )
docman.GetIgnoreHandler().AddNamesFromFile(ignoreFile);
docman.DumpDifferences(ctxTop);
@ -869,7 +869,7 @@ void HelpGenVisitor::CloseFunction()
m_textFunc << "}\n\n";
if ( !m_textStoredFunctionComment.IsEmpty() ) {
if ( !m_textStoredFunctionComment.empty() ) {
m_textFunc << m_textStoredFunctionComment << '\n';
}
@ -1201,7 +1201,7 @@ void HelpGenVisitor::VisitTypeDef( spTypeDef& td )
// remember for later use if we're not inside a class yet
if ( !m_inClass ) {
if ( !m_textStoredTypedefs.IsEmpty() ) {
if ( !m_textStoredTypedefs.empty() ) {
m_textStoredTypedefs << '\n';
}
@ -1319,7 +1319,7 @@ void HelpGenVisitor::VisitParameter( spParameter& param )
m_textFunc << "\\param{" << param.mType << " }{" << param.GetName();
wxString defvalue = param.mInitVal;
if ( !defvalue.IsEmpty() ) {
if ( !defvalue.empty() ) {
m_textFunc << " = " << defvalue;
}
@ -1615,9 +1615,9 @@ bool DocManager::ParseTeXFile(const wxString& filename)
// now come {paramtype}{paramname}
wxString paramType = ExtractStringBetweenBraces(&current);
if ( !!paramType ) {
if ( !paramType.empty() ) {
wxString paramText = ExtractStringBetweenBraces(&current);
if ( !!paramText ) {
if ( !paramText.empty() ) {
// the param declaration may contain default value
wxString paramName = paramText.BeforeFirst('='),
paramValue = paramText.AfterFirst('=');
@ -1750,7 +1750,7 @@ bool DocManager::DumpDifferences(spContext *ctxTop) const
}
spClass *ctxClass = (spClass *)ctx;
const wxString& nameClass = ctxClass->mName;
const wxString& nameClass = ctxClass->m_Name;
int index = m_classes.Index(nameClass);
if ( index == wxNOT_FOUND ) {
if ( !m_ignoreNames.IgnoreClass(nameClass) ) {
@ -1786,7 +1786,7 @@ bool DocManager::DumpDifferences(spContext *ctxTop) const
continue;
spOperation *ctxMethod = (spOperation *)ctx;
const wxString& nameMethod = ctxMethod->mName;
const wxString& nameMethod = ctxMethod->m_Name;
// find all functions with the same name
wxArrayInt aMethodsWithSameName;
@ -1864,7 +1864,7 @@ bool DocManager::DumpDifferences(spContext *ctxTop) const
spParameter *ctxParam = (spParameter *)ctx;
const ParamInfo& param = method.GetParam(nParam);
if ( m_checkParamNames &&
(param.GetName() != ctxParam->mName.c_str()) ) {
(param.GetName() != ctxParam->m_Name.c_str()) ) {
foundDiff = true;
wxLogError("Parameter #%d of '%s::%s' should be "
@ -1872,7 +1872,7 @@ bool DocManager::DumpDifferences(spContext *ctxTop) const
nParam + 1,
nameClass.c_str(),
nameMethod.c_str(),
ctxParam->mName.c_str(),
ctxParam->m_Name.c_str(),
param.GetName().c_str());
continue;
@ -1883,7 +1883,7 @@ bool DocManager::DumpDifferences(spContext *ctxTop) const
wxLogError("Type of parameter '%s' of '%s::%s' "
"should be '%s' and not '%s'.",
ctxParam->mName.c_str(),
ctxParam->m_Name.c_str(),
nameClass.c_str(),
nameMethod.c_str(),
ctxParam->mType.c_str(),
@ -1896,7 +1896,7 @@ bool DocManager::DumpDifferences(spContext *ctxTop) const
wxLogWarning("Default value of parameter '%s' of "
"'%s::%s' should be '%s' and not "
"'%s'.",
ctxParam->mName.c_str(),
ctxParam->m_Name.c_str(),
nameClass.c_str(),
nameMethod.c_str(),
ctxParam->mInitVal.c_str(),
@ -2159,7 +2159,7 @@ static wxString GetAllComments(const spContext& ctx)
// don't take comments like "// ----------" &c
comment.Trim(false);
if ( !!comment &&
if ( !comment.empty() &&
comment == wxString(comment[0u], comment.length() - 1) + '\n' )
comments << "\n";
else
@ -2192,6 +2192,9 @@ static const wxString GetVersionString()
/*
$Log$
Revision 1.37 2005/05/23 15:22:08 ABX
Initial HelpGen source cleaning.
Revision 1.36 2005/04/07 19:54:58 MW
Workarounds to allow compilation by Sun C++ 5.5

View File

@ -1304,7 +1304,7 @@ void CJSourceParser::AddMacroNode( char*& cur )
get_next_token( tok );
pPL->mName = get_token_str( tok );
pPL->m_Name = get_token_str( tok );
skip_token( tok );
get_next_token( tok);
@ -1576,7 +1576,7 @@ bool CJSourceParser::ParseNameAndRetVal( char*& cur, bool& isAMacro )
pOp->mSrcOffset = int( start - _gSrcStart );
pOp->mHeaderLength = int( bracketPos - start );
if ( mpCurCtx->GetContextType() == SP_CTX_CLASS )
pOp->mScope = mpCurCtx->mName;
pOp->mScope = mpCurCtx->m_Name;
mpCurCtx->AddMember( pOp );
pOp->mVisibility = mCurVis;
@ -1588,10 +1588,10 @@ bool CJSourceParser::ParseNameAndRetVal( char*& cur, bool& isAMacro )
// go backwards to method name
skip_token_back( cur );
pOp->mName = get_token_str( cur );
pOp->m_Name = get_token_str( cur );
// checker whether it's not an operator
char chFirst = *pOp->mName.c_str();
char chFirst = *pOp->m_Name.c_str();
if ( !isalpha(chFirst) && chFirst != '_' && chFirst != '~' ) {
// skip 'operator'
skip_next_token_back( cur );
@ -1599,20 +1599,20 @@ bool CJSourceParser::ParseNameAndRetVal( char*& cur, bool& isAMacro )
string lastToken = get_token_str( cur );
if ( lastToken == "operator" ) {
lastToken += pOp->mName;
pOp->mName = lastToken;
lastToken += pOp->m_Name;
pOp->m_Name = lastToken;
}
else {
// ok, it wasn't an operator after all
skip_token( cur );
}
}
else if ( pOp->mName == "operator" ) {
else if ( pOp->m_Name == "operator" ) {
skip_token( cur );
get_next_token( cur );
string oper = get_token_str( cur );
pOp->mName += oper;
pOp->m_Name += oper;
}
// go backwards to method return type
@ -1622,14 +1622,14 @@ bool CJSourceParser::ParseNameAndRetVal( char*& cur, bool& isAMacro )
{
string rettype = string( start, size_t( cur-start ) );
// FIXME just for now...
string::size_type pos = 0;
string::size_type pos = 0;
string toerase("WXDLLEXPORT ");
while((pos = rettype.find(toerase, pos)) != string::npos)
rettype.erase(pos, toerase.length());
pOp->mRetType = rettype;
}
arrange_indirection_tokens_between( pOp->mRetType, pOp->mName );
arrange_indirection_tokens_between( pOp->mRetType, pOp->m_Name );
cur = savedPos;
restore_line_no( tmpLnNo );
@ -1746,7 +1746,7 @@ bool CJSourceParser::ParseArguments( char*& cur )
AttachComments( *pPar, blocks[nameBlock] );
// retrieve argument name
pPar->mName = string( blocks[nameBlock], blockSizes[nameBlock] );
pPar->m_Name = string( blocks[nameBlock], blockSizes[nameBlock] );
// retreive argument type
@ -1755,7 +1755,7 @@ bool CJSourceParser::ParseArguments( char*& cur )
pPar->mType = string( blocks[0], len );
arrange_indirection_tokens_between( pPar->mType, pPar->mName );
arrange_indirection_tokens_between( pPar->mType, pPar->m_Name );
if ( *cur == ')' )
{
@ -1871,7 +1871,7 @@ void CJSourceParser::ParseMemberVar( char*& cur )
// attach comments about the attribute
AttachComments( *pAttr, cur );
pAttr->mName = get_token_str( cur );
pAttr->m_Name = get_token_str( cur );
// guessing that this going to be variable type
skip_next_token_back( cur );
@ -1887,13 +1887,13 @@ void CJSourceParser::ParseMemberVar( char*& cur )
// yes, we've mistaken, it was not a identifier,
// but it's default value
pAttr->mInitVal =
pAttr->mName;
pAttr->m_Name;
// skip default value and '=' symbol
skip_next_token_back( cur );
skip_token_back( cur );
pAttr->mName = get_token_str( cur );
pAttr->m_Name = get_token_str( cur );
skip_next_token_back( cur );
skip_token_back( cur );
@ -1920,8 +1920,8 @@ void CJSourceParser::ParseMemberVar( char*& cur )
pAttr->mType = type;
pAttr->mVisibility = mCurVis;
if ( !pAttr->mName.empty() )
arrange_indirection_tokens_between( pAttr->mType, pAttr->mName );
if ( !pAttr->m_Name.empty() )
arrange_indirection_tokens_between( pAttr->mType, pAttr->m_Name );
}
cur = savedPos;
@ -1984,15 +1984,15 @@ void CJSourceParser::SkipFunctionBody( char*& cur )
// separate scope resolution token from the name of operation
for( size_t i = 0; i != op.mName.length(); ++i )
for( size_t i = 0; i != op.m_Name.length(); ++i )
{
if ( op.mName[i] == ':' && op.mName[i+1] == ':' )
if ( op.m_Name[i] == ':' && op.m_Name[i+1] == ':' )
{
string unscoped( op.mName, i+2, op.mName.length() - ( i + 2 ) );
string unscoped( op.m_Name, i+2, op.m_Name.length() - ( i + 2 ) );
op.mScope = string( op.mName, 0, i );
op.mScope = string( op.m_Name, 0, i );
op.mName = unscoped;
op.m_Name = unscoped;
break;
}
@ -2075,7 +2075,7 @@ void CJSourceParser::AddClassNode( char*& cur )
pClass->mSrcOffset = int( ctxStart - _gSrcStart );
char* nameTok = cur;
pClass->mName = get_token_str( cur );
pClass->m_Name = get_token_str( cur );
bool isDerived = 0;
@ -2106,7 +2106,7 @@ void CJSourceParser::AddClassNode( char*& cur )
if ( nameTok != tok )
{
pClass->mName = get_token_str( tok );
pClass->m_Name = get_token_str( tok );
}
}
@ -2180,7 +2180,7 @@ void CJSourceParser::AddClassNode( char*& cur )
skip_next_token_back( tok );
skip_token_back( tok );
pClass->mName = get_token_str( tok );
pClass->m_Name = get_token_str( tok );
restore_line_no( tmpLn );
}
@ -2215,7 +2215,7 @@ void CJSourceParser::AddEnumNode( char*& cur )
// check if enumeration has got it's identifier
if ( *cur != '{' )
{
pEnum->mName = get_token_str( cur );
pEnum->m_Name = get_token_str( cur );
}
if ( !skip_imp_block( cur ) ) return;
@ -2227,7 +2227,7 @@ void CJSourceParser::AddEnumNode( char*& cur )
// check if the identifier if after the {...} block
if ( *cur != ';' )
pEnum->mName = get_token_str( cur );
pEnum->m_Name = get_token_str( cur );
}
clear_commets_queue();
@ -2288,7 +2288,7 @@ void CJSourceParser::AddTypeDefNode( char*& cur )
get_string_between( start, typeEnd, &pTDef->mOriginalType );
get_string_between( nameStart, nameEnd, &pTDef->mName );
get_string_between( nameStart, nameEnd, &pTDef->m_Name );
clear_commets_queue();

View File

@ -149,7 +149,7 @@ bool ScriptTemplate::HasVar( const char* name )
{
for( size_t i = 0; i != mVars.size(); ++i )
if ( strcmp( mVars[i]->mName, name ) == 0 )
if ( strcmp( mVars[i]->m_Name, name ) == 0 )
return 1;
@ -197,7 +197,7 @@ inline void ScriptTemplate::PrintVar( TVarInfo* pInfo,
case TVAR_INTEGER :
{
sprintf(buf, "%d",*( (int*) ((char*)dataObj + pInfo->mOfs) ) );
stm.WriteBytes( buf, strlen(buf ) );
break;
}
@ -213,7 +213,7 @@ inline void ScriptTemplate::PrintVar( TVarInfo* pInfo,
cout << "DBG:: dataObj points to " << (int)dataObj << endl;
cout << "DBG:: pInfo->mOfs value is " << (int)pInfo->mOfs << endl;
cout << "DBG:: d+pInfo->mOfs is " << (int)((char*)dataObj + pInfo->mOfs) << endl;
cout << "DBG:: pInfo->mName is " << pInfo->mName << endl;
cout << "DBG:: pInfo->m_Name is " << pInfo->m_Name << endl;
cout << "DBG:: pInfo->mType is " << pInfo->mType << endl;
cout << "DBG:: end of dump. " << endl;
@ -246,7 +246,7 @@ inline void ScriptTemplate::PrintVar( TVarInfo* pInfo,
}
int* array = *((int**)( (char*)dataObj+info.mRefOfs ));
ScriptTemplate* pRefTempl;
for( int i = 0; i != sz; ++i )
@ -297,7 +297,7 @@ void ScriptTemplate::PrintScript( void* dataObj, ScriptStream& stm )
for( size_t i = 0; i != sz; ++i )
{
if ( strcmp( mVars[i]->mName, start ) == 0 )
if ( strcmp( mVars[i]->m_Name, start ) == 0 )
{
PrintVar( mVars[i], dataObj, stm );
@ -328,7 +328,7 @@ ScriptSection::ScriptSection( const string& name,
)
: mpParent ( NULL ),
mName ( name ),
m_Name ( name ),
mBody ( body ),
mAutoHide( autoHide ),
@ -411,7 +411,7 @@ ScriptSection* ScriptSection::GetSubsection( const char* name )
// DBG::
//ScriptSection& sect = *mSubsections[i];
if ( mSubsections[i]->mName == buf )
if ( mSubsections[i]->m_Name == buf )
{
if ( name[cur] == '/' )
@ -467,8 +467,8 @@ void ScriptSection::RegisterTemplate( ScriptTemplate& sectionTempalte )
arrRefOfs, arrSizeOfs, refTemplOfs;
// obtaining offsets of member vars
GET_VAR_OFS( ScriptSection, mName, &nameOfs )
GET_VAR_OFS( ScriptSection, m_Name, &nameOfs )
GET_VAR_OFS( ScriptSection, mBody, &bodyOfs )
GET_VAR_OFS( ScriptSection, mId, &idOfs )
GET_VAR_OFS( ScriptSection, mRefFirst, &arrRefOfs )
@ -511,7 +511,7 @@ void ScriptSection::DoRemoveEmptySections(int& nRemoved, SectListT& removedLst)
sect.DoRemoveEmptySections( nRemoved, removedLst );
if (sect.mAutoHide )
if ( sect.mReferences.size() == 0 )
{
bool found = false;
@ -522,7 +522,7 @@ void ScriptSection::DoRemoveEmptySections(int& nRemoved, SectListT& removedLst)
found = 1;
break;
}
if ( !found )
{
removedLst.push_back( &sect );

View File

@ -6,7 +6,7 @@
// Created: 22/09/98
// RCS-ID: $Id$
// Copyright: (c) Aleskandars Gluchovas
// Licence: wxWindows licence
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __SCRIPTBINDER_G__
@ -14,26 +14,26 @@
#if defined( wxUSE_TEMPLATE_STL )
#include <vector>
#include <vector>
#ifdef WIN32
#include <bstring.h>
#else
#include <strclass.h>
#include <string.h>
#endif
#ifdef WIN32
#include <bstring.h>
#else
#include <strclass.h>
#include <string.h>
#endif
#else
#include "wxstlvec.h"
#include "wx/string.h"
#ifdef wxUSE_STD_STRING
using std::string;
#else
// FIXME:: dirty!
typedef wxString string;
#endif
#include "wxstlvec.h"
#include "wx/string.h"
#if wxUSE_STD_STRING
using std::string;
#else
// FIXME:: dirty!
typedef wxString string;
#endif
#endif
@ -49,26 +49,26 @@
class ScriptStream
{
protected:
char* mpBuf;
size_t mSize;
size_t mCapacity;
char* mpBuf;
size_t mSize;
size_t mCapacity;
public:
ScriptStream();
~ScriptStream();
ScriptStream();
~ScriptStream();
void WriteBytes( const void* srcBuf, size_t count );
void WriteBytes( const void* srcBuf, size_t count );
ScriptStream& operator<<( const char* str );
ScriptStream& operator<<( const string& str );
ScriptStream& operator<<( char ch );
ScriptStream& operator<<( const char* str );
ScriptStream& operator<<( const string& str );
ScriptStream& operator<<( char ch );
void endl();
void endl();
inline char* GetBuf() { return mpBuf; }
inline size_t GetBufSize() { return mSize; }
inline char* GetBuf() { return mpBuf; }
inline size_t GetBufSize() { return mSize; }
// clears current contents of the stream
void Reset() { mSize = 0; }
// clears current contents of the stream
void Reset() { mSize = 0; }
};
@ -78,10 +78,10 @@ class ScriptTemplate;
enum TEMPLATE_VARIABLE_TYPES
{
TVAR_INTEGER,
TVAR_STRING,
TVAR_DOUBLE,
TVAR_REF_ARRAY
TVAR_INTEGER,
TVAR_STRING,
TVAR_DOUBLE,
TVAR_REF_ARRAY
};
// helper structures used only by ScriptTemplate
@ -89,31 +89,31 @@ enum TEMPLATE_VARIABLE_TYPES
struct TVarInfo
{
public:
const char* mName;
int mType;
int mOfs;
const char* m_Name;
int mType;
int mOfs;
TVarInfo( const char* name, int ofs, int varType )
: mName(name),
mType( varType ),
mOfs( ofs )
{}
TVarInfo( const char* name, int ofs, int varType )
: m_Name(name),
mType( varType ),
mOfs( ofs )
{}
};
struct TArrayInfo : public TVarInfo
{
public:
int mRefOfs;
int mSizeIntOfs;
int mObjRefTemplOfs;
int mRefOfs;
int mSizeIntOfs;
int mObjRefTemplOfs;
TArrayInfo( const char* name )
: TVarInfo( name, 0, TVAR_REF_ARRAY )
{}
TArrayInfo( const char* name )
: TVarInfo( name, 0, TVAR_REF_ARRAY )
{}
};
// stores offset of the given member (of the given class)
// to (*pOfs), though the use of template classes would have
// to (*pOfs), though the use of template classes would have
// solved this problem in much clearer fashion
// FOR NOW:: obtaining physical offset of class member
@ -121,38 +121,38 @@ public:
// FIXME:: +/- 1 problem
#ifdef __UNIX__
#define WEIRD_OFFSET 1
#define WEIRD_OFFSET 1
#else
#define WEIRD_OFFSET 0
#define WEIRD_OFFSET 0
#endif
#define GET_VAR_OFS( className, varName, pOfs ) \
{ \
int* className::* varPtr; \
varPtr = (int* className::*)&className::varName; \
\
(*pOfs) = int(*(int*)&varPtr)-WEIRD_OFFSET; \
}
{ \
int* className::* varPtr; \
varPtr = (int* className::*)&className::varName; \
\
(*pOfs) = int(*(int*)&varPtr)-WEIRD_OFFSET; \
}
class ScriptSection;
#if defined( wxUSE_TEMPLATE_STL )
typedef vector<TVarInfo*> TVarListT;
typedef vector<TVarInfo*> TVarListT;
// container class for sections
typedef vector<ScriptSection*> SectListT;
// container class for sections
typedef vector<ScriptSection*> SectListT;
#else
typedef TVarInfo* TVarInfoPtrT;
typedef ScriptSection* ScriptSectionPtrT;
typedef TVarInfo* TVarInfoPtrT;
typedef ScriptSection* ScriptSectionPtrT;
typedef WXSTL_VECTOR_SHALLOW_COPY(TVarInfoPtrT) TVarListT;
typedef WXSTL_VECTOR_SHALLOW_COPY(TVarInfoPtrT) TVarListT;
// container class for sections
typedef WXSTL_VECTOR_SHALLOW_COPY(ScriptSectionPtrT) SectListT;
// container class for sections
typedef WXSTL_VECTOR_SHALLOW_COPY(ScriptSectionPtrT) SectListT;
#endif
@ -163,42 +163,41 @@ class ScriptSection;
class ScriptTemplate
{
protected:
// do not use string object here - parsing of
// C string can be much faster (in debug v.)
char* mTText;
// do not use string object here - parsing of
// C string can be much faster (in debug v.)
char* mTText;
TVarListT mVars;
TVarListT mVars;
inline void PrintVar( TVarInfo* pInfo,
void* dataObj,
ScriptStream& stm );
inline void PrintVar( TVarInfo* pInfo,
void* dataObj,
ScriptStream& stm );
public:
ScriptTemplate( const string& templateText );
virtual ~ScriptTemplate();
bool HasVar( const char* name );
ScriptTemplate( const string& templateText );
virtual ~ScriptTemplate();
// Member variables registration methods.
bool HasVar( const char* name );
// NOTE:: GET_VAR_OFS() macro should be used
// to get offset of the class member (see #define above)
void AddStringVar ( const char* name, int ofs );
void AddIntegerVar( const char* name, int ofs );
void AddDoubleVar ( const char* name, int ofs );
// Member variables registration methods.
void AddObjectRefArray( const char* name,
int ofsRefToFirstObj,
int ofsObjSizeInt,
int ofsObjRefTempl
);
// NOTE:: GET_VAR_OFS() macro should be used
// to get offset of the class member (see #define above)
void AddStringVar ( const char* name, int ofs );
void AddIntegerVar( const char* name, int ofs );
void AddDoubleVar ( const char* name, int ofs );
// reads the script, replaces $(..) tags with values
// of registered members of dataObj object, and outputs
// the result to given text stream
void AddObjectRefArray( const char* name,
int ofsRefToFirstObj,
int ofsObjSizeInt,
int ofsObjRefTempl
);
void PrintScript( void* dataObj, ScriptStream& stm );
// reads the script, replaces $(..) tags with values
// of registered members of dataObj object, and outputs
// the result to given text stream
void PrintScript( void* dataObj, ScriptStream& stm );
};
class ScriptSection;
@ -210,108 +209,108 @@ class ScriptSection
{
protected:
// NOTE:: "$(NAME)", $(ID), "$(BODY)" and "$(REFLIST)" aree
// reseved template variables of ScriptSection
// NOTE:: "$(NAME)", $(ID), "$(BODY)" and "$(REFLIST)" are
// reseved template variables of ScriptSection
// the below there members are registered to ScriptTemplate,
// GUID within the section tree (numeric)
// the below there members are registered to ScriptTemplate,
// GUID within the section tree (numeric)
ScriptSection* mpParent;
string mId; // $(ID)
string mName; // $(NAME)
string mBody; // $(BODY)
ScriptSection* mpParent;
string mId; // $(ID)
string m_Name;// $(NAME)
string mBody; // $(BODY)
// NULL, if this section is not aggregated anywhere
// NULL, if this section is not aggregated anywhere
SectListT mSubsections; // aggregated sectons
SectListT mReferences; // registered as $(REFLIST)
SectListT mSubsections; // aggregated sectons
SectListT mReferences; // registered as $(REFLIST)
bool mAutoHide; // see autoHide arg, in constructor
bool mSortOn; // TRUE, if sort subsectons by naem
bool mAutoHide; // see autoHide arg, in constructor
bool mSortOn; // true, if sort subsectons by naem
// tempalte for this section
ScriptTemplate* mpSectTempl;
// tempalte for this section
ScriptTemplate* mpSectTempl;
// template used for links (or references) to this section
ScriptTemplate* mpRefTempl;
// do not call destructor of this object,
// call RemoveRef() instead
int mRefCount;
// template used for links (or references) to this section
ScriptTemplate* mpRefTempl;
static int mIdCounter; // generator of GUIDs
// do not call destructor of this object,
// call RemoveRef() instead
int mRefCount;
// fields registered and used by ScriptTemplate object
void* mRefFirst;
int mArrSize;
static int mIdCounter; // generator of GUIDs
// fields registered and used by ScriptTemplate object
void* mRefFirst;
int mArrSize;
protected:
virtual void AddRef();
virtual void RemoveRef();
void DoRemoveEmptySections(int& nRemoved, SectListT& removedLst);
void DoRemoveDeadLinks( SectListT& removedLst);
virtual void AddRef();
virtual void RemoveRef();
void DoRemoveEmptySections(int& nRemoved, SectListT& removedLst);
void DoRemoveDeadLinks( SectListT& removedLst);
public:
// NOTE:: pass NULL to certain template, if your sure
// this kind of template will never be used,
// e.g. if section is contained but never referrenced,
// then pReferenceTemplate can be NULL
// NOTE:: pass NULL to certain template, if your sure
// this kind of template will never be used,
// e.g. if section is contained but never referrenced,
// then pReferenceTemplate can be NULL
// if autoHide option is TRUE, the section will be automatically
// collapsed (not shown) if it doesn't contain any references
// to other sections (e.g. could be usefull for autoamically
// hiding empty index-sections).
// if autoHide option is true, the section will be automatically
// collapsed (not shown) if it doesn't contain any references
// to other sections (e.g. could be usefull for autoamically
// hiding empty index-sections).
ScriptSection( const string& name = "",
const string& body = "",
ScriptTemplate* pSectionTemplate = NULL,
ScriptTemplate* pReferenceTemplate = NULL,
bool autoHide = FALSE,
bool sorted = FALSE
);
ScriptSection( const string& name = "",
const string& body = "",
ScriptTemplate* pSectionTemplate = NULL,
ScriptTemplate* pReferenceTemplate = NULL,
bool autoHide = false,
bool sorted = false
);
// calls RemoveRef() to all aggreagated sections first,
// then to all referenced section - this way all
// sections (even not aggregated ones) become "garbage-collected"
// calls RemoveRef() to all aggreagated sections first,
// then to all referenced section - this way all
// sections (even not aggregated ones) become "garbage-collected"
// NOTE:: do not call destructor directlly, call RemoveRef()
// instead
virtual ~ScriptSection();
// NOTE:: do not call destructor directlly, call RemoveRef()
// instead
virtual ~ScriptSection();
// if addToReferencesToo is TRUE, section is aggregated and
// also added to reference list of this section
// if addToReferencesToo is true, section is aggregated and
// also added to reference list of this section
void AddSection( ScriptSection* pSection, bool addToReferencesToo = FALSE );
void AddSection( ScriptSection* pSection, bool addToReferencesToo = false );
// add cross-reference to this given section
void AddReference( ScriptSection* pReferredSection );
// add cross-reference to this given section
void AddReference( ScriptSection* pReferredSection );
// subsection may be given of variable depth level,
// e.g. "publications/reviews/software"
// subsection may be given of variable depth level,
// e.g. "publications/reviews/software"
ScriptSection* GetSubsection( const char* name );
ScriptSection* GetSubsection( const char* name );
// returns list aggregated sections
SectListT& GetSubsections();
// returns list aggregated sections
SectListT& GetSubsections();
// binds reserved template names ( $(..) ) to member
// vairalbes in the ScriptSection class, should be called
// to initialize each user-code provided script template
// binds reserved template names ( $(..) ) to member
// vairalbes in the ScriptSection class, should be called
// to initialize each user-code provided script template
static void RegisterTemplate( ScriptTemplate& sectionTempalte );
static void RegisterTemplate( ScriptTemplate& sectionTempalte );
// prints out section tree to the stream, starting from
// this section as a root node
virtual void Print( ScriptStream& stm );
// prints out section tree to the stream, starting from
// this section as a root node
virtual void Print( ScriptStream& stm );
// searches empty sections which has autoHide == TRUE,
// and colapses them (this method should be called )
// on the root-section of the sections tree
// searches empty sections which has autoHide == true,
// and colapses them (this method should be called )
// on the root-section of the sections tree
// NOTE:: does not work properly, yet!
void RemoveEmptySections();
// NOTE:: does not work properly, yet!
void RemoveEmptySections();
};
// base class for documnetation generators
@ -321,61 +320,61 @@ public:
class DocGeneratorBase
{
protected:
MarkupTagsT mTags;
MarkupTagsT mTags;
// override this method to do some post processing
// after generation of document, or even write some
// data into output stream, before the section tree
// is flushed into it.
// override this method to do some post processing
// after generation of document, or even write some
// data into output stream, before the section tree
// is flushed into it.
// return FALSE, if something has gone wrong and
// document cannot be saved now
// return false, if something has gone wrong and
// document cannot be saved now
virtual bool OnSaveDocument( ScriptStream& WXUNUSED(stm) )
{ return 1; }
virtual bool OnSaveDocument( ScriptStream& WXUNUSED(stm) )
{ return 1; }
// override this method to provide reference to
// the top section of the document (used as default
// starting section when saving a document)
// override this method to provide reference to
// the top section of the document (used as default
// starting section when saving a document)
virtual ScriptSection* GetTopSection()
{ return 0; }
virtual ScriptSection* GetTopSection()
{ return 0; }
public:
DocGeneratorBase()
: mTags(0) // no defaul script
{}
DocGeneratorBase()
: mTags(0) // no defaul script
{}
// dectrouctors of polymorphic classes SHOULD be virtual
virtual ~DocGeneratorBase() {}
// dectrouctors of polymorphic classes SHOULD be virtual
virtual ~DocGeneratorBase() {}
// returns tags, being used for specific target script
MarkupTagsT GetScriptMarkupTags() { return mTags; }
// returns tags, being used for specific target script
MarkupTagsT GetScriptMarkupTags() { return mTags; }
// sets tag array for specific script
// sets tag array for specific script
// NOTE:: Why virtual? since approach with MarkupTagsT is
// "flowless" only in theory. Overriding this method
// allows document generators to check the type of the
// target script, and perhaps make some modifications
// to generator's tamplates, to match the specific script
// NOTE:: Why virtual? since approach with MarkupTagsT is
// "flowless" only in theory. Overriding this method
// allows document generators to check the type of the
// target script, and perhaps make some modifications
// to generator's tamplates, to match the specific script
virtual void SetScriptMarkupTags( MarkupTagsT tags )
{ mTags = tags; }
virtual void SetScriptMarkupTags( MarkupTagsT tags )
{ mTags = tags; }
// seves document to file starting from the root-node of
// the document (provided by GetTopSection() method),
// or from "pFromSection" if it's not NULL.
// seves document to file starting from the root-node of
// the document (provided by GetTopSection() method),
// or from "pFromSection" if it's not NULL.
// fopenOptions arg. is string passed to fopen() method,
// returns TRUE, if saving was successfull
// fopenOptions arg. is string passed to fopen() method,
// returns true, if saving was successfull
virtual bool SaveDocument( const char* fname,
const char* fopenOptions = "w",
ScriptSection* pFromSection = NULL
);
virtual bool SaveDocument( const char* fname,
const char* fopenOptions = "w",
ScriptSection* pFromSection = NULL
);
};
#endif

View File

@ -6,7 +6,7 @@
// Created: 22/09/98
// RCS-ID: $Id$
// Copyright: (c) Aleskandars Gluchovas
// Licence: wxWindows licence
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __SOURCEPAINTER_G__
@ -18,28 +18,28 @@
#if defined( wxUSE_TEMPLATE_STL )
#include <vector.h>
typedef vector<int> SPBlockListT;
#include <vector.h>
typedef vector<int> SPBlockListT;
#ifdef WIN32
#include <bstring.h>
#else
#include <strclass.h>
#include <string.h>
#endif
#ifdef WIN32
#include <bstring.h>
#else
#include <strclass.h>
#include <string.h>
#endif
#else
#include "wxstlvec.h"
#include "wx/string.h"
#ifdef wxUSE_STD_STRING
using std::string;
#else
// FIXME:: dirty!
#define string wxString
#endif
#include "wxstlvec.h"
#include "wx/string.h"
typedef WXSTL_VECTOR_SHALLOW_COPY(int) SPBlockListT;
#if wxUSE_STD_STRING
using std::string;
#else
// FIXME:: dirty!
#define string wxString
#endif
typedef WXSTL_VECTOR_SHALLOW_COPY(int) SPBlockListT;
#endif
@ -63,46 +63,46 @@
class SourcePainter
{
protected:
string mResultStr;
SPBlockListT mBlocks;
bool mCollectResultsOn;
string mResultStr;
SPBlockListT mBlocks;
bool mCollectResultsOn;
// state variables
bool mIsInComment;
bool mCommentIsMultiline;
// state variables
bool mIsInComment;
bool mCommentIsMultiline;
public:
// assembleResultString == TRUE - instructs painter
// to collect each chunk of srouce passed to ProcessSource(),
// so that results cann be futher obtained in a single string
// instead of vector of block descriptions
// assembleResultString == true - instructs painter
// to collect each chunk of srouce passed to ProcessSource(),
// so that results cann be futher obtained in a single string
// instead of vector of block descriptions
SourcePainter( bool assembleResultString = TRUE );
virtual ~SourcePainter() {}
SourcePainter( bool assembleResultString = true );
virtual ~SourcePainter() {}
// can be called multiple times (e.g. on each source line)
void ProcessSource( char* src, int srcLen );
// can be called multiple times (e.g. on each source line)
void ProcessSource( char* src, int srcLen );
// method, for manually adjusting state of source painter
void SetState( bool isInComment,
bool commentIsMultiline );
// method, for manually adjusting state of source painter
void SetState( bool isInComment,
bool commentIsMultiline );
// reinitializes object - clears results of previouse processing
void Init( bool assembleResultString = TRUE );
// reinitializes object - clears results of previouse processing
void Init( bool assembleResultString = true );
// generates string of highlighted source for the scipting
// language given by "tags" argument
virtual void GetResultString(string& result, MarkupTagsT tags);
// generates string of highlighted source for the scipting
// language given by "tags" argument
// returns vector of block descriptors, see SPBlockListT definition
// (block descriptors can be used for fast custom hightlighted text generation)
virtual void GetResultString(string& result, MarkupTagsT tags);
SPBlockListT& GetBlocks();
// returns vector of block descriptors, see SPBlockListT definition
// (block descriptors can be used for fast custom hightlighted text generation)
// NOTE:: static method
// returns if the given word is a reserved word or basic type identifier
static bool IsKeyword( char* word, int wordLen );
SPBlockListT& GetBlocks();
// NOTE:: static method
// returns if the given word is a reserved word or basic type identifier
static bool IsKeyword( char* word, int wordLen );
};
#endif

View File

@ -6,7 +6,7 @@
// Created: 22/09/98
// RCS-ID: $Id$
// Copyright: (c) Aleskandars Gluchovas
// Licence: wxWindows licence
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
@ -425,7 +425,7 @@ string spOperation::GetFullName(MarkupTagsT tags)
{
string txt = tags[TAG_BOLD].start + mRetType;
txt += " ";
txt += mName;
txt += m_Name;
txt += "( ";
txt += tags[TAG_BOLD].end;
@ -447,7 +447,7 @@ string spOperation::GetFullName(MarkupTagsT tags)
txt += tags[TAG_ITALIC].start;
txt += " ";
txt += param.mName;
txt += param.m_Name;
if ( param.mInitVal != "" )
{
@ -575,13 +575,13 @@ void spContext::DumpThis(const wxString& WXUNUSED(indent)) const
void spParameter::DumpThis(const wxString& indent) const
{
wxLogDebug("%sparam named '%s' of type '%s'",
indent.c_str(), mName.c_str(), mType.c_str());
indent.c_str(), m_Name.c_str(), mType.c_str());
}
void spAttribute::DumpThis(const wxString& indent) const
{
wxLogDebug("%svariable named '%s' of type '%s'",
indent.c_str(), mName.c_str(), mType.c_str());
indent.c_str(), m_Name.c_str(), mType.c_str());
}
void spOperation::DumpThis(const wxString& indent) const
@ -614,7 +614,7 @@ void spOperation::DumpThis(const wxString& indent) const
mIsConstant ? "const " : "",
mIsVirtual ? "virtual " : "",
protection.c_str(),
mScope.c_str(), mName.c_str(), mRetType.c_str());
mScope.c_str(), m_Name.c_str(), mRetType.c_str());
}
void spPreprocessorLine::DumpThis(const wxString& indent) const
@ -649,7 +649,7 @@ void spClass::DumpThis(const wxString& indent) const
for ( StrListT::const_iterator i = mSuperClassNames.begin();
i != mSuperClassNames.end();
i++ ) {
if ( !!base )
if ( !base.empty() )
base += ", ";
base += *i;
}
@ -685,19 +685,19 @@ void spClass::DumpThis(const wxString& indent) const
wxLogDebug("%s%s named '%s' (base classes: %s)",
indent.c_str(), kind.c_str(),
mName.c_str(), base.c_str());
m_Name.c_str(), base.c_str());
}
void spEnumeration::DumpThis(const wxString& indent) const
{
wxLogDebug("%senum named '%s'",
indent.c_str(), mName.c_str());
indent.c_str(), m_Name.c_str());
}
void spTypeDef::DumpThis(const wxString& indent) const
{
wxLogDebug("%stypedef %s = %s",
indent.c_str(), mName.c_str(), mOriginalType.c_str());
indent.c_str(), m_Name.c_str(), mOriginalType.c_str());
}
void spFile::DumpThis(const wxString& indent) const

View File

@ -30,7 +30,7 @@
#include "wx/string.h"
#include "wxstlvec.h"
#ifdef wxUSE_STD_STRING
#if wxUSE_STD_STRING
using std::string;
#else
// FOR NOW:: quick n' dirty:
@ -166,7 +166,7 @@ public:
// spClass on sorting the class members
void VisitAll( spContext& atContext,
bool sortContent = TRUE
bool sortContent = true
);
// methods invoked by visitor
@ -236,7 +236,7 @@ public:
string mText;
bool mIsMultiline; // multiline comments ar those with /**/'s
// TRUE, if these was an empty empty
// true, if these was an empty empty
// line above single line comment
bool mStartsPar;
@ -311,13 +311,13 @@ public:
// see SRC_VISIBLITY_TYPES enumeration
int mVisibility;
// TRUE, if context does not really exist in the source
// true, if context does not really exist in the source
// but was created by external tools (e.g. forward engineering)
bool mIsVirtualContext;
bool mVirtualContextHasChildren;
// body of the context in case (mIsVirtual == TRUE)
// body of the context in case (mIsVirtual == true)
string mVirtualContextBody;
string mVittualContextFooter;
@ -327,7 +327,7 @@ public:
public:
// universal identifier of the context (e.g. class name)
string mName;
wxString m_Name;
public:
// default constructor
@ -360,7 +360,7 @@ public:
bool VitualContextHasChildren();
void SetVirtualContextBody( const string& body,
bool hasChildren = FALSE,
bool hasChildren = false,
const string& footer = wxEmptyString );
string GetVirtualContextBody();
@ -373,7 +373,7 @@ public:
virtual string GetHeader( spContext* pCtx = NULL );
// TRUE, if there is at least one entry
// true, if there is at least one entry
// in the comment list of this context
bool HasComments();
MCommentListT& GetCommentList() { return mComments; }
@ -384,7 +384,7 @@ public:
virtual void SortMembers() {}
// returns identifier of this context
inline string& GetName() { return mName; }
inline wxString& GetName() { return m_Name; }
// returns -1, if souce line # is unknow
inline int GetSourceLineNo() { return mSrcLineNo; }
@ -413,11 +413,11 @@ public:
// returns NULL, if the context with the given
// name and type is not contained by this context
// and it's children. Children's children are not
// searched recursivelly if searchSubMembers is FALSE
// searched recursivelly if searchSubMembers is false
spContext* FindContext( const string& identifier,
int contextType = SP_CTX_ANY,
bool searchSubMembers = TRUE
bool searchSubMembers = true
);
// removes this context from it's parent
@ -426,19 +426,19 @@ public:
// will result assertion failure)
void RemoveThisContext();
// returns TRUE, if this object is aggregated in the file
// returns true, if this object is aggregated in the file
bool IsInFile();
// TRUE, if outter context is a namespace
// true, if outter context is a namespace
bool IsInNameSpace();
// TRUE, if outter context is a class
// true, if outter context is a class
bool IsInClass();
// TRUE, if outter cotext is an operation (TRUE for "spParameter"s)
// true, if outter cotext is an operation (true for "spParameter"s)
bool IsInOperation();
// TRUE if the context is public
// true if the context is public
bool IsPublic() const { return mVisibility == SP_VIS_PUBLIC; }
// NOTE:: method returns not the type of this object
@ -547,14 +547,14 @@ public:
// argument list
//MParamListT mParams;
// TRUE, if operation does not modify
// true, if operation does not modify
// the content of the object
bool mIsConstant;
// flag, specific to C++
bool mIsVirtual;
// TRUE, if definition follows the declaration immediatelly
// true, if definition follows the declaration immediatelly
bool mHasDefinition;
// scope if any (e.g. MyClass::MyFunction(), scope stirng is "MyClass" )
@ -634,7 +634,7 @@ public:
// valid if mClassSubType is SP_CLTYPE_TEMPLATE_CLASS
string mTemplateTypes;
// TRUE, if it's and interface of abstract base class
// true, if it's and interface of abstract base class
bool mIsAbstract;
public: