summaryrefslogtreecommitdiffstats
path: root/src/vhdldocgen.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2019-04-21 13:59:23 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2019-04-21 14:01:25 (GMT)
commit6216208b0a4288a41450e4d37226f0e4c492128c (patch)
tree07cee94d592cf127058652928be18534cc2a6b15 /src/vhdldocgen.cpp
parentd226bc27b3c80586234b9c7d8ba2abc500e3be02 (diff)
downloadDoxygen-6216208b0a4288a41450e4d37226f0e4c492128c.zip
Doxygen-6216208b0a4288a41450e4d37226f0e4c492128c.tar.gz
Doxygen-6216208b0a4288a41450e4d37226f0e4c492128c.tar.bz2
Improved const correctness and added support for inline namespaces
Diffstat (limited to 'src/vhdldocgen.cpp')
-rw-r--r--src/vhdldocgen.cpp111
1 files changed, 56 insertions, 55 deletions
diff --git a/src/vhdldocgen.cpp b/src/vhdldocgen.cpp
index e70f099..55c1c17 100644
--- a/src/vhdldocgen.cpp
+++ b/src/vhdldocgen.cpp
@@ -1730,8 +1730,8 @@ QCString VhdlDocGen::convertArgumentListToString(const ArgumentList* al,bool fun
}
-void VhdlDocGen::writeVhdlDeclarations(MemberList* ml,
- OutputList& ol,GroupDef* gd,ClassDef* cd,FileDef *fd,NamespaceDef* nd)
+void VhdlDocGen::writeVhdlDeclarations(const MemberList* ml,
+ OutputList& ol,const GroupDef* gd,const ClassDef* cd,const FileDef *fd,const NamespaceDef* nd)
{
VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,nd,fd,gd,theTranslator_vhdlType(VhdlDocGen::LIBRARY,FALSE),0,FALSE,VhdlDocGen::LIBRARY);
VhdlDocGen::writeVHDLDeclarations(ml,ol,cd,nd,fd,gd,theTranslator_vhdlType(VhdlDocGen::USE,FALSE),0,FALSE,VhdlDocGen::USE);
@@ -1761,36 +1761,49 @@ void VhdlDocGen::writeVhdlDeclarations(MemberList* ml,
}
-static void setGlobalType(MemberList *ml)
+void VhdlDocGen::correctMemberProperties(MemberDef *md)
{
- if (ml==0) return;
- MemberDef *mdd=0;
- MemberListIterator mmli(*ml);
- for ( ; (mdd=mmli.current()); ++mmli )
+ if (qstrcmp(md->argsString(),"package")==0)
{
- if (qstrcmp(mdd->argsString(),"package")==0)
- {
- mdd->setMemberSpecifiers(VhdlDocGen::INSTANTIATION);
- }
- else if (qstrcmp(mdd->argsString(),"configuration")==0)
- {
- mdd->setMemberSpecifiers(VhdlDocGen::CONFIG);
- }
- else if (qstrcmp(mdd->typeString(),"library")==0)
- {
- mdd->setMemberSpecifiers(VhdlDocGen::LIBRARY);
- }
- else if (qstrcmp(mdd->typeString(),"use")==0)
- {
- mdd->setMemberSpecifiers(VhdlDocGen::USE);
- }
- else if (qstricmp(mdd->typeString(),"misc")==0)
+ md->setMemberSpecifiers(VhdlDocGen::INSTANTIATION);
+ }
+ else if (qstrcmp(md->argsString(),"configuration")==0)
+ {
+ md->setMemberSpecifiers(VhdlDocGen::CONFIG);
+ }
+ else if (qstrcmp(md->typeString(),"library")==0)
+ {
+ md->setMemberSpecifiers(VhdlDocGen::LIBRARY);
+ }
+ else if (qstrcmp(md->typeString(),"use")==0)
+ {
+ md->setMemberSpecifiers(VhdlDocGen::USE);
+ }
+ else if (qstricmp(md->typeString(),"misc")==0)
+ {
+ md->setMemberSpecifiers(VhdlDocGen::MISCELLANEOUS);
+ }
+ else if (qstricmp(md->typeString(),"ucf_const")==0)
+ {
+ md->setMemberSpecifiers(VhdlDocGen::UCF_CONST);
+ }
+
+ if (md->getMemberSpecifiers()==VhdlDocGen::UCF_CONST)
+ {
+ int mm=md->name().findRev('_');
+ if (mm>0)
{
- mdd->setMemberSpecifiers(VhdlDocGen::MISCELLANEOUS);
+ md->setName(md->name().left(mm));
}
- else if (qstricmp(mdd->typeString(),"ucf_const")==0)
+ }
+ else if (md->getMemberSpecifiers()==VhdlDocGen::TYPE)
+ {
+ QCString largs=md->argsString();
+ bool bRec=largs.stripPrefix("record") ;
+ bool bUnit=largs.stripPrefix("units") ;
+ if (bRec || bUnit)
{
- mdd->setMemberSpecifiers(VhdlDocGen::UCF_CONST);
+ md->setType("");
}
}
}
@@ -1924,11 +1937,11 @@ void VhdlDocGen::writeTagFile(MemberDef *mdef,FTextStream &tagFile)
/* writes a vhdl type declaration */
-void VhdlDocGen::writeVHDLDeclaration(MemberDef* mdef,OutputList &ol,
- ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
+void VhdlDocGen::writeVHDLDeclaration(const MemberDef* mdef,OutputList &ol,
+ const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,
bool /*inGroup*/)
{
- Definition *d=0;
+ const Definition *d=0;
ASSERT(cd!=0 || nd!=0 || fd!=0 || gd!=0 ||
mdef->getMemberSpecifiers()==VhdlDocGen::LIBRARY ||
@@ -1987,12 +2000,7 @@ void VhdlDocGen::writeVHDLDeclaration(MemberDef* mdef,OutputList &ol,
/*VHDL CHANGE */
bool bRec,bUnit;
QCString ltype(mdef->typeString());
- // ltype=ltype.replace(reg," ");
QCString largs(mdef->argsString());
- // largs=largs.replace(reg," ");
- mdef->setType(ltype.data());
- mdef->setArgsString(largs.data());
- //ClassDef * plo=mdef->getClassDef();
ClassDef *kl=0;
ArgumentList *alp = mdef->argumentList();
QCString nn;
@@ -2153,11 +2161,6 @@ void VhdlDocGen::writeVHDLDeclaration(MemberDef* mdef,OutputList &ol,
}
break;
case VhdlDocGen::UCF_CONST:
- mm=mdef->name().findRev('_');
- if (mm>0)
- {
- mdef->setName(mdef->name().left(mm));
- }
writeUCFLink(mdef,ol);
break;
case VhdlDocGen::SIGNAL:
@@ -2198,7 +2201,6 @@ void VhdlDocGen::writeVHDLDeclaration(MemberDef* mdef,OutputList &ol,
if (bRec || bUnit)
{
writeRecorUnit(largs,ol,mdef);
- mdef->setType("");
}
ol.endBold();
break;
@@ -2260,8 +2262,8 @@ void VhdlDocGen::writeVHDLDeclaration(MemberDef* mdef,OutputList &ol,
void VhdlDocGen::writePlainVHDLDeclarations(
- MemberList* mlist,OutputList &ol,
- ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,int specifier)
+ const MemberList* mlist,OutputList &ol,
+ const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,int specifier)
{
SDict<QCString> pack(1009);
@@ -2292,7 +2294,7 @@ void VhdlDocGen::writePlainVHDLDeclarations(
pack.clear();
}//plainDeclaration
-static bool membersHaveSpecificType(MemberList *ml,uint64 type)
+static bool membersHaveSpecificType(const MemberList *ml,uint64 type)
{
if (ml==0) return FALSE;
MemberDef *mdd=0;
@@ -2320,11 +2322,10 @@ static bool membersHaveSpecificType(MemberList *ml,uint64 type)
return FALSE;
}
-void VhdlDocGen::writeVHDLDeclarations(MemberList* ml,OutputList &ol,
- ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
+void VhdlDocGen::writeVHDLDeclarations(const MemberList* ml,OutputList &ol,
+ const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,
const char *title,const char *subtitle,bool /*showEnumValues*/,int type)
{
- setGlobalType(ml);
if (!membersHaveSpecificType(ml,type)) return;
if (title)
@@ -2377,7 +2378,7 @@ void VhdlDocGen::writeVHDLDeclarations(MemberList* ml,OutputList &ol,
}// writeVHDLDeclarations
-bool VhdlDocGen::writeClassType( ClassDef *& cd,
+bool VhdlDocGen::writeClassType( const ClassDef * cd,
OutputList &ol ,QCString & cname)
{
int id=cd->protection();
@@ -2398,7 +2399,7 @@ void VhdlDocGen::writeStringLink(const MemberDef *mdef,QCString mem, OutputList&
{
if (mdef)
{
- ClassDef *cd=mdef->getClassDef();
+ const ClassDef *cd=mdef->getClassDef();
if (cd)
{
QCString n=cd->name();
@@ -2418,7 +2419,7 @@ void VhdlDocGen::writeStringLink(const MemberDef *mdef,QCString mem, OutputList&
-void VhdlDocGen::writeSource(MemberDef *mdef,OutputList& ol,QCString & cname)
+void VhdlDocGen::writeSource(const MemberDef *mdef,OutputList& ol,const QCString & cname)
{
ParserInterface *pIntf = Doxygen::parserManager->getParser(".vhd");
// pIntf->resetCodeParserState();
@@ -2452,7 +2453,7 @@ void VhdlDocGen::writeSource(MemberDef *mdef,OutputList& ol,QCString & cname)
SrcLangExt_VHDL, // lang
FALSE, // isExample
0, // exampleName
- mdef->getFileDef(), // fileDef
+ const_cast<FileDef*>(mdef->getFileDef()), // fileDef
mdef->getStartBodyLine(), // startLine
mdef->getEndBodyLine(), // endLine
TRUE, // inlineFragment
@@ -3091,7 +3092,7 @@ bool VhdlDocGen::isSubClass(ClassDef* cd,ClassDef *scd, bool followInstances,int
BaseClassListIterator bcli(*cd->subClasses());
for ( ; bcli.current() && !found ; ++bcli)
{
- ClassDef *ccd=bcli.current()->classDef;
+ const ClassDef *ccd=bcli.current()->classDef;
if (!followInstances && ccd->templateMaster()) ccd=ccd->templateMaster();
//printf("isSubClass() subclass %s\n",ccd->name().data());
if (ccd==scd)
@@ -3178,7 +3179,7 @@ void VhdlDocGen::createFlowChart(const MemberDef *mdef)
int actualStart= mdef->getStartBodyLine();
int actualEnd=mdef->getEndBodyLine();
- FileDef* fd=mdef->getFileDef();
+ const FileDef* fd=mdef->getFileDef();
bool b=readCodeFragment( fd->absFilePath().data(), actualStart,actualEnd,codeFragment);
if (!b) return;
@@ -4374,9 +4375,9 @@ void VHDLLanguageScanner::parseCode(CodeOutputInterface &codeOutIntf,
int startLine,
int endLine,
bool inlineFragment,
- MemberDef *memberDef,
+ const MemberDef *memberDef,
bool showLineNumbers,
- Definition *searchCtx,
+ const Definition *searchCtx,
bool collectXRefs
)
{