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
832e08dc
Commit
832e08dc
authored
May 28, 2000
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.1.3-20000528
parent
f38608d4
Changes
36
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
36 changed files
with
701 additions
and
298 deletions
+701
-298
INSTALL
INSTALL
+4
-4
README
README
+2
-2
VERSION
VERSION
+1
-1
config_templ.l
addon/configgen/config_templ.l
+7
-7
config.doc
doc/config.doc
+81
-78
faq.doc
doc/faq.doc
+1
-1
index.doc
doc/index.doc
+2
-0
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+1
-3
code.l
src/code.l
+2
-2
config.l
src/config.l
+10
-7
dot.cpp
src/dot.cpp
+177
-77
dot.h
src/dot.h
+18
-8
doxygen.cpp
src/doxygen.cpp
+152
-29
entry.h
src/entry.h
+2
-1
filedef.cpp
src/filedef.cpp
+18
-7
filedef.h
src/filedef.h
+5
-2
filename.cpp
src/filename.cpp
+1
-1
groupdef.cpp
src/groupdef.cpp
+1
-1
htmlgen.cpp
src/htmlgen.cpp
+8
-9
htmlgen.h
src/htmlgen.h
+3
-3
latexgen.cpp
src/latexgen.cpp
+38
-2
latexgen.h
src/latexgen.h
+5
-5
mangen.h
src/mangen.h
+1
-1
memberdef.cpp
src/memberdef.cpp
+1
-1
message.cpp
src/message.cpp
+17
-6
namespacedef.cpp
src/namespacedef.cpp
+17
-6
namespacedef.h
src/namespacedef.h
+7
-2
outputgen.h
src/outputgen.h
+1
-1
outputlist.h
src/outputlist.h
+2
-2
pre.l
src/pre.l
+2
-1
rtfgen.cpp
src/rtfgen.cpp
+17
-11
rtfgen.h
src/rtfgen.h
+1
-1
scanner.l
src/scanner.l
+79
-9
translator.h
src/translator.h
+11
-1
util.cpp
src/util.cpp
+5
-5
No files found.
INSTALL
View file @
832e08dc
DOXYGEN Version 1.1.3-2000052
2
DOXYGEN Version 1.1.3-2000052
8
CONTENTS
CONTENTS
--------
--------
...
@@ -15,8 +15,8 @@ INSTALLATION INSTRUCTIONS FOR UNIX:
...
@@ -15,8 +15,8 @@ INSTALLATION INSTRUCTIONS FOR UNIX:
1. Unpack the archive, unless you already have:
1. Unpack the archive, unless you already have:
gunzip doxygen-1.1.3-2000052
2
.src.tar.gz # uncompress the archive
gunzip doxygen-1.1.3-2000052
8
.src.tar.gz # uncompress the archive
tar xf doxygen-1.1.3-2000052
2
.src.tar # unpack it
tar xf doxygen-1.1.3-2000052
8
.src.tar # unpack it
2. Run the configure script:
2. Run the configure script:
...
@@ -252,4 +252,4 @@ The latest version of doxygen can be obtained at
...
@@ -252,4 +252,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Enjoy,
Dimitri van Heesch (2
2
May 2000)
Dimitri van Heesch (2
8
May 2000)
README
View file @
832e08dc
DOXYGEN Version 1.1.3-2000052
2
DOXYGEN Version 1.1.3-2000052
8
Please read INSTALL for compilation instructions.
Please read INSTALL for compilation instructions.
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
...
@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Enjoy,
Dimitri van Heesch (2
2
May 2000)
Dimitri van Heesch (2
8
May 2000)
VERSION
View file @
832e08dc
1.1.3-2000052
2
1.1.3-2000052
8
addon/configgen/config_templ.l
View file @
832e08dc
...
@@ -317,7 +317,7 @@ void configStrToVal()
...
@@ -317,7 +317,7 @@ void configStrToVal()
static void substEnvVarsInString(QCString &s)
static void substEnvVarsInString(QCString &s)
{
{
QRegExp re("\\$([a-z_A-Z0-9]+
)");
static QRegExp re("\\$\\([a-z_A-Z0-9]+\\
)");
int p=0;
int p=0;
int i,l;
int i,l;
//printf("substEnvVarInString(%s) start\n",s.data());
//printf("substEnvVarInString(%s) start\n",s.data());
...
@@ -644,19 +644,19 @@ void checkConfig()
...
@@ -644,19 +644,19 @@ void checkConfig()
}
}
// add default pattern if needed
// add default pattern if needed
if (Config::filePatternList.
count()==0
)
if (Config::filePatternList.
isEmpty()
)
{
{
Config::filePatternList
.append("*")
;
Config::filePatternList
="*"
;
}
}
// add default pattern if needed
// add default pattern if needed
if (Config::examplePatternList.
count()==0
)
if (Config::examplePatternList.
isEmpty()
)
{
{
Config::examplePatternList
.append("*")
;
Config::examplePatternList
="*"
;
}
}
// add default pattern if needed
// add default pattern if needed
//if (Config::imagePatternList.
count()==0
)
//if (Config::imagePatternList.
isEmpty()
)
//{
//{
// Config::imagePatternList.append("*");
// Config::imagePatternList.append("*");
//}
//}
...
@@ -685,7 +685,7 @@ void checkConfig()
...
@@ -685,7 +685,7 @@ void checkConfig()
// check documentation URL
// check documentation URL
if (Config::docURL.isEmpty())
if (Config::docURL.isEmpty())
{
{
Config::docURL = Config::outputDir.copy().prepend("file://")
.append("html")
;
Config::docURL = Config::outputDir.copy().prepend("file://")
+"html"
;
}
}
else if (Config::docURL.left(7)!="http://" && Config::docURL.left(7)!="file://")
else if (Config::docURL.left(7)!="http://" && Config::docURL.left(7)!="file://")
{
{
...
...
doc/config.doc
View file @
832e08dc
This diff is collapsed.
Click to expand it.
doc/faq.doc
View file @
832e08dc
...
@@ -149,7 +149,7 @@ QDict, QString, QArray, QTextStream, QRegExp etc.
...
@@ -149,7 +149,7 @@ QDict, QString, QArray, QTextStream, QRegExp etc.
The GUI front-end doxywizard uses Qt for... well... the GUI!
The GUI front-end doxywizard uses Qt for... well... the GUI!
<li><b>Can use doxygen on my Java code?</b>
<li><b>Can
I
use doxygen on my Java code?</b>
No, at the moment there is no support for Java. I suggest to
No, at the moment there is no support for Java. I suggest to
use Sun's JavaDoc instead.
use Sun's JavaDoc instead.
...
...
doc/index.doc
View file @
832e08dc
...
@@ -163,6 +163,7 @@ Thanks go to:
...
@@ -163,6 +163,7 @@ Thanks go to:
PDF links, and the configuration generator.
PDF links, and the configuration generator.
<li>Matthias Andree for providing a .spec script for building rpms from the
<li>Matthias Andree for providing a .spec script for building rpms from the
sources.
sources.
<li>Tim Mensch for adding the todo command.
<li>Jens Breitenstein, Christophe Bordeaux, Samuel Hägglund, Xet Erixon,
<li>Jens Breitenstein, Christophe Bordeaux, Samuel Hägglund, Xet Erixon,
Vlastimil Havran, Ahmed Also Faisal, Alessandro Falappa, Kenji Nagamatsu,
Vlastimil Havran, Ahmed Also Faisal, Alessandro Falappa, Kenji Nagamatsu,
Francisco Oltra Thennet, Olli Korhonen for providing translations into
Francisco Oltra Thennet, Olli Korhonen for providing translations into
...
@@ -236,6 +237,7 @@ Peter Garner,
...
@@ -236,6 +237,7 @@ Peter Garner,
Fred Labrosse,
Fred Labrosse,
Frank Schimmel,
Frank Schimmel,
Reinhard Nissl,
Reinhard Nissl,
Alexander Gidon,
and many others for suggestions, patches and bug reports.
and many others for suggestions, patches and bug reports.
</ul>
</ul>
*/
*/
...
...
packages/rpm/doxygen.spec
View file @
832e08dc
Name: doxygen
Name: doxygen
Version: 1.1.3-2000052
2
Version: 1.1.3-2000052
8
Summary: documentation system for C, C++ and IDL
Summary: documentation system for C, C++ and IDL
Release: 1
Release: 1
Source0: doxygen-%{version}.src.tar.gz
Source0: doxygen-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
832e08dc
...
@@ -710,7 +710,6 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -710,7 +710,6 @@ void ClassDef::writeDocumentation(OutputList &ol)
if
(
!
inheritanceGraph
.
isTrivial
())
if
(
!
inheritanceGraph
.
isTrivial
())
{
{
ol
.
pushGeneratorState
();
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
startDotGraph
();
ol
.
startDotGraph
();
parseText
(
ol
,
theTranslator
->
trClassDiagram
(
name
()));
parseText
(
ol
,
theTranslator
->
trClassDiagram
(
name
()));
...
@@ -735,7 +734,6 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -735,7 +734,6 @@ void ClassDef::writeDocumentation(OutputList &ol)
if
(
!
usageImplGraph
.
isTrivial
())
if
(
!
usageImplGraph
.
isTrivial
())
{
{
ol
.
pushGeneratorState
();
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
startDotGraph
();
ol
.
startDotGraph
();
parseText
(
ol
,
theTranslator
->
trCollaborationDiagram
(
name
()));
parseText
(
ol
,
theTranslator
->
trCollaborationDiagram
(
name
()));
...
@@ -822,7 +820,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
...
@@ -822,7 +820,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol
.
pushGeneratorState
();
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
writeAnchor
(
"_details"
);
ol
.
writeAnchor
(
0
,
"_details"
);
ol
.
popGeneratorState
();
ol
.
popGeneratorState
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trDetailedDescription
());
parseText
(
ol
,
theTranslator
->
trDetailedDescription
());
...
...
src/code.l
View file @
832e08dc
...
@@ -304,7 +304,7 @@ static void generateClassLink(OutputList &ol,char *clName,int *clNameLen=0)
...
@@ -304,7 +304,7 @@ static void generateClassLink(OutputList &ol,char *clName,int *clNameLen=0)
//if (latexOn) ol.disable(OutputGenerator::Latex);
//if (latexOn) ol.disable(OutputGenerator::Latex);
ol.disable(OutputGenerator::Latex);
ol.disable(OutputGenerator::Latex);
ol.disable(OutputGenerator::RTF);
ol.disable(OutputGenerator::RTF);
ol.writeAnchor(anchor);
ol.writeAnchor(
0,
anchor);
//if (latexOn) ol.enable(OutputGenerator::Latex);
//if (latexOn) ol.enable(OutputGenerator::Latex);
ol.popGeneratorState();
ol.popGeneratorState();
g_anchorCount++;
g_anchorCount++;
...
@@ -347,7 +347,7 @@ static bool getLink(const char *className,
...
@@ -347,7 +347,7 @@ static bool getLink(const char *className,
result.pushGeneratorState();
result.pushGeneratorState();
//if (latexEnabled) result.disable(OutputGenerator::Latex);
//if (latexEnabled) result.disable(OutputGenerator::Latex);
result.disable(OutputGenerator::Latex);
result.disable(OutputGenerator::Latex);
result.writeAnchor(anchor);
result.writeAnchor(
0,
anchor);
result.popGeneratorState();
result.popGeneratorState();
//if (latexEnabled) result.enable(OutputGenerator::Latex);
//if (latexEnabled) result.enable(OutputGenerator::Latex);
g_anchorCount++;
g_anchorCount++;
...
...
src/config.l
View file @
832e08dc
...
@@ -47,6 +47,9 @@ void warn_cont(const char *fmt, ...)
...
@@ -47,6 +47,9 @@ void warn_cont(const char *fmt, ...)
vfprintf(stderr, fmt, args);
vfprintf(stderr, fmt, args);
va_end(args);
va_end(args);
}
}
void initWarningFormat()
{
}
#else
#else
#include "doxygen.h"
#include "doxygen.h"
#include "message.h"
#include "message.h"
...
@@ -1842,7 +1845,7 @@ void configStrToVal()
...
@@ -1842,7 +1845,7 @@ void configStrToVal()
static void substEnvVarsInString(QCString &s)
static void substEnvVarsInString(QCString &s)
{
{
QRegExp re("\\$([a-z_A-Z0-9]+
)");
static QRegExp re("\\$\\([a-z_A-Z0-9]+\\
)");
int p=0;
int p=0;
int i,l;
int i,l;
//printf("substEnvVarInString(%s) start\n",s.data());
//printf("substEnvVarInString(%s) start\n",s.data());
...
@@ -2206,19 +2209,19 @@ void checkConfig()
...
@@ -2206,19 +2209,19 @@ void checkConfig()
}
}
// add default pattern if needed
// add default pattern if needed
if (Config::filePatternList.
count()==0
)
if (Config::filePatternList.
isEmpty()
)
{
{
Config::filePatternList
.append("*")
;
Config::filePatternList
="*"
;
}
}
// add default pattern if needed
// add default pattern if needed
if (Config::examplePatternList.
count()==0
)
if (Config::examplePatternList.
isEmpty()
)
{
{
Config::examplePatternList
.append("*")
;
Config::examplePatternList
="*"
;
}
}
// add default pattern if needed
// add default pattern if needed
//if (Config::imagePatternList.
count()==0
)
//if (Config::imagePatternList.
isEmpty()
)
//{
//{
// Config::imagePatternList.append("*");
// Config::imagePatternList.append("*");
//}
//}
...
@@ -2247,7 +2250,7 @@ void checkConfig()
...
@@ -2247,7 +2250,7 @@ void checkConfig()
// check documentation URL
// check documentation URL
if (Config::docURL.isEmpty())
if (Config::docURL.isEmpty())
{
{
Config::docURL = Config::outputDir.copy().prepend("file://")
.append("html")
;
Config::docURL = Config::outputDir.copy().prepend("file://")
+"html"
;
}
}
else if (Config::docURL.left(7)!="http://" && Config::docURL.left(7)!="file://")
else if (Config::docURL.left(7)!="http://" && Config::docURL.left(7)!="file://")
{
{
...
...
src/dot.cpp
View file @
832e08dc
This diff is collapsed.
Click to expand it.
src/dot.h
View file @
832e08dc
...
@@ -25,6 +25,8 @@ class FileDef;
...
@@ -25,6 +25,8 @@ class FileDef;
class
QTextStream
;
class
QTextStream
;
class
DotNodeList
;
class
DotNodeList
;
enum
GraphOutputFormat
{
GIF
,
EPS
};
struct
EdgeInfo
struct
EdgeInfo
{
{
enum
Colors
{
Blue
=
0
,
Green
=
1
,
Red
=
2
,
Black
=
3
,
Grey
=
4
};
enum
Colors
{
Blue
=
0
,
Green
=
1
,
Red
=
2
,
Black
=
3
,
Grey
=
4
};
...
@@ -44,8 +46,13 @@ class DotNode
...
@@ -44,8 +46,13 @@ class DotNode
friend
class
DotClassGraph
;
friend
class
DotClassGraph
;
friend
class
DotInclDepGraph
;
friend
class
DotInclDepGraph
;
friend
class
DotNodeList
;
friend
class
DotNodeList
;
friend
void
writeDotGraph
(
DotNode
*
root
,
const
QCString
&
baseName
,
friend
void
writeDotGraph
(
bool
lrRank
,
bool
renderParents
,
int
distance
);
DotNode
*
root
,
GraphOutputFormat
f
,
const
QCString
&
baseName
,
bool
lrRank
,
bool
renderParents
,
int
distance
);
public
:
public
:
DotNode
(
int
n
,
const
char
*
lab
,
const
char
*
url
,
int
distance
=
0
,
bool
rootNode
=
FALSE
);
DotNode
(
int
n
,
const
char
*
lab
,
const
char
*
url
,
int
distance
=
0
,
bool
rootNode
=
FALSE
);
~
DotNode
();
~
DotNode
();
...
@@ -62,15 +69,17 @@ class DotNode
...
@@ -62,15 +69,17 @@ class DotNode
void
removeChild
(
DotNode
*
n
);
void
removeChild
(
DotNode
*
n
);
void
removeParent
(
DotNode
*
n
);
void
removeParent
(
DotNode
*
n
);
int
number
()
const
{
return
m_number
;
}
int
number
()
const
{
return
m_number
;
}
void
write
(
QTextStream
&
t
,
bool
topDown
,
bool
toChildren
,
int
maxDistance
=
1000
);
void
write
(
QTextStream
&
t
,
GraphOutputFormat
f
,
bool
topDown
,
bool
toChildren
,
int
maxDistance
=
1000
);
int
m_subgraphId
;
int
m_subgraphId
;
void
clearWriteFlag
();
void
clearWriteFlag
();
private
:
private
:
void
colorConnectedNodes
(
int
curColor
);
void
colorConnectedNodes
(
int
curColor
);
void
writeBox
(
QTextStream
&
t
,
bool
hasNonReachableChildren
);
void
writeBox
(
QTextStream
&
t
,
GraphOutputFormat
f
,
void
writeArrow
(
QTextStream
&
t
,
DotNode
*
cn
,
EdgeInfo
*
ei
,
bool
topDown
,
bool
hasNonReachableChildren
);
bool
pointBack
=
TRUE
);
void
writeArrow
(
QTextStream
&
t
,
GraphOutputFormat
f
,
DotNode
*
cn
,
EdgeInfo
*
ei
,
bool
topDown
,
bool
pointBack
=
TRUE
);
const
DotNode
*
findDocNode
()
const
;
// only works for acyclic graphs!
const
DotNode
*
findDocNode
()
const
;
// only works for acyclic graphs!
int
m_number
;
int
m_number
;
QCString
m_label
;
//!< label text
QCString
m_label
;
//!< label text
...
@@ -108,7 +117,8 @@ class DotClassGraph
...
@@ -108,7 +117,8 @@ class DotClassGraph
DotClassGraph
(
ClassDef
*
cd
,
GraphType
t
,
int
maxRecusionDepth
=
1000
);
DotClassGraph
(
ClassDef
*
cd
,
GraphType
t
,
int
maxRecusionDepth
=
1000
);
~
DotClassGraph
();
~
DotClassGraph
();
bool
isTrivial
()
const
;
bool
isTrivial
()
const
;
void
writeGraph
(
QTextStream
&
t
,
const
char
*
path
,
bool
TBRank
=
TRUE
);
void
writeGraph
(
QTextStream
&
t
,
GraphOutputFormat
f
,
const
char
*
path
,
bool
TBRank
=
TRUE
);
QCString
diskName
()
const
;
QCString
diskName
()
const
;
private
:
private
:
...
@@ -129,7 +139,7 @@ class DotInclDepGraph
...
@@ -129,7 +139,7 @@ class DotInclDepGraph
public
:
public
:
DotInclDepGraph
(
FileDef
*
fd
);
DotInclDepGraph
(
FileDef
*
fd
);
~
DotInclDepGraph
();
~
DotInclDepGraph
();
void
writeGraph
(
QTextStream
&
t
,
const
char
*
path
);
void
writeGraph
(
QTextStream
&
t
,
GraphOutputFormat
f
,
const
char
*
path
);
bool
isTrivial
()
const
;
bool
isTrivial
()
const
;
QCString
diskName
()
const
;
QCString
diskName
()
const
;
...
...
src/doxygen.cpp
View file @
832e08dc
...
@@ -696,6 +696,8 @@ void buildNamespaceList(Entry *root)
...
@@ -696,6 +696,8 @@ void buildNamespaceList(Entry *root)
}
}
}
}
//----------------------------------------------------------------------
void
findUsingDirectives
(
Entry
*
root
)
void
findUsingDirectives
(
Entry
*
root
)
{
{
if
(
root
->
section
==
Entry
::
USINGDIR_SEC
)
if
(
root
->
section
==
Entry
::
USINGDIR_SEC
)
...
@@ -802,6 +804,83 @@ void findUsingDirectives(Entry *root)
...
@@ -802,6 +804,83 @@ void findUsingDirectives(Entry *root)
}
}
}
}
//----------------------------------------------------------------------
void
findUsingDeclarations
(
Entry
*
root
)
{
if
(
root
->
section
==
Entry
::
USINGDECL_SEC
)
{
//printf("Found using declaration %s at line %d of %s\n",
// root->name.data(),root->startLine,root->fileName.data());
bool
ambig
;
if
(
!
root
->
name
.
isEmpty
())
{
ClassDef
*
usingCd
=
0
;
NamespaceDef
*
nd
=
0
;
FileDef
*
fd
=
findFileDef
(
&
inputNameDict
,
root
->
fileName
,
ambig
);
QCString
scName
;
// see if the using statement was found inside a namespace or inside
// the global file scope.
if
(
root
->
parent
->
section
==
Entry
::
NAMESPACE_SEC
)
{
scName
=
root
->
parent
->
name
.
copy
();
if
(
!
scName
.
isEmpty
())
{
nd
=
namespaceDict
[
scName
];
}
}
// Assume the using statement was used to import a class.
// Find the scope in which the `using' namespace is defined by prepending
// the possible scopes in which the using statement was found, starting
// with the most inner scope and going to the most outer scope (i.e.
// file scope).
int
scopeOffset
=
scName
.
length
();
do
{
QCString
scope
=
scopeOffset
>
0
?
scName
.
left
(
scopeOffset
)
+
"::"
:
QCString
();
//printf("Trying with scope=`%s'\n",scope.data());
usingCd
=
getClass
(
scope
+
root
->
name
);
if
(
scopeOffset
==
0
)
{
scopeOffset
=-
1
;
}
else
if
((
scopeOffset
=
scName
.
findRev
(
"::"
,
scopeOffset
-
1
))
==-
1
)
{
scopeOffset
=
0
;
}
}
while
(
scopeOffset
>=
0
&&
usingCd
==
0
);
//printf("%s -> %p\n",root->name.data(),usingCd);
// add the namespace the correct scope
if
(
usingCd
)
{
if
(
nd
)
{
//printf("Inside namespace %s\n",nd->name().data());
nd
->
addUsingDeclaration
(
usingCd
);
}
else
if
(
fd
)
{
//printf("Inside file %s\n",fd->name().data());
fd
->
addUsingDeclaration
(
usingCd
);
}
}
}
}
EntryListIterator
eli
(
*
root
->
sublist
);
Entry
*
e
;
for
(;(
e
=
eli
.
current
());
++
eli
)
{
findUsingDeclarations
(
e
);
}
}
//----------------------------------------------------------------------
//----------------------------------------------------------------------
static
MemberDef
*
addVariableToClass
(
static
MemberDef
*
addVariableToClass
(
...
@@ -2131,7 +2210,7 @@ void addMemberDocs(Entry *root,
...
@@ -2131,7 +2210,7 @@ void addMemberDocs(Entry *root,
// find a class definition given the scope name and (optionally) a
// find a class definition given the scope name and (optionally) a
// template list specifier
// template list specifier
static
ClassDef
*
findClassDefinition
(
const
char
*
scopeName
,
const
char
*
classTempList
)
static
ClassDef
*
find
Simple
ClassDefinition
(
const
char
*
scopeName
,
const
char
*
classTempList
)
{
{
ClassDef
*
tcd
=
0
;
ClassDef
*
tcd
=
0
;
if
(
classTempList
)
// try to find the correct specialization
if
(
classTempList
)
// try to find the correct specialization
...
@@ -2150,6 +2229,68 @@ static ClassDef *findClassDefinition(const char *scopeName,const char *classTemp
...
@@ -2150,6 +2229,68 @@ static ClassDef *findClassDefinition(const char *scopeName,const char *classTemp
return
tcd
;
return
tcd
;
}
}
static
ClassDef
*
findClassDefinition
(
FileDef
*
fd
,
NamespaceDef
*
nd
,
const
char
*
scopeName
,
const
char
*
classTempList
)
{
ClassDef
*
tcd
=
findSimpleClassDefinition
(
scopeName
,
classTempList
);
if
(
tcd
==
0
)
// try using declaration
{
ClassList
*
cl
=
0
;
if
(
nd
)
{
cl
=
nd
->
getUsedClasses
();
}
else
{
cl
=
fd
->
getUsedClasses
();
}
if
(
cl
)
{
ClassListIterator
cli
(
*
cl
);
ClassDef
*
cd
;
for
(;(
cd
=
cli
.
current
())
&&
tcd
==
0
;
++
cli
)
{
QCString
scName
=
scopeName
;
int
scopeOffset
=
scName
.
length
();
do
{
QCString
scope
=
scName
.
left
(
scopeOffset
);
//printf("`%s'<->`%s' `%s'\n",cd->name().data(),scope.data(),scopeName);
if
(
rightScopeMatch
(
cd
->
name
(),
scope
))
{
//printf("Trying to find `%s'\n",(cd->name()+scName.right(scName.length()-scopeOffset)).data());
tcd
=
findSimpleClassDefinition
(
cd
->
name
()
+
scName
.
right
(
scName
.
length
()
-
scopeOffset
),
classTempList
);
}
scopeOffset
=
scName
.
findRev
(
"::"
,
scopeOffset
-
1
);
}
while
(
scopeOffset
>=
0
&&
tcd
==
0
);
}
}
}
if
(
tcd
==
0
)
// try using directive
{
NamespaceList
*
nl
=
0
;
if
(
nd
)
{
nl
=
nd
->
getUsedNamespaces
();
}
else
if
(
fd
)
{
nl
=
fd
->
getUsedNamespaces
();
}
if
(
nl
)
{
NamespaceListIterator
nli
(
*
nl
);
NamespaceDef
*
nd
;
for
(;(
nd
=
nli
.
current
())
&&
tcd
==
0
;
++
nli
)
{
//printf("Trying with scope=%s\n",nd->name().data());
tcd
=
findSimpleClassDefinition
(
nd
->
name
()
+
"::"
+
scopeName
,
classTempList
);
}
}
}
return
tcd
;
}
//----------------------------------------------------------------------
//----------------------------------------------------------------------
// Adds the documentation contained in `root' to a global function
// Adds the documentation contained in `root' to a global function
...
@@ -2659,33 +2800,11 @@ void findMember(Entry *root,QCString funcDecl,QCString related,bool overloaded,
...
@@ -2659,33 +2800,11 @@ void findMember(Entry *root,QCString funcDecl,QCString related,bool overloaded,
//printf("Member %s (member scopeName=%s) (this scopeName=%s) classTempList=%s\n",md->name().data(),cd->name().data(),scopeName.data(),classTempList.data());
//printf("Member %s (member scopeName=%s) (this scopeName=%s) classTempList=%s\n",md->name().data(),cd->name().data(),scopeName.data(),classTempList.data());
ClassDef
*
tcd
=
0
;
ClassDef
*
tcd
=
0
;
tcd
=
findClassDefinition
(
scopeName
,
classTempList
);
bool
ambig
;
FileDef
*
fd
=
findFileDef
(
&
inputNameDict
,
root
->
fileName
,
ambig
);
if
(
tcd
==
0
)
NamespaceDef
*
nd
=
0
;
{
if
(
!
namespaceName
.
isEmpty
())
nd
=
namespaceDict
[
namespaceName
];
bool
ambig
;
tcd
=
findClassDefinition
(
fd
,
nd
,
scopeName
,
classTempList
);
NamespaceDef
*
nd
=
0
;
FileDef
*
fd
=
0
;
NamespaceList
*
nl
=
0
;
if
(
!
namespaceName
.
isEmpty
()
&&
(
nd
=
namespaceDict
[
namespaceName
]))
{
nl
=
nd
->
getUsedNamespaces
();
}
else
if
((
fd
=
findFileDef
(
&
inputNameDict
,
root
->
fileName
,
ambig
)))
{
nl
=
fd
->
getUsedNamespaces
();
}
if
(
nl
)
{
NamespaceListIterator
nli
(
*
nl
);
NamespaceDef
*
nd
;
for
(;(
nd
=
nli
.
current
())
&&
tcd
==
0
;
++
nli
)
{
//printf("Trying with scope=%s\n",nd->name().data());
tcd
=
findClassDefinition
(
nd
->
name
()
+
"::"
+
scopeName
,
classTempList
);
}
}
}
if
(
cd
&&
tcd
==
cd
)
// member's classes match
if
(
cd
&&
tcd
==
cd
)
// member's classes match
{
{
...
@@ -4969,7 +5088,10 @@ int main(int argc,char **argv)
...
@@ -4969,7 +5088,10 @@ int main(int argc,char **argv)
* Initialize some global constants
* Initialize some global constants
**************************************************************************/
**************************************************************************/
spaces
.
fill
(
' '
,
Config
::
tabSize
);
spaces
.
resize
(
Config
::
tabSize
+
1
);
int
sp
;
for
(
sp
=
0
;
sp
<
Config
::
tabSize
;
sp
++
)
spaces
.
at
(
sp
)
=
' '
;
spaces
.
at
(
Config
::
tabSize
)
=
'\0'
;
compoundKeywordDict
.
insert
(
"class"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"class"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"struct"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"struct"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"union"
,(
void
*
)
8
);
compoundKeywordDict
.
insert
(
"union"
,(
void
*
)
8
);
...
@@ -5134,6 +5256,7 @@ int main(int argc,char **argv)
...
@@ -5134,6 +5256,7 @@ int main(int argc,char **argv)
msg
(
"Building class list...
\n
"
);
msg
(
"Building class list...
\n
"
);
buildClassList
(
root
);
buildClassList
(
root
);
findUsingDeclarations
(
root
);
msg
(
"Building example list...
\n
"
);
msg
(
"Building example list...
\n
"
);
buildExampleList
(
root
);
buildExampleList
(
root
);
...
...
src/entry.h
View file @
832e08dc
...
@@ -141,7 +141,8 @@ class Entry
...
@@ -141,7 +141,8 @@ class Entry
GROUPDOC_SEC
=
0x01000000
,
GROUPDOC_SEC
=
0x01000000
,
USINGDIR_SEC
=
0x01100000
,
USINGDIR_SEC
=
0x01100000
,
MAINPAGEDOC_SEC
=
0x01200000
,
MAINPAGEDOC_SEC
=
0x01200000
,
MEMBERGRP_SEC
=
0x01300000
MEMBERGRP_SEC
=
0x01300000
,
USINGDECL_SEC
=
0x01400000
};
};
Entry
();
Entry
();
...
...
src/filedef.cpp
View file @
832e08dc
...
@@ -50,7 +50,8 @@ FileDef::FileDef(const char *p,const char *nm,const char *ref)
...
@@ -50,7 +50,8 @@ FileDef::FileDef(const char *p,const char *nm,const char *ref)
namespaceDict
=
new
NamespaceDict
(
7
);
namespaceDict
=
new
NamespaceDict
(
7
);
srcDefDict
=
0
;
srcDefDict
=
0
;
srcAnchorDict
=
0
;
srcAnchorDict
=
0
;
usingList
=
0
;
usingDirList
=
0
;
usingDeclList
=
0
;
isSource
=
FALSE
;
isSource
=
FALSE
;
docname
=
nm
;
docname
=
nm
;
if
(
Config
::
fullPathNameFlag
)
if
(
Config
::
fullPathNameFlag
)
...
@@ -72,7 +73,8 @@ FileDef::~FileDef()
...
@@ -72,7 +73,8 @@ FileDef::~FileDef()
delete
namespaceDict
;
delete
namespaceDict
;
delete
srcDefDict
;
delete
srcDefDict
;
delete
srcAnchorDict
;
delete
srcAnchorDict
;
delete
usingList
;
delete
usingDirList
;
delete
usingDeclList
;
delete
memberGroupList
;
delete
memberGroupList
;
delete
memberGroupDict
;
delete
memberGroupDict
;
}
}
...
@@ -189,7 +191,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -189,7 +191,7 @@ void FileDef::writeDocumentation(OutputList &ol)
DotInclDepGraph
incDepGraph
(
this
);
DotInclDepGraph
incDepGraph
(
this
);
if
(
!
incDepGraph
.
isTrivial
())
if
(
!
incDepGraph
.
isTrivial
())
{
{
ol
.
disable
AllBut
(
OutputGenerator
::
Html
);
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
newParagraph
();
ol
.
newParagraph
();
ol
.
startInclDepGraph
();
ol
.
startInclDepGraph
();
parseText
(
ol
,
theTranslator
->
trInclDepGraph
(
name
()));
parseText
(
ol
,
theTranslator
->
trInclDepGraph
(
name
()));
...
@@ -287,7 +289,7 @@ void FileDef::writeDocumentation(OutputList &ol)
...
@@ -287,7 +289,7 @@ void FileDef::writeDocumentation(OutputList &ol)
//if (latexOn) ol.disable(OutputGenerator::Latex);
//if (latexOn) ol.disable(OutputGenerator::Latex);
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
writeAnchor
(
"_details"
);
ol
.
writeAnchor
(
0
,
"_details"
);
//if (latexOn) ol.enable(OutputGenerator::Latex);
//if (latexOn) ol.enable(OutputGenerator::Latex);
ol
.
popGeneratorState
();
ol
.
popGeneratorState
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
...
@@ -533,11 +535,20 @@ QCString FileDef::getSourceAnchor(int lineNr)
...
@@ -533,11 +535,20 @@ QCString FileDef::getSourceAnchor(int lineNr)
void
FileDef
::
addUsingDirective
(
NamespaceDef
*
nd
)
void
FileDef
::
addUsingDirective
(
NamespaceDef
*
nd
)
{
{
if
(
usingList
==
0
)
if
(
usingDirList
==
0
)
{
usingDirList
=
new
NamespaceList
;
}
usingDirList
->
append
(
nd
);
}
void
FileDef
::
addUsingDeclaration
(
ClassDef
*
cd
)
{
if
(
usingDeclList
==
0
)
{
{
using
List
=
new
Namespace
List
;
using
DeclList
=
new
Class
List
;
}
}
using
List
->
append
(
n
d
);
using
DeclList
->
append
(
c
d
);
}
}
void
FileDef
::
addIncludeDependency
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
)
void
FileDef
::
addIncludeDependency
(
FileDef
*
fd
,
const
char
*
incName
,
bool
local
)
...
...
src/filedef.h
View file @
832e08dc
...
@@ -117,7 +117,9 @@ class FileDef : public Definition
...
@@ -117,7 +117,9 @@ class FileDef : public Definition
void
computeAnchors
();
void
computeAnchors
();
void
addUsingDirective
(
NamespaceDef
*
nd
);
void
addUsingDirective
(
NamespaceDef
*
nd
);
NamespaceList
*
getUsedNamespaces
()
const
{
return
usingList
;
}
NamespaceList
*
getUsedNamespaces
()
const
{
return
usingDirList
;
}
void
addUsingDeclaration
(
ClassDef
*
cd
);
ClassList
*
getUsedClasses
()
const
{
return
usingDeclList
;
}
void
setGenerateSource
(
bool
b
)
{
isSource
=
b
;
}
void
setGenerateSource
(
bool
b
)
{
isSource
=
b
;
}
bool
generateSource
()
const
{
return
isSource
;
}
bool
generateSource
()
const
{
return
isSource
;
}
...
@@ -142,7 +144,8 @@ class FileDef : public Definition
...
@@ -142,7 +144,8 @@ class FileDef : public Definition
QList
<
IncludeInfo
>
*
includeList
;
QList
<
IncludeInfo
>
*
includeList
;
NamespaceDict
*
namespaceDict
;
NamespaceDict
*
namespaceDict
;
NamespaceList
*
namespaceList
;
NamespaceList
*
namespaceList
;
NamespaceList
*
usingList
;
NamespaceList
*
usingDirList
;
ClassList
*
usingDeclList
;
//DefineList *defineList;
//DefineList *defineList;
QCString
path
;
QCString
path
;
QCString
filepath
;
QCString
filepath
;
...
...
src/filename.cpp
View file @
832e08dc
...
@@ -38,7 +38,7 @@ FileName::~FileName()
...
@@ -38,7 +38,7 @@ FileName::~FileName()
void
FileName
::
generateDiskNames
()
void
FileName
::
generateDiskNames
()
{
{
QCString
commonPrefix
;
//
QCString commonPrefix;
FileDef
*
fd
=
first
();
FileDef
*
fd
=
first
();
int
count
=
0
;
int
count
=
0
;
while
(
fd
)
{
if
(
!
fd
->
isReference
())
count
++
;
fd
=
next
();
}
while
(
fd
)
{
if
(
!
fd
->
isReference
())
count
++
;
fd
=
next
();
}
...
...
src/groupdef.cpp
View file @
832e08dc
...
@@ -280,7 +280,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
...
@@ -280,7 +280,7 @@ void GroupDef::writeDocumentation(OutputList &ol)
ol
.
pushGeneratorState
();
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
writeAnchor
(
"_details"
);
ol
.
writeAnchor
(
0
,
"_details"
);
ol
.
popGeneratorState
();
ol
.
popGeneratorState
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
parseText
(
ol
,
theTranslator
->
trDetailedDescription
());
parseText
(
ol
,
theTranslator
->
trDetailedDescription
());
...
...
src/htmlgen.cpp
View file @
832e08dc
...
@@ -173,7 +173,7 @@ void HtmlGenerator::endFile()
...
@@ -173,7 +173,7 @@ void HtmlGenerator::endFile()
void
HtmlGenerator
::
startProjectNumber
()
void
HtmlGenerator
::
startProjectNumber
()
{
{
t
<<
"<h3 align=
center
>"
;
t
<<
"<h3 align=
\"
center
\"
>"
;
}
}
void
HtmlGenerator
::
endProjectNumber
()
void
HtmlGenerator
::
endProjectNumber
()
...
@@ -230,12 +230,11 @@ void HtmlGenerator::writeStyleInfo(int part)
...
@@ -230,12 +230,11 @@ void HtmlGenerator::writeStyleInfo(int part)
void
HtmlGenerator
::
startDoxyAnchor
(
const
char
*
,
const
char
*
,
void
HtmlGenerator
::
startDoxyAnchor
(
const
char
*
,
const
char
*
,
const
char
*
anchor
,
const
char
*
name
)
const
char
*
anchor
,
const
char
*
name
)
{
{
t
<<
"<a name=
\"
"
<<
anchor
<<
"
\"
doxytag=
\"
"
<<
name
<<
"
\"
>"
;
t
<<
"<a name=
\"
"
<<
anchor
<<
"
\"
doxytag=
\"
"
<<
name
<<
"
\"
>
</a>
"
;
}
}
void
HtmlGenerator
::
endDoxyAnchor
()
void
HtmlGenerator
::
endDoxyAnchor
()
{
{
t
<<
"</a>"
<<
endl
;
}
}
void
HtmlGenerator
::
newParagraph
()
void
HtmlGenerator
::
newParagraph
()
...
@@ -752,10 +751,10 @@ void HtmlGenerator::startMemberDoc(const char *,const char *,const char *,const
...
@@ -752,10 +751,10 @@ void HtmlGenerator::startMemberDoc(const char *,const char *,const char *,const
{
{
DBG_HTML
(
t
<<
"<!-- startMemberDoc -->"
<<
endl
;)
DBG_HTML
(
t
<<
"<!-- startMemberDoc -->"
<<
endl
;)
t
<<
"<p>"
<<
endl
;
t
<<
"<p>"
<<
endl
;
t
<<
"<table width=
100% cellpadding=2 cellspacing=0 border=0
>"
<<
endl
;
t
<<
"<table width=
\"
100%
\"
cellpadding=
\"
2
\"
cellspacing=
\"
0
\"
border=
\"
0
\"
>"
<<
endl
;
t
<<
" <tr>"
<<
endl
;
t
<<
" <tr>"
<<
endl
;
t
<<
" <td class=
\"
md
\"
><b>"
<<
endl
;
t
<<
" <td class=
\"
md
\"
><b>"
<<
endl
;
t
<<
" <table cellspadding=
0 cellspacing=0 border=0
>"
<<
endl
;
t
<<
" <table cellspadding=
\"
0
\"
cellspacing=
\"
0
\"
border=
\"
0
\"
>"
<<
endl
;
}
}
void
HtmlGenerator
::
startMemberDocPrefixItem
()
void
HtmlGenerator
::
startMemberDocPrefixItem
()
...
@@ -837,7 +836,7 @@ void HtmlGenerator::startDotGraph()
...
@@ -837,7 +836,7 @@ void HtmlGenerator::startDotGraph()
void
HtmlGenerator
::
endDotGraph
(
DotClassGraph
&
g
)
void
HtmlGenerator
::
endDotGraph
(
DotClassGraph
&
g
)
{
{
g
.
writeGraph
(
t
,
Config
::
htmlOutputDir
);
g
.
writeGraph
(
t
,
GIF
,
Config
::
htmlOutputDir
);
}
}
void
HtmlGenerator
::
startInclDepGraph
()
void
HtmlGenerator
::
startInclDepGraph
()
...
@@ -846,7 +845,7 @@ void HtmlGenerator::startInclDepGraph()
...
@@ -846,7 +845,7 @@ void HtmlGenerator::startInclDepGraph()
void
HtmlGenerator
::
endInclDepGraph
(
DotInclDepGraph
&
g
)
void
HtmlGenerator
::
endInclDepGraph
(
DotInclDepGraph
&
g
)
{
{
g
.
writeGraph
(
t
,
Config
::
htmlOutputDir
);
g
.
writeGraph
(
t
,
GIF
,
Config
::
htmlOutputDir
);
}
}
void
HtmlGenerator
::
writeGraphicalHierarchy
(
DotGfxHierarchyTable
&
g
)
void
HtmlGenerator
::
writeGraphicalHierarchy
(
DotGfxHierarchyTable
&
g
)
...
@@ -865,7 +864,7 @@ void HtmlGenerator::startMemberGroupHeader()
...
@@ -865,7 +864,7 @@ void HtmlGenerator::startMemberGroupHeader()
//t << " <td class=\"groupLine\"><img src=\"null.gif\" width=1></td>" << endl;
//t << " <td class=\"groupLine\"><img src=\"null.gif\" width=1></td>" << endl;
//t << " <td><div class=\"groupHeader\"> ";
//t << " <td><div class=\"groupHeader\"> ";
t
<<
"<tr><td colspan=
2
><div class=
\"
groupHeader
\"
>"
;
t
<<
"<tr><td colspan=
\"
2
\"
><div class=
\"
groupHeader
\"
>"
;
}
}
void
HtmlGenerator
::
endMemberGroupHeader
()
void
HtmlGenerator
::
endMemberGroupHeader
()
...
@@ -885,7 +884,7 @@ void HtmlGenerator::endMemberGroupHeader()
...
@@ -885,7 +884,7 @@ void HtmlGenerator::endMemberGroupHeader()
void
HtmlGenerator
::
startMemberGroupDocs
()
void
HtmlGenerator
::
startMemberGroupDocs
()
{
{
//t << "<tr><td colspan=2><img src=\"null.gif\" height=4></td></tr>" << endl;
//t << "<tr><td colspan=2><img src=\"null.gif\" height=4></td></tr>" << endl;
t
<<
"<tr><td colspan=
2
><div class=
\"
groupText
\"
>"
;
t
<<
"<tr><td colspan=
\"
2
\"
><div class=
\"
groupText
\"
>"
;
}
}
void
HtmlGenerator
::
endMemberGroupDocs
()
void
HtmlGenerator
::
endMemberGroupDocs
()
...
...
src/htmlgen.h
View file @
832e08dc
...
@@ -111,7 +111,7 @@ class HtmlGenerator : public OutputGenerator
...
@@ -111,7 +111,7 @@ class HtmlGenerator : public OutputGenerator
void
endMemberDescription
();
void
endMemberDescription
();
void
writeRuler
()
{
t
<<
"<hr>"
;
}
void
writeRuler
()
{
t
<<
"<hr>"
;
}
void
writeAnchor
(
const
char
*
name
)
void
writeAnchor
(
const
char
*
,
const
char
*
name
)
{
t
<<
"<a name=
\"
"
<<
name
<<
"
\"
></a>"
;
}
{
t
<<
"<a name=
\"
"
<<
name
<<
"
\"
></a>"
;
}
void
startCodeFragment
()
{
t
<<
"<div class=
\"
fragment
\"
><pre>"
;
}
void
startCodeFragment
()
{
t
<<
"<div class=
\"
fragment
\"
><pre>"
;
}
void
endCodeFragment
()
{
t
<<
"</div></pre>"
;
}
// <- I know this is
void
endCodeFragment
()
{
t
<<
"</div></pre>"
;
}
// <- I know this is
...
@@ -142,8 +142,8 @@ class HtmlGenerator : public OutputGenerator
...
@@ -142,8 +142,8 @@ class HtmlGenerator : public OutputGenerator
void
startDoxyAnchor
(
const
char
*
fName
,
const
char
*
clName
,
void
startDoxyAnchor
(
const
char
*
fName
,
const
char
*
clName
,
const
char
*
anchor
,
const
char
*
name
);
const
char
*
anchor
,
const
char
*
name
);
void
endDoxyAnchor
();
void
endDoxyAnchor
();
void
startCodeAnchor
(
const
char
*
label
)
{
t
<<
"<a name=
\"
"
<<
label
<<
"
\"
>"
;
}
void
startCodeAnchor
(
const
char
*
label
)
{
t
<<
"<a name=
\"
"
<<
label
<<
"
\"
>
</a>
"
;
}
void
endCodeAnchor
()
{
t
<<
"</a>"
;
}
void
endCodeAnchor
()
{
}
void
writeLatexSpacing
()
{}
void
writeLatexSpacing
()
{}
//void writeLatexLabel(const char *,const char *) {}
//void writeLatexLabel(const char *,const char *) {}
void
writeStartAnnoItem
(
const
char
*
type
,
const
char
*
file
,
void
writeStartAnnoItem
(
const
char
*
type
,
const
char
*
file
,
...
...
src/latexgen.cpp
View file @
832e08dc
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include "diagram.h"
#include "diagram.h"
#include "language.h"
#include "language.h"
#include "version.h"
#include "version.h"
#include "dot.h"
static
QCString
filterTitle
(
const
char
*
s
)
static
QCString
filterTitle
(
const
char
*
s
)
{
{
...
@@ -549,7 +550,7 @@ void LatexGenerator::writeStyleInfo(int part)
...
@@ -549,7 +550,7 @@ void LatexGenerator::writeStyleInfo(int part)
{
{
case
0
:
case
0
:
{
{
QCString
pname
=
Config
::
projectName
.
stripWhiteSpace
();
//
QCString pname=Config::projectName.stripWhiteSpace();
startPlainFile
(
"doxygen.sty"
);
startPlainFile
(
"doxygen.sty"
);
t
<<
"
\\
NeedsTeXFormat{LaTeX2e}
\n
"
;
t
<<
"
\\
NeedsTeXFormat{LaTeX2e}
\n
"
;
t
<<
"
\\
ProvidesPackage{doxygen}
\n
"
;
t
<<
"
\\
ProvidesPackage{doxygen}
\n
"
;
...
@@ -765,7 +766,8 @@ void LatexGenerator::writeObjectLink(const char *ref, const char *f,
...
@@ -765,7 +766,8 @@ void LatexGenerator::writeObjectLink(const char *ref, const char *f,
{
{
t
<<
"
\\
hyperlink{"
;
t
<<
"
\\
hyperlink{"
;
if
(
f
)
t
<<
f
;
if
(
f
)
t
<<
f
;
if
(
anchor
)
t
<<
"_"
<<
anchor
;
if
(
f
&&
anchor
)
t
<<
"_"
;
if
(
anchor
)
t
<<
anchor
;
t
<<
"}{"
;
t
<<
"}{"
;
docify
(
text
);
docify
(
text
);
t
<<
"}"
;
t
<<
"}"
;
...
@@ -910,6 +912,15 @@ void LatexGenerator::endDoxyAnchor()
...
@@ -910,6 +912,15 @@ void LatexGenerator::endDoxyAnchor()
}
}
}
}
void
LatexGenerator
::
writeAnchor
(
const
char
*
fName
,
const
char
*
name
)
{
t
<<
"
\\
label{"
<<
name
<<
"}"
<<
endl
;
if
(
fName
&&
Config
::
pdfHyperFlag
)
{
t
<<
"
\\
hypertarget{"
<<
fName
<<
"_"
<<
name
<<
"}{}"
<<
endl
;
}
}
//void LatexGenerator::writeLatexLabel(const char *clName,const char *anchor)
//void LatexGenerator::writeLatexLabel(const char *clName,const char *anchor)
//{
//{
...
@@ -939,6 +950,10 @@ void LatexGenerator::writeSection(const char *lab,const char *title,bool sub)
...
@@ -939,6 +950,10 @@ void LatexGenerator::writeSection(const char *lab,const char *title,bool sub)
if
(
sub
)
t
<<
"subsection{"
;
else
t
<<
"section{"
;
if
(
sub
)
t
<<
"subsection{"
;
else
t
<<
"section{"
;
docify
(
title
);
docify
(
title
);
t
<<
"}
\\
label{"
<<
lab
<<
"}"
<<
endl
;
t
<<
"}
\\
label{"
<<
lab
<<
"}"
<<
endl
;
if
(
Config
::
pdfHyperFlag
)
{
t
<<
"
\\
hypertarget{"
<<
lab
<<
"}{}"
;
}
}
}
void
LatexGenerator
::
writeSectionRef
(
const
char
*
,
const
char
*
lab
,
void
LatexGenerator
::
writeSectionRef
(
const
char
*
,
const
char
*
lab
,
...
@@ -955,6 +970,7 @@ void LatexGenerator::writeSectionRefItem(const char *,const char *lab,
...
@@ -955,6 +970,7 @@ void LatexGenerator::writeSectionRefItem(const char *,const char *lab,
t
<<
"}{
\\
ref{"
<<
lab
<<
"}}{}"
<<
endl
;
t
<<
"}{
\\
ref{"
<<
lab
<<
"}}{}"
<<
endl
;
}
}
// TODO: remove this function
void
LatexGenerator
::
writeSectionRefAnchor
(
const
char
*
,
const
char
*
lab
,
void
LatexGenerator
::
writeSectionRefAnchor
(
const
char
*
,
const
char
*
lab
,
const
char
*
title
)
const
char
*
title
)
{
{
...
@@ -1277,3 +1293,23 @@ void LatexGenerator::endMemberGroup(bool)
...
@@ -1277,3 +1293,23 @@ void LatexGenerator::endMemberGroup(bool)
{
{
t
<<
"
\\
end{Indent}"
<<
endl
;
t
<<
"
\\
end{Indent}"
<<
endl
;
}
}
void
LatexGenerator
::
startDotGraph
()
{
}
void
LatexGenerator
::
endDotGraph
(
DotClassGraph
&
g
)
{
g
.
writeGraph
(
t
,
EPS
,
Config
::
latexOutputDir
);
}
void
LatexGenerator
::
startInclDepGraph
()
{
}
void
LatexGenerator
::
endInclDepGraph
(
DotInclDepGraph
&
g
)
{
g
.
writeGraph
(
t
,
EPS
,
Config
::
latexOutputDir
);
}
src/latexgen.h
View file @
832e08dc
...
@@ -105,7 +105,7 @@ class LatexGenerator : public OutputGenerator
...
@@ -105,7 +105,7 @@ class LatexGenerator : public OutputGenerator
void
insertMemberAlign
()
{}
void
insertMemberAlign
()
{}
void
writeRuler
()
{
t
<<
endl
<<
endl
;
/*t << "\\vspace{0.4cm}\\hrule\\vspace{0.2cm}" << endl; */
}
void
writeRuler
()
{
t
<<
endl
<<
endl
;
/*t << "\\vspace{0.4cm}\\hrule\\vspace{0.2cm}" << endl; */
}
void
writeAnchor
(
const
char
*
name
)
{
t
<<
"
\\
label{"
<<
name
<<
"}"
<<
endl
;
}
void
writeAnchor
(
const
char
*
fileName
,
const
char
*
name
);
void
startCodeFragment
()
{
t
<<
"
\\
small
\\
begin{verbatim}"
;
}
void
startCodeFragment
()
{
t
<<
"
\\
small
\\
begin{verbatim}"
;
}
void
endCodeFragment
()
{
t
<<
"
\\
end{verbatim}
\\
normalsize "
<<
endl
;
}
void
endCodeFragment
()
{
t
<<
"
\\
end{verbatim}
\\
normalsize "
<<
endl
;
}
void
startCodeLine
()
{
col
=
0
;
}
void
startCodeLine
()
{
col
=
0
;
}
...
@@ -211,10 +211,10 @@ class LatexGenerator : public OutputGenerator
...
@@ -211,10 +211,10 @@ class LatexGenerator : public OutputGenerator
//static void docifyStatic(QTextStream &t,const char *str);
//static void docifyStatic(QTextStream &t,const char *str);
void
startDotGraph
()
{}
void
startDotGraph
()
;
void
endDotGraph
(
DotClassGraph
&
)
{}
void
endDotGraph
(
DotClassGraph
&
)
;
void
startInclDepGraph
()
{}
void
startInclDepGraph
()
;
void
endInclDepGraph
(
DotInclDepGraph
&
)
{}
void
endInclDepGraph
(
DotInclDepGraph
&
)
;
void
writeGraphicalHierarchy
(
DotGfxHierarchyTable
&
)
{}
void
writeGraphicalHierarchy
(
DotGfxHierarchyTable
&
)
{}
void
startTextBlock
(
bool
)
{}
void
startTextBlock
(
bool
)
{}
...
...
src/mangen.h
View file @
832e08dc
...
@@ -103,7 +103,7 @@ class ManGenerator : public OutputGenerator
...
@@ -103,7 +103,7 @@ class ManGenerator : public OutputGenerator
void
endMemberGroup
(
bool
);
void
endMemberGroup
(
bool
);
void
writeRuler
()
{}
void
writeRuler
()
{}
void
writeAnchor
(
const
char
*
)
{}
void
writeAnchor
(
const
char
*
,
const
char
*
)
{}
void
startCodeFragment
();
void
startCodeFragment
();
void
endCodeFragment
();
void
endCodeFragment
();
void
startCodeLine
()
{}
void
startCodeLine
()
{}
...
...
src/memberdef.cpp
View file @
832e08dc
...
@@ -250,7 +250,7 @@ MemberDef::MemberDef(const char *df,int dl,
...
@@ -250,7 +250,7 @@ MemberDef::MemberDef(const char *df,int dl,
membTAL
=
0
;
membTAL
=
0
;
type
=
substituteClassNames
(
t
);
type
=
substituteClassNames
(
t
);
args
=
substituteClassNames
(
a
);
args
=
substituteClassNames
(
a
);
if
(
type
.
is
Null
())
decl
=
name
()
+
args
;
else
decl
=
type
+
" "
+
name
()
+
args
;
if
(
type
.
is
Empty
())
decl
=
name
()
+
args
;
else
decl
=
type
+
" "
+
name
()
+
args
;
declLine
=
0
;
declLine
=
0
;
memberGroup
=
0
;
memberGroup
=
0
;
virt
=
v
;
virt
=
v
;
...
...
src/message.cpp
View file @
832e08dc
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
#include <stdarg.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdio.h>
#include "config.h"
#include "config.h"
#include
<qregexp.h>
#include
"util.h"
static
QCString
outputFormat
;
static
QCString
outputFormat
;
static
int
warnFormatOrder
;
// 1 = $file,$line,$text
static
int
warnFormatOrder
;
// 1 = $file,$line,$text
...
@@ -62,11 +62,22 @@ void initWarningFormat()
...
@@ -62,11 +62,22 @@ void initWarningFormat()
{
{
warnFormatOrder
=
6
;
warnFormatOrder
=
6
;
}
}
outputFormat
=
Config
::
warnFormat
.
outputFormat
=
replace
(
QRegExp
(
"
\\
$file"
),
"%s"
).
substitute
(
replace
(
QRegExp
(
"
\\
$text"
),
"%s"
).
substitute
(
replace
(
QRegExp
(
"
\\
$line"
),
"%d"
)
+
substitute
(
'\n'
;
Config
::
warnFormat
,
"$file"
,
"%s"
),
"$text"
,
"%s"
),
"$line"
,
"%d"
)
+
'\n'
;
// replace(QRegExp("\\$file"),"%s").
// replace(QRegExp("\\$text"),"%s").
// replace(QRegExp("\\$line"),"%d")+
// '\n';
}
}
...
...
src/namespacedef.cpp
View file @
832e08dc
...
@@ -35,7 +35,8 @@ NamespaceDef::NamespaceDef(const char *df,int dl,
...
@@ -35,7 +35,8 @@ NamespaceDef::NamespaceDef(const char *df,int dl,
classList
=
new
ClassList
;
classList
=
new
ClassList
;
classDict
=
new
ClassDict
(
1009
);
classDict
=
new
ClassDict
(
1009
);
//memList = new MemberList;
//memList = new MemberList;
usingList
=
0
;
usingDirList
=
0
;
usingDeclList
=
0
;
setReference
(
ref
);
setReference
(
ref
);
memberGroupList
=
new
MemberGroupList
;
memberGroupList
=
new
MemberGroupList
;
memberGroupList
->
setAutoDelete
(
TRUE
);
memberGroupList
->
setAutoDelete
(
TRUE
);
...
@@ -48,7 +49,8 @@ NamespaceDef::~NamespaceDef()
...
@@ -48,7 +49,8 @@ NamespaceDef::~NamespaceDef()
{
{
delete
classList
;
delete
classList
;
delete
classDict
;
delete
classDict
;
delete
usingList
;
delete
usingDirList
;
delete
usingDeclList
;
delete
memberGroupList
;
delete
memberGroupList
;
delete
memberGroupDict
;
delete
memberGroupDict
;
}
}
...
@@ -182,7 +184,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
...
@@ -182,7 +184,7 @@ void NamespaceDef::writeDocumentation(OutputList &ol)
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
//bool latexOn = ol.isEnabled(OutputGenerator::Latex);
//bool latexOn = ol.isEnabled(OutputGenerator::Latex);
//if (latexOn) ol.disable(OutputGenerator::Latex);
//if (latexOn) ol.disable(OutputGenerator::Latex);
ol
.
writeAnchor
(
"_details"
);
ol
.
writeAnchor
(
0
,
"_details"
);
//if (latexOn) ol.enable(OutputGenerator::Latex);
//if (latexOn) ol.enable(OutputGenerator::Latex);
ol
.
popGeneratorState
();
ol
.
popGeneratorState
();
ol
.
startGroupHeader
();
ol
.
startGroupHeader
();
...
@@ -293,9 +295,18 @@ int NamespaceDef::countMembers()
...
@@ -293,9 +295,18 @@ int NamespaceDef::countMembers()
void
NamespaceDef
::
addUsingDirective
(
NamespaceDef
*
nd
)
void
NamespaceDef
::
addUsingDirective
(
NamespaceDef
*
nd
)
{
{
if
(
usingList
==
0
)
if
(
using
Dir
List
==
0
)
{
{
usingList
=
new
NamespaceList
;
using
Dir
List
=
new
NamespaceList
;
}
}
usingList
->
append
(
nd
);
usingDirList
->
append
(
nd
);
}
void
NamespaceDef
::
addUsingDeclaration
(
ClassDef
*
cd
)
{
if
(
usingDeclList
==
0
)
{
usingDeclList
=
new
ClassList
;
}
usingDeclList
->
append
(
cd
);
}
}
src/namespacedef.h
View file @
832e08dc
...
@@ -49,7 +49,11 @@ class NamespaceDef : public Definition
...
@@ -49,7 +49,11 @@ class NamespaceDef : public Definition
void
computeAnchors
();
void
computeAnchors
();
int
countMembers
();
int
countMembers
();
void
addUsingDirective
(
NamespaceDef
*
nd
);
void
addUsingDirective
(
NamespaceDef
*
nd
);
NamespaceList
*
getUsedNamespaces
()
const
{
return
usingList
;
}
NamespaceList
*
getUsedNamespaces
()
const
{
return
usingDirList
;
}
void
addUsingDeclaration
(
ClassDef
*
cd
);
ClassList
*
getUsedClasses
()
const
{
return
usingDeclList
;
}
//const char *getReference() { return reference; }
//const char *getReference() { return reference; }
//bool isVisible()
//bool isVisible()
//{
//{
...
@@ -81,7 +85,8 @@ class NamespaceDef : public Definition
...
@@ -81,7 +85,8 @@ class NamespaceDef : public Definition
QStrList
files
;
QStrList
files
;
ClassList
*
classList
;
ClassList
*
classList
;
ClassDict
*
classDict
;
ClassDict
*
classDict
;
NamespaceList
*
usingList
;
NamespaceList
*
usingDirList
;
ClassList
*
usingDeclList
;
MemberList
allMemberList
;
MemberList
allMemberList
;
MemberList
defineMembers
;
MemberList
defineMembers
;
...
...
src/outputgen.h
View file @
832e08dc
...
@@ -112,7 +112,7 @@ class OutputGenerator
...
@@ -112,7 +112,7 @@ class OutputGenerator
virtual
void
insertMemberAlign
()
=
0
;
virtual
void
insertMemberAlign
()
=
0
;
virtual
void
writeRuler
()
=
0
;
virtual
void
writeRuler
()
=
0
;
virtual
void
writeAnchor
(
const
char
*
name
)
=
0
;
virtual
void
writeAnchor
(
const
char
*
fileName
,
const
char
*
name
)
=
0
;
virtual
void
startCodeFragment
()
=
0
;
virtual
void
startCodeFragment
()
=
0
;
virtual
void
endCodeFragment
()
=
0
;
virtual
void
endCodeFragment
()
=
0
;
virtual
void
startCodeLine
()
=
0
;
virtual
void
startCodeLine
()
=
0
;
...
...
src/outputlist.h
View file @
832e08dc
...
@@ -180,8 +180,8 @@ class OutputList
...
@@ -180,8 +180,8 @@ class OutputList
{
forall
(
&
OutputGenerator
::
insertMemberAlign
);
}
{
forall
(
&
OutputGenerator
::
insertMemberAlign
);
}
void
writeRuler
()
void
writeRuler
()
{
forall
(
&
OutputGenerator
::
writeRuler
);
}
{
forall
(
&
OutputGenerator
::
writeRuler
);
}
void
writeAnchor
(
const
char
*
name
)
void
writeAnchor
(
const
char
*
fileName
,
const
char
*
name
)
{
forall
(
&
OutputGenerator
::
writeAnchor
,
name
);
}
{
forall
(
&
OutputGenerator
::
writeAnchor
,
fileName
,
name
);
}
void
startCodeFragment
()
void
startCodeFragment
()
{
forall
(
&
OutputGenerator
::
startCodeFragment
);
}
{
forall
(
&
OutputGenerator
::
startCodeFragment
);
}
void
endCodeFragment
()
void
endCodeFragment
()
...
...
src/pre.l
View file @
832e08dc
...
@@ -35,6 +35,7 @@
...
@@ -35,6 +35,7 @@
#include <qregexp.h>
#include <qregexp.h>
#include <qfileinfo.h>
#include <qfileinfo.h>
#include "pre.h"
#include "constexp.h"
#include "constexp.h"
#include "define.h"
#include "define.h"
#include "doxygen.h"
#include "doxygen.h"
...
@@ -1459,7 +1460,7 @@ BN [ \t\r\n]
...
@@ -1459,7 +1460,7 @@ BN [ \t\r\n]
if (!g_quoteArg) g_defText+=' ';
if (!g_quoteArg) g_defText+=' ';
g_defText+='@';
g_defText+='@';
QCString numStr;
QCString numStr;
numStr.s
etNum(
*n);
numStr.s
printf("%d",
*n);
g_defText+=numStr;
g_defText+=numStr;
if (!g_quoteArg) g_defText+=' ';
if (!g_quoteArg) g_defText+=' ';
}
}
...
...
src/rtfgen.cpp
View file @
832e08dc
...
@@ -358,7 +358,7 @@ void RTFGenerator::endProjectNumber()
...
@@ -358,7 +358,7 @@ void RTFGenerator::endProjectNumber()
void
RTFGenerator
::
startIndexSection
(
IndexSections
is
)
void
RTFGenerator
::
startIndexSection
(
IndexSections
is
)
{
{
QCString
paperName
;
//
QCString paperName;
m_listLevel
=
0
;
m_listLevel
=
0
;
...
@@ -1148,14 +1148,16 @@ void RTFGenerator::endTitleHead(const char *fileName,const char *name)
...
@@ -1148,14 +1148,16 @@ void RTFGenerator::endTitleHead(const char *fileName,const char *name)
// make an index entry
// make an index entry
addToIndex
(
name
,
NULL
);
addToIndex
(
name
,
NULL
);
// make a bookmark for referencing
writeAnchor
(
name
);
if
(
fileName
)
if
(
fileName
)
{
{
// doxygen expects different anchors for pdf and if "FULL PATHS"
// doxygen expects different anchors for pdf and if "FULL PATHS"
if
(
strcmp
(
name
,
fileName
)
!=
0
)
writeAnchor
(
fileName
,
0
);
writeAnchor
(
fileName
);
}
else
{
// make a bookmark for referencing
writeAnchor
(
0
,
name
);
}
}
}
}
}
}
...
@@ -1408,7 +1410,7 @@ void RTFGenerator::writeSection(const char *lab,const char *title,bool sub)
...
@@ -1408,7 +1410,7 @@ void RTFGenerator::writeSection(const char *lab,const char *title,bool sub)
newParagraph
();
newParagraph
();
// make bookmark
// make bookmark
writeAnchor
(
lab
);
writeAnchor
(
0
,
lab
);
t
<<
"}"
;
t
<<
"}"
;
}
}
...
@@ -1547,9 +1549,13 @@ void RTFGenerator::endMemberItem(bool)
...
@@ -1547,9 +1549,13 @@ void RTFGenerator::endMemberItem(bool)
newParagraph
();
newParagraph
();
}
}
void
RTFGenerator
::
writeAnchor
(
const
char
*
name
)
void
RTFGenerator
::
writeAnchor
(
const
char
*
fileName
,
const
char
*
name
)
{
{
t
<<
"{
\\
bkmkstart "
<<
formatBmkStr
(
name
)
<<
"}"
<<
endl
;
t
<<
"{
\\
bkmkstart "
;
if
(
fileName
)
t
<<
formatBmkStr
(
fileName
);
if
(
fileName
&&
name
)
t
<<
"_"
;
if
(
name
)
t
<<
formatBmkStr
(
name
);
t
<<
"}"
<<
endl
;
t
<<
"{
\\
bkmkend "
<<
formatBmkStr
(
name
)
<<
"}"
<<
endl
;
t
<<
"{
\\
bkmkend "
<<
formatBmkStr
(
name
)
<<
"}"
<<
endl
;
}
}
...
@@ -1936,7 +1942,7 @@ void RTFGenerator::endDotGraph(DotClassGraph &g)
...
@@ -1936,7 +1942,7 @@ void RTFGenerator::endDotGraph(DotClassGraph &g)
newParagraph
();
newParagraph
();
t
<<
"{
\\
comment This would be an image map..."
<<
endl
;
t
<<
"{
\\
comment This would be an image map..."
<<
endl
;
g
.
writeGraph
(
t
,
Config
::
rtfOutputDir
);
g
.
writeGraph
(
t
,
GIF
,
Config
::
rtfOutputDir
);
t
<<
"}"
<<
endl
;
t
<<
"}"
<<
endl
;
...
@@ -1958,11 +1964,11 @@ void RTFGenerator::endInclDepGraph(DotInclDepGraph &g)
...
@@ -1958,11 +1964,11 @@ void RTFGenerator::endInclDepGraph(DotInclDepGraph &g)
newParagraph
();
newParagraph
();
t
<<
"{
\\
comment This would be an image map..."
<<
endl
;
t
<<
"{
\\
comment This would be an image map..."
<<
endl
;
g
.
writeGraph
(
t
,
Config
::
rtfOutputDir
);
g
.
writeGraph
(
t
,
GIF
,
Config
::
rtfOutputDir
);
t
<<
"}"
<<
endl
;
t
<<
"}"
<<
endl
;
QCString
diskName
=
g
.
diskName
();
//
QCString diskName = g.diskName();
// display the file
// display the file
t
<<
"{"
<<
endl
;
t
<<
"{"
<<
endl
;
...
...
src/rtfgen.h
View file @
832e08dc
...
@@ -101,7 +101,7 @@ class RTFGenerator : public OutputGenerator
...
@@ -101,7 +101,7 @@ class RTFGenerator : public OutputGenerator
void
writeRuler
(){
RtfwriteRuler_thin
();};
void
writeRuler
(){
RtfwriteRuler_thin
();};
void
writeAnchor
(
const
char
*
name
);
void
writeAnchor
(
const
char
*
fileName
,
const
char
*
name
);
void
startCodeFragment
();
void
startCodeFragment
();
void
endCodeFragment
();
void
endCodeFragment
();
void
startCodeLine
()
{
col
=
0
;
}
void
startCodeLine
()
{
col
=
0
;
}
...
...
src/scanner.l
View file @
832e08dc
...
@@ -92,6 +92,9 @@ static int roundCount = 0 ;
...
@@ -92,6 +92,9 @@ static int roundCount = 0 ;
static int curlyCount = 0 ;
static int curlyCount = 0 ;
static int squareCount = 0 ;
static int squareCount = 0 ;
static int ifCount = 0 ;
static int ifCount = 0 ;
static int todoAnchor = 0 ;
static int todoStartContext = 0;
static QCString todoString = 0;
static Entry* current_root = 0 ;
static Entry* current_root = 0 ;
static Entry* global_root = 0 ;
static Entry* global_root = 0 ;
static Entry* current = 0 ;
static Entry* current = 0 ;
...
@@ -889,7 +892,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
...
@@ -889,7 +892,7 @@ ID [a-z_A-Z][a-z_A-Z0-9]*
SCOPEID {ID}({ID}*{BN}*"::"{BN}*)*({ID}?)
SCOPEID {ID}({ID}*{BN}*"::"{BN}*)*({ID}?)
SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
SCOPENAME (({ID}?{BN}*"::"{BN}*)*)((~{BN}*)?{ID})
SCOPEMASK {ID}?(("::"|"#")?(~)?{ID})+
SCOPEMASK {ID}?(("::"|"#")?(~)?{ID})+
URLMASK [a-z_A-Z0-9\~\:\?\@\#\.\-\+\/]+
URLMASK [a-z_A-Z0-9\~\:\?\@\#\.\-\+\/
\=
]+
NONTERM [\{\}\[\]\`\~\@\|\-\+\#\$\/\\\!\%\^\&\*()a-z_A-Z<>0-9]
NONTERM [\{\}\[\]\`\~\@\|\-\+\#\$\/\\\!\%\^\&\*()a-z_A-Z<>0-9]
WORD ({NONTERM}+([^\n\t ]*{NONTERM}+)?)|("\""[^\n\"]"\"")
WORD ({NONTERM}+([^\n\t ]*{NONTERM}+)?)|("\""[^\n\"]"\"")
ATTR ({B}+[^>\n]*)?
ATTR ({B}+[^>\n]*)?
...
@@ -933,7 +936,7 @@ TR [tT][rR]
...
@@ -933,7 +936,7 @@ TR [tT][rR]
TT [tT][tT]
TT [tT][tT]
UL [uU][lL]
UL [uU][lL]
VAR [vV][aA][rR]
VAR [vV][aA][rR]
DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
DOCPARAM ([a-z_A-Z0-9:\
<\>\=\
.\-]+)|("\"".*"\"")
%option noyywrap
%option noyywrap
...
@@ -1067,6 +1070,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
...
@@ -1067,6 +1070,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
%x DocHtmlImageName
%x DocHtmlImageName
%x DocLatexImageName
%x DocLatexImageName
%x DocLatexImageWidth
%x DocLatexImageWidth
%x TodoParam
%x SectionLabel
%x SectionLabel
%x SectionTitle
%x SectionTitle
%x SkipTemplate
%x SkipTemplate
...
@@ -1583,7 +1587,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
...
@@ -1583,7 +1587,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
<DocParam>({DOCPARAM}{BN}*","{BN}*)*{DOCPARAM} {
<DocParam>({DOCPARAM}{BN}*","{BN}*)*{DOCPARAM} {
outDoc->startDescTableTitle();
outDoc->startDescTableTitle();
outDoc->startEmphasis();
outDoc->startEmphasis();
outDoc->docify(
yytext
);
outDoc->docify(
substitute(yytext,"\"","")
);
outDoc->endEmphasis();
outDoc->endEmphasis();
outDoc->endDescTableTitle();
outDoc->endDescTableTitle();
outDoc->startDescTableData();
outDoc->startDescTableData();
...
@@ -1616,7 +1620,8 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
...
@@ -1616,7 +1620,8 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
SectionInfo *sec;
SectionInfo *sec;
if ((sec=sectionDict[secName]))
if ((sec=sectionDict[secName]))
{
{
outDoc->writeAnchor(sec->label);
//printf("writeAnchor %s_%s\n",sec->fileName.data(),sec->label.data());
outDoc->writeAnchor(sec->fileName,sec->label);
}
}
}
}
<DocScan>{CMD}"ref" {
<DocScan>{CMD}"ref" {
...
@@ -1662,7 +1667,10 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
...
@@ -1662,7 +1667,10 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
text=sec->title;
text=sec->title;
if (sec->type==SectionInfo::Anchor)
if (sec->type==SectionInfo::Anchor)
{
{
outDoc->writeSectionRefAnchor(sec->fileName,sec->label,text);
//outDoc->writeSectionRefAnchor(sec->fileName,sec->label,text);
outDoc->writeObjectLink(0,sec->fileName,sec->label,text);
//printf("Writing page ref `%s'\n",sec->label.data());
writePageRef(*outDoc,sec->label,0);
}
}
else
else
{
{
...
@@ -1693,7 +1701,10 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
...
@@ -1693,7 +1701,10 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
{
{
if (sec->type==SectionInfo::Anchor)
if (sec->type==SectionInfo::Anchor)
{
{
outDoc->writeSectionRefAnchor(sec->fileName,sec->label,text);
//outDoc->writeSectionRefAnchor(sec->fileName,sec->label,text);
outDoc->writeObjectLink(0,sec->fileName,sec->label,text);
//printf("Writing page ref `%s'\n",sec->label.data());
writePageRef(*outDoc,sec->label,0);
}
}
else
else
{
{
...
@@ -2028,7 +2039,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
...
@@ -2028,7 +2039,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
<DocScan>"<"{H3}{ATTR}">" { outDoc->startSubsubsection(); }
<DocScan>"<"{H3}{ATTR}">" { outDoc->startSubsubsection(); }
<DocScan>"</"{H3}{ATTR}">" { outDoc->endSubsubsection(); }
<DocScan>"</"{H3}{ATTR}">" { outDoc->endSubsubsection(); }
<DocHtmlLink>{NAME}{BN}*"="{BN}*("\""?) { BEGIN(DocHtmlAnchor); }
<DocHtmlLink>{NAME}{BN}*"="{BN}*("\""?) { BEGIN(DocHtmlAnchor); }
<DocHtmlAnchor>[a-z_A-Z0-9.\-\+\/]+ { outDoc->writeAnchor(yytext); }
<DocHtmlAnchor>[a-z_A-Z0-9.\-\+\/]+ { outDoc->writeAnchor(
0,
yytext); }
<DocHtmlLink>{HREF}{BN}*"="{BN}*("\""?) {
<DocHtmlLink>{HREF}{BN}*"="{BN}*("\""?) {
htmlUrl.resize(0);
htmlUrl.resize(0);
htmlText.resize(0);
htmlText.resize(0);
...
@@ -2434,7 +2445,21 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
...
@@ -2434,7 +2445,21 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
BEGIN(Using);
BEGIN(Using);
}
}
<Using>"namespace"{BN}+ { lineCount(); BEGIN(UsingDirective); }
<Using>"namespace"{BN}+ { lineCount(); BEGIN(UsingDirective); }
<Using>";" { BEGIN(FindMembers); }
<Using>{ID}{BN}*"::"{BN}*{ID}({BN}*"::"{BN}*{ID})* {
current->name=yytext;
current->fileName = yyFileName;
current->section=Entry::USINGDECL_SEC;
//printf("Found using declaration %s\n",yytext);
current_root->addSubEntry(current);
current = new Entry ;
current->protection = protection ;
current->sig = sig;
current->virt = virt;
current->stat = gstat;
current->slot = slot;
current->mGrpId = memberGroupId;
BEGIN(Using);
}
<UsingDirective>{SCOPENAME} { current->name=yytext;
<UsingDirective>{SCOPENAME} { current->name=yytext;
current->fileName = yyFileName;
current->fileName = yyFileName;
current->section=Entry::USINGDIR_SEC;
current->section=Entry::USINGDIR_SEC;
...
@@ -2449,6 +2474,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
...
@@ -2449,6 +2474,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
current->mGrpId = memberGroupId;
current->mGrpId = memberGroupId;
BEGIN(Using);
BEGIN(Using);
}
}
<Using>";" { BEGIN(FindMembers); }
<FindMembers>{SCOPENAME}{BN}*"<>" { // guided template decl
<FindMembers>{SCOPENAME}{BN}*"<>" { // guided template decl
QCString n=yytext;
QCString n=yytext;
addType( current );
addType( current );
...
@@ -3775,7 +3801,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
...
@@ -3775,7 +3801,7 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
{
{
if (isTypedef)
if (isTypedef)
{
{
QCString dest = extractName(current->name);
//
QCString dest = extractName(current->name);
typedefDict.insert(yytext,new QCString(current->name));
typedefDict.insert(yytext,new QCString(current->name));
//current->extends->append(
//current->extends->append(
// new BaseInfo(yytext,Public,Normal)
// new BaseInfo(yytext,Public,Normal)
...
@@ -4171,6 +4197,50 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
...
@@ -4171,6 +4197,50 @@ DOCPARAM ([a-z_A-Z0-9:\.\-]+)|("\"".*"\"")
memberGroupDocs.resize(0);
memberGroupDocs.resize(0);
BEGIN(GroupHeader);
BEGIN(GroupHeader);
}
}
<LineDoc,Doc,JavaDoc,ClassDoc,PageDoc>{CMD}"todo"{B}+ {
todoStartContext = YY_START;
todoString.resize(0);
BEGIN(TodoParam);
}
<TodoParam>[^*/\n]+ {
todoString+=yytext;
}
<TodoParam>. {
todoString+=*yytext;
}
<TodoParam>"\n"|"*/" {
char anchorLabel[12];
sprintf(anchorLabel,"_todo%06d",todoAnchor++);
QCString todoItemNum;
todoItemNum.sprintf("%d",todoAnchor);
sectionType=SectionInfo::Anchor;
sectionLabel=anchorLabel;
addSection();
current->doc += "\\anchor "+sectionLabel+"\n";
current->doc += "<p><b>\\link todo ";
current->doc += theTranslator->trTodo();
current->doc += ":\\endlink </b>";
current->doc += todoString + "<p>";
Entry *page = new Entry;
page->section = Entry::PAGEDOC_SEC;
page->fileName = yyFileName;
page->startLine = yyLineNr;
page->name = "todo";
page->args = theTranslator->trTodoList();
page->doc += "\\ref ";
page->doc += anchorLabel;
page->doc += " \""+todoItemNum+"\"\n"+todoString+"<p>";
global_root->addSubEntry(page);
if (*yytext=='*')
{
unput('/');unput('*');
}
else
{
unput('\n');
}
BEGIN(todoStartContext);
}
<ExampleDocArg1>{FILE} {
<ExampleDocArg1>{FILE} {
current->name = stripQuotes(yytext);
current->name = stripQuotes(yytext);
BEGIN( ExampleDoc );
BEGIN( ExampleDoc );
...
...
src/translator.h
View file @
832e08dc
...
@@ -863,9 +863,19 @@ class Translator
...
@@ -863,9 +863,19 @@ class Translator
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
// new since 1.1.
1
// new since 1.1.
3
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
/*! Used as a marker that is put before a todo item */
virtual
QCString
trTodo
()
{
return
"Todo"
;
}
/*! Used as the header of the todo list */
virtual
QCString
trTodoList
()
{
return
"Todo List"
;
}
};
};
#endif
#endif
src/util.cpp
View file @
832e08dc
...
@@ -1070,8 +1070,8 @@ bool matchArguments(ArgumentList *srcAl,ArgumentList *dstAl,
...
@@ -1070,8 +1070,8 @@ bool matchArguments(ArgumentList *srcAl,ArgumentList *dstAl,
// (assuming a using statement was used)
// (assuming a using statement was used)
trimNamespaceScope
(
srcAType
,
dstAType
);
trimNamespaceScope
(
srcAType
,
dstAType
);
QCString
srcScope
;
//
QCString srcScope;
QCString
dstScope
;
//
QCString dstScope;
// strip redundant scope specifiers
// strip redundant scope specifiers
if
(
!
className
.
isEmpty
())
if
(
!
className
.
isEmpty
())
...
@@ -1400,7 +1400,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
...
@@ -1400,7 +1400,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
QCString
className
=
scopeName
.
left
(
scopeOffset
);
QCString
className
=
scopeName
.
left
(
scopeOffset
);
if
(
!
className
.
isEmpty
()
&&
!
mScope
.
isEmpty
())
if
(
!
className
.
isEmpty
()
&&
!
mScope
.
isEmpty
())
{
{
className
.
append
(
"::"
+
mScope
)
;
className
+=
"::"
+
mScope
;
}
}
else
if
(
!
mScope
.
isEmpty
())
else
if
(
!
mScope
.
isEmpty
())
{
{
...
@@ -1507,7 +1507,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
...
@@ -1507,7 +1507,7 @@ bool getDefs(const QCString &scName,const QCString &memberName,
QCString
namespaceName
=
scopeName
.
left
(
scopeOffset
);
QCString
namespaceName
=
scopeName
.
left
(
scopeOffset
);
if
(
!
namespaceName
.
isEmpty
()
&&
!
mScope
.
isEmpty
())
if
(
!
namespaceName
.
isEmpty
()
&&
!
mScope
.
isEmpty
())
{
{
namespaceName
.
append
(
"::"
+
mScope
)
;
namespaceName
+=
"::"
+
mScope
;
}
}
else
if
(
!
mScope
.
isEmpty
())
else
if
(
!
mScope
.
isEmpty
())
{
{
...
@@ -2247,7 +2247,7 @@ void extractNamespaceName(const QCString &scopeName,
...
@@ -2247,7 +2247,7 @@ void extractNamespaceName(const QCString &scopeName,
QCString
&
className
,
QCString
&
namespaceName
)
QCString
&
className
,
QCString
&
namespaceName
)
{
{
QCString
clName
=
scopeName
.
copy
();
QCString
clName
=
scopeName
.
copy
();
QCString
nsName
;
//
QCString nsName;
if
(
!
clName
.
isEmpty
()
&&
namespaceDict
[
clName
]
&&
getClass
(
clName
)
==
0
)
if
(
!
clName
.
isEmpty
()
&&
namespaceDict
[
clName
]
&&
getClass
(
clName
)
==
0
)
{
// the whole name is a namespace (and not a class)
{
// the whole name is a namespace (and not a class)
namespaceName
=
clName
.
copy
();
namespaceName
=
clName
.
copy
();
...
...
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