Made HelpGen into a wxWin app (still uses command-line args); moved includes
into src for simplicity; added VC++ 5 project file git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3642 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
157
utils/HelpGen/src/docripper.h
Normal file
157
utils/HelpGen/src/docripper.h
Normal file
@@ -0,0 +1,157 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: No names yet.
|
||||
// Purpose: Contrib. demo
|
||||
// Author: Aleksandras Gluchovas
|
||||
// Modified by:
|
||||
// Created: 22/09/98
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) Aleskandars Gluchovas
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __DOCRIPPER_G__
|
||||
#define __DOCRIPPER_G__
|
||||
|
||||
#include "scriptbinder.h"
|
||||
#include "srcparser.h"
|
||||
#include "sourcepainter.h"
|
||||
|
||||
#if defined( wxUSE_TEMPLATE_STL )
|
||||
|
||||
#include <vector>
|
||||
|
||||
typedef vector<ScriptTemplate*> STemplateListT;
|
||||
|
||||
#else
|
||||
|
||||
#include "wxstlvec.h"
|
||||
|
||||
typedef ScriptTemplate* ScriptTemplatePtrT;
|
||||
typedef WXSTL_VECTOR_SHALLOW_COPY(ScriptTemplatePtrT) STemplateListT;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
// specific DocGenerator class for "Ripper",
|
||||
// also acts as source code visitor
|
||||
|
||||
class RipperDocGen : public DocGeneratorBase, public spVisitor
|
||||
{
|
||||
protected:
|
||||
// templates for various sections
|
||||
ScriptTemplate mTopTempl;
|
||||
ScriptTemplate mContentIdxTempl;
|
||||
ScriptTemplate mSuperContentTempl;
|
||||
ScriptTemplate mSubContentTempl;
|
||||
ScriptTemplate mOutLineTempl;
|
||||
ScriptTemplate mOutLine1Templ;
|
||||
|
||||
// template used for corss-references
|
||||
ScriptTemplate mRefTempl;
|
||||
|
||||
// template used to show not-existing sections
|
||||
ScriptTemplate mDeadRefTempl;
|
||||
|
||||
// template collection for generation of class-tree
|
||||
STemplateListT mTreeTemplates;
|
||||
|
||||
// pointers to all major index sections
|
||||
ScriptSection* mpTopIdx;
|
||||
ScriptSection* mpClassIdx;
|
||||
ScriptSection* mpEnumIdx;
|
||||
ScriptSection* mpTypeDefIdx;
|
||||
ScriptSection* mpMacroIdx;
|
||||
ScriptSection* mpGlobalVarsIdx;
|
||||
ScriptSection* mpGlobalFuncIdx;
|
||||
ScriptSection* mpConstIdx;
|
||||
|
||||
// parser set up from user-code for sepcific language
|
||||
SourceParserBase* mpParser;
|
||||
|
||||
// class section, which is currently being
|
||||
// assembled
|
||||
ScriptSection* mpCurClassSect;
|
||||
|
||||
// source syntax heighlighter object
|
||||
SourcePainter mSrcPainter;
|
||||
|
||||
// context, to which all file contexts
|
||||
// are assembled
|
||||
spContext* mpFileBinderCtx;
|
||||
|
||||
// script tags set up from usesr code
|
||||
MarkupTagsT mTags;
|
||||
|
||||
protected:
|
||||
// helpers
|
||||
void AppendComments( spContext& fromContext, string& str );
|
||||
|
||||
void AppendMulitilineStr( string& st, string& mlStr );
|
||||
|
||||
void AppendHighlightedSource( string& st, string source );
|
||||
|
||||
// returns TRUE, if no comments found in the context,
|
||||
// plus, creates dummy(empty) section, and puts a
|
||||
// reference woth "dead-link" template to it in the
|
||||
// given index-section "toSect"
|
||||
|
||||
bool CheckIfUncommented( spContext& ctx, ScriptSection& toSect );
|
||||
|
||||
// checks if context has any comments, then returns
|
||||
// template of normal reference, otherwise of dead reference
|
||||
|
||||
ScriptTemplate* GetRefTemplFor( spContext& ctx );
|
||||
|
||||
// adds "someClass::" perfix to the context name,
|
||||
// if it's not in the file scope (i.e. if it's not global)
|
||||
|
||||
string GetScopedName( spContext& ofCtx );
|
||||
|
||||
// adds section to currently assembled class section
|
||||
// and places references to it from "public", "protected"
|
||||
// or "private" indexing-subsections of the class, depending
|
||||
// on the visibility of the context
|
||||
|
||||
void AddToCurrentClass( ScriptSection* pSection, spContext& ctx,
|
||||
const char* subSectionName );
|
||||
|
||||
// called, after all files are processed, to
|
||||
// resolve possible super/derived class relations,
|
||||
// and put cross references to them - where resolution was
|
||||
// successful
|
||||
void LinkSuperClassRefs();
|
||||
|
||||
// implementations of "visiting procedures", declared in spVisitor
|
||||
|
||||
virtual void VisitClass( spClass& cl );
|
||||
virtual void VisitEnumeration( spEnumeration& en );
|
||||
virtual void VisitTypeDef( spTypeDef& td );
|
||||
virtual void VisitPreprocessorLine( spPreprocessorLine& pd );
|
||||
virtual void VisitAttribute( spAttribute& attr );
|
||||
virtual void VisitOperation( spOperation& op );
|
||||
|
||||
// overriden member of DocGernatorBase
|
||||
|
||||
virtual bool OnSaveDocument( ScriptStream& stm );
|
||||
|
||||
virtual ScriptSection* GetTopSection()
|
||||
{ return mpTopIdx; }
|
||||
|
||||
public:
|
||||
RipperDocGen();
|
||||
~RipperDocGen();
|
||||
|
||||
// should be called onece to set user-code provided,
|
||||
// parser for specific source code language
|
||||
// (NOTE:: it's the user-code's responsibility to
|
||||
// relseas memory of pParser)
|
||||
|
||||
void Init( SourceParserBase* pParser );
|
||||
|
||||
// should be called on each file
|
||||
|
||||
void ProcessFile( const char* sourceFile );
|
||||
};
|
||||
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user