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
62039dd4
Commit
62039dd4
authored
May 26, 2004
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.3.7-20040526
parent
820c9009
Changes
23
Show whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
375 additions
and
113 deletions
+375
-113
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
commands.doc
doc/commands.doc
+23
-1
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
code.l
src/code.l
+11
-5
diagram.cpp
src/diagram.cpp
+13
-6
diagram.h
src/diagram.h
+2
-1
docparser.cpp
src/docparser.cpp
+28
-14
docparser.h
src/docparser.h
+4
-4
doctokenizer.l
src/doctokenizer.l
+9
-8
doxygen.cpp
src/doxygen.cpp
+9
-8
htmldocvisitor.cpp
src/htmldocvisitor.cpp
+1
-1
htmlgen.cpp
src/htmlgen.cpp
+2
-2
htmlhelp.cpp
src/htmlhelp.cpp
+1
-0
index.cpp
src/index.cpp
+49
-12
index.h
src/index.h
+13
-0
mandocvisitor.cpp
src/mandocvisitor.cpp
+8
-0
mangen.cpp
src/mangen.cpp
+1
-0
pre.l
src/pre.l
+1
-0
rtfgen.cpp
src/rtfgen.cpp
+1
-1
scanner.l
src/scanner.l
+187
-34
util.cpp
src/util.cpp
+6
-10
No files found.
INSTALL
View file @
62039dd4
DOXYGEN Version 1.3.7-200405
17
DOXYGEN Version 1.3.7-200405
26
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (
17
May 2004)
Dimitri van Heesch (
26
May 2004)
README
View file @
62039dd4
DOXYGEN Version 1.3.7_200405
17
DOXYGEN Version 1.3.7_200405
26
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) (
17
May 2004)
Dimitri van Heesch (dimitri@stack.nl) (
26
May 2004)
VERSION
View file @
62039dd4
1.3.7-200405
17
1.3.7-200405
26
doc/commands.doc
View file @
62039dd4
...
...
@@ -48,6 +48,7 @@ documentation:
\refitem cmdbug \\bug
\refitem cmdc \\c
\refitem cmdcallgraph \\callgraph
\refitem cmdcategory \\category
\refitem cmdclass \\class
\refitem cmdcode \\code
\refitem cmdcopydoc \\copydoc
...
...
@@ -111,6 +112,7 @@ documentation:
\refitem cmdpost \\post
\refitem cmdpre \\pre
\refitem cmdproperty \\property
\refitem cmdprotocol \\protocol
\refitem cmdref \\ref
\refitem cmdrelates \\relates
\refitem cmdrelatesalso \\relatesalso
...
...
@@ -203,6 +205,16 @@ doxygen. Unrecognized commands are treated as normal text.
\note The completeness (and correctness) of the call graph depends on the
doxygen code parser which is not perfect.
<hr>
\section cmdcategory \category <name> [<header-file>] [<header-name>]
\addindex \\category
For Objective-C only: Indicates that a comment block contains documentation
for a class category with name \<name\>. The arguments are
equal to the \\class command.
\sa section \ref cmdclass "\\class".
\section cmdclass \class <name> [<header-file>] [<header-name>]
\addindex \\class
...
...
@@ -385,7 +397,7 @@ doxygen. Unrecognized commands are treated as normal text.
\ref cmdaddtogroup "\\addtogroup" and \ref cmdweakgroup "\\weakgroup"
<hr>
\section cmdinterface \interface
\section cmdinterface \interface
<name> [<header-file>] [<header-name>]
\addindex \\interface
Indicates that a comment block contains documentation for an
...
...
@@ -552,6 +564,16 @@ See section \ref memgroup for an example.
\sa section \ref cmdfn "\\fn" and \ref cmdvar "\\var".
<hr>
\section cmdprotocol \protocol <name> [<header-file>] [<header-name>]
\addindex \\protocol
Indicates that a comment block contains documentation for a
protocol in Objective-C with name \<name\>. The arguments are equal
to the \\class command.
\sa section \ref cmdclass "\\class".
<hr>
\section cmdrelates \relates <name>
...
...
packages/rpm/doxygen.spec
View file @
62039dd4
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.3.7_200405
17
Version: 1.3.7_200405
26
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
...
...
src/code.l
View file @
62039dd4
...
...
@@ -711,7 +711,6 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,
bool typeOnly=FALSE)
{
int i=0;
//fprintf(stderr,"generateClassOrGlobalLink(clName=%s)\n",clName);
if (*clName=='~') // correct for matching negated values i.s.o. destructors.
{
g_code->codify("~");
...
...
@@ -726,14 +725,21 @@ static void generateClassOrGlobalLink(BaseCodeDocInterface &ol,char *clName,
ClassDef *cd=0;
MemberDef *md=0;
//printf("generateClassOrGlobalLink(className=%s)\n",className.data());
if (!g_theVarContext.findVariable(className)) // 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);
if (cd==0 && md==0 && (i=className.find('<'))!=-1)
{
cd=getResolvedClass(d,g_sourceFileDef,className.left(i),&md);
}
//printf("is not found as a variable %s\n",cd?cd->name().data():"<null>");
}
else
{
//printf("is a local variable!\n");
}
if (cd && cd->isLinkable()) // is it a linkable class
{
...
...
@@ -1212,7 +1218,7 @@ static void writeObjCMethodCall(ObjCCallCtx *ctx)
}
else
{
printf("Invalid name: id=%d\n",refId);
//
printf("Invalid name: id=%d\n",refId);
}
}
else if (nc=='o') // reference to potential object name
...
...
@@ -1321,7 +1327,7 @@ static void writeObjCMethodCall(ObjCCallCtx *ctx)
}
else
{
printf("Invalid object: id=%d\n",refId);
//
printf("Invalid object: id=%d\n",refId);
}
}
else if (nc=='c') // reference to nested call
...
...
@@ -1364,7 +1370,7 @@ static void writeObjCMethodCall(ObjCCallCtx *ctx)
}
else
{
printf("Invalid context: id=%d\n",refId);
//
printf("Invalid context: id=%d\n",refId);
}
}
else // illegal marker
...
...
@@ -1981,7 +1987,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^' \\\n]{1,4}"'"))
<Body>{SCOPETNAME}/{B}*"(" { // a() or c::a() or t<A,B>::a()
addType();
generateFunctionLink(*g_code,yytext);
g_theVarContext.addVariable(g_type,yytext);
//
g_theVarContext.addVariable(g_type,yytext);
g_bracketCount=0;
g_args.resize(0);
g_name+=yytext;
...
...
src/diagram.cpp
View file @
62039dd4
...
...
@@ -151,7 +151,8 @@ static void writeVectorBox(QTextStream &t,DiagramItem *di,
if
(
di
->
virtualness
()
==
Virtual
)
t
<<
"solid
\n
"
;
}
static
void
writeMapArea
(
QTextStream
&
t
,
ClassDef
*
cd
,
int
x
,
int
y
,
int
w
,
int
h
)
static
void
writeMapArea
(
QTextStream
&
t
,
ClassDef
*
cd
,
QCString
relPath
,
int
x
,
int
y
,
int
w
,
int
h
)
{
if
(
cd
->
isLinkable
())
{
...
...
@@ -169,6 +170,10 @@ static void writeMapArea(QTextStream &t,ClassDef *cd,int x,int y,int w,int h)
{
if
((
dest
=
Doxygen
::
tagDestinationDict
[
ref
]))
t
<<
*
dest
<<
"/"
;
}
else
{
t
<<
relPath
;
}
t
<<
cd
->
getOutputFileBase
()
<<
Doxygen
::
htmlFileExtension
<<
"
\"
"
;
t
<<
"alt=
\"
"
<<
cd
->
displayName
();
t
<<
"
\"
shape=
\"
rect
\"
coords=
\"
"
<<
x
<<
","
<<
y
<<
","
;
...
...
@@ -479,6 +484,7 @@ void TreeDiagram::drawBoxes(QTextStream &t,Image *image,
bool
doBase
,
bool
bitmap
,
uint
baseRows
,
uint
superRows
,
uint
cellWidth
,
uint
cellHeight
,
QCString
relPath
,
bool
generateMap
)
{
DiagramRow
*
dr
=
first
();
...
...
@@ -548,7 +554,7 @@ void TreeDiagram::drawBoxes(QTextStream &t,Image *image,
writeBitmapBox
(
di
,
image
,
x
,
y
,
cellWidth
,
cellHeight
,
firstRow
,
hasDocs
,
di
->
getChildren
()
->
count
()
>
0
);
if
(
!
firstRow
&&
generateMap
)
writeMapArea
(
t
,
di
->
getClassDef
(),
x
,
y
,
cellWidth
,
cellHeight
);
writeMapArea
(
t
,
di
->
getClassDef
(),
relPath
,
x
,
y
,
cellWidth
,
cellHeight
);
}
else
{
...
...
@@ -581,7 +587,7 @@ void TreeDiagram::drawBoxes(QTextStream &t,Image *image,
bool
hasDocs
=
di
->
getClassDef
()
->
isLinkable
();
writeBitmapBox
(
di
,
image
,
x
,
y
,
cellWidth
,
cellHeight
,
firstRow
,
hasDocs
);
if
(
!
firstRow
&&
generateMap
)
writeMapArea
(
t
,
di
->
getClassDef
(),
x
,
y
,
cellWidth
,
cellHeight
);
writeMapArea
(
t
,
di
->
getClassDef
(),
relPath
,
x
,
y
,
cellWidth
,
cellHeight
);
}
else
{
...
...
@@ -1252,7 +1258,8 @@ void ClassDiagram::writeFigure(QTextStream &output,const char *path,
void
ClassDiagram
::
writeImage
(
QTextStream
&
t
,
const
char
*
path
,
const
char
*
fileName
,
bool
generateMap
)
const
char
*
relPath
,
const
char
*
fileName
,
bool
generateMap
)
{
uint
baseRows
=
base
->
computeRows
();
uint
superRows
=
super
->
computeRows
();
...
...
@@ -1272,8 +1279,8 @@ void ClassDiagram::writeImage(QTextStream &t,const char *path,
Image
image
(
imageWidth
,
imageHeight
);
base
->
drawBoxes
(
t
,
&
image
,
TRUE
,
TRUE
,
baseRows
,
superRows
,
cellWidth
,
cellHeight
,
generateMap
);
super
->
drawBoxes
(
t
,
&
image
,
FALSE
,
TRUE
,
baseRows
,
superRows
,
cellWidth
,
cellHeight
,
generateMap
);
base
->
drawBoxes
(
t
,
&
image
,
TRUE
,
TRUE
,
baseRows
,
superRows
,
cellWidth
,
cellHeight
,
relPath
,
generateMap
);
super
->
drawBoxes
(
t
,
&
image
,
FALSE
,
TRUE
,
baseRows
,
superRows
,
cellWidth
,
cellHeight
,
relPath
,
generateMap
);
base
->
drawConnectors
(
t
,
&
image
,
TRUE
,
TRUE
,
baseRows
,
superRows
,
cellWidth
,
cellHeight
);
super
->
drawConnectors
(
t
,
&
image
,
FALSE
,
TRUE
,
baseRows
,
superRows
,
cellWidth
,
cellHeight
);
...
...
src/diagram.h
View file @
62039dd4
...
...
@@ -105,6 +105,7 @@ class TreeDiagram : public QList<DiagramRow>
bool
doBase
,
bool
bitmap
,
uint
baseRows
,
uint
superRows
,
uint
cellWidth
,
uint
cellHeight
,
QCString
relPath
=
""
,
bool
generateMap
=
TRUE
);
void
drawConnectors
(
QTextStream
&
t
,
Image
*
image
,
bool
doBase
,
bool
bitmap
,
...
...
@@ -123,7 +124,7 @@ class ClassDiagram
~
ClassDiagram
();
void
writeFigure
(
QTextStream
&
t
,
const
char
*
path
,
const
char
*
file
);
void
writeImage
(
QTextStream
&
t
,
const
char
*
path
,
void
writeImage
(
QTextStream
&
t
,
const
char
*
path
,
const
char
*
relPath
,
const
char
*
file
,
bool
generateMap
=
TRUE
);
private
:
TreeDiagram
*
base
;
...
...
src/docparser.cpp
View file @
62039dd4
...
...
@@ -239,7 +239,7 @@ static QCString findAndCopyImage(const char *fileName,DocImage::Type type)
/*! Collects the parameters found with \@param or \@retval commands
* in a global list g_paramsFound. If \a isParam is set to TRUE
* and the parameter is not an actual parameter of the current
* member g_memberDef, th
a
n a warning is raised (unless warnings
* member g_memberDef, th
e
n a warning is raised (unless warnings
* are disabled altogether).
*/
static
void
checkArgumentName
(
const
QString
&
name
,
bool
isParam
)
...
...
@@ -340,7 +340,7 @@ static void checkUndocumentedParams()
//---------------------------------------------------------------------------
/*! Strips know html and tex extensions from \a text. */
/*! Strips know
n
html and tex extensions from \a text. */
static
QString
stripKnownExtensions
(
const
char
*
text
)
{
QString
result
=
text
;
...
...
@@ -1429,16 +1429,14 @@ void DocCopy::parse()
//---------------------------------------------------------------------------
void
DocXRefItem
::
parse
()
DocXRefItem
::
DocXRefItem
(
DocNode
*
parent
,
int
id
,
const
char
*
key
)
:
m_parent
(
parent
),
m_id
(
id
),
m_key
(
key
),
m_relPath
(
g_relPath
)
{
}
bool
DocXRefItem
::
parse
()
{
QString
listName
;
//switch(m_type)
//{
// case Bug: listName="bug"; break;
// case Test: listName="test"; break;
// case Todo: listName="todo"; break;
// case Deprecated: listName="deprecated"; break;
//}
RefList
*
refList
=
Doxygen
::
xrefLists
->
find
(
m_key
);
if
(
refList
&&
(
...
...
@@ -1465,7 +1463,9 @@ void DocXRefItem::parse()
docParserPopContext
();
}
}
return
TRUE
;
}
return
FALSE
;
}
//---------------------------------------------------------------------------
...
...
@@ -1699,6 +1699,7 @@ DocRef::DocRef(DocNode *parent,const QString &target) :
ASSERT
(
!
target
.
isEmpty
());
m_relPath
=
g_relPath
;
SectionInfo
*
sec
=
Doxygen
::
sectionDict
[
target
];
//printf("DocRef::DocRef(target=%s) sec=%p\n",target.data(),sec);
if
(
sec
)
// ref to section or anchor
{
m_text
=
sec
->
title
;
...
...
@@ -1709,6 +1710,8 @@ DocRef::DocRef(DocNode *parent,const QString &target) :
if
(
sec
->
type
!=
SectionInfo
::
Page
)
m_anchor
=
sec
->
label
;
m_refToAnchor
=
sec
->
type
==
SectionInfo
::
Anchor
;
m_refToSection
=
sec
->
type
!=
SectionInfo
::
Anchor
;
//printf("m_text=%s,m_ref=%s,m_file=%s,m_refToAnchor=%d\n",
// m_text.data(),m_ref.data(),m_file.data(),m_refToAnchor);
}
else
if
(
resolveLink
(
g_context
,
target
,
TRUE
,
&
compound
,
/*&pageInfo,*/
anchor
))
{
...
...
@@ -3234,8 +3237,14 @@ int DocPara::handleXRefItem()
if
(
retval
==
RetVal_OK
)
{
DocXRefItem
*
ref
=
new
DocXRefItem
(
this
,
g_token
->
id
,
g_token
->
name
);
if
(
ref
->
parse
())
{
m_children
.
append
(
ref
);
ref
->
parse
();
}
else
{
delete
ref
;
}
}
doctokenizerYYsetStatePara
();
return
retval
;
...
...
@@ -3329,13 +3338,13 @@ void DocPara::handleImage(const QString &cmdName)
}
doctokenizerYYsetStateFile
();
tok
=
doctokenizerYYlex
();
doctokenizerYYsetStatePara
();
if
(
tok
!=
TK_WORD
)
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: unexpected token %s as the argument of %s"
,
tokToString
(
tok
),
cmdName
.
data
());
return
;
}
doctokenizerYYsetStatePara
();
HtmlAttribList
attrList
;
DocImage
*
img
=
new
DocImage
(
this
,
attrList
,
findAndCopyImage
(
g_token
->
name
,
t
),
t
);
m_children
.
append
(
img
);
...
...
@@ -3353,13 +3362,13 @@ void DocPara::handleDotFile(const QString &cmdName)
}
doctokenizerYYsetStateFile
();
tok
=
doctokenizerYYlex
();
doctokenizerYYsetStatePara
();
if
(
tok
!=
TK_WORD
)
{
warn_doc_error
(
g_fileName
,
doctokenizerYYlineno
,
"Warning: unexpected token %s as the argument of %s"
,
tokToString
(
tok
),
cmdName
.
data
());
return
;
}
doctokenizerYYsetStatePara
();
QString
name
=
g_token
->
name
;
DocDotFile
*
df
=
new
DocDotFile
(
this
,
name
);
m_children
.
append
(
df
);
...
...
@@ -4825,6 +4834,10 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
{
g_context
=
ctx
->
name
();
}
else
if
(
ctx
&&
ctx
->
definitionType
()
==
Definition
::
TypePage
)
{
g_context
=
ctx
->
getOuterScope
()
->
name
();
}
else
{
g_context
=
""
;
...
...
@@ -4904,6 +4917,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
g_fileName
=
fileName
;
g_relPath
=
ctx
?
relativePathToRoot
(
ctx
->
getOutputFileBase
())
:
QString
(
""
);
//printf("ctx->name=%s relPath=%s\n",ctx->name().data(),g_relPath.data());
g_memberDef
=
md
;
g_nodeStack
.
clear
();
g_styleStack
.
clear
();
...
...
src/docparser.h
View file @
62039dd4
...
...
@@ -541,16 +541,15 @@ class DocXRefItem : public CompAccept<DocXRefItem>, public DocNode
{
public
:
//enum Type { Bug, Test, Todo, Deprecated };
DocXRefItem
(
DocNode
*
parent
,
int
id
,
const
char
*
key
)
:
m_parent
(
parent
),
m_id
(
id
),
m_key
(
key
)
/*, m_type(t)*/
{}
DocXRefItem
(
DocNode
*
parent
,
int
id
,
const
char
*
key
);
Kind
kind
()
const
{
return
Kind_XRefItem
;
}
//Type type() const { return m_type; }
QString
file
()
const
{
return
m_file
;
}
QString
anchor
()
const
{
return
m_anchor
;
}
QString
title
()
const
{
return
m_title
;
}
DocNode
*
parent
()
const
{
return
m_parent
;
}
QString
relPath
()
const
{
return
m_relPath
;
}
void
accept
(
DocVisitor
*
v
)
{
CompAccept
<
DocXRefItem
>::
accept
(
this
,
v
);
}
void
parse
();
bool
parse
();
private
:
DocNode
*
m_parent
;
...
...
@@ -559,6 +558,7 @@ class DocXRefItem : public CompAccept<DocXRefItem>, public DocNode
QString
m_file
;
QString
m_anchor
;
QString
m_title
;
QString
m_relPath
;
};
/*! @brief Node representing an image */
...
...
src/doctokenizer.l
View file @
62039dd4
...
...
@@ -585,6 +585,7 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
BEGIN(St_TitleN);
}
<St_Title>\n {
unput(*yytext);
return 0;
}
<St_TitleN>"&"{ID}";" { /* symbol */
...
...
@@ -680,7 +681,7 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
unput(*yytext);
return 0;
}
<St_IntRef>[A-Z_a-z0-9.:#\-\+]+ {
<St_IntRef>[A-Z_a-z0-9.:
/
#\-\+]+ {
g_token->name = yytext;
return TK_WORD;
}
...
...
@@ -793,27 +794,27 @@ LABELID [a-z_A-Z][a-z_A-Z0-9\-]*
g_secType = SectionInfo::Paragraph;
BEGIN(St_SecLabel2);
}
<St_Sections>{CMD}"verbatim"
{
<St_Sections>{CMD}"verbatim"
{BLANK}+
{
g_endMarker="endverbatim";
BEGIN(St_SecSkip);
}
<St_Sections>{CMD}"dot"
{
<St_Sections>{CMD}"dot"
/[^a-z_A-Z0-9]
{
g_endMarker="enddot";
BEGIN(St_SecSkip);
}
<St_Sections>{CMD}"htmlonly"
{
<St_Sections>{CMD}"htmlonly"
/[^a-z_A-Z0-9]
{
g_endMarker="endhtmlonly";
BEGIN(St_SecSkip);
}
<St_Sections>{CMD}"latexonly"
{
<St_Sections>{CMD}"latexonly"
/[^a-z_A-Z0-9]
{
g_endMarker="endlatexonly";
BEGIN(St_SecSkip);
}
<St_Sections>{CMD}"xmlonly"
{
<St_Sections>{CMD}"xmlonly"
/[^a-z_A-Z0-9]
{
g_endMarker="endxmlonly";
BEGIN(St_SecSkip);
}
<St_Sections>{CMD}"code"
{
<St_Sections>{CMD}"code"
/[^a-z_A-Z0-9]
{
g_endMarker="endcode";
BEGIN(St_SecSkip);
}
...
...
src/doxygen.cpp
View file @
62039dd4
...
...
@@ -6497,13 +6497,14 @@ static void generatePageDocs()
outputList
->
endSection
(
si
->
label
,
si
->
type
);
}
outputList
->
startTextBlock
();
outputList
->
parseDoc
(
pd
->
docFile
(),
pd
->
docLine
(),
pd
->
getOuterScope
(),
0
,
pd
->
documentation
(),
outputList
->
parseDoc
(
pd
->
docFile
(),
// fileName
pd
->
docLine
(),
// startLine
pd
,
// context
0
,
// memberdef
pd
->
documentation
(),
// docStr
TRUE
,
// index words
FALSE
// not an example
/*,pd->sectionDict*/
);
);
outputList
->
endTextBlock
();
endFile
(
*
outputList
);
//outputList->enable(OutputGenerator::Man);
...
...
@@ -6591,7 +6592,7 @@ static void generateExampleDocs()
endTitle
(
*
outputList
,
n
,
0
);
outputList
->
parseDoc
(
pd
->
docFile
(),
// file
pd
->
docLine
(),
// startLine
pd
->
getOuterScope
(),
// context
pd
,
// context
0
,
// memberDef
pd
->
documentation
()
+
"
\n\\
include "
+
pd
->
name
(),
// docs
TRUE
,
// index words
...
...
src/htmldocvisitor.cpp
View file @
62039dd4
...
...
@@ -908,7 +908,7 @@ void HtmlDocVisitor::visitPre(DocXRefItem *x)
{
if
(
m_hide
)
return
;
m_t
<<
"<dl compact><dt><b><a class=
\"
el
\"
href=
\"
"
<<
x
->
file
()
<<
Doxygen
::
htmlFileExtension
<<
"#"
<<
x
->
anchor
()
<<
"
\"
>"
;
<<
x
->
relPath
()
<<
x
->
file
()
<<
Doxygen
::
htmlFileExtension
<<
"#"
<<
x
->
anchor
()
<<
"
\"
>"
;
filter
(
x
->
title
());
m_t
<<
":</a></b></dt><dd>"
;
}
...
...
src/htmlgen.cpp
View file @
62039dd4
...
...
@@ -813,11 +813,11 @@ void HtmlGenerator::endClassDiagram(ClassDiagram &d,
const
char
*
fileName
,
const
char
*
name
)
{
t
<<
"
\n
<p><center><img src=
\"
"
<<
fileName
<<
".png
\"
usemap=
\"
#"
<<
name
<<
"_map
\"
"
<<
relPath
<<
fileName
<<
".png
\"
usemap=
\"
#"
<<
name
<<
"_map
\"
"
<<
" border=
\"
0
\"
alt=
\"\"
></center>"
<<
endl
<<
"<map name=
\"
"
<<
name
<<
"_map
\"
>"
<<
endl
;
d
.
writeImage
(
t
,
dir
,
fileName
);
d
.
writeImage
(
t
,
dir
,
relPath
,
fileName
);
}
...
...
src/htmlhelp.cpp
View file @
62039dd4
...
...
@@ -353,6 +353,7 @@ void HtmlHelp::initialize()
s_languageDict
.
insert
(
"japanese-en"
,
new
QCString
(
"0x411 Japanese"
));
s_languageDict
.
insert
(
"korean"
,
new
QCString
(
"0x412 Korean"
));
s_languageDict
.
insert
(
"chinese"
,
new
QCString
(
"0x804 Chinese (PRC)"
));
s_languageDict
.
insert
(
"chinese-traditional"
,
new
QCString
(
"0x404 Chinese (Taiwan)"
));
}
...
...
src/index.cpp
View file @
62039dd4
...
...
@@ -116,6 +116,7 @@ static void endIndexHierarchy(OutputList &ol,int level)
static
bool
g_memberIndexLetterUsed
[
CMHL_Total
][
256
];
static
bool
g_fileIndexLetterUsed
[
FMHL_Total
][
256
];
static
bool
g_namespaceIndexLetterUsed
[
NMHL_Total
][
256
];
static
bool
g_classIndexLetterUsed
[
CHL_Total
][
256
];
const
int
maxItemsBeforeQuickIndex
=
30
;
...
...
@@ -886,9 +887,7 @@ void writeFileIndex(OutputList &ol)
ftvHelp
->
addContentsItem
(
TRUE
,
0
,
"files"
,
0
,
ftvHelpTitle
);
ftvHelp
->
incContentsDepth
();
}
//ol.newParagraph();
ol
.
parseText
(
theTranslator
->
trFileListDescription
(
Config_getBool
(
"EXTRACT_ALL"
)));
//ol.newParagraph();
ol
.
endTextBlock
();
OutputNameDict
outputNameDict
(
1009
);
...
...
@@ -1196,16 +1195,58 @@ void writeAnnotatedClassList(OutputList &ol)
bool
hasHtmlHelp
=
generateHtml
&&
Config_getBool
(
"GENERATE_HTMLHELP"
);
bool
hasFtvHelp
=
generateHtml
&&
Config_getBool
(
"GENERATE_TREEVIEW"
);
ol
.
startIndexList
();
//ClassDef *cd=Doxygen::classList.first();
//while (cd)
ClassSDict
::
Iterator
cli
(
Doxygen
::
classSDict
);
ClassDef
*
cd
;
for
(;(
cd
=
cli
.
current
());
++
cli
)
// clear index
for
(
int
y
=
0
;
y
<
CHL_Total
;
y
++
)
{
for
(
int
x
=
0
;
x
<
256
;
x
++
)
{
g_classIndexLetterUsed
[
y
][
x
]
=
FALSE
;
}
}
// see which elements are in use
for
(
cli
.
toFirst
();(
cd
=
cli
.
current
());
++
cli
)
{
if
(
cd
->
isLinkableInProject
()
&&
cd
->
templateMaster
()
==
0
)
{
int
c
=
cd
->
displayName
().
at
(
0
);
g_classIndexLetterUsed
[
CHL_All
][
c
]
=
TRUE
;
switch
(
cd
->
compoundType
())
{
case
ClassDef
:
:
Class
:
g_classIndexLetterUsed
[
CHL_Classes
][
c
]
=
TRUE
;
break
;
case
ClassDef
:
:
Struct
:
g_classIndexLetterUsed
[
CHL_Structs
][
c
]
=
TRUE
;
break
;
case
ClassDef
:
:
Union
:
g_classIndexLetterUsed
[
CHL_Unions
][
c
]
=
TRUE
;
break
;
case
ClassDef
:
:
Interface
:
g_classIndexLetterUsed
[
CHL_Interfaces
][
c
]
=
TRUE
;
break
;
case
ClassDef
:
:
Protocol
:
g_classIndexLetterUsed
[
CHL_Protocols
][
c
]
=
TRUE
;
break
;
case
ClassDef
:
:
Category
:
g_classIndexLetterUsed
[
CHL_Categories
][
c
]
=
TRUE
;
break
;
case
ClassDef
:
:
Exception
:
g_classIndexLetterUsed
[
CHL_Exceptions
][
c
]
=
TRUE
;
break
;
}
}
}
for
(
cli
.
toFirst
();(
cd
=
cli
.
current
());
++
cli
)
{
if
(
cd
->
isLinkableInProject
()
&&
cd
->
templateMaster
()
==
0
)
{
QCString
type
=
cd
->
compoundTypeString
();
//ol.writeStartAnnoItem(type,cd->getOutputFileBase(),0,cd->displayName());
ol
.
startIndexKey
();
ol
.
writeObjectLink
(
0
,
cd
->
getOutputFileBase
(),
0
,
cd
->
displayName
());
ol
.
endIndexKey
();
...
...
@@ -1216,7 +1257,7 @@ void writeAnnotatedClassList(OutputList &ol)
ol
.
parseDoc
(
cd
->
briefFile
(),
cd
->
briefLine
(),
cd
,
0
,
abbreviate
(
cd
->
briefDescription
(),
cd
->
n
ame
()),
abbreviate
(
cd
->
briefDescription
(),
cd
->
displayN
ame
()),
FALSE
,
// indexWords
FALSE
// isExample
);
...
...
@@ -1769,10 +1810,6 @@ static void writeMemberIndexFiltered(OutputList &ol,
QCString
title
=
theTranslator
->
trCompoundMembers
();
QCString
htmlHelpTitle
=
title
;
QCString
ftvHelpTitle
=
title
;
//if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" ");
//startTitle(ol,0);
//ol.parseText(title);
//endTitle(ol,0,0);
ol
.
writeString
(
"<div class=
\"
qindex
\"
>"
);
...
...
src/index.h
View file @
62039dd4
...
...
@@ -124,6 +124,19 @@ enum NamespaceMemberHighlight
NMHL_Total
=
FMHL_EnumValues
+
1
};
enum
ClassHighlight
{
CHL_All
=
0
,
CHL_Classes
,
CHL_Structs
,
CHL_Unions
,
CHL_Interfaces
,
CHL_Protocols
,
CHL_Categories
,
CHL_Exceptions
,
CHL_Total
=
CHL_Exceptions
+
1
};
extern
int
annotatedClasses
;
extern
int
hierarchyClasses
;
extern
int
documentedFiles
;
...
...
src/mandocvisitor.cpp
View file @
62039dd4
...
...
@@ -167,6 +167,7 @@ void ManDocVisitor::visit(DocStyleChange *s)
{
m_insidePre
=
FALSE
;
if
(
!
m_firstCol
)
m_t
<<
endl
;
m_t
<<
".fi"
<<
endl
;
m_t
<<
".PP"
<<
endl
;
m_firstCol
=
TRUE
;
}
...
...
@@ -187,6 +188,7 @@ void ManDocVisitor::visit(DocVerbatim *s)
m_t
<<
".nf"
<<
endl
;
parseCode
(
m_ci
,
s
->
context
(),
s
->
text
().
latin1
(),
s
->
isExample
(),
s
->
exampleFile
());
if
(
!
m_firstCol
)
m_t
<<
endl
;
m_t
<<
".fi"
<<
endl
;
m_t
<<
".PP"
<<
endl
;
m_firstCol
=
TRUE
;
break
;
...
...
@@ -196,6 +198,7 @@ void ManDocVisitor::visit(DocVerbatim *s)
m_t
<<
".nf"
<<
endl
;
m_t
<<
s
->
text
();
if
(
!
m_firstCol
)
m_t
<<
endl
;
m_t
<<
".fi"
<<
endl
;
m_t
<<
".PP"
<<
endl
;
m_firstCol
=
TRUE
;
break
;
...
...
@@ -230,6 +233,7 @@ void ManDocVisitor::visit(DocInclude *inc)
FileDef
fd
(
cfi
.
dirPath
(),
cfi
.
fileName
()
);
parseCode
(
m_ci
,
inc
->
context
(),
inc
->
text
().
latin1
(),
inc
->
isExample
(),
inc
->
exampleFile
(),
&
fd
);
if
(
!
m_firstCol
)
m_t
<<
endl
;
m_t
<<
".fi"
<<
endl
;
m_t
<<
".PP"
<<
endl
;
m_firstCol
=
TRUE
;
}
...
...
@@ -240,6 +244,7 @@ void ManDocVisitor::visit(DocInclude *inc)
m_t
<<
".nf"
<<
endl
;
parseCode
(
m_ci
,
inc
->
context
(),
inc
->
text
().
latin1
(),
inc
->
isExample
(),
inc
->
exampleFile
());
if
(
!
m_firstCol
)
m_t
<<
endl
;
m_t
<<
".fi"
<<
endl
;
m_t
<<
".PP"
<<
endl
;
m_firstCol
=
TRUE
;
break
;
...
...
@@ -253,6 +258,7 @@ void ManDocVisitor::visit(DocInclude *inc)
m_t
<<
".nf"
<<
endl
;
m_t
<<
inc
->
text
();
if
(
!
m_firstCol
)
m_t
<<
endl
;
m_t
<<
".fi"
<<
endl
;
m_t
<<
".PP"
<<
endl
;
m_firstCol
=
TRUE
;
break
;
...
...
@@ -287,6 +293,7 @@ void ManDocVisitor::visit(DocIncOperator *op)
if
(
!
m_hide
)
{
if
(
!
m_firstCol
)
m_t
<<
endl
;
m_t
<<
".fi"
<<
endl
;
m_t
<<
".PP"
<<
endl
;
m_firstCol
=
TRUE
;
}
...
...
@@ -548,6 +555,7 @@ void ManDocVisitor::visitPost(DocHtmlListItem *)
//{
// m_insidePre=FALSE;
// if (!m_firstCol) m_t << endl;
// m_t << ".fi" << endl;
// m_t << ".PP" << endl;
// m_firstCol=TRUE;
//}
...
...
src/mangen.cpp
View file @
62039dd4
...
...
@@ -632,5 +632,6 @@ void ManGenerator::printDoc(DocNode *n)
n
->
accept
(
visitor
);
delete
visitor
;
firstCol
=
FALSE
;
paragraph
=
FALSE
;
}
src/pre.l
View file @
62039dd4
...
...
@@ -1871,6 +1871,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
if (!comment.isEmpty())
{
outputArray(comment,comment.length());
g_defLitText=g_defLitText.left(g_defLitText.length()-comment.length()-1);
}
outputChar('\n');
Define *def=0;
...
...
src/rtfgen.cpp
View file @
62039dd4
...
...
@@ -1700,7 +1700,7 @@ void RTFGenerator::endClassDiagram(ClassDiagram &d,
newParagraph
();
// create a png file
d
.
writeImage
(
t
,
dir
,
fileName
,
FALSE
);
d
.
writeImage
(
t
,
dir
,
relPath
,
fileName
,
FALSE
);
// display the file
t
<<
"{"
<<
endl
;
...
...
src/scanner.l
View file @
62039dd4
...
...
@@ -154,6 +154,7 @@ static Grouping lastDefGroup( "", Grouping::GROUPING_LOWEST );
static bool insideFormula;
static bool insideTryBlock=FALSE;
static bool insideCode;
static bool needsSemi;
static int depthIf;
...
...
@@ -293,6 +294,28 @@ static QCString stripQuotes(const char *s)
return name;
}
//static QCString stripCComments(const QCString &s)
//{
// int p=0,i;
// QCString result;
// while ((i=s.find("/*",p))!=-1)
// {
// result+=s.mid(p,i-p);
// int ei = s.find("*/",i+1);
// if (ei!=-1)
// {
// p=ei+2;
// }
// else
// {
// return result;
// }
// }
// result+=s.right(s.length()-p);
// printf("stripCComments: input=%s output=%s\n",s.data(),result.data());
// return result;
//}
static void newDocState();
//-----------------------------------------------------------------
...
...
@@ -695,6 +718,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
%x SkipCurlyCpp
%x SkipCurlyEndDoc
%x SkipString
%x SkipPHPString
%x SkipInits
%x SkipCPP
%x SkipCPPBlock
...
...
@@ -720,6 +744,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
%x LineDoc
%x DefLineDoc
%x ClassDocArg1
%x CategoryDocArg1
%x ClassDocArg2
%x ClassDocArg3
%x ClassDocFunc
...
...
@@ -790,6 +815,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
%x AnchorLabel
%x ReadInitializer
%x CopyString
%x CopyPHPString
%x CopyRound
%x CopyCurly
%x IDLUnionCase
...
...
@@ -883,7 +909,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
BEGIN( FindMembers );
}
}
<NextSemi>{CHARLIT}
<NextSemi>{CHARLIT}
{ if (insidePHP) REJECT; }
<NextSemi>\" {
lastStringContext=NextSemi;
BEGIN(SkipString);
...
...
@@ -899,6 +925,11 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<FindMembersPHP>"<?"("php"?) { // PHP code start
BEGIN( FindMembers );
}
<FindMembersPHP>[^\n<]+ { // Non-PHP code text, ignore
}
<FindMembersPHP>\n { // Non-PHP code text, ignore
yyLineNr++;
}
<FindMembersPHP>. { // Non-PHP code text, ignore
}
<FindMembers>"?>" { // PHP code end
...
...
@@ -2028,7 +2059,16 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->initializer+=*yytext;
}
*/
<ReadInitializer>{CHARLIT} { current->initializer+=yytext; }
<ReadInitializer>{CHARLIT} {
if (insidePHP)
{
REJECT;
}
else
{
current->initializer+=yytext;
}
}
<ReadInitializer>\n {
current->initializer+=*yytext;
yyLineNr++;
...
...
@@ -2063,21 +2103,25 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
/* generic quoted string copy rules */
<CopyString
>\\.
{
<CopyString
,CopyPHPString>\\.
{
*pCopyQuotedString+=yytext;
}
<CopyString>\" {
*pCopyQuotedString+=*yytext;
BEGIN( lastStringContext );
}
<CopyString>"/*"|"*/"|"//" {
<CopyPHPString>\' {
*pCopyQuotedString+=*yytext;
BEGIN( lastStringContext );
}
<CopyString,CopyPHPString>"/*"|"*/"|"//" {
*pCopyQuotedString+=yytext;
}
<CopyString
>\n
{
<CopyString
,CopyPHPString>\n
{
*pCopyQuotedString+=*yytext;
yyLineNr++;
}
<CopyString
>.
{
<CopyString
,CopyPHPString>.
{
*pCopyQuotedString+=*yytext;
}
...
...
@@ -2101,10 +2145,22 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
yyLineNr++;
*pCopyRoundString+=*yytext;
}
<CopyRound>{CHARLIT} { *pCopyRoundString+=yytext; }
<CopyRound>{CHARLIT} {
if (insidePHP)
{
REJECT;
}
else
{
*pCopyRoundString+=yytext;
}
}
<CopyRound>[^"'()\n]+ {
*pCopyRoundString+=yytext;
}
<CopyRound>. {
*pCopyRoundString+=*yytext;
}
/* generic curly bracket list copy rules */
<CopyCurly>\" {
...
...
@@ -2122,7 +2178,15 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
if (--curlyCount<0)
BEGIN(lastCurlyContext);
}
<CopyCurly>{CHARLIT} { *pCopyCurlyString+=yytext; }
<CopyCurly>{CHARLIT} { if (insidePHP)
{
REJECT;
}
else
{
*pCopyCurlyString+=yytext;
}
}
<CopyCurly>[^"'{}\/\n]+ {
*pCopyCurlyString+=yytext;
}
...
...
@@ -2131,6 +2195,9 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
yyLineNr++;
*pCopyCurlyString+=*yytext;
}
<CopyCurly>. {
*pCopyCurlyString+=*yytext;
}
<FindMembers>":" {
if (current->type.isEmpty()) // bit pad field
{
...
...
@@ -2306,7 +2373,17 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
lastContext = YY_START ;
BEGIN( Comment ) ;
}
<ReadBody,ReadNSBody,ReadBodyIntf>{CHARLIT} { current->program += yytext; }
<ReadBody,ReadNSBody,ReadBodyIntf>{CHARLIT} {
if (insidePHP)
{
REJECT; // for PHP code single quotes
// are used for strings of arbitrary length
}
else
{
current->program += yytext;
}
}
<ReadBody,ReadNSBody,ReadBodyIntf>"{" { current->program += yytext ;
++curlyCount ;
}
...
...
@@ -2544,6 +2621,19 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
insideObjC=FALSE;
BEGIN( FindMembers );
}
<ReadBody,ReadNSBody,ReadBodyIntf>"'" {
if (!insidePHP)
{
current->program += yytext;
}
else
{ // begin of single quoted string
current->program += yytext;
pCopyQuotedString = ¤t->program;
lastStringContext=YY_START;
BEGIN(CopyPHPString);
}
}
<ReadBody,ReadNSBody,ReadBodyIntf>. { current->program += yytext ; }
<ReadBody,ReadNSBody,ReadBodyIntf>"'#" { current->program += yytext ; }
...
...
@@ -2881,9 +2971,16 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
BEGIN( lastCopyArgStringContext );
}
<ReadFuncArgType,ReadTempArgs,CopyArgRound,CopyArgSharp>{CHARLIT} {
if (insidePHP)
{
REJECT;
}
else
{
*copyArgString+=yytext;
fullArgString+=yytext;
}
}
<ReadFuncArgType,ReadTempArgs,CopyArgString,CopyArgRound,CopyArgSharp>\n {
yyLineNr++;
*copyArgString+=*yytext;
...
...
@@ -2973,8 +3070,15 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
BEGIN(CopyString);
}
<FuncPtrInit>{CHARLIT} {
if (insidePHP)
{
REJECT;
}
else
{
current->args += yytext;
}
}
<FuncPtrInit>{ID} {
current->args += yytext;
}
...
...
@@ -3258,6 +3362,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
<SkipCurly>{CHARLIT} {
//addToBody(yytext);
if (insidePHP) REJECT;
}
<SkipCurly>\" {
//addToBody(yytext);
...
...
@@ -3323,27 +3428,21 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
BEGIN(SkipVerbString);
}
<SkipInits,SkipCurly,SkipCurlyCpp>{CHARLIT} {
if (insidePHP) REJECT;
}
<SkipInits,SkipCurly,SkipCurlyCpp>. {
//addToBody(yytext);
}
<SkipString>\\. {
//addToBodyCond(yytext);
}
<SkipInits,SkipCurly,SkipCurlyCpp>. { }
<SkipString,SkipPHPString>\\. { }
<SkipString>\" {
//addToBodyCond(yytext);
BEGIN( lastStringContext );
}
<Skip
String>"/*"|"*/"|"//" {
//addToBodyCond(yytext);
<Skip
PHPString>\' {
BEGIN( lastStringContext );
}
<SkipString>\n {
<SkipString,SkipPHPString>"/*"|"*/"|"//" { }
<SkipString,SkipPHPString>\n {
yyLineNr++;
//addToBodyCond(yytext);
}
<SkipString>. {
//addToBodyCond(yytext);
}
<SkipString,SkipPHPString>. { }
<Bases,CompoundName>";" {
current->section = Entry::EMPTY_SEC ;
current->type.resize(0) ;
...
...
@@ -3526,8 +3625,10 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->name.sprintf("@%d",anonCount++);
}
curlyCount=0;
if (current->section==Entry::PROTOCOL_SEC ||
current->section==Entry::OBJCIMPL_SEC)
if (/*current->section==Entry::PROTOCOL_SEC ||
current->section==Entry::OBJCIMPL_SEC*/
insideObjC
)
{ // ObjC body that ends with @end
BEGIN( ReadBodyIntf );
}
...
...
@@ -3697,9 +3798,17 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
<Comment>"/*" { current->program += yytext ; }
<Comment>"//" { current->program += yytext ; }
<Comment>[^\n\/\*]+ { current->program += yytext ; }
<Comment>{CMD}("code"|"verbatim") {
insideCode=TRUE;
current->program += yytext ;
}
<Comment>{CMD}("endcode"|"endverbatim") {
insideCode=FALSE;
current->program += yytext ;
}
<Comment>[^ \.\n\/\*]+ { current->program += yytext ; }
<Comment>"*/" { current->program += yytext ;
BEGIN( lastContext ) ;
if (!insideCode)
BEGIN( lastContext ) ;
}
<Comment>. { current->program += *yytext ; }
...
...
@@ -4014,6 +4123,18 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
current->startLine = yyLineNr;
BEGIN( ClassDocArg1 );
}
<Doc,JavaDoc>{B}*{CMD}"protocol"{B}+ { // ObjC protocol
current->section = Entry::PROTOCOLDOC_SEC;
current->fileName = yyFileName;
current->startLine = yyLineNr;
BEGIN( ClassDocArg1 );
}
<Doc,JavaDoc>{B}*{CMD}"category"{B}+ { // ObjC category
current->section = Entry::CATEGORYDOC_SEC;
current->fileName = yyFileName;
current->startLine = yyLineNr;
BEGIN( CategoryDocArg1 );
}
<Doc,JavaDoc>{B}*{CMD}"union"{B}+ {
current->section = Entry::UNIONDOC_SEC;
current->fileName = yyFileName;
...
...
@@ -4260,6 +4381,11 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
);
yyLineNr++;
}
<CategoryDocArg1>{SCOPENAME}{B}*"("[^\)]+")" {
current->name = yytext;
prependScope();
BEGIN( ClassDocArg2 );
}
<ClassDocArg1>{SCOPENAME}/"<" {
current->name = yytext;
// prepend outer scope name
...
...
@@ -4269,11 +4395,15 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
<ClassDocArg1>{SCOPENAME} {
current->name = yytext;
if (current->section==Entry::PROTOCOLDOC_SEC)
{
current->name+="-p";
}
// prepend outer scope name
prependScope();
BEGIN( ClassDocArg2 );
}
<ClassDocArg1>"\\"{B}*"\n" {
<ClassDocArg1
,CategoryDocArg1
>"\\"{B}*"\n" {
yyLineNr++;
}
<ClassDocArg1>"\n" {
...
...
@@ -4283,6 +4413,14 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
);
yyLineNr++;
}
<CategoryDocArg1>"\n" {
warn(yyFileName,yyLineNr,
"Warning: missing argument after "
"\\category."
);
yyLineNr++;
}
<GroupDocArg1>{ID}(".html"?) {
current->name = yytext;
...
...
@@ -4668,6 +4806,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<SectionTitle>[^\n*]*/"\n" {
sectionTitle+=yytext;
sectionTitle=sectionTitle.stripWhiteSpace();
//printf("Adding new section file=%s label=%s title=%s\n",yyFileName,sectionLabel.data(),sectionTitle.data());
SectionInfo *si = new SectionInfo(yyFileName,sectionLabel,sectionTitle,SectionInfo::Anchor);
current->anchors->append(si);
Doxygen::sectionDict.insert(yytext,si);
...
...
@@ -5299,7 +5438,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
unput(afterDocTerminator);
BEGIN(lastAfterDocContext);
}
<ClassDocRelates,ClassDocFunc,ClassDocDefine,GroupDocArg1,ClassDocArg1,SectionTitle,EnumDocArg1,PageDocArg1,ExampleDocArg1,ClassDefineArgs>"*/" {
<ClassDocRelates,ClassDocFunc,ClassDocDefine,GroupDocArg1,C
ategoryDocArg1,C
lassDocArg1,SectionTitle,EnumDocArg1,PageDocArg1,ExampleDocArg1,ClassDefineArgs>"*/" {
// defer "*/" to a later time
unput('/');
unput('*');
...
...
@@ -5482,6 +5621,20 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
lastCContext = YY_START ;
BEGIN( SkipCxxComment ) ;
}
<*>\' {
if (insidePHP)
{
lastStringContext=YY_START;
BEGIN(SkipPHPString);
}
}
<*>\" {
if (insidePHP)
{
lastStringContext=YY_START;
BEGIN(SkipString);
}
}
<*>.
<SkipComment>"//"|"/*"
<*>"/*" { lastCContext = YY_START ;
...
...
src/util.cpp
View file @
62039dd4
...
...
@@ -2616,7 +2616,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
fd
=
0
,
md
=
0
,
cd
=
0
,
nd
=
0
,
gd
=
0
;
if
(
memberName
.
isEmpty
())
return
FALSE
;
/* empty name => nothing to link */
QCString
scopeName
=
scName
.
copy
()
;
QCString
scopeName
=
scName
;
//printf("Search for name=%s args=%s in scope=%s\n",
// memberName.data(),args,scopeName.data());
...
...
@@ -2707,7 +2707,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
{
delete
argList
;
argList
=
0
;
}
if
(
mdist
==
maxInheritanceDepth
&&
args
&&
strcmp
(
args
,
"()"
)
!
=
0
)
if
(
mdist
==
maxInheritanceDepth
&&
args
&&
strcmp
(
args
,
"()"
)
=
=
0
)
// no exact match found, but if args="()" an arbitrary member will do
{
//printf(" >Searching for arbitrary member\n");
...
...
@@ -3023,8 +3023,9 @@ bool resolveRef(/* in */ const char *scName,
QCString
fullName
=
substitute
(
tsName
,
"#"
,
"::"
);
fullName
=
removeRedundantWhiteSpace
(
substitute
(
fullName
,
"."
,
"::"
));
int
scopePos
=
fullName
.
findRev
(
"::"
);
int
bracePos
=
fullName
.
findRev
(
'('
);
// reverse is needed for operator()(...)
int
endNamePos
=
bracePos
!=-
1
?
bracePos
:
fullName
.
length
();
int
scopePos
=
fullName
.
findRev
(
"::"
,
endNamePos
);
// default result values
*
resContext
=
0
;
...
...
@@ -3063,22 +3064,15 @@ bool resolveRef(/* in */ const char *scName,
// continue search...
}
// extract scope
QCString
scopeStr
=
scName
;
//printf("scopeContext=%s scopeUser=%s\n",scopeContext.data(),scopeUser.data());
// extract userscope+name
int
endNamePos
=
bracePos
!=-
1
?
bracePos
:
fullName
.
length
();
QCString
nameStr
=
fullName
.
left
(
endNamePos
);
// extract arguments
QCString
argsStr
;
if
(
bracePos
!=-
1
)
argsStr
=
fullName
.
right
(
fullName
.
length
()
-
bracePos
);
//printf("scope=`%s' name=`%s' arg=`%s'\n",
// scopeStr.data(),nameStr.data(),argsStr.data());
// strip template specifier
// TODO: match against the correct partial template instantiation
int
templPos
=
nameStr
.
find
(
'<'
);
...
...
@@ -3088,6 +3082,8 @@ bool resolveRef(/* in */ const char *scName,
nameStr
=
nameStr
.
left
(
templPos
)
+
nameStr
.
right
(
nameStr
.
length
()
-
endTemplPos
-
1
);
}
QCString
scopeStr
=
scName
;
MemberDef
*
md
=
0
;
ClassDef
*
cd
=
0
;
FileDef
*
fd
=
0
;
...
...
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