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
6f70105f
Commit
6f70105f
authored
Aug 15, 2005
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.4.4-20050815
parent
87a9eb98
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
164 additions
and
54 deletions
+164
-54
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
preprocessing.doc
doc/preprocessing.doc
+1
-1
classdef.cpp
src/classdef.cpp
+3
-3
classdef.h
src/classdef.h
+13
-0
code.l
src/code.l
+82
-17
commentscan.l
src/commentscan.l
+34
-27
definition.cpp
src/definition.cpp
+8
-0
definition.h
src/definition.h
+18
-1
No files found.
INSTALL
View file @
6f70105f
DOXYGEN Version 1.4.4
DOXYGEN Version 1.4.4
-20050815
Please read the installation section of the manual
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
(http://www.doxygen.org/install.html) for instructions.
--------
--------
Dimitri van Heesch (
06
August 2005)
Dimitri van Heesch (
15
August 2005)
README
View file @
6f70105f
DOXYGEN Version 1.4.4
DOXYGEN Version 1.4.4
_20050815
Please read INSTALL for compilation instructions.
Please read INSTALL for compilation instructions.
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
06
August 2005)
Dimitri van Heesch (dimitri@stack.nl) (
15
August 2005)
VERSION
View file @
6f70105f
1.4.4-200508
08
1.4.4-200508
15
doc/preprocessing.doc
View file @
6f70105f
...
@@ -193,7 +193,7 @@ PREDEFINED = "DECLARE_INTERFACE(name)=class name" \
...
@@ -193,7 +193,7 @@ PREDEFINED = "DECLARE_INTERFACE(name)=class name" \
DECLARE_PROTECT_FINAL_CONSTRUCT=// \
DECLARE_PROTECT_FINAL_CONSTRUCT=// \
"DECLARE_AGGREGATABLE(Class)= " \
"DECLARE_AGGREGATABLE(Class)= " \
"DECLARE_REGISTRY_RESOURCEID(Id)= " \
"DECLARE_REGISTRY_RESOURCEID(Id)= " \
DECLARE_MESSAGE_MAP
= \
DECLARE_MESSAGE_MAP= \
BEGIN_MESSAGE_MAP=/* \
BEGIN_MESSAGE_MAP=/* \
END_MESSAGE_MAP=*/// \
END_MESSAGE_MAP=*/// \
BEGIN_COM_MAP=/* \
BEGIN_COM_MAP=/* \
...
...
src/classdef.cpp
View file @
6f70105f
...
@@ -1024,7 +1024,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -1024,7 +1024,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
m_compType
==
Interface
&&
m_isObjC
?
Class
:
m_compType
,
m_compType
==
Interface
&&
m_isObjC
?
Class
:
m_compType
,
m_tempArgs
!=
0
);
m_tempArgs
!=
0
);
startFile
(
ol
,
getOutputFileBase
(),
name
(),
pageTitle
);
startFile
(
ol
,
getOutputFileBase
(),
name
(),
pageTitle
,
HLI_ClassVisible
);
if
(
getOuterScope
()
!=
Doxygen
::
globalScope
)
if
(
getOuterScope
()
!=
Doxygen
::
globalScope
)
{
{
writeNavigationPath
(
ol
);
writeNavigationPath
(
ol
);
...
@@ -1645,7 +1645,7 @@ void ClassDef::writeMemberList(OutputList &ol)
...
@@ -1645,7 +1645,7 @@ void ClassDef::writeMemberList(OutputList &ol)
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
startFile
(
ol
,
m_memListFileName
,
m_memListFileName
,
startFile
(
ol
,
m_memListFileName
,
m_memListFileName
,
theTranslator
->
trMemberList
());
theTranslator
->
trMemberList
()
,
HLI_ClassVisible
);
startTitle
(
ol
,
0
);
startTitle
(
ol
,
0
);
ol
.
parseText
(
displayName
()
+
" "
+
theTranslator
->
trMemberList
());
ol
.
parseText
(
displayName
()
+
" "
+
theTranslator
->
trMemberList
());
endTitle
(
ol
,
0
,
0
);
endTitle
(
ol
,
0
,
0
);
...
@@ -2025,7 +2025,7 @@ bool ClassDef::isLinkableInProject() const
...
@@ -2025,7 +2025,7 @@ bool ClassDef::isLinkableInProject() const
else
else
{
{
return
!
name
().
isEmpty
()
&&
/* no name */
return
!
name
().
isEmpty
()
&&
/* no name */
!
m_artificial
&&
!
m_artificial
&&
!
isHidden
()
&&
name
().
find
(
'@'
)
==-
1
&&
/* anonymous compound */
name
().
find
(
'@'
)
==-
1
&&
/* anonymous compound */
(
m_prot
!=
Private
||
Config_getBool
(
"EXTRACT_PRIVATE"
))
&&
/* private */
(
m_prot
!=
Private
||
Config_getBool
(
"EXTRACT_PRIVATE"
))
&&
/* private */
(
!
m_isLocal
||
Config_getBool
(
"EXTRACT_LOCAL_CLASSES"
))
&&
/* local */
(
!
m_isLocal
||
Config_getBool
(
"EXTRACT_LOCAL_CLASSES"
))
&&
/* local */
...
...
src/classdef.h
View file @
6f70105f
...
@@ -183,6 +183,17 @@ class ClassDef : public Definition
...
@@ -183,6 +183,17 @@ class ClassDef : public Definition
return
m_usesIntfClassDict
;
return
m_usesIntfClassDict
;
}
}
/** Marks this class as a template argument of some another class */
void
makeTemplateArgument
(
bool
b
=
TRUE
)
{
m_isTemplArg
=
b
;
}
bool
isTemplateArgument
()
const
{
return
m_isTemplArg
;
}
/*! Returns the definition of a nested compound if
/*! Returns the definition of a nested compound if
* available, or 0 otherwise.
* available, or 0 otherwise.
* @param name The name of the nested compound
* @param name The name of the nested compound
...
@@ -465,6 +476,8 @@ class ClassDef : public Definition
...
@@ -465,6 +476,8 @@ class ClassDef : public Definition
* class which is extended.
* class which is extended.
*/
*/
ClassDef
*
m_categoryOf
;
ClassDef
*
m_categoryOf
;
bool
m_isTemplArg
;
};
};
/*! \brief Class that contains information about a usage relation.
/*! \brief Class that contains information about a usage relation.
...
...
src/code.l
View file @
6f70105f
...
@@ -94,6 +94,7 @@ static QCString g_saveType;
...
@@ -94,6 +94,7 @@ static QCString g_saveType;
static int g_bracketCount = 0;
static int g_bracketCount = 0;
static int g_curlyCount = 0;
static int g_curlyCount = 0;
static int g_sharpCount = 0;
static int g_sharpCount = 0;
static bool g_inFunctionTryBlock = FALSE;
static int g_lastSpecialCContext;
static int g_lastSpecialCContext;
static int g_lastStringContext;
static int g_lastStringContext;
...
@@ -194,6 +195,8 @@ class VariableContext
...
@@ -194,6 +195,8 @@ class VariableContext
void addVariable(const QCString &type,const QCString &name);
void addVariable(const QCString &type,const QCString &name);
ClassDef *findVariable(const QCString &name);
ClassDef *findVariable(const QCString &name);
int count() const { return m_scopes.count(); }
private:
private:
Scope m_globalScope;
Scope m_globalScope;
QList<Scope> m_scopes;
QList<Scope> m_scopes;
...
@@ -262,6 +265,10 @@ void VariableContext::addVariable(const QCString &type,const QCString &name)
...
@@ -262,6 +265,10 @@ void VariableContext::addVariable(const QCString &type,const QCString &name)
DBG_CTX((stderr,"** addVariable: dummy context\n"));
DBG_CTX((stderr,"** addVariable: dummy context\n"));
scope->append(lname,dummyContext);
scope->append(lname,dummyContext);
}
}
else
{
DBG_CTX((stderr,"** addVariable: not adding variable!\n"));
}
}
}
}
}
...
@@ -596,6 +603,18 @@ static void addParmType()
...
@@ -596,6 +603,18 @@ static void addParmType()
g_parmName.resize(0) ;
g_parmName.resize(0) ;
}
}
static void addUsingDirective(const char *name)
{
if (g_exampleBlock && g_sourceFileDef && name)
{
NamespaceDef *nd = Doxygen::namespaceSDict.find(name);
if (nd)
{
g_sourceFileDef->addUsingDirective(nd);
}
}
}
static void setParameterList(MemberDef *md)
static void setParameterList(MemberDef *md)
{
{
g_classScope = md->getClassDef() ? md->getClassDef()->name().data() : "";
g_classScope = md->getClassDef() ? md->getClassDef()->name().data() : "";
...
@@ -789,8 +808,6 @@ static bool getLinkInScope(const QCString &c, // scope
...
@@ -789,8 +808,6 @@ static bool getLinkInScope(const QCString &c, // scope
g_anchorCount++;
g_anchorCount++;
}
}
}
}
//Definition *d=0;
//if (cd) d=cd; else if (nd) d=nd; else if (fd) d=fd; else d=gd;
Definition *d = md->getOuterScope()==Doxygen::globalScope ?
Definition *d = md->getOuterScope()==Doxygen::globalScope ?
md->getBodyDef() : md->getOuterScope();
md->getBodyDef() : md->getOuterScope();
...
@@ -858,16 +875,24 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
...
@@ -858,16 +875,24 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
MemberDef *md=0;
MemberDef *md=0;
bool isLocal=FALSE;
bool isLocal=FALSE;
//
fprintf(stderr,
"generateClassOrGlobalLink(className=%s)\n",className.data());
//
printf(
"generateClassOrGlobalLink(className=%s)\n",className.data());
if ((lcd=g_theVarContext.findVariable(className))==0) // not a local variable
if ((lcd=g_theVarContext.findVariable(className))==0) // not a local variable
{
{
Definition *d = g_currentDefinition;
Definition *d = g_currentDefinition;
//printf("d=%p g_sourceFileDef=%p\n",d,g_currentDefinition);
//printf("d=%p g_sourceFileDef=%p\n",d,g_currentDefinition);
cd = getResolvedClass(d,g_sourceFileDef,className,&md);
cd = getResolvedClass(d,g_sourceFileDef,className,&md);
//printf("non-local variable name=%s context=%d cd=%s md=%s!\n",
// className.data(),g_theVarContext.count(),cd?cd->name().data():"<none>",
// md?md->name().data():"<none>");
if (cd==0 && md==0 && (i=className.find('<'))!=-1)
if (cd==0 && md==0 && (i=className.find('<'))!=-1)
{
{
cd=getResolvedClass(d,g_sourceFileDef,className.left(i),&md);
QCString bareName = stripTemplateSpecifiersFromScope(className);
if (bareName!=className)
{
cd=getResolvedClass(d,g_sourceFileDef,bareName,&md); // try unspecialized version
}
}
}
//printf("md=%s\n",md?md->name().data():"<none>");
//printf("is found as a type %s\n",cd?cd->name().data():"<null>");
//printf("is found as a type %s\n",cd?cd->name().data():"<null>");
if (cd==0 && md==0) // also see if it is variable or enum or enum value
if (cd==0 && md==0) // also see if it is variable or enum or enum value
{
{
...
@@ -879,8 +904,10 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
...
@@ -879,8 +904,10 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
}
}
else
else
{
{
//printf("local variable!\n");
if (lcd!=VariableContext::dummyContext)
if (lcd!=VariableContext::dummyContext)
{
{
//printf("non-dummy context lcd=%s!\n",lcd->name().data());
g_theCallContext.setClass(lcd);
g_theCallContext.setClass(lcd);
}
}
isLocal=TRUE;
isLocal=TRUE;
...
@@ -964,7 +991,7 @@ static bool generateClassMemberLink(CodeOutputInterface &ol,ClassDef *mcd,const
...
@@ -964,7 +991,7 @@ static bool generateClassMemberLink(CodeOutputInterface &ol,ClassDef *mcd,const
if (mcd)
if (mcd)
{
{
MemberDef *xmd = mcd->getMemberByName(memName);
MemberDef *xmd = mcd->getMemberByName(memName);
//
fprintf(stderr,
"generateClassMemberLink(class=%s,member=%s)=%p\n",mcd->name().data(),memName,xmd);
//
printf(
"generateClassMemberLink(class=%s,member=%s)=%p\n",mcd->name().data(),memName,xmd);
if (xmd)
if (xmd)
{
{
// extract class definition of the return type in order to resolve
// extract class definition of the return type in order to resolve
...
@@ -1565,6 +1592,7 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
...
@@ -1565,6 +1592,7 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
%x ObjCMName
%x ObjCMName
%x ObjCSkipStr
%x ObjCSkipStr
%x OldStyleArgs
%x OldStyleArgs
%x UsingName
%%
%%
...
@@ -1993,6 +2021,18 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
...
@@ -1993,6 +2021,18 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
g_insideTemplate=TRUE;
g_insideTemplate=TRUE;
g_sharpCount=0;
g_sharpCount=0;
}
}
<Body>"using"{BN}+"namespace"{BN}+ {
startFontClass("keyword");
codifyLines(yytext);
endFontClass();
BEGIN(UsingName);
}
<UsingName>{ID}("::"{ID})* { addUsingDirective(yytext);
generateClassOrGlobalLink(*g_code,yytext);
BEGIN(Body);
}
<UsingName>\n { codifyLines(yytext); BEGIN(Body); }
<UsingName>. { codifyLines(yytext); BEGIN(Body); }
<Body>{KEYWORD}/([^a-z_A-Z0-9]) {
<Body>{KEYWORD}/([^a-z_A-Z0-9]) {
startFontClass("keyword");
startFontClass("keyword");
codifyLines(yytext);
codifyLines(yytext);
...
@@ -2018,6 +2058,10 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
...
@@ -2018,6 +2058,10 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
startFontClass("keywordflow");
startFontClass("keywordflow");
codifyLines(yytext);
codifyLines(yytext);
endFontClass();
endFontClass();
if (g_inFunctionTryBlock && strcmp(yytext,"catch")==0)
{
g_inFunctionTryBlock=FALSE;
}
}
}
<Body>{FLOWKW}/{B}* {
<Body>{FLOWKW}/{B}* {
startFontClass("keywordflow");
startFontClass("keywordflow");
...
@@ -2037,6 +2081,7 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
...
@@ -2037,6 +2081,7 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
if (*yytext==')')
if (*yytext==')')
{
{
g_theCallContext.popScope();
g_theCallContext.popScope();
BEGIN(FuncCall);
}
}
}
}
<Body,TemplDecl,ObjCMethod>{TYPEKW}/{B}* {
<Body,TemplDecl,ObjCMethod>{TYPEKW}/{B}* {
...
@@ -2070,19 +2115,19 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
...
@@ -2070,19 +2115,19 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
BEGIN(Body);
BEGIN(Body);
}
}
}
}
<Body>{SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"/{B}* { // A<T> *pt;
<Body>{SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"("::"{ID})*/{B}* { // A<T> *pt;
generateClassOrGlobalLink(*g_code,yytext);
addType();
addType();
generateClassOrGlobalLink(*g_code,yytext);
g_name+=yytext;
g_name+=yytext;
}
}
<Body>{SCOPENAME}/{B}*[;,)\]] { // "int var;" or "var, var2" or "debug(f) macro"
<Body>{SCOPENAME}/{B}*[;,)\]] { // "int var;" or "var, var2" or "debug(f) macro"
generateClassOrGlobalLink(*g_code,yytext/*,TRUE*/);
addType();
addType();
generateClassOrGlobalLink(*g_code,yytext/*,TRUE*/);
g_name+=yytext;
g_name+=yytext;
}
}
<Body>{SCOPENAME}/{B}* { // p->func()
<Body>{SCOPENAME}/{B}* { // p->func()
generateClassOrGlobalLink(*g_code,yytext);
addType();
addType();
generateClassOrGlobalLink(*g_code,yytext);
g_name+=yytext;
g_name+=yytext;
}
}
<Body>"("{B}*("*"{B}*)+{SCOPENAME}*{B}*")"/{B}* { // (*p)->func() but not "if (p) ..."
<Body>"("{B}*("*"{B}*)+{SCOPENAME}*{B}*")"/{B}* { // (*p)->func() but not "if (p) ..."
...
@@ -2247,6 +2292,8 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
...
@@ -2247,6 +2292,8 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
{
{
if (g_scopeStack.top()!=CLASSBLOCK)
if (g_scopeStack.top()!=CLASSBLOCK)
{
{
//printf("AddVariable: '%s' '%s' context=%d\n",
// g_type.data(),g_name.data(),g_theVarContext.count());
g_theVarContext.addVariable(g_type,g_name);
g_theVarContext.addVariable(g_type,g_name);
}
}
g_name.resize(0);
g_name.resize(0);
...
@@ -2536,6 +2583,12 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
...
@@ -2536,6 +2583,12 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
g_type.resize(0); g_name.resize(0);
g_type.resize(0); g_name.resize(0);
BEGIN( Body );
BEGIN( Body );
}
}
<CallEnd>"try" { // function-try-block
startFontClass("keyword");
g_code->codify(yytext);
endFontClass();
g_inFunctionTryBlock=TRUE;
}
<CallEnd>{ID} {
<CallEnd>{ID} {
if (g_insideBody || !g_parmType.isEmpty())
if (g_insideBody || !g_parmType.isEmpty())
{
{
...
@@ -2998,13 +3051,14 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
...
@@ -2998,13 +3051,14 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
int startLine,int endLine,bool inlineFragment,
int startLine,int endLine,bool inlineFragment,
MemberDef *memberDef)
MemberDef *memberDef)
{
{
//printf("***parseCode()
\n"
);
//printf("***parseCode()
exBlock=%d exName=%s fd=%p\n",exBlock,exName,fd
);
if (s.isEmpty()) return;
if (s.isEmpty()) return;
g_code = &od;
g_code = &od;
g_inputString = s;
g_inputString = s;
g_inputPosition = 0;
g_inputPosition = 0;
g_currentFontClass = 0;
g_currentFontClass = 0;
g_needsTermination = FALSE;
g_needsTermination = FALSE;
g_inFunctionTryBlock = FALSE;
if (endLine!=-1)
if (endLine!=-1)
g_inputLines = endLine+1;
g_inputLines = endLine+1;
else
else
...
@@ -3026,15 +3080,20 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
...
@@ -3026,15 +3080,20 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
g_exampleBlock = exBlock;
g_exampleBlock = exBlock;
g_exampleName = exName;
g_exampleName = exName;
g_sourceFileDef = fd;
g_sourceFileDef = fd;
if (
fd)
if (
exBlock && fd==0)
{
{
setCurrentDoc(fd->name(),fd->getSourceFileBase());
// create a dummy filedef for the example
g_insideObjC = fd->name().lower().right(2)==".m" ||
g_sourceFileDef = new FileDef("",exName);
fd->name().lower().right(3)==".mm";
}
if (g_sourceFileDef)
{
setCurrentDoc(g_sourceFileDef->name(),g_sourceFileDef->getSourceFileBase());
g_insideObjC = g_sourceFileDef->name().lower().right(2)==".m" ||
g_sourceFileDef->name().lower().right(3)==".mm";
}
}
g_currentDefinition = 0;
g_currentDefinition = 0;
g_currentMemberDef = 0;
g_currentMemberDef = 0;
g_searchingForBody =
FALSE
;
g_searchingForBody =
exBlock
;
g_insideBody = FALSE;
g_insideBody = FALSE;
g_bracketCount = 0;
g_bracketCount = 0;
if (!g_exampleName.isEmpty())
if (!g_exampleName.isEmpty())
...
@@ -3057,6 +3116,12 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
...
@@ -3057,6 +3116,12 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
endFontClass();
endFontClass();
g_code->endCodeLine();
g_code->endCodeLine();
}
}
if (exBlock && g_sourceFileDef)
{
// delete the temporary file definition used for this example
delete g_sourceFileDef;
g_sourceFileDef=0;
}
return;
return;
}
}
...
...
src/commentscan.l
View file @
6f70105f
...
@@ -284,6 +284,7 @@ class GuardedSection
...
@@ -284,6 +284,7 @@ class GuardedSection
void openGroup(Entry *e,const char *file,int line);
void openGroup(Entry *e,const char *file,int line);
void closeGroup(Entry *e,const char *file,int line);
void closeGroup(Entry *e,const char *file,int line);
void initGroupInfo(Entry *e);
static void groupAddDocs(Entry *e,const char *fileName);
static void groupAddDocs(Entry *e,const char *fileName);
/* -----------------------------------------------------------------
/* -----------------------------------------------------------------
...
@@ -1903,7 +1904,10 @@ static bool handleName(const QCString &)
...
@@ -1903,7 +1904,10 @@ static bool handleName(const QCString &)
bool stop=makeStructuralIndicator(Entry::MEMBERGRP_SEC);
bool stop=makeStructuralIndicator(Entry::MEMBERGRP_SEC);
g_memberGroupHeader.resize(0);
g_memberGroupHeader.resize(0);
BEGIN( NameParam );
BEGIN( NameParam );
if (g_memberGroupId!=DOX_NOGROUP) // end of previous member group
{
closeGroup(current,yyFileName,yyLineNr);
closeGroup(current,yyFileName,yyLineNr);
}
return stop;
return stop;
}
}
...
@@ -2313,32 +2317,6 @@ void groupLeaveCompound(const char *,int,const char *)
...
@@ -2313,32 +2317,6 @@ void groupLeaveCompound(const char *,int,const char *)
}
}
void closeGroup(Entry *e,const char *fileName,int)
{
//printf("==> closeGroup(name=%s,sec=%x) g_autoGroupStack=%d\n",
// e->name.data(),e->section,g_autoGroupStack.count());
if (g_memberGroupId!=DOX_NOGROUP) // end of member group
{
MemberGroupInfo *info=Doxygen::memGrpInfoDict.find(g_memberGroupId);
if (info) // know group
{
info->doc = g_memberGroupDocs;
info->docFile = fileName;
}
g_memberGroupId=DOX_NOGROUP;
g_memberGroupRelates.resize(0);
g_memberGroupDocs.resize(0);
e->mGrpId=DOX_NOGROUP;
//printf("new group id=%d\n",g_memberGroupId);
}
else if (!g_autoGroupStack.isEmpty()) // end of auto group
{
Grouping *grp = g_autoGroupStack.pop();
e->groups->removeLast();
delete grp;
}
}
void openGroup(Entry *e,const char *,int)
void openGroup(Entry *e,const char *,int)
{
{
//printf("==> openGroup(name=%s,sec=%x)\n",e->name.data(),e->section);
//printf("==> openGroup(name=%s,sec=%x)\n",e->name.data(),e->section);
...
@@ -2369,8 +2347,37 @@ void openGroup(Entry *e,const char *,int)
...
@@ -2369,8 +2347,37 @@ void openGroup(Entry *e,const char *,int)
}
}
}
}
void closeGroup(Entry *e,const char *fileName,int)
{
//printf("==> closeGroup(name=%s,sec=%x) g_autoGroupStack=%d\n",
// e->name.data(),e->section,g_autoGroupStack.count());
if (g_memberGroupId!=DOX_NOGROUP) // end of member group
{
MemberGroupInfo *info=Doxygen::memGrpInfoDict.find(g_memberGroupId);
if (info) // know group
{
info->doc = g_memberGroupDocs;
info->docFile = fileName;
}
g_memberGroupId=DOX_NOGROUP;
g_memberGroupRelates.resize(0);
g_memberGroupDocs.resize(0);
e->mGrpId=DOX_NOGROUP;
//printf("new group id=%d\n",g_memberGroupId);
}
else if (!g_autoGroupStack.isEmpty()) // end of auto group
{
Grouping *grp = g_autoGroupStack.pop();
e->groups->removeLast();
delete grp;
initGroupInfo(e);
}
}
void initGroupInfo(Entry *e)
void initGroupInfo(Entry *e)
{
{
//printf("==> initGroup(id=%d,related=%s)\n",g_memberGroupId,
// g_memberGroupRelates.data());
e->mGrpId = g_memberGroupId;
e->mGrpId = g_memberGroupId;
e->relates = g_memberGroupRelates;
e->relates = g_memberGroupRelates;
if (!g_autoGroupStack.isEmpty())
if (!g_autoGroupStack.isEmpty())
...
...
src/definition.cpp
View file @
6f70105f
...
@@ -618,6 +618,14 @@ bool Definition::hasDocumentation() const
...
@@ -618,6 +618,14 @@ bool Definition::hasDocumentation() const
return
hasDocs
;
return
hasDocs
;
}
}
bool
Definition
::
hasUserDocumentation
()
const
{
bool
hasDocs
=
!
m_doc
.
isEmpty
()
||
!
m_brief
.
isEmpty
();
return
hasDocs
;
}
void
Definition
::
addSourceReferencedBy
(
MemberDef
*
md
)
void
Definition
::
addSourceReferencedBy
(
MemberDef
*
md
)
{
{
if
(
md
)
if
(
md
)
...
...
src/definition.h
View file @
6f70105f
...
@@ -123,9 +123,16 @@ class Definition
...
@@ -123,9 +123,16 @@ class Definition
/*! returns the line number at which the definition was found */
/*! returns the line number at which the definition was found */
int
getDefLine
()
const
{
return
m_defLine
;
}
int
getDefLine
()
const
{
return
m_defLine
;
}
/*! Returns TRUE iff the definition is documented */
/*! Returns TRUE iff the definition is documented
* (which could be generated documentation)
* @see hasUserDocumentation()
*/
virtual
bool
hasDocumentation
()
const
;
virtual
bool
hasDocumentation
()
const
;
/*! Returns TRUE iff the definition is documented by the user. */
virtual
bool
hasUserDocumentation
()
const
;
/*! Returns TRUE iff it is possible to link to this item within this
/*! Returns TRUE iff it is possible to link to this item within this
* project.
* project.
*/
*/
...
@@ -136,6 +143,16 @@ class Definition
...
@@ -136,6 +143,16 @@ class Definition
*/
*/
virtual
bool
isLinkable
()
const
=
0
;
virtual
bool
isLinkable
()
const
=
0
;
/*! Returns TRUE iff the name is part of this project and
* may appear in the output
*/
virtual
bool
isVisibleInProject
()
const
{
return
m_hidden
||
isLinkableInProject
();
}
/*! Returns TRUE iff the name may appear in the output */
virtual
bool
isVisible
()
const
{
return
m_hidden
||
isLinkable
();
}
/*! If this definition was imported via a tag file, this function
/*! If this definition was imported via a tag file, this function
* returns the tagfile for the external project. This can be
* returns the tagfile for the external project. This can be
* translated into an external link target via
* translated into an external link target via
...
...
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