summaryrefslogtreecommitdiffstats
path: root/src/vhdldocgen.h
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2012-09-30 13:51:29 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2012-09-30 13:51:29 (GMT)
commitceb4115c7b941039411e1793e01239610ff112a2 (patch)
treed18c06222e0f84d6077b586e5633053a8bc09da8 /src/vhdldocgen.h
parentf6d511e52eb55c5d5b980c4d226f2ea80b396095 (diff)
downloadDoxygen-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.h95
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