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
fd40750d
Commit
fd40750d
authored
Aug 15, 2005
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.4.4-20050815
parent
0559d579
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 @
fd40750d
DOXYGEN Version 1.4.4
DOXYGEN Version 1.4.4
-20050815
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (
06
August 2005)
Dimitri van Heesch (
15
August 2005)
README
View file @
fd40750d
DOXYGEN Version 1.4.4
DOXYGEN Version 1.4.4
_20050815
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) (
06
August 2005)
Dimitri van Heesch (dimitri@stack.nl) (
15
August 2005)
VERSION
View file @
fd40750d
1.4.4-200508
08
1.4.4-200508
15
doc/preprocessing.doc
View file @
fd40750d
...
...
@@ -193,7 +193,7 @@ PREDEFINED = "DECLARE_INTERFACE(name)=class name" \
DECLARE_PROTECT_FINAL_CONSTRUCT=// \
"DECLARE_AGGREGATABLE(Class)= " \
"DECLARE_REGISTRY_RESOURCEID(Id)= " \
DECLARE_MESSAGE_MAP
= \
DECLARE_MESSAGE_MAP= \
BEGIN_MESSAGE_MAP=/* \
END_MESSAGE_MAP=*/// \
BEGIN_COM_MAP=/* \
...
...
src/classdef.cpp
View file @
fd40750d
...
...
@@ -1024,7 +1024,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
m_compType
==
Interface
&&
m_isObjC
?
Class
:
m_compType
,
m_tempArgs
!=
0
);
startFile
(
ol
,
getOutputFileBase
(),
name
(),
pageTitle
);
startFile
(
ol
,
getOutputFileBase
(),
name
(),
pageTitle
,
HLI_ClassVisible
);
if
(
getOuterScope
()
!=
Doxygen
::
globalScope
)
{
writeNavigationPath
(
ol
);
...
...
@@ -1645,7 +1645,7 @@ void ClassDef::writeMemberList(OutputList &ol)
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
startFile
(
ol
,
m_memListFileName
,
m_memListFileName
,
theTranslator
->
trMemberList
());
theTranslator
->
trMemberList
()
,
HLI_ClassVisible
);
startTitle
(
ol
,
0
);
ol
.
parseText
(
displayName
()
+
" "
+
theTranslator
->
trMemberList
());
endTitle
(
ol
,
0
,
0
);
...
...
@@ -2025,7 +2025,7 @@ bool ClassDef::isLinkableInProject() const
else
{
return
!
name
().
isEmpty
()
&&
/* no name */
!
m_artificial
&&
!
m_artificial
&&
!
isHidden
()
&&
name
().
find
(
'@'
)
==-
1
&&
/* anonymous compound */
(
m_prot
!=
Private
||
Config_getBool
(
"EXTRACT_PRIVATE"
))
&&
/* private */
(
!
m_isLocal
||
Config_getBool
(
"EXTRACT_LOCAL_CLASSES"
))
&&
/* local */
...
...
src/classdef.h
View file @
fd40750d
...
...
@@ -183,6 +183,17 @@ class ClassDef : public Definition
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
* available, or 0 otherwise.
* @param name The name of the nested compound
...
...
@@ -465,6 +476,8 @@ class ClassDef : public Definition
* class which is extended.
*/
ClassDef
*
m_categoryOf
;
bool
m_isTemplArg
;
};
/*! \brief Class that contains information about a usage relation.
...
...
src/code.l
View file @
fd40750d
...
...
@@ -94,6 +94,7 @@ static QCString g_saveType;
static int g_bracketCount = 0;
static int g_curlyCount = 0;
static int g_sharpCount = 0;
static bool g_inFunctionTryBlock = FALSE;
static int g_lastSpecialCContext;
static int g_lastStringContext;
...
...
@@ -194,6 +195,8 @@ class VariableContext
void addVariable(const QCString &type,const QCString &name);
ClassDef *findVariable(const QCString &name);
int count() const { return m_scopes.count(); }
private:
Scope m_globalScope;
QList<Scope> m_scopes;
...
...
@@ -262,6 +265,10 @@ void VariableContext::addVariable(const QCString &type,const QCString &name)
DBG_CTX((stderr,"** addVariable: dummy context\n"));
scope->append(lname,dummyContext);
}
else
{
DBG_CTX((stderr,"** addVariable: not adding variable!\n"));
}
}
}
...
...
@@ -596,6 +603,18 @@ static void addParmType()
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)
{
g_classScope = md->getClassDef() ? md->getClassDef()->name().data() : "";
...
...
@@ -789,8 +808,6 @@ static bool getLinkInScope(const QCString &c, // scope
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 ?
md->getBodyDef() : md->getOuterScope();
...
...
@@ -858,16 +875,24 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
MemberDef *md=0;
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
{
Definition *d = g_currentDefinition;
//printf("d=%p g_sourceFileDef=%p\n",d,g_currentDefinition);
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)
{
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>");
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,
}
else
{
//printf("local variable!\n");
if (lcd!=VariableContext::dummyContext)
{
//printf("non-dummy context lcd=%s!\n",lcd->name().data());
g_theCallContext.setClass(lcd);
}
isLocal=TRUE;
...
...
@@ -964,7 +991,7 @@ static bool generateClassMemberLink(CodeOutputInterface &ol,ClassDef *mcd,const
if (mcd)
{
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)
{
// extract class definition of the return type in order to resolve
...
...
@@ -1565,6 +1592,7 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
%x ObjCMName
%x ObjCSkipStr
%x OldStyleArgs
%x UsingName
%%
...
...
@@ -1993,6 +2021,18 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
g_insideTemplate=TRUE;
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]) {
startFontClass("keyword");
codifyLines(yytext);
...
...
@@ -2018,6 +2058,10 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
startFontClass("keywordflow");
codifyLines(yytext);
endFontClass();
if (g_inFunctionTryBlock && strcmp(yytext,"catch")==0)
{
g_inFunctionTryBlock=FALSE;
}
}
<Body>{FLOWKW}/{B}* {
startFontClass("keywordflow");
...
...
@@ -2037,6 +2081,7 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
if (*yytext==')')
{
g_theCallContext.popScope();
BEGIN(FuncCall);
}
}
<Body,TemplDecl,ObjCMethod>{TYPEKW}/{B}* {
...
...
@@ -2070,19 +2115,19 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
BEGIN(Body);
}
}
<Body>{SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"/{B}* { // A<T> *pt;
generateClassOrGlobalLink(*g_code,yytext);
<Body>{SCOPENAME}{B}*"<"[^\n\/\-\.\{\"\>]*">"("::"{ID})*/{B}* { // A<T> *pt;
addType();
generateClassOrGlobalLink(*g_code,yytext);
g_name+=yytext;
}
<Body>{SCOPENAME}/{B}*[;,)\]] { // "int var;" or "var, var2" or "debug(f) macro"
generateClassOrGlobalLink(*g_code,yytext/*,TRUE*/);
addType();
generateClassOrGlobalLink(*g_code,yytext/*,TRUE*/);
g_name+=yytext;
}
<Body>{SCOPENAME}/{B}* { // p->func()
generateClassOrGlobalLink(*g_code,yytext);
addType();
generateClassOrGlobalLink(*g_code,yytext);
g_name+=yytext;
}
<Body>"("{B}*("*"{B}*)+{SCOPENAME}*{B}*")"/{B}* { // (*p)->func() but not "if (p) ..."
...
...
@@ -2247,6 +2292,8 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
{
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_name.resize(0);
...
...
@@ -2536,6 +2583,12 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
g_type.resize(0); g_name.resize(0);
BEGIN( Body );
}
<CallEnd>"try" { // function-try-block
startFontClass("keyword");
g_code->codify(yytext);
endFontClass();
g_inFunctionTryBlock=TRUE;
}
<CallEnd>{ID} {
if (g_insideBody || !g_parmType.isEmpty())
{
...
...
@@ -2998,13 +3051,14 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
int startLine,int endLine,bool inlineFragment,
MemberDef *memberDef)
{
//printf("***parseCode()
\n"
);
//printf("***parseCode()
exBlock=%d exName=%s fd=%p\n",exBlock,exName,fd
);
if (s.isEmpty()) return;
g_code = &od;
g_inputString = s;
g_inputPosition = 0;
g_currentFontClass = 0;
g_needsTermination = FALSE;
g_inFunctionTryBlock = FALSE;
if (endLine!=-1)
g_inputLines = endLine+1;
else
...
...
@@ -3026,15 +3080,20 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
g_exampleBlock = exBlock;
g_exampleName = exName;
g_sourceFileDef = fd;
if (
fd)
if (
exBlock && fd==0)
{
setCurrentDoc(fd->name(),fd->getSourceFileBase());
g_insideObjC = fd->name().lower().right(2)==".m" ||
fd->name().lower().right(3)==".mm";
// create a dummy filedef for the example
g_sourceFileDef = new FileDef("",exName);
}
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_currentMemberDef = 0;
g_searchingForBody =
FALSE
;
g_searchingForBody =
exBlock
;
g_insideBody = FALSE;
g_bracketCount = 0;
if (!g_exampleName.isEmpty())
...
...
@@ -3057,6 +3116,12 @@ void parseCCode(CodeOutputInterface &od,const char *className,const QCString &s,
endFontClass();
g_code->endCodeLine();
}
if (exBlock && g_sourceFileDef)
{
// delete the temporary file definition used for this example
delete g_sourceFileDef;
g_sourceFileDef=0;
}
return;
}
...
...
src/commentscan.l
View file @
fd40750d
...
...
@@ -284,6 +284,7 @@ class GuardedSection
void openGroup(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);
/* -----------------------------------------------------------------
...
...
@@ -1903,7 +1904,10 @@ static bool handleName(const QCString &)
bool stop=makeStructuralIndicator(Entry::MEMBERGRP_SEC);
g_memberGroupHeader.resize(0);
BEGIN( NameParam );
if (g_memberGroupId!=DOX_NOGROUP) // end of previous member group
{
closeGroup(current,yyFileName,yyLineNr);
}
return stop;
}
...
...
@@ -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)
{
//printf("==> openGroup(name=%s,sec=%x)\n",e->name.data(),e->section);
...
...
@@ -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)
{
//printf("==> initGroup(id=%d,related=%s)\n",g_memberGroupId,
// g_memberGroupRelates.data());
e->mGrpId = g_memberGroupId;
e->relates = g_memberGroupRelates;
if (!g_autoGroupStack.isEmpty())
...
...
src/definition.cpp
View file @
fd40750d
...
...
@@ -618,6 +618,14 @@ bool Definition::hasDocumentation() const
return
hasDocs
;
}
bool
Definition
::
hasUserDocumentation
()
const
{
bool
hasDocs
=
!
m_doc
.
isEmpty
()
||
!
m_brief
.
isEmpty
();
return
hasDocs
;
}
void
Definition
::
addSourceReferencedBy
(
MemberDef
*
md
)
{
if
(
md
)
...
...
src/definition.h
View file @
fd40750d
...
...
@@ -123,9 +123,16 @@ class Definition
/*! returns the line number at which the definition was found */
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
;
/*! 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
* project.
*/
...
...
@@ -136,6 +143,16 @@ class Definition
*/
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
* returns the tagfile for the external project. This can be
* 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