summaryrefslogtreecommitdiffstats
path: root/src/memberlist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/memberlist.cpp')
-rw-r--r--src/memberlist.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/memberlist.cpp b/src/memberlist.cpp
index d6b389b..e2ffedb 100644
--- a/src/memberlist.cpp
+++ b/src/memberlist.cpp
@@ -26,6 +26,7 @@
#include "outputlist.h"
#include "groupdef.h"
#include "marshal.h"
+#include "vhdldocgen.h"
MemberList::MemberList()
{
@@ -319,6 +320,8 @@ void MemberList::writeDeclarations(OutputList &ol,
/*, bool inGroup,bool countSubGroups*/)
{
//printf("----- writeDeclaration() this=%p ----\n",this);
+ static bool optimizeVhdl = Config_getBool("OPTIMIZE_OUTPUT_VHDL");
+
countDecMembers(showEnumValues); // count member not in group
Definition *ctx = cd;
if (ctx==0 && nd) ctx = nd;
@@ -342,7 +345,21 @@ void MemberList::writeDeclarations(OutputList &ol,
ol.endMemberSubtitle();
}
- writePlainDeclarations(ol,cd,nd,fd,gd);
+ // TODO: Two things need to be worked out for proper VHDL output:
+ // 1. Signals and types under the group need to be
+ // formatted to associate them with the group somehow
+ // indentation, or at the very least, extra space after
+ // the group is done
+ // 2. This might need to be repeated below for memberGroupLists
+ if (optimizeVhdl) // use specific declarations function
+ {
+ VhdlDocGen::writeVhdlDeclarations(this,ol,0,cd);
+ }
+ else
+ {
+ writePlainDeclarations(ol,cd,nd,fd,gd);
+ }
+
//printf("memberGroupList=%p\n",memberGroupList);
if (memberGroupList)