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
c822eb3d
Commit
c822eb3d
authored
Aug 26, 2001
by
dimitri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.2.10
parent
2f790207
Changes
29
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
383 additions
and
169 deletions
+383
-169
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
basehandler.h
addon/xmlparse/basehandler.h
+1
-1
dochandler.cpp
addon/xmlparse/dochandler.cpp
+98
-0
dochandler.h
addon/xmlparse/dochandler.h
+20
-4
main.cpp
addon/xmlparse/main.cpp
+4
-4
language.doc
doc/language.doc
+1
-1
translator.pl
doc/translator.pl
+25
-9
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+6
-4
classdef.h
src/classdef.h
+4
-0
classlist.cpp
src/classlist.cpp
+4
-4
doc.l
src/doc.l
+3
-40
doxygen.cpp
src/doxygen.cpp
+15
-8
htmlgen.cpp
src/htmlgen.cpp
+13
-11
htmlgen.h
src/htmlgen.h
+1
-1
index.cpp
src/index.cpp
+1
-0
latexgen.h
src/latexgen.h
+1
-1
mangen.cpp
src/mangen.cpp
+2
-0
mangen.h
src/mangen.h
+1
-1
memberdef.cpp
src/memberdef.cpp
+7
-13
outputgen.h
src/outputgen.h
+1
-1
outputlist.h
src/outputlist.h
+4
-4
rtfgen.cpp
src/rtfgen.cpp
+2
-0
rtfgen.h
src/rtfgen.h
+1
-1
scanner.l
src/scanner.l
+55
-27
util.cpp
src/util.cpp
+73
-11
xmlgen.cpp
src/xmlgen.cpp
+34
-17
No files found.
INSTALL
View file @
c822eb3d
DOXYGEN Version 1.2.
9-20010819
DOXYGEN Version 1.2.
10
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (
19
August 2001)
Dimitri van Heesch (
26
August 2001)
README
View file @
c822eb3d
DOXYGEN Version 1.2.
9_20010819
DOXYGEN Version 1.2.
10
Please read INSTALL for compilation instructions.
...
...
@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (
19
August 2001)
Dimitri van Heesch (dimitri@stack.nl) (
26
August 2001)
VERSION
View file @
c822eb3d
1.2.
9-20010819
1.2.
10
addon/xmlparse/basehandler.h
View file @
c822eb3d
...
...
@@ -146,7 +146,7 @@ template<class T> class BaseHandler : public IBaseHandler,
(
*
handler
)(
attrib
);
//printf("found start tag %s\n",name.data());
}
else
if
(
m_fallBackHandler
&&
else
if
(
!
m_fallBackHandler
||
!
m_fallBackHandler
->
handleStartElement
(
name
,
attrib
)
)
{
...
...
addon/xmlparse/dochandler.cpp
View file @
c822eb3d
...
...
@@ -14,7 +14,46 @@
*/
#include "dochandler.h"
#include <qmap.h>
class
TypeNameMapper
{
public
:
TypeNameMapper
()
{
m_typeNameMap
.
insert
(
"see"
,
SimpleSectHandler
::
See
);
m_typeNameMap
.
insert
(
"return"
,
SimpleSectHandler
::
Return
);
m_typeNameMap
.
insert
(
"author"
,
SimpleSectHandler
::
Author
);
m_typeNameMap
.
insert
(
"version"
,
SimpleSectHandler
::
Version
);
m_typeNameMap
.
insert
(
"since"
,
SimpleSectHandler
::
Since
);
m_typeNameMap
.
insert
(
"date"
,
SimpleSectHandler
::
Date
);
m_typeNameMap
.
insert
(
"bug"
,
SimpleSectHandler
::
Bug
);
m_typeNameMap
.
insert
(
"note"
,
SimpleSectHandler
::
Note
);
m_typeNameMap
.
insert
(
"warning"
,
SimpleSectHandler
::
Warning
);
m_typeNameMap
.
insert
(
"par"
,
SimpleSectHandler
::
Par
);
m_typeNameMap
.
insert
(
"deprecated"
,
SimpleSectHandler
::
Deprecated
);
m_typeNameMap
.
insert
(
"pre"
,
SimpleSectHandler
::
Pre
);
m_typeNameMap
.
insert
(
"post"
,
SimpleSectHandler
::
Post
);
m_typeNameMap
.
insert
(
"invariant"
,
SimpleSectHandler
::
Invar
);
m_typeNameMap
.
insert
(
"remark"
,
SimpleSectHandler
::
Remark
);
m_typeNameMap
.
insert
(
"attention"
,
SimpleSectHandler
::
Attention
);
m_typeNameMap
.
insert
(
"todo"
,
SimpleSectHandler
::
Todo
);
m_typeNameMap
.
insert
(
"test"
,
SimpleSectHandler
::
Test
);
m_typeNameMap
.
insert
(
"rcs"
,
SimpleSectHandler
::
RCS
);
m_typeNameMap
.
insert
(
"enumvalues"
,
SimpleSectHandler
::
EnumValues
);
m_typeNameMap
.
insert
(
"examples"
,
SimpleSectHandler
::
Examples
);
}
SimpleSectHandler
::
Types
stringToType
(
const
QString
&
typeStr
)
{
return
m_typeNameMap
[
typeStr
];
}
private
:
QMap
<
QString
,
SimpleSectHandler
::
Types
>
m_typeNameMap
;
};
static
TypeNameMapper
g_typeMapper
;
//----------------------------------------------------------------------
// MarkupHandler
//----------------------------------------------------------------------
...
...
@@ -333,6 +372,56 @@ void ParameterListHandler::startParameterDescription(const QXmlAttributes& attri
m_curParam
->
startParameterDescription
(
attrib
);
}
//----------------------------------------------------------------------
// SimpleSectHandler
//----------------------------------------------------------------------
SimpleSectHandler
::
SimpleSectHandler
(
IBaseHandler
*
parent
)
:
DocNode
(
Para
),
m_parent
(
parent
),
m_paragraph
(
0
)
{
addStartHandler
(
"title"
,
this
,
&
SimpleSectHandler
::
startTitle
);
addEndHandler
(
"title"
,
this
,
&
SimpleSectHandler
::
endTitle
);
addStartHandler
(
"para"
,
this
,
&
SimpleSectHandler
::
startParagraph
);
}
SimpleSectHandler
::~
SimpleSectHandler
()
{
}
void
SimpleSectHandler
::
startSimpleSect
(
const
QXmlAttributes
&
attrib
)
{
m_type
=
g_typeMapper
.
stringToType
(
attrib
.
value
(
"kind"
));
addEndHandler
(
"simplesect"
,
this
,
&
SimpleSectHandler
::
endSimpleSect
);
printf
(
"start simple section %s
\n
"
,
attrib
.
value
(
"kind"
).
data
());
m_parent
->
setDelegate
(
this
);
}
void
SimpleSectHandler
::
endSimpleSect
()
{
printf
(
"end simple section
\n
"
);
m_parent
->
setDelegate
(
0
);
}
void
SimpleSectHandler
::
startTitle
(
const
QXmlAttributes
&
/*attrib*/
)
{
m_curString
=
""
;
}
void
SimpleSectHandler
::
endTitle
()
{
printf
(
"simpleSect title=
\"
%s
\"\n
"
,
m_curString
.
data
());
m_title
=
m_curString
;
m_curString
=
""
;
}
void
SimpleSectHandler
::
startParagraph
(
const
QXmlAttributes
&
attrib
)
{
ASSERT
(
m_paragraph
==
0
);
m_paragraph
=
new
ParagraphHandler
(
this
);
m_paragraph
->
startParagraph
(
attrib
);
}
//----------------------------------------------------------------------
// ParagraphHandler
//----------------------------------------------------------------------
...
...
@@ -350,6 +439,7 @@ ParagraphHandler::ParagraphHandler(IBaseHandler *parent)
addStartHandler
(
"itemizedlist"
,
this
,
&
ParagraphHandler
::
startItemizedList
);
addStartHandler
(
"orderedlist"
,
this
,
&
ParagraphHandler
::
startOrderedList
);
addStartHandler
(
"parameterlist"
,
this
,
&
ParagraphHandler
::
startParameterList
);
addStartHandler
(
"simplesect"
,
this
,
&
ParagraphHandler
::
startSimpleSect
);
}
ParagraphHandler
::~
ParagraphHandler
()
...
...
@@ -394,6 +484,14 @@ void ParagraphHandler::startParameterList(const QXmlAttributes& attrib)
m_children
.
append
(
parListHandler
);
}
void
ParagraphHandler
::
startSimpleSect
(
const
QXmlAttributes
&
attrib
)
{
addTextNode
();
SimpleSectHandler
*
sectHandler
=
new
SimpleSectHandler
(
this
);
sectHandler
->
startSimpleSect
(
attrib
);
m_children
.
append
(
sectHandler
);
}
void
ParagraphHandler
::
addTextNode
()
{
if
(
!
m_curString
.
isEmpty
())
...
...
addon/xmlparse/dochandler.h
View file @
c822eb3d
...
...
@@ -52,7 +52,8 @@ class DocNode
OrderedList
,
ListItem
,
ParameterList
,
Parameter
Parameter
,
SimpleSect
};
DocNode
(
NodeKind
k
)
:
m_kind
(
k
)
{}
virtual
~
DocNode
()
{}
...
...
@@ -225,11 +226,13 @@ class ParameterListHandler : public DocNode,
/* \brief Node representing a simple section with an unnumbered header.
*
*/
// children: title, para
class
SimpleSectHandler
:
public
DocNode
,
public
BaseHandler
<
SimpleSectHandler
>
{
public
:
enum
Types
{
See
,
Return
,
Author
,
Version
,
enum
Types
{
Invalid
=
0
,
See
,
Return
,
Author
,
Version
,
Since
,
Date
,
Bug
,
Note
,
Warning
,
Par
,
Deprecated
,
Pre
,
Post
,
Invar
,
Remark
,
Attention
,
...
...
@@ -240,11 +243,15 @@ class SimpleSectHandler : public DocNode,
virtual
~
SimpleSectHandler
();
virtual
void
startSimpleSect
(
const
QXmlAttributes
&
attrib
);
virtual
void
endSimpleSect
();
virtual
void
startTitle
(
const
QXmlAttributes
&
attrib
);
virtual
void
endTitle
();
virtual
void
startParagraph
(
const
QXmlAttributes
&
attrib
);
private
:
IBaseHandler
*
m_parent
;
Para
meterHandler
*
m_curParam
;
Para
graphHandler
*
m_paragraph
;
Types
m_type
;
// TODO: a title can also contain links (for todo sections for instance!)
QString
m_title
;
};
...
...
@@ -253,6 +260,13 @@ class SimpleSectHandler : public DocNode,
/*! \brief Node representing a paragraph of text and commands.
*
*/
// children: itemizedlist, orderedlist, parameterlist, simplesect,
// programlisting, hruler, variablelist,
// linebreak, nonbreakablespace, ref, ulink, email,
// table, link, indexentry, formula, image, dotfile, ref
// children handled by MarkupHandler:
// bold, computeroutput, emphasis, center,
// small, subscript, superscript.
class
ParagraphHandler
:
public
DocNode
,
public
BaseHandler
<
ParagraphHandler
>
{
public
:
...
...
@@ -261,6 +275,7 @@ class ParagraphHandler : public DocNode, public BaseHandler<ParagraphHandler>
virtual
void
startItemizedList
(
const
QXmlAttributes
&
attrib
);
virtual
void
startOrderedList
(
const
QXmlAttributes
&
attrib
);
virtual
void
startParameterList
(
const
QXmlAttributes
&
attrib
);
virtual
void
startSimpleSect
(
const
QXmlAttributes
&
attrib
);
ParagraphHandler
(
IBaseHandler
*
parent
);
virtual
~
ParagraphHandler
();
...
...
@@ -277,6 +292,7 @@ class ParagraphHandler : public DocNode, public BaseHandler<ParagraphHandler>
/*! \brief Node representing a documentation block.
*
*/
// children: para, title, sect1, sect2, sect3
class
DocHandler
:
public
BaseHandler
<
DocHandler
>
{
public
:
...
...
@@ -288,7 +304,7 @@ class DocHandler : public BaseHandler<DocHandler>
virtual
~
DocHandler
();
private
:
IBaseHandler
*
m_parent
;
QList
<
ParagraphHandler
>
m_children
;
QList
<
DocNode
>
m_children
;
};
#endif
addon/xmlparse/main.cpp
View file @
c822eb3d
...
...
@@ -63,10 +63,6 @@ int main(int argc,char **argv)
}
QFile
xmlFile
(
argv
[
1
]);
if
(
!
xmlFile
.
open
(
IO_ReadOnly
))
{
qFatal
(
"Could not read %s"
,
argv
[
1
]
);
}
#ifdef USE_SAX
MainHandler
handler
;
...
...
@@ -79,6 +75,10 @@ int main(int argc,char **argv)
#endif
#ifdef USE_DOM
if
(
!
xmlFile
.
open
(
IO_ReadOnly
))
{
qFatal
(
"Could not read %s"
,
argv
[
1
]
);
}
QDomDocument
doc
;
doc
.
setContent
(
&
xmlFile
);
...
...
doc/language.doc
View file @
c822eb3d
...
...
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time.
Currently (version 1.2.9-2001081
2
), 24 languages
Currently (version 1.2.9-2001081
9
), 24 languages
are supported (sorted alphabetically):
Brazilian Portuguese, Chinese, Croatian, Czech, Danish,
Dutch, English, Finnish, French, German,
...
...
doc/translator.pl
View file @
c822eb3d
...
...
@@ -50,10 +50,10 @@
# can be updated so that the generated language.doc does not contain
# the link to the translator_report.txt.
#
#
Todo:
#
-----
#
- Something changed. The environment variables like VERSION,
#
DOXYGEN_DOCDIR are not set now when make is run
.
#
2001/08/20
#
- StripArgIdentifiers() enhanced to be more robust in producing
#
equal prototypes from the base class and from the derived
#
classes (if they should be considered equal)
.
#
################################################################
...
...
@@ -174,6 +174,8 @@ sub StripArgIdentifiers ##{{{
foreach
my
$arg
(
@a
)
{
# Only the type of the identifier is important...
#
$arg
=~
s{^(\s* # there can be spaces behind comma,
(const\s+)? # possibly const at the beginning
[A-Za-z0-9_:]+ # type identifier can be qualified
...
...
@@ -183,6 +185,20 @@ sub StripArgIdentifiers ##{{{
}
{$1}x
;
# remember only the important things
# People may differ in opinion whether a space should
# or should not be written between a type identifier and
# the '*' or '&' (when the argument is a pointer or a reference).
#
$arg
=~
s{\s*([*&])}{ $1}
;
# Whitespaces are not only spaces. Moreover, the difference
# may be in number of them in a sequence or in the type
# of a whitespace. This is the reason to replace each sequence
# of whitespace by a single, real space.
#
$arg
=~
s{\s+}{ }g
;
# Remember the stripped form of the arguments
push
(
@stripped
,
$arg
);
}
...
...
@@ -683,6 +699,11 @@ print STDERR "\n\n";
#
my
@expected
=
GetPureVirtualFrom
(
"$srcdir/translator.h"
);
# The details for translators will be collected into the output
# string.
#
my
$output
=
''
;
# Remove the argument identifiers from the method prototypes
# to get only the required form of the prototype. Fill the
# hash with them. #{{{
...
...
@@ -700,11 +721,6 @@ print STDERR "\n\n";
#
my
%
cb
=
();
# The details for translators will be collected into the output
# string.
#
my
$output
=
''
;
# Loop through all translator files. Extract the implemented
# virtual methods and compare it with the requirements. Prepare
# the output.
...
...
packages/rpm/doxygen.spec
View file @
c822eb3d
Name: doxygen
Version: 1.2.
9_20010819
Version: 1.2.
10
Summary: documentation system for C, C++ and IDL
Release: 4
Source: doxygen-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
c822eb3d
...
...
@@ -104,6 +104,7 @@ ClassDef::ClassDef(
m_templBaseClassNames
=
0
;
m_artificial
=
FALSE
;
m_isAbstract
=
FALSE
;
m_isStatic
=
FALSE
;
}
// destroy the class definition
...
...
@@ -1073,9 +1074,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
if
(
exampleFlag
)
{
ol
.
startDescList
(
BaseOutputDocInterface
::
Examples
);
ol
.
startBold
();
parseText
(
ol
,
theTranslator
->
trExamples
()
+
": "
);
ol
.
endBold
();
ol
.
endDescTitle
();
ol
.
writeDescItem
();
ol
.
newParagraph
();
...
...
@@ -1546,7 +1545,8 @@ bool ClassDef::isLinkableInProject() const
name
().
find
(
'@'
)
==-
1
&&
/* anonymous compound */
(
m_prot
!=
Private
||
Config_getBool
(
"EXTRACT_PRIVATE"
))
&&
/* private */
hasDocumentation
()
&&
/* documented */
!
isReference
();
/* not an external reference */
!
isReference
()
&&
/* not an external reference */
(
!
m_isStatic
||
Config_getBool
(
"EXTRACT_STATIC"
));
}
}
...
...
@@ -1578,7 +1578,9 @@ bool ClassDef::isVisibleInHierarchy()
(
hasDocumentation
()
||
!
Config_getBool
(
"HIDE_UNDOC_CLASSES"
)
||
isReference
()
);
)
&&
// is not part of an unnamed namespace or shown anyway
(
!
m_isStatic
||
Config_getBool
(
"EXTRACT_STATIC"
));
}
bool
ClassDef
::
hasDocumentation
()
const
...
...
src/classdef.h
View file @
c822eb3d
...
...
@@ -270,6 +270,7 @@ class ClassDef : public Definition
void
setTemplateMaster
(
ClassDef
*
tm
)
{
m_templateMaster
=
tm
;
}
void
addMembersToTemplateInstance
(
ClassDef
*
cd
,
const
char
*
templSpec
);
void
setClassIsArtificial
()
{
m_artificial
=
TRUE
;
}
void
setIsStatic
(
bool
b
)
{
m_isStatic
=
b
;
}
/*! Creates a new compound definition.
* \param outerScope class, file or namespace in which this class is
...
...
@@ -401,6 +402,9 @@ class ClassDef : public Definition
bool
m_isAbstract
;
QCString
m_className
;
/*! Is the class part of an unnamed namespace? */
bool
m_isStatic
;
};
/*! \brief Class that contains information about a usage relation.
...
...
src/classlist.cpp
View file @
c822eb3d
...
...
@@ -35,8 +35,8 @@ int ClassList::compareItems(GCI item1, GCI item2)
{
ClassDef
*
c1
=
(
ClassDef
*
)
item1
;
ClassDef
*
c2
=
(
ClassDef
*
)
item2
;
return
stricmp
(
c1
->
n
ame
().
data
()
+
getPrefixIndex
(
c1
->
localName
()),
c2
->
n
ame
().
data
()
+
getPrefixIndex
(
c2
->
localName
())
return
stricmp
(
c1
->
localN
ame
().
data
()
+
getPrefixIndex
(
c1
->
localName
()),
c2
->
localN
ame
().
data
()
+
getPrefixIndex
(
c2
->
localName
())
);
}
...
...
@@ -44,8 +44,8 @@ int ClassSDict::compareItems(GCI item1, GCI item2)
{
ClassDef
*
c1
=
(
ClassDef
*
)
item1
;
ClassDef
*
c2
=
(
ClassDef
*
)
item2
;
return
stricmp
(
c1
->
n
ame
().
data
()
+
getPrefixIndex
(
c1
->
localName
()),
c2
->
n
ame
().
data
()
+
getPrefixIndex
(
c2
->
localName
())
return
stricmp
(
c1
->
localN
ame
().
data
()
+
getPrefixIndex
(
c1
->
localName
()),
c2
->
localN
ame
().
data
()
+
getPrefixIndex
(
c2
->
localName
())
);
}
...
...
src/doc.l
View file @
c822eb3d
...
...
@@ -1170,9 +1170,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inParBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Par);
outDoc->startBold();
outDoc->docify(title);
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1190,9 +1188,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inWarningBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Warning);
outDoc->startBold();
scanString(theTranslator->trWarning()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1209,9 +1205,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inRemarkBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Remark);
outDoc->startBold();
scanString(theTranslator->trRemarks()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1228,9 +1222,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inAttentionBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Attention);
outDoc->startBold();
scanString(theTranslator->trAttention()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1247,9 +1239,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inNoteBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Note);
outDoc->startBold();
scanString(theTranslator->trNote()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1266,9 +1256,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inPreBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Pre);
outDoc->startBold();
scanString(theTranslator->trPrecondition()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1285,9 +1273,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inPostBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Post);
outDoc->startBold();
scanString(theTranslator->trPostcondition()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1304,9 +1290,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inInvarBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Invar);
outDoc->startBold();
scanString(theTranslator->trInvariant()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1323,9 +1307,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inVersionBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Version);
outDoc->startBold();
scanString(theTranslator->trVersion()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1342,9 +1324,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inSinceBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Since);
outDoc->startBold();
scanString(theTranslator->trSince()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1361,9 +1341,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inDateBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Date);
outDoc->startBold();
scanString(theTranslator->trDate()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1384,9 +1362,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
if (inBlock()) endBlock();
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Todo);
outDoc->startBold();
outDoc->writeObjectLink(0,"todo",item->listAnchor,theTranslator->trTodo()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
internalParseDocument(item->text);
...
...
@@ -1406,9 +1382,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
if (inBlock()) endBlock();
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Test);
outDoc->startBold();
outDoc->writeObjectLink(0,"test",item->listAnchor,theTranslator->trTest()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
internalParseDocument(item->text);
...
...
@@ -1428,9 +1402,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
if (inBlock()) endBlock();
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Bug);
outDoc->startBold();
outDoc->writeObjectLink(0,"bug",item->listAnchor,theTranslator->trBug()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
internalParseDocument(item->text);
...
...
@@ -1446,9 +1418,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inDeprecatedBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Deprecated);
outDoc->startBold();
scanString(theTranslator->trDeprecated()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1467,9 +1437,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
if (inBlock()) endBlock();
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::RCS);
outDoc->startBold();
scanString(tagName+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
scanString(tagText);
...
...
@@ -1484,10 +1452,8 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inAuthorBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Author);
outDoc->startBold();
bool singular = ((QString)yytext).find('s')==-1;
scanString(theTranslator->trAuthor(TRUE,singular)+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1504,9 +1470,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inReturnBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::Return);
outDoc->startBold();
scanString(theTranslator->trReturns()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -1519,9 +1483,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
inSeeBlock=TRUE;
currentListIndent.push("D");
outDoc->startDescList(BaseOutputDocInterface::See);
outDoc->startBold();
scanString(theTranslator->trSeeAlso()+": ");
outDoc->endBold();
outDoc->endDescTitle();
outDoc->writeDescItem();
}
...
...
@@ -2420,6 +2382,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
addListItemMarker(yytext,dashPos+1,isEnumerated);
}
<DocScan>({B}*"\n"){2,}{B}* { // new paragraph
bool ib = inBlock();
if (insideArgumentList)
{
insideArgumentList=FALSE;
...
...
@@ -2435,12 +2398,12 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
{
outDoc->docify(yytext);
}
else
else
if (!ib)
{
outDoc->newParagraph();
}
}
if (i
nBlock()
) endBlock();
if (i
b
) endBlock();
}
<DocScan>{BN}+/\n {
outDoc->writeChar(' ');
...
...
src/doxygen.cpp
View file @
c822eb3d
...
...
@@ -888,6 +888,7 @@ static void buildClassList(Entry *root)
cd
->
setTemplateArguments
(
tArgList
);
cd
->
setProtection
(
root
->
protection
);
cd
->
addSectionsToDefinition
(
root
->
anchors
);
cd
->
setIsStatic
(
root
->
stat
);
// file definition containing the class cd
cd
->
setBodySegment
(
root
->
bodyLine
,
root
->
endBodyLine
);
...
...
@@ -2677,14 +2678,20 @@ static bool findTemplateInstanceRelation(Entry *root,
// search for new template instances caused by base classes of
// instanceClass
Entry
*
templateRoot
=
classEntries
.
find
(
templateClass
->
name
());
if
(
templateRoot
)
{
ArgumentList
*
templArgs
=
new
ArgumentList
;
stringToArgumentList
(
templSpec
,
templArgs
);
findBaseClassesForClass
(
templateRoot
,
templateClass
,
instanceClass
,
TemplateInstances
,
isArtificial
,
templArgs
,
templateNames
);
ArgumentList
*
templArgs
=
new
ArgumentList
;
stringToArgumentList
(
templSpec
,
templArg
s
);
findBaseClassesForClass
(
templateRoot
,
templateClass
,
instanceClass
,
TemplateInstances
,
isArtificial
,
templArgs
,
templateNames
);
findUsedClassesForClass
(
templateRoot
,
templateClass
,
instanceClass
,
isArtificial
,
templArgs
,
templateNames
);
findUsedClassesForClass
(
templateRoot
,
templateClass
,
instanceClass
,
isArtificial
,
templArgs
,
templateName
s
);
}
else
{
// TODO: what happened if we get here?
}
//Debug::print(Debug::Classes,0," Template instance %s : \n",instanceClass->name().data());
//ArgumentList *tl = templateClass->templateArguments();
...
...
@@ -7132,7 +7139,7 @@ void parseInput()
msg
(
"Adding source references...
\n
"
);
addSourceReferences
();
msg
(
"Adding todo/test/bug list item...
\n
"
);
msg
(
"Adding todo/test/bug list item
s
...
\n
"
);
addTodoTestBugReferences
();
}
...
...
src/htmlgen.cpp
View file @
c822eb3d
...
...
@@ -49,7 +49,8 @@ static const char *defaultStyleSheet =
"DIV.fragment { width: 100%; border: none; background-color: #eeeeee }
\n
"
"DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
\n
"
"TD.md { background-color: #f2f2ff; font-weight: bold; }
\n
"
"TD.mdname { background-color: #f2f2ff; font-weight: bold; font-style: italic }
\n
"
"TD.mdname1 { background-color: #f2f2ff; font-weight: bold; font-style: italic; }
\n
"
"TD.mdname { background-color: #f2f2ff; font-weight: bold; font-style: italic; width: 600px; }
\n
"
"DIV.groupHeader { margin-left: 16px; margin-top: 12px; margin-bottom: 6px; font-weight: bold }
\n
"
"DIV.groupText { margin-left: 16px; font-style: italic; font-size: smaller }
\n
"
"FONT.keyword { color: #008000 }
\n
"
...
...
@@ -911,7 +912,7 @@ void HtmlGenerator::startMemberDocPrefixItem()
void
HtmlGenerator
::
endMemberDocPrefixItem
()
{
DBG_HTML
(
t
<<
"<!-- endMemberDocPrefixItem -->"
<<
endl
;)
t
<<
"
</td>"
<<
endl
;
t
<<
"</td>"
<<
endl
;
t
<<
" </tr>"
<<
endl
;
}
...
...
@@ -919,14 +920,13 @@ void HtmlGenerator::startMemberDocName()
{
DBG_HTML
(
t
<<
"<!-- startMemberDocName -->"
<<
endl
;)
t
<<
" <tr>"
<<
endl
;
t
<<
" <td class=
\"
md
\"
nowrap valign=
\"
top
\"
> "
<<
endl
;
t
<<
" <td class=
\"
md
\"
nowrap valign=
\"
top
\"
> "
;
}
void
HtmlGenerator
::
endMemberDocName
()
{
DBG_HTML
(
t
<<
"<!-- endMemberDocName -->"
<<
endl
;)
t
<<
endl
;
t
<<
" </td>"
<<
endl
;
t
<<
"</td>"
<<
endl
;
}
void
HtmlGenerator
::
startParameterList
()
...
...
@@ -955,13 +955,15 @@ void HtmlGenerator::startParameterType(bool first)
void
HtmlGenerator
::
endParameterType
()
{
DBG_HTML
(
t
<<
"<!-- endParameterType -->"
<<
endl
;)
t
<<
"
</td>"
<<
endl
;
t
<<
"</td>"
<<
endl
;
}
void
HtmlGenerator
::
startParameterName
()
void
HtmlGenerator
::
startParameterName
(
bool
oneArgOnly
)
{
DBG_HTML
(
t
<<
"<!-- startParameterName -->"
<<
endl
;)
t
<<
" <td class=
\"
mdname
\"
>"
;
t
<<
" <td class=
\"
mdname"
;
if
(
oneArgOnly
)
t
<<
"1"
;
t
<<
"
\"
> "
;
}
void
HtmlGenerator
::
endParameterName
(
bool
last
,
bool
emptyList
)
...
...
@@ -977,7 +979,7 @@ void HtmlGenerator::endParameterName(bool last,bool emptyList)
}
else
{
t
<<
"
</td>"
<<
endl
;
t
<<
"</td>"
<<
endl
;
t
<<
" </tr>"
<<
endl
;
t
<<
" <tr>"
<<
endl
;
t
<<
" <td></td>"
<<
endl
;
...
...
@@ -987,7 +989,7 @@ void HtmlGenerator::endParameterName(bool last,bool emptyList)
}
else
{
t
<<
"
</td>"
<<
endl
;
t
<<
"</td>"
<<
endl
;
t
<<
" </tr>"
<<
endl
;
}
}
...
...
@@ -995,7 +997,7 @@ void HtmlGenerator::endParameterName(bool last,bool emptyList)
void
HtmlGenerator
::
endParameterList
()
{
DBG_HTML
(
t
<<
"<!-- endParameterList -->"
<<
endl
;)
t
<<
"
</td>"
<<
endl
;
t
<<
"</td>"
<<
endl
;
t
<<
" </tr>"
<<
endl
;
}
...
...
src/htmlgen.h
View file @
c822eb3d
...
...
@@ -236,7 +236,7 @@ class HtmlGenerator : public OutputGenerator
void
endMemberDocName
();
void
startParameterType
(
bool
first
);
void
endParameterType
();
void
startParameterName
();
void
startParameterName
(
bool
);
void
endParameterName
(
bool
last
,
bool
emptyList
);
void
startParameterList
();
void
endParameterList
();
...
...
src/index.cpp
View file @
c822eb3d
...
...
@@ -1285,6 +1285,7 @@ void writeAlphabeticalClassList(OutputList &ol)
{
QCString
cname
;
QCString
namesp
;
if
(
cd
->
getNamespaceDef
())
namesp
=
cd
->
getNamespaceDef
()
->
name
();
if
(
Config_getBool
(
"HIDE_SCOPE_NAMES"
))
{
cname
=
cd
->
displayName
();
...
...
src/latexgen.h
View file @
c822eb3d
...
...
@@ -243,7 +243,7 @@ class LatexGenerator : public OutputGenerator
void
endMemberDocName
()
{}
void
startParameterType
(
bool
)
{}
void
endParameterType
()
{}
void
startParameterName
()
{}
void
startParameterName
(
bool
)
{}
void
endParameterName
(
bool
,
bool
)
{}
void
startParameterList
()
{}
void
endParameterList
()
{}
...
...
src/mangen.cpp
View file @
c822eb3d
...
...
@@ -316,6 +316,7 @@ void ManGenerator::startDescList(SectionTypes)
col
=
0
;
}
paragraph
=
FALSE
;
startBold
();
}
void
ManGenerator
::
startParamList
(
ParamListTypes
)
...
...
@@ -458,6 +459,7 @@ void ManGenerator::startDescItem()
void
ManGenerator
::
endDescTitle
()
{
endBold
();
paragraph
=
TRUE
;
}
...
...
src/mangen.h
View file @
c822eb3d
...
...
@@ -224,7 +224,7 @@ class ManGenerator : public OutputGenerator
void
endMemberDocName
()
{}
void
startParameterType
(
bool
)
{}
void
endParameterType
()
{}
void
startParameterName
()
{}
void
startParameterName
(
bool
)
{}
void
endParameterName
(
bool
,
bool
)
{}
void
startParameterList
()
{}
void
endParameterList
()
{}
...
...
src/memberdef.cpp
View file @
c822eb3d
...
...
@@ -119,7 +119,7 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
bool
first
=
TRUE
;
while
(
a
)
{
if
(
!
md
->
isDefine
()
||
first
)
ol
.
startParameterType
(
first
);
if
(
md
->
isDefine
()
||
first
)
ol
.
startParameterType
(
first
);
QRegExp
re
(
")("
);
int
vp
;
if
(
!
a
->
attrib
.
isEmpty
())
// argument has an IDL attribute
...
...
@@ -141,7 +141,7 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
if
(
!
md
->
isDefine
())
{
ol
.
endParameterType
();
ol
.
startParameterName
();
ol
.
startParameterName
(
argList
->
count
()
<
2
);
}
if
(
!
a
->
name
.
isEmpty
())
// argument has a name
{
...
...
@@ -191,13 +191,13 @@ static void writeDefArgumentList(OutputList &ol,ClassDef *cd,
ol
.
disableAllBut
(
OutputGenerator
::
Html
);
if
(
!
md
->
isDefine
())
{
if
(
first
)
ol
.
startParameterName
();
if
(
first
)
ol
.
startParameterName
(
argList
->
count
()
<
2
);
ol
.
endParameterName
(
TRUE
,
argList
->
count
()
<
2
);
}
else
{
ol
.
endParameterType
();
ol
.
startParameterName
();
ol
.
startParameterName
(
TRUE
);
ol
.
endParameterName
(
TRUE
,
TRUE
);
}
ol
.
popGeneratorState
();
...
...
@@ -260,7 +260,7 @@ MemberDef::MemberDef(const char *df,int dl,
const
ArgumentList
*
tal
,
const
ArgumentList
*
al
)
:
Definition
(
df
,
dl
,
na
)
{
//printf("++++++ MemberDef(%s file=%s,line=%d
) ++++++ \n",na,df,dl
);
//printf("++++++ MemberDef(%s file=%s,line=%d
static=%d) ++++++ \n",na,df,dl,s
);
classDef
=
0
;
fileDef
=
0
;
redefines
=
0
;
...
...
@@ -884,10 +884,8 @@ bool MemberDef::isDetailedSectionLinkable() const
(
mtype
==
EnumValue
&&
!
briefDescription
().
isEmpty
())
||
// has brief description that is part of the detailed description
(
!
briefDescription
().
isEmpty
()
&&
(
!
Config_getBool
(
"BRIEF_MEMBER_DESC"
)
||
Config_getBool
(
"ALWAYS_DETAILED_SEC"
))
&&
Config_getBool
(
"REPEAT_BRIEF"
)
Config_getBool
(
"ALWAYS_DETAILED_SEC"
)
&&
Config_getBool
(
"REPEAT_BRIEF"
)
)
||
// has a multi-line initialization block
//(initLines>0 && initLines<maxInitLines) ||
...
...
@@ -1247,10 +1245,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
{
//ol.newParagraph();
ol
.
startDescList
(
BaseOutputDocInterface
::
EnumValues
);
ol
.
startBold
();
parseText
(
ol
,
theTranslator
->
trEnumerationValues
());
ol
.
docify
(
":"
);
ol
.
endBold
();
ol
.
endDescTitle
();
ol
.
writeDescItem
();
//ol.startItemList();
...
...
@@ -1444,10 +1440,8 @@ void MemberDef::writeDocumentation(MemberList *ml,OutputList &ol,
if
(
hasExamples
())
{
ol
.
startDescList
(
BaseOutputDocInterface
::
Examples
);
ol
.
startBold
();
parseText
(
ol
,
theTranslator
->
trExamples
()
+
": "
);
//ol.writeBoldString("Examples: ");
ol
.
endBold
();
ol
.
endDescTitle
();
ol
.
writeDescItem
();
writeExample
(
ol
,
getExamples
());
...
...
src/outputgen.h
View file @
c822eb3d
...
...
@@ -369,7 +369,7 @@ class OutputGenerator : public BaseOutputDocInterface
virtual
void
endMemberDocName
()
=
0
;
virtual
void
startParameterType
(
bool
)
=
0
;
virtual
void
endParameterType
()
=
0
;
virtual
void
startParameterName
()
=
0
;
virtual
void
startParameterName
(
bool
)
=
0
;
virtual
void
endParameterName
(
bool
,
bool
)
=
0
;
virtual
void
startParameterList
()
=
0
;
virtual
void
endParameterList
()
=
0
;
...
...
src/outputlist.h
View file @
c822eb3d
...
...
@@ -407,10 +407,10 @@ class OutputList : public OutputDocInterface
{
forall
(
&
OutputGenerator
::
startParameterType
,
first
);
}
void
endParameterType
()
{
forall
(
&
OutputGenerator
::
endParameterType
);
}
void
startParameterName
()
{
forall
(
&
OutputGenerator
::
startParameterName
);
}
void
endParameterName
(
bool
last
,
bool
emptyList
)
{
forall
(
&
OutputGenerator
::
endParameterName
,
last
,
emptyList
);
}
void
startParameterName
(
bool
one
)
{
forall
(
&
OutputGenerator
::
startParameterName
,
one
);
}
void
endParameterName
(
bool
last
,
bool
one
)
{
forall
(
&
OutputGenerator
::
endParameterName
,
last
,
one
);
}
void
startParameterList
()
{
forall
(
&
OutputGenerator
::
startParameterList
);
}
void
endParameterList
()
...
...
src/rtfgen.cpp
View file @
c822eb3d
...
...
@@ -1931,11 +1931,13 @@ void RTFGenerator::startDescList(SectionTypes)
DBG_RTF
(
t
<<
"{
\\
comment (startDescList)}"
<<
endl
)
t
<<
"{"
;
newParagraph
();
startBold
();
}
void
RTFGenerator
::
endDescTitle
()
{
DBG_RTF
(
t
<<
"{
\\
comment (endDescTitle) }"
<<
endl
)
endBold
();
newParagraph
();
//t << Rtf_Style_Reset << styleStack.top();
incrementIndentLevel
();
...
...
src/rtfgen.h
View file @
c822eb3d
...
...
@@ -227,7 +227,7 @@ class RTFGenerator : public OutputGenerator
void
endMemberDocName
()
{}
void
startParameterType
(
bool
)
{}
void
endParameterType
()
{}
void
startParameterName
()
{}
void
startParameterName
(
bool
)
{}
void
endParameterName
(
bool
,
bool
)
{}
void
startParameterList
()
{}
void
endParameterList
()
{}
...
...
src/scanner.l
View file @
c822eb3d
...
...
@@ -22,7 +22,6 @@
*/
#include <stdio.h>
#include <stdlib.h>
//#include <iostream.h>
#include <assert.h>
#include <ctype.h>
...
...
@@ -147,10 +146,12 @@ static Grouping lastDefGroup( "", Grouping::GROUPING_LOWEST );
static bool insideFormula;
static bool insideTryBlock=FALSE;
static bool needsSemi;
static int depthIf;
static int initializerSharpCount;
//-----------------------------------------------------------------------------
static void initParser()
...
...
@@ -600,6 +601,7 @@ TITLE [tT][iI][tT][lL][eE]
<*>\x0d
<NextSemi>"{" {
curlyCount=0;
needsSemi = TRUE;
BEGIN(SkipCurlyBlock);
}
<NextSemi>"(" {
...
...
@@ -623,8 +625,14 @@ TITLE [tT][iI][tT][lL][eE]
{
--curlyCount ;
}
else
else if (needsSemi)
{
BEGIN( NextSemi );
}
else
{
BEGIN( FindMembers );
}
}
<NextSemi>"'"\\[0-7]{1,3}"'"
<NextSemi>"'"\\."'"
...
...
@@ -848,7 +856,8 @@ TITLE [tT][iI][tT][lL][eE]
lineCount() ;
BEGIN( CompoundName ) ;
}
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"struct"{BN}+ {
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"struct{" |
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"struct"/{BN}+ {
isTypedef=((QCString)yytext).find("typedef")!=-1;
current->section = Entry::STRUCT_SEC ;
addType( current ) ;
...
...
@@ -868,6 +877,7 @@ TITLE [tT][iI][tT][lL][eE]
lineCount() ;
BEGIN( CompoundName ) ;
}
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"union{" |
<FindMembers>{B}*(("typedef"{BN}+)?)("volatile"{BN}+)?"union"{BN}+ {
isTypedef=((QCString)yytext).find("typedef")!=-1;
current->section = Entry::UNION_SEC ;
...
...
@@ -879,6 +889,7 @@ TITLE [tT][iI][tT][lL][eE]
lineCount() ;
BEGIN( CompoundName ) ;
}
<FindMembers>{B}*(("typedef"{BN}+)?)"enum{" |
<FindMembers>{B}*(("typedef"{BN}+)?)"enum"{BN}+ {
isTypedef=((QCString)yytext).find("typedef")!=-1;
current->section = Entry::ENUM_SEC ;
...
...
@@ -2152,23 +2163,16 @@ TITLE [tT][iI][tT][lL][eE]
current->name=current->name.simplifyWhiteSpace();
current->type=current->type.simplifyWhiteSpace();
current->args=current->args.simplifyWhiteSpace();
QCString &cn=current->name;
QCString &rn=current_root->name;
//printf("current_root->name=`%s'\n",rn.data());
//printf("Function: `%s' `%s' `%s'\n",current->type.data(),cn.data(),current->args.data());
int i;
if ((i=cn.findRev("::"))!=-1) // name contains scope
{
if (cn.left(i)==rn.right(i)) // scope name is redundant
{
cn=cn.right(cn.length()-i-2); // strip scope
//printf("new name=`%s'\n",cn.data());
}
}
//if (cname.left(current_root->name.length()+2)==current_root->name+"::")
//{ // strip redundant scope
// current->name=current->name.right(current->name.length()-current_root->name.length()-2);
// printf("new name=`%s'\n",current->name.data());
//QCString &cn=current->name;
//QCString &rn=current_root->name;
//int i;
//if ((i=cn.findRev("::"))!=-1) // name contains scope
//{
// if (cn.left(i)==rn.right(i)) // scope name is redundant
// {
// cn=cn.right(cn.length()-i-2); // strip scope
// //printf("new name=`%s'\n",cn.data());
// }
//}
current->fileName = yyFileName;
current->startLine = yyLineNr;
...
...
@@ -2211,8 +2215,7 @@ TITLE [tT][iI][tT][lL][eE]
current->proto = TRUE;
}
}
//printf("Adding entry `%s' inLine`%d' bodyLine=`%d'\n",
// current->name.data(),current->inLine,current->bodyLine);
//printf("Adding entry `%s'\n",current->name.data());
previous = current;
current_root->addSubEntry(current);
current = new Entry ;
...
...
@@ -2470,7 +2473,9 @@ TITLE [tT][iI][tT][lL][eE]
current->startLine = yyLineNr ;
current->name = removeRedundantWhiteSpace(current->name);
if (current->name.isEmpty() && !isTypedef) // anonymous compound
{
current->name.sprintf("@%d",anonCount++);
}
curlyCount=0;
BEGIN( ReadBody ) ;
}
...
...
@@ -2652,9 +2657,18 @@ TITLE [tT][iI][tT][lL][eE]
lineCount();
}
<FindMembers>"{" {
current->type.resize(0);
current->name.resize(0);
current->args.resize(0);
if (insideJava && current->stat && current->name.isEmpty() && current->type.isEmpty())
{
// static Java initializer
needsSemi = FALSE;
}
else
{
needsSemi = TRUE;
}
current->type.resize(0);
current->name.resize(0);
current->args.resize(0);
current->argList->clear();
curlyCount=0;
BEGIN( SkipCurlyBlock );
...
...
@@ -4024,18 +4038,32 @@ static void parseCompounds(Entry *rt)
//printf("---> Inner block starts at line %d\n",yyLineNr);
//current->reset();
current = new Entry;
gstat = FALSE;
int ni=ce->name.findRev("::"); if (ni==-1) ni=0; else ni+=2;
// set default protection based on the compound type
if( ce->section==Entry::CLASS_SEC ) // class
{
current->protection = protection = Private ;
}
else if (ce->section == Entry::ENUM_SEC ) // enum
{
current->protection = protection = ce->protection;
else if (!ce->name.isEmpty() && ce->name.at(0)=='@') // anonymous union
}
else if (!ce->name.isEmpty() && ce->name.at(ni)=='@') // unnamed union or namespace
{
if (ce->section == Entry::NAMESPACE_SEC ) // unnamed namespace
{
current->stat = gstat = TRUE;
}
current->protection = protection = ce->protection;
}
else // named struct, union, or interface
{
current->protection = protection = Public ;
}
mtype = Method;
gstat = FALSE;
virt = Normal;
//printf("name=%s current->stat=%d gstat=%d\n",ce->name.data(),current->stat,gstat);
memberGroupId = NOGROUP;
...
...
src/util.cpp
View file @
c822eb3d
...
...
@@ -243,9 +243,11 @@ QCString replaceAnonymousScopes(const QCString &s)
// strip annonymous left hand side part of the scope
QCString
stripAnonymousNamespaceScope
(
const
QCString
&
s
)
{
#if 0
int oi=0,i=0,p=0;
if
(
s
.
isEmpty
())
return
s
;
while
(
s
.
at
(
p
)
==
'@'
&&
(
i
=
s
.
find
(
"::"
,
p
))
!=-
1
&&
p=s.find('@');
if (p==-1) return s;
while (s.at(p)=='@' && (i=s.find("::@",p))!=-1 &&
Doxygen::namespaceDict[s.left(i)]!=0) { oi=i; p=i+2; }
if (oi==0)
{
...
...
@@ -257,6 +259,32 @@ QCString stripAnonymousNamespaceScope(const QCString &s)
//printf("stripAnonymousNamespaceScope(`%s')=`%s'\n",s.data(),s.right(s.length()-oi-2).data());
return s.right(s.length()-oi-2);
}
#endif
int
i
,
p
=
0
,
l
;
QCString
newScope
;
while
((
i
=
getScopeFragment
(
s
,
p
,
&
l
))
!=-
1
)
{
//printf("Scope fragment %s\n",s.mid(i,l).data());
if
(
Doxygen
::
namespaceDict
[
s
.
left
(
i
+
l
)]
!=
0
)
{
if
(
s
.
at
(
i
)
!=
'@'
)
{
if
(
!
newScope
.
isEmpty
())
newScope
+=
"::"
;
newScope
+=
s
.
mid
(
i
,
l
);
}
}
else
{
if
(
!
newScope
.
isEmpty
())
newScope
+=
"::"
;
newScope
+=
s
.
right
(
s
.
length
()
-
i
);
goto
done
;
}
p
=
i
+
l
;
}
done:
//printf("stripAnonymousNamespaceScope(`%s')=`%s'\n",s.data(),newScope.data());
return
newScope
;
}
void
writePageRef
(
OutputDocInterface
&
od
,
const
char
*
cn
,
const
char
*
mn
)
...
...
@@ -1134,7 +1162,7 @@ void trimBaseClassScope(BaseClassList *bcl,QCString &s,int level=0)
* scope. If neither or both have a namespace scope, t1 and t2 remain
* unchanged.
*/
static
void
trimNamespaceScope
(
QCString
&
t1
,
QCString
&
t2
)
static
void
trimNamespaceScope
(
QCString
&
t1
,
QCString
&
t2
,
const
QCString
&
nsName
)
{
int
p1
=
t1
.
length
();
int
p2
=
t2
.
length
();
...
...
@@ -1149,20 +1177,54 @@ static void trimNamespaceScope(QCString &t1,QCString &t2)
if
(
i1
!=-
1
&&
i2
==-
1
)
// only t1 has a scope
{
QCString
scope
=
t1
.
left
(
i1
);
if
(
!
scope
.
isEmpty
()
&&
Doxygen
::
namespaceDict
[
scope
]
!=
0
)
// scope is a namespace
int
so
=
nsName
.
length
();
do
{
t1
=
t1
.
right
(
t1
.
length
()
-
i1
-
2
);
return
;
QCString
fullScope
=
nsName
.
left
(
so
);
if
(
!
fullScope
.
isEmpty
()
&&
!
scope
.
isEmpty
())
fullScope
+=
"::"
;
fullScope
+=
scope
;
if
(
!
fullScope
.
isEmpty
()
&&
Doxygen
::
namespaceDict
[
fullScope
]
!=
0
)
// scope is a namespace
{
t1
=
t1
.
right
(
t1
.
length
()
-
i1
-
2
);
return
;
}
if
(
so
==
0
)
{
so
=-
1
;
}
else
if
((
so
=
nsName
.
findRev
(
"::"
,
so
-
1
))
==-
1
)
{
so
=
0
;
}
}
while
(
so
>=
0
);
}
else
if
(
i1
==-
1
&&
i2
!=-
1
)
// only t2 has a scope
{
QCString
scope
=
t2
.
left
(
i2
);
if
(
!
scope
.
isEmpty
()
&&
Doxygen
::
namespaceDict
[
scope
]
!=
0
)
// scope is a namespace
int
so
=
nsName
.
length
();
do
{
t2
=
t2
.
right
(
t2
.
length
()
-
i2
-
2
);
return
;
QCString
fullScope
=
nsName
.
left
(
so
);
if
(
!
fullScope
.
isEmpty
()
&&
!
scope
.
isEmpty
())
fullScope
+=
"::"
;
fullScope
+=
scope
;
if
(
!
fullScope
.
isEmpty
()
&&
Doxygen
::
namespaceDict
[
fullScope
]
!=
0
)
// scope is a namespace
{
t2
=
t2
.
right
(
t2
.
length
()
-
i2
-
2
);
return
;
}
if
(
so
==
0
)
{
so
=-
1
;
}
else
if
((
so
=
nsName
.
findRev
(
"::"
,
so
-
1
))
==-
1
)
{
so
=
0
;
}
}
while
(
so
>=
0
);
}
p1
=
QMAX
(
i1
-
2
,
0
);
p2
=
QMAX
(
i2
-
2
,
0
);
...
...
@@ -1297,7 +1359,7 @@ static bool matchArgument(const Argument *srcA,const Argument *dstA,
// remove a namespace scope that is only in one type
// (assuming a using statement was used)
trimNamespaceScope
(
srcAType
,
dstAType
);
trimNamespaceScope
(
srcAType
,
dstAType
,
namespaceName
);
//QCString srcScope;
//QCString dstScope;
...
...
@@ -1521,7 +1583,7 @@ static void mergeArgument(Argument *srcA,Argument *dstA,
// remove a namespace scope that is only in one type
// (assuming a using statement was used)
trimNamespaceScope
(
srcAType
,
dstAType
);
trimNamespaceScope
(
srcAType
,
dstAType
,
namespaceName
);
//QCString srcScope;
...
...
src/xmlgen.cpp
View file @
c822eb3d
...
...
@@ -68,20 +68,16 @@ static inline void writeXMLString(QTextStream &t,const char *s)
}
static
void
writeXMLLink
(
QTextStream
&
t
,
const
char
*
compoundId
,
const
char
*
mem
Id
,
const
char
*
text
)
const
char
*
anchor
Id
,
const
char
*
text
)
{
if
(
memId
==
0
)
t
<<
"<ref idref=
\"
"
<<
compoundId
<<
"
\"
"
;
if
(
anchorId
)
{
t
<<
"<compoundref idref=
\"
"
<<
compoundId
<<
"
\"
>"
;
writeXMLString
(
t
,
text
);
t
<<
"</compoundref>"
;
}
else
{
t
<<
"<memberref idref=
\"
"
<<
compoundId
<<
"_1"
<<
memId
<<
"
\"
>"
;
writeXMLString
(
t
,
text
);
t
<<
"</memberref>"
;
t
<<
" anchor=
\"
"
<<
anchorId
<<
"
\"
"
;
}
t
<<
">"
;
writeXMLString
(
t
,
text
);
t
<<
"</ref>"
;
}
class
TextGeneratorXMLImpl
:
public
TextGeneratorIntf
...
...
@@ -218,11 +214,13 @@ class XMLGenerator : public OutputDocInterface
}
void
startItemList
()
{
startParMode
();
m_t
<<
"<itemizedlist>"
<<
endl
;;
m_inListStack
.
push
(
TRUE
);
}
void
startEnumList
()
{
startParMode
();
m_t
<<
"<orderedlist>"
;
m_inListStack
.
push
(
TRUE
);
}
...
...
@@ -295,7 +293,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startCodeFragment
()
{
end
ParMode
();
start
ParMode
();
m_t
<<
"<programlisting>"
;
}
void
endCodeFragment
()
...
...
@@ -304,7 +302,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startPreFragment
()
{
end
ParMode
();
start
ParMode
();
m_t
<<
"<programlisting>"
;
}
void
endPreFragment
()
...
...
@@ -313,11 +311,12 @@ class XMLGenerator : public OutputDocInterface
}
void
writeRuler
()
{
end
ParMode
();
start
ParMode
();
m_t
<<
"<hruler/>"
;
}
void
startDescription
()
{
startParMode
();
m_t
<<
"<variablelist>"
;
m_inListStack
.
push
(
TRUE
);
}
...
...
@@ -351,6 +350,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startDescList
(
SectionTypes
st
)
{
startParMode
();
m_t
<<
"<simplesect kind=
\"
"
<<
sectionTypeToString
(
st
);
m_t
<<
"
\"
><title>"
;
}
...
...
@@ -361,6 +361,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startParamList
(
ParamListTypes
t
)
{
startParMode
();
QCString
kind
;
switch
(
t
)
{
...
...
@@ -380,7 +381,6 @@ class XMLGenerator : public OutputDocInterface
{
m_t
<<
"</title>"
;
if
(
!
m_inParamList
)
startNestedPar
();
printf
(
"endDescTitle %d
\n
"
,
m_inParamList
);
}
void
writeDescItem
()
{
}
void
startDescTable
()
{
}
...
...
@@ -405,11 +405,12 @@ class XMLGenerator : public OutputDocInterface
}
void
lineBreak
()
{
startParMode
();
m_t
<<
"<linebreak/>"
;
// non docbook
}
void
writeNonBreakableSpace
(
int
num
)
{
int
i
;
for
(
i
=
0
;
i
<
num
;
i
++
)
m_t
<<
"
<nonbreakablespace/>"
;
// non docbook
int
i
;
for
(
i
=
0
;
i
<
num
;
i
++
)
m_t
<<
"
"
;
}
//// TODO: translate these as well....
...
...
@@ -440,6 +441,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startHtmlLink
(
const
char
*
url
)
{
startParMode
();
m_t
<<
"<ulink url=
\"
"
<<
url
<<
"
\"
>"
;
}
void
endHtmlLink
()
...
...
@@ -448,6 +450,7 @@ class XMLGenerator : public OutputDocInterface
}
void
writeMailLink
(
const
char
*
url
)
{
startParMode
();
m_t
<<
"<email>"
;
docify
(
url
);
m_t
<<
"</email>"
;
...
...
@@ -478,6 +481,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startCenter
()
{
startParMode
();
m_t
<<
"<center>"
;
// non docbook
}
void
endCenter
()
...
...
@@ -486,6 +490,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startSmall
()
{
startParMode
();
m_t
<<
"<small>"
;
// non docbook
}
void
endSmall
()
...
...
@@ -494,6 +499,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startSubscript
()
{
startParMode
();
m_t
<<
"<subscript>"
;
}
void
endSubscript
()
...
...
@@ -502,6 +508,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startSuperscript
()
{
startParMode
();
m_t
<<
"<superscript>"
;
}
void
endSuperscript
()
...
...
@@ -510,6 +517,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startTable
(
int
cols
)
{
startParMode
();
m_t
<<
"<table><tgroup cols=
\"
"
<<
cols
<<
"
\"
><tbody>
\n
"
;
}
void
endTable
()
...
...
@@ -554,11 +562,13 @@ class XMLGenerator : public OutputDocInterface
}
void
writeAnchor
(
const
char
*
id
,
const
char
*
name
)
{
startParMode
();
m_t
<<
"<anchor id=
\"
"
<<
id
<<
"_"
<<
name
<<
"
\"
/>"
;
}
void
writeSectionRef
(
const
char
*
,
const
char
*
id
,
const
char
*
name
,
const
char
*
text
)
{
startParMode
();
m_t
<<
"<link linkend=
\"
"
<<
id
<<
"_"
<<
name
<<
"
\"
>"
;
docify
(
text
);
m_t
<<
"</link>"
;
...
...
@@ -569,6 +579,7 @@ class XMLGenerator : public OutputDocInterface
}
void
addIndexItem
(
const
char
*
primaryie
,
const
char
*
secondaryie
)
{
startParMode
();
m_t
<<
"<indexentry><primaryie>"
;
docify
(
primaryie
);
m_t
<<
"</primaryie><secondaryie>"
;
...
...
@@ -577,12 +588,14 @@ class XMLGenerator : public OutputDocInterface
}
void
writeFormula
(
const
char
*
id
,
const
char
*
text
)
{
startParMode
();
m_t
<<
"<formula id=
\"
"
<<
id
<<
"
\"
>"
;
// non Docbook
docify
(
text
);
m_t
<<
"</formula>"
;
}
void
startImage
(
const
char
*
name
,
const
char
*
size
,
bool
caption
)
{
startParMode
();
m_t
<<
"<image name=
\"
"
<<
name
<<
"
\"
size=
\"
"
<<
size
<<
"
\"
caption=
\"
"
<<
(
caption
?
"1"
:
"0"
)
<<
"
\"
>"
;
// non docbook
}
...
...
@@ -592,6 +605,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startDotFile
(
const
char
*
name
,
bool
caption
)
{
startParMode
();
m_t
<<
"<dotfile name=
\"
"
<<
name
<<
"
\"
"
<<
"caption=
\"
"
<<
(
caption
?
"1"
:
"0"
)
<<
"
\"
>"
;
// non docbook
}
...
...
@@ -601,6 +615,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startTextLink
(
const
char
*
name
,
const
char
*
anchor
)
{
startParMode
();
m_t
<<
"<ulink url=
\"
"
<<
name
<<
"#"
<<
anchor
<<
"
\"
>"
;
}
void
endTextLink
()
...
...
@@ -615,6 +630,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startCodeLine
()
{
startParMode
();
m_t
<<
"<linenumber>"
;
// non DocBook
}
void
endCodeLine
()
...
...
@@ -623,6 +639,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startCodeAnchor
(
const
char
*
id
)
{
startParMode
();
m_t
<<
"<anchor id=
\"
"
<<
id
<<
"
\"
>"
;
}
void
endCodeAnchor
()
...
...
@@ -631,7 +648,7 @@ class XMLGenerator : public OutputDocInterface
}
void
startFontClass
(
const
char
*
colorClass
)
{
m_t
<<
"<highlight class=
\"
"
<<
colorClass
<<
"
\"
"
;
// non DocBook
m_t
<<
"<highlight class=
\"
"
<<
colorClass
<<
"
\"
>
"
;
// non DocBook
}
void
endFontClass
()
{
...
...
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