diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2012-09-30 13:51:29 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2012-09-30 13:51:29 (GMT) |
commit | ceb4115c7b941039411e1793e01239610ff112a2 (patch) | |
tree | d18c06222e0f84d6077b586e5633053a8bc09da8 /src/vhdldocgen.h | |
parent | f6d511e52eb55c5d5b980c4d226f2ea80b396095 (diff) | |
download | Doxygen-ceb4115c7b941039411e1793e01239610ff112a2.zip Doxygen-ceb4115c7b941039411e1793e01239610ff112a2.tar.gz Doxygen-ceb4115c7b941039411e1793e01239610ff112a2.tar.bz2 |
Release-1.8.2-20120930
Diffstat (limited to 'src/vhdldocgen.h')
-rw-r--r-- | src/vhdldocgen.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/vhdldocgen.h b/src/vhdldocgen.h index bb62f3f..8d8307e 100644 --- a/src/vhdldocgen.h +++ b/src/vhdldocgen.h @@ -25,6 +25,7 @@ #include <qcstring.h> #include "layout.h" #include "memberlist.h" +#include "arguments.h" class Entry; class ClassDef; @@ -262,6 +263,14 @@ class VhdlDocGen static void writeOverview(OutputList &ol); static void writeOverview(); + + // flowcharts + static void createFlowChart( MemberDef*); + static void addFlowImage(FTextStream,QCString); + + static void setFlowMember( const MemberDef *flowMember); + static const MemberDef * getFlowMember(); + static void resetFlowMember(); private: static void findAllArchitectures(QList<QCString>& ql,const ClassDef *cd); @@ -272,4 +281,90 @@ class VhdlDocGen static void writeRecorUnit(QCString & largs,OutputList& ol ,const MemberDef *mdef); }; + +class FlowNode +{ + public: + enum nodeType { + IF_NO = 1<<1, + ELSIF_NO = 1<<2, + ELSE_NO = 1<<3, + CASE_NO = 1<<4, + WHEN_NO = 1<<5, + EXIT_NO = 1<<6, + END_NO = 1<<7, + TEXT_NO = 1<<8, + START_NO = 1<<9, + ENDIF_NO = 1<<10, + FOR_NO = 1<<11, + WHILE_NO = 1<<12, + END_LOOP = 1<<13, + END_CASE = 1<<14, + VARIABLE_NO = 1<<15, + RETURN_NO = 1<<16, + LOOP_NO = 1<<17, + NEXT_NO = 1<<18, + EXIT_WHEN_NO = 1<<19, + NEXT_WHEN_NO = 1<<20, + EMPTY_NO = 1<<21 + }; + + //---------- create svg ------------------------------------------------------------- + static void createSVG(); + static void startDot(FTextStream &t); + static void endDot(FTextStream &t); + static void codify(FTextStream &t,const char *str); + static void writeShape(FTextStream &t,const FlowNode* fl); + static void writeEdge(FTextStream &t,int fl_from,int fl_to,int i); + static void writeEdge(FTextStream &t,const FlowNode* fl_from,const FlowNode* fl_to,int i); + //static void writeEndNode(FTextStream &t,const FlowNode* fl); + static void writeFlowLinks(FTextStream &t); + //static void writeStartNode(FTextStream &t,const FlowNode* fl); + static void checkNode(int); + static void checkNode(const FlowNode*); + + static QCString getNodeName(int n); + static void colTextNodes(); + + static int getTextLink(const FlowNode* fl,uint index); + static int getNoLink(const FlowNode*,uint); + static int getNextNode(int); + static int findNode(int index,int stamp,int type); + static int findNode(int index,int type); + static int findNextLoop(int j,int stamp); + static int findPrevLoop(int j,int stamp); + static int findLabel(int j,QCString &); + static void delFlowList(); + static const char* getNodeType(int c); + + static void addFlowNode(int type,const char* text,const char* exp,const char * label=NULL); + static void moveToPrevLevel(); + static void printFlowList(); + static void setLabel(const char* text); + static int getTimeStamp(); + static void printNodeList(); + static void writeFlowNode(); + static void alignFuncProc(QCString & q,const ArgumentList* al,bool isFunc); + static QCString convertNameToFileName(); + + static QList<FlowNode> flowList; + static int ifcounter; + static int nodeCounter; + static int imageCounter; + static int caseCounter; + + FlowNode(int typ,const char* t,const char* ex,const char* label=NULL); + ~FlowNode(); + + int id; + int stamp; + int type; + + QCString label; + QCString text; + QCString exp; +}; + + + #endif |