Doxygen
VhdlDocGen类 参考

Class for generating documentation specific for VHDL 更多...

#include <vhdldocgen.h>

Public 类型

enum  VhdlClasses { ENTITYCLASS, PACKBODYCLASS, ARCHITECTURECLASS, PACKAGECLASS }
 
enum  VhdlKeyWords {
  LIBRARY =1, ENTITY, PACKAGE_BODY, ARCHITECTURE,
  PACKAGE, ATTRIBUTE, SIGNAL, COMPONENT,
  CONSTANT, TYPE, SUBTYPE, FUNCTION,
  RECORD, PROCEDURE, USE, PROCESS,
  PORT, UNITS, GENERIC, INSTANTIATION,
  GROUP, VFILE, SHAREDVARIABLE, CONFIG,
  ALIAS, MISCELLANEOUS, UCF_CONST
}
 

Public 成员函数

 VhdlDocGen ()
 
virtual ~VhdlDocGen ()
 

静态 Public 成员函数

static void init ()
 
static QCString convertFileNameToClassName (QCString name)
 
static bool isSubClass (ClassDef *cd, ClassDef *scd, bool followInstances, int level)
 
static QCString getIndexWord (const QCString &, int index)
 
static bool deleteCharRev (QCString &s, char c)
 
static void deleteAllChars (QCString &s, char c)
 
static void parseFuncProto (const QCString &text, QCString &name, QCString &ret, bool doc=false)
 
static void computeVhdlComponentRelations ()
 
static const char * findKeyWord (const QCString &word)
 
static ClassDefgetPackageName (const QCString &name)
 
static const MemberDeffindMember (const QCString &className, const QCString &memName)
 
static void findAllPackages (ClassDef *)
 
static const MemberDeffindMemberDef (ClassDef *cd, const QCString &key, MemberListType type)
 This function returns the entity|package in which the key (type) is found 更多...
 
static ClassDefgetClass (const QCString &name)
 
static const MemberDeffindFunction (const QCString &name, const QCString &package)
 
static QCString getClassTitle (const ClassDef *)
 
static void writeInlineClassLink (const ClassDef *, OutputList &ol)
 
static void writeTagFile (MemberDefMutable *mdef, TextStream &tagFile)
 
static bool isConstraint (const MemberDef *mdef)
 
static bool isConfig (const MemberDef *mdef)
 
static bool isAlias (const MemberDef *mdef)
 
static bool isLibrary (const MemberDef *mdef)
 
static bool isGeneric (const MemberDef *mdef)
 
static bool isPort (const MemberDef *mdef)
 
static bool isComponent (const MemberDef *mdef)
 
static bool isPackage (const MemberDef *mdef)
 
static bool isEntity (const MemberDef *mdef)
 
static bool isConstant (const MemberDef *mdef)
 
static bool isVType (const MemberDef *mdef)
 
static bool isSubType (const MemberDef *mdef)
 
static bool isVhdlFunction (const MemberDef *mdef)
 
static bool isProcess (const MemberDef *mdef)
 
static bool isSignal (const MemberDef *mdef)
 
static bool isAttribute (const MemberDef *mdef)
 
static bool isSignals (const MemberDef *mdef)
 
static bool isProcedure (const MemberDef *mdef)
 
static bool isRecord (const MemberDef *mdef)
 
static bool isArchitecture (const MemberDef *mdef)
 
static bool isUnit (const MemberDef *mdef)
 
static bool isPackageBody (const MemberDef *mdef)
 
static bool isVariable (const MemberDef *mdef)
 
static bool isFile (const MemberDef *mdef)
 
static bool isGroup (const MemberDef *mdef)
 
static bool isCompInst (const MemberDef *mdef)
 
static bool isMisc (const MemberDef *mdef)
 
static void prepareComment (QCString &)
 
static void formatString (const QCString &, OutputList &ol, const MemberDef *)
 
static void writeFormatString (const QCString &, OutputList &ol, const MemberDef *)
 
static void writeFunctionProto (OutputList &ol, const ArgumentList &al, const MemberDef *)
 
static void writeProcessProto (OutputList &ol, const ArgumentList &al, const MemberDef *)
 
static void writeProcedureProto (OutputList &ol, const ArgumentList &al, const MemberDef *)
 
static bool writeFuncProcDocu (const MemberDef *mdef, OutputList &ol, const ArgumentList &al, bool type=false)
 
static void writeRecordProto (const MemberDef *mdef, OutputList &ol, const ArgumentList &al)
 
static bool writeVHDLTypeDocumentation (const MemberDef *mdef, const Definition *d, OutputList &ol)
 
static void writeVhdlDeclarations (const MemberList *, OutputList &, const GroupDef *, const ClassDef *, const FileDef *, const NamespaceDef *)
 
static void writeVHDLDeclaration (const MemberDefMutable *mdef, OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, bool inGroup)
 
static void writePlainVHDLDeclarations (const MemberList *ml, OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, uint64_t specifier)
 
static void writeVHDLDeclarations (const MemberList *ml, OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const QCString &title, const QCString &subtitle, bool showEnumValues, int type)
 
static bool writeClassType (const ClassDef *, OutputList &ol, QCString &cname)
 
static QCString convertArgumentListToString (const ArgumentList &al, bool f)
 
static QCString getProcessNumber ()
 
static QCString getRecordNumber ()
 
static QCString getClassName (const ClassDef *)
 
static bool isNumber (const std::string &s)
 
static QCString getProtectionName (int prot)
 
static void parseUCF (const char *input, Entry *entity, const QCString &f, bool vendor)
 
static const ClassDeffindArchitecture (const ClassDef *cd)
 
static void correctMemberProperties (MemberDefMutable *md)
 
static void writeSource (const MemberDefMutable *mdef, OutputList &ol, const QCString &cname)
 
static QCString parseForConfig (QCString &entity, QCString &arch)
 
static QCString parseForBinding (QCString &entity, QCString &arch)
 
static void addBaseClass (ClassDef *cd, ClassDef *ent)
 
static ClassDeffindVhdlClass (const QCString &className)
 
static void writeOverview (OutputList &ol)
 
static void writeOverview ()
 
static void createFlowChart (const MemberDef *)
 
static void setFlowMember (const MemberDef *flowMember)
 
static const MemberDefgetFlowMember ()
 
static bool isVhdlClass (const Entry *cu)
 
static void resetCodeVhdlParserState ()
 

静态 Private 成员函数

static void findAllArchitectures (std::vector< QCString > &ql, const ClassDef *cd)
 
static bool compareArgList (const ArgumentList &, const ArgumentList &)
 
static void writeVhdlLink (const ClassDef *cdd, OutputList &ol, QCString &type, QCString &name, QCString &beh)
 
static void writeStringLink (const MemberDef *mdef, QCString mem, OutputList &ol)
 
static void writeRecUnitDocu (const MemberDef *md, OutputList &ol, QCString largs)
 
static void writeRecordUnit (QCString &largs, QCString &ltype, OutputList &ol, const MemberDefMutable *mdef)
 

详细描述

Class for generating documentation specific for VHDL

在文件 vhdldocgen.h68 行定义.

成员枚举类型说明

◆ VhdlClasses

枚举值
ENTITYCLASS 
PACKBODYCLASS 
ARCHITECTURECLASS 
PACKAGECLASS 

在文件 vhdldocgen.h72 行定义.

73  {
74  ENTITYCLASS, // Overlays: Public
75  PACKBODYCLASS, // Overlays: Protected
76  ARCHITECTURECLASS, // Overlays: Private
77  PACKAGECLASS // Overlays: Package
78  };

◆ VhdlKeyWords

枚举值
LIBRARY 
ENTITY 
PACKAGE_BODY 
ARCHITECTURE 
PACKAGE 
ATTRIBUTE 
SIGNAL 
COMPONENT 
CONSTANT 
TYPE 
SUBTYPE 
FUNCTION 
RECORD 
PROCEDURE 
USE 
PROCESS 
PORT 
UNITS 
GENERIC 
INSTANTIATION 
GROUP 
VFILE 
SHAREDVARIABLE 
CONFIG 
ALIAS 
MISCELLANEOUS 
UCF_CONST 

在文件 vhdldocgen.h80 行定义.

81  {
82  LIBRARY=1,
83  ENTITY,
86  PACKAGE,
87  ATTRIBUTE,
88  SIGNAL,
89  COMPONENT,
90  CONSTANT,
91  TYPE,
92  SUBTYPE,
93  FUNCTION,
94  RECORD,
95  PROCEDURE,
96  USE,
97  PROCESS,
98  PORT,
99  UNITS,
100  GENERIC,
102  GROUP,
103  VFILE,
105  CONFIG,
106  ALIAS,
108  UCF_CONST
109  };

构造及析构函数说明

◆ VhdlDocGen()

VhdlDocGen::VhdlDocGen ( )

在文件 vhdldocgen.cpp498 行定义.

499 {
500 }

◆ ~VhdlDocGen()

VhdlDocGen::~VhdlDocGen ( )
virtual

在文件 vhdldocgen.cpp502 行定义.

503 {
504 }

成员函数说明

◆ addBaseClass()

void VhdlDocGen::addBaseClass ( ClassDef cd,
ClassDef ent 
)
static

在文件 vhdldocgen.cpp2696 行定义.

2697 {
2698  BaseClassList bcl = cd->baseClasses();
2699  for (auto &bcd : bcl)
2700  {
2701  ClassDef *ccd = bcd.classDef;
2702  if (ccd==ent)
2703  {
2704  QCString n = bcd.usedName;
2705  int i = n.find('(');
2706  if(i<0)
2707  {
2708  bcd.usedName.append("(2)");
2709  return;
2710  }
2711  static const reg::Ex reg(R"(\d+)");
2712  QCString s=n.left(i);
2713  QCString r=n.right(n.length()-i);
2714  std::string t=r.str();
2717  r.setNum(r.toInt()+1);
2718  reg::replace(t, reg, r.str());
2719  s.append(t.c_str());
2720  bcd.usedName=s;
2721  bcd.templSpecifiers=t;
2722  }
2723  }
2724  cd->updateBaseClasses(bcl);
2725 }

引用了 QCString::append(), ClassDef::baseClasses(), deleteAllChars(), QCString::find(), QCString::left(), QCString::length(), reg::replace(), QCString::right(), QCString::setNum(), QCString::str(), QCString::toInt() , 以及 ClassDef::updateBaseClasses().

被这些函数引用 addInstance().

◆ compareArgList()

static bool VhdlDocGen::compareArgList ( const ArgumentList ,
const ArgumentList  
)
staticprivate

◆ computeVhdlComponentRelations()

void VhdlDocGen::computeVhdlComponentRelations ( )
static

在文件 vhdldocgen.cpp2501 行定义.

2502 {
2503 
2504  QCString entity,arch,inst;
2505 
2506  for (const auto &cur : getVhdlInstList())
2507  {
2508  if (cur->stat ) // was bind
2509  {
2510  continue;
2511  }
2512 
2513  if (cur->includeName=="entity" || cur->includeName=="component" )
2514  {
2515  entity=cur->includeName+" "+cur->type;
2516  QCString rr=VhdlDocGen::parseForBinding(entity,arch);
2517  }
2518  else if (cur->includeName.isEmpty())
2519  {
2520  entity=cur->type;
2521  }
2522 
2524  inst=VhdlDocGen::getIndexWord(cur->args,0);
2527 
2528  if (cd==0)
2529  {
2530  continue;
2531  }
2532 
2533  // if (classEntity==0)
2534  // err("%s:%d:Entity:%s%s",qPrint(cur->fileName),cur->startLine,qPrint(entity)," could not be found");
2535 
2536  addInstance(classEntity,ar,cd,cur);
2537  }
2538 
2539 }

引用了 addInstance(), Doxygen::classLinkedMap, findVhdlClass(), getIndexWord(), getVhdlInstList(), parseForBinding() , 以及 toClassDefMutable().

被这些函数引用 parseInput().

◆ convertArgumentListToString()

QCString VhdlDocGen::convertArgumentListToString ( const ArgumentList al,
bool  f 
)
static

在文件 vhdldocgen.cpp1512 行定义.

1513 {
1514  QCString argString;
1515  bool sem=FALSE;
1516 
1517  for (const Argument &arg : al)
1518  {
1519  if (sem) argString.append(", ");
1520  if (func)
1521  {
1522  argString+=arg.name;
1523  argString+=":";
1524  argString+=arg.type;
1525  }
1526  else
1527  {
1528  argString+=arg.defval+" ";
1529  argString+=arg.name+" :";
1530  argString+=arg.attrib+" ";
1531  argString+=arg.type;
1532  }
1533  sem=TRUE;
1534  }
1535  return argString;
1536 }

引用了 QCString::append(), FALSE , 以及 TRUE.

被这些函数引用 writeTagFile().

◆ convertFileNameToClassName()

QCString VhdlDocGen::convertFileNameToClassName ( QCString  name)
static

在文件 vhdldocgen.cpp2245 行定义.

2246 {
2247 
2248  QCString n=name;
2249  n=n.remove(0,6);
2250 
2251  int i=0;
2252 
2253  while((i=n.find("__"))>0)
2254  {
2255  n=n.remove(i,1);
2256  }
2257 
2258  while((i=n.find("_1"))>0)
2259  {
2260  n=n.replace(i,2,":");
2261  }
2262 
2263  return n;
2264 }

引用了 QCString::find(), QCString::remove() , 以及 QCString::replace().

◆ correctMemberProperties()

void VhdlDocGen::correctMemberProperties ( MemberDefMutable md)
static

在文件 vhdldocgen.cpp1570 行定义.

1571 {
1572  if (md->argsString()=="package")
1573  {
1575  }
1576  else if (md->argsString()=="configuration")
1577  {
1579  }
1580  else if (md->typeString()=="library")
1581  {
1583  }
1584  else if (md->typeString()=="use")
1585  {
1587  }
1588  else if (md->typeString().lower()=="misc")
1589  {
1591  }
1592  else if (md->typeString().lower()=="ucf_const")
1593  {
1595  }
1596 
1598  {
1599  int mm=md->name().findRev('_');
1600  if (mm>0)
1601  {
1602  md->setName(md->name().left(mm));
1603  }
1604  }
1605  else if (md->getMemberSpecifiers()==VhdlDocGen::TYPE)
1606  {
1607  QCString largs=md->argsString();
1608  bool bRec=largs.stripPrefix("record") ;
1609  bool bUnit=largs.stripPrefix("units") ;
1610  if (bRec || bUnit)
1611  {
1612  md->setType("");
1613  }
1614  }
1615 }

引用了 MemberDef::argsString(), CONFIG, QCString::findRev(), MemberDef::getMemberSpecifiers(), INSTANTIATION, QCString::left(), LIBRARY, QCString::lower(), MISCELLANEOUS, Definition::name(), MemberDefMutable::setMemberSpecifiers(), DefinitionMutable::setName(), MemberDefMutable::setType(), QCString::stripPrefix(), TYPE, MemberDef::typeString(), UCF_CONST , 以及 USE.

被这些函数引用 vhdlCorrectMemberProperties().

◆ createFlowChart()

void VhdlDocGen::createFlowChart ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2742 行定义.

2743 {
2744  if (mdef==0) return;
2745 
2746  QCString codeFragment;
2747  const MemberDef* mm=0;
2748  if ((mm=findMemFlow(mdef))!=0)
2749  {
2750  // don't create the same flowchart twice
2752  return;
2753  }
2754  else
2755  {
2756  mdList.push_back(mdef);
2757  }
2758 
2759  //fprintf(stderr,"\n create flow mem %s %p\n",qPrint(mdef->name()),mdef);
2760 
2761  int actualStart= mdef->getStartBodyLine();
2762  int actualEnd=mdef->getEndBodyLine();
2763  const FileDef* fd=mdef->getFileDef();
2764  bool b=readCodeFragment( fd->absFilePath(), actualStart,actualEnd,codeFragment);
2765  if (!b) return;
2766 
2767  auto parser { Doxygen::parserManager->getOutlineParser(".vhd") };
2769  std::shared_ptr<Entry> root = std::make_shared<Entry>();
2770  StringVector filesInSameTu;
2771  parser->parseInput("",codeFragment.data(),root,nullptr);
2772 }

引用了 FileDef::absFilePath(), QCString::data(), findMemFlow(), Definition::getEndBodyLine(), MemberDef::getFileDef(), ParserManager::getOutlineParser(), Definition::getStartBodyLine(), mdList, Doxygen::parserManager, readCodeFragment() , 以及 setFlowMember().

被这些函数引用 DocVhdlFlow::parse().

◆ deleteAllChars()

void VhdlDocGen::deleteAllChars ( QCString s,
char  c 
)
static

在文件 vhdldocgen.cpp1085 行定义.

1086 {
1087  int index=s.findRev(c,-1,FALSE);
1088  while (index > -1)
1089  {
1090  QCString qcs=s.remove(index,1);
1091  s=qcs;
1092  index=s.findRev(c,-1,FALSE);
1093  }
1094 }

引用了 FALSE, QCString::findRev() , 以及 QCString::remove().

被这些函数引用 addBaseClass(), VHDLOutlineParser::createFunction() , 以及 initUCF().

◆ deleteCharRev()

bool VhdlDocGen::deleteCharRev ( QCString s,
char  c 
)
static

deletes a char backwards in a string

在文件 vhdldocgen.cpp1073 行定义.

1074 {
1075  int index=s.findRev(c,-1,FALSE);
1076  if (index > -1)
1077  {
1078  QCString qcs=s.remove(index,1);
1079  s=qcs;
1080  return TRUE;
1081  }
1082  return FALSE;
1083 }

引用了 FALSE, QCString::findRev(), QCString::remove() , 以及 TRUE.

被这些函数引用 parseFuncProto().

◆ findAllArchitectures()

void VhdlDocGen::findAllArchitectures ( std::vector< QCString > &  ql,
const ClassDef cd 
)
staticprivate

在文件 vhdldocgen.cpp906 行定义.

907 {
908  for (const auto &citer : *Doxygen::classLinkedMap)
909  {
910  QCString className=citer->className();
911  int pos;
912  if (cd != citer.get() && (pos=className.find('-'))!=-1)
913  {
914  QCString postfix=className.mid(pos+1);
915  if (qstricmp(cd->className(),postfix)==0)
916  {
917  qll.push_back(className);
918  }
919  }
920  }// for
921 }//findAllArchitectures

引用了 Doxygen::classLinkedMap, ClassDef::className(), QCString::find(), QCString::mid() , 以及 qstricmp().

被这些函数引用 writeInlineClassLink().

◆ findAllPackages()

void VhdlDocGen::findAllPackages ( ClassDef cdef)
static

finds all included packages of an Entity or Package

在文件 vhdldocgen.cpp741 行定义.

742 {
743  if (g_packages.find(cdef)!=g_packages.end()) return;
744  std::vector<ClassDef*> cList;
746  if (mem)
747  {
748  for (const auto &md : *mem)
749  {
750  if (VhdlDocGen::isPackage(md))
751  {
752  ClassDef* cd=VhdlDocGen::getPackageName(md->name());
753  if (cd)
754  {
755  cList.push_back(cd);
757  g_packages.insert({cdef,cList});
758  }
759  }
760  }//for
761  }
762 
763 }// findAllPackages

引用了 g_packages, ClassDef::getMemberList(), getPackageName(), isPackage() , 以及 MemberListType_variableMembers.

被这些函数引用 findMember().

◆ findArchitecture()

const ClassDef * VhdlDocGen::findArchitecture ( const ClassDef cd)
static

在文件 vhdldocgen.cpp923 行定义.

924 {
925  QCString nn=cd->name();
926  for (const auto &citer : *Doxygen::classLinkedMap)
927  {
928  QCString jj=citer->name();
929  StringVector ql=split(jj.str(),":");
930  if (ql.size()>1)
931  {
932  if (QCString(ql[0])==nn)
933  {
934  return citer.get();
935  }
936  }
937  }
938  return 0;
939 }

引用了 Doxygen::classLinkedMap, Definition::name(), split() , 以及 QCString::str().

◆ findFunction()

const MemberDef * VhdlDocGen::findFunction ( const QCString funcname,
const QCString package 
)
static

returns the function with the matching argument list is called in vhdlcode.l

在文件 vhdldocgen.cpp770 行定义.

771 {
772  ClassDef *cdef=getClass(package);
773  if (cdef==0) return 0;
774 
776  if (mem)
777  {
778  for (const auto &mdef : *mem)
779  {
780  QCString mname=mdef->name();
781  if ((VhdlDocGen::isProcedure(mdef) || VhdlDocGen::isVhdlFunction(mdef)) && (compareString(funcname,mname)==0))
782  {
783  return mdef;
784  }//if
785  }//for
786  }//if
787  return 0;
788 } //findFunction

引用了 compareString(), getClass(), ClassDef::getMemberList(), isProcedure(), isVhdlFunction() , 以及 MemberListType_pubMethods.

◆ findKeyWord()

const char * VhdlDocGen::findKeyWord ( const QCString kw)
static

returns the color of a keyword

在文件 vhdldocgen.cpp562 行定义.

563 {
564  std::string word=kw.lower().str();
565 
566  if (word.empty()) return 0;
567 
568  if (g_vhdlKeyWordSet0.find(word)!=g_vhdlKeyWordSet0.end())
569  return "keywordflow";
570 
571  if (g_vhdlKeyWordSet1.find(word)!=g_vhdlKeyWordSet1.end())
572  return "keywordtype";
573 
574  if (g_vhdlKeyWordSet2.find(word)!=g_vhdlKeyWordSet2.end())
575  return "vhdllogic";
576 
577  if (g_vhdlKeyWordSet3.find(word)!=g_vhdlKeyWordSet3.end())
578  return "vhdlkeyword";
579 
580  return 0;
581 }

引用了 g_vhdlKeyWordSet0, g_vhdlKeyWordSet1, g_vhdlKeyWordSet2, g_vhdlKeyWordSet3, QCString::lower() , 以及 QCString::str().

被这些函数引用 writeFormatString(), writeFunctionProto() , 以及 writeProcedureProto().

◆ findMember()

const MemberDef * VhdlDocGen::findMember ( const QCString className,
const QCString memName 
)
static

在文件 vhdldocgen.cpp598 行定义.

599 {
600  ClassDef* cd,*ecd=0;
601  const MemberDef *mdef=0;
602 
603  cd=getClass(className);
604  //printf("VhdlDocGen::findMember(%s,%s)=%p\n",qPrint(className),qPrint(memName),cd);
605  if (cd==0) return 0;
606 
608  if (mdef) return mdef;
610  if (mdef) return mdef;
611 
612  // nothing found so far
613  // if we are an architecture or package body search in entity
614 
617  {
618  Definition *d = cd->getOuterScope();
619  // searching upper/lower case names
620 
621  QCString tt=d->name();
622  ecd =getClass(tt);
623  if (!ecd)
624  {
625  tt=tt.upper();
626  ecd =getClass(tt);
627  }
628  if (!ecd)
629  {
630  tt=tt.lower();
631  ecd =getClass(tt);
632  }
633 
634  if (ecd) //d && d->definitionType()==Definition::TypeClass)
635  {
636  //ClassDef *ecd = (ClassDef*)d;
638  if (mdef) return mdef;
640  if (mdef) return mdef;
641  }
642  }
643 
644 
647  {
648  Definition *d = cd->getOuterScope();
649 
650  QCString tt=d->name();
651  ClassDef *acd =getClass(tt);
652  if (!acd)
653  {
654  tt=tt.upper();
655  acd =getClass(tt);
656  }
657  if (!acd)
658  {
659  tt=tt.lower();
660  acd =getClass(tt);
661  }
662  if (acd) //d && d->definitionType()==Definition::TypeClass)
663  {
664  if(g_packages.find(acd)==g_packages.end())
665  {
667  }
668  }
669  }
670  else
671  {
672  ecd=cd;
673  if (g_packages.find(ecd)==g_packages.end()) VhdlDocGen::findAllPackages(ecd);
674  }
675 
676  if (ecd)
677  {
678  auto cList_it = g_packages.find(ecd);
679  if (cList_it!=g_packages.end())
680  {
681  for (const auto &cdp : cList_it->second)
682  {
684  if (mdef) return mdef;
686  if (mdef) return mdef;
687  }
688  }
689  }
690  return 0;
691 
692 }//findMember

引用了 ARCHITECTURECLASS, findAllPackages(), findMemberDef(), g_packages, getClass(), Definition::getOuterScope(), QCString::lower(), MemberListType_pubMethods, MemberListType_variableMembers, Definition::name(), PACKBODYCLASS, ClassDef::protection() , 以及 QCString::upper().

被这些函数引用 writeStringLink() , 以及 writeVHDLTypeDocumentation().

◆ findMemberDef()

const MemberDef * VhdlDocGen::findMemberDef ( ClassDef cd,
const QCString key,
MemberListType  type 
)
static

This function returns the entity|package in which the key (type) is found

在文件 vhdldocgen.cpp698 行定义.

699 {
700  QCString keyType=cd->symbolName()+"@"+key;
701  //printf("\n %s | %s | %s",qPrint(cd->symbolName()),key.data(,),qPrint(keyType));
702 
703  auto it = g_varMap.find(keyType.str());
704  if (it!=g_varMap.end())
705  {
706  return it->second;
707  }
708  if (std::find(g_classList.begin(),g_classList.end(),cd)!=g_classList.end())
709  {
710  return 0;
711  }
712  const MemberList *ml=cd->getMemberList(type);
713  g_classList.push_back(cd);
714  if (!ml)
715  {
716  return 0;
717  }
718  //int l=ml->count();
719  // fprintf(stderr,"\n loading entity %s %s: %d",qPrint(cd->symbolName()),qPrint(keyType),l);
720 
721  for (const auto &md : *ml)
722  {
723  QCString tkey=cd->symbolName()+"@"+md->name();
724  if (g_varMap.find(tkey.str())==g_varMap.end())
725  {
726  g_varMap.insert({tkey.str(),md});
727  }
728  }
729  it=g_varMap.find(keyType.str());
730  if (it!=g_varMap.end())
731  {
732  return it->second;
733  }
734  return 0;
735 }//findMemberDef

引用了 g_classList, g_varMap, ClassDef::getMemberList(), QCString::str() , 以及 Definition::symbolName().

被这些函数引用 findMember().

◆ findVhdlClass()

ClassDef * VhdlDocGen::findVhdlClass ( const QCString className)
static

在文件 vhdldocgen.cpp2475 行定义.

2476 {
2477  for (const auto &cd : *Doxygen::classLinkedMap)
2478  {
2479  if (qstricmp(className.data(),qPrint(cd->name()))==0)
2480  {
2481  return cd.get();
2482  }
2483  }
2484  return 0;
2485 }

引用了 Doxygen::classLinkedMap, QCString::data(), qPrint() , 以及 qstricmp().

被这些函数引用 computeVhdlComponentRelations().

◆ formatString()

void VhdlDocGen::formatString ( const QCString s,
OutputList ol,
const MemberDef mdef 
)
static

inserts white spaces for better readings and writes a colored string to the output

在文件 vhdldocgen.cpp1210 行定义.

1211 {
1212  QCString qcs = s;
1213  QCString temp;
1214  qcs.stripPrefix(":");
1215  qcs.stripPrefix("is");
1216  qcs.stripPrefix("IS");
1217  qcs.stripPrefix("of");
1218  qcs.stripPrefix("OF");
1219 
1220  // VhdlDocGen::deleteCharRev(qcs,';');
1221  //char white='\t';
1222  int len = qcs.length();
1223  unsigned int index=1;//temp.length();
1224 
1225  for (int j=0;j<len;j++)
1226  {
1227  char c=qcs[j];
1228  char b=c;
1229  if (j>0) b=qcs[j-1];
1230  if (c=='"' || c==',' || c=='\''|| c=='(' || c==')' || c==':' || c=='[' || c==']' ) // || (c==':' && b!='=')) // || (c=='=' && b!='>'))
1231  {
1232  if (temp.length()>=index && temp.at(index-1) != ' ')
1233  {
1234  temp+=" ";
1235  }
1236  temp+=c;
1237  temp+=" ";
1238  }
1239  else if (c=='=')
1240  {
1241  if (b==':') // := operator
1242  {
1243  temp.replace(index-1,1,"=");
1244  temp+=" ";
1245  }
1246  else // = operator
1247  {
1248  temp+=" ";
1249  temp+=c;
1250  temp+=" ";
1251  }
1252  }
1253  else
1254  {
1255  temp+=c;
1256  }
1257 
1258  index=temp.length();
1259  }// for
1260  temp=temp.stripWhiteSpace();
1261  // printf("\n [%s]",qPrint(qcs));
1262  VhdlDocGen::writeFormatString(temp,ol,mdef);
1263 }

引用了 QCString::at(), QCString::length(), QCString::replace(), QCString::stripPrefix(), QCString::stripWhiteSpace() , 以及 writeFormatString().

被这些函数引用 writeFunctionProto(), writeProcedureProto(), writeRecordUnit(), writeRecUnitDocu(), writeUCFLink(), writeVHDLDeclaration() , 以及 writeVHDLTypeDocumentation().

◆ getClass()

ClassDef * VhdlDocGen::getClass ( const QCString name)
static

在文件 vhdldocgen.cpp583 行定义.

584 {
585  if (name.isEmpty()) return 0;
586  return Doxygen::classLinkedMap->find(QCString(name).stripWhiteSpace());
587 }

引用了 Doxygen::classLinkedMap, LinkedMap< T, Hash, KeyEqual, Map >::find() , 以及 QCString::isEmpty().

被这些函数引用 findFunction(), findMember(), getPackageName(), writeInlineClassLink() , 以及 writeVHDLDeclaration().

◆ getClassName()

QCString VhdlDocGen::getClassName ( const ClassDef cd)
static

在文件 vhdldocgen.cpp810 行定义.

811 {
812  QCString temp;
813  if (cd==0) return "";
814 
816  {
817  temp=cd->name();
818  temp.stripPrefix("_");
819  return temp;
820  }
821 
822  return substitute(cd->className(),"::",".");
823 }

引用了 ClassDef::className(), Definition::name(), PACKBODYCLASS, ClassDef::protection(), QCString::stripPrefix() , 以及 substitute().

被这些函数引用 getClassTitle(), makeDisplayName() , 以及 writeClassType().

◆ getClassTitle()

QCString VhdlDocGen::getClassTitle ( const ClassDef cd)
static

returns the class title+ref

在文件 vhdldocgen.cpp797 行定义.

798 {
799  QCString pageTitle;
800  if (cd==0) return "";
801  pageTitle=VhdlDocGen::getClassName(cd);
802  int ii=cd->protection();
803  pageTitle+=" ";
804  pageTitle+=theTranslator_vhdlType(ii+2,TRUE);
805  return pageTitle;
806 } // getClassTitle

引用了 getClassName(), ClassDef::protection(), theTranslator_vhdlType , 以及 TRUE.

被这些函数引用 ClassDefImpl::title().

◆ getFlowMember()

◆ getIndexWord()

QCString VhdlDocGen::getIndexWord ( const QCString c,
int  index 
)
static

在文件 vhdldocgen.cpp1041 行定义.

1042 {
1043  static const reg::Ex reg(R"([\s|])");
1044  auto ql=split(c.str(),reg);
1045 
1046  if ((size_t)index < ql.size())
1047  {
1048  return QCString(ql[index]);
1049  }
1050 
1051  return "";
1052 }

引用了 split() , 以及 QCString::str().

被这些函数引用 computeVhdlComponentRelations() , 以及 parseFuncProto().

◆ getPackageName()

ClassDef * VhdlDocGen::getPackageName ( const QCString name)
static

在文件 vhdldocgen.cpp589 行定义.

590 {
591  return getClass(name);
592 }

引用了 getClass().

被这些函数引用 findAllPackages().

◆ getProcessNumber()

QCString VhdlDocGen::getProcessNumber ( )
static

returns the next number of an anonymous process

在文件 vhdldocgen.cpp1115 行定义.

1116 {
1117  static int stringCounter;
1118  char buf[8];
1119  QCString qcs("PROCESS_");
1120  sprintf(buf,"%d",stringCounter++);
1121  qcs.append(&buf[0]);
1122  return qcs;
1123 }

引用了 QCString::append().

◆ getProtectionName()

QCString VhdlDocGen::getProtectionName ( int  prot)
static

在文件 vhdldocgen.cpp1055 行定义.

1056 {
1057  if (prot==VhdlDocGen::ENTITYCLASS)
1058  return "entity";
1059  else if (prot==VhdlDocGen::ARCHITECTURECLASS)
1060  return "architecture";
1061  else if (prot==VhdlDocGen::PACKAGECLASS)
1062  return "package";
1063  else if (prot==VhdlDocGen::PACKBODYCLASS)
1064  return "package body";
1065 
1066  return "";
1067 }

引用了 ARCHITECTURECLASS, ENTITYCLASS, PACKAGECLASS , 以及 PACKBODYCLASS.

被这些函数引用 writeAnnotatedClassList() , 以及 ClassDefImpl::writeDeclarationLink().

◆ getRecordNumber()

QCString VhdlDocGen::getRecordNumber ( )
static

returns the next number of a record|unit member

在文件 vhdldocgen.cpp1103 行定义.

1104 {
1105  char buf[12];
1106  sprintf(buf,"%d",recordCounter++);
1107  QCString qcs(&buf[0]);
1108  return qcs;
1109 }

引用了 recordCounter.

被这些函数引用 VHDLOutlineParser::checkInlineCode(), initUCF() , 以及 writeVhdlEntityToolTip().

◆ init()

void VhdlDocGen::init ( )
static

在文件 vhdldocgen.cpp555 行定义.

556 {
557 }

◆ isAlias()

bool VhdlDocGen::isAlias ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2785 行定义.

2786 { return mdef->getMemberSpecifiers()==VhdlDocGen::ALIAS; }

引用了 ALIAS , 以及 MemberDef::getMemberSpecifiers().

被这些函数引用 writeTagFile().

◆ isArchitecture()

bool VhdlDocGen::isArchitecture ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2819 行定义.

2820 { return mdef->getMemberSpecifiers()==VhdlDocGen::ARCHITECTURE; }

引用了 ARCHITECTURE , 以及 MemberDef::getMemberSpecifiers().

◆ isAttribute()

bool VhdlDocGen::isAttribute ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2811 行定义.

2812 { return mdef->getMemberSpecifiers()==VhdlDocGen::ATTRIBUTE; }

引用了 ATTRIBUTE , 以及 MemberDef::getMemberSpecifiers().

被这些函数引用 writeTagFile().

◆ isCompInst()

bool VhdlDocGen::isCompInst ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2831 行定义.

引用了 MemberDef::getMemberSpecifiers() , 以及 INSTANTIATION.

被这些函数引用 writeTagFile() , 以及 writeVHDLDeclaration().

◆ isComponent()

bool VhdlDocGen::isComponent ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2793 行定义.

2794 { return mdef->getMemberSpecifiers()==VhdlDocGen::COMPONENT; }

引用了 COMPONENT , 以及 MemberDef::getMemberSpecifiers().

被这些函数引用 writeTagFile() , 以及 writeVHDLDeclaration().

◆ isConfig()

bool VhdlDocGen::isConfig ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2783 行定义.

2784 { return mdef->getMemberSpecifiers()==VhdlDocGen::CONFIG; }

引用了 CONFIG , 以及 MemberDef::getMemberSpecifiers().

被这些函数引用 writeVHDLDeclaration().

◆ isConstant()

bool VhdlDocGen::isConstant ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2799 行定义.

2800 { return mdef->getMemberSpecifiers()==VhdlDocGen::CONSTANT; }

引用了 CONSTANT , 以及 MemberDef::getMemberSpecifiers().

被这些函数引用 writeTagFile().

◆ isConstraint()

bool VhdlDocGen::isConstraint ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2781 行定义.

2782 { return mdef->getMemberSpecifiers()==VhdlDocGen::UCF_CONST; }

引用了 MemberDef::getMemberSpecifiers() , 以及 UCF_CONST.

被这些函数引用 writeVHDLTypeDocumentation().

◆ isEntity()

bool VhdlDocGen::isEntity ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2797 行定义.

2798 { return mdef->getMemberSpecifiers()==VhdlDocGen::ENTITY; }

引用了 ENTITY , 以及 MemberDef::getMemberSpecifiers().

被这些函数引用 writeTagFile().

◆ isFile()

bool VhdlDocGen::isFile ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2827 行定义.

2828 { return mdef->getMemberSpecifiers()==VhdlDocGen::VFILE; }

引用了 MemberDef::getMemberSpecifiers() , 以及 VFILE.

被这些函数引用 writeTagFile().

◆ isGeneric()

bool VhdlDocGen::isGeneric ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2789 行定义.

2790 { return mdef->getMemberSpecifiers()==VhdlDocGen::GENERIC; }

引用了 GENERIC , 以及 MemberDef::getMemberSpecifiers().

被这些函数引用 writeTagFile() , 以及 writeVHDLTypeDocumentation().

◆ isGroup()

bool VhdlDocGen::isGroup ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2829 行定义.

2830 { return mdef->getMemberSpecifiers()==VhdlDocGen::GROUP; }

引用了 MemberDef::getMemberSpecifiers() , 以及 GROUP.

被这些函数引用 writeTagFile().

◆ isLibrary()

bool VhdlDocGen::isLibrary ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2787 行定义.

2788 { return mdef->getMemberSpecifiers()==VhdlDocGen::LIBRARY; }

引用了 MemberDef::getMemberSpecifiers() , 以及 LIBRARY.

被这些函数引用 writeTagFile() , 以及 writeVHDLTypeDocumentation().

◆ isMisc()

bool VhdlDocGen::isMisc ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2833 行定义.

引用了 MemberDef::getMemberSpecifiers() , 以及 MISCELLANEOUS.

被这些函数引用 MemberDefImpl::writeDocumentation().

◆ isNumber()

bool VhdlDocGen::isNumber ( const std::string &  s)
static

returns TRUE if this string is a number

在文件 vhdldocgen.cpp1198 行定义.

1199 {
1200  static const reg::Ex regg(R"([0-9][0-9eEfFbBcCdDaA_.#+?xXzZ-]*)");
1201  return reg::match(s,regg);
1202 }// isNumber

引用了 reg::match().

被这些函数引用 writeFormatString().

◆ isPackage()

bool VhdlDocGen::isPackage ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2795 行定义.

2796 { return mdef->getMemberSpecifiers()==VhdlDocGen::USE; }

引用了 MemberDef::getMemberSpecifiers() , 以及 USE.

被这些函数引用 findAllPackages(), writeTagFile() , 以及 writeVHDLTypeDocumentation().

◆ isPackageBody()

bool VhdlDocGen::isPackageBody ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2823 行定义.

2824 { return mdef->getMemberSpecifiers()==VhdlDocGen::PACKAGE_BODY; }

引用了 MemberDef::getMemberSpecifiers() , 以及 PACKAGE_BODY.

◆ isPort()

bool VhdlDocGen::isPort ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2791 行定义.

2792 { return mdef->getMemberSpecifiers()==VhdlDocGen::PORT; }

引用了 MemberDef::getMemberSpecifiers() , 以及 PORT.

被这些函数引用 writeTagFile() , 以及 writeVHDLTypeDocumentation().

◆ isProcedure()

bool VhdlDocGen::isProcedure ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2815 行定义.

2816 { return mdef->getMemberSpecifiers()==VhdlDocGen::PROCEDURE; }

引用了 MemberDef::getMemberSpecifiers() , 以及 PROCEDURE.

被这些函数引用 findFunction(), writeFuncProcDocu(), writeTagFile() , 以及 writeVHDLTypeDocumentation().

◆ isProcess()

bool VhdlDocGen::isProcess ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2807 行定义.

2808 { return mdef->getMemberSpecifiers()==VhdlDocGen::PROCESS; }

引用了 MemberDef::getMemberSpecifiers() , 以及 PROCESS.

被这些函数引用 writeFuncProcDocu(), writeTagFile() , 以及 writeVHDLTypeDocumentation().

◆ isRecord()

bool VhdlDocGen::isRecord ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2817 行定义.

2818 { return mdef->getMemberSpecifiers()==VhdlDocGen::RECORD; }

引用了 MemberDef::getMemberSpecifiers() , 以及 RECORD.

被这些函数引用 writeTagFile().

◆ isSignal()

bool VhdlDocGen::isSignal ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2809 行定义.

2810 { return mdef->getMemberSpecifiers()==VhdlDocGen::SIGNAL; }

引用了 MemberDef::getMemberSpecifiers() , 以及 SIGNAL.

◆ isSignals()

bool VhdlDocGen::isSignals ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2813 行定义.

2814 { return mdef->getMemberSpecifiers()==VhdlDocGen::SIGNAL; }

引用了 MemberDef::getMemberSpecifiers() , 以及 SIGNAL.

被这些函数引用 writeTagFile().

◆ isSubClass()

bool VhdlDocGen::isSubClass ( ClassDef cd,
ClassDef scd,
bool  followInstances,
int  level 
)
static

在文件 vhdldocgen.cpp2665 行定义.

2666 {
2667  bool found=FALSE;
2668  //printf("isBaseClass(cd=%s) looking for %s\n",qPrint(name()),qPrint(bcd->name()));
2669  if (level>255)
2670  {
2671  err("Possible recursive class relation while inside %s and looking for %s\n",qPrint(cd->name()),qPrint(scd->name()));
2672  abort();
2673  return FALSE;
2674  }
2675 
2676  for (const auto &bcd :cd->subClasses())
2677  {
2678  const ClassDef *ccd=bcd.classDef;
2679  if (!followInstances && ccd->templateMaster()) ccd=ccd->templateMaster();
2680  //printf("isSubClass() subclass %s\n",qPrint(ccd->name()));
2681  if (ccd==scd)
2682  {
2683  found=TRUE;
2684  }
2685  else
2686  {
2687  if (level <256)
2688  {
2689  found=ccd->isBaseClass(scd,followInstances,level+1);
2690  }
2691  }
2692  }
2693  return found;
2694 }

引用了 err(), FALSE, ClassDef::isBaseClass(), Definition::name(), qPrint(), ClassDef::subClasses(), ClassDef::templateMaster() , 以及 TRUE.

被这些函数引用 addInstance().

◆ isSubType()

bool VhdlDocGen::isSubType ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2803 行定义.

2804 { return mdef->getMemberSpecifiers()==VhdlDocGen::SUBTYPE; }

引用了 MemberDef::getMemberSpecifiers() , 以及 SUBTYPE.

被这些函数引用 writeTagFile().

◆ isUnit()

bool VhdlDocGen::isUnit ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2821 行定义.

2822 { return mdef->getMemberSpecifiers()==VhdlDocGen::UNITS; }

引用了 MemberDef::getMemberSpecifiers() , 以及 UNITS.

◆ isVariable()

bool VhdlDocGen::isVariable ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2825 行定义.

引用了 MemberDef::getMemberSpecifiers() , 以及 SHAREDVARIABLE.

被这些函数引用 writeTagFile().

◆ isVhdlClass()

static bool VhdlDocGen::isVhdlClass ( const Entry cu)
inlinestatic

在文件 vhdldocgen.h236 行定义.

237  {
238  return cu->spec==VhdlDocGen::ENTITY ||
239  cu->spec==VhdlDocGen::PACKAGE ||
242  }

引用了 ARCHITECTURE, ENTITY, PACKAGE, PACKAGE_BODY , 以及 Entry::spec.

被这些函数引用 VHDLOutlineParser::mapLibPackage().

◆ isVhdlFunction()

bool VhdlDocGen::isVhdlFunction ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2805 行定义.

2806 { return mdef->getMemberSpecifiers()==VhdlDocGen::FUNCTION; }

引用了 FUNCTION , 以及 MemberDef::getMemberSpecifiers().

被这些函数引用 findFunction(), writeFuncProcDocu(), writeTagFile() , 以及 writeVHDLTypeDocumentation().

◆ isVType()

bool VhdlDocGen::isVType ( const MemberDef mdef)
static

在文件 vhdldocgen.cpp2801 行定义.

2802 { return mdef->getMemberSpecifiers()==VhdlDocGen::TYPE; }

引用了 MemberDef::getMemberSpecifiers() , 以及 TYPE.

被这些函数引用 writeTagFile().

◆ parseForBinding()

QCString VhdlDocGen::parseForBinding ( QCString entity,
QCString arch 
)
static

在文件 vhdldocgen.cpp2441 行定义.

2442 {
2443  static const reg::Ex exp(R"([()\s])");
2444 
2445  auto ql = split(entity.str(),exp);
2446 
2447  if (findIndex(ql,"open")!=-1)
2448  {
2449  return "open";
2450  }
2451 
2452  if (ql.size()<2)
2453  {
2454  return "";
2455  }
2456 
2457  std::string label=ql[0];
2458  entity = ql[1];
2459  int index;
2460  if ((index=entity.findRev("."))>=0)
2461  {
2462  entity.remove(0,index+1);
2463  }
2464 
2465  if (ql.size()==3)
2466  {
2467  arch=ql[2];
2468  }
2469  return QCString(label);
2470 }

引用了 findIndex(), QCString::findRev(), QCString::remove(), split() , 以及 QCString::str().

被这些函数引用 computeVhdlComponentRelations().

◆ parseForConfig()

QCString VhdlDocGen::parseForConfig ( QCString entity,
QCString arch 
)
static

在文件 vhdldocgen.cpp2408 行定义.

2409 {
2410  QCString label;
2411  if (!entity.contains(":")) return "";
2412 
2413  static const reg::Ex exp(R"([:()\s])");
2414  auto ql=split(entity.str(),exp);
2415  if (ql.size()<2)
2416  {
2417  return "";
2418  }
2419  label = ql[0];
2420  entity = ql[1];
2421  int index;
2422  if ((index=entity.findRev("."))>=0)
2423  {
2424  entity.remove(0,index+1);
2425  }
2426 
2427  if (ql.size()==3)
2428  {
2429  arch = ql[2];
2430  ql=split(arch.str(),exp);
2431  if (ql.size()>1) // expression
2432  {
2433  arch="";
2434  }
2435  }
2436  return label; // label
2437 }

引用了 QCString::contains(), QCString::findRev(), QCString::remove(), split() , 以及 QCString::str().

◆ parseFuncProto()

void VhdlDocGen::parseFuncProto ( const QCString text,
QCString name,
QCString ret,
bool  doc = false 
)
static

parses a function proto

参数
textfunction string
namepoints to the function name
retStores the return type
doc???

在文件 vhdldocgen.cpp990 行定义.

991 {
992  int index,end;
993  QCString s1(text);
994  QCString temp;
995 
996  index=s1.find("(");
997  if (index<0) index=0;
998  end=s1.findRev(")");
999 
1000  if ((end-index)>0)
1001  {
1002  temp=s1.mid(index+1,(end-index-1));
1003  //getFuncParams(qlist,temp);
1004  }
1005  if (doc)
1006  {
1007  name=s1.left(index);
1008  name=name.stripWhiteSpace();
1009  if ((end-index)>0)
1010  {
1011  ret="function";
1012  }
1013  return;
1014  }
1015  else
1016  {
1017  s1=s1.stripWhiteSpace();
1018  int i=s1.find('(');
1019  int s=s1.find(' ');
1020  if (s==-1) s=s1.find('\t');
1021  if (i==-1 || i<s)
1022  s1=VhdlDocGen::getIndexWord(s1,1);
1023  else // s<i, s=start of name, i=end of name
1024  s1=s1.mid(s,(i-s));
1025 
1026  name=s1.stripWhiteSpace();
1027  }
1028  index=s1.findRev("return",-1,FALSE);
1029  if (index !=-1)
1030  {
1031  ret=s1.mid(index+6,s1.length());
1032  ret=ret.stripWhiteSpace();
1033  VhdlDocGen::deleteCharRev(ret,';');
1034  }
1035 }

引用了 deleteCharRev(), end(), FALSE, QCString::find(), QCString::findRev(), getIndexWord(), QCString::left(), QCString::length(), QCString::mid() , 以及 QCString::stripWhiteSpace().

◆ parseUCF()

void VhdlDocGen::parseUCF ( const char *  input,
Entry entity,
const QCString f,
bool  vendor 
)
static

在文件 vhdldocgen.cpp2266 行定义.

2267 {
2268  QCString ucFile(input);
2269  int lineNo=0;
2270  QCString comment("#!");
2271  QCString brief;
2272 
2273  while (!ucFile.isEmpty())
2274  {
2275  int i=ucFile.find("\n");
2276  if (i<0) break;
2277  lineNo++;
2278  QCString temp=ucFile.left(i);
2279  temp=temp.stripWhiteSpace();
2280  bool bb=temp.stripPrefix("//");
2281 
2282  if (!temp.isEmpty())
2283  {
2284  if (temp.stripPrefix(comment) )
2285  {
2286  brief+=temp;
2287  brief.append("\\n");
2288  }
2289  else if (!temp.stripPrefix("#") && !bb)
2290  {
2291  if (altera)
2292  {
2293  int in=temp.find("-name");
2294  if (in>0)
2295  {
2296  temp=temp.remove(0,in+5);
2297  }
2298 
2299  temp.stripPrefix("set_location_assignment");
2300 
2301  initUCF(entity,QCString(),temp,lineNo,fileName,brief);
2302  }
2303  else
2304  {
2305  static const reg::Ex ee(R"([\s=])");
2306  int in=findIndex(temp.str(),ee);
2307  if (in<0) in=0;
2308  QCString ff=temp.left(in);
2309  temp.stripPrefix(ff);
2310  ff.append("#");
2311  if (!temp.isEmpty())
2312  {
2313  initUCF(entity,ff,temp,lineNo,fileName,brief);
2314  }
2315  }
2316  }
2317  }//temp
2318 
2319  ucFile=ucFile.remove(0,i+1);
2320  }// while
2321 }

引用了 QCString::append(), comment, QCString::find(), findIndex(), initUCF(), QCString::isEmpty(), QCString::left(), QCString::remove(), QCString::str(), QCString::stripPrefix() , 以及 QCString::stripWhiteSpace().

被这些函数引用 VHDLOutlineParser::parseInput().

◆ prepareComment()

void VhdlDocGen::prepareComment ( QCString qcs)
static

strips the "--" prefixes of vhdl comments

在文件 vhdldocgen.cpp968 行定义.

969 {
970  const char* s="--!";
971  int index=0;
972 
973  while (TRUE)
974  {
975  index=qcs.find(s,0,TRUE);
976  if (index<0) break;
977  qcs=qcs.remove(index,qstrlen(s));
978  }
979  qcs=qcs.stripWhiteSpace();
980 }

引用了 QCString::find(), qstrlen(), QCString::remove(), QCString::stripWhiteSpace() , 以及 TRUE.

被这些函数引用 VHDLOutlineParser::checkInlineCode(), VHDLOutlineParser::checkMultiComment() , 以及 VHDLOutlineParser::handleCommentBlock().

◆ resetCodeVhdlParserState()

void VhdlDocGen::resetCodeVhdlParserState ( )
static

在文件 vhdldocgen.cpp2774 行定义.

2775 {
2776  g_varMap.clear();
2777  g_classList.clear();
2778  g_packages.clear();
2779 }

引用了 g_classList, g_packages , 以及 g_varMap.

◆ setFlowMember()

void VhdlDocGen::setFlowMember ( const MemberDef flowMember)
static

在文件 vhdldocgen.cpp87 行定义.

88 {
89  flowMember=mem;
90 }

引用了 flowMember.

被这些函数引用 createFlowChart().

◆ writeClassType()

bool VhdlDocGen::writeClassType ( const ClassDef cd,
OutputList ol,
QCString cname 
)
static

在文件 vhdldocgen.cpp2150 行定义.

2152 {
2153  int id=cd->protection();
2154  QCString qcs = theTranslator->trVhdlType(id+2,TRUE);
2155  cname=VhdlDocGen::getClassName(cd);
2156  ol.startBold();
2157  ol.writeString(qcs);
2158  ol.writeString(" ");
2159  ol.endBold();
2160  //ol.insertMemberAlign();
2161  return FALSE;
2162 }// writeClassLink

引用了 OutputList::endBold(), FALSE, getClassName(), ClassDef::protection(), OutputList::startBold(), theTranslator, TRUE, Translator::trVhdlType() , 以及 OutputList::writeString().

◆ writeFormatString()

void VhdlDocGen::writeFormatString ( const QCString s,
OutputList ol,
const MemberDef mdef 
)
static

writes a colored and formatted string

在文件 vhdldocgen.cpp1129 行定义.

1130 {
1131  static const reg::Ex reg(R"([\[\]./<>:\s,;'+*|&=()\"-])");
1132  QCString qcs = s;
1133  qcs+=QCString(" ");// parsing the last sign
1134  QCString find=qcs;
1135  QCString temp=qcs;
1136  char buf[2];
1137  buf[1]='\0';
1138 
1139  int j = findIndex(temp.str(),reg);
1140 
1141  ol.startBold();
1142  if (j>=0)
1143  {
1144  while (j>=0)
1145  {
1146  find=find.left(j);
1147  buf[0]=temp[j];
1148  const char *ss=VhdlDocGen::findKeyWord(find);
1149  bool k=isNumber(find.str()); // is this a number
1150  if (k)
1151  {
1152  ol.docify(" ");
1153  startFonts(find,"vhdldigit",ol);
1154  ol.docify(" ");
1155  }
1156  else if (j != 0 && ss)
1157  {
1158  startFonts(find,ss,ol);
1159  }
1160  else
1161  {
1162  if (j>0)
1163  {
1164  VhdlDocGen::writeStringLink(mdef,find,ol);
1165  }
1166  }
1167  startFonts(&buf[0],"vhdlchar",ol);
1168 
1169  QCString st=temp.remove(0,j+1);
1170  find=st;
1171  if (!find.isEmpty() && find.at(0)=='"')
1172  {
1173  int ii=find.find('"',2);
1174  if (ii>1)
1175  {
1176  QCString com=find.left(ii+1);
1177  startFonts(com,"keyword",ol);
1178  temp=find.remove(0,ii+1);
1179  }
1180  }
1181  else
1182  {
1183  temp=st;
1184  }
1185  j = findIndex(temp.str(),reg);
1186  }//while
1187  }//if
1188  else
1189  {
1190  startFonts(find,"vhdlchar",ol);
1191  }
1192  ol.endBold();
1193 }// writeFormatString

引用了 QCString::at(), OutputList::docify(), OutputList::endBold(), QCString::find(), findIndex(), findKeyWord(), QCString::isEmpty(), isNumber(), QCString::left(), QCString::remove(), OutputList::startBold(), startFonts(), QCString::str() , 以及 writeStringLink().

被这些函数引用 formatString(), writeFuncProcDocu() , 以及 writeProcessProto().

◆ writeFuncProcDocu()

bool VhdlDocGen::writeFuncProcDocu ( const MemberDef md,
OutputList ol,
const ArgumentList al,
bool  type = false 
)
static

writes a function|procedure documentation to the output

在文件 vhdldocgen.cpp1428 行定义.

1433 {
1434  //bool sem=FALSE;
1435  ol.enableAll();
1436 
1437  size_t index=al.size();
1438  if (index==0)
1439  {
1440  ol.docify(" ( ) ");
1441  return FALSE;
1442  }
1443  ol.endMemberDocName();
1445  //ol.startParameterName(FALSE);
1446  bool first=TRUE;
1447  for (const Argument &arg : al)
1448  {
1449  ol.startParameterType(first,"");
1450  // if (first) ol.writeChar('(');
1451  QCString attl=arg.defval;
1452  bool bGen=attl.stripPrefix("gen!");
1453  if (bGen)
1454  VhdlDocGen::writeFormatString(QCString("generic "),ol,md);
1455 
1456 
1457  if (VhdlDocGen::isProcedure(md))
1458  {
1459  startFonts(arg.defval,"keywordtype",ol);
1460  ol.docify(" ");
1461  }
1462  ol.endParameterType();
1463 
1465  VhdlDocGen::writeFormatString(arg.name,ol,md);
1466 
1467  if (VhdlDocGen::isProcedure(md))
1468  {
1469  startFonts(arg.attrib,"stringliteral",ol);
1470  }
1471  else if (VhdlDocGen::isVhdlFunction(md))
1472  {
1473  startFonts(QCString("in"),"stringliteral",ol);
1474  }
1475 
1476  ol.docify(" ");
1478  ol.startEmphasis();
1480  if (!VhdlDocGen::isProcess(md))
1481  {
1482  // startFonts(arg.type,"vhdlkeyword",ol);
1483  VhdlDocGen::writeFormatString(arg.type,ol,md);
1484  }
1486  ol.endEmphasis();
1488 
1489  if (--index)
1490  {
1491  ol.docify(" , ");
1492  }
1493  else
1494  {
1495  // ol.docify(" ) ");
1497  break;
1498  }
1500 
1501  //sem=TRUE;
1502  first=FALSE;
1503  }
1504  //ol.endParameterList();
1505  return TRUE;
1506 
1507 } // writeDocFunProc

引用了 OutputList::disable(), OutputList::docify(), OutputList::enable(), OutputList::enableAll(), OutputList::endEmphasis(), OutputList::endMemberDocName(), OutputList::endParameterName(), OutputList::endParameterType(), FALSE, isProcedure(), isProcess(), isVhdlFunction(), OutputGenerator::Man, ArgumentList::size(), OutputList::startEmphasis(), startFonts(), OutputList::startParameterList(), OutputList::startParameterName(), OutputList::startParameterType(), QCString::stripPrefix(), TRUE , 以及 writeFormatString().

被这些函数引用 writeVHDLTypeDocumentation().

◆ writeFunctionProto()

void VhdlDocGen::writeFunctionProto ( OutputList ol,
const ArgumentList al,
const MemberDef mdef 
)
static

writes a function prototype to the output

在文件 vhdldocgen.cpp1324 行定义.

1325 {
1326  if (!al.hasParameters()) return;
1327  bool sem=FALSE;
1328  size_t len=al.size();
1329  ol.startBold();
1330  ol.docify(" ( ");
1331  ol.endBold();
1332  if (len>2)
1333  {
1334  ol.lineBreak();
1335  }
1336  for (const Argument &arg : al)
1337  {
1338  ol.startBold();
1339  QCString att=arg.defval;
1340  bool bGen=att.stripPrefix("gen!");
1341 
1342  if (sem && len < 3)
1343  {
1344  ol.docify(" , ");
1345  }
1346 
1347  if (bGen)
1348  {
1349  VhdlDocGen::formatString(QCString("generic "),ol,mdef);
1350  }
1351  if (!att.isEmpty())
1352  {
1353  const char *str=VhdlDocGen::findKeyWord(att);
1354  att+=" ";
1355  if (str)
1356  VhdlDocGen::formatString(att,ol,mdef);
1357  else
1358  startFonts(att,"vhdlchar",ol);
1359  }
1360 
1361  QCString nn=arg.name;
1362  nn+=": ";
1363  QCString ss=arg.type.stripWhiteSpace(); //.lower();
1364  QCString w=ss.stripWhiteSpace();//.upper();
1365  startFonts(nn,"vhdlchar",ol);
1366  startFonts("in ","stringliteral",ol);
1367  const char *str=VhdlDocGen::findKeyWord(ss);
1368  if (str)
1369  VhdlDocGen::formatString(w,ol,mdef);
1370  else
1371  startFonts(w,"vhdlchar",ol);
1372 
1373  if (!arg.attrib.isEmpty())
1374  startFonts(arg.attrib,"vhdlchar",ol);
1375 
1376  sem=TRUE;
1377  ol.endBold();
1378  if (len > 2)
1379  {
1380  ol.lineBreak();
1381  }
1382  }
1383  ol.startBold();
1384  ol.docify(" )");
1385  QCString exp=mdef->excpString();
1386  if (!exp.isEmpty())
1387  {
1388  ol.insertMemberAlign();
1389  ol.startBold();
1390  ol.docify("[ ");
1391  ol.docify(exp);
1392  ol.docify(" ]");
1393  ol.endBold();
1394  }
1395  ol.endBold();
1396 }

引用了 OutputList::docify(), OutputList::endBold(), MemberDef::excpString(), FALSE, findKeyWord(), formatString(), ArgumentList::hasParameters(), OutputList::insertMemberAlign(), QCString::isEmpty(), OutputList::lineBreak(), ArgumentList::size(), OutputList::startBold(), startFonts(), QCString::stripPrefix(), QCString::stripWhiteSpace() , 以及 TRUE.

被这些函数引用 writeVHDLDeclaration().

◆ writeInlineClassLink()

void VhdlDocGen::writeInlineClassLink ( const ClassDef cd,
OutputList ol 
)
static

writes an inline link form entity|package to architecture|package body and vice verca

在文件 vhdldocgen.cpp829 行定义.

830 {
831  std::vector<QCString> ql;
832  QCString nn=cd->className();
833  int ii=(int)cd->protection()+2;
834 
835  QCString type;
836  if (ii==VhdlDocGen::ENTITY)
838  else if (ii==VhdlDocGen::ARCHITECTURE)
840  else if (ii==VhdlDocGen::PACKAGE_BODY)
842  else if (ii==VhdlDocGen::PACKAGE)
844  else
845  type+="";
846 
847  //type=type.lower();
848  type+=" >> ";
851 
852  if (ii==VhdlDocGen::PACKAGE_BODY)
853  {
854  nn.stripPrefix("_");
855  cd=getClass(nn);
856  }
857  else if (ii==VhdlDocGen::PACKAGE)
858  {
859  nn.prepend("_");
860  cd=getClass(nn);
861  }
862  else if (ii==VhdlDocGen::ARCHITECTURE)
863  {
864  StringVector qlist=split(nn.str(),"-");
865  if (qlist.size()>1)
866  {
867  nn=qlist[1];
868  cd=VhdlDocGen::getClass(nn);
869  }
870  }
871 
872  QCString opp;
873  if (ii==VhdlDocGen::ENTITY)
874  {
876  for (const auto &s : ql)
877  {
878  StringVector qlist=split(s.str(),"-");
879  if (qlist.size()>2)
880  {
881  QCString s1(qlist[0]);
882  QCString s2(qlist[1]);
883  s1.stripPrefix("_");
884  if (ql.size()==1) s1.resize(0);
885  ClassDef *cc = getClass(s);
886  if (cc)
887  {
888  VhdlDocGen::writeVhdlLink(cc,ol,type,s2,s1);
889  }
890  }
891  }
892  }
893  else
894  {
895  VhdlDocGen::writeVhdlLink(cd,ol,type,nn,opp);
896  }
897 
900 
901 }// write

引用了 ARCHITECTURE, ClassDef::className(), OutputList::disable(), OutputList::enable(), ENTITY, findAllArchitectures(), getClass(), OutputGenerator::Man, PACKAGE, PACKAGE_BODY, QCString::prepend(), ClassDef::protection(), QCString::resize(), OutputGenerator::RTF, split(), QCString::str(), QCString::stripPrefix(), theTranslator_vhdlType, TRUE , 以及 writeVhdlLink().

被这些函数引用 ClassDefImpl::writeMemberDeclarations().

◆ writeOverview() [1/2]

void VhdlDocGen::writeOverview ( )
static

在文件 vhdldocgen.cpp176 行定义.

177 {
178  bool found=FALSE;
179  for (const auto &cd : *Doxygen::classLinkedMap)
180  {
181  if ((VhdlDocGen::VhdlClasses)cd->protection()==VhdlDocGen::ENTITYCLASS )
182  {
183  found=TRUE;
184  break;
185  }
186  }
187 
188  if (!found) return;
189 
190  QCString ov =Config_getString(HTML_OUTPUT);
191  QCString fileName=ov+"/vhdl_design.dot";
192  std::ofstream f(fileName.str(),std::ofstream::out | std::ofstream::binary);
193  if (!f.is_open())
194  {
195  err("Warning: Cannot open file %s for writing\n",qPrint(fileName));
196  return;
197  }
198  TextStream t(&f);
199 
200  startDot(t);
201 
202  for (const auto &cd : *Doxygen::classLinkedMap)
203  {
204  if ((VhdlDocGen::VhdlClasses)cd->protection()!=VhdlDocGen::ENTITYCLASS )
205  {
206  continue;
207  }
208 
209  std::vector<const MemberDef *> ports = getPorts(cd.get());
210  if (ports.empty())
211  {
212  continue;
213  }
214 
215  startTable(t,cd->name());
216  writeClassToDot(t,cd.get());
217  writeTable(ports,t);
218  endTable(t);
219 
220  writeVhdlEntityToolTip(t,cd.get());
221 
222  for (const auto &bcd : cd->baseClasses())
223  {
224  ClassDef *bClass=bcd.classDef;
225  QCString dotn=cd->name()+":";
226  dotn+=cd->name();
227  QCString csc=bClass->name()+":";
228  csc+=bClass->name();
229  // fprintf(stderr,"\n <%s| %s>",qPrint(dotn),qPrint(csc));
230  writeVhdlDotLink(t,dotn,csc,QCString());
231  }
232  }// for
233 
234  endDot(t);
235  // writePortLinks(t);
236  t.flush();
237  f.close();
238  createSVG();
239 }

引用了 Doxygen::classLinkedMap, Config_getString, createSVG(), endDot(), endTable(), ENTITYCLASS, err(), FALSE, TextStream::flush(), getPorts(), Definition::name(), qPrint(), startDot(), startTable(), QCString::str(), TRUE, writeClassToDot(), writeTable(), writeVhdlDotLink() , 以及 writeVhdlEntityToolTip().

◆ writeOverview() [2/2]

static void VhdlDocGen::writeOverview ( OutputList ol)
static

◆ writePlainVHDLDeclarations()

void VhdlDocGen::writePlainVHDLDeclarations ( const MemberList ml,
OutputList ol,
const ClassDef cd,
const NamespaceDef nd,
const FileDef fd,
const GroupDef gd,
uint64_t  specifier 
)
static

在文件 vhdldocgen.cpp2045 行定义.

2048 {
2049 
2050  StringSet pack;
2051 
2052  bool first=TRUE;
2053  for (const auto &imd : *mlist)
2054  {
2056  if (md)
2057  {
2058  uint64_t mems=md->getMemberSpecifiers();
2059  if (md->isBriefSectionVisible() && (mems==specifier) && (mems!=VhdlDocGen::LIBRARY) )
2060  {
2061  if (first) { ol.startMemberList();first=FALSE; }
2062  VhdlDocGen::writeVHDLDeclaration(md,ol,cd,nd,fd,gd,FALSE);
2063  } //if
2064  else if (md->isBriefSectionVisible() && (mems==specifier))
2065  {
2066  if (pack.find(md->name().str())==pack.end())
2067  {
2068  if (first) ol.startMemberList(),first=FALSE;
2069  VhdlDocGen::writeVHDLDeclaration(md,ol,cd,nd,fd,gd,FALSE);
2070  pack.insert(md->name().str());
2071  }
2072  } //if
2073  } //if
2074  } //for
2075  if (!first) ol.endMemberList();
2076 }//plainDeclaration

引用了 OutputList::endMemberList(), FALSE, MemberDef::getMemberSpecifiers(), MemberDef::isBriefSectionVisible(), LIBRARY, Definition::name(), OutputList::startMemberList(), QCString::str(), toMemberDefMutable(), TRUE , 以及 writeVHDLDeclaration().

被这些函数引用 writeVHDLDeclarations().

◆ writeProcedureProto()

void VhdlDocGen::writeProcedureProto ( OutputList ol,
const ArgumentList al,
const MemberDef mdef 
)
static

writes a procedure prototype to the output

在文件 vhdldocgen.cpp1269 行定义.

1270 {
1271  bool sem=FALSE;
1272  size_t len=al.size();
1273  ol.docify("( ");
1274  if (len > 2)
1275  {
1276  ol.lineBreak();
1277  }
1278  for (const Argument &arg : al)
1279  {
1280  ol.startBold();
1281  if (sem && len <3)
1282  ol.writeChar(',');
1283 
1284  QCString nn=arg.name;
1285  nn+=": ";
1286 
1287  QCString defval = arg.defval;
1288  const char *str=VhdlDocGen::findKeyWord(defval);
1289  defval+=" ";
1290  if (str)
1291  {
1292  startFonts(defval,str,ol);
1293  }
1294  else
1295  {
1296  startFonts(defval,"vhdlchar",ol); // write type (variable,constant etc.)
1297  }
1298 
1299  startFonts(nn,"vhdlchar",ol); // write name
1300  if (qstricmp(arg.attrib,arg.type) != 0)
1301  {
1302  startFonts(arg.attrib.lower(),"stringliteral",ol); // write in|out
1303  }
1304  ol.docify(" ");
1305  VhdlDocGen::formatString(arg.type,ol,mdef);
1306  sem=TRUE;
1307  ol.endBold();
1308  if (len > 2)
1309  {
1310  ol.lineBreak();
1311  ol.docify(" ");
1312  }
1313  }//for
1314 
1315  ol.docify(" )");
1316 
1317 
1318 }

引用了 OutputList::docify(), OutputList::endBold(), FALSE, findKeyWord(), formatString(), OutputList::lineBreak(), qstricmp(), ArgumentList::size(), OutputList::startBold(), startFonts(), TRUE , 以及 OutputList::writeChar().

被这些函数引用 writeVHDLDeclaration().

◆ writeProcessProto()

void VhdlDocGen::writeProcessProto ( OutputList ol,
const ArgumentList al,
const MemberDef mdef 
)
static

writes a process prototype to the output

在文件 vhdldocgen.cpp1402 行定义.

1403 {
1404  if (!al.hasParameters()) return;
1405  bool sem=FALSE;
1406  ol.startBold();
1407  ol.docify(" ( ");
1408  for (const Argument &arg : al)
1409  {
1410  if (sem)
1411  {
1412  ol.docify(" , ");
1413  }
1414  QCString nn=arg.name;
1415  // startFonts(nn,"vhdlchar",ol);
1416  VhdlDocGen::writeFormatString(nn,ol,mdef);
1417  sem=TRUE;
1418  }
1419  ol.docify(" )");
1420  ol.endBold();
1421 }

引用了 OutputList::docify(), OutputList::endBold(), FALSE, ArgumentList::hasParameters(), OutputList::startBold(), TRUE , 以及 writeFormatString().

被这些函数引用 writeVHDLDeclaration().

◆ writeRecordProto()

static void VhdlDocGen::writeRecordProto ( const MemberDef mdef,
OutputList ol,
const ArgumentList al 
)
static

◆ writeRecordUnit()

void VhdlDocGen::writeRecordUnit ( QCString largs,
QCString ltype,
OutputList ol,
const MemberDefMutable mdef 
)
staticprivate

在文件 vhdldocgen.cpp2612 行定义.

2613 {
2614  int i=mdef->name().find('~');
2615  if (i>0)
2616  {
2617  //sets the real record member name
2618  const_cast<MemberDefMutable*>(mdef)->setName(mdef->name().left(i));
2619  }
2620 
2621  writeLink(mdef,ol);
2622  ol.startBold();
2623  ol.insertMemberAlign();
2624  if (!ltype.isEmpty()){
2625  VhdlDocGen::formatString(ltype,ol,mdef);
2626  }
2627  ol.endBold();
2628 }

引用了 OutputList::endBold(), QCString::find(), formatString(), OutputList::insertMemberAlign(), QCString::isEmpty(), QCString::left(), Definition::name(), OutputList::startBold() , 以及 writeLink().

被这些函数引用 writeVHDLDeclaration().

◆ writeRecUnitDocu()

void VhdlDocGen::writeRecUnitDocu ( const MemberDef md,
OutputList ol,
QCString  largs 
)
staticprivate

在文件 vhdldocgen.cpp2631 行定义.

2635 {
2636 
2637  StringVector ql=split(largs.str(),"#");
2638  size_t len=ql.size();
2640  bool first=TRUE;
2641 
2642  for(size_t i=0;i<len;i++)
2643  {
2644  QCString n=QCString(ql[i]);
2645  ol.startParameterType(first,"");
2646  ol.endParameterType();
2648  VhdlDocGen::formatString(n,ol,md);
2649  if ((len-i)>1)
2650  {
2652  }
2653  else
2654  {
2656  }
2657 
2658  first=FALSE;
2659  }
2660 
2661 }//#

引用了 OutputList::endParameterName(), OutputList::endParameterType(), FALSE, formatString(), split(), OutputList::startParameterList(), OutputList::startParameterName(), OutputList::startParameterType(), QCString::str() , 以及 TRUE.

被这些函数引用 writeVHDLTypeDocumentation().

◆ writeSource()

void VhdlDocGen::writeSource ( const MemberDefMutable mdef,
OutputList ol,
const QCString cname 
)
static

在文件 vhdldocgen.cpp2191 行定义.

2192 {
2193  auto intf = Doxygen::parserManager->getCodeParser(".vhd");
2194  // pIntf->resetCodeParserState();
2195 
2196  QCString codeFragment=mdef->documentation();
2197 
2198  if (cname.isEmpty())
2199  {
2200  writeLink(mdef,ol);
2201  int fi=0;
2202  int j=0;
2203  do
2204  {
2205  fi=codeFragment.find("\n",++fi);
2206  } while(fi>=0 && j++ <3);
2207 
2208  // show only the first four lines
2209  if (j==4)
2210  {
2211  codeFragment=codeFragment.left(fi);
2212  codeFragment.append("\n .... ");
2213  }
2214  }
2215 
2216  codeFragment.prepend("\n");
2217  ol.pushGeneratorState();
2218  ol.startCodeFragment("DoxyCode");
2219  intf->parseCode( ol, // codeOutIntf
2220  QCString(), // scope
2221  codeFragment, // input
2222  SrcLangExt_VHDL, // lang
2223  FALSE, // isExample
2224  QCString(), // exampleName
2225  const_cast<FileDef*>(mdef->getFileDef()), // fileDef
2226  mdef->getStartBodyLine(), // startLine
2227  mdef->getEndBodyLine(), // endLine
2228  TRUE, // inlineFragment
2229  mdef, // memberDef
2230  TRUE // show line numbers
2231  );
2232 
2233  ol.endCodeFragment("DoxyCode");
2234  ol.popGeneratorState();
2235 
2236  if (cname.isEmpty()) return;
2237 
2238  mdef->writeSourceDef(ol,cname);
2239  if (mdef->hasReferencesRelation()) mdef->writeSourceRefs(ol,cname);
2240  if (mdef->hasReferencedByRelation()) mdef->writeSourceReffedBy(ol,cname);
2241 }

引用了 QCString::append(), MemberDef::documentation(), OutputList::endCodeFragment(), FALSE, QCString::find(), ParserManager::getCodeParser(), Definition::getEndBodyLine(), MemberDef::getFileDef(), Definition::getStartBodyLine(), MemberDef::hasReferencedByRelation(), MemberDef::hasReferencesRelation(), QCString::isEmpty(), QCString::left(), Doxygen::parserManager, OutputList::popGeneratorState(), QCString::prepend(), OutputList::pushGeneratorState(), SrcLangExt_VHDL, OutputList::startCodeFragment(), TRUE, writeLink(), DefinitionMutable::writeSourceDef(), DefinitionMutable::writeSourceReffedBy() , 以及 DefinitionMutable::writeSourceRefs().

被这些函数引用 MemberDefImpl::writeDocumentation() , 以及 writeVHDLDeclaration().

◆ writeStringLink()

void VhdlDocGen::writeStringLink ( const MemberDef mdef,
QCString  mem,
OutputList ol 
)
staticprivate

writes a link if the string is linkable else a formatted string

在文件 vhdldocgen.cpp2167 行定义.

2168 {
2169  if (mdef)
2170  {
2171  const ClassDef *cd=mdef->getClassDef();
2172  if (cd)
2173  {
2174  QCString n=cd->name();
2175  const MemberDef* memdef=VhdlDocGen::findMember(n,mem);
2176  if (memdef && memdef->isLinkable())
2177  {
2178  ol.startBold();
2179  writeLink(memdef,ol);
2180  ol.endBold();
2181  ol.docify(" ");
2182  return;
2183  }
2184  }
2185  }
2186  startFonts(mem,"vhdlchar",ol);
2187 }// found component

引用了 OutputList::docify(), OutputList::endBold(), findMember(), MemberDef::getClassDef(), MemberDef::isLinkable(), Definition::name(), OutputList::startBold(), startFonts() , 以及 writeLink().

被这些函数引用 writeFormatString().

◆ writeTagFile()

void VhdlDocGen::writeTagFile ( MemberDefMutable mdef,
TextStream tagFile 
)
static

在文件 vhdldocgen.cpp1702 行定义.

1703 {
1704  tagFile << " <member kind=\"";
1705  if (VhdlDocGen::isGeneric(mdef)) tagFile << "generic";
1706  if (VhdlDocGen::isPort(mdef)) tagFile << "port";
1707  if (VhdlDocGen::isEntity(mdef)) tagFile << "entity";
1708  if (VhdlDocGen::isComponent(mdef)) tagFile << "component";
1709  if (VhdlDocGen::isVType(mdef)) tagFile << "type";
1710  if (VhdlDocGen::isConstant(mdef)) tagFile << "constant";
1711  if (VhdlDocGen::isSubType(mdef)) tagFile << "subtype";
1712  if (VhdlDocGen::isVhdlFunction(mdef)) tagFile << "function";
1713  if (VhdlDocGen::isProcedure(mdef)) tagFile << "procedure";
1714  if (VhdlDocGen::isProcess(mdef)) tagFile << "process";
1715  if (VhdlDocGen::isSignals(mdef)) tagFile << "signal";
1716  if (VhdlDocGen::isAttribute(mdef)) tagFile << "attribute";
1717  if (VhdlDocGen::isRecord(mdef)) tagFile << "record";
1718  if (VhdlDocGen::isLibrary(mdef)) tagFile << "library";
1719  if (VhdlDocGen::isPackage(mdef)) tagFile << "package";
1720  if (VhdlDocGen::isVariable(mdef)) tagFile << "shared variable";
1721  if (VhdlDocGen::isFile(mdef)) tagFile << "file";
1722  if (VhdlDocGen::isGroup(mdef)) tagFile << "group";
1723  if (VhdlDocGen::isCompInst(mdef)) tagFile << "instantiation";
1724  if (VhdlDocGen::isAlias(mdef)) tagFile << "alias";
1725  if (VhdlDocGen::isCompInst(mdef)) tagFile << "configuration";
1726 
1727  tagFile << "\">\n";
1728  tagFile << " <type>" << convertToXML(mdef->typeString()) << "</type>\n";
1729  tagFile << " <name>" << convertToXML(mdef->name()) << "</name>\n";
1730  tagFile << " <anchorfile>" << convertToXML(addHtmlExtensionIfMissing(mdef->getOutputFileBase())) << "</anchorfile>\n";
1731  tagFile << " <anchor>" << convertToXML(mdef->anchor()) << "</anchor>\n";
1732 
1733  if (VhdlDocGen::isVhdlFunction(mdef))
1734  tagFile << " <arglist>" << convertToXML(VhdlDocGen::convertArgumentListToString(mdef->argumentList(),TRUE)) << "</arglist>\n";
1735  else if (VhdlDocGen::isProcedure(mdef))
1736  tagFile << " <arglist>" << convertToXML(VhdlDocGen::convertArgumentListToString(mdef->argumentList(),FALSE)) << "</arglist>\n";
1737  else
1738  tagFile << " <arglist>" << convertToXML(mdef->argsString()) << "</arglist>\n";
1739 
1740  mdef->writeDocAnchorsToTagFile(tagFile);
1741  tagFile << " </member>\n";
1742 }

引用了 addHtmlExtensionIfMissing(), MemberDef::anchor(), MemberDef::argsString(), MemberDef::argumentList(), convertArgumentListToString(), convertToXML(), FALSE, MemberDef::getOutputFileBase(), isAlias(), isAttribute(), isCompInst(), isComponent(), isConstant(), isEntity(), isFile(), isGeneric(), isGroup(), isLibrary(), isPackage(), isPort(), isProcedure(), isProcess(), isRecord(), isSignals(), isSubType(), isVariable(), isVhdlFunction(), isVType(), Definition::name(), TRUE, MemberDef::typeString() , 以及 DefinitionMutable::writeDocAnchorsToTagFile().

被这些函数引用 MemberList::writeTagFile().

◆ writeVHDLDeclaration()

void VhdlDocGen::writeVHDLDeclaration ( const MemberDefMutable mdef,
OutputList ol,
const ClassDef cd,
const NamespaceDef nd,
const FileDef fd,
const GroupDef gd,
bool  inGroup 
)
static

printf("startMemberItem for %s\n",qPrint(name()));

在文件 vhdldocgen.cpp1746 行定义.

1749 {
1750  const Definition *d=0;
1751 
1752  ASSERT(cd!=0 || nd!=0 || fd!=0 || gd!=0 ||
1755  ); // member should belong to something
1756  if (cd) d=cd;
1757  else if (nd) d=nd;
1758  else if (fd) d=fd;
1759  else if (gd) d=gd;
1760  else d=(Definition*)mdef;
1761 
1762  // write search index info
1764  {
1768  }
1769 
1770  QCString cname = d->name();
1771  QCString cfname = d->getOutputFileBase();
1772 
1773  //HtmlHelp *htmlHelp=0;
1774  // bool hasHtmlHelp = Config_getBool(GENERATE_HTML) && Config_getBool(GENERATE_HTMLHELP);
1775  // if (hasHtmlHelp) htmlHelp = HtmlHelp::getInstance();
1776 
1777  // search for the last anonymous scope in the member type
1778  ClassDef *annoClassDef=mdef->getClassDefOfAnonymousType();
1779 
1780  // start a new member declaration
1781  uint isAnonymous = (bool)(annoClassDef); // || m_impl->annMemb || m_impl->annEnumType;
1782  ///printf("startMemberItem for %s\n",qPrint(name()));
1783  uint64_t mm=mdef->getMemberSpecifiers();
1784  if (mm==VhdlDocGen::MISCELLANEOUS)
1785  isAnonymous=3;
1786 
1787  ol.startMemberItem( mdef->anchor(), isAnonymous ); //? 1 : m_impl->tArgList ? 3 : 0);
1788 
1789  // If there is no detailed description we need to write the anchor here.
1790  bool detailsVisible = mdef->hasDetailedDescription();
1791  if (!detailsVisible) // && !m_impl->annMemb)
1792  {
1793  QCString doxyName=mdef->name();
1794  if (!cname.isEmpty()) doxyName.prepend(cname+"::");
1795  QCString doxyArgs=mdef->argsString();
1796  ol.startDoxyAnchor(cfname,cname,mdef->anchor(),doxyName,doxyArgs);
1797 
1798  ol.pushGeneratorState();
1801  ol.docify("\n");
1802  ol.popGeneratorState();
1803 
1804  }
1805  // *** write type
1806  /*VHDL CHANGE */
1807 
1808  QCString ltype(mdef->typeString());
1809  QCString largs(mdef->argsString());
1810 
1811  ClassDef *kl=0;
1812  const ArgumentList &al = mdef->argumentList();
1813  QCString nn;
1814  //VhdlDocGen::adjustRecordMember(mdef);
1815  if (gd) gd=0;
1816  switch (mm)
1817  {
1819  VhdlDocGen::writeSource(mdef,ol,nn);
1820  break;
1821  case VhdlDocGen::PROCEDURE:
1822  case VhdlDocGen::FUNCTION:
1823  ol.startBold();
1824  VhdlDocGen::formatString(ltype,ol,mdef);
1825  ol.endBold();
1826  ol.insertMemberAlign();
1827  ol.docify(" ");
1828 
1829  writeLink(mdef,ol);
1830  if (al.hasParameters() && mm==VhdlDocGen::FUNCTION)
1831  VhdlDocGen::writeFunctionProto(ol,al,mdef);
1832 
1833  if (al.hasParameters() && mm==VhdlDocGen::PROCEDURE)
1834  VhdlDocGen::writeProcedureProto(ol,al,mdef);
1835 
1836  break;
1837  case VhdlDocGen::USE:
1838  kl=VhdlDocGen::getClass(mdef->name());
1839  if (kl && ((VhdlDocGen::VhdlClasses)kl->protection()==VhdlDocGen::ENTITYCLASS)) break;
1840  writeLink(mdef,ol);
1841  ol.insertMemberAlign();
1842  ol.docify(" ");
1843 
1844  if (kl)
1845  {
1846  nn=kl->getOutputFileBase();
1847  ol.pushGeneratorState();
1849  ol.docify(" ");
1851  ol.startBold();
1852  ol.docify(name);
1853  name.resize(0);
1854  ol.endBold();
1855  name+=" <"+mdef->name()+">";
1856  ol.startEmphasis();
1857  ol.writeObjectLink(kl->getReference(),kl->getOutputFileBase(),QCString(),name);
1858  ol.popGeneratorState();
1859  }
1860  break;
1861  case VhdlDocGen::LIBRARY:
1862  writeLink(mdef,ol);
1863  ol.insertMemberAlign();
1864  if (largs=="context")
1865  {
1866  VhdlDocGen::writeRecordUnit(ltype,largs,ol,mdef);
1867  }
1868 
1869  break;
1870 
1871  case VhdlDocGen::GENERIC:
1872  case VhdlDocGen::PORT:
1873  case VhdlDocGen::ALIAS:
1874 
1875  writeLink(mdef,ol);
1876  ol.docify(" ");
1877  if (mm==VhdlDocGen::GENERIC)
1878  {
1879  ol.insertMemberAlign();
1880  ol.startBold();
1881  VhdlDocGen::formatString(largs,ol,mdef);
1882  ol.endBold();
1883  }
1884  else
1885  {
1886  ol.insertMemberAlignLeft(isAnonymous, false);
1887  ol.docify(" ");
1888  ol.startBold();
1889  VhdlDocGen::formatString(ltype,ol,mdef);
1890  ol.endBold();
1891  ol.insertMemberAlign();
1892  ol.docify(" ");
1893  VhdlDocGen::formatString(largs,ol,mdef);
1894  }
1895  break;
1896  case VhdlDocGen::PROCESS:
1897  writeLink(mdef,ol);
1898  ol.insertMemberAlign();
1899  VhdlDocGen::writeProcessProto(ol,al,mdef);
1900  break;
1901  case VhdlDocGen::PACKAGE:
1902  case VhdlDocGen::ENTITY:
1903  case VhdlDocGen::COMPONENT:
1905  case VhdlDocGen::CONFIG:
1906  if (VhdlDocGen::isCompInst(mdef) )
1907  {
1908  nn=largs;
1909  if(nn.stripPrefix("function") || nn.stripPrefix("package"))
1910  {
1911  VhdlDocGen::formatString(largs,ol,mdef);
1912  ol.insertMemberAlign();
1913  writeLink(mdef,ol);
1914  ol.docify(" ");
1915  VhdlDocGen::formatString(ltype,ol,mdef);
1916  break;
1917  }
1918 
1919  largs.prepend("::");
1920  largs.prepend(mdef->name());
1921  ol.writeObjectLink(mdef->getReference(),
1922  cfname,
1923  mdef->anchor(),
1924  mdef->name());
1925  }
1926  else
1927  writeLink(mdef,ol);
1928 
1929  ol.insertMemberAlign();
1930  ol.docify(" ");
1931  ol.startBold();
1932  ol.docify(ltype);
1933  ol.endBold();
1934  ol.docify(" ");
1935  if (VhdlDocGen::isComponent(mdef) ||
1936  VhdlDocGen::isConfig(mdef) ||
1937  VhdlDocGen::isCompInst(mdef))
1938  {
1939  if (VhdlDocGen::isConfig(mdef) || VhdlDocGen::isCompInst(mdef))
1940  {
1941  nn=ltype;
1942  }
1943  else
1944  {
1945  nn=mdef->name();
1946  }
1947  kl=getClass(nn);
1948  if (kl)
1949  {
1950  nn=kl->getOutputFileBase();
1951  ol.pushGeneratorState();
1953  ol.startEmphasis();
1954  QCString name("<Entity ");
1955  if (VhdlDocGen::isConfig(mdef) || VhdlDocGen::isCompInst(mdef))
1956  {
1957  name+=ltype+">";
1958  }
1959  else
1960  {
1961  name+=mdef->name()+"> ";
1962  }
1963  ol.writeObjectLink(kl->getReference(),kl->getOutputFileBase(),QCString(),name);
1964  ol.endEmphasis();
1965  ol.popGeneratorState();
1966  }
1967  }
1968  break;
1969  case VhdlDocGen::UCF_CONST:
1970  writeUCFLink(mdef,ol);
1971  break;
1972  case VhdlDocGen::SIGNAL:
1973  case VhdlDocGen::ATTRIBUTE:
1974  case VhdlDocGen::SUBTYPE:
1975  case VhdlDocGen::CONSTANT:
1977  case VhdlDocGen::VFILE:
1978  case VhdlDocGen::GROUP:
1979  case VhdlDocGen::TYPE:
1980  writeLink(mdef,ol);
1981  ol.docify(" ");
1982  ol.insertMemberAlign();
1983  VhdlDocGen::formatString(ltype,ol,mdef);
1984  break;
1985  case VhdlDocGen::RECORD:
1986  case VhdlDocGen::UNITS:
1987  writeRecordUnit(largs,ltype,ol,mdef);
1988  break;
1989 
1990  default: break;
1991  }
1992 
1993  bool htmlOn = ol.isEnabled(OutputGenerator::Html);
1994  if (htmlOn && /*Config_getBool(HTML_ALIGN_MEMBERS) &&*/ !ltype.isEmpty())
1995  {
1997  }
1998  if (!ltype.isEmpty()) ol.docify(" ");
1999 
2000  if (htmlOn)
2001  {
2003  }
2004 
2005  if (!detailsVisible)// && !m_impl->annMemb)
2006  {
2007  ol.endDoxyAnchor(cfname,mdef->anchor());
2008  }
2009 
2010  ol.endMemberItem();
2011  if (!mdef->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC) /* && !annMemb */)
2012  {
2013  QCString s=mdef->briefDescription();
2015  ol.generateDoc(mdef->briefFile(),mdef->briefLine(),
2016  mdef->getOuterScope()?mdef->getOuterScope():d,
2017  mdef,s,TRUE,FALSE,
2018  QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
2019  if (detailsVisible)
2020  {
2021  ol.pushGeneratorState();
2023  //ol.endEmphasis();
2024  ol.docify(" ");
2025  if (mdef->getGroupDef()!=0 && gd==0) // forward link to the group
2026  {
2027  ol.startTextLink(mdef->getOutputFileBase(),mdef->anchor());
2028  }
2029  else // local link
2030  {
2031  ol.startTextLink(QCString(),mdef->anchor());
2032  }
2033  ol.endTextLink();
2034  //ol.startEmphasis();
2035  ol.popGeneratorState();
2036  }
2037  //ol.newParagraph();
2038  ol.endMemberDescription();
2039  }
2040  mdef->warnIfUndocumented();
2041 
2042 }// end writeVhdlDeclaration

引用了 SearchIndexIntf::addWord(), ALIAS, MemberDef::anchor(), MemberDef::argsString(), MemberDef::argumentList(), ASSERT, ATTRIBUTE, MemberDef::briefDescription(), Definition::briefFile(), Definition::briefLine(), COMPONENT, CONFIG, Config_getBool, CONSTANT, OutputList::disable(), OutputList::disableAllBut(), OutputList::docify(), OutputList::enable(), OutputList::endBold(), OutputList::endDoxyAnchor(), OutputList::endEmphasis(), OutputList::endMemberDescription(), OutputList::endMemberItem(), OutputList::endTextLink(), ENTITY, ENTITYCLASS, FALSE, formatString(), FUNCTION, OutputList::generateDoc(), GENERIC, getClass(), MemberDef::getClassDefOfAnonymousType(), MemberDef::getGroupDef(), MemberDef::getMemberSpecifiers(), Definition::getOuterScope(), MemberDef::getOutputFileBase(), ClassDef::getOutputFileBase(), Definition::getOutputFileBase(), MemberDef::getReference(), ClassDef::getReference(), GROUP, MemberDef::hasDetailedDescription(), ArgumentList::hasParameters(), OutputGenerator::Html, OutputList::insertMemberAlign(), OutputList::insertMemberAlignLeft(), INSTANTIATION, isCompInst(), isComponent(), isConfig(), QCString::isEmpty(), OutputList::isEnabled(), OutputGenerator::Latex, LIBRARY, Definition::localName(), OutputGenerator::Man, MISCELLANEOUS, Definition::name(), PACKAGE, OutputList::popGeneratorState(), PORT, QCString::prepend(), PROCEDURE, PROCESS, ClassDef::protection(), OutputList::pushGeneratorState(), MemberDef::qualifiedName(), RECORD, QCString::resize(), Doxygen::searchIndex, SearchIndexIntf::setCurrentDoc(), SHAREDVARIABLE, SIGNAL, OutputList::startBold(), OutputList::startDoxyAnchor(), OutputList::startEmphasis(), OutputList::startMemberDescription(), OutputList::startMemberItem(), OutputList::startTextLink(), QCString::stripPrefix(), SUBTYPE, theTranslator_vhdlType, TRUE, TYPE, MemberDef::typeString(), UCF_CONST, UNITS, USE, VFILE, MemberDef::warnIfUndocumented(), writeFunctionProto(), writeLink(), OutputList::writeObjectLink(), writeProcedureProto(), writeProcessProto(), writeRecordUnit(), writeSource() , 以及 writeUCFLink().

被这些函数引用 writePlainVHDLDeclarations().

◆ writeVhdlDeclarations()

void VhdlDocGen::writeVhdlDeclarations ( const MemberList ml,
OutputList ol,
const GroupDef gd,
const ClassDef cd,
const FileDef fd,
const NamespaceDef nd 
)
static

在文件 vhdldocgen.cpp1539 行定义.

1541 {
1563 
1564  // configurations must be added to global file definitions.
1567 
1568 }

引用了 ALIAS, ATTRIBUTE, COMPONENT, CONFIG, CONSTANT, FALSE, FUNCTION, GENERIC, GROUP, INSTANTIATION, LIBRARY, MISCELLANEOUS, PORT, PROCEDURE, PROCESS, RECORD, SHAREDVARIABLE, SIGNAL, SUBTYPE, theTranslator_vhdlType, TRUE, TYPE, UCF_CONST, UNITS, USE, VFILE , 以及 writeVHDLDeclarations().

被这些函数引用 MemberList::writeDeclarations(), GroupDefImpl::writeMemberDeclarations(), FileDefImpl::writeMemberDeclarations() , 以及 ClassDefImpl::writeMemberDeclarations().

◆ writeVHDLDeclarations()

void VhdlDocGen::writeVHDLDeclarations ( const MemberList ml,
OutputList ol,
const ClassDef cd,
const NamespaceDef nd,
const FileDef fd,
const GroupDef gd,
const QCString title,
const QCString subtitle,
bool  showEnumValues,
int  type 
)
static

在文件 vhdldocgen.cpp2098 行定义.

2101 {
2102  if (!membersHaveSpecificType(ml,type)) return;
2103 
2104  if (!title.isEmpty())
2105  {
2106  ol.startMemberHeader(convertToId(title),type == VhdlDocGen::PORT ? 3 : 2);
2107  ol.parseText(title);
2108  ol.endMemberHeader();
2109  ol.docify(" ");
2110  }
2111  if (!subtitle.isEmpty())
2112  {
2113  ol.startMemberSubtitle();
2114  ol.generateDoc("[generated]",-1,0,0,subtitle,FALSE,FALSE,
2115  QCString(),TRUE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
2116  ol.endMemberSubtitle();
2117  } //printf("memberGroupList=%p\n",memberGroupList);
2118 
2119  VhdlDocGen::writePlainVHDLDeclarations(ml,ol,cd,nd,fd,gd,type);
2120 
2121  for (const auto &mg : ml->getMemberGroupList())
2122  {
2123  if (membersHaveSpecificType(&mg->members(),type))
2124  {
2125  //printf("mg->header=%s\n",qPrint(mg->header()));
2126  bool hasHeader=mg->header()!="[NOHEADER]";
2127  ol.startMemberGroupHeader(hasHeader);
2128  if (hasHeader)
2129  {
2130  ol.parseText(mg->header());
2131  }
2132  ol.endMemberGroupHeader();
2133  if (!mg->documentation().isEmpty())
2134  {
2135  //printf("Member group has docs!\n");
2136  ol.startMemberGroupDocs();
2137  ol.generateDoc("[generated]",-1,0,0,mg->documentation()+"\n",FALSE,FALSE,
2138  QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
2139  ol.endMemberGroupDocs();
2140  }
2141  ol.startMemberGroup();
2142  //printf("--- mg->writePlainDeclarations ---\n");
2143  VhdlDocGen::writePlainVHDLDeclarations(&mg->members(),ol,cd,nd,fd,gd,type);
2144  ol.endMemberGroup(hasHeader);
2145  }
2146  }
2147 }// writeVHDLDeclarations

引用了 Config_getBool, convertToId(), OutputList::docify(), OutputList::endMemberGroup(), OutputList::endMemberGroupDocs(), OutputList::endMemberGroupHeader(), OutputList::endMemberHeader(), OutputList::endMemberSubtitle(), FALSE, OutputList::generateDoc(), MemberList::getMemberGroupList(), QCString::isEmpty(), membersHaveSpecificType(), OutputList::parseText(), PORT, OutputList::startMemberGroup(), OutputList::startMemberGroupDocs(), OutputList::startMemberGroupHeader(), OutputList::startMemberHeader(), OutputList::startMemberSubtitle(), TRUE , 以及 writePlainVHDLDeclarations().

被这些函数引用 writeVhdlDeclarations().

◆ writeVhdlLink()

void VhdlDocGen::writeVhdlLink ( const ClassDef cdd,
OutputList ol,
QCString type,
QCString name,
QCString beh 
)
staticprivate

在文件 vhdldocgen.cpp944 行定义.

945 {
946  if (ccd==0) return;
947  ol.startBold();
948  ol.docify(type);
949  ol.endBold();
950  nn.stripPrefix("_");
951  ol.writeObjectLink(ccd->getReference(),ccd->getOutputFileBase(),QCString(),nn);
952 
953  if (!behav.isEmpty())
954  {
955  behav.prepend(" ");
956  ol.startBold();
957  ol.docify(behav);
958  ol.endBold();
959  }
960 
961  ol.lineBreak();
962 }

引用了 OutputList::docify(), OutputList::endBold(), ClassDef::getOutputFileBase(), ClassDef::getReference(), QCString::isEmpty(), OutputList::lineBreak(), QCString::prepend(), OutputList::startBold(), QCString::stripPrefix() , 以及 OutputList::writeObjectLink().

被这些函数引用 writeInlineClassLink().

◆ writeVHDLTypeDocumentation()

bool VhdlDocGen::writeVHDLTypeDocumentation ( const MemberDef mdef,
const Definition d,
OutputList ol 
)
static

在文件 vhdldocgen.cpp1618 行定义.

1619 {
1620  const ClassDef *cd=toClassDef(d);
1621  bool hasParams = FALSE;
1622 
1623  if (cd==0) return hasParams;
1624 
1625  QCString ttype=mdef->typeString();
1626  QCString largs=mdef->argsString();
1627 
1629  {
1630  QCString nn=mdef->typeString();
1631  nn=nn.stripWhiteSpace();
1632  QCString na=cd->name();
1633  const MemberDef* memdef=VhdlDocGen::findMember(na,nn);
1634  if (memdef && memdef->isLinkable())
1635  {
1636  ol.docify(" ");
1637 
1638  ol.startBold();
1639  writeLink(memdef,ol);
1640  ol.endBold();
1641  ol.docify(" ");
1642  }
1643  else
1644  {
1645  ol.docify(" ");
1646  VhdlDocGen::formatString(ttype,ol,mdef);
1647  ol.docify(" ");
1648  }
1649  ol.docify(mdef->name());
1650  hasParams = VhdlDocGen::writeFuncProcDocu(mdef,ol, mdef->argumentList());
1651  }
1652 
1653 
1654  if (mdef->isVariable())
1655  {
1656  if (VhdlDocGen::isConstraint(mdef))
1657  {
1658  writeLink(mdef,ol);
1659  ol.docify(" ");
1660 
1661  largs=substitute(largs,"#"," ");
1662  VhdlDocGen::formatString(largs,ol,mdef);
1663  return hasParams;
1664  }
1665  else
1666  {
1667  writeLink(mdef,ol);
1668  if (VhdlDocGen::isLibrary(mdef) || VhdlDocGen::isPackage(mdef))
1669  {
1670  return hasParams;
1671  }
1672  ol.docify(" ");
1673  }
1674 
1675  // QCString largs=mdef->argsString();
1676 
1677  bool c=largs=="context";
1678  bool brec=largs.stripPrefix("record") ;
1679 
1680  if (!brec && !c)
1681  VhdlDocGen::formatString(ttype,ol,mdef);
1682 
1683  if (c || brec || largs.stripPrefix("units"))
1684  {
1685  if (c)
1686  largs=ttype;
1687  VhdlDocGen::writeRecUnitDocu(mdef,ol,largs);
1688  return hasParams;
1689  }
1690 
1691  ol.docify(" ");
1692  if (VhdlDocGen::isPort(mdef) || VhdlDocGen::isGeneric(mdef))
1693  {
1694  // QCString largs=mdef->argsString();
1695  VhdlDocGen::formatString(largs,ol,mdef);
1696  ol.docify(" ");
1697  }
1698  }
1699  return hasParams;
1700 }

引用了 MemberDef::argsString(), MemberDef::argumentList(), OutputList::docify(), OutputList::endBold(), FALSE, findMember(), formatString(), isConstraint(), isGeneric(), isLibrary(), MemberDef::isLinkable(), isPackage(), isPort(), isProcedure(), isProcess(), MemberDef::isVariable(), isVhdlFunction(), Definition::name(), OutputList::startBold(), QCString::stripPrefix(), QCString::stripWhiteSpace(), substitute(), toClassDef(), MemberDef::typeString(), writeFuncProcDocu(), writeLink() , 以及 writeRecUnitDocu().

被这些函数引用 MemberDefImpl::writeDocumentation().


该类的文档由以下文件生成:
OutputList::startMemberGroup
void startMemberGroup()
Definition: outputlist.h:229
OutputList::startParameterType
void startParameterType(bool first, const QCString &key)
Definition: outputlist.h:423
StringVector
std::vector< std::string > StringVector
Definition: containers.h:32
OutputList::startParameterName
void startParameterName(bool one)
Definition: outputlist.h:427
OutputList::disableAllBut
void disableAllBut(OutputGenerator::OutputType o)
Definition: outputlist.cpp:76
VhdlDocGen::writePlainVHDLDeclarations
static void writePlainVHDLDeclarations(const MemberList *ml, OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, uint64_t specifier)
Definition: vhdldocgen.cpp:2045
OutputList::startMemberDescription
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
Definition: outputlist.h:306
VhdlDocGen::isPort
static bool isPort(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2791
VhdlDocGen::PROCEDURE
@ PROCEDURE
Definition: vhdldocgen.h:95
VhdlDocGen::isConfig
static bool isConfig(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2783
OutputList::startMemberList
void startMemberList()
Definition: outputlist.h:197
VhdlDocGen::TYPE
@ TYPE
Definition: vhdldocgen.h:91
createSVG
static void createSVG()
Definition: vhdldocgen.cpp:160
ClassDefMutable
Definition: classdef.h:384
DefinitionMutable::writeSourceReffedBy
virtual void writeSourceReffedBy(OutputList &ol, const QCString &scopeName) const =0
reg::replace
std::string replace(const std::string &str, const Ex &re, const std::string &replacement)
Searching in a given input string for parts that match regular expression re and replaces those parts...
Definition: regex.cpp:740
toMemberDefMutable
MemberDefMutable * toMemberDefMutable(Definition *d)
Definition: memberdef.cpp:6125
MemberDef::hasReferencedByRelation
virtual bool hasReferencedByRelation() const =0
QCString::replace
QCString & replace(size_t index, size_t len, const char *s)
Definition: qcstring.cpp:207
VhdlDocGen::COMPONENT
@ COMPONENT
Definition: vhdldocgen.h:89
MemberDef::argsString
virtual QCString argsString() const =0
VhdlDocGen::SUBTYPE
@ SUBTYPE
Definition: vhdldocgen.h:92
MemberDef::briefDescription
virtual QCString briefDescription(bool abbr=FALSE) const =0
DefinitionMutable::writeSourceRefs
virtual void writeSourceRefs(OutputList &ol, const QCString &scopeName) const =0
VhdlDocGen::isLibrary
static bool isLibrary(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2787
Definition
The common base class of all entity definitions found in the sources.
Definition: definition.h:76
VhdlDocGen::isGeneric
static bool isGeneric(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2789
MemberDef::documentation
virtual QCString documentation() const =0
VhdlDocGen::writeFunctionProto
static void writeFunctionProto(OutputList &ol, const ArgumentList &al, const MemberDef *)
Definition: vhdldocgen.cpp:1324
ClassDef::updateBaseClasses
virtual void updateBaseClasses(const BaseClassList &bcd)=0
Update the list of base classes to the one passed
OutputList::startDoxyAnchor
void startDoxyAnchor(const QCString &fName, const QCString &manName, const QCString &anchor, const QCString &name, const QCString &args)
Definition: outputlist.h:264
QCString::upper
QCString upper() const
Definition: qcstring.h:237
OutputList::endDoxyAnchor
void endDoxyAnchor(const QCString &fn, const QCString &anchor)
Definition: outputlist.h:268
g_packages
static std::map< ClassDef *, std::vector< ClassDef * > > g_packages
Definition: vhdldocgen.cpp:596
OutputList::docify
void docify(const QCString &s)
Definition: outputlist.h:137
QCString::length
uint length() const
Returns the length of the string, not counting the 0-terminator.
Definition: qcstring.h:147
VhdlDocGen::parseForBinding
static QCString parseForBinding(QCString &entity, QCString &arch)
Definition: vhdldocgen.cpp:2441
findMemFlow
static const MemberDef * findMemFlow(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2730
MemberList::getMemberGroupList
const MemberGroupRefList & getMemberGroupList() const
Definition: memberlist.h:118
ArgumentList
This class represents an function or template argument list.
Definition: arguments.h:59
OutputList::endMemberDescription
void endMemberDescription()
Definition: outputlist.h:308
VhdlDocGen::ENTITY
@ ENTITY
Definition: vhdldocgen.h:83
QCString::findRev
int findRev(char c, int index=-1, bool cs=TRUE) const
Definition: qcstring.cpp:86
VhdlDocGen::writeSource
static void writeSource(const MemberDefMutable *mdef, OutputList &ol, const QCString &cname)
Definition: vhdldocgen.cpp:2191
VhdlDocGen::SIGNAL
@ SIGNAL
Definition: vhdldocgen.h:88
Entry::spec
uint64 spec
class/member specifiers
Definition: entry.h:248
DefinitionMutable::setName
virtual void setName(const QCString &name)=0
QCString::isEmpty
bool isEmpty() const
Returns TRUE iff the string is empty
Definition: qcstring.h:144
reg::match
bool match(const std::string &str, Match &match, const Ex &re)
Matches a given string str for a match against regular expression re.
Definition: regex.cpp:729
VhdlDocGen::CONFIG
@ CONFIG
Definition: vhdldocgen.h:105
VhdlDocGen::GENERIC
@ GENERIC
Definition: vhdldocgen.h:100
OutputList::startBold
void startBold()
Definition: outputlist.h:302
OutputList::writeString
void writeString(const QCString &text)
Definition: outputlist.h:111
OutputList::insertMemberAlign
void insertMemberAlign(bool templ=FALSE)
Definition: outputlist.h:233
MemberDef::getClassDefOfAnonymousType
virtual ClassDef * getClassDefOfAnonymousType() const =0
VhdlDocGen::PACKAGE
@ PACKAGE
Definition: vhdldocgen.h:86
split
static std::vector< QCString > split(const QCString &str, const QCString &sep, bool allowEmptyEntries=FALSE, bool cleanup=TRUE)
Definition: template.cpp:47
writeTable
static void writeTable(const std::vector< const MemberDef * > &portList, TextStream &t)
Definition: vhdldocgen.cpp:438
VhdlDocGen::PACKAGECLASS
@ PACKAGECLASS
Definition: vhdldocgen.h:77
endDot
static void endDot(TextStream &t)
Definition: vhdldocgen.cpp:251
VhdlDocGen::findAllArchitectures
static void findAllArchitectures(std::vector< QCString > &ql, const ClassDef *cd)
Definition: vhdldocgen.cpp:906
MemberDefMutable::setType
virtual void setType(const QCString &t)=0
startFonts
static void startFonts(const QCString &q, const char *keyword, OutputList &ol)
Definition: vhdldocgen.cpp:136
StringSet
std::set< std::string > StringSet
Definition: containers.h:30
QCString::str
std::string str() const
Definition: qcstring.h:442
OutputList::endParameterName
void endParameterName(bool last, bool one, bool bracket)
Definition: outputlist.h:429
writeUCFLink
static void writeUCFLink(const MemberDef *mdef, OutputList &ol)
Definition: vhdldocgen.cpp:2380
writeClassToDot
static void writeClassToDot(TextStream &t, ClassDef *cd)
Definition: vhdldocgen.cpp:402
VhdlDocGen::getIndexWord
static QCString getIndexWord(const QCString &, int index)
Definition: vhdldocgen.cpp:1041
err
void err(const char *fmt,...)
Definition: message.cpp:203
VhdlDocGen::isVariable
static bool isVariable(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2825
VhdlDocGen::isAlias
static bool isAlias(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2785
QCString::at
char & at(size_t i)
Returns a reference to the character at index i.
Definition: qcstring.h:477
TextStream
Text streaming class that buffers data.
Definition: textstream.h:33
ClassDef::protection
virtual Protection protection() const =0
Return the protection level (Public,Protected,Private) in which this compound was found.
QCString::find
int find(char c, int index=0, bool cs=TRUE) const
Definition: qcstring.cpp:38
Definition::briefLine
virtual int briefLine() const =0
MemberDefMutable
Definition: memberdef.h:296
MemberListType_pubMethods
@ MemberListType_pubMethods
Definition: types.h:107
VhdlDocGen::writeFormatString
static void writeFormatString(const QCString &, OutputList &ol, const MemberDef *)
Definition: vhdldocgen.cpp:1129
VhdlDocGen::VFILE
@ VFILE
Definition: vhdldocgen.h:103
VhdlDocGen::UNITS
@ UNITS
Definition: vhdldocgen.h:99
MemberDef::getReference
virtual QCString getReference() const =0
VhdlDocGen::PORT
@ PORT
Definition: vhdldocgen.h:98
VhdlDocGen::isProcess
static bool isProcess(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2807
VhdlDocGen::isPackage
static bool isPackage(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2795
OutputList::endMemberGroupDocs
void endMemberGroupDocs()
Definition: outputlist.h:227
ArgumentList::hasParameters
bool hasParameters() const
Definition: arguments.h:69
g_vhdlKeyWordSet1
static const std::set< std::string > g_vhdlKeyWordSet1
Definition: vhdldocgen.cpp:533
end
DirIterator end(const DirIterator &) noexcept
Definition: dir.cpp:128
QCString::contains
int contains(char c, bool cs=TRUE) const
Definition: qcstring.cpp:138
MemberDef::isLinkable
virtual bool isLinkable() const =0
OutputGenerator::RTF
@ RTF
Definition: outputgen.h:333
VhdlDocGen::isSubType
static bool isSubType(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2803
ClassDef::templateMaster
virtual const ClassDef * templateMaster() const =0
Returns the template master of which this class is an instance.
MemberDef::isBriefSectionVisible
virtual bool isBriefSectionVisible() const =0
reg
Namespace for the regular expression functions
Definition: regex.cpp:30
VhdlDocGen::isProcedure
static bool isProcedure(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2815
VhdlDocGen::writeProcessProto
static void writeProcessProto(OutputList &ol, const ArgumentList &al, const MemberDef *)
Definition: vhdldocgen.cpp:1402
uint
unsigned uint
Definition: qcstring.h:40
OutputList::startMemberGroupDocs
void startMemberGroupDocs()
Definition: outputlist.h:225
MemberDef::anchor
virtual QCString anchor() const =0
startDot
static void startDot(TextStream &t)
Definition: vhdldocgen.cpp:243
VhdlDocGen::getClassName
static QCString getClassName(const ClassDef *)
Definition: vhdldocgen.cpp:810
flowMember
static const MemberDef * flowMember
Definition: vhdldocgen.cpp:85
addHtmlExtensionIfMissing
QCString addHtmlExtensionIfMissing(const QCString &fName)
Definition: util.cpp:5275
MemberDef
A model of a class/file/namespace member symbol.
Definition: memberdef.h:45
OutputList::writeChar
void writeChar(char c)
Definition: outputlist.h:256
g_vhdlKeyWordSet0
static const std::set< std::string > g_vhdlKeyWordSet0
Definition: vhdldocgen.cpp:507
getVhdlInstList
const EntryList & getVhdlInstList()
Definition: vhdljjparser.cpp:839
OutputGenerator::Latex
@ Latex
Definition: outputgen.h:333
VhdlDocGen::isConstraint
static bool isConstraint(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2781
VhdlDocGen::deleteCharRev
static bool deleteCharRev(QCString &s, char c)
Definition: vhdldocgen.cpp:1073
MemberDefMutable::setMemberSpecifiers
virtual void setMemberSpecifiers(uint64 s)=0
ClassDef
A abstract class representing of a compound symbol.
Definition: classdef.h:103
OutputList::startParameterList
void startParameterList(bool openBracket)
Definition: outputlist.h:431
QCString::stripWhiteSpace
QCString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
Definition: qcstring.h:243
OutputList::startMemberItem
void startMemberItem(const QCString &anchor, int i1, const QCString &id=QCString())
Definition: outputlist.h:209
OutputList::disable
void disable(OutputGenerator::OutputType o)
Definition: outputlist.cpp:100
VhdlDocGen::writeVHDLDeclarations
static void writeVHDLDeclarations(const MemberList *ml, OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const QCString &title, const QCString &subtitle, bool showEnumValues, int type)
Definition: vhdldocgen.cpp:2098
VhdlDocGen::ALIAS
@ ALIAS
Definition: vhdldocgen.h:106
OutputList::startMemberHeader
void startMemberHeader(const QCString &anchor, int typ=2)
Definition: outputlist.h:185
QCString::left
QCString left(size_t len) const
Definition: qcstring.h:212
MemberDef::excpString
virtual QCString excpString() const =0
VhdlDocGen::isVhdlFunction
static bool isVhdlFunction(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2805
MemberDef::isVariable
virtual bool isVariable() const =0
VhdlDocGen::isFile
static bool isFile(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2827
Doxygen::parserManager
static ParserManager * parserManager
Definition: doxygen.h:111
compareString
static int compareString(const QCString &s1, const QCString &s2)
Definition: vhdldocgen.cpp:155
ParserManager::getOutlineParser
std::unique_ptr< OutlineParserInterface > getOutlineParser(const QCString &extension)
Gets the interface to the parser associated with a given extension.
Definition: parserintf.h:208
recordCounter
static int recordCounter
Definition: vhdldocgen.cpp:1097
VhdlDocGen::ARCHITECTURE
@ ARCHITECTURE
Definition: vhdldocgen.h:85
OutputList::endMemberGroup
void endMemberGroup(bool last)
Definition: outputlist.h:231
ClassDef::getOutputFileBase
virtual QCString getOutputFileBase() const =0
Returns the unique base name (without extension) of the class's file on disk
Definition::symbolName
virtual QCString symbolName() const =0
VhdlDocGen::isSignals
static bool isSignals(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2813
ClassDef::baseClasses
virtual const BaseClassList & baseClasses() const =0
Returns the list of base classes from which this class directly inherits.
writeLink
static void writeLink(const MemberDef *mdef, OutputList &ol)
Definition: vhdldocgen.cpp:128
initUCF
static void initUCF(Entry *root, const QCString &type, QCString &qcs, int line, const QCString &fileName, QCString &brief)
Definition: vhdldocgen.cpp:2323
VhdlDocGen::ENTITYCLASS
@ ENTITYCLASS
Definition: vhdldocgen.h:74
theTranslator_vhdlType
#define theTranslator_vhdlType
Definition: vhdldocgen.cpp:66
qstricmp
int qstricmp(const char *str1, const char *str2)
Definition: qcstring.cpp:433
VhdlDocGen::ATTRIBUTE
@ ATTRIBUTE
Definition: vhdldocgen.h:87
VhdlDocGen::writeVHDLDeclaration
static void writeVHDLDeclaration(const MemberDefMutable *mdef, OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, bool inGroup)
Definition: vhdldocgen.cpp:1746
OutputList::lineBreak
void lineBreak(const QCString &style=QCString())
Definition: outputlist.h:300
theTranslator
Translator * theTranslator
Definition: language.cpp:156
getPorts
static std::vector< const MemberDef * > getPorts(const ClassDef *cd)
Definition: vhdldocgen.cpp:416
Definition::name
virtual QCString name() const =0
VhdlDocGen::isCompInst
static bool isCompInst(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2831
VhdlDocGen::writeFuncProcDocu
static bool writeFuncProcDocu(const MemberDef *mdef, OutputList &ol, const ArgumentList &al, bool type=false)
Definition: vhdldocgen.cpp:1428
SearchIndexIntf::addWord
virtual void addWord(const QCString &word, bool hiPriority)=0
VhdlDocGen::formatString
static void formatString(const QCString &, OutputList &ol, const MemberDef *)
Definition: vhdldocgen.cpp:1210
VhdlDocGen::writeProcedureProto
static void writeProcedureProto(OutputList &ol, const ArgumentList &al, const MemberDef *)
Definition: vhdldocgen.cpp:1269
Argument
This class contains the information about the argument of a function or template
Definition: arguments.h:26
VhdlDocGen::CONSTANT
@ CONSTANT
Definition: vhdldocgen.h:90
MemberDef::getClassDef
virtual const ClassDef * getClassDef() const =0
VhdlDocGen::isComponent
static bool isComponent(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2793
QCString::lower
QCString lower() const
Definition: qcstring.h:232
VhdlDocGen::VhdlClasses
VhdlClasses
Definition: vhdldocgen.h:72
Translator::trVhdlType
virtual QCString trVhdlType(uint64 type, bool single)=0
VhdlDocGen::PACKAGE_BODY
@ PACKAGE_BODY
Definition: vhdldocgen.h:84
ClassDef::isBaseClass
virtual bool isBaseClass(const ClassDef *bcd, bool followInstances, int level=0) const =0
Returns TRUE iff bcd is a direct or indirect base class of this class.
MemberDef::warnIfUndocumented
virtual void warnIfUndocumented() const =0
VhdlDocGen::isNumber
static bool isNumber(const std::string &s)
Definition: vhdldocgen.cpp:1198
readCodeFragment
bool readCodeFragment(const QCString &fileName, int &startLine, int &endLine, QCString &result)
Reads a fragment from file fileName starting with line startLine and ending with line endLine.
Definition: definition.cpp:719
VhdlDocGen::LIBRARY
@ LIBRARY
Definition: vhdldocgen.h:82
OutputList::endMemberDocName
void endMemberDocName()
Definition: outputlist.h:421
ParserManager::getCodeParser
std::unique_ptr< CodeParserInterface > getCodeParser(const QCString &extension)
Gets the interface to the parser associated with a given extension.
Definition: parserintf.h:217
TRUE
#define TRUE
Definition: qcstring.h:36
Definition::getOutputFileBase
virtual QCString getOutputFileBase() const =0
OutputList::endMemberList
void endMemberList()
Definition: outputlist.h:199
Definition::getStartBodyLine
virtual int getStartBodyLine() const =0
Definition::getEndBodyLine
virtual int getEndBodyLine() const =0
VhdlDocGen::findMemberDef
static const MemberDef * findMemberDef(ClassDef *cd, const QCString &key, MemberListType type)
This function returns the entity|package in which the key (type) is found
Definition: vhdldocgen.cpp:698
VhdlDocGen::writeStringLink
static void writeStringLink(const MemberDef *mdef, QCString mem, OutputList &ol)
Definition: vhdldocgen.cpp:2167
MemberListType_variableMembers
@ MemberListType_variableMembers
Definition: types.h:142
QCString::toInt
int toInt(bool *ok=0, int base=10) const
Definition: qcstring.cpp:244
OutputList::endMemberItem
void endMemberItem()
Definition: outputlist.h:211
VhdlDocGen::UCF_CONST
@ UCF_CONST
Definition: vhdldocgen.h:108
OutputGenerator::Html
@ Html
Definition: outputgen.h:333
LinkedMap::find
const T * find(const std::string &key) const
Find an object given the key.
Definition: linkedmap.h:60
toClassDef
ClassDef * toClassDef(Definition *d)
Definition: classdef.cpp:4907
OutputList::enableAll
void enableAll()
Definition: outputlist.cpp:84
OutputList::isEnabled
bool isEnabled(OutputGenerator::OutputType o)
Definition: outputlist.cpp:116
VhdlDocGen::writeRecordUnit
static void writeRecordUnit(QCString &largs, QCString &ltype, OutputList &ol, const MemberDefMutable *mdef)
Definition: vhdldocgen.cpp:2612
ClassDef::subClasses
virtual const BaseClassList & subClasses() const =0
Returns the list of sub classes that directly derive from this class
VhdlDocGen::isGroup
static bool isGroup(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2829
OutputList::popGeneratorState
void popGeneratorState()
Definition: outputlist.cpp:134
Definition::briefFile
virtual QCString briefFile() const =0
OutputList::startTextLink
void startTextLink(const QCString &file, const QCString &anchor)
Definition: outputlist.h:152
OutputList::endMemberSubtitle
void endMemberSubtitle()
Definition: outputlist.h:191
VhdlDocGen::deleteAllChars
static void deleteAllChars(QCString &s, char c)
Definition: vhdldocgen.cpp:1085
endTable
static void endTable(TextStream &t)
Definition: vhdldocgen.cpp:396
OutputList::startEmphasis
void startEmphasis()
Definition: outputlist.h:252
QCString::setNum
QCString & setNum(short n)
Definition: qcstring.h:372
ArgumentList::size
size_t size() const
Definition: arguments.h:93
MemberDef::getMemberSpecifiers
virtual uint64 getMemberSpecifiers() const =0
OutputList::startCodeFragment
void startCodeFragment(const QCString &style)
Definition: outputlist.h:241
startTable
static void startTable(TextStream &t, const QCString &className)
Definition: vhdldocgen.cpp:256
OutputList::startMemberGroupHeader
void startMemberGroupHeader(bool b)
Definition: outputlist.h:221
VhdlDocGen::writeVhdlLink
static void writeVhdlLink(const ClassDef *cdd, OutputList &ol, QCString &type, QCString &name, QCString &beh)
Definition: vhdldocgen.cpp:944
MemberDef::qualifiedName
virtual QCString qualifiedName() const =0
Doxygen::searchIndex
static SearchIndexIntf * searchIndex
Definition: doxygen.h:105
QCString::mid
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
Definition: qcstring.h:224
OutputList::endMemberHeader
void endMemberHeader()
Definition: outputlist.h:187
substitute
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
Definition: qcstring.cpp:465
MemberDef::getOutputFileBase
virtual QCString getOutputFileBase() const =0
membersHaveSpecificType
static bool membersHaveSpecificType(const MemberList *ml, uint64 type)
Definition: vhdldocgen.cpp:2078
VhdlDocGen::INSTANTIATION
@ INSTANTIATION
Definition: vhdldocgen.h:101
DefinitionMutable::writeDocAnchorsToTagFile
virtual void writeDocAnchorsToTagFile(TextStream &) const =0
VhdlDocGen::findKeyWord
static const char * findKeyWord(const QCString &word)
Definition: vhdldocgen.cpp:562
QCString::remove
QCString & remove(size_t index, size_t len)
Definition: qcstring.h:354
Config_getBool
#define Config_getBool(name)
Definition: config.h:33
VhdlDocGen::isVType
static bool isVType(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2801
QCString::append
QCString & append(char c)
Definition: qcstring.h:318
comment
const char * comment
Definition: vhdldocgen.cpp:2870
g_varMap
static std::map< std::string, const MemberDef * > g_varMap
Definition: vhdldocgen.cpp:594
reg::Ex
Class representing a regular expression.
Definition: regex.h:48
ClassDef::getReference
virtual QCString getReference() const =0
If this class originated from a tagfile, this will return the tag file reference
VhdlDocGen::isAttribute
static bool isAttribute(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2811
SearchIndexIntf::setCurrentDoc
virtual void setCurrentDoc(const Definition *ctx, const QCString &anchor, bool isSourceFile)=0
VhdlDocGen::findAllPackages
static void findAllPackages(ClassDef *)
Definition: vhdldocgen.cpp:741
Definition::getOuterScope
virtual Definition * getOuterScope() const =0
OutputList::parseText
void parseText(const QCString &textStr)
Definition: outputlist.cpp:179
VhdlDocGen::PROCESS
@ PROCESS
Definition: vhdldocgen.h:97
OutputList::endMemberGroupHeader
void endMemberGroupHeader()
Definition: outputlist.h:223
VhdlDocGen::convertArgumentListToString
static QCString convertArgumentListToString(const ArgumentList &al, bool f)
Definition: vhdldocgen.cpp:1512
FileDef::absFilePath
virtual QCString absFilePath() const =0
VhdlDocGen::SHAREDVARIABLE
@ SHAREDVARIABLE
Definition: vhdldocgen.h:104
qPrint
const char * qPrint(const char *s)
Definition: qcstring.h:589
OutputList::startMemberSubtitle
void startMemberSubtitle()
Definition: outputlist.h:189
MemberDef::getFileDef
virtual const FileDef * getFileDef() const =0
VhdlDocGen::writeRecUnitDocu
static void writeRecUnitDocu(const MemberDef *md, OutputList &ol, QCString largs)
Definition: vhdldocgen.cpp:2631
Config_getString
#define Config_getString(name)
Definition: config.h:32
writeVhdlEntityToolTip
static void writeVhdlEntityToolTip(TextStream &t, ClassDef *cd)
Definition: vhdldocgen.cpp:292
VhdlDocGen::findVhdlClass
static ClassDef * findVhdlClass(const QCString &className)
Definition: vhdldocgen.cpp:2475
OutputList::generateDoc
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
Definition: outputlist.cpp:142
MemberDef::argumentList
virtual const ArgumentList & argumentList() const =0
VhdlDocGen::isRecord
static bool isRecord(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2817
OutputList::endEmphasis
void endEmphasis()
Definition: outputlist.h:254
VhdlDocGen::findMember
static const MemberDef * findMember(const QCString &className, const QCString &memName)
Definition: vhdldocgen.cpp:598
DefinitionMutable::writeSourceDef
virtual void writeSourceDef(OutputList &ol, const QCString &scopeName) const =0
g_vhdlKeyWordSet3
static const std::set< std::string > g_vhdlKeyWordSet3
Definition: vhdldocgen.cpp:547
ASSERT
#define ASSERT(x)
Definition: qcstring.h:44
OutputList::pushGeneratorState
void pushGeneratorState()
Definition: outputlist.cpp:126
QCString::data
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string
Definition: qcstring.h:153
ClassDef::getMemberList
virtual MemberList * getMemberList(MemberListType lt) const =0
Returns the members in the list identified by lt
convertToXML
QCString convertToXML(const QCString &s, bool keepEntities)
Definition: util.cpp:3948
VhdlDocGen::GROUP
@ GROUP
Definition: vhdldocgen.h:102
g_vhdlKeyWordSet2
static const std::set< std::string > g_vhdlKeyWordSet2
Definition: vhdldocgen.cpp:541
FileDef
A model of a file symbol.
Definition: filedef.h:73
VhdlDocGen::PACKBODYCLASS
@ PACKBODYCLASS
Definition: vhdldocgen.h:75
SrcLangExt_VHDL
@ SrcLangExt_VHDL
Definition: types.h:54
OutputList::endParameterType
void endParameterType()
Definition: outputlist.h:425
VhdlDocGen::getPackageName
static ClassDef * getPackageName(const QCString &name)
Definition: vhdldocgen.cpp:589
mdList
static std::vector< const MemberDef * > mdList
Definition: vhdldocgen.cpp:2728
OutputList::writeObjectLink
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
Definition: outputlist.h:141
OutputList::insertMemberAlignLeft
void insertMemberAlignLeft(int typ=0, bool templ=FALSE)
Definition: outputlist.h:235
toClassDefMutable
ClassDefMutable * toClassDefMutable(Definition *d)
Definition: classdef.cpp:4944
VhdlDocGen::USE
@ USE
Definition: vhdldocgen.h:96
addInstance
static void addInstance(ClassDefMutable *entity, ClassDefMutable *arch, ClassDefMutable *inst, const std::shared_ptr< Entry > &cur)
Definition: vhdldocgen.cpp:2541
MemberDef::hasReferencesRelation
virtual bool hasReferencesRelation() const =0
Doxygen::classLinkedMap
static ClassLinkedMap * classLinkedMap
Definition: doxygen.h:78
MemberDef::typeString
virtual QCString typeString() const =0
BaseClassList
std::vector< BaseClassDef > BaseClassList
Definition: classdef.h:81
Definition::localName
virtual QCString localName() const =0
VhdlDocGen::setFlowMember
static void setFlowMember(const MemberDef *flowMember)
Definition: vhdldocgen.cpp:87
g_classList
static std::vector< ClassDef * > g_classList
Definition: vhdldocgen.cpp:595
OutputList::enable
void enable(OutputGenerator::OutputType o)
Definition: outputlist.cpp:108
VhdlDocGen::FUNCTION
@ FUNCTION
Definition: vhdldocgen.h:93
convertToId
QCString convertToId(const QCString &s)
Definition: util.cpp:3908
MemberList
A list of MemberDef objects as shown in documentation sections.
Definition: memberlist.h:81
MemberDef::hasDetailedDescription
virtual bool hasDetailedDescription() const =0
QCString::stripPrefix
bool stripPrefix(const QCString &prefix)
Definition: qcstring.h:197
VhdlDocGen::isConstant
static bool isConstant(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2799
QCString::right
QCString right(size_t len) const
Definition: qcstring.h:217
VhdlDocGen::RECORD
@ RECORD
Definition: vhdldocgen.h:94
ClassDef::className
virtual QCString className() const =0
Returns the name of the class including outer classes, but not including namespaces.
OutputList::endCodeFragment
void endCodeFragment(const QCString &style)
Definition: outputlist.h:243
QCString::prepend
QCString & prepend(const char *s)
Definition: qcstring.h:339
QCString::resize
bool resize(size_t newlen)
Resizes the string to hold newlen characters (this value should also count the 0-terminator).
Definition: qcstring.h:164
OutputList::endTextLink
void endTextLink()
Definition: outputlist.h:154
qstrlen
uint qstrlen(const char *str)
Definition: qcstring.h:65
writeVhdlDotLink
static void writeVhdlDotLink(TextStream &t, const QCString &a, const QCString &b, const QCString &style)
Definition: vhdldocgen.cpp:262
VhdlDocGen::isEntity
static bool isEntity(const MemberDef *mdef)
Definition: vhdldocgen.cpp:2797
VhdlDocGen::ARCHITECTURECLASS
@ ARCHITECTURECLASS
Definition: vhdldocgen.h:76
MemberDef::getGroupDef
virtual const GroupDef * getGroupDef() const =0
VhdlDocGen::getClass
static ClassDef * getClass(const QCString &name)
Definition: vhdldocgen.cpp:583
findIndex
int findIndex(const StringVector &sv, const std::string &s)
find the index of a string in a vector of strings, returns -1 if the string could not be found
Definition: util.cpp:7319
VhdlDocGen::MISCELLANEOUS
@ MISCELLANEOUS
Definition: vhdldocgen.h:107
FALSE
#define FALSE
Definition: qcstring.h:33
OutputList::endBold
void endBold()
Definition: outputlist.h:304
OutputGenerator::Man
@ Man
Definition: outputgen.h:333
QCString
This is an alternative implementation of QCString.
Definition: qcstring.h:108