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 "qcstring.h"
#include "vhdldocgen.h"
#include "message.h"
#include "config.h"
#include "doxygen.h"
#include "util.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.

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 QCString &type, QCString &qcs, int line, const QCString &fileName, QCString &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 QCString &q, const char *keyword, OutputList &ol)
static QCString splitString (QCString &str, char c)
static int compareString (const QCString &s1, const QCString &s2)
static VhdlSpecifier getSpecifierTypeFromClass (const ClassDef *cd)
static bool membersHaveSpecificType (const MemberList *ml, VhdlSpecifier type)
static const MemberDeffindMemFlow (const MemberDef *mdef)
void alignText (QCString &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
struct { 
   const char *   textNodeLink 
   const char *   yesNodeLink 
   const char *   noNodeLink 
   const char *   comment 
   const char *   decisionNode 
   const char *   varNode 
   const char *   startEndNode 
   const char *   textNode 
flowCol
std::vector< FlowChartflowList

Macro Definition Documentation

◆ DECLN

#define DECLN
Value:

Definition at line 2517 of file vhdldocgen.cpp.

2517#define DECLN (FlowChart::WHEN_NO | \
2518 FlowChart::ELSIF_NO | FlowChart::IF_NO | \
2519 FlowChart::FOR_NO | FlowChart::WHILE_NO | \
2520 FlowChart::CASE_NO | FlowChart::LOOP_NO )

Referenced by FlowChart::writeShape().

◆ EE

Definition at line 2529 of file vhdldocgen.cpp.

◆ EEND

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

Definition at line 2525 of file vhdldocgen.cpp.

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

◆ EMPTNODE

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

Definition at line 2530 of file vhdldocgen.cpp.

Referenced by FlowChart::printNode().

◆ EMPTY

#define EMPTY   (EEND | FlowChart::ELSIF_NO)

Definition at line 2528 of file vhdldocgen.cpp.

Referenced by FlowChart::colTextNodes().

◆ ENDCL

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

Definition at line 2524 of file vhdldocgen.cpp.

Referenced by FlowChart::writeShape().

◆ EXITNEXT

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

Definition at line 2527 of file vhdldocgen.cpp.

Referenced by FlowChart::writeShape().

◆ FLOWLEN

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

◆ IFF

◆ LOOP

#define LOOP
Value:

Definition at line 2522 of file vhdldocgen.cpp.

2522#define LOOP (FlowChart::FOR_NO | FlowChart::WHILE_NO | \
2523 FlowChart::LOOP_NO )

Referenced by FlowChart::findLabel(), FlowChart::findPrevLoop(), and FlowChart::writeShape().

◆ STARTFIN

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

Definition at line 2521 of file vhdldocgen.cpp.

Referenced by FlowChart::writeShape().

◆ STARTL

#define STARTL
Value:

Definition at line 2514 of file vhdldocgen.cpp.

2514#define STARTL (FlowChart::WHILE_NO | FlowChart::IF_NO | \
2515 FlowChart::FOR_NO | FlowChart::CASE_NO | \
2516 FlowChart::LOOP_NO | WHEN_NO)

Referenced by FlowChart::FlowChart(), FlowChart::printNode(), and FlowChart::writeEdge().

◆ 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 2204 of file vhdldocgen.cpp.

2206{
2207
2208 QCString bName,n1;
2209 if (ar==nullptr) return;
2210
2211 if (classEntity==nullptr)
2212 {
2213 //add component inst
2214 n1=cur->type;
2215 goto ferr;
2216 }
2217
2218 if (classEntity==cd) return;
2219
2220 bName=classEntity->name();
2221 // fprintf(stderr,"\naddInstance %s to %s %s %s\n",qPrint( classEntity->name()),qPrint(cd->name()),qPrint(ar->name()),cur->name);
2222 n1=classEntity->name();
2223
2224 if (!cd->isBaseClass(classEntity, true))
2225 {
2226 cd->insertBaseClass(classEntity,n1,Protection::Public,Specifier::Normal,QCString());
2227 }
2228 else
2229 {
2230 VhdlDocGen::addBaseClass(cd,classEntity);
2231 }
2232
2233 if (!VhdlDocGen::isSubClass(classEntity,cd,true,0))
2234 {
2235 classEntity->insertSubClass(cd,Protection::Public,Specifier::Normal,QCString());
2236 classEntity->setLanguage(SrcLangExt::VHDL);
2237 }
2238
2239ferr:
2240 QCString uu=cur->name;
2241 auto md = createMemberDef(
2242 ar->getDefFileName(), cur->startLine,cur->startColumn,
2243 n1,uu,uu, QCString(),
2244 Protection::Public,
2245 Specifier::Normal,
2246 cur->isStatic,
2247 Relationship::Member,
2249 ArgumentList(),
2250 ArgumentList(),
2251 "");
2252 auto mmd = toMemberDefMutable(md.get());
2253
2254 if (!ar->getOutputFileBase().isEmpty())
2255 {
2256 TagInfo tg;
2257 tg.anchor = nullptr;
2258 tg.fileName = ar->getOutputFileBase();
2259 tg.tagName = nullptr;
2260 mmd->setTagInfo(&tg);
2261 }
2262
2263 //fprintf(stderr,"\n%s%s%s\n",qPrint(md->name()),qPrint(cur->brief),qPrint(cur->doc));
2264
2265 mmd->setLanguage(SrcLangExt::VHDL);
2266 mmd->setVhdlSpecifiers(VhdlSpecifier::INSTANTIATION);
2267 mmd->setBriefDescription(cur->brief,cur->briefFile,cur->briefLine);
2268 mmd->setBodySegment(cur->startLine,cur->startLine,-1) ;
2269 mmd->setDocumentation(cur->doc,cur->docFile,cur->docLine);
2270 FileDef *fd=ar->getFileDef();
2271 mmd->setBodyDef(fd);
2272 ar->insertMember(md.get());
2274 mn->push_back(std::move(md));
2275
2276}
This class represents an function or template argument list.
Definition arguments.h:65
virtual void setBodyDef(const FileDef *fd)=0
static MemberNameLinkedMap * functionNameLinkedMap
Definition doxygen.h:112
A model of a file symbol.
Definition filedef.h:99
void push_back(Ptr &&p)
Definition membername.h:54
This is an alternative implementation of QCString.
Definition qcstring.h:101
static void addBaseClass(ClassDef *cd, ClassDef *ent)
static bool isSubClass(ClassDef *cd, ClassDef *scd, bool followInstances, int level)
MemberDefMutable * toMemberDefMutable(Definition *d)
std::unique_ptr< MemberDef > createMemberDef(const QCString &defFileName, int defLine, int defColumn, const QCString &type, const QCString &name, const QCString &args, const QCString &excp, Protection prot, Specifier virt, bool stat, Relationship related, MemberType t, const ArgumentList &tal, const ArgumentList &al, const QCString &metaData)
Factory method to create a new instance of a MemberDef.
This struct is used to capture the tag file information for an Entry.
Definition entry.h:103
QCString anchor
Definition entry.h:106
QCString fileName
Definition entry.h:105
QCString tagName
Definition entry.h:104
@ Variable
Definition types.h:555
@ INSTANTIATION
Definition types.h:731

References VhdlDocGen::addBaseClass(), TagInfo::anchor, createMemberDef(), TagInfo::fileName, Doxygen::functionNameLinkedMap, Definition::getDefFileName(), ClassDef::getFileDef(), Definition::getOutputFileBase(), ClassDefMutable::insertBaseClass(), ClassDefMutable::insertMember(), ClassDefMutable::insertSubClass(), INSTANTIATION, ClassDef::isBaseClass(), QCString::isEmpty(), VhdlDocGen::isSubClass(), Definition::name(), MemberName::push_back(), DefinitionMutable::setBodyDef(), DefinitionMutable::setLanguage(), TagInfo::tagName, toMemberDefMutable(), and Variable.

Referenced by VhdlDocGen::computeVhdlComponentRelations().

◆ alignText()

void alignText ( QCString & q)

Definition at line 2566 of file vhdldocgen.cpp.

2567{
2568 if (q.length()<=80) return;
2569
2570 if (q.length()>200)
2571 {
2572 q.resize(200);
2573 }
2574
2575 q.append(" ...");
2576
2577 QCString str(q);
2578 QCString temp;
2579
2580 while (str.length()>80)
2581 {
2582 int j=std::max(str.findRev(' ',80),str.findRev('|',80));
2583 if (j<=0)
2584 {
2585 temp+=str;
2586 q=temp;
2587 return;
2588 }
2589 else
2590 {
2591 QCString qcs=str.left(j);
2592 temp+=qcs+"\\";
2593 temp+="n";
2594 str.remove(0,j);
2595 }
2596 }//while
2597
2598 q=temp+str;
2599// #endif
2600}
size_t length() const
Returns the length of the string, not counting the 0-terminator.
Definition qcstring.h:166
QCString & remove(size_t index, size_t len)
Definition qcstring.h:442
void resize(size_t newlen)
Definition qcstring.h:180
QCString & append(char c)
Definition qcstring.h:396
QCString left(size_t len) const
Definition qcstring.h:229

References QCString::append(), QCString::findRev(), QCString::left(), QCString::length(), QCString::remove(), and QCString::resize().

Referenced by FlowChart::writeShape().

◆ compareString()

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

Definition at line 117 of file vhdldocgen.cpp.

118{
119 return qstricmp(s1.stripWhiteSpace(),s2.stripWhiteSpace());
120}
QCString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
Definition qcstring.h:260
int qstricmp(const char *s1, const char *s2)
Definition qcstring.cpp:447

References qstricmp(), and QCString::stripWhiteSpace().

Referenced by VhdlDocGen::findFunction().

◆ findMemFlow()

const MemberDef * findMemFlow ( const MemberDef * mdef)
static

Definition at line 2403 of file vhdldocgen.cpp.

2404{
2405 for (const auto &md : mdList)
2406 {
2407 if (md->name()==mdef->name() && md->getStartBodyLine()==mdef->getStartBodyLine())
2408 {
2409 return md;
2410 }
2411 }
2412 return nullptr;
2413}
virtual int getStartBodyLine() const =0
virtual const QCString & name() const =0
static std::vector< const MemberDef * > mdList

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

Referenced by VhdlDocGen::createFlowChart().

◆ getSpecifierTypeFromClass()

VhdlSpecifier getSpecifierTypeFromClass ( const ClassDef * cd)
static

Definition at line 414 of file vhdldocgen.cpp.

415{
417
418 QCString type;
423 else if (ii==VhdlDocGen::PACKBODYCLASS)
425 else if (ii==VhdlDocGen::PACKAGECLASS)
428}
virtual Protection protection() const =0
Return the protection level (Public,Protected,Private) in which this compound was found.
@ ARCHITECTURECLASS
Definition vhdldocgen.h:77
static VhdlClasses convert(Protection prot)
Definition vhdldocgen.h:80

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

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

◆ initUCF()

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

Definition at line 1990 of file vhdldocgen.cpp.

1992{
1993 if (qcs.isEmpty())return;
1994 QCString n;
1995
1997 qcs=qcs.stripWhiteSpace();
1998
1999 static const reg::Ex reg(R"([\s=])");
2000 int i = findIndex(qcs.str(),reg);
2001 if (i<0) return;
2002 if (i==0)
2003 {
2004 n=type;
2006 }
2007 else
2008 {
2009 n=qcs.left(i);
2010 }
2011 qcs=qcs.remove(0,i+1);
2012 // qcs.prepend("|");
2013
2014 qcs.stripPrefix("=");
2015
2016 std::shared_ptr<Entry> current = std::make_shared<Entry>();
2017 current->vhdlSpec=VhdlSpecifier::UCF_CONST;
2018 current->section=EntryType::makeVariable();
2019 current->bodyLine=line;
2020 current->fileName=fileName;
2021 current->type="ucf_const";
2022 current->args+=qcs;
2023 current->lang= SrcLangExt::VHDL ;
2024
2025 // adding dummy name for constraints like VOLTAGE=5,TEMPERATURE=20 C
2026 if (n.isEmpty())
2027 {
2028 n="dummy";
2030 }
2031
2032 current->name= n+"_";
2033 current->name.append(VhdlDocGen::getRecordNumber());
2034
2035 if (!brief.isEmpty())
2036 {
2037 current->brief=brief;
2038 current->briefLine=line;
2039 current->briefFile=fileName;
2040 brief.clear();
2041 }
2042
2043 root->moveToSubEntryAndKeep(current);
2044}
void moveToSubEntryAndKeep(Entry *e)
Definition entry.cpp:144
bool isEmpty() const
Returns TRUE iff the string is empty.
Definition qcstring.h:163
const std::string & str() const
Definition qcstring.h:552
bool stripPrefix(const QCString &prefix)
Definition qcstring.h:213
void clear()
Definition qcstring.h:182
static QCString getRecordNumber()
static void deleteAllChars(QCString &s, char c)
Class representing a regular expression.
Definition regex.h:39
Namespace for the regular expression functions.
Definition regex.cpp:31
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:6564

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

Referenced by VhdlDocGen::parseUCF().

◆ membersHaveSpecificType()

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

Definition at line 1729 of file vhdldocgen.cpp.

1730{
1731 if (ml==nullptr) return FALSE;
1732 for (const auto &mdd : *ml)
1733 {
1734 if (mdd->getVhdlSpecifiers()==type) //is type in class
1735 {
1736 return TRUE;
1737 }
1738 }
1739 for (const auto &mg : ml->getMemberGroupList())
1740 {
1741 if (!mg->members().empty())
1742 {
1743 if (membersHaveSpecificType(&mg->members(),type)) return TRUE;
1744 }
1745 }
1746 return FALSE;
1747}
#define TRUE
Definition qcstring.h:37
#define FALSE
Definition qcstring.h:34
static bool membersHaveSpecificType(const MemberList *ml, VhdlSpecifier type)

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

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

◆ splitString()

QCString splitString ( QCString & str,
char c )
static

Definition at line 105 of file vhdldocgen.cpp.

106{
107 QCString n=str;
108 int i=str.find(c);
109 if (i>0)
110 {
111 n=str.left(i);
112 str=str.remove(0,i+1);
113 }
114 return n;
115}
int find(char c, int index=0, bool cs=TRUE) const
Definition qcstring.cpp:43

References QCString::find(), QCString::left(), and QCString::remove().

Referenced by writeUCFLink().

◆ startFonts()

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

Definition at line 97 of file vhdldocgen.cpp.

98{
99 auto &codeOL = ol.codeGenerators();
100 codeOL.startFontClass(keyword);
101 codeOL.codify(q);
102 codeOL.endFontClass();
103}
void startFontClass(const QCString &c)
Definition outputlist.h:270
const OutputCodeList & codeGenerators() const
Definition outputlist.h:358

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

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

◆ writeLink()

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

Definition at line 89 of file vhdldocgen.cpp.

90{
92 mdef->getOutputFileBase(),
93 mdef->anchor(),
94 mdef->name());
95}
virtual QCString anchor() const =0
virtual QCString getReference() const =0
virtual QCString getOutputFileBase() const =0
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
Definition outputlist.h:439

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

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

◆ writeUCFLink()

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

Definition at line 2047 of file vhdldocgen.cpp.

2048{
2049
2050 QCString largs(mdef->argsString());
2051 QCString n= splitString(largs, '#');
2052 // VhdlDocGen::adjustRecordMember(mdef);
2053 bool equ=(n.length()==largs.length());
2054
2055 if (!equ)
2056 {
2057 ol.writeString(n);
2058 ol.docify(" ");
2059 ol.insertMemberAlign();
2060 }
2061
2062 if (mdef->name().contains("dummy")==0)
2063 {
2064 writeLink(mdef,ol);
2065 }
2066 if (equ)
2067 {
2068 ol.insertMemberAlign();
2069 }
2070 ol.docify(" ");
2071 VhdlDocGen::formatString(largs,ol,mdef);
2072}
virtual QCString argsString() const =0
void writeString(const QCString &text)
Definition outputlist.h:411
void docify(const QCString &s)
Definition outputlist.h:437
void insertMemberAlign(bool templ=FALSE)
Definition outputlist.h:517
int contains(char c, bool cs=TRUE) const
Definition qcstring.cpp:148
static void formatString(const QCString &, OutputList &ol, const MemberDef *)
static void writeLink(const MemberDef *mdef, OutputList &ol)
static QCString splitString(QCString &str, char c)

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

Referenced by VhdlDocGen::writeVHDLDeclaration().

Variable Documentation

◆ comment

const char* comment

◆ decisionNode

const char* decisionNode

Definition at line 2545 of file vhdldocgen.cpp.

◆ [struct]

struct { ... } 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

◆ 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 125 of file vhdldocgen.cpp.

126{
127 "abs","access","after","alias","all","and","architecture","array","assert","assume","assume_guarantee","attribute",
128 "begin","block","body","buffer","bus",
129 "case","component","configuration","constant","context","cover",
130 "default","disconnect","downto",
131 "else","elsif","end","entity","exit",
132 "fairness","file","for","force","function",
133 "generate","generic","group","guarded",
134 "if","impure","in","inertial","inout","is",
135 "label","library","linkage","literal","loop",
136 "map","mod",
137 "nand","new","next","nor","not","null",
138 "of","on","open","or","others","out",
139 "package","parameter","port","postponed","procedure","process","property","protected","pure",
140 "range","record","register","reject","release","restrict","restrict_guarantee","rem","report","rol","ror","return",
141 "select","sequence","severity","signal","shared","sla","sll","sra","srl","strong","subtype",
142 "then","to","transport","type",
143 "unaffected","units","until","use",
144 "variable","vmode","vprop","vunit",
145 "wait","when","while","with",
146 "xor","xnor"
147};

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 151 of file vhdldocgen.cpp.

152{
153 "natural","unsigned","signed","string","boolean", "bit","bit_vector","character",
154 "std_ulogic","std_ulogic_vector","std_logic","std_logic_vector","integer",
155 "real","float","ufixed","sfixed","time","positive"
156};

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 159 of file vhdldocgen.cpp.

160{
161 "abs","and","or","not","mod","xor","rem","xnor","ror","rol","sla","sll"
162};

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 165 of file vhdldocgen.cpp.

166{
167 "base","left","right","high","low","ascending",
168 "image","value","pos","val","succ","pred","leftof","rightof","left","right","high","low",
169 "range","reverse_range","length","ascending","delayed","stable","quiet","transaction","event",
170 "active","last_event","last_active","last_value","driving","driving_value","simple_name","instance_name","path_name"
171};

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 2401 of file vhdldocgen.cpp.

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

◆ nodeCounter

int nodeCounter =0
static

Definition at line 2534 of file vhdldocgen.cpp.

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

◆ noNodeLink

const char* noNodeLink

Definition at line 2541 of file vhdldocgen.cpp.

◆ recordCounter

int recordCounter =0
static

Definition at line 738 of file vhdldocgen.cpp.

Referenced by VhdlDocGen::getRecordNumber().

◆ startEndNode

const char* startEndNode

Definition at line 2547 of file vhdldocgen.cpp.

◆ textNode

const char* textNode

Definition at line 2548 of file vhdldocgen.cpp.

◆ textNodeLink

const char* textNodeLink

Definition at line 2539 of file vhdldocgen.cpp.

◆ varNode

const char* varNode

Definition at line 2546 of file vhdldocgen.cpp.

◆ yesNodeLink

const char* yesNodeLink

Definition at line 2540 of file vhdldocgen.cpp.