Doxygen
Loading...
Searching...
No Matches
vhdldocgen.cpp File Reference
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
#include <map>
#include <algorithm>
#include <unordered_set>
#include <mutex>
#include "dstring.h"
#include "vhdldocgen.h"
#include "message.h"
#include "config.h"
#include "doxygen.h"
#include "util.h"
#include "stringutil.h"
#include "language.h"
#include "commentscan.h"
#include "definition.h"
#include "searchindex.h"
#include "outputlist.h"
#include "parserintf.h"
#include "layout.h"
#include "arguments.h"
#include "portable.h"
#include "memberlist.h"
#include "memberdef.h"
#include "groupdef.h"
#include "classlist.h"
#include "namespacedef.h"
#include "filename.h"
#include "membergroup.h"
#include "membername.h"
#include "plantuml.h"
#include "vhdljjparser.h"
#include "VhdlParser.h"
#include "regex.h"
#include "textstream.h"
#include "moduledef.h"
Include dependency graph for vhdldocgen.cpp:

Go to the source code of this file.

Classes

struct  [struct].flowCol

Macros

#define theTranslator_vhdlType   theTranslator->trVhdlType
#define STARTL
#define DECLN
#define STARTFIN   (FlowChart::START_NO | FlowChart::END_NO)
#define LOOP
#define ENDCL   (FlowChart::END_CASE | FlowChart::END_LOOP)
#define EEND   (FlowChart::ENDIF_NO | FlowChart::ELSE_NO )
#define IFF   (FlowChart::ELSIF_NO | FlowChart::IF_NO)
#define EXITNEXT   (FlowChart::EXIT_NO | FlowChart::NEXT_NO )
#define EMPTY   (EEND | FlowChart::ELSIF_NO)
#define EE   (FlowChart::ELSE_NO | FlowChart::ELSIF_NO)
#define EMPTNODE   (ENDCL | EEND | FlowChart::ELSIF_NO)
#define FLOWLEN   (flowList.size()-1)

Functions

static void initUCF (Entry *root, const DString &type, DString &qcs, int line, const DString &fileName, DString &brief)
static void writeUCFLink (const MemberDef *mdef, OutputList &ol)
static void addInstance (ClassDefMutable *entity, ClassDefMutable *arch, ClassDefMutable *inst, const std::shared_ptr< Entry > &cur)
static void writeLink (const MemberDef *mdef, OutputList &ol)
static void startFonts (const DString &q, const char *keyword, OutputList &ol)
static DString splitString (DString &str, char c)
static int compareString (const DString &s1, const DString &s2)
static VhdlSpecifier getSpecifierTypeFromClass (const ClassDef *cd)
static bool membersHaveSpecificType (const MemberList *ml, VhdlSpecifier type)
static const MemberDeffindMemFlow (const MemberDef *mdef)
static void alignText (DString &q)

Variables

static const MemberDefflowMember =nullptr
static const std::unordered_set< std::string > g_vhdlKeyWordSet0
static const std::unordered_set< std::string > g_vhdlKeyWordSet1
static const std::unordered_set< std::string > g_vhdlKeyWordSet2
static const std::unordered_set< std::string > g_vhdlKeyWordSet3
static std::recursive_mutex g_vhdlMutex
static std::map< std::string, const MemberDef * > g_varMap
static std::vector< ClassDef * > g_classList
static std::map< ClassDef *, std::vector< ClassDef * > > g_packages
static int recordCounter =0
static std::vector< const MemberDef * > mdList
static int ifcounter =0
static int nodeCounter =0
static struct  flowCol
std::vector< FlowChartflowList

Macro Definition Documentation

◆ DECLN

◆ EE

Definition at line 2508 of file vhdldocgen.cpp.

◆ EEND

#define EEND   (FlowChart::ENDIF_NO | FlowChart::ELSE_NO )

Definition at line 2504 of file vhdldocgen.cpp.

Referenced by FlowChart::writeFlowLinks(), and FlowChart::writeShape().

◆ EMPTNODE

#define EMPTNODE   (ENDCL | EEND | FlowChart::ELSIF_NO)

Definition at line 2509 of file vhdldocgen.cpp.

Referenced by FlowChart::printNode().

◆ EMPTY

#define EMPTY   (EEND | FlowChart::ELSIF_NO)

Definition at line 2507 of file vhdldocgen.cpp.

Referenced by FlowChart::colTextNodes().

◆ ENDCL

#define ENDCL   (FlowChart::END_CASE | FlowChart::END_LOOP)

Definition at line 2503 of file vhdldocgen.cpp.

Referenced by FlowChart::writeShape().

◆ EXITNEXT

#define EXITNEXT   (FlowChart::EXIT_NO | FlowChart::NEXT_NO )

Definition at line 2506 of file vhdldocgen.cpp.

Referenced by FlowChart::writeShape().

◆ FLOWLEN

#define FLOWLEN   (flowList.size()-1)

◆ IFF

◆ LOOP

◆ STARTFIN

#define STARTFIN   (FlowChart::START_NO | FlowChart::END_NO)

Definition at line 2500 of file vhdldocgen.cpp.

Referenced by FlowChart::writeShape().

◆ STARTL

◆ theTranslator_vhdlType

#define theTranslator_vhdlType   theTranslator->trVhdlType

Function Documentation

◆ addInstance()

void addInstance ( ClassDefMutable * entity,
ClassDefMutable * arch,
ClassDefMutable * inst,
const std::shared_ptr< Entry > & cur )
static

Definition at line 2184 of file vhdldocgen.cpp.

2186{
2187
2188 DString bName,n1;
2189 if (ar==nullptr) return;
2190
2191 if (classEntity==nullptr)
2192 {
2193 //add component inst
2194 n1=cur->type;
2195 goto ferr;
2196 }
2197
2198 if (classEntity==cd) return;
2199
2200 bName=classEntity->name();
2201 // fprintf(stderr,"\naddInstance %s to %s %s %s\n",qPrint( classEntity->name()),qPrint(cd->name()),qPrint(ar->name()),cur->name);
2202 n1=classEntity->name();
2203
2204 if (!cd->isBaseClass(classEntity, true))
2205 {
2206 cd->insertBaseClass(classEntity,n1,Protection::Public,Specifier::Normal,DString());
2207 }
2208 else
2209 {
2210 VhdlDocGen::addBaseClass(cd,classEntity);
2211 }
2212
2213 if (!VhdlDocGen::isSubClass(classEntity,cd,true,0))
2214 {
2215 classEntity->insertSubClass(cd,Protection::Public,Specifier::Normal,DString());
2216 classEntity->setLanguage(SrcLangExt::VHDL);
2217 }
2218
2219ferr:
2220 DString uu=cur->name;
2221 auto md = createMemberDef(
2222 ar->getDefFileName(), cur->startLine,cur->startColumn,
2223 n1,uu,uu, DString(),
2224 Protection::Public,
2225 Specifier::Normal,
2226 cur->isStatic,
2227 Relationship::Member,
2228 MemberType::Variable,
2229 ArgumentList(),
2230 ArgumentList(),
2231 "");
2232 auto mmd = toMemberDefMutable(md.get());
2233
2234 if (!ar->getOutputFileBase().empty())
2235 {
2236 TagInfo tg;
2237 tg.anchor = nullptr;
2238 tg.fileName = ar->getOutputFileBase();
2239 tg.tagName = nullptr;
2240 mmd->setTagInfo(&tg);
2241 }
2242
2243 //fprintf(stderr,"\n%s%s%s\n",qPrint(md->name()),qPrint(cur->brief),qPrint(cur->doc));
2244
2245 mmd->setLanguage(SrcLangExt::VHDL);
2246 mmd->setVhdlSpecifiers(VhdlSpecifier::INSTANTIATION);
2247 mmd->setBriefDescription(cur->brief,cur->briefFile,cur->briefLine);
2248 mmd->setBodySegment(cur->startLine,cur->startLine,-1) ;
2249 mmd->setDocumentation(cur->doc,cur->docFile,cur->docLine);
2250 FileDef *fd=ar->getFileDef();
2251 mmd->setBodyDef(fd);
2252 ar->insertMember(md.get());
2254 mn->push_back(std::move(md));
2255
2256}
This class represents an function or template argument list.
Definition arguments.h:66
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:88
DString()=default
virtual void setBodyDef(const FileDef *fd)=0
static MemberNameLinkedMap * functionNameLinkedMap
Definition doxygen.h:105
A model of a file symbol.
Definition filedef.h:97
T * add(const char *k, Args &&... args)
Definition linkedmap.h:90
void push_back(Ptr &&p)
Definition membername.h:52
This struct is used to capture the tag file information for an Entry.
Definition entry.h:101
DString tagName
Definition entry.h:103
DString anchor
Definition entry.h:105
DString fileName
Definition entry.h:104
static void addBaseClass(ClassDef *cd, ClassDef *ent)
static bool isSubClass(ClassDef *cd, ClassDef *scd, bool followInstances, int level)
std::unique_ptr< MemberDef > createMemberDef(const DString &defFileName, int defLine, size_t defColumn, const DString &type, const DString &name, const DString &args, const DString &excp, Protection prot, Specifier virt, bool stat, Relationship related, MemberType t, const ArgumentList &tal, const ArgumentList &al, const DString &metaData)
Factory method to create a new instance of a MemberDef.
MemberDefMutable * toMemberDefMutable(Definition *d)
@ INSTANTIATION
Definition types.h:791

References LinkedMap< T, Hash, KeyEqual, Map >::add(), VhdlDocGen::addBaseClass(), addInstance(), TagInfo::anchor, createMemberDef(), DString::DString(), DString::empty(), TagInfo::fileName, Doxygen::functionNameLinkedMap, Definition::getDefFileName(), ClassDef::getFileDef(), Definition::getOutputFileBase(), ClassDefMutable::insertBaseClass(), ClassDefMutable::insertMember(), ClassDefMutable::insertSubClass(), INSTANTIATION, ClassDef::isBaseClass(), VhdlDocGen::isSubClass(), Definition::name(), MemberName::push_back(), DefinitionMutable::setBodyDef(), DefinitionMutable::setLanguage(), TagInfo::tagName, and toMemberDefMutable().

Referenced by addInstance(), and VhdlDocGen::computeVhdlComponentRelations().

◆ alignText()

void alignText ( DString & q)
static

Definition at line 2545 of file vhdldocgen.cpp.

2546{
2547 if (q.length()<=80) return;
2548
2549 if (q.length()>200)
2550 {
2551 q.resize(200);
2552 }
2553
2554 q.append(" ...");
2555
2556 DString str(q);
2557 DString temp;
2558
2559 while (str.length()>80)
2560 {
2561 size_t j0 = str.rfind(' ',80);
2562 size_t j1 = str.rfind('|',80);
2563 size_t j = j0!=DString::npos && j1!=DString::npos ? std::max(j0,j1) :
2564 j0!=DString::npos ? j0 : j1;
2565 if (j==DString::npos || j==0)
2566 {
2567 temp+=str;
2568 q=temp;
2569 return;
2570 }
2571 else
2572 {
2573 DString qcs=str.left(j);
2574 temp+=qcs+"\\";
2575 temp+="n";
2576 str.remove(0,j);
2577 }
2578 }//while
2579
2580 q=temp+str;
2581// #endif
2582}
void resize(size_t newlen)
Definition dstring.h:213
DString & remove(size_t index, size_t len)
Definition dstring.h:539
static constexpr size_t npos
value used to indicate 'not found' or 'to the end of the string', matching std::string::npos
Definition dstring.h:182
DString & append(char c)
Definition dstring.h:493
DString left(size_t len) const
Definition dstring.h:310
size_t length() const
Returns the length of the string, not counting the 0-terminator.
Definition dstring.h:155

References alignText(), DString::append(), DString::left(), DString::length(), DString::npos, DString::remove(), DString::resize(), and DString::rfind().

Referenced by alignText(), and FlowChart::writeShape().

◆ compareString()

int compareString ( const DString & s1,
const DString & s2 )
static

Definition at line 116 of file vhdldocgen.cpp.

117{
118 return dstricmp(s1.stripWhiteSpace(),s2.stripWhiteSpace());
119}
DString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
Definition dstring.h:341
int dstricmp(const char *s1, const char *s2)
Definition dstring.cpp:440

References compareString(), dstricmp(), and DString::stripWhiteSpace().

Referenced by compareString(), and VhdlDocGen::findFunction().

◆ findMemFlow()

const MemberDef * findMemFlow ( const MemberDef * mdef)
static

Definition at line 2382 of file vhdldocgen.cpp.

2383{
2384 for (const auto &md : mdList)
2385 {
2386 if (md->name()==mdef->name() && md->getStartBodyLine()==mdef->getStartBodyLine())
2387 {
2388 return md;
2389 }
2390 }
2391 return nullptr;
2392}
virtual const DString & name() const =0
virtual int getStartBodyLine() const =0
static std::vector< const MemberDef * > mdList

References findMemFlow(), Definition::getStartBodyLine(), mdList, and Definition::name().

Referenced by VhdlDocGen::createFlowChart(), and findMemFlow().

◆ getSpecifierTypeFromClass()

VhdlSpecifier getSpecifierTypeFromClass ( const ClassDef * cd)
static

Definition at line 413 of file vhdldocgen.cpp.

414{
416
417 DString type;
422 else if (ii==VhdlDocGen::PACKBODYCLASS)
424 else if (ii==VhdlDocGen::PACKAGECLASS)
427}
virtual Protection protection() const =0
Return the protection level (Public,Protected,Private) in which this compound was found.
@ ARCHITECTURECLASS
Definition vhdldocgen.h:74
static VhdlClasses convert(Protection prot)
Definition vhdldocgen.h:77

References ARCHITECTURE, VhdlDocGen::ARCHITECTURECLASS, VhdlDocGen::convert(), ENTITY, VhdlDocGen::ENTITYCLASS, getSpecifierTypeFromClass(), PACKAGE, PACKAGE_BODY, VhdlDocGen::PACKAGECLASS, VhdlDocGen::PACKBODYCLASS, ClassDef::protection(), and UNKNOWN.

Referenced by VhdlDocGen::getClassTitle(), getSpecifierTypeFromClass(), VhdlDocGen::writeClassType(), and VhdlDocGen::writeInlineClassLink().

◆ initUCF()

void initUCF ( Entry * root,
const DString & type,
DString & qcs,
int line,
const DString & fileName,
DString & brief )
static

Definition at line 1972 of file vhdldocgen.cpp.

1974{
1975 if (qcs.empty())return;
1976 DString n;
1977
1979 qcs=qcs.stripWhiteSpace();
1980
1981 static const reg::Ex reg(R"([\s=])");
1982 size_t i = findIndex(qcs.str(),reg);
1983 if (i==std::string::npos) return;
1984 if (i==0)
1985 {
1986 n=type;
1988 }
1989 else
1990 {
1991 n=qcs.left(i);
1992 }
1993 qcs=qcs.remove(0,i+1);
1994 // qcs.prepend("|");
1995
1996 qcs.stripPrefix("=");
1997
1998 std::shared_ptr<Entry> current = std::make_shared<Entry>();
1999 current->vhdlSpec=VhdlSpecifier::UCF_CONST;
2000 current->section=EntryType::makeVariable();
2001 current->bodyLine=line;
2002 current->fileName=fileName;
2003 current->type="ucf_const";
2004 current->args+=qcs;
2005 current->lang= SrcLangExt::VHDL ;
2006
2007 // adding dummy name for constraints like VOLTAGE=5,TEMPERATURE=20 C
2008 if (n.empty())
2009 {
2010 n="dummy";
2012 }
2013
2014 current->name= n+"_";
2015 current->name.append(VhdlDocGen::getRecordNumber());
2016
2017 if (!brief.empty())
2018 {
2019 current->brief=brief;
2020 current->briefLine=line;
2021 current->briefFile=fileName;
2022 brief.clear();
2023 }
2024
2025 root->moveToSubEntryAndKeep(current);
2026}
void clear()
Definition dstring.h:218
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:152
const std::string & str() const
Definition dstring.h:649
bool stripPrefix(const DString &prefix)
Definition dstring.h:294
void moveToSubEntryAndKeep(Entry *e)
Definition entry.cpp:146
static void deleteAllChars(DString &s, char c)
static DString getRecordNumber()
Class representing a regular expression.
Definition regex.h:39
Namespace for the regular expression functions.
Definition regex.cpp:31
size_t findIndex(const StringVector &sv, const std::string &s)
find the index of a string in a vector of strings, returns std::string::npos if the string could not ...
Definition stringutil.h:167

References DString::append(), DString::clear(), VhdlDocGen::deleteAllChars(), DString::empty(), findIndex(), VhdlDocGen::getRecordNumber(), initUCF(), DString::left(), Entry::moveToSubEntryAndKeep(), DString::remove(), DString::str(), DString::stripPrefix(), DString::stripWhiteSpace(), and UCF_CONST.

Referenced by initUCF(), and VhdlDocGen::parseUCF().

◆ membersHaveSpecificType()

bool membersHaveSpecificType ( const MemberList * ml,
VhdlSpecifier type )
static

Definition at line 1727 of file vhdldocgen.cpp.

1728{
1729 if (ml==nullptr) return false;
1730 for (const auto &mdd : *ml)
1731 {
1732 if (mdd->getVhdlSpecifiers()==type) //is type in class
1733 {
1734 return true;
1735 }
1736 }
1737 for (const auto &mg : ml->getMemberGroupList())
1738 {
1739 if (!mg->members().empty())
1740 {
1741 if (membersHaveSpecificType(&mg->members(),type)) return true;
1742 }
1743 }
1744 return false;
1745}
static bool membersHaveSpecificType(const MemberList *ml, VhdlSpecifier type)

References MemberList::getMemberGroupList(), and membersHaveSpecificType().

Referenced by membersHaveSpecificType(), and VhdlDocGen::writeVHDLDeclarations().

◆ splitString()

DString splitString ( DString & str,
char c )
static

Definition at line 104 of file vhdldocgen.cpp.

105{
106 DString n=str;
107 size_t i=str.find(c);
108 if (i!=DString::npos && i>0)
109 {
110 n=str.left(i);
111 str=str.remove(0,i+1);
112 }
113 return n;
114}
size_t find(char c, size_t pos=0) const
Definition dstring.h:243

References DString::find(), DString::left(), DString::npos, DString::remove(), and splitString().

Referenced by splitString(), and writeUCFLink().

◆ startFonts()

void startFonts ( const DString & q,
const char * keyword,
OutputList & ol )
static

Definition at line 96 of file vhdldocgen.cpp.

97{
98 auto &codeOL = ol.codeGenerators();
99 codeOL.startFontClass(keyword);
100 codeOL.codify(q);
101 codeOL.endFontClass();
102}
void startFontClass(const DString &c)
Definition outputlist.h:267
const OutputCodeList & codeGenerators() const
Definition outputlist.h:354

References OutputList::codeGenerators(), OutputCodeList::startFontClass(), and startFonts().

Referenced by startFonts(), VhdlDocGen::writeFormatString(), VhdlDocGen::writeFuncProcDocu(), VhdlDocGen::writeFunctionProto(), VhdlDocGen::writeProcedureProto(), and VhdlDocGen::writeStringLink().

◆ writeLink()

void writeLink ( const MemberDef * mdef,
OutputList & ol )
static

Definition at line 88 of file vhdldocgen.cpp.

89{
91 mdef->getOutputFileBase(),
92 mdef->anchor(),
93 mdef->name());
94}
virtual DString anchor() const =0
virtual DString getReference() const =0
virtual DString getOutputFileBase() const =0
void writeObjectLink(const DString &ref, const DString &file, const DString &anchor, const DString &name)
Definition outputlist.h:435

References Definition::anchor(), Definition::getOutputFileBase(), Definition::getReference(), Definition::name(), writeLink(), and OutputList::writeObjectLink().

Referenced by writeLink(), VhdlDocGen::writeRecordUnit(), VhdlDocGen::writeSource(), VhdlDocGen::writeStringLink(), writeUCFLink(), VhdlDocGen::writeVHDLDeclaration(), and VhdlDocGen::writeVHDLTypeDocumentation().

◆ writeUCFLink()

void writeUCFLink ( const MemberDef * mdef,
OutputList & ol )
static

Definition at line 2029 of file vhdldocgen.cpp.

2030{
2031
2032 DString largs(mdef->argsString());
2033 DString n= splitString(largs, '#');
2034 // VhdlDocGen::adjustRecordMember(mdef);
2035 bool equ=(n.length()==largs.length());
2036
2037 if (!equ)
2038 {
2039 ol.writeString(n);
2040 ol.docify(" ");
2041 ol.insertMemberAlign();
2042 }
2043
2044 if (mdef->name().contains("dummy")==0)
2045 {
2046 writeLink(mdef,ol);
2047 }
2048 if (equ)
2049 {
2050 ol.insertMemberAlign();
2051 }
2052 ol.docify(" ");
2053 VhdlDocGen::formatString(largs,ol,mdef);
2054}
int contains(char c, bool cs=true) const
Definition dstring.cpp:81
virtual DString argsString() const =0
void docify(const DString &s)
Definition outputlist.h:433
void insertMemberAlign(bool templ=false)
Definition outputlist.h:513
void writeString(const DString &text)
Definition outputlist.h:407
static void formatString(const DString &, OutputList &ol, const MemberDef *)
static DString splitString(DString &str, char c)
static void writeLink(const MemberDef *mdef, OutputList &ol)

References MemberDef::argsString(), DString::contains(), OutputList::docify(), VhdlDocGen::formatString(), OutputList::insertMemberAlign(), DString::length(), Definition::name(), splitString(), writeLink(), OutputList::writeString(), and writeUCFLink().

Referenced by writeUCFLink(), and VhdlDocGen::writeVHDLDeclaration().

Variable Documentation

◆ flowCol

struct [struct].flowCol flowCol
Initial value:
=
{ "green",
"red",
"black",
"khaki",
"0.7 0.3 1.0",
"lightyellow",
"white",
"lightcyan"
}

Referenced by FlowChart::buildCommentNodes(), FlowChart::writeEdge(), and FlowChart::writeShape().

◆ flowList

◆ flowMember

const MemberDef* flowMember =nullptr
static

Definition at line 74 of file vhdldocgen.cpp.

Referenced by VhdlDocGen::getFlowMember(), and VhdlDocGen::setFlowMember().

◆ g_classList

std::vector<ClassDef*> g_classList
static

◆ g_packages

std::map<ClassDef*,std::vector<ClassDef*> > g_packages
static

◆ g_varMap

std::map<std::string,const MemberDef*> g_varMap
static

◆ g_vhdlKeyWordSet0

const std::unordered_set< std::string > g_vhdlKeyWordSet0
static
Initial value:
=
{
"abs","access","after","alias","all","and","architecture","array","assert","assume","assume_guarantee","attribute",
"begin","block","body","buffer","bus",
"case","component","configuration","constant","context","cover",
"default","disconnect","downto",
"else","elsif","end","entity","exit",
"fairness","file","for","force","function",
"generate","generic","group","guarded",
"if","impure","in","inertial","inout","is",
"label","library","linkage","literal","loop",
"map","mod",
"nand","new","next","nor","not","null",
"of","on","open","or","others","out",
"package","parameter","port","postponed","procedure","process","property","protected","pure",
"range","record","register","reject","release","restrict","restrict_guarantee","rem","report","rol","ror","return",
"select","sequence","severity","signal","shared","sla","sll","sra","srl","strong","subtype",
"then","to","transport","type",
"unaffected","units","until","use",
"variable","vmode","vprop","vunit",
"wait","when","while","with",
"xor","xnor"
}

Definition at line 124 of file vhdldocgen.cpp.

Referenced by VhdlDocGen::findKeyWord().

◆ g_vhdlKeyWordSet1

const std::unordered_set< std::string> g_vhdlKeyWordSet1
static
Initial value:
=
{
"natural","unsigned","signed","string","boolean", "bit","bit_vector","character",
"std_ulogic","std_ulogic_vector","std_logic","std_logic_vector","integer",
"real","float","ufixed","sfixed","time","positive"
}

Definition at line 150 of file vhdldocgen.cpp.

Referenced by VhdlDocGen::findKeyWord().

◆ g_vhdlKeyWordSet2

const std::unordered_set< std::string > g_vhdlKeyWordSet2
static
Initial value:
=
{
"abs","and","or","not","mod","xor","rem","xnor","ror","rol","sla","sll"
}

Definition at line 158 of file vhdldocgen.cpp.

Referenced by VhdlDocGen::findKeyWord().

◆ g_vhdlKeyWordSet3

const std::unordered_set< std::string > g_vhdlKeyWordSet3
static
Initial value:
=
{
"base","left","right","high","low","ascending",
"image","value","pos","val","succ","pred","leftof","rightof","left","right","high","low",
"range","reverse_range","length","ascending","delayed","stable","quiet","transaction","event",
"active","last_event","last_active","last_value","driving","driving_value","simple_name","instance_name","path_name"
}

Definition at line 164 of file vhdldocgen.cpp.

Referenced by VhdlDocGen::findKeyWord().

◆ g_vhdlMutex

std::recursive_mutex g_vhdlMutex
static

◆ ifcounter

int ifcounter =0
static

◆ mdList

std::vector<const MemberDef*> mdList
static

Definition at line 2380 of file vhdldocgen.cpp.

Referenced by VhdlDocGen::createFlowChart(), and findMemFlow().

◆ nodeCounter

int nodeCounter =0
static

Definition at line 2513 of file vhdldocgen.cpp.

Referenced by FlowChart::delFlowList(), and FlowChart::FlowChart().

◆ recordCounter

int recordCounter =0
static

Definition at line 736 of file vhdldocgen.cpp.

Referenced by VhdlDocGen::getRecordNumber().