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
9d4d8095
Commit
9d4d8095
authored
Jan 05, 2002
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.2.13.1
parent
ad53b7be
Changes
51
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
51 changed files
with
1901 additions
and
838 deletions
+1901
-838
Doxyfile
Doxyfile
+2
-2
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
doxygen.dtd
addon/doxmlparser/doxygen.dtd
+175
-50
doxmlintf.h
addon/doxmlparser/include/doxmlintf.h
+46
-6
compoundhandler.cpp
addon/doxmlparser/src/compoundhandler.cpp
+2
-2
dochandler.cpp
addon/doxmlparser/src/dochandler.cpp
+75
-20
dochandler.h
addon/doxmlparser/src/dochandler.h
+133
-74
doxmlintf.h
addon/doxmlparser/src/doxmlintf.h
+46
-6
linkedtexthandler.cpp
addon/doxmlparser/src/linkedtexthandler.cpp
+6
-1
main.cpp
addon/doxmlparser/test/main.cpp
+198
-0
Makefile.in
addon/doxywizard/Makefile.in
+9
-2
Makefile.win_nmake.in
addon/doxywizard/Makefile.win_nmake.in
+2
-1
doxywizard.cpp
addon/doxywizard/doxywizard.cpp
+3
-3
doxywizard.pro.in
addon/doxywizard/doxywizard.pro.in
+5
-7
configure
configure
+7
-1
htmlcmds.doc
doc/htmlcmds.doc
+2
-0
language.doc
doc/language.doc
+9
-8
lists.doc
doc/lists.doc
+29
-0
maintainers.txt
doc/maintainers.txt
+2
-1
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
classdef.cpp
src/classdef.cpp
+53
-67
config.l
src/config.l
+1
-0
doc.l
src/doc.l
+111
-36
dot.cpp
src/dot.cpp
+25
-8
dot.h
src/dot.h
+4
-2
doxygen.cpp
src/doxygen.cpp
+3
-3
groupdef.cpp
src/groupdef.cpp
+5
-4
groupdef.h
src/groupdef.h
+1
-1
htmlgen.cpp
src/htmlgen.cpp
+1
-0
htmlgen.h
src/htmlgen.h
+8
-2
index.cpp
src/index.cpp
+43
-81
latexgen.h
src/latexgen.h
+19
-3
mangen.h
src/mangen.h
+4
-2
memberdef.cpp
src/memberdef.cpp
+13
-0
memberdef.h
src/memberdef.h
+4
-2
membergroup.cpp
src/membergroup.cpp
+5
-5
membergroup.h
src/membergroup.h
+2
-2
outputgen.h
src/outputgen.h
+4
-2
outputlist.h
src/outputlist.h
+8
-4
pre.l
src/pre.l
+10
-3
rtfgen.h
src/rtfgen.h
+8
-6
scanner.l
src/scanner.l
+13
-35
translator.cpp
src/translator.cpp
+78
-0
translator.h
src/translator.h
+3
-0
translator_jp.h
src/translator_jp.h
+648
-347
translator_sk.h
src/translator_sk.h
+14
-3
util.cpp
src/util.cpp
+23
-11
util.h
src/util.h
+4
-1
xmlgen.cpp
src/xmlgen.cpp
+29
-18
No files found.
Doxyfile
View file @
9d4d8095
...
...
@@ -140,7 +140,7 @@ MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML =
NO
GENERATE_XML =
YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
...
...
@@ -168,7 +168,7 @@ PERL_PATH = /usr/bin/perl
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
HAVE_DOT =
NO
HAVE_DOT =
YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
TEMPLATE_RELATIONS = YES
...
...
INSTALL
View file @
9d4d8095
DOXYGEN Version 1.2.13
DOXYGEN Version 1.2.13
.1
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (
29 December 2001
)
Dimitri van Heesch (
05 January 2002
)
README
View file @
9d4d8095
DOXYGEN Version 1.2.13
DOXYGEN Version 1.2.13
.1
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) (
29 December 2001
)
Dimitri van Heesch (dimitri@stack.nl) (
05 January 2002
)
VERSION
View file @
9d4d8095
1.2.13
1.2.13
.1
addon/doxmlparser/doxygen.dtd
View file @
9d4d8095
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<!-- NOTE: THIS DTD IS NOT UP TO DATE!!! DO NOT DEPEND ON IT -->
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- DTD describing the grammar used in doxygen's XML output -->
<!-- Version 0.1 December 25, 2001 -->
<!-- Defined by Angelo Hulshout, based on works of Dimitri van Heesch -->
<!-- standard character entities -->
<!ENTITY lt "&#60;">
...
...
@@ -12,26 +10,70 @@
<!ENTITY apos "'">
<!ENTITY quot """>
<!-- required attributes for compounds -->
<!--
Document root
-->
<!ELEMENT doxygen (compounddef)*>
<!--
Compound related entities and elements
-->
<!ENTITY % compound-req.att
'id ID #REQUIRED
type
(group|file|namespace|
kind
(group|file|namespace|
class|struct|union|
interface|dispinterface|
valuetype|library) #REQUIRED'
>
<!-- required attributes for references -->
<!ENTITY % ref-req.att 'idref IDREF #REQUIRED'
>
<!-- required attributes for inheritance relations -->
<!ENTITY % inheritcompref-req.att
'%ref-req.att;
prot (public|protected|private) #REQUIRED
virt (non-virtual|virtual) #REQUIRED'
>
<!ELEMENT compounddef (compoundname,
basecompoundref*,
derivedcompoundref*,
sectiondef*,
briefdescription,
detaileddescription,
inheritancegraph?,
collaborationgraph?,
programlisting?,
sourcecode?,
location?
)
>
<!ATTLIST compounddef %compound-req.att;>
<!ELEMENT compoundname (#PCDATA)>
<!ELEMENT location (#PCDATA)>
<!ATTLIST location file CDATA #REQUIRED line CDATA #REQUIRED >
<!ELEMENT compoundref EMPTY>
<!ATTLIST compoundref %ref-req.att;>
<!ELEMENT basecompoundref EMPTY>
<!ATTLIST basecompoundref %inheritcompref-req.att;>
<!ELEMENT derivedcompoundref EMPTY>
<!ATTLIST derivedcompoundref %inheritcompref-req.att;>
<!ELEMENT memberdef (#PCDATA|type|name|briefdescription|detaileddescription|location|param|initializer|enumvalue)*>
<!ATTLIST memberdef kind (define|property|variable|typedef|enum|function|signal|prototype|friend|dcop|slot) #REQUIRED id CDATA #REQUIRED virt (normal|virtual|pure-virtual) #REQUIRED prot (public|protected|private) #REQUIRED>
<!ELEMENT briefdescription (#PCDATA|para)*>
<!ELEMENT detaileddescription (#PCDATA|para)*>
<!--
Compound attributes related entities and elements
-->
<!-- required attributes for member sections -->
<!ENTITY % sec-req.att '
type
(user
<!ENTITY % sec-req.att '
kind
(user
|public-type
|public-func
|public-attrib
...
...
@@ -59,65 +101,148 @@
) #REQUIRED
'
>
<!-- required attributes for members -->
<!ENTITY % mem-req.att 'id ID #REQUIRED'>
<!-- optional attributes for function -->
<!ENTITY % func-opt.att 'virt (virtual|pure-virtual) #IMPLIED'>
<!-- elements -->
<!ELEMENT doxygen (compounddef)*>
<!ELEMENT compounddef (compoundname,
basecompoundref*,
derivedcompoundref*,
sectiondef*,
briefdescription,
detaileddescription,
inheritancegraph?,
collaborationgraph?,
sourcecode?
)
>
<!ATTLIST compounddef %compound-req.att;>
<!ELEMENT compoundref (#PCDATA)>
<!ATTLIST compoundref %ref-req.att;>
<!ELEMENT memberref (#PCDATA)>
<!ATTLIST memberref %ref-req.att;>
<!ELEMENT basecompoundref EMPTY>
<!ATTLIST basecompoundref %inheritcompref-req.att;>
<!ELEMENT derivedcompoundref EMPTY>
<!ATTLIST derivedcompoundref %inheritcompref-req.att;>
<!ELEMENT sectionlist (sectiondef)+>
<!ELEMENT sectiondef (memberlist)>
<!ELEMENT sectiondef (memberdef|memberlist)*>
<!ATTLIST sectiondef %sec-req.att;>
<!ELEMENT memberlist (functiondef|variabledef|typedef|definedef|enumdef)+>
<!ELEMENT functiondef (type?,name,paramlist)>
<!ELEMENT functiondef (type?,name,parameterlist)>
<!ATTLIST functiondef %mem-req.att; %func-opt.att;>
<!ELEMENT variabledef (type,name,array?,initializer?)>
<!ATTLIST variabledef %mem-req.att;>
<!ELEMENT parameterlist (title|parametername|parameterdescription)*>
<!ATTLIST parameterlist kind (param|retval|exception) #REQUIRED>
<!ELEMENT param (attributes?,type?,declname?,defname?,array?,defval?)>
<!ELEMENT parametername (#PCDATA)>
<!ELEMENT parameterdescription (#PCDATA|para)*>
<!ELEMENT defparameterlist (defarg)*>
<!ELEMENT defarg (#PCDATA)>
<!--
Programming language declaration related entities and elements
-->
<!ELEMENT name (#PCDATA)>
<!ELEMENT typedef (type,name)>
<!ATTLIST typedef %mem-req.att;>
<!ELEMENT definedef (name,defparamlist?,initializer?)>
<!ELEMENT definedef (name,defparameterlist?,initializer?)>
<!ATTLIST definedef %mem-req.att;>
<!ELEMENT enumdef (name,enumvaluelist)>
<!ATTLIST enumdef %mem-req.att;>
<!ELEMENT slotdef (type,name,paramlist)>
<!ELEMENT slotdef (type,name,parameterlist)>
<!ATTLIST slotdef %mem-req.att;>
<!ELEMENT signaldef (type,name,paramlist)>
<!ELEMENT signaldef (type,name,parameterlist)>
<!ATTLIST signaldef %mem-req.att;>
<!ELEMENT paramlist (param)*>
<!ELEMENT param (attributes?,type,declname?,defname?,array?,defval?)>
<!ELEMENT defparamlist (defarg)*>
<!ELEMENT defarg (#PCDATA)>
<!ELEMENT enumvaluelist (enumvalue)*>
<!ELEMENT enumvalue (name,initializer?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT compoundname (#PCDATA)>
<!ELEMENT declname (#PCDATA)>
<!ELEMENT defname (#PCDATA)>
<!ELEMENT type (#PCDATA|memberref|compoundref|compounddef)*>
<!ELEMENT type (#PCDATA|memberref|compoundref|compounddef|ref)*>
<!ELEMENT defval (#PCDATA|memberref|compoundref)*>
<!ELEMENT initializer (#PCDATA|memberref|compoundref)*>
<!ELEMENT initializer (#PCDATA|memberref|compoundref|ref)*>
<!ELEMENT array (#PCDATA)>
<!ELEMENT attributes (#PCDATA)>
<!--
Graph related entities and elements
-->
<!ELEMENT collaborationgraph (node)*>
<!ELEMENT inheritancegraph (node)*>
<!ELEMENT node (label|link|childnode)*>
<!ATTLIST node id CDATA #REQUIRED>
<!ELEMENT childnode (edgelabel)*>
<!ATTLIST childnode id CDATA #REQUIRED relation CDATA #REQUIRED>
<!ELEMENT label (#PCDATA)>
<!ELEMENT link EMPTY>
<!ATTLIST link id CDATA #REQUIRED>
<!ELEMENT edgelabel (#PCDATA)>
<!--
Source code listing related entities and elements
-->
<!ELEMENT codeline (#PCDATA|highlight|ref)*>
<!ELEMENT linenumber (#PCDATA|anchor)*>
<!ATTLIST linenumber line CDATA #IMPLIED refid CDATA #IMPLIED>
<!ELEMENT sourcecode (linenumber|codeline|highlight|ref)*>
<!ELEMENT itemizedlist (listitem)*>
<!ELEMENT listitem (#PCDATA|para)*>
<!ELEMENT programlisting (#PCDATA|linenumber|codeline|linebreak|highlight)*>
<!--
Hypertext related entities and elements
-->
<!ELEMENT ulink (#PCDATA)>
<!ATTLIST ulink url CDATA #REQUIRED>
<!ELEMENT anchor (ref)>
<!ATTLIST anchor id CDATA #REQUIRED>
<!ELEMENT ref (#PCDATA)>
<!ATTLIST ref idref CDATA #REQUIRED anchor CDATA #IMPLIED>
<!--
Documentation layout entities and elements
-->
<!--ELEMENT highlight (#PCDATA|ref)*-->
<!ELEMENT highlight ANY>
<!ATTLIST highlight class (preprocessor|keyword|keywordtype|keywordflow|stringliteral|charliteral|comment) #REQUIRED>
<!ELEMENT linebreak EMPTY>
<!--ELEMENT simplesect (title|para)*-->
<!ELEMENT simplesect ANY>
<!ATTLIST simplesect kind (see|return|author|version|since|date|bug|note|warning|par|deprecated|pre|post|invariant|remark|attention|todo|test|rcs|enumvalues|examples) #REQUIRED>
<!--ELEMENT computeroutput (#PCDATA)-->
<!ELEMENT computeroutput ANY>
<!--ELEMENT emphasis (#PCDATA|ref)*-->
<!ELEMENT emphasis ANY>
<!--ELEMENT title (#PCDATA|ref)*-->
<!ELEMENT title ANY>
<!--ELEMENT para (#PCDATA|computeroutput|ref|emphasis|parameterlist|simplesect|ulink|programlisting|itemizedlist|linebreak)*-->
<!ELEMENT para ANY>
addon/doxmlparser/include/doxmlintf.h
View file @
9d4d8095
...
...
@@ -22,7 +22,9 @@ class ILT_Text : public ILinkedText
class
ILT_Ref
:
public
ILinkedText
{
public
:
enum
TargetKind
{
Member
,
Compound
};
virtual
QString
id
()
const
=
0
;
virtual
TargetKind
targetKind
()
const
=
0
;
virtual
QString
external
()
const
=
0
;
virtual
QString
text
()
const
=
0
;
};
...
...
@@ -104,8 +106,8 @@ class IDoc
Para
,
// 0 -> IDocPara
Text
,
// 1 -> IDocText
MarkupModifier
,
// 2 -> IDocMarkupModifier
ItemizedList
,
// 3 -> IDocList
OrderedList
,
// 4 -> IDocList
ItemizedList
,
// 3 -> IDoc
Itemized
List
OrderedList
,
// 4 -> IDoc
Ordered
List
ListItem
,
// 5 -> IDocListItem
ParameterList
,
// 6 -> IDocParameterList
Parameter
,
// 7 -> IDocParameter
...
...
@@ -168,36 +170,74 @@ class IDocText : public IDocMarkup
class
IDocMarkupModifier
:
public
IDoc
{
public
:
virtual
bool
enabled
()
const
=
0
;
virtual
int
markup
()
const
=
0
;
};
class
IDocItemizedList
:
public
IDoc
{
public
:
virtual
IDocIterator
*
elements
()
const
=
0
;
};
class
IDocList
:
public
IDoc
class
IDoc
Ordered
List
:
public
IDoc
{
public
:
virtual
IDocIterator
*
elements
()
const
=
0
;
};
class
IDocListItem
:
public
IDoc
{
public
:
virtual
IDocIterator
*
contents
()
const
=
0
;
};
class
IDocParameterList
:
public
IDoc
{
public
:
enum
Types
{
Param
,
RetVal
,
Exception
};
virtual
Types
listType
()
const
=
0
;
virtual
IDocIterator
*
params
()
const
=
0
;
};
class
IDocParameter
:
public
IDoc
{
public
:
virtual
QString
name
()
const
=
0
;
virtual
IDocPara
*
description
()
const
=
0
;
};
class
IDoc
SimpleSect
:
public
IDoc
class
IDoc
Title
:
public
IDoc
{
public
:
virtual
IDocIterator
*
title
()
const
=
0
;
};
class
IDoc
Title
:
public
IDoc
class
IDoc
SimpleSect
:
public
IDoc
{
public
:
virtual
IDocIterator
*
title
()
const
=
0
;
enum
Types
{
Invalid
=
0
,
See
,
Return
,
Author
,
Version
,
Since
,
Date
,
Bug
,
Note
,
Warning
,
Par
,
Deprecated
,
Pre
,
Post
,
Invar
,
Remark
,
Attention
,
Todo
,
Test
,
RCS
,
EnumValues
,
Examples
};
virtual
Types
sectionType
()
const
=
0
;
virtual
IDocTitle
*
title
()
const
=
0
;
virtual
IDocPara
*
description
()
const
=
0
;
};
class
IDocRef
:
public
IDoc
{
public
:
enum
TargetKind
{
Member
,
Compound
};
virtual
QString
id
()
const
=
0
;
virtual
TargetKind
targetKind
()
const
=
0
;
virtual
QString
external
()
const
=
0
;
virtual
QString
text
()
const
=
0
;
};
class
IDocVariableList
:
public
IDoc
...
...
addon/doxmlparser/src/compoundhandler.cpp
View file @
9d4d8095
...
...
@@ -111,7 +111,7 @@ void CompoundHandler::endCompoundName()
void
CompoundHandler
::
addSuperClass
(
const
QXmlAttributes
&
attrib
)
{
SuperClass
*
sc
=
new
SuperClass
(
attrib
.
value
(
"
idref
"
),
attrib
.
value
(
"
refid
"
),
attrib
.
value
(
"prot"
),
attrib
.
value
(
"virt"
)
);
...
...
@@ -125,7 +125,7 @@ void CompoundHandler::addSuperClass(const QXmlAttributes& attrib)
void
CompoundHandler
::
addSubClass
(
const
QXmlAttributes
&
attrib
)
{
SubClass
*
sc
=
new
SubClass
(
attrib
.
value
(
"
idref
"
),
attrib
.
value
(
"
refid
"
),
attrib
.
value
(
"prot"
),
attrib
.
value
(
"virt"
)
);
...
...
addon/doxmlparser/src/dochandler.cpp
View file @
9d4d8095
...
...
@@ -232,47 +232,85 @@ void ListItemHandler::startParagraph(const QXmlAttributes& attrib)
m_children
.
append
(
parHandler
);
}
IDocIterator
*
ListItemHandler
::
contents
()
const
{
return
new
ListItemIterator
(
*
this
);
}
//----------------------------------------------------------------------
// ListHandler
//
Ordered
ListHandler
//----------------------------------------------------------------------
ListHandler
::
ListHandler
(
Kind
k
,
IBaseHandler
*
parent
)
:
m_parent
(
parent
),
m_kind
(
k
)
OrderedListHandler
::
OrderedListHandler
(
IBaseHandler
*
parent
)
:
m_parent
(
parent
)
{
m_children
.
setAutoDelete
(
TRUE
);
const
char
*
endListName
=
0
;
switch
(
k
)
{
case
ItemizedList
:
endListName
=
"itemizedlist"
;
break
;
case
OrderedList
:
endListName
=
"orderedlist"
;
break
;
default
:
ASSERT
(
0
);
}
addEndHandler
(
endListName
,
this
,
&
ListHandler
::
endList
);
addEndHandler
(
"orderedlist"
,
this
,
&
OrderedListHandler
::
endOrderedList
);
addStartHandler
(
"listitem"
,
this
,
&
OrderedListHandler
::
startOrderedListItem
);
}
addStartHandler
(
"listitem"
,
this
,
&
ListHandler
::
startListItem
);
OrderedListHandler
::~
OrderedListHandler
()
{
}
void
OrderedListHandler
::
startOrderedList
(
const
QXmlAttributes
&
/*attrib*/
)
{
m_parent
->
setDelegate
(
this
);
}
ListHandler
::~
ListHandler
()
void
OrderedListHandler
::
endOrderedList
()
{
m_parent
->
setDelegate
(
0
);
}
void
ListHandler
::
startList
(
const
QXmlAttributes
&
/*attrib*/
)
void
OrderedListHandler
::
startOrderedListItem
(
const
QXmlAttributes
&
attrib
)
{
ListItemHandler
*
liHandler
=
new
ListItemHandler
(
this
);
liHandler
->
startListItem
(
attrib
);
m_children
.
append
(
liHandler
);
}
IDocIterator
*
OrderedListHandler
::
elements
()
const
{
return
new
OrderedListIterator
(
*
this
);
}
//----------------------------------------------------------------------
// ItemizedListHandler
//----------------------------------------------------------------------
ItemizedListHandler
::
ItemizedListHandler
(
IBaseHandler
*
parent
)
:
m_parent
(
parent
)
{
m_children
.
setAutoDelete
(
TRUE
);
addEndHandler
(
"itemizedlist"
,
this
,
&
ItemizedListHandler
::
endItemizedList
);
addStartHandler
(
"listitem"
,
this
,
&
ItemizedListHandler
::
startItemizedListItem
);
}
ItemizedListHandler
::~
ItemizedListHandler
()
{
}
void
ItemizedListHandler
::
startItemizedList
(
const
QXmlAttributes
&
/*attrib*/
)
{
m_parent
->
setDelegate
(
this
);
}
void
ListHandler
::
en
dList
()
void
ItemizedListHandler
::
endItemize
dList
()
{
m_parent
->
setDelegate
(
0
);
}
void
ListHandler
::
start
ListItem
(
const
QXmlAttributes
&
attrib
)
void
ItemizedListHandler
::
startItemized
ListItem
(
const
QXmlAttributes
&
attrib
)
{
ListItemHandler
*
liHandler
=
new
ListItemHandler
(
this
);
liHandler
->
startListItem
(
attrib
);
m_children
.
append
(
liHandler
);
}
IDocIterator
*
ItemizedListHandler
::
elements
()
const
{
return
new
ItemizedListIterator
(
*
this
);
}
//----------------------------------------------------------------------
// ParameterHandler
//----------------------------------------------------------------------
...
...
@@ -372,6 +410,11 @@ void ParameterListHandler::startParameterDescription(const QXmlAttributes& attri
m_curParam
->
startParameterDescription
(
attrib
);
}
IDocIterator
*
ParameterListHandler
::
params
()
const
{
return
new
ParameterListIterator
(
*
this
);
}
//----------------------------------------------------------------------
// LinkHandler
//----------------------------------------------------------------------
...
...
@@ -1116,6 +1159,8 @@ TableHandler::TableHandler(IBaseHandler *parent)
m_children
.
setAutoDelete
(
TRUE
);
addEndHandler
(
"table"
,
this
,
&
TableHandler
::
endTable
);
addStartHandler
(
"row"
,
this
,
&
TableHandler
::
startRow
);
addStartHandler
(
"caption"
,
this
,
&
TableHandler
::
startCaption
);
addEndHandler
(
"caption"
,
this
,
&
TableHandler
::
endCaption
);
}
TableHandler
::~
TableHandler
()
...
...
@@ -1141,6 +1186,16 @@ void TableHandler::startRow(const QXmlAttributes& attrib)
m_children
.
append
(
rh
);
}
void
TableHandler
::
startCaption
(
const
QXmlAttributes
&
/*attrib*/
)
{
m_curString
=
""
;
}
void
TableHandler
::
endCaption
()
{
m_caption
=
m_curString
;
}
//----------------------------------------------------------------------
// ParagraphHandler
//----------------------------------------------------------------------
...
...
@@ -1195,16 +1250,16 @@ void ParagraphHandler::endParagraph()
void
ParagraphHandler
::
startItemizedList
(
const
QXmlAttributes
&
attrib
)
{
addTextNode
();
ListHandler
*
listHandler
=
new
ListHandler
(
ItemizedList
,
this
);
listHandler
->
startList
(
attrib
);
ItemizedListHandler
*
listHandler
=
new
ItemizedListHandler
(
this
);
listHandler
->
start
Itemized
List
(
attrib
);
m_children
.
append
(
listHandler
);
}
void
ParagraphHandler
::
startOrderedList
(
const
QXmlAttributes
&
attrib
)
{
addTextNode
();
ListHandler
*
listHandler
=
new
ListHandler
(
OrderedList
,
this
);
listHandler
->
startList
(
attrib
);
OrderedListHandler
*
listHandler
=
new
OrderedListHandler
(
this
);
listHandler
->
start
Ordered
List
(
attrib
);
m_children
.
append
(
listHandler
);
}
...
...
addon/doxmlparser/src/dochandler.h
View file @
9d4d8095
This diff is collapsed.
Click to expand it.
addon/doxmlparser/src/doxmlintf.h
View file @
9d4d8095
...
...
@@ -22,7 +22,9 @@ class ILT_Text : public ILinkedText
class
ILT_Ref
:
public
ILinkedText
{
public
:
enum
TargetKind
{
Member
,
Compound
};
virtual
QString
id
()
const
=
0
;
virtual
TargetKind
targetKind
()
const
=
0
;
virtual
QString
external
()
const
=
0
;
virtual
QString
text
()
const
=
0
;
};
...
...
@@ -104,8 +106,8 @@ class IDoc
Para
,
// 0 -> IDocPara
Text
,
// 1 -> IDocText
MarkupModifier
,
// 2 -> IDocMarkupModifier
ItemizedList
,
// 3 -> IDocList
OrderedList
,
// 4 -> IDocList
ItemizedList
,
// 3 -> IDoc
Itemized
List
OrderedList
,
// 4 -> IDoc
Ordered
List
ListItem
,
// 5 -> IDocListItem
ParameterList
,
// 6 -> IDocParameterList
Parameter
,
// 7 -> IDocParameter
...
...
@@ -168,36 +170,74 @@ class IDocText : public IDocMarkup
class
IDocMarkupModifier
:
public
IDoc
{
public
:
virtual
bool
enabled
()
const
=
0
;
virtual
int
markup
()
const
=
0
;
};
class
IDocItemizedList
:
public
IDoc
{
public
:
virtual
IDocIterator
*
elements
()
const
=
0
;
};
class
IDocList
:
public
IDoc
class
IDoc
Ordered
List
:
public
IDoc
{
public
:
virtual
IDocIterator
*
elements
()
const
=
0
;
};
class
IDocListItem
:
public
IDoc
{
public
:
virtual
IDocIterator
*
contents
()
const
=
0
;
};
class
IDocParameterList
:
public
IDoc
{
public
:
enum
Types
{
Param
,
RetVal
,
Exception
};
virtual
Types
listType
()
const
=
0
;
virtual
IDocIterator
*
params
()
const
=
0
;
};
class
IDocParameter
:
public
IDoc
{
public
:
virtual
QString
name
()
const
=
0
;
virtual
IDocPara
*
description
()
const
=
0
;
};
class
IDoc
SimpleSect
:
public
IDoc
class
IDoc
Title
:
public
IDoc
{
public
:
virtual
IDocIterator
*
title
()
const
=
0
;
};
class
IDoc
Title
:
public
IDoc
class
IDoc
SimpleSect
:
public
IDoc
{
public
:
virtual
IDocIterator
*
title
()
const
=
0
;
enum
Types
{
Invalid
=
0
,
See
,
Return
,
Author
,
Version
,
Since
,
Date
,
Bug
,
Note
,
Warning
,
Par
,
Deprecated
,
Pre
,
Post
,
Invar
,
Remark
,
Attention
,
Todo
,
Test
,
RCS
,
EnumValues
,
Examples
};
virtual
Types
sectionType
()
const
=
0
;
virtual
IDocTitle
*
title
()
const
=
0
;
virtual
IDocPara
*
description
()
const
=
0
;
};
class
IDocRef
:
public
IDoc
{
public
:
enum
TargetKind
{
Member
,
Compound
};
virtual
QString
id
()
const
=
0
;
virtual
TargetKind
targetKind
()
const
=
0
;
virtual
QString
external
()
const
=
0
;
virtual
QString
text
()
const
=
0
;
};
class
IDocVariableList
:
public
IDoc
...
...
addon/doxmlparser/src/linkedtexthandler.cpp
View file @
9d4d8095
...
...
@@ -36,10 +36,12 @@ class LT_Ref : public ILT_Ref
void
setRefId
(
const
QString
&
refId
)
{
m_refId
=
refId
;
}
void
setText
(
const
QString
&
text
)
{
m_text
=
text
;
}
void
setExtId
(
const
QString
&
extId
)
{
m_extId
=
extId
;
}
void
setTargetKind
(
TargetKind
k
)
{
m_targetKind
=
k
;
}
// ILT_Ref
virtual
QString
text
()
const
{
return
m_text
;
}
virtual
QString
id
()
const
{
return
m_refId
;
}
virtual
TargetKind
targetKind
()
const
{
return
m_targetKind
;
}
virtual
QString
external
()
const
{
return
m_extId
;
}
virtual
Kind
kind
()
const
{
return
Kind_Ref
;
}
...
...
@@ -47,6 +49,7 @@ class LT_Ref : public ILT_Ref
QString
m_refId
;
QString
m_extId
;
QString
m_text
;
TargetKind
m_targetKind
;
};
LinkedTextHandler
::
LinkedTextHandler
(
IBaseHandler
*
parent
,
...
...
@@ -92,8 +95,10 @@ void LinkedTextHandler::startRef(const QXmlAttributes& attrib)
}
ASSERT
(
m_ref
==
0
);
m_ref
=
new
LT_Ref
;
m_ref
->
setRefId
(
attrib
.
value
(
"
idref
"
));
m_ref
->
setRefId
(
attrib
.
value
(
"
refid
"
));
m_ref
->
setExtId
(
attrib
.
value
(
"external"
));
ASSERT
(
attrib
.
value
(
"kindref"
)
==
"compound"
||
attrib
.
value
(
"kindref"
)
==
"member"
);
m_ref
->
setTargetKind
(
attrib
.
value
(
"kindref"
)
==
"compound"
?
Compound
:
Member
);
}
void
LinkedTextHandler
::
endRef
()
...
...
addon/doxmlparser/test/main.cpp
View file @
9d4d8095
...
...
@@ -60,6 +60,90 @@ void DumpDoc(IDoc *doc)
printf
(
" --- text `%s' markup=%d ---
\n
"
,
txt
->
text
().
data
(),
txt
->
markup
());
}
break
;
case
IDoc
:
:
MarkupModifier
:
{
IDocMarkupModifier
*
md
=
dynamic_cast
<
IDocMarkupModifier
*>
(
doc
);
ASSERT
(
md
!=
0
);
printf
(
" --- markup modifier enabled=%d markup=%d
\n
"
,
md
->
enabled
(),
md
->
markup
());
}
break
;
case
IDoc
:
:
ItemizedList
:
{
printf
(
" --- itemized list ---
\n
"
);
IDocItemizedList
*
list
=
dynamic_cast
<
IDocItemizedList
*>
(
doc
);
ASSERT
(
list
!=
0
);
IDocIterator
*
di
=
list
->
elements
();
IDoc
*
pdoc
;
for
(
di
->
toFirst
();(
pdoc
=
di
->
current
());
di
->
toNext
())
{
DumpDoc
(
pdoc
);
}
di
->
release
();
printf
(
" --- end itemized list ---
\n
"
);
}
break
;
case
IDoc
:
:
OrderedList
:
{
printf
(
" --- ordered list ---
\n
"
);
IDocOrderedList
*
list
=
dynamic_cast
<
IDocOrderedList
*>
(
doc
);
ASSERT
(
list
!=
0
);
IDocIterator
*
di
=
list
->
elements
();
IDoc
*
pdoc
;
for
(
di
->
toFirst
();(
pdoc
=
di
->
current
());
di
->
toNext
())
{
DumpDoc
(
pdoc
);
}
di
->
release
();
printf
(
" --- end ordered list ---
\n
"
);
}
break
;
case
IDoc
:
:
ListItem
:
{
printf
(
" --- list item ---
\n
"
);
IDocListItem
*
li
=
dynamic_cast
<
IDocListItem
*>
(
doc
);
ASSERT
(
li
!=
0
);
IDocIterator
*
di
=
li
->
contents
();
IDoc
*
pdoc
;
for
(
di
->
toFirst
();(
pdoc
=
di
->
current
());
di
->
toNext
())
{
DumpDoc
(
pdoc
);
}
di
->
release
();
printf
(
" --- end list item ---
\n
"
);
}
break
;
case
IDoc
:
:
ParameterList
:
{
IDocParameterList
*
list
=
dynamic_cast
<
IDocParameterList
*>
(
doc
);
printf
(
" --- parameter list type=%d ---
\n
"
,
list
->
listType
());
IDocListItem
*
li
=
dynamic_cast
<
IDocListItem
*>
(
doc
);
ASSERT
(
li
!=
0
);
IDocIterator
*
di
=
li
->
contents
();
IDoc
*
pdoc
;
for
(
di
->
toFirst
();(
pdoc
=
di
->
current
());
di
->
toNext
())
{
DumpDoc
(
pdoc
);
}
di
->
release
();
printf
(
" --- parameter list item ---
\n
"
);
ASSERT
(
list
!=
0
);
}
break
;
case
IDoc
:
:
Parameter
:
{
IDocParameter
*
par
=
dynamic_cast
<
IDocParameter
*>
(
doc
);
ASSERT
(
par
!=
0
);
printf
(
" --- parameter name=%s ---
\n
"
,
par
->
name
().
data
());
DumpDoc
(
par
->
description
());
printf
(
" --- end parameter ---
\n
"
);
}
break
;
case
IDoc
:
:
SimpleSect
:
{
IDocSimpleSect
*
ss
=
dynamic_cast
<
IDocSimpleSect
*>
(
ss
);
ASSERT
(
ss
!=
0
);
}
break
;
case
IDoc
:
:
Title
:
{
printf
(
" --- title ---
\n
"
);
...
...
@@ -74,6 +158,120 @@ void DumpDoc(IDoc *doc)
printf
(
" --- end title ---
\n
"
);
}
break
;
case
IDoc
:
:
Ref
:
{
IDocRef
*
ref
=
dynamic_cast
<
IDocRef
*>
(
ref
);
ASSERT
(
ref
!=
0
);
}
break
;
case
IDoc
:
:
VariableList
:
{
IDocVariableList
*
vl
=
dynamic_cast
<
IDocVariableList
*>
(
vl
);
ASSERT
(
vl
!=
0
);
}
break
;
case
IDoc
:
:
VariableListEntry
:
{
IDocVariableListEntry
*
vle
=
dynamic_cast
<
IDocVariableListEntry
*>
(
vle
);
ASSERT
(
vle
!=
0
);
}
break
;
case
IDoc
:
:
HRuler
:
{
IDocHRuler
*
hr
=
dynamic_cast
<
IDocHRuler
*>
(
hr
);
ASSERT
(
hr
!=
0
);
}
break
;
case
IDoc
:
:
LineBreak
:
{
IDocLineBreak
*
lb
=
dynamic_cast
<
IDocLineBreak
*>
(
lb
);
ASSERT
(
lb
!=
0
);
}
break
;
case
IDoc
:
:
ULink
:
{
IDocULink
*
ul
=
dynamic_cast
<
IDocULink
*>
(
ul
);
ASSERT
(
ul
!=
0
);
}
break
;
case
IDoc
:
:
EMail
:
{
IDocEMail
*
em
=
dynamic_cast
<
IDocEMail
*>
(
em
);
ASSERT
(
em
!=
0
);
}
break
;
case
IDoc
:
:
Link
:
{
IDocLink
*
lk
=
dynamic_cast
<
IDocLink
*>
(
lk
);
ASSERT
(
lk
!=
0
);
}
break
;
case
IDoc
:
:
ProgramListing
:
{
IDocProgramListing
*
pl
=
dynamic_cast
<
IDocProgramListing
*>
(
pl
);
ASSERT
(
pl
!=
0
);
}
break
;
case
IDoc
:
:
CodeLine
:
{
IDocCodeLine
*
cl
=
dynamic_cast
<
IDocCodeLine
*>
(
cl
);
ASSERT
(
cl
!=
0
);
}
break
;
case
IDoc
:
:
Highlight
:
{
IDocHighlight
*
hl
=
dynamic_cast
<
IDocHighlight
*>
(
hl
);
ASSERT
(
hl
!=
0
);
}
break
;
case
IDoc
:
:
Anchor
:
{
IDocAnchor
*
anc
=
dynamic_cast
<
IDocAnchor
*>
(
anc
);
ASSERT
(
anc
!=
0
);
}
break
;
case
IDoc
:
:
Formula
:
{
IDocFormula
*
fm
=
dynamic_cast
<
IDocFormula
*>
(
fm
);
ASSERT
(
fm
!=
0
);
}
break
;
case
IDoc
:
:
Image
:
{
IDocImage
*
img
=
dynamic_cast
<
IDocImage
*>
(
img
);
ASSERT
(
img
!=
0
);
}
break
;
case
IDoc
:
:
DotFile
:
{
IDocDotFile
*
df
=
dynamic_cast
<
IDocDotFile
*>
(
df
);
ASSERT
(
df
!=
0
);
}
break
;
case
IDoc
:
:
IndexEntry
:
{
IDocIndexEntry
*
ie
=
dynamic_cast
<
IDocIndexEntry
*>
(
ie
);
ASSERT
(
ie
!=
0
);
}
break
;
case
IDoc
:
:
Table
:
{
IDocTable
*
tbl
=
dynamic_cast
<
IDocTable
*>
(
tbl
);
ASSERT
(
tbl
!=
0
);
}
break
;
case
IDoc
:
:
Row
:
{
IDocRow
*
row
=
dynamic_cast
<
IDocRow
*>
(
row
);
ASSERT
(
row
!=
0
);
}
break
;
case
IDoc
:
:
Entry
:
{
IDocEntry
*
ent
=
dynamic_cast
<
IDocEntry
*>
(
ent
);
ASSERT
(
ent
!=
0
);
}
break
;
case
IDoc
:
:
Section
:
{
IDocSection
*
sec
=
dynamic_cast
<
IDocSection
*>
(
doc
);
...
...
addon/doxywizard/Makefile.in
View file @
9d4d8095
...
...
@@ -10,9 +10,15 @@
# See the GNU General Public License for more details.
#
all
:
Makefile.doxywizard
all
:
config.h config.l
Makefile.doxywizard
$(MAKE)
-f
Makefile.doxywizard
$@
config.h
:
$(CP)
../../src/config.h config.h
config.l
:
$(CP)
../../src/config.l config.l
Makefile.doxywizard
:
doxywizard.pro
$(ENV)
$(PERL)
$(TMAKE)
doxywizard.pro
>
Makefile.doxywizard
...
...
@@ -21,9 +27,10 @@ tmake:
clean
:
Makefile.doxywizard
$(MAKE)
-f
Makefile.doxywizard clean
$(RM)
config.cpp
distclean
:
clean
$(RM)
Makefile.doxywizard
$(RM)
Makefile.doxywizard
config.l config.h
install
:
$(INSTTOOL)
-d
$(INSTALL)
/bin
...
...
addon/doxywizard/Makefile.win_nmake.in
View file @
9d4d8095
...
...
@@ -30,8 +30,9 @@ tmake:
clean
:
Makefile.doxywizard
$(MAKE)
-f
Makefile.doxywizard clean
$(RM)
config.cpp
distclean
:
clean
$(RM)
Makefile.doxywizard config.
cpp
$(RM)
Makefile.doxywizard config.
l config.h
FORCE
:
addon/doxywizard/doxywizard.cpp
View file @
9d4d8095
...
...
@@ -179,7 +179,7 @@ void Wizard::newFile()
if
(
hasChanged
)
{
switch
(
QMessageBox
::
warning
(
this
,
"DoxyWizard"
,
"Start a new file and lose changes?
\n
"
,
"Start a new file and lose changes?"
,
"Yes"
,
"No"
,
0
,
0
,
1
))
{
case
0
:
...
...
@@ -219,7 +219,7 @@ void Wizard::loadFile()
if
(
hasChanged
)
{
switch
(
QMessageBox
::
warning
(
this
,
"DoxyWizard"
,
"Load a new file and lose changes?
\n
"
,
this
,
"DoxyWizard"
,
"Load a new file and lose changes?"
,
"Yes"
,
"No"
,
0
,
0
,
1
))
{
case
0
:
...
...
@@ -278,7 +278,7 @@ void Wizard::quit()
{
if
(
hasChanged
)
{
switch
(
QMessageBox
::
warning
(
this
,
"DoxyWizard"
,
"Quit and lose changes?
\n
"
,
switch
(
QMessageBox
::
warning
(
this
,
"DoxyWizard"
,
"Quit and lose changes?"
,
"Yes"
,
"No"
,
0
,
0
,
1
))
{
case
0
:
...
...
addon/doxywizard/doxywizard.pro.in
View file @
9d4d8095
...
...
@@ -12,8 +12,7 @@
# project file for the doxywizard project
# special template configuration file because we use flex
unix:TEMPLATE = app.t
win32:TEMPLATE = doxywizard.t
TEMPLATE = doxywizard.t
# executable to generate
TARGET = ../../bin/doxywizard
...
...
@@ -29,8 +28,8 @@ HEADERS = doxywizard.h \
inputbool.h \
inputstrlist.h \
inputint.h \
pixmaps.h
win32:HEADERS +=
config.h
pixmaps.h
\
config.h
# source flle for the project
SOURCES = doxywizard.cpp \
...
...
@@ -40,8 +39,8 @@ SOURCES = doxywizard.cpp \
inputbool.cpp \
inputstrlist.cpp \
inputint.cpp \
pixmaps.cpp
win32:SOURCES +=
config.cpp
pixmaps.cpp
\
config.cpp
# where to put the objects
OBJECTS_DIR = obj
...
...
@@ -57,5 +56,4 @@ win32:INCLUDEPATH += .
# extra link options
win32:TMAKE_LIBS = $(QTDIR)\lib\qtmain.lib $(QTDIR)\lib\qt-mt230nc.lib user32.lib gdi32.lib comdlg32.lib imm32.lib ole32.lib uuid.lib wsock32.lib
win32:TMAKE_LIBS_QT =
unix:LIBS = -L../../lib -ldoxycfg
configure
View file @
9d4d8095
...
...
@@ -139,6 +139,9 @@ if test -z "$f_platform"; then
dgux:
*
)
f_platform
=
dgux-g++
;;
Darwin:
*
)
f_platform
=
macosx-c++
;;
FreeBSD:
*
)
f_platform
=
freebsd-g++
;;
...
...
@@ -290,10 +293,13 @@ fi
if
test
"
$f_insttool
"
=
NO
;
then
if
test
"
$install_found
"
=
YES
;
then
echo
"GNU version of install is required!"
echo
;
else
echo
"not found!"
;
echo
fi
echo
"GNU version of install is required: this is part of the fileutils package: "
echo
"see http://www.gnu.org/software/fileutils/fileutils.html"
echo
exit
2
fi
...
...
doc/htmlcmds.doc
View file @
9d4d8095
...
...
@@ -31,6 +31,8 @@ documentation. Note that all attributes of a HTML tag are ignored
<li>\c <BR> Forces a line break.
<li>\c <CENTER> starts a section of centered text.
<li>\c </CENTER> ends a section of centered text.
<li>\c <CAPTION> Starts a caption. Use within a table only.
<li>\c </CAPTION> Ends a caption. Use within a table only.
<li>\c <CODE> Starts a piece of text displayed in a typewriter font.
<li>\c </CODE> End a \c <CODE> section.
<li>\c <DD> Starts an item description.
...
...
doc/language.doc
View file @
9d4d8095
...
...
@@ -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.13), 25 languages
Currently (version 1.2.13
.1
), 25 languages
are supported (sorted alphabetically):
Brazilian Portuguese, Chinese, Croatian, Czech, Danish,
Dutch, English, Finnish, French, German,
...
...
@@ -130,9 +130,9 @@ when the translator was updated.
</TR>
<TR BGCOLOR="#ffffff">
<TD>Japanese</TD>
<TD>Kenji Nagamatsu</TD>
<TD>naga@NOSPAM.joyful.club.ne.jp</TD>
<TD>
1.2.5
</TD>
<TD>
Ryunosuke Sato<br>
Kenji Nagamatsu</TD>
<TD>
puyo@NOSPAM.mint.freemail.ne.jp<br>
naga@NOSPAM.joyful.club.ne.jp</TD>
<TD>
up-to-date
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>Korean</TD>
...
...
@@ -173,8 +173,8 @@ when the translator was updated.
<TR BGCOLOR="#ffffff">
<TD>Slovak</TD>
<TD>Stanislav Kudláč</TD>
<TD>
qwerty1
@NOSPAM.pobox.sk</TD>
<TD>
1.2.11
</TD>
<TD>
skudlac
@NOSPAM.pobox.sk</TD>
<TD>
up-to-date
</TD>
</TR>
<TR BGCOLOR="#ffffff">
<TD>Slovene</TD>
...
...
@@ -240,7 +240,8 @@ when the translator was updated.
Italian & Alessandro Falappa & {\tt alessandro@falappa.net} & up-to-date \\
& Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} & \\
\hline
Japanese & Kenji Nagamatsu & {\tt naga@joyful.club.ne.jp} & 1.2.5 \\
Japanese & Ryunosuke Sato & {\tt puyo@mint.freemail.ne.jp} & up-to-date \\
& Kenji Nagamatsu & {\tt naga@joyful.club.ne.jp} & \\
\hline
Korean & Richard Kim & {\tt ryk@dspwiz.com} & up-to-date \\
\hline
...
...
@@ -254,7 +255,7 @@ when the translator was updated.
\hline
Russian & Alexandr Chelpanov & {\tt cav@cryptopro.ru} & up-to-date \\
\hline
Slovak & Stanislav Kudl\'{a}\v{c} & {\tt
qwerty1@pobox.sk} & 1.2.11
\\
Slovak & Stanislav Kudl\'{a}\v{c} & {\tt
skudlac@pobox.sk} & up-to-date
\\
\hline
Slovene & Matjaz Ostroversnik & {\tt matjaz.ostroversnik@zrs-tk.si} & up-to-date \\
\hline
...
...
doc/lists.doc
View file @
9d4d8095
...
...
@@ -41,6 +41,35 @@ Doxygen has a number of ways to create lists of items.
If you use tabs within lists, please make sure that \ref cfg_tab_size "TAB_SIZE" in the
configuration file is set to the correct tab size.
You can end a list by starting a new paragraph or
by putting a dot (.) on an empty line at the same indent level as the
list you would like to end.
Here is an example that speaks for itself:
\verbatim
/**
* Text before the list
* - list item 1
* - sub item 1
* - sub sub item 1
* - sub sub item 2
* .
* The dot above ends the sub sub item list.
* More text for the first sub item
* .
* The dot above ends the first sub item.
* More text for the first list item
* - sub item 2
* - sub item 3
* - list item 2
* .
* More text in the same paragraph.
*
* More text in a new paragraph.
*/
\endverbatim
<b>Using HTML commands</b>
If you like you can also use HTML commands inside the documentation
...
...
doc/maintainers.txt
View file @
9d4d8095
...
...
@@ -44,6 +44,7 @@ Alessandro Falappa: alessandro@falappa.net
Ahmed Aldo Faisal: aaf23@cam.ac.uk
Japanese
Ryunosuke Sato: puyo@mint.freemail.ne.jp
Kenji Nagamatsu: naga@joyful.club.ne.jp
Korean
...
...
@@ -65,7 +66,7 @@ Russian
Alexandr Chelpanov: cav@cryptopro.ru
Slovak
Stanislav Kudláč:
qwerty1
@pobox.sk
Stanislav Kudláč:
skudlac
@pobox.sk
Slovene
Matjaz Ostroversnik: matjaz.ostroversnik@zrs-tk.si
...
...
packages/rpm/doxygen.spec
View file @
9d4d8095
Name: doxygen
Version: 1.2.13
Version: 1.2.13
.1
Summary: documentation system for C, C++ and IDL
Release: 4
Source: doxygen-%{version}.src.tar.gz
...
...
src/classdef.cpp
View file @
9d4d8095
...
...
@@ -156,29 +156,29 @@ void ClassDef::insertSubClass(ClassDef *cd,Protection p,
void
ClassDef
::
addMembersToMemberGroup
()
{
::
addMembersToMemberGroup
(
&
pubTypes
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
pubMembers
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
pubAttribs
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
pubSlots
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
signals
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
dcopMethods
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
pubStaticMembers
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
pubStaticAttribs
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
proTypes
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
proMembers
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
proAttribs
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
proSlots
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
proStaticMembers
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
proStaticAttribs
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
priTypes
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
priMembers
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
priAttribs
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
priSlots
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
priStaticMembers
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
priStaticAttribs
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
friends
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
related
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
properties
,
memberGroupSDict
);
::
addMembersToMemberGroup
(
&
pubTypes
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
pubMembers
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
pubAttribs
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
pubSlots
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
signals
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
dcopMethods
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
pubStaticMembers
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
pubStaticAttribs
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
proTypes
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
proMembers
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
proAttribs
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
proSlots
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
proStaticMembers
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
proStaticAttribs
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
priTypes
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
priMembers
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
priAttribs
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
priSlots
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
priStaticMembers
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
priStaticAttribs
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
friends
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
related
,
memberGroupSDict
,
this
);
::
addMembersToMemberGroup
(
&
properties
,
memberGroupSDict
,
this
);
}
// adds new member definition to the class
...
...
@@ -197,12 +197,12 @@ void ClassDef::internalInsertMember(MemberDef *md,
(
Config_getBool
(
"EXTRACT_PRIVATE"
)
||
prot
!=
Private
))
{
related
.
append
(
md
);
md
->
setSectionList
(
&
related
);
md
->
setSectionList
(
this
,
&
related
);
}
else
if
(
md
->
isFriend
())
{
friends
.
append
(
md
);
md
->
setSectionList
(
&
friends
);
md
->
setSectionList
(
this
,
&
friends
);
}
else
{
...
...
@@ -210,30 +210,30 @@ void ClassDef::internalInsertMember(MemberDef *md,
{
case
MemberDef
:
:
Signal
:
// Qt specific
signals
.
append
(
md
);
md
->
setSectionList
(
&
signals
);
md
->
setSectionList
(
this
,
&
signals
);
break
;
case
MemberDef
:
:
DCOP
:
// KDE2 specific
dcopMethods
.
append
(
md
);
md
->
setSectionList
(
&
dcopMethods
);
md
->
setSectionList
(
this
,
&
dcopMethods
);
break
;
case
MemberDef
:
:
Property
:
properties
.
append
(
md
);
md
->
setSectionList
(
&
properties
);
md
->
setSectionList
(
this
,
&
properties
);
break
;
case
MemberDef
:
:
Slot
:
// Qt specific
switch
(
prot
)
{
case
Protected
:
proSlots
.
append
(
md
);
md
->
setSectionList
(
&
proSlots
);
md
->
setSectionList
(
this
,
&
proSlots
);
break
;
case
Public
:
pubSlots
.
append
(
md
);
md
->
setSectionList
(
&
pubSlots
);
md
->
setSectionList
(
this
,
&
pubSlots
);
break
;
case
Private
:
priSlots
.
append
(
md
);
md
->
setSectionList
(
&
priSlots
);
md
->
setSectionList
(
this
,
&
priSlots
);
break
;
}
break
;
...
...
@@ -246,15 +246,15 @@ void ClassDef::internalInsertMember(MemberDef *md,
{
case
Protected
:
proStaticAttribs
.
append
(
md
);
md
->
setSectionList
(
&
proStaticAttribs
);
md
->
setSectionList
(
this
,
&
proStaticAttribs
);
break
;
case
Public
:
pubStaticAttribs
.
append
(
md
);
md
->
setSectionList
(
&
pubStaticAttribs
);
md
->
setSectionList
(
this
,
&
pubStaticAttribs
);
break
;
case
Private
:
priStaticAttribs
.
append
(
md
);
md
->
setSectionList
(
&
priStaticAttribs
);
md
->
setSectionList
(
this
,
&
priStaticAttribs
);
break
;
}
}
...
...
@@ -264,15 +264,15 @@ void ClassDef::internalInsertMember(MemberDef *md,
{
case
Protected
:
proStaticMembers
.
append
(
md
);
md
->
setSectionList
(
&
proStaticMembers
);
md
->
setSectionList
(
this
,
&
proStaticMembers
);
break
;
case
Public
:
pubStaticMembers
.
append
(
md
);
md
->
setSectionList
(
&
pubStaticMembers
);
md
->
setSectionList
(
this
,
&
pubStaticMembers
);
break
;
case
Private
:
priStaticMembers
.
append
(
md
);
md
->
setSectionList
(
&
priStaticMembers
);
md
->
setSectionList
(
this
,
&
priStaticMembers
);
break
;
}
}
...
...
@@ -285,15 +285,15 @@ void ClassDef::internalInsertMember(MemberDef *md,
{
case
Protected
:
proAttribs
.
append
(
md
);
md
->
setSectionList
(
&
proAttribs
);
md
->
setSectionList
(
this
,
&
proAttribs
);
break
;
case
Public
:
pubAttribs
.
append
(
md
);
md
->
setSectionList
(
&
pubAttribs
);
md
->
setSectionList
(
this
,
&
pubAttribs
);
break
;
case
Private
:
priAttribs
.
append
(
md
);
md
->
setSectionList
(
&
priAttribs
);
md
->
setSectionList
(
this
,
&
priAttribs
);
break
;
}
}
...
...
@@ -303,15 +303,15 @@ void ClassDef::internalInsertMember(MemberDef *md,
{
case
Protected
:
proTypes
.
append
(
md
);
md
->
setSectionList
(
&
proTypes
);
md
->
setSectionList
(
this
,
&
proTypes
);
break
;
case
Public
:
pubTypes
.
append
(
md
);
md
->
setSectionList
(
&
pubTypes
);
md
->
setSectionList
(
this
,
&
pubTypes
);
break
;
case
Private
:
priTypes
.
append
(
md
);
md
->
setSectionList
(
&
priTypes
);
md
->
setSectionList
(
this
,
&
priTypes
);
break
;
}
}
...
...
@@ -321,15 +321,15 @@ void ClassDef::internalInsertMember(MemberDef *md,
{
case
Protected
:
proMembers
.
append
(
md
);
md
->
setSectionList
(
&
proMembers
);
md
->
setSectionList
(
this
,
&
proMembers
);
break
;
case
Public
:
pubMembers
.
append
(
md
);
md
->
setSectionList
(
&
pubMembers
);
md
->
setSectionList
(
this
,
&
pubMembers
);
break
;
case
Private
:
priMembers
.
append
(
md
);
md
->
setSectionList
(
&
priMembers
);
md
->
setSectionList
(
this
,
&
priMembers
);
break
;
}
}
...
...
@@ -485,27 +485,6 @@ void ClassDef::insertMember(MemberDef *md)
internalInsertMember
(
md
,
md
->
protection
(),
TRUE
);
}
//void ClassDef::computeMemberGroups()
//{
// MemberNameInfoListIterator mnili(*m_allMemberNameInfoList);
// MemberNameInfo *mni;
// for (;(mni=mnili.current());++mnili)
// {
// MemberNameInfoIterator mnii(*mni);
// MemberInfo *mi;
// for (mnii.toFirst();(mi=mnii.current());++mnii)
// {
// MemberDef *md=mi->memberDef;
// MemberGroup *mg = md->getMemberGroup();
// if (mg && m_memberGroupDict->find(mg->groupId())==0)
// {
// m_memberGroupDict->insert(mg->groupId(),mg);
// m_memberGroupList->append(mg);
// }
// }
// }
//}
// compute the anchors for all members
void
ClassDef
::
computeAnchors
()
{
...
...
@@ -533,6 +512,12 @@ void ClassDef::computeAnchors()
setAnchors
(
context
,
'u'
,
&
priTypes
);
setAnchors
(
context
,
'v'
,
&
dcopMethods
);
setAnchors
(
context
,
'w'
,
&
properties
);
MemberGroupSDict
::
Iterator
mgli
(
*
memberGroupSDict
);
MemberGroup
*
mg
;
for
(;(
mg
=
mgli
.
current
());
++
mgli
)
{
mg
->
setAnchors
(
context
);
}
}
void
ClassDef
::
distributeMemberGroupDocumentation
()
...
...
@@ -1006,6 +991,7 @@ void ClassDef::writeDocumentation(OutputList &ol)
}
else
// add this group to the corresponding member section
{
//printf("addToDeclarationSection(%s)\n",mg->header().data());
mg
->
addToDeclarationSection
();
}
}
...
...
src/config.l
View file @
9d4d8095
...
...
@@ -31,6 +31,7 @@
#include <qstack.h>
#include "config.h"
#include "lang_cfg.h"
#include "version.h"
#undef Config_getString
...
...
src/doc.l
View file @
9d4d8095
...
...
@@ -99,6 +99,7 @@ static QCString curDotFileName;
static QCString curDotFileCaption;
static QCString internalRefFile;
static QCString internalRefAnchor;
static QCString caption;
static QStack<char> currentListIndent; // indent stack of all list items
static bool insideItemList = FALSE;
...
...
@@ -185,72 +186,85 @@ class Table
~Table();
void newRow();
void newElem();
void setCaption(const char *s);
private:
OutputDocInterface *parentDoc;
QList<TableElem> *elemList;
int curRow;
int curCol;
int rows;
int cols;
OutputDocInterface *m_parentDoc;
QList<TableElem> *m_elemList;
QCString m_caption;
int m_curRow;
int m_curCol;
int m_rows;
int m_cols;
};
Table::Table()
{
parentDoc=outDoc;
elemList=new QList<TableElem>;
elemList->setAutoDelete(TRUE);
curRow=curCol=rows=
cols=0;
m_
parentDoc=outDoc;
m_
elemList=new QList<TableElem>;
m_
elemList->setAutoDelete(TRUE);
m_curRow=m_curCol=m_rows=m_
cols=0;
}
Table::~Table()
{
//printf("Table::~Table()\n");
// use elemList & cols & rows
if (
cols>0 &&
rows>0)
if (
m_cols>0 && m_
rows>0)
{
parentDoc->startTable(
cols);
TableElem *e=elemList->first();
m_parentDoc->startTable(!m_caption.isEmpty(),m_
cols);
TableElem *e=
m_
elemList->first();
while (e)
{
if (e->getRow()>0)
{
if (e->getCol()==0)
{
if (e->getRow()>1) parentDoc->endTableRow();
parentDoc->nextTableRow();
if (e->getRow()>1)
m_
parentDoc->endTableRow();
m_
parentDoc->nextTableRow();
}
else
{
parentDoc->nextTableColumn();
m_
parentDoc->nextTableColumn();
}
parentDoc->append(e->outputDocInterface());
parentDoc->endTableColumn();
m_
parentDoc->append(e->outputDocInterface());
m_
parentDoc->endTableColumn();
}
e=elemList->next();
e=
m_
elemList->next();
}
parentDoc->endTable();
if (!m_caption.isEmpty())
{
m_parentDoc->startCaption();
m_parentDoc->docify(m_caption);
m_parentDoc->endCaption();
}
m_parentDoc->endTable(!m_caption.isEmpty());
}
delete elemList; elemList=0;
outDoc=parentDoc;
delete m_elemList; m_elemList=0;
outDoc=m_parentDoc;
}
void Table::setCaption(const char *s)
{
m_caption=s;
}
void Table::newRow()
{
//printf("Table::newRow()\n");
curRow++;
if (
curRow>rows) rows=
curRow;
curCol=0;
m_
curRow++;
if (
m_curRow>m_rows) m_rows=m_
curRow;
m_
curCol=0;
}
void Table::newElem()
{
//printf("Table::newElem(%d,%d)\n",curRow,curCol);
TableElem *te = new TableElem(
curRow,
curCol);
elemList->append(te);
TableElem *te = new TableElem(
m_curRow,m_
curCol);
m_
elemList->append(te);
curCol++;
if (
curCol>cols) cols=
curCol;
m_
curCol++;
if (
m_curCol>m_cols) m_cols=m_
curCol;
}
static QStack<Table> tableStack;
...
...
@@ -531,19 +545,19 @@ struct IndentInfo
static QStack<IndentInfo> listIndentStack; // indent stack of - items
static
void addListItemMarker(const char *marker,int dashPos,bool enumerated
)
static
int computeIndent(const char *str,int length
)
{
// find the actual position at which the bullet was found
int i;
int indent=0;
for (i=0;i<dashPos;i++)
int tabSize=Config_getInt("TAB_SIZE");
for (i=0;i<length;i++)
{
//printf("Parsed[%d]=%d\n",i,marker[i]);
if (
marke
r[i]=='\t')
if (
st
r[i]=='\t')
{
indent+=
Config_getInt("TAB_SIZE") - (indent%Config_getInt("TAB_SIZE")
);
indent+=
tabSize - (indent%tabSize
);
}
else if (
marke
r[i]=='\n')
else if (
st
r[i]=='\n')
{
indent=0;
}
...
...
@@ -552,9 +566,17 @@ static void addListItemMarker(const char *marker,int dashPos,bool enumerated)
indent++;
}
}
return indent;
}
static void addListItemMarker(const char *marker,int dashPos,bool enumerated)
{
// find the actual position at which the bullet was found
int indent=computeIndent(marker,dashPos);
//printf("list marker found at column %d enumerated %d\n",indent,enumerated);
if (!insideItemList)
{
//printf("startListMarker indent=%d\n",indent);
currentListIndent.push(enumerated ? "O" : "U");
listIndentStack.push(new IndentInfo(indent,enumerated));
listIndentStack.top()->startList();
...
...
@@ -580,6 +602,7 @@ static void addListItemMarker(const char *marker,int dashPos,bool enumerated)
}
else if (pPrevInfo->indent<indent) // start sub item list
{
//printf("startListMarker indent=%d\n",indent);
currentListIndent.push(enumerated ? "O" : "U");
listIndentStack.push(new IndentInfo(indent,enumerated));
listIndentStack.top()->startList();
...
...
@@ -610,6 +633,32 @@ static void addListItemMarker(const char *marker,int dashPos,bool enumerated)
}
}
static void endListMarker(const char *marker,int dotPos)
{
int indent=computeIndent(marker,dotPos);
//printf("endListMarker indent=%d "
// "insideItemList=%d listIndentStack.count()=%d\n",
// indent,insideItemList,listIndentStack.count());
if (insideItemList && !listIndentStack.isEmpty())
{
IndentInfo *ii = listIndentStack.top();
while (ii && indent<=ii->indent)
{
ii->endList();
listIndentStack.pop();
currentListIndent.pop();
delete ii;
ii = listIndentStack.top();
//printf("ending list new indent=%d\n",ii ? ii->indent : -1);
}
if (listIndentStack.isEmpty())
{
insideItemList=FALSE;
//printf("ending last list\n");
}
}
}
// end the current (nested) list regardless of the nesting level.
static void forceEndItemList()
{
...
...
@@ -626,7 +675,7 @@ static void forceEndItemList()
case 'O': outDoc->endEnumList(); break;
case 'U': outDoc->endItemList(); break;
case 'D': outDoc->endDescription(); break;
case 'P':
break; // do not end paragraphs
case 'P':
if (inBlock()) endBlock(); break;
default:
err("Unexpected list indent token `%c'\n",c);
}
...
...
@@ -899,6 +948,7 @@ SUB [sS][uU][bB]
SUP [sS][uU][pP]
SRC [sS][rR][cC]
TABLE [tT][aA][bB][lL][eE]
CAPTION [cC][aA][pP][tT][iI][oO][nN]
TITLE [tT][iI][tT][lL][eE]
TD [tT][dD]
TR [tT][rR]
...
...
@@ -955,6 +1005,7 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
%x DocInternalRef
%x DocInternalRefText
%x DocImage
%x DocCaption
%x DocHtmlImageName
%x DocHtmlImageOpt
%x DocLatexImageName
...
...
@@ -974,6 +1025,11 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
bool isEnumerated = text.at(dashPos+1)=='#';
addListItemMarker(yytext,dashPos+1,isEnumerated);
}
<DocScan>^{B}*(("//"{B}*)?)"*"*{B}*"."{B}*/\n { /* found end list marker */
QCString text=yytext;
int dotPos = text.findRev('.');
endListMarker(yytext,dotPos+1);
}
<DocScan>\n{B}*(("//"{B}*)?)"*"*{B}*"-"("#")?{B}+ { /* found list item marker */
QCString text=yytext;
int dashPos = text.findRev('-');
...
...
@@ -981,6 +1037,11 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
bool isEnumerated = text.at(dashPos+1)=='#';
addListItemMarker(yytext+1,dashPos,isEnumerated);
}
<DocScan>\n{B}*(("//"{B}*)?)"*"*{B}*"."{B}*/\n { /* found end list marker */
QCString text=yytext;
int dotPos = text.findRev('.');
endListMarker(yytext+1,dotPos);
}
<DocScan,Text>"©" { outDoc->writeCopyright(); }
<DocScan,Text>"<" { outDoc->docify("<"); }
<DocScan,Text>">" { outDoc->docify(">"); }
...
...
@@ -2024,6 +2085,20 @@ OPMASK ({B}*{OPNORM}({OPARG}?))|({OPCAST}{OPARG})
<DocScan>"</"{CENTER}{ATTR}">" { outDoc->endCenter(); }
<DocScan>"<"{TABLE}{ATTR}">" { startTable(); }
<DocScan>"</"{TABLE}{ATTR}">" { endTable(); }
<DocScan>"<"{CAPTION}{ATTR}">" { caption.resize(0);
BEGIN( DocCaption );
}
<DocCaption>[^\n\<\>\/]+ {
caption+=yytext;
}
<DocCaption>\n { caption+=" "; }
<DocCaption>. { caption+=*yytext; }
<DocCaption>"</"{CAPTION}{ATTR}">" { if (curTable)
{
curTable->setCaption(caption);
}
BEGIN( DocScan );
}
<DocScan>"<"{INPUT}{ATTR}">"
<DocScan>"<"{SMALL}{ATTR}">" { outDoc->startSmall(); }
<DocScan>"</"{SMALL}{ATTR}">" { outDoc->endSmall(); }
...
...
src/dot.cpp
View file @
9d4d8095
...
...
@@ -197,11 +197,12 @@ class DotNodeList : public QList<DotNode>
/*! helper function that deletes all nodes in a connected graph, given
* one of the graph's nodes
*/
static
void
deleteNodes
(
DotNode
*
node
)
static
void
deleteNodes
(
DotNode
*
node
,
SIntDict
<
DotNode
>
*
skipNodes
=
0
)
{
//printf("deleteNodes skipNodes=%p\n",skipNodes);
static
DotNodeList
deletedNodes
;
deletedNodes
.
setAutoDelete
(
TRUE
);
node
->
deleteNode
(
deletedNodes
);
// collect nodes to be deleted.
node
->
deleteNode
(
deletedNodes
,
skipNodes
);
// collect nodes to be deleted.
deletedNodes
.
clear
();
// actually remove the nodes.
}
...
...
@@ -220,6 +221,7 @@ DotNode::DotNode(int n,const char *lab,const char *url,int distance,bool isRoot)
DotNode
::~
DotNode
()
{
//printf("DotNode::~DotNode() %s\n",m_label.data());
delete
m_children
;
delete
m_parents
;
delete
m_edgeInfo
;
...
...
@@ -276,7 +278,7 @@ void DotNode::removeParent(DotNode *n)
if
(
m_parents
)
m_parents
->
remove
(
n
);
}
void
DotNode
::
deleteNode
(
DotNodeList
&
deletedList
)
void
DotNode
::
deleteNode
(
DotNodeList
&
deletedList
,
SIntDict
<
DotNode
>
*
skipNodes
)
{
if
(
m_deleted
)
return
;
// avoid recursive loops in case the graph has cycles
m_deleted
=
TRUE
;
...
...
@@ -287,7 +289,7 @@ void DotNode::deleteNode(DotNodeList &deletedList)
for
(
dnlip
.
toFirst
();(
pn
=
dnlip
.
current
());
++
dnlip
)
{
//pn->removeChild(this);
pn
->
deleteNode
(
deletedList
);
pn
->
deleteNode
(
deletedList
,
skipNodes
);
}
}
if
(
m_children
!=
0
)
// delete all child nodes of this node
...
...
@@ -297,11 +299,16 @@ void DotNode::deleteNode(DotNodeList &deletedList)
for
(
dnlic
.
toFirst
();(
cn
=
dnlic
.
current
());
++
dnlic
)
{
//cn->removeParent(this);
cn
->
deleteNode
(
deletedList
);
cn
->
deleteNode
(
deletedList
,
skipNodes
);
}
}
// add this node to the list of deleted nodes.
//printf("skipNodes=%p find(%p)=%p\n",skipNodes,this,skipNodes ? skipNodes->find((int)this) : 0);
if
(
skipNodes
==
0
||
skipNodes
->
find
((
int
)
this
)
==
0
)
{
//printf("deleting\n");
deletedList
.
append
(
this
);
}
}
static
QCString
convertLabel
(
const
QCString
&
l
)
...
...
@@ -882,12 +889,22 @@ DotGfxHierarchyTable::DotGfxHierarchyTable()
DotGfxHierarchyTable
::~
DotGfxHierarchyTable
()
{
//printf("DotGfxHierarchyTable::~DotGfxHierarchyTable\n");
SIntDict
<
DotNode
>
skipNodes
(
17
);
skipNodes
.
setAutoDelete
(
TRUE
);
DotNode
*
n
=
m_rootNodes
->
first
();
while
(
n
)
{
DotNode
*
oldNode
=
n
;
//printf("adding %s %p\n",n->label().data(),n);
skipNodes
.
append
((
int
)
n
,
n
);
n
=
m_rootNodes
->
next
();
}
n
=
m_rootNodes
->
first
();
while
(
n
)
{
//printf("Deleting root node %s\n",n->label().data());
deleteNodes
(
n
,
&
skipNodes
);
n
=
m_rootNodes
->
next
();
deleteNodes
(
oldNode
);
}
delete
m_rootNodes
;
delete
m_usedNodes
;
...
...
src/dot.h
View file @
9d4d8095
...
...
@@ -19,6 +19,7 @@
#include "qtbc.h"
#include <qlist.h>
#include <qdict.h>
#include "sortdict.h"
class
ClassDef
;
class
FileDef
;
...
...
@@ -68,16 +69,17 @@ class DotNode
);
void
setDistance
(
int
distance
);
void
addParent
(
DotNode
*
n
);
void
deleteNode
(
DotNodeList
&
deletedList
);
void
deleteNode
(
DotNodeList
&
deletedList
,
SIntDict
<
DotNode
>
*
skipNodes
=
0
);
void
removeChild
(
DotNode
*
n
);
void
removeParent
(
DotNode
*
n
);
int
number
()
const
{
return
m_number
;
}
void
write
(
QTextStream
&
t
,
GraphOutputFormat
f
,
bool
topDown
,
bool
toChildren
,
int
maxDistance
=
1000
,
bool
backArrows
=
TRUE
);
int
m_subgraphId
;
void
clearWriteFlag
();
void
writeXML
(
QTextStream
&
t
);
void
writeDEF
(
QTextStream
&
t
);
QCString
label
()
const
{
return
m_label
;
}
int
number
()
const
{
return
m_number
;
}
private
:
void
colorConnectedNodes
(
int
curColor
);
...
...
src/doxygen.cpp
View file @
9d4d8095
...
...
@@ -6968,6 +6968,9 @@ void parseInput()
msg
(
"Adding classes to their packages...
\n
"
);
addClassesToPackages
();
msg
(
"Building full member lists recursively...
\n
"
);
buildCompleteMemberLists
();
msg
(
"Adding members to member groups.
\n
"
);
addMembersToMemberGroup
();
...
...
@@ -6977,9 +6980,6 @@ void parseInput()
distributeMemberGroupDocumentation
();
}
msg
(
"Building full member lists recursively...
\n
"
);
buildCompleteMemberLists
();
msg
(
"Computing member references...
\n
"
);
computeMemberReferences
();
...
...
src/groupdef.cpp
View file @
9d4d8095
...
...
@@ -309,6 +309,7 @@ bool GroupDef::containsGroup(const GroupDef *def)
void
GroupDef
::
addGroup
(
const
GroupDef
*
def
)
{
//printf("adding group `%s' to group `%s'\n",def->name().data(),name().data());
//if (Config_getBool("SORT_MEMBER_DOCS"))
// groupList->inSort(def);
//else
...
...
@@ -317,9 +318,9 @@ void GroupDef::addGroup(const GroupDef *def)
void
GroupDef
::
addParentGroup
(
const
GroupDef
*
def
)
{
if
(
Config_getBool
(
"SORT_MEMBER_DOCS"
))
parentGroupList
->
inSort
(
def
);
else
//
if (Config_getBool("SORT_MEMBER_DOCS"))
//
parentGroupList->inSort(def);
//
else
parentGroupList
->
append
(
def
);
}
...
...
src/groupdef.h
View file @
9d4d8095
...
...
@@ -78,7 +78,7 @@ class GroupDef : public Definition
bool
visited
;
// number of times accessed for output - KPW
friend
void
writeGroupTreeNode
(
OutputList
&
,
GroupDef
*
,
bool
);
friend
void
writeGroupTreeNode
(
OutputList
&
,
GroupDef
*
,
int
);
// make accessible for writing tree view of group in index.cpp - KPW
// members in the declaration part of the documentation
...
...
src/htmlgen.cpp
View file @
9d4d8095
...
...
@@ -38,6 +38,7 @@
static
const
char
*
defaultStyleSheet
=
"H1 { text-align: center; }
\n
"
"CAPTION { font-weight: bold }
\n
"
"A.qindex {}
\n
"
"A.qindexRef {}
\n
"
"A.el { text-decoration: none; font-weight: bold }
\n
"
...
...
src/htmlgen.h
View file @
9d4d8095
...
...
@@ -165,8 +165,14 @@ class HtmlGenerator : public OutputGenerator
void
endSubscript
()
{
t
<<
"</sub>"
;
}
void
startSuperscript
()
{
t
<<
"<sup>"
;
}
void
endSuperscript
()
{
t
<<
"</sup>"
;
}
void
startTable
(
int
)
{
t
<<
"<table border=1 cellspacing=3 cellpadding=3>"
;
}
void
endTable
()
{
t
<<
"</table>"
<<
endl
;
}
void
startTable
(
bool
,
int
)
{
t
<<
"<table border=1 cellspacing=3 cellpadding=3>"
;
}
void
endTable
(
bool
hasCaption
)
{
if
(
!
hasCaption
)
t
<<
"</tr>"
;
t
<<
"</table>"
<<
endl
;
}
void
startCaption
()
{
t
<<
"</tr><caption align=
\"
bottom
\"
>"
;
}
void
endCaption
()
{
t
<<
"</caption>"
<<
endl
;
}
void
nextTableRow
()
{
t
<<
"<tr><td>"
;
}
void
endTableRow
()
{
t
<<
"</tr>"
<<
endl
;
}
void
nextTableColumn
()
{
t
<<
"<td>"
;
}
...
...
src/index.cpp
View file @
9d4d8095
...
...
@@ -78,6 +78,34 @@ void countDataStructures()
documentedPackages
=
countPackages
();
}
static
void
startIndexHierarchy
(
OutputList
&
ol
,
int
level
)
{
// UGLY HACK!
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Html
);
if
(
level
<
6
)
ol
.
startIndexList
();
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
startItemList
();
ol
.
popGeneratorState
();
}
static
void
endIndexHierarchy
(
OutputList
&
ol
,
int
level
)
{
// UGLY HACK!
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Html
);
if
(
level
<
6
)
ol
.
endIndexList
();
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
endItemList
();
ol
.
popGeneratorState
();
}
//----------------------------------------------------------------------------
static
bool
g_memberIndexLetterUsed
[
256
];
...
...
@@ -347,18 +375,7 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level)
{
if
(
!
started
)
{
{
// UGLY HACK!
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Html
);
if
(
level
<
6
)
ol
.
startIndexList
();
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
startItemList
();
ol
.
popGeneratorState
();
}
startIndexHierarchy
(
ol
,
level
);
if
(
hasHtmlHelp
)
htmlHelp
->
incContentsDepth
();
if
(
hasFtvHelp
)
ftvHelp
->
incContentsDepth
();
started
=
TRUE
;
...
...
@@ -407,18 +424,7 @@ void writeClassTree(OutputList &ol,BaseClassList *bcl,bool hideSuper,int level)
}
if
(
started
)
{
{
// UGLY HACK!
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Html
);
if
(
level
<
6
)
ol
.
endIndexList
();
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
endItemList
();
ol
.
popGeneratorState
();
}
endIndexHierarchy
(
ol
,
level
);
if
(
hasHtmlHelp
)
htmlHelp
->
decContentsDepth
();
if
(
hasFtvHelp
)
ftvHelp
->
decContentsDepth
();
}
...
...
@@ -572,18 +578,7 @@ static void writeClassTreeForList(OutputList &ol,ClassSDict *cl,bool &started)
{
if
(
!
started
)
{
{
// UGLY HACK!
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Html
);
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
startIndexList
();
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
startItemList
();
ol
.
popGeneratorState
();
}
startIndexHierarchy
(
ol
,
0
);
if
(
hasHtmlHelp
)
htmlHelp
->
incContentsDepth
();
if
(
hasFtvHelp
)
ftvHelp
->
incContentsDepth
();
started
=
TRUE
;
...
...
@@ -654,18 +649,7 @@ void writeClassHierarchy(OutputList &ol)
writeClassTreeForList
(
ol
,
&
Doxygen
::
hiddenClasses
,
started
);
if
(
started
)
{
{
// UGLY HACK!
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Html
);
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
endIndexList
();
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
endItemList
();
ol
.
popGeneratorState
();
}
endIndexHierarchy
(
ol
,
0
);
if
(
hasHtmlHelp
)
htmlHelp
->
decContentsDepth
();
if
(
hasFtvHelp
)
ftvHelp
->
decContentsDepth
();
}
...
...
@@ -2135,18 +2119,7 @@ void writePageIndex(OutputList &ol)
}
parseText
(
ol
,
theTranslator
->
trRelatedPagesDescription
());
ol
.
endTextBlock
();
{
// UGLY HACK!
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Html
);
ol
.
startIndexList
();
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
startItemList
();
ol
.
popGeneratorState
();
}
startIndexHierarchy
(
ol
,
0
);
PageSDict
::
Iterator
pdi
(
*
Doxygen
::
pageSDict
);
PageInfo
*
pi
=
0
;
for
(
pdi
.
toFirst
();(
pi
=
pdi
.
current
());
++
pdi
)
...
...
@@ -2177,18 +2150,7 @@ void writePageIndex(OutputList &ol)
if
(
hasFtvHelp
)
ftvHelp
->
addContentsItem
(
FALSE
,
0
,
pageName
,
0
,
pageTitle
);
}
}
{
// UGLY HACK!
ol
.
pushGeneratorState
();
ol
.
disable
(
OutputGenerator
::
Man
);
ol
.
disable
(
OutputGenerator
::
Html
);
ol
.
endIndexList
();
ol
.
enableAll
();
ol
.
disable
(
OutputGenerator
::
Latex
);
ol
.
disable
(
OutputGenerator
::
RTF
);
ol
.
endItemList
();
ol
.
popGeneratorState
();
}
endIndexHierarchy
(
ol
,
0
);
if
(
hasHtmlHelp
)
{
htmlHelp
->
decContentsDepth
();
...
...
@@ -2247,7 +2209,7 @@ void writeGraphInfo(OutputList &ol)
* \author KPW
*/
void
writeGroupTreeNode
(
OutputList
&
ol
,
GroupDef
*
gd
,
bool
subL
evel
)
void
writeGroupTreeNode
(
OutputList
&
ol
,
GroupDef
*
gd
,
int
l
evel
)
{
HtmlHelp
*
htmlHelp
=
0
;
FTVHelp
*
ftvHelp
=
0
;
...
...
@@ -2263,7 +2225,7 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,bool subLevel)
ftvHelp
=
FTVHelp
::
getInstance
();
}
if
(
!
gd
->
visited
&&
(
!
gd
->
isASubGroup
()
||
subLevel
))
if
(
!
gd
->
visited
&&
(
!
gd
->
isASubGroup
()
||
level
>
0
))
{
//printf("gd->name()=%s #members=%d\n",gd->name().data(),gd->countMembers());
// write group info
...
...
@@ -2338,14 +2300,14 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,bool subLevel)
// write subgroups
if
(
hasSubGroups
)
{
ol
.
startIndexList
(
);
startIndexHierarchy
(
ol
,
level
+
1
);
QListIterator
<
GroupDef
>
gli
(
*
gd
->
groupList
);
GroupDef
*
subgd
=
0
;
for
(
gli
.
to
Last
();(
subgd
=
gli
.
current
());
--
gli
)
for
(
gli
.
to
First
();(
subgd
=
gli
.
current
());
++
gli
)
{
writeGroupTreeNode
(
ol
,
subgd
,
TRUE
);
writeGroupTreeNode
(
ol
,
subgd
,
level
+
1
);
}
ol
.
endIndexList
(
);
endIndexHierarchy
(
ol
,
level
+
1
);
}
...
...
@@ -2544,14 +2506,14 @@ void writeGroupTreeNode(OutputList &ol, GroupDef *gd,bool subLevel)
void
writeGroupHierarchy
(
OutputList
&
ol
)
{
ol
.
startIndexList
(
);
startIndexHierarchy
(
ol
,
0
);
GroupSDict
::
Iterator
gli
(
Doxygen
::
groupSDict
);
GroupDef
*
gd
;
for
(
gli
.
toFirst
();(
gd
=
gli
.
current
());
++
gli
)
{
writeGroupTreeNode
(
ol
,
gd
,
FALSE
);
writeGroupTreeNode
(
ol
,
gd
,
0
);
}
ol
.
endIndexList
(
);
endIndexHierarchy
(
ol
,
0
);
}
//----------------------------------------------------------------------------
...
...
src/latexgen.h
View file @
9d4d8095
...
...
@@ -160,10 +160,26 @@ class LatexGenerator : public OutputGenerator
void
endSubscript
()
{
t
<<
"}}$"
;
}
void
startSuperscript
()
{
t
<<
"$^{
\\
mbox{"
;
}
void
endSuperscript
()
{
t
<<
"}}$"
;
}
void
startTable
(
int
c
)
{
t
<<
"
\\
begin{TabularC}{"
<<
c
<<
"}
\n\\
hline
\n
"
;
void
startTable
(
bool
hasCaption
,
int
c
)
{
if
(
hasCaption
)
t
<<
"
\\
begin{table}[h]"
;
t
<<
"
\\
begin{TabularC}{"
<<
c
<<
"}
\n\\
hline
\n
"
;
}
void
endTable
()
{
t
<<
"
\\\\\\
hline
\n\\
end{TabularC}
\n
"
;
}
void
endTable
(
bool
hasCaption
)
{
if
(
hasCaption
)
{
t
<<
"
\\
end{table}
\n
"
;
}
else
{
t
<<
"
\\\\\\
hline
\n\\
end{TabularC}
\n
"
;
}
}
void
startCaption
()
{
t
<<
"
\\\\\\
hline
\n\\
end{TabularC}
\n
"
"
\\
centering
\n\\
caption{"
;
}
void
endCaption
()
{
t
<<
"}
\n
"
;
}
void
nextTableRow
()
{}
void
endTableRow
()
{
t
<<
"
\\\\\\
hline
\n
"
;
}
void
nextTableColumn
()
{
t
<<
"&"
;
}
...
...
src/mangen.h
View file @
9d4d8095
...
...
@@ -152,8 +152,10 @@ class ManGenerator : public OutputGenerator
void
endSubscript
()
{
t
<<
"
\\
*>"
;
firstCol
=
FALSE
;
}
void
startSuperscript
()
{
t
<<
"
\\
*{"
;
firstCol
=
FALSE
;
}
void
endSuperscript
()
{
t
<<
"
\\
*}"
;
firstCol
=
FALSE
;
}
void
startTable
(
int
)
{}
void
endTable
()
{}
void
startTable
(
bool
,
int
)
{}
void
endTable
(
bool
)
{}
void
startCaption
()
{}
void
endCaption
()
{}
void
nextTableRow
()
{}
void
endTableRow
()
{}
void
nextTableColumn
()
{}
...
...
src/memberdef.cpp
View file @
9d4d8095
...
...
@@ -349,6 +349,7 @@ MemberDef::MemberDef(const char *df,int dl,
argList
=
0
;
}
m_templateMaster
=
0
;
classSectionSDict
=
0
;
}
/*! Destroys the member definition. */
...
...
@@ -360,6 +361,7 @@ MemberDef::~MemberDef()
delete
argList
;
delete
tArgList
;
delete
m_defTmpArgLists
;
delete
classSectionSDict
;
}
void
MemberDef
::
setReimplements
(
MemberDef
*
md
)
...
...
@@ -1670,3 +1672,14 @@ void MemberDef::addListReference(Definition *d)
d
->
getOutputFileBase
()
+
":"
+
anchor
(),
memName
,
argsString
());
}
MemberList
*
MemberDef
::
getSectionList
(
Definition
*
d
)
const
{
return
(
d
!=
0
&&
classSectionSDict
)
?
classSectionSDict
->
find
((
int
)
d
)
:
0
;
}
void
MemberDef
::
setSectionList
(
Definition
*
d
,
MemberList
*
sl
)
{
if
(
classSectionSDict
==
0
)
classSectionSDict
=
new
SIntDict
<
MemberList
>
(
7
);
classSectionSDict
->
append
((
int
)
d
,
sl
);
}
src/memberdef.h
View file @
9d4d8095
...
...
@@ -24,6 +24,7 @@
#include "entry.h"
#include "definition.h"
#include "sortdict.h"
class
ClassDef
;
class
NamespaceDef
;
...
...
@@ -81,7 +82,7 @@ class MemberDef : public Definition
const
QCString
&
initializer
()
const
{
return
init
;
}
int
initializerLines
()
const
{
return
initLines
;
}
int
getMemberSpecifiers
()
const
{
return
memSpec
;
}
MemberList
*
getSectionList
(
)
const
{
return
section
;
}
MemberList
*
getSectionList
(
Definition
*
d
)
const
;
// scope query members
ClassDef
*
getClassDef
()
const
{
return
classDef
;
}
...
...
@@ -143,7 +144,7 @@ class MemberDef : public Definition
void
setBitfields
(
const
char
*
s
)
{
bitfields
=
s
;
}
void
setMaxInitLines
(
int
lines
)
{
userInitLines
=
lines
;
}
void
setMemberClass
(
ClassDef
*
cd
);
void
setSectionList
(
MemberList
*
sl
)
{
section
=
sl
;
}
void
setSectionList
(
Definition
*
d
,
MemberList
*
sl
);
void
setGroupDef
(
GroupDef
*
gd
,
Grouping
::
GroupPri_t
pri
,
const
QCString
&
fileName
,
int
startLine
,
bool
hasDocs
);
void
setExplicitExternal
(
bool
b
)
{
explExt
=
b
;
}
...
...
@@ -300,6 +301,7 @@ class MemberDef : public Definition
int
groupStartLine
;
// line " " " " "
bool
groupHasDocs
;
// true if the entry that caused the grouping was documented
MemberDef
*
m_templateMaster
;
SIntDict
<
MemberList
>
*
classSectionSDict
;
// disable copying of member defs
...
...
src/membergroup.cpp
View file @
9d4d8095
...
...
@@ -53,7 +53,7 @@ MemberGroup::~MemberGroup()
delete
memberList
;
}
void
MemberGroup
::
insertMember
(
MemberDef
*
md
)
void
MemberGroup
::
insertMember
(
Definition
*
d
,
MemberDef
*
md
)
{
//printf("MemberGroup::insertMember memberList=%p count=%d"
// " member section list: %p\n",
...
...
@@ -62,13 +62,13 @@ void MemberGroup::insertMember(MemberDef *md)
// md->getSectionList());
MemberDef
*
firstMd
=
memberList
->
first
();
if
(
inSameSection
&&
memberList
->
count
()
>
0
&&
firstMd
->
getSectionList
(
)
!=
md
->
getSectionList
(
))
firstMd
->
getSectionList
(
d
)
!=
md
->
getSectionList
(
d
))
{
inSameSection
=
FALSE
;
}
else
if
(
inDeclSection
==
0
)
{
inDeclSection
=
md
->
getSectionList
();
inDeclSection
=
md
->
getSectionList
(
d
);
}
memberList
->
append
(
md
);
...
...
@@ -82,9 +82,9 @@ void MemberGroup::insertMember(MemberDef *md)
}
void
MemberGroup
::
setAnchors
()
void
MemberGroup
::
setAnchors
(
ClassDef
*
context
)
{
::
setAnchors
(
0
,
'z'
,
memberList
,
grpId
);
::
setAnchors
(
context
,
'z'
,
memberList
,
grpId
);
}
void
MemberGroup
::
writeDeclarations
(
OutputList
&
ol
,
...
...
src/membergroup.h
View file @
9d4d8095
...
...
@@ -40,8 +40,8 @@ class MemberGroup
~
MemberGroup
();
QCString
header
()
const
{
return
grpHeader
;
}
int
groupId
()
const
{
return
grpId
;
}
void
insertMember
(
MemberDef
*
);
void
setAnchors
();
void
insertMember
(
Definition
*
d
,
MemberDef
*
md
);
void
setAnchors
(
ClassDef
*
);
void
writePlainDeclarations
(
OutputList
&
ol
,
ClassDef
*
cd
,
NamespaceDef
*
nd
,
FileDef
*
fd
,
GroupDef
*
gd
);
void
writeDeclarations
(
OutputList
&
ol
,
...
...
src/outputgen.h
View file @
9d4d8095
...
...
@@ -198,8 +198,10 @@ class BaseOutputDocInterface
virtual
void
endSubscript
()
=
0
;
virtual
void
startSuperscript
()
=
0
;
virtual
void
endSuperscript
()
=
0
;
virtual
void
startTable
(
int
cols
)
=
0
;
virtual
void
endTable
()
=
0
;
virtual
void
startTable
(
bool
hasCaption
,
int
cols
)
=
0
;
virtual
void
endTable
(
bool
hasCaption
)
=
0
;
virtual
void
startCaption
()
=
0
;
virtual
void
endCaption
()
=
0
;
virtual
void
nextTableRow
()
=
0
;
virtual
void
endTableRow
()
=
0
;
virtual
void
nextTableColumn
()
=
0
;
...
...
src/outputlist.h
View file @
9d4d8095
...
...
@@ -277,10 +277,14 @@ class OutputList : public OutputDocInterface
{
forall
(
&
OutputGenerator
::
startSuperscript
);
}
void
endSuperscript
()
{
forall
(
&
OutputGenerator
::
endSuperscript
);
}
void
startTable
(
int
cols
)
{
forall
(
&
OutputGenerator
::
startTable
,
cols
);
}
void
endTable
()
{
forall
(
&
OutputGenerator
::
endTable
);
}
void
startTable
(
bool
hasCaption
,
int
cols
)
{
forall
(
&
OutputGenerator
::
startTable
,
hasCaption
,
cols
);
}
void
endTable
(
bool
hasCaption
)
{
forall
(
&
OutputGenerator
::
endTable
,
hasCaption
);
}
void
startCaption
()
{
forall
(
&
OutputGenerator
::
startCaption
);
}
void
endCaption
()
{
forall
(
&
OutputGenerator
::
endCaption
);
}
void
nextTableRow
()
{
forall
(
&
OutputGenerator
::
nextTableRow
);
}
void
endTableRow
()
...
...
src/pre.l
View file @
9d4d8095
...
...
@@ -1078,17 +1078,24 @@ BN [ \t\r\n]
BEGIN(CopyLine);
}
}
<CopyLine>"extern"{BN}*"\"C\""*{BN}*"{" {
QCString text=yytext;
g_yyLineNr+=text.contains('\n');
outputArray(yytext,yyleng);
}
<CopyLine>"{" { // count brackets inside the main file
if (g_includeStack.isEmpty())
{
g_curlyCount++;
}
outputChar(*yytext);
}
<CopyLine>"}" { // count brackets inside the main file
if (g_includeStack.isEmpty())
if (g_includeStack.isEmpty() && g_curlyCount>0)
{
g_curlyCount--;
}
outputChar(*yytext);
// This should hold otherwise the preprocessor is confused
//ASSERT(g_curlyCount>=0);
}
<CopyLine>"'"\\[0-7]{1,3}"'" {
outputArray(yytext,yyleng);
...
...
src/rtfgen.h
View file @
9d4d8095
...
...
@@ -152,12 +152,14 @@ class RTFGenerator : public OutputGenerator
void
endSubscript
()
{
t
<<
"}"
;
}
void
startSuperscript
()
{
t
<<
"{
\\
super "
<<
endl
;}
void
endSuperscript
()
{
t
<<
"}"
;
}
void
startTable
(
int
)
{
}
//t << "\\begin{TabularC}{" << c << "}\n\\hline\n";
void
endTable
()
{
}
//t << "\\\\\\hline\n\\end{TabularC}\n";
void
nextTableRow
()
{
}
void
endTableRow
()
{
}
//t << "\\\\\\hline\n";
void
nextTableColumn
()
{
}
//t << "&";
void
endTableColumn
()
{
}
void
startTable
(
bool
,
int
)
{
/* not implemented */
}
void
endTable
(
bool
)
{
/* not implemented */
}
void
startCaption
()
{
/* not implemented */
}
void
endCaption
()
{
/* not implemented */
}
void
nextTableRow
()
{
/* not implemented */
}
void
endTableRow
()
{
/* not implemented */
}
void
nextTableColumn
()
{
/* not implemented */
}
void
endTableColumn
()
{
/* not implemented */
}
void
writeCopyright
()
{
t
<<
"
\251
"
;
}
void
writeQuote
()
{
t
<<
"
\"
"
;
}
void
writeUmlaut
(
char
c
);
...
...
src/scanner.l
View file @
9d4d8095
...
...
@@ -936,11 +936,6 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
}
<FindMembers>"template"({BN}*)"<"/[>]? {
lineCount();
// class template specifier already found => member template specifier
// already inside class => member template specifier
//if (current->tArgList /*|| (current_root->section&Entry::COMPOUND_MASK)*/)
//{
// printf("-------> member template \n");
if (current->tArgLists==0)
{
current->tArgLists = new QList<ArgumentList>;
...
...
@@ -950,33 +945,6 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
al->setAutoDelete(TRUE);
current->tArgLists->append(al);
currentArgumentList = al;
//if (current->mtArgList)
// {
// if (current->tArgList)
// {
// delete current->tArgList;
// }
// current->tArgList = current->mtArgList;
// current->mtArgList = 0;
// }
// current->mtArgList = new ArgumentList;
// current->mtArgList->setAutoDelete(TRUE);
// currentArgumentList = current->mtArgList;
//}
//else // class template specifier
//{
// printf("-------> class template\n");
// if (current->tArgList)
// {
// current->tArgList->clear();
// }
// else
// {
// current->tArgList = new ArgumentList;
// current->tArgList->setAutoDelete(TRUE);
// }
// currentArgumentList = current->tArgList;
//}
templateStr="<";
fullArgString = templateStr.copy();
copyArgString = &templateStr;
...
...
@@ -2198,7 +2166,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
BEGIN(SkipCPP);
}
*/
<FuncQual>[{:;
]
{ unput(*yytext); BEGIN( Function ); }
<FuncQual>[{:;
,]
{ unput(*yytext); BEGIN( Function ); }
<FuncQual>{BN}*"const"{BN}* {
lineCount() ;
current->args += " const ";
...
...
@@ -2263,7 +2231,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<Function>":" {
BEGIN(SkipInits);
}
<Function>[;{] {
<Function>[;{
,
] {
current->name=current->name.simplifyWhiteSpace();
current->type=current->type.simplifyWhiteSpace();
current->args=current->args.simplifyWhiteSpace();
...
...
@@ -2325,7 +2293,11 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
current = new Entry ;
initEntry();
lastCurlyContext = FindMembers;
if( *yytext == '{' )
if ( *yytext == ',' )
{
current->type = previous->type.data();
}
if ( *yytext == '{' )
{
if (current_root->section & Entry::COMPOUND_MASK)
previous->memSpec = previous->memSpec | Entry::Inline;
...
...
@@ -4023,9 +3995,15 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,AfterDoc>^{B}*(("//"{B}*)?)"*"+[ \t]*"-"("#")?{B}+ {
current->doc += yytext;
}
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,AfterDoc>^{B}*(("//"{B}*)?)"*"+[ \t]*"."{B}*\n {
current->doc += yytext;
}
<ClassDocBrief,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"-"("#")?{B}+ {
current->brief += "-";
}
<ClassDocBrief,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+[ \t]*"."{B}*\n {
current->brief += ".";
}
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+/[^/]
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+{B}+ {
current->doc+=' ';
...
...
src/translator.cpp
View file @
9d4d8095
...
...
@@ -191,3 +191,81 @@ QCString Translator::Windows1251ToKoi8R( const QCString & sInput )
return
result
.
local8Bit
();
}
/*! returns the caracter converted from hankaku-kana to zenkakukana.
Thanks Yongmao Ni http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/ */
unsigned
int
hankaku2zen
(
int
hankaku
)
{
static
unsigned
int
z
[
64
]
=
{
0x2121
,
0x2123
,
0x2156
,
0x2157
,
0x2122
,
0x2126
,
0x2572
,
0x2521
,
0x2523
,
0x2525
,
0x2527
,
0x2529
,
0x2563
,
0x2565
,
0x2567
,
0x2543
,
0x213c
,
0x2522
,
0x2524
,
0x2526
,
0x2528
,
0x252a
,
0x252b
,
0x252d
,
0x252f
,
0x2531
,
0x2533
,
0x2535
,
0x2537
,
0x2539
,
0x253b
,
0x253d
,
0x253f
,
0x2541
,
0x2544
,
0x2546
,
0x2548
,
0x254a
,
0x254b
,
0x254c
,
0x254d
,
0x254e
,
0x254f
,
0x2552
,
0x2555
,
0x2558
,
0x255b
,
0x255e
,
0x255f
,
0x2560
,
0x2561
,
0x2562
,
0x2564
,
0x2566
,
0x2568
,
0x2569
,
0x256a
,
0x256b
,
0x256c
,
0x256d
,
0x256f
,
0x2573
,
0x212b
,
0x212c
};
if
(
hankaku
<
0xa0
||
hankaku
>
0xdf
)
return
0
;
return
z
[
hankaku
-
0xa0
];
}
/*! returns the character converted from japaneseEUC to SJIS
Thanks Yongmao Ni http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/ */
unsigned
int
euc2sjis
(
unsigned
int
euc
)
{
unsigned
int
jis
;
unsigned
int
hib
,
lob
;
if
((
euc
&
0xff00
)
==
0x8e00
)
jis
=
hankaku2zen
(
euc
&
0xff
);
else
jis
=
euc
&
~
0x8080
;
hib
=
(
jis
>>
8
)
&
0xff
;
lob
=
jis
&
0xff
;
lob
+=
(
hib
&
1
)
?
0x1f
:
0x7d
;
if
(
lob
>=
0x7f
)
lob
++
;
hib
=
((
hib
-
0x21
)
>>
1
)
+
0x81
;
if
(
hib
>
0x9f
)
hib
+=
0x40
;
return
(
hib
<<
8
)
|
lob
;
}
/*! returns the string converted from Japanese-EUC to SJIS */
QCString
Translator
::
JapaneseEucToSjis
(
const
QCString
&
sInput
)
{
QString
result
;
int
len
=
sInput
.
length
();
int
c1
,
c2
,
sj
;
result
.
setUnicode
(
0
,
len
);
QChar
*
uc
=
(
QChar
*
)
result
.
unicode
();
// const_cast
const
unsigned
char
*
c
=
(
const
unsigned
char
*
)(
const
char
*
)
sInput
;
for
(
int
i
=
0
;
i
<
len
;)
{
c1
=
c
[
i
];
if
(
c1
==
EOF
)
break
;
/* if MSB=0 then the character is ascii */
if
(
!
(
c1
&
0x80
))
{
uc
[
i
]
=
c
[
i
];
i
=
i
+
1
;
}
else
{
c2
=
c
[
i
+
1
];
if
(
c2
==
EOF
)
break
;
sj
=
euc2sjis
(
(
c1
<<
8
)
+
c2
);
uc
[
i
]
=
sj
>>
8
;
uc
[
i
+
1
]
=
sj
&
0xff
;
i
+=
2
;
}
}
return
result
.
local8Bit
();
}
src/translator.h
View file @
9d4d8095
...
...
@@ -45,6 +45,9 @@ class Translator
/*! Returns the string converted from windows-1251 to koi8-r. */
QCString
Windows1251ToKoi8R
(
const
QCString
&
sInput
);
/*! Returns the string converted from Japanese-EUC to SJIS. */
QCString
JapaneseEucToSjis
(
const
QCString
&
sInput
);
public
:
/*! This method is used to provide warning message that is displayed
...
...
src/translator_jp.h
View file @
9d4d8095
This diff is collapsed.
Click to expand it.
src/translator_sk.h
View file @
9d4d8095
...
...
@@ -23,7 +23,7 @@
#ifndef TRANSLATOR_SK_H
#define TRANSLATOR_SK_H
class
TranslatorSlovak
:
public
Translator
Adapter_1_2_11
class
TranslatorSlovak
:
public
Translator
{
private
:
/*! The Decode() inline assumes the source written in the
...
...
@@ -1221,13 +1221,13 @@ class TranslatorSlovak : public TranslatorAdapter_1_2_11
/*! Used as ansicpg for RTF fcharset */
virtual
QCString
trRTFCharSet
()
{
return
"
0"
;
//???
return
"
3"
;
}
/*! Used as header RTF general index */
virtual
QCString
trRTFGeneralIndex
()
{
return
"Index"
;
//???
return
"Index"
;
}
/*! This is used for translation of the word that will possibly
...
...
@@ -1331,6 +1331,17 @@ class TranslatorSlovak : public TranslatorAdapter_1_2_11
result
+=
(
singular
)
?
"r"
:
"ri"
;
return
result
;
}
//////////////////////////////////////////////////////////////////////////
// new since 1.2.11
//////////////////////////////////////////////////////////////////////////
/*! This text is put before the list of members referenced by a member
*/
virtual
QCString
trReferences
()
{
return
Decode
(
"Odkazuje sa na"
);
}
};
#endif // TRANSLATOR_SK_H
src/util.cpp
View file @
9d4d8095
...
...
@@ -3102,7 +3102,8 @@ const char *getOverloadDocs()
"function only in what argument(s) it accepts."
;
}
void
addMembersToMemberGroup
(
MemberList
*
ml
,
MemberGroupSDict
*
memberGroupSDict
)
void
addMembersToMemberGroup
(
MemberList
*
ml
,
MemberGroupSDict
*
memberGroupSDict
,
Definition
*
context
)
{
MemberListIterator
mli
(
*
ml
);
MemberDef
*
md
;
...
...
@@ -3122,20 +3123,31 @@ void addMembersToMemberGroup(MemberList *ml,MemberGroupSDict *memberGroupSDict)
mg
=
new
MemberGroup
(
groupId
,
*
pGrpHeader
,
pDocs
?
pDocs
->
data
()
:
0
);
memberGroupSDict
->
append
(
groupId
,
mg
);
}
md
=
ml
->
take
(
index
);
mg
->
insertMember
(
md
);
md
=
ml
->
take
(
index
);
// remove from member list
//if (allMembers) // remove from all member list as well
//{
// MemberNameInfo *mni = allMembers->find(md->name());
// if (mni)
// {
// QListIterator<MemberInfo> mii(*mni);
// MemberInfo *mi;
// for (;(mi=mii.current());++mii)
// {
// if (mi->memberDef==md)
// {
// mni->remove(mi);
// break;
// }
// }
// }
//}
mg
->
insertMember
(
context
,
md
);
// insert in member group
md
->
setMemberGroup
(
mg
);
continue
;
}
else
{
++
mli
;
++
index
;
}
}
else
{
++
mli
;
++
index
;
}
}
}
/*! Extracts a (sub-)string from \a type starting at \a pos that
...
...
src/util.h
View file @
9d4d8095
...
...
@@ -42,6 +42,7 @@ class ClassList;
class
MemberGroupSDict
;
class
Definition
;
struct
TagInfo
;
class
MemberNameInfoSDict
;
//--------------------------------------------------------------------
...
...
@@ -148,7 +149,9 @@ int iSystem(const char *command,const char *args,bool isBatchFile=FALSE);
QCString
convertToHtml
(
const
char
*
s
);
QCString
convertToXML
(
const
char
*
s
);
const
char
*
getOverloadDocs
();
void
addMembersToMemberGroup
(
MemberList
*
ml
,
MemberGroupSDict
*
memberGroupSDict
);
void
addMembersToMemberGroup
(
MemberList
*
ml
,
MemberGroupSDict
*
memberGroupSDict
,
Definition
*
context
=
0
);
bool
extractClassNameFromType
(
const
QCString
&
type
,
int
&
pos
,
QCString
&
name
,
QCString
&
templSpec
);
QCString
substituteTemplateArgumentsInString
(
...
...
src/xmlgen.cpp
View file @
9d4d8095
...
...
@@ -83,16 +83,12 @@ inline void writeXMLString(QTextStream &t,const char *s)
void
writeXMLLink
(
QTextStream
&
t
,
const
char
*
extRef
,
const
char
*
compoundId
,
const
char
*
anchorId
,
const
char
*
text
)
{
t
<<
"<ref idref=
\"
"
<<
compoundId
;
if
(
anchorId
)
{
t
<<
"_1"
<<
anchorId
;
}
t
<<
"<ref refid=
\"
"
<<
compoundId
;
if
(
anchorId
)
t
<<
"_1"
<<
anchorId
;
t
<<
"
\"
kindref=
\"
"
;
if
(
anchorId
)
t
<<
"member"
;
else
t
<<
"compound"
;
t
<<
"
\"
"
;
if
(
extRef
)
{
t
<<
" external=
\"
"
<<
extRef
<<
"
\"
"
;
}
if
(
extRef
)
t
<<
" external=
\"
"
<<
extRef
<<
"
\"
"
;
t
<<
">"
;
writeXMLString
(
t
,
text
);
t
<<
"</ref>"
;
...
...
@@ -613,17 +609,27 @@ class XMLGenerator : public OutputDocInterface
XML_DB
((
"(endSuperscript)
\n
"
));
m_t
<<
"</superscript>"
;
}
void
startTable
(
int
cols
)
void
startTable
(
bool
,
int
cols
)
{
XML_DB
((
"startTable
\n
"
));
startParMode
();
m_t
<<
"<table cols=
\"
"
<<
cols
<<
"
\"
>
\n
"
;
}
void
endTable
()
void
endTable
(
bool
)
{
XML_DB
((
"endTable
\n
"
));
m_t
<<
"</row>
\n
</table>"
;
}
void
startCaption
()
{
XML_DB
((
"startCaption"
));
m_t
<<
"<caption>"
;
}
void
endCaption
()
{
XML_DB
((
"encCaption"
));
m_t
<<
"</caption"
;
}
void
nextTableRow
()
{
XML_DB
((
"(nextTableRow)
\n
"
));
...
...
@@ -764,15 +770,20 @@ class XMLGenerator : public OutputDocInterface
{
XML_DB
((
"(endPageRef)
\n
"
));
}
void
writeLineNumber
(
const
char
*
,
const
char
*
file
,
// TODO: support external references
const
char
*
anchor
,
int
l
)
void
writeLineNumber
(
const
char
*
extRef
,
const
char
*
compId
,
const
char
*
anchor
Id
,
int
l
)
{
XML_DB
((
"(writeLineNumber)
\n
"
));
m_t
<<
"<linenumber"
;
m_t
<<
" line=
\"
"
<<
l
<<
"
\"
"
;
if
(
file
)
if
(
compId
)
{
m_t
<<
" refid=
\"
"
<<
file
<<
"_1"
<<
anchor
<<
"
\"
"
;
m_t
<<
" refid=
\"
"
<<
compId
;
if
(
anchorId
)
m_t
<<
"_1"
<<
anchorId
;
m_t
<<
"
\"
kindref=
\"
"
;
if
(
anchorId
)
m_t
<<
"member"
;
else
m_t
<<
"compound"
;
m_t
<<
"
\"
"
;
if
(
extRef
)
m_t
<<
" external=
\"
"
<<
extRef
<<
"
\"
"
;
}
m_t
<<
"/>"
;
}
...
...
@@ -1172,7 +1183,7 @@ static void generateXMLForMember(MemberDef *md,QTextStream &t,Definition *def)
{
t
<<
" <exceptions>"
;
linkifyText
(
TextGeneratorXMLImpl
(
t
),
scopeName
,
md
->
name
(),
md
->
excpString
());
t
<<
"</exception>"
<<
endl
;
t
<<
"</exception
s
>"
<<
endl
;
}
if
(
md
->
memberType
()
==
MemberDef
::
Enumeration
)
// enum
...
...
@@ -1293,7 +1304,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &t)
BaseClassDef
*
bcd
;
for
(
bcli
.
toFirst
();(
bcd
=
bcli
.
current
());
++
bcli
)
{
t
<<
" <basecompoundref
idref
=
\"
"
t
<<
" <basecompoundref
refid
=
\"
"
<<
bcd
->
classDef
->
getOutputFileBase
()
<<
"
\"
prot=
\"
"
;
switch
(
bcd
->
prot
)
...
...
@@ -1318,7 +1329,7 @@ static void generateXMLForClass(ClassDef *cd,QTextStream &t)
BaseClassDef
*
bcd
;
for
(
bcli
.
toFirst
();(
bcd
=
bcli
.
current
());
++
bcli
)
{
t
<<
" <derivedcompoundref
idref
=
\"
"
t
<<
" <derivedcompoundref
refid
=
\"
"
<<
bcd
->
classDef
->
getOutputFileBase
()
<<
"
\"
prot=
\"
"
;
switch
(
bcd
->
prot
)
...
...
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