#include "wx/string.h"
#include "wxstlvec.h"
- #if wxUSE_STD_STRING
- using std::string;
- #else
- // FOR NOW:: quick n' dirty:
- #define string wxString
- #endif
-
#endif
#include "markup.h" // markup tags used in spOperator::GetFullName()
typedef vector<spComment*> MCommentListT;
// list of parameters
typedef vector<spParameter*> MParamListT;
- // string list
- typedef vector<string> StrListT;
+ // wxString list
+ typedef vector<wxString> StrListT;
#else
typedef WXSTL_VECTOR_SHALLOW_COPY(spContextPtrT) MMemberListT;
typedef WXSTL_VECTOR_SHALLOW_COPY(spCommentPtrT) MCommentListT;
typedef WXSTL_VECTOR_SHALLOW_COPY(spParameterPtrT) MParamListT;
- typedef WXSTL_VECTOR_SHALLOW_COPY(string) StrListT;
+ typedef WXSTL_VECTOR_SHALLOW_COPY(wxString) StrListT;
#endif
// base class for all visitors of source code contents
virtual void VisitParameter( spParameter& WXUNUSED(param) ) {}
virtual void VisitCustomContext( spContext& WXUNUSED(ctx) ) {}
+
+ virtual ~spVisitor() { }
};
// stores one section of comments,
class spComment
{
public:
- string mText;
- bool mIsMultiline; // multiline comments ar those with /**/'s
+ wxString m_Text;
+ bool mIsMultiline; // multiline comments ar those with /**/'s
// true, if these was an empty empty
// line above single line comment
- bool mStartsPar;
+ bool mStartsPar;
public:
- bool IsMultiline() const;
- bool StartsParagraph() const;
+ bool IsMultiline() const;
+ bool StartsParagraph() const;
- string& GetText();
+ wxString& GetText();
// contstant version of GetText()
- string GetText() const;
+ wxString GetText() const;
};
// abstract base class for common (to most languages) code
MMemberListT mMembers;
// NULL, if this is top-most context
- spContext* mpParent;
+ spContext* m_pParent;
// points to context object, where the this context
// was originally declared, meaning that this object
bool mVirtualContextHasChildren;
// body of the context in case (mIsVirtual == true)
- string mVirtualContextBody;
- string mVittualContextFooter;
+ wxString mVirtualContextBody;
+ wxString mVittualContextFooter;
// e.g. can be used by documentation generator to store
// reference to section object
bool VitualContextHasChildren();
- void SetVirtualContextBody( const string& body,
+ void SetVirtualContextBody( const wxString& body,
bool hasChildren = false,
- const string& footer = wxEmptyString );
+ const wxString& footer = wxEmptyString );
- string GetVirtualContextBody();
- string GetFooterOfVirtualContextBody();
+ wxString GetVirtualContextBody();
+ wxString GetFooterOfVirtualContextBody();
// can be overriden by top-level context classes
// to find-out ot the source-fragment of this
// context using it's position information
- virtual string GetBody( spContext* pCtx = NULL );
+ virtual wxString GetBody( spContext* pCtx = NULL );
- virtual string GetHeader( spContext* pCtx = NULL );
+ virtual wxString GetHeader( spContext* pCtx = NULL );
// true, if there is at least one entry
// in the comment list of this context
spContext* GetOutterContext();
// perhaps more intuitive alias for `GetOutterContext()'
- inline spContext* GetParent() { return mpParent; }
+ inline spContext* GetParent() { return m_pParent; }
bool HasOutterContext();
// and it's children. Children's children are not
// searched recursivelly if searchSubMembers is false
- spContext* FindContext( const string& identifier,
+ spContext* FindContext( const wxString& identifier,
int contextType = SP_CTX_ANY,
bool searchSubMembers = true
);
wxString m_Type;
// "stringified" initial value
- string mInitVal;
+ wxString m_InitVal;
public:
virtual int GetContextType() const { return SP_CTX_PARAMETER; }
wxString m_Type;
// it's initial value
- string mInitVal;
+ wxString m_InitVal;
// constantness
bool mIsConstant;
// scope if any (e.g. MyClass::MyFunction(), scope stirng is "MyClass" )
// usually found along with implementation of the method, which is now skipped
- string mScope;
+ wxString mScope;
public:
spOperation();
// the default implementation outputs name in
// C++/Java syntax
- virtual string GetFullName(MarkupTagsT tags);
+ virtual wxString GetFullName(MarkupTagsT tags);
virtual int GetContextType() const { return SP_CTX_OPERATION; }
// prepocessor statement including '#' and
// attached multiple lines with '\' character
- string mLine;
+ wxString m_Line;
int mDefType; // see SP_PREP_DEFINITION_TYPES enumeration
virtual int GetStatementType() const { return mDefType; }
- string CPP_GetIncludedFileNeme() const;
+ wxString CPP_GetIncludedFileNeme() const;
virtual void AcceptVisitor( spVisitor& visitor )
{ visitor.VisitPreprocessorLine( *this ); }
{
public:
// list of superclasses/interfaces
- StrListT mSuperClassNames;
+ StrListT m_SuperClassNames;
// see SP_CLASS_TYPES enumeration
int mClassSubType;
int mInheritanceType;
// valid if mClassSubType is SP_CLTYPE_TEMPLATE_CLASS
- string mTemplateTypes;
+ wxString mTemplateTypes;
// true, if it's and interface of abstract base class
bool mIsAbstract;
class spEnumeration : public spContext
{
public:
- string mEnumContent; // full-text content of enumeration
+ wxString m_EnumContent; // full-text content of enumeration
public:
virtual int GetContextType() const { return SP_CTX_ENUMERATION; }
public:
// the original type which is redefined
// by this type definition
- string mOriginalType;
+ wxString m_OriginalType;
public:
virtual int GetContextType() const { return SP_CTX_TYPEDEF; }
public:
// since file name cannot be determined from
// source code, filling in this field is optional
- string mFileName;
+ wxString m_FileName;
public:
virtual int GetContextType() const { return SP_CTX_FILE; }
public:
virtual bool CanUnderstandContext( char* cur, char* end, spContext* pOuttterCtx ) = 0;
virtual void ParseContext( char* start, char*& cur, char* end, spContext* pOuttterCtx ) = 0;
+
+ virtual ~SourceParserPlugin() { }
};
// abstract interface for source parsers