Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
doxverilog
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
doxverilog
Commits
7b814d4a
Commit
7b814d4a
authored
Aug 10, 2006
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.4.7-20060810
parent
cdd72954
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
425 additions
and
242 deletions
+425
-242
INSTALL
INSTALL
+2
-2
README
README
+2
-2
configure
configure
+1
-1
definition.cpp
src/definition.cpp
+331
-148
definition.h
src/definition.h
+52
-65
namespacedef.cpp
src/namespacedef.cpp
+36
-23
namespacedef.h
src/namespacedef.h
+1
-1
No files found.
INSTALL
View file @
7b814d4a
DOXYGEN Version 1.4.7-200608
09
DOXYGEN Version 1.4.7-200608
10
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (
09
August 2006)
Dimitri van Heesch (
10
August 2006)
README
View file @
7b814d4a
DOXYGEN Version 1.4.7_200608
09
DOXYGEN Version 1.4.7_200608
10
Please read INSTALL for compilation instructions.
...
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
09
August 2006)
Dimitri van Heesch (dimitri@stack.nl) (
10
August 2006)
configure
View file @
7b814d4a
...
...
@@ -20,7 +20,7 @@ doxygen_version_minor=4
doxygen_version_revision
=
7
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn
=
200608
09
doxygen_version_mmn
=
200608
10
bin_dirs
=
`
echo
$PATH
|
sed
-e
"s/:/ /g"
`
...
...
src/definition.cpp
View file @
7b814d4a
...
...
@@ -39,6 +39,94 @@
#define pclose _pclose
#endif
class
DefinitionImpl
{
public
:
void
init
(
const
char
*
df
,
int
dl
,
const
char
*
n
,
const
char
*
b
,
const
char
*
d
,
bool
isSym
)
{
defFileName
=
df
;
int
lastDot
=
defFileName
.
findRev
(
'.'
);
if
(
lastDot
!=-
1
)
{
defFileExt
=
defFileName
.
mid
(
lastDot
);
}
defLine
=
dl
;
name
=
n
;
if
(
name
!=
"<globalScope>"
)
{
//extractNamespaceName(m_name,m_localName,ns);
localName
=
stripScope
(
n
);
}
else
{
localName
=
n
;
}
//printf("m_localName=%s\n",m_localName.data());
if
(
b
)
{
brief
=
new
DocInfo
;
brief
->
doc
=
b
;
}
else
{
brief
=
0
;
}
if
(
d
)
{
details
=
new
DocInfo
;
details
->
doc
=
d
;
}
else
{
details
=
0
;
}
body
=
0
;
sourceRefByDict
=
0
;
sourceRefsDict
=
0
;
sectionDict
=
0
,
outerScope
=
Doxygen
::
globalScope
;
partOfGroups
=
0
;
xrefListItems
=
0
;
isSymbol
=
isSym
;
hidden
=
FALSE
;
}
SectionDict
*
sectionDict
;
// dictionary of all sections
MemberSDict
*
sourceRefByDict
;
MemberSDict
*
sourceRefsDict
;
DocInfo
*
details
;
DocInfo
*
brief
;
BodyInfo
*
body
;
QCString
name
;
// name of the definition
QCString
localName
;
// local (unqualified) name of the definition
// in the future m_name should become m_localName
QCString
symbolName
;
QCString
qualifiedName
;
QCString
ref
;
// reference to external documentation
QList
<
ListItemInfo
>
*
xrefListItems
;
bool
isSymbol
;
bool
hidden
;
Definition
*
outerScope
;
GroupList
*
partOfGroups
;
// where the item was found
QCString
defFileName
;
int
defLine
;
QCString
defFileExt
;
};
//-----------------------------------------------------------------------------------------
static
void
addToMap
(
const
char
*
name
,
Definition
*
d
)
{
QCString
symbolName
=
name
;
...
...
@@ -121,69 +209,23 @@ Definition::Definition(const char *df,int dl,
const
char
*
name
,
const
char
*
b
,
const
char
*
d
,
bool
isSymbol
)
{
//QCString ns;
//printf("Definition(%s) %p\n",name,this);
m_defFileName
=
df
;
int
lastDot
=
m_defFileName
.
findRev
(
'.'
);
if
(
lastDot
!=-
1
)
{
m_defFileExt
=
m_defFileName
.
mid
(
lastDot
);
}
m_defLine
=
dl
;
m_name
=
name
;
if
(
m_name
!=
"<globalScope>"
)
{
//extractNamespaceName(m_name,m_localName,ns);
m_localName
=
stripScope
(
name
);
}
else
{
m_localName
=
name
;
}
//printf("m_localName=%s\n",m_localName.data());
if
(
b
)
{
m_brief
=
new
DocInfo
;
m_brief
->
doc
=
b
;
}
else
{
m_brief
=
0
;
}
if
(
d
)
{
m_details
=
new
DocInfo
;
m_details
->
doc
=
d
;
}
else
{
m_details
=
0
;
}
m_body
=
0
;
m_sourceRefByDict
=
0
;
m_sourceRefsDict
=
0
;
m_sectionDict
=
0
,
m_outerScope
=
Doxygen
::
globalScope
;
m_partOfGroups
=
0
;
m_xrefListItems
=
0
;
m_isSymbol
=
isSymbol
;
m_hidden
=
FALSE
;
if
(
m_isSymbol
)
addToMap
(
name
,
this
);
m_impl
=
new
DefinitionImpl
;
m_impl
->
init
(
df
,
dl
,
name
,
b
,
d
,
isSymbol
);
if
(
isSymbol
)
addToMap
(
name
,
this
);
}
Definition
::~
Definition
()
{
if
(
m_isSymbol
)
removeFromMap
(
this
);
delete
m_sectionDict
;
delete
m_sourceRefByDict
;
delete
m_sourceRefsDict
;
delete
m_partOfGroups
;
delete
m_xrefListItems
;
delete
m_brief
;
delete
m_details
;
delete
m_body
;
if
(
m_impl
->
isSymbol
)
removeFromMap
(
this
);
delete
m_impl
->
sectionDict
;
delete
m_impl
->
sourceRefByDict
;
delete
m_impl
->
sourceRefsDict
;
delete
m_impl
->
partOfGroups
;
delete
m_impl
->
xrefListItems
;
delete
m_impl
->
brief
;
delete
m_impl
->
details
;
delete
m_impl
->
body
;
delete
m_impl
;
}
void
Definition
::
addSectionsToDefinition
(
QList
<
SectionInfo
>
*
anchorList
)
...
...
@@ -201,13 +243,13 @@ void Definition::addSectionsToDefinition(QList<SectionInfo> *anchorList)
gsi
=
new
SectionInfo
(
*
si
);
Doxygen
::
sectionDict
.
insert
(
si
->
label
,
gsi
);
}
if
(
m_sectionDict
==
0
)
if
(
m_
impl
->
sectionDict
==
0
)
{
m_sectionDict
=
new
SectionDict
(
17
);
m_
impl
->
sectionDict
=
new
SectionDict
(
17
);
}
if
(
m_sectionDict
->
find
(
gsi
->
label
)
==
0
)
if
(
m_
impl
->
sectionDict
->
find
(
gsi
->
label
)
==
0
)
{
m_sectionDict
->
insert
(
gsi
->
label
,
gsi
);
m_
impl
->
sectionDict
->
insert
(
gsi
->
label
,
gsi
);
gsi
->
definition
=
this
;
}
si
=
anchorList
->
next
();
...
...
@@ -216,10 +258,10 @@ void Definition::addSectionsToDefinition(QList<SectionInfo> *anchorList)
void
Definition
::
writeDocAnchorsToTagFile
()
{
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
()
&&
m_sectionDict
)
if
(
!
Config_getString
(
"GENERATE_TAGFILE"
).
isEmpty
()
&&
m_
impl
->
sectionDict
)
{
//printf("%s: writeDocAnchorsToTagFile(%d)\n",name().data(),m_sectionDict->count());
QDictIterator
<
SectionInfo
>
sdi
(
*
m_sectionDict
);
QDictIterator
<
SectionInfo
>
sdi
(
*
m_
impl
->
sectionDict
);
SectionInfo
*
si
;
for
(;(
si
=
sdi
.
current
());
++
sdi
)
{
...
...
@@ -272,13 +314,13 @@ void Definition::setDocumentation(const char *d,const char *docFile,int docLine,
doc
=
d
;
}
//printf("setting docs for %s: `%s'\n",name().data(),m_doc.data());
if
(
m_details
==
0
)
if
(
m_
impl
->
details
==
0
)
{
m_details
=
new
DocInfo
;
m_
impl
->
details
=
new
DocInfo
;
}
m_details
->
doc
=
doc
;
m_details
->
file
=
docFile
;
m_details
->
line
=
docLine
;
m_
impl
->
details
->
doc
=
doc
;
m_
impl
->
details
->
file
=
docFile
;
m_
impl
->
details
->
line
=
docLine
;
}
#define uni_isupper(c) (QChar(c).category()==QChar::Letter_Uppercase)
...
...
@@ -292,24 +334,24 @@ void Definition::setBriefDescription(const char *b,const char *briefFile,int bri
outputLanguage
!=
"Korean"
;
//fprintf(stderr,"Definition::setBriefDescription(%s,%s,%d)\n",b,briefFile,briefLine);
if
(
m_brief
==
0
)
if
(
m_
impl
->
brief
==
0
)
{
m_brief
=
new
DocInfo
;
m_
impl
->
brief
=
new
DocInfo
;
}
m_brief
->
doc
=
QCString
(
b
).
stripWhiteSpace
();
int
bl
=
m_brief
->
doc
.
length
();
m_
impl
->
brief
->
doc
=
QCString
(
b
).
stripWhiteSpace
();
int
bl
=
m_
impl
->
brief
->
doc
.
length
();
if
(
bl
>
0
&&
needsDot
)
// add punctuation if needed
{
switch
(
m_brief
->
doc
.
at
(
bl
-
1
))
switch
(
m_
impl
->
brief
->
doc
.
at
(
bl
-
1
))
{
case
'.'
:
case
'!'
:
case
'?'
:
break
;
default
:
if
(
uni_isupper
(
m_
brief
->
doc
.
at
(
0
)))
m_
brief
->
doc
+=
'.'
;
if
(
uni_isupper
(
m_
impl
->
brief
->
doc
.
at
(
0
)))
m_impl
->
brief
->
doc
+=
'.'
;
break
;
}
}
m_brief
->
file
=
briefFile
;
m_brief
->
line
=
briefLine
;
m_
impl
->
brief
->
file
=
briefFile
;
m_
impl
->
brief
->
line
=
briefLine
;
}
/*! Reads a fragment of code from file \a fileName starting at
...
...
@@ -435,7 +477,7 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
ol
.
pushGeneratorState
();
//printf("Definition::writeSourceRef %d %p\n",bodyLine,bodyDef);
if
(
Config_getBool
(
"SOURCE_BROWSER"
)
&&
m_
body
&&
m_body
->
startLine
!=-
1
&&
m_
body
->
fileDef
)
m_
impl
->
body
&&
m_impl
->
body
->
startLine
!=-
1
&&
m_impl
->
body
->
fileDef
)
{
QCString
refText
=
theTranslator
->
trDefinedAtLineInSourceFile
();
int
lineMarkerPos
=
refText
.
find
(
"@0"
);
...
...
@@ -443,8 +485,8 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
if
(
lineMarkerPos
!=-
1
&&
fileMarkerPos
!=-
1
)
// should always pass this.
{
QCString
lineStr
,
anchorStr
;
lineStr
.
sprintf
(
"%d"
,
m_body
->
startLine
);
anchorStr
.
sprintf
(
Htags
::
useHtags
?
"L%d"
:
"l%05d"
,
m_body
->
startLine
);
lineStr
.
sprintf
(
"%d"
,
m_
impl
->
body
->
startLine
);
anchorStr
.
sprintf
(
Htags
::
useHtags
?
"L%d"
:
"l%05d"
,
m_
impl
->
body
->
startLine
);
ol
.
newParagraph
();
if
(
lineMarkerPos
<
fileMarkerPos
)
// line marker before file marker
{
...
...
@@ -452,7 +494,7 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
ol
.
parseText
(
refText
.
left
(
lineMarkerPos
));
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
// write line link (HTML only)
ol
.
writeObjectLink
(
0
,
m_body
->
fileDef
->
getSourceFileBase
(),
ol
.
writeObjectLink
(
0
,
m_
impl
->
body
->
fileDef
->
getSourceFileBase
(),
anchorStr
,
lineStr
);
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Html
);
...
...
@@ -466,12 +508,12 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
// write file link (HTML only)
ol
.
writeObjectLink
(
0
,
m_body
->
fileDef
->
getSourceFileBase
(),
0
,
m_body
->
fileDef
->
name
());
ol
.
writeObjectLink
(
0
,
m_
impl
->
body
->
fileDef
->
getSourceFileBase
(),
0
,
m_
impl
->
body
->
fileDef
->
name
());
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Html
);
// write normal text (Latex/Man only)
ol
.
docify
(
m_body
->
fileDef
->
name
());
ol
.
docify
(
m_
impl
->
body
->
fileDef
->
name
());
ol
.
enableAll
();
// write text right from file marker
...
...
@@ -484,12 +526,12 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
ol
.
parseText
(
refText
.
left
(
fileMarkerPos
));
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
// write file link (HTML only)
ol
.
writeObjectLink
(
0
,
m_body
->
fileDef
->
getSourceFileBase
(),
0
,
m_body
->
fileDef
->
name
());
ol
.
writeObjectLink
(
0
,
m_
impl
->
body
->
fileDef
->
getSourceFileBase
(),
0
,
m_
impl
->
body
->
fileDef
->
name
());
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Html
);
// write normal text (Latex/Man only)
ol
.
docify
(
m_body
->
fileDef
->
name
());
ol
.
docify
(
m_
impl
->
body
->
fileDef
->
name
());
ol
.
enableAll
();
// write text between markers
...
...
@@ -498,7 +540,7 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
// write line link (HTML only)
ol
.
writeObjectLink
(
0
,
m_body
->
fileDef
->
getSourceFileBase
(),
ol
.
writeObjectLink
(
0
,
m_
impl
->
body
->
fileDef
->
getSourceFileBase
(),
anchorStr
,
lineStr
);
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Html
);
...
...
@@ -522,15 +564,15 @@ void Definition::writeSourceDef(OutputList &ol,const char *)
void
Definition
::
setBodySegment
(
int
bls
,
int
ble
)
{
//printf("setBodySegment(%d,%d) for %s\n",bls,ble,name().data());
if
(
m_
body
==
0
)
m_
body
=
new
BodyInfo
;
m_body
->
startLine
=
bls
;
m_body
->
endLine
=
ble
;
if
(
m_
impl
->
body
==
0
)
m_impl
->
body
=
new
BodyInfo
;
m_
impl
->
body
->
startLine
=
bls
;
m_
impl
->
body
->
endLine
=
ble
;
}
void
Definition
::
setBodyDef
(
FileDef
*
fd
)
{
if
(
m_
body
==
0
)
m_
body
=
new
BodyInfo
;
m_body
->
fileDef
=
fd
;
if
(
m_
impl
->
body
==
0
)
m_impl
->
body
=
new
BodyInfo
;
m_
impl
->
body
->
fileDef
=
fd
;
}
/*! Write code of this definition into the documentation */
...
...
@@ -540,16 +582,16 @@ void Definition::writeInlineCode(OutputList &ol,const char *scopeName)
//printf("Source Fragment %s: %d-%d bodyDef=%p\n",name().data(),
// m_startBodyLine,m_endBodyLine,m_bodyDef);
if
(
Config_getBool
(
"INLINE_SOURCES"
)
&&
m_
body
&&
m_
body
->
startLine
!=-
1
&&
m_
body
->
endLine
>=
m_body
->
startLine
&&
m_
body
->
fileDef
)
m_
impl
->
body
&&
m_impl
->
body
->
startLine
!=-
1
&&
m_
impl
->
body
->
endLine
>=
m_impl
->
body
->
startLine
&&
m_impl
->
body
->
fileDef
)
{
QCString
codeFragment
;
int
actualStart
=
m_
body
->
startLine
,
actualEnd
=
m_
body
->
endLine
;
if
(
readCodeFragment
(
m_body
->
fileDef
->
absFilePath
(),
int
actualStart
=
m_
impl
->
body
->
startLine
,
actualEnd
=
m_impl
->
body
->
endLine
;
if
(
readCodeFragment
(
m_
impl
->
body
->
fileDef
->
absFilePath
(),
actualStart
,
actualEnd
,
codeFragment
)
)
{
ParserInterface
*
pIntf
=
Doxygen
::
parserManager
->
getParser
(
m_defFileExt
);
ParserInterface
*
pIntf
=
Doxygen
::
parserManager
->
getParser
(
m_
impl
->
defFileExt
);
pIntf
->
resetCodeParserState
();
//printf("Read:\n`%s'\n\n",codeFragment.data());
MemberDef
*
thisMd
=
0
;
...
...
@@ -560,7 +602,7 @@ void Definition::writeInlineCode(OutputList &ol,const char *scopeName)
codeFragment
,
// input
FALSE
,
// isExample
0
,
// exampleName
m_body
->
fileDef
,
// fileDef
m_
impl
->
body
->
fileDef
,
// fileDef
actualStart
,
// startLine
actualEnd
,
// endLine
TRUE
,
// inlineFragment
...
...
@@ -671,7 +713,7 @@ void Definition::writeSourceReffedBy(OutputList &ol,const char *scopeName)
{
if
(
Config_getBool
(
"REFERENCED_BY_RELATION"
))
{
writeSourceRefList
(
ol
,
scopeName
,
theTranslator
->
trReferencedBy
(),
m_sourceRefByDict
,
FALSE
);
writeSourceRefList
(
ol
,
scopeName
,
theTranslator
->
trReferencedBy
(),
m_
impl
->
sourceRefByDict
,
FALSE
);
}
}
...
...
@@ -679,7 +721,7 @@ void Definition::writeSourceRefs(OutputList &ol,const char *scopeName)
{
if
(
Config_getBool
(
"REFERENCES_RELATION"
))
{
writeSourceRefList
(
ol
,
scopeName
,
theTranslator
->
trReferences
(),
m_sourceRefsDict
,
TRUE
);
writeSourceRefList
(
ol
,
scopeName
,
theTranslator
->
trReferences
(),
m_
impl
->
sourceRefsDict
,
TRUE
);
}
}
...
...
@@ -688,19 +730,19 @@ bool Definition::hasDocumentation() const
static
bool
extractAll
=
Config_getBool
(
"EXTRACT_ALL"
);
static
bool
sourceBrowser
=
Config_getBool
(
"SOURCE_BROWSER"
);
bool
hasDocs
=
(
m_
details
&&
!
m_
details
->
doc
.
isEmpty
())
||
// has detailed docs
(
m_
brief
&&
!
m_
brief
->
doc
.
isEmpty
())
||
// has brief description
(
m_
impl
->
details
&&
!
m_impl
->
details
->
doc
.
isEmpty
())
||
// has detailed docs
(
m_
impl
->
brief
&&
!
m_impl
->
brief
->
doc
.
isEmpty
())
||
// has brief description
extractAll
||
// extract everything
(
sourceBrowser
&&
m_body
&&
m_
body
->
startLine
!=-
1
&&
m_
body
->
fileDef
);
// link to definition
(
sourceBrowser
&&
m_
impl
->
body
&&
m_
impl
->
body
->
startLine
!=-
1
&&
m_impl
->
body
->
fileDef
);
// link to definition
return
hasDocs
;
}
bool
Definition
::
hasUserDocumentation
()
const
{
bool
hasDocs
=
(
m_
details
&&
!
m_
details
->
doc
.
isEmpty
())
||
(
m_
brief
&&
!
m_
brief
->
doc
.
isEmpty
());
(
m_
impl
->
details
&&
!
m_impl
->
details
->
doc
.
isEmpty
())
||
(
m_
impl
->
brief
&&
!
m_impl
->
brief
->
doc
.
isEmpty
());
return
hasDocs
;
}
...
...
@@ -716,13 +758,13 @@ void Definition::addSourceReferencedBy(MemberDef *md)
name
.
prepend
(
scope
+
"::"
);
}
if
(
m_sourceRefByDict
==
0
)
if
(
m_
impl
->
sourceRefByDict
==
0
)
{
m_sourceRefByDict
=
new
MemberSDict
;
m_
impl
->
sourceRefByDict
=
new
MemberSDict
;
}
if
(
m_sourceRefByDict
->
find
(
name
)
==
0
)
if
(
m_
impl
->
sourceRefByDict
->
find
(
name
)
==
0
)
{
m_sourceRefByDict
->
inSort
(
name
,
md
);
m_
impl
->
sourceRefByDict
->
inSort
(
name
,
md
);
}
}
}
...
...
@@ -739,14 +781,14 @@ void Definition::addSourceReferences(MemberDef *md)
name
.
prepend
(
scope
+
"::"
);
}
if
(
m_sourceRefsDict
==
0
)
if
(
m_
impl
->
sourceRefsDict
==
0
)
{
m_sourceRefsDict
=
new
MemberSDict
;
m_
impl
->
sourceRefsDict
=
new
MemberSDict
;
}
if
(
m_sourceRefsDict
->
find
(
name
)
==
0
)
if
(
m_
impl
->
sourceRefsDict
->
find
(
name
)
==
0
)
{
//printf("Adding reference %s->%s\n",md->name().data(),name.data());
m_sourceRefsDict
->
inSort
(
name
,
md
);
m_
impl
->
sourceRefsDict
->
inSort
(
name
,
md
);
}
}
}
...
...
@@ -763,45 +805,45 @@ void Definition::addInnerCompound(Definition *)
QCString
Definition
::
qualifiedName
()
{
if
(
!
m_
qualifiedName
.
isEmpty
())
return
m_
qualifiedName
;
if
(
!
m_
impl
->
qualifiedName
.
isEmpty
())
return
m_impl
->
qualifiedName
;
//printf("start Definition::qualifiedName() localName=%s\n",m_localName.data());
if
(
m_outerScope
==
0
)
if
(
m_
impl
->
outerScope
==
0
)
{
if
(
m_localName
==
"<globalScope>"
)
return
""
;
else
return
m_localName
;
if
(
m_
impl
->
localName
==
"<globalScope>"
)
return
""
;
else
return
m_
impl
->
localName
;
}
if
(
m_outerScope
->
name
()
==
"<globalScope>"
)
if
(
m_
impl
->
outerScope
->
name
()
==
"<globalScope>"
)
{
m_
qualifiedName
=
m_
localName
.
copy
();
m_
impl
->
qualifiedName
=
m_impl
->
localName
.
copy
();
}
else
{
m_
qualifiedName
=
m_outerScope
->
qualifiedName
()
+
"::"
+
m_
localName
;
m_
impl
->
qualifiedName
=
m_impl
->
outerScope
->
qualifiedName
()
+
"::"
+
m_impl
->
localName
;
}
//printf("end Definition::qualifiedName()=%s\n",m_qualifiedName.data());
return
m_qualifiedName
;
return
m_
impl
->
qualifiedName
;
};
void
Definition
::
setOuterScope
(
Definition
*
d
)
{
if
(
m_outerScope
!=
d
)
if
(
m_
impl
->
outerScope
!=
d
)
{
m_qualifiedName
.
resize
(
0
);
// flush cached scope name
m_outerScope
=
d
;
m_
impl
->
qualifiedName
.
resize
(
0
);
// flush cached scope name
m_
impl
->
outerScope
=
d
;
}
}
QCString
Definition
::
localName
()
const
{
return
m_localName
;
return
m_
impl
->
localName
;
}
void
Definition
::
makePartOfGroup
(
GroupDef
*
gd
)
{
if
(
m_
partOfGroups
==
0
)
m_
partOfGroups
=
new
GroupList
;
m_partOfGroups
->
append
(
gd
);
if
(
m_
impl
->
partOfGroups
==
0
)
m_impl
->
partOfGroups
=
new
GroupList
;
m_
impl
->
partOfGroups
->
append
(
gd
);
}
void
Definition
::
setRefItems
(
const
QList
<
ListItemInfo
>
*
sli
)
...
...
@@ -809,16 +851,16 @@ void Definition::setRefItems(const QList<ListItemInfo> *sli)
if
(
sli
)
{
// deep copy the list
if
(
m_xrefListItems
==
0
)
if
(
m_
impl
->
xrefListItems
==
0
)
{
m_xrefListItems
=
new
QList
<
ListItemInfo
>
;
m_xrefListItems
->
setAutoDelete
(
TRUE
);
m_
impl
->
xrefListItems
=
new
QList
<
ListItemInfo
>
;
m_
impl
->
xrefListItems
->
setAutoDelete
(
TRUE
);
}
QListIterator
<
ListItemInfo
>
slii
(
*
sli
);
ListItemInfo
*
lii
;
for
(
slii
.
toFirst
();(
lii
=
slii
.
current
());
++
slii
)
{
m_xrefListItems
->
append
(
new
ListItemInfo
(
*
lii
));
m_
impl
->
xrefListItems
->
append
(
new
ListItemInfo
(
*
lii
));
}
}
}
...
...
@@ -828,10 +870,10 @@ void Definition::mergeRefItems(Definition *d)
if
(
d
->
xrefListItems
())
{
// deep copy the list
if
(
m_xrefListItems
==
0
)
if
(
m_
impl
->
xrefListItems
==
0
)
{
m_xrefListItems
=
new
QList
<
ListItemInfo
>
;
m_xrefListItems
->
setAutoDelete
(
TRUE
);
m_
impl
->
xrefListItems
=
new
QList
<
ListItemInfo
>
;
m_
impl
->
xrefListItems
->
setAutoDelete
(
TRUE
);
}
QListIterator
<
ListItemInfo
>
slii
(
*
d
->
xrefListItems
());
ListItemInfo
*
lii
;
...
...
@@ -839,7 +881,7 @@ void Definition::mergeRefItems(Definition *d)
{
if
(
getXRefListId
(
lii
->
type
)
==-
1
)
{
m_xrefListItems
->
append
(
new
ListItemInfo
(
*
lii
));
m_
impl
->
xrefListItems
->
append
(
new
ListItemInfo
(
*
lii
));
}
}
}
...
...
@@ -847,9 +889,9 @@ void Definition::mergeRefItems(Definition *d)
int
Definition
::
getXRefListId
(
const
char
*
listName
)
const
{
if
(
m_xrefListItems
)
if
(
m_
impl
->
xrefListItems
)
{
QListIterator
<
ListItemInfo
>
slii
(
*
m_xrefListItems
);
QListIterator
<
ListItemInfo
>
slii
(
*
m_
impl
->
xrefListItems
);
ListItemInfo
*
lii
;
for
(
slii
.
toFirst
();(
lii
=
slii
.
current
());
++
slii
)
{
...
...
@@ -864,13 +906,13 @@ int Definition::getXRefListId(const char *listName) const
const
QList
<
ListItemInfo
>
*
Definition
::
xrefListItems
()
const
{
return
m_xrefListItems
;
return
m_
impl
->
xrefListItems
;
}
QCString
Definition
::
convertNameToFile
(
const
char
*
name
,
bool
allowDots
)
const
{
if
(
!
m_ref
.
isEmpty
())
if
(
!
m_
impl
->
ref
.
isEmpty
())
{
return
name
;
}
...
...
@@ -882,11 +924,11 @@ QCString Definition::convertNameToFile(const char *name,bool allowDots) const
void
Definition
::
writePathFragment
(
OutputList
&
ol
)
const
{
if
(
m_
outerScope
&&
m_
outerScope
!=
Doxygen
::
globalScope
)
if
(
m_
impl
->
outerScope
&&
m_impl
->
outerScope
!=
Doxygen
::
globalScope
)
{
m_outerScope
->
writePathFragment
(
ol
);
if
(
m_outerScope
->
definitionType
()
==
Definition
::
TypeClass
||
m_outerScope
->
definitionType
()
==
Definition
::
TypeNamespace
)
m_
impl
->
outerScope
->
writePathFragment
(
ol
);
if
(
m_
impl
->
outerScope
->
definitionType
()
==
Definition
::
TypeClass
||
m_
impl
->
outerScope
->
definitionType
()
==
Definition
::
TypeNamespace
)
{
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_JAVA"
))
{
...
...
@@ -916,13 +958,13 @@ void Definition::writePathFragment(OutputList &ol) const
}
else
{
ol
.
writeObjectLink
(
getReference
(),
getOutputFileBase
(),
0
,
m_localName
);
ol
.
writeObjectLink
(
getReference
(),
getOutputFileBase
(),
0
,
m_
impl
->
localName
);
}
}
else
{
ol
.
startBold
();
ol
.
docify
(
m_localName
);
ol
.
docify
(
m_
impl
->
localName
);
ol
.
endBold
();
}
}
...
...
@@ -939,3 +981,144 @@ void Definition::writeNavigationPath(OutputList &ol) const
ol
.
popGeneratorState
();
}
const
QCString
&
Definition
::
name
()
const
{
return
m_impl
->
name
;
}
QCString
Definition
::
symbolName
()
const
{
return
m_impl
->
symbolName
;
}
QCString
Definition
::
documentation
()
const
{
return
m_impl
->
details
?
m_impl
->
details
->
doc
:
QCString
(
""
);
}
int
Definition
::
docLine
()
const
{
return
m_impl
->
details
?
m_impl
->
details
->
line
:
1
;
}
QCString
Definition
::
docFile
()
const
{
return
m_impl
->
details
?
m_impl
->
details
->
file
:
QCString
(
"<"
+
m_impl
->
name
+
">"
);
}
QCString
Definition
::
briefDescription
()
const
{
return
m_impl
->
brief
?
m_impl
->
brief
->
doc
:
QCString
(
""
);
}
int
Definition
::
briefLine
()
const
{
return
m_impl
->
brief
?
m_impl
->
brief
->
line
:
1
;
}
QCString
Definition
::
briefFile
()
const
{
return
m_impl
->
brief
?
m_impl
->
brief
->
file
:
QCString
(
"<"
+
m_impl
->
name
+
">"
);
}
QCString
Definition
::
getDefFileName
()
const
{
return
m_impl
->
defFileName
;
}
QCString
Definition
::
getDefFileExtension
()
const
{
return
m_impl
->
defFileExt
;
}
int
Definition
::
getDefLine
()
const
{
return
m_impl
->
defLine
;
}
bool
Definition
::
isHidden
()
const
{
return
m_impl
->
hidden
;
}
bool
Definition
::
isVisibleInProject
()
const
{
return
m_impl
->
hidden
||
isLinkableInProject
();
}
bool
Definition
::
isVisible
()
const
{
return
m_impl
->
hidden
||
isLinkable
();
}
QCString
Definition
::
getReference
()
const
{
return
m_impl
->
ref
;
}
bool
Definition
::
isReference
()
const
{
return
!
m_impl
->
ref
.
isEmpty
();
}
int
Definition
::
getStartBodyLine
()
const
{
return
m_impl
->
body
?
m_impl
->
body
->
startLine
:
-
1
;
}
int
Definition
::
getEndBodyLine
()
const
{
return
m_impl
->
body
?
m_impl
->
body
->
endLine
:
-
1
;
}
FileDef
*
Definition
::
getBodyDef
()
{
return
m_impl
->
body
?
m_impl
->
body
->
fileDef
:
0
;
}
GroupList
*
Definition
::
partOfGroups
()
const
{
return
m_impl
->
partOfGroups
;
}
Definition
*
Definition
::
getOuterScope
()
const
{
return
m_impl
->
outerScope
;
}
MemberSDict
*
Definition
::
getReferencesMembers
()
const
{
return
m_impl
->
sourceRefsDict
;
}
MemberSDict
*
Definition
::
getReferencedByMembers
()
const
{
return
m_impl
->
sourceRefByDict
;
}
void
Definition
::
setName
(
const
char
*
name
)
{
m_impl
->
name
=
name
;
}
void
Definition
::
setReference
(
const
char
*
r
)
{
m_impl
->
ref
=
r
;
}
void
Definition
::
setSymbolName
(
const
QCString
&
name
)
{
m_impl
->
symbolName
=
name
;
}
void
Definition
::
setHidden
(
bool
b
)
{
m_impl
->
hidden
=
b
;
}
void
Definition
::
setLocalName
(
const
QCString
name
)
{
m_impl
->
localName
=
name
;
}
src/definition.h
View file @
7b814d4a
...
...
@@ -32,6 +32,7 @@ class GroupList;
struct
ListItemInfo
;
struct
SectionInfo
;
class
Definition
;
class
DefinitionImpl
;
struct
ReachableDefinition
{
...
...
@@ -71,7 +72,10 @@ class DefinitionIntf
virtual
DefType
definitionType
()
const
=
0
;
};
/*! The common base class of all entity definitions found in the sources. */
/*! The common base class of all entity definitions found in the sources.
* This can be a class or a member function, or a file, or a namespace, etc.
* Use definitionType() to find which type of definition this is.
*/
class
Definition
:
public
DefinitionIntf
{
public
:
...
...
@@ -90,19 +94,18 @@ class Definition : public DefinitionIntf
//-----------------------------------------------------------------------------------
/*! Returns the name of the definition */
const
QCString
&
name
()
const
{
return
m_name
;
}
const
QCString
&
name
()
const
;
/*! Returns the local name without any scope qualifiers. */
QCString
localName
()
const
;
/*! Returns the base name of the output file that contains this
* definition.
/*! Returns the fully qualified name of this definition
*/
virtual
QCString
qualifiedName
();
/*! Returns the name of this definition as it appears in the symbol map.
*/
QCString
symbolName
()
const
{
return
m_symbolName
;
}
QCString
symbolName
()
const
;
/*! Returns the base file name (without extension) of this definition.
* as it is referenced to/written to disk.
...
...
@@ -113,35 +116,35 @@ class Definition : public DefinitionIntf
virtual
QCString
getSourceFileBase
()
const
{
ASSERT
(
0
);
return
"NULL"
;
}
/*! Returns the detailed description of this definition */
QCString
documentation
()
const
{
return
m_details
?
m_details
->
doc
:
QCString
(
""
);
}
QCString
documentation
()
const
;
/*! Returns the line number at which the detailed documentation was found. */
int
docLine
()
const
{
return
m_details
?
m_details
->
line
:
1
;
}
int
docLine
()
const
;
/*! Returns the file in which the detailed documentation block was found.
* This can differ from getDefFileName().
*/
QCString
docFile
()
const
{
return
m_details
?
m_details
->
file
:
QCString
(
"<"
+
m_name
+
">"
);
}
QCString
docFile
()
const
;
/*! Returns the brief description of this definition */
QCString
briefDescription
()
const
{
return
m_brief
?
m_brief
->
doc
:
QCString
(
""
);
}
QCString
briefDescription
()
const
;
/*! Returns the line number at which the brief description was found. */
int
briefLine
()
const
{
return
m_brief
?
m_brief
->
line
:
1
;
}
int
briefLine
()
const
;
/*! Returns the file in which the brief description was found.
* This can differ from getDefFileName().
*/
QCString
briefFile
()
const
{
return
m_brief
?
m_brief
->
file
:
QCString
(
"<"
+
m_name
+
">"
);
}
QCString
briefFile
()
const
;
/*! returns the file in which this definition was found */
QCString
getDefFileName
()
const
{
return
m_defFileName
;
}
QCString
getDefFileName
()
const
;
/*! returns the file in which this definition was found */
QCString
getDefFileExtension
()
const
{
return
m_defFileExt
;
}
QCString
getDefFileExtension
()
const
;
/*! returns the line number at which the definition was found */
int
getDefLine
()
const
{
return
m_defLine
;
}
int
getDefLine
()
const
;
/*! Returns TRUE iff the definition is documented
* (which could be generated documentation)
...
...
@@ -165,45 +168,54 @@ class Definition : public DefinitionIntf
/*! Returns TRUE iff the name is part of this project and
* may appear in the output
*/
virtual
bool
isVisibleInProject
()
const
{
return
m_hidden
||
isLinkableInProject
();
}
virtual
bool
isVisibleInProject
()
const
;
/*! Returns TRUE iff the name may appear in the output */
virtual
bool
isVisible
()
const
{
return
m_hidden
||
isLinkable
();
}
virtual
bool
isVisible
()
const
;
bool
isHidden
()
const
{
return
m_hidden
;
}
bool
isHidden
()
const
;
/*! If this definition was imported via a tag file, this function
* returns the tagfile for the external project. This can be
* translated into an external link target via
* Doxygen::tagDestinationDict
*/
virtual
QCString
getReference
()
const
{
return
m_ref
;
}
virtual
QCString
getReference
()
const
;
/*! Returns TRUE if this definition is imported via a tag file. */
virtual
bool
isReference
()
const
{
return
!
m_ref
.
isEmpty
();
}
virtual
bool
isReference
()
const
;
/*! Returns the first line of the body of this item (applicable to classes and
* functions).
*/
int
getStartBodyLine
()
const
;
/*! Returns the last line of the body of this item (applicable to classes and
* functions).
*/
int
getEndBodyLine
()
const
;
int
getStartBodyLine
()
const
{
return
m_body
?
m_body
->
startLine
:
-
1
;
}
int
getEndBodyLine
()
const
{
return
m_body
?
m_body
->
endLine
:
-
1
;
}
FileDef
*
getBodyDef
()
{
return
m_body
?
m_body
->
fileDef
:
0
;
}
/*! Returns the file in which the body of this item is located or 0 if no
* body is available.
*/
FileDef
*
getBodyDef
();
GroupList
*
partOfGroups
()
const
{
return
m_partOfGroups
;
}
GroupList
*
partOfGroups
()
const
;
const
QList
<
ListItemInfo
>
*
xrefListItems
()
const
;
virtual
Definition
*
findInnerCompound
(
const
char
*
name
);
virtual
Definition
*
getOuterScope
()
const
{
return
m_outerScope
;
}
virtual
Definition
*
getOuterScope
()
const
;
MemberSDict
*
getReferencesMembers
()
const
{
return
m_sourceRefsDict
;
}
MemberSDict
*
getReferencedByMembers
()
const
{
return
m_sourceRefByDict
;
}
MemberSDict
*
getReferencesMembers
()
const
;
MemberSDict
*
getReferencedByMembers
()
const
;
//-----------------------------------------------------------------------------------
// ---- setters -----
//-----------------------------------------------------------------------------------
/*! Sets a new \a name for the definition */
void
setName
(
const
char
*
name
)
{
m_name
=
name
;
}
void
setName
(
const
char
*
name
)
;
/*! Sets the documentation of this definition to \a d. */
void
setDocumentation
(
const
char
*
d
,
const
char
*
docFile
,
int
docLine
,
bool
stripWhiteSpace
=
TRUE
);
...
...
@@ -214,11 +226,11 @@ class Definition : public DefinitionIntf
void
setBriefDescription
(
const
char
*
b
,
const
char
*
briefFile
,
int
briefLine
);
/*! Sets the tag file id via which this definition was imported. */
void
setReference
(
const
char
*
r
)
{
m_ref
=
r
;
}
void
setReference
(
const
char
*
r
)
;
/*! Sets the name of this definition as it should appear in the symbol map.
*/
void
setSymbolName
(
const
QCString
&
name
)
{
m_symbolName
=
name
;
}
void
setSymbolName
(
const
QCString
&
name
)
;
/*! Add the list of anchors that mark the sections that are found in the
* documentation.
...
...
@@ -236,7 +248,7 @@ class Definition : public DefinitionIntf
virtual
void
addInnerCompound
(
Definition
*
d
);
virtual
void
setOuterScope
(
Definition
*
d
);
void
setHidden
(
bool
b
)
{
m_hidden
=
b
;
}
void
setHidden
(
bool
b
)
;
//-----------------------------------------------------------------------------------
// --- actions ----
...
...
@@ -258,46 +270,21 @@ class Definition : public DefinitionIntf
void
writeDocAnchorsToTagFile
();
protected
:
void
setLocalName
(
const
QCString
name
)
{
m_localName
=
name
;
}
void
setLocalName
(
const
QCString
name
)
;
private
:
int
getXRefListId
(
const
char
*
listName
)
const
;
void
writeSourceRefList
(
OutputList
&
ol
,
const
char
*
scopeName
,
const
QCString
&
text
,
MemberSDict
*
members
,
bool
);
//-----------------------------------------------------------------------------------
// --- member variables
//-----------------------------------------------------------------------------------
SectionDict
*
m_sectionDict
;
// dictionary of all sections
MemberSDict
*
m_sourceRefByDict
;
MemberSDict
*
m_sourceRefsDict
;
DocInfo
*
m_details
;
DocInfo
*
m_brief
;
BodyInfo
*
m_body
;
virtual
void
flushToDisk
()
{}
virtual
void
loadFromDisk
()
{}
virtual
void
makeResident
()
{
if
(
m_impl
==
0
)
loadFromDisk
();
}
virtual
bool
isResident
()
const
{
return
m_impl
!=
0
;
}
/*! The class, namespace in which this class is located
*/
QCString
m_name
;
// name of the definition
QCString
m_localName
;
// local (unqualified) name of the definition
// in the future m_name should become m_localName
QCString
m_symbolName
;
QCString
m_qualifiedName
;
QCString
m_ref
;
// reference to external documentation
QList
<
ListItemInfo
>
*
m_xrefListItems
;
bool
m_isSymbol
;
bool
m_hidden
;
Definition
*
m_outerScope
;
GroupList
*
m_partOfGroups
;
private
:
DefinitionImpl
*
m_impl
;
// internal structure holding all private data
uint64
m_storagePos
;
// location where the item is stored in file (if impl==0)
// where the item was found
QCString
m_defFileName
;
int
m_defLine
;
QCString
m_defFileExt
;
};
class
DefinitionList
:
public
QList
<
Definition
>
,
public
DefinitionIntf
...
...
src/namespacedef.cpp
View file @
7b814d4a
...
...
@@ -171,6 +171,12 @@ void NamespaceDef::addMembersToMemberGroup()
void
NamespaceDef
::
insertMember
(
MemberDef
*
md
)
{
MemberList
*
allMemberList
=
getMemberList
(
MemberList
::
allMembersList
);
if
(
allMemberList
==
0
)
{
allMemberList
=
new
MemberList
(
MemberList
::
allMembersList
);
m_memberLists
.
append
(
allMemberList
);
}
allMemberList
->
append
(
md
);
//static bool sortBriefDocs=Config_getBool("SORT_BRIEF_DOCS");
switch
(
md
->
memberType
())
...
...
@@ -261,7 +267,8 @@ void NamespaceDef::insertMember(MemberDef *md)
void
NamespaceDef
::
computeAnchors
()
{
setAnchors
(
0
,
'a'
,
allMemberList
);
MemberList
*
allMemberList
=
getMemberList
(
MemberList
::
allMembersList
);
if
(
allMemberList
)
setAnchors
(
0
,
'a'
,
allMemberList
);
}
void
NamespaceDef
::
writeDetailedDocumentation
(
OutputList
&
ol
)
...
...
@@ -420,7 +427,8 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
if
(
Config_getBool
(
"SEPARATE_MEMBER_PAGES"
))
{
allMemberList
->
sort
();
MemberList
*
allMemberList
=
getMemberList
(
MemberList
::
allMembersList
);
if
(
allMemberList
)
allMemberList
->
sort
();
writeMemberPages
(
ol
);
}
}
...
...
@@ -495,31 +503,35 @@ void NamespaceDef::writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) co
ol
.
writeString
(
" <div class=
\"
navtab
\"
>
\n
"
);
ol
.
writeString
(
" <table>
\n
"
);
MemberListIterator
mli
(
*
allMemberList
);
MemberDef
*
md
;
for
(
mli
.
toFirst
();(
md
=
mli
.
current
());
++
mli
)
MemberList
*
allMemberList
=
getMemberList
(
MemberList
::
allMembersList
);
if
(
allMemberList
)
{
if
(
md
->
getNamespaceDef
()
==
this
&&
md
->
isLinkable
())
MemberListIterator
mli
(
*
allMemberList
);
MemberDef
*
md
;
for
(
mli
.
toFirst
();(
md
=
mli
.
current
());
++
mli
)
{
ol
.
writeString
(
" <tr><td class=
\"
navtab
\"
>"
);
if
(
md
->
isLinkableInProject
())
if
(
md
->
getNamespaceDef
()
==
this
&&
md
->
isLinkable
())
{
if
(
md
==
currentMd
)
// selected item => highlight
{
ol
.
writeString
(
"<a class=
\"
qindexHL
\"
"
);
}
else
ol
.
writeString
(
" <tr><td class=
\"
navtab
\"
>"
);
if
(
md
->
isLinkableInProject
())
{
ol
.
writeString
(
"<a class=
\"
qindex
\"
"
);
if
(
md
==
currentMd
)
// selected item => highlight
{
ol
.
writeString
(
"<a class=
\"
qindexHL
\"
"
);
}
else
{
ol
.
writeString
(
"<a class=
\"
qindex
\"
"
);
}
ol
.
writeString
(
"href=
\"
"
);
if
(
createSubDirs
)
ol
.
writeString
(
"../../"
);
ol
.
writeString
(
md
->
getOutputFileBase
()
+
Doxygen
::
htmlFileExtension
+
"#"
+
md
->
anchor
());
ol
.
writeString
(
"
\"
>"
);
ol
.
writeString
(
md
->
localName
());
ol
.
writeString
(
"</a>"
);
}
ol
.
writeString
(
"href=
\"
"
);
if
(
createSubDirs
)
ol
.
writeString
(
"../../"
);
ol
.
writeString
(
md
->
getOutputFileBase
()
+
Doxygen
::
htmlFileExtension
+
"#"
+
md
->
anchor
());
ol
.
writeString
(
"
\"
>"
);
ol
.
writeString
(
md
->
localName
());
ol
.
writeString
(
"</a>"
);
ol
.
writeString
(
"</td></tr>
\n
"
);
}
ol
.
writeString
(
"</td></tr>
\n
"
);
}
}
...
...
@@ -529,8 +541,9 @@ void NamespaceDef::writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) co
int
NamespaceDef
::
countMembers
()
{
allMemberList
->
countDocMembers
();
return
allMemberList
->
numDocMembers
()
+
classSDict
->
count
();
MemberList
*
allMemberList
=
getMemberList
(
MemberList
::
allMembersList
);
if
(
allMemberList
)
allMemberList
->
countDocMembers
();
return
(
allMemberList
?
allMemberList
->
numDocMembers
()
:
0
)
+
classSDict
->
count
();
}
void
NamespaceDef
::
addUsingDirective
(
NamespaceDef
*
nd
)
...
...
src/namespacedef.h
View file @
7b814d4a
...
...
@@ -101,7 +101,7 @@ class NamespaceDef : public Definition
SDict
<
Definition
>
*
usingDeclList
;
SDict
<
Definition
>
*
m_innerCompounds
;
MemberList
*
allMemberList
;
//
MemberList *allMemberList;
QList
<
MemberList
>
m_memberLists
;
MemberGroupSDict
*
memberGroupSDict
;
ClassSDict
*
classSDict
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment